diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a553cef999..e5ab56843b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,4 +1,4 @@ -#CONTRIBUTING +# CONTRIBUTING ## Reporting Issues @@ -6,50 +6,56 @@ See [this page](http://tgstation13.org/wiki/Reporting_Issues) for a guide and fo ## Introduction -Hello and welcome to /tg/station's contributing page. You are here because you are curious or interested in contributing. Thanks for being interested. Everyone is free to contribute to this project as long as they follow the simple guidelines and specifications below, because at /tg/station, we have a goal to increase code maintainability and to do that we are going to need all pull requests to hold up to those specifications. This is in order for all of us to benefit, instead of having to fix the same bug more than once because of duplicated code. +Hello and welcome to /tg/station's contributing page. You are here because you are curious or interested in contributing - thank you! Everyone is free to contribute to this project as long as they follow the simple guidelines and specifications below; at /tg/station, we strive to maintain code stability and maintainability, and to do that, we need all pull requests to hold up to those specifications. It's in everyone's best interests - including yours! - if the same bug doesn't have to be fixed twice because of duplicated code. -But first we want to make it clear how you can contribute, if contributing is a new experience for you, and what powers the team has over your pull request so you do not get any surprises when submitting pull requests, and it is closed for a reason you did not anticipate. +First things first, we want to make it clear how you can contribute (if you've never contributed before), as well as the kinds of powers the team has over your additions, to avoid any unpleasant surprises if your pull request is closed for a reason you didn't foresee. ## Getting Started -At /tg/station we do not 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 does not 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 getting started 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. + +/tg/station doesn't 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. If you want to contribute the first thing you'll need to do is [set up Git](http://tgstation13.org/wiki/Setting_up_git) so you can download the source code. -We have a [list of guides on the wiki](http://www.tgstation13.org/wiki/index.php/Guides#Development_and_Contribution_Guides) which will help you get started contributing to /tg/station with git and Dream Maker. For beginners, it is recommended you work on small projects, at first. If you need help learning to program in BYOND check out this [repository of resources](http://www.byond.com/developer/articles/resources). +We have a [list of guides on the wiki](http://www.tgstation13.org/wiki/index.php/Guides#Development_and_Contribution_Guides) that will help you get started contributing to /tg/station with Git and Dream Maker. For beginners, it is recommended you work on small projects like bugfixes at first. If you need help learning to program in BYOND, check out this [repository of resources](http://www.byond.com/developer/articles/resources). -There is an open list of approachable issues for [your inspiration here](https://github.com/tgstation/-tg-station/issues?q=is%3Aopen+is%3Aissue+label%3A%22Easy+Task%22). +There is an open list of approachable issues for [your inspiration here](https://github.com/tgstation/-tg-station/issues?q=is%3Aopen+is%3Aissue+label%3A%22Easy+Fix%22). -You can of course, as always, ask for help at [#coderbus](irc://irc.rizon.net/coderbus) on irc.rizon.net. We are just here to have fun and help so do not expect professional support please. +You can of course, as always, ask for help at [#coderbus](irc://irc.rizon.net/coderbus) on irc.rizon.net. We're just here to have fun and help out, so please don't expect professional support. ## Meet the Team -**Project Leads** +**Design Lead** -Project Leads, which are elected by the maintainers and members of the project, have complete control over what goes through and what is reverted. They are encouraged to take control in what features are added to the game. Project Leads can also act as Project Managers when needed. +The Design Lead has the final say on what gameplay changes get into and out of the game. He or she has full veto power on any feature or balance additions, changes, or removals, and establishes a general, personally-preferred direction for the game. -**Project Managers** +**Headcoder** +The Headcoder is responsible for controlling, adding, and removing maintainers from the project. In addition to filling the role of a normal maintainer, they have sole authority on who becomes a maintainer, as well as who remains a maintainer and who does not. -Project Managers are responsible for recruiting and firing maintainers, enforcing coding standards, and reverting changes that should have not been committed. Project Managers are assigned by Project Leads. On things that Project Managers disagree on they are to refer to the Project Leads for advice. It is encouraged that if you do not want to waste time working on a feature, that might be denied, that you ask a Project Manager first. +**Art Director** + +The Art Director controls sprites and aesthetic that get into the game. While sprites for brand-new additions are generally accepted regardless of quality, modified current art assets fall to the Art Director, who can decide whether or not a sprite tweak is both merited and a suitable replacement. + +They also control the general "perspective" of the game - how sprites should generally look, especially the angle from which they're viewed. An example of this is the [3/4 perspective](http://static.tvtropes.org/pmwiki/pub/images/kakarikovillage.gif), which is a bird's eye view from above the object being viewed. **Maintainers** -Maintainers are quality control. If a proposed pull request does not meet the mentioned quality specifications then it can be closed if you fail to satisfy them. Maintainers are required to give a reason for closing the pull request. +Maintainers are quality control. If a proposed pull request doesn't meet the following specifications, they can request you to change it, or simply just close the pull request. Maintainers are required to give a reason for closing the pull request. Maintainers can revert your changes if they feel they are not worth maintaining or if they did not live up to the quality specifications. -## Specification +## Specifications -As mentioned before, you are expected to follow these specifications in order to make everyone's lives easier, it will also save you and us time, with having to make the changes and us having to tell you what to change. Thank you for reading this section. +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 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 are unfamiliar with this concept, it is highly recommended you look it up. +### 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. -(ie: absolute pathing) +### All BYOND paths must contain the full path. +(i.e. absolute pathing) -Byond will allow you nest almost any type keyword into a block, such as: +DM will allow you nest almost any type keyword into a block, such as: -```c++ +```DM datum datum1 var @@ -78,12 +84,12 @@ The use of this is not allowed in this project as it makes finding definitions v The previous code made compliant: -```c++ +```DM /datum/datum1 - var/varname1 - var/varname2 - var/static/varname3 - var/static/varname4 + var/varname1 + var/varname2 + var/static/varname3 + var/static/varname4 /datum/datum1/proc/proc1() code @@ -101,16 +107,16 @@ 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 began with a / -eg: `/datum/thing` not `datum/thing` +### Type paths must begin with a / +eg: `/datum/thing`, not `datum/thing` ### Datum type paths must began with "datum" -In byond this is optional, but omitting it makes finding definitions harder. +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: -```C++ +```DM //Good var/path_type = /obj/item/weapon/baseball_bat @@ -118,49 +124,69 @@ var/path_type = /obj/item/weapon/baseball_bat var/path_type = "/obj/item/weapon/baseball_bat" ``` -### Tabs not spaces +### Tabs, not spaces You must use tabs to indent your code, NOT SPACES. (You may use spaces to align something, but you should tab to the block level first, then add the remaining 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 ) +### 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.) -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. +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 maybe suitable for small short time projects but /tg/station focuses on the long term and thus discourages this. +### 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. ### Startup/Runtime tradeoffs with lists and the "hidden" init proc -First, read the comments in this byond thread, starting here:http://www.byond.com/forum/?post=2086980&page=2#comment19776775 +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 type definition incurs a hidden proc call - init, if you must define a list at startup, do so in New()/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)Offsets list creation overhead to the point where the list is actually required (which for many objects, may be never at all). +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, this tradeoff makes sense in many cases but not all, you should think carefully about your implementation before deciding if this is an appropriate thing to do +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` for atoms -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 +### Prefer `Initialize()` over `New()` for atoms +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 -Make these #defines with a name that more clearly states what it's for. +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 +/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 +#define DO_THE_THING_REALLY_HARD 1 +#define DO_THE_THING_EFFICIENTLY 2 +/datum/proc/do_the_thing(thing_to_do) + switch(thing_to_do) + if(DO_THE_THING_REALLY_HARD) + (...) + 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) +### 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)`) -### Use early return. -Do not enclose a proc in an if block when returning on a condition is more feasible +### Use early return +Do not enclose a proc in an if-block when returning on a condition is more feasible This is bad: -```` +````DM /datum/datum1/proc/proc1() if (thing1) if (!thing2) @@ -168,7 +194,7 @@ This is bad: do stuff ```` This is good: -```` +````DM /datum/datum1/proc/proc1() if (!thing1) return @@ -186,13 +212,13 @@ This prevents nesting levels from getting deeper then they need to be. * 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 +* 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 the round type and or the antags 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. @@ -201,66 +227,85 @@ This prevents nesting levels from getting deeper then they need to be. * 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 + +* Queries must never specify the database, be it in code, or in text files in the repo. + + + ### Other Notes -* Code should be modular where possible, if you are working on a new class then it is best if you put it in a new file. +* 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. -* You are expected to help maintain the code that you add, meaning if there is a problem then you are likely to be approached in order to fix any issues, runtimes or bugs. +* 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. -* Do not divide when you can easily convert it to a multiplication. (ie `4/2` should be done as `4*0.5`) - -* 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. +* Do not divide when you can easily convert it to multiplication. (ie `4/2` should be done as `4*0.5`) #### Enforced not enforced -The following different coding styles are not only not enforced, but it is generally frowned upon to change them over from one to the other for little reason: +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 nobody cares, + * Color/Colour - both are fine, but keep in mind that BYOND uses `color` as a base variable * Spaces after control statements - * if() if () nobody cares. + * `if()` and `if ()` - nobody cares! -#### Operators and spaces: +### Operators +#### Spacing (this is not strictly enforced, but more a guideline for readability's sake) * 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 operators like & or | + * 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. -### Dream Maker Quirks/Tricks: +#### Use +* Bitwise AND - '&' + * Should be written as ```bitfield & bitflag``` NEVER ```bitflag & bitfield```, both are valid, but the latter is confusing and nonstandard. + + +### 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) however 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! +#### 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! -* Istypeless for loops: a name for a differing syntax for writing for-each style loops in DM, however it is NOT DM's standard syntax hence why this is considered a quirk. Take a look at this: -``` +#### 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 = null 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, it uses DM's standard syntax for a for loop, it does this by specifying a type in the variable of the for header which byond interprets as a type to filter by, it performs this filter using ```istype()``` (or some internal-magic similar to ```istype()```, I wouldn't put it past byond), the above example is fine with the data currently contained in ```bag_of_items```, however 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 = null 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. Whereever a list (or other container, such as an atom (in which case you're technically accessing their special contents list but I digress)) contains datums of the same datatype or subtypes of the datatype you require for your for body +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: -``` +```DM var/list/bag_of_swords = list(sword, sword, sword, sword) var/obj/item/sword/best_sword = null for(var/s in bag_of_swords) @@ -268,55 +313,61 @@ 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! which will cause runtime errors. +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, Dream maker has a ```.``` or "Dot" operator, used for accessing variables/members/functions of an object instance. +#### 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. eg: -``` +```DM var/mob/living/carbon/human/H = YOU_THE_READER H.gib() ``` -however DM also has a dot variable, accessed just as ```.``` on it's 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``` statment) at the end of a proc, provided the proc does not already manually return (```return count``` for example). Why is this special? well the ```return``` statement should ideally be free from overhead (functionally free, of course nothing's free) but DM fails to fulfill this, DM's return statement is actually fairly costly for what it does and for what it's used for. -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, however 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 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? -## Globals versus Static +Well, the ```return``` statement should ideally be free from overhead (functionally free, although of course nothing's free), but DM fails to fulfill this. DM's return statement is actually fairly costly for what it does and for what it's used for. -Byond has a var keyword, called global. This var keyword is for vars inside of types. IE: +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 + +DM has a var keyword, called global. This var keyword is for vars inside of types. For instance: + +```DM mob var global - thing = 1 + thing = TRUE ``` -It 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, ie its shared across everything in it's type. (much more like the keyword static in other languages like php/c++/c#/java) +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? -There is also an undocumented keyword static, that has the same behaviour as global but more correctly describes byond's behaviour. Therefore we always use static instead of global where we need it as it reduces suprise when reading byond code. +There is also an undocumented keyword called `static` that has the same behaviour as global but more correctly describes BYOND's behaviour. Therefore, we always use static instead of global where we need it, as it reduces suprise when reading BYOND code. ## Pull Request Process -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 nice. Here are some helpful ways to make it easier for you and for the maintainer when making a pull request. +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 in [this guide](http://tgstation13.org/wiki/Getting_Your_Pull_Accepted) -* 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, this prevents our players from being caught unaware by changes - you can find more information about this here http://tgstation13.org/wiki/Guide_to_Changelogs +* We ask that you use the changelog system to document your change, which prevents our players from being caught unaware by changes - you can find more information about this [on this wiki page](http://tgstation13.org/wiki/Guide_to_Changelogs). * 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. -* 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 object to any changes being made, which will be noted by a Project Lead or Project Manager. 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. ## 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 and in those cases existing longer lines must not be split up) +* 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) -## A word on git -Yes we know that the files have a tonne of mixed windows and linux line endings, attempts to fix this have been met with less than stellar success and as such we have decided to give up caring until such a time as it matters. +Just becuase something isn't on this list doesn't mean that it's acceptable. Use common sense above all else. -Therefore EOF settings of main repo are forbidden territory one must avoid wandering into +## A word on Git +Yes, we know that the files have a tonne of mixed Windows and Linux line endings. Attempts to fix this have been met with less than stellar success, and as such we have decided to give up caring until there comes a time when it matters. + +Therefore, EOF settings of main repo are forbidden territory one must avoid wandering into, at risk of losing body and/or mind to the Git gods. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index a1c37bc290..f5fa86a76d 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,3 +1,3 @@ -[Note]: # (State what the issue is from a "whats wrong" perspective. Issue reports should clearly allow maintainers to understand whats wrong and how to test/reproduce if that is not obvious. Avoid ambiguity. Please enter the commit hash from the "Show Server Revision" verb if you can. Remove these notes before submitting your report.) +[Note]: # (Please enter the commit hash and active testmerge numbers from the "Show Server Revision" verb if you can. If you believe the issue to be caused by a testmerge, please report it in its relative PR thread. State what the issue is from a "whats wrong" prospective. Issue reports should clearly allow maintainers to understand whats wrong and how to test/reproduce if that is not obvious. Avoid ambiguity. Start your issue report below both of these lines (or remove them)) -[GameAdmins]: # (If you are reporting a bug that occurred AFTER you used varedit/admin buttons to alter an object out of normal operating conditions, please verify that you can re-create the bug without the varedit usage/admin buttons before reporting the issue.) +[Admins]: # (If you are reporting a bug that occured AFTER you used varedit/admin buttons to alter an object out of normal operating conditions, please verify that you can re-create the bug without the varedit usage/admin buttons before reporting the issue.) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f67f095a4f..82633fdc70 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,6 @@ +[Feature Freeze!]: # We are currently not considering any balance or antagonist oriented pull requests. Full details, as well as ways to bypass this freeze, are available here https://github.com/tgstation/tgstation/pull/28223 + + [Changelogs]: # (Please make a changelog if you're adding, removing or changing content that'll affect players. This includes, but is not limited to, new features, sprites, sounds; balance changes; map edits and important fixes) []: # (See here for how to easily make a changelog: https://github.com/tgstation/tgstation/wiki/Changelogs. An example changelog has been provided below. Please edit or remove) diff --git a/.travis.yml b/.travis.yml index 0f9c8c3aca..c0a45df72d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,5 +41,3 @@ script: - tools/travis/build_tools.sh - tools/travis/build_byond.sh -notifications: - email: false diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 35960074c1..daf1e0fb25 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -91,9 +91,7 @@ "ao" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/sandeffect, /obj/structure/mirror{ @@ -168,8 +166,7 @@ dir = 1 }, /turf/open/floor/plasteel/asteroid{ - baseturf = /turf/open/floor/plating/beach/sand; - tag = "icon-asteroidwarning (NORTH)" + baseturf = /turf/open/floor/plating/beach/sand }, /area/ruin/powered/beach) "aC" = ( @@ -226,8 +223,7 @@ dir = 1 }, /turf/open/floor/plasteel/asteroid{ - baseturf = /turf/open/floor/plating/beach/sand; - tag = "icon-asteroidwarning (NORTH)" + baseturf = /turf/open/floor/plating/beach/sand }, /area/ruin/powered/beach) "aK" = ( @@ -297,8 +293,7 @@ dir = 1 }, /turf/open/floor/plasteel/asteroid{ - baseturf = /turf/open/floor/plating/beach/sand; - tag = "icon-asteroidwarning (NORTH)" + baseturf = /turf/open/floor/plating/beach/sand }, /area/ruin/powered/beach) "aX" = ( @@ -317,8 +312,7 @@ /area/ruin/powered/beach) "ba" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/pod/dark{ baseturf = /turf/open/floor/plating/asteroid/basalt; @@ -348,7 +342,6 @@ /area/ruin/powered/beach) "bf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/pod/dark{ @@ -371,7 +364,6 @@ /area/ruin/powered) "bj" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/plasteel/asteroid{ @@ -387,7 +379,6 @@ /area/ruin/powered/beach) "bl" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/plasteel/asteroid{ @@ -495,8 +486,7 @@ /area/ruin/powered/beach) "bB" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1; @@ -539,8 +529,7 @@ /area/ruin/powered/beach) "bH" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/effect/mob_spawn/human/beach/alive{ flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff."; @@ -694,8 +683,7 @@ dir = 1 }, /turf/open/floor/plasteel/asteroid{ - baseturf = /turf/open/floor/plating/beach/sand; - tag = "icon-asteroidwarning (NORTH)" + baseturf = /turf/open/floor/plating/beach/sand }, /area/ruin/powered/beach) "ck" = ( @@ -706,8 +694,7 @@ dir = 1 }, /turf/open/floor/plasteel/asteroid{ - baseturf = /turf/open/floor/plating/beach/sand; - tag = "icon-asteroidwarning (NORTH)" + baseturf = /turf/open/floor/plating/beach/sand }, /area/ruin/powered/beach) "cl" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index 423d2e424e..06d6206353 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -607,7 +607,6 @@ /area/ruin/powered/clownplanet) "bo" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 288f5fd12c..523c5ca7c8 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -77,7 +77,6 @@ /area/ruin/powered/animal_hospital) "an" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/machinery/light{ @@ -172,7 +171,6 @@ /area/lavaland/surface/outdoors) "ay" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index a6c92c7610..c1a1fbf54d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -1,589 +1,1604 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"b" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +"ac" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"c" = ( -/turf/closed/wall/mineral/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +"ad" = ( +/obj/structure/stone_tile/block{ + dir = 1 }, -/area/ruin/unpowered) -"d" = ( -/obj/effect/light_emitter, -/mob/living/simple_animal/hostile/spawner/ash_walker, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile/cracked{ + dir = 8 }, -/area/ruin/unpowered) -"e" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/mob_spawn/human/ash_walker, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ae" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 }, -/area/ruin/unpowered) -"f" = ( -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"af" = ( +/obj/structure/stone_tile/block{ + dir = 1 }, -/area/ruin/unpowered) -"g" = ( -/obj/effect/mob_spawn/human/ash_walker, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ag" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ah" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ai" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aj" = ( +/obj/structure/stone_tile/slab, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ak" = ( +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"al" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"am" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"an" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ao" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ap" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aq" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ar" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"as" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/ash_walkers) +"at" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"au" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 }, -/area/ruin/unpowered) -"h" = ( -/obj/effect/decal/cleanable/blood, /obj/item/device/flashlight/lantern, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"av" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"aw" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 }, -/area/ruin/unpowered) -"i" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"ax" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 }, -/area/ruin/unpowered) -"j" = ( -/obj/item/weapon/pickaxe, -/obj/item/weapon/pickaxe, -/obj/structure/closet/crate/internals, -/obj/item/weapon/pickaxe, -/obj/item/weapon/pickaxe, -/obj/item/weapon/pickaxe, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"ay" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/device/flashlight/lantern, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"az" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aA" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/device/malf_upgrade, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aB" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aC" = ( +/obj/structure/stone_tile/block/cracked, +/obj/item/weapon/storage/toolbox/syndicate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aD" = ( +/obj/structure/table/optable, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aE" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/closet/crate/medical, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/lizard, +/obj/item/weapon/reagent_containers/blood/lizard, +/obj/item/stack/sheet/cloth/ten, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aG" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"aH" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aI" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aJ" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aK" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"aL" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aM" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aN" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/item/weapon/weldingtool/experimental, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aO" = ( /obj/item/weapon/storage/box/rxglasses, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aP" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aQ" = ( +/obj/structure/stone_tile/block{ + dir = 8 }, -/area/ruin/unpowered) -"k" = ( -/obj/effect/mob_spawn/human/corpse/damaged, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/machinery/iv_drip, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aR" = ( +/obj/structure/stone_tile/block{ + dir = 8 }, -/area/ruin/unpowered) -"l" = ( +/obj/structure/stone_tile, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"aS" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"aT" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aU" = ( +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aV" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"aW" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"aX" = ( +/obj/item/seeds/glowshroom, +/obj/item/seeds/glowshroom, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aY" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"aZ" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ba" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bb" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bc" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bd" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"be" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"bf" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth, +/area/ruin/unpowered/ash_walkers) +"bg" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bh" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bi" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bj" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/weapon/storage/bag/plants/portaseeder, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bk" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/stack/marker_beacon/ten, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bl" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bm" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/weapon/construction/rcd/loaded, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bn" = ( /obj/structure/closet/crate/radiation, /obj/item/device/flashlight/lantern, /obj/item/device/flashlight/lantern, /obj/item/device/flashlight/lantern, /obj/item/device/flashlight/flare, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile/block/cracked{ + dir = 8 }, -/area/ruin/unpowered) -"m" = ( -/obj/structure/closet/crate/medical, -/obj/item/device/malf_upgrade, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile/cracked{ + dir = 1 }, -/area/ruin/unpowered) -"n" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/weapon/storage/belt, -/obj/item/weapon/scythe, -/obj/item/seeds/glowshroom, -/obj/item/seeds/glowshroom, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/storage/bag/plants/portaseeder, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bo" = ( +/obj/structure/stone_tile/block{ + dir = 8 }, -/area/ruin/unpowered) -"o" = ( -/obj/item/device/flashlight/lantern, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"p" = ( -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight, -/obj/structure/closet/crate, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"q" = ( -/obj/item/device/flashlight/flare, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight/seclite, -/obj/item/device/flashlight, -/obj/structure/closet/crate, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"r" = ( -/turf/closed/wall/mineral/iron{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"s" = ( -/obj/item/weapon/twohanded/spear, -/obj/structure/mineral_door/iron, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"t" = ( -/obj/structure/mineral_door/iron, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"u" = ( -/obj/structure/closet/crate/engineering, -/obj/item/weapon/construction/rcd/loaded, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"v" = ( -/obj/structure/closet/crate/medical, -/obj/item/weapon/storage/firstaid/regular, -/obj/item/weapon/reagent_containers/blood/random, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"w" = ( -/obj/machinery/the_singularitygen, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"x" = ( -/obj/structure/rack{ - icon = 'icons/obj/stationobjs.dmi'; - icon_state = "minibar_left"; - name = "skeletal minibar" - }, -/obj/item/stack/sheet/cloth/ten, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"y" = ( -/obj/structure/rack{ - icon = 'icons/obj/stationobjs.dmi'; - icon_state = "minibar_right"; - name = "skeletal minibar" - }, -/obj/item/clothing/head/helmet/roman/legionaire, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"z" = ( -/obj/item/weapon/shovel, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"A" = ( -/obj/structure/closet/crate, -/obj/item/weapon/storage/firstaid/regular, -/obj/item/weapon/storage/firstaid/o2, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"B" = ( -/obj/structure/table_frame, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"C" = ( -/obj/structure/table/optable, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"D" = ( -/obj/item/device/flashlight, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"E" = ( -/obj/item/weapon/storage/toolbox/syndicate, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"F" = ( -/obj/structure/closet/crate/miningcar, +/obj/item/weapon/pickaxe, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"G" = ( -/obj/item/weapon/twohanded/spear, -/obj/structure/rack, -/obj/item/weapon/twohanded/spear, -/obj/item/weapon/twohanded/spear, -/obj/item/weapon/twohanded/spear, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +"bp" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 }, -/area/ruin/unpowered) -"H" = ( -/obj/item/weapon/twohanded/spear, -/obj/structure/rack, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile{ + dir = 1 }, -/area/ruin/unpowered) -"I" = ( -/obj/structure/mineral_door/iron, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth; - blocks_air = 1 +/obj/structure/stone_tile{ + dir = 4 }, -/area/ruin/unpowered) -"J" = ( -/turf/closed/wall/mineral/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/item/device/flashlight/lantern, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bq" = ( +/obj/structure/stone_tile/block{ + dir = 1 }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"br" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bs" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bt" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/device/flashlight/lantern, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bu" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"K" = ( -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth; - initial_gas_mix = "o2=13;n2=24;TEMP=300" +"bv" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 }, +/obj/structure/closet/crate, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bw" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/seeds/tower, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bx" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"by" = ( +/obj/structure/closet/crate, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bz" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/machinery/the_singularitygen, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"bA" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"L" = ( +"bB" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bC" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bD" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bE" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bF" = ( +/obj/structure/stone_tile/slab, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bG" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/ruin/unpowered/ash_walkers) +"bH" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/fans/tiny/invisible, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"bI" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bJ" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bK" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"bL" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bM" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bN" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bO" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bP" = ( +/obj/structure/stone_tile/block, /obj/item/weapon/twohanded/spear, -/obj/structure/table, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/unpowered) -"M" = ( -/obj/item/weapon/pickaxe, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth; - initial_gas_mix = "o2=13;n2=24;TEMP=300" - }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"N" = ( +"bQ" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bR" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bS" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bT" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bU" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bV" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bW" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/ore_box, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"O" = ( -/obj/item/weapon/reagent_containers/glass/bowl, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +"bX" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 }, -/area/ruin/unpowered) -"P" = ( -/obj/machinery/iv_drip, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bY" = ( +/obj/structure/stone_tile{ + dir = 8 }, -/area/ruin/unpowered) -"Q" = ( -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bZ" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 }, -/area/ruin/unpowered) -"R" = ( -/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, -/turf/open/floor/engine/cult{ - baseturf = /turf/open/floor/plating/lava/smooth +/obj/structure/stone_tile/cracked{ + dir = 8 }, -/area/ruin/unpowered) +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ca" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cb" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cc" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cd" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ce" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cf" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/closet/crate/internals, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cg" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ch" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ci" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cj" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ck" = ( +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cl" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cm" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cn" = ( +/obj/structure/bonfire/dense, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"co" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cp" = ( +/obj/structure/stone_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"cq" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cr" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cs" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ct" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cu" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cv" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cw" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cx" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cy" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cz" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cA" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cB" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cC" = ( +/obj/item/device/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cD" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/item/device/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cE" = ( +/obj/structure/stone_tile/surrounding/cracked, +/obj/effect/baseturf_helper, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/storage/belt, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"cG" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cH" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cI" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cJ" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cK" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cL" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/scythe, +/turf/open/indestructible/boss/air, +/area/ruin/unpowered/ash_walkers) +"cM" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/weapon/twohanded/spear, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"cN" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/weapon/twohanded/spear, +/obj/item/clothing/head/helmet/roman/legionaire, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"cO" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"cP" = ( +/obj/structure/stone_tile/block, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"cQ" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"cR" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"cS" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) (1,1,1) = {" -a -a -a -a -a -b -b -a -a -a -a -a -b -J -J -b -K -a +aa +aa +aa +aa +ah +ah +ah +ah +ah +ah +ah +aa +aa +ah +ah +ah +ah +aa +aa +aa "} (2,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -F -K -K -b -b -b +aa +ah +ah +ah +ah +aL +ah +bi +bu +am +ah +ah +ah +ah +ah +ah +ah +ah +aa +aa "} (3,1,1) = {" -b -a -a -a -a -a -a -a -c -c -c -c -r -r -r -b -b -b +aa +aa +ah +am +as +as +as +as +ak +as +as +ah +cp +bX +bL +bM +cC +ah +ah +aa "} (4,1,1) = {" -a -a -a -a -a -c -c -c -c -u -A -C -G -L -r -K -b -b +aa +aa +ah +an +ak +aA +aM +aX +bj +bv +ak +bK +bM +bM +bN +bM +bY +cG +ah +aa "} (5,1,1) = {" -a -a -c -c -c -c -j -m -r -v -P -R -f -L -r -b -b -b +aa +aa +ah +ah +as +aB +aN +aY +bk +bw +ak +bX +cS +bM +bM +cw +bM +bL +ah +ah "} (6,1,1) = {" -a -a -c -d -e -i -f -n -r -w -f -D -H -H -r -b -b -b +aa +aa +ah +ao +ak +aC +aO +aM +bl +bx +bD +bY +cg +bM +bO +cx +cw +cH +ah +ah "} (7,1,1) = {" -a -a -c -e -h -f -k -f -s -f -f -f -r -r -r -b -K -b +aa +aa +ah +ap +as +aD +aP +aZ +bm +by +ak +bN +cg +cl +cq +bM +cw +cI +ah +ah "} (8,1,1) = {" -a -a -c -f -i -f -f -o -t -f -k -f -I -K -b -b -b -b +aa +aa +ah +ah +as +aE +aQ +ba +bn +bz +ak +bZ +ch +cm +cr +bY +bM +cJ +ah +ah "} (9,1,1) = {" -a -a -c -g -f -O -f -p -r -x -Q -f -r -b -b -K -K -K +aa +ah +ah +ah +as +ak +as +as +as +ak +ak +ca +bV +cn +cs +cy +cq +bM +ah +ah "} (10,1,1) = {" -a -a -c -c -c -c -l -q -r -y -f -f -r -K -b -b -b -b +aa +ai +aq +at +aF +aR +bb +bo +bA +bE +bO +cb +ci +bA +ct +bN +bM +cK +ah +ah "} (11,1,1) = {" -a -a -a -a -a -c -c -c -c -z -B -E -r -M -b -b -b -b +ab +aj +ak +ak +ak +ak +ak +ak +ak +bF +bE +cc +bX +co +bO +bM +cg +ah +ah +aa "} (12,1,1) = {" -a -a -a -a -a -a -a -a -c -c -c -c -r -N -b -K -b -b +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +bP +bL +bX +bM +bY +bM +ah +ah +ah +aa "} (13,1,1) = {" -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +ad +ak +ak +au +aG +aS +bc +bp +ak +ak +bQ +bM +cj +bL +ah +ah +ah +ah +ah +ah "} (14,1,1) = {" -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a +ae +ak +ak +av +aH +aT +bd +bq +ak +bG +bR +cd +bM +bM +cu +ah +ah +aq +ah +cO +"} +(15,1,1) = {" +ac +ak +ak +aw +aI +aU +be +br +bB +bH +bS +ce +bM +bN +ak +ak +as +ak +ak +ah +"} +(16,1,1) = {" +ac +ak +ak +ax +aJ +aV +bf +bs +ak +bG +bT +cd +bM +bY +as +cz +cD +cL +as +cp +"} +(17,1,1) = {" +af +ak +ak +ay +aK +aW +bg +bt +ak +ak +bU +bM +ck +cb +cv +cA +cE +cM +as +ah +"} +(18,1,1) = {" +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +bV +bM +bN +ah +as +cB +cF +cN +ak +cP +"} +(19,1,1) = {" +ag +aj +ak +ak +ak +ak +ak +ak +ak +bI +bW +cf +ah +cp +as +as +as +ak +ak +cQ +"} +(20,1,1) = {" +aa +al +ar +az +az +az +bh +az +bC +bJ +ah +ah +ah +al +ah +an +bC +cp +ah +cR "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index d6a1a3567a..d90fe281d5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -120,38 +120,33 @@ /area/ruin/powered/snow_biodome) "at" = ( /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "au" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/blue, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "av" = ( /obj/structure/bookcase/random, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aw" = ( /obj/structure/table/wood, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "ax" = ( /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/snacks/beans, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "ay" = ( @@ -172,13 +167,10 @@ /area/ruin/powered/snow_biodome) "aA" = ( /obj/structure/chair/comfy/brown{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aB" = ( @@ -198,8 +190,7 @@ "aD" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aE" = ( @@ -210,26 +201,21 @@ /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/mug/coco, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aG" = ( /obj/structure/chair/comfy/brown{ - tag = "icon-comfychair (WEST)"; - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aH" = ( /mob/living/simple_animal/hostile/skeleton/eskimo, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aI" = ( @@ -254,8 +240,7 @@ "aL" = ( /obj/structure/displaycase/captain, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aM" = ( @@ -266,8 +251,7 @@ "aN" = ( /obj/structure/bed/dogbed, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "aO" = ( @@ -451,8 +435,7 @@ dir = 8 }, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "bx" = ( @@ -460,8 +443,7 @@ dir = 4 }, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "by" = ( @@ -476,15 +458,13 @@ "bz" = ( /obj/machinery/light, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "bA" = ( /obj/machinery/light, /turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/lava/smooth; - name = "floor" + baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered/snow_biodome) "bB" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm new file mode 100644 index 0000000000..f521dfc163 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm @@ -0,0 +1,362 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"h" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"i" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"l" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"m" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"n" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"p" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"q" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"s" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"u" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +b +b +b +b +b +b +a +a +a +a +a +"} +(2,1,1) = {" +a +a +b +b +c +c +b +b +b +b +b +b +a +a +"} +(3,1,1) = {" +b +b +b +c +d +c +c +b +b +b +b +b +b +a +"} +(4,1,1) = {" +b +b +c +c +k +o +c +c +c +c +b +b +b +b +"} +(5,1,1) = {" +b +c +d +g +c +p +c +v +c +c +c +c +b +b +"} +(6,1,1) = {" +b +c +c +h +l +e +s +j +c +d +e +c +c +b +"} +(7,1,1) = {" +b +c +c +c +c +q +t +w +x +y +p +e +c +b +"} +(8,1,1) = {" +b +c +e +i +m +j +u +e +c +f +d +y +c +b +"} +(9,1,1) = {" +b +c +f +j +c +r +c +o +c +c +c +c +b +b +"} +(10,1,1) = {" +b +b +c +c +c +o +c +c +b +b +c +b +b +b +"} +(11,1,1) = {" +b +b +b +c +n +c +c +b +b +b +b +b +b +a +"} +(12,1,1) = {" +a +b +b +c +c +c +b +b +b +b +b +a +a +a +"} +(13,1,1) = {" +a +a +b +b +b +b +b +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm new file mode 100644 index 0000000000..8cca384a41 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm @@ -0,0 +1,364 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"f" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"h" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"i" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"l" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"m" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"n" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"p" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"q" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"s" = ( +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"u" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"z" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"A" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +b +b +b +b +a +b +b +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +a +a +a +a +"} +(3,1,1) = {" +b +b +c +h +k +f +f +f +k +f +b +b +a +a +a +"} +(4,1,1) = {" +b +b +d +c +l +f +f +f +v +f +b +b +b +a +a +"} +(5,1,1) = {" +b +b +e +i +m +k +f +u +w +f +f +b +b +b +a +"} +(6,1,1) = {" +a +b +f +f +f +o +r +q +w +f +f +f +f +b +b +"} +(7,1,1) = {" +b +b +b +f +f +p +s +t +f +f +q +n +A +f +b +"} +(8,1,1) = {" +b +b +g +f +c +q +t +q +k +x +f +z +d +f +b +"} +(9,1,1) = {" +a +b +f +j +n +j +f +e +n +y +f +n +y +b +b +"} +(10,1,1) = {" +a +b +b +f +f +f +f +f +f +b +b +f +f +b +b +"} +(11,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(12,1,1) = {" +a +a +a +b +b +b +b +b +b +a +a +b +b +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm new file mode 100644 index 0000000000..138cefc338 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm @@ -0,0 +1,365 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"h" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"i" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"l" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"m" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"n" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"p" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"q" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"s" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"u" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +a +"} +(2,1,1) = {" +a +b +b +b +a +a +b +b +b +c +c +b +b +b +a +a +"} +(3,1,1) = {" +b +b +b +b +b +b +b +b +c +g +m +c +c +b +b +a +"} +(4,1,1) = {" +b +c +c +b +b +b +c +c +g +k +h +q +c +c +b +b +"} +(5,1,1) = {" +b +c +c +c +c +c +c +g +i +c +c +h +s +c +c +b +"} +(6,1,1) = {" +b +d +e +e +d +f +d +f +e +d +n +f +t +v +c +b +"} +(7,1,1) = {" +b +c +c +c +c +c +c +h +j +c +c +o +u +c +b +b +"} +(8,1,1) = {" +b +b +b +c +c +c +c +c +h +l +o +r +c +b +b +b +"} +(9,1,1) = {" +a +b +b +b +b +c +c +c +c +h +p +c +c +b +b +a +"} +(10,1,1) = {" +a +a +a +b +b +b +b +b +c +c +c +c +b +b +a +a +"} +(11,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +b +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm index 7f0cfced70..ef7c93f96c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -53,7 +53,6 @@ /area/ruin/powered/golem_ship) "h" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ @@ -66,7 +65,6 @@ /area/ruin/powered/golem_ship) "i" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 8 }, /turf/open/floor/plating{ @@ -119,8 +117,7 @@ /obj/structure/statue/gold/rd, /obj/structure/window/reinforced{ dir = 4; - name = "shrine of the liberator"; - pixel_x = 0 + name = "shrine of the liberator" }, /obj/machinery/light{ dir = 8 @@ -163,8 +160,7 @@ }, /obj/structure/window/reinforced{ dir = 4; - name = "shrine of the liberator"; - pixel_x = 0 + name = "shrine of the liberator" }, /turf/open/floor/mineral/titanium/purple{ baseturf = /turf/open/floor/plating/lava/smooth diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm index 930fea83aa..b050027960 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm @@ -171,7 +171,6 @@ /area/ruin/powered) "D" = ( /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (NORTH)"; icon_state = "blood1"; dir = 1 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index 369309c118..27ff98834a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -78,8 +78,7 @@ /area/ruin/unpowered) "l" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table/wood, /obj/effect/spawner/lootdrop{ @@ -225,7 +224,6 @@ /area/space) "C" = ( /obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4 }, @@ -292,7 +290,6 @@ /area/ruin/unpowered) "K" = ( /obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1 }, @@ -334,8 +331,7 @@ /area/ruin/unpowered) "P" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index ac67c57d9b..9031c4ecae 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -60,7 +60,6 @@ /area/ruin/powered/seedvault) "j" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 8 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -80,7 +79,6 @@ /area/ruin/powered/seedvault) "m" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 8 }, /turf/open/space/basic, @@ -153,7 +151,6 @@ /area/ruin/powered/seedvault) "u" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -190,9 +187,7 @@ "y" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm index 58dbdc1806..489a51fd80 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm @@ -19,9 +19,7 @@ "e" = ( /obj/structure/sign/mining/survival{ dir = 4; - icon_state = "survival"; - pixel_x = 32; - tag = "icon-survival (EAST)" + pixel_x = 32 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -47,9 +45,7 @@ "i" = ( /obj/structure/sign/mining/survival{ dir = 8; - icon_state = "survival"; - pixel_x = -32; - tag = "icon-survival (WEST)" + pixel_x = -32 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -107,7 +103,6 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (NORTH)"; icon_state = "blood1"; dir = 1 }, @@ -131,7 +126,6 @@ /area/lavaland/surface/outdoors) "t" = ( /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (NORTH)"; icon_state = "blood1"; dir = 1 }, @@ -142,7 +136,6 @@ /area/ruin/powered) "u" = ( /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (WEST)"; icon_state = "blood1"; dir = 8 }, @@ -151,7 +144,6 @@ /area/lavaland/surface/outdoors) "v" = ( /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (WEST)"; icon_state = "blood1"; dir = 8 }, @@ -169,7 +161,6 @@ "x" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (NORTH)"; icon_state = "blood1"; dir = 1 }, @@ -180,7 +171,6 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (WEST)"; icon_state = "blood1"; dir = 8 }, @@ -188,7 +178,6 @@ /area/lavaland/surface/outdoors) "z" = ( /obj/effect/decal/cleanable/blood/footprints{ - tag = "icon-blood1 (WEST)"; icon_state = "blood1"; dir = 8 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm index a2b42d46af..c259e321ff 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm @@ -17,8 +17,7 @@ /area/ruin/unpowered) "e" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/template_noop, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index afc0dfb104..fa3e0e6316 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -43,8 +43,6 @@ /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/snacks/salad/validsalad, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -127,7 +125,6 @@ /area/ruin/powered/syndicate_lava_base) "at" = ( /obj/effect/mob_spawn/human/lavaland_syndicate{ - tag = "icon-sleeper_s (EAST)"; icon_state = "sleeper_s"; dir = 4 }, @@ -138,7 +135,6 @@ /area/ruin/powered/syndicate_lava_base) "av" = ( /obj/effect/mob_spawn/human/lavaland_syndicate{ - tag = "icon-sleeper_s (WEST)"; icon_state = "sleeper_s"; dir = 8 }, @@ -147,8 +143,6 @@ "aw" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -200,8 +194,6 @@ "aA" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -258,7 +250,6 @@ /area/ruin/powered/syndicate_lava_base) "aI" = ( /obj/effect/mob_spawn/human/lavaland_syndicate/comms{ - tag = "icon-sleeper_s (EAST)"; icon_state = "sleeper_s"; dir = 4 }, @@ -358,8 +349,6 @@ dir = 8 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -388,9 +377,7 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -403,8 +390,6 @@ /area/ruin/powered/syndicate_lava_base) "aZ" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -416,8 +401,6 @@ /obj/item/device/flashlight/seclite, /obj/item/clothing/mask/gas, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -449,8 +432,6 @@ /area/ruin/powered/syndicate_lava_base) "bf" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (WEST)"; - icon_state = "toilet00"; dir = 8 }, /obj/machinery/light/small{ @@ -488,16 +469,12 @@ /obj/item/weapon/reagent_containers/glass/beaker/large, /obj/item/weapon/reagent_containers/glass/beaker/large, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) "bj" = ( /obj/machinery/chem_master, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -585,7 +562,6 @@ /area/ruin/powered/syndicate_lava_base) "br" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 32 }, /obj/machinery/computer/pandemic, @@ -608,8 +584,6 @@ /obj/machinery/iv_drip, /obj/item/weapon/reagent_containers/blood/random, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -676,8 +650,6 @@ "bD" = ( /obj/structure/closet/crate/bin, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -712,8 +684,6 @@ amount = 10 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -766,8 +736,6 @@ "bM" = ( /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -798,8 +766,6 @@ "bQ" = ( /obj/structure/chair/office/dark, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -817,8 +783,6 @@ /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker/large, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -878,8 +842,6 @@ pixel_x = 26 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -891,8 +853,6 @@ /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/science, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -917,8 +877,6 @@ /obj/item/weapon/pen, /obj/machinery/light, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -932,8 +890,6 @@ amount = 10 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -1008,22 +964,16 @@ /area/ruin/powered/syndicate_lava_base) "cn" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) "co" = ( /turf/open/floor/plasteel/podhatch/corner{ - tag = "icon-podhatchcorner (EAST)"; - icon_state = "podhatchcorner"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) "cp" = ( /turf/open/floor/plasteel/podhatch/corner{ - tag = "icon-podhatchcorner (WEST)"; - icon_state = "podhatchcorner"; dir = 8 }, /area/ruin/powered/syndicate_lava_base) @@ -1072,8 +1022,6 @@ /obj/item/target/clown, /obj/item/target/clown, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -1093,8 +1041,6 @@ /area/ruin/powered/syndicate_lava_base) "cy" = ( /turf/open/floor/plasteel/podhatch/corner{ - tag = "icon-podhatchcorner (NORTH)"; - icon_state = "podhatchcorner"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -1103,8 +1049,6 @@ /area/ruin/powered/syndicate_lava_base) "cA" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/ruin/powered/syndicate_lava_base) @@ -1185,9 +1129,7 @@ "cK" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -1222,8 +1164,7 @@ dir = 8; freerange = 1; listening = 1; - name = "Pirate Radio Listening Channel"; - pixel_x = 0 + name = "Pirate Radio Listening Channel" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -1293,8 +1234,7 @@ dir = 8; freerange = 1; listening = 0; - name = "Pirate Radio Broadcast Channel"; - pixel_x = 0 + name = "Pirate Radio Broadcast Channel" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -1354,14 +1294,12 @@ /area/ruin/powered/syndicate_lava_base) "dc" = ( /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; dir = 5 }, /area/ruin/powered/syndicate_lava_base) "dd" = ( /obj/effect/baseturf_helper, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; dir = 5 }, /area/ruin/powered/syndicate_lava_base) @@ -1453,7 +1391,6 @@ use_power = 0 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; dir = 5 }, /area/ruin/powered/syndicate_lava_base) @@ -1979,8 +1916,6 @@ dir = 4 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -2001,8 +1936,6 @@ dir = 1 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -2011,8 +1944,6 @@ dir = 1 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/ruin/powered/syndicate_lava_base) @@ -2046,8 +1977,6 @@ dir = 4 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -2079,8 +2008,6 @@ dir = 4 }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/ruin/powered/syndicate_lava_base) @@ -2108,6 +2035,14 @@ }, /turf/open/floor/circuit/red, /area/ruin/powered/syndicate_lava_base) +"gm" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/mineral/plastitanium, +/area/ruin/powered) +"gn" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/mineral/plastitanium, +/area/ruin/powered) (1,1,1) = {" aa @@ -2459,7 +2394,7 @@ ge cG cW cG -gj +ge cG dv ac @@ -2855,7 +2790,7 @@ cn cw cf aq -gf +fL cT cY dg @@ -2903,8 +2838,8 @@ ad ad ad ad -dv -du +gm +ab ab ab ab @@ -2934,10 +2869,10 @@ aY co cy aY -gc +fT aY aY -gg +fT aY cv dn @@ -2974,10 +2909,10 @@ aZ cp cz aZ -gd +fU aZ aZ -gh +fU aZ cA dn @@ -3023,8 +2958,8 @@ dv dv dv dv -dv -du +gn +ab ab ab ab @@ -3131,8 +3066,8 @@ ap aq bP ad -fY -gb +fX +ga cf aq cM @@ -3243,7 +3178,7 @@ au aO aT aq -fO +fN ae bu bu @@ -3409,7 +3344,7 @@ fQ bI ap bU -fW +fV ad ct cC diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm index 8f1e550e17..16873e4acd 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm @@ -3,38 +3,28 @@ /turf/template_noop, /area/template_noop) "b" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "c" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "d" = ( /obj/structure/alien/resin/wall, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "e" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "f" = ( /obj/structure/alien/weeds, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "g" = ( @@ -52,16 +42,12 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "j" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "k" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) @@ -70,16 +56,12 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "m" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "n" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) @@ -87,52 +69,36 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "p" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "q" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "r" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "s" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/egg, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "t" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "u" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) @@ -157,16 +123,10 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "z" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/clothing/under/rank/security, /obj/item/clothing/suit/armor/vest, /obj/item/weapon/melee/baton/loaded, @@ -179,9 +139,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "B" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -193,9 +151,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "D" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) @@ -217,9 +173,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "G" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/drone{ plants_off = 1 }, @@ -235,11 +189,7 @@ /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /obj/item/clothing/under/syndicate, /obj/item/clothing/glasses/night, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -262,20 +212,14 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "M" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/item/weapon/tank/internals/oxygen, /obj/item/clothing/suit/space/syndicate/orange, /obj/item/clothing/mask/gas, /obj/item/clothing/head/helmet/space/syndicate/orange, -/obj/item/clothing/mask/facehugger{ - icon_state = "facehugger_impregnated"; - item_state = "facehugger_impregnated"; - stat = 2 - }, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/xenonest) "N" = ( @@ -288,16 +232,12 @@ /turf/template_noop, /area/ruin/xenonest) "P" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/template_noop, /area/template_noop) "Q" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /mob/living/simple_animal/hostile/alien/drone{ plants_off = 1 @@ -309,9 +249,7 @@ /turf/template_noop, /area/ruin/xenonest) "S" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/template_noop, /area/ruin/xenonest) "T" = ( @@ -320,16 +258,12 @@ /turf/template_noop, /area/template_noop) "U" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/template_noop, /area/template_noop) "V" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/template_noop, /area/template_noop) diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index a790022693..3a1279237c 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -96,7 +96,6 @@ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -194,8 +193,7 @@ dir = 8; freerange = 1; listening = 1; - name = "Pirate Radio Listening Channel"; - pixel_x = 0 + name = "Pirate Radio Listening Channel" }, /turf/open/floor/plasteel/cafeteria, /area/djstation) @@ -214,7 +212,6 @@ /area/djstation) "aL" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -246,8 +243,7 @@ dir = 8; freerange = 1; listening = 0; - name = "Pirate Radio Broadcast Channel"; - pixel_x = 0 + name = "Pirate Radio Broadcast Channel" }, /turf/open/floor/plasteel/cafeteria, /area/djstation) @@ -325,7 +321,6 @@ /area/djstation) "be" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -354,7 +349,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/cafeteria, diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 82ef079613..52b8dcab89 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -298,7 +298,6 @@ /area/derelict/solar_control) "aI" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -373,8 +372,7 @@ lighting = 0; locked = 0; name = "Starboard Solar APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable, /obj/structure/cable{ @@ -700,8 +698,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -740,8 +737,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/derelict/bridge/ai_upload) @@ -783,8 +779,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/derelict/bridge/ai_upload) @@ -832,8 +827,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/closed/wall, /area/derelict/bridge/access) @@ -951,8 +945,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/derelict/bridge/access) @@ -1499,8 +1492,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel, /area/derelict/gravity_generator) @@ -1540,17 +1532,11 @@ /turf/open/floor/plasteel, /area/derelict/bridge/access) "er" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating, /area/derelict/bridge) "es" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/derelict/bridge) "et" = ( @@ -1600,8 +1586,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/derelict/bridge/access) @@ -1645,8 +1630,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -1659,8 +1643,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/derelict/bridge/access) @@ -1671,8 +1654,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/derelict/bridge/access) @@ -1680,8 +1662,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/derelict/bridge) @@ -1729,8 +1710,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/derelict/bridge) @@ -2038,9 +2018,7 @@ }, /area/derelict/singularity_engine) "fM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating/airless, /area/derelict/singularity_engine) "fN" = ( @@ -2164,8 +2142,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/derelict/bridge/access) @@ -2173,8 +2150,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/derelict/bridge/access) @@ -2270,19 +2246,11 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating/airless, /area/derelict/singularity_engine) "gv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating/airless, /area/derelict/singularity_engine) "gw" = ( @@ -2681,8 +2649,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/derelict/hallway/primary) @@ -2726,7 +2693,6 @@ /area/derelict/medical/chapel) "hV" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/airless/white, @@ -2797,9 +2763,7 @@ }, /area/derelict/medical/chapel) "ih" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/chapel, /area/derelict/medical/chapel) "ii" = ( @@ -2899,22 +2863,15 @@ }, /area/derelict/medical/chapel) "iy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/derelict/medical/chapel) "iz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/derelict/medical/chapel) "iA" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/airless/white, @@ -3002,7 +2959,6 @@ /area/derelict/medical) "iO" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating/airless, @@ -3101,8 +3057,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) @@ -3111,11 +3066,7 @@ /turf/open/floor/plasteel, /area/derelict/arrival) "je" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/chapel, /area/derelict/medical/chapel) "jf" = ( @@ -3208,9 +3159,7 @@ /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) "jr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, @@ -3250,8 +3199,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Worn-out APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -3311,14 +3259,12 @@ /area/ruin/unpowered/no_grav) "jH" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, /area/derelict/arrival) "jI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -3559,17 +3505,11 @@ }, /area/derelict/hallway/primary) "kn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) "ko" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) "kp" = ( @@ -3602,8 +3542,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/derelict/hallway/primary) @@ -3611,8 +3550,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ icon_state = "floorscorched1" @@ -3622,8 +3560,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) @@ -3636,8 +3573,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) @@ -3877,9 +3813,7 @@ /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) "lf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plasteel/airless, /area/derelict/hallway/primary) @@ -4061,7 +3995,6 @@ /area/derelict/atmospherics) "lL" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /turf/open/floor/plating/airless, @@ -4082,7 +4015,6 @@ /area/derelict/atmospherics) "lO" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating/airless, @@ -4134,7 +4066,6 @@ /area/derelict/atmospherics) "lV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating/airless, @@ -4341,9 +4272,7 @@ /turf/open/floor/plating/airless, /area/derelict/hallway/secondary) "mE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating/airless, /area/derelict/hallway/primary) "mF" = ( @@ -4376,11 +4305,7 @@ /turf/open/floor/plating/airless, /area/derelict/hallway/primary) "mK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating/airless, /area/derelict/hallway/primary) "mL" = ( @@ -4450,8 +4375,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/airless, /area/derelict/hallway/secondary) @@ -4478,16 +4402,13 @@ /turf/open/floor/plasteel/airless, /area/derelict/hallway/secondary) "nb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/airless, /area/derelict/hallway/secondary) "nc" = ( /obj/machinery/power/apc{ dir = 1; name = "Worn-out APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -4652,11 +4573,7 @@ }, /area/derelict/hallway/secondary) "nw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/airless, /area/derelict/hallway/secondary) "nx" = ( @@ -4749,8 +4666,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/derelict/se_solar) @@ -4822,7 +4738,6 @@ /area/template_noop) "nU" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -4836,9 +4751,7 @@ /turf/open/floor/plating/airless, /area/derelict/se_solar) "nW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/airless, /area/derelict/se_solar) "nX" = ( @@ -4867,8 +4780,7 @@ lighting = 0; locked = 0; name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plating/airless, /area/derelict/se_solar) @@ -4939,11 +4851,7 @@ /turf/open/floor/plasteel/airless, /area/derelict/se_solar) "oj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/airless, /area/derelict/se_solar) "ok" = ( @@ -4983,8 +4891,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/lattice/catwalk, /turf/template_noop, @@ -5064,8 +4971,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/lattice/catwalk, /turf/template_noop, diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index c94fe607a4..9cc48a03fa 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -20,8 +20,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/abandonedzoo) @@ -51,8 +50,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ icon_state = "0-2"; @@ -93,8 +91,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/abandonedzoo) @@ -160,7 +157,6 @@ /obj/item/clothing/mask/surgical, /obj/item/weapon/razor, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -178,8 +174,7 @@ }, /obj/item/weapon/storage/box/beakers, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ icon_state = "dark" @@ -202,8 +197,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ name = "Bio Containment"; @@ -226,8 +220,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -237,8 +230,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plating, /area/ruin/abandonedzoo) @@ -246,8 +238,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/ruin/abandonedzoo) @@ -256,8 +247,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/gun/energy/floragun, /turf/open/floor/plasteel{ @@ -268,8 +258,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/darkgreen, /area/ruin/abandonedzoo) @@ -279,8 +268,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ icon_state = "dark" @@ -295,14 +283,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/structure/cable{ d2 = 8; @@ -325,8 +311,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/ruin/abandonedzoo) @@ -373,8 +358,7 @@ lighting = 0; locked = 0; name = "Worn-out APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -396,8 +380,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/rack, /obj/item/clothing/suit/space/hardsuit/medical, @@ -485,8 +468,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/darkgreen, /area/ruin/abandonedzoo) @@ -495,8 +477,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/darkgreen, /area/ruin/abandonedzoo) @@ -515,8 +496,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ icon_state = "dark" @@ -593,14 +573,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/structure/cable, /obj/structure/cable{ @@ -633,8 +611,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ icon_state = "dark" @@ -644,8 +621,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -699,7 +675,6 @@ icon_state = "pipe-c" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -797,8 +772,7 @@ /obj/structure/cable{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/structure/cable, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 5395c297f1..40efc634aa 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -70,8 +70,7 @@ cell_type = 0; dir = 4; name = "Cargo Bay APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -93,19 +92,13 @@ /area/ruin/derelictoutpost/dockedship) "ar" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 1; - icon_state = "burst_r"; - name = "shuttle engine"; - tag = "icon-burst_r (NORTH)" + dir = 1 }, /turf/open/floor/plating, /area/ruin/derelictoutpost/dockedship) "as" = ( /obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 1; - icon_state = "burst_l"; - name = "shuttle engine"; - tag = "icon-burst_l (NORTH)" + dir = 1 }, /turf/open/floor/plating, /area/ruin/derelictoutpost/dockedship) @@ -116,15 +109,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "av" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -135,36 +126,24 @@ /area/ruin/derelictoutpost/cargobay) "ax" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /turf/open/floor/mineral/titanium/yellow, /area/ruin/derelictoutpost/dockedship) "ay" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (EAST)"; - icon_state = "rwindow"; dir = 4 }, /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /turf/open/floor/mineral/titanium/yellow, @@ -420,7 +399,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9 @@ -434,7 +412,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -452,7 +429,6 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -466,7 +442,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -492,7 +467,6 @@ /area/ruin/derelictoutpost/powerstorage) "br" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /turf/open/floor/plasteel, @@ -501,8 +475,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/powerstorage) @@ -525,7 +498,6 @@ /area/ruin/derelictoutpost/dockedship) "bw" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -605,7 +577,6 @@ }, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 @@ -721,7 +692,6 @@ /area/ruin/derelictoutpost) "bU" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -734,7 +704,6 @@ /area/ruin/derelictoutpost) "bV" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -743,7 +712,6 @@ /area/ruin/derelictoutpost) "bW" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 @@ -757,13 +725,11 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -778,14 +744,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/powerstorage) @@ -835,16 +799,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "cf" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /turf/open/floor/plasteel/darkred, @@ -894,7 +855,6 @@ cell_type = 0; dir = 2; name = "Tradepost APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -911,7 +871,6 @@ }, /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 @@ -942,8 +901,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/powerstorage) @@ -952,9 +910,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/powerstorage) @@ -967,9 +923,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/powerstorage) @@ -977,9 +931,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1020,8 +972,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -1039,9 +990,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1054,9 +1003,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, @@ -1065,9 +1012,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost) @@ -1080,9 +1025,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost) @@ -1116,7 +1059,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10 @@ -1137,7 +1079,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1151,7 +1092,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -1173,8 +1113,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1182,9 +1121,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/janitorialcart, /turf/open/floor/plasteel, @@ -1198,16 +1135,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/item/weapon/mop, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "cK" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10 @@ -1220,15 +1154,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "cL" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -1241,9 +1172,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1257,9 +1186,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1277,8 +1204,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) @@ -1312,7 +1238,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 @@ -1342,7 +1267,6 @@ /area/ruin/derelictoutpost/cargobay) "cX" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 @@ -1371,7 +1295,6 @@ }, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1 @@ -1413,7 +1336,6 @@ /area/ruin/derelictoutpost/cargobay) "dd" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10 @@ -1422,7 +1344,6 @@ /area/ruin/derelictoutpost/cargobay) "de" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1431,7 +1352,6 @@ /area/ruin/derelictoutpost/cargobay) "df" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1445,14 +1365,12 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "dg" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1465,15 +1383,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargobay) "dh" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1491,15 +1406,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/derelictoutpost/cargobay) "di" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -1565,7 +1477,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -1579,7 +1490,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 @@ -1614,8 +1524,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/derelictoutpost) @@ -1645,7 +1554,6 @@ /area/ruin/derelictoutpost) "dv" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9 @@ -1659,7 +1567,6 @@ /area/ruin/derelictoutpost) "dw" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1678,7 +1585,6 @@ /area/ruin/derelictoutpost) "dx" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1692,7 +1598,6 @@ /area/ruin/derelictoutpost) "dy" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1707,7 +1612,6 @@ /area/ruin/derelictoutpost) "dz" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -1724,7 +1628,6 @@ /area/ruin/derelictoutpost) "dA" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -1733,7 +1636,6 @@ /area/ruin/derelictoutpost) "dB" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 @@ -1746,8 +1648,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/derelictoutpost) @@ -1787,7 +1688,6 @@ /area/ruin/derelictoutpost) "dF" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10 @@ -1801,7 +1701,6 @@ /area/ruin/derelictoutpost) "dG" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -1815,7 +1714,6 @@ /area/ruin/derelictoutpost) "dH" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 @@ -1836,8 +1734,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/derelictoutpost) @@ -1866,7 +1763,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -1883,7 +1779,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9 @@ -1891,14 +1786,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/derelictoutpost) "dN" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -1917,7 +1810,6 @@ name = "gelatinous membrane" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -1936,7 +1828,6 @@ }, /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -1950,7 +1841,6 @@ name = "gelatinous floor" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 @@ -2066,8 +1956,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/derelictoutpost) @@ -2127,8 +2016,7 @@ cell_type = 0; dir = 4; name = "Cargo Storage APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -2193,8 +2081,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargostorage) @@ -2209,7 +2096,6 @@ /area/ruin/derelictoutpost) "ew" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -2219,7 +2105,6 @@ /area/ruin/derelictoutpost/cargostorage) "ex" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -2228,7 +2113,6 @@ /area/ruin/derelictoutpost/cargostorage) "ey" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8 @@ -2238,7 +2122,6 @@ /area/ruin/derelictoutpost/cargostorage) "ez" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5 @@ -2246,8 +2129,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargostorage) @@ -2306,7 +2188,6 @@ /area/ruin/derelictoutpost/cargostorage) "eI" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10 @@ -2314,8 +2195,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/derelictoutpost/cargostorage) @@ -2326,7 +2206,6 @@ name = "pried-open airlock" }, /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4 @@ -2334,15 +2213,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/derelictoutpost/cargostorage) "eK" = ( /obj/effect/decal/cleanable/blood/old{ - tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6 diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index 06fc73991c..5af3b742e7 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -46,7 +46,6 @@ /area/ruin/unpowered/no_grav) "ak" = ( /obj/structure/fluff/bus/passable{ - tag = "icon-wheredahoodat"; icon_state = "wheredahoodat" }, /turf/open/floor/plating/asteroid/airless, @@ -58,7 +57,6 @@ /area/ruin/unpowered/no_grav) "am" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/effect/decal/cleanable/dirt, @@ -68,7 +66,6 @@ /area/ruin/unpowered/no_grav) "an" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/item/weapon/reagent_containers/food/snacks/faggot, @@ -85,8 +82,7 @@ "ap" = ( /obj/structure/fluff/bus/passable/seat{ icon_state = "backseat"; - pixel_y = 15; - tag = "icon-backseat" + pixel_y = 15 }, /turf/open/floor/plasteel/airless/black{ icon_state = "bus" @@ -94,7 +90,6 @@ /area/ruin/unpowered/no_grav) "aq" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/item/weapon/reagent_containers/food/snacks/faggot, @@ -105,7 +100,6 @@ /area/ruin/unpowered/no_grav) "ar" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, @@ -116,8 +110,7 @@ "as" = ( /obj/structure/fluff/bus/passable/seat/driver{ icon_state = "driverseat"; - pixel_y = 17; - tag = "icon-driverseat" + pixel_y = 17 }, /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb, /obj/effect/decal/cleanable/dirt, @@ -127,7 +120,6 @@ /area/ruin/unpowered/no_grav) "at" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-hoodtop"; icon_state = "hoodtop" }, /turf/open/floor/plating/asteroid/airless, @@ -199,7 +191,6 @@ /area/ruin/unpowered/no_grav) "aE" = ( /obj/structure/fluff/bus/passable{ - tag = "icon-topdoor"; icon_state = "topdoor" }, /obj/effect/decal/cleanable/dirt, @@ -209,14 +200,12 @@ /area/ruin/unpowered/no_grav) "aF" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-hoodbottom"; icon_state = "hoodbottom" }, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aG" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /turf/open/floor/plating/asteroid/airless, @@ -228,28 +217,24 @@ /area/ruin/unpowered/no_grav) "aI" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-frontwallbottomrear"; icon_state = "frontwallbottomrear" }, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aJ" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-frontwallbottom"; icon_state = "frontwallbottom" }, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aK" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-reartire"; icon_state = "reartire" }, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aL" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-frontwallbottom"; icon_state = "frontwallbottom" }, /obj/effect/decal/cleanable/oil, @@ -258,14 +243,12 @@ "aM" = ( /obj/structure/fluff/bus/passable{ icon_state = "bottomdoor"; - layer = 3; - tag = "icon-bottomdoor" + layer = 3 }, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aN" = ( /obj/structure/fluff/bus/dense{ - tag = "icon-fronttire"; icon_state = "fronttire" }, /turf/open/floor/plating/asteroid/airless, @@ -298,7 +281,6 @@ /area/ruin/unpowered/no_grav) "aU" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/effect/decal/cleanable/dirt, @@ -309,7 +291,6 @@ /area/ruin/unpowered/no_grav) "aV" = ( /obj/structure/fluff/bus/passable/seat{ - tag = "icon-backseat"; icon_state = "backseat" }, /obj/effect/decal/remains/human, @@ -320,8 +301,7 @@ "aW" = ( /obj/structure/fluff/bus/passable/seat/driver{ icon_state = "driverseat"; - pixel_y = 17; - tag = "icon-driverseat" + pixel_y = 17 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless/black{ diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index f94f4da1ef..c4b1fec1f1 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -105,7 +105,6 @@ /area/ruin/powered) "as" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/closed/wall/mineral/plastitanium, @@ -179,7 +178,6 @@ /area/template_noop) "aE" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (EAST)"; icon_state = "pile"; dir = 4 }, @@ -228,7 +226,6 @@ /area/ruin/unpowered/no_grav) "aO" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/closed/wall/mineral/plastitanium, @@ -256,7 +253,6 @@ /area/ruin/unpowered/no_grav) "aT" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-singular"; icon_state = "singular" }, /turf/template_noop, @@ -270,7 +266,6 @@ /area/ruin/powered) "aV" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-singular"; icon_state = "singular" }, /obj/effect/decal/cleanable/shreds, @@ -395,7 +390,6 @@ /area/ruin/unpowered) "bq" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (WEST)"; icon_state = "pile"; dir = 8 }, @@ -453,7 +447,6 @@ /area/ruin/unpowered) "bA" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile"; icon_state = "pile" }, /turf/template_noop, @@ -515,7 +508,6 @@ /area/ruin/unpowered) "bK" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1 }, @@ -551,7 +543,6 @@ /area/ruin/powered) "bQ" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1 }, @@ -626,15 +617,12 @@ /area/ruin/unpowered) "ca" = ( /obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 8; - icon_state = "burst_l"; - tag = "icon-burst_l (EAST)" + dir = 8 }, /turf/open/floor/plating/airless, /area/ruin/unpowered) "cb" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/closed/wall/mineral/titanium, @@ -659,7 +647,6 @@ /area/ruin/powered) "cg" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (EAST)"; icon_state = "plating"; dir = 4 }, @@ -847,9 +834,7 @@ /area/ruin/unpowered) "cF" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 8; - icon_state = "burst_r"; - tag = "icon-burst_r (EAST)" + dir = 8 }, /turf/open/floor/plating/airless, /area/ruin/unpowered) @@ -931,7 +916,6 @@ /area/ruin/unpowered) "cR" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (WEST)"; icon_state = "plating"; dir = 8 }, diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm index d96f9b85f1..4f9ce74170 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm @@ -57,8 +57,7 @@ "l" = ( /obj/structure/shuttle/engine/heater{ color = "#FFFF00"; - dir = 4; - icon_state = "heater" + dir = 4 }, /obj/structure/window/reinforced{ color = "#FFFF00"; @@ -69,10 +68,9 @@ }, /area/ruin/unpowered) "m" = ( -/obj/structure/shuttle/engine/propulsion{ +/obj/structure/shuttle/engine/propulsion/left{ color = "#FFFF00"; - dir = 4; - icon_state = "propulsion_l" + dir = 4 }, /turf/template_noop, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index b4d65c7bd9..6dcae3923e 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -136,8 +136,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) @@ -330,8 +329,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) @@ -340,8 +338,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) @@ -349,8 +346,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -505,8 +501,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/hand_labeler, /turf/open/floor/plating, @@ -515,8 +510,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) @@ -524,8 +518,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/storage/box, /turf/open/floor/plating, @@ -774,8 +767,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) @@ -1024,8 +1016,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) @@ -1065,8 +1056,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) @@ -1074,8 +1064,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -1088,8 +1077,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1118,7 +1106,6 @@ /area/awaymission/BMPship/Aft) "dr" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ @@ -1128,8 +1115,7 @@ /area/awaymission/BMPship/Aft) "ds" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/template_noop, /area/awaymission/BMPship/Aft) @@ -1144,7 +1130,6 @@ /area/awaymission/BMPship/Fore) "dv" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable{ @@ -1172,8 +1157,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) @@ -1213,8 +1197,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) @@ -1264,8 +1247,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) @@ -1400,8 +1382,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/BMPship/Aft) @@ -1563,8 +1544,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1583,8 +1563,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) @@ -1618,8 +1597,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1724,8 +1702,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) @@ -1780,7 +1757,6 @@ /area/awaymission/BMPship/Fore) "eU" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/closet, @@ -1818,8 +1794,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/weapon/stock_parts/cell/high, /turf/open/floor/plasteel, @@ -1836,8 +1811,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/unpowered/shuttle, /turf/open/floor/carpet, @@ -1962,8 +1936,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Fore) @@ -1971,8 +1944,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless{ icon_state = "panelscorched" @@ -2015,8 +1987,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) @@ -2070,8 +2041,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Fore) @@ -2100,8 +2070,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) @@ -2160,8 +2129,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) @@ -2326,8 +2294,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) @@ -2448,8 +2415,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) @@ -2458,8 +2424,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall/mineral/titanium/interior, /area/awaymission/BMPship/Midship) @@ -2467,8 +2432,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 790868ded7..16f78c7e67 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1,421 +1,6648 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/closed/mineral/random/low_chance,/area/template_noop) -"ac" = (/turf/open/floor/plating/asteroid/airless,/area/template_noop) -"ad" = (/turf/closed/mineral/random/low_chance,/area/asteroid/cave{name = "Asteroid - Space"}) -"ae" = (/turf/open/floor/plating/asteroid/airless,/area/asteroid/cave{name = "Asteroid - Space"}) -"af" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ag" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"ah" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ai" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aj" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"ak" = (/obj/machinery/conveyor{dir = 4; id = "bunkerrecycle"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"al" = (/obj/machinery/conveyor{dir = 4; id = "bunkerrecycle"},/obj/structure/window/reinforced/highpressure,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"am" = (/obj/machinery/recycler/deathtrap,/obj/machinery/conveyor{dir = 4; id = "bunkerrecycle"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"an" = (/obj/machinery/conveyor{dir = 1; id = "bunkerrecycle"; movedir = 2},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"ao" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ap" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ar" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"as" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"at" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"au" = (/obj/machinery/conveyor_switch{id = "bunkerrecycle"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"av" = (/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/conveyor{dir = 1; id = "bunkerrecycle"; movedir = 2},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aw" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"ax" = (/obj/machinery/processor{name = "processor"},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ay" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"az" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aA" = (/obj/machinery/gibber,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aB" = (/obj/structure/table,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aE" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "Recycling APC"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aF" = (/obj/machinery/conveyor{dir = 1; id = "bunkerrecycle"; movedir = 2},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aG" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/obj/effect/turf_decal/delivery,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aH" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/storage/toolbox/drone,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aI" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/cardboard,/obj/item/stack/cable_coil,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/packageWrap,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aJ" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/zipties,/obj/item/weapon/switchblade,/obj/effect/turf_decal/delivery,/obj/item/device/gps{gpstag = "DEEP"},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aK" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aL" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/clothing/shoes/combat,/obj/item/clothing/shoes/combat,/obj/effect/turf_decal/delivery,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aM" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock{name = "Freezer"},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aO" = (/obj/machinery/door/airlock/highsecurity{name = "Recycling Room"; req_access_txt = "200"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aP" = (/obj/machinery/door/airlock/highsecurity{name = "Recycling Room"; req_access_txt = "200"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/crusher) -"aQ" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"aR" = (/obj/structure/closet/cardboard,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/shovel,/obj/item/weapon/pickaxe/drill,/obj/item/weapon/pickaxe/drill,/obj/item/weapon/pickaxe/drill,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aS" = (/obj/structure/closet/cardboard,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/weapon/storage/box/rxglasses,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aT" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/box/bodybags,/obj/item/clothing/glasses/meson/engine,/obj/item/clothing/glasses/meson/engine,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aU" = (/obj/structure/closet/cardboard,/obj/item/weapon/kitchen/knife,/obj/item/weapon/kitchen/knife,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/kitchen/rollingpin,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aV" = (/obj/structure/closet/cardboard,/obj/item/weapon/defibrillator,/obj/item/weapon/storage/box/medipens,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aW" = (/obj/structure/closet/cardboard,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage/storage) -"aX" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/item/weapon/storage/box/cups,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aY" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/soysauce{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"aZ" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ba" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bc" = (/obj/structure/sink/kitchen{pixel_y = 24},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bd" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"be" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"bf" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"bg" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bh" = (/obj/structure/table,/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/weapon/storage/bag/plants,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bi" = (/obj/machinery/vending/hydronutrients,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bj" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bk" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/light{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bl" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/obj/machinery/light{dir = 1},/turf/open/floor/light{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bp" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bq" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"br" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bs" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bt" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bu" = (/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bx" = (/obj/structure/table,/obj/machinery/microwave,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"by" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"bz" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"bA" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bB" = (/obj/structure/table,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bC" = (/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bF" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bG" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bH" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bI" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/box/ingredients/wildcard,/obj/item/weapon/storage/box/ingredients/wildcard,/obj/item/weapon/storage/box/ingredients/wildcard,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bJ" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bN" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bO" = (/obj/machinery/light,/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"bQ" = (/obj/machinery/door/airlock/glass{name = "Hydroponics"},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bR" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bS" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/light{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"bT" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate{name = "food crate"},/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bU" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate{name = "food crate"},/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bX" = (/obj/machinery/door/airlock/highsecurity{name = "General Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"bY" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Kitchen"},/turf/open/floor/plasteel/cafeteria{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"bZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/smartfridge,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/kitchen) -"ca" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cb" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cc" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cd" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"ce" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cg" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Hydroponics APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"ch" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"ci" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cj" = (/obj/structure/noticeboard{pixel_y = 32},/obj/item/weapon/paper{info = "To whoever keeps it up with the long, hot showers: you're going on the next ice-mining trip. If you feel the need to use up all the damn water during your 'relaxation' time, you sure as hell are gonna work for all that water!"; name = "water concerns"},/obj/item/weapon/paper{info = "Hydroponics is our life and blood here, if it dies then so do we. Keep the damn plants watered!"; name = "hydroponics notice"},/obj/item/weapon/paper{info = "Please make sure to throw all excess waste into the crusher in the back! It's amazing what you can get out of what others consider 'garbage' if you run it through a giant crusher enough times."; name = "recycling notice"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ck" = (/obj/structure/chair{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/obj/structure/sign/barsign{pixel_y = 32},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cl" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cm" = (/obj/structure/table,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"co" = (/obj/structure/closet/crate/bin,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cp" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cq" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cr" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ct" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cu" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cv" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/item/weapon/reagent_containers/glass/bucket{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cx" = (/obj/machinery/seed_extractor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cy" = (/obj/machinery/biogenerator,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/hydrofloor{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cz" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/light{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cA" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/light{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/hydroponics) -"cB" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate{name = "food crate"},/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"cC" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"cD" = (/obj/machinery/door/airlock/highsecurity{name = "Provisions Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"cE" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cF" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cG" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cH" = (/obj/structure/chair{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cI" = (/obj/structure/table,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cJ" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cK" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cM" = (/obj/machinery/shower{dir = 4},/obj/structure/window/reinforced/highpressure,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cN" = (/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cO" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 24},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cQ" = (/obj/structure/cable/yellow,/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Storage APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"cR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/arcade,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cS" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cT" = (/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cU" = (/obj/structure/chair{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cV" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/vending/cigarette,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cX" = (/obj/structure/toilet{dir = 4},/obj/structure/curtain,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"cZ" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"da" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"db" = (/obj/structure/table,/obj/item/device/mass_spectrometer/adv,/obj/item/device/mass_spectrometer/adv,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dd" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/brute,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"de" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"df" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dh" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/machinery/computer/arcade,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"di" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dj" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dn" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"do" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dq" = (/obj/machinery/door/airlock{name = "Showers"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ds" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dt" = (/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"du" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dv" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dw" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate{name = "food crate"},/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/vending_refill/coffee,/obj/item/weapon/vending_refill/cigarette,/obj/item/weapon/vending_refill/cigarette,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dx" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate{name = "food crate"},/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/vending_refill/coffee,/obj/item/weapon/vending_refill/cigarette,/obj/item/weapon/vending_refill/cigarette,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; icon_state = "scrub_map"; on = 1; tag = "icon-scrub_map (NORTH)"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/storage) -"dA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"dB" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"dC" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dJ" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dL" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dM" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dP" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"dQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"dR" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"dS" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dorms"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"dT" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dU" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dV" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow,/obj/machinery/power/apc{dir = 2; name = "Main Area APC"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dW" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden,/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dX" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dY" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"dZ" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ea" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eb" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ec" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ed" = (/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ee" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ef" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eh" = (/obj/structure/table,/obj/item/weapon/storage/backpack/duffelbag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large duffelbag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "duffelbag"; pixel_y = 5},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ei" = (/obj/structure/dresser,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"ej" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"ek" = (/obj/structure/bed,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/bedsheet,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"el" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"em" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"en" = (/obj/machinery/door/airlock/highsecurity{name = "Canister Storage"; req_access_txt = "200"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eo" = (/obj/machinery/door/poddoor{id = "bunkerinterior"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"ep" = (/obj/machinery/door/poddoor{id = "bunkerinterior"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eq" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"er" = (/obj/machinery/door/airlock/highsecurity{name = "Airlock Control"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"es" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"et" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eu" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ev" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ew" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ex" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = -3; pixel_y = 6},/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = 2; pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_x = 32},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"ey" = (/obj/structure/closet/cabinet,/obj/item/weapon/card/id/away{desc = "A specialized ID meant for accessing some sort of specific door."; icon_state = "centcom"; name = "bunker access ID"},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"ez" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/light/small,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"eA" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"eB" = (/obj/machinery/door/airlock{name = "Personal Dorm"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"eC" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"eD" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eE" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light/small{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eF" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eG" = (/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eH" = (/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eI" = (/obj/structure/table,/obj/machinery/button/door{id = "bunkerexterior"; name = "exterior blastdoor access"; pixel_x = -24; pixel_y = -8; req_access_txt = "200"},/obj/machinery/button/door{id = "bunkerinterior"; name = "interior blastdoor access"; pixel_x = -24; pixel_y = 0; req_access_txt = "200"},/obj/machinery/button/door{id = "bunkershutter"; name = "hallway shutter toggle"; pixel_x = -24; pixel_y = 8; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/computer/security/telescreen{dir = 1; name = "Bunker Entrance"; network = list("Bunker1"); pixel_x = 0; pixel_y = 2},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eJ" = (/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eK" = (/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eL" = (/obj/machinery/atmospherics/pipe/simple/orange/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "Airlock Control APC"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eM" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/cable/yellow,/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eN" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/pill_bottle/charcoal,/obj/machinery/light,/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eO" = (/obj/structure/table,/obj/item/clothing/gloves/combat{pixel_x = -3; pixel_y = 4},/obj/item/clothing/gloves/combat{pixel_x = 3; pixel_y = -2},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eP" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare{pixel_y = 6},/obj/item/device/flashlight/flare{pixel_y = 6},/obj/item/device/flashlight/flare{pixel_y = 6},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"eQ" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"eR" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/turf_decal/delivery,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; icon_state = "scrub_map"; on = 1; tag = "icon-scrub_map (NORTH)"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"eT" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/door/poddoor/shutters/preopen{id = "bunkershutter"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eU" = (/obj/structure/chair{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eX" = (/obj/machinery/atmospherics/components/binary/valve{name = "Hall Siphon to Port"},/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"eY" = (/obj/machinery/door/airlock/highsecurity{name = "Atmospherics and Power Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"eZ" = (/obj/machinery/door/airlock/highsecurity{name = "Atmospherics and Power Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fa" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"fb" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) -"fc" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fd" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8},/turf/open/floor/plating/airless/astplate{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fe" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"ff" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/delivery,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fg" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fh" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/door/poddoor/shutters/preopen{id = "bunkershutter"},/obj/structure/cable/yellow,/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fi" = (/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fk" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{tag = "icon-connector_map (NORTH)"; icon_state = "connector_map"; dir = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fm" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fn" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fp" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fq" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/light/small{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fr" = (/obj/machinery/atmospherics/pipe/simple/yellow/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fs" = (/obj/machinery/atmospherics/pipe/simple/yellow/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"ft" = (/obj/machinery/atmospherics/pipe/simple/yellow/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -24; tag = "icon-alarm0 (EAST)"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fu" = (/obj/machinery/atmospherics/pipe/simple/yellow/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fv" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; icon_state = "mvalve_map"; name = "Port To Hall"; tag = "icon-mvalve_map (EAST)"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fw" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible{tag = "icon-connector_map (WEST)"; icon_state = "connector_map"; dir = 8},/obj/item/weapon/wrench,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/airlock) -"fx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "Power and Atmospherics APC"; pixel_x = -25; pixel_y = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fy" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 1; icon_state = "mixer_off"; node1_concentration = 0.2; node2_concentration = 0.8; on = 1; tag = "icon-mixer_off (NORTH)"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fz" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fA" = (/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fB" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out_bunker"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fD" = (/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fE" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/cable/yellow,/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Dormory APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"fF" = (/obj/machinery/door/poddoor{id = "bunkerexterior"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fG" = (/obj/machinery/door/poddoor{id = "bunkerexterior"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fH" = (/obj/machinery/atmospherics/pipe/simple/supplymain/visible,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fI" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fJ" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in_bunker"; name = "Oxygen Supply Control"; output_tag = "o2_out_bunker"; sensors = list("o2_sensor_bunker" = "Tank")},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fK" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fL" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor_bunker"},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fM" = (/obj/machinery/atmospherics/miner/oxygen,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"fO" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"fP" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"fQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fR" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fS" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fT" = (/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fU" = (/obj/machinery/camera{network = list("Bunker1")},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fV" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"fW" = (/obj/machinery/power/smes/engineering,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fX" = (/obj/machinery/power/terminal{tag = "icon-term (WEST)"; icon_state = "term"; dir = 8},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/effect/turf_decal/stripes/end{tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fY" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"fZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"ga" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "o2"; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gb" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gc" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gd" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2_in_bunker"},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"ge" = (/obj/machinery/door/airlock{name = "Personal Dorm"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gf" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gg" = (/obj/machinery/washing_machine,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gh" = (/obj/machinery/power/smes/engineering,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gk" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gm" = (/obj/effect/turf_decal/stripes/line,/obj/structure/closet/crate/bin{name = "laundry bin"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gn" = (/obj/machinery/light/small,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"go" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"gp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/sign/electricshock{pixel_x = -32},/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gu" = (/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out_bunker"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gw" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gx" = (/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gy" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gz" = (/obj/machinery/door/airlock/highsecurity{desc = "Nothing to see here, folks, just an inconspicuous airlock. Now go away!"; name = "Inconspicuous Airlock"; req_access_txt = "200"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"gA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gC" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in_bunker"; name = "Nitrogen Supply Control"; output_tag = "n2_out_bunker"; sensors = list("n2_sensor_bunker" = "Tank")},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gD" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor_bunker"},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gE" = (/obj/machinery/atmospherics/miner/nitrogen,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gF" = (/obj/machinery/light/small,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gG" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) -"gH" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"gI" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"gJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/highsecurity{name = "RTG Observation"; req_access_txt = "200"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gN" = (/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gO" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gP" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "o2_in_bunker"},/turf/open/floor/plating/airless{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gQ" = (/obj/machinery/door/airlock/highsecurity{desc = "Nothing to see here, folks, just an inconspicuous airlock. Now go away!"; name = "Inconspicuous Airlock"; req_access_txt = "200"},/obj/structure/fans/tiny,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage) -"gR" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gS" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure,/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced/highpressure{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/door/firedoor,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/machinery/autolathe,/obj/structure/sign/radiation{pixel_x = -32},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gW" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel/floorgrime{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gX" = (/obj/machinery/power/rtg/advanced,/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gY" = (/obj/machinery/door/airlock/highsecurity{name = "Telecomms"; req_access_txt = "200"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"gZ" = (/obj/machinery/power/rtg/advanced,/obj/structure/cable,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"ha" = (/obj/machinery/power/rtg/advanced,/obj/structure/cable,/obj/machinery/light/small,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"hb" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"hc" = (/obj/machinery/light/small,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) -"hd" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/power) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/mineral/random/low_chance, +/area/ruin/unpowered/no_grav) +"ac" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ad" = ( +/turf/closed/mineral/random/low_chance, +/area/asteroid/cave{ + name = "Asteroid - Space" + }) +"ae" = ( +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/cave{ + name = "Asteroid - Space" + }) +"af" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ag" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"ah" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ai" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"ak" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "bunkerrecycle" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"al" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "bunkerrecycle" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"am" = ( +/obj/machinery/recycler/deathtrap, +/obj/machinery/conveyor{ + dir = 4; + id = "bunkerrecycle" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"an" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "bunkerrecycle"; + movedir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"ao" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ap" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ar" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"as" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"at" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"au" = ( +/obj/machinery/conveyor_switch{ + id = "bunkerrecycle" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"av" = ( +/obj/structure/window/reinforced/highpressure{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "bunkerrecycle"; + movedir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aw" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"ax" = ( +/obj/machinery/processor{ + name = "processor" + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ay" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"az" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aA" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aB" = ( +/obj/structure/table, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aC" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aD" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aE" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Recycling APC"; + pixel_y = -24 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aF" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "bunkerrecycle"; + movedir = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aG" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/sheet/mineral/silver, +/obj/item/stack/sheet/mineral/gold, +/obj/item/stack/sheet/mineral/silver, +/obj/item/stack/sheet/mineral/silver, +/obj/item/stack/sheet/mineral/gold, +/obj/item/stack/sheet/mineral/gold, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aH" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/toolbox/drone, +/obj/item/weapon/storage/toolbox/drone, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aI" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/sheet/cardboard, +/obj/item/stack/cable_coil, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/packageWrap, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aJ" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/storage/box/zipties, +/obj/item/weapon/switchblade, +/obj/effect/turf_decal/delivery, +/obj/item/device/gps{ + gpstag = "DEEP" + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aK" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aL" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aM" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Freezer" + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aO" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Recycling Room"; + req_access_txt = "200" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aP" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Recycling Room"; + req_access_txt = "200" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"aQ" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"aR" = ( +/obj/structure/closet/cardboard, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/weapon/shovel, +/obj/item/weapon/pickaxe/drill, +/obj/item/weapon/pickaxe/drill, +/obj/item/weapon/pickaxe/drill, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aS" = ( +/obj/structure/closet/cardboard, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/tape/random, +/obj/item/device/tape/random, +/obj/item/device/tape/random, +/obj/item/weapon/storage/box/rxglasses, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/obj/item/clothing/glasses/night, +/obj/item/clothing/glasses/night, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aT" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/storage/box/syringes, +/obj/item/weapon/storage/box/syringes, +/obj/item/weapon/storage/box/beakers, +/obj/item/weapon/storage/box/beakers, +/obj/item/weapon/storage/box/matches, +/obj/item/weapon/storage/box/bodybags, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aU" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/kitchen/knife, +/obj/item/weapon/kitchen/knife, +/obj/item/weapon/cultivator, +/obj/item/weapon/hatchet, +/obj/item/weapon/kitchen/rollingpin, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aV" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/defibrillator, +/obj/item/weapon/storage/box/medipens, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aW" = ( +/obj/structure/closet/cardboard, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/deepstorage/storage) +"aX" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/storage/box/cups, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aY" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/food/condiment/soysauce{ + pixel_x = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"aZ" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ba" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bc" = ( +/obj/structure/sink/kitchen{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bd" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"be" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"bf" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"bg" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bh" = ( +/obj/structure/table, +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/item/weapon/storage/bag/plants, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bi" = ( +/obj/machinery/vending/hydronutrients, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bj" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bk" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bl" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bp" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"br" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bs" = ( +/obj/structure/closet/secure_closet/freezer/kitchen{ + req_access = null + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/item/weapon/storage/box/drinkingglasses, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bt" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bu" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bx" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"by" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"bz" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"bA" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bB" = ( +/obj/structure/table, +/obj/item/weapon/cultivator, +/obj/item/weapon/hatchet, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bC" = ( +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bH" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bI" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/box/ingredients/wildcard, +/obj/item/weapon/storage/box/ingredients/wildcard, +/obj/item/weapon/storage/box/ingredients/wildcard, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bN" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Kitchen APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bO" = ( +/obj/machinery/light, +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bP" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"bQ" = ( +/obj/machinery/door/airlock/glass{ + name = "Hydroponics" + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bR" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bS" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"bT" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bU" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bX" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "General Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Kitchen" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/smartfridge, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/kitchen) +"ca" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cb" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cc" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cd" = ( +/obj/structure/table, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"ce" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cf" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cg" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Hydroponics APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"ch" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"ci" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cj" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + info = "To whoever keeps it up with the long, hot showers: you're going on the next ice-mining trip. If you feel the need to use up all the damn water during your 'relaxation' time, you sure as hell are gonna work for all that water!"; + name = "water concerns" + }, +/obj/item/weapon/paper{ + info = "Hydroponics is our life and blood here, if it dies then so do we. Keep the damn plants watered!"; + name = "hydroponics notice" + }, +/obj/item/weapon/paper{ + info = "Please make sure to throw all excess waste into the crusher in the back! It's amazing what you can get out of what others consider 'garbage' if you run it through a giant crusher enough times."; + name = "recycling notice" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ck" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cl" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cm" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"co" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cp" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cq" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cr" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ct" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cu" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cv" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cw" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/item/weapon/reagent_containers/glass/bucket{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cx" = ( +/obj/machinery/seed_extractor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cy" = ( +/obj/machinery/biogenerator, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel/hydrofloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cz" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cA" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"cB" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"cC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"cD" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Provisions Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"cE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cF" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cG" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cH" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cI" = ( +/obj/structure/table, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cJ" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cK" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cM" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/structure/window/reinforced/highpressure, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cN" = ( +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cQ" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Storage APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"cR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cS" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cT" = ( +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cU" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cV" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/cigarette, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cX" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"cZ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"da" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"db" = ( +/obj/structure/table, +/obj/item/device/mass_spectrometer/adv, +/obj/item/device/mass_spectrometer/adv, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/gauze, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dc" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dd" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"de" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"df" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dh" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dl" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dm" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"do" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dq" = ( +/obj/machinery/door/airlock{ + name = "Showers" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ds" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dt" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"du" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dv" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dw" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/vending_refill/coffee, +/obj/item/weapon/vending_refill/cigarette, +/obj/item/weapon/vending_refill/cigarette, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dx" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/vending_refill/coffee, +/obj/item/weapon/vending_refill/cigarette, +/obj/item/weapon/vending_refill/cigarette, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/storage) +"dA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"dB" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"dC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dJ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dL" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dM" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dP" = ( +/obj/structure/table, +/obj/item/device/radio{ + pixel_x = -4 + }, +/obj/item/device/radio, +/obj/item/device/radio{ + pixel_x = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"dQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"dR" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"dS" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dorms" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"dT" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dU" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dV" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow, +/obj/machinery/power/apc{ + dir = 2; + name = "Main Area APC"; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dW" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dX" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dY" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"dZ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ea" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eb" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ec" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ed" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ee" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eg" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eh" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery{ + pixel_y = 5 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Armory APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ei" = ( +/obj/structure/dresser, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"ej" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"ek" = ( +/obj/structure/bed, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/bedsheet, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"el" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"em" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"en" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Canister Storage"; + req_access_txt = "200" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eo" = ( +/obj/machinery/door/poddoor{ + id = "bunkerinterior" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ep" = ( +/obj/machinery/door/poddoor{ + id = "bunkerinterior" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eq" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"er" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Airlock Control"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"es" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"et" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eu" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ev" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ew" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ex" = ( +/obj/structure/table, +/obj/item/weapon/gun/ballistic/automatic/wt550{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/weapon/gun/ballistic/automatic/wt550{ + pixel_x = 2 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"ey" = ( +/obj/structure/closet/cabinet, +/obj/item/weapon/card/id/away{ + desc = "A specialized ID meant for accessing some sort of specific door."; + icon_state = "centcom"; + name = "bunker access ID" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"ez" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"eA" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"eB" = ( +/obj/machinery/door/airlock{ + name = "Personal Dorm" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"eC" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"eD" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eE" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eI" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "bunkerexterior"; + name = "exterior blastdoor access"; + pixel_x = -24; + pixel_y = -8; + req_access_txt = "200" + }, +/obj/machinery/button/door{ + id = "bunkerinterior"; + name = "interior blastdoor access"; + pixel_x = -24; + req_access_txt = "200" + }, +/obj/machinery/button/door{ + id = "bunkershutter"; + name = "hallway shutter toggle"; + pixel_x = -24; + pixel_y = 8; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + dir = 1; + name = "Bunker Entrance"; + network = list("Bunker1"); + pixel_y = 2 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Airlock Control APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eM" = ( +/obj/structure/grille, +/obj/structure/cable/yellow, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/pill_bottle/charcoal, +/obj/machinery/light, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eO" = ( +/obj/structure/table, +/obj/item/clothing/gloves/combat{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/clothing/gloves/combat{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eP" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/drone, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/flare{ + pixel_y = 6 + }, +/obj/item/device/flashlight/flare{ + pixel_y = 6 + }, +/obj/item/device/flashlight/flare{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"eQ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"eR" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"eT" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "bunkershutter" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eU" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eV" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eX" = ( +/obj/machinery/atmospherics/components/binary/valve{ + name = "Hall Siphon to Port" + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"eY" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Atmospherics and Power Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"eZ" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Atmospherics and Power Storage"; + req_access_txt = "200" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"fb" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/armory) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating/airless/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fe" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"ff" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fh" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "bunkershutter" + }, +/obj/structure/cable/yellow, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fi" = ( +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fm" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fn" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fo" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fp" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fq" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fr" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 5 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fs" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"ft" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fv" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Port To Hall" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fw" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/airlock) +"fx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Power and Atmospherics APC"; + pixel_x = -25; + pixel_y = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fy" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 1; + icon_state = "mixer_off"; + node1_concentration = 0.2; + node2_concentration = 0.8; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fA" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fB" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 8; + frequency = 1441; + id_tag = "o2_out_bunker"; + name = "oxygen out" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fD" = ( +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/cable/yellow, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Dormory APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"fF" = ( +/obj/machinery/door/poddoor{ + id = "bunkerexterior" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fG" = ( +/obj/machinery/door/poddoor{ + id = "bunkerexterior" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fI" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fJ" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in_bunker"; + name = "Oxygen Supply Control"; + output_tag = "o2_out_bunker"; + sensors = list("o2_sensor_bunker" = "Tank") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fK" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fL" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor_bunker" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fM" = ( +/obj/machinery/atmospherics/miner/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"fO" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"fP" = ( +/obj/structure/closet/wardrobe/pjs, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"fQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fR" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fS" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fT" = ( +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fU" = ( +/obj/machinery/camera{ + network = list("Bunker1") + }, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"fW" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fX" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fY" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"fZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"ga" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "o2"; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gb" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gc" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2_in_bunker" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"ge" = ( +/obj/machinery/door/airlock{ + name = "Personal Dorm" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gf" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gg" = ( +/obj/machinery/washing_machine, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gh" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gi" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 4 + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gk" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/crate/bin{ + name = "laundry bin" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gn" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"go" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"gp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gr" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gu" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 8; + frequency = 1441; + id_tag = "n2_out_bunker"; + name = "nitrogen out" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gw" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gx" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gy" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gz" = ( +/obj/machinery/door/airlock/highsecurity{ + desc = "Nothing to see here, folks, just an inconspicuous airlock. Now go away!"; + name = "Inconspicuous Airlock"; + req_access_txt = "200" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"gA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gC" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2_in_bunker"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out_bunker"; + sensors = list("n2_sensor_bunker" = "Tank") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gD" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2_sensor_bunker" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gE" = ( +/obj/machinery/atmospherics/miner/nitrogen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gF" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gG" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"gH" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"gI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"gJ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gK" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gL" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "RTG Observation"; + req_access_txt = "200" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gN" = ( +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gO" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2o"; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gP" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "o2_in_bunker" + }, +/turf/open/floor/plating/airless{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gQ" = ( +/obj/machinery/door/airlock/highsecurity{ + desc = "Nothing to see here, folks, just an inconspicuous airlock. Now go away!"; + name = "Inconspicuous Airlock"; + req_access_txt = "200" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"gR" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gS" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/machinery/autolathe, +/obj/structure/sign/radiation{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gW" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gX" = ( +/obj/machinery/power/rtg/advanced, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gY" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Telecomms"; + req_access_txt = "200" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"gZ" = ( +/obj/machinery/power/rtg/advanced, +/obj/structure/cable/yellow, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"ha" = ( +/obj/machinery/power/rtg/advanced, +/obj/machinery/light/small, +/obj/structure/cable/yellow, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hb" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hc" = ( +/obj/machinery/light/small, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hd" = ( +/obj/machinery/telecomms/relay/preset/telecomms, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"he" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/crusher) +"hf" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/light{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/hydroponics) +"hg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"hh" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"hi" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"hj" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/dorm) +"hk" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"hl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"hn" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage) +"ho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hp" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) +"hq" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ruin/deepstorage/power) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaabaaaaaaaaaaaaaaaaaaaaaaaaababababacababaaaaaaaaaaaaaaababababaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaa -aaaaababaaababaaaaaaaaaaaaababacabacacababaaaaaaaaaaabaaacacababababaaaaaaaaaaaaaaaaabababaaaaaaaaaa -abaaababaaaaaaaaaaaaadaaaaaaababacacacaaaaaaaaaaaaaaaaaaabacacacababaaaaaaaaababacacacababaaaaaaaaaa -aaaaababaaaaaaaaaaaaadadaaaaaaaaacababaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaababababacacacacacaaaaaaaa -aaaaababaaaaadaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaa -aaaaaaaaaaaaadadadadadadadadaaaaaaaaaaaeaeaaaaadadadadadadaaaaaaaaaaadadadaaaaaaaaacacabababaaaaaaaa -aaaaaaaaaaaaaaaaadadadadaeaeaeaeaeaeaeaeaeadadadadadadadadadadadaaaaadadadaaaaaaaaaaaaabaaaaaaaaaaaa -aaaaaaaaaaadadadadadadadadadadadaeaeaeadadadadadadadadadadadadadadadadadadadaaaaaaaaaaaaaaaaaaaaabaa -aaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaaaaaabaaaaababaaaaaaaa -aaaaaaaaadaeaeaeadadadadadadadadadadadadadafafafafafagagagagagagagadadadadadadaaaaaaaaaaababababaaaa -aaaaaaaaaaaeaeaeadadadadadadadadadadadadadafahaiaiahagajakalamanagadadadadadadaaaaaaaaaaaaabababaaaa -aaabaaaaaaaeaeaeadadadadadadadadadadadadadafaoapaqaragasatauatavagadadadadadadadaaaaaaaaaaabababaaaa -aaaaaaaaaaaaaeaeadadadadawawawawawawawawadafaxayazaAagaBaCaDaEaFagadadadadadadadaaaaaaabaaaaabaaaaaa -aaababaaadaeaeaeadadadadawaGaHaIaJaKaLafafafafaMaNafagagaOaPaQaQaQaQaQaQaQaQadadadadaaaaaaaaaaaaaaaa -aaacabaaaaaeaeaeaeadadadawaRaSaTaUaVaWafaXaYaZbabbbcbdafbebfbgbhbibjbkbkblaQadadadadaaaaaaaaaaaaaaaa -aaababaaaaaaaeaeaeadadadawbmbnbobpbqbrafbsbtbubvbwbubxafbybzbAbBbCbCbCbCbDaQadadadadadadaaaaaaaaaaaa -aaababababaaaeaeaeadawawawawawbEbFbGbHafbIbJbKbLbMbNbOafbPbzbQbCbCbRbSbSbSaQadadadadadadaaaaaaaaaaaa -ababacacacaaaaaeaeadawbTbUbVawbWbXawawafafbYbZafafafafafcacbcccdcecececfcgaQadadadaeaeaeaaaaaaaaaaaa -aaabacacacaaaaaeaeadawbUbUchawcibzcjckclcmcncocpcqcrcscpctcucvcwcxcyczcAbSaQadadaeaeaeaeaaaaabaaaaaa -aaababacacaaaaaeaeadawcBcBcCcDcEcFcGcHcIcJcKcLcpcMcNcOcpcPbzaQaQaQaQaQaQaQaQadadadaeadaaaaababaaaaaa -aaaaaaaaaaaaaeaeaeadawcBcBcQawcRcSbzcTcTcUcVcWcpcXcYcZcpcPbzdadbdcdddeadadadadadaeaeaaaaaaababaaaaaa -aaabaaaaadadaeaeadadawcBcBdfdgdhdidjdkdldmdndocpcpdpdqcpdrcbdsdtdudvdeadadadaeaeaeaaaaaaabababaaaaaa -aaaaaaaaadadadadadadawdwdxdydzdAdBdCdDdEdFdGdHdIdFdJcudKdLcudMdNdOdPdeadadadaeadadaaaaaaababaaaaaaaa -aaaaadadadadadadadaddBdBdBdBdQdRdSdTdUdVbfdWdXdXdYdZeaebecedeeefegehdeadadadaeadaeaaaaaaababaaaaaaaa -aaadadadadadadadadaddBeiejekelemcpencpcpeoepeqeqereseqeqetcbeuevewexdeadaeaeaeadaeaeaeaaaaaaaaaaaaaa -aaadadadadadadadadaddBeyezeAeBeCcpeDeEcpeFeGeHeIeJeKeLeqcPbzeMeNeOePdeadaeadadadaeaeaeaaaaaaababaaaa -aaadaaaaadadadadadaddBdBdBdBdQeQcpeDeRcpbzeSeTeUeVeWeXeqeYeZfafbfbfbfbfcfdadadadaeaeaeaeaeaaababaaaa -aaadaaaaaaaaadadadaddBeiejekelfecpeDffcpbzfgfhfififjfkeqflfmfnfofpfpfpfpadadadadadadaeaeaeaaababaaaa -aaaaaaaaaaaaaaadadaddBeyezeAeBeCcpeDfqcpbzfrfsftfufvfweqfxfyfzfAfBfCfDfpadadadadadadaeaeaeaaababaaaa -aaaaaaaaaaaaaaadadaddBdBdBdBdQfEcpcpcpcpfFfGeqeqeqeqeqeqflfHfIfJfKfLfMfpadadadadadadaeaeaeaaaaaaaaaa -aaaaaaaaabaaaaadadaddBeiejekfNfOfPdBfQfRfSfTfUfVfpfWfXfYfZfHgagbgcgdfDfpadadadadadadadaeaeaaaaaaabaa -aaaaabaaaaaaaaaaadaddBeyezeAgegfggdBfVfTfTfTfTfVfpghfXgigjfHfIgkfpfpfpfpadadadadadadadaeaeaaaaaaaaaa -aaaaabababaaaaaaadaddBdBdBdBdBglgmdBfVfTfTfTgngogpgqgrgsgtgufzfAfBgvfDfpadadadadadadadadaeaaaaaaaaaa -aaaaaaababaaaaaaadadadadaddBgwgxgydBcpcpgzgzcpcpfpfpfpfpgAgBfIgCfKgDgEfpadadadadadadaaaaaaaaaaabaaaa -aaaaaaababaaaaaaadadadadaddBgwgFgGdBadcpgHgIcpadfpgJgKgLgMgNgOgbgcgPfDfpadadadadadadadadaaaaaaaaaaaa -aaaaaaaaaaaaaaaaadadadadaddBdBdBdBdBadcpgQgQcpadfpgRgSfpgTgUgVgWfpfpfpfpadadadadadadadadaaaaaaaaaaaa -aaaaabaaaaaaabaaaaadadadadadadadadadadadaeaeadadfpgXgXfpfpgYfpfpfpadadadadadadadaeaeaeadaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaadadadadadadadadadaeaeaeaeadadfpgZhafphbhchdfpadadadadadaaaaadaeaeaeadaaaaaaabaaaa -aaabaaaaaaaaaaaaaaaaadadadadadadadadadaeaeaeaeadfpfpfpfpfpfpfpfpadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaadadadadadadadadadaeaeaeaeadadadadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaababaaaaaaaaaaadadadadadadadadadadadadaeaeaeaeaeaeadadadadadadadadadaaaaaaaaaaaaababaaaaaaabaaaa -aaaaababaaaaaaaaadadadadadadadadadadadadadadaeaeaeaeaeaeadadadadadadadadaaaaaaababaaacabaaaaaaaaaaaa -aaacababaaabaaaaadadadadaaaaaaaaaaaaadadadadadadadadaeaeaeaeaeaeaeaeaeadaaaaaaaaaaaaacacababaaaaaaaa -abacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaadaeaeaeaeaeaaaaaaaaaaaaacacababaaaaaaaa -abacacaaaaaaaaaaaaaaaaabaaababacacacaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaeaeaaaaaaaaaaacacacababaaaaaaaa -abababaaaaabaaaaaaaaaaaaaaacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacacababaaaaaaaaaa -abababaaaaaaaaaaaaaaabababacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaaaabaaaa -aaaaaaaaaaaaaaaaaaaaaaaaababacaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaabababaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +"} +(2,1,1) = {" +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +ab +ac +ab +ab +ab +ab +ab +aa +ab +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +ac +ac +ac +ab +ab +aa +aa +"} +(3,1,1) = {" +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ac +ac +ab +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +ab +aa +aa +aa +ab +ab +ab +ac +ac +ab +ab +aa +aa +"} +(4,1,1) = {" +aa +aa +ab +ab +ab +ab +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +ab +aa +aa +ab +ac +ac +ac +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +ab +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +aa +ac +ac +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +ab +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +ab +aa +aa +ab +ab +aa +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +ac +ac +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +aa +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aw +aw +aw +aw +aw +aw +aw +dB +dB +dB +dB +dB +dB +dB +dB +dB +dB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aw +bT +bU +cB +cB +cB +dw +dB +ei +ey +dB +ei +ey +dB +ei +ey +dB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +ab +aa +ab +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ac +ab +ab +ab +ab +ab +aw +aw +aw +aw +aw +bU +bU +cB +cB +cB +dx +dB +ej +ez +dB +ej +ez +dB +ej +ez +dB +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ab +"} +(14,1,1) = {" +aa +aa +ab +aa +aa +aa +ab +ac +ab +ab +ab +ab +ab +aw +aG +aR +bm +aw +bV +ch +cC +cQ +df +dy +dB +ek +eA +dB +ek +eA +dB +ek +eA +dB +dB +dB +dB +ab +ab +ab +ab +ab +ab +aa +aa +ab +ac +ac +ab +ab +"} +(15,1,1) = {" +aa +ab +ab +ab +aa +aa +aa +ac +ab +ab +ab +ab +ab +aw +aH +aS +bn +aw +aw +aw +cD +aw +dg +dz +dQ +el +eB +dQ +el +eB +dQ +fN +ge +dB +gw +gw +dB +ab +ab +ab +ab +ab +ab +aa +aa +ab +ac +ac +ac +ab +"} +(16,1,1) = {" +aa +ab +ac +ab +aa +aa +aa +ac +ab +ab +ab +ab +ab +aw +aI +aT +bo +bE +bW +ci +cE +cR +dh +dA +dR +em +hj +eQ +fe +eC +fE +fO +gf +gl +gx +gF +dB +ab +ab +ab +ab +ab +ab +aa +aa +ac +ac +ac +aa +aa +"} +(17,1,1) = {" +ab +ab +ab +ac +ac +aa +aa +ac +ac +ab +ab +ab +ab +aw +aJ +aU +bp +bF +bX +bz +cF +cS +di +dB +dS +cp +cp +cp +cp +cp +cp +fP +gg +gm +gy +gG +dB +ab +ab +ab +ab +ab +ab +aa +aa +ac +ac +ac +ab +ab +"} +(18,1,1) = {" +aa +ab +ac +ac +ab +aa +aa +ac +ac +ab +ab +ab +ab +aw +aK +aV +bq +bG +aw +cj +cG +bz +dj +dC +dT +en +eD +eD +eD +eD +cp +dB +dB +dB +dB +dB +dB +ab +ab +ab +ab +ab +ab +aa +aa +ac +ac +ac +ab +ab +"} +(19,1,1) = {" +aa +ac +ac +ac +ab +aa +aa +ac +ac +ab +ab +ab +ab +aw +aL +aW +br +bH +aw +ck +cH +cT +dk +dD +dU +cp +eE +eR +ff +fq +cp +fQ +fV +fV +cp +ab +ab +ab +ac +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +ab +"} +(20,1,1) = {" +aa +ab +ab +aa +aa +aa +ac +ac +ab +ab +ab +ab +ab +aw +af +af +af +af +af +cl +cI +cT +dl +dE +dV +cp +cp +cp +cp +cp +cp +fR +fT +fT +cp +cp +cp +ab +ac +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +ab +ab +aa +aa +aa +ac +ac +ab +ab +ab +ab +ab +ab +af +aX +bs +bI +af +cm +cJ +cU +dm +dF +hh +eo +eF +bz +bz +hk +fF +fS +fT +fT +gz +gH +gQ +ac +ac +ac +ac +ab +ab +ab +ab +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +af +af +af +af +aY +bt +bJ +bY +cn +cK +cV +dn +dG +dW +ep +eG +eS +fg +fr +fG +hm +fT +fT +gz +gI +gQ +ac +ac +ac +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +ah +ao +ax +af +aZ +bu +bK +bZ +co +cL +cW +ci +dH +hi +eq +eH +eT +fh +fs +eq +fU +fT +gn +cp +cp +cp +ab +ab +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +ai +ap +ay +aM +ba +bv +bL +af +cp +cp +cp +cp +dI +dX +eq +eI +eU +fi +ft +eq +hn +fV +fT +cp +ab +ab +ab +ab +ab +ab +ac +ac +ab +ab +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +ai +aq +az +aN +bb +bw +bM +af +cq +cM +cX +cp +hg +dY +er +eJ +eV +fi +fu +eq +ho +fp +fp +fp +fp +fp +fp +fp +fp +ab +ac +ac +ab +ab +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +ah +ar +aA +af +bc +bu +bN +af +cr +cN +cY +dp +dJ +dZ +es +eK +eW +fj +fv +eq +fW +gh +gq +fp +gJ +gR +gX +gZ +fp +ab +ac +ac +ab +ab +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +ab +aa +aa +ab +ab +ab +ab +ab +ag +ag +ag +ag +ag +bd +bx +bO +af +cs +cO +cZ +dq +cu +ea +eq +eL +eX +fk +fw +eq +fX +hp +gr +fp +gK +gR +gX +ha +fp +ab +ac +ac +ac +ab +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ag +ag +as +aB +ag +af +af +af +af +cp +cp +cp +cp +dK +eb +eq +eq +eq +eq +eq +eq +fY +gi +gi +fp +gL +fp +fp +fp +fp +ab +ab +ac +ac +ab +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +ab +ac +ab +aa +aa +ab +ab +ab +ab +ag +ak +at +aC +aO +be +by +bP +ca +ct +cP +cP +dr +dL +ec +et +cP +eY +fl +fx +hl +fZ +gj +gt +gA +gM +gT +fp +hb +fp +ab +ab +ab +ac +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +ab +ab +ac +ac +ac +aa +aa +ab +ab +ab +ag +al +au +aD +aP +bf +bz +bz +cb +cu +bz +bz +cb +cu +ed +cb +bz +eZ +fm +fy +fH +fH +fH +gu +gB +gN +gU +gY +hc +fp +ab +ab +ab +ac +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +ab +ab +ac +ac +aa +aa +ab +ab +ab +ag +am +he +aE +aQ +bg +bA +bQ +cc +cv +aQ +da +ds +dM +ee +eu +eM +fa +fn +fz +fI +ga +fI +fz +fI +gO +gV +fp +hd +fp +ab +ab +ab +ac +ab +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +ab +ab +ac +ac +aa +aa +ab +ab +ab +ag +an +an +an +aQ +bh +bB +bC +cd +cw +aQ +db +dt +dN +ef +ev +eN +fb +fo +fA +fJ +gb +gk +fA +gC +gb +gW +fp +fp +fp +ab +ab +ab +ac +ac +ab +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +ab +ab +aa +aa +aa +aa +ab +ab +ag +ag +ag +ag +aQ +bi +bC +bC +ce +cx +aQ +dc +du +dO +eg +ew +eO +fb +fp +fB +fK +hq +fp +fB +fK +gc +fp +fp +ab +ab +ab +ab +ab +ac +ac +ab +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aQ +bj +bC +bR +ce +cy +aQ +dd +dv +dP +eh +ex +eP +fb +fp +fC +fL +gd +fp +gv +gD +gP +fp +ab +ab +ab +ab +ab +ab +ac +ac +ab +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aQ +hf +bC +bS +ce +cz +aQ +de +de +de +de +de +de +fb +fp +fD +fM +fD +fp +fD +gE +fD +fp +ab +ab +ab +ab +ab +ab +ac +ac +ac +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aQ +bk +bC +bS +cf +cA +aQ +ab +ab +ab +ab +ab +ab +fc +fp +fp +fp +fp +fp +fp +fp +fp +fp +ab +ab +ab +aa +ab +ab +ab +ac +ac +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aQ +bl +bD +bS +cg +bS +aQ +ab +ab +ab +ab +ac +ac +fd +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +ab +aa +aa +aa +ab +ab +ab +ab +ab +ab +aQ +aQ +aQ +aQ +aQ +aQ +aQ +ab +ab +ab +ab +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +aa +aa +aa +ab +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ac +ab +ac +ac +ab +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +ac +ac +ac +ac +aa +aa +ab +aa +aa +aa +aa +ab +ab +ab +ab +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ab +aa +aa +"} +(43,1,1) = {" +aa +ab +ab +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ab +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +ab +ab +ac +ac +aa +aa +ab +ac +ac +ac +ac +ac +ab +aa +aa +"} +(44,1,1) = {" +aa +ab +ab +ab +ac +ac +ab +ab +aa +aa +aa +aa +aa +ab +aa +aa +ab +ab +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ab +aa +ab +ab +ab +ab +aa +aa +ab +ab +ac +ac +ac +ab +ab +aa +aa +"} +(45,1,1) = {" +aa +aa +ab +ab +ac +ac +ab +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +ac +ac +ab +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +ab +aa +aa +aa +ab +aa +aa +ab +aa +aa +aa +aa +aa +ab +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/SpaceRuins/derelict2.dmm b/_maps/RandomRuins/SpaceRuins/derelict2.dmm index 8e0aced9bd..542ec61077 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict2.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict2.dmm @@ -4,8 +4,6 @@ /area/space) "b" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (EAST)"; - icon_state = "rwindow"; dir = 4 }, /turf/open/space, @@ -16,21 +14,15 @@ /area/ruin/powered/dinner_for_two) "d" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/space, /area/space) "e" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (EAST)"; - icon_state = "rwindow"; dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -45,8 +37,6 @@ /area/ruin/powered/dinner_for_two) "h" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /turf/open/floor/plasteel, @@ -56,8 +46,6 @@ /area/ruin/powered/dinner_for_two) "j" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (EAST)"; - icon_state = "bulb1"; dir = 4 }, /turf/open/floor/plasteel, @@ -69,16 +57,12 @@ "l" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /turf/open/floor/plating, /area/ruin/powered/dinner_for_two) "m" = ( /obj/structure/chair{ - tag = "icon-chair (EAST)"; - icon_state = "chair"; dir = 4 }, /obj/effect/decal/remains/human, @@ -99,8 +83,6 @@ /area/ruin/powered/dinner_for_two) "o" = ( /obj/structure/chair{ - tag = "icon-chair (WEST)"; - icon_state = "chair"; dir = 8 }, /obj/effect/decal/remains/human, @@ -108,16 +90,12 @@ /area/ruin/powered/dinner_for_two) "p" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /turf/open/space, /area/space) "q" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/RandomRuins/SpaceRuins/derelict4.dmm index b90de513c3..6e8d7c6ff7 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict4.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict4.dmm @@ -27,8 +27,6 @@ "i" = ( /obj/structure/chair, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/mineral/titanium/blue/airless, @@ -43,9 +41,7 @@ /area/ruin/unpowered) "l" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/open/floor/plating/airless, /area/ruin/unpowered) @@ -55,8 +51,6 @@ /area/ruin/unpowered) "n" = ( /obj/structure/chair{ - tag = "icon-chair (WEST)"; - icon_state = "chair"; dir = 8 }, /turf/open/floor/plating/airless, @@ -72,8 +66,6 @@ "q" = ( /obj/item/weapon/shard, /obj/structure/chair{ - tag = "icon-chair (WEST)"; - icon_state = "chair"; dir = 8 }, /turf/open/floor/mineral/titanium/blue/airless, @@ -83,8 +75,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/mineral/titanium/blue/airless, diff --git a/_maps/RandomRuins/SpaceRuins/derelict6.dmm b/_maps/RandomRuins/SpaceRuins/derelict6.dmm index 9b9777f5e1..fe6d576a39 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict6.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict6.dmm @@ -57,7 +57,6 @@ /area/ruin/unpowered) "aj" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (EAST)"; icon_state = "pile"; dir = 4 }, @@ -158,7 +157,6 @@ /area/ruin/unpowered) "az" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (WEST)"; name = "broken plating"; icon_state = "plating"; dir = 8 @@ -168,7 +166,6 @@ /area/ruin/unpowered) "aA" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (NORTH)"; icon_state = "pile"; dir = 1 }, @@ -310,7 +307,6 @@ /area/ruin/unpowered) "aZ" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (WEST)"; icon_state = "pile"; dir = 8 }, @@ -432,7 +428,6 @@ "bs" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-singular (NORTH)"; icon_state = "singular"; dir = 1 }, @@ -440,7 +435,6 @@ /area/template_noop) "bt" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-side (NORTH)"; icon_state = "side"; dir = 1 }, @@ -460,7 +454,6 @@ "bw" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (NORTH)"; name = "broken plating"; icon_state = "plating"; dir = 1 @@ -469,7 +462,6 @@ /area/ruin/unpowered) "bx" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (EAST)"; name = "broken plating"; icon_state = "plating"; dir = 4 @@ -479,7 +471,6 @@ /area/ruin/unpowered) "by" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-pile (EAST)"; icon_state = "pile"; dir = 4 }, @@ -488,7 +479,6 @@ "bz" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (EAST)"; name = "broken plating"; icon_state = "plating"; dir = 4 @@ -503,7 +493,6 @@ /area/template_noop) "bB" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; icon_state = "singular"; dir = 4 }, @@ -513,7 +502,6 @@ "bC" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-corner (NORTH)"; icon_state = "corner"; dir = 1 }, @@ -521,7 +509,6 @@ /area/ruin/unpowered) "bD" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; icon_state = "singular"; dir = 4 }, @@ -530,7 +517,6 @@ "bE" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-corner (WEST)"; icon_state = "corner"; dir = 8 }, @@ -539,7 +525,6 @@ "bF" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-side (EAST)"; icon_state = "side"; dir = 4 }, @@ -547,7 +532,6 @@ /area/ruin/unpowered) "bG" = ( /obj/structure/fluff/broken_flooring{ - tag = "icon-singular (EAST)"; icon_state = "singular"; dir = 4 }, @@ -564,7 +548,6 @@ "bI" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - tag = "icon-plating (WEST)"; name = "broken plating"; icon_state = "plating"; dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm index 12c9da97ae..2e893f5737 100644 --- a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm +++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm @@ -22,8 +22,7 @@ /area/ruin/gasthelizard) "e" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -71,8 +70,7 @@ /area/ruin/gasthelizard) "j" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/components/unary/outlet_injector, /obj/effect/turf_decal/stripes/line{ @@ -202,8 +200,7 @@ dir = 9 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/ruin/gasthelizard) @@ -231,8 +228,7 @@ /area/ruin/gasthelizard) "A" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/ruin/gasthelizard) @@ -326,8 +322,7 @@ /area/ruin/gasthelizard) "N" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/light, /obj/structure/table, diff --git a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm index eb95b9cf9a..19dd1026dd 100644 --- a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm +++ b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm @@ -21,9 +21,7 @@ /area/ruin/powered/authorship) "e" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion"; - tag = "icon-propulsion (EAST)" + dir = 8 }, /turf/template_noop, /area/ruin/powered/authorship) @@ -32,8 +30,6 @@ dir = 4 }, /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (WEST)"; - icon_state = "heater"; dir = 8 }, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 668e6039b9..4c351f0593 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -236,7 +236,6 @@ /area/awaymission/listeningpost) "J" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /turf/open/floor/plasteel/freezer, diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm index 52cf3b4169..80a6af4f0d 100644 --- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -110,8 +110,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/tcommsat/chamber) diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index cf9473c48d..fa12329728 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -14,10 +14,12 @@ /area/ruin/ancientstation/hivebot) "ae" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/glass{ - anchored = 20 - }, /obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/plasteel/black, /area/ruin/ancientstation/hivebot) "af" = ( @@ -42,6 +44,9 @@ /obj/item/stack/sheet/mineral/gold{ amount = 15 }, +/obj/item/weapon/ore/bluespace_crystal, +/obj/item/weapon/ore/bluespace_crystal, +/obj/item/weapon/ore/bluespace_crystal, /turf/open/floor/plasteel/black, /area/ruin/ancientstation/hivebot) "ak" = ( @@ -54,8 +59,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/machinery/door/poddoor{ @@ -78,8 +81,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -186,7 +188,6 @@ /area/ruin/ancientstation/hivebot) "aF" = ( /obj/structure/shuttle/engine/large{ - tag = "icon-large_engine (EAST)"; icon_state = "large_engine"; dir = 4 }, @@ -210,9 +211,7 @@ /obj/structure/table, /obj/machinery/button/door{ id = "ancient"; - name = "Charlie Station Lockdown Button"; - pixel_x = 0; - pixel_y = 0 + name = "Charlie Station Lockdown Button" }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/comm) @@ -298,8 +297,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/ancientstation) @@ -309,7 +307,6 @@ dir = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/blue/side{ @@ -329,15 +326,13 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/blue/side{ dir = 4 @@ -361,9 +356,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/item/weapon/coin, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/comm) "bc" = ( @@ -374,8 +367,6 @@ /area/ruin/ancientstation) "bd" = ( /obj/structure/transit_tube{ - tag = "icon-straight (EAST)"; - icon_state = "straight"; dir = 4 }, /turf/template_noop, @@ -480,6 +471,7 @@ "bu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, +/obj/item/weapon/tank/internals/emergency_oxygen, /turf/open/floor/plasteel/blue/side, /area/ruin/ancientstation/comm) "bv" = ( @@ -499,8 +491,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch, /turf/open/floor/plating, @@ -516,8 +507,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -526,8 +515,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -553,7 +541,7 @@ /turf/closed/wall, /area/ruin/ancientstation/deltacorridor) "bF" = ( -/turf/closed/mineral, +/turf/closed/wall/rust, /area/ruin/ancientstation/hivebot) "bG" = ( /obj/effect/decal/cleanable/dirt, @@ -574,15 +562,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -591,15 +576,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -629,10 +611,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) @@ -663,7 +642,9 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "bU" = ( -/obj/machinery/door/firedoor/closed, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "bV" = ( @@ -671,12 +652,10 @@ /area/ruin/ancientstation) "bW" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "bX" = ( /obj/structure/sign/science, @@ -686,15 +665,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -741,30 +717,21 @@ "cf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/transit_tube/station/reverse/flipped{ - tag = "icon-closed_terminus1 (NORTH)"; - icon_state = "closed_terminus1"; dir = 1 }, /obj/structure/transit_tube_pod{ - tag = "icon-pod (EAST)"; - icon_state = "pod"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/betanorth) "cg" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/transit_tube{ - tag = "icon-straight (EAST)"; - icon_state = "straight"; dir = 4 }, /turf/open/floor/plating, @@ -775,17 +742,12 @@ /area/template_noop) "ci" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/transit_tube{ - tag = "icon-straight (EAST)"; - icon_state = "straight"; dir = 4 }, /turf/open/floor/plating, @@ -808,8 +770,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -825,7 +786,6 @@ "cn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -834,7 +794,6 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -864,16 +823,12 @@ "cs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/transit_tube/station/reverse/flipped{ - tag = "icon-closed_terminus1 (NORTH)"; - icon_state = "closed_terminus1"; dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "ct" = ( /obj/structure/transit_tube_pod{ - tag = "icon-pod (EAST)"; - icon_state = "pod"; dir = 4 }, /turf/template_noop, @@ -884,17 +839,12 @@ /area/template_noop) "cv" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/transit_tube{ - tag = "icon-straight (EAST)"; - icon_state = "straight"; dir = 4 }, /turf/open/floor/plating, @@ -920,10 +870,7 @@ /area/ruin/ancientstation/deltacorridor) "cz" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /obj/structure/cable{ d1 = 2; @@ -939,8 +886,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -952,8 +898,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -962,8 +907,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/hivebot/range, @@ -973,8 +917,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -1001,10 +944,7 @@ /area/ruin/ancientstation/deltacorridor) "cH" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -1025,8 +965,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -1057,13 +996,11 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) @@ -1084,8 +1021,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -1102,8 +1037,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -1114,14 +1048,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "cV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "cW" = ( /obj/effect/decal/cleanable/dirt, @@ -1134,8 +1069,7 @@ "cX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) @@ -1143,8 +1077,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1223,8 +1156,6 @@ /obj/item/weapon/storage/firstaid/ancient, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTHEAST)"; - icon_state = "whitehall"; dir = 5 }, /area/template_noop) @@ -1246,8 +1177,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -1257,7 +1187,6 @@ dir = 4; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = "0"; req_one_access = "0" }, @@ -1266,17 +1195,12 @@ "dn" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /obj/machinery/light/small{ dir = 8 }, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (NORTHWEST)"; - icon_state = "green"; dir = 9 }, /area/ruin/ancientstation/hydroponics) @@ -1308,23 +1232,19 @@ "ds" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (NORTHEAST)"; - icon_state = "green"; dir = 5 }, /area/ruin/ancientstation/hydroponics) "dt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "du" = ( /obj/machinery/light/small{ @@ -1332,13 +1252,13 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0" }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "dv" = ( /turf/closed/wall/rust, @@ -1347,17 +1267,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) @@ -1395,12 +1312,9 @@ "dC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_pump{ - tag = "icon-vent_map (WEST)"; - icon_state = "vent_map"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, @@ -1409,8 +1323,6 @@ /obj/effect/decal/cleanable/dirt, /obj/item/roller, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (EAST)"; - icon_state = "whitehall"; dir = 4 }, /area/template_noop) @@ -1418,15 +1330,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -1472,15 +1381,16 @@ d2 = 8; icon_state = "0-8" }, -/turf/open/floor/plasteel/airless, +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, /area/template_noop) "dM" = ( /obj/structure/table, /obj/item/weapon/tank/internals/oxygen, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/clothing/mask/breath, /turf/open/floor/plasteel/yellow/side{ dir = 9 @@ -1499,7 +1409,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; @@ -1514,15 +1423,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -1545,7 +1451,6 @@ dir = 8; name = "Charlie Security APC"; pixel_x = -24; - pixel_y = 0; start_charge = 0 }, /turf/open/floor/plasteel/red/side{ @@ -1578,15 +1483,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 4; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = "0"; req_one_access = "0" }, @@ -1629,7 +1532,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; @@ -1658,8 +1560,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/template_noop, /area/template_noop) @@ -1715,9 +1616,7 @@ pixel_y = 4 }, /obj/item/weapon/cultivator, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/hydroponics) "eq" = ( @@ -1748,8 +1647,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/side{ @@ -1784,8 +1682,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -1793,7 +1690,6 @@ "ez" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -1834,8 +1730,7 @@ "eF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/rnd) @@ -1846,8 +1741,6 @@ "eH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (EAST)"; - icon_state = "whitehall"; dir = 4 }, /area/template_noop) @@ -1857,15 +1750,19 @@ d2 = 4 }, /obj/machinery/power/solar, -/turf/open/floor/plasteel/airless, +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, /area/template_noop) "eJ" = ( /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged1" +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" }, /area/template_noop) "eK" = ( @@ -1888,7 +1785,6 @@ "eM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -1896,8 +1792,6 @@ "eN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/machinery/light/small{ @@ -1911,8 +1805,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/side{ @@ -1928,8 +1821,6 @@ "eQ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (WEST)"; - icon_state = "green"; dir = 8 }, /area/ruin/ancientstation/hydroponics) @@ -1943,8 +1834,6 @@ "eS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/floorgrime, @@ -1952,8 +1841,6 @@ "eT" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (EAST)"; - icon_state = "green"; dir = 4 }, /area/ruin/ancientstation/hydroponics) @@ -1961,8 +1848,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -1985,8 +1871,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/hivebot, @@ -2018,15 +1903,12 @@ "fb" = ( /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -2072,8 +1954,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/corner{ @@ -2092,8 +1973,6 @@ dir = 8 }, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (WEST)"; - icon_state = "green"; dir = 8 }, /area/ruin/ancientstation/hydroponics) @@ -2111,7 +1990,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/green/corner{ @@ -2124,15 +2002,14 @@ dir = 4 }, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (EAST)"; - icon_state = "green"; dir = 4 }, /area/ruin/ancientstation/hydroponics) "fn" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "fo" = ( /obj/machinery/door/firedoor, @@ -2168,12 +2045,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, @@ -2218,15 +2093,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating/airless, @@ -2238,8 +2110,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -2256,8 +2126,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plating, /area/ruin/ancientstation/engi) @@ -2266,8 +2135,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -2305,7 +2173,8 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "fK" = ( /obj/machinery/door/airlock/security, @@ -2319,8 +2188,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/corner{ @@ -2370,8 +2238,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/hivebot, @@ -2386,7 +2253,6 @@ "fT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white/corner{ @@ -2408,8 +2274,7 @@ "fW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/white/corner{ dir = 1 @@ -2423,35 +2288,29 @@ /area/template_noop) "fY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/airless/floorgrime, /area/template_noop) "fZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless/floorgrime, /area/template_noop) "ga" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/template_noop) @@ -2461,8 +2320,6 @@ amount = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/template_noop, @@ -2475,15 +2332,12 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/template_noop, /area/template_noop) @@ -2492,12 +2346,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/template_noop, @@ -2518,12 +2369,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/template_noop, @@ -2533,8 +2381,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -2542,8 +2389,6 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/template_noop, @@ -2559,12 +2404,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2574,12 +2416,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2589,8 +2428,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -2599,8 +2437,6 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2619,8 +2455,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2639,7 +2473,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -2650,8 +2483,6 @@ amount = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2660,8 +2491,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -2681,15 +2511,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/cable{ @@ -2701,7 +2528,6 @@ d2 = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/machinery/door/poddoor{ @@ -2723,12 +2549,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -2737,8 +2561,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -2748,14 +2571,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2764,13 +2584,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2786,16 +2603,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -2804,14 +2618,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -2820,8 +2631,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -2831,15 +2641,13 @@ /obj/machinery/power/apc{ dir = 2; name = "Charlie Kitchen APC"; - pixel_x = 0; pixel_y = -24; start_charge = 0 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -2851,8 +2659,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -2866,8 +2673,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/decal/cleanable/dirt, @@ -2877,40 +2683,36 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "gz" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "gA" = ( /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/cable{ @@ -2922,7 +2724,6 @@ d2 = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/machinery/door/poddoor{ @@ -2940,11 +2741,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -2954,11 +2753,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -2968,8 +2765,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -2982,15 +2778,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/cable{ @@ -3002,8 +2795,6 @@ d2 = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -3012,12 +2803,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating/airless, @@ -3026,26 +2814,20 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -3055,12 +2837,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -3070,8 +2849,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -3079,8 +2857,6 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -3090,13 +2866,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -3115,12 +2888,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -3159,9 +2930,8 @@ /obj/structure/table, /obj/item/weapon/storage/toolbox/mechanical/old, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/rnd) @@ -3218,8 +2988,7 @@ "gV" = ( /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -3231,8 +3000,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/engi) @@ -3240,8 +3008,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -3295,8 +3062,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -3315,8 +3080,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -3337,12 +3101,9 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -3352,11 +3113,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8 }, @@ -3382,8 +3141,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/corner, @@ -3397,12 +3155,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8 }, @@ -3486,12 +3242,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, @@ -3513,11 +3267,14 @@ pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/beaker/large/bromine{ - pixel_x = -6; - pixel_y = 0 + pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (NORTHWEST)"; + icon_state = "orange"; + dir = 9 + }, /area/ruin/ancientstation/rnd) "hG" = ( /obj/structure/table, @@ -3528,7 +3285,11 @@ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (NORTH)"; + icon_state = "orange"; + dir = 1 + }, /area/ruin/ancientstation/rnd) "hH" = ( /obj/structure/table, @@ -3539,7 +3300,11 @@ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (NORTHEAST)"; + icon_state = "orange"; + dir = 5 + }, /area/ruin/ancientstation/rnd) "hI" = ( /obj/machinery/door/firedoor, @@ -3550,8 +3315,7 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/deltacorridor) @@ -3573,7 +3337,10 @@ icon_state = "0-4"; d2 = 4 }, -/turf/open/floor/plasteel/airless, +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, /area/template_noop) "hN" = ( /obj/structure/lattice/catwalk, @@ -3589,8 +3356,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ brightness = 3; @@ -3613,8 +3379,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -3628,15 +3393,12 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -3658,9 +3420,8 @@ /obj/item/weapon/reagent_containers/food/condiment/enzyme{ layer = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/cafeteria, /area/ruin/ancientstation/kitchen) @@ -3682,9 +3443,8 @@ "hX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/item/weapon/storage/backpack/old, /turf/open/floor/plasteel/red/side{ @@ -3708,7 +3468,11 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (EAST)"; + icon_state = "orange"; + dir = 4 + }, /area/ruin/ancientstation/rnd) "ia" = ( /turf/open/floor/plasteel/airless{ @@ -3759,7 +3523,6 @@ "if" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8 }, @@ -3768,8 +3531,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/side{ @@ -3780,8 +3542,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, @@ -3815,6 +3576,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/item/weapon/restraints/handcuffs, +/obj/item/clothing/mask/gas, /turf/open/floor/plasteel/red/side{ dir = 6 }, @@ -3823,18 +3585,17 @@ /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/broken_bottle, +/obj/item/weapon/soap/nanotrasen, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation/rnd) "io" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/item/weapon/folder/white, /obj/item/weapon/reagent_containers/glass/beaker, @@ -3862,7 +3623,11 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (EAST)"; + icon_state = "orange"; + dir = 4 + }, /area/ruin/ancientstation/rnd) "is" = ( /obj/machinery/door/airlock/glass_medical{ @@ -3908,18 +3673,23 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0" }, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (EAST)"; + icon_state = "orange"; + dir = 4 + }, /area/ruin/ancientstation/rnd) "iv" = ( /obj/structure/table, -/obj/item/device/multitool, /obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/fyellow/old, +/obj/item/clothing/gloves/color/fyellow/old, +/obj/item/device/multitool, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -3964,8 +3734,7 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/red/side{ dir = 10 @@ -3980,7 +3749,6 @@ "iB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, -/obj/item/clothing/mask/gas, /obj/item/clothing/head/helmet/old, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -3990,15 +3758,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 4; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = "0"; req_one_access = "0" }, @@ -4034,7 +3800,11 @@ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (EAST)"; + icon_state = "orange"; + dir = 4 + }, /area/ruin/ancientstation/rnd) "iH" = ( /obj/effect/decal/cleanable/dirt, @@ -4099,13 +3869,13 @@ "iO" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; req_one_access = "0" }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "iP" = ( /obj/structure/chair{ @@ -4123,7 +3893,11 @@ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (SOUTHWEST)"; + icon_state = "orange"; + dir = 10 + }, /area/ruin/ancientstation/rnd) "iR" = ( /obj/structure/table, @@ -4145,7 +3919,11 @@ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (SOUTHEAST)"; + icon_state = "orange"; + dir = 6 + }, /area/ruin/ancientstation/rnd) "iT" = ( /obj/structure/closet/crate, @@ -4189,8 +3967,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -4207,8 +3983,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -4222,7 +3997,8 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "jc" = ( /obj/machinery/door/airlock/research{ @@ -4247,8 +4023,6 @@ "jf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump{ - tag = "icon-vent_map (WEST)"; - icon_state = "vent_map"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, @@ -4262,8 +4036,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/template_noop) @@ -4300,36 +4073,33 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "jn" = ( -/obj/machinery/door/firedoor/closed, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "jo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "jp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/turf/open/floor/plasteel/airless/floorgrime, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) "jq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/transit_tube/station/reverse/flipped{ - tag = "icon-closed_terminus1 (NORTH)"; - icon_state = "closed_terminus1"; dir = 1 }, /obj/structure/transit_tube_pod{ - tag = "icon-pod (EAST)"; - icon_state = "pod"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -4444,10 +4214,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) @@ -4478,10 +4245,7 @@ /area/ruin/ancientstation) "jJ" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-plant-25" + icon_state = "plant-25" }, /obj/structure/cable{ d1 = 1; @@ -4496,8 +4260,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/hivebot, @@ -4508,8 +4271,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -4547,9 +4309,7 @@ /area/template_noop) "jR" = ( /obj/structure/cable, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/plating/airless, /area/template_noop) "jS" = ( /obj/structure/grille, @@ -4558,8 +4318,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -4568,8 +4326,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -4596,8 +4353,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white/side, /area/ruin/ancientstation/proto) @@ -4705,7 +4461,6 @@ "kk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ - tag = "icon-warningline (EAST)"; icon_state = "warningline"; dir = 4 }, @@ -4724,8 +4479,6 @@ /area/ruin/ancientstation/atmo) "kn" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/engine/airless, @@ -4733,15 +4486,12 @@ "ko" = ( /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating/airless, @@ -4789,7 +4539,6 @@ /area/ruin/ancientstation) "kt" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table/reinforced, @@ -4798,8 +4547,7 @@ /area/ruin/ancientstation/proto) "ku" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/door/poddoor{ id = "proto" @@ -4820,7 +4568,6 @@ "kx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ - tag = "icon-warningline (EAST)"; icon_state = "warningline"; dir = 4 }, @@ -4828,8 +4575,6 @@ /area/ruin/ancientstation/proto) "ky" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/machinery/door/poddoor{ @@ -4839,8 +4584,7 @@ /area/ruin/ancientstation/proto) "kz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table/reinforced, /obj/item/weapon/paper/oldstat/protosing, @@ -4853,12 +4597,9 @@ "kB" = ( /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating/airless, @@ -4911,12 +4652,10 @@ "kI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner{ - tag = "icon-warninglinecorner (NORTH)"; icon_state = "warninglinecorner"; dir = 1 }, /obj/effect/turf_decal/stripes/corner{ - tag = "icon-warninglinecorner (EAST)"; icon_state = "warninglinecorner"; dir = 4 }, @@ -4926,7 +4665,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ - tag = "icon-warninglinecorner (WEST)"; icon_state = "warninglinecorner"; dir = 8 }, @@ -4991,7 +4729,6 @@ /area/ruin/ancientstation) "kR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table/reinforced, @@ -5010,17 +4747,15 @@ id = "proto"; name = "Prototype Lab Lockdown" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/item/weapon/paper/oldstat/protoinv, /turf/open/floor/plasteel/white, /area/ruin/ancientstation/proto) "kU" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table/reinforced, /obj/item/weapon/paper/oldstat/protogun, @@ -5028,8 +4763,6 @@ /area/ruin/ancientstation/proto) "kV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating/airless, @@ -5047,20 +4780,13 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; - icon_state = "vent_map"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air output" }, /turf/open/floor/engine/air, /area/ruin/ancientstation/atmo) @@ -5105,16 +4831,12 @@ /area/ruin/ancientstation/proto) "ld" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ - tag = "icon-vent_map (NORTH)"; - icon_state = "vent_map"; dir = 1 }, /turf/open/floor/plating/airless, /area/ruin/ancientstation/atmo) "le" = ( /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -5124,12 +4846,9 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating/airless, @@ -5149,8 +4868,6 @@ dir = 1 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plating, @@ -5159,8 +4876,7 @@ /obj/structure/grille, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -5170,7 +4886,6 @@ "lk" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; locked = 0; pixel_x = 24; req_access = "0"; @@ -5183,9 +4898,8 @@ /area/ruin/unpowered) "lm" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/ancientstation) @@ -5204,6 +4918,250 @@ "lp" = ( /turf/closed/mineral/gold, /area/ruin/unpowered) +"lq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/pickaxe, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation/deltacorridor) +"lr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/ore/bluespace_crystal, +/turf/open/floor/plasteel/white, +/area/ruin/ancientstation/rnd) +"ls" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/ore/bluespace_crystal/refined, +/turf/open/floor/plasteel/white, +/area/ruin/ancientstation/rnd) +"lt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + name = "dusty mirror"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/ancientstation) +"lu" = ( +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plasteel/airless/floorgrime, +/area/template_noop) +"lv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plasteel/white/side{ + tag = "icon-whitehall (EAST)"; + icon_state = "whitehall"; + dir = 4 + }, +/area/template_noop) +"lw" = ( +/obj/item/weapon/stock_parts/matter_bin, +/turf/open/floor/plating/airless, +/area/template_noop) +"lx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/science{ + name = "Artificial Program Core Room" + }, +/turf/open/floor/plating, +/area/ruin/ancientstation/hivebot) +"ly" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/science, +/turf/open/floor/plating, +/area/ruin/ancientstation/hivebot) +"lz" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lA" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lB" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lC" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lD" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lE" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lF" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lG" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lH" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lI" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lJ" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lK" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/orange/corner, +/area/ruin/ancientstation/rnd) +"lM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (WEST)"; + icon_state = "orange"; + dir = 8 + }, +/area/ruin/ancientstation/rnd) +"lN" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lO" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lP" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lQ" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lR" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lS" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/orange/corner{ + tag = "icon-orangecorner (EAST)"; + icon_state = "orangecorner"; + dir = 4 + }, +/area/ruin/ancientstation/rnd) +"lU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/orange/side{ + tag = "icon-orange (WEST)"; + icon_state = "orange"; + dir = 8 + }, +/area/ruin/ancientstation/rnd) +"lV" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lW" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lX" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lY" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"lZ" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"ma" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"mb" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"mc" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) +"md" = ( +/turf/open/floor/plating/airless{ + tag = "icon-floor"; + icon_state = "floor" + }, +/area/template_noop) (1,1,1) = {" aa @@ -5330,7 +5288,7 @@ br di dD bq -eH +lv eH aa aa @@ -5900,20 +5858,20 @@ aa bd aa aa -dG -dG -dG +lz +lz +lz aa aa gb aa aa hM -eh -dG +lz +lz aA -dG -eh +lz +lz eI aa aa @@ -6004,21 +5962,21 @@ aa bd aa aa -dI -eh +lz +lz eI aa aa gd aa aa -eh +lz hM -dJ +lz aA -eh -dG -dJ +lz +lz +lz aa aa aa @@ -6108,21 +6066,21 @@ aa bd aa aa -dJ -dG +lz +lz eJ aa aa gd aa aa -dG -ia -dG +lz +lz +lz aA -dG -ia -ia +lz +lz +lz aa aa aa @@ -6213,20 +6171,20 @@ bd aa aa dL -dG -dG +lz +lz aa aa gd aa aa -dG -ic -ia -aA -dG +lz +eJ +lz +aA +lz +eJ eJ -ic aa aa aa @@ -6927,8 +6885,8 @@ aa aa aa aa -ak -as +by +aH at aQ aI @@ -7239,8 +7197,8 @@ aa aa aa aa -ak -ay +by +aM ax aQ aI @@ -7268,7 +7226,7 @@ ja cn jH aG -bN +lt bN bN bN @@ -7300,8 +7258,8 @@ aR bn ak ak -bU -bU +bR +bR cQ ds dR @@ -7352,12 +7310,12 @@ ak ak ak aG -bV -bV +bN +bN cQ cQ dP -es +eo dP cQ cQ @@ -7365,12 +7323,12 @@ gx gY gY hR -ij +ii hR gY gY jo -bV +bN aG aG aG @@ -7404,8 +7362,8 @@ aY aY aY bC -bV -bV +bN +bN cU dt dt @@ -7422,7 +7380,7 @@ dt dt jb jp -bV +bN bC kb aY @@ -7457,23 +7415,23 @@ aY aY aG bW -bV +bN cV du -bV -bV -bV -fo -bV +bN +bN +bN +bR +bN gz -bV -fo -bV -bV -bV +bN +bR +bN +bN +bN iO cV -bV +bN bW aG kc @@ -8134,7 +8092,7 @@ aa bD bZ cw -ca +lq bD aa aa @@ -8547,7 +8505,7 @@ ad ad ad ad -bF +bG bF cC dd @@ -8600,7 +8558,7 @@ be aB aN bG -bG +lx cE dc dy @@ -8652,7 +8610,7 @@ aC af aN bG -bG +lx cF db dz @@ -8703,7 +8661,7 @@ ad ad ad ad -bF +bG bF ca dc @@ -8716,9 +8674,9 @@ eb gP hi hi -hi +lL ir -hi +lT hi jd jw @@ -8820,9 +8778,9 @@ dZ gQ dy hF +lM eb -eb -eb +lM iQ dy jx diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index 0773923b53..6cfefd7707 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -172,7 +172,6 @@ /area/ruin/onehalf/dorms_med) "aB" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/table, @@ -254,8 +253,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Crew Quarters APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/white, /area/ruin/onehalf/dorms_med) @@ -457,7 +455,6 @@ /area/ruin/onehalf/hallway) "bg" = ( /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4 }, @@ -632,7 +629,6 @@ /area/ruin/onehalf/drone_bay) "bv" = ( /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4 }, @@ -734,8 +730,6 @@ /area/ruin/onehalf/drone_bay) "bJ" = ( /obj/structure/chair/office{ - tag = "icon-chair (EAST)"; - icon_state = "chair"; dir = 4 }, /turf/open/floor/plasteel{ @@ -879,7 +873,6 @@ /area/ruin/onehalf/bridge) "ch" = ( /obj/structure/disposalpipe/junction{ - tag = "icon-pipe-j1 (NORTH)"; icon_state = "pipe-j1"; dir = 1 }, @@ -892,12 +885,10 @@ "ci" = ( /obj/structure/lattice, /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4 }, /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8 }, @@ -948,8 +939,6 @@ /area/ruin/onehalf/bridge) "co" = ( /obj/structure/chair/office{ - tag = "icon-chair (NORTH)"; - icon_state = "chair"; dir = 1 }, /turf/open/floor/plasteel, @@ -1069,12 +1058,10 @@ "cD" = ( /obj/structure/lattice, /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8 }, /obj/structure/disposalpipe/broken{ - tag = "icon-pipe-b (NORTH)"; icon_state = "pipe-b"; dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm index 235d904273..5401836144 100644 --- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -12,16 +12,12 @@ /area/template_noop) "ad" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/template_noop, /area/template_noop) "ae" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /turf/template_noop, @@ -31,8 +27,6 @@ /area/ruin/powered) "ag" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /turf/template_noop, @@ -40,16 +34,12 @@ "ah" = ( /obj/structure/fluff/paper/corner, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/template_noop, /area/template_noop) "ai" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHEAST)"; - icon_state = "paper"; dir = 6 }, /turf/template_noop, @@ -60,58 +50,42 @@ opacity = 0 }, /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "ak" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHWEST)"; - icon_state = "paper"; dir = 9 }, /turf/open/indestructible/paper, /area/ruin/powered) "al" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "am" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /turf/open/indestructible/paper, /area/ruin/powered) "an" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /turf/open/indestructible/paper, /area/ruin/powered) "ao" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, @@ -121,16 +95,12 @@ /area/ruin/powered) "aq" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "ar" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /turf/open/indestructible/paper, @@ -147,50 +117,36 @@ /area/ruin/powered) "au" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "av" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "aw" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /turf/template_noop, /area/template_noop) "ax" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "ay" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /turf/open/indestructible/paper, @@ -201,8 +157,6 @@ /area/ruin/powered) "aA" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/open/indestructible/paper, @@ -210,29 +164,21 @@ "aB" = ( /obj/structure/fluff/paper/stack, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "aC" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHWEST)"; - icon_state = "paper"; dir = 9 }, /turf/open/indestructible/paper, /area/ruin/powered) "aD" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper/corner, @@ -241,26 +187,18 @@ /area/ruin/powered) "aE" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "aF" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/barricade/wooden, @@ -268,13 +206,9 @@ /area/ruin/powered) "aG" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/barricade/wooden, @@ -282,13 +216,9 @@ /area/ruin/powered) "aH" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /obj/structure/barricade/wooden, @@ -296,16 +226,12 @@ /area/ruin/powered) "aI" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "aJ" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/fluff/paper/corner, @@ -313,8 +239,6 @@ /area/ruin/powered) "aK" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper, @@ -322,13 +246,9 @@ /area/ruin/powered) "aL" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /mob/living/simple_animal/hostile/stickman, @@ -336,21 +256,15 @@ /area/ruin/powered) "aM" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (SOUTHWEST)"; - icon_state = "paperstack"; dir = 10 }, /turf/open/indestructible/paper, /area/ruin/powered) "aN" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /turf/open/indestructible/paper, @@ -362,39 +276,27 @@ /area/ruin/powered) "aP" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "aQ" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "aR" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/open/indestructible/paper, @@ -406,16 +308,12 @@ /area/ruin/powered) "aT" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHEAST)"; - icon_state = "paper"; dir = 6 }, /turf/open/indestructible/paper, /area/ruin/powered) "aU" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/fluff/paper, @@ -423,21 +321,15 @@ /area/ruin/powered) "aV" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHEAST)"; - icon_state = "paper"; dir = 6 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "aW" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/stack, @@ -450,29 +342,21 @@ "aY" = ( /obj/structure/fluff/paper/corner, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "aZ" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "ba" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /mob/living/simple_animal/hostile/stickman/dog, @@ -480,58 +364,42 @@ /area/ruin/powered) "bb" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/open/indestructible/paper, /area/ruin/powered) "bc" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHWEST)"; - icon_state = "paper"; dir = 9 }, /turf/template_noop, /area/template_noop) "bd" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /turf/template_noop, /area/template_noop) "be" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/template_noop, /area/template_noop) "bf" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTHWEST)"; - icon_state = "paperstack"; dir = 9 }, /turf/open/indestructible/paper, /area/ruin/powered) "bg" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/item/toy/crayon/yellow, @@ -539,8 +407,6 @@ /area/ruin/powered) "bh" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/item/toy/crayon/red, @@ -548,8 +414,6 @@ /area/ruin/powered) "bi" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/corner, @@ -558,21 +422,15 @@ "bj" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "bk" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /mob/living/simple_animal/hostile/stickman, @@ -580,8 +438,6 @@ /area/ruin/powered) "bl" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTHWEST)"; - icon_state = "paperstack"; dir = 9 }, /turf/open/indestructible/paper, @@ -593,34 +449,24 @@ /area/ruin/powered) "bn" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHWEST)"; - icon_state = "paper"; dir = 9 }, /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /turf/template_noop, /area/template_noop) "bo" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/template_noop, /area/template_noop) "bp" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/item/toy/crayon/rainbow, @@ -628,26 +474,18 @@ /area/ruin/powered) "bq" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "br" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /turf/open/indestructible/paper, @@ -666,34 +504,24 @@ /area/ruin/powered) "bv" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "bw" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/template_noop, /area/template_noop) "bx" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /turf/template_noop, @@ -704,8 +532,6 @@ /area/ruin/powered) "bz" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTHWEST)"; - icon_state = "paperstack"; dir = 9 }, /obj/structure/fluff/paper, @@ -728,21 +554,15 @@ "bC" = ( /obj/item/toy/crayon/yellow, /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /turf/open/indestructible/paper, /area/ruin/powered) "bD" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /turf/open/indestructible/paper, @@ -753,14 +573,10 @@ /area/ruin/powered) "bF" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /obj/structure/fluff/paper/stack, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, @@ -772,8 +588,6 @@ /area/ruin/powered) "bH" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/item/toy/crayon/yellow, @@ -781,8 +595,6 @@ /area/ruin/powered) "bI" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHWEST)"; - icon_state = "paper"; dir = 9 }, /obj/structure/closet/crate/bin, @@ -802,8 +614,6 @@ /area/ruin/powered) "bJ" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/easel, @@ -817,8 +627,6 @@ /area/ruin/powered) "bK" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /obj/structure/table/wood, @@ -827,13 +635,9 @@ /area/ruin/powered) "bL" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (SOUTHEAST)"; - icon_state = "paperstack"; dir = 6 }, /turf/open/indestructible/paper, @@ -845,8 +649,6 @@ "bN" = ( /obj/structure/fluff/paper/corner, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, @@ -857,8 +659,6 @@ opacity = 0 }, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper, @@ -866,48 +666,34 @@ /area/ruin/powered) "bP" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (WEST)"; - icon_state = "papercorner"; dir = 8 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "bQ" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /obj/structure/fluff/paper/stack, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "bR" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "bS" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTH)"; - icon_state = "paperstack"; dir = 1 }, /obj/structure/fluff/paper/stack, @@ -915,21 +701,15 @@ /area/ruin/powered) "bT" = ( /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (SOUTHEAST)"; - icon_state = "paperstack"; dir = 6 }, /turf/open/indestructible/paper, /area/ruin/powered) "bU" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /mob/living/simple_animal/hostile/stickman, @@ -941,8 +721,6 @@ /area/ruin/powered) "bW" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/easel, @@ -964,8 +742,6 @@ /area/ruin/powered) "bZ" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/bed, @@ -974,8 +750,6 @@ /area/ruin/powered) "ca" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /obj/structure/table/wood, @@ -984,8 +758,6 @@ /area/ruin/powered) "cb" = ( /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTHWEST)"; - icon_state = "paperstack"; dir = 9 }, /obj/item/toy/crayon/purple, @@ -997,8 +769,6 @@ /area/ruin/powered) "cd" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/table/wood, @@ -1008,21 +778,15 @@ /area/ruin/powered) "ce" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (EAST)"; - icon_state = "papercorner"; dir = 4 }, /turf/open/indestructible/paper, /area/ruin/powered) "cf" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper/stack, @@ -1030,8 +794,6 @@ /area/ruin/powered) "cg" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (EAST)"; - icon_state = "paper"; dir = 4 }, /obj/structure/table/wood, @@ -1048,16 +810,12 @@ "ci" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper/corner{ - tag = "icon-papercorner (NORTH)"; - icon_state = "papercorner"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "cj" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /mob/living/simple_animal/hostile/stickman, @@ -1065,13 +823,9 @@ /area/ruin/powered) "ck" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHEAST)"; - icon_state = "paper"; dir = 6 }, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTHEAST)"; - icon_state = "paper"; dir = 5 }, /turf/open/indestructible/paper, @@ -1079,8 +833,6 @@ "cl" = ( /obj/structure/fluff/paper/corner, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (EAST)"; - icon_state = "paperstack"; dir = 4 }, /turf/open/indestructible/paper, @@ -1094,8 +846,6 @@ /area/ruin/powered) "cn" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHEAST)"; - icon_state = "paper"; dir = 6 }, /obj/structure/table/wood, @@ -1107,8 +857,6 @@ "co" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (NORTHWEST)"; - icon_state = "paperstack"; dir = 9 }, /obj/item/toy/crayon/blue, @@ -1116,8 +864,6 @@ /area/ruin/powered) "cp" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (SOUTHWEST)"; - icon_state = "paper"; dir = 10 }, /obj/machinery/photocopier, @@ -1144,8 +890,6 @@ "cs" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /mob/living/simple_animal/hostile/stickman/dog, @@ -1154,21 +898,15 @@ "ct" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /turf/open/indestructible/paper, /area/ruin/powered) "cu" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (WEST)"; - icon_state = "paper"; dir = 8 }, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (SOUTHEAST)"; - icon_state = "paperstack"; dir = 6 }, /turf/open/indestructible/paper, @@ -1176,16 +914,12 @@ "cv" = ( /obj/structure/fluff/paper, /obj/structure/fluff/paper/stack{ - tag = "icon-paperstack (SOUTHEAST)"; - icon_state = "paperstack"; dir = 6 }, /turf/open/indestructible/paper, /area/ruin/powered) "cw" = ( /obj/structure/fluff/paper{ - tag = "icon-paper (NORTH)"; - icon_state = "paper"; dir = 1 }, /mob/living/simple_animal/hostile/stickman/ranged, diff --git a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm index db2a94579c..a4baf770b0 100644 --- a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm +++ b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm @@ -5,7 +5,6 @@ "b" = ( /turf/template_noop, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (WEST)"; icon_state = "corner"; dir = 8 }, @@ -30,7 +29,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (NORTH)"; icon_state = "corner"; dir = 1 }, @@ -47,7 +45,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (EAST)"; icon_state = "corner"; dir = 4 }, @@ -64,8 +61,6 @@ /area/ruin/powered) "j" = ( /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/template_noop, @@ -79,13 +74,11 @@ /area/ruin/powered) "l" = ( /turf/closed/indestructible/oldshuttle{ - tag = "icon-orange"; icon_state = "orange" }, /area/ruin/powered) "m" = ( /obj/structure/chair/old{ - tag = "icon-chairold (NORTH)"; icon_state = "chairold"; dir = 1 }, @@ -96,7 +89,6 @@ /area/ruin/powered) "n" = ( /obj/structure/chair/old{ - tag = "icon-chairold (NORTH)"; icon_state = "chairold"; dir = 1 }, @@ -112,7 +104,6 @@ /area/ruin/powered) "o" = ( /obj/structure/chair/old{ - tag = "icon-chairold (NORTH)"; icon_state = "chairold"; dir = 1 }, @@ -128,7 +119,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (WEST)"; icon_state = "corner"; dir = 8 }, @@ -143,7 +133,6 @@ "r" = ( /turf/template_noop, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (NORTH)"; icon_state = "corner"; dir = 1 }, @@ -151,7 +140,6 @@ "s" = ( /turf/template_noop, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (EAST)"; icon_state = "corner"; dir = 4 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/RandomRuins/SpaceRuins/spacebar.dmm deleted file mode 100644 index a7e927670e..0000000000 --- a/_maps/RandomRuins/SpaceRuins/spacebar.dmm +++ /dev/null @@ -1,2318 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/turf/closed/mineral, -/area/ruin/unpowered/no_grav) -"ac" = ( -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered/no_grav) -"ad" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"ae" = ( -/turf/closed/wall, -/area/ruin/powered/spacebar) -"af" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"ag" = ( -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"ah" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"ai" = ( -/turf/closed/mineral, -/area/ruin/powered/spacebar) -"aj" = ( -/turf/open/floor/plating/asteroid, -/turf/closed/wall/mineral/titanium/interior, -/area/ruin/powered/spacebar) -"ak" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"al" = ( -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"am" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/spacebar) -"an" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/spacebar) -"ao" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"ap" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aq" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/book/manual/barman_recipes, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"ar" = ( -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"as" = ( -/obj/structure/table, -/obj/item/toy/figure/bartender, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"at" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/shaker, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"au" = ( -/obj/effect/mob_spawn/human/bartender/alive, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"av" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aw" = ( -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/spacebar) -"ax" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"ay" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"az" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aB" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aC" = ( -/turf/open/floor/plating, -/obj/structure/shuttle/engine/propulsion/burst, -/turf/closed/wall/mineral/titanium/interior, -/area/ruin/powered/spacebar) -"aD" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/powered/spacebar) -"aE" = ( -/obj/machinery/button/door{ - id = "spacebardock"; - name = "pod dock door cycle"; - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aF" = ( -/obj/machinery/vending/boozeomat, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"aG" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ - req_access = null - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aH" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/machinery/microwave, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aI" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aJ" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 10 - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aK" = ( -/turf/closed/wall, -/area/ruin/powered/spacebar) -"aL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"aM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"aN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"aO" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aP" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/item/weapon/reagent_containers/glass/rag, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ruin/powered/spacebar/bar) -"aQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"aR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"aS" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/turf/open/floor/plasteel{ - icon_state = "wood" - }, -/area/ruin/powered/spacebar/bar) -"aT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"aU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"aV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"aW" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"aX" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"aY" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"aZ" = ( -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"ba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bb" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bd" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"be" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ruin/powered/spacebar/bar) -"bf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"bg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bi" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bj" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ruin/powered/spacebar/bar) -"bk" = ( -/turf/open/floor/plating, -/area/ruin/powered/spacebar/bar) -"bl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bp" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bq" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"br" = ( -/obj/structure/chair{ - tag = "icon-chair (EAST)"; - icon_state = "chair"; - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bs" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bt" = ( -/obj/structure/chair{ - tag = "icon-chair (WEST)"; - icon_state = "chair"; - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bv" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bw" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bx" = ( -/obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"by" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bz" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bA" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bB" = ( -/obj/machinery/vending/coffee, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bC" = ( -/obj/machinery/vending/snack, -/obj/machinery/light, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bD" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/ruin/powered/spacebar/bar) -"bF" = ( -/obj/machinery/door/airlock{ - name = "Unisex Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bG" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bH" = ( -/obj/structure/urinal{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bK" = ( -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bL" = ( -/obj/structure/urinal{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bO" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bP" = ( -/obj/structure/table/wood, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/ruin/powered/spacebar/bar) -"bQ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bR" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bS" = ( -/obj/machinery/door/airlock{ - name = "Toilet" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bT" = ( -/obj/structure/glowshroom/single, -/turf/open/floor/plasteel/freezer, -/area/ruin/powered/spacebar/bar) -"bU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"bV" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"bW" = ( -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"bX" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"bY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"bZ" = ( -/obj/machinery/button/door{ - id = "spacebardock"; - name = "Podbay Airlock"; - pixel_y = -24 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"ca" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"cb" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"cc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"cd" = ( -/obj/machinery/atmospherics/components/binary/valve/open, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"ce" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"cf" = ( -/turf/open/floor/plating/asteroid, -/area/ruin/unpowered/no_grav) -"cg" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebardock"; - name = "airlock dock" - }, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"ch" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"ci" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plating/asteroid, -/area/ruin/powered/spacebar) -"cj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) -"ck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered/no_grav) -"cl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/mineral, -/area/ruin/unpowered/no_grav) -"cm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered/no_grav) -"cn" = ( -/obj/machinery/door/poddoor{ - id = "spacebardock"; - name = "airlock dock" - }, -/turf/open/floor/plating, -/area/ruin/powered/spacebar) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ab -ab -ab -ac -aa -aa -ac -ab -ab -ab -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ae -ad -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ae -bV -ae -ac -ac -ab -ab -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ad -ac -ad -ad -ag -ag -ag -ag -ag -ad -ad -ae -bW -ae -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ag -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ae -bW -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ae -bV -ae -ag -ag -ae -ab -ab -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ae -ae -ae -ae -ae -ae -ae -ae -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -aj -am -am -aC -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -ac -ac -ad -ag -ag -ak -an -aw -aD -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -aj -am -am -aC -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -aL -aT -ag -ag -ag -ag -ag -ag -aj -am -am -aC -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -ag -ai -ai -ai -ag -aM -aU -al -bj -al -ag -ag -ag -ak -an -aw -aD -ag -ag -ag -bW -cg -bW -bW -bW -bW -cn -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -ac -ac -ac -ae -ag -ag -ai -ai -ai -ai -ai -aM -aU -be -bk -be -ag -ag -ag -aj -am -am -aC -ag -ag -bZ -ae -ae -ae -ae -ae -ae -ae -ae -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -ac -ac -ac -ad -ag -ai -ai -ai -ai -ai -ai -aM -aU -bf -bk -be -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ae -ac -ac -ac -ac -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -ab -ac -ac -ac -ad -ag -ag -ai -al -al -al -al -aN -aV -al -bj -al -al -al -al -al -be -ag -ag -ag -ag -ai -ag -ag -ae -ac -ac -ac -ac -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -ab -ab -ac -ac -ac -ad -ag -ai -al -ao -ax -aE -aO -aW -aZ -aZ -bq -bw -bs -bD -bG -aZ -be -ag -ag -ai -ai -ai -ag -ae -ac -ac -ac -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -ab -ab -ac -ac -ac -ad -ag -ag -al -ap -ar -ar -aO -aX -bc -bl -bc -bc -bl -bc -bl -bc -bc -be -bU -bU -bU -bU -ca -ad -ac -ac -ac -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -ab -ab -ac -ac -ac -ad -ag -al -aq -ar -ar -aP -aY -aZ -bm -br -aZ -by -aZ -bm -aZ -aZ -aZ -be -bX -ca -ag -aU -ad -ac -ac -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -ab -ab -ac -ac -ac -ad -ag -al -ar -ar -ar -aO -aY -aZ -bm -bs -aZ -aZ -aZ -bm -bw -bP -bD -al -bX -cb -cd -ch -ad -ac -ac -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -al -al -ay -aF -aN -aZ -aZ -bm -bt -aZ -bz -al -aV -al -al -al -al -bX -cc -ag -ci -ad -ac -ac -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -al -as -ar -aG -aN -ba -bg -bm -aZ -bx -bA -al -bH -bL -al -bR -al -ai -ag -aL -ag -ad -ac -ac -ac -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -al -at -az -aH -aQ -bb -bh -bn -bu -bu -bB -bE -bI -bM -bE -bS -bE -bY -bY -ce -bY -cj -ck -cl -cm -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -al -au -aA -aI -aR -bc -bc -bo -aZ -aZ -bC -al -bJ -bN -bQ -bK -al -ai -ai -ag -ag -ad -ac -ac -ac -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -ac -ac -ac -ad -ag -ag -al -ar -ar -ar -aS -aZ -aZ -aZ -aZ -aZ -aZ -al -bK -bK -bK -bT -al -ai -ai -ag -ag -ad -ac -ac -ab -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -ac -ac -ad -ag -ag -al -av -aB -aJ -al -bd -bi -bp -bv -aZ -aZ -bF -bK -bO -bO -bK -al -ai -ai -ai -ag -ad -ac -ac -ab -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -ac -ac -ah -ag -ag -al -al -al -al -al -al -be -be -be -be -al -al -al -al -al -al -al -ai -ai -ai -ag -ad -ac -ac -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ai -ai -ai -ai -ai -ai -ai -ai -ag -ag -ae -ac -ac -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ai -ai -ai -ai -ag -ag -ag -ad -ac -ac -ac -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ag -ag -ag -ag -ad -ad -ad -ad -ad -ag -ag -ag -ag -ag -ag -ag -ad -ad -ae -ac -ac -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ae -ad -ac -ac -ac -ac -ac -ad -ag -ag -ag -ag -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ac -ac -ac -ac -ad -ad -ad -ad -ac -ac -ac -ac -ab -ac -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -ab -ab -ab -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -ac -ab -ab -ab -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index be1e646053..d87ee0b65d 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -35,8 +35,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) @@ -62,8 +61,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) @@ -197,18 +195,13 @@ name = "Hotel Guest Room 3" }) "aC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 3" }) "aD" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-02"; icon_state = "plant-02" }, /turf/open/floor/wood, @@ -259,18 +252,13 @@ name = "Hotel Guest Room 4" }) "aK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 4" }) "aL" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-16"; icon_state = "plant-16" }, /turf/open/floor/wood, @@ -321,18 +309,13 @@ name = "Hotel Guest Room 5" }) "aS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 5" }) "aT" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-16"; icon_state = "plant-16" }, /turf/open/floor/wood, @@ -383,18 +366,13 @@ name = "Hotel Guest Room 6" }) "ba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 6" }) "bb" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-18"; icon_state = "plant-18" }, /turf/open/floor/wood, @@ -438,10 +416,7 @@ name = "Hotel Guest Room 3" }) "bh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 3" @@ -485,10 +460,7 @@ name = "Hotel Guest Room 4" }) "bn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 4" @@ -532,10 +504,7 @@ name = "Hotel Guest Room 5" }) "bt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 5" @@ -579,10 +548,7 @@ name = "Hotel Guest Room 6" }) "bz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ name = "Hotel Guest Room 6" @@ -683,9 +649,7 @@ "bM" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -749,9 +713,7 @@ "bS" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -815,9 +777,7 @@ "bY" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -881,9 +841,7 @@ "ce" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -1080,8 +1038,7 @@ dir = 4; icon_state = "roomnum"; name = "Room Number 3"; - pixel_y = 24; - tag = "icon-roomnum (EAST)" + pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/carpet, @@ -1092,8 +1049,7 @@ dir = 8; icon_state = "roomnum"; name = "Room Number 4"; - pixel_y = 24; - tag = "icon-roomnum (WEST)" + pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/carpet, @@ -1110,8 +1066,7 @@ dir = 6; icon_state = "roomnum"; name = "Room Number 5"; - pixel_y = 24; - tag = "icon-roomnum (SOUTHEAST)" + pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/carpet, @@ -1131,8 +1086,7 @@ dir = 10; icon_state = "roomnum"; name = "Room Number 6"; - pixel_y = 24; - tag = "icon-roomnum (SOUTHWEST)" + pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -1167,9 +1121,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1184,9 +1136,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1197,9 +1147,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1210,9 +1158,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1231,9 +1177,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1245,9 +1189,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -1261,8 +1203,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/carpet, /area/ruin/hotel) @@ -1294,8 +1235,7 @@ dir = 1; icon_state = "roomnum"; name = "Room Number 2"; - pixel_y = -24; - tag = "icon-roomnum (NORTH)" + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -1434,9 +1374,7 @@ "dm" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -1450,7 +1388,6 @@ cell_type = 5000; dir = 1; name = "Guest Room APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -1485,7 +1422,6 @@ }) "dq" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/wood, @@ -1520,9 +1456,7 @@ "du" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 32 @@ -1536,7 +1470,6 @@ cell_type = 5000; dir = 1; name = "Guest Room APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -1571,7 +1504,6 @@ }) "dy" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-14"; icon_state = "plant-14" }, /turf/open/floor/wood, @@ -1733,9 +1665,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -1746,9 +1676,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -1773,10 +1701,8 @@ /turf/open/floor/plasteel/white, /area/ruin/hotel/workroom) "eb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/ruin/hotel/workroom) @@ -1817,11 +1743,8 @@ name = "Hotel Guest Room 2" }) "eh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ @@ -1854,11 +1777,8 @@ name = "Hotel Guest Room 1" }) "el" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ @@ -1901,9 +1821,8 @@ /turf/open/floor/plasteel/white, /area/ruin/hotel/workroom) "er" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/ruin/hotel/workroom) @@ -1916,11 +1835,8 @@ name = "Hotel Guest Room 2" }) "et" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ @@ -1942,11 +1858,8 @@ name = "Hotel Guest Room 1" }) "ew" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel/guestroom{ @@ -2030,9 +1943,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/hotel) @@ -2047,18 +1958,14 @@ "eL" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; - pixel_y = -24; - tag = "icon-alarm0 (NORTH)" + pixel_y = -24 }, /turf/open/floor/plating, /area/ruin/hotel/bar) "eM" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; - pixel_y = -24; - tag = "icon-alarm0 (NORTH)" + pixel_y = -24 }, /turf/open/floor/plating, /area/ruin/hotel) @@ -2106,10 +2013,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/ruin/hotel/dock) "eW" = ( @@ -2168,8 +2072,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/ruin/hotel) @@ -2260,10 +2163,8 @@ /turf/open/floor/wood, /area/ruin/hotel/dock) "ft" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/wood, /area/ruin/hotel/dock) @@ -2339,21 +2240,16 @@ /area/ruin/hotel/bar) "fI" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-02"; icon_state = "plant-02" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel) "fJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/ruin/hotel) @@ -2389,7 +2285,6 @@ /area/ruin/hotel/dock) "fP" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -2460,8 +2355,7 @@ /area/ruin/hotel/dock) "fX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/carpet, /area/ruin/hotel/dock) @@ -2518,7 +2412,6 @@ /area/ruin/hotel/dock) "gh" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-22"; icon_state = "plant-22" }, /turf/open/floor/wood, @@ -2526,8 +2419,6 @@ "gi" = ( /obj/structure/table/wood, /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/carpet, @@ -2560,9 +2451,8 @@ /turf/open/floor/plasteel/freezer, /area/ruin/hotel/bar) "gn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/freezer, /area/ruin/hotel/bar) @@ -2598,8 +2488,6 @@ layer = 2.9 }, /obj/machinery/light/small{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -2776,9 +2664,8 @@ /area/ruin/hotel/bar) "gW" = ( /obj/structure/table/reinforced, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria, /area/ruin/hotel/bar) @@ -2891,18 +2778,14 @@ /turf/open/floor/plasteel/freezer, /area/ruin/hotel/bar) "hk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/freezer, /area/ruin/hotel/bar) "hl" = ( /obj/structure/kitchenspike, /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/freezer, @@ -2924,24 +2807,17 @@ /area/ruin/hotel/bar) "ho" = ( /obj/structure/table/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/cafeteria, /area/ruin/hotel/bar) "hp" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/carpet, /area/ruin/hotel) "hq" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-18"; icon_state = "plant-18" }, /turf/open/floor/plasteel/black, @@ -3072,7 +2948,6 @@ /area/ruin/hotel/workroom) "hG" = ( /obj/effect/mob_spawn/human/hotel_staff{ - tag = "icon-sleeper_s (NORTH)"; icon_state = "sleeper_s"; dir = 1 }, @@ -3081,7 +2956,6 @@ /area/ruin/hotel/workroom) "hH" = ( /obj/effect/mob_spawn/human/hotel_staff{ - tag = "icon-sleeper_s (NORTH)"; icon_state = "sleeper_s"; dir = 1 }, @@ -3109,8 +2983,6 @@ /obj/structure/table/wood, /obj/structure/window/reinforced, /obj/machinery/light/small{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -3147,15 +3019,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -3166,9 +3035,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, @@ -3216,7 +3083,6 @@ dir = 1 }, /obj/structure/piano{ - tag = "icon-piano"; icon_state = "piano" }, /turf/open/floor/plasteel/grimy, @@ -3317,9 +3183,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3362,8 +3226,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) @@ -3374,7 +3237,6 @@ "is" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9 }, @@ -3392,7 +3254,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -3401,19 +3262,15 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/sign/fire{ desc = "A poster designed to remind the reader to wear appropriate insulation and head protection when working with material."; icon_state = "safety"; name = "Safety Poster"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -3422,15 +3279,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/airalarm{ pixel_y = 24 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -3440,7 +3294,6 @@ cell_type = 5000; dir = 1; name = "Power Storage APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -3448,7 +3301,6 @@ icon_state = "0-8" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -3458,7 +3310,6 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5 }, @@ -3501,9 +3352,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/ruin/hotel) @@ -3527,7 +3377,6 @@ dir = 8 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8 }, @@ -3555,7 +3404,6 @@ /obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/glass/fifty, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -3570,11 +3418,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel) "iO" = ( @@ -3598,7 +3442,6 @@ /obj/item/weapon/storage/toolbox/mechanical, /obj/item/clothing/head/welding, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8 }, @@ -3614,7 +3457,6 @@ amount = 60 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -3629,9 +3471,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -3646,9 +3486,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plating, @@ -3657,9 +3495,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3671,9 +3507,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -3689,15 +3523,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; - pixel_y = -24; - tag = "icon-alarm0 (NORTH)" + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3714,9 +3544,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -3731,9 +3559,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3744,9 +3570,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -3787,19 +3611,12 @@ /obj/structure/chair/comfy/brown{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/ruin/hotel/dock) "jh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/ruin/hotel/dock) @@ -3809,7 +3626,6 @@ /obj/item/weapon/stock_parts/cell/high, /obj/item/weapon/stock_parts/cell/high, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8 }, @@ -3843,7 +3659,6 @@ amount = 50 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -3947,7 +3762,6 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8 }, @@ -3967,15 +3781,13 @@ /turf/open/floor/plasteel, /area/ruin/hotel/power) "jD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/ruin/hotel/power) "jE" = ( /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4 }, @@ -3985,7 +3797,6 @@ pixel_x = 30 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5 }, @@ -3995,7 +3806,6 @@ /area/ruin/hotel/security) "jH" = ( /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9 }, @@ -4003,7 +3813,6 @@ "jI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1 }, @@ -4011,7 +3820,6 @@ "jJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1 }, @@ -4021,7 +3829,6 @@ pixel_y = 24 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1 }, @@ -4031,7 +3838,6 @@ pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5 }, @@ -4114,16 +3920,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8 }, @@ -4163,12 +3965,9 @@ /area/ruin/hotel/power) "kg" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -4178,7 +3977,6 @@ dir = 8 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (WEST)"; icon_state = "red"; dir = 8 }, @@ -4197,7 +3995,6 @@ /area/ruin/hotel/security) "kl" = ( /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; icon_state = "red"; dir = 4 }, @@ -4227,7 +4024,6 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10 }, @@ -4237,8 +4033,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -4294,28 +4089,22 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6 }, /area/ruin/hotel/power) "kx" = ( /turf/open/floor/plasteel/red/side{ - tag = "icon-red (WEST)"; icon_state = "red"; dir = 8 }, /area/ruin/hotel/security) "ky" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/ruin/hotel/security) @@ -4364,11 +4153,8 @@ /turf/open/floor/wood, /area/ruin/hotel/pool) "kG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/ruin/hotel/pool) @@ -4396,7 +4182,6 @@ /obj/structure/table, /obj/item/weapon/book/manual/wiki/security_space_law, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (WEST)"; icon_state = "red"; dir = 8 }, @@ -4418,7 +4203,6 @@ dir = 8 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; icon_state = "red"; dir = 4 }, @@ -4456,16 +4240,13 @@ }, /area/ruin/hotel/pool) "kT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/ruin/hotel/pool) "kU" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -4519,7 +4300,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (WEST)"; icon_state = "red"; dir = 8 }, @@ -4527,11 +4307,8 @@ "lc" = ( /obj/structure/table, /obj/item/weapon/papercutter, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/ruin/hotel/security) @@ -4624,15 +4401,12 @@ /obj/item/weapon/restraints/handcuffs, /obj/item/weapon/restraints/handcuffs, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (WEST)"; icon_state = "red"; dir = 8 }, /area/ruin/hotel/security) "ls" = ( /obj/structure/chair{ - tag = "icon-chair (NORTH)"; - icon_state = "chair"; dir = 1 }, /turf/open/floor/plasteel, @@ -4654,7 +4428,6 @@ /area/ruin/unpowered/no_grav) "lw" = ( /turf/open/floor/plasteel/red/side{ - tag = "icon-red (SOUTHWEST)"; icon_state = "red"; dir = 10 }, @@ -4664,19 +4437,14 @@ /area/ruin/hotel/security) "ly" = ( /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; dir = 8 }, /area/ruin/hotel/security) "lz" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; icon_state = "red"; dir = 4 }, @@ -4716,8 +4484,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -4733,7 +4500,6 @@ /area/ruin/hotel/security) "lG" = ( /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -4758,7 +4524,6 @@ /obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/sandal, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -4792,8 +4557,6 @@ /area/ruin/hotel/pool) "lN" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/plasteel/darkred, @@ -4834,7 +4597,6 @@ /area/ruin/hotel/security) "lU" = ( /turf/open/floor/plasteel/red/side{ - tag = "icon-red (SOUTHEAST)"; icon_state = "red"; dir = 6 }, @@ -4927,8 +4689,6 @@ "mf" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/light/small{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -4958,8 +4718,6 @@ "mk" = ( /obj/structure/table, /obj/machinery/light/small{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /obj/item/device/lightreplacer, @@ -4979,11 +4737,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/ruin/hotel/pool) "mo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/ruin/hotel/custodial) @@ -4998,10 +4753,8 @@ /turf/closed/wall, /area/ruin/hotel/custodial) "mr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/ruin/hotel/pool) @@ -5028,9 +4781,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/ruin/hotel/pool) "mu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/ruin/hotel/custodial) @@ -5059,9 +4811,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5101,8 +4851,6 @@ /area/ruin/hotel/pool) "mC" = ( /obj/structure/chair{ - tag = "icon-chair (NORTH)"; - icon_state = "chair"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -5111,7 +4859,6 @@ /area/ruin/hotel/pool) "mD" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-25"; icon_state = "plant-25" }, /turf/open/floor/plasteel/neutral, @@ -5178,8 +4925,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel/black, /area/ruin/hotel/workroom) @@ -5191,8 +4937,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/ruin/hotel/workroom) @@ -5208,9 +4953,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/carpet, /area/ruin/hotel) @@ -5218,8 +4961,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/carpet, /area/ruin/hotel) @@ -5227,8 +4969,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/ruin/hotel) @@ -5236,9 +4977,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index 5979795ca0..e7d60c5ebe 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -182,8 +182,7 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/orange, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/ruin/turretedoutpost) @@ -282,7 +281,6 @@ /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/snacks/breadslice/meat, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm index fd97136d6c..a3eb5d6714 100644 --- a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm +++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm @@ -30,7 +30,6 @@ "i" = ( /obj/structure/piano, /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plasteel/vaporwave, @@ -64,7 +63,6 @@ /area/ruin/powered/aesthetic) "o" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 4 }, /turf/open/floor/plasteel/vaporwave, @@ -78,7 +76,6 @@ /area/ruin/powered/aesthetic) "r" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plasteel/vaporwave, @@ -140,7 +137,6 @@ /area/ruin/unpowered/no_grav) "D" = ( /turf/open/floor/plasteel/airless/asteroid{ - tag = "icon-recharge_floor_asteroid"; icon_state = "recharge_floor_asteroid" }, /area/ruin/unpowered/no_grav) @@ -169,25 +165,21 @@ /turf/open/space, /obj/effect/decal/sandeffect, /turf/open/floor/plasteel/airless/asteroid{ - tag = "icon-platingsandeffect"; icon_state = "platingsandeffect" }, /area/ruin/unpowered/no_grav) "J" = ( /turf/open/floor/plasteel/airless/asteroid{ - tag = "icon-stairs-l"; icon_state = "stairs-l" }, /area/ruin/unpowered/no_grav) "K" = ( /turf/open/floor/plasteel/airless/asteroid{ - tag = "icon-stairs-m"; icon_state = "stairs-m" }, /area/ruin/unpowered/no_grav) "L" = ( /turf/open/floor/plasteel/airless/asteroid{ - tag = "icon-stairs-r"; icon_state = "stairs-r" }, /area/ruin/unpowered/no_grav) diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index be33b5b018..41b3223131 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -72,8 +72,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light/small, /turf/open/floor/carpet, @@ -82,8 +81,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) @@ -99,8 +97,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) @@ -124,8 +121,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/wood{ name = "Headmaster Room" @@ -141,8 +137,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) @@ -201,7 +196,6 @@ /area/awaymission/academy/headmaster) "aD" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/carpet, @@ -220,11 +214,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/carpet, @@ -327,8 +319,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/weapon/pen/red, /turf/open/floor/carpet, @@ -368,8 +359,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/weapon/dice/d20, /turf/open/floor/carpet, @@ -391,8 +381,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) @@ -424,8 +413,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) @@ -536,7 +524,6 @@ /area/awaymission/academy/headmaster) "bL" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -561,8 +548,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -572,8 +558,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/academy/headmaster) @@ -582,8 +567,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -660,8 +644,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -694,8 +677,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime, /area/awaymission/academy/classrooms) @@ -716,8 +698,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/awaymission/academy/headmaster) @@ -739,15 +720,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/weapon/pen/red, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "cr" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -782,8 +761,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/academy/headmaster) @@ -796,8 +774,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/stack/cable_coil/random, /turf/open/floor/plasteel, @@ -824,8 +801,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -838,8 +814,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/plasma, /turf/open/floor/carpet, @@ -880,8 +855,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -912,7 +886,6 @@ /area/awaymission/academy/classrooms) "cS" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -957,8 +930,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -966,8 +938,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime, /area/awaymission/academy/classrooms) @@ -990,7 +961,6 @@ /area/awaymission/academy/classrooms) "dd" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/wood, @@ -1068,7 +1038,6 @@ /area/awaymission/academy/classrooms) "dr" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -1110,8 +1079,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/circuit/green, @@ -1120,8 +1088,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -1145,8 +1112,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -1214,8 +1180,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ dir = 4 @@ -1226,8 +1191,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) @@ -1235,8 +1199,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) @@ -1261,8 +1224,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -1286,8 +1248,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) @@ -1316,8 +1277,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -1372,8 +1332,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) @@ -1430,8 +1389,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) @@ -1444,8 +1402,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) @@ -1504,8 +1461,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/barber{ dir = 8 @@ -1541,8 +1497,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/chapel{ dir = 1 @@ -1550,7 +1505,6 @@ /area/awaymission/academy/classrooms) "eP" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -1594,8 +1548,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/chapel{ dir = 8 @@ -1616,7 +1569,6 @@ "fa" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/weapon/reagent_containers/food/snacks/burger/spell, @@ -1646,8 +1598,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) @@ -1655,8 +1606,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1669,8 +1619,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) @@ -1679,8 +1628,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/academy/classrooms) @@ -1688,8 +1636,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/escape{ dir = 6 @@ -1700,8 +1647,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/escape{ dir = 6 @@ -1712,8 +1658,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/barber{ dir = 8 @@ -1723,8 +1668,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/barber{ dir = 8 @@ -1830,8 +1774,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/noticeboard{ pixel_y = -32 @@ -1871,8 +1814,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) @@ -1889,8 +1831,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) @@ -1916,8 +1857,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1928,8 +1868,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white/side{ dir = 1 @@ -1986,9 +1925,7 @@ "fS" = ( /obj/structure/window/reinforced, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "fT" = ( /obj/structure/table/reinforced, @@ -2080,8 +2017,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/academyaft) @@ -2102,8 +2038,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/recharger, /obj/structure/table/reinforced, @@ -2147,8 +2082,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/academy/classrooms) @@ -2176,8 +2110,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -2189,7 +2122,6 @@ /area/awaymission/academy/classrooms) "gv" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/white/side{ @@ -2198,7 +2130,6 @@ /area/awaymission/academy/classrooms) "gw" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/wood, @@ -2209,14 +2140,12 @@ /area/awaymission/academy/academycellar) "gy" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/academyaft) "gz" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -2262,8 +2191,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) @@ -2307,9 +2235,7 @@ /obj/structure/window/reinforced, /obj/item/ammo_casing, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "gL" = ( /mob/living/simple_animal/hostile/bear, @@ -2350,8 +2276,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -2367,8 +2292,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) @@ -2376,8 +2300,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -2451,8 +2374,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) @@ -2496,8 +2418,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) @@ -2573,8 +2494,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) @@ -2582,8 +2502,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) @@ -2591,8 +2510,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) @@ -2631,8 +2549,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) @@ -2648,8 +2565,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -2662,8 +2578,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, /turf/open/floor/plating, @@ -2672,8 +2587,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -2691,8 +2605,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ dir = 8 @@ -2702,8 +2615,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) @@ -2711,8 +2623,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ dir = 4 @@ -2722,8 +2633,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -2736,8 +2646,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -2750,8 +2659,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/caution, /turf/open/floor/plasteel/green/side{ @@ -2786,14 +2694,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hQ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/hydrofloor, @@ -2874,7 +2780,6 @@ /area/awaymission/academy/academyaft) "id" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/hydrofloor, @@ -2887,8 +2792,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -2922,8 +2826,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) @@ -2991,7 +2894,6 @@ /area/awaymission/academy/academyaft) "iv" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -3002,7 +2904,6 @@ /area/awaymission/academy/academyaft) "iw" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/cafeteria{ @@ -3011,21 +2912,18 @@ /area/awaymission/academy/academyaft) "ix" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/wood, /area/awaymission/academy/academyaft) "iy" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/wood, /area/awaymission/academy/academyaft) "iz" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/cafeteria{ @@ -3035,9 +2933,7 @@ "iA" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/cafeteria{ dir = 2 @@ -3066,7 +2962,6 @@ /area/awaymission/academy/academyaft) "iE" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/rack, @@ -3172,8 +3067,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "0-2"; @@ -3192,8 +3086,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) @@ -3202,8 +3095,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable, /obj/structure/window/reinforced/fulltile, @@ -3234,9 +3126,7 @@ }, /area/awaymission/academy/academyaft) "iY" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/space, /area/awaymission/academy/academyaft) "iZ" = ( @@ -3244,9 +3134,7 @@ /turf/open/space, /area/awaymission/academy/academyaft) "ja" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/space, /area/awaymission/academy/academyaft) "jb" = ( @@ -3267,8 +3155,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -3300,8 +3187,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -3316,8 +3202,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ icon_state = "whitered"; @@ -3342,8 +3227,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -3353,11 +3237,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/carpet, @@ -3368,7 +3250,6 @@ /area/awaymission/academy/academyaft) "jm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/carpet, @@ -3377,8 +3258,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/airless/white{ dir = 4 @@ -3503,8 +3383,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/window/reinforced{ dir = 4 @@ -3535,8 +3414,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/window/reinforced{ dir = 1 @@ -3602,8 +3480,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/academygate) @@ -3626,8 +3503,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/window, /turf/open/floor/carpet, @@ -3640,8 +3516,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -3654,8 +3529,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academygate) @@ -3876,8 +3750,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/weapon/book/manual/ripley_build_and_repair, /turf/open/floor/plasteel, @@ -3890,8 +3763,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -4025,8 +3897,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "0-2"; @@ -4324,7 +4195,6 @@ /area/awaymission/academy/academyengine) "mp" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index c489b28422..33f514c051 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -80,9 +80,7 @@ "as" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_y = 28 @@ -91,7 +89,6 @@ /area/awaymission/cabin) "at" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -155,7 +152,6 @@ /area/awaymission/cabin) "aB" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/light/small{ @@ -180,7 +176,6 @@ /area/awaymission/cabin) "aE" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -193,8 +188,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/cabin) @@ -210,8 +204,7 @@ /area/awaymission/cabin) "aI" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table/wood, /turf/open/floor/wood, @@ -494,9 +487,7 @@ "bJ" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/freezer, /area/awaymission/cabin) @@ -531,8 +522,7 @@ /area/awaymission/cabin) "bQ" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/awaymission/cabin) @@ -550,8 +540,7 @@ /area/awaymission/cabin) "bU" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/shaker, @@ -564,8 +553,7 @@ /area/awaymission/cabin) "bW" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table, /obj/machinery/microwave, @@ -577,8 +565,7 @@ /area/awaymission/cabin) "bY" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/processor, /turf/open/floor/plasteel/freezer, @@ -703,15 +690,13 @@ /area/awaymission/cabin) "cu" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/white, /area/awaymission/cabin) "cv" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, @@ -801,7 +786,6 @@ /area/awaymission/cabin) "cL" = ( /obj/structure/sign/barsign{ - pixel_x = 0; pixel_y = 32; req_access = null }, @@ -828,8 +812,7 @@ /area/awaymission/cabin) "cQ" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/carpet, /area/awaymission/cabin) diff --git a/_maps/RandomZLevels/beach.dmm b/_maps/RandomZLevels/beach.dmm index ee17326fdb..9ecdea32e7 100644 --- a/_maps/RandomZLevels/beach.dmm +++ b/_maps/RandomZLevels/beach.dmm @@ -54,8 +54,6 @@ /area/awaymission/beach) "al" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (EAST)"; - icon_state = "toilet00"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -97,8 +95,6 @@ /area/awaymission/beach) "as" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (WEST)"; - icon_state = "toilet00"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -110,15 +106,12 @@ /area/awaymission/beach) "au" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (EAST)"; - icon_state = "toilet00"; dir = 4 }, /turf/open/floor/plasteel/white, /area/awaymission/beach) "av" = ( /obj/machinery/shower{ - tag = "icon-shower (NORTH)"; icon_state = "shower"; dir = 1 }, @@ -131,7 +124,6 @@ /area/awaymission/beach) "ax" = ( /obj/machinery/shower{ - tag = "icon-shower (NORTH)"; icon_state = "shower"; dir = 1 }, @@ -266,7 +258,6 @@ dir = 9 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (NORTHWEST)"; dir = 9 }, /area/awaymission/beach) @@ -276,7 +267,6 @@ dir = 1 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (NORTH)"; dir = 1 }, /area/awaymission/beach) @@ -286,7 +276,6 @@ dir = 5 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (NORTHEAST)"; dir = 5 }, /area/awaymission/beach) @@ -304,7 +293,6 @@ dir = 8 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (WEST)"; dir = 8 }, /area/awaymission/beach) @@ -319,7 +307,6 @@ dir = 4 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (EAST)"; dir = 4 }, /area/awaymission/beach) @@ -329,14 +316,12 @@ dir = 10 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (SOUTHWEST)"; dir = 10 }, /area/awaymission/beach) "be" = ( /turf/open/floor/plating/beach/sand, /turf/open/floor/plasteel/sandeffect/warning/corner{ - tag = "icon-warningsandeffectcorners (NORTH)"; dir = 1 }, /obj/machinery/gateway, @@ -348,7 +333,6 @@ dir = 6 }, /turf/open/floor/plasteel/sandeffect/warning{ - tag = "icon-warningsandeffect (SOUTHEAST)"; dir = 6 }, /area/awaymission/beach) diff --git a/_maps/RandomZLevels/beach2.dmm b/_maps/RandomZLevels/beach2.dmm index 72fbf29352..8027bd7515 100644 --- a/_maps/RandomZLevels/beach2.dmm +++ b/_maps/RandomZLevels/beach2.dmm @@ -86,7 +86,6 @@ "as" = ( /obj/structure/dresser{ density = 0; - pixel_x = 0; pixel_y = 18 }, /turf/open/floor/wood{ diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 91bbcdf026..5a924ab6c1 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -425,8 +425,6 @@ }) "aU" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (EAST)"; - icon_state = "bulb1"; dir = 4 }, /obj/structure/sign/pods{ @@ -876,8 +874,6 @@ pixel_x = 32 }, /obj/machinery/light/small/built{ - tag = "icon-bulb1 (EAST)"; - icon_state = "bulb1"; dir = 4 }, /turf/open/floor/plating/asteroid/basalt{ @@ -1216,8 +1212,7 @@ "cE" = ( /obj/structure/sign/vacuum{ name = "\improper LOW AIR AREA"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/item/stack/rods, /turf/open/floor/plasteel{ @@ -1285,8 +1280,6 @@ }) "cM" = ( /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating{ @@ -1409,8 +1402,7 @@ "cZ" = ( /obj/structure/sign/vacuum{ name = "\improper LOW AIR AREA"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/basalt; @@ -1572,8 +1564,6 @@ }) "dq" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (EAST)"; - icon_state = "bulb1"; dir = 4 }, /obj/structure/spider/stickyweb, @@ -1686,8 +1676,6 @@ /area/awaymission/northblock) "dE" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/wood{ @@ -1847,8 +1835,6 @@ /area/awaymission/northblock) "eb" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/wood{ @@ -2022,8 +2008,6 @@ /area/awaymission/BMPship) "ez" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /obj/machinery/suit_storage_unit/mining{ @@ -2397,8 +2381,6 @@ /area/awaymission/BMPship) "fr" = ( /obj/machinery/light/small/built{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /obj/structure/spider/stickyweb, @@ -2491,7 +2473,6 @@ "fD" = ( /obj/structure/spider/stickyweb, /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /mob/living/simple_animal/hostile/poison/giant_spider/hunter, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 97b8381ff2..1149da1290 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -319,7 +319,6 @@ "aZ" = ( /obj/structure/table, /obj/machinery/processor{ - pixel_x = 0; pixel_y = 10 }, /turf/open/floor/plasteel/green{ @@ -413,22 +412,19 @@ /turf/closed/wall/mineral/titanium/interior, /area/awaymission/centcomAway/hangar) "bo" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "bp" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "bq" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/floor/plating, @@ -496,7 +492,6 @@ "bC" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /turf/open/floor/plating, @@ -621,8 +616,7 @@ "bY" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 0 + pixel_x = 2 }, /obj/item/weapon/storage/firstaid/regular{ pixel_x = -2; @@ -688,7 +682,6 @@ "ch" = ( /obj/structure/table/reinforced, /obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 0; pixel_y = 3 }, /turf/open/floor/plasteel/hydrofloor, @@ -852,7 +845,6 @@ /area/awaymission/centcomAway/hangar) "cN" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -1108,7 +1100,6 @@ "dF" = ( /obj/structure/table, /obj/machinery/processor{ - pixel_x = 0; pixel_y = 10 }, /turf/open/floor/plasteel/red, @@ -1432,7 +1423,6 @@ /area/awaymission/centcomAway/general) "eH" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -2380,7 +2370,6 @@ /area/awaymission/centcomAway/general) "hA" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -2522,7 +2511,6 @@ /area/awaymission/centcomAway/general) "hX" = ( /obj/machinery/button/crematorium{ - pixel_x = 0; pixel_y = 25 }, /turf/open/floor/engine, @@ -3527,22 +3515,19 @@ /turf/closed/wall/r_wall, /area/awaymission/centcomAway/thunderdome) "kT" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, /area/space) "kU" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/space, /area/space) "kV" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -3766,7 +3751,6 @@ /area/awaymission/centcomAway/thunderdome) "lD" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -3840,9 +3824,7 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/white, /area/awaymission/centcomAway/thunderdome) diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 2ad5bb7828..faeb6ff724 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -176,7 +176,6 @@ /area/awaymission/challenge/main) "aJ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/airless, @@ -548,7 +547,6 @@ /area/awaymission/challenge/main) "by" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/line, @@ -750,7 +748,6 @@ desc = "Used for watching evil areas."; name = "Security Monitor"; network = ""; - pixel_x = 0; pixel_y = 30 }, /obj/structure/table/reinforced, @@ -788,7 +785,6 @@ desc = "Used for watching evil areas."; name = "Security Monitor"; network = ""; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/carpet, @@ -820,7 +816,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/black, @@ -906,9 +901,7 @@ /obj/structure/table/wood, /obj/item/weapon/paper{ info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research"; - name = "Confidential Correspondence, Pg 1"; - pixel_x = 0; - pixel_y = 0 + name = "Confidential Correspondence, Pg 1" }, /obj/item/weapon/folder/blue, /turf/open/floor/carpet, @@ -989,7 +982,6 @@ /area/awaymission/challenge/end) "cE" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/circuit, @@ -1000,7 +992,6 @@ /area/awaymission/challenge/end) "cG" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/circuit, @@ -1178,8 +1169,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/awaymission/challenge/end) @@ -1264,8 +1254,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 9c681caa3e..c6805c74e0 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -27,9 +27,7 @@ poweralm = 0 }) "ad" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -61,9 +59,7 @@ poweralm = 0 }) "af" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -100,9 +96,7 @@ poweralm = 0 }) "ah" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; obj_integrity = 100; @@ -154,9 +148,7 @@ poweralm = 0 }) "ak" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -172,9 +164,7 @@ poweralm = 0 }) "al" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; obj_integrity = 100; @@ -210,9 +200,7 @@ poweralm = 0 }) "an" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -228,9 +216,7 @@ poweralm = 0 }) "ao" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -265,9 +251,7 @@ poweralm = 0 }) "aq" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -282,9 +266,7 @@ poweralm = 0 }) "ar" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -299,9 +281,7 @@ poweralm = 0 }) "as" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid{ @@ -324,9 +304,7 @@ name = "Syndicate Outpost" }) "au" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -342,9 +320,7 @@ poweralm = 0 }) "av" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -453,9 +429,7 @@ poweralm = 0 }) "aE" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/item/clothing/mask/facehugger/impregnated, @@ -523,9 +497,7 @@ name = "Syndicate Outpost" }) "aJ" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; obj_integrity = 100; @@ -569,9 +541,7 @@ poweralm = 0 }) "aL" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -652,7 +622,6 @@ }) "aR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/black{ @@ -781,9 +750,7 @@ poweralm = 0 }) "bb" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/drone{ plants_off = 1 }, @@ -847,8 +814,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black{ heat_capacity = 1e+006 @@ -1031,8 +997,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1126,8 +1091,7 @@ "bz" = ( /obj/structure/table, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/item/trash/plate, /obj/item/weapon/cigbutt, @@ -1163,8 +1127,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -1184,7 +1147,6 @@ }) "bE" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/airalarm{ @@ -1192,7 +1154,6 @@ frequency = 1439; locked = 1; pixel_x = 23; - pixel_y = 0; req_access = "150" }, /turf/open/floor/plasteel/floorgrime{ @@ -1316,8 +1277,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/highsecurity{ icon_state = "closed"; @@ -1464,9 +1424,7 @@ input_dir = 4; output_dir = 8 }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -1476,9 +1434,7 @@ name = "Syndicate Outpost" }) "bZ" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/sign/poster/contraband/syndicate_recruitment{ pixel_y = 32 }, @@ -1505,9 +1461,7 @@ }) "cb" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/red/side{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; dir = 4; @@ -1570,8 +1524,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -1588,7 +1541,6 @@ }) "cg" = ( /obj/structure/sign/securearea{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/stripes/corner{ @@ -1625,8 +1577,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/table, /obj/machinery/cell_charger, @@ -1661,7 +1612,6 @@ }) "ck" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -1790,8 +1740,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -1805,8 +1754,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -1822,8 +1770,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -1839,8 +1786,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ name = "Power Maintenance"; @@ -1883,8 +1829,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -1993,9 +1938,7 @@ /obj/item/stack/rods, /obj/item/stack/rods, /obj/item/weapon/shard, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -2043,7 +1986,6 @@ dir = 2; locked = 1; name = "Worn-out APC"; - pixel_x = 0; pixel_y = -25; req_access = "150"; start_charge = 0 @@ -2058,9 +2000,7 @@ name = "Syndicate Outpost" }) "cL" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/red/side{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; dir = 6; @@ -2166,7 +2106,6 @@ frequency = 1439; locked = 1; pixel_x = 23; - pixel_y = 0; req_access = "150" }, /obj/machinery/light{ @@ -2262,9 +2201,7 @@ amount = 12 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/bot{ dir = 1 }, @@ -2283,7 +2220,6 @@ id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 @@ -2321,7 +2257,6 @@ id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 @@ -2406,7 +2341,6 @@ frequency = 1439; locked = 1; pixel_x = -23; - pixel_y = 0; req_access = "150" }, /obj/effect/decal/cleanable/dirt, @@ -2447,7 +2381,6 @@ frequency = 1439; locked = 1; pixel_x = 23; - pixel_y = 0; req_access = "150" }, /turf/open/floor/wood{ @@ -2459,9 +2392,7 @@ }) "dl" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/loadingarea{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; @@ -2719,7 +2650,6 @@ /obj/structure/sign/vacuum{ desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; name = "\improper HOSTILE ATMOSPHERE AHEAD"; - pixel_x = 0; pixel_y = -32 }, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -2948,9 +2878,7 @@ poweralm = 0 }) "dO" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/item/weapon/tank/internals/oxygen, @@ -3005,9 +2933,7 @@ poweralm = 0 }) "dR" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -3024,9 +2950,7 @@ poweralm = 0 }) "dS" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /mob/living/simple_animal/hostile/alien/drone{ plants_off = 1 @@ -3061,9 +2985,7 @@ poweralm = 0 }) "dU" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -3096,9 +3018,7 @@ poweralm = 0 }) "dW" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -3115,9 +3035,7 @@ poweralm = 0 }) "dX" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -3243,9 +3161,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 10 }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white, /area/awaycontent/a2{ has_gravity = 1; @@ -3255,12 +3171,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" + icon_state = "4-8" }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -3292,9 +3205,7 @@ name = "MO19 Research" }) "el" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/engine, @@ -3303,9 +3214,7 @@ name = "MO19 Research" }) "em" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3347,12 +3256,9 @@ desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; id = "awayxenobio"; name = "Acid-Proof mounted igniter"; - pixel_x = 0; pixel_y = 25 }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3378,9 +3284,7 @@ name = "MO19 Research" }) "es" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/engine, @@ -3423,9 +3327,7 @@ dir = 4 }, /obj/machinery/portable_atmospherics/canister, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -3437,12 +3339,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold{ dir = 4; - icon_state = "manifold"; level = 2 }, /turf/open/floor/plasteel/white, @@ -3508,18 +3408,14 @@ name = "MO19 Research" }) "eC" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; name = "MO19 Research" }) "eD" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3527,9 +3423,7 @@ name = "MO19 Research" }) "eE" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3545,9 +3439,7 @@ name = "MO19 Research" }) "eG" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3589,9 +3481,7 @@ name = "MO19 Research" }) "eL" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white/side{ dir = 2; heat_capacity = 1e+006 @@ -3624,8 +3514,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/chair/office/light{ @@ -3650,9 +3539,7 @@ pixel_x = 4; pixel_y = 8 }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -3664,9 +3551,7 @@ name = "MO19 Research" }) "eP" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; obj_integrity = 100; @@ -3679,9 +3564,7 @@ name = "MO19 Research" }) "eQ" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -3689,9 +3572,7 @@ name = "MO19 Research" }) "eR" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -3803,8 +3684,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/item/weapon/newspaper, /turf/open/floor/plating{ @@ -3818,8 +3698,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ broken = 1; @@ -3834,8 +3713,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/tracks{ desc = "Your instincts say you shouldn't be following these."; @@ -3853,8 +3731,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -3867,8 +3744,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ req_access_txt = "201"; @@ -3890,8 +3766,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/tracks{ desc = "Your instincts say you shouldn't be following these."; @@ -3915,9 +3790,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/whitepurple/corner{ dir = 2; heat_capacity = 1e+006 @@ -3929,9 +3802,7 @@ "ff" = ( /obj/structure/table, /obj/machinery/reagentgrinder, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/floorgrime{ dir = 8; heat_capacity = 1e+006 @@ -3957,9 +3828,7 @@ pixel_y = 23; req_access = null }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -3988,9 +3857,7 @@ }) "fi" = ( /obj/structure/closet/crate/freezer, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/item/clothing/mask/facehugger/impregnated, /obj/item/xenos_claw, /turf/open/floor/plasteel/floorgrime{ @@ -4024,8 +3891,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/white, @@ -4036,9 +3902,7 @@ "fm" = ( /obj/structure/closet/l3closet/scientist, /obj/structure/window/reinforced, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -4070,9 +3934,7 @@ name = "MO19 Research" }) "fo" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/weeds{ desc = "A large mottled egg."; obj_integrity = 100; @@ -4085,9 +3947,7 @@ name = "MO19 Research" }) "fp" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/engine, @@ -4117,8 +3977,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, @@ -4146,8 +4005,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ broken = 1; @@ -4162,8 +4020,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -4180,9 +4037,7 @@ desc = "Your instincts say you shouldn't be following these."; icon_state = "ltrails_2" }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/whitepurple/corner{ dir = 8; heat_capacity = 1e+006 @@ -4195,8 +4050,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -4216,8 +4070,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -4240,8 +4093,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -4255,8 +4107,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -4269,8 +4120,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -4287,8 +4137,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/alien/weeds/node, /turf/open/floor/plasteel/white, @@ -4354,8 +4203,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -4368,9 +4216,7 @@ dir = 4; name = "Acid-Proof Pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -4382,9 +4228,7 @@ dir = 4; name = "Acid-Proof Pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -4397,9 +4241,7 @@ dir = 4; name = "Acid-Proof Pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -4440,9 +4282,7 @@ icon_state = "tube-broken"; status = 2 }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/machinery/camera{ c_tag = "Xenobiology Containment East"; dir = 8; @@ -4497,8 +4337,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -4515,8 +4354,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -4529,8 +4367,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -4615,9 +4452,7 @@ name = "MO19 Research" }) "fW" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/whitepurple/corner{ dir = 8; heat_capacity = 1e+006 @@ -4633,12 +4468,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" + icon_state = "1-2" }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/whitepurple/corner{ dir = 2; heat_capacity = 1e+006 @@ -4659,7 +4491,6 @@ "fZ" = ( /obj/machinery/door/firedoor, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -29 }, /obj/effect/turf_decal/stripes/line{ @@ -4712,9 +4543,7 @@ name = "MO19 Research" }) "gc" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /obj/item/stack/rods, /obj/item/weapon/shard{ @@ -4767,8 +4596,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -4779,8 +4607,7 @@ }) "gi" = ( /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/red/side{ dir = 8; @@ -4828,8 +4655,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/firealarm{ dir = 4; @@ -4853,9 +4679,7 @@ /obj/item/weapon/razor{ pixel_y = 5 }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -4908,7 +4732,6 @@ "gr" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12; pixel_y = 2 }, @@ -4980,9 +4803,7 @@ icon_state = "pipe-c"; name = "Acid-Proof disposal pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -5051,8 +4872,7 @@ dir = 4 }, /obj/machinery/newscaster/security_unit{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/red/side{ dir = 8; @@ -5157,9 +4977,7 @@ icon_state = "bulb-broken"; status = 2 }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white, /area/awaycontent/a2{ has_gravity = 1; @@ -5193,9 +5011,7 @@ info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.

When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.

While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning."; name = "'Facehugger' Xenomorph Physiology & Behavior Observation" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white, /area/awaycontent/a2{ has_gravity = 1; @@ -5203,9 +5019,7 @@ }) "gK" = ( /obj/structure/table/reinforced, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/item/weapon/paper_bin{ pixel_x = 1; pixel_y = 9 @@ -5247,9 +5061,7 @@ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; name = "Acid-Proof disposal pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -5259,8 +5071,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/stack/rods, /turf/open/floor/plating{ @@ -5277,7 +5088,6 @@ id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; - pixel_y = 0; req_access_txt = "201" }, /obj/machinery/light/small{ @@ -5338,7 +5148,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -5351,9 +5160,7 @@ }) "gT" = ( /obj/structure/table/optable, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white/side{ dir = 1; heat_capacity = 1e+006 @@ -5378,9 +5185,7 @@ /obj/item/clothing/gloves/color/latex, /obj/item/clothing/mask/surgical, /obj/item/clothing/suit/apron/surgical, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white/side{ dir = 1; heat_capacity = 1e+006 @@ -5414,9 +5219,7 @@ name = "MO19 Research" }) "gX" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plasteel/white, /area/awaycontent/a2{ has_gravity = 1; @@ -5424,9 +5227,7 @@ }) "gY" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -5461,9 +5262,7 @@ dir = 1; name = "Acid-Proof disposal pipe" }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/engine, /area/awaycontent/a2{ has_gravity = 1; @@ -5476,9 +5275,7 @@ icon_state = "tube-broken"; status = 2 }, -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/machinery/camera{ c_tag = "Xenobiology Containment South"; dir = 1; @@ -5494,12 +5291,9 @@ desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; id = "awayxenobio"; name = "Acid-Proof mounted igniter"; - pixel_x = 0; pixel_y = -25 }, -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/engine, /area/awaycontent/a2{ @@ -5524,8 +5318,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -5553,8 +5346,7 @@ /obj/structure/table, /obj/item/weapon/book/manual/wiki/security_space_law, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ dir = 10; @@ -5598,9 +5390,7 @@ name = "MO19 Research" }) "hk" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/alien/egg, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -5664,10 +5454,7 @@ }) "ho" = ( /obj/structure/table, -/obj/item/weapon/storage/box/gloves{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/box/gloves, /turf/open/floor/plasteel/white/corner{ dir = 8; heat_capacity = 1e+006 @@ -5680,8 +5467,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/oil, /turf/open/floor/plating{ @@ -5849,10 +5635,7 @@ }) "hA" = ( /obj/structure/table, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/firstaid/fire, /obj/machinery/firealarm{ dir = 4; pixel_x = 28 @@ -5952,17 +5735,13 @@ }) "hH" = ( /obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/firstaid/regular, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 8; frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/white/side{ @@ -6026,8 +5805,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a2{ has_gravity = 1; @@ -6083,9 +5861,7 @@ "hS" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/urinal{ pixel_y = 29 @@ -6138,8 +5914,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ burnt = 1; @@ -6303,7 +6078,6 @@ /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/white/side{ @@ -6330,7 +6104,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/machinery/light/small{ @@ -6346,9 +6119,7 @@ "ik" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ desc = "Oh no, seven years of bad luck!"; @@ -6412,14 +6183,12 @@ /obj/machinery/button/door{ id = "Awaybiohazard"; name = "Biohazard Shutter Control"; - pixel_x = 0; pixel_y = 8; req_access_txt = "201" }, /obj/machinery/button/door{ id = "AwayRD"; name = "Privacy Shutter Control"; - pixel_x = 0; pixel_y = -2; req_access_txt = "201" }, @@ -6468,8 +6237,7 @@ }) "it" = ( /obj/item/weapon/storage/secure/safe{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/decal/cleanable/blood/splatter, /obj/item/weapon/pen, @@ -6609,8 +6377,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -6647,7 +6414,6 @@ }) "iH" = ( /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/light/small{ @@ -6670,7 +6436,6 @@ }) "iI" = ( /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/cafeteria{ @@ -6736,7 +6501,6 @@ "iN" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12; pixel_y = 2 }, @@ -6766,8 +6530,7 @@ }) "iP" = ( /obj/machinery/shower{ - dir = 1; - pixel_y = 0 + dir = 1 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -6814,10 +6577,7 @@ name = "MO19 Arrivals" }) "iT" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/machinery/computer/security/telescreen/entertainment, /turf/closed/wall/rust, /area/awaycontent/a1{ has_gravity = 1; @@ -7030,8 +6790,7 @@ pixel_x = 3 }, /obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /obj/machinery/door/poddoor/shutters{ id = "awaykitchen"; @@ -7071,8 +6830,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/oil, /turf/open/floor/plating{ @@ -7140,7 +6898,6 @@ }) "jv" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel{ @@ -7170,7 +6927,6 @@ }) "jx" = ( /obj/structure/sign/science{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, @@ -7283,7 +7039,6 @@ dir = 1; locked = 0; name = "Worn-out APC"; - pixel_x = 0; pixel_y = 25; req_access = null; start_charge = 100 @@ -7311,7 +7066,6 @@ }) "jJ" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/floorgrime{ @@ -7439,8 +7193,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -7457,8 +7210,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -7471,8 +7223,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -7486,8 +7237,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -7501,8 +7251,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/item/weapon/cigbutt, /turf/open/floor/plasteel/floorgrime{ @@ -7520,8 +7269,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ frequency = 1439; @@ -7541,8 +7289,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/purple/corner{ dir = 1; @@ -7556,8 +7303,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/purple/corner{ @@ -7572,8 +7318,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor{ density = 1; @@ -7591,8 +7336,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ burnt = 1; @@ -7610,8 +7354,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ broken = 1; @@ -7629,8 +7372,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime{ @@ -7650,8 +7392,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -7667,8 +7408,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ burnt = 1; @@ -7686,8 +7426,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ broken = 1; @@ -7704,8 +7443,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ broken = 1; @@ -7723,8 +7461,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor{ @@ -7745,8 +7482,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -7844,7 +7580,6 @@ }) "ks" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/processor, @@ -7853,7 +7588,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/cafeteria{ @@ -7897,7 +7631,6 @@ "kw" = ( /obj/machinery/light/small, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/camera{ @@ -8195,7 +7928,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -8296,8 +8028,7 @@ }) "lb" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/machinery/camera{ c_tag = "Kitchen"; @@ -8462,7 +8193,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/carpet{ @@ -8493,7 +8223,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/bar{ @@ -8537,7 +8266,6 @@ id = "awaykitchen"; name = "Kitchen Shutters Control"; pixel_x = -25; - pixel_y = 0; req_access_txt = "0" }, /obj/effect/decal/cleanable/dirt, @@ -8644,7 +8372,6 @@ }) "lD" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ @@ -8659,9 +8386,8 @@ name = "MO19 Arrivals" }) "lE" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_r" +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 }, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -8742,8 +8468,7 @@ /obj/structure/table/wood, /obj/item/weapon/lighter, /obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -8871,8 +8596,7 @@ }) "lZ" = ( /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/mineral/titanium/yellow, /area/awaycontent/a1{ @@ -8908,7 +8632,6 @@ }) "md" = ( /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 30 }, /obj/machinery/light/small{ @@ -8927,9 +8650,8 @@ name = "MO19 Arrivals" }) "mf" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_l" +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 4 }, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; @@ -9117,8 +8839,7 @@ /obj/structure/grille, /obj/structure/sign/vacuum{ desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; - name = "\improper HOSTILE ATMOSPHERE AHEAD"; - pixel_x = 0 + name = "\improper HOSTILE ATMOSPHERE AHEAD" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating{ @@ -9159,12 +8880,10 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/carpet{ @@ -9233,8 +8952,7 @@ pixel_y = 8 }, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass{ - pixel_x = 3; - pixel_y = 0 + pixel_x = 3 }, /turf/open/floor/plasteel/black, /area/awaycontent/a1{ @@ -9319,8 +9037,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/noticeboard{ dir = 8; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/item/weapon/paper{ info = "

Welcome to Moon Outpost 19! Property of Nanotrasen Inc.




Staff Roster:
-Dr. Gerald Rosswell: Research Director & Acting Captain
-Dr. Sakuma Sano: Xenobiologist
-Dr. Mark Douglas: Xenobiologist
-Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
-Mathias Kuester: Bartender
-Sven Edling: Chef
-Steve: Assistant

Please enjoy your stay, and report any abnormalities to an officer."; @@ -9429,7 +9146,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/carpet{ @@ -9581,7 +9297,6 @@ }) "nh" = ( /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -30 }, /obj/machinery/light/small, @@ -9643,7 +9358,6 @@ /obj/structure/sign/vacuum{ desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; name = "\improper HOSTILE ATMOSPHERE AHEAD"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating{ @@ -9807,7 +9521,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/neutral/corner{ @@ -9957,7 +9670,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -10123,8 +9835,7 @@ }) "nU" = ( /obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 9bf2719f21..127813046e 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -26,8 +26,7 @@ }, /area/awaymission/research/interior/engineering) "ah" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, @@ -37,8 +36,7 @@ /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aj" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -56,7 +54,6 @@ "am" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -70,7 +67,6 @@ "ao" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -127,7 +123,6 @@ pixel_y = 3 }, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -150,7 +145,6 @@ /area/awaymission/research/interior/engineering) "aB" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -266,7 +260,6 @@ }, /obj/structure/tank_dispenser, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -280,8 +273,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -290,17 +282,13 @@ /area/awaymission/research/interior/maint) "aZ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; - pixel_x = -32; - tag = "icon-alarm0 (EAST)" + pixel_x = -32 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) @@ -359,7 +347,6 @@ /obj/item/weapon/storage/toolbox/electrical, /obj/item/clothing/gloves/color/yellow, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -378,8 +365,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ icon_state = "0-2"; @@ -397,7 +383,6 @@ /area/awaymission/research/interior/engineering) "bn" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) @@ -458,7 +443,6 @@ /obj/structure/table, /obj/item/weapon/storage/toolbox/mechanical, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -482,9 +466,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plasteel/black{ - tag = "icon-warndark (NORTHWEST)" - }, +/turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "bB" = ( /obj/machinery/gateway{ @@ -502,37 +484,31 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel/black{ - tag = "icon-warndark (NORTHEAST)" - }, +/turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "bD" = ( /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "bE" = ( /obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) "bF" = ( /obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) "bG" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) @@ -540,7 +516,6 @@ /obj/item/ammo_casing/c9mm, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) @@ -553,7 +528,6 @@ /obj/item/ammo_casing/c45, /obj/item/ammo_casing/c45, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/engineering) @@ -565,14 +539,12 @@ "bK" = ( /obj/item/weapon/wrench, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/engineering) "bL" = ( /obj/item/stack/sheet/plasteel, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) @@ -580,7 +552,6 @@ /obj/item/weapon/storage/toolbox/mechanical, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) @@ -589,17 +560,14 @@ brute_damage = 200 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) "bO" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/engineering) @@ -639,16 +607,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel/black{ - tag = "icon-warndark (EAST)" - }, +/turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "bV" = ( /obj/structure/sign/nosmoking_1{ pixel_x = -32 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) @@ -667,7 +632,6 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -678,9 +642,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/turf/open/floor/plasteel/black{ - tag = "icon-warndark (SOUTHWEST)" - }, +/turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "bZ" = ( /obj/machinery/gateway, @@ -695,17 +657,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plasteel/black{ - tag = "icon-warndark (SOUTHEAST)" - }, +/turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "cb" = ( /obj/machinery/power/apc{ cell_type = 12000; dir = 4; name = "Gateway APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -726,8 +685,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) @@ -742,7 +700,6 @@ "cf" = ( /obj/item/ammo_casing/c46x30mm, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) @@ -775,7 +732,6 @@ /area/awaymission/research/interior/gateway) "ck" = ( /obj/machinery/door/window/eastright{ - tag = "icon-right"; icon_state = "right"; dir = 2 }, @@ -784,14 +740,12 @@ /area/awaymission/research/interior/gateway) "cl" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/black, @@ -808,8 +762,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light/small, /turf/open/floor/plating, @@ -831,7 +784,6 @@ req_access_txt = "10" }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior/engineering) @@ -850,7 +802,6 @@ req_access_txt = "10" }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior/engineering) @@ -859,9 +810,7 @@ /obj/item/weapon/storage/firstaid/regular, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; - pixel_x = -32; - tag = "icon-alarm0 (EAST)" + pixel_x = -32 }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) @@ -923,7 +872,6 @@ /area/awaymission/research/interior) "cC" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -937,8 +885,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) @@ -1016,7 +963,6 @@ brute_damage = 200 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1027,8 +973,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/highsecurity{ aiDisabledIdScanner = 1; @@ -1047,8 +992,7 @@ cell_type = 5000; dir = 4; name = "Genetics APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -1094,7 +1038,6 @@ req_access_txt = "10" }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -1104,7 +1047,6 @@ req_access_txt = "10" }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1151,8 +1093,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/research/interior) @@ -1161,8 +1102,7 @@ /area/awaymission/research/interior/genetics) "di" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /mob/living/carbon/monkey, /turf/open/floor/plasteel/purple, @@ -1183,7 +1123,6 @@ /area/awaymission/research/interior/maint) "dl" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -1195,7 +1134,6 @@ /obj/item/ammo_casing/c45, /mob/living/simple_animal/hostile/syndicate, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1216,15 +1154,13 @@ /area/awaymission/research/interior/secure) "dq" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/purple, /area/awaymission/research/interior/genetics) "dr" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/purple, /area/awaymission/research/interior/genetics) @@ -1244,8 +1180,6 @@ /area/awaymission/research/interior/genetics) "dv" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/purple, @@ -1263,8 +1197,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/ammo_casing/c9mm, /turf/open/floor/plating, @@ -1285,7 +1218,6 @@ brute_damage = 200 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -1297,7 +1229,6 @@ "dB" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1413,8 +1344,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/ammo_casing/c45, /turf/open/floor/plating, @@ -1517,8 +1447,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/blood/drip, /obj/machinery/light/small{ @@ -1540,7 +1469,6 @@ /area/awaymission/research/interior) "ek" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior) @@ -1552,13 +1480,11 @@ /area/awaymission/research/interior) "em" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior) "en" = ( /turf/open/floor/plasteel/white/corner{ - tag = "icon-whitecorner (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1601,13 +1527,11 @@ /area/awaymission/research/interior/maint) "eu" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/cryo) "ev" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) @@ -1616,7 +1540,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) @@ -1625,7 +1548,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/cryo) @@ -1638,7 +1560,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/cryo) @@ -1647,21 +1568,18 @@ pixel_y = 32 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) "eB" = ( /mob/living/simple_animal/hostile/nanotrasen/ranged, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) "eC" = ( /obj/item/ammo_casing/c9mm, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) @@ -1702,7 +1620,6 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -1711,14 +1628,12 @@ /area/awaymission/research/interior) "eK" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; dir = 1 }, /area/awaymission/research/interior) "eL" = ( /mob/living/simple_animal/hostile/syndicate, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior) @@ -1729,13 +1644,11 @@ /area/awaymission/research/interior) "eN" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior) "eO" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1773,9 +1686,7 @@ "eT" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; - pixel_x = -32; - tag = "icon-alarm0 (EAST)" + pixel_x = -32 }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) @@ -1813,8 +1724,7 @@ cell_type = 5000; dir = 4; name = "Cryostatis APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable, /obj/structure/cable{ @@ -1826,11 +1736,9 @@ /area/awaymission/research/interior/cryo) "fb" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; dir = 8 }, /area/awaymission/research/interior/cryo) @@ -1864,13 +1772,11 @@ /area/awaymission/research/interior/cryo) "ff" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; dir = 4 }, /area/awaymission/research/interior/cryo) "fg" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; dir = 8 }, /area/awaymission/research/interior/cryo) @@ -1881,11 +1787,9 @@ /area/awaymission/research/interior/cryo) "fi" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; dir = 4 }, /area/awaymission/research/interior/cryo) @@ -1893,17 +1797,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; dir = 4 }, /area/awaymission/research/interior) "fk" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -1921,7 +1822,6 @@ /area/awaymission/research/interior) "fo" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -1969,7 +1869,6 @@ pixel_x = 32 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) @@ -1996,8 +1895,7 @@ cell_type = 12000; dir = 4; name = "Vault APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -2034,7 +1932,6 @@ /area/awaymission/research/interior) "fD" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior/cryo) @@ -2043,7 +1940,6 @@ /area/awaymission/research/interior/cryo) "fF" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/cryo) @@ -2066,7 +1962,6 @@ "fJ" = ( /obj/structure/barricade/security, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/cryo) @@ -2091,17 +1986,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior) "fO" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior) @@ -2111,13 +2003,11 @@ /area/awaymission/research/interior) "fQ" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior) "fR" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior) @@ -2138,7 +2028,6 @@ /area/awaymission/research/interior/security) "fV" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/security) @@ -2149,8 +2038,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitered, /area/awaymission/research/interior/security) @@ -2162,8 +2050,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/chair{ dir = 4 @@ -2183,21 +2070,18 @@ /area/awaymission/research/interior/security) "gc" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) "gd" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/black, @@ -2206,8 +2090,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -2221,11 +2104,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/black, @@ -2239,8 +2121,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) @@ -2248,8 +2129,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) @@ -2410,16 +2290,12 @@ /area/awaymission/research/interior/cryo) "gz" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whitepurple, /area/awaymission/research/interior) "gA" = ( /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple, @@ -2430,15 +2306,12 @@ /area/awaymission/research/interior) "gC" = ( /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, /area/awaymission/research/interior) @@ -2454,15 +2327,12 @@ /area/awaymission/research/interior) "gG" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whitered, /area/awaymission/research/interior) "gH" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitered, @@ -2470,7 +2340,6 @@ "gI" = ( /obj/structure/barricade/security, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitered, @@ -2555,13 +2424,11 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) "gQ" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/cryo) @@ -2573,27 +2440,23 @@ /obj/item/weapon/reagent_containers/spray/pepper, /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/cryo) "gT" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior/cryo) "gU" = ( /obj/structure/barricade/security, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/cryo) "gV" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; dir = 1 }, /area/awaymission/research/interior) @@ -2601,15 +2464,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, /area/awaymission/research/interior) "gX" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior) @@ -2620,13 +2481,11 @@ /area/awaymission/research/interior) "gZ" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior) "ha" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior) @@ -2637,26 +2496,22 @@ req_access_txt = "63" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior) "hc" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior) "hd" = ( /obj/structure/barricade/security, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) "he" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/security) @@ -2680,11 +2535,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) @@ -2695,7 +2548,6 @@ "hk" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -2704,13 +2556,11 @@ /area/awaymission/research/interior) "hm" = ( /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/security) "hn" = ( /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) @@ -2721,7 +2571,6 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) @@ -2732,14 +2581,12 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) "hq" = ( /mob/living/simple_animal/hostile/nanotrasen/ranged/smg, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) @@ -2747,16 +2594,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) @@ -2767,7 +2610,6 @@ "ht" = ( /obj/machinery/light, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/cryo) @@ -2777,7 +2619,6 @@ "hv" = ( /obj/machinery/light, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior/cryo) @@ -2810,7 +2651,6 @@ }, /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -2820,13 +2660,11 @@ /area/awaymission/research/interior) "hA" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior) "hB" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior) @@ -2859,7 +2697,6 @@ "hG" = ( /obj/structure/closet/secure_closet/security, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (EAST)"; dir = 4 }, /area/awaymission/research/interior/security) @@ -2867,12 +2704,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/vending/security, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) @@ -2900,19 +2735,16 @@ name = "cryogenetic genetics blastdoor" }, /turf/open/floor/plasteel/stairs{ - tag = "icon-stairs (NORTH)"; dir = 1 }, /area/awaymission/research/interior/genetics) "hL" = ( /turf/open/floor/plasteel/white/corner{ - tag = "icon-whitecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior) "hM" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior) @@ -2922,13 +2754,11 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior) "hO" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior) @@ -2942,13 +2772,11 @@ pixel_y = -24 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior) "hQ" = ( /turf/open/floor/plasteel/white/corner{ - tag = "icon-whitecorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior) @@ -2956,12 +2784,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/table, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (WEST)"; dir = 8 }, /area/awaymission/research/interior/security) @@ -3032,13 +2858,11 @@ /area/awaymission/research/interior/maint) "hZ" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior) "ia" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -3050,7 +2874,6 @@ /area/awaymission/research/interior/genetics) "ic" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/purple, @@ -3094,7 +2917,6 @@ name = "dead potted plant" }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/security) @@ -3108,7 +2930,6 @@ name = "Officer Genesky" }, /turf/open/floor/plasteel/whitered/side{ - tag = "icon-whitered (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) @@ -3116,14 +2937,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/security) @@ -3161,7 +2980,6 @@ pixel_x = -32 }, /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -3183,8 +3001,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) @@ -3195,7 +3012,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -3214,7 +3030,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -3239,8 +3054,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) @@ -3249,8 +3063,7 @@ cell_type = 5000; dir = 4; name = "Genetics APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -3288,7 +3101,6 @@ /area/awaymission/research/interior/bathroom) "iC" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/effect/landmark/awaystart, @@ -3305,7 +3117,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -3340,9 +3151,7 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; - pixel_y = -32; - tag = "icon-alarm0 (NORTH)" + pixel_y = -32 }, /turf/open/floor/plasteel/darkpurple, /area/awaymission/research/interior/genetics) @@ -3380,8 +3189,6 @@ /area/awaymission/research/interior/bathroom) "iO" = ( /obj/structure/window/reinforced/tinted{ - tag = "icon-rwindow (WEST)"; - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -3395,7 +3202,6 @@ "iQ" = ( /mob/living/simple_animal/hostile/syndicate, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -3474,7 +3280,6 @@ /area/awaymission/research/interior/medbay) "je" = ( /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -3483,7 +3288,6 @@ /area/awaymission/research/interior/medbay) "jg" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -3514,7 +3318,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/dorm) @@ -3560,15 +3363,13 @@ dir = 1; icon_state = "direction_eng"; pixel_x = 32; - pixel_y = 33; - tag = "icon-direction_eng (NORTH)" + pixel_y = 33 }, /obj/structure/sign/directions/science{ dir = 1; icon_state = "direction_sci"; pixel_x = 32; - pixel_y = 26; - tag = "icon-direction_sci (NORTH)" + pixel_y = 26 }, /mob/living/simple_animal/hostile/syndicate/ranged, /turf/open/floor/plasteel/whitegreen, @@ -3588,7 +3389,6 @@ /area/awaymission/research/interior/medbay) "jv" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/medbay) @@ -3597,7 +3397,6 @@ /area/awaymission/research/interior/medbay) "jx" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -3609,7 +3408,6 @@ /area/awaymission/research/interior/medbay) "jz" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -3619,11 +3417,9 @@ /area/awaymission/research/interior/medbay) "jB" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -3679,23 +3475,18 @@ /area/awaymission/research/interior) "jL" = ( /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whiteblue, /area/awaymission/research/interior) "jM" = ( /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue, /area/awaymission/research/interior) "jN" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue, @@ -3720,7 +3511,6 @@ /obj/structure/table, /obj/item/weapon/surgical_drapes, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -3798,7 +3588,6 @@ /area/awaymission/research/interior) "ke" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior) @@ -3807,26 +3596,22 @@ name = "Medical" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior) "kg" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "kh" = ( /obj/item/ammo_casing/c45, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "ki" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/medbay) @@ -3849,7 +3634,6 @@ "kl" = ( /obj/structure/table, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -3857,7 +3641,6 @@ /obj/structure/table, /obj/item/weapon/circular_saw, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -3865,13 +3648,11 @@ /obj/structure/table, /obj/item/weapon/scalpel, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "ko" = ( /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -3880,8 +3661,7 @@ cell_type = 5000; dir = 4; name = "Dorms APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d1 = 1; @@ -3923,19 +3703,16 @@ "ku" = ( /obj/structure/closet/wardrobe/pjs, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) "kv" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior) "kw" = ( /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -3945,7 +3722,6 @@ icon_state = "small" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -3953,21 +3729,18 @@ /obj/structure/table, /obj/machinery/light, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "kz" = ( /obj/machinery/iv_drip, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "kA" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -3981,7 +3754,6 @@ icon_state = "plant-22" }, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/dorm) @@ -3997,7 +3769,6 @@ "kF" = ( /obj/structure/closet/wardrobe/green, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) @@ -4005,8 +3776,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ req_access_txt = "12" @@ -4017,11 +3787,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior) @@ -4029,8 +3797,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen, /area/awaymission/research/interior) @@ -4038,11 +3805,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior) @@ -4050,8 +3815,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) @@ -4114,7 +3878,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) @@ -4141,7 +3904,6 @@ icon_state = "small" }, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -4149,7 +3911,6 @@ /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -4157,7 +3918,6 @@ /obj/structure/window/reinforced, /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) @@ -4169,7 +3929,6 @@ /obj/item/weapon/reagent_containers/blood/random, /obj/item/weapon/reagent_containers/blood/random, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -4178,14 +3937,12 @@ /obj/item/weapon/storage/firstaid/regular, /obj/item/weapon/storage/firstaid/regular, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) "lf" = ( /obj/item/ammo_casing/c45, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -4200,7 +3957,6 @@ "lh" = ( /obj/item/stack/rods, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -4208,7 +3964,6 @@ /obj/effect/decal/cleanable/blood, /obj/item/stack/rods, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -4225,17 +3980,14 @@ /obj/structure/table, /obj/item/weapon/storage/box/donkpockets, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) "lm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ @@ -4253,14 +4005,12 @@ "lp" = ( /obj/machinery/washing_machine, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) "lq" = ( /obj/machinery/iv_drip, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -4273,7 +4023,6 @@ /obj/item/weapon/storage/firstaid/regular, /obj/item/weapon/storage/firstaid/toxin, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -4295,7 +4044,6 @@ /obj/item/ammo_casing/c45, /obj/item/stack/rods, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) @@ -4310,7 +4058,6 @@ /obj/structure/table, /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/awaymission/research/interior/medbay) @@ -4320,7 +4067,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior/dorm) @@ -4340,14 +4086,12 @@ "lC" = ( /obj/machinery/iv_drip, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) "lD" = ( /obj/machinery/light, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -4356,7 +4100,6 @@ /obj/item/weapon/storage/firstaid/brute, /obj/item/weapon/storage/firstaid/fire, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -4366,28 +4109,24 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) "lG" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) "lH" = ( /obj/machinery/vending/cigarette, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/medbay) "lI" = ( /obj/machinery/vending/snack, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -4396,7 +4135,6 @@ /obj/item/trash/can, /obj/item/trash/chips, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/medbay) @@ -4428,12 +4166,9 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; - pixel_x = 32; - tag = "icon-alarm0 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) @@ -4483,7 +4218,6 @@ "lU" = ( /obj/machinery/computer/arcade, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (EAST)"; dir = 4 }, /area/awaymission/research/interior/dorm) @@ -4494,8 +4228,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) @@ -4514,13 +4247,11 @@ "lX" = ( /obj/structure/closet/crate/bin, /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior/dorm) "lY" = ( /turf/open/floor/plasteel/yellowsiding{ - tag = "icon-yellowsiding (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/dorm) @@ -4561,9 +4292,7 @@ "mf" = ( /turf/open/floor/plating/asteroid/airless, /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/closed/wall/mineral/titanium/interior, /area/awaymission/research/exterior) @@ -4599,7 +4328,6 @@ /area/awaymission/research/interior/escapepods) "mm" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHEAST)"; dir = 6 }, /area/awaymission/research/interior/escapepods) @@ -4608,13 +4336,11 @@ /area/awaymission/research/interior/escapepods) "mo" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHWEST)"; dir = 10 }, /area/awaymission/research/interior/escapepods) "mp" = ( /turf/open/floor/plasteel/whitegreen/corner{ - tag = "icon-whitegreencorner (WEST)"; dir = 8 }, /area/awaymission/research/interior/escapepods) @@ -4660,7 +4386,6 @@ /area/awaymission/research/interior/escapepods) "mw" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) @@ -4669,7 +4394,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior/escapepods) @@ -4680,8 +4404,6 @@ "mz" = ( /turf/open/floor/plating/asteroid/airless, /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; dir = 8 }, /turf/closed/wall/shuttle{ @@ -4697,7 +4419,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior/escapepods) @@ -4706,24 +4427,19 @@ /area/awaymission/research/exterior) "mC" = ( /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) "mD" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; dir = 9 }, /area/awaymission/research/interior/escapepods) "mE" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) @@ -4732,7 +4448,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) @@ -4740,13 +4455,11 @@ /obj/structure/table, /obj/machinery/light, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) "mH" = ( /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; dir = 5 }, /area/awaymission/research/interior/escapepods) @@ -4755,7 +4468,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) @@ -4764,7 +4476,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; dir = 8 }, /area/awaymission/research/interior/escapepods) @@ -4801,7 +4512,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) @@ -4824,11 +4534,9 @@ /area/awaymission/research/interior/escapepods) "mR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) @@ -4841,7 +4549,6 @@ /area/awaymission/research/interior/escapepods) "mT" = ( /turf/open/floor/plasteel/whitegreen/corner{ - tag = "icon-whitegreencorner (EAST)"; dir = 4 }, /area/awaymission/research/interior/escapepods) @@ -4851,14 +4558,12 @@ }, /obj/machinery/light, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) "mV" = ( /obj/machinery/light, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) @@ -4867,19 +4572,15 @@ pixel_y = -32 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) "mX" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; - pixel_x = 32; - tag = "icon-alarm0 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/whitegreen/corner{ - tag = "icon-whitegreencorner (NORTH)"; dir = 1 }, /area/awaymission/research/interior/escapepods) diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index f6b56c5c04..93082303df 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -259,8 +259,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; @@ -529,8 +528,7 @@ /area/awaymission/snowdin/base) "br" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/iv_drip, /turf/open/floor/plasteel{ @@ -590,8 +588,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; @@ -2128,8 +2125,6 @@ "fN" = ( /obj/structure/table/wood, /obj/machinery/light/built{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -2259,8 +2254,7 @@ /obj/machinery/button/door{ id = "sekret"; name = "shutter control"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/darkred{ baseturf = /turf/open/floor/plating/asteroid/snow @@ -2428,7 +2422,6 @@ "gB" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/darkbrown{ @@ -2487,8 +2480,6 @@ /area/awaymission/snowdin/post) "gI" = ( /obj/machinery/light/built{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/darkbrown{ @@ -2644,8 +2635,6 @@ /area/awaymission/snowdin/post) "hd" = ( /obj/machinery/light/built{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -3438,7 +3427,6 @@ /area/awaymission/snowdin/sekret) "jq" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/cmo{ @@ -3471,7 +3459,6 @@ /area/awaymission/snowdin/sekret) "ju" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/machinery/light{ @@ -3572,7 +3559,6 @@ /area/awaymission/snowdin/sekret) "jH" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/cmo{ @@ -3589,8 +3575,7 @@ dir = 9 }, /turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/snow; - tag = "icon-warndark (NORTHWEST)" + baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) "jJ" = ( @@ -3598,8 +3583,7 @@ dir = 5 }, /turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/snow; - tag = "icon-warndark (NORTHEAST)" + baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) "jK" = ( @@ -3668,7 +3652,6 @@ dir = 4 }, /turf/open/floor/plasteel/black{ - tag = "icon-warndark (EAST)"; baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) @@ -3741,8 +3724,7 @@ dir = 9 }, /turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/snow; - tag = "icon-warndark (NORTHWEST)" + baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) "kb" = ( @@ -3751,8 +3733,7 @@ dir = 5 }, /turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/snow; - tag = "icon-warndark (NORTHEAST)" + baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) "kc" = ( @@ -4088,7 +4069,6 @@ dir = 10 }, /turf/open/floor/plasteel/black{ - tag = "icon-warndark (SOUTHWEST)"; baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) @@ -4100,7 +4080,6 @@ dir = 6 }, /turf/open/floor/plasteel/black{ - tag = "icon-warndark (SOUTHEAST)"; baseturf = /turf/open/floor/plating/asteroid/snow }, /area/awaymission/snowdin/sekret) @@ -4267,8 +4246,7 @@ dir = 8; freerange = 1; listening = 1; - name = "Pirate Radio Listening Channel"; - pixel_x = 0 + name = "Pirate Radio Listening Channel" }, /turf/open/floor/plasteel/purple{ baseturf = /turf/open/floor/plating/asteroid/snow @@ -4350,8 +4328,7 @@ dir = 8; freerange = 1; listening = 0; - name = "Pirate Radio Broadcast Channel"; - pixel_x = 0 + name = "Pirate Radio Broadcast Channel" }, /turf/open/floor/plasteel/purple{ baseturf = /turf/open/floor/plating/asteroid/snow @@ -4393,8 +4370,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet, /obj/machinery/light/built{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /obj/effect/landmark/awaystart, @@ -4527,8 +4502,6 @@ /area/awaymission/snowdin/sekret) "lX" = ( /obj/structure/chair/comfy/beige{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/wood{ @@ -4758,8 +4731,6 @@ /area/awaymission/snowdin) "mz" = ( /obj/machinery/light/built{ - tag = "icon-tube1 (NORTH)"; - icon_state = "tube1"; dir = 1 }, /turf/open/floor/plating{ @@ -4942,9 +4913,7 @@ "mU" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -5107,9 +5076,7 @@ }, /area/awaymission/snowdin) "np" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/floor/plating, /area/awaymission/snowdin) "nq" = ( @@ -5117,9 +5084,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin) "nr" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating, /area/awaymission/snowdin) "ns" = ( @@ -5201,8 +5166,7 @@ /area/awaymission/snowdin/sekret) "nA" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plating/asteroid/snow, /area/awaymission/snowdin) diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 699229e6db..d24199a32e 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -13,22 +13,19 @@ }, /area/awaymission/spacebattle/syndicate2) "ad" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate2) "ae" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate2) "af" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -45,7 +42,6 @@ /area/awaymission/spacebattle/syndicate2) "ai" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -112,22 +108,19 @@ }, /area/awaymission/spacebattle/syndicate3) "aw" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate3) "ax" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate3) "ay" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -149,7 +142,6 @@ /area/awaymission/spacebattle/syndicate3) "aC" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -221,22 +213,19 @@ }, /area/awaymission/spacebattle/syndicate1) "aP" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate1) "aQ" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/space, /area/awaymission/spacebattle/syndicate1) "aR" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -257,7 +246,6 @@ /area/awaymission/spacebattle/syndicate1) "aV" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -266,7 +254,6 @@ "aW" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -277,7 +264,6 @@ "aX" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -487,8 +473,7 @@ }, /area/awaymission/spacebattle/cruiser) "bI" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/space, @@ -498,8 +483,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "bK" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/space, @@ -517,7 +501,6 @@ "bN" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -531,7 +514,6 @@ "bP" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -574,15 +556,13 @@ }, /area/awaymission/spacebattle/cruiser) "bX" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "burst_l" +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 8 }, /turf/open/space, /area/awaymission/spacebattle/cruiser) "bY" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -620,8 +600,7 @@ /area/awaymission/spacebattle/cruiser) "cf" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/space, /area/awaymission/spacebattle/cruiser) @@ -927,9 +906,8 @@ /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "df" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, /turf/open/space, /area/awaymission/spacebattle/cruiser) @@ -1131,7 +1109,6 @@ /area/awaymission/spacebattle/cruiser) "dN" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2 }, @@ -1558,8 +1535,7 @@ dir = 2; id = "spacebattlestorage"; name = "Secure Storage"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -1955,8 +1931,7 @@ dir = 2; id = "spacebattlestorage"; name = "Secure Storage"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) @@ -2225,7 +2200,6 @@ /area/awaymission/spacebattle/syndicate7) "hl" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ @@ -2234,9 +2208,8 @@ /turf/open/floor/plating/airless, /area/awaymission/spacebattle/syndicate7) "hm" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 4 }, /turf/open/space, /area/awaymission/spacebattle/syndicate7) @@ -2284,9 +2257,8 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/syndicate7) "hv" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 4 }, /turf/open/space, /area/awaymission/spacebattle/syndicate7) @@ -2537,9 +2509,7 @@ "io" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/freezer, /area/awaymission/spacebattle/cruiser) @@ -2581,9 +2551,8 @@ }, /area/awaymission/spacebattle/cruiser) "iv" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "burst_r" +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 8 }, /turf/open/space, /area/awaymission/spacebattle/cruiser) @@ -2852,9 +2821,7 @@ /obj/machinery/button/door{ dir = 2; id = "spacebattlearmory"; - name = "Weapon Cache"; - pixel_x = 0; - pixel_y = 0 + name = "Weapon Cache" }, /turf/open/floor/plasteel/blue/side{ dir = 1 @@ -2865,9 +2832,7 @@ /obj/machinery/button/door{ dir = 2; id = "spacebattlearmory2"; - name = "Weapon Cache"; - pixel_x = 0; - pixel_y = 0 + name = "Weapon Cache" }, /turf/open/floor/plasteel/blue/side{ dir = 1 @@ -2878,9 +2843,7 @@ /obj/machinery/button/door{ dir = 2; id = "spacebattlearmory1"; - name = "Weapon Cache"; - pixel_x = 0; - pixel_y = 0 + name = "Weapon Cache" }, /turf/open/floor/plasteel/blue/side{ dir = 1 @@ -3162,7 +3125,6 @@ /area/awaymission/spacebattle/cruiser) "ks" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2 }, @@ -3252,7 +3214,6 @@ /area/awaymission/spacebattle/cruiser) "kH" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port (NORTH)"; icon_state = "recharge_port"; dir = 1 }, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index bf2476c74b..b985470bc1 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -203,8 +203,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a1{ has_gravity = 1; @@ -260,7 +259,6 @@ }) "ay" = ( /obj/structure/chair/comfy/beige{ - icon_state = "comfychair"; dir = 4 }, /obj/effect/landmark/awaystart, @@ -297,12 +295,7 @@ name = "UO45 Central Hall" }) "aB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/landmark/awaystart, /turf/open/floor/plasteel/neutral/side{ dir = 4; @@ -470,7 +463,6 @@ }) "aR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/door/firedoor, @@ -659,9 +651,7 @@ name = "UO45 Central Hall" }) "bh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral/side{ dir = 8; heat_capacity = 1e+006 @@ -695,8 +685,7 @@ }) "bk" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -25; - pixel_y = 0 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -968,7 +957,6 @@ }) "bH" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -1419,8 +1407,7 @@ }, /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -1474,7 +1461,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1505,7 +1491,6 @@ dir = 10 }, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/carpet{ @@ -1519,8 +1504,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -1583,21 +1567,16 @@ name = "UO45 Central Hall" }) "cH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /obj/machinery/button/door{ id = "awaydorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 @@ -1619,11 +1598,8 @@ name = "UO45 Central Hall" }) "cJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/bed, /obj/item/weapon/bedsheet, @@ -1635,11 +1611,8 @@ name = "UO45 Central Hall" }) "cK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/bed, /obj/item/weapon/bedsheet, @@ -1651,17 +1624,13 @@ name = "UO45 Central Hall" }) "cL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/button/door{ id = "awaydorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 @@ -1983,7 +1952,6 @@ "dm" = ( /obj/machinery/firealarm{ dir = 2; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel{ @@ -2052,7 +2020,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/vault{ @@ -2100,7 +2067,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel{ @@ -2280,7 +2246,6 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/green/side{ @@ -2373,7 +2338,6 @@ }, /obj/structure/chair, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -2385,11 +2349,8 @@ name = "UO45 Central Hall" }) "dQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 5; @@ -2412,11 +2373,8 @@ name = "UO45 Central Hall" }) "dS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2; @@ -2444,11 +2402,8 @@ name = "UO45 Central Hall" }) "dV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -2547,8 +2502,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/command{ icon_state = "closed"; @@ -2604,9 +2558,8 @@ name = "UO45 Central Hall" }) "eh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/decal/cleanable/dirt, @@ -2687,11 +2640,8 @@ name = "UO45 Central Hall" }) "ep" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -2702,11 +2652,8 @@ }) "eq" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -2736,11 +2683,8 @@ name = "UO45 Central Hall" }) "et" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plating{ broken = 1; @@ -2827,7 +2771,6 @@ }) "ez" = ( /obj/structure/chair/office{ - icon_state = "chair"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -2858,7 +2801,6 @@ }) "eC" = ( /obj/structure/chair/office{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -2917,9 +2859,8 @@ name = "UO45 Central Hall" }) "eH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -2960,8 +2901,7 @@ pixel_y = 4 }, /obj/machinery/newscaster/security_unit{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/side{ @@ -3004,7 +2944,6 @@ }) "eN" = ( /obj/structure/chair/office{ - icon_state = "chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -3091,7 +3030,6 @@ pixel_y = 8 }, /obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 0; pixel_y = 3 }, /obj/item/weapon/watertank, @@ -3111,7 +3049,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -3247,7 +3184,6 @@ dir = 2; locked = 0; name = "Hydroponics APC"; - pixel_x = 0; pixel_y = -25; req_access = null; start_charge = 100 @@ -3268,11 +3204,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/green/side{ @@ -3287,8 +3221,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/green/side{ @@ -3303,8 +3236,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ dir = 2; @@ -3319,8 +3251,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ dir = 2; @@ -3373,12 +3304,7 @@ name = "UO45 Central Hall" }) "fp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral/corner{ dir = 4; heat_capacity = 1e+006 @@ -3397,12 +3323,7 @@ name = "UO45 Central Hall" }) "fr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral/corner{ dir = 1; heat_capacity = 1e+006 @@ -3413,7 +3334,6 @@ }) "fs" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/airalarm{ @@ -3421,7 +3341,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/green/side{ @@ -3487,8 +3406,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -3508,8 +3426,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -3543,11 +3460,8 @@ name = "UO45 Central Hall" }) "fA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/chair/wood/normal, /turf/open/floor/carpet{ @@ -3576,7 +3490,6 @@ id = "awaydorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 @@ -3723,8 +3636,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3740,7 +3652,6 @@ "fQ" = ( /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/carpet{ @@ -3759,11 +3670,8 @@ pixel_y = -23; req_access = null }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/dresser, /turf/open/floor/carpet{ @@ -3799,7 +3707,6 @@ "fU" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/camera{ @@ -3816,7 +3723,6 @@ }) "fV" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -28 }, /obj/effect/decal/cleanable/dirt, @@ -3853,7 +3759,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/black{ @@ -3886,8 +3791,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3981,8 +3885,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4106,11 +4009,8 @@ name = "UO45 Crew Quarters" }) "gt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -4247,8 +4147,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4309,10 +4208,7 @@ }) "gN" = ( /obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/toolbox/mechanical, /turf/open/floor/plasteel/white/side{ dir = 2; heat_capacity = 1e+006 @@ -4348,8 +4244,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4466,7 +4361,6 @@ "gZ" = ( /obj/machinery/firealarm{ dir = 2; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/white{ @@ -4561,7 +4455,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel{ @@ -4656,8 +4549,7 @@ }) "hp" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -25; - pixel_y = 0 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cafeteria{ @@ -4698,7 +4590,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/machinery/camera{ @@ -4756,7 +4647,6 @@ }) "hw" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -4768,14 +4658,8 @@ name = "UO45 Gateway" }) "hx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -4866,12 +4750,7 @@ name = "UO45 Research" }) "hF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -4910,7 +4789,6 @@ /obj/structure/table, /obj/item/trash/chips, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/bar{ @@ -4922,7 +4800,6 @@ }) "hJ" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/bar{ @@ -5015,8 +4892,7 @@ "hR" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /obj/item/weapon/reagent_containers/food/condiment/peppermill{ pixel_x = 3 @@ -5041,9 +4917,8 @@ name = "UO45 Crew Quarters" }) "hT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/cafeteria{ dir = 5; @@ -5086,8 +4961,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -5151,7 +5025,6 @@ }) "ib" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -5167,12 +5040,10 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -5274,7 +5145,6 @@ }) "im" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -5333,7 +5203,6 @@ }) "ir" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/processor, @@ -5370,8 +5239,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/window{ name = "Gateway Chamber"; @@ -5397,7 +5265,6 @@ "iw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -5530,9 +5397,7 @@ name = "UO45 Research" }) "iE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -5593,12 +5458,7 @@ name = "UO45 Crew Quarters" }) "iK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" @@ -5628,8 +5488,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5674,8 +5533,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -5695,11 +5553,8 @@ name = "UO45 Gateway" }) "iR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/table, /obj/item/weapon/paper/pamphlet, @@ -5725,14 +5580,11 @@ name = "UO45 Gateway" }) "iT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -5745,7 +5597,6 @@ "iU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -5812,9 +5663,7 @@ }) "iZ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -5840,7 +5689,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/bar{ @@ -5852,12 +5700,10 @@ }) "jc" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/bar{ heat_capacity = 1e+006 @@ -5874,7 +5720,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/cafeteria{ @@ -5921,7 +5766,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/machinery/camera{ @@ -5938,9 +5782,8 @@ name = "UO45 Gateway" }) "jh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -5954,8 +5797,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -6066,10 +5908,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, /obj/item/weapon/folder/white, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/disk/tech_disk, /obj/item/weapon/disk/design_disk, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 @@ -6211,8 +6050,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -6281,11 +6119,8 @@ }) "jJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 @@ -6300,7 +6135,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -6402,7 +6236,6 @@ }) "jS" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 4 }, /turf/open/floor/plasteel/bar{ @@ -6423,9 +6256,7 @@ name = "UO45 Crew Quarters" }) "jU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/bar{ heat_capacity = 1e+006 }, @@ -6443,7 +6274,6 @@ dir = 1; locked = 0; name = "UO45 Bar APC"; - pixel_x = 0; pixel_y = 25; req_access = null; start_charge = 100 @@ -6459,8 +6289,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -6485,8 +6314,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -6507,8 +6335,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6531,8 +6358,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6551,8 +6377,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6572,8 +6397,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6706,8 +6530,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -6791,11 +6614,8 @@ name = "UO45 Crew Quarters" }) "kr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/bar{ heat_capacity = 1e+006 @@ -6831,8 +6651,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -6891,7 +6710,6 @@ /obj/item/weapon/storage/belt/utility, /obj/item/clothing/head/welding, /obj/structure/sign/biohazard{ - pixel_x = 0; pixel_y = 32 }, /obj/item/device/assembly/prox_sensor, @@ -6932,11 +6750,8 @@ name = "UO45 Gateway" }) "kB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -7037,9 +6852,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitepurple/corner{ dir = 4; heat_capacity = 1e+006 @@ -7201,11 +7014,8 @@ name = "UO45 Research" }) "kU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/whitepurple/corner{ @@ -7228,7 +7038,6 @@ }) "kW" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -7256,8 +7065,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a5{ has_gravity = 1; @@ -7333,9 +7141,8 @@ name = "UO45 Crew Quarters" }) "le" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -7347,7 +7154,6 @@ "lf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel{ @@ -7371,7 +7177,6 @@ dir = 5 }, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/bar{ @@ -7447,8 +7252,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7505,12 +7309,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -7523,8 +7325,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -7556,8 +7357,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7573,8 +7373,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7588,12 +7387,7 @@ name = "UO45 Gateway" }) "lu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/item/weapon/restraints/handcuffs, /obj/item/device/assembly/flash/handheld, /obj/item/weapon/reagent_containers/spray/pepper, @@ -7615,8 +7409,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white{ @@ -7630,8 +7423,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -7648,8 +7440,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7669,8 +7460,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7687,8 +7477,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/whitepurple/corner{ @@ -7703,12 +7492,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7731,17 +7518,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 2; @@ -7755,8 +7538,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7775,8 +7557,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7797,8 +7578,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7816,8 +7596,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -7844,8 +7623,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light, /obj/structure/disposalpipe/junction{ @@ -7854,7 +7632,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -7876,7 +7653,6 @@ dir = 2; locked = 0; name = "UO45 Research Division APC"; - pixel_x = 0; pixel_y = -25; req_access = null; start_charge = 100 @@ -7940,9 +7716,8 @@ name = "UO45 Research" }) "lL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 2; @@ -7964,7 +7739,6 @@ "lN" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/camera{ @@ -8003,12 +7777,7 @@ name = "UO45 Crew Quarters" }) "lQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -8018,7 +7787,6 @@ }) "lR" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plasteel/floorgrime{ @@ -8031,7 +7799,6 @@ }) "lS" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -8045,8 +7812,7 @@ "lT" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /obj/item/weapon/reagent_containers/food/condiment/peppermill{ pixel_x = 3 @@ -8066,7 +7832,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/bar{ @@ -8094,8 +7859,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8207,11 +7971,8 @@ name = "UO45 Gateway" }) "me" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white{ @@ -8240,8 +8001,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8321,7 +8081,6 @@ /obj/structure/closet/firecloset, /obj/machinery/light/small, /obj/structure/sign/securearea{ - pixel_x = 0; pixel_y = -32 }, /obj/effect/decal/cleanable/dirt, @@ -8350,8 +8109,7 @@ "mo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/purple/corner{ dir = 1; @@ -8377,8 +8135,7 @@ /obj/structure/table, /obj/item/weapon/newspaper, /obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -8391,7 +8148,6 @@ "mr" = ( /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/carpet{ @@ -8431,8 +8187,7 @@ "mu" = ( /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -8503,8 +8258,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8571,7 +8325,6 @@ }) "mD" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -28 }, /obj/structure/rack{ @@ -8596,7 +8349,6 @@ dir = 2; locked = 0; name = "UO45 Gateway APC"; - pixel_x = 0; pixel_y = -25; req_access = null; start_charge = 100 @@ -8620,7 +8372,6 @@ "mF" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/rack{ @@ -8687,8 +8438,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8707,8 +8457,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -8860,23 +8609,16 @@ name = "UO45 Crew Quarters" }) "mX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/button/door{ id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 }, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/carpet{ @@ -8887,9 +8629,7 @@ name = "UO45 Crew Quarters" }) "mY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/carpet{ heat_capacity = 1e+006 }, @@ -8912,12 +8652,7 @@ name = "UO45 Engineering" }) "na" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/bed, /obj/item/weapon/bedsheet, /turf/open/floor/carpet{ @@ -8932,7 +8667,6 @@ id = "awaydorm7"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 @@ -8957,7 +8691,6 @@ }) "nd" = ( /obj/structure/chair/comfy/black{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -8980,7 +8713,6 @@ }) "nf" = ( /obj/structure/chair/comfy/black{ - icon_state = "comfychair"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -9024,8 +8756,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -9064,11 +8795,8 @@ name = "UO45 Research" }) "nm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/cafeteria{ dir = 5; @@ -9165,8 +8893,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9187,8 +8914,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9207,8 +8933,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9231,8 +8956,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9385,8 +9109,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -9429,8 +9152,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -9469,8 +9191,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -9487,7 +9208,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/machinery/light/small{ @@ -9588,7 +9308,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/machinery/light{ @@ -9607,9 +9326,7 @@ name = "UO45 Research" }) "nU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -9666,7 +9383,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/neutral/side{ @@ -9700,8 +9416,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9722,8 +9437,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9744,8 +9458,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9765,8 +9478,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9789,8 +9501,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9810,8 +9521,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -9835,8 +9545,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ frequency = 1439; @@ -9863,8 +9572,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9882,8 +9590,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9904,8 +9611,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9928,8 +9634,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9949,8 +9654,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9958,9 +9662,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime{ dir = 8; heat_capacity = 1e+006 @@ -9973,8 +9675,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -9993,8 +9694,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ dir = 2; @@ -10016,8 +9716,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -10039,8 +9738,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -10064,8 +9762,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-y"; @@ -10084,8 +9781,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10133,8 +9829,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -10150,8 +9845,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10183,7 +9877,6 @@ 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_x = 0; pixel_y = 8; req_access_txt = "201" }, @@ -10191,7 +9884,6 @@ desc = "A remote control-switch that controls the privacy shutters."; id = "UO45_rdprivacy"; name = "Privacy Shutter Control"; - pixel_x = 0; pixel_y = -2; req_access_txt = "201" }, @@ -10239,8 +9931,7 @@ }) "oC" = ( /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/side{ @@ -10337,7 +10028,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/neutral/side{ @@ -10351,15 +10041,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ @@ -10456,24 +10142,21 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/airalarm{ dir = 8; frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/machinery/light/small{ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ @@ -10487,8 +10170,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 8 @@ -10506,7 +10188,6 @@ }) "oV" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/power/port_gen/pacman{ @@ -10526,7 +10207,6 @@ }) "oW" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/power/port_gen/pacman/super{ @@ -10551,7 +10231,6 @@ }) "oX" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/power/port_gen/pacman{ @@ -10573,8 +10252,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -10653,7 +10331,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/cafeteria{ @@ -10679,11 +10356,8 @@ name = "UO45 Research" }) "pf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/cafeteria{ dir = 5; @@ -10722,7 +10396,6 @@ 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_x = 0; pixel_y = -24; req_access_txt = "201" }, @@ -10736,7 +10409,6 @@ }) "pj" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel{ @@ -10750,8 +10422,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10970,8 +10641,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -10998,7 +10668,6 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ @@ -11015,8 +10684,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -11045,16 +10713,12 @@ name = "UO45 Engineering" }) "pE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 2; - external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "UO45_air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine{ name = "air floor"; @@ -11082,8 +10746,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11183,18 +10846,14 @@ name = "UO45 Crew Quarters" }) "pQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/button/door{ id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -11206,11 +10865,8 @@ name = "UO45 Crew Quarters" }) "pR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -11227,11 +10883,8 @@ name = "UO45 Crew Quarters" }) "pT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/bed, /obj/item/weapon/bedsheet, @@ -11243,18 +10896,14 @@ name = "UO45 Crew Quarters" }) "pU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/button/door{ id = "awaydorm6"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -11305,9 +10954,7 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/freezer{ @@ -11360,8 +11007,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/door/airlock/glass_engineering{ @@ -11410,8 +11056,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11432,14 +11077,10 @@ name = "UO45 Research" }) "qh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Server Base"; @@ -11502,9 +11143,7 @@ /obj/machinery/light/small, /obj/structure/sink{ dir = 8; - icon_state = "sink"; - pixel_x = -11; - pixel_y = 0 + pixel_x = -11 }, /obj/structure/mirror{ pixel_x = -28 @@ -11518,7 +11157,6 @@ }) "qn" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -11602,7 +11240,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/carpet{ @@ -11630,7 +11267,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /turf/open/floor/carpet{ @@ -11649,7 +11285,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/freezer{ @@ -11662,9 +11297,7 @@ "qx" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/freezer{ @@ -11782,8 +11415,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -11819,12 +11451,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -11859,7 +11489,6 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 10 }, /obj/machinery/camera{ @@ -11874,7 +11503,6 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_x = 0; pixel_y = 24 }, /obj/item/device/multitool, @@ -11909,8 +11537,6 @@ node1_concentration = 0.8; node2_concentration = 0.2; on = 1; - pixel_x = 0; - pixel_y = 0; req_access = null; target_pressure = 4500 }, @@ -11924,8 +11550,7 @@ }) "qM" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/machinery/portable_atmospherics/scrubber, /obj/effect/turf_decal/bot{ @@ -11956,8 +11581,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11974,8 +11598,7 @@ }, /obj/machinery/airalarm/server{ dir = 4; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/machinery/r_n_d/server/core{ id_with_download_string = "3"; @@ -12061,9 +11684,8 @@ name = "UO45 Research" }) "qV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/decal/cleanable/dirt, @@ -12091,8 +11713,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12108,7 +11729,6 @@ "qY" = ( /obj/structure/table/wood, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -28 }, /obj/item/weapon/pen, @@ -12162,9 +11782,7 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -12185,8 +11803,7 @@ "re" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ - pixel_x = -25; - pixel_y = 0 + pixel_x = -25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -12199,8 +11816,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -12245,9 +11861,7 @@ name = "UO45 Engineering" }) "ri" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -12280,7 +11894,6 @@ "rl" = ( /obj/machinery/firealarm{ dir = 2; - pixel_x = 0; pixel_y = 24 }, /obj/structure/tank_dispenser{ @@ -12300,20 +11913,16 @@ }, /obj/structure/table, /obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 + pixel_x = -8 }, /obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 + pixel_x = -8 }, /obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 + pixel_x = 4 }, /obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 + pixel_x = 4 }, /obj/machinery/newscaster{ pixel_y = 32 @@ -12335,7 +11944,6 @@ /obj/item/weapon/storage/box, /obj/item/weapon/storage/box, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -12366,13 +11974,11 @@ locked = 1; name = "UO45 Engineering APC"; pixel_x = -25; - pixel_y = 0; req_access = list(201); start_charge = 100 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -12396,11 +12002,8 @@ name = "UO45 Engineering" }) "rr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/button/door{ desc = "A remote control-switch for the engineering security doors."; @@ -12509,8 +12112,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -12646,11 +12248,8 @@ name = "UO45 Research" }) "rI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white{ @@ -12662,10 +12261,7 @@ }) "rJ" = ( /obj/structure/table, -/obj/item/weapon/storage/box/gloves{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/box/gloves, /turf/open/floor/plasteel/white/side{ dir = 8; heat_capacity = 1e+006 @@ -12678,8 +12274,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12767,8 +12362,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel{ @@ -12782,8 +12376,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12803,8 +12396,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12824,8 +12416,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12846,8 +12437,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ frequency = 1439; @@ -12873,8 +12463,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12882,12 +12471,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/yellow/corner{ dir = 1; heat_capacity = 1e+006 @@ -12900,8 +12484,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12922,8 +12505,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12944,8 +12526,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12969,8 +12550,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12989,8 +12569,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -13123,7 +12702,6 @@ }) "sh" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -13136,11 +12714,8 @@ name = "UO45 Engineering" }) "si" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/closet/secure_closet{ desc = "It's a secure locker for personnel. The first card swiped gains control."; @@ -13163,7 +12738,6 @@ dir = 2; locked = 0; name = "UO45 Mining APC"; - pixel_x = 0; pixel_y = -25; req_access = null; start_charge = 100 @@ -13274,16 +12848,11 @@ name = "UO45 Engineering" }) "sr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "UO45_mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro out" }, /turf/open/floor/engine/vacuum, /area/awaycontent/a3{ @@ -13327,7 +12896,6 @@ /obj/structure/sign/deathsposal{ desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/white/corner{ @@ -13432,8 +13000,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -13470,11 +13037,8 @@ name = "UO45 Crew Quarters" }) "sG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -13494,7 +13058,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/caution/corner{ @@ -13571,8 +13134,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -13629,11 +13191,8 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/red/side{ @@ -13706,8 +13265,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 1 @@ -13733,7 +13291,6 @@ }) "sX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel{ @@ -13758,8 +13315,7 @@ }) "sZ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 + dir = 6 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -13867,8 +13423,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -13887,8 +13442,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14001,8 +13555,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14027,11 +13580,8 @@ name = "UO45 Crew Quarters" }) "tt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ @@ -14045,8 +13595,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -14096,8 +13645,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -14109,11 +13657,8 @@ name = "UO45 Engineering" }) "ty" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/sign/securearea{ pixel_y = -32 @@ -14172,11 +13717,8 @@ name = "UO45 Engineering" }) "tC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 6 @@ -14192,8 +13734,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 @@ -14355,8 +13896,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14375,8 +13915,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ dir = 4; @@ -14399,8 +13938,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14418,8 +13956,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14440,8 +13977,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14463,8 +13999,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14512,8 +14047,7 @@ }) "tX" = ( /obj/machinery/shower{ - dir = 1; - pixel_y = 0 + dir = 1 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -14524,8 +14058,7 @@ }) "tY" = ( /obj/machinery/shower{ - dir = 1; - pixel_y = 0 + dir = 1 }, /obj/item/weapon/bikehorn/rubberducky, /turf/open/floor/plasteel/freezer{ @@ -14550,8 +14083,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown/corner{ @@ -14597,8 +14129,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -14653,8 +14184,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -14741,7 +14271,6 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/floorgrime{ @@ -14815,7 +14344,6 @@ }) "ut" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -14830,7 +14358,6 @@ }) "uu" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/table/reinforced, @@ -14920,8 +14447,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -14935,11 +14461,8 @@ name = "UO45 Engineering" }) "uD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime{ @@ -14973,8 +14496,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/door/airlock/engineering{ @@ -14999,9 +14521,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 1; - initialize_directions = 12 + dir = 1 }, /obj/machinery/meter{ layer = 3.3 @@ -15075,8 +14595,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating{ broken = 1; @@ -15088,11 +14607,8 @@ name = "UO45 Research" }) "uO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -15105,11 +14621,8 @@ name = "UO45 Research" }) "uP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -15121,7 +14634,6 @@ }) "uQ" = ( /obj/structure/chair{ - icon_state = "chair"; dir = 8 }, /turf/open/floor/plating{ @@ -15198,8 +14710,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -15240,8 +14751,7 @@ dir = 4 }, /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow/side{ @@ -15272,8 +14782,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a3{ has_gravity = 1; @@ -15284,8 +14793,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; @@ -15296,8 +14804,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a3{ has_gravity = 1; @@ -15315,8 +14822,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ - heat_capacity = 1e+006; - name = "floor" + heat_capacity = 1e+006 }, /area/awaycontent/a3{ has_gravity = 1; @@ -15334,16 +14840,11 @@ name = "UO45 Engineering" }) "ve" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "UO45_n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "nitrogen out" }, /turf/open/floor/engine/n2, /area/awaycontent/a3{ @@ -15362,16 +14863,11 @@ name = "UO45 Engineering" }) "vg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "UO45_o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "oxygen out" }, /turf/open/floor/engine/o2, /area/awaycontent/a3{ @@ -15513,8 +15009,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown{ @@ -15558,15 +15053,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -15579,8 +15072,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -15605,8 +15097,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15622,8 +15113,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -15640,8 +15130,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ dir = 4; @@ -15655,8 +15144,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ name = "Engineering"; @@ -15673,8 +15161,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -15814,8 +15301,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/glass_mining{ @@ -15886,8 +15372,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16046,11 +15531,8 @@ name = "UO45 Mining" }) "wd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/bed, /obj/item/weapon/bedsheet, @@ -16120,8 +15602,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -16184,8 +15665,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -16213,9 +15693,8 @@ name = "UO45 Engineering" }) "wp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -16232,7 +15711,6 @@ id = "awaydorm8"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 @@ -16297,8 +15775,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ @@ -16341,11 +15818,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral{ @@ -16372,8 +15846,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -16406,7 +15879,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /turf/open/floor/plasteel/floorgrime{ @@ -16435,8 +15907,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ @@ -16456,8 +15927,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -16501,8 +15971,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral{ @@ -16527,9 +15996,7 @@ "wL" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/machinery/light/small, /obj/structure/mirror{ @@ -16559,7 +16026,6 @@ id = "awaydorm9"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 @@ -16590,8 +16056,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -16608,8 +16073,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ dir = 8; @@ -16665,8 +16129,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -16676,7 +16139,6 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -16705,7 +16167,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/closet/secure_closet/miner{ @@ -16740,8 +16201,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/brown{ dir = 2; @@ -16795,11 +16255,8 @@ name = "UO45 Engineering" }) "xe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/newscaster{ pixel_y = -28 @@ -16853,8 +16310,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -16970,14 +16426,12 @@ frequency = 1439; locked = 0; pixel_x = 23; - pixel_y = 0; req_access = null }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ heat_capacity = 1e+006 @@ -17031,8 +16485,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -17087,9 +16540,8 @@ name = "UO45 Mining" }) "xy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light{ dir = 8 @@ -17113,8 +16565,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -17137,11 +16588,8 @@ name = "UO45 Mining" }) "xB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime{ @@ -17244,8 +16692,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -17262,8 +16709,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -17273,9 +16719,8 @@ name = "UO45 Mining" }) "xK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable{ d1 = 2; @@ -17308,11 +16753,8 @@ name = "UO45 Mining" }) "xN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -17480,7 +16922,6 @@ frequency = 1439; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null }, /obj/structure/closet/emcloset, @@ -17492,11 +16933,8 @@ name = "UO45 Mining" }) "ya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime{ heat_capacity = 1e+006 @@ -17506,11 +16944,8 @@ name = "UO45 Mining" }) "yb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ burnt = 1; @@ -17551,8 +16986,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, @@ -17625,9 +17059,7 @@ poweralm = 0 }) "yj" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/mob_spawn/human, /turf/open/floor/plating/asteroid{ @@ -17646,9 +17078,7 @@ poweralm = 0 }) "yk" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -17666,9 +17096,7 @@ poweralm = 0 }) "yl" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/gibs/down, /turf/open/floor/plating/asteroid{ @@ -17687,9 +17115,7 @@ poweralm = 0 }) "ym" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/core, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -17707,9 +17133,7 @@ poweralm = 0 }) "yn" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; @@ -17744,9 +17168,7 @@ poweralm = 0 }) "yp" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/mob_spawn/human, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -17816,9 +17238,7 @@ poweralm = 0 }) "yt" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -17890,9 +17310,7 @@ poweralm = 0 }) "yx" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; heat_capacity = 1e+006; @@ -17996,9 +17414,7 @@ poweralm = 0 }) "yD" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/human, /turf/open/floor/plating/asteroid{ @@ -18017,9 +17433,7 @@ poweralm = 0 }) "yE" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds2" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -18037,9 +17451,7 @@ poweralm = 0 }) "yF" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; @@ -18076,9 +17488,7 @@ poweralm = 0 }) "yH" = ( -/obj/structure/alien/weeds{ - icon_state = "weeds1" - }, +/obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/mob_spawn/human, /turf/open/floor/plating/asteroid{ diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 72a2dcac9c..386f79ab87 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -59,8 +59,7 @@ /area/awaymission/wwvault) "an" = ( /turf/open/floor/plasteel/cult{ - name = "engraved floor"; - tag = "icon-cult" + name = "engraved floor" }, /area/awaymission/wwvault) "ao" = ( @@ -176,8 +175,7 @@ info = "meat grinder requires sacri" }, /turf/open/floor/plasteel/cult{ - name = "engraved floor"; - tag = "icon-cult" + name = "engraved floor" }, /area/awaymission/wwvault) "aM" = ( @@ -189,8 +187,7 @@ "aO" = ( /obj/effect/mob_spawn/human/corpse/syndicatecommando, /turf/open/floor/plasteel/cult{ - name = "engraved floor"; - tag = "icon-cult" + name = "engraved floor" }, /area/awaymission/wwvault) "aP" = ( diff --git a/_maps/basemap.dm b/_maps/basemap.dm index 72298ef954..e5eb12f31b 100644 --- a/_maps/basemap.dm +++ b/_maps/basemap.dm @@ -10,18 +10,10 @@ #include "map_files\MetaStation\MetaStation.dmm" #include "map_files\OmegaStation\OmegaStation.dmm" #include "map_files\PubbyStation\PubbyStation.dmm" -#include "map_files\TgStation\tgstation.2.1.3.dmm" -#include "map_files\Cerestation\Cerestation.dmm" - -#include "map_files\generic\Centcomm.dmm" -#include "map_files\generic\SpaceStation.dmm" -#include "map_files\generic\Space.dmm" -#include "map_files\generic\SpaceDock.dmm" - -#include "map_files\Mining\Lavaland.dmm" +#include "map_files\BoxStation\BoxStation.dmm" +#include "map_files\Cerestation\cerestation.dmm" #ifdef TRAVISBUILDING #include "templates.dm" #endif - -#endif +#endif \ No newline at end of file diff --git a/_maps/boxstation.dm b/_maps/boxstation.dm new file mode 100644 index 0000000000..1b4e642e4e --- /dev/null +++ b/_maps/boxstation.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/boxstation.json" \ No newline at end of file diff --git a/_maps/boxstation.json b/_maps/boxstation.json new file mode 100644 index 0000000000..9cd407ef93 --- /dev/null +++ b/_maps/boxstation.json @@ -0,0 +1,7 @@ +{ + "map_name": "Box Station", + "map_path": "map_files/BoxStation", + "map_file": "BoxStation.dmm", + "minetype": "lavaland", + "transition_config": "default" +} diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm deleted file mode 100644 index de2adf0977..0000000000 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ /dev/null @@ -1,89579 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aaa" = ( -/turf/open/space, -/area/space) -"aab" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_n"; - name = "north of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"aac" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"aad" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aae" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aaf" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aag" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aah" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_y = -32; - subspace_transmission = 1; - syndie = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aai" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp{ - pixel_x = 4; - pixel_y = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaj" = ( -/obj/structure/chair/comfy/beige{ - dir = 1; - icon_state = "comfychair" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aak" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "syndieshutters"; - name = "remote shutter control"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aal" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aam" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/item/device/multitool, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aan" = ( -/obj/structure/chair/comfy/black{ - dir = 1; - icon_state = "comfychair"; - name = "pilot's chair" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aao" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aap" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_y = -32; - subspace_transmission = 1; - syndie = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaq" = ( -/obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aar" = ( -/turf/open/space, -/area/shuttle/syndicate) -"aas" = ( -/obj/machinery/door/window{ - name = "Cockpit"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aat" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aau" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aav" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aaw" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aax" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aay" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aaz" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aaA" = ( -/obj/machinery/porta_turret/syndicate, -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, -/area/shuttle/syndicate) -"aaB" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aaC" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaD" = ( -/obj/structure/table, -/obj/item/device/aicard, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aaE" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaF" = ( -/obj/structure/table, -/obj/item/weapon/c4{ - pixel_x = 2; - pixel_y = -5 - }, -/obj/item/weapon/c4{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/c4{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/weapon/c4{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/c4{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aaG" = ( -/obj/machinery/door/poddoor{ - id = "smindicate"; - name = "outer blast door" - }, -/obj/machinery/button/door{ - id = "smindicate"; - name = "external door control"; - pixel_x = -26; - pixel_y = 0; - req_access_txt = "150" - }, -/obj/docking_port/mobile{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate"; - name = "syndicate infiltrator"; - roundstart_move = "syndicate_away"; - port_angle = 180; - width = 18 - }, -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_nw"; - name = "northwest of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"aaH" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/closed/wall/shuttle{ - icon_state = "wall3" - }, -/area/shuttle/syndicate) -"aaI" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aaJ" = ( -/turf/closed/mineral, -/area/space) -"aaK" = ( -/obj/structure/table, -/obj/item/weapon/c4{ - pixel_x = 2; - pixel_y = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaL" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "EVA Storage"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"aaM" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaN" = ( -/turf/closed/wall, -/area/space) -"aaO" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "EVA Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaP" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"aaQ" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaR" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/space, -/area/space) -"aaS" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_x = -32; - subspace_transmission = 1; - syndie = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"aaU" = ( -/obj/structure/bed/roller, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"aaV" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaW" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaX" = ( -/obj/structure/table, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaY" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aaZ" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver{ - pixel_y = 9 - }, -/obj/item/device/assembly/voice{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"aba" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/obj/item/device/assembly/infra, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abb" = ( -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abc" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/syndicate, -/obj/item/weapon/crowbar/red, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abd" = ( -/obj/machinery/door/window{ - dir = 4; - name = "Infirmary"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abe" = ( -/obj/machinery/door/window/westright{ - name = "Tool Storage"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abf" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/syndicate, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abg" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/table, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/l_arm/robot, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abh" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Infirmary"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abi" = ( -/obj/machinery/door/window{ - dir = 8; - name = "Tool Storage"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abj" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/brute, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abk" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abl" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abm" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Secure Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abn" = ( -/obj/structure/table, -/obj/item/device/sbeacondrop/bomb{ - pixel_y = 5 - }, -/obj/item/device/sbeacondrop/bomb, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abo" = ( -/obj/structure/table, -/obj/item/weapon/grenade/syndieminibomb{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/weapon/grenade/syndieminibomb{ - pixel_x = -1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abp" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 30 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abq" = ( -/obj/machinery/telecomms/allinone{ - intercept = 1 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/syndicate) -"abr" = ( -/obj/machinery/nuclearbomb/syndicate, -/obj/machinery/door/window{ - dir = 1; - name = "Secure Storage"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abs" = ( -/turf/closed/wall, -/area/engine/engineering) -"abt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"abu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abv" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/scalpel, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abw" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"abx" = ( -/obj/structure/table, -/obj/item/weapon/retractor, -/obj/item/weapon/hemostat, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"aby" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"abz" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abA" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abB" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"abC" = ( -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abD" = ( -/obj/structure/reflector/single{ - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abF" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abG" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_ne"; - name = "northeast of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"abH" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"abI" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"abJ" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"abK" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"abL" = ( -/obj/structure/reflector/single{ - tag = "icon-reflector (WEST)"; - icon_state = "reflector"; - dir = 8; - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abM" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"abN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"abO" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"abP" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"abQ" = ( -/obj/structure/lattice, -/obj/effect/landmark{ - name = "carpspawn" - }, -/turf/open/space, -/area/space) -"abR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"abS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"abT" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "engineering external airlock"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abU" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"abV" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"abW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"abX" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abY" = ( -/obj/structure/reflector/double{ - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"abZ" = ( -/obj/structure/reflector/double{ - tag = "icon-reflector_double (NORTH)"; - icon_state = "reflector_double"; - dir = 1; - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"aca" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - icon_state = "pump_map"; - target_pressure = 2000.32 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acd" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ace" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"acg" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"ach" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aci" = ( -/obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/analyzer, -/obj/item/device/analyzer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acj" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ack" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = 3; - icon_state = "filter_off"; - req_access = null - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acl" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acm" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"acn" = ( -/obj/structure/reflector/box{ - anchored = 1; - dir = 4; - icon_state = "reflector_box"; - tag = "icon-reflector_box (EAST)" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"aco" = ( -/obj/structure/reflector/box{ - anchored = 1; - layer = 3 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"acp" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acq" = ( -/obj/structure/reflector/single{ - tag = "icon-reflector (EAST)"; - icon_state = "reflector"; - dir = 4; - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"acr" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acs" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"act" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"acu" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"acv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"acw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acx" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acy" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acA" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 9 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acE" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"acF" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"acG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acH" = ( -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - state = 2 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acI" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"acL" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"acM" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space) -"acN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"acO" = ( -/obj/structure/grille{ - density = 0; - icon_state = "brokengrille" - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"acP" = ( -/obj/machinery/button/door{ - id = "heater vent"; - name = "heating chamber venting switch"; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acQ" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acR" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acS" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - req_access = null - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acU" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"acV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"acX" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"acY" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space) -"acZ" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/space) -"ada" = ( -/obj/machinery/door/poddoor{ - id = "heater vent"; - name = "heat chamber vent" - }, -/turf/open/space, -/area/engine/engineering) -"adb" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"adc" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"add" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ade" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adh" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adi" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adj" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"adk" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space) -"adl" = ( -/obj/structure/lattice, -/obj/structure/grille{ - density = 0; - icon_state = "brokengrille" - }, -/turf/open/space, -/area/space) -"adm" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/door/airlock/external{ - name = "engineering external airlock"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"adn" = ( -/turf/open/floor/engine, -/area/engine/engineering) -"ado" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adp" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Heating chamber north"; - network = list("heating") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adr" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ads" = ( -/obj/machinery/meter, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0; - req_access = null - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adt" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"adv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adw" = ( -/obj/machinery/power/supermatter_shard{ - anchored = 1; - base_icon_state = "darkmatter"; - explosion_power = 20; - gasefficency = 0.15; - icon_state = "darkmatter"; - name = "supermatter crystal" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - name = "supermatter chamber air scrubber"; - on = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adx" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ady" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adz" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space) -"adA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"adB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating, -/area/engine/engineering) -"adC" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/engine, -/area/engine/engineering) -"adD" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adE" = ( -/obj/machinery/igniter, -/turf/open/floor/engine, -/area/engine/engineering) -"adF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adG" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"adH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adJ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"adK" = ( -/turf/closed/wall/r_wall, -/area/space) -"adL" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"adM" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/alien/weeds, -/turf/open/floor/engine, -/area/engine/engineering) -"adO" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adQ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adR" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"adS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adT" = ( -/obj/machinery/suit_storage_unit/atmos, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adU" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/alien/weeds, -/turf/open/floor/engine, -/area/engine/engineering) -"adV" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"adW" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adX" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"adY" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"adZ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aea" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aeb" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aec" = ( -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aed" = ( -/obj/machinery/camera/autoname, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aee" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aef" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeg" = ( -/obj/machinery/porta_turret/ai{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeh" = ( -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aei" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aej" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aek" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ael" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aem" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aen" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeo" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aep" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeq" = ( -/obj/machinery/computer/telecomms/server{ - network = "tcommsat" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aer" = ( -/obj/effect/landmark{ - name = "ninjaspawn" - }, -/turf/open/space, -/area/space) -"aes" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aet" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aeu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aev" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/space, -/area/space) -"aew" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aex" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aey" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aez" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeB" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeC" = ( -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHEAST)"; - dir = 5 - }, -/area/engine/engineering) -"aeD" = ( -/obj/machinery/light/small, -/turf/open/floor/engine{ - name = "high pressure o2 floor"; - initial_gas_mix = "o2=500000;TEMP=293.15" - }, -/area/engine/engineering) -"aeE" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeF" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeG" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeH" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeI" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aeJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeL" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeM" = ( -/obj/structure/table, -/obj/item/weapon/pipe_dispenser, -/obj/item/weapon/pipe_dispenser, -/obj/item/weapon/pipe_dispenser, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/engine, -/area/engine/engineering) -"aeO" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeQ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space) -"aeR" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space) -"aeS" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"aeT" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space) -"aeU" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aeV" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeW" = ( -/obj/machinery/camera/autoname, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aeX" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aeY" = ( -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"aeZ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"afa" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afb" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afc" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/engine, -/area/engine/engineering) -"afd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/obj/machinery/camera{ - c_tag = "Heating chamber south"; - dir = 1; - network = list("heating") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afe" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aff" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afg" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afh" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afj" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"afk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space) -"afl" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afm" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/ntnet_relay, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afo" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afp" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"afq" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afr" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"afs" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"aft" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"afu" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/space, -/area/space) -"afv" = ( -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"afx" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - icon_state = "intact"; - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"afy" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afA" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afB" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space) -"afC" = ( -/obj/machinery/telecomms/bus/preset_one/birdstation, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afD" = ( -/obj/machinery/blackbox_recorder, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afE" = ( -/obj/machinery/telecomms/broadcaster/preset_left/birdstation, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"afG" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afH" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"afI" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/n2o, -/area/engine/engineering) -"afJ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/space, -/area/space) -"afK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"afL" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afM" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the heating area."; - name = "Heating chamber monitor"; - network = list("heating"); - pixel_y = 28 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"afN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"afO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afP" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afQ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afR" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afU" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afW" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"afX" = ( -/obj/machinery/telecomms/server/presets/common/birdstation, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afY" = ( -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"afZ" = ( -/obj/machinery/telecomms/hub/preset, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aga" = ( -/obj/machinery/announcement_system, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agb" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "telecomms and ai module door"; - req_access_txt = "61" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"agc" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/space, -/area/space) -"agd" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"age" = ( -/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agf" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agg" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agh" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/engine, -/area/engine/engineering) -"agi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"agj" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"agk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"agl" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"agm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"agn" = ( -/obj/machinery/power/smes{ - charge = 1e+006 - }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"ago" = ( -/obj/machinery/power/smes{ - charge = 1e+006 - }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"agp" = ( -/obj/machinery/power/smes{ - charge = 1e+006 - }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"agq" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"agr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ags" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) -"agt" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"agu" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) -"agv" = ( -/obj/machinery/telecomms/processor/preset_one/birdstation, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agw" = ( -/obj/machinery/message_server, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agx" = ( -/obj/machinery/telecomms/receiver/preset_left/birdstation, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agy" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agz" = ( -/obj/effect/landmark/start{ - name = "Cyborg" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agB" = ( -/obj/machinery/porta_turret/ai{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agC" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agD" = ( -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"agE" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"agF" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agH" = ( -/obj/item/weapon/wrench, -/turf/open/floor/plasteel, -/area/engine/engineering) -"agI" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/window/reinforced, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"agJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/window/reinforced, -/turf/open/floor/engine, -/area/engine/engineering) -"agK" = ( -/obj/machinery/meter, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/window/reinforced, -/turf/open/floor/engine, -/area/engine/engineering) -"agL" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"agM" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"agN" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"agO" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"agP" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agQ" = ( -/obj/machinery/door/window/southright, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"agR" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agS" = ( -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agT" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"agU" = ( -/turf/closed/wall/r_wall, -/area/security/nuke_storage) -"agV" = ( -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"agW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"agX" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"agY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"agZ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aha" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahd" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahe" = ( -/obj/machinery/atmospherics/components/binary/circulator, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahf" = ( -/obj/structure/cable, -/obj/machinery/power/generator{ - cold_dir = 4; - hot_dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahg" = ( -/obj/machinery/atmospherics/components/binary/circulator{ - icon_state = "circ2-off" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahh" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"ahi" = ( -/obj/machinery/computer/monitor, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"ahj" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"ahk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahm" = ( -/obj/machinery/computer/telecomms/monitor{ - network = "tcommsat" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahn" = ( -/obj/machinery/turretid{ - control_area = "AI Core Lobby"; - pixel_x = 24 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aho" = ( -/obj/structure/table, -/obj/item/weapon/paper/monitorkey{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahp" = ( -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahq" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"ahr" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"ahs" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHEAST)"; - dir = 5 - }, -/area/engine/engineering) -"aht" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"ahu" = ( -/obj/structure/table, -/obj/item/areaeditor/blueprints, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"ahv" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/nuclearbomb/selfdestruct, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"ahw" = ( -/obj/structure/filingcabinet, -/obj/item/weapon/folder/documents, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"ahx" = ( -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/engine/gravity_generator) -"ahy" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/gravity_generator) -"ahz" = ( -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/engine/gravity_generator) -"ahA" = ( -/obj/machinery/light/small, -/turf/open/floor/engine{ - name = "high pressure plasma floor"; - initial_gas_mix = "plasma=240000;TEMP=293.15" - }, -/area/engine/engineering) -"ahB" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahD" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahE" = ( -/obj/machinery/atmospherics/pipe/simple{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahF" = ( -/obj/machinery/atmospherics/pipe/simple{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ahG" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"ahH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahI" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahJ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) -"ahK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"ahL" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahN" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahO" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "telecomms and ai module door"; - req_access_txt = "61" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"ahP" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"ahQ" = ( -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"ahR" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"ahS" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/gravity_generator) -"ahT" = ( -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"ahU" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/space, -/area/space) -"ahV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahW" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahX" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ahZ" = ( -/turf/open/floor/plasteel/stairs, -/area/engine/engineering) -"aia" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"aib" = ( -/obj/machinery/light, -/turf/open/floor/engine, -/area/engine/engineering) -"aic" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aid" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Telecommunications Chamber APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aie" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aif" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"aig" = ( -/obj/machinery/power/apc{ - name = "AI Core Lobby APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"aih" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Vault APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"aii" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"aij" = ( -/obj/structure/safe, -/obj/item/weapon/grenade/clusterbuster/metalfoam, -/obj/item/weapon/grenade/clusterbuster/metalfoam, -/obj/item/weapon/c4, -/obj/item/weapon/lazarus_injector, -/obj/item/slimepotion/sentience, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"aik" = ( -/obj/machinery/gravity_generator/main/station, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/gravity_generator) -"ail" = ( -/obj/structure/grille, -/turf/closed/wall, -/area/space) -"aim" = ( -/obj/effect/landmark{ - name = "carpspawn" - }, -/turf/open/space, -/area/space) -"ain" = ( -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aio" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aip" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aiq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - icon_state = "pump_map"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"air" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ais" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ait" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiu" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - icon_state = "manifold"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiv" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aiw" = ( -/obj/structure/grille, -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"aix" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "telecomms and ai module door"; - req_access_txt = "61" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aiy" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "telecomms and ai module door"; - req_access_txt = "61" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/tcomeast{ - name = "\improper Telecommunications Chamber" - }) -"aiz" = ( -/obj/machinery/door/airlock/vault{ - locked = 1; - req_access_txt = "53" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/security/nuke_storage) -"aiA" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHWEST)"; - dir = 9 - }, -/area/engine/engineering) -"aiB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiC" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aiD" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aiE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aiF" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/space, -/area/space) -"aiG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/engine/engineering) -"aiH" = ( -/obj/item/device/radio/beacon, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiI" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiJ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiL" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aiN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aiO" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aiP" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aiQ" = ( -/turf/closed/wall, -/area/engine/gravity_generator) -"aiR" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHEAST)"; - dir = 5 - }, -/area/engine/engineering) -"aiS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aiT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHWEST)"; - dir = 9 - }, -/area/engine/engineering) -"aiU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"aiV" = ( -/obj/machinery/light/small, -/turf/open/floor/engine{ - name = "high pressure co2 floor"; - initial_gas_mix = "co2=200000;TEMP=293.15" - }, -/area/engine/engineering) -"aiW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - icon_state = "manifold"; - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aiZ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aja" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/reflector/box{ - anchored = 1; - layer = 3 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ajb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHWEST)"; - dir = 9 - }, -/area/engine/engineering) -"ajd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aje" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajf" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Engineering APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajg" = ( -/turf/closed/wall, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajh" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel/brownold{ - tag = "icon-brownold (NORTHWEST)"; - dir = 9 - }, -/area/engine/engineering) -"aji" = ( -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - name = "waste pipe"; - icon_state = "manifold"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ajl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ajm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe"; - icon_state = "intact"; - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ajn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ajo" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - icon_state = "pump_map"; - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"ajp" = ( -/obj/structure/tank_dispenser, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajq" = ( -/obj/machinery/vending/engivend, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajr" = ( -/obj/machinery/vending/tool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajs" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aju" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajw" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajx" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajy" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - name = "waste pipe" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ajA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating, -/area/engine/engineering) -"ajB" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajC" = ( -/obj/effect/landmark/start{ - name = "Station Engineer" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/black, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajF" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/black, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajH" = ( -/obj/machinery/light/small, -/turf/open/floor/engine{ - name = "high pressure n2 floor"; - initial_gas_mix = "n2=400000;TEMP=293.15" - }, -/area/engine/engineering) -"ajI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"ajJ" = ( -/obj/machinery/button/door{ - id = "secure storage"; - name = "secure storage button"; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajK" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajL" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajM" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Command Hallway APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajP" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajQ" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajR" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajT" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajU" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajV" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ajW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajY" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"ajZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aka" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akb" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akd" = ( -/turf/open/floor/engine{ - name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" - }, -/area/engine/engineering) -"ake" = ( -/obj/machinery/door/poddoor{ - id = "secure storage"; - name = "secure storage blast door" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"akf" = ( -/turf/open/floor/plasteel/brownold{ - dir = 8 - }, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akg" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akh" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aki" = ( -/turf/closed/wall, -/area/gateway) -"akj" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/gateway) -"akk" = ( -/turf/closed/wall, -/area/maintenance/fsmaint) -"akl" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" - }, -/area/engine/engineering) -"akm" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/engine{ - name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" - }, -/area/engine/engineering) -"akn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine{ - name = "high pressure air floor"; - initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" - }, -/area/engine/engineering) -"ako" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"akp" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/space, -/area/space) -"akq" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plating, -/area/engine/engineering) -"akr" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"aks" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/engine/engineering) -"akt" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/plating, -/area/engine/engineering) -"aku" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"akv" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"akw" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/brownold{ - dir = 8 - }, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aky" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akz" = ( -/obj/machinery/turretid{ - control_area = "AI Upload Chamber"; - pixel_x = 28; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akA" = ( -/obj/machinery/porta_turret/ai, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akB" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/reset, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akC" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/core/full/asimov, -/obj/item/weapon/aiModule/core/full/asimovpp, -/obj/item/weapon/aiModule/core/full/corp, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akD" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"akE" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/gateway) -"akF" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"akG" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/gateway) -"akH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"akI" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"akJ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/black, -/area/maintenance/fsmaint) -"akK" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/maintenance/fsmaint) -"akL" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"akM" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/space, -/area/space) -"akN" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/radiation, -/turf/open/floor/plating, -/area/engine/engineering) -"akO" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plating, -/area/engine/engineering) -"akP" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"akQ" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"akR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"akS" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload) -"akT" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akU" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akV" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akW" = ( -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai_upload) -"akX" = ( -/obj/machinery/computer/upload/borg, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window/westright{ - req_access_txt = "55" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai_upload) -"akY" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"akZ" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fsmaint) -"ala" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alb" = ( -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alc" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ald" = ( -/obj/structure/bookcase, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ale" = ( -/obj/structure/table_frame/wood, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alf" = ( -/obj/structure/table/wood, -/obj/item/clothing/under/skirt/red, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alg" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"alh" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"ali" = ( -/obj/machinery/gateway/centerstation, -/turf/open/floor/plasteel/black, -/area/gateway) -"alj" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"alk" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/effect/decal/cleanable/blood/old = 10, /obj/item/voodoo = 1); - name = "vodoo doll spawner" - }, -/obj/item/weapon/coin/diamond, -/turf/open/floor/plating, -/area/gateway) -"all" = ( -/turf/closed/wall/rust, -/area/gateway) -"alm" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/maintenance/fsmaint) -"aln" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/engine/engineering) -"alo" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/engine/engineering) -"alp" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/device/gps/engineering, -/obj/item/device/gps/engineering, -/obj/item/clothing/shoes/magboots/advance, -/turf/open/floor/plating, -/area/engine/engineering) -"alq" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-16"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alr" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-16"; - layer = 4.1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/landmark{ - name = "xeno_spawn"; - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"als" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alt" = ( -/obj/machinery/computer/upload/ai, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window/westleft{ - req_access_txt = "55" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai_upload) -"alu" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alx" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aly" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alz" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-04"; - layer = 4.1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alA" = ( -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alB" = ( -/obj/structure/bookcase, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alC" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alD" = ( -/obj/structure/table/wood, -/obj/item/weapon/relic, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"alF" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/gateway) -"alG" = ( -/obj/machinery/gateway, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"alH" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/gateway) -"alI" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel, -/area/gateway) -"alJ" = ( -/turf/open/floor/plasteel/black, -/area/maintenance/fsmaint) -"alK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"alL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alM" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "AI Upload APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alN" = ( -/obj/machinery/porta_turret/ai{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alO" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/supplied/freeform, -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alP" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/core/full/tyrant, -/obj/item/weapon/aiModule/core/full/antimov, -/obj/item/weapon/aiModule/reset/purge, -/obj/item/weapon/aiModule/zeroth/oneHuman, -/obj/item/weapon/aiModule/supplied/quarantine, -/obj/item/weapon/aiModule/supplied/oxygen, -/obj/item/weapon/aiModule/supplied/protectStation, -/obj/item/weapon/aiModule/supplied/safeguard, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"alQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alT" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"alU" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alW" = ( -/obj/structure/chair/comfy/beige, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alX" = ( -/obj/structure/spirit_board{ - anchored = 1 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"alY" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/gateway) -"alZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"ama" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"amb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"amc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"amd" = ( -/turf/open/floor/plasteel, -/area/gateway) -"ame" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amf" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amg" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amh" = ( -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"ami" = ( -/obj/machinery/door/airlock/atmos{ - name = "atmospherics door"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amj" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/engine/engineering) -"amk" = ( -/turf/open/floor/plasteel/brownold{ - dir = 1 - }, -/area/engine/engineering) -"aml" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brownold{ - dir = 1 - }, -/area/engine/engineering) -"amm" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/space, -/area/space) -"amn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"amo" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"amp" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"amq" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"amr" = ( -/obj/structure/table/wood, -/obj/item/weapon/coin/silver, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ams" = ( -/turf/open/floor/plating, -/area/gateway) -"amt" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/gateway) -"amu" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/gateway) -"amv" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Gateway APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/gateway) -"amw" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"amx" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"amy" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"amz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/space, -/area/space) -"amA" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/space, -/area/space) -"amB" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/space, -/area/space) -"amC" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amD" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amE" = ( -/obj/machinery/door/airlock/atmos{ - name = "atmospherics door"; - req_access_txt = "24" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"amF" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/engine/engineering) -"amG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"amH" = ( -/turf/open/floor/plating/airless, -/area/space) -"amI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/plating/airless, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"amJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"amK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"amL" = ( -/turf/closed/wall/r_wall, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amM" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amN" = ( -/turf/closed/wall, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amO" = ( -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/device/flashlight, -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amP" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amQ" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amR" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"amS" = ( -/obj/machinery/suit_storage_unit/captain, -/turf/open/floor/wood, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"amT" = ( -/obj/machinery/button/door{ - id = "hallway shutter"; - name = "hallway shutter button"; - pixel_y = 24 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"amU" = ( -/obj/structure/dresser, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"amV" = ( -/obj/machinery/computer/communications, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"amW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"amX" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/maintenance/fsmaint) -"amY" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/gateway) -"amZ" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ana" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"anb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anc" = ( -/obj/item/weapon/twohanded/required/kirbyplants, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"and" = ( -/obj/item/weapon/twohanded/required/kirbyplants, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"ane" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anf" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Teleporter Room APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"ang" = ( -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anh" = ( -/obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"ani" = ( -/obj/structure/closet/secure_closet/captains, -/obj/item/weapon/stamp/captain, -/obj/item/weapon/reagent_containers/food/drinks/flask, -/obj/machinery/power/apc{ - dir = 8; - name = "Captain's Quarters APC"; - pixel_x = -24 - }, -/obj/item/weapon/gun/energy/laser/captain, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anj" = ( -/obj/effect/landmark/start{ - name = "Captain" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"ank" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anl" = ( -/obj/structure/table/wood, -/obj/item/weapon/hand_tele, -/obj/item/weapon/bikehorn/rubberducky{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/toy/carpplushie{ - attack_verb = list("bitten","pecked","wing slapped"); - desc = "An adorable stuffed toy that resembles a parrot."; - icon = 'icons/mob/animal.dmi'; - icon_state = "parrot_sit"; - name = "parrot plushie" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anm" = ( -/turf/closed/wall/rust, -/area/maintenance/fsmaint) -"ann" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/book{ - icon_state = "book2"; - name = "Cute Happy Parrot Adventure" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ano" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"anp" = ( -/obj/structure/barricade/wooden, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anq" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/barricade/wooden, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anr" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ans" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ant" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"anu" = ( -/obj/structure/closet/crate{ - name = "solar pack crate" - }, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/weapon/circuitboard/computer/solar_control, -/obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anv" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anw" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"anx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"any" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/engine/engineering) -"anz" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anC" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anD" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"anE" = ( -/obj/machinery/door/airlock/command{ - name = "teleporter door"; - req_access_txt = "17" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anG" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anH" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anI" = ( -/obj/structure/table, -/obj/item/device/aicard, -/obj/item/weapon/hand_tele, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"anJ" = ( -/obj/structure/table/wood, -/obj/item/weapon/pinpointer, -/obj/item/weapon/disk/nuclear, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anL" = ( -/obj/machinery/computer/card, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anM" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/lockbox/medal, -/obj/item/weapon/card/id/captains_spare, -/turf/open/floor/carpet, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"anN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anP" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anQ" = ( -/obj/structure/table/wood, -/obj/item/weapon/bikehorn/rubberducky, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"anR" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"anS" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/maintenance/fsmaint) -"anT" = ( -/obj/machinery/photocopier, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anU" = ( -/obj/structure/grille{ - density = 0; - icon_state = "brokengrille" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anV" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anW" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anX" = ( -/obj/item/weapon/coin/iron, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"anY" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anZ" = ( -/turf/open/floor/plasteel/blue/side, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aoa" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/blue/side, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aob" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering door"; - req_access_txt = "10"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aoc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/engine/engineering) -"aod" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoe" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aof" = ( -/turf/closed/wall, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aog" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Northwest Hallway APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoh" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"aoj" = ( -/obj/effect/landmark/start{ - name = "AI" - }, -/obj/machinery/turretid{ - control_area = "AI Core"; - pixel_x = 24 - }, -/obj/item/device/radio/intercom{ - name = "AI Intercom"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aok" = ( -/obj/machinery/door/airlock/command{ - name = "captain office door"; - req_access_txt = "20" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain{ - name = "\improper Captain's Quarters" - }) -"aol" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aom" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"aon" = ( -/turf/closed/wall/r_wall, -/area/bridge) -"aoo" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aop" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aoq" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aor" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"aos" = ( -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"aot" = ( -/turf/closed/wall/r_wall, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aou" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aov" = ( -/obj/machinery/door/airlock/atmos{ - name = "atmospherics door"; - req_access_txt = "24" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aow" = ( -/turf/open/floor/plasteel/brownold{ - dir = 1 - }, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aox" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/brownold{ - dir = 1 - }, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/blue/side, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/blue/side, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aoC" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoD" = ( -/obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/weapon/rcd, -/obj/item/weapon/rcd, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoE" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoF" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoH" = ( -/obj/structure/table, -/obj/item/clothing/shoes/magboots{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/shoes/magboots{ - pixel_x = -5; - pixel_y = -5 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "E.V.A. APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoI" = ( -/turf/closed/wall, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aoJ" = ( -/turf/open/floor/plasteel, -/area/bridge) -"aoK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellowsiding/corner, -/area/bridge) -"aoL" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/yellowsiding, -/area/bridge) -"aoM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellowsiding, -/area/bridge) -"aoN" = ( -/obj/machinery/keycard_auth{ - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellowsiding, -/area/bridge) -"aoO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/yellowsiding, -/area/bridge) -"aoP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel/yellowsiding, -/area/bridge) -"aoQ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8 - }, -/area/bridge) -"aoR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aoS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/fsmaint) -"aoT" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoU" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoX" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"aoY" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aoZ" = ( -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apa" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apd" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-16"; - layer = 4.1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"ape" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apf" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apg" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aph" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"api" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apk" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apl" = ( -/obj/machinery/door/airlock/command{ - name = "E.V.A. door"; - req_access_txt = "18" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apm" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apn" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apo" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"app" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/bridge) -"apq" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellowsiding{ - dir = 4 - }, -/area/bridge) -"apr" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aps" = ( -/turf/open/floor/plasteel/black, -/area/bridge) -"apt" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/black, -/area/bridge) -"apu" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"apv" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 8 - }, -/area/bridge) -"apw" = ( -/obj/machinery/computer/message_monitor, -/turf/open/floor/plasteel, -/area/bridge) -"apx" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/maintenance/fsmaint) -"apy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apz" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"apA" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apB" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apC" = ( -/obj/item/weapon/wrench, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apF" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Emergency Air Pumps APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"apG" = ( -/obj/machinery/disposal/bin, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apK" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apM" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"apN" = ( -/obj/machinery/door/airlock/command{ - name = "E.V.A. door"; - req_access_txt = "18" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apO" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apP" = ( -/obj/machinery/door/airlock/command{ - name = "command door"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"apQ" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4 - }, -/area/bridge) -"apR" = ( -/obj/machinery/computer/robotics, -/turf/open/floor/plasteel/black, -/area/bridge) -"apS" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/black, -/area/bridge) -"apT" = ( -/obj/structure/bed/dogbed{ - anchored = 1; - desc = "A comfy-looking bird bed. You can even strap your pet in, in case the gravity turns off."; - name = "bird bed" - }, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/black, -/area/bridge) -"apU" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1 - }, -/area/bridge) -"apV" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/bridge) -"apW" = ( -/obj/structure/table/wood, -/obj/item/clothing/suit/monkeysuit, -/obj/item/clothing/mask/gas/monkeymask, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"apX" = ( -/obj/structure/table/wood, -/obj/item/clothing/suit/suspenders, -/obj/item/clothing/under/syndicate/tacticool, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"apY" = ( -/obj/structure/table/wood, -/obj/item/clothing/head/rabbitears, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apZ" = ( -/obj/structure/dresser, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqa" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqb" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aqc" = ( -/obj/item/weapon/gun/ballistic/shotgun/toy, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aqd" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqe" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqg" = ( -/turf/closed/wall, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqh" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqj" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqk" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aql" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqm" = ( -/turf/closed/wall, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aqo" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aqp" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aqq" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/machinery/light, -/obj/item/device/gps, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aqr" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aqs" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aqt" = ( -/obj/structure/table, -/obj/item/weapon/tank/jetpack/carbondioxide{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/tank/jetpack/carbondioxide, -/obj/item/weapon/tank/jetpack/carbondioxide{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aqu" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aqv" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aqw" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqx" = ( -/obj/machinery/computer/communications, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqy" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aqA" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/item/weapon/paper/monitorkey{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/phone{ - force = 1 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/bridge) -"aqB" = ( -/obj/structure/closet/cardboard, -/obj/item/clothing/suit/toggle/owlwings, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqC" = ( -/obj/machinery/vending/autodrobe{ - req_access_txt = "" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aqD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/landmark{ - name = "revenantspawn" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqE" = ( -/turf/closed/wall, -/area/quartermaster/storage) -"aqF" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/storage) -"aqG" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqH" = ( -/obj/machinery/atmospherics/components/binary/valve{ - icon_state = "mvalve_map"; - dir = 4 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqI" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/engine, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqJ" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/closet/secure_closet/atmospherics, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqK" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqL" = ( -/obj/machinery/pipedispenser, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"aqM" = ( -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqO" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqP" = ( -/obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqQ" = ( -/obj/structure/closet/toolcloset, -/obj/item/weapon/storage/belt/utility, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aqR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"aqS" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads) -"aqT" = ( -/turf/closed/wall, -/area/crew_quarters/heads) -"aqU" = ( -/obj/machinery/computer/mecha, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqV" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqW" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/black, -/area/bridge) -"aqX" = ( -/obj/item/device/aicard, -/obj/structure/table, -/obj/item/device/gps, -/turf/open/floor/plasteel, -/area/bridge) -"aqY" = ( -/obj/structure/closet{ - name = "jackboot locker" - }, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqZ" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ara" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/supply) -"arb" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/supply) -"arc" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, -/area/shuttle/supply) -"ard" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "cargo"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"are" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargo"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arf" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "cargo"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arg" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arh" = ( -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ari" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"arj" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"ark" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"arl" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"arm" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"arn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop shutter"; - name = "HoP Office shutter" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads) -"aro" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/silver_ids{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/box/ids, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"arp" = ( -/obj/structure/filingcabinet/employment, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"arq" = ( -/obj/machinery/vending/cart, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"arr" = ( -/obj/machinery/photocopier, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"ars" = ( -/obj/structure/closet/secure_closet/hop, -/obj/item/clothing/suit/armor/reactive, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"art" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "HoP Office APC"; - pixel_x = 24 - }, -/obj/machinery/keycard_auth{ - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"aru" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellowsiding/corner, -/area/bridge) -"arv" = ( -/obj/machinery/computer/monitor, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"arw" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"arx" = ( -/obj/machinery/computer/aifixer, -/turf/open/floor/plasteel/black, -/area/bridge) -"ary" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8 - }, -/area/bridge) -"arz" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/bridge) -"arA" = ( -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"arB" = ( -/obj/item/clothing/under/rank/clown, -/obj/item/clothing/mask/gas/clown_hat, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"arC" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"arD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"arE" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"arF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"arG" = ( -/obj/structure/chair/stool, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"arH" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/supply) -"arI" = ( -/obj/machinery/conveyor{ - dir = 2; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"arJ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"arK" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "cargo"; - name = "cargo conveyor belt" - }, -/obj/machinery/status_display{ - name = "cargo status display"; - pixel_x = -32; - supply_display = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arL" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arM" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"arN" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"arO" = ( -/obj/structure/table, -/obj/item/weapon/pipe_dispenser, -/obj/item/weapon/pipe_dispenser, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"arP" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"arQ" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Tool Storage APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"arR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"arS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"arT" = ( -/obj/machinery/door/airlock/command{ - name = "HoP office door"; - req_access_txt = "0"; - req_one_access_txt = "19;57" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"arU" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"arV" = ( -/obj/effect/landmark/start{ - name = "Head of Personnel" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"arW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"arX" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellowsiding{ - dir = 4 - }, -/area/bridge) -"arY" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"arZ" = ( -/obj/machinery/power/smes{ - charge = 3e+006; - input_level = 10000; - output_level = 2000 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"asa" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"asb" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel, -/area/bridge) -"asc" = ( -/obj/item/clothing/shoes/clown_shoes/banana_shoes, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"asd" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/fsmaint) -"ase" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"asf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"asg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ash" = ( -/turf/closed/wall/rust, -/area/crew_quarters/sleep) -"asi" = ( -/turf/closed/wall, -/area/crew_quarters/sleep) -"asj" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"ask" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"asl" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"asm" = ( -/obj/machinery/mineral/mint{ - input_dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"asn" = ( -/turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (WEST)"; - dir = 8 - }, -/area/maintenance/fsmaint) -"aso" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"asp" = ( -/obj/machinery/conveyor{ - dir = 9; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"asq" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"asr" = ( -/obj/effect/landmark{ - name = "lightsout" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ass" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"ast" = ( -/mob/living/carbon/monkey{ - name = "Linda"; - unique_name = 0 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"asu" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"asv" = ( -/obj/machinery/autolathe{ - icon_state = "autolathe"; - name = "public autolathe" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"asw" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"asx" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"asy" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"asz" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"asA" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"asB" = ( -/obj/structure/chair/office/light, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/obj/machinery/button/door{ - id = "hop shutter"; - name = "HoP office shutter button"; - pixel_x = -24 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"asC" = ( -/obj/machinery/computer/card, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"asD" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"asE" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/weapon/hand_labeler, -/obj/item/weapon/pen, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"asF" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "AI Core APC"; - pixel_y = 24 - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"asG" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"asH" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Bridge APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/bridge) -"asI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4 - }, -/area/bridge) -"asJ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/bridge) -"asK" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/bridge) -"asL" = ( -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/bridge) -"asM" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/bridge) -"asN" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/bridge) -"asO" = ( -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1 - }, -/area/bridge) -"asP" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/bridge) -"asQ" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"asR" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"asS" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"asT" = ( -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"asU" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"asV" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/obj/item/weapon/bikehorn/rubberducky, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"asW" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"asX" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"asY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"asZ" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ata" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"atb" = ( -/obj/structure/table/wood, -/obj/item/device/electropack, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"atc" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"atd" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/fsmaint) -"ate" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/fsmaint) -"atf" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"atg" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"ath" = ( -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/obj/machinery/conveyor{ - dir = 8; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"ati" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargo"; - name = "cargo conveyor belt" - }, -/obj/machinery/door/poddoor{ - id = "cargo blast"; - name = "cargo conveyor blast door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"atj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"atk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"atl" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"atm" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"atn" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/obj/effect/landmark{ - name = "xeno_spawn"; - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"ato" = ( -/obj/machinery/vending/assist, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"atp" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"atq" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port{ - name = "\improper Northwest Hallway" - }) -"atr" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop shutter"; - name = "HoP Office shutter" - }, -/obj/machinery/door/window/southright, -/obj/machinery/door/window/northright{ - name = "HoP desk door"; - req_one_access_txt = "19;57" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads) -"ats" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"att" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai{ - name = "\improper AI Core" - }) -"atu" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/sleep) -"atv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/crew_quarters/sleep) -"atw" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"atx" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"aty" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/item/weapon/soap, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"atz" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"atA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"atB" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"atC" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"atD" = ( -/obj/structure/table/wood, -/obj/item/weapon/relic, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"atE" = ( -/obj/structure/table/wood, -/obj/machinery/computer/stockexchange, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"atF" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/loadingarea, -/area/maintenance/fsmaint) -"atG" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/supply) -"atH" = ( -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/supply) -"atI" = ( -/obj/machinery/door/airlock/titanium{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"atJ" = ( -/obj/machinery/door/airlock/external{ - name = "cargo bay airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"atK" = ( -/turf/open/floor/plating, -/area/quartermaster/storage) -"atL" = ( -/turf/open/floor/plasteel/yellow/corner, -/area/quartermaster/storage) -"atM" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/quartermaster/storage) -"atN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall/r_wall, -/area/atmos{ - name = "Emergency Air Pumps" - }) -"atO" = ( -/obj/machinery/vending/tool, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"atP" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"atQ" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"atR" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"atS" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/central) -"atT" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"atU" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"atV" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"atW" = ( -/obj/structure/flora/ausbushes/palebush, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"atX" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/stairs/left, -/area/hallway/primary/central) -"atY" = ( -/turf/open/floor/plasteel/stairs/right, -/area/hallway/primary/central) -"atZ" = ( -/obj/structure/flora/ausbushes/sunnybush, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"aua" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aub" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/wardrobe/grey, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/weapon/storage/backpack/dufflebag, -/obj/item/weapon/storage/backpack/dufflebag, -/obj/item/weapon/storage/backpack/dufflebag, -/obj/item/clothing/under/assistantformal, -/obj/item/clothing/under/assistantformal, -/obj/item/clothing/head/bowler, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aud" = ( -/obj/structure/closet/lasertag/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aue" = ( -/obj/structure/closet/lasertag/red, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auf" = ( -/obj/structure/closet/wardrobe/mixed, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aug" = ( -/obj/structure/closet/wardrobe/black, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auh" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aui" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auj" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"auk" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aul" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aum" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aun" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=1"; - freq = 1400; - location = "Dorm Maint"; - name = "navigation beacon" - }, -/turf/open/floor/carpet, -/area/maintenance/fsmaint) -"auo" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/fsmaint) -"aup" = ( -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = 8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = -8 - }, -/obj/machinery/conveyor_switch/oneway{ - id = "cargoshuttle" - }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/supply) -"auq" = ( -/obj/machinery/button/door{ - id = "cargo blast"; - name = "cargo blast door button"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aur" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "cargo"; - name = "shuttle conveyor switch" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aus" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aut" = ( -/obj/effect/landmark/start{ - name = "Cargo Technician" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"auu" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=4"; - freq = 1400; - location = "Cargo #1"; - name = "navigation beacon" - }, -/obj/effect/turf_decal/delivery, -/mob/living/simple_animal/bot/mulebot{ - beacon_freq = 1400; - home_destination = "Cargo #1"; - suffix = "#1" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auv" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auw" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aux" = ( -/obj/structure/table, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/hand_labeler, -/obj/machinery/status_display{ - name = "cargo status display"; - pixel_x = 0; - pixel_y = 32; - supply_display = 1 - }, -/obj/item/weapon/paper_bin{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auy" = ( -/obj/machinery/autolathe, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auz" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/device/multitool, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auA" = ( -/turf/open/floor/plasteel/loadingarea, -/area/hallway/primary/central) -"auB" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 1 - }, -/area/hallway/primary/central) -"auC" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"auD" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/holopad, -/mob/living/simple_animal/bot/ed209{ - name = "Officer Pingsky II"; - radio_channel = "AI Private" - }, -/turf/open/floor/bluegrid, -/area/ai_monitored/turret_protected/aisat_interior{ - name = "\improper AI Core Lobby" - }) -"auE" = ( -/obj/machinery/vending/autodrobe{ - req_access_txt = "" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"auF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auG" = ( -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auL" = ( -/obj/item/device/assembly/mousetrap/armed{ - icon_state = "mousetraparmed"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auM" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"auN" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"auO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auQ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auR" = ( -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Dormitory Maintenance APC"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auT" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"auU" = ( -/obj/machinery/door/airlock/titanium{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/obj/docking_port/mobile/supply{ - dwidth = 3; - width = 10 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 7; - id = "supply_home"; - name = "Cargo Bay"; - width = 10 - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"auV" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auW" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"auX" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=4"; - freq = 1400; - location = "Cargo #2"; - name = "navigation beacon" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"auZ" = ( -/obj/structure/table, -/obj/item/weapon/cartridge/quartermaster, -/obj/item/weapon/cartridge/quartermaster, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ava" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avc" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avd" = ( -/obj/machinery/power/smes{ - charge = 5e+006; - input_level = 10000; - output_level = 4000 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"ave" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avf" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avg" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avh" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avi" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"avj" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"avk" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avl" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avm" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"avn" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avo" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avp" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avq" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avr" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avs" = ( -/obj/structure/table, -/obj/item/weapon/cultivator, -/obj/item/weapon/storage/bag/plants, -/obj/item/weapon/hatchet, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"avt" = ( -/obj/machinery/seed_extractor, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"avu" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"avw" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"avx" = ( -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"avy" = ( -/turf/closed/mineral, -/area/maintenance/fsmaint) -"avz" = ( -/obj/effect/landmark{ - name = "blobstart" - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/fsmaint) -"avA" = ( -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/obj/machinery/conveyor{ - dir = 4; - id = "cargoshuttle"; - name = "cargo shuttle conveyor belt" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"avB" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargo"; - name = "cargo conveyor belt" - }, -/obj/machinery/door/poddoor{ - id = "cargo blast"; - name = "cargo conveyor blast door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"avC" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargo"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"avD" = ( -/obj/effect/landmark/start{ - name = "Cargo Technician" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"avE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"avF" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"avG" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 8; - output_dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"avH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avI" = ( -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; - dir = 4 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"avJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avK" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avL" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avM" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-y"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avP" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avQ" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avR" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avT" = ( -/obj/structure/table, -/obj/item/weapon/paper/gravity_gen, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"avU" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"avV" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/sleep) -"avW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avY" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"avZ" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awa" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awc" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awd" = ( -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awe" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awf" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/syringe, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"awg" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"awh" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/shuttle/mining) -"awi" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/mining) -"awj" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/mining) -"awk" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/shuttle/mining) -"awl" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/supply) -"awm" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, -/area/shuttle/supply) -"awn" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"awo" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc4"; - dir = 2 - }, -/area/shuttle/supply) -"awp" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/quartermaster/storage) -"awq" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/quartermaster/storage) -"awr" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/quartermaster/storage) -"aws" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"awt" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"awu" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"awv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aww" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"awx" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hallway/primary/central) -"awy" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/turf/open/floor/carpet, -/area/library) -"awz" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/library) -"awA" = ( -/turf/closed/wall, -/area/hallway/primary/central) -"awB" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"awC" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"awD" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"awE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"awF" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=6-DormsN"; - location = "5-CNE"; - name = "bot patrol navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"awG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awH" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awI" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awJ" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"awK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awL" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"awO" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"awP" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/pill_bottle/dice{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"awQ" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"awR" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/mining) -"awS" = ( -/obj/structure/table, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/mining) -"awT" = ( -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/mining) -"awU" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"awV" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"awW" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"awX" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Cargo Bay APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"awY" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"awZ" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axa" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"axc" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axd" = ( -/obj/structure/table, -/obj/item/weapon/stamp/denied{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/weapon/stamp, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axe" = ( -/obj/structure/chair/office/light, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axf" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axh" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"axi" = ( -/obj/machinery/libraryscanner, -/turf/open/floor/wood, -/area/library) -"axj" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"axk" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/turf/open/floor/wood, -/area/library) -"axl" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/wood, -/area/library) -"axm" = ( -/turf/open/floor/carpet, -/area/library) -"axn" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/library) -"axo" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"axp" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/library) -"axq" = ( -/obj/structure/chair/comfy/beige, -/turf/open/floor/wood, -/area/library) -"axr" = ( -/turf/closed/wall, -/area/library) -"axs" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/turf/open/floor/wood, -/area/library) -"axt" = ( -/obj/structure/chair/wood/normal, -/turf/open/floor/wood, -/area/library) -"axu" = ( -/turf/closed/wall, -/area/crew_quarters/theatre) -"axv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"axw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"axx" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axy" = ( -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"axz" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/crew_quarters/sleep) -"axA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axB" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axC" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=7-DormsS"; - location = "6-DormsN"; - name = "bot patrol navigation beacon" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axD" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axE" = ( -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"axF" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"axG" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_3"; - layer = 4.1; - name = "tree"; - pixel_x = -4; - pixel_y = 10 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/fsmaint) -"axH" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/mining) -"axI" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/mining) -"axJ" = ( -/turf/closed/wall, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"axK" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"axL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/status_display{ - name = "cargo status display"; - pixel_x = -32; - supply_display = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axM" = ( -/obj/structure/closet/crate/freezer, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axN" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axO" = ( -/obj/structure/closet/crate/medical, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axP" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/status_display{ - name = "cargo status display"; - pixel_x = 0; - pixel_y = -32; - supply_display = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"axR" = ( -/obj/structure/closet/wardrobe/cargotech, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - name = "cargo door"; - req_access_txt = "31" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/quartermaster/storage) -"axU" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "cargo bay door"; - req_access_txt = "31" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"axV" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"axW" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/floor/wood, -/area/library) -"axX" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"axY" = ( -/turf/open/floor/wood, -/area/library) -"axZ" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/wood, -/area/library) -"aya" = ( -/obj/structure/table/wood, -/obj/item/clothing/mask/gas/clown_hat, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayb" = ( -/obj/structure/table/wood, -/obj/item/weapon/lipstick/random, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayc" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Theatre APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayd" = ( -/obj/machinery/door/airlock/maintenance{ - name = "theater door"; - req_access_txt = "46" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aye" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ayf" = ( -/turf/closed/wall, -/area/maintenance/disposal) -"ayg" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"ayh" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ayi" = ( -/obj/effect/landmark{ - name = "xeno_spawn"; - pixel_x = -1 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ayj" = ( -/obj/machinery/door/airlock/titanium{ - name = "Mining Shuttle Airlock"; - req_access_txt = "0" - }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining"; - name = "mining shuttle"; - port_angle = 270; - width = 7 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining_home"; - name = "mining shuttle bay"; - width = 7 - }, -/turf/open/floor/plating, -/area/shuttle/mining) -"ayk" = ( -/obj/machinery/door/airlock/external{ - name = "cargo bay airlock"; - req_access_txt = "31" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayl" = ( -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aym" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayn" = ( -/obj/machinery/door/airlock/external{ - name = "cargo bay airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayo" = ( -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayp" = ( -/obj/effect/landmark/start{ - name = "Shaft Miner" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Office APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayq" = ( -/obj/effect/landmark/start{ - name = "Shaft Miner" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayr" = ( -/obj/effect/landmark/start{ - name = "Shaft Miner" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ays" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayt" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"ayu" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "cargo bay door"; - req_access_txt = "31" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ayv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ayw" = ( -/obj/machinery/status_display{ - name = "cargo status display"; - pixel_x = -32; - supply_display = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ayx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ayy" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"ayz" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ayA" = ( -/obj/effect/landmark/start{ - name = "Librarian" - }, -/turf/open/floor/carpet, -/area/library) -"ayB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"ayC" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"ayD" = ( -/obj/effect/landmark{ - name = "lightsout" - }, -/turf/open/floor/wood, -/area/library) -"ayE" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/codex_gigas, -/obj/item/weapon/storage/pill_bottle/dice, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/wood, -/area/library) -"ayF" = ( -/obj/effect/landmark/start{ - name = "Clown" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayG" = ( -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayH" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ayI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ayJ" = ( -/obj/structure/closet/l3closet/janitor, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayK" = ( -/obj/structure/closet/jcloset, -/obj/item/weapon/restraints/legcuffs/beartrap, -/obj/item/weapon/restraints/legcuffs/beartrap, -/obj/item/clothing/under/janimaid, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/item/weapon/mop/advanced, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayL" = ( -/obj/structure/janitorialcart, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayM" = ( -/obj/structure/mopbucket, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayN" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/mousetraps, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayO" = ( -/obj/structure/table, -/obj/item/weapon/mop, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayP" = ( -/obj/structure/table, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"ayQ" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 4 - }, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"ayR" = ( -/obj/structure/table/wood, -/obj/item/weapon/bikehorn/rubberducky, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"ayS" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ayT" = ( -/obj/structure/table/wood, -/obj/effect/landmark{ - name = "blobstart" - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ayU" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ayV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ayW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"ayX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/crate_spawner, -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ayY" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"ayZ" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aza" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azc" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "cargo bay door"; - req_access_txt = "31" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azd" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "cargoIN"; - name = "cargo crate conveyor switch" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aze" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"azf" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "cargoIN"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azg" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "cargoIN"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azh" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azi" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/quartermaster/storage) -"azk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"azl" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"azm" = ( -/obj/machinery/light, -/turf/open/floor/wood, -/area/library) -"azn" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/wood, -/area/library) -"azo" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/obj/machinery/power/apc{ - name = "Library APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/library) -"azp" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/library) -"azq" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"azr" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"azs" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"azt" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azu" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=4"; - freq = 1400; - location = "Disposals"; - name = "navigation beacon" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azv" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azw" = ( -/obj/vehicle/janicart, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azx" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/lights/mixed, -/obj/item/key/janitor, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azy" = ( -/obj/effect/landmark/start{ - name = "Janitor" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azz" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Waste Disposal APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"azA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"azB" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"azC" = ( -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"azD" = ( -/obj/structure/dresser, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"azE" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"azF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"azG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"azH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"azI" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"azJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"azK" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/obj/structure/closet/cardboard, -/obj/item/weapon/coin/silver, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"azL" = ( -/turf/closed/wall, -/area/maintenance/asmaint2) -"azM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"azN" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/mining) -"azO" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/mining) -"azP" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azQ" = ( -/obj/structure/table, -/obj/item/weapon/twohanded/spear{ - pixel_x = -7; - pixel_y = 7 - }, -/obj/item/weapon/twohanded/spear{ - pixel_x = -5; - pixel_y = 0 - }, -/obj/item/stack/medical/ointment, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azR" = ( -/obj/machinery/mineral/equipment_vendor, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azS" = ( -/obj/machinery/computer/shuttle/mining{ - req_access = "0"; - req_one_access = "0" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"azT" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azU" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azV" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azW" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "cargoOUT"; - name = "cargo crate conveyor switch" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azX" = ( -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/weapon/coin/gold, -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"azY" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargoOUT"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"azZ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargoOUT"; - name = "cargo conveyor belt" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aAa" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 8; - id = "cargoOUT"; - name = "cargo conveyor belt" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aAb" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aAc" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/wood, -/area/hallway/primary/central) -"aAd" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/wood, -/area/library) -"aAe" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aAf" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aAg" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aAh" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/wood, -/area/library) -"aAi" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library) -"aAj" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aAk" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aAl" = ( -/turf/closed/wall, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAm" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "service maintenance door"; - req_one_access_txt = "12;25;28;37;46" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "theater door"; - req_access_txt = "46" - }, -/turf/open/floor/wood, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAo" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAp" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAq" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAr" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAs" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAt" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aAu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aAv" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/obj/item/candle, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aAw" = ( -/obj/item/clothing/neck/petcollar, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/maintenance/fsmaint) -"aAx" = ( -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aAy" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/table, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aAz" = ( -/obj/item/weapon/shard, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aAA" = ( -/obj/structure/table, -/obj/item/weapon/hatchet, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aAB" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/white, -/area/space) -"aAC" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, -/area/shuttle/mining) -"aAD" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating/airless, -/area/shuttle/mining) -"aAE" = ( -/turf/open/space, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/shuttle/mining) -"aAF" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aAG" = ( -/obj/structure/closet/secure_closet/miner, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/device/gps/mining, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aAH" = ( -/obj/machinery/door/airlock/mining{ - name = "cargo door"; - req_access_txt = "31" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aAI" = ( -/turf/closed/wall, -/area/hallway/secondary/exit) -"aAJ" = ( -/turf/closed/wall, -/area/hydroponics) -"aAK" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aAL" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aAM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "service maintenance door"; - req_one_access_txt = "12;25;28;37;46" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAN" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Central Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAP" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAR" = ( -/obj/machinery/door/airlock/maintenance{ - name = "service maintenance door"; - req_one_access_txt = "12;25;28;37;46" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aAS" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aAT" = ( -/obj/machinery/button/door{ - id = "crusherdoor"; - name = "crusher blast door button"; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAV" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "garbage" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAX" = ( -/obj/machinery/mineral/stacking_unit_console{ - machinedir = 10; - pixel_y = -32 - }, -/mob/living/simple_animal/bot/cleanbot{ - on = 0 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal) -"aAY" = ( -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/weapon/storage/backpack/satchel, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"aAZ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBa" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBb" = ( -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aBc" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBd" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBe" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBf" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aBg" = ( -/obj/item/clothing/gloves/color/latex/nitrile, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aBh" = ( -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aBi" = ( -/obj/structure/table, -/obj/item/weapon/wirerod, -/obj/item/weapon/reagent_containers/syringe, -/obj/item/weapon/restraints/handcuffs, -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plasteel/white, -/area/space) -"aBj" = ( -/obj/machinery/light, -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aBk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aBl" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aBm" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 10; - pixel_y = 6 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -1; - pixel_y = -3 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBn" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBo" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -8; - pixel_y = 11 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 10; - pixel_y = 6 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBp" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBq" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBr" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBs" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aBt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aBu" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_y = 12 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/hydroponics) -"aBv" = ( -/obj/structure/table/glass, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/storage/bag/plants, -/obj/item/weapon/storage/bag/plants, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/hydroponics) -"aBw" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin, -/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage, -/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, -/obj/item/weapon/reagent_containers/food/snacks/grown/chili, -/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili, -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle, -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom, -/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/lily, -/obj/item/weapon/reagent_containers/food/snacks/grown/rice, -/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, -/obj/item/weapon/reagent_containers/food/snacks/grown/potato, -/obj/item/weapon/reagent_containers/food/snacks/grown/parsnip, -/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant, -/obj/item/weapon/reagent_containers/food/snacks/grown/corn, -/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, -/obj/item/weapon/reagent_containers/food/snacks/grown/holymelon, -/obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries, -/obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/hydroponics) -"aBx" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/item/weapon/watertank, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/hydroponics) -"aBy" = ( -/obj/structure/closet/wardrobe/botanist, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 5 - }, -/area/hydroponics) -"aBz" = ( -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aBA" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aBB" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=1"; - freq = 1400; - location = "Central Maint"; - name = "navigation beacon" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aBC" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aBD" = ( -/turf/closed/wall/r_wall, -/area/maintenance/disposal) -"aBE" = ( -/obj/machinery/door/airlock/glass{ - name = "maintenance glass door"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aBF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aBG" = ( -/obj/machinery/mineral/stacking_machine{ - input_dir = 2; - output_dir = 1; - stack_amt = 10 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aBH" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aBI" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"aBJ" = ( -/obj/effect/landmark{ - name = "lightsout" - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"aBK" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBL" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/sillycup, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBM" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBN" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBO" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBP" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aBQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBR" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBS" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/storage/bag/trash, -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBT" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aBU" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aBV" = ( -/obj/machinery/iv_drip{ - density = 0 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aBW" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/neutral, -/area/maintenance/fsmaint) -"aBX" = ( -/obj/structure/table, -/obj/item/weapon/tank/internals/anesthetic, -/obj/item/clothing/mask/breath/medical, -/turf/open/floor/plasteel/white, -/area/space) -"aBY" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aBZ" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCa" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -6; - pixel_y = 11 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_3"; - layer = 4.1; - name = "tree"; - pixel_x = 10; - pixel_y = 6 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCb" = ( -/turf/open/floor/wood, -/area/hallway/secondary/exit) -"aCc" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCd" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aCe" = ( -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aCf" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/hydroponics) -"aCg" = ( -/obj/machinery/door/airlock/maintenance{ - name = "bar door"; - req_one_access_txt = "25;28" - }, -/turf/open/floor/plasteel/black, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aCh" = ( -/obj/machinery/icecream_vat, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aCi" = ( -/turf/open/floor/plasteel, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aCj" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"aCk" = ( -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"aCl" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aCm" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCn" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/machinery/light, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCo" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/machinery/door/poddoor{ - id = "crusherdoor"; - layer = 3.1; - name = "crusher safety blast door" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCp" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/machinery/recycler/deathtrap, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCq" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCr" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aCs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal) -"aCt" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aCu" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aCv" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aCw" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/sleep) -"aCx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/closed/wall, -/area/maintenance/asmaint2) -"aCy" = ( -/turf/closed/wall/r_wall, -/area/maintenance/asmaint2) -"aCz" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aCA" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aCB" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCC" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_x = 6 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCD" = ( -/turf/closed/wall/mineral/wood{ - desc = "A tiny shrine to the moon lady."; - name = "Change'e shrine"; - opacity = 0 - }, -/area/hallway/secondary/exit) -"aCE" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aCF" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aCG" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aCH" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aCI" = ( -/obj/machinery/newscaster{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/hydroponics) -"aCJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aCK" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCL" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCM" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCN" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo"; - pixel_x = -4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCP" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCQ" = ( -/obj/machinery/processor, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aCR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aCS" = ( -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aCT" = ( -/obj/machinery/food_cart, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aCU" = ( -/obj/effect/landmark/start{ - name = "Mime" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"aCV" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aCW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/maintenance/disposal) -"aCX" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aCY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aCZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDa" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=8"; - freq = 1400; - location = "Dorms"; - name = "navigation beacon" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDb" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Dormitories APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"aDf" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDh" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDi" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aDk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDl" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDm" = ( -/obj/item/device/mmi, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDn" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/escape) -"aDo" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"aDp" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall14"; - dir = 2 - }, -/area/shuttle/escape) -"aDq" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s10"; - dir = 2 - }, -/area/shuttle/escape) -"aDr" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aDs" = ( -/obj/structure/flora/ausbushes/lavendergrass{ - pixel_x = 6 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aDt" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aDu" = ( -/obj/machinery/seed_extractor, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aDv" = ( -/obj/effect/landmark/start{ - name = "Botanist" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aDw" = ( -/obj/effect/landmark/start{ - name = "Botanist" - }, -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aDx" = ( -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/hydroponics) -"aDy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hydroponics) -"aDz" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aDA" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aDB" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aDC" = ( -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aDD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "bar door"; - req_one_access_txt = "25;28" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aDE" = ( -/turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (WEST)"; - dir = 8 - }, -/area/quartermaster/storage) -"aDF" = ( -/obj/structure/piano, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"aDG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-y"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aDH" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aDI" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aDJ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aDK" = ( -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aDL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDP" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDT" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDU" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aDV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aDW" = ( -/obj/item/weapon/ed209_assembly, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDX" = ( -/obj/structure/table, -/obj/item/weapon/circuitboard/machine/circuit_imprinter, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aDY" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall8"; - dir = 2 - }, -/area/shuttle/escape) -"aDZ" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/escape) -"aEa" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall4"; - dir = 2 - }, -/area/shuttle/escape) -"aEb" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall11"; - dir = 2 - }, -/area/shuttle/escape) -"aEc" = ( -/obj/structure/table, -/obj/item/weapon/scalpel, -/obj/item/weapon/retractor{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/hemostat, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aEd" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw{ - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aEe" = ( -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aEf" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/escape) -"aEg" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"aEh" = ( -/obj/structure/closet/cardboard, -/obj/item/weapon/coin/silver, -/obj/item/weapon/coin/silver, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aEi" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aEj" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aEk" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_3"; - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aEl" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aEm" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 4 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aEn" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aEo" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aEp" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aEq" = ( -/obj/machinery/vending/boozeomat, -/turf/closed/wall, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aEr" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aEs" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aEt" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aEu" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering command door"; - req_access_txt = "0"; - req_one_access_txt = "10, 19" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aEv" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aEw" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aEx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aEy" = ( -/obj/structure/closet/emcloset, -/obj/item/weapon/storage/box/metalfoam, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aEz" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/shoes/griffin{ - name = "bird boots" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aEA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aEB" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aEC" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aED" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aEE" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aEF" = ( -/turf/closed/wall, -/area/crew_quarters/fitness) -"aEG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aEH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters{ - id = "xenozoo shutter"; - name = "xenozoo shutters" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aEI" = ( -/obj/machinery/door/poddoor/shutters{ - id = "xenozoo shutter"; - name = "xenozoo shutters" - }, -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aEJ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "xenozoo shutter"; - name = "xenozoo shutters" - }, -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aEK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aEL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aEM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aEN" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aEO" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aEP" = ( -/obj/structure/table, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aEQ" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/escape) -"aER" = ( -/obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aES" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aET" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aEU" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall1"; - dir = 2 - }, -/area/shuttle/escape) -"aEV" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/escape) -"aEW" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aEX" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"aEY" = ( -/obj/machinery/door/airlock/maintenance{ - name = "cargo maintenance door"; - req_one_access_txt = "12;31" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock{ - name = "\improper Mining Office" - }) -"aEZ" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = -4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 10; - pixel_y = 6 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFa" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 10; - pixel_y = 6 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFb" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFc" = ( -/obj/machinery/vending/hydroseeds, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aFd" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/westright{ - name = "hydroponics door"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aFe" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFf" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFg" = ( -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFh" = ( -/obj/structure/table/wood, -/obj/item/weapon/gun/ballistic/revolver/doublebarrel, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFi" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/sugar, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = 10; - pixel_y = 10 - }, -/obj/item/weapon/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFj" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_x = -2 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_x = 2; - pixel_y = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFk" = ( -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFl" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aFm" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aFn" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aFo" = ( -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aFp" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aFq" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aFr" = ( -/obj/structure/table, -/obj/item/clothing/under/suit_jacket/female{ - pixel_x = -5 - }, -/obj/item/clothing/suit/toggle/lawyer/black, -/obj/item/clothing/under/sundress{ - pixel_x = 5 - }, -/obj/item/clothing/under/rank/det/grey, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aFs" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aFt" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFu" = ( -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFw" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFx" = ( -/turf/closed/wall/r_wall, -/area/toxins/xenobiology) -"aFy" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFz" = ( -/obj/structure/disposaloutlet{ - icon_state = "outlet"; - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aFA" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aFB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/maintenance/asmaint2) -"aFC" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aFD" = ( -/obj/item/device/assembly/prox_sensor, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aFE" = ( -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aFF" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/matter_bin, -/obj/item/weapon/stock_parts/manipulator, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aFG" = ( -/obj/machinery/computer/communications, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aFH" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aFI" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - name = "Gravity Generator APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aFJ" = ( -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/escape) -"aFK" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"aFL" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aFM" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "heavy plant" - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aFN" = ( -/obj/machinery/computer/slot_machine, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aFO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aFP" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aFQ" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_3"; - layer = 4.1; - name = "tree"; - pixel_x = -3; - pixel_y = -10 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFR" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = -1; - pixel_y = -3 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFS" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aFT" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/hydroponics) -"aFU" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/hydroponics) -"aFV" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/westleft{ - name = "hydroponics door"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aFW" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start{ - name = "Assistant" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFX" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/glass/rag, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFY" = ( -/obj/effect/landmark/start{ - name = "Bartender" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aFZ" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aGa" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGb" = ( -/obj/structure/sink/kitchen{ - dir = 8; - icon_state = "sink_alt"; - pixel_x = 12 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGc" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-16"; - layer = 4.1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aGd" = ( -/obj/structure/table/wood, -/obj/item/device/instrument/guitar, -/obj/item/device/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aGe" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aGf" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGg" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aGh" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aGi" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/fitness) -"aGj" = ( -/obj/item/weapon/storage/box/lights/mixed, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGk" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aGl" = ( -/mob/living/simple_animal/slime, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aGm" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aGn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aGo" = ( -/obj/item/weapon/secbot_assembly, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGp" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGq" = ( -/obj/item/weapon/toolbox_tiles_sensor, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGr" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGs" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"aGt" = ( -/obj/structure/table, -/obj/machinery/recharger{ - active_power_usage = 0; - idle_power_usage = 0; - pixel_y = 4; - use_power = 0 - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/escape) -"aGu" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/handcuffs, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/escape) -"aGv" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc2"; - dir = 2 - }, -/area/shuttle/escape) -"aGw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall15"; - dir = 2 - }, -/area/shuttle/escape) -"aGx" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/escape) -"aGy" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aGz" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Hydroponics APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 10 - }, -/area/hydroponics) -"aGA" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitegreen/side, -/area/hydroponics) -"aGB" = ( -/turf/open/floor/plasteel/whitegreen/side, -/area/hydroponics) -"aGC" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 6 - }, -/area/hydroponics) -"aGD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aGE" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGF" = ( -/mob/living/carbon/monkey/punpun, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGH" = ( -/obj/effect/landmark/start{ - name = "Cook" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGI" = ( -/obj/machinery/power/apc{ - name = "Bar and Kitchen APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGJ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/newscaster{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aGK" = ( -/turf/open/floor/plasteel/stairs/left, -/area/crew_quarters/theatre) -"aGL" = ( -/turf/open/floor/plasteel/stairs/right, -/area/crew_quarters/theatre) -"aGM" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "incredibly heavy plant" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGN" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGO" = ( -/obj/machinery/door/window/westright{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aGP" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aGQ" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aGR" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aGS" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/device/paicard, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGT" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGU" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGV" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aGX" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aGY" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aGZ" = ( -/obj/machinery/door/window/northright{ - req_access_txt = "55" - }, -/obj/machinery/door/window/southright, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aHa" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aHb" = ( -/obj/machinery/door/window/northleft{ - req_access_txt = "55" - }, -/obj/machinery/door/window/southleft, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aHc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aHd" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aHe" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aHf" = ( -/turf/closed/wall/shuttle, -/area/shuttle/escape) -"aHg" = ( -/obj/machinery/door/airlock/glass_security{ - name = "security airlock"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/shuttle/red, -/area/shuttle/escape) -"aHh" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aHi" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc3" - }, -/area/shuttle/escape) -"aHj" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall13"; - dir = 2 - }, -/area/shuttle/escape) -"aHk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aHl" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_3"; - layer = 4.1; - name = "tree"; - pixel_x = -4; - pixel_y = 10 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aHm" = ( -/obj/machinery/door/airlock/glass_virology{ - name = "hydroponics door"; - req_access_txt = "35" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hydroponics) -"aHn" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/matches{ - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHo" = ( -/obj/machinery/smartfridge, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHp" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/obj/item/weapon/reagent_containers/food/snacks/pastatomato{ - name = "pasghetti" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHr" = ( -/turf/closed/wall, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHs" = ( -/obj/machinery/door/airlock/freezer{ - name = "kitchen door"; - req_one_access_txt = "25;28" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aHt" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aHu" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHv" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHw" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aHx" = ( -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/crew_quarters/fitness) -"aHy" = ( -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/crew_quarters/fitness) -"aHz" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/brute, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHA" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHC" = ( -/obj/structure/table, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHD" = ( -/obj/structure/closet/boxinggloves, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHE" = ( -/obj/structure/closet/athletic_mixed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHF" = ( -/obj/structure/closet/masks, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aHG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aHH" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"aHI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHJ" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHK" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHL" = ( -/obj/machinery/button/door{ - id = "xenozoo shutter"; - name = "xeno zoo shutter button"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHM" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHN" = ( -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHO" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aHP" = ( -/turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (EAST)"; - dir = 4 - }, -/area/quartermaster/storage) -"aHQ" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aHR" = ( -/obj/item/weapon/relic, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aHS" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) -"aHT" = ( -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) -"aHU" = ( -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aHV" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aHW" = ( -/obj/structure/table, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aHX" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) -"aHY" = ( -/obj/machinery/door/airlock/external, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/hallway/secondary/exit) -"aHZ" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/hallway/secondary/exit) -"aIa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIb" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aId" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIe" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIf" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIg" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIh" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIi" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIj" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "engineering command door"; - req_access_txt = "0"; - req_one_access_txt = "10, 19" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aIl" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/hallway/primary/fore{ - name = "\improper Command Hallway" - }) -"aIm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/camera/autoname, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIn" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIo" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIp" = ( -/obj/machinery/camera/autoname, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIq" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIr" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Central Primary Hallway APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIs" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aIt" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"aIu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aIv" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aIw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/crew_quarters/fitness) -"aIx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/crew_quarters/fitness) -"aIy" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aIz" = ( -/obj/structure/table, -/obj/item/weapon/storage/crayons, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aIA" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aIB" = ( -/obj/item/device/assembly/mousetrap/armed, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aIC" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aID" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aIE" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/toxins/xenobiology) -"aIF" = ( -/obj/machinery/smartfridge/extract, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/toxins/xenobiology) -"aIG" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aIH" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aII" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aIJ" = ( -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aIK" = ( -/obj/structure/closet/chefcloset, -/obj/item/clothing/under/skirt/blue, -/obj/item/clothing/under/janimaid, -/obj/item/clothing/under/sundress, -/obj/item/clothing/glasses/sunglasses/reagent, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aIL" = ( -/obj/structure/table, -/obj/item/weapon/coin/plasma, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aIM" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aIN" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aIO" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{ - name = "pasghetti"; - pixel_x = 4; - pixel_y = 7 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aIP" = ( -/obj/machinery/door/airlock/titanium, -/obj/docking_port/mobile/emergency{ - dheight = 0; - dir = 8; - dwidth = 6; - height = 18; - port_angle = 90; - width = 14; - name = "Birdboat emergency shuttle" - }, -/obj/docking_port/stationary{ - dheight = 0; - dir = 8; - dwidth = 10; - height = 51; - id = "emergency_home"; - name = "emergency evac bay"; - width = 21 - }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) -"aIQ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIR" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aIS" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIT" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIU" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIV" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIW" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIY" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aIZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aJa" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aJb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/corner, -/area/hallway/secondary/exit) -"aJc" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/hallway/secondary/exit) -"aJd" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/hallway/secondary/exit) -"aJe" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/hallway/secondary/exit) -"aJf" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aJg" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJh" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJi" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJj" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJk" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJl" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJm" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJn" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJo" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJp" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"aJq" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aJr" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aJs" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aJt" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aJu" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/southright, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aJv" = ( -/obj/structure/table, -/obj/item/device/camera, -/obj/item/weapon/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aJw" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aJx" = ( -/obj/machinery/space_heater, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aJy" = ( -/turf/closed/wall, -/area/toxins/xenobiology) -"aJz" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aJA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aJB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aJC" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aJD" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aJE" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"aJF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aJG" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aJH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aJI" = ( -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aJJ" = ( -/mob/living/carbon/monkey, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aJK" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aJL" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/snacks/chocolatebar, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aJM" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aJN" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall2"; - dir = 2 - }, -/area/shuttle/escape) -"aJO" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "heavy plant" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJP" = ( -/obj/machinery/computer/arcade/battle, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJR" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJS" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment, -/obj/item/weapon/paper_bin, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJT" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJU" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJV" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-21"; - layer = 4.1; - name = "heavy potted plant" - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aJW" = ( -/turf/closed/wall/r_wall, -/area/security/brig) -"aJX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "security lockdown"; - name = "brig blast door" - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aJY" = ( -/obj/machinery/door/airlock/glass_security{ - name = "security airlock"; - req_access_txt = "63" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aJZ" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aKa" = ( -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aKd" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aKe" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics_cloning) -"aKf" = ( -/turf/closed/wall, -/area/medical/genetics_cloning) -"aKg" = ( -/obj/machinery/smartfridge/chemistry, -/turf/closed/wall, -/area/medical/medbay) -"aKh" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chem shutter"; - name = "chem shutter" - }, -/obj/machinery/door/window/southright{ - name = "chemistry door"; - req_one_access_txt = "5;33" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aKi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chem shutter"; - name = "chem shutter" - }, -/turf/open/floor/plating, -/area/medical/medbay) -"aKj" = ( -/turf/closed/wall, -/area/medical/medbay) -"aKk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aKl" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=1-medbay"; - location = "8-CSE2"; - name = "bot patrol navigation beacon" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aKm" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aKn" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aKo" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=8-CSE2"; - location = "7-DormsS"; - name = "bot patrol navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aKp" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aKq" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aKr" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aKs" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aKt" = ( -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aKu" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aKv" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aKw" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"aKx" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aKy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aKz" = ( -/obj/structure/chair, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aKA" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aKB" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "heavy plant" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aKC" = ( -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aKD" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aKE" = ( -/obj/structure/table, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aKF" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-21"; - layer = 4.1; - name = "heavy potted plant" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aKG" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 1"; - name = "cell 1 locker" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKI" = ( -/obj/structure/bed, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKJ" = ( -/turf/closed/wall, -/area/security/brig) -"aKK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKL" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKM" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKN" = ( -/obj/structure/bed, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKP" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "cell 2 locker" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aKQ" = ( -/obj/machinery/dna_scannernew, -/turf/open/floor/plasteel/black, -/area/medical/genetics_cloning) -"aKR" = ( -/obj/machinery/computer/scan_consolenew, -/turf/open/floor/plasteel/black, -/area/medical/genetics_cloning) -"aKS" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/pill_bottle/mannitol, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aKT" = ( -/obj/machinery/camera/autoname, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aKU" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aKV" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aKW" = ( -/obj/machinery/button/door{ - id = "chem shutter"; - name = "chemistry shutter button"; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aKX" = ( -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aKY" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aKZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aLa" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aLb" = ( -/obj/machinery/power/apc{ - name = "Fitness APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aLc" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/maintenance/maintcentral{ - name = "Central Maintenance" - }) -"aLd" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/teleporter{ - name = "\improper Teleporter Room" - }) -"aLe" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aLf" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/syringes, -/obj/machinery/reagentgrinder{ - pixel_x = 0; - pixel_y = 8 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/turf/open/floor/plasteel/black, -/area/toxins/xenobiology) -"aLg" = ( -/obj/item/weapon/tank/internals/oxygen/yellow, -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aLh" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = 0; - pixel_y = 8 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aLi" = ( -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aLj" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aLk" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aLl" = ( -/mob/living/simple_animal/bot/medbot/derelict{ - name = "\improper Dangerous Old Medibot"; - radio_channel = null; - remote_disabled = 1; - treatment_brute = "itching_powder"; - treatment_fire = "formaldehyde"; - treatment_oxy = "itching_powder"; - treatment_tox = "formaldehyde" - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aLm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - name = "acidproof air injector" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aLn" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aLo" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aLp" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/toxin, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aLq" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLr" = ( -/obj/machinery/computer/arcade/orion_trail, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLs" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/obj/machinery/power/apc{ - name = "Escape Shuttle Hallway APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLt" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-05"; - layer = 4.1; - name = "heavy plant" - }, -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLu" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - anchored = 1; - icon_state = "plant-21"; - layer = 4.1; - name = "heavy potted plant" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLv" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/exit) -"aLw" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLx" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLz" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLB" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLC" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aLD" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"aLE" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"aLF" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"aLG" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/central) -"aLH" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Cloning Lab APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aLI" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aLJ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aLK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aLL" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aLM" = ( -/obj/structure/dresser, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aLN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chem shutter"; - name = "chem shutter" - }, -/turf/open/floor/plating, -/area/medical/genetics_cloning) -"aLO" = ( -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aLP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chem shutter"; - name = "chem shutter" - }, -/obj/machinery/door/window/westright{ - name = "chemistry door"; - req_one_access_txt = "33;5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aLQ" = ( -/turf/closed/wall, -/area/medical/robotics) -"aLR" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/bridge) -"aLS" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva{ - name = "E.V.A. Storage" - }) -"aLT" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/storage/primary{ - name = "Tool Storage" - }) -"aLU" = ( -/obj/effect/landmark{ - name = "lightsout" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/bridge) -"aLV" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/monkeycubes{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/box/monkeycubes, -/turf/open/floor/plasteel/black, -/area/toxins/xenobiology) -"aLW" = ( -/obj/machinery/light, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aLX" = ( -/obj/machinery/holopad, -/mob/living/simple_animal/pet/dog/corgi/Ian, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"aLY" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aLZ" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/item/weapon/storage/box/pillbottles, -/obj/item/weapon/storage/bag/chemistry, -/obj/item/weapon/hand_labeler, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aMa" = ( -/obj/machinery/shieldwallgen{ - req_access = list(55) - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aMb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aMc" = ( -/obj/machinery/door/window/northleft{ - req_access_txt = "55" - }, -/obj/machinery/door/window/southleft, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aMd" = ( -/obj/machinery/door/window/northright{ - req_access_txt = "55" - }, -/obj/machinery/door/window/southright, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aMe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMf" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/escape) -"aMg" = ( -/turf/closed/wall/shuttle{ - icon_state = "swallc1"; - dir = 2 - }, -/area/shuttle/escape) -"aMh" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aMi" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/brute{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/brute, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aMj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aMk" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/security/brig) -"aMl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/security/brig) -"aMm" = ( -/obj/machinery/door/window/brigdoor/northleft{ - id = "Cell 1"; - name = "cell 1 door"; - req_access_txt = "63" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aMn" = ( -/obj/machinery/door/window/brigdoor/northleft{ - id = "Cell 2"; - name = "cell 2 door"; - req_access_txt = "63" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aMo" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMq" = ( -/obj/effect/landmark/start{ - name = "Medical Doctor" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMr" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMs" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMt" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/monkeycubes{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/box/monkeycubes, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aMu" = ( -/obj/machinery/chem_dispenser{ - layer = 2.7 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aMv" = ( -/obj/effect/landmark/start{ - name = "Medical Doctor" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aMw" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aMx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd shutter"; - name = "research shutter" - }, -/turf/open/floor/plating, -/area/toxins/lab) -"aMy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aMz" = ( -/obj/machinery/r_n_d/destructive_analyzer, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aMA" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/r_n_d/protolathe, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aMB" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aMC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aMD" = ( -/turf/closed/wall, -/area/toxins/lab) -"aME" = ( -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMF" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMG" = ( -/obj/item/drone_shell, -/obj/machinery/power/apc{ - dir = 1; - name = "Robotics APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMH" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMI" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMJ" = ( -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/stack/cable_coil, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aMK" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aML" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aMM" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aMN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMO" = ( -/obj/machinery/droneDispenser{ - pixel_x = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMT" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMU" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMV" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - icon_state = "volpump_map"; - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMW" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMY" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aMZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNa" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - icon_state = "volpump_map"; - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) -"aNd" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"aNe" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aNf" = ( -/obj/structure/table/glass, -/obj/item/weapon/defibrillator/loaded, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"aNg" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 14; - pixel_y = -8 - }, -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = 4; - pixel_y = 10 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aNh" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aNi" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aNj" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aNk" = ( -/obj/structure/table, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aNl" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aNm" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aNn" = ( -/turf/open/floor/plasteel, -/area/security/brig) -"aNo" = ( -/obj/machinery/door_timer{ - dir = 1; - id = "Cell 1"; - name = "cell 1 door timer"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) -"aNp" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aNq" = ( -/obj/machinery/door_timer{ - dir = 1; - id = "Cell 2"; - name = "cell 2 door timer"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) -"aNr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "brig window shutter"; - name = "brig window shutter" - }, -/turf/open/floor/plating, -/area/security/brig) -"aNs" = ( -/obj/machinery/computer/cloning, -/turf/open/floor/plasteel/black, -/area/medical/genetics_cloning) -"aNt" = ( -/obj/machinery/clonepod, -/turf/open/floor/plasteel/black, -/area/medical/genetics_cloning) -"aNu" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aNv" = ( -/obj/machinery/button/door{ - id = "geneticsdoor"; - name = "cloning door button"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aNw" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_x = 0; - pixel_y = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aNx" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_x = -2 - }, -/obj/item/weapon/reagent_containers/dropper, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aNy" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd shutter"; - name = "research shutter" - }, -/obj/machinery/door/window/eastright{ - name = "research door"; - req_one_access_txt = "47;29" - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aNz" = ( -/turf/open/floor/plasteel, -/area/toxins/lab) -"aNA" = ( -/turf/open/floor/plasteel, -/area/medical/robotics) -"aNB" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aNC" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aND" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/blue, -/area/bridge) -"aNE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aNF" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aNG" = ( -/obj/structure/closet/wardrobe/science_white, -/obj/item/clothing/under/plaid_skirt/purple, -/obj/item/clothing/under/plaid_skirt/purple, -/obj/item/clothing/under/plaid_skirt/purple, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNH" = ( -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNI" = ( -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNK" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNL" = ( -/obj/machinery/door/airlock/research{ - name = "research door"; - req_access_txt = "0"; - req_one_access_txt = "47;29" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aNM" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/toxins/misc_lab) -"aNN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/toxins/misc_lab) -"aNO" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/toxins/misc_lab) -"aNP" = ( -/turf/closed/wall/r_wall, -/area/toxins/misc_lab) -"aNQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNR" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNT" = ( -/obj/machinery/power/apc{ - name = "Xenobiology APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNU" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNY" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aNZ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOa" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOb" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = -1; - pixel_y = -3 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aOc" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_4"; - layer = 4.1; - name = "tree"; - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/secondary/exit) -"aOd" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aOe" = ( -/turf/open/floor/plasteel/black, -/area/security/brig) -"aOf" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOh" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOi" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOj" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOl" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/blue, -/area/bridge) -"aOm" = ( -/obj/machinery/door/airlock/medical{ - id_tag = "geneticsdoor"; - name = "cloning and genetics airlock"; - req_one_access_txt = "5;9" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"aOn" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/genetics_cloning) -"aOo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aOp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/medbay) -"aOq" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aOr" = ( -/obj/machinery/computer/rdconsole/core, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aOs" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aOt" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aOu" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aOv" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd shutter"; - name = "research shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aOw" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aOx" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aOy" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=8"; - freq = 1400; - location = "Robotics"; - name = "navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/medical/robotics) -"aOz" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aOA" = ( -/obj/machinery/door/airlock/research{ - name = "research door"; - req_access_txt = "0"; - req_one_access_txt = "47;29" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aOB" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aOC" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOD" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOE" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOF" = ( -/obj/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOG" = ( -/obj/structure/window/reinforced, -/obj/effect/landmark{ - name = "lightsout" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOH" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aOI" = ( -/turf/closed/wall, -/area/toxins/misc_lab) -"aOJ" = ( -/turf/open/floor/plasteel/black, -/area/toxins/misc_lab) -"aOK" = ( -/obj/machinery/computer/rdservercontrol, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/black, -/area/toxins/misc_lab) -"aOL" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOM" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aON" = ( -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aOO" = ( -/obj/machinery/chem_dispenser/constructable, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aOP" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOR" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOS" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOT" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOU" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOV" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOW" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aOX" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/security/brig) -"aOY" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aOZ" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/brute{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/brute, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPa" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/item/weapon/gun/syringe, -/obj/item/weapon/reagent_containers/hypospray/CMO, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/storage/box/syringes, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPb" = ( -/obj/structure/closet/wardrobe/white/medical, -/obj/item/clothing/neck/stethoscope, -/obj/item/clothing/neck/stethoscope, -/obj/item/clothing/under/skirt/blue, -/obj/item/clothing/under/plaid_skirt/blue, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPc" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/medbay) -"aPd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPe" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPf" = ( -/obj/machinery/door/airlock/medical{ - name = "chemistry airlock"; - req_one_access_txt = "33;5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aPh" = ( -/obj/machinery/button/door{ - id = "rnd shutter"; - name = "R&D shutter button"; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aPi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aPj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aPk" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aPl" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aPm" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/medical/robotics) -"aPn" = ( -/obj/structure/table, -/obj/item/weapon/scalpel, -/obj/item/weapon/retractor{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/hemostat, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/robotics) -"aPo" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aPp" = ( -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/machinery/door/window/westleft{ - req_access_txt = "55" - }, -/obj/machinery/door/window/eastright, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aPq" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aPr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aPs" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/device/gps/science, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aPt" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/pipe_dispenser, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aPu" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aPv" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aPw" = ( -/obj/machinery/door/airlock/glass_research{ - name = "research door"; - req_one_access_txt = "47;29" - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aPx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aPy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aPz" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aPA" = ( -/obj/machinery/door/airlock/research{ - name = "xenobiology door"; - req_access_txt = "55"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aPB" = ( -/obj/structure/table, -/obj/machinery/microwave{ - desc = "It looks really dirty."; - name = "maint microwave"; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aPC" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/structure/closet/cardboard, -/obj/item/weapon/coin/silver, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aPD" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aPE" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aPF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aPG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aPH" = ( -/turf/closed/wall, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aPI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aPJ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aPK" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aPL" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"aPM" = ( -/obj/machinery/door/airlock/glass_security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aPN" = ( -/turf/closed/wall/r_wall, -/area/security/warden) -"aPO" = ( -/turf/closed/wall, -/area/security/warden) -"aPP" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/security/warden) -"aPQ" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/machinery/door/window/southright{ - name = "brig counter door"; - req_one_access_txt = "1;2;4" - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aPR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aPS" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/prisoner{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/box/hug, -/turf/open/floor/plasteel, -/area/security/brig) -"aPT" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPW" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPX" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aPY" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aPZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQa" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/console_screen, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQb" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQc" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQd" = ( -/obj/machinery/power/apc{ - name = "R&D APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQe" = ( -/obj/machinery/door/airlock/research{ - name = "research door"; - req_access_txt = "0"; - req_one_access_txt = "47;29" - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"aQf" = ( -/obj/machinery/button/door{ - id = "robotics shutter"; - name = "robotics shutter button"; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQg" = ( -/turf/open/floor/plasteel/white, -/area/medical/robotics) -"aQh" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw{ - pixel_y = 9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/robotics) -"aQi" = ( -/obj/machinery/recharge_station, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQj" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/weapon/stock_parts/cell/high, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQk" = ( -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aQl" = ( -/turf/open/floor/plasteel/black{ - name = "Server Walkway"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/misc_lab) -"aQm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/effect/landmark{ - name = "blobstart" - }, -/turf/open/floor/plasteel/black{ - name = "Server Walkway"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/misc_lab) -"aQn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 101.325; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/plasteel/black{ - name = "Server Walkway"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/misc_lab) -"aQo" = ( -/obj/structure/girder/reinforced, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aQp" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQq" = ( -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQr" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQs" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQt" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQv" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aQw" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/clothing/glasses/hud/security, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aQx" = ( -/turf/open/floor/plasteel/black, -/area/security/warden) -"aQy" = ( -/obj/structure/closet/cardboard, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aQz" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun/advtaser, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/warden) -"aQA" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/laser, -/obj/item/weapon/gun/energy/laser{ - pixel_x = 5; - pixel_y = -5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/warden) -"aQB" = ( -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) -"aQC" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/syndicatebomb/training, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) -"aQD" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aQE" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aQF" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aQG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"aQH" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aQI" = ( -/obj/structure/table, -/obj/item/device/electropack{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/electropack, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/turf/open/floor/plasteel, -/area/security/brig) -"aQJ" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/o2{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQK" = ( -/obj/machinery/door/airlock/medical{ - name = "medbay airlock"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQN" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQP" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQQ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aQR" = ( -/obj/machinery/door/airlock/research{ - name = "research door"; - req_access_txt = "0"; - req_one_access_txt = "47;29" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"aQS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - name = "research door"; - req_one_access_txt = "47;29" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics shutter"; - name = "robotics shutter" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQT" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northright{ - name = "research door"; - req_one_access_txt = "47;29" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics shutter"; - name = "robotics shutter" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQU" = ( -/obj/machinery/door/airlock/research{ - name = "research door"; - req_access_txt = "0"; - req_one_access_txt = "47;29" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aQV" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aQW" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aQX" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aQY" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aQZ" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aRa" = ( -/obj/machinery/computer/rdconsole/experiment, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aRb" = ( -/obj/machinery/r_n_d/experimentor, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aRc" = ( -/obj/machinery/r_n_d/server/robotics, -/turf/open/floor/bluegrid{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/misc_lab) -"aRd" = ( -/obj/machinery/r_n_d/server/core, -/turf/open/floor/bluegrid{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/misc_lab) -"aRe" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/obj/vehicle/secway, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/key/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) -"aRf" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aRg" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aRh" = ( -/obj/structure/table, -/obj/item/weapon/scalpel, -/obj/item/weapon/retractor{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/hemostat, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aRi" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRj" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRk" = ( -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRl" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRm" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRn" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRo" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aRp" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aRq" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aRr" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aRs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/warden) -"aRt" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/teargas, -/obj/item/weapon/storage/box/teargas{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aRu" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aRv" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aRw" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aRx" = ( -/obj/machinery/door/airlock/glass_security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aRy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aRz" = ( -/obj/machinery/shieldwallgen{ - anchored = 1; - locked = 0; - req_access = list(2) - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"aRA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "perma shutter"; - name = "perma brig window shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aRB" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/toxin{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/firstaid/toxin, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRC" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRD" = ( -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRE" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/gloves, -/obj/item/weapon/storage/box/masks{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRF" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRG" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/medbay) -"aRH" = ( -/obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/medbay) -"aRI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRK" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aRL" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=2-CSE"; - location = "1-medbay"; - name = "bot patrol navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aRM" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRN" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/purple/side{ - dir = 8 - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aRO" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = -32; - pixel_y = 32 - }, -/obj/structure/sign/directions/science{ - dir = 4; - icon_state = "direction_sci"; - pixel_x = -32; - pixel_y = 40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRP" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=5-CNE"; - location = "4-CNW"; - name = "bot patrol navigation beacon" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/sign/directions/engineering{ - dir = 1; - icon_state = "direction_eng"; - pixel_x = 32; - pixel_y = -40; - tag = "icon-direction_eng (NORTH)" - }, -/obj/structure/sign/directions/security{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/evac{ - pixel_x = 32; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/sign/directions/engineering{ - dir = 8; - icon_state = "direction_eng"; - pixel_x = -32; - pixel_y = -24; - tag = "icon-direction_eng (WEST)" - }, -/obj/structure/sign/directions/medical{ - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/sign/directions/science{ - pixel_x = -32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aRS" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aRT" = ( -/obj/machinery/door/poddoor/shutters{ - id = "charge shutter"; - name = "recharging room shutter" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/medical/robotics) -"aRU" = ( -/obj/machinery/button/door{ - id = "charge shutter"; - name = "recharger room shutter button"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aRV" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aRW" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aRX" = ( -/obj/machinery/recharge_station, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aRY" = ( -/obj/item/clothing/head/cone, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aRZ" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aSa" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Testing Lab APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSc" = ( -/obj/structure/girder/reinforced, -/obj/structure/grille, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aSd" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/monkeycubes, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aSe" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aSf" = ( -/obj/structure/table/wood, -/obj/item/weapon/dice, -/obj/item/weapon/dice, -/obj/item/weapon/dice, -/obj/item/weapon/dice, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"aSg" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aSh" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw{ - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aSi" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aSj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aSk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aSl" = ( -/obj/structure/tank_dispenser/oxygen{ - layer = 2.9; - pixel_x = -1; - pixel_y = 2 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aSm" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aSn" = ( -/obj/machinery/door/airlock/glass_security{ - name = "armory door"; - req_access_txt = "3"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aSo" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aSp" = ( -/obj/machinery/computer/camera_advanced/xenobio, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aSq" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aSr" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aSs" = ( -/obj/machinery/door/airlock/glass_security{ - name = "armory door"; - req_access_txt = "3"; - req_one_access_txt = "0" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aSt" = ( -/obj/effect/landmark/start{ - name = "Head of Security" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aSu" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/library) -"aSv" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = -5 - }, -/obj/machinery/recharger{ - pixel_x = 5 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aSw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aSx" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/flasher{ - id = "permaflash"; - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aSy" = ( -/obj/machinery/computer/arcade/orion_trail, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aSz" = ( -/obj/structure/table, -/obj/item/toy/carpplushie{ - attack_verb = list("bitten","pecked","wing slapped"); - desc = "An adorable stuffed toy that resembles a parrot."; - icon = 'icons/mob/animal.dmi'; - icon_state = "parrot_sit"; - name = "parrot plushie" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aSA" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_y = 7 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aSB" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aSC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/black, -/area/medical/medbay) -"aSD" = ( -/obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/black, -/area/medical/medbay) -"aSE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aSF" = ( -/obj/machinery/door/airlock/glass{ - name = "glass door" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aSG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - name = "Medibird" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSH" = ( -/turf/open/floor/plasteel/purple/side{ - dir = 8 - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSI" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/library) -"aSJ" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSK" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSM" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSN" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSO" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aSP" = ( -/obj/machinery/door/poddoor/shutters{ - id = "charge shutter"; - name = "recharging room shutter" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/medical/robotics) -"aSQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aSR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aSS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"aST" = ( -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/wood, -/area/library) -"aSU" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSV" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSW" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSX" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aSY" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/magnetic_controller{ - autolink = 1 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aSZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTb" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/toxins/xenobiology) -"aTc" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/toxins/xenobiology) -"aTd" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aTe" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTf" = ( -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTg" = ( -/obj/structure/easel, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTh" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/easel, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTi" = ( -/obj/item/weapon/canvas/twentythreeXtwentythree, -/obj/item/weapon/canvas/twentythreeXtwentythree, -/obj/item/weapon/canvas/twentythreeXtwentythree, -/obj/item/weapon/canvas/twentythreeXnineteen, -/obj/item/weapon/canvas/twentythreeXnineteen, -/obj/item/weapon/canvas/twentythreeXnineteen, -/obj/item/weapon/canvas/nineteenXnineteen, -/obj/item/weapon/canvas/nineteenXnineteen, -/obj/item/weapon/canvas/nineteenXnineteen, -/obj/item/weapon/canvas, -/obj/item/weapon/canvas, -/obj/item/weapon/canvas, -/obj/item/toy/crayon/rainbow, -/obj/item/toy/crayon/rainbow, -/obj/item/toy/crayon/rainbow, -/obj/structure/closet/crate/trashcart{ - desc = "A heavy, metal cart with wheels."; - name = "paint cart" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTk" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTl" = ( -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aTm" = ( -/obj/structure/closet{ - name = "Evidence Locker" - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aTn" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/warden) -"aTo" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/warden) -"aTp" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aTq" = ( -/turf/open/floor/plasteel, -/area/security/warden) -"aTr" = ( -/obj/structure/closet{ - name = "chemical locker" - }, -/obj/item/weapon/reagent_containers/glass/beaker/noreact, -/obj/item/weapon/reagent_containers/glass/bottle/cyanide, -/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aTs" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aTt" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aTu" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "brig window shutter"; - name = "brig window shutter button" - }, -/obj/machinery/button/door{ - id = "security lockdown"; - name = "brig blast door button"; - pixel_y = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aTv" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"aTw" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/mob/living/carbon/monkey{ - name = "Crimelord Pon Pon"; - unique_name = 0 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aTx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aTy" = ( -/obj/structure/bed, -/turf/open/floor/plasteel, -/area/security/brig) -"aTz" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aTA" = ( -/obj/effect/landmark{ - name = "lightsout" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aTB" = ( -/obj/item/device/radio/beacon, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aTC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aTD" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aTE" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aTF" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aTG" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"aTH" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/wood, -/area/library) -"aTI" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/wood, -/area/library) -"aTJ" = ( -/obj/structure/bed, -/obj/item/clothing/suit/apron/chef, -/obj/item/clothing/suit/apron/chef, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint2) -"aTK" = ( -/turf/closed/wall, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aTL" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aTM" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/wrench, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/wirecutters, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/twohanded/required/chainsaw, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 9 - }, -/area/hydroponics) -"aTN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTO" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTP" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTQ" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aTS" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aTT" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"aTU" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aTV" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aTW" = ( -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"aTX" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/disabler{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/gun/energy/disabler{ - pixel_x = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/warden) -"aTY" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aTZ" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-06"; - level = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUc" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUd" = ( -/obj/structure/closet/wardrobe/red, -/obj/machinery/light, -/obj/item/clothing/under/skirt/red, -/obj/item/clothing/under/plaid_skirt, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aUe" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/laserproof, -/obj/item/weapon/gun/energy/ionrifle, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/security/warden) -"aUf" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/temperature/security{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/weapon/gun/energy/temperature/security, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/warden) -"aUg" = ( -/obj/structure/table, -/obj/item/weapon/storage/lockbox/loyalty, -/obj/item/weapon/storage/box/firingpins{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/box/firingpins{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aUh" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aUi" = ( -/obj/machinery/door/airlock/glass_security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aUj" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = -28 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aUk" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aUl" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aUm" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUn" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUo" = ( -/obj/machinery/power/apc{ - name = "Medbay APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUp" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aUq" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/reagent_containers/food/condiment/rice, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/kitchen/rollingpin, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aUr" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aUs" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aUt" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/medical/robotics) -"aUu" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aUv" = ( -/obj/machinery/shieldwallgen{ - req_access = null - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUw" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUx" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUy" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUz" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUA" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUB" = ( -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aUC" = ( -/obj/machinery/magnetic_module, -/obj/effect/landmark{ - name = "blobstart" - }, -/obj/structure/target_stake, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"aUD" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aUE" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Science Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aUF" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aUG" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aUH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space) -"aUI" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUJ" = ( -/mob/living/simple_animal/mouse/white, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUK" = ( -/obj/machinery/autolathe{ - name = "maint autolathe" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUL" = ( -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/device/flashlight, -/obj/structure/closet/crate, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aUM" = ( -/obj/item/weapon/grenade/barrier, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aUN" = ( -/obj/item/weapon/grenade/barrier, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aUO" = ( -/obj/machinery/vending/security, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aUP" = ( -/obj/machinery/door/airlock/glass_security{ - name = "permabrig door"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aUQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "perma shutter"; - name = "perma brig window shutter" - }, -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/security/brig) -"aUR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 9 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUS" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUT" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUU" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUV" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUW" = ( -/obj/machinery/door/window/northright{ - name = "medbay door"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aUX" = ( -/obj/structure/flora/ausbushes/pointybush{ - icon_state = "pointybush_2"; - layer = 4.1; - name = "tree"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aUY" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aUZ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aVa" = ( -/obj/effect/landmark{ - name = "blobstart" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aVb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aVc" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/small, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVd" = ( -/obj/machinery/chem_dispenser/constructable, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVe" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVf" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVg" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/recharger, -/obj/item/weapon/gun/energy/laser/practice, -/obj/item/weapon/gun/energy/laser/practice, -/obj/item/weapon/gun/energy/laser/practice, -/obj/item/weapon/gun/energy/laser/practice, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aVh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aVj" = ( -/obj/structure/grille, -/turf/open/space, -/area/space) -"aVk" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVl" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVm" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVo" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVp" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVq" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/brute, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVr" = ( -/obj/structure/closet/wardrobe/white/medical, -/obj/item/weapon/storage/box/bodybags, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVs" = ( -/obj/structure/closet{ - name = "chem implant closet" - }, -/obj/item/weapon/reagent_containers/glass/bottle/cyanide, -/obj/item/weapon/reagent_containers/glass/bottle/initropidril, -/obj/item/weapon/reagent_containers/glass/bottle/coniine, -/obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental, -/obj/item/weapon/storage/box/chemimp, -/obj/item/weapon/storage/box/trackimp, -/obj/item/weapon/gun/syringe, -/obj/item/weapon/storage/box/syringes, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVt" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/obj/item/clothing/mask/surgical, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/obj/item/clothing/gloves/color/latex/nitrile, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVu" = ( -/obj/structure/closet/crate{ - name = "solar pack crate" - }, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/weapon/circuitboard/computer/solar_control, -/obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aVv" = ( -/obj/machinery/button/flasher{ - id = "permaflash"; - name = "perma flasher button"; - pixel_x = 0; - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aVw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "perma shutter"; - name = "perma brig window shutter" - }, -/turf/open/floor/plating, -/area/security/brig) -"aVx" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aVy" = ( -/obj/machinery/iv_drip{ - density = 0 - }, -/turf/open/floor/plasteel, -/area/medical/medbay) -"aVz" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aVA" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aVB" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable/cyan, -/turf/open/floor/plasteel, -/area/medical/robotics) -"aVC" = ( -/obj/item/weapon/coin/iron, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aVD" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"aVE" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVF" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVG" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVH" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVJ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVM" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVN" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aVO" = ( -/obj/structure/table, -/obj/item/weapon/scalpel, -/obj/item/weapon/retractor{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/hemostat, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVP" = ( -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVQ" = ( -/obj/effect/landmark/start{ - name = "Security Officer" - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVR" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVS" = ( -/obj/machinery/door/airlock/glass_security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aVT" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/warden) -"aVU" = ( -/obj/machinery/button/door{ - id = "perma shutter"; - name = "perma window button"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aVV" = ( -/turf/closed/wall, -/area/medical/virology) -"aVW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "viro shutter"; - name = "viro shutter" - }, -/turf/open/floor/plating, -/area/medical/virology) -"aVX" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay) -"aVY" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aVZ" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aWa" = ( -/obj/structure/flora/ausbushes/pointybush{ - layer = 4.1; - name = "tree"; - pixel_x = -8; - pixel_y = 11 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aWb" = ( -/turf/closed/wall/mineral/sandstone, -/area/maintenance/asmaint2) -"aWc" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aWd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aWe" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aWf" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aWg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aWh" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aWi" = ( -/obj/structure/table, -/obj/item/device/flashlight/seclite, -/obj/item/clothing/suit/armor/vest, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/restraints/legcuffs/beartrap, -/obj/item/weapon/restraints/legcuffs/beartrap, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aWj" = ( -/obj/item/weapon/circuitboard/computer/security, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aWk" = ( -/obj/structure/window/reinforced, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWl" = ( -/obj/machinery/vending/assist, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWm" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/gloves/color/fyellow, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWn" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Security Maintenance APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWo" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw{ - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aWp" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/landmark{ - name = "revenantspawn" - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aWq" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aWr" = ( -/obj/machinery/power/apc{ - name = "Brig Control APC"; - pixel_y = -24 - }, -/obj/structure/cable/cyan, -/mob/living/simple_animal/pet/dog/pug{ - desc = "It's security veteran Lucky. Super adorable."; - name = "Lucky" - }, -/turf/open/floor/plasteel/white, -/area/security/warden) -"aWs" = ( -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aWt" = ( -/obj/structure/closet/l3closet/security, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aWu" = ( -/obj/structure/closet/secure_closet/warden, -/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, -/obj/item/clothing/under/rank/head_of_security/alt{ - name = "security turtleneck" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/item/weapon/cartridge/hos, -/obj/item/weapon/cartridge/hos, -/obj/item/weapon/stamp/hos, -/obj/item/clothing/suit/armor/hos, -/obj/item/clothing/suit/armor/hos/trenchcoat, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aWv" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Brig APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aWw" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aWx" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/obj/item/clothing/mask/breath/medical, -/obj/item/weapon/tank/internals/anesthetic, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/plasteel, -/area/security/brig) -"aWy" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/monkeycubes, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aWz" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aWA" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aWB" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/blood/empty{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/weapon/reagent_containers/blood/AMinus, -/obj/item/weapon/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/medical/medbay) -"aWC" = ( -/obj/machinery/door/airlock/medical{ - name = "surgery airlock"; - req_one_access_txt = "5;45" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aWD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aWE" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aWF" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f6"; - dir = 2 - }, -/area/shuttle/arrival) -"aWG" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"aWH" = ( -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"aWI" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/arrival) -"aWJ" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/turf/closed/wall/shuttle{ - dir = 2; - icon_state = "swall_f10"; - layer = 2 - }, -/area/shuttle/arrival) -"aWK" = ( -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"aWL" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"aWM" = ( -/turf/open/floor/plasteel/asteroid, -/area/maintenance/asmaint2) -"aWN" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aWO" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aWP" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aWQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aWR" = ( -/obj/machinery/telepad, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/item/device/gps/science, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aWS" = ( -/obj/item/device/radio/beacon, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"aWT" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aWU" = ( -/obj/structure/table, -/obj/item/clothing/under/rank/security, -/obj/item/weapon/reagent_containers/spray/pepper, -/obj/item/weapon/melee/baton/cattleprod, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aWV" = ( -/obj/item/device/flashlight/seclite, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aWW" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aWX" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWY" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aWZ" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXa" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "interro shutter"; - name = "interrogation shutter" - }, -/turf/open/floor/plating, -/area/security/warden) -"aXc" = ( -/obj/machinery/door/airlock/security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aXd" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aXe" = ( -/obj/structure/closet/wardrobe/orange, -/turf/open/floor/plasteel, -/area/security/brig) -"aXf" = ( -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aXg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aXh" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aXi" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall3"; - dir = 2 - }, -/area/shuttle/arrival) -"aXj" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXk" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXl" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXm" = ( -/obj/structure/closet/wardrobe/grey, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXn" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXo" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXp" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXq" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/asmaint2) -"aXr" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aXs" = ( -/obj/structure/closet{ - name = "chemical locker" - }, -/obj/item/weapon/reagent_containers/glass/bottle/formaldehyde, -/obj/item/weapon/reagent_containers/glass/bottle/diethylamine, -/obj/item/weapon/reagent_containers/glass/bottle/curare, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"aXt" = ( -/obj/machinery/computer/telescience, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aXu" = ( -/obj/item/device/multitool, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"aXv" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aXw" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aXx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aXy" = ( -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aXz" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXA" = ( -/obj/structure/table, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXB" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXC" = ( -/obj/structure/table, -/obj/item/weapon/flamethrower, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXD" = ( -/obj/structure/table, -/obj/item/stack/sheet/mineral/sandstone{ - amount = 10 - }, -/obj/item/device/camera, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXE" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXF" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXG" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Security Maint"; - name = "navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXH" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXI" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXJ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXK" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/effect/landmark{ - name = "blobstart" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXL" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aXM" = ( -/obj/structure/closet{ - name = "truth incentive tool locker" - }, -/obj/item/weapon/gavelblock, -/obj/item/weapon/gavelhammer, -/obj/item/device/laser_pointer, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker, -/obj/item/clothing/head/rabbitears, -/obj/item/toy/carpplushie{ - attack_verb = list("bitten","pecked","wing slapped"); - desc = "An adorable stuffed toy that resembles a parrot."; - icon = 'icons/mob/animal.dmi'; - icon_state = "parrot_sit"; - name = "parrot plushie" - }, -/obj/item/weapon/bikehorn/rubberducky, -/obj/item/weapon/bikehorn/airhorn, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aXN" = ( -/obj/machinery/door/airlock/security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/security/brig) -"aXO" = ( -/obj/machinery/door/airlock/glass_virology{ - name = "virology airlock"; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aXP" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/virology) -"aXQ" = ( -/obj/structure/table, -/obj/item/weapon/scalpel, -/obj/item/weapon/retractor{ - pixel_x = 0; - pixel_y = 5 - }, -/obj/item/weapon/hemostat, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aXR" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aXS" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aXT" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark{ - name = "JoinLate" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXU" = ( -/obj/effect/landmark{ - name = "JoinLate" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aXV" = ( -/obj/item/device/flashlight/seclite{ - name = "dusty seclite"; - on = 1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/asmaint2) -"aXW" = ( -/obj/item/weapon/circuitboard/computer/card, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aXX" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aXY" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-16"; - layer = 4.1 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aXZ" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYa" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYb" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aYc" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aYd" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aYe" = ( -/obj/machinery/button/door{ - id = "interro shutter"; - name = "interrogation shutter button"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/black, -/area/security/warden) -"aYf" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/security/brig) -"aYg" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/wood, -/area/security/brig) -"aYh" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/wood, -/area/security/brig) -"aYi" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYj" = ( -/obj/machinery/smartfridge/chemistry/virology, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYk" = ( -/obj/machinery/button/door{ - id = "viro shutter"; - name = "virology shutter button"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYl" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Virology APC"; - pixel_y = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYm" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYn" = ( -/obj/machinery/door/airlock/virology{ - name = "virology airlock"; - req_access_txt = "39" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYo" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYp" = ( -/obj/structure/table, -/obj/item/weapon/cautery, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw{ - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYq" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYr" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aYs" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aYt" = ( -/obj/structure/statue/sandstone/assistant{ - anchored = 1 - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"aYu" = ( -/obj/effect/landmark{ - name = "revenantspawn" - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/maintenance/asmaint2) -"aYv" = ( -/obj/item/clothing/head/cone, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYw" = ( -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYx" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYy" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYz" = ( -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plasteel/showroomfloor, -/area/maintenance/asmaint2) -"aYA" = ( -/obj/item/stack/sheet/glass, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYB" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYC" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYD" = ( -/obj/structure/table/wood, -/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYE" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYF" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYG" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/brig) -"aYH" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start{ - name = "Detective" - }, -/turf/open/floor/wood, -/area/security/brig) -"aYI" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/turf/open/floor/wood, -/area/security/brig) -"aYJ" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/syringes, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYK" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aYL" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYM" = ( -/obj/structure/closet/secure_closet/medical2, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/apron/surgical, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYN" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"aYO" = ( -/obj/effect/landmark{ - name = "JoinLate" - }, -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aYP" = ( -/obj/item/clothing/head/cone, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYS" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=8"; - freq = 1400; - location = "Science Maint"; - name = "navigation beacon" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"aYT" = ( -/obj/structure/closet/cardboard, -/obj/item/weapon/coin/iron, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYU" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYV" = ( -/obj/structure/bed, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYW" = ( -/obj/machinery/flasher/portable, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aYX" = ( -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYY" = ( -/mob/living/carbon/monkey{ - bruteloss = 100; - fireloss = 100; - health = -100; - name = "Mr. Deempisi"; - stat = 2; - unique_name = 0 - }, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aYZ" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZa" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZc" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZd" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZe" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/obj/item/weapon/reagent_containers/spray/plantbgone, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZf" = ( -/obj/structure/closet/crate/secure/hydroponics{ - req_access_txt = "35" - }, -/obj/item/seeds/kudzu{ - potency = 0; - production = 8 - }, -/obj/item/seeds/chili/ghost, -/obj/item/seeds/berry/death, -/obj/item/device/gps, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZg" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/wood, -/area/security/brig) -"aZh" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/device/camera/detective, -/turf/open/floor/wood, -/area/security/brig) -"aZi" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/brig) -"aZj" = ( -/obj/machinery/computer/pandemic{ - layer = 2.5; - pixel_x = -4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aZk" = ( -/obj/structure/reagent_dispensers/virusfood{ - density = 0; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aZl" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = 0; - pixel_y = 8 - }, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aZm" = ( -/obj/structure/table, -/obj/item/weapon/restraints/handcuffs, -/obj/item/weapon/melee/baton/cattleprod, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aZn" = ( -/obj/machinery/button/door{ - id = "kitchen shutter"; - name = "kitchen shutter button"; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/table, -/obj/item/weapon/kitchen/knife, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"aZo" = ( -/obj/machinery/newscaster{ - pixel_x = 28 - }, -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"aZp" = ( -/turf/closed/wall/r_wall, -/area/maintenance/asmaint) -"aZq" = ( -/obj/machinery/door/airlock/medical{ - name = "medbay airlock"; - req_access_txt = "5" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"aZr" = ( -/turf/closed/wall, -/area/maintenance/asmaint) -"aZs" = ( -/obj/machinery/door/airlock/medical{ - name = "surgery airlock"; - req_one_access_txt = "5;45" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"aZt" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aZu" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "South Hallway APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aZv" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"aZw" = ( -/obj/structure/spider/stickyweb, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"aZx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall, -/area/maintenance/asmaint2) -"aZy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZz" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZA" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZB" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZC" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZD" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZE" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/eggplant, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZF" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZG" = ( -/obj/item/seeds/cherry, -/obj/item/seeds/chili/ghost, -/obj/item/seeds/carrot, -/obj/item/seeds/banana{ - potency = 80 - }, -/obj/item/seeds/harebell, -/obj/item/seeds/poppy/geranium, -/obj/item/seeds/poppy/geranium, -/obj/item/seeds/nettle, -/obj/item/seeds/nettle, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZH" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/storage/bag/plants, -/obj/item/weapon/cultivator, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZI" = ( -/obj/machinery/door/airlock/security{ - name = "central security door"; - req_one_access_txt = "1;2;4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"aZK" = ( -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"aZL" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"aZM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "medbay maintenance door"; - req_one_access_txt = "12;5;9;39;33" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"aZN" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"aZO" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f5"; - dir = 2 - }, -/area/shuttle/arrival) -"aZP" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aZQ" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 5 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"aZR" = ( -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_f9"; - dir = 2 - }, -/area/shuttle/arrival) -"aZS" = ( -/obj/item/device/soulstone/anybody/chaplain, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"aZT" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - layer = 4.1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZU" = ( -/obj/item/weapon/stock_parts/cell/high, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZV" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZW" = ( -/obj/machinery/power/emitter, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZX" = ( -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/toy/toy_xeno, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"aZY" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"aZZ" = ( -/obj/item/weapon/reagent_containers/glass/rag, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baa" = ( -/obj/machinery/light, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bab" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle, -/obj/item/weapon/reagent_containers/food/snacks/grown/chili, -/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage, -/obj/item/weapon/reagent_containers/food/snacks/grown/potato, -/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/geranium, -/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane, -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, -/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, -/obj/item/weapon/reagent_containers/food/snacks/grown/rice, -/obj/item/weapon/reagent_containers/food/snacks/grown/banana, -/turf/open/floor/plasteel/white, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bac" = ( -/obj/item/weapon/secbot_assembly, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bad" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bae" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"baf" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bag" = ( -/obj/machinery/door/airlock/medical{ - name = "medbay airlock"; - req_access_txt = "5" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bah" = ( -/obj/machinery/door/airlock/glass_command{ - name = "bridge door"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/escape) -"bai" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen shutter"; - name = "kitchen shutter" - }, -/obj/machinery/holopad, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) -"baj" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bak" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"bal" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"bam" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ban" = ( -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/weapon/coin/silver, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bao" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Medbay Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bap" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"baq" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/bodybags, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bar" = ( -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bas" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bat" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/medical/morgue) -"bau" = ( -/turf/closed/wall, -/area/medical/morgue) -"bav" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"baw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bax" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=4-CNW"; - location = "3-CSW"; - name = "bot patrol navigation beacon" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/sign/directions/engineering{ - dir = 1; - icon_state = "direction_eng"; - pixel_x = -32; - pixel_y = 40; - tag = "icon-direction_eng (NORTH)" - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = -32; - pixel_y = 32 - }, -/obj/structure/sign/directions/evac{ - dir = 1; - icon_state = "direction_evac"; - pixel_x = -32; - pixel_y = 24; - tag = "icon-direction_evac (NORTH)" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bay" = ( -/obj/structure/sign/directions/science{ - pixel_x = 32; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"baz" = ( -/obj/effect/landmark/start{ - name = "Assistant" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"baA" = ( -/obj/item/weapon/relic, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"baB" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/effect/decal/cleanable/blood/old = 1, /mob/living/simple_animal/hostile/poison/giant_spider/nurse = 1); - name = "spider spawner" - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"baC" = ( -/obj/machinery/power/smes{ - name = "maint power storage unit" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"baD" = ( -/obj/structure/grille, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"baE" = ( -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"baF" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"baG" = ( -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"baH" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"baI" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"baJ" = ( -/obj/effect/decal/cleanable/vomit/old, -/obj/item/trash/can, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baK" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baL" = ( -/obj/item/weapon/paper/crumpled, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baM" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baN" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baO" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baP" = ( -/obj/item/weapon/shovel/spade, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baQ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baR" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"baS" = ( -/turf/open/floor/plating, -/area/maintenance/asmaint) -"baT" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"baU" = ( -/obj/machinery/door/airlock/medical{ - name = "medbay airlock"; - req_access_txt = "5" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"baV" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"baW" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Morgue APC"; - pixel_x = 24 - }, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"baX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/structure/sign/directions/medical{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"baY" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"baZ" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bbb" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=3-CSW"; - location = "2-CSE"; - name = "bot patrol navigation beacon"; - pixel_x = 0; - pixel_y = 0 - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/obj/structure/sign/directions/evac{ - dir = 1; - icon_state = "direction_evac"; - pixel_x = -32; - pixel_y = -40; - tag = "icon-direction_evac (NORTH)" - }, -/obj/structure/sign/directions/security{ - dir = 8; - icon_state = "direction_sec"; - pixel_x = -32; - pixel_y = -32; - tag = "icon-direction_sec (WEST)" - }, -/obj/structure/sign/directions/engineering{ - dir = 8; - icon_state = "direction_eng"; - pixel_x = -32; - pixel_y = -24; - tag = "icon-direction_eng (WEST)" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bbc" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bbd" = ( -/obj/machinery/computer/camera_advanced/xenobio, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bbe" = ( -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"bbf" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbg" = ( -/obj/structure/grille, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbh" = ( -/obj/structure/grille, -/obj/structure/cable/cyan{ - icon_state = "0-2" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbi" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell/potato, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbj" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/gloves/color/fyellow, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbk" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbl" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbm" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbn" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbo" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbp" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/mob/living/simple_animal/mouse/white, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbq" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbr" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbs" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bbu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbv" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbw" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bbx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bby" = ( -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbz" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbA" = ( -/obj/structure/grille, -/obj/structure/cable/cyan{ - icon_state = "0-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/cable/cyan{ - icon_state = "2-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbB" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbC" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bbD" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/organ/gland/bloody = 7, /obj/item/organ/gland/bodysnatch = 4, /obj/item/organ/gland/egg = 7, /obj/item/organ/gland/emp = 3, /obj/item/organ/gland/mindshock = 5, /obj/item/organ/gland/plasma = 7, /obj/item/organ/gland/pop = 5, /obj/item/organ/gland/slime = 4, /obj/item/organ/gland/spiderman = 5, /obj/item/organ/gland/ventcrawling = 1, /obj/item/organ/body_egg/alien_embryo = 1, /obj/item/organ/hivelord_core = 2); - lootcount = 3; - name = "organ spawner" - }, -/obj/structure/closet/secure_closet{ - name = "xenobiology research materials locker"; - req_access_txt = "55" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bbE" = ( -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbF" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbG" = ( -/obj/structure/closet/crate{ - name = "solar pack crate" - }, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/weapon/circuitboard/computer/solar_control, -/obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbH" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbJ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbK" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bbM" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bbN" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bbO" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbP" = ( -/obj/machinery/door/airlock/maintenance{ - name = "medbay maintenance door"; - req_one_access_txt = "12;5;9;39;33" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bbS" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 4 - }, -/obj/structure/table, -/obj/item/weapon/storage/box/gloves, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bbT" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bbU" = ( -/obj/machinery/navbeacon{ - codes = ""; - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Arrivals Building Area"; - name = "navigation beacon" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bbV" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bbW" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bbX" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bbY" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bbZ" = ( -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/device/flashlight, -/obj/structure/closet/crate, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bca" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"bcb" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/structure/cable/cyan, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcc" = ( -/obj/structure/grille, -/obj/structure/cable/cyan, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcd" = ( -/obj/item/weapon/twohanded/required/kirbyplants, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bce" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bcf" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bcg" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bch" = ( -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bci" = ( -/obj/item/weapon/storage/box/lights/mixed, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcj" = ( -/obj/machinery/shieldwallgen{ - req_access = null - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bck" = ( -/obj/structure/closet/cardboard, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/obj/item/weapon/stock_parts/cell/high, -/obj/item/clothing/gloves/color/fyellow, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcl" = ( -/obj/machinery/light, -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcm" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcn" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bco" = ( -/obj/structure/closet/cardboard, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/weapon/coin/silver, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcp" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/obj/effect/landmark{ - name = "xeno_spawn"; - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcq" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcr" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcs" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bct" = ( -/obj/machinery/door/airlock/maintenance{ - name = "security maintenance door"; - req_one_access_txt = "12;63" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bcu" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bcv" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bcw" = ( -/obj/item/weapon/coin/iron, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "medbay maintenance door"; - req_one_access_txt = "12;5;9;39;33" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/mob/living/simple_animal/mouse/brown, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcC" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/mineral, -/area/space) -"bcD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space) -"bcE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bcF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint) -"bcG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcH" = ( -/obj/machinery/door/airlock/maintenance{ - name = "medbay maintenance door"; - req_one_access_txt = "12;5;9;39;33" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcI" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcJ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance door"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bcK" = ( -/obj/machinery/shieldwallgen{ - req_access = null - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcL" = ( -/obj/machinery/power/emitter, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcM" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/mineral, -/area/space) -"bcN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/closed/mineral, -/area/space) -"bcO" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 4 - }, -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/transport) -"bcP" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/transport) -"bcQ" = ( -/obj/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating, -/area/shuttle/transport) -"bcR" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/transport) -"bcS" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/transport) -"bcT" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bcU" = ( -/obj/machinery/door/airlock/medical{ - name = "medbay airlock"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bcV" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcX" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bcY" = ( -/obj/structure/table, -/obj/item/weapon/circuitboard/machine/autolathe, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bcZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bda" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f9" - }, -/area/shuttle/transport) -"bdb" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdc" = ( -/obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdd" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bde" = ( -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdf" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdg" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdh" = ( -/obj/machinery/door/airlock/titanium, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 12; - id = "ferry"; - name = "ferry shuttle"; - roundstart_move = "ferry_away"; - port_angle = 180; - width = 5 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 12; - id = "ferry_home"; - name = "port bay 2"; - turf_type = /turf/open/space; - width = 5 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdi" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bdj" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bdk" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"bdl" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdm" = ( -/obj/item/weapon/watertank/janitor, -/obj/structure/mirror{ - pixel_y = 28 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdn" = ( -/obj/structure/lattice, -/obj/effect/landmark{ - name = "ninjaspawn" - }, -/turf/open/space, -/area/space) -"bdo" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 4 - }, -/turf/closed/wall/shuttle{ - icon_state = "swall_s5"; - dir = 2 - }, -/area/shuttle/transport) -"bdp" = ( -/turf/open/floor/plasteel/shuttle, -/turf/closed/wall/shuttle/interior{ - icon_state = "swall_f10" - }, -/area/shuttle/transport) -"bdq" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bdr" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/transport) -"bds" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdt" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdu" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/transport) -"bdv" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdw" = ( -/obj/structure/mopbucket, -/obj/item/weapon/mop, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdx" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/masks, -/obj/item/weapon/storage/box/mousetraps{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdy" = ( -/obj/structure/table, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/turf/open/floor/plasteel/white, -/area/maintenance/asmaint) -"bdz" = ( -/obj/structure/lattice, -/obj/item/weapon/relic, -/turf/open/space, -/area/space) -"bdA" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_sw"; - name = "southwest of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"bdB" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_s"; - name = "south of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"bdC" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 22; - id = "syndicate_se"; - name = "southeast of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"bdD" = ( -/obj/machinery/monkey_recycler, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/toxins/xenobiology) -"bdE" = ( -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bdF" = ( -/obj/machinery/atmospherics/components/binary/valve{ - icon_state = "mvalve_map"; - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/asmaint2) -"bdG" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 6 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bdH" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bdI" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bdJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bdK" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/genetics_cloning) -"bdL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 101.325; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bdM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bdN" = ( -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bdO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bdP" = ( -/obj/machinery/camera/autoname{ - icon_state = "camera"; - dir = 10 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bdQ" = ( -/obj/structure/table, -/obj/item/clothing/glasses/welding{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, -/turf/open/floor/plasteel, -/area/medical/robotics) -"bdR" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/brig) -"bdS" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/medical/robotics) -"bdT" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/door/airlock/glass{ - name = "science maintenance glass door"; - req_access_txt = "0"; - req_one_access_txt = "47;12;29" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bdU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - icon_state = "vent_map"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bdV" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"bdW" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, -/obj/structure/sign/directions/engineering{ - dir = 1; - icon_state = "direction_eng"; - pixel_x = 32; - pixel_y = 40; - tag = "icon-direction_eng (NORTH)" - }, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 32 - }, -/obj/structure/sign/directions/evac{ - dir = 8; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_evac (WEST)" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bdX" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bdY" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bdZ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bea" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beb" = ( -/obj/item/device/assembly/igniter, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bec" = ( -/obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"bed" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bee" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bef" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beg" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beh" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bei" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bej" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bek" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bel" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bem" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"ben" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - layer = 4.1 - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beo" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/asteroid{ - name = "dirt" - }, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bep" = ( -/obj/machinery/door/airlock/titanium{ - name = "Arrivals Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/shuttle/arrival) -"beq" = ( -/obj/effect/landmark{ - name = "Observer-Start" - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"ber" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion = 2, /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat = 4, /obj/item/weapon/reagent_containers/glass/bottle/brainrot = 4, /obj/item/weapon/reagent_containers/glass/bottle/magnitis = 4, /obj/item/weapon/reagent_containers/glass/bottle/anxiety = 2, /obj/item/weapon/reagent_containers/glass/bottle/beesease = 8, /obj/item/weapon/reagent_containers/glass/bottle/fluspanish = 4); - lootcount = 3; - name = "viro bottle spawner" - }, -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bes" = ( -/obj/docking_port/mobile{ - dwidth = 2; - height = 7; - id = "arrival"; - name = "arrival shuttle"; - port_angle = -90; - width = 9 - }, -/obj/docking_port/stationary{ - dwidth = 2; - height = 7; - id = "arrival_home"; - name = "port bay 1"; - width = 9 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"bet" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beu" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock{ - name = "door" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bev" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bew" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bex" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bey" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"bez" = ( -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beA" = ( -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beB" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beC" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beD" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"beE" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"beF" = ( -/obj/structure/closet{ - name = "chemical locker" - }, -/obj/item/weapon/reagent_containers/glass/bottle/potass_iodide, -/obj/item/weapon/reagent_containers/glass/bottle/synaptizine, -/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"beG" = ( -/obj/item/device/assembly/voice, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"beH" = ( -/obj/structure/table, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"beI" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/warden) -"beJ" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/ballistic/shotgun/riot{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/weapon/gun/ballistic/shotgun/riot, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/warden) -"beK" = ( -/obj/structure/cable/cyan{ - icon_state = "1-4" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/warden) -"beL" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"beM" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/machinery/camera/autoname{ - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/security/warden) -"beN" = ( -/obj/structure/closet/secure_closet{ - name = "special weapons locker"; - req_access_txt = "3" - }, -/obj/effect/spawner/lootdrop/armory_contraband, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/grenade/chem_grenade/teargas = 10, /obj/item/weapon/grenade/clusterbuster/teargas = 1); - lootcount = 3; - name = "teargas clusterbuster spawner" - }, -/obj/item/weapon/gun/energy/e_gun/hos, -/obj/item/weapon/storage/box/lethalshot, -/obj/item/weapon/storage/box/lethalshot, -/turf/open/floor/plasteel, -/area/security/warden) -"beO" = ( -/obj/structure/window/reinforced, -/obj/machinery/flasher/portable, -/obj/machinery/flasher/portable, -/obj/machinery/flasher/portable, -/obj/machinery/flasher/portable, -/obj/machinery/flasher/portable, -/obj/machinery/flasher/portable, -/turf/open/floor/plasteel/black, -/area/security/warden) -"beP" = ( -/obj/structure/table, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"beQ" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"ZyZ" = ( -/obj/effect/landmark/xmastree/rdrod, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"Zza" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/space) -"Zzb" = ( -/turf/closed/wall/mineral/plastitanium, -/area/space) -"Zzc" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters{ - id = "syndieshutters"; - name = "blast shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/space) -"Zzd" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/space) -"Zze" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp{ - pixel_x = 4; - pixel_y = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzf" = ( -/obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzg" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "syndieshutters"; - name = "remote shutter control"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzh" = ( -/obj/structure/frame/computer, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzi" = ( -/obj/structure/closet/syndicate/personal, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzj" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"Zzk" = ( -/obj/machinery/door/window{ - name = "Cockpit"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzl" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"Zzm" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/weapon/crowbar/red, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzn" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/zipties{ - pixel_x = 1; - pixel_y = 2 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzo" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzp" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzq" = ( -/obj/structure/closet/syndicate/nuclear, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzr" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzs" = ( -/obj/machinery/door/poddoor{ - auto_close = 300; - id = "smindicate"; - name = "outer blast door" - }, -/obj/machinery/button/door{ - id = "smindicate"; - name = "external door control"; - pixel_x = -26; - pixel_y = 0; - req_access_txt = "150" - }, -/obj/docking_port/mobile{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate"; - name = "syndicate infiltrator"; - port_angle = 0; - roundstart_move = "syndicate_away"; - width = 18 - }, -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_nw"; - name = "northwest of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/floor/plating, -/area/space) -"Zzt" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/closed/wall/mineral/plastitanium, -/area/space) -"Zzu" = ( -/obj/machinery/door/window{ - name = "Ready Room"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzv" = ( -/obj/machinery/door/window{ - dir = 4; - name = "EVA Storage"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzw" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzx" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/space) -"Zzy" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. Evilly"; - freerange = 1; - frequency = 1213; - name = "Syndicate Intercom"; - pixel_x = -32; - subspace_transmission = 1; - syndie = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"Zzz" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzA" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzB" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzC" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzD" = ( -/obj/structure/table, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzE" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/stock_parts/cell/high, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzF" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver{ - pixel_y = 9 - }, -/obj/item/device/assembly/voice{ - pixel_y = 3 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzG" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/obj/item/device/assembly/infra, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzH" = ( -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzI" = ( -/obj/structure/table, -/obj/item/weapon/weldingtool/largetank{ - pixel_y = 3 - }, -/obj/item/device/multitool, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzJ" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzK" = ( -/obj/machinery/recharge_station, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzL" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzM" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Surgery"; - req_access_txt = "150" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzN" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzO" = ( -/obj/structure/table, -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw, -/turf/open/floor/mineral/titanium, -/area/shuttle/syndicate) -"ZzP" = ( -/obj/machinery/telecomms/allinone{ - intercept = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"ZzQ" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"ZzR" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table/wood, -/obj/item/toy/crayon/spraycan/mimecan, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"ZzS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ZzT" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hallway shutter"; - name = "hallway shutter" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ZzU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ZzV" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ZzW" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ZzX" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ZzY" = ( -/obj/machinery/door/airlock/maintenance{ - name = "science maintenance door"; - req_one_access_txt = "47;12;29" - }, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZzZ" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"ZAa" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-warningcorner" - }, -/area/maintenance/asmaint2) -"ZAb" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZAc" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/wrench/medical, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"ZAd" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZAe" = ( -/obj/machinery/droneDispenser, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZAf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"ZAg" = ( -/obj/machinery/shieldwallgen{ - req_access = null - }, -/turf/open/floor/plating, -/area/hallway/primary/aft{ - name = "\improper South Hallway" - }) -"ZAh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"ZAi" = ( -/obj/structure/cable/cyan{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"ZAj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore{ - name = "Security Maintenance" - }) -"ZAk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZAl" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAm" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating{ - icon_plating = "asteroidplating"; - icon_state = "asteroidplating" - }, -/area/maintenance/asmaint2) -"ZAn" = ( -/obj/machinery/atmospherics/components/binary/valve/open, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAo" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAp" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ZAq" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ZAr" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAs" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel, -/area/maintenance/asmaint2) -"ZAt" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAu" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAv" = ( -/obj/item/weapon/coin/gold, -/turf/open/floor/wood, -/area/maintenance/fsmaint) -"ZAw" = ( -/obj/structure/table, -/obj/machinery/computer/stockexchange, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"ZAx" = ( -/obj/structure/table, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ZAy" = ( -/obj/machinery/deepfryer, -/turf/open/floor/plasteel/white, -/area/crew_quarters/bar{ - name = "\improper Bar and Kitchen" - }) - -(1,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(2,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(3,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(4,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(5,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(6,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(7,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(8,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(9,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(10,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(11,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(12,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(13,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(14,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(15,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(16,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(17,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(18,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(19,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(20,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(21,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(22,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(23,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(24,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(25,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(26,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(27,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(28,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(29,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(30,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(31,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(32,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(33,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(34,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(35,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(36,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(37,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(38,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(39,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(40,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(41,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(42,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(43,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(44,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(45,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(46,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(47,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(48,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(49,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(50,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(51,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(52,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(53,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(54,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(55,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(56,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(57,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zza -aac -aac -aac -aac -ZzL -aac -aac -aac -Zzj -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(58,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zza -aac -aac -aac -aac -aac -aac -Zzz -aaU -Zzz -ZzA -abg -ZzO -abv -aby -abH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(59,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzb -Zzp -Zzp -Zzp -Zzp -Zzp -aac -ZzA -ZzA -ZzA -ZzA -ZzM -ZzA -abw -aby -abI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(60,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzb -aae -aae -aae -aae -aae -aac -ZzB -ZzA -ZzA -ZzA -ZzN -abp -abx -aby -abJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(61,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zza -aac -aac -aac -Zzj -aar -aaa -Zzb -aae -Zzr -aae -aae -aae -aac -ZzC -ZzA -ZzA -ZzA -abj -aac -aac -aac -aat -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(62,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzb -aad -aag -aam -aac -aar -aaa -Zzb -Zzq -aaD -aaF -aae -aae -aac -ZzD -ZzA -ZzA -ZzA -abk -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(63,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzc -aae -aae -aae -aac -aac -aac -aac -aac -aac -aac -Zzv -aaL -aac -aac -ZzJ -abd -abh -aac -aac -aac -Zzj -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(64,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzc -Zze -aae -aae -aac -Zzm -aae -aae -aae -aae -aaP -aae -aae -Zzy -aae -aae -aae -aae -aae -aaP -aby -abH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(65,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzc -Zzf -aaj -aae -Zzk -aae -aae -aae -aae -aae -Zzu -aae -aae -aae -aae -aae -aae -aae -aae -abr -aby -abI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(66,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzc -Zzg -aae -aah -aac -Zzn -aav -aav -aav -aav -aaP -aae -aae -aae -aae -aae -aae -aae -aae -aaP -aby -abJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(67,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzc -Zzh -aae -aae -aac -aac -aac -Zzo -aac -aac -aac -Zzw -aaP -aac -aac -aac -abe -abi -aac -aac -aac -Zzl -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(68,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzb -Zzh -aae -Zzi -aac -Zzl -aaa -aaa -aaa -Zzb -aae -aae -aae -aac -ZzE -aae -aae -aae -abn -ZzP -Zzb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(69,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzd -aac -aac -aac -Zzl -aar -aaa -aaa -aaa -Zzs -aae -aae -aae -aac -ZzF -aae -aae -aae -abo -aac -aac -aac -ZzQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(70,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzt -aae -aae -aae -aac -ZzG -aae -aae -aae -aae -aae -abz -aby -abH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(71,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzd -aac -aac -aac -aac -ZzH -Zzr -aae -aae -aae -aae -abA -aby -abI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(72,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzx -Zzb -ZzI -abc -aae -ZzK -ZzK -aae -abB -aby -abJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(73,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Zzd -aac -aac -aac -aac -Zzo -aac -aac -aac -Zzl -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(74,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(75,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(76,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(77,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(78,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(79,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(80,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(81,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(82,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(83,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(84,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(85,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(86,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(87,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(88,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(89,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(90,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aDo -aDZ -aDo -aDZ -aDZ -aDZ -aDZ -aDZ -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(91,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aEQ -aFG -aET -aDZ -aHS -aIN -aIN -aIN -aHS -aEQ -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(92,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaJ -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aER -aFH -aES -bah -aHT -aHT -aHT -aHT -aHT -aMh -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdA -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(93,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDZ -aES -aES -aES -aDo -aHU -aHU -aHW -aHT -aHT -aMh -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(94,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDZ -aES -aES -aGs -aDo -aHV -aHV -aJL -aHT -aHT -aMh -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(95,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aET -aES -aET -aDo -aHW -aIO -aHW -aHT -aHT -aMh -aEQ -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(96,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aDo -bah -aDZ -aDo -aHT -aHT -aHT -aHT -aHT -aHT -aHS -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(97,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aEV -aFJ -aFJ -aDZ -aHS -aHT -aHT -aHT -aHT -aHT -aNc -aDo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(98,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aEV -aFJ -aFJ -aHg -aHT -aHT -aJM -aKz -aHT -aHT -aNd -aDZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(99,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aEV -aFJ -aFJ -aDZ -aHT -aHT -aJM -aKz -aHT -aHT -aNd -aDZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(100,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aDo -aEV -aFJ -aGt -aDo -aHT -aHT -aJM -aKz -aHT -aHT -aNd -aDZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(101,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -awi -awi -awj -awi -awj -awi -awi -aaa -aaa -aaa -aaa -aDo -aEV -aFJ -aGu -aDo -aHT -aHT -aJM -aKz -aHT -aHT -aHS -aDo -aaa -aaa -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(102,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -awi -awS -axH -axH -axI -azN -awi -aaa -aaa -aaa -aDo -aDo -aDo -aDo -aDo -aEQ -aHT -aHT -aDo -aDo -aHh -aDZ -aDo -aDo -aaa -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(103,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -awj -awT -axI -axH -axI -azO -aAD -aaa -aaa -aaa -aDo -aEc -aEW -aEe -aEe -aHh -aHT -aHT -aHh -aKA -aEe -aEe -aNe -aDo -aaa -aaa -aaa -aaa -agu -agu -agu -agu -agu -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(104,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -adl -acZ -acZ -acZ -aaJ -aaJ -aaJ -aaa -aaJ -aaJ -aaJ -aaJ -acZ -acZ -acZ -acZ -adl -acZ -acZ -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -awi -awS -axH -axH -axI -azN -awi -aaa -aaa -aaa -aDo -aEd -aEe -aEe -aEe -aHh -aHT -aHT -aHh -aEe -aEe -aEe -aEe -aDo -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaB -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(105,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aay -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -awi -awi -awj -ayj -awj -awi -awi -aaa -aaa -aaa -aDo -aEe -aEe -aEe -aEQ -aDo -aHX -aHX -aDo -aEQ -aLp -aMi -aNf -aDo -aaa -aaa -aaa -aaa -aay -aaB -aay -aaB -aay -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(106,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abQ -aaa -aaa -aaa -aay -adl -acZ -acZ -acZ -acZ -acZ -acZ -acZ -adl -acZ -acZ -acZ -acZ -aay -adl -acZ -acZ -acZ -adl -acZ -acZ -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -axJ -ayk -axK -axJ -aaa -aaa -aaa -aaa -aDo -aDo -aDo -aDo -aDo -aDo -aHT -aHT -aDo -aDo -aDo -aDo -aDo -aDo -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaB -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(107,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aer -aay -aaa -aay -aaa -aay -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -axJ -ayl -ayZ -axK -aaa -aaa -aaa -aaa -aDo -aEg -aEX -aFK -aDo -aDo -aHX -aIP -aDo -aDo -aEg -aEX -aFK -aDo -aaa -aaa -aaa -aaa -aPH -aPH -aPH -aPH -aPH -aPH -aPH -aPH -aPH -aPH -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(108,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aay -aaB -aaB -aaB -aay -acO -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -adl -acZ -acZ -acZ -acZ -acZ -acZ -acZ -acZ -adl -acZ -acZ -acZ -acZ -acZ -acZ -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arb -arb -arb -arb -arb -arb -arb -arb -aaa -axJ -aym -aza -axK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aFL -aHY -aHY -aFL -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aPH -aTe -aTY -aUI -aVk -aVE -aWk -aTf -aXz -aXY -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(109,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aay -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arI -aso -arI -atG -atG -atG -aso -arb -awU -axJ -ayn -axK -axJ -axJ -axJ -axJ -aay -aay -aay -aay -aay -aay -aFL -aHZ -aHZ -aFL -aay -aay -aay -aay -aay -aay -aPH -aPH -aPH -aPH -aTe -aTZ -aUI -aVk -aVF -aWk -aWX -aXA -aWX -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(110,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -aay -aay -aay -aay -aaa -aaa -aaa -aay -aay -aay -aay -adl -acZ -acZ -acZ -adl -acZ -acZ -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arJ -aso -arJ -atG -atG -atG -aso -awn -awV -axJ -ayo -ayo -ayo -ayo -aAF -axJ -aaa -aay -aaa -aaa -aay -aaa -aFL -aIa -aIa -aFL -aaa -aay -aaa -aaa -aay -aaa -aPH -aQp -aRi -aSi -aTf -aTf -aTf -aTf -aTf -aTf -aTf -aXB -aWX -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -bcO -bdf -bcO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(111,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -aaa -adR -adR -adR -adR -adR -aaa -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arJ -aso -arJ -atG -atG -atG -aso -awn -awV -axJ -ayp -ayo -ayo -ayo -aBj -axJ -aaa -aay -aaa -aaa -aay -aaa -aFL -aEl -aEl -aFL -aaa -aay -aaa -aaa -aay -aaa -aPH -aQq -aRi -aSi -aTf -aTf -aUJ -aTf -aVG -aTf -aTf -aWX -aTf -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -bcO -bda -bdg -bdp -bcO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(112,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adR -adR -adR -adR -adR -adR -adR -adR -adR -agD -agW -agD -adR -adR -adR -adR -adR -aay -adl -acZ -acZ -acZ -acZ -acZ -acZ -aay -aaa -aaa -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -arb -arJ -asp -atf -atG -atG -atG -aso -awn -awV -axJ -ayq -ayo -azQ -ayo -aAF -axJ -aaa -aay -aaa -aAI -aFL -aFL -aFL -aIb -aIb -aFL -aFL -aFL -aFL -aFL -aFL -aFL -aPH -aQr -aRj -aPH -aTg -aUa -aUK -aPH -aPH -aWl -aWX -aXC -aWX -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -bcP -bdb -bdg -bdq -bcP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(113,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adR -aeh -aes -aeh -adR -aeY -afr -aeY -adR -agE -agX -ahA -adR -ain -aiC -ain -adR -aaa -aaa -aaa -aaB -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arJ -asq -atg -atH -aup -atH -aso -arb -awW -axK -ayr -ayo -axJ -axJ -axJ -axJ -axJ -axJ -axJ -axJ -aFM -aEl -aEl -aIc -aIQ -aIQ -aIQ -aIQ -aIQ -aIQ -aIQ -aOU -aPI -aQs -aRk -aPH -aTh -aQq -aUL -aVl -aVH -aWm -aTf -aXD -aWX -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -bcP -bdc -bdg -bdq -bcP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(114,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adR -aei -aet -aeD -adR -aeZ -afs -afI -adR -agD -agY -agD -adR -aio -aiD -aiV -adR -aay -aay -aay -aaB -aay -aay -aaB -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -arb -arb -arb -ath -atI -arb -auU -avA -arb -aaa -axK -ays -azb -azb -aAH -aBk -aBk -aCz -aDr -aEh -axJ -aFN -aGy -aHk -aId -baz -aFO -aFO -aFO -aMj -aFO -aFO -aFO -aPJ -aQt -aRl -aPH -aTi -aQq -aQq -aQq -aQq -aRi -aTf -aTf -aTf -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -bcQ -bdd -bdg -bdr -bcQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(115,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adR -aeh -aeu -aeh -adR -aeY -aft -aeY -adR -abt -adu -abt -adR -ain -aiE -ain -adR -aaa -aaa -aaa -aaB -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqF -ati -atJ -aqE -atJ -avB -aqF -aaa -axK -ayt -ayo -azR -axJ -aBl -aBY -aCA -aBk -aBk -aEY -aFO -aFO -aFO -aIe -aIS -aJO -aKB -aLq -aAI -aFL -aFL -aFL -aPH -aQu -aRm -aPH -aPH -aPH -aPH -aVm -aVm -aPH -aWY -aXE -aPH -aPH -aPH -aPH -aPH -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -bcP -bdd -bdg -bdr -bcP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(116,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adR -abt -adu -abt -adR -abt -adu -abt -adR -aaa -aev -aaa -adR -abt -adu -abt -adR -aay -aay -aay -aaB -aay -aay -aaB -aay -aay -aay -aay -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aqF -ati -atK -aqF -atK -avB -aqF -aaa -axK -ayt -ayo -azS -aAI -aAI -aAI -aAI -aAI -aAI -aAI -aFP -aFP -aFP -aIf -aIT -aJP -aKC -aLr -aAI -aNg -aOb -aBs -aPH -aQu -aRn -aSj -aTj -aUb -aUb -aUb -aVI -aSi -aTf -aTf -aPH -aYB -aYX -aYZ -aZY -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aay -bcP -bdd -bdg -bdr -bcP -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(117,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aev -aaa -aay -aaa -afu -afJ -agc -aaa -aev -aaa -ahU -afJ -aiF -aaa -aay -aaa -aaa -aaa -aaB -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aay -aay -aay -aqE -aqE -aqE -aqF -ati -atJ -aqE -atJ -avB -aqF -aqE -aqE -ayu -azc -aqE -aAI -aBm -aBZ -aCB -aDs -aEi -aEZ -aFQ -aBn -aEi -aIg -aIU -aJQ -aJQ -aLs -aAI -aNh -aOc -aBq -aPH -aQv -aRo -aSk -aTk -aUc -aSk -aQs -aVJ -aSi -aTf -aTf -aPH -aYC -aRk -aZz -aYZ -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aay -aay -bcP -bdd -bdg -bdr -bcP -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(118,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aev -aaa -aay -aaa -abs -abt -adu -abt -adu -abt -adu -abt -abs -aay -adR -adR -adR -adR -adR -adR -adR -adR -adR -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aqE -ard -arK -ard -are -arh -auq -arh -avC -arh -awX -axL -ayv -arh -arh -aAI -aBn -aCa -aCC -aBq -aEj -aFa -aFR -aBq -aEm -aIg -aIV -aJR -aJR -aLt -aJW -aJW -aJW -aJW -aPK -aPK -aPK -aPK -aPK -aPK -aPK -aVn -aVK -aPH -aWZ -aXF -aPH -aYD -aYY -aYX -aYX -aPH -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aay -bcR -bdd -bdg -bdr -bcR -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(119,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aay -aay -aaB -aay -aay -aay -aaB -abs -abs -abs -abs -abt -adu -abt -abs -abs -abs -afK -agd -afK -agd -afK -agd -aip -abt -aaa -abt -aji -ajw -aji -adR -akd -akl -akd -adR -aay -agu -agu -agu -aay -aay -aay -aay -aay -aay -aqE -are -are -are -are -arh -aur -auV -avC -arh -awY -axM -arh -arh -azT -aAI -aBo -aCb -aCb -aCb -aEk -aEi -aEm -aBq -aBq -aIg -aIW -aJS -aKD -aLu -aMk -aNi -aOd -aNm -aPL -aQw -aQw -aSl -aTl -aTl -aPK -aVo -aVL -aPH -aPH -aPH -aPH -aPH -aYX -aZA -aZZ -aPH -aPH -aPH -aPH -aPH -aPH -aaa -aay -bcP -bdd -bdg -bdr -bcP -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(120,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaB -aaB -aaB -aay -aay -aay -aaB -abR -acg -acg -acg -acg -adm -adB -adm -adS -aej -aew -aeE -aeL -afa -aeL -aeE -age -agF -age -agF -age -aiq -aiG -afJ -aiG -ajj -ajx -ajH -adR -akd -akm -akd -adR -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aqE -arf -are -are -are -arh -arh -arh -avC -arh -awY -axN -arh -avD -azU -aAI -aBp -aCb -aCD -aCb -aEl -aEl -aEl -aEl -aEl -aIg -aIX -aJT -aKE -aJV -aJW -aNj -aOe -aOe -aPM -aQx -aQx -aSm -aQx -aUd -aPK -aQu -aVM -aUb -aXa -aXG -aXZ -aPH -aYZ -aZB -baa -aPH -baJ -bbl -aYX -bcd -aPH -aay -aay -bcP -bdd -bdg -bdr -bcP -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(121,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aay -aay -abS -aay -aay -aay -aaB -abs -abs -abs -adT -abK -abK -aeF -aeM -afb -afv -abK -agf -agG -agZ -agG -agG -air -abt -aaa -abt -aji -ajy -aji -adR -akd -akn -akd -adR -aay -aay -aay -aay -aay -aay -aay -aay -aay -aay -aqE -arg -arL -arh -arh -arh -aus -arh -arh -arh -awZ -axO -arh -aTG -azV -aAI -aBq -aCb -aCD -aCb -aEl -aEl -aEl -aEl -aEl -aIg -aIY -aJU -aJU -aLv -aJW -aNk -aOe -aOe -aPL -aQw -aQw -aQx -aTm -aTm -aPK -aVp -aVN -aWn -aTk -aXH -aQs -aPH -aZa -aZA -aYX -aPH -baK -bbm -beQ -bce -aPH -aaa -aay -bcS -bcQ -bdh -bcQ -bdu -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(122,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -abS -aay -aaa -aaa -acU -acU -acU -acU -acU -acU -acU -acU -acU -acU -acU -afL -agf -abK -aha -abK -abK -ais -abs -abs -acU -acU -acU -adR -adR -abt -ako -abt -adR -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aqF -arh -arh -asr -arh -atL -aut -auW -auW -awp -axa -axP -arh -azd -azW -aAI -aBr -aCb -aCb -aCb -aBq -aCE -aFS -aCE -aHl -aIg -aIX -aJV -aKF -aJV -aJW -aNl -aOe -aNm -aPN -aPN -aQG -aSn -aQG -aPN -aPK -aPK -aPK -aPK -aPK -aXI -aVn -aYE -aYZ -aZC -aYX -aPH -aYX -bbn -bbE -aYX -aPH -aaa -aay -aay -aVm -bdi -aVm -aay -bdz -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(123,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaJ -aaa -aaB -abS -aaB -aaa -aaa -ada -adn -ado -adM -ado -adM -ado -adM -adE -afc -afw -adF -agg -agH -agf -abK -abK -ait -aeE -aiW -aiW -ajk -ajz -ajI -aJp -aaa -abS -aaa -aay -aay -aay -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aqF -arh -arM -arh -arh -atM -arh -arh -arh -awq -arh -aws -arh -aDE -aHP -aAI -aBs -aCc -aCE -aDt -aEm -aFb -aBq -aBs -aBq -aIg -aIZ -aJW -aJW -aJW -aJW -aNm -aOe -aNm -aPN -aTX -aRp -aSo -aTn -aUe -aPN -aVq -aVO -aWo -aPN -aXI -aVn -aYE -aYX -aYX -aYX -aPH -baL -bbo -aYX -bcf -aPH -aaa -aay -aaa -aVm -bdj -aVm -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(124,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaJ -aaa -abs -abT -abs -acu -acu -ada -ado -adC -adC -adU -adU -adC -adC -aeN -adM -acU -afM -acT -acT -ahb -ahB -ahB -aiu -aeE -aiX -adF -ajl -ajA -aIt -aIt -acg -akp -akM -akM -akM -akM -amA -aaa -aaa -aaa -aot -aot -aot -aot -aot -aot -aot -aot -aot -aot -auu -auX -arh -awr -axb -axQ -aqE -azf -azY -aAJ -aAJ -aAJ -aAJ -aAJ -aAJ -aAJ -aAJ -aAJ -aAJ -aIg -aIX -aJX -aKG -aLw -aMl -aNn -aOf -aQC -aPN -aQz -aRq -beJ -aTo -beM -aPN -aVr -aVP -aWp -aPN -aXJ -aVn -aPH -aPH -aPH -aPH -aPH -aPH -aYE -aYE -aPH -aPH -aPH -aPH -aPH -aVm -bdk -aVm -aPH -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(125,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aay -aaJ -aaJ -aaJ -aaJ -abs -abU -abs -acv -acv -acU -adp -adD -adN -adN -adN -adN -adC -adM -adp -afx -afN -agh -agl -agl -agl -ahV -abs -afL -aiY -aeE -ajm -abt -aaa -aay -aaa -aaa -aaa -aay -aaa -aaa -amB -akM -akM -akM -aou -aoY -apB -aqf -aqG -aqG -aqG -ass -atj -aot -auv -auv -arh -aws -axd -axR -aqE -azf -azZ -aAJ -aTM -aCd -aCF -aDu -aEn -aFc -aFT -aGz -aAJ -aIg -aIX -aJX -aKH -aKH -aMm -aLz -aOg -aQB -aPN -aQA -aRq -beI -aTp -aUg -aPN -aVs -aVQ -aWq -aPN -aXI -aYa -aYF -aZb -aSk -aSk -aZb -aQs -aRk -aRk -aRk -aRk -bct -aQq -bcT -aQq -aQq -aQq -aPH -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(126,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaN -aay -aay -aay -aaN -aaJ -aaJ -aaJ -aaJ -abs -abT -abs -acw -acP -acU -adq -adD -adD -adN -adD -adD -adC -adV -afd -afw -afO -agi -agh -agi -ahC -ahH -abs -aiH -aiZ -ajf -ajn -abt -aaa -aay -acU -acU -acU -acU -acU -ame -ame -ame -ame -ame -aot -aoZ -aoZ -aoZ -aqH -aqH -aqH -ast -atk -aot -auw -arh -avD -aws -ZAw -aqE -aqE -azg -aAa -aAJ -aBu -aCe -aCG -aDv -aDv -aDv -aFU -aGA -aHm -aIh -aJa -aJX -aKI -aLx -aMl -aNn -aOh -aRe -aPN -aUf -aRr -beK -aSr -beN -aPN -aVt -aVR -aWr -aPN -aXK -aSj -aPJ -aUb -aZD -aUb -aUb -baM -bbp -aRk -bcg -aRk -bct -aQq -aQq -aQq -aQq -aQq -aPH -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(127,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abs -abs -abs -abs -abs -abs -abs -abV -abK -acx -acQ -acU -adp -adD -adD -adN -adD -adD -adC -adM -ado -afx -afO -agj -afO -ahc -ahC -ahW -abs -aiI -abK -abs -ajo -abs -abs -abs -acU -akq -akN -aln -acU -amf -amh -amh -amh -anZ -ami -amh -apC -aqg -aqI -aqI -aqI -amh -atl -aot -arh -arh -arh -aws -axe -axS -ayw -aDE -aHP -aAJ -aBv -aCe -aCe -aDw -aDw -aDw -aCe -aGB -aAJ -aIg -aJb -aJW -aKJ -aKJ -aKJ -aNo -aOh -aOX -aPN -aPN -aRs -aSs -aRs -aPN -aPN -aPL -aVS -aPL -aPN -aPN -aPN -aPK -aPH -aPH -aPH -aPH -aQu -aRm -bbF -aPH -aPH -aPH -aPH -aVm -aVm -aVm -aPH -aPH -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(128,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abD -abX -acq -abD -abX -acH -aeK -acG -abK -acy -acR -adb -adr -adp -adD -adD -adD -adD -adC -adV -afe -acU -afP -agk -adn -ahd -ahD -ahX -abs -aiJ -abK -abt -ajp -ajB -ajJ -ajR -ake -akr -akO -aln -acU -amg -amC -ana -ana -aoa -aov -ana -apD -aqg -aqJ -aqJ -arN -amh -atl -aot -aux -arh -avE -aws -axf -aqF -arh -arh -azU -aAJ -aBw -aCe -aCH -aCH -aCH -aCH -aCH -aGB -aDy -aIg -aJc -aJY -aKK -aLy -aJY -aLz -aOi -aOY -aPO -aUh -aRt -aRw -aTs -aPL -aUM -aUN -aVT -aWs -aXb -aXL -aYb -aPK -aZc -aZE -aZF -aPH -aQu -aRm -aPH -aPH -aaa -aaa -aay -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(129,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abC -abY -abC -abC -abC -acH -aeJ -acG -ach -acz -acy -adc -adr -adE -adp -adV -adp -adV -adp -aeN -adV -acU -afQ -agl -agI -ahe -ahE -ahY -adn -aiK -abK -abt -ajq -abK -aIR -ajS -ake -akr -akr -aln -acU -amh -amD -ame -ame -ame -aot -apa -apE -aqh -aqK -aqK -aqK -aqK -atm -atN -auy -auY -avF -awt -auY -axT -auY -azh -arh -aAJ -aBx -aCe -aCH -aCH -aCH -aCH -aCH -aGB -aDy -aIi -aJd -aJX -aKL -aLz -aMl -aNp -aOj -aLz -aPP -aQD -aRu -aSt -aTt -aPL -aUN -aUN -aVT -aWt -aXb -aQx -aYc -aPK -aZd -aZF -aZF -aPH -baN -aRm -bbG -aPH -aaa -aaa -aay -aay -aay -aay -aay -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(130,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abE -abC -abZ -abC -abC -acH -aeJ -aee -aci -acA -acA -acU -acU -acU -acU -acU -acU -acU -acU -acU -acU -acU -afR -agm -agJ -ahf -abK -ahZ -adn -aiK -abK -abt -ajr -ajC -ajC -ajT -abs -aks -aks -alo -acU -amg -amD -ame -aaa -aaa -aot -apb -apF -aqi -aqL -ari -arO -asu -atn -aot -auz -auZ -auv -awu -axg -axU -ayx -azi -aAb -aAJ -aBy -aCf -aCI -aDx -aDx -aDx -aDx -aGC -aDy -aIg -aJe -aJY -aKM -aLA -aJY -aLz -aOk -aNn -aPQ -aQE -aRv -bec -aRu -aUi -aTq -aTq -aVT -aTq -aXc -aQx -aYd -aPK -aZe -aZG -aTf -aSi -baO -bbq -aVm -aVm -aVm -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(131,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -acn -abC -abC -abY -acF -abs -aeW -acG -acj -acB -acS -add -ads -adF -adO -adW -aek -aex -aeG -aeO -aff -afy -afS -afO -agK -ahg -ahF -aia -adn -aiK -abK -abt -ajs -ajC -ajC -ajU -abs -akt -akP -alp -acU -ami -amE -ame -aaa -aaa -aot -apc -aot -aot -aot -aot -aot -aot -aot -aot -aqE -aqF -avG -aqE -aqE -aqF -ayy -azj -aqF -aAJ -aAJ -aAJ -aAJ -aDy -aDy -aFd -aFV -aAJ -aAJ -aIj -aJf -aJW -aKJ -aKJ -aKJ -aNq -aOj -aLz -aPP -aQF -aRw -aSv -aTu -aPL -aUO -beO -aVT -aWu -aPO -aXM -aYe -aPK -aZf -aZH -bab -aPH -baP -bbr -bbH -aSj -bbH -aaT -bcD -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(132,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abF -abC -abC -abC -abC -acm -aiK -aca -ack -acC -acT -acT -adt -acT -adP -adP -ael -abW -abs -abK -afg -afz -afT -agn -agL -ahh -ahG -adn -abs -aiL -abK -abs -ajs -ajC -ajC -abs -abs -acU -acU -acU -acU -amj -amF -abt -abt -abs -aof -apd -apG -aqj -aqM -arj -arP -asv -ato -atO -aqm -ava -avH -awv -axh -axh -ayz -azk -axh -aAK -axh -axh -aCJ -axh -ZzV -axh -axh -aGD -axh -bax -aJg -aJX -aKN -aLB -aMl -aNn -aOh -aNn -aPO -aQG -aRx -aQG -aQG -aPO -aQG -aQG -aRx -aKJ -aKJ -aPO -aXc -aPK -aPK -aPK -aPH -aPH -aVn -aXI -aVm -aVm -aVm -aaa -amz -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(133,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abC -abC -acn -abC -abZ -abt -afq -acl -acl -acD -acU -abt -adu -abt -acU -adX -aem -aey -abs -aeP -afh -abs -afU -ago -agM -ahi -ahH -aib -abs -aiI -abK -abK -ajt -abK -abK -aeH -abK -ajB -akQ -abK -aeH -amk -aiI -abK -abK -aeH -aow -ape -apH -aqk -aqM -aqM -aqM -aqM -aqM -aqM -aqk -avb -aRP -aww -aww -aww -aww -azl -aww -aAL -aww -azs -ZzS -atT -ZzW -atT -atT -atT -atT -bav -aJh -aJX -aKO -aKO -aMn -aLz -bdR -aLz -aPR -aQH -aRy -aQH -aKH -aUj -aRy -aQH -aOi -aWv -aLw -aXN -aYf -aYG -aZg -aZI -aSj -aSj -baQ -bbs -bbI -aPH -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(134,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abE -abC -abC -abC -abC -abt -ahs -aiR -aiR -aeC -abt -ade -adv -ade -abt -adX -aem -abW -abs -aeP -afi -abs -afV -agp -agN -ahj -ahI -adn -abs -acr -adY -abM -aju -ajD -ajD -ajV -ajD -aku -ajD -ajD -alK -aml -amG -ajD -anx -aob -aox -apf -apI -aql -aqN -aqN -aqN -asw -aqN -aqN -aql -avc -avJ -atV -atV -awx -awy -awy -aAc -aAl -aAM -aAl -aCK -aCK -aCK -aFe -aFW -aFW -aFe -avJ -aJh -aJX -aKP -aLC -aMl -aNn -aNn -aNn -aNn -aOf -aOh -aNn -aOh -aNn -aOh -aNn -aVU -aWw -aXd -aKJ -aYg -aYH -aZh -aPK -bac -aQp -ZAh -ZAi -bbJ -aPH -aay -aay -aaB -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(135,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abC -abZ -aco -adn -adn -abt -afG -ahH -aja -adn -abt -adf -adw -adG -abt -adX -aem -abW -aeH -abK -acb -afA -afW -agq -agO -ahk -agk -adn -abs -abs -abs -abs -abt -abt -abt -abs -aeH -akv -abt -abt -abs -abt -abt -abs -any -aoc -aoy -apg -apH -aqj -aqO -ark -ark -asx -aqM -atP -aqj -avb -avJ -atV -axi -axl -axm -axm -aAd -aAl -aBz -aAl -aCL -aDz -aEo -aFf -aFX -aGE -aGE -avJ -aJi -aJW -aJW -aJW -aJW -aNr -aNr -aNr -aPS -aQI -aRz -aSw -aTv -aMl -aRz -aUP -aJW -aWx -aXe -aKJ -aYh -aYI -aZi -aPK -bad -bad -baR -ZAj -bbK -aPH -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(136,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abL -abC -abC -acE -abY -abt -aiA -aiT -ajc -ajh -abt -adg -adv -adg -abt -adX -aem -aez -abs -abs -abs -abs -abs -agr -acK -acK -abt -abs -abs -aaa -aay -aaa -aaa -aaa -aaB -aiM -akf -akw -aiM -aaa -aaa -aay -amH -amJ -anz -aod -anz -apg -apH -aqj -aqP -aqM -aLT -asy -aqM -atQ -aqj -avb -avK -atV -axj -axV -axm -axm -aAe -aAl -aBz -aCg -aCM -aCM -aEp -aFg -aFg -aGF -aGE -avJ -aJh -aJZ -atS -aLD -atS -aaa -aaa -aNr -aJW -aJW -aJW -aSx -aOh -aNn -aJW -aVv -aVw -aNr -aNr -aKJ -aNr -aNr -aNr -aPK -aPH -aPH -aPH -aPH -bbL -aPH -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(137,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -abs -abs -abs -abs -abs -abs -abs -acp -acc -acc -aje -acU -abt -adu -abt -acU -adX -aen -abW -abt -aeQ -afj -afj -afj -ags -aea -abP -afj -afB -aaa -aaa -aay -aay -aay -aay -aaB -aiM -aiO -ajb -aiM -aay -aay -aay -amI -anb -anA -anA -aoz -aph -apJ -aqj -aqQ -aqM -aqM -asx -aqM -atR -aqj -avb -avL -atV -axk -axW -axm -axm -axX -aAl -aBz -aAl -aCN -aDA -aEq -aFh -aFY -aFg -aHn -avJ -aJh -aKa -atS -aLE -atS -aay -aay -aay -aaa -aaa -aRA -aOg -aTw -aNn -aUP -aNn -aVw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aVm -bbK -aVm -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(138,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaR -aaT -abu -abM -aiB -acd -ajd -acI -acV -adh -adx -adH -adQ -adQ -aeo -aeA -abt -aeR -adA -afB -abN -ags -adj -aeQ -acN -aeR -aiv -aaa -aay -aaa -aaa -aaa -aaB -aiM -aiO -ajb -aiM -aaa -aaa -aay -amH -amJ -anB -aoe -anB -apg -apH -aqj -aqQ -arl -arQ -asz -aqM -aqO -aqj -avb -avJ -awx -axl -axX -axm -axm -aAf -aAl -aBz -aAl -aCO -aDB -aEr -aEr -bai -aGG -aEr -aIm -aJj -aKa -atS -aLD -atS -aaa -aaa -aay -aaa -aaa -aRA -aSy -aTx -aUk -aJW -aVw -aVw -aay -aay -aVV -aVW -aVW -aVW -aVV -aay -aay -aaa -aVm -bbK -aVm -aaa -aaa -aaB -aaa -aaa -aay -aay -aay -aay -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(139,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abt -abK -abK -ace -acr -acJ -acW -adi -ady -adI -abM -adY -abM -abM -abu -aeS -aeS -aeS -aeS -agt -aeS -aeS -ahJ -aeR -aiv -aay -aay -aay -ajg -ajg -aiM -ajg -akg -ajb -aiM -aiM -aiM -aay -amJ -amJ -amJ -aof -aof -api -apK -aqm -aqm -aqm -aqm -aqk -aqj -aqj -aqm -avb -avJ -awy -axm -axm -ayA -axm -aAg -aAl -aBz -aAl -aCP -aDC -aGa -aFi -ZAy -aGH -aHo -avJ -aJh -aKa -atS -aLF -atS -aaa -aaa -aay -aaa -aaa -aRA -aSz -aTy -aUl -aUQ -aaa -aay -aaa -aaa -aVW -aYi -aYJ -aZj -aVW -aaa -agu -aaa -aVm -bbK -aVm -aaB -aaB -aaB -aaB -aaB -aaB -aaB -aaB -aaB -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(140,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaJ -aaa -aaa -aaa -abs -abt -abs -abs -abs -acK -abt -abt -acK -abs -abs -abs -abs -abs -abs -aeR -acL -aeR -acL -agu -acL -aeR -ahK -aeS -aiw -aaT -aaT -aaT -ajv -ajE -aiN -ajW -aiN -akx -akR -alq -aiM -aay -amJ -anc -anC -aog -aoA -apj -apL -aqn -aqR -arm -arR -arm -atp -arm -arm -aRO -avM -awz -axn -axn -axn -axn -aAh -aAM -aBz -aAl -aCQ -aDC -aDC -aDC -aDC -aDC -aHp -aIn -aJh -aKa -atS -aLG -atS -aay -aay -aay -aay -aay -aJW -aJW -aJW -aJW -aJW -aaa -aay -aaa -aaa -aVW -aYj -aXf -aZk -aVV -aaa -agu -aaa -aPH -bbK -aPH -aaa -aaa -aay -aaa -aaa -aay -aay -aay -aay -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(141,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aay -aaa -aay -aaB -aay -acL -abN -adj -acL -aay -aaB -aay -aaa -aay -aaa -aeT -afk -aeT -afk -agu -aeT -afk -aeT -afk -aiv -aay -aay -aay -aiM -ajF -ajK -ajX -akc -aky -ajX -alr -alL -amm -amK -and -anD -aoh -aoB -apk -apM -aqo -apM -apM -arS -asA -atq -apM -apM -ave -avN -awx -axl -axY -axY -axY -aAi -aAl -aBz -aAl -aUq -aDC -aDC -aDC -aDC -aDC -aHq -avU -aJk -aKd -atS -aLD -atS -aaa -aaa -aay -aaa -aaa -aaa -aay -aeQ -afj -afj -afB -aay -aaa -aaa -aVV -aYk -aXf -aZl -aVV -aay -aay -aaa -aZr -bbM -aZr -aaa -aaa -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(142,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aay -abN -acf -acs -acM -acX -acX -adz -acs -acf -adj -aaa -aay -aaa -aeU -aeU -aeU -aeU -aeU -aeU -ahl -ahl -ahl -aeU -aaa -aay -aaa -ajg -ajg -ajL -ajb -akh -akh -akS -akh -akh -akh -amL -amL -anE -amL -aoC -apl -apN -aoC -aqS -arn -arT -aqS -aqS -atS -atS -avb -avO -awA -aSu -axY -aST -axY -aTI -aAl -aBz -aAl -aIK -aDC -aZn -aFj -aDC -aGI -aHr -aIo -aJl -aKe -aKe -aKe -aKe -aKe -aKe -aKj -aPc -aPc -aPc -aKj -aeT -afB -aeQ -afk -aVV -aVW -aVW -aVV -aYl -aXf -aZm -aVW -aaa -aay -aaa -bbt -bbN -bbt -aay -aay -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(143,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aay -abO -acf -acf -acN -acL -acL -adA -adJ -acf -adZ -aaa -aay -aaa -aeU -afl -afC -afX -agv -agP -aeq -ahp -ahp -aeU -aaa -aay -aaa -aaa -ajg -ajM -ajY -akh -akz -akT -als -alM -amn -amM -ane -anF -amL -aoD -apm -apO -aqp -aqS -aro -arU -asB -atr -atT -auA -avf -avN -awA -aSu -axY -aSI -axY -aTH -aAl -aBz -aAl -aAl -aDD -aAl -aFk -aGb -aGJ -aHs -azk -aJm -aKe -aKQ -aLH -aMo -aKQ -aKf -aOZ -aPT -aQJ -aRB -aKj -aeQ -afk -aeT -afB -aVW -aWy -aXf -aXO -aYm -aXf -ber -aVW -aaa -agu -aaa -bbt -bbO -bbt -aaa -aaa -agu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(144,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -abN -acf -acs -acM -acX -acX -adz -acs -acf -adj -aay -aay -aay -aeU -afm -afo -afY -afo -agP -ahm -ahp -ahp -aeU -aaa -aay -aaa -aaa -aiM -ajN -ajb -akh -akh -akU -akU -akh -akh -amN -anf -anG -aoi -aoE -apm -apO -aqq -aqS -arp -arU -asC -aqS -atT -atS -avb -avP -awA -axp -axY -axY -azm -aAl -aAl -aBA -aCh -aCT -aBz -aAl -aAl -aAl -aAl -aAl -aIp -aJn -aKe -aKR -aLI -aMp -aNs -aKf -aPa -aKX -aKX -aRC -aKj -aeT -afB -aeQ -afk -aVW -aWz -aXf -aXP -aYm -aYK -aZo -aVW -aaa -agu -aaa -bbt -bbO -bbt -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(145,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -abP -acf -act -acs -acY -adk -acs -act -acf -aea -aaa -aay -aaa -aeU -afn -afD -afZ -agw -agQ -aeI -ahL -aic -aeU -aiM -aiM -aiM -aiM -aiM -ajN -ajb -akh -akA -akV -akV -alN -akh -amO -aKw -anG -aoi -aoF -apm -apO -aoF -aqS -arq -arU -asD -arn -atT -atS -avg -avO -awA -axq -axY -axY -azn -aAl -aAN -aBB -aCi -aCi -aBz -aBz -aBz -aBz -aBz -aAM -avJ -aJh -aKe -aKS -aLJ -aMq -aNt -aKf -aPb -aKX -aMv -aRD -aKj -aKj -ZAf -ZAf -aKj -aVX -aVX -aVX -aVX -aYn -aVX -aZp -aZp -aZr -aZr -aZr -aZr -bbP -aZr -aZr -aZr -aZr -aZr -aaJ -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(146,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aay -aaa -aay -adK -aaa -aay -aaa -aeU -afo -afo -afY -afo -agP -aho -ahN -aie -aiy -aiN -aiN -aiN -aiN -aiN -ajO -ajZ -akh -akB -akW -akW -alO -akh -amP -ang -anG -aoi -aoF -apm -aLS -aqr -aqS -arr -arV -asE -arn -atT -atS -avb -avO -awA -axr -axZ -axZ -axr -aAl -aAO -aAl -aAl -aAl -aAl -aAl -aAl -aAl -aAl -aAl -aIq -aJo -aKe -aKT -aLK -aMr -aNu -aKf -aPc -aPc -aQK -aPc -aKj -aTz -aUm -aUR -aVx -aVx -aWA -aXg -aPd -aYo -aYL -aZq -aZJ -bae -bao -baS -bbu -bbQ -bch -bcq -ZAp -ZAq -aZr -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(147,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aay -aaa -aay -aaa -aaa -aay -aaa -adK -adL -adK -adK -adK -aeU -afl -afE -aga -agx -agP -ahn -ahM -aid -aix -aiO -aiO -aiO -aiO -ajG -ajP -ajb -akh -akC -akX -alt -alP -akh -amQ -anh -anH -aLd -aoG -apn -apO -aqs -aqS -ars -arU -aLX -aqS -atT -atS -avb -avO -awA -axs -axV -ayD -azo -axr -aAO -aAl -ZzR -aCk -aCk -aEv -aFl -aGc -axu -aHt -avJ -aJh -aKe -aKU -bdK -aMs -aMs -aOm -aPd -aPd -aQL -aRE -aSA -aPd -aUn -aUS -aVy -aVy -aWB -aXh -aMv -aPX -aYM -aZr -aZK -baf -bap -baT -bbv -bbR -bci -bcr -bcu -bcE -aZr -aZr -aZr -aZr -aZr -aZr -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(148,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -adK -adL -adL -adL -adL -adL -adL -adL -adL -adL -aeU -aeU -aeU -ahO -aeU -aeU -aiM -aiM -aiM -aiM -aiM -ajN -aka -akh -akA -akY -alu -alN -akh -amR -ang -anI -aoi -aoH -apn -apO -aqt -aqS -art -arW -asG -arn -atU -auB -avb -avO -awA -axt -axk -ayE -azp -aAm -aAP -aAl -aCk -aCk -aCk -aEv -aEw -aGd -axu -atS -avJ -aJh -aKe -aKV -aLM -aMt -aNv -aOn -ZAc -aPU -aQM -aRF -aSB -aTA -aUo -aKj -aPc -aPc -aKj -aKj -aWC -aKj -aKj -aZr -aZL -aZr -aZr -baU -aZr -aZr -aZr -aZr -bcv -bcF -bcU -bde -bde -bds -bdv -aZr -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(149,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aeb -aec -aeB -aol -aeV -aec -aeb -adL -agy -agR -ahq -ahP -agy -agC -aaa -aay -aay -aaa -aiM -ajN -ajb -akh -akh -akh -akh -akh -akh -amo -amo -amo -amo -aoI -apo -apP -aoI -aqT -aqT -arT -aqT -aqS -atV -atV -avh -avQ -awA -axu -axu -axu -axu -aAl -aAO -aAl -aCk -aCk -aDF -aEv -ayG -ayG -aGK -aGK -avJ -aJl -aKf -aKf -aLN -aLN -aKf -aKf -aPe -aPV -aQN -aRG -aSC -aTB -aKX -aUT -aKX -aPX -aKj -aKX -aKX -aKX -aKX -aZr -aZL -aZr -baq -baV -bbw -bbS -bbw -aZr -bch -bcF -bcU -bde -bde -bde -bdw -aZr -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(150,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aec -aep -aec -aec -aec -aep -aec -adL -agz -agS -ahr -agS -aif -agC -aay -aay -aay -aay -ajg -ajN -akb -aiN -aiN -aiN -alv -akR -amo -amS -ani -anJ -amo -aoJ -app -aoJ -aqu -aoJ -aoJ -app -asH -aon -atW -atS -avb -avR -awB -axu -aya -ayF -azq -aAl -aAO -aAl -aCk -aCU -aJE -aEv -aZP -ayG -aGL -aGL -avJ -aJh -aKg -aKW -aLO -aMu -aNw -aKj -aKj -aPW -aQO -aRH -aSD -aTC -bem -aUU -aVz -aKX -aWC -aKX -aXQ -aYp -aYN -aZr -aZL -bag -bar -baV -bat -bar -bat -aZr -bch -bcG -aZr -aZr -bdl -bde -bde -aZr -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(151,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aed -aec -adL -adL -adL -afp -afF -agb -agA -agT -auD -agT -aig -agC -aaa -aay -aay -aaa -ajg -ajQ -akc -akc -akc -akc -alw -ajb -amo -amT -anj -anK -aok -aoK -apq -apQ -aqv -aqv -aru -arX -asI -aon -atS -atS -avb -avO -awC -axu -ayb -ayG -ayG -aAn -aAQ -aAn -aCk -aCk -aCk -aEv -aEw -aGe -axu -atS -avJ -aJh -aKh -aKX -aKX -aMv -aKX -aKX -aPf -aKX -aQP -aRI -aSE -aTD -aKX -aUV -aVz -aVY -aKj -aKX -aXR -aYq -aKX -aZs -aZL -aZr -bas -baV -bbw -bar -bbw -aZr -bcw -bcG -bcV -aZr -bdl -bde -bdx -aZr -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(152,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aeB -aec -aoj -adL -arZ -ats -att -adL -agz -agS -agR -agS -aif -agC -aay -aay -aay -aay -ajg -ajg -ajg -ajg -ajg -ajg -ajN -alQ -amo -amU -ank -anL -amo -aoL -apr -apR -aqw -aqU -arv -arY -asJ -aOl -atX -aRM -avi -avO -awD -axu -ayc -ayH -azr -aAl -aAO -aAl -aCj -aCk -aCk -aEw -aFm -aGc -axu -aHt -avJ -aJh -aKi -aLZ -aKX -aMw -aNx -aOo -aKi -aPX -aQQ -aRJ -aKX -aKX -aKX -aUW -aKX -aVZ -aKj -aKX -aXS -aKX -aKX -aZr -aZL -aZr -bat -baW -bat -bar -bat -aZr -bcx -bcG -bcW -aZr -bdm -bdt -bdy -aZr -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(153,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aef -aec -adL -adL -adL -asF -afH -adL -agB -agR -aht -agR -agB -agC -aaa -aay -aay -aaa -aaa -aay -aaa -aay -aaa -aiM -alx -alR -amo -amV -anl -anM -amo -aoM -aps -aps -aps -aps -aps -aps -asK -aND -atY -aQW -avj -avS -awA -axu -ayd -axu -axu -aAl -aAR -aAl -axu -axu -axu -axu -axu -axu -axu -awA -aIr -aJh -aKj -aKi -aLP -aKi -aKj -aOp -aKj -aKj -aPc -aRK -aSF -aPc -aKj -aKj -aPc -aPc -aKj -aKj -aKj -aKj -aKj -aZr -aZM -aZr -bau -bau -bau -bbT -bar -bag -baS -bcG -bcX -aZr -aZr -aZr -aZr -aZr -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(154,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aec -aep -aec -aec -aec -aep -aec -adL -agC -agC -agC -agC -agC -agC -aiM -aiM -ajg -aaa -aaa -aay -aaa -aay -aaa -aiM -ajN -ajb -amo -amo -amo -amo -amo -aoN -apt -apS -aqx -aqV -arw -aLU -asL -aon -atS -atS -avk -aRQ -awE -axv -aye -ayI -ayI -awE -aAS -ayI -aCl -aCV -aDG -aEx -ayI -ayI -ayI -ayI -aIs -bbb -aKk -aKk -aKk -aKk -aKk -aOq -aPg -aKk -aKk -aRL -aSG -aTE -aTE -aTE -aTE -aTE -aWD -aTE -aTE -aYr -aTE -aZt -aZN -beu -bev -beB -azL -azL -azL -azL -bcy -bcH -azL -azL -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(155,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -aeg -aec -aeB -aom -aeX -aec -aeg -adL -agC -agU -ahu -ahQ -aih -agU -aiP -aiO -ajg -aiM -aiM -aiM -aiM -aiM -aiM -aiM -ajN -alS -aiN -aiN -aiN -aiN -aLL -aoO -aps -aps -aps -aps -aps -aps -asM -aon -atZ -atS -avl -avU -awF -axw -aww -aww -azs -ave -aww -aBC -ZzS -ZzT -ZzU -ZzW -atT -atT -atU -atT -bay -baX -aKl -aKZ -aKZ -aKZ -aKZ -aKZ -aKZ -aPY -aKZ -bdW -aKZ -aKZ -aKZ -aKZ -aKZ -aKZ -aWE -aKZ -aKZ -aYs -aKZ -aZu -aKZ -bet -aSK -aRR -azL -bbU -aLY -bbZ -aAx -aDi -ZAt -azL -aaJ -aaJ -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(156,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -adL -adL -adL -adL -adL -adL -adL -aaJ -agU -ahv -ahQ -aii -aiz -aiN -aEs -aIk -aiN -aiN -aiN -aiN -aiN -aiN -aIk -aly -alT -akc -amW -aky -akc -aLR -aoP -apu -apT -aqy -aqW -arx -asa -asN -atu -asi -asi -asi -avV -avo -auH -ayf -ayf -ayf -aAo -ayf -aBD -aBD -aBD -aDH -aAl -aAl -aAl -aEF -aEF -aGW -aJq -aEF -aEF -aEF -aMx -aNy -aMx -aMD -aMD -aMD -aRN -aSH -bef -ben -aTK -aTF -aTF -aTK -aTK -baj -aTF -baj -aTK -aTK -aTK -baw -baY -bbx -aWg -aWg -aAZ -bby -aDi -aBT -azL -bdn -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(157,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -adL -adL -adL -adL -adL -adL -adL -aaJ -aaJ -agU -ahw -ahR -aij -agU -aAj -ajb -ajg -aIl -aIl -aiM -aiM -aiM -aiM -akZ -akZ -alU -akZ -akZ -akZ -akZ -aon -aoQ -apv -apU -aqz -aqz -ary -apv -asO -atu -aua -auE -avm -avV -avo -auH -ayf -ayJ -azt -aAp -aAT -ayf -aCm -aCW -aDI -aBA -aFn -aAl -aGM -aHu -aGW -aJr -aKm -aGM -aEF -aMy -aMy -aMy -aPh -aPZ -aMD -bdX -aSJ -bee -bee -aTF -aUr -aUr -aWF -aXi -bep -aWI -bep -aXi -aZO -aTK -bew -baZ -aZx -bbV -aNE -aNE -aHG -bcI -ZAu -aBR -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(158,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -agV -agV -agV -agV -aiQ -aEu -agV -aiM -aiM -aiM -aay -aaa -aaa -akk -alz -alV -amp -amp -amp -anN -aon -aoR -apw -apV -aqA -aqX -arz -asb -asP -atu -aub -auF -avn -avW -awG -axx -ayf -ayK -azu -aAp -aAU -aBE -aCn -aBD -aDJ -aEy -aFn -aAl -aGN -aHv -aIu -aHv -aJq -aHu -aEF -aMz -aNz -aOr -aPi -aQa -aMx -bdY -aSJ -beh -beg -aTF -aUX -aUr -aWG -aXj -aXp -aXp -aXp -aXp -aWG -aTK -bey -bba -aBR -aBb -aRZ -aAx -aAx -aDi -aAx -aBR -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(159,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -ahx -ahS -ahz -axo -aAk -aEt -agV -aaa -aay -aaa -aay -aaa -akk -akk -akk -akk -amq -akk -akk -anO -akZ -aoS -apx -apx -apx -apx -apx -apx -apx -atv -auc -auG -avo -avX -awH -auk -ayf -ayL -azv -aAq -aAV -aBF -aCo -aBD -aBz -aEz -aFo -aAl -aGO -aHw -aIv -aJs -aKn -aHu -aEF -aMA -aNz -aOs -aPi -aQb -aMx -bdY -aSJ -beg -beg -aTF -aUr -aUr -aWI -aXk -aXT -aXT -aXT -aXp -bes -aTK -bex -beA -aBR -aBb -aRZ -bcs -bcz -bcI -ZAx -aBR -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(160,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -ahy -ahT -aik -ahT -aiS -aCS -agV -aay -agu -agu -agu -aay -akk -ala -alA -alA -alb -ala -akk -anP -amp -aoT -akk -apW -aqB -alc -arA -asc -arA -asi -aud -auH -avo -avV -asi -asi -ayf -ayM -azw -aAr -aAW -aBF -aCp -aBD -aBz -aEA -aFo -aAl -aGP -aHx -aIw -aJt -aKn -aLa -aEF -aMB -aNz -aOt -aPj -aQc -aQR -bea -aSK -bej -bej -aTF -aUr -aUr -aWI -aXl -aXU -aXU -aXU -aZv -aWG -aTK -bez -beC -azL -bbW -aBb -aAx -aAx -aDi -bcj -azL -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(161,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -ahz -ahS -ahx -ahT -aAy -aCS -agV -aaa -aaa -aaa -aay -aaa -akk -alb -ale -alW -amr -alb -anm -anm -anm -aoU -akL -apX -alA -alA -arB -arA -arA -asi -aue -auH -avp -avY -awI -axy -ayf -ayN -azx -aAp -azv -aBG -aCq -aBD -aBz -aEA -aFo -aAl -aGQ -aHy -aIx -aJt -aKn -aHu -aEF -ZyZ -aMC -aOu -aPk -aQd -aMD -bdZ -bed -bei -aUp -aTF -aUr -aWa -aWI -aXm -aXU -aXU -aYO -aXp -aWG -aTK -bez -aSJ -azL -bbX -ZAk -ZAn -bcA -bcI -bcj -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(162,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -agV -agV -avI -ayC -aCR -aFZ -agV -aaa -aaa -aaa -aay -aaa -akk -alc -alB -aKs -aKs -amX -ann -anQ -anm -aoU -akL -apY -amX -akk -akL -akL -anU -asi -auf -auH -avo -avZ -awJ -awJ -ayf -ayO -azy -aAp -aAX -ayf -aCn -aBD -aDJ -aEB -aEB -aAl -aGR -aGR -aIy -aJu -aJq -aHu -aEF -aMD -aMx -aOv -aMD -aQe -aMD -aRS -aSM -aTK -aTF -aTK -aUr -aUr -aWI -aXn -aXT -aXT -aXT -aXp -aWG -aTK -bez -aSJ -azL -bbX -ZAl -ZAn -aHG -ZAr -bcY -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(163,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -avd -ayB -aBt -aFI -agV -aaa -aaa -aaa -aay -aaa -akk -alb -alb -alA -alA -alA -alA -anR -akk -aoU -akk -apZ -aqC -anm -arC -asd -ase -asi -aug -auH -avo -awa -awd -axz -ayf -ayP -azz -aAs -aAV -aBF -aCr -aBD -aBz -aEC -aAl -aAl -aGS -aHz -aIz -aJv -aKo -aHu -aEF -aME -aNA -aOw -aPl -aNA -aQS -aRR -aSL -aTK -aUr -aUr -aUr -aUr -aWI -aXo -aXp -aXp -aXp -aXp -aWG -aTK -ZAg -beD -azL -bbX -ZAl -ZAn -aNE -ZAs -bcZ -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(164,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -avT -ahT -aCS -aHH -agV -aaa -aaa -aaa -aay -aay -akk -aJD -alA -alX -aKt -aKu -alA -alA -aoo -aoU -akk -anm -anm -anm -arC -ase -arC -asi -asi -auI -avo -avZ -awJ -awJ -ayf -ayf -ayf -aAo -ayf -aBD -aCs -aBD -aDK -aAl -aAl -aGf -aGT -aHA -aIA -bbc -aKp -aLb -aEF -aME -aNB -aOw -aNA -aNA -aQT -aRR -aSN -aTK -beo -aUX -aUr -aUX -aWG -aXp -aXp -beq -aXp -aXp -aWG -aTK -beA -beA -azL -azL -azL -azL -aFC -bcJ -azL -azL -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(165,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -agV -aiU -aiU -aiU -aiU -agV -aaa -aaa -aaa -aay -aaa -akk -ale -alC -alA -alA -alA -alA -anS -amq -aoU -alb -aqa -anv -aqY -alb -asf -asQ -asi -auh -auJ -avq -awb -awK -awK -awK -awK -azA -aAt -awK -awK -aCt -aCX -aDL -ZzX -aED -aED -aGU -aHB -aED -aJw -aKq -aGM -aEF -aMF -aNA -aOw -bdS -aQf -aLQ -aRR -aSO -aTK -aUr -aUr -aUr -aUr -aWJ -aXi -aXi -aXi -aXi -aXi -aZR -aTK -beA -beA -azL -aHR -azL -aFs -aBb -aDj -azL -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(166,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aay -aay -aay -aay -aay -aay -aay -agu -agu -agu -aaa -akk -alf -alD -alA -ald -aKv -ano -anT -anm -aoV -apy -apy -aqD -apy -arD -asg -apy -atw -aui -auK -avr -awc -awL -axA -axA -axA -axA -axA -axA -aBH -axA -aCY -avo -aEE -aHu -aHu -aGW -aHC -aAl -aAl -aDK -aAl -aLQ -aMG -aNC -aOx -aPm -aQg -aLQ -aRT -aSP -aLQ -aLQ -aLQ -aLQ -azL -azL -aWb -aWb -aWb -aWb -aWb -aWb -azL -aEG -aEG -azL -azL -azL -aBR -aBb -aDj -azL -aay -aay -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(167,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaa -aaa -aay -aaa -aaa -aaa -aay -aki -aki -aki -aki -alY -all -all -anm -anm -anm -anO -akk -akL -akL -akk -aoU -anm -akk -asi -asi -asi -avs -awd -awM -auk -asi -asi -azB -asi -asi -asi -asi -aCZ -avo -aEF -aFp -aGg -aGW -aHD -aAl -aEB -aBz -aFn -aAl -aMH -aNA -aOy -aPn -aQh -aLQ -aRU -aSQ -aNC -aNC -aUY -aNA -azL -aWb -aWb -aXq -aXq -aXq -aXq -aWM -aWM -aWM -aBb -aBb -aBb -aBe -ZAo -bcB -aDj -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(168,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aay -ail -ail -aay -ail -ail -aay -aay -aay -aay -aki -akD -alg -alE -alZ -ams -alY -anp -anU -alb -anO -ale -alA -alA -akk -aoU -ash -asR -asi -auj -asi -avt -awe -auk -auk -asi -ayQ -azC -asi -ayQ -aBI -asi -aDa -avo -aEF -aFq -aGh -aGW -aHE -aAl -aJx -aBA -aFn -aAl -aMI -aNA -aOw -aPo -aQi -aLQ -aRV -aSR -bdS -aUs -aUZ -aVA -azL -aWb -aXq -aXq -aXq -aXq -aXq -aXq -aWM -aWM -aWM -aXq -aWM -aBb -ZAo -bcB -aDj -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(169,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aay -aki -akE -alh -alF -ama -amt -amY -anq -anV -amp -aoW -apz -aqb -alA -akk -aoU -asi -asS -asi -asS -asi -asi -asi -auk -axB -asi -ayR -azD -asi -aAY -aBJ -asi -aDb -aDN -aEF -aFr -aGi -aGW -aHF -aAl -aFo -aBz -aLc -aAl -aMJ -aNA -aOz -aNC -aNC -aQU -aRW -aSR -aNA -aUt -aVa -aUt -azL -aWb -aXq -aXq -aXq -aWb -aWb -aWb -aWb -aWb -aWb -aWb -aWM -aRZ -aBR -aAx -aDi -azL -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(170,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaa -aaa -aaa -akj -akF -ali -alG -amb -amu -aki -akk -akk -anm -anm -akk -akk -akk -akk -aoU -asj -asT -atx -auk -auL -auk -asi -auk -auk -asi -asi -asi -asi -asi -azB -asi -aDc -avo -azL -azL -azL -aGX -azL -aAl -aFo -aBz -aLc -aAl -aMK -bdQ -aOw -aNA -aQj -aLQ -aRX -aSR -aNA -aUu -aVb -aVB -azL -aWK -aXq -aXq -aYt -aWb -aWK -aZw -aZw -aWK -aWK -aWb -aWM -ZAm -azL -bcz -bcI -azL -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(171,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaa -aaa -aaa -akj -akG -alj -alH -ama -amv -aki -anr -anr -anr -aop -alA -amw -alb -amq -aoU -asi -ash -asi -asi -auM -avu -asi -auk -axC -auk -auk -auk -auk -aTL -auk -auk -aDc -avo -azL -aFs -aGj -aDi -aAx -aAl -aAl -aKr -aAl -aAl -azL -azL -aOA -aPp -azL -azL -azL -aSS -azL -azL -azL -azL -azL -aWL -aWK -aXV -aYt -aWb -aWK -aWK -bak -aWK -aZw -aWb -aWM -aWM -azL -bcj -bcK -azL -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(172,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaa -aaa -aaa -aki -akH -akH -akH -amc -ams -aki -ans -anW -anX -aoq -alA -alA -alb -amq -aoU -asi -asU -aty -asi -auN -auk -aul -auk -axD -ayg -auk -azE -auk -auk -auk -auk -aDc -avo -aEG -aAx -aAx -aDk -aHG -aIB -aHG -aHG -aQV -aHG -aML -aNE -ZAa -ZAd -bdT -bdV -aRY -aYU -bek -aAx -aAx -aAx -aEG -aWK -aWK -aXq -aYu -aWb -aZw -aWK -aWb -baB -aZw -aWb -aXq -aWM -azL -bcj -bcK -azL -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(173,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aay -aaa -aaa -aay -aki -akI -alk -alI -amd -ams -aki -ant -alA -alA -alA -alA -alA -anX -anm -aoU -asi -asV -atz -aul -auk -auk -akk -akk -akk -akk -akk -akk -aoo -akk -asi -asi -aDd -aDO -aCy -aCy -aCy -aCy -aCy -aCy -aCy -aCy -bdF -aCy -aCy -aNF -ZAb -ZAe -aBR -bdU -aRZ -aAx -aDi -aAx -aAx -aVC -aEG -aWK -aWK -aXq -aYt -aWb -aZw -aZS -bal -aZw -aZw -aWb -aXq -aXq -azL -bcj -bcL -azL -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(174,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aay -aay -aay -aay -aay -aki -aki -all -all -alY -aki -aki -ala -anW -aop -alA -aoq -aqc -alb -anm -aoU -asi -asi -asi -ash -ash -asi -akk -awN -alA -ayh -ayS -awN -alA -akk -aBK -avm -aDc -avo -aEH -aFt -aFu -aFx -aFu -aZQ -aFt -aJy -bdH -bdM -aCy -azL -aOA -azL -azL -azL -azL -azL -aTT -azL -azL -azL -azL -aWL -aXq -aXq -aYt -aWb -aWK -aWK -aWK -aWK -bbe -aWb -aXq -aWK -azL -azL -aTT -azL -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(175,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaa -aaa -aay -akk -akJ -alb -alJ -alJ -amw -amq -alb -anX -aoq -alb -akk -akL -akL -akk -arE -amp -amp -atA -amp -amp -anN -amq -alA -alA -alA -ayT -alA -alA -akk -aBL -aCv -aDc -avo -aEH -aFu -aFu -aFx -aFu -aGl -aFu -aJy -bdG -bdL -aFx -aNG -aOC -aOI -aNH -aQX -aOI -aNI -aTN -aUv -aUv -azL -aWb -aWM -aXq -aXq -aXq -aWb -aWb -aWb -aWb -aWb -aWb -aWb -aWM -aWM -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(176,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aim -aay -akk -akK -alm -alm -alm -alm -akk -anr -anY -anr -anr -akk -amx -amp -amp -arF -ask -asW -atB -aum -auO -anO -akk -apz -alA -ayi -alA -azF -apz -akk -aBM -aCv -aDc -avo -aEI -aFu -aGk -aFx -aHa -aHa -aHa -aJy -bdJ -bdO -aFx -aNH -aOD -aPq -aNJ -aQY -aSa -aNI -aTN -aUw -aVc -azL -aWb -aWb -aWM -aXq -aXq -aXq -aXq -aXq -aXq -aWM -aXq -aXq -aXq -aXq -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(177,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aer -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -akk -akL -akL -akL -akL -akL -akk -akk -akk -akk -akk -akk -aqd -akk -akk -akk -aoo -asX -akk -akk -auP -anO -akk -awO -axE -alA -alA -asY -apz -akk -aBN -aCw -aDc -avq -aEJ -aFv -aFv -aGY -aHI -aIC -aJz -bbd -bdI -bdN -aFx -aNI -aOE -aPr -aPr -aQZ -aSb -aSU -aTN -aUx -aUx -azL -azL -azL -azL -azL -aWM -aWM -aWM -aXq -aWM -aWM -bak -aWM -aXq -aXq -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(178,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aay -aaa -aaa -aaa -akk -anu -alb -aor -aoX -apA -anO -akk -aqZ -arG -alA -asY -atC -akk -auQ -anO -akk -akk -akk -akk -amq -azG -akk -akk -aBO -aCv -aDc -avo -aEH -aFu -aFu -aFx -aHJ -aID -aJA -bdE -aLe -aLe -aMM -aNJ -aOF -aPs -aQk -aRa -aOI -aSV -aTO -aOI -aOI -aOI -aWc -aWN -aXr -azL -aYv -aYP -azL -azL -azL -azL -azL -azL -bca -azL -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(179,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaB -aaa -akL -akL -akL -anv -alb -aos -aos -aos -anO -akk -aqZ -aoq -alA -asZ -aqZ -akk -auR -avv -amp -amp -atA -amp -amp -azH -anN -akk -aBP -avm -aDc -avo -aEH -aFw -aFu -aFx -aHK -aIE -aJB -bdD -aLf -aLV -aFx -aNI -aOG -aPt -aQk -aQk -aOI -aOC -bel -aUy -aVd -aOI -aNI -aNI -beP -azL -aHd -aHd -azL -aZT -aAx -aDl -aDl -aAx -aAx -bck -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(180,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aay -aay -aay -aaB -aay -akL -amx -amZ -anw -amp -amp -amp -amp -aqe -akk -aqZ -aoq -alA -asZ -aqZ -akk -auS -ask -ask -ask -atB -ask -ask -azI -anO -azL -azL -azL -aDe -aDP -aCy -aFx -aFx -aFx -aHL -aIF -aJB -aJy -aJy -aJy -aFx -aNK -aOH -aPu -aQk -aRb -aOI -aSW -aTP -aUz -aVe -aOI -aNI -aWO -aXt -azL -aBb -aAx -azL -aZU -bam -baC -bbf -bby -aBb -bcl -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(181,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaB -aaa -akL -amy -akL -akk -akk -akk -akL -akL -akk -akk -akk -akk -ZAv -asZ -aqZ -akk -akk -akk -akk -akk -akk -akk -ayU -auP -anP -aAZ -aBQ -aAZ -aDf -aDQ -aCy -aZQ -aFu -aGZ -aHM -aIG -aJC -aHa -aFu -aLW -aFx -aNI -aOH -aPv -aQk -aQk -aOI -aSX -aTQ -aUA -aVf -aNJ -aWd -aWP -aXu -azL -aAx -aYQ -aEG -aAx -bam -baC -bbf -bby -aBb -bcm -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(182,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aay -aaB -aay -aay -amz -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -akL -alA -ata -alA -alA -atC -avw -alA -alA -alA -akk -ayV -azJ -aAu -aBa -aBa -aBa -aDg -aDR -aCy -aFu -aFu -aHa -aHN -aIH -aHN -aHa -aFu -bdP -aFx -aNL -aOI -aNP -aNP -aNP -aNP -aSY -aTR -aUB -aVg -aOI -aVD -aWQ -aVD -azL -aYw -aDi -azL -aAx -aBb -baD -bbg -bbz -bcb -bcc -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaB -aaa -aay -aaB -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -akL -arA -arA -arA -aun -alA -aoq -awf -awP -aoq -akk -ayW -akL -akL -azM -aBR -azL -aDk -aDS -aCy -aFy -aGl -aHa -aHN -aIH -aHN -aHa -aHa -aHa -aFx -aNM -aOJ -aPw -aQl -aQl -aNP -aSZ -aTN -aNI -aVh -aOI -aWe -aWQ -aQk -azL -aDU -aDi -azL -aAx -aBb -aBb -aAx -aDR -aAx -aBb -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(184,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aay -aaB -aaB -aaB -aaB -aaB -aaB -aaB -aaB -aay -aay -aay -aay -aay -aaa -aaa -akL -arA -atb -atD -arA -alA -aoq -aSf -awQ -aoq -akk -ayX -azK -aAv -aBb -aBS -aCx -aAx -aDR -aCy -aFu -aFu -aHb -aHN -aII -aHN -aHa -aFu -bdP -aFx -aNN -aOJ -aPx -aQm -aRc -aNP -aNI -aTN -aNI -aNI -aVD -aQk -aWR -aQk -azL -aYx -aDj -azL -aZV -aZV -baE -bbh -bbA -bcc -aAx -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(185,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaB -aaa -aay -aaa -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -akL -asl -atc -atE -arA -alA -alA -alA -alA -atC -akk -ayY -aos -aos -aBc -aAx -aBR -aBb -aDT -aCy -aFz -aGm -aHc -aHO -aII -aHN -aHa -aFu -aLW -aFx -aNO -aOK -aPy -aQn -aRd -aNP -aNI -aTN -aUC -aNI -aVD -aQk -aWS -aQk -azL -aDU -aYR -azL -aZW -aZV -baF -bbi -aDR -aAx -bcn -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(186,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaB -aay -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -akk -akk -akk -akk -amq -akk -akk -akk -akk -akk -akk -alb -auT -aAw -aBd -aBT -aBR -aBb -aDU -aCy -aCy -aCy -aCy -aFx -aJG -aFx -aFx -aFx -aFx -aFx -aNP -aNP -aNP -aNP -aNP -aOI -aTa -aTS -aUD -aVi -aOI -aWf -aWQ -aWf -azL -aDU -aYS -azL -aZV -aZV -baG -bbj -aDR -aBb -aBb -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(187,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aay -aay -aay -akk -asm -atF -aos -aos -auC -awg -aze -azX -avx -akk -akk -azL -azL -azL -azL -azL -aBb -aDU -aBb -aFA -aBb -aHd -aHN -aII -aKx -aLj -aMN -aHN -aHN -aKY -aPB -aRf -aSq -aVu -aJy -azL -aTT -azL -azL -azL -azL -aOA -azL -azL -aDU -aYT -azL -azL -azL -azL -azL -aDP -azL -azL -azL -aaJ -bcM -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(188,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -akk -asn -aos -aos -aos -avx -avx -avx -avx -alb -amw -alb -azM -aAx -aBe -aAx -azM -aAx -aDV -aEK -aXw -aGn -ZzY -ZzZ -aJH -aHI -aHI -aNQ -aKy -aOV -aPz -aJF -aKy -aKy -aKy -beb -aHe -aTU -aUE -aHG -aNE -aNE -aOB -aXv -aNE -aOB -aYU -aZx -aZX -ban -baH -aXv -bbB -aHG -bco -aZx -bcC -bcN -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(189,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -akk -akk -akk -akL -akL -akL -akk -akk -aBW -axF -avx -alb -azL -azL -azL -aBU -aCy -aCy -aCy -aEL -aFC -aCy -aCy -aHN -aHN -aHN -aJy -aMO -aOP -aMP -aII -aPC -aRg -aQo -aHN -aHN -aEG -aTV -aUF -aAZ -aAZ -aWg -aWT -aXw -aXw -aYy -aAZ -aZy -aAZ -aWg -baI -aAZ -bbC -aBb -bcp -azL -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(190,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -atd -ate -ate -ate -avy -akk -akk -akL -akL -akk -azL -aTJ -aBf -aBh -aCy -aAx -aDW -aEM -aBb -aBb -aCy -aHN -aHN -aLg -aJy -aOL -aHN -aMP -aII -aQy -aFx -aFx -aFx -aFx -aCy -aBR -aUG -aBR -azL -aBR -aBR -aXx -aXx -aBR -aBR -azL -azL -azL -aBR -bbk -aBR -azL -azL -azL -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(191,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -ate -ate -ate -ate -avz -atd -ate -axG -ate -avy -azL -aAz -aBg -aBV -aCy -aAx -aAx -aEN -aFD -aGo -aCy -aHN -aJI -aKY -aJy -aNR -aNR -aMP -aII -aQo -aSc -aQo -aWH -beE -aCy -aBR -aDR -aBR -azL -aWh -aWU -aWW -aXW -aYz -aYV -azL -aaa -aaa -aBR -aAx -aBR -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(192,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -ate -ate -auo -ate -ate -ate -ate -ate -ate -avy -azL -aAA -aBh -aIJ -aCy -aDl -aBb -aEO -aFE -aGp -aCy -aHN -aHN -aJy -aJy -aJy -aJy -aMP -aII -aQo -aFx -aJI -baA -beG -aCy -aBR -aUG -aBR -azL -aWi -aWV -aWW -aWW -aWW -aWW -azL -aay -aay -aBR -bbk -aBR -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(193,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -ate -ate -ate -aaJ -aaJ -ate -ate -aaJ -aaJ -aaN -aAB -aBi -aBX -aCy -aDm -aBb -aBb -aAx -aGq -aCy -aAx -aAx -azM -aAx -aAx -aFx -aOW -aPA -aFx -aFx -aTr -aXs -beF -aCy -aaa -aUH -aaa -azL -aWj -aWW -aXy -aXX -aYA -aYW -azL -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(194,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaN -aaN -aaN -aaN -aCy -aAx -aDX -aEP -aFF -aGr -aCy -azL -azL -azL -aBh -aON -aNU -aMP -aII -aFx -aFx -aFx -aFx -aFx -aCy -aay -aUH -aay -azL -azL -azL -azL -azL -azL -azL -azL -aay -aay -aay -aaB -aay -aay -aay -aay -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(195,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aCy -aCy -aCy -aCy -aCy -aCy -aCy -aHQ -aIL -aLh -aBh -aOM -aFx -aMQ -aNS -aFx -aaa -aaa -aay -aaa -aay -aaa -aUH -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aay -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(196,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aay -aaa -aaa -aaa -azL -aAx -aHR -aAx -aBh -aLl -aBh -aFx -aMR -aNT -aFx -aay -aay -aaB -aaB -aaB -aaB -amz -aay -aay -aay -aay -aay -aay -aay -aay -aay -aay -aay -aaB -aaB -aaB -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(197,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aay -aaa -aaa -aaa -azL -aAx -aAx -aAx -aLi -aLk -aOO -aFx -aMS -aHN -aFx -aaa -aaa -aay -aaa -aay -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(198,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aay -aay -aay -aay -aay -azL -azM -azL -azL -azL -azL -aCy -aFx -aMT -aNU -aFx -aFx -aFx -aay -aaa -aaa -aay -aaB -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(199,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aFx -aFx -aFx -aFx -aMa -aMU -aHN -aLj -aSd -aHa -aay -aaa -aaa -aaa -aaB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(200,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aFu -aFu -aFu -aLm -aMb -aMV -aNV -aHN -aSp -aHa -aay -aaa -aaa -aay -aaB -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aim -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(201,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aay -aaB -aaB -aaB -aBR -aAx -aFx -aFu -aJJ -aFu -aLn -aHc -aMW -aNW -aHN -aSe -aHa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(202,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aIM -aFu -aJJ -aFu -aMc -aMX -aNX -aOQ -aHN -aHa -aay -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(203,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aFy -aJK -aFu -aFu -aMd -aMY -aNW -aOR -aPD -aFx -aiv -aiv -aiv -aiv -aiv -aVj -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(204,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aFu -aJJ -aFu -aLn -aHc -aMZ -aNW -aHN -aPE -aFx -aay -aaa -aaa -aaa -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(205,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aay -aaB -aaB -aaB -aBR -aAx -aFx -aFu -aFu -aFu -aLm -aMb -aNa -aNY -aOS -aPF -aFx -aFx -aHa -aHa -aHa -aFx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(206,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aay -aaa -azL -aAx -aFx -aFx -aFx -aFx -aFx -aMa -aNb -aNZ -aOS -aPG -aFx -aHN -aHK -aTb -aTb -aFx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(207,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -azL -aAx -aAx -aAx -aAx -aAx -aLo -aMe -aJC -aOa -aOT -aHN -aNU -aHN -aHK -aTc -aTc -aFx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aim -aaa -aaa -aaa -azL -azL -azL -azL -azL -azL -aJy -aFx -aFx -aFx -aFx -aFx -aFx -aHN -aHM -aMe -aTW -aFx -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(209,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aFx -bbD -aHN -aSg -aTd -aFx -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(210,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aFx -aRf -aHN -aHN -aRh -aFx -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(211,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aFx -aRf -beH -beL -aSh -aFx -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(212,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aFx -aFx -aFx -aFx -aFx -aFx -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(213,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(215,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(216,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(217,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(218,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(220,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(221,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaJ -aaJ -aaJ -aaJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(222,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(223,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(224,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(225,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(226,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(227,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(228,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(229,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(230,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(231,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(232,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(233,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(234,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(235,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(236,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(237,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(238,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(239,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(240,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(241,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(242,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(243,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(244,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(245,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(246,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(247,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(248,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(249,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(250,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(251,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(252,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(253,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(254,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(255,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} diff --git a/_maps/map_files/BirdStation/job/job_changes.dm b/_maps/map_files/BirdStation/job/job_changes.dm deleted file mode 100644 index cca341cc11..0000000000 --- a/_maps/map_files/BirdStation/job/job_changes.dm +++ /dev/null @@ -1,126 +0,0 @@ - -//custom access for some jobs. pasted together from ministation. - -/datum/job/New() - ..() - supervisors = "the captain and the head of personnel" - -/datum/outfit/job/New() - box = /obj/item/weapon/storage/box/survival/radio - -/datum/job/assistant // Here so assistant appears on the top of the select job list. - -//Command - -/datum/job/captain/New() - ..() - supervisors = "Nanotrasen and Central Command" - -/datum/job/hop/New() - ..() - supervisors = "the captain and Central Command" - -/datum/job/hop/get_access() - return get_all_accesses() - -//Security - -/datum/job/hos/New() - ..() - -/datum/outfit/job/hos/New() - box = /obj/item/weapon/storage/box/security/radio - -/datum/job/officer/New() - ..() - total_positions = 4 - spawn_positions = 4 - access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) - minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) - -/datum/outfit/job/officer/New() - box = /obj/item/weapon/storage/box/security/radio - -/datum/job/detective/New() - ..() - access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) - minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) - -/datum/outfit/job/detective/New() - box = /obj/item/weapon/storage/box/security/radio - -//Medbay - -/datum/job/doctor/New() - ..() - selection_color = "#ffffff" - total_positions = 6 - spawn_positions = 6 - access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) - minimal_access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) - -//Engineering - -/datum/job/engineer/New() - ..() - total_positions = 4 - spawn_positions = 4 - access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat) - minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat) - -/datum/outfit/job/engineer/New() - box = /obj/item/weapon/storage/box/engineer/radio - -//Science - -/datum/job/scientist/New() - ..() - total_positions = 5 - spawn_positions = 5 - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage) - minimal_access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage) - -//Cargo - -/datum/job/cargo_tech/New() - ..() - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) - minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) - -/datum/job/mining/New() - ..() - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) - minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) - -/datum/outfit/job/mining/New() - box = /obj/item/weapon/storage/box/engineer/radio - -//Service - -/datum/job/bartender/New() - ..() - access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) - minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) - -/datum/job/cook/New() - ..() - access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) - minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) - -/datum/job/hydro/New() - ..() - access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) - minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) - // they get maint access because of all the hydro content in maint - -/datum/job/janitor/New() - ..() - access = list(access_janitor, access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) - minimal_access = list(access_janitor, access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) - - -//Civilian - -/datum/job/clown/New() - ..() - supervisors = "nobody but yourself" //Honk diff --git a/_maps/map_files/BirdStation/job/removed_jobs.dm b/_maps/map_files/BirdStation/job/removed_jobs.dm deleted file mode 100644 index dc81c01c7c..0000000000 --- a/_maps/map_files/BirdStation/job/removed_jobs.dm +++ /dev/null @@ -1,38 +0,0 @@ -//removed jobs. pasted together from MiniStation. - - -/datum/job/atmos/config_check() - return 0 - -/datum/job/chief_engineer/config_check() - return 0 - -/datum/job/qm/config_check() - return 0 - -/datum/job/cmo/config_check() - return 0 - -/datum/job/chemist/config_check() - return 0 - -/datum/job/geneticist/config_check() - return 0 - -/datum/job/virologist/config_check() - return 0 - -/datum/job/rd/config_check() - return 0 - -/datum/job/roboticist/config_check() - return 0 - -/datum/job/chaplain/config_check() - return 0 - -/datum/job/warden/config_check() - return 0 - -/datum/job/lawyer/config_check() - return 0 \ No newline at end of file diff --git a/_maps/map_files/TgStation/tgstation.2.1.4.dmm b/_maps/map_files/BoxStation/BoxStation.dmm similarity index 95% rename from _maps/map_files/TgStation/tgstation.2.1.4.dmm rename to _maps/map_files/BoxStation/BoxStation.dmm index 3a81b1e4eb..04f9adb562 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.4.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -154,7 +154,6 @@ /area/security/prison) "aaw" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating, @@ -212,8 +211,7 @@ /area/security/prison) "aaG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -247,13 +245,10 @@ /turf/open/floor/plasteel/barber, /area/security/prison) "aaM" = ( -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, +/obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, /obj/machinery/newscaster{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -395,9 +390,7 @@ }, /obj/structure/table/wood, /obj/item/device/radio/off, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "abl" = ( @@ -449,11 +442,8 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/port/fore) "abt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -468,11 +458,8 @@ /turf/open/floor/plating, /area/security/transfer) "abv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -485,7 +472,6 @@ }, /obj/machinery/flasher{ id = "executionflash"; - pixel_x = 0; pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -509,11 +495,8 @@ /area/security/prison) "abA" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -531,9 +514,8 @@ /area/security/prison) "abD" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -616,9 +598,7 @@ pixel_x = -3; pixel_y = 3 }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_y = 0 - }, +/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = 3; pixel_y = -3 @@ -654,16 +634,11 @@ id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "abL" = ( @@ -675,15 +650,12 @@ id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -719,8 +691,7 @@ "abR" = ( /obj/structure/closet/secure_closet/security/sec, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) @@ -734,7 +705,6 @@ department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; - pixel_x = 0; pixel_y = 30 }, /obj/item/device/radio/intercom{ @@ -763,8 +733,7 @@ pixel_y = 23 }, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, @@ -788,8 +757,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -872,8 +840,7 @@ /area/ai_monitored/security/armory) "acj" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/suit_storage_unit/hos, /turf/open/floor/carpet, @@ -895,8 +862,7 @@ cell_type = 5000; dir = 4; name = "Armory APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -920,9 +886,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "acp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "acq" = ( @@ -935,8 +899,7 @@ /area/crew_quarters/heads/hos) "acs" = ( /obj/machinery/newscaster/security_unit{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/camera{ c_tag = "Head of Security's Office"; @@ -975,8 +938,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -987,9 +949,7 @@ /turf/open/space, /area/space) "acz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -1020,7 +980,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -1035,16 +994,11 @@ id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acE" = ( @@ -1057,7 +1011,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -1080,7 +1033,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -1114,7 +1066,6 @@ /area/security/prison) "acK" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -1141,9 +1092,7 @@ pixel_x = 3; pixel_y = -3 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/bot{ dir = 2 }, @@ -1261,9 +1210,7 @@ /turf/open/floor/plating, /area/security/transfer) "ada" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/flasher{ id = "PCell 3"; pixel_x = -28 @@ -1281,16 +1228,13 @@ id = "PCell 1"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "add" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/flasher{ id = "PCell 2"; pixel_x = -28 @@ -1391,14 +1335,11 @@ /obj/machinery/button/door{ id = "armory"; name = "Armory Shutters"; - pixel_x = 0; pixel_y = -26; req_access_txt = "3" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/ai_monitored/security/armory) "adm" = ( /obj/structure/grille, @@ -1413,17 +1354,11 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "ado" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "adp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "adq" = ( @@ -1442,8 +1377,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/security/main) @@ -1467,8 +1401,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1521,8 +1454,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -1553,8 +1485,7 @@ /area/solar/port/fore) "adB" = ( /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/space, /area/space) @@ -1593,8 +1524,7 @@ pixel_x = 3 }, /obj/item/device/taperecorder{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /obj/item/device/assembly/flash/handheld, /obj/item/weapon/reagent_containers/spray/pepper, @@ -1637,9 +1567,7 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "adK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -1665,8 +1593,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Head of Security's Office APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -1716,8 +1643,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1748,8 +1674,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -1820,11 +1745,8 @@ /turf/open/floor/plating, /area/security/transfer) "aed" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/button/ignition{ id = "executionburn"; @@ -1901,15 +1823,12 @@ desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 1 }, @@ -1943,7 +1862,6 @@ desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -2003,8 +1921,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Prison Wing APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -2040,22 +1957,16 @@ /area/ai_monitored/security/armory) "aev" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "aew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "aex" = ( @@ -2072,8 +1983,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -2211,7 +2121,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ aiControlDisabled = 0; - icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; @@ -2308,11 +2217,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/prison) @@ -2320,15 +2226,13 @@ /obj/machinery/requests_console{ department = "Security"; departmentType = 5; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/camera{ c_tag = "Brig Control Room"; dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/rack, @@ -2359,8 +2263,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/window/southleft{ name = "Armory"; @@ -2536,7 +2439,6 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/mineral/titanium/blue, @@ -2576,7 +2478,6 @@ /area/security/transfer) "afv" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -2598,8 +2499,7 @@ /area/security/transfer) "afx" = ( /obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 0 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ dir = 9 @@ -2612,14 +2512,10 @@ /turf/open/floor/plasteel/black, /area/security/transfer) "afy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -2656,8 +2552,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2682,11 +2577,8 @@ /area/security/prison) "afG" = ( /obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/item/weapon/storage/box/hug, /obj/item/weapon/razor{ @@ -2819,8 +2711,7 @@ /area/security/main) "aga" = ( /obj/structure/sign/pods{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -2869,7 +2760,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Prisoner Transfer Centre"; - pixel_x = 0; pixel_y = -27 }, /turf/open/floor/plasteel/black, @@ -2884,7 +2774,6 @@ /obj/machinery/light/small, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/black, @@ -2967,8 +2856,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 2; @@ -3000,7 +2888,6 @@ /obj/machinery/recharger, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/showroomfloor, @@ -3045,9 +2932,8 @@ departmentType = 5; pixel_y = 30 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -3077,9 +2963,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "agE" = ( /obj/structure/table, @@ -3095,8 +2979,7 @@ icon_state = "1-2" }, /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/door/poddoor/preopen{ id = "Prison Gate"; @@ -3104,26 +2987,18 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "agG" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -3154,9 +3029,8 @@ /turf/open/floor/plasteel/black, /area/security/prison) "agL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -3190,8 +3064,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -3216,9 +3089,8 @@ /turf/open/floor/plating, /area/security/warden) "agS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -3436,7 +3308,6 @@ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/table/glass, @@ -3453,8 +3324,7 @@ "ahu" = ( /obj/item/weapon/storage/box/bodybags, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/item/weapon/reagent_containers/syringe{ name = "steel point" @@ -3462,7 +3332,6 @@ /obj/item/weapon/reagent_containers/glass/bottle/charcoal, /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table/glass, @@ -3474,8 +3343,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Brig Control APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -3487,8 +3355,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -3496,8 +3363,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -3515,8 +3381,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, @@ -3527,11 +3392,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -3570,8 +3432,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel, @@ -3617,8 +3478,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -3635,8 +3495,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -3667,8 +3526,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -3747,8 +3605,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Security Office APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -3826,9 +3683,7 @@ "ahV" = ( /obj/structure/table, /obj/item/weapon/folder/red, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /turf/open/floor/plasteel/black, /area/security/prison) "ahW" = ( @@ -3843,8 +3698,7 @@ /obj/structure/table, /obj/item/device/radio/intercom{ dir = 4; - name = "Station Intercom (General)"; - pixel_x = 0 + name = "Station Intercom (General)" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -3902,8 +3756,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -3936,8 +3789,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -4076,8 +3928,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side, /area/security/main) @@ -4112,8 +3963,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -4135,14 +3985,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/red/corner{ dir = 1 @@ -4154,11 +4002,8 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aiB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -4190,11 +4035,7 @@ }, /area/security/brig) "aiH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/red/side{ dir = 1 }, @@ -4342,18 +4183,14 @@ /turf/closed/wall/r_wall, /area/security/brig) "aiY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/courtroom) "aiZ" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4366,8 +4203,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4395,9 +4231,7 @@ }, /area/security/brig) "aje" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/firealarm{ dir = 2; pixel_y = 24 @@ -4456,11 +4290,7 @@ /obj/machinery/camera{ c_tag = "Courtroom North" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/security/courtroom) "ajk" = ( @@ -4515,8 +4345,7 @@ /area/security/processing) "ajt" = ( /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4540,7 +4369,6 @@ /area/security/processing) "ajv" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4716,8 +4544,7 @@ broadcasting = 0; dir = 8; listening = 1; - name = "Station Intercom (Court)"; - pixel_x = 0 + name = "Station Intercom (Court)" }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -4813,7 +4640,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -4826,7 +4652,6 @@ /area/security/processing) "akb" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/corner{ @@ -5097,8 +4922,7 @@ "akC" = ( /obj/machinery/computer/shuttle/labor, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -31; - pixel_y = 0 + pixel_x = -31 }, /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) @@ -5124,16 +4948,14 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/security/processing) "akH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/processing) @@ -5403,11 +5225,8 @@ }, /area/security/courtroom) "alf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) @@ -5458,7 +5277,6 @@ /obj/machinery/button/flasher{ id = "gulagshuttleflasher"; name = "Flash Control"; - pixel_x = 0; pixel_y = -26; req_access_txt = "1" }, @@ -5490,7 +5308,6 @@ "alr" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5521,11 +5338,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/item/device/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; @@ -5538,11 +5352,8 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "alw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 4 @@ -5553,11 +5364,8 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "aly" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/item/device/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; @@ -5622,11 +5430,8 @@ /turf/open/floor/plating, /area/security/courtroom) "alE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/flasher{ id = "Cell 4"; @@ -5686,8 +5491,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Courtroom APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -5744,8 +5548,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) @@ -5800,11 +5603,8 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "amb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/processing) @@ -5980,11 +5780,8 @@ /turf/open/floor/plasteel/black, /area/security/courtroom) "amu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/security/courtroom) @@ -6049,7 +5846,6 @@ /area/maintenance/port/fore) "amD" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -6086,8 +5882,7 @@ }, /obj/structure/noticeboard{ dir = 8; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/trash/plate, /turf/open/floor/plating, @@ -6098,16 +5893,14 @@ "amJ" = ( /obj/machinery/mineral/labor_claim_console{ machinedir = 1; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "amK" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 + name = "KEEP CLEAR: DOCKING AREA" }, /turf/closed/wall, /area/security/processing) @@ -6380,7 +6173,6 @@ /area/maintenance/solars/port/fore) "anj" = ( /obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, @@ -6393,7 +6185,6 @@ /area/maintenance/port/fore) "anl" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -6442,9 +6233,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "ans" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -6572,7 +6362,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -6581,14 +6370,12 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /turf/closed/wall/r_wall, /area/maintenance/solars/port/fore) "anI" = ( /obj/machinery/door/airlock/engineering{ - icon_state = "door_closed"; locked = 0; name = "Port Bow Solar Access"; req_access_txt = "10" @@ -6601,10 +6388,7 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "anJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plating, /area/maintenance/port/fore) "anK" = ( @@ -6675,11 +6459,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anS" = ( @@ -6687,10 +6467,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "anT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anU" = ( @@ -6705,11 +6482,8 @@ /turf/open/floor/plasteel/black, /area/security/courtroom) "anW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/security/courtroom) @@ -6727,7 +6501,6 @@ "anY" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/black, @@ -6752,8 +6525,7 @@ /area/maintenance/fore/secondary) "aob" = ( /obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 + pixel_x = -20 }, /obj/item/device/radio/intercom{ pixel_y = 25 @@ -6814,7 +6586,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/item/device/multitool, @@ -6831,7 +6602,6 @@ /area/maintenance/port/fore) "aok" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -6874,18 +6644,14 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/security/processing) "aor" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -6900,8 +6666,7 @@ /area/security/processing) "aot" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 2; @@ -7043,7 +6808,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Fitness Room APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -7180,8 +6944,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/fore) @@ -7495,8 +7258,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/fore) @@ -7504,7 +7266,6 @@ /obj/structure/chair/comfy/beige{ desc = "It looks comfy and extra tactical.\nAlt-click to rotate it clockwise."; dir = 1; - icon_state = "comfychair"; name = "tactical armchair" }, /turf/open/floor/mineral/plastitanium, @@ -7533,10 +7294,8 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "apZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/wood, /area/lawoffice) @@ -7563,7 +7322,6 @@ "aqd" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/red/corner{ @@ -7696,13 +7454,11 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -7785,7 +7541,6 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ - icon_state = "door_closed"; locked = 0; name = "Starboard Bow Solar Access"; req_access_txt = "10" @@ -7796,8 +7551,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /turf/closed/wall/r_wall, /area/maintenance/solars/starboard/fore) @@ -7873,14 +7627,12 @@ /area/maintenance/port/fore) "aqL" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/port/fore) "aqM" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/meter, @@ -7991,13 +7743,11 @@ /area/maintenance/fore) "ara" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/requests_console{ department = "Law office"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/closet/lawcloset, /turf/open/floor/wood, @@ -8010,9 +7760,7 @@ /turf/open/floor/wood, /area/lawoffice) "arc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "ard" = ( @@ -8074,8 +7822,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ dir = 9 @@ -8108,7 +7855,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/window/reinforced/fulltile, @@ -8209,23 +7955,19 @@ /turf/open/floor/plating, /area/shuttle/auxillary_base) "arE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, /area/construction/mining/aux_base) "arF" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 5 }, /turf/closed/wall, /area/maintenance/port/fore) "arG" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 4 }, /turf/closed/wall, @@ -8237,7 +7979,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -8249,7 +7990,6 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -8266,14 +8006,12 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/port/fore) "arK" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating{ @@ -8287,7 +8025,6 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -8323,16 +8060,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/department/eva) "arR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/table/wood, /obj/item/device/flashlight/lamp, /turf/open/floor/plating, @@ -8388,9 +8121,8 @@ dir = 8 }, /obj/effect/landmark/start/lawyer, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/lawoffice) @@ -8398,8 +8130,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -8511,17 +8242,11 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "asn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating, /area/security/vacantoffice/b) "aso" = ( @@ -8589,16 +8314,11 @@ id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "asv" = ( @@ -8698,16 +8418,11 @@ id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "asM" = ( @@ -8824,8 +8539,7 @@ /area/lawoffice) "atd" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -8842,11 +8556,8 @@ /obj/structure/chair/stool{ pixel_y = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -8900,9 +8611,7 @@ width = 9 }, /obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base{ - pixel_y = 0 - }, +/obj/machinery/computer/auxillary_base, /turf/closed/wall, /area/shuttle/auxillary_base) "atm" = ( @@ -8990,7 +8699,6 @@ /obj/machinery/button/door{ id = "maint3"; name = "Blast Door Control C"; - pixel_x = 0; pixel_y = 24; req_access_txt = "0" }, @@ -9138,15 +8846,11 @@ "atV" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 8 @@ -9194,8 +8898,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9227,16 +8930,13 @@ dir = 1; name = "Prison Monitor"; network = list("Prison"); - pixel_x = 0; pixel_y = -27 }, /turf/open/floor/wood, /area/lawoffice) "auh" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /obj/item/weapon/cartridge/lawyer, /turf/open/floor/wood, /area/lawoffice) @@ -9254,8 +8954,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9338,8 +9037,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -9363,9 +9061,8 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/crew_quarters/fitness) @@ -9380,13 +9077,11 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -9416,10 +9111,8 @@ /obj/machinery/airalarm{ pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -9509,8 +9202,7 @@ /area/maintenance/department/electrical) "auM" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/cable{ d1 = 1; @@ -9535,7 +9227,6 @@ /area/construction/mining/aux_base) "auR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -9648,7 +9339,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/effect/spawner/lootdrop/maintenance, @@ -9676,8 +9366,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Vacant Office B APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plating, /area/security/vacantoffice/b) @@ -9710,8 +9399,7 @@ /area/hallway/primary/fore) "avk" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -9749,8 +9437,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /turf/closed/wall, /area/maintenance/department/electrical) @@ -9895,8 +9582,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9934,10 +9620,8 @@ /turf/open/floor/plating, /area/maintenance/department/electrical) "avM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/department/electrical) @@ -9972,11 +9656,9 @@ "avQ" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/camera{ @@ -10314,8 +9996,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10499,14 +10180,12 @@ "awU" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/wallframe/camera, /obj/item/wallframe/camera, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/item/device/assembly/prox_sensor{ @@ -10551,9 +10230,8 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/department/electrical) @@ -10561,8 +10239,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -10603,8 +10280,7 @@ /area/maintenance/arrivals/north) "axe" = ( /obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -10618,11 +10294,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "axh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light{ dir = 1 @@ -10704,8 +10377,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -10730,8 +10402,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -10766,8 +10437,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -10803,8 +10473,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -10888,8 +10557,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -10959,10 +10627,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/crew_quarters/fitness) @@ -10970,8 +10636,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -11005,11 +10670,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/fitness) "axX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -11029,9 +10691,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness) "aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -11150,14 +10811,12 @@ /area/construction/mining/aux_base) "ayr" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -11297,8 +10956,7 @@ icon_state = "1-2" }, /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -11356,7 +11014,6 @@ /obj/machinery/power/apc{ dir = 1; name = "EVA Storage APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -11407,11 +11064,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -11426,13 +11080,11 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -11448,22 +11100,16 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "ayY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/blue/corner{ dir = 8 }, /area/hallway/primary/fore) "ayZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/blue/corner, /area/hallway/primary/fore) @@ -11491,8 +11137,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ dir = 6 @@ -11579,9 +11224,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness) "azo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -11702,8 +11346,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -11739,7 +11382,6 @@ /area/gateway) "azK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -11786,8 +11428,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -11847,8 +11488,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -11861,10 +11501,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "azV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/dorms) @@ -11879,8 +11517,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) @@ -11926,8 +11563,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -11972,8 +11608,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -12005,8 +11640,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12021,8 +11655,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -12147,8 +11780,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall, /area/maintenance/department/electrical) @@ -12165,8 +11797,7 @@ "aAC" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 + name = "KEEP CLEAR: DOCKING AREA" }, /turf/closed/wall/r_wall, /area/hallway/secondary/entry) @@ -12177,7 +11808,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/window/reinforced/fulltile, @@ -12258,8 +11888,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -12297,8 +11926,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -12351,7 +11979,6 @@ /area/ai_monitored/storage/eva) "aAX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12369,8 +11996,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) @@ -12450,7 +12076,6 @@ layer = 2.9 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/tank/jetpack/carbondioxide, @@ -12524,9 +12149,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "aBr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -12550,8 +12174,7 @@ /area/ai_monitored/storage/eva) "aBu" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/blue/corner, /area/hallway/primary/fore) @@ -12632,15 +12255,13 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aBG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hydroponics/garden) "aBH" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -12667,8 +12288,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -12684,8 +12304,7 @@ "aBO" = ( /obj/machinery/requests_console{ department = "EVA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -12701,8 +12320,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -12732,7 +12350,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Vault APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -12785,11 +12402,8 @@ }, /area/gateway) "aCa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -12825,13 +12439,11 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -12841,8 +12453,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) @@ -12858,8 +12469,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -12899,7 +12509,6 @@ /area/maintenance/starboard/fore) "aCm" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -12936,8 +12545,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/arrival{ dir = 4 @@ -12949,8 +12557,7 @@ department = "Theatre"; departmentType = 0; name = "theatre RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/item/weapon/reagent_containers/food/snacks/baguette, /obj/item/toy/dummy, @@ -13198,17 +12805,12 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "aCX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aCY" = ( /obj/machinery/computer/security, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -13221,11 +12823,8 @@ }, /area/security/checkpoint/checkpoint2) "aDa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics/garden) @@ -13260,8 +12859,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -13295,9 +12893,7 @@ /area/gateway) "aDj" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/gateway) "aDk" = ( @@ -13374,11 +12970,8 @@ /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) "aDs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 1 @@ -13401,9 +12994,8 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "aDv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -13433,11 +13025,8 @@ /area/gateway) "aDy" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/gateway) @@ -13456,8 +13045,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -13480,8 +13068,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -13556,13 +13143,11 @@ /area/crew_quarters/dorms) "aDL" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 }, /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -13588,17 +13173,11 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "aDO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "aDP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "aDQ" = ( @@ -13652,10 +13231,8 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "aDU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable{ d1 = 4; @@ -13685,11 +13262,8 @@ "aDY" = ( /obj/structure/chair/stool, /obj/effect/landmark/start/mime, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white/side{ dir = 4 @@ -13797,7 +13371,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Chapel APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -13908,15 +13481,13 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aEx" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_r" +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/arrival) "aEy" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ @@ -13928,8 +13499,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Entry Hall APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable, /turf/open/floor/plasteel/arrival{ @@ -14028,9 +13598,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "aEJ" = ( @@ -14039,11 +13607,8 @@ }, /area/security/checkpoint/checkpoint2) "aEK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) @@ -14257,8 +13822,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Dormitory Bathrooms APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -14337,8 +13901,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14353,8 +13916,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14394,7 +13956,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Chapel Office APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable, @@ -14412,8 +13973,7 @@ icon_state = "airlock_control_standby"; id = "chapelgun"; name = "Mass Driver Controller"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -14440,8 +14000,7 @@ /area/shuttle/arrival) "aFF" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/arrival) @@ -14463,7 +14022,6 @@ }, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light_switch{ @@ -14478,10 +14036,7 @@ }, /area/security/checkpoint/checkpoint2) "aFJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -14532,7 +14087,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel, @@ -14557,7 +14111,6 @@ pixel_y = 16 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -14585,11 +14138,8 @@ /area/storage/primary) "aFU" = ( /obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/storage/primary) @@ -14619,9 +14169,8 @@ /turf/open/floor/plasteel, /area/gateway) "aFY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/storage/primary) @@ -14709,7 +14258,6 @@ /area/ai_monitored/storage/eva) "aGk" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -14757,7 +14305,6 @@ amount = 50 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -14785,9 +14332,8 @@ "aGr" = ( /obj/structure/chair/stool, /obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/redblue, /area/crew_quarters/theatre) @@ -14831,8 +14377,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plating, @@ -14867,8 +14412,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -14997,8 +14541,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15099,8 +14642,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15252,9 +14794,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/gateway) @@ -15267,8 +14808,7 @@ /area/chapel/office) "aHj" = ( /obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 + pixel_x = -20 }, /obj/structure/cable{ d1 = 2; @@ -15281,9 +14821,8 @@ /turf/open/floor/plasteel, /area/gateway) "aHk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -15323,8 +14862,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/showroomfloor, @@ -15354,19 +14892,15 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/white/corner{ dir = 4 }, /area/hallway/secondary/entry) "aHv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/gateway) @@ -15414,18 +14948,14 @@ }, /area/hydroponics/garden) "aHB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/storage/eva) "aHC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/storage/eva) @@ -15489,7 +15019,6 @@ "aHL" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/closet/l3closet/scientist, @@ -15573,12 +15102,10 @@ }, /area/crew_quarters/dorms) "aHU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -15614,20 +15141,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aHZ" = ( -/obj/structure/table/wood, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, -/obj/item/weapon/storage/crayons{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/food/snacks/pie/cream{ - pixel_x = -3; - pixel_y = -3 - }, +/obj/structure/closet/crate/wooden/toy, /turf/open/floor/plasteel/redblue, /area/crew_quarters/theatre) "aIa" = ( @@ -15930,7 +15448,6 @@ id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = 24; - pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "32;47;48" }, @@ -15939,11 +15456,7 @@ }, /area/construction/mining/aux_base) "aII" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/grimy, /area/chapel/office) "aIJ" = ( @@ -16124,12 +15637,10 @@ /area/ai_monitored/storage/eva) "aJg" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/side{ @@ -16172,7 +15683,6 @@ /obj/item/weapon/extinguisher, /obj/item/weapon/extinguisher, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -16190,7 +15700,6 @@ "aJl" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -16335,11 +15844,8 @@ /obj/machinery/newscaster{ pixel_x = 30 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/library) @@ -16532,7 +16038,6 @@ "aKc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ - icon_state = "door_closed"; lockdownbyai = 0; locked = 0; name = "Gateway Access"; @@ -16569,8 +16074,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Auxillary Base Construction APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ d1 = 2; @@ -16595,9 +16099,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "aKi" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_l" +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/arrival) @@ -16741,11 +16244,8 @@ /turf/open/floor/plating, /area/maintenance/fore) "aKz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -16791,11 +16291,8 @@ /obj/structure/sink{ pixel_y = 30 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) @@ -16878,9 +16375,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "aKU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "aKV" = ( @@ -16915,18 +16410,14 @@ "aKZ" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/camera{ c_tag = "Chapel Crematorium"; dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/office) @@ -16954,16 +16445,14 @@ /turf/open/floor/plasteel/black, /area/chapel/office) "aLc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/chapel/office) "aLd" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 0; pixel_y = 3 }, /obj/item/weapon/reagent_containers/spray/plantbgone{ @@ -16989,7 +16478,6 @@ "aLf" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/wood, @@ -17000,8 +16488,7 @@ /area/library) "aLh" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/wood, /area/library) @@ -17021,11 +16508,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -17036,11 +16520,7 @@ name = "HIGH VOLTAGE"; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, @@ -17208,11 +16688,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aLH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -17289,10 +16766,8 @@ c_tag = "Central Hallway North-East"; dir = 2 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -17308,9 +16783,8 @@ }, /area/hallway/primary/central) "aLS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/theatre) @@ -17324,7 +16798,6 @@ "aLU" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light/small{ @@ -17394,8 +16867,7 @@ /area/hallway/primary/central) "aMf" = ( /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "aMg" = ( @@ -17407,9 +16879,8 @@ }, /area/hallway/primary/central) "aMh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -17440,10 +16911,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "aMl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -17608,20 +17077,14 @@ /turf/open/floor/wood, /area/library) "aMK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/office) "aML" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -17665,9 +17128,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/primary/port) "aMS" = ( @@ -17779,8 +17240,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -17796,8 +17256,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -17835,20 +17294,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aNs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aNt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/theatre) @@ -17924,11 +17377,8 @@ /area/crew_quarters/bar) "aNE" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -17964,8 +17414,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -18010,7 +17459,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/closet/chefcloset, @@ -18031,9 +17479,7 @@ /turf/open/floor/carpet, /area/hallway/secondary/entry) "aNS" = ( -/obj/machinery/bookbinder{ - pixel_y = 0 - }, +/obj/machinery/bookbinder, /turf/open/floor/wood, /area/library) "aNT" = ( @@ -18167,8 +17613,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -18263,8 +17708,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light, /obj/structure/disposalpipe/segment{ @@ -18279,8 +17723,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -18294,8 +17737,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -18306,8 +17748,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -18336,8 +17777,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -18460,9 +17900,8 @@ /area/crew_quarters/bar) "aOM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -18492,7 +17931,6 @@ /obj/machinery/requests_console{ department = "Hydroponics"; departmentType = 2; - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18515,16 +17953,13 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "aOU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aOV" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -18585,9 +18020,8 @@ /turf/open/floor/wood, /area/library) "aPe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -18613,9 +18047,7 @@ /area/library) "aPi" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /obj/item/device/camera, /obj/item/device/radio/intercom{ pixel_y = 25 @@ -18673,9 +18105,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aPr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aPs" = ( @@ -18752,8 +18182,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -18818,7 +18247,6 @@ /obj/structure/table, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel, @@ -19056,9 +18484,8 @@ }, /area/hallway/secondary/entry) "aQo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -19077,12 +18504,7 @@ /turf/open/floor/wood, /area/library) "aQr" = ( -/obj/structure/closet/crate, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/rank/curator/treasure_hunter, -/obj/item/clothing/suit/curator, -/obj/item/clothing/head/curator, -/obj/item/weapon/storage/backpack/satchel/explorer, +/obj/structure/closet/wardrobe/curator, /obj/machinery/light/small, /turf/open/floor/engine/cult, /area/library) @@ -19173,7 +18595,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/stripes/line{ @@ -19199,11 +18620,8 @@ }, /area/hallway/secondary/entry) "aQK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -19218,8 +18636,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -19399,8 +18816,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/computer/shuttle/mining, /turf/open/floor/plasteel/blue/side{ @@ -19430,14 +18846,12 @@ /area/bridge) "aRt" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aRu" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/chair/stool, @@ -19471,8 +18885,7 @@ /area/crew_quarters/kitchen) "aRz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -19651,8 +19064,7 @@ /obj/structure/grille, /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 + name = "KEEP CLEAR: DOCKING AREA" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -19694,7 +19106,6 @@ "aSb" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel, @@ -19735,11 +19146,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aSi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aSj" = ( @@ -19770,9 +19177,8 @@ /turf/open/floor/plating, /area/storage/emergency/port) "aSo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -19798,9 +19204,8 @@ /turf/open/floor/plating, /area/storage/tools) "aSt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/storage/tools) @@ -19819,8 +19224,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/corner{ dir = 4 @@ -19869,8 +19273,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/blue/side{ dir = 4 @@ -19927,9 +19330,8 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aSK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -19957,10 +19359,8 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -19978,11 +19378,8 @@ /turf/closed/wall, /area/crew_quarters/kitchen) "aSQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/green/side{ dir = 8 @@ -20000,26 +19397,20 @@ /turf/open/floor/plasteel, /area/hydroponics) "aSU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/green/side{ dir = 4 }, /area/hydroponics) "aSV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aSW" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel, /area/storage/tools) @@ -20030,8 +19421,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port) @@ -20051,7 +19441,6 @@ department = "Bar"; departmentType = 2; pixel_x = 30; - pixel_y = 0; receive_ore_updates = 1 }, /obj/machinery/camera{ @@ -20081,9 +19470,7 @@ /area/library) "aTd" = ( /obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, +/obj/machinery/computer/libraryconsole/bookmanagement, /obj/machinery/light_switch{ pixel_y = 28 }, @@ -20120,8 +19507,7 @@ /area/chapel/main) "aTj" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -20134,7 +19520,6 @@ /obj/machinery/vending/cola/random, /obj/machinery/status_display{ layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/escape{ @@ -20155,7 +19540,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -20178,8 +19562,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -20202,8 +19585,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -20214,7 +19596,6 @@ "aTw" = ( /obj/structure/closet/wardrobe/green, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -20261,7 +19642,6 @@ /obj/structure/closet/secure_closet/personal, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/camera{ @@ -20280,11 +19660,7 @@ /turf/open/floor/plasteel, /area/storage/art) "aTF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/table, /obj/item/device/camera_film, /obj/item/device/camera, @@ -20368,11 +19744,7 @@ /turf/open/floor/plasteel/red/side, /area/bridge) "aTU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/bridge) "aTV" = ( @@ -20384,8 +19756,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/bridge) @@ -20401,17 +19772,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/blue/corner{ dir = 4 }, /area/bridge) "aUa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/bridge) "aUb" = ( @@ -20442,7 +19810,6 @@ "aUf" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/camera{ @@ -20464,9 +19831,7 @@ }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aUi" = ( /turf/open/floor/plasteel/vault{ @@ -20559,11 +19924,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aUw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light/small, /turf/open/floor/plasteel, @@ -20593,7 +19955,6 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/black, @@ -20632,7 +19993,6 @@ "aUG" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/black, @@ -20725,8 +20085,7 @@ /obj/structure/closet/wardrobe/grey, /obj/machinery/requests_console{ department = "Locker Room"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -20767,7 +20126,6 @@ "aVa" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/closet/toolcloset, @@ -20787,8 +20145,7 @@ /area/hallway/primary/central) "aVc" = ( /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ @@ -20796,9 +20153,7 @@ name = "bridge blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/bridge) "aVd" = ( /obj/structure/grille, @@ -20881,8 +20236,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -20898,8 +20252,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -20926,8 +20279,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -21005,8 +20357,7 @@ /area/bridge) "aVt" = ( /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ @@ -21014,9 +20365,7 @@ name = "bridge blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/bridge) "aVu" = ( /obj/structure/sign/securearea{ @@ -21078,16 +20427,14 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port) "aVD" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /obj/item/weapon/reagent_containers/food/condiment/peppermill{ pixel_x = 3 @@ -21272,8 +20619,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -21289,19 +20635,14 @@ /turf/open/floor/carpet, /area/library) "aWc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aWd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/carpet, /area/library) @@ -21348,8 +20689,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -21363,12 +20703,10 @@ /area/maintenance/port) "aWm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/wood, /area/security/vacantoffice) @@ -21401,18 +20739,14 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aWr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/security/vacantoffice) "aWs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/security/vacantoffice) @@ -21443,7 +20777,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Art Storage"; - pixel_x = 0; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21456,8 +20789,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/storage/art) @@ -21466,8 +20798,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -21493,8 +20824,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/storage/emergency/port) @@ -21526,7 +20856,6 @@ "aWE" = ( /obj/machinery/computer/med_data, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 32 }, /obj/structure/disposalpipe/segment{ @@ -21569,9 +20898,7 @@ name = "bridge blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/bridge) "aWJ" = ( /obj/structure/cable, @@ -21594,8 +20921,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -21656,7 +20982,6 @@ "aWQ" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21780,8 +21105,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -21812,9 +21136,7 @@ name = "bridge blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/bridge) "aXc" = ( /obj/structure/cable{ @@ -21896,7 +21218,6 @@ /area/hallway/primary/central) "aXi" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/computer/security/telescreen/entertainment{ @@ -21936,8 +21257,7 @@ /obj/machinery/requests_console{ department = "Kitchen"; departmentType = 2; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -22062,8 +21382,7 @@ /area/crew_quarters/fitness) "aXG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -22128,11 +21447,8 @@ /turf/open/floor/wood, /area/security/vacantoffice) "aXO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -22176,9 +21492,8 @@ /turf/open/floor/carpet, /area/library) "aXU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/library) @@ -22231,8 +21546,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ icon_state = "0-2"; @@ -22245,8 +21559,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -22305,8 +21618,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -22330,7 +21642,6 @@ /obj/machinery/button/door{ id = "kanyewest"; name = "Privacy Shutters"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/grimy, @@ -22366,9 +21677,7 @@ name = "bridge blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/bridge) "aYp" = ( /obj/structure/grille, @@ -22438,7 +21747,6 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16" @@ -22490,8 +21798,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22601,8 +21908,7 @@ pixel_y = 1 }, /obj/item/clothing/under/suit_jacket/really_black{ - pixel_x = -2; - pixel_y = 0 + pixel_x = -2 }, /obj/structure/window{ icon_state = "window"; @@ -22657,11 +21963,8 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aZa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -22761,15 +22064,10 @@ "aZo" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) @@ -22789,7 +22087,6 @@ /obj/machinery/button/door{ id = "heads_meeting"; name = "Security Shutters"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/wood, @@ -22875,8 +22172,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -22894,8 +22190,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -23017,10 +22312,7 @@ }, /area/hallway/primary/central) "aZZ" = ( -/obj/machinery/vending/cigarette{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "baa" = ( @@ -23069,14 +22361,12 @@ "bag" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bah" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/bar, @@ -23106,7 +22396,6 @@ /area/crew_quarters/kitchen) "bal" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -23135,16 +22424,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) @@ -23165,8 +22451,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -23194,26 +22479,20 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/wood, /area/library) "bav" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/library) "baw" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 28 @@ -23234,11 +22513,8 @@ /turf/open/floor/carpet, /area/bridge/meeting_room) "baz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -23248,11 +22524,8 @@ }, /area/chapel/main) "baB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main) @@ -23260,8 +22533,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -23297,11 +22569,9 @@ /area/hallway/secondary/entry) "baG" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -23312,9 +22582,8 @@ /turf/open/floor/wood, /area/security/vacantoffice) "baI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/bridge/meeting_room) @@ -23343,8 +22612,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/power/apc{ dir = 4; @@ -23432,23 +22700,20 @@ "baZ" = ( /obj/machinery/status_display{ layer = 4; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bbb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/blue/corner{ dir = 1 @@ -23521,7 +22786,6 @@ /obj/structure/table, /obj/item/weapon/aiModule/reset, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -23558,14 +22822,10 @@ /area/ai_monitored/turret_protected/ai_upload) "bbq" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) @@ -23609,7 +22869,6 @@ /area/crew_quarters/heads/captain) "bbv" = ( /obj/machinery/status_display{ - pixel_x = 0; pixel_y = 32 }, /obj/structure/cable{ @@ -23704,8 +22963,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Vacant Office A APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -23718,8 +22976,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -23758,11 +23015,8 @@ /turf/open/floor/plasteel/barber, /area/crew_quarters/locker) "bbP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) @@ -23888,11 +23142,8 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bci" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -24041,8 +23292,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -24050,9 +23300,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bcC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -24061,9 +23310,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bcE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) @@ -24106,8 +23354,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -24131,18 +23378,13 @@ "bcO" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "bcP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) @@ -24181,7 +23423,6 @@ "bcV" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/filingcabinet, @@ -24190,7 +23431,6 @@ /area/security/detectives_office) "bcW" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -24216,8 +23456,7 @@ /obj/item/device/radio/intercom{ dir = 8; freerange = 1; - name = "Station Intercom (Command)"; - pixel_x = 0 + name = "Station Intercom (Command)" }, /turf/open/floor/carpet, /area/bridge/meeting_room) @@ -24235,7 +23474,6 @@ /area/hallway/primary/starboard) "bdc" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /obj/machinery/light, @@ -24262,8 +23500,7 @@ "bdf" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/porta_turret/ai{ dir = 4 @@ -24317,8 +23554,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -24332,19 +23568,14 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/blue/corner{ dir = 8 }, /area/hallway/primary/central) "bdo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bdp" = ( @@ -24354,9 +23585,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bdq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -24454,8 +23684,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24466,8 +23695,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ dir = 1; @@ -24491,8 +23719,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -24502,18 +23729,14 @@ /turf/open/floor/plating, /area/maintenance/port) "bdE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "bdF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/bridge/meeting_room) @@ -24606,8 +23829,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Disposal APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -24651,8 +23873,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -24689,11 +23910,7 @@ /area/ai_monitored/turret_protected/ai_upload) "bec" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "bed" = ( @@ -24710,7 +23927,6 @@ /obj/machinery/computer/upload/ai, /obj/machinery/flasher{ id = "AI"; - pixel_x = 0; pixel_y = -21 }, /turf/open/floor/circuit, @@ -24751,14 +23967,11 @@ /area/ai_monitored/turret_protected/ai_upload) "beh" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "bei" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/wood, @@ -24792,9 +24005,7 @@ c_tag = "Captain's Office"; dir = 8 }, -/obj/item/weapon/storage/lockbox/medal{ - pixel_y = 0 - }, +/obj/item/weapon/storage/lockbox/medal, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "beo" = ( @@ -24834,7 +24045,6 @@ /area/hallway/primary/central) "ber" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel, @@ -24924,8 +24134,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -25114,16 +24323,14 @@ }, /area/quartermaster/sorting) "beX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "beY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/medical/morgue) @@ -25143,7 +24350,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/effect/landmark/event_spawn, @@ -25156,7 +24362,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Locker Room APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -25187,8 +24392,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -25285,8 +24489,7 @@ "bfr" = ( /obj/structure/noticeboard{ dir = 8; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/wood, /area/bridge/meeting_room) @@ -25372,8 +24575,7 @@ pixel_y = 5 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) @@ -25416,11 +24618,7 @@ /turf/open/floor/plating, /area/maintenance/port) "bfN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bfO" = ( @@ -25492,7 +24690,6 @@ /area/hallway/primary/starboard) "bfZ" = ( /obj/structure/sign/securearea{ - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/purple/side{ @@ -25516,7 +24713,6 @@ "bgd" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -25609,8 +24805,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Mech Bay APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ icon_state = "0-2"; @@ -25620,9 +24815,7 @@ /turf/open/floor/plating, /area/science/robotics/mechbay) "bgp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/research) "bgq" = ( @@ -25649,7 +24842,6 @@ "bgs" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/freezer, @@ -25740,8 +24932,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/light{ dir = 8 @@ -25757,8 +24948,7 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -25766,8 +24956,7 @@ /obj/structure/table/glass, /obj/machinery/reagentgrinder, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -25801,7 +24990,6 @@ /area/bridge/meeting_room) "bgL" = ( /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/wood, @@ -25828,10 +25016,8 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "bgQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 2 @@ -25849,8 +25035,7 @@ department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/structure/filingcabinet, /turf/open/floor/wood, @@ -25887,7 +25072,6 @@ /obj/structure/table/wood, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/item/device/camera, @@ -25953,10 +25137,7 @@ /area/medical/medbay/central) "bhf" = ( /obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/firstaid/regular, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bhg" = ( @@ -25999,7 +25180,6 @@ id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 26; req_access_txt = "5" }, @@ -26011,8 +25191,7 @@ "bhl" = ( /obj/structure/filingcabinet, /obj/machinery/newscaster{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -26060,11 +25239,7 @@ /turf/open/floor/plating, /area/storage/emergency/starboard) "bhs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/security/checkpoint/medical) "bht" = ( @@ -26265,8 +25440,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -26297,8 +25471,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26307,10 +25480,8 @@ /turf/open/floor/plating, /area/maintenance/port) "bhP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -26369,9 +25540,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "bhX" = ( /obj/structure/disposalpipe/wrapsortjunction{ @@ -26423,8 +25592,7 @@ /area/quartermaster/storage) "bid" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/blue/corner, /area/hallway/primary/central) @@ -26507,11 +25675,9 @@ department = "Chemistry"; departmentType = 2; pixel_x = -30; - pixel_y = 0; receive_ore_updates = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -26545,9 +25711,7 @@ }, /area/medical/chemistry) "bit" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "biu" = ( @@ -26643,6 +25807,7 @@ dir = 2 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -26651,8 +25816,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -26671,8 +25835,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/circuit, /area/science/robotics/mechbay) @@ -26680,8 +25843,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/circuit, /area/science/robotics/mechbay) @@ -26690,8 +25852,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitered/corner{ @@ -26767,9 +25928,7 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -26951,8 +26110,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -26970,7 +26128,6 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel, @@ -27024,8 +26181,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -27057,8 +26213,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -27068,11 +26223,8 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -27080,13 +26232,10 @@ /obj/machinery/camera{ c_tag = "Gravity Generator Room"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/gravity_generator) @@ -27119,7 +26268,6 @@ "bjE" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -27127,11 +26275,9 @@ /area/bridge/meeting_room) "bjF" = ( /obj/machinery/newscaster/security_unit{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/keycard_auth{ - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -27151,8 +26297,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/firealarm{ dir = 1; @@ -27182,11 +26327,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/chemistry) "bjL" = ( @@ -27204,8 +26345,7 @@ /area/security/checkpoint/medical) "bjN" = ( /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -27296,7 +26436,6 @@ "bjY" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ @@ -27324,13 +26463,10 @@ /obj/machinery/camera{ c_tag = "Medbay Morgue"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/black, @@ -27383,7 +26519,6 @@ /obj/item/weapon/reagent_containers/dropper, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/white, @@ -27404,8 +26539,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -27419,8 +26553,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -27452,8 +26585,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -27483,8 +26615,7 @@ dir = 8 }, /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -27497,15 +26628,13 @@ departmentType = 2; name = "Science Requests Console"; pixel_x = -30; - pixel_y = 0; receive_ore_updates = 1 }, /turf/open/floor/plasteel/white, /area/science/lab) "bkt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -27524,8 +26653,7 @@ "bkw" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -27588,8 +26716,7 @@ "bkC" = ( /obj/effect/decal/cleanable/oil, /obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 0 + pixel_x = 25 }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -27601,8 +26728,7 @@ "bkE" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 + name = "KEEP CLEAR: DOCKING AREA" }, /turf/closed/wall/r_wall, /area/maintenance/port) @@ -27617,8 +26743,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -27633,7 +26758,6 @@ /area/quartermaster/sorting) "bkI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -27673,16 +26797,13 @@ /area/quartermaster/office) "bkO" = ( /obj/machinery/light_switch{ - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/item/weapon/screwdriver{ pixel_y = 10 }, /obj/item/device/radio/off, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 6 }, @@ -27709,8 +26830,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -27723,8 +26843,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light_switch{ pixel_y = -25 @@ -27749,8 +26868,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/central) @@ -27766,17 +26884,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/medical/morgue) "bkV" = ( @@ -27795,8 +26908,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/central) @@ -27804,8 +26916,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Conference Room APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -27840,8 +26951,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27907,8 +27017,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27964,9 +27073,7 @@ /obj/machinery/camera{ c_tag = "Medbay Foyer"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/machinery/cell_charger, /turf/open/floor/plasteel/white, @@ -27978,8 +27085,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/power/apc{ dir = 1; @@ -28055,6 +27161,7 @@ "blu" = ( /obj/machinery/computer/mech_bay_power_console, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel, @@ -28077,9 +27184,8 @@ /turf/open/floor/mech_bay_recharge_floor, /area/science/robotics/mechbay) "blx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -28088,14 +27194,12 @@ dir = 10 }, /obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -28104,8 +27208,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -28173,24 +27276,17 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "blG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "blH" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 + pixel_x = 11 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -28252,7 +27348,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/item/weapon/cigbutt, @@ -28310,9 +27405,7 @@ /area/quartermaster/storage) "blZ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -28407,8 +27500,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -28448,8 +27540,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, @@ -28462,8 +27553,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/brown/corner{ dir = 8 @@ -28506,8 +27596,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ dir = 8 @@ -28520,10 +27609,8 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "bmv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/engine/gravity_generator) @@ -28564,18 +27651,15 @@ /obj/machinery/light_switch{ pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "bmC" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 28 @@ -28601,7 +27685,6 @@ /obj/structure/table/glass, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/item/stack/cable_coil/random, @@ -28622,8 +27705,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -28640,7 +27722,6 @@ frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; - pixel_x = 0; pixel_y = -30 }, /obj/machinery/light, @@ -28697,8 +27778,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -28729,9 +27809,7 @@ /area/hallway/primary/central) "bmT" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/chemistry) "bmU" = ( @@ -28829,11 +27907,8 @@ /turf/open/floor/plasteel/white, /area/science/lab) "bng" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -28902,8 +27977,7 @@ /obj/item/weapon/stock_parts/matter_bin, /obj/item/weapon/stock_parts/matter_bin, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/weapon/stock_parts/scanning_module{ pixel_x = 2; @@ -28913,8 +27987,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Research Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ d2 = 8; @@ -29041,8 +28114,7 @@ "bnB" = ( /obj/structure/closet/wardrobe/chemistry_white, /obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -29078,7 +28150,6 @@ /area/quartermaster/office) "bnF" = ( /obj/structure/sign/nosmoking_2{ - pixel_x = 0; pixel_y = 30 }, /obj/structure/disposalpipe/segment{ @@ -29125,9 +28196,8 @@ /turf/open/floor/plating, /area/quartermaster/office) "bnL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/brown{ dir = 1 @@ -29137,8 +28207,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -29149,7 +28218,6 @@ /area/hallway/primary/central) "bnO" = ( /obj/machinery/newscaster/security_unit{ - pixel_x = 0; pixel_y = 32 }, /obj/structure/filingcabinet/chestdrawer, @@ -29201,7 +28269,6 @@ desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); - pixel_x = 0; pixel_y = 30 }, /obj/machinery/disposal/bin, @@ -29224,8 +28291,7 @@ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable{ icon_state = "0-4"; @@ -29266,8 +28332,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/cable{ icon_state = "0-2"; @@ -29289,7 +28354,6 @@ /obj/item/weapon/bedsheet/captain, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29317,7 +28381,6 @@ pixel_y = 6 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -29380,7 +28443,6 @@ "boj" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/requests_console{ @@ -29388,9 +28450,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 30; - pixel_y = 0; - pixel_z = 0 + pixel_x = 30 }, /obj/machinery/light, /turf/open/floor/plasteel/white, @@ -29432,9 +28492,8 @@ /turf/closed/wall/r_wall, /area/medical/genetics) "boo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -29503,8 +28562,7 @@ /obj/item/weapon/stock_parts/cell/high/plus, /obj/item/weapon/crowbar, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -29617,8 +28675,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -29688,11 +28745,8 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "boT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -29706,8 +28760,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -29764,7 +28817,6 @@ }, /obj/machinery/flasher{ id = "hopflash"; - pixel_x = 0; pixel_y = 28 }, /obj/machinery/door/poddoor/shutters/preopen{ @@ -29839,7 +28891,6 @@ "bpi" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/cable{ @@ -29868,11 +28919,8 @@ "bpk" = ( /obj/structure/closet/secure_closet/captains, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) @@ -29910,8 +28958,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/lab) @@ -29928,7 +28975,6 @@ /area/science/lab) "bpq" = ( /obj/machinery/light_switch{ - pixel_x = 0; pixel_y = -23 }, /turf/open/floor/plasteel/white, @@ -29964,12 +29010,10 @@ id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 26 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -30005,11 +29049,8 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bpz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -30082,7 +29123,6 @@ department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; - pixel_x = 0; pixel_y = 30 }, /obj/item/weapon/storage/pill_bottle/mutadone, @@ -30129,9 +29169,8 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bpO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -30240,14 +29279,8 @@ "bpZ" = ( /obj/item/weapon/folder/white, /obj/structure/table, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/disk/tech_disk, +/obj/item/weapon/disk/tech_disk, /obj/item/weapon/disk/design_disk, /obj/item/weapon/disk/design_disk, /turf/open/floor/plasteel/white, @@ -30393,8 +29426,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) @@ -30402,8 +29434,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -30464,7 +29495,6 @@ "bqC" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/cable{ @@ -30543,8 +29573,7 @@ req_access_txt = "17" }, /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable{ d1 = 1; @@ -30602,7 +29631,6 @@ /obj/item/clothing/neck/stethoscope, /obj/item/weapon/reagent_containers/spray/cleaner, /obj/structure/sign/nosmoking_2{ - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30616,8 +29644,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30631,8 +29658,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel/whiteyellow/side{ @@ -30643,8 +29669,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/noticeboard{ pixel_y = 32 @@ -30663,8 +29688,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30688,8 +29712,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -30700,8 +29723,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -30746,8 +29768,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -30760,8 +29781,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -30777,11 +29797,8 @@ }, /area/medical/medbay/central) "bri" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 2 @@ -30799,15 +29816,12 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/genetics) "brl" = ( /obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -30991,7 +30005,6 @@ "brA" = ( /obj/structure/table, /obj/item/weapon/paper_bin{ - pixel_x = 0; pixel_y = 6 }, /turf/open/floor/plasteel/white/corner{ @@ -31108,8 +30121,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/item/device/multitool, /obj/machinery/camera{ @@ -31212,18 +30224,14 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/vending/cart, /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) "brX" = ( /obj/structure/table, -/obj/item/weapon/storage/box/masks{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/storage/box/masks, /obj/item/weapon/storage/box/gloves{ pixel_x = 3; pixel_y = 4 @@ -31274,17 +30282,13 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bsd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bse" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -31293,9 +30297,8 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "bsf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/gravity_generator) @@ -31357,9 +30360,8 @@ /turf/open/floor/plasteel, /area/teleporter) "bsm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/teleporter) @@ -31403,7 +30405,6 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 0; pixel_y = -30 }, /obj/machinery/light, @@ -31416,10 +30417,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -31437,14 +30436,12 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/camera{ c_tag = "Medbay East"; dir = 8; network = list("SS13"); - pixel_x = 0; pixel_y = -22 }, /turf/open/floor/plasteel/white, @@ -31479,8 +30476,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -31488,8 +30484,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -31500,8 +30495,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/white/side{ dir = 5 @@ -31577,8 +30571,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Experimentation Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31681,7 +30674,6 @@ /area/science/robotics/lab) "bsX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white/side{ @@ -31731,11 +30723,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "btc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -31760,9 +30749,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -30; - pixel_y = 0; - pixel_z = 0 + pixel_x = -30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -31796,11 +30783,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "btl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/genetics) "btm" = ( @@ -31899,9 +30882,8 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "btu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -31963,11 +30945,8 @@ }, /area/crew_quarters/heads/hop) "btC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) @@ -32000,9 +30979,7 @@ req_access_txt = "11" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "btG" = ( /turf/closed/wall/r_wall, @@ -32011,8 +30988,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -32034,8 +31010,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/bluespace_beacon, /turf/open/floor/plasteel, @@ -32045,8 +31020,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/teleporter) @@ -32054,8 +31028,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/teleporter) @@ -32068,8 +31041,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/teleporter) @@ -32077,8 +31049,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -32175,15 +31146,11 @@ department = "Science"; departmentType = 2; name = "Science Requests Console"; - pixel_x = 0; pixel_y = -30; receive_ore_updates = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/explab) @@ -32262,7 +31229,6 @@ "bui" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -32283,9 +31249,8 @@ }, /area/medical/sleeper) "bul" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -32339,8 +31304,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32365,8 +31329,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32410,8 +31373,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32483,18 +31445,14 @@ /obj/structure/table, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/computer/stockexchange, /turf/open/floor/plasteel, /area/quartermaster/office) "buF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -32505,8 +31463,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32528,8 +31485,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32537,9 +31493,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "buI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -32552,8 +31507,7 @@ /area/quartermaster/office) "buK" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -32566,8 +31520,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -32577,8 +31530,7 @@ /area/medical/genetics) "buM" = ( /obj/machinery/keycard_auth{ - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/computer/cargo, /turf/open/floor/plasteel/blue/side{ @@ -32606,14 +31558,10 @@ "buQ" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -32628,15 +31576,13 @@ /area/engine/gravity_generator) "buS" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Gravity Generator Foyer" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -32650,8 +31596,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32667,8 +31612,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor/heavy, /obj/machinery/door/poddoor/preopen{ @@ -32715,8 +31659,7 @@ icon_state = "1-2" }, /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/blue/side{ @@ -32730,8 +31673,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -32750,8 +31692,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -32772,8 +31713,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -32787,9 +31727,8 @@ /area/science/research) "bvf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white/side{ dir = 9 @@ -32827,7 +31766,6 @@ /area/medical/medbay/central) "bvl" = ( /obj/machinery/door/airlock/glass_medical{ - id_tag = ""; name = "Surgery Observation"; req_access_txt = "0" }, @@ -32855,11 +31793,8 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bvo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -32923,8 +31858,7 @@ /obj/machinery/camera{ c_tag = "Genetics Research"; dir = 1; - network = list("SS13","RD"); - pixel_x = 0 + network = list("SS13","RD") }, /obj/machinery/firealarm{ dir = 1; @@ -32962,7 +31896,6 @@ c_tag = "Genetics Access"; dir = 8; network = list("SS13"); - pixel_x = 0; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -33007,8 +31940,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/item/weapon/coin/silver, /turf/open/floor/plasteel/brown{ @@ -33057,8 +31989,7 @@ /area/security/checkpoint/supply) "bvM" = ( /obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 + pixel_x = -20 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, @@ -33076,11 +32007,8 @@ pixel_x = 5; pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/explab) @@ -33189,11 +32117,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bwb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -33268,9 +32193,8 @@ }, /area/crew_quarters/heads/hop) "bwj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) @@ -33305,8 +32229,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33323,8 +32246,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -33409,11 +32331,8 @@ /area/medical/medbay/central) "bwB" = ( /obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/medical/sleeper) @@ -33423,7 +32342,6 @@ /area/medical/sleeper) "bwD" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel, @@ -33463,28 +32381,18 @@ /obj/machinery/camera{ c_tag = "Medbay Cryogenics"; dir = 2; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, /turf/open/floor/plasteel, /area/medical/sleeper) "bwK" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -33532,9 +32440,8 @@ pixel_y = 28; req_access_txt = "47" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -33565,10 +32472,8 @@ /turf/open/floor/plating, /area/crew_quarters/heads/hor) "bwR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) @@ -33576,16 +32481,14 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/qm) @@ -33597,8 +32500,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33612,8 +32514,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33629,8 +32530,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33649,8 +32549,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -33705,9 +32604,8 @@ /area/medical/sleeper) "bxb" = ( /obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/medical/sleeper) @@ -33726,8 +32624,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -33741,8 +32638,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -33757,8 +32653,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -33782,7 +32677,6 @@ id = "smindicate"; name = "external door control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "150" }, /obj/docking_port/mobile{ @@ -33829,7 +32723,6 @@ desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); - pixel_x = 0; pixel_y = 2 }, /obj/structure/table, @@ -33895,7 +32788,6 @@ id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; - pixel_y = 0; req_access_txt = "47" }, /obj/effect/turf_decal/stripes/line{ @@ -33921,11 +32813,8 @@ dir = 4 }, /obj/effect/landmark/start/depsec/science, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/checkpoint/science) @@ -33993,7 +32882,6 @@ /obj/machinery/computer/secure_data, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/red/side{ @@ -34004,8 +32892,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -34071,7 +32958,6 @@ /area/security/checkpoint/checkpoint2) "bxN" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -34082,10 +32968,8 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "bxO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -34125,9 +33009,7 @@ /area/medical/sleeper) "bxU" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/medical/sleeper) @@ -34143,8 +33025,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -34156,7 +33037,6 @@ /area/crew_quarters/heads/hor) "bxX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -34181,16 +33061,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "byb" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/cafeteria, @@ -34210,11 +33088,8 @@ }, /area/quartermaster/qm) "byd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/brown{ dir = 2 @@ -34230,10 +33105,7 @@ "byg" = ( /obj/structure/table, /obj/item/weapon/clipboard, -/obj/item/weapon/stamp/qm{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/stamp/qm, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -34361,8 +33233,7 @@ "byu" = ( /obj/structure/displaycase/labcage, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -34479,9 +33350,8 @@ }, /area/security/checkpoint/supply) "byI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -34530,11 +33400,8 @@ departmentType = 5; pixel_y = -30 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/supply) @@ -34607,12 +33474,10 @@ "byX" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -34670,16 +33535,13 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 0; - pixel_y = 30; - pixel_z = 0 + pixel_y = 30 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bze" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/shower{ @@ -34688,9 +33550,8 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "bzf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -34708,8 +33569,7 @@ /area/medical/sleeper) "bzi" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/medical/sleeper) @@ -34742,7 +33602,6 @@ /obj/machinery/computer/cloning, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -34780,11 +33639,11 @@ /turf/closed/wall, /area/maintenance/aft) "bzt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4; external_pressure_bound = 140; - on = 1; pressure_checks = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Server Base"; @@ -34841,7 +33700,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Server Room APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -34852,8 +33710,7 @@ /area/science/server) "bzz" = ( /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/airalarm{ pixel_y = 25 @@ -34895,7 +33752,6 @@ desc = "Used for watching the RD's goons from the safety of your own office."; name = "Research Monitor"; network = list("RD"); - pixel_x = 0; pixel_y = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -34987,7 +33843,6 @@ "bzP" = ( /obj/machinery/computer/cargo, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/brown{ @@ -34998,8 +33853,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/qm) @@ -35024,17 +33878,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/qm) "bzU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteblue/corner{ dir = 2 }, @@ -35086,8 +33935,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -35143,9 +33991,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bAi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/primary/central) "bAj" = ( @@ -35156,9 +34002,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bAk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -35192,8 +34037,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35207,8 +34051,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/power/apc{ dir = 1; @@ -35228,7 +34071,6 @@ "bAp" = ( /obj/structure/closet/secure_closet/medical1, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/firealarm{ @@ -35239,7 +34081,6 @@ /area/medical/sleeper) "bAq" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/machinery/camera{ @@ -35295,8 +34136,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35313,8 +34153,7 @@ "bAz" = ( /obj/machinery/airalarm/server{ dir = 4; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/machinery/light/small{ dir = 8 @@ -35397,8 +34236,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -35417,8 +34255,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35503,7 +34340,6 @@ /obj/machinery/status_display{ density = 0; pixel_x = -32; - pixel_y = 0; supply_display = 1 }, /turf/open/floor/plasteel/brown{ @@ -35515,11 +34351,7 @@ /turf/open/floor/plasteel, /area/janitor) "bAU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/janitor) "bAV" = ( @@ -35605,11 +34437,9 @@ "bBf" = ( /obj/structure/filingcabinet, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/camera{ @@ -35624,8 +34454,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -35649,22 +34478,19 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bBj" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -35673,8 +34499,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Central Primary Hallway South-West"; @@ -35702,9 +34527,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -35818,8 +34642,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -35875,8 +34698,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/research) @@ -35909,7 +34731,6 @@ "bBI" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/closet/wardrobe/miner, @@ -35965,7 +34786,6 @@ department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/barber, @@ -35974,8 +34794,7 @@ /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/barber, /area/crew_quarters/heads/cmo) @@ -35984,14 +34803,10 @@ /turf/open/floor/plating, /area/maintenance/aft) "bBS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Server Base"; @@ -36141,7 +34956,6 @@ /area/crew_quarters/heads/hor) "bCh" = ( /obj/machinery/keycard_auth{ - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -36212,8 +35026,7 @@ /area/quartermaster/miningdock) "bCp" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/corner{ @@ -36231,8 +35044,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -36243,9 +35055,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/janitor) @@ -36363,11 +35174,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -36440,7 +35248,6 @@ "bCS" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36454,15 +35261,12 @@ "bCT" = ( /obj/structure/table, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/clothing/neck/stethoscope, @@ -36478,8 +35282,7 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/camera{ c_tag = "Medbay South"; @@ -36490,27 +35293,18 @@ /area/medical/medbay/central) "bCV" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bCW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/barber, /area/crew_quarters/heads/cmo) "bCX" = ( /obj/effect/decal/cleanable/oil, /obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/science/storage) @@ -36524,8 +35318,7 @@ /area/crew_quarters/heads/cmo) "bDa" = ( /obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/barber, @@ -36540,7 +35333,6 @@ /obj/machinery/door/firedoor/heavy, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/white/side{ @@ -36597,8 +35389,7 @@ /obj/machinery/requests_console{ department = "Mining"; departmentType = 0; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /obj/machinery/light{ dir = 8 @@ -36622,8 +35413,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -36637,11 +35427,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "bDo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -36688,8 +35475,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -36709,8 +35495,7 @@ /obj/item/device/assembly/flash/handheld, /obj/item/device/assembly/flash/handheld, /obj/machinery/ai_status_display{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/storage/tech) @@ -36759,8 +35544,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Treatment Center APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ d2 = 8; @@ -36796,8 +35580,7 @@ /area/medical/sleeper) "bDE" = ( /obj/machinery/vending/wallmed{ - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/camera{ c_tag = "Medbay Recovery Room"; @@ -36948,8 +35731,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /mob/living/simple_animal/mouse, /turf/open/floor/plasteel/floorgrime, @@ -36958,8 +35740,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/floorgrime, @@ -36981,12 +35762,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/science/storage) @@ -36994,8 +35773,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime, /area/science/storage) @@ -37023,8 +35801,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -37037,8 +35814,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/research{ name = "Toxins Storage"; @@ -37085,7 +35861,6 @@ c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); - pixel_x = 0; pixel_y = -22 }, /turf/open/floor/plasteel/barber, @@ -37097,8 +35872,7 @@ /obj/machinery/camera{ c_tag = "Xenobiology Test Chamber"; dir = 2; - network = list("Xeno","RD"); - pixel_x = 0 + network = list("Xeno","RD") }, /obj/machinery/light{ dir = 1 @@ -37108,20 +35882,15 @@ "bEo" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "bEp" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/structure/sign/nosmoking_2{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "bEq" = ( /obj/machinery/power/apc{ @@ -37167,7 +35936,6 @@ "bEv" = ( /obj/structure/closet/bombcloset, /obj/machinery/light_switch{ - pixel_x = 0; pixel_y = 28 }, /obj/effect/turf_decal/stripes/line{ @@ -37197,8 +35965,7 @@ /obj/machinery/camera{ c_tag = "Toxins Lab West"; dir = 2; - network = list("SS13","RD"); - pixel_y = 0 + network = list("SS13","RD") }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -37311,8 +36078,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -37329,9 +36095,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "bEL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -37383,14 +36148,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plating, /area/storage/tech) @@ -37402,8 +36163,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -37493,8 +36253,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -37517,8 +36276,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -37540,11 +36298,8 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -37560,8 +36315,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers, /turf/open/floor/plasteel/caution/corner{ @@ -37686,25 +36440,18 @@ /turf/open/floor/plating, /area/maintenance/aft) "bFy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) "bFz" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white/side{ dir = 1 @@ -37713,9 +36460,7 @@ "bFA" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -37744,10 +36489,8 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bFE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/barber, /area/crew_quarters/heads/cmo) @@ -37764,15 +36507,13 @@ "bFH" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light_switch{ - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/barber, /area/crew_quarters/heads/cmo) "bFI" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light/small{ @@ -37947,11 +36688,11 @@ "bGg" = ( /obj/structure/table, /turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) +/area/shuttle/mining) "bGh" = ( /obj/machinery/computer/shuttle/mining, /turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) +/area/shuttle/mining) "bGi" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -37982,7 +36723,6 @@ pixel_y = -2 }, /obj/item/device/assembly/prox_sensor{ - pixel_x = 0; pixel_y = 2 }, /obj/structure/table/reinforced, @@ -38158,8 +36898,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor/heavy, /obj/machinery/door/airlock/research{ @@ -38216,8 +36955,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -38247,8 +36985,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -38266,11 +37003,8 @@ /turf/open/floor/plasteel, /area/science/mixing) "bGM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -38294,8 +37028,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -38371,9 +37104,8 @@ /obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -38384,7 +37116,6 @@ /area/maintenance/aft) "bGX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -38412,15 +37143,11 @@ /area/crew_quarters/heads/cmo) "bHc" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white/side{ dir = 5 @@ -38457,18 +37184,14 @@ /turf/open/floor/plasteel/white, /area/science/research) "bHg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/mixing) "bHh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/storage/tech) @@ -38533,8 +37256,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, @@ -38575,9 +37297,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bHu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/item/device/radio/intercom{ pixel_y = 25 @@ -38594,8 +37315,7 @@ layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -38615,7 +37335,7 @@ dir = 1 }, /turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) +/area/shuttle/mining) "bHy" = ( /obj/structure/closet/crate, /obj/machinery/light/small{ @@ -38698,8 +37418,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/storage/tech) @@ -38711,8 +37430,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/storage/tech) @@ -38720,15 +37438,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/storage/tech) "bHK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/door/firedoor/heavy, @@ -38757,7 +37473,6 @@ "bHN" = ( /obj/machinery/requests_console{ department = "Tech storage"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -38799,11 +37514,8 @@ /area/hallway/primary/aft) "bHS" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -38862,8 +37574,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -38921,8 +37632,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution/corner{ @@ -38940,7 +37650,6 @@ idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; - pixel_y = 0; req_access_txt = "39" }, /obj/machinery/door/firedoor, @@ -38989,8 +37698,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -39026,9 +37734,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 0; - pixel_y = -30; - pixel_z = 0 + pixel_y = -30 }, /obj/item/weapon/storage/firstaid/fire{ pixel_x = 3; @@ -39049,7 +37755,6 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 0; pixel_y = -30 }, /obj/item/weapon/storage/firstaid/toxin{ @@ -39104,11 +37809,8 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bIp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -39139,8 +37841,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -39154,8 +37855,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -39174,17 +37874,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bIv" = ( @@ -39199,8 +37894,7 @@ "bIw" = ( /obj/structure/closet/secure_closet/CMO, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/barber, /area/crew_quarters/heads/cmo) @@ -39252,9 +37946,8 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -39269,9 +37962,8 @@ /area/engine/atmos) "bIG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39290,11 +37982,8 @@ /obj/machinery/camera{ c_tag = "Virology Break Room" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -39306,7 +37995,6 @@ /area/medical/virology) "bIK" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -39322,11 +38010,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -39367,8 +38052,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -39380,11 +38064,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -39407,10 +38088,8 @@ /turf/open/floor/plating, /area/science/xenobiology) "bIU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 2 @@ -39490,7 +38169,7 @@ width = 7 }, /turf/open/floor/plating, -/area/shuttle/labor) +/area/shuttle/mining) "bJd" = ( /obj/machinery/door/airlock/glass_mining{ cyclelinkeddir = 8; @@ -39547,9 +38226,7 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/computer/cloning{ - pixel_x = 0 - }, +/obj/item/weapon/circuitboard/computer/cloning, /obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 @@ -39620,8 +38297,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -39850,8 +38526,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ id = "misclab"; @@ -39931,12 +38606,8 @@ /obj/item/device/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, +/obj/item/device/transfer_valve, +/obj/item/device/transfer_valve, /obj/item/device/transfer_valve{ pixel_x = 5 }, @@ -39947,7 +38618,6 @@ department = "Science"; departmentType = 2; name = "Science Requests Console"; - pixel_x = 0; pixel_y = -30; receive_ore_updates = 1 }, @@ -39956,7 +38626,6 @@ /area/science/mixing) "bJX" = ( /obj/item/device/assembly/signaler{ - pixel_x = 0; pixel_y = 8 }, /obj/item/device/assembly/signaler{ @@ -39991,10 +38660,7 @@ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/device/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -40002,8 +38668,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Toxins Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable, /turf/open/floor/plasteel/white, @@ -40093,8 +38758,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/closed/wall, /area/quartermaster/miningdock) @@ -40261,11 +38925,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/sign/securearea{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40280,8 +38942,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -40297,8 +38958,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40313,8 +38973,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -40330,8 +38989,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Medbay APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -40349,8 +39007,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -40361,9 +39018,8 @@ /obj/machinery/vending/wallmed{ pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -40453,11 +39109,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40477,7 +39130,6 @@ /obj/machinery/button/door{ id = "misclab"; name = "Test Chamber Blast Doors"; - pixel_x = 0; pixel_y = -2; req_access_txt = "55" }, @@ -40485,8 +39137,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/window/reinforced{ dir = 4 @@ -40500,7 +39151,6 @@ /obj/machinery/computer/security/telescreen{ name = "Test Chamber Moniter"; network = list("Xeno"); - pixel_x = 0; pixel_y = 2 }, /obj/structure/table/reinforced, @@ -40557,7 +39207,6 @@ /area/science/xenobiology) "bLd" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -40585,9 +39234,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/virology) "bLg" = ( @@ -40616,7 +39263,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -40690,11 +39336,11 @@ "bLs" = ( /obj/structure/ore_box, /turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) +/area/shuttle/mining) "bLt" = ( /obj/structure/shuttle/engine/heater, /turf/open/floor/plating, -/area/shuttle/labor) +/area/shuttle/mining) "bLu" = ( /obj/structure/rack{ dir = 8; @@ -40874,8 +39520,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -40905,11 +39550,8 @@ /obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -40918,9 +39560,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bLY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/virology) "bLZ" = ( @@ -40944,8 +39584,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -40963,8 +39602,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -40978,8 +39616,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -41041,8 +39678,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -41059,8 +39695,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -41095,7 +39730,6 @@ "bMp" = ( /obj/structure/closet/l3closet/scientist, /obj/machinery/light_switch{ - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/white, @@ -41120,7 +39754,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/engine/vacuum, @@ -41144,14 +39777,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -41188,7 +39815,6 @@ id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; - pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor" }, @@ -41238,7 +39864,7 @@ layer = 2.9 }, /turf/open/floor/plating/airless, -/area/shuttle/labor) +/area/shuttle/mining) "bMG" = ( /obj/structure/cable{ d1 = 1; @@ -41366,8 +39992,7 @@ /area/engine/atmos) "bMW" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41446,11 +40071,8 @@ /area/medical/virology) "bNi" = ( /obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -41509,8 +40131,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41559,9 +40180,8 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "bNs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -41618,8 +40238,7 @@ /area/science/mixing) "bNz" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/camera{ c_tag = "Toxins Lab East"; @@ -41768,8 +40387,7 @@ network = list("SS13") }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/caution{ dir = 5 @@ -41779,11 +40397,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/engine/atmos) "bNT" = ( @@ -41812,20 +40426,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bNW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/virology) "bNX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) "bNY" = ( @@ -41841,15 +40448,12 @@ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/science/misc_lab) "bOa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41873,8 +40477,7 @@ /area/engine/atmos) "bOe" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -41882,8 +40485,7 @@ "bOf" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -41951,7 +40553,6 @@ dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel, @@ -42003,8 +40604,7 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel, /area/science/misc_lab) @@ -42064,9 +40664,8 @@ /turf/open/floor/plasteel, /area/science/misc_lab) "bOC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/tcommsat/computer) @@ -42189,9 +40788,7 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 9 }, @@ -42253,9 +40850,7 @@ location = "Atmospherics" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bOU" = ( /obj/machinery/holopad, @@ -42276,8 +40871,7 @@ department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -42327,11 +40921,8 @@ /turf/open/floor/plasteel, /area/science/misc_lab) "bPc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -42380,8 +40971,7 @@ /area/engine/atmos) "bPi" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/yellow/visible, /turf/open/floor/plasteel/green/side{ @@ -42403,16 +40993,11 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bPl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro out" }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -42441,8 +41026,7 @@ dir = 4 }, /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -42452,13 +41036,11 @@ "bPr" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/closet/l3closet, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -42483,11 +41065,8 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bPu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -42510,7 +41089,6 @@ "bPx" = ( /obj/machinery/disposal/bin, /obj/structure/sign/deathsposal{ - pixel_x = 0; pixel_y = -32 }, /obj/structure/disposalpipe/trunk{ @@ -42560,8 +41138,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -42613,7 +41190,6 @@ department = "Science"; departmentType = 2; name = "Science Requests Console"; - pixel_x = 0; pixel_y = -30; receive_ore_updates = 1 }, @@ -42652,9 +41228,8 @@ /turf/open/floor/plasteel, /area/science/misc_lab) "bPM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -42730,20 +41305,13 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bQb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bQc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating, /area/construction) "bQd" = ( @@ -42768,8 +41336,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/device/radio/off, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -42994,10 +41561,8 @@ dir = 1; pixel_y = -24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/misc_lab) @@ -43019,8 +41584,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -43037,7 +41601,6 @@ "bQN" = ( /obj/machinery/door/firedoor, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/camera{ @@ -43053,8 +41616,7 @@ "bQO" = ( /obj/structure/closet/bombcloset, /obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 + pixel_x = -20 }, /turf/open/floor/plasteel, /area/science/misc_lab) @@ -43093,7 +41655,6 @@ departmentType = 2; dir = 2; name = "Science Requests Console"; - pixel_x = 0; pixel_y = 30; receive_ore_updates = 1 }, @@ -43194,9 +41755,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bRi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/break_room) @@ -43238,8 +41798,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -43260,8 +41819,7 @@ layer = 4; name = "Engine Monitor"; network = list("Engine"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -43304,9 +41862,7 @@ name = "atmos blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bRt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -43323,11 +41879,8 @@ dir = 4 }, /obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43410,15 +41963,13 @@ on = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4; - initialize_directions = 12 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bRH" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5; - initialize_directions = 12 + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43458,8 +42009,7 @@ "bRM" = ( /obj/structure/table, /obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/reagentgrinder, /turf/open/floor/plasteel/white, @@ -43509,11 +42059,7 @@ "bRS" = ( /obj/structure/chair/office/dark, /obj/effect/landmark/start/depsec/engineering, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) "bRT" = ( @@ -43566,8 +42112,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -43577,13 +42122,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/button/door{ id = "xenobio8"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -43596,8 +42139,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -43650,8 +42192,7 @@ /area/science/misc_lab) "bSg" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/engine, /area/science/misc_lab) @@ -43772,9 +42313,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -43805,20 +42345,16 @@ }, /obj/structure/table, /obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 + pixel_x = -8 }, /obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 + pixel_x = -8 }, /obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 + pixel_x = 4 }, /obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 + pixel_x = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -43835,7 +42371,6 @@ /area/engine/atmos) "bSD" = ( /obj/structure/sign/atmosplaque{ - pixel_x = 0; pixel_y = -32 }, /obj/structure/table, @@ -43847,8 +42382,7 @@ "bSE" = ( /obj/machinery/computer/station_alert, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/button/door{ id = "atmos"; @@ -43921,8 +42455,7 @@ "bSK" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 + dir = 6 }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -43964,8 +42497,7 @@ "bSP" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -44029,8 +42561,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/firealarm{ pixel_y = 25 @@ -44053,7 +42584,6 @@ cell_type = 5000; dir = 1; name = "Virology APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -44095,8 +42625,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ id = "xenobio3"; @@ -44109,8 +42638,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -44131,8 +42659,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/window/northleft{ dir = 4; @@ -44152,7 +42679,6 @@ /obj/machinery/computer/security/telescreen{ name = "Test Chamber Moniter"; network = list("Test"); - pixel_x = 0; pixel_y = -30 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -44224,8 +42750,7 @@ pixel_y = -1 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/assembly/timer{ pixel_x = -3; @@ -44278,7 +42803,6 @@ /area/maintenance/port/aft) "bTt" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/wood{ @@ -44286,15 +42810,13 @@ }, /area/maintenance/port/aft) "bTu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/maintenance/port/aft) "bTv" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -44304,14 +42826,12 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/port/aft) "bTx" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -44321,7 +42841,6 @@ /obj/structure/grille, /obj/structure/window/fulltile, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -44382,8 +42901,7 @@ }, /obj/item/weapon/pen, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -44445,8 +42963,7 @@ /area/engine/atmos) "bTO" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 + dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -44463,8 +42980,7 @@ /area/engine/atmos) "bTR" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -44503,16 +43019,11 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bTX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2o out" }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -44537,11 +43048,9 @@ "bUb" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -44554,8 +43063,7 @@ department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -44565,7 +43073,6 @@ /obj/machinery/button/door{ id = "xenobio3"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -44575,8 +43082,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -44607,8 +43113,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -44652,16 +43157,13 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) "bUk" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/science/misc_lab) @@ -44712,7 +43214,6 @@ "bUr" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/space, @@ -44721,8 +43222,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -44757,8 +43257,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -44770,8 +43269,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -44786,8 +43284,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -45090,8 +43587,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -45140,7 +43636,6 @@ /area/science/xenobiology) "bVj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -45148,9 +43643,7 @@ "bVk" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -45173,8 +43666,7 @@ /area/engine/break_room) "bVn" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, @@ -45207,11 +43699,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/engine/break_room) "bVs" = ( @@ -45272,7 +43760,6 @@ }, /obj/structure/reagent_dispensers/fueltank, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -45324,8 +43811,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -45361,11 +43847,8 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/caution{ dir = 8 @@ -45384,11 +43867,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bVQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -45463,8 +43943,7 @@ /area/engine/atmos) "bWa" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -45568,13 +44047,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/button/door{ id = "xenobio7"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -45708,7 +44185,6 @@ cell_type = 5000; dir = 1; name = "Telecoms Server APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -45765,7 +44241,6 @@ "bWL" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/disposalpipe/segment, @@ -45794,9 +44269,7 @@ name = "atmos blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bWO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ @@ -45814,9 +44287,7 @@ name = "atmos blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bWQ" = ( /turf/closed/wall/r_wall, @@ -45832,8 +44303,7 @@ /area/engine/atmos) "bWS" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/camera{ c_tag = "Atmospherics West"; @@ -45847,15 +44317,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bWT" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 0; @@ -45971,8 +44439,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ id = "xenobio2"; @@ -45984,8 +44451,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/window/northleft{ dir = 4; @@ -46007,9 +44473,7 @@ /obj/item/weapon/folder/white, /obj/item/weapon/folder/white, /obj/item/weapon/pen, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) "bXj" = ( @@ -46052,7 +44516,6 @@ "bXl" = ( /obj/structure/table, /obj/item/weapon/paper_bin{ - pixel_x = 0; pixel_y = 6 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46105,8 +44568,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -46164,8 +44626,7 @@ pixel_x = 29 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -46281,8 +44742,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46346,8 +44806,7 @@ /area/security/checkpoint/engineering) "bXQ" = ( /obj/structure/fireaxecabinet{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -46407,16 +44866,11 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bXX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "toxin out" }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -46430,25 +44884,18 @@ /turf/open/floor/plating, /area/maintenance/aft) "bYa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/virology) "bYb" = ( -/obj/machinery/vending/cigarette{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/engine/break_room) "bYc" = ( /obj/machinery/disposal/bin, /obj/structure/sign/deathsposal{ - pixel_x = 0; pixel_y = -32 }, /obj/structure/disposalpipe/trunk{ @@ -46474,7 +44921,6 @@ /obj/machinery/button/door{ id = "xenobio2"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -46484,8 +44930,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -46588,8 +45033,7 @@ /area/science/misc_lab) "bYp" = ( /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/yellow/side{ dir = 10 @@ -46623,8 +45067,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -46644,8 +45087,7 @@ /area/maintenance/port/aft) "bYx" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/port/aft) @@ -46739,18 +45181,14 @@ "bYM" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/hallway/primary/aft) @@ -46780,8 +45218,7 @@ /area/engine/atmos) "bYS" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -46835,7 +45272,6 @@ /area/medical/virology) "bZa" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -46878,8 +45314,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -46947,9 +45382,9 @@ /area/tcommsat/server) "bZo" = ( /obj/structure/cable{ - d1 = 2; + d1 = 4; d2 = 8; - icon_state = "2-8" + icon_state = "4-8" }, /turf/open/floor/circuit{ name = "Mainframe Base"; @@ -46983,6 +45418,10 @@ icon_state = "0-2"; d2 = 2 }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, /turf/open/floor/plating, /area/tcommsat/computer) "bZr" = ( @@ -47021,8 +45460,7 @@ /area/tcommsat/computer) "bZw" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47044,8 +45482,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ dir = 8 @@ -47072,43 +45509,42 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bZC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/door/airlock/glass_command{ - name = "Chief Engineer"; - req_access_txt = "56" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + id = "ceprivacy"; + name = "privacy shutter" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 }, -/area/crew_quarters/heads/chief) -"bZD" = ( -/obj/structure/grille, +/obj/structure/cable, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"bZD" = ( +/obj/structure/grille, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" + icon_state = "0-4"; + d2 = 4 }, /obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bZE" = ( @@ -47140,8 +45576,7 @@ /area/engine/atmos) "bZH" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/item/weapon/wrench, /turf/open/floor/plasteel, @@ -47205,7 +45640,6 @@ /area/medical/virology) "bZQ" = ( /obj/machinery/atmospherics/components/binary/valve/open{ - icon_state = "mvalve_map"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -47273,15 +45707,13 @@ /obj/machinery/button/door{ id = "xenobio6"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -47326,8 +45758,7 @@ /area/science/misc_lab) "cab" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/corner{ @@ -47359,9 +45790,6 @@ /turf/open/floor/plating/airless, /area/maintenance/port/aft) "cag" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, /obj/machinery/ntnet_relay, /turf/open/floor/circuit{ name = "Mainframe Base"; @@ -47419,13 +45847,8 @@ }, /obj/structure/cable{ d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -47468,8 +45891,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -47524,7 +45946,6 @@ /obj/item/clothing/glasses/meson, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel, @@ -47541,8 +45962,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -47612,19 +46032,16 @@ department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "caF" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -47663,7 +46080,6 @@ "caJ" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/space, @@ -47807,8 +46223,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -47826,8 +46241,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ id = "xenobio1"; @@ -47839,8 +46253,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/window/northleft{ dir = 4; @@ -47875,11 +46288,8 @@ /turf/open/floor/engine, /area/science/misc_lab) "cba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/engine, /area/science/misc_lab) @@ -47890,9 +46300,8 @@ /turf/open/floor/engine, /area/science/misc_lab) "cbc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/science/misc_lab) @@ -47900,8 +46309,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Testing Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ d2 = 8; @@ -47991,8 +46399,7 @@ "cbn" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = 0 + name = "SERVER ROOM" }, /turf/closed/wall, /area/tcommsat/computer) @@ -48010,43 +46417,39 @@ /turf/open/floor/plating, /area/tcommsat/computer) "cbp" = ( +/obj/structure/closet/secure_closet/engineering_chief{ + req_access_txt = "0" + }, /obj/machinery/power/apc{ cell_type = 5000; dir = 4; name = "CE Office APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable{ icon_state = "0-2"; + pixel_y = 1; d2 = 2 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/crew_quarters/heads/chief) -"cbq" = ( /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cbq" = ( +/obj/structure/filingcabinet/chestdrawer, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "cbr" = ( @@ -48074,7 +46477,6 @@ c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); - pixel_x = 0; pixel_y = -22 }, /turf/open/floor/plasteel/yellow/corner{ @@ -48104,8 +46506,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -48192,16 +46593,11 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "cbI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "co2 out" }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -48212,7 +46608,6 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -48260,8 +46655,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -48278,7 +46672,6 @@ /obj/machinery/button/door{ id = "xenobio1"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -48288,8 +46681,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light, /obj/effect/turf_decal/stripes/line{ @@ -48337,8 +46729,7 @@ /obj/machinery/camera{ c_tag = "Testing Chamber"; dir = 1; - network = list("Test","RD"); - pixel_x = 0 + network = list("Test","RD") }, /obj/machinery/light, /turf/open/floor/engine, @@ -48463,34 +46854,11 @@ }, /area/tcommsat/computer) "ccj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/weapon/stamp/ce, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "cck" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/crew_quarters/heads/chief) -"ccl" = ( /obj/structure/cable{ d1 = 1; d2 = 2; @@ -48501,16 +46869,20 @@ d2 = 4; icon_state = "2-4" }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"ccl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "ccm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -48668,7 +47040,6 @@ /area/engine/atmos) "ccE" = ( /obj/structure/sign/nosmoking_2{ - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plating, @@ -48784,8 +47155,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -48820,8 +47190,7 @@ /area/science/misc_lab) "ccT" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, @@ -48927,8 +47296,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -48940,8 +47308,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -48959,39 +47326,25 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) "cdk" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/modular_computer/console/preset/engineering, -/turf/open/floor/plasteel, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/vault, /area/engine/engineering) "cdl" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/carpet, /area/chapel/main) "cdm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/paper/monitorkey, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cdn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -49002,8 +47355,7 @@ /area/engine/engineering) "cdo" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/closet/radiation, /turf/open/floor/plasteel, @@ -49011,11 +47363,8 @@ "cdp" = ( /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -49082,15 +47431,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) "cdw" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel, @@ -49123,8 +47470,6 @@ node1_concentration = 0.8; node2_concentration = 0.2; on = 1; - pixel_x = 0; - pixel_y = 0; target_pressure = 4500 }, /turf/open/floor/plasteel, @@ -49255,8 +47600,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -49287,32 +47631,28 @@ }, /area/science/misc_lab) "cdT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, /turf/open/floor/plasteel, /area/engine/engineering) "cdU" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/item/weapon/storage/fancy/cigarettes, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/structure/chair/office/light{ + dir = 4 }, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cdV" = ( /obj/structure/table, @@ -49334,11 +47674,8 @@ "cdX" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -49346,8 +47683,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -49405,7 +47741,6 @@ "ceg" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light, @@ -49434,9 +47769,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "cek" = ( /obj/machinery/door/poddoor/preopen{ @@ -49444,9 +47777,7 @@ name = "engineering security door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "cel" = ( /obj/machinery/door/poddoor/preopen{ @@ -49455,9 +47786,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "cem" = ( /obj/structure/disposalpipe/segment, @@ -49465,27 +47794,22 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) "cen" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) "ceo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/machinery/keycard_auth{ + pixel_y = -28 }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cep" = ( /obj/structure/sign/securearea, @@ -49529,21 +47853,20 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/window/fulltile, /turf/open/floor/plating, /area/engine/engineering) "cev" = ( /obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/engine/engineering) "cew" = ( @@ -49558,9 +47881,8 @@ dir = 4; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -49595,8 +47917,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plating, @@ -49615,7 +47936,6 @@ /area/maintenance/aft) "ceE" = ( /obj/structure/sign/fire{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -49666,7 +47986,6 @@ /area/maintenance/starboard/aft) "ceN" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -49713,7 +48032,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -49778,11 +48096,11 @@ icon_state = "0-4"; d2 = 4 }, -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, /obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "cfd" = ( @@ -49800,19 +48118,16 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/disposalpipe/segment, /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -49903,11 +48218,11 @@ /turf/open/floor/plating, /area/maintenance/aft) "cfr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; - on = 1; - pressure_checks = 0 + pressure_checks = 0; + name = "killroom vent" }, /obj/machinery/camera{ c_tag = "Xenobiology Kill Room"; @@ -49969,8 +48284,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ dir = 1 @@ -49980,12 +48294,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -50016,8 +48328,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -50036,30 +48347,27 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/chief) "cfG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/engine/engineering) "cfH" = ( +/obj/machinery/button/door{ + id = "ceprivacy"; + name = "Privacy Shutters Control"; + pixel_y = 26 + }, +/obj/machinery/holopad, /obj/machinery/light{ dir = 1 }, -/obj/machinery/keycard_auth{ - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "cfI" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/yellow/side{ @@ -50138,7 +48446,7 @@ "cfS" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4; - initialize_directions = 12 + }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -50167,8 +48475,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -50182,7 +48489,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Incinerator APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable, @@ -50195,11 +48501,8 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -50208,7 +48511,6 @@ /area/maintenance/disposal/incinerator) "cfZ" = ( /obj/machinery/light_switch{ - pixel_x = 0; pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50231,7 +48533,6 @@ "cgb" = ( /obj/machinery/disposal/bin, /obj/structure/sign/deathsposal{ - pixel_x = 0; pixel_y = 32 }, /obj/structure/disposalpipe/trunk, @@ -50306,14 +48607,10 @@ /turf/open/floor/plating, /area/science/xenobiology) "cgl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "killroom vent" }, /turf/open/floor/circuit{ name = "Killroom Floor"; @@ -50324,8 +48621,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -50344,8 +48640,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, @@ -50455,8 +48750,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) @@ -50496,8 +48790,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /turf/closed/wall/r_wall, /area/maintenance/solars/port/aft) @@ -50506,8 +48799,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -50566,8 +48858,7 @@ department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/computer/apc_control, /turf/open/floor/plasteel/neutral{ @@ -50579,8 +48870,18 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cgO" = ( -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "cgP" = ( @@ -50599,9 +48900,7 @@ /obj/machinery/camera{ c_tag = "Engineering East"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel/yellow/corner{ @@ -50622,6 +48921,10 @@ d2 = 2 }, /obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "cgT" = ( @@ -50639,9 +48942,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engine_smes) "cgU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50784,13 +49085,11 @@ /area/maintenance/disposal/incinerator) "chm" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/airalarm{ desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; - icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; @@ -51009,8 +49308,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51025,8 +49323,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -51113,8 +49410,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; @@ -51164,16 +49460,14 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/table/reinforced, /obj/item/weapon/tank/internals/emergency_oxygen/engi{ - pixel_x = 5; - pixel_y = 0 + pixel_x = 5 }, /obj/item/clothing/gloves/color/black, /obj/item/clothing/glasses/meson/engine, @@ -51200,8 +49494,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51222,28 +49515,26 @@ /turf/open/floor/plating, /area/engine/engineering) "cia" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, /obj/machinery/light{ dir = 1 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellow/side, +/turf/open/floor/plasteel, /area/engine/engineering) "cib" = ( /obj/machinery/power/apc{ cell_type = 15000; dir = 1; name = "Engineering APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -51253,56 +49544,78 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "cic" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cid" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 1; + name = "Engineering APC"; + pixel_y = 25 + }, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" +/turf/open/floor/plasteel, +/area/engine/engineering) +"cie" = ( +/obj/effect/turf_decal/bot{ + dir = 1 }, /obj/structure/table, /obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cid" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cie" = ( +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cif" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cif" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, /obj/structure/cable{ + d1 = 4; d2 = 8; - icon_state = "0-8" + icon_state = "4-8" }, -/obj/structure/table, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/yellow/side, +/turf/open/floor/plasteel, /area/engine/engineering) "cig" = ( /turf/closed/wall, @@ -51318,8 +49631,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51336,42 +49648,20 @@ /turf/open/floor/engine, /area/engine/engineering) "cij" = ( -/obj/machinery/computer/station_alert, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/vault, /area/engine/engineering) "cik" = ( -/obj/machinery/computer/station_alert, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -10; - req_access_txt = "10" - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for secure storage."; - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_x = -24; - pixel_y = 0; - req_access_txt = "11" - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = -24; - pixel_y = 10; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/machinery/computer/apc_control, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 }, +/turf/open/floor/plasteel/vault, /area/crew_quarters/heads/chief) "cil" = ( /obj/structure/rack{ @@ -51383,33 +49673,27 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cim" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chief_engineer, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cin" = ( -/obj/structure/closet/secure_closet/engineering_chief{ - req_access_txt = "0" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/crew_quarters/heads/chief) -"cio" = ( /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) +"cio" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/stamp/ce, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "cip" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -51423,6 +49707,10 @@ /obj/structure/grille, /obj/structure/cable, /obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "cir" = ( @@ -51476,8 +49764,7 @@ /area/maintenance/disposal/incinerator) "ciz" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -51591,8 +49878,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -51699,12 +49985,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cjb" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel{ + name = "floor" }, -/turf/open/floor/plasteel, /area/engine/engineering) "cjc" = ( /obj/effect/turf_decal/stripes/line{ @@ -51718,16 +50002,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/sign/nosmoking_2{ - pixel_y = 32 +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/obj/machinery/camera{ - c_tag = "Engineering Power Storage" +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, /area/engine/engineering) "cje" = ( /obj/structure/cable{ @@ -51739,31 +50019,36 @@ /area/engine/engineering) "cjf" = ( /obj/structure/cable{ - d1 = 4; + d1 = 1; d2 = 8; - icon_state = "4-8" + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /obj/structure/chair/office/dark{ dir = 1 }, /obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/engineering) "cjg" = ( +/obj/machinery/computer/card/minor/ce, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = -32 + }, /obj/machinery/camera{ c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13") }, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/computer/card/minor/ce, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, +/turf/open/floor/plasteel/vault, /area/crew_quarters/heads/chief) "cjh" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -51781,24 +50066,27 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) "cjj" = ( +/obj/machinery/light{ + dir = 4 + }, /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 }, -/obj/structure/filingcabinet/chestdrawer, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/crew_quarters/heads/chief) "cjk" = ( @@ -51859,11 +50147,8 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "cjt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -51951,8 +50236,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) @@ -51960,8 +50244,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 + name = "HIGH VOLTAGE" }, /turf/closed/wall/r_wall, /area/maintenance/solars/starboard/aft) @@ -52038,11 +50321,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cjQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -52062,20 +50342,21 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cjT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) "cjU" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/machinery/computer/station_alert, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of your own office."; + dir = 4; + name = "Research Monitor"; + network = list("RD"); + pixel_x = -24 }, +/turf/open/floor/plasteel/vault, /area/crew_quarters/heads/chief) "cjV" = ( /obj/structure/closet/emcloset, @@ -52086,11 +50367,23 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/misc_lab) "cjX" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cjY" = ( +/obj/structure/table/reinforced, /obj/item/weapon/cartridge/engineering{ pixel_x = 4; pixel_y = 5 @@ -52102,28 +50395,15 @@ /obj/item/weapon/cartridge/engineering{ pixel_x = 3 }, -/obj/structure/table/reinforced, -/obj/machinery/light_switch{ - pixel_x = 27 - }, /obj/item/weapon/cartridge/atmos, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/crew_quarters/heads/chief) -"cjY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/open/floor/plasteel/neutral{ - dir = 2 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cjZ" = ( /obj/structure/sign/securearea, @@ -52247,8 +50527,7 @@ /area/maintenance/starboard/aft) "ckq" = ( /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) @@ -52266,8 +50545,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) @@ -52346,12 +50624,18 @@ /turf/open/floor/plating, /area/engine/engineering) "ckD" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, /obj/structure/table, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/weapon/storage/box/lights/mixed, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ckE" = ( @@ -52369,10 +50653,28 @@ /turf/open/floor/plasteel, /area/engine/engineering) "ckG" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/engineering_singularity_safety, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "ckH" = ( @@ -52384,7 +50686,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "ckI" = ( -/obj/structure/tank_dispenser, +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "ckJ" = ( @@ -52410,7 +50715,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "ckK" = ( -/obj/machinery/suit_storage_unit/engine, +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "ckL" = ( @@ -52447,18 +50755,26 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/misc_lab) "ckO" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, /area/crew_quarters/heads/chief) "ckP" = ( /obj/machinery/door/airlock/glass_command{ @@ -52528,16 +50844,11 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "ckW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2 out" }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -52557,16 +50868,11 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "ckZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "o2 out" }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -52586,16 +50892,11 @@ /turf/open/floor/engine/air, /area/engine/atmos) "clc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; - icon_state = "vent_map"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -52617,8 +50918,7 @@ /area/maintenance/disposal/incinerator) "clf" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/floorgrime, @@ -52639,7 +50939,6 @@ "clh" = ( /obj/machinery/light/small, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -31 }, /obj/machinery/computer/turbine_computer{ @@ -52692,7 +50991,6 @@ "clm" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -52789,7 +51087,6 @@ /area/maintenance/solars/starboard/aft) "clz" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -52807,7 +51104,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -52949,7 +51245,7 @@ }, /obj/item/weapon/book/manual/wiki/engineering_construction, /obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel/yellow/side{ +/turf/open/floor/plasteel/yellow/corner{ dir = 1 }, /area/engine/engineering) @@ -53163,7 +51459,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -53191,7 +51486,6 @@ /area/engine/engine_smes) "cmA" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -53204,7 +51498,6 @@ /area/engine/engine_smes) "cmB" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -53249,9 +51542,9 @@ pixel_x = -24 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 2; + d2 = 4; + icon_state = "2-4" }, /turf/open/floor/plasteel/yellow/side{ dir = 9 @@ -53317,8 +51610,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -53335,8 +51627,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -53349,8 +51640,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -53406,8 +51696,7 @@ dir = 8 }, /obj/structure/sign/fire{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -53417,8 +51706,7 @@ on = 1 }, /obj/structure/sign/fire{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/doorButtons/access_button{ idSelf = "incinerator_access_control"; @@ -53497,8 +51785,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) @@ -53511,8 +51798,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 2; @@ -53537,10 +51823,7 @@ /turf/open/space, /area/solar/port/aft) "cnm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -53587,15 +51870,9 @@ /obj/machinery/camera{ c_tag = "SMES Room"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 + network = list("SS13") }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/engine/engine_smes) "cnq" = ( @@ -53680,12 +51957,22 @@ /turf/open/floor/mineral/titanium, /area/shuttle/syndicate) "cnA" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) "cnB" = ( @@ -53753,8 +52040,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -53791,8 +52077,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) @@ -53835,7 +52120,6 @@ icon_state = "0-4" }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /turf/open/floor/plasteel/black, @@ -53854,7 +52138,6 @@ /area/engine/engine_smes) "cnP" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/window/reinforced, @@ -53902,9 +52185,7 @@ /obj/machinery/camera{ c_tag = "SMES Access"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -53928,8 +52209,7 @@ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -54136,21 +52416,14 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "coq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 0; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon{ + dir = 1 }, /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/engine/vacuum, @@ -54282,9 +52555,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engine_smes) "coC" = ( /obj/machinery/door/firedoor, @@ -54376,8 +52647,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/grille, /obj/structure/window/reinforced/highpressure/fulltile, @@ -54403,8 +52673,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54499,9 +52768,7 @@ "coV" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -54545,8 +52812,7 @@ /area/engine/engineering) "cpa" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -54606,8 +52872,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -54618,9 +52883,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -54639,14 +52903,10 @@ "cpm" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -54659,9 +52919,8 @@ /turf/open/floor/plasteel, /area/engine/engine_smes) "cpo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -54670,15 +52929,11 @@ /area/engine/engine_smes) "cpp" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/effect/turf_decal/stripes/line{ @@ -54691,8 +52946,7 @@ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -54727,8 +52981,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_engineering{ @@ -54746,8 +52999,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -54764,21 +53016,18 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) "cpy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) @@ -54820,8 +53069,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) @@ -54872,7 +53120,6 @@ /area/shuttle/pod_4) "cpK" = ( /obj/machinery/computer/shuttle/pod{ - pixel_x = 0; pixel_y = -32; possible_destinations = "pod_lavaland2"; shuttleId = "pod2" @@ -54883,7 +53130,6 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/mineral/titanium/blue, @@ -54894,7 +53140,6 @@ pixel_y = -28 }, /obj/item/device/radio/intercom{ - pixel_x = 0; pixel_y = 25 }, /obj/structure/chair{ @@ -54985,11 +53230,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cpW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -55048,31 +53290,30 @@ /area/engine/engineering) "cqd" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/meter, /turf/open/floor/engine, /area/engine/engineering) "cqe" = ( /obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, /turf/open/floor/engine, /area/engine/engineering) "cqf" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/light, /turf/open/floor/engine, /area/engine/engineering) "cqg" = ( @@ -55086,12 +53327,8 @@ /area/engine/engineering) "cqh" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/camera{ @@ -55100,29 +53337,31 @@ network = list("SS13","Engine"); pixel_x = 23 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "cqi" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/machinery/light, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cqj" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/button/door{ id = "engsm"; name = "Radiation Shutters Control"; - pixel_x = 0; pixel_y = -24; req_access_txt = "10" }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "cqk" = ( @@ -55141,7 +53380,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 1 }, /turf/open/floor/engine, @@ -55159,8 +53398,7 @@ /area/maintenance/port/aft) "cqo" = ( /obj/structure/sign/pods{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -55188,9 +53426,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) "cqr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -55198,10 +53435,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "cqs" = ( -/obj/structure/sign/fire{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/structure/sign/fire, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cqt" = ( @@ -55229,7 +53463,6 @@ amount = 10 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -55244,15 +53477,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) "cqz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -55273,12 +53504,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine, /area/engine/engineering) "cqC" = ( @@ -55306,7 +53537,7 @@ /turf/open/floor/engine, /area/engine/supermatter) "cqF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, /area/engine/supermatter) "cqG" = ( @@ -55339,9 +53570,7 @@ /turf/open/floor/plating, /area/engine/engineering) "cqI" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/floor/plating, /area/shuttle/syndicate) "cqJ" = ( @@ -55482,7 +53711,6 @@ dir = 4; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null; req_one_access_txt = "24;10" }, @@ -55529,9 +53757,7 @@ /turf/open/floor/plating, /area/engine/engineering) "crf" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating, /area/shuttle/syndicate) "crg" = ( @@ -55568,9 +53794,7 @@ /area/solar/starboard/aft) "crl" = ( /obj/structure/table, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /turf/open/floor/plating, /area/maintenance/port/aft) "crm" = ( @@ -55626,7 +53850,6 @@ /area/engine/engineering) "crs" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, @@ -55717,8 +53940,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -55745,8 +53967,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -55801,7 +54022,6 @@ /area/engine/engineering) "crL" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -55997,7 +54217,6 @@ dir = 1; name = "turbine vent monitor"; network = list("Turbine"); - pixel_x = 0; pixel_y = -29 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -56021,8 +54240,7 @@ pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, @@ -56086,8 +54304,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/supermatter) @@ -56117,9 +54334,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 0; - pixel_y = 0 + name = "RADIOACTIVE AREA" }, /turf/closed/wall/r_wall, /area/engine/engineering) @@ -56136,17 +54351,21 @@ /turf/open/floor/plating/airless, /area/engine/engineering) "csH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "csI" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "csJ" = ( @@ -56155,8 +54374,7 @@ /area/engine/engineering) "csK" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -56201,9 +54419,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 }, /turf/open/floor/engine, /area/engine/engineering) @@ -56215,7 +54432,6 @@ /turf/open/floor/plasteel/black, /area/engine/engineering) "csR" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -56241,9 +54457,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -56255,7 +54469,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -56281,8 +54494,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -56325,7 +54537,6 @@ "cth" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/machinery/light/small, @@ -56344,14 +54555,9 @@ c_tag = "MiniSat Pod Access"; dir = 1; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/light/small, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) @@ -56448,11 +54654,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) "ctu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) @@ -56462,8 +54665,7 @@ "ctw" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/computer/station_alert, /turf/open/floor/plasteel/vault{ @@ -56530,14 +54732,11 @@ /obj/machinery/button/door{ id = "teledoor"; name = "MiniSat Teleport Shutters Control"; - pixel_x = 0; pixel_y = 25; req_access_txt = "17;65" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -56551,8 +54750,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) @@ -56607,7 +54805,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "ctN" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /obj/structure/lattice, @@ -56616,22 +54813,19 @@ "ctO" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/space, /area/space) "ctP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctQ" = ( /obj/structure/table, /obj/machinery/microwave{ - pixel_x = 0; pixel_y = 4 }, /obj/machinery/firealarm{ @@ -56646,9 +54840,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 0; - pixel_y = 0 + name = "RADIOACTIVE AREA" }, /turf/closed/wall, /area/engine/engineering) @@ -56660,8 +54852,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) @@ -56696,8 +54887,7 @@ /obj/machinery/power/apc{ dir = 4; name = "MiniSat Foyer APC"; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/chair, /turf/open/floor/plasteel/black, @@ -56711,13 +54901,10 @@ c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -56738,7 +54925,6 @@ "cub" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/machinery/light/small, @@ -56762,7 +54948,6 @@ enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; - pixel_x = 0; pixel_y = -24; req_access_txt = "65" }, @@ -56912,9 +55097,8 @@ pixel_y = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 @@ -57007,14 +55191,11 @@ c_tag = "MiniSat Atmospherics"; dir = 4; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/space_heater, /obj/effect/turf_decal/stripes/line{ @@ -57028,14 +55209,10 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 @@ -57054,8 +55231,6 @@ c_tag = "MiniSat Antechamber"; dir = 4; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/turretid{ @@ -57064,7 +55239,6 @@ icon_state = "control_standby"; name = "Atmospherics Turret Control"; pixel_x = -27; - pixel_y = 0; req_access_txt = "65" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -57090,7 +55264,6 @@ icon_state = "control_standby"; name = "Service Bay Turret Control"; pixel_x = 27; - pixel_y = 0; req_access_txt = "65" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers, @@ -57117,8 +55290,7 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -57128,10 +55300,8 @@ }, /area/ai_monitored/turret_protected/aisat/service) "cuI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat/service) @@ -57150,13 +55320,10 @@ c_tag = "MiniSat Service Bay"; dir = 8; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/rack, @@ -57175,8 +55342,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -57187,8 +55353,7 @@ /obj/machinery/power/apc{ dir = 8; name = "MiniSat Atmospherics APC"; - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/structure/cable{ icon_state = "0-4"; @@ -57204,8 +55369,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -57216,8 +55380,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/ai_slipper{ uses = 10 @@ -57229,8 +55392,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57241,8 +55403,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57258,8 +55419,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57294,8 +55454,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -57306,8 +55465,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57323,8 +55481,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat/service) @@ -57332,8 +55489,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/ai_slipper{ uses = 10 @@ -57349,8 +55505,7 @@ /obj/machinery/power/apc{ dir = 4; name = "MiniSat Service Bay APC"; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/cable{ d2 = 8; @@ -57371,9 +55526,8 @@ }, /area/ai_monitored/turret_protected/aisat/atmos) "cuZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /mob/living/simple_animal/bot/floorbot, /turf/open/floor/plasteel/darkblue/corner, @@ -57387,8 +55541,7 @@ /area/ai_monitored/turret_protected/ai) "cvc" = ( /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/porta_turret/ai{ dir = 4 @@ -57409,8 +55562,7 @@ dir = 4 }, /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -57424,11 +55576,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/turretid{ control_area = "AI Satellite Hallway"; @@ -57446,9 +55595,8 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai) "cvg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /mob/living/simple_animal/bot/cleanbot, /turf/open/floor/plasteel/darkblue/corner{ @@ -57553,7 +55701,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = 28 }, /obj/item/device/radio/intercom{ @@ -57570,7 +55717,6 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = 0; pixel_y = -25 }, /turf/open/floor/circuit, @@ -57597,7 +55743,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = 28 }, /obj/item/device/radio/intercom{ @@ -57614,7 +55759,6 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = 0; pixel_y = -25 }, /turf/open/floor/circuit, @@ -57647,8 +55791,6 @@ c_tag = "MiniSat External NorthWest"; dir = 8; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, @@ -57659,7 +55801,6 @@ installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/circuit, @@ -57679,11 +55820,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat/hallway) @@ -57693,7 +55831,6 @@ installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/circuit, @@ -57704,16 +55841,13 @@ c_tag = "MiniSat External NorthEast"; dir = 4; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, /area/space) "cvL" = ( /obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -57732,8 +55866,7 @@ /area/ai_monitored/turret_protected/aisat/hallway) "cvN" = ( /obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable{ d1 = 1; @@ -57796,8 +55929,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat/hallway) @@ -57829,8 +55961,7 @@ "cvZ" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/aisat/hallway) @@ -57839,8 +55970,7 @@ /obj/machinery/power/apc{ dir = 4; name = "MiniSat Chamber Hallway APC"; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/aisat/hallway) @@ -57859,9 +55989,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat/hallway) @@ -57945,10 +56074,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/firealarm{ dir = 4; @@ -57957,9 +56084,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "cwl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) @@ -57986,8 +56112,7 @@ "cwp" = ( /obj/structure/chair/office/dark, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) @@ -58034,7 +56159,6 @@ /area/ai_monitored/turret_protected/ai) "cwv" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/status_display{ @@ -58046,8 +56170,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -58091,14 +56214,12 @@ }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "cwB" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/ai_status_display{ @@ -58175,8 +56296,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -58223,7 +56343,6 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/titanium/blue, @@ -58244,7 +56363,6 @@ "cwR" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/mineral/titanium/blue, @@ -58263,8 +56381,7 @@ /area/hallway/secondary/entry) "cwU" = ( /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) @@ -58383,7 +56500,6 @@ /area/security/warden) "cxl" = ( /obj/machinery/computer/shuttle/pod{ - pixel_x = 0; pixel_y = -32; possible_destinations = "pod_lavaland1"; shuttleId = "pod1" @@ -58394,7 +56510,6 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/mineral/titanium/blue, @@ -58416,8 +56531,7 @@ /area/shuttle/escape) "cxp" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -58449,9 +56563,8 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "cxt" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/transport) @@ -58474,7 +56587,6 @@ pixel_y = -28 }, /obj/item/device/radio/intercom{ - pixel_x = 0; pixel_y = 25 }, /obj/structure/chair{ @@ -58485,7 +56597,6 @@ /area/shuttle/pod_1) "cxy" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced, @@ -58510,12 +56621,10 @@ /area/shuttle/transport) "cxD" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/transport) @@ -58589,7 +56698,6 @@ /area/shuttle/escape) "cxL" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/titanium/blue, @@ -58632,14 +56740,12 @@ /area/shuttle/escape) "cxR" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "cxS" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -58653,8 +56759,7 @@ }, /obj/item/weapon/crowbar, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -58746,9 +56851,8 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cyf" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -58796,8 +56900,7 @@ /area/hallway/secondary/entry) "cym" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -58807,7 +56910,6 @@ /area/shuttle/abandoned) "cyo" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -58914,9 +57016,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cyF" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -58969,8 +57070,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -59060,8 +57160,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 1; @@ -59213,9 +57312,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "czs" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /turf/open/floor/plating/airless, /area/shuttle/supply) "czt" = ( @@ -59223,9 +57320,7 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "czu" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /turf/open/floor/plating/airless, /area/shuttle/supply) "czv" = ( @@ -59275,7 +57370,6 @@ /area/shuttle/abandoned) "czC" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/effect/decal/remains/human, @@ -59289,6 +57383,9 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "czE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "czF" = ( @@ -59315,8 +57412,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -59346,7 +57442,6 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/mineral/titanium/blue, @@ -59396,8 +57491,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -59433,8 +57527,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -59445,8 +57538,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -59471,8 +57563,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -59577,8 +57668,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/engine/engine_smes) @@ -59595,7 +57685,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ icon_state = "1-4"; d1 = 1; @@ -59606,6 +57695,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine, /area/engine/engineering) "cAm" = ( @@ -59650,12 +57740,10 @@ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 }, /turf/open/floor/engine, /area/engine/engineering) @@ -59679,14 +57767,13 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/obj/machinery/meter, /turf/open/floor/engine, /area/engine/engineering) "cAt" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -59719,8 +57806,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/yellow{ d1 = 1; @@ -59797,8 +57883,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/power/apc{ dir = 2; @@ -59857,8 +57942,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -59917,7 +58001,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = -31 }, /obj/item/device/radio/intercom{ @@ -59954,8 +58037,6 @@ c_tag = "MiniSat External SouthWest"; dir = 8; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, @@ -59976,9 +58057,8 @@ pixel_x = 9; pixel_y = 2 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) @@ -59993,9 +58073,8 @@ pixel_x = -9; pixel_y = 2 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) @@ -60005,8 +58084,6 @@ c_tag = "MiniSat External SouthEast"; dir = 4; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, @@ -60015,8 +58092,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/closed/wall, /area/ai_monitored/turret_protected/ai) @@ -60048,7 +58124,6 @@ /area/ai_monitored/turret_protected/ai) "cBc" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/ai_slipper{ @@ -60066,7 +58141,6 @@ "cBe" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/holopad, @@ -60077,8 +58151,6 @@ c_tag = "MiniSat External South"; dir = 2; network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, @@ -60285,8 +58357,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/white, @@ -60316,11 +58387,8 @@ name = "Station Intercom (General)"; pixel_y = -35 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, @@ -60331,12 +58399,9 @@ /area/maintenance/starboard/aft) "cBM" = ( /obj/structure/table/reinforced, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/paper/monitorkey, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cBN" = ( /obj/structure/disposalpipe/segment{ @@ -60345,8 +58410,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -60376,7 +58440,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "cBS" = ( @@ -60540,8 +58606,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) @@ -60552,8 +58617,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Detective's Office APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable, /turf/open/floor/plating, @@ -60629,7 +58693,6 @@ /area/shuttle/transport) "cCy" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -60647,9 +58710,7 @@ /area/space) "cCB" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -60770,9 +58831,8 @@ /turf/open/space, /area/space/nearstation) "cCT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/closet/firecloset, @@ -60798,13 +58858,15 @@ /turf/open/space, /area/space/nearstation) "cCY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/station_engineer, /turf/open/floor/plasteel, /area/engine/engineering) "cCZ" = ( @@ -60854,8 +58916,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -60869,8 +58930,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/table/reinforced, /obj/item/weapon/storage/toolbox/mechanical, @@ -60885,8 +58945,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -60918,7 +58977,6 @@ "cDk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/structure/grille, @@ -60961,8 +59019,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) @@ -60970,23 +59027,18 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) "cDr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) @@ -61002,8 +59054,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/engine/engineering) @@ -61024,15 +59075,14 @@ /area/space/nearstation) "cDv" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - icon_state = "filter_off_f"; +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 4 }, /turf/open/floor/engine, /area/engine/engineering) "cDw" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 1 }, /turf/open/floor/engine, @@ -61088,8 +59138,6 @@ /area/engine/engineering) "cDD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -61119,12 +59167,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "cDH" = ( @@ -61307,16 +59355,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine, /area/engine/engineering) "cEf" = ( @@ -61331,7 +59378,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/light{ dir = 8 }, @@ -61340,6 +59386,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "cEi" = ( @@ -61350,9 +59397,7 @@ /obj/machinery/camera{ c_tag = "Engineering Supermatter Starboard"; dir = 8; - network = list("SS13","Engine"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13","Engine") }, /turf/open/floor/engine, /area/engine/engineering) @@ -61442,8 +59487,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/supermatter) @@ -61472,17 +59516,14 @@ /turf/open/floor/plating, /area/engine/supermatter) "cEw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine, /area/engine/supermatter) "cEx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -61490,7 +59531,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/highpressure/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -61517,8 +59557,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/supermatter) @@ -61536,10 +59575,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/obj/machinery/meter, /turf/open/floor/engine, /area/engine/engineering) "cEC" = ( @@ -61619,7 +59658,6 @@ }, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -61639,8 +59677,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/tank/internals/plasma, /turf/open/floor/plating, @@ -61664,17 +59701,14 @@ /turf/open/floor/plating, /area/engine/engineering) "cEP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine, /area/engine/engineering) "cEQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/engine/engineering) @@ -61682,7 +59716,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -61710,8 +59743,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/supermatter) @@ -61729,7 +59761,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "cEV" = ( @@ -61737,12 +59769,10 @@ /area/engine/engineering) "cEW" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -61771,11 +59801,8 @@ /turf/open/space, /area/space) "cFb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/engine, /area/engine/engineering) @@ -61814,17 +59841,14 @@ /turf/open/floor/plating, /area/engine/supermatter) "cFf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine, /area/engine/engineering) "cFg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/engine/engineering) @@ -61857,8 +59881,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/supermatter) @@ -62019,62 +60042,49 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/engine, /area/engine/engineering) "cFK" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /turf/open/floor/engine, /area/engine/engineering) "cFL" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "co2"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/engine, /area/engine/engineering) "cFM" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/machinery/light{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cFN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "cFO" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Engineering Supermatter Aft"; dir = 2; @@ -62082,17 +60092,18 @@ pixel_x = 23 }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/black, /area/engine/engineering) "cFP" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "plasma"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "cFQ" = ( @@ -62108,38 +60119,35 @@ /turf/open/floor/engine, /area/engine/engineering) "cFR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = ""; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "cFS" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cFT" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 9 }, /turf/open/floor/engine, /area/engine/engineering) "cFU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -62194,10 +60202,16 @@ d2 = 8; icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cGf" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "n2" + }, /turf/open/floor/engine, /area/engine/engineering) "cGg" = ( @@ -62206,6 +60220,9 @@ d2 = 4; icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cGh" = ( @@ -62300,10 +60317,10 @@ /turf/open/floor/engine, /area/engine/engineering) "cGx" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, /turf/open/floor/engine, /area/engine/engineering) "cGy" = ( @@ -62338,28 +60355,28 @@ /turf/open/floor/engine, /area/engine/engineering) "cGC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cGD" = ( /obj/structure/grille, /obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/engine/engineering) "cGE" = ( /obj/structure/grille, /obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, /turf/open/floor/plating, @@ -62424,7 +60441,7 @@ /turf/open/floor/plating, /area/engine/engineering) "cGM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plating/airless, /area/engine/engineering) "cGN" = ( @@ -62452,11 +60469,8 @@ /turf/open/space, /area/space) "cGR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -62502,22 +60516,21 @@ /turf/open/floor/plating, /area/engine/engineering) "cGY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/engine/engineering) "cGZ" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 + dir = 1; + volume_rate = 200 }, /turf/open/floor/plating/airless, /area/engine/engineering) "cHa" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/black, @@ -62745,8 +60758,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62770,8 +60782,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62788,8 +60799,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62806,8 +60816,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -62829,8 +60838,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62847,8 +60855,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62867,8 +60874,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -62896,8 +60902,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/circuit, /area/science/robotics/mechbay) @@ -62931,9 +60936,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cHQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -63010,9 +61014,8 @@ }, /area/science/robotics/lab) "cIa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -63050,8 +61053,7 @@ /area/science/robotics/lab) "cIg" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /obj/docking_port/mobile/arrivals, /obj/docking_port/stationary{ @@ -63093,17 +61095,13 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "cIl" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "cIm" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -63128,17 +61126,13 @@ }, /area/shuttle/syndicate) "cIq" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "cIr" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -63151,7 +61145,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -63291,7 +61284,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -63359,8 +61351,6 @@ "cIY" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -63412,7 +61402,6 @@ id = "smindicate"; name = "external door control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "150" }, /obj/docking_port/mobile{ @@ -63438,16 +61427,12 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cJg" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -63484,7 +61469,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -63499,16 +61483,12 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) "cJo" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -63569,8 +61549,6 @@ "cJz" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -63673,8 +61651,7 @@ /area/shuttle/syndicate) "cJR" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -63811,7 +61788,6 @@ /area/shuttle/syndicate) "cKg" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -63864,15 +61840,11 @@ /area/shuttle/syndicate) "cKr" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cKs" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -63886,22 +61858,16 @@ /area/shuttle/syndicate) "cKu" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cKv" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cKw" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -63915,15 +61881,11 @@ /area/shuttle/syndicate) "cKy" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cKz" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -63985,8 +61947,6 @@ /area/shuttle/syndicate) "cKN" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -64120,7 +62080,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -64135,9 +62094,7 @@ "cLf" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -64259,9 +62216,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLw" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -64271,9 +62226,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLy" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -64302,9 +62255,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLC" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -64314,16 +62265,12 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLE" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLF" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -64333,9 +62280,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cLH" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -64374,7 +62319,6 @@ "cLN" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -64452,7 +62396,6 @@ /area/shuttle/abandoned) "cMb" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -64509,11 +62452,10 @@ /area/shuttle/abandoned) "cMl" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) +/area/shuttle/mining) "cMm" = ( /obj/structure/grille, /obj/structure/window/reinforced/highpressure/fulltile, @@ -64595,21 +62537,20 @@ /turf/open/floor/plating, /area/shuttle/arrival) "cMC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the Engine."; dir = 8; layer = 4; name = "Engine Monitor"; network = list("Engine"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/turf/open/floor/plasteel, /area/engine/engineering) "cMD" = ( /turf/closed/wall/r_wall, @@ -65097,8 +63038,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -65110,8 +63050,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -65122,8 +63061,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -65141,8 +63079,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -65150,8 +63087,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Starboard Maintenace APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ d2 = 8; @@ -65194,8 +63130,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -65715,8 +63650,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -65730,8 +63664,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -65745,8 +63678,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -65760,8 +63692,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -65775,8 +63706,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -65790,8 +63720,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -66179,6 +64108,367 @@ }, /turf/closed/wall, /area/security/courtroom) +"cSE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cSF" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cSG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cSH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"cSJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "freon"; + name = "gas filter (freon)" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSL" = ( +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 10; + req_access_txt = "24" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -10; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cSM" = ( +/obj/machinery/computer/station_alert, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/vault, +/area/engine/engineering) +"cSN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSR" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cST" = ( +/obj/effect/landmark/start/station_engineer, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSU" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSV" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cSX" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cSY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cSZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cTa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTb" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTc" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cTd" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"cTe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cTf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cTg" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTh" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTi" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cTj" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTk" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTl" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTn" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cTo" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cTp" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cTq" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cTr" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTs" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cTt" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cTu" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cTv" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cTw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTx" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cTy" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTA" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTB" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cTC" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) (1,1,1) = {" aaa @@ -79390,9 +77680,9 @@ ase avq aum avq -axJ +avq cwH -axJ +avq aAj aBK aCL @@ -80421,7 +78711,7 @@ bsU axf amC alU -auT +aAM aBI aDf aEK @@ -81961,7 +80251,7 @@ avb aaH bOi atO -asK +aud azF aAT aBw @@ -82218,7 +80508,7 @@ aaH bNb apQ atO -asK +aud azF aAS aFP @@ -82475,7 +80765,7 @@ avU avb bOi atO -asK +aud azF aAU aBG @@ -82732,7 +81022,7 @@ alU ali alU atO -asK +aud azF aAP aAP @@ -82989,7 +81279,7 @@ amC amC amC axi -asK +aud azF azF azF @@ -83257,7 +81547,7 @@ aHe aIN aKp aLE -aNm +aNn aOl aPA aQN @@ -85603,13 +83893,13 @@ aaa aaa aaa aaa -akD -akD -ajX -akD -ajX -akD -akD +cTg +cTl +cTn +cTr +cTu +cTw +cTz aaa bCq bPS @@ -85842,7 +84132,7 @@ aYU bbr bcu bfe -bgx +aYb aZE bjm bjr @@ -85860,13 +84150,13 @@ aaa aaa aaa aaa -akD +cTh bGg -amI +cTo cMl bHx -anM -akD +cTx +cTA aaa bLv bPR @@ -86099,7 +84389,7 @@ aPA aPA aPA aWv -bgx +aYb aZE bjp bjr @@ -86117,10 +84407,10 @@ bxx bxu bxu bDi -ajX +cTi bGh bHx -amI +cTs bHx bLt bMF @@ -86374,13 +84664,13 @@ bzP bAS bxu aaa -akD +cTj bGg -amI -amI +cTp +cTt bHx bLs -akD +cTB aaa bLv bPT @@ -86401,7 +84691,7 @@ cdW ceW bCq cgD -cgH +bUs bHE cjI bCq @@ -86631,13 +84921,13 @@ bzR byd bxx aaa -akD -akD -ajX +cTk +cTm +cTq bJc -ajX -akD -akD +cTv +cTy +cTC aaa bCq bPV @@ -86654,11 +84944,11 @@ bYy bHE bTz bHE -cdY +bUs ceY bCq bHE -cgH +bUs bHE bLu bCq @@ -87685,7 +85975,7 @@ bCq bCq bCq bLv -cgH +bUs bLv aaa bCq @@ -87942,7 +86232,7 @@ aoV aoV aoV bLv -cgH +bUs bLv aaa bLv @@ -88199,7 +86489,7 @@ aoV aoV apQ bLv -cgH +bUs bLv aaf cAj @@ -88398,7 +86688,7 @@ ayE ayE aLl aMT -aOu +aOi aPL aPK aSm @@ -88456,7 +86746,7 @@ aoV aoV aoV bLv -cgH +bUs bLv aaa cjJ @@ -88713,7 +87003,7 @@ aoV aoV aoV bLv -cgH +bUs bLv aaa cjJ @@ -88970,7 +87260,7 @@ apQ apQ apQ bLv -cgH +bUs bLv aaf cjJ @@ -89227,7 +87517,7 @@ aoV aoV aoV bLv -cgH +bUs bLv aaa cjJ @@ -89484,7 +87774,7 @@ aoV aoV aoV bLv -cgH +bUs bLv aaa cjJ @@ -89741,7 +88031,7 @@ aoV apQ apQ bLv -cgH +bUs bLv aaf cjJ @@ -89998,7 +88288,7 @@ aoV aoV aoV bCq -cgH +bUs bCq aaa aaf @@ -90255,7 +88545,7 @@ bES bES bES car -cgH +bUs bCq bCq bCq @@ -90500,17 +88790,17 @@ bLv bLv bTA bUu -bVH -bVH -bVH -bVH -bVH -bVH -bVH -bVH -bVH -bVH -bVH +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw caq cbw ccu @@ -90722,7 +89012,7 @@ aJq aLY aJq aJq -bcW +aRh bbV bfo bkS @@ -90952,8 +89242,8 @@ apS aqT apS apS -atX -atX +apS +apS awe axw ayI @@ -90990,12 +89280,12 @@ bmm bnM boV bnM -brT -brT -brT -brT -brT -brT +bnM +bnM +bnM +bnM +bnM +bnM bAe bBg bCq @@ -91013,7 +89303,7 @@ bGp bGp bES bTC -bUw +bAx bVI bWB bWB @@ -91270,14 +89560,14 @@ aaa aaa bCq bTF -bUw +bAx bVI bWD bXA bYB bYz cai -bYz +cSF ccg cdd cea @@ -91527,7 +89817,7 @@ aaf aaf bCq bTE -bUw +bAx bVI bWC bXz @@ -91784,7 +90074,7 @@ bKv bLB bES bMj -bUw +bAx bVI bWF bXC @@ -92047,7 +90337,7 @@ bWE bXB bYC bZo -caj +bWB bWB cch cde @@ -92303,8 +90593,8 @@ bVI bWG bXD bYz -bYz -cam +cSE +bWB bYz bYz cdf @@ -92499,7 +90789,7 @@ cCi awg axy ayv -azE +azP aBn aCb aDD @@ -92756,7 +91046,7 @@ cCi awg axy ayQ -azE +azP aBq aBr aDE @@ -92826,11 +91116,11 @@ cef bVJ cay ccw -cib +cig cjb -ckH -ckE -clH +cjb +cig +cig cmG cnt cob @@ -93013,7 +91303,7 @@ avh awh axz ayO -azE +azP aBp aCc aDF @@ -93084,11 +91374,11 @@ bVJ cay ccw cia -cja -cgR +cSN +cSS ckD -cig -cmF +cTc +cTe cfG cgw coK @@ -93309,7 +91599,7 @@ bnS bwl bxG byR -brT +bnM bBl bCs bDz @@ -93341,7 +91631,7 @@ bVJ cay ccw cid -cgR +cSO cen ckG clJ @@ -93598,10 +91888,10 @@ bVJ cay ccw cic -cBO -cjN -cgR -ceu +cSP +cST +cTa +ceZ clQ cgR cgx @@ -93852,13 +92142,13 @@ bVb bWv cei bVJ -caB +cay ccw cif -cgR -cjP -ckF -ceZ +cSQ +cSU +cTb +cTd ckF ckF cgK @@ -93873,7 +92163,7 @@ cAl cFc cAq cFJ -cDq +cSH cGu cGH cGR @@ -94109,7 +92399,7 @@ bUC bWu bVJ bVJ -caB +cay ccw cie cdT @@ -94368,12 +92658,12 @@ bYp bCq cay ccw -cih -cje -cgR -ckJ -clJ -cmL +cig +cSR +cSV +cig +cig +cTf cgR ccw cDh @@ -94388,7 +92678,7 @@ cMI cMD cFL cGf -cGw +cGu cMm ciZ cHc @@ -94625,12 +92915,12 @@ bYn bZB caC ccw -cig +cSM cjd -cgR +cSW ckI -cig -cmK +clJ +cmL cBO ccw chV @@ -94645,7 +92935,7 @@ cFe cMD cFM czE -cGx +cGu ccw cGT cEj @@ -94880,11 +93170,11 @@ bVf bXm bYE bCq -ceW +bHE ccw cij cjf -cgR +cSX ckK clJ cmL @@ -95046,7 +93336,7 @@ cqG aeX ago agS -ahw +agQ ahR aiJ ajc @@ -95136,13 +93426,13 @@ cbr bVe bXk bYq -ccw -ccw +bCq +ceW ccw cdk cMC -cgR -ckK +cSY +ckI clJ cmL cnv @@ -95158,8 +93448,8 @@ cAm cMH cMN cFO +cSI csC -csQ cMm cGV cEj @@ -95394,20 +93684,20 @@ bVh bXo bYM cfb -cfF cfb cfb cfb cfb cfb -cig +cfb +ccw cmN cgR cgL chX cDq cqj -cqF +cSG crb cru cEx @@ -95651,12 +93941,12 @@ bVg bXn bYG cfb -cfE -cgM +cfF +cfb cik cjg cjU -ckL +cfb clM cfz cgR @@ -95671,9 +93961,9 @@ cEy cEy cFh cMD -cFQ +cFM czE -cGx +cGu ccw cGT cEj @@ -95909,13 +94199,13 @@ bXq bZe cfb cfH -cgO +cSL +cim cim -cgO ceo -ceq +cfb cfa -cmQ +cje cgR ccw cDi @@ -95929,8 +94219,8 @@ cEz cEz cMD cFR -cGf -cGz +cSJ +cGu cMm ciZ cHd @@ -96169,10 +94459,10 @@ cgO ccj cBM cdU -ceo -ceq -clQ -cmQ +cSZ +ckL +cmF +cje cgR cMm chX @@ -96187,7 +94477,7 @@ cFj cEf cFS cGg -cGA +cGv cGI cGS cHe @@ -96427,9 +94717,9 @@ ccl cdm cio cjY -ckP -ckH -cja +ceq +clQ +cje cgR cMm cDj @@ -96443,7 +94733,7 @@ cEU cFk cAs cFT -cDq +cSK cGx cGK cGY @@ -96677,7 +94967,7 @@ bTg bUm bVp bXH -bZf +bUm bZC cbp cck @@ -96685,8 +94975,8 @@ cin cjj cjX ckO -clP -cgR +ckH +cja cny ccw cip @@ -96941,7 +95231,7 @@ cgS ciq cfb cfb -ckR +cfb clR cgR cgR @@ -100277,7 +98567,7 @@ bTU cdz cez bUL -cfS +cfP bOd bMQ apQ @@ -100710,7 +99000,7 @@ aif aif aif alK -alM +aif bkV anc anD @@ -102784,7 +101074,7 @@ aro aCv aaf alP -aGJ +aGK aIe aJE aKQ @@ -103598,14 +101888,14 @@ bDR bIn bJC bKL -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT +bPv +bPv +bPv +bPv +bPv +bPv +bPv +bPv bUY bWe bWe @@ -103863,7 +102153,7 @@ bNc bNc bNc bTY -bUX +bKH bzs bWV bzs @@ -103871,7 +102161,7 @@ bzs bZM cbJ ceC -cfV +ceC cfW cfX chk @@ -104120,7 +102410,7 @@ bQE bRM bOr bTZ -bUX +bKH bzs bAw bBR @@ -104377,7 +102667,7 @@ bQD bLY bMa bTZ -bUX +bKH bzs bAw bXZ @@ -105154,7 +103444,7 @@ bWX bOP bNd bTZ -bUX +bKH bzs bzs bzs @@ -105611,7 +103901,7 @@ aBE alP aDX alP -aGR +aGK avI aJL aKX @@ -105927,7 +104217,7 @@ bNd bNd bzs bzs -ccH +bMb cdK ceH cfn @@ -106955,7 +105245,7 @@ bNd bzs bzs bzs -ccH +bMb bFr ceK ceJ @@ -107389,7 +105679,7 @@ adU adU adU alg -alN +acx amv ane cxN @@ -107971,16 +106261,16 @@ bMe bIg bIM bPv -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT +bPv +bPv +bPv +bPv +bPv +bPv +bPv +bPv +bPv +bPv caT cbP ccO @@ -108694,7 +106984,7 @@ anf anf alP aCG -aFt +aDZ aFu aFu aFu diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm index cdb337df98..3f48d0f3f3 100644 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ b/_maps/map_files/Cerestation/cerestation.dmm @@ -213,8 +213,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -224,12 +223,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/circuit{ @@ -318,8 +315,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/firedoor, /turf/open/floor/plating{ @@ -361,7 +357,6 @@ /obj/item/stack/cable_coil, /obj/item/weapon/crowbar/red, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -428,12 +423,10 @@ /area/maintenance/asteroid/disposal/north) "abh" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -441,14 +434,12 @@ /area/maintenance/asteroid/disposal/north) "abi" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/asteroid/disposal/north) "abj" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /obj/machinery/light/small{ @@ -460,7 +451,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/conveyor/auto{ dir = 6; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating, @@ -477,8 +467,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -492,7 +481,6 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = 0; pixel_y = -25 }, /obj/item/device/radio/intercom{ @@ -500,7 +488,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = 28 }, /obj/item/device/radio/intercom{ @@ -523,7 +510,6 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = 0; pixel_y = -25 }, /obj/item/device/radio/intercom{ @@ -539,7 +525,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/circuit{ @@ -548,8 +533,7 @@ /area/ai_monitored/turret_protected/ai) "abp" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -588,7 +572,6 @@ /area/maintenance/asteroid/disposal/north) "abw" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 1 }, /turf/open/floor/plating, @@ -637,7 +620,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = 25 }, /obj/machinery/turretid{ @@ -722,7 +704,6 @@ pixel_y = -24 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -745,7 +726,6 @@ "abL" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /turf/open/floor/plating, @@ -759,11 +739,7 @@ }, /area/ai_monitored/turret_protected/ai) "abN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -785,8 +761,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -814,9 +789,7 @@ }, /area/ai_monitored/turret_protected/ai) "abS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -824,7 +797,6 @@ "abT" = ( /obj/machinery/suit_storage_unit/syndicate, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -878,8 +850,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/porta_turret/ai{ dir = 4 @@ -914,8 +885,7 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/syndicate) @@ -928,7 +898,6 @@ id = "smindicate"; name = "external door control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "150" }, /obj/docking_port/mobile{ @@ -959,8 +928,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) @@ -1012,8 +980,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1101,9 +1068,7 @@ dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 0; - pixel_y = 0 + name = "Cyborg Statue" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1121,8 +1086,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/ai_slipper{ uses = 10 @@ -1149,9 +1113,7 @@ dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 0; - pixel_y = 0 + name = "Cyborg Statue" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1167,8 +1129,7 @@ /area/ai_monitored/turret_protected/ai) "acC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/ai_slipper{ uses = 10 @@ -1206,8 +1167,7 @@ /area/shuttle/syndicate) "acG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/syndicate) @@ -1217,20 +1177,19 @@ name = "Command Asteroid" }) "acI" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "acJ" = ( /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/holopad, /turf/open/floor/circuit{ @@ -1265,10 +1224,10 @@ }, /area/shuttle/syndicate) "acN" = ( -/turf/closed/wall/r_wall{ +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "acO" = ( /obj/machinery/light, /turf/open/floor/plasteel/black{ @@ -1286,7 +1245,6 @@ syndie = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -1305,8 +1263,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -1426,8 +1383,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -1454,7 +1410,6 @@ "adj" = ( /obj/structure/bed/roller, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -1470,8 +1425,7 @@ /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/crowbar/red, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/syndicate) @@ -1517,7 +1471,6 @@ installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/circuit{ @@ -1528,12 +1481,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -1557,7 +1508,6 @@ installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/circuit{ @@ -1645,11 +1595,19 @@ }, /area/ai_monitored/security/armory) "adC" = ( -/obj/machinery/flasher/portable, -/turf/open/floor/plasteel/delivery{ +/obj/machinery/door/airlock/security{ + name = "Prisoner Transfer Center"; + req_access_txt = "2" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "adD" = ( /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit{ @@ -1679,7 +1637,6 @@ cell_type = 5000; dir = 1; name = "Telecoms Server APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -1702,8 +1659,7 @@ /obj/machinery/computer/message_monitor, /obj/machinery/camera{ c_tag = "Telecomms Control Room 2"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1721,9 +1677,7 @@ "adL" = ( /obj/machinery/camera{ c_tag = "AI Hallway"; - dir = 5; - icon_state = "camera"; - tag = "" + dir = 5 }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1757,9 +1711,8 @@ /turf/closed/mineral, /area/maintenance/asteroid/fore/com_north) "adQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/darkred/side{ icon_state = "darkred"; @@ -1787,20 +1740,14 @@ }, /area/ai_monitored/security/armory) "adS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/obj/item/weapon/ore/glass, +/turf/open/floor/plating/asteroid, +/area/security/transfer) "adT" = ( /obj/structure/rack, /obj/item/weapon/gun/energy/ionrifle, /obj/item/weapon/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof{ - pixel_x = 0 - }, +/obj/item/clothing/suit/armor/laserproof, /obj/structure/window/reinforced{ dir = 1 }, @@ -1824,10 +1771,19 @@ }, /area/ai_monitored/security/armory) "adV" = ( -/turf/open/floor/plasteel{ +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "adW" = ( /obj/structure/window/reinforced{ dir = 1 @@ -1870,8 +1826,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -1897,8 +1852,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/holopad, /turf/open/floor/plasteel/vault{ @@ -2003,12 +1957,15 @@ /turf/closed/mineral/random/labormineral, /area/maintenance/asteroid/fore/com_west) "aeq" = ( -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/obj/machinery/camera{ + c_tag = "Brig Cell 5"; + dir = 6; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aer" = ( /obj/structure/rack, /obj/item/weapon/gun/energy/e_gun{ @@ -2020,61 +1977,35 @@ pixel_x = 3; pixel_y = -3 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 8 }, /area/ai_monitored/security/armory) "aes" = ( -/turf/open/floor/plasteel/black{ +/obj/machinery/camera{ + c_tag = "Brig Cell 6"; + dir = 6; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aet" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/flasher{ + id = "Cell 6"; + pixel_y = 32 }, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot{ - pixel_x = 3; - pixel_y = -3 +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 1 }, -/obj/item/clothing/head/helmet/riot{ - pixel_x = -3; - pixel_y = 3 +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot{ - pixel_x = 0; - pixel_y = 1; - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 - }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeu" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2116,8 +2047,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2153,13 +2083,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -2171,7 +2098,6 @@ /obj/item/weapon/surgicaldrill, /obj/item/weapon/circular_saw, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -2181,9 +2107,7 @@ "aeF" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -2221,30 +2145,20 @@ }, /area/maintenance/asteroid/fore/com_north) "aeK" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/item/weapon/gun/energy/e_gun/advtaser, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 - }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeL" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = -3; pixel_y = 3 }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_y = 0 - }, +/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = 3; pixel_y = -3 @@ -2274,14 +2188,11 @@ }, /area/ai_monitored/security/armory) "aeM" = ( -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Gunsky, the most rootin'-tootin'-point-and shootin' security bot on this side of the galaxy!"; - name = "Officer Gunsky" - }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeN" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2292,11 +2203,15 @@ }, /area/ai_monitored/security/armory) "aeO" = ( -/obj/structure/closet/secure_closet/lethalshots, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeP" = ( /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2306,8 +2221,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2353,7 +2267,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "aeX" = ( /obj/structure/reagent_dispensers/fueltank, @@ -2430,20 +2344,20 @@ }, /area/ai_monitored/security/armory) "afg" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black{ +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "afh" = ( -/obj/machinery/suit_storage_unit/security, -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "afi" = ( /turf/closed/wall, /area/maintenance/asteroid/fore/com_north) @@ -2462,7 +2376,6 @@ /area/maintenance/asteroid/fore/com_north) "afk" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /obj/structure/disposalpipe/trunk, @@ -2488,6 +2401,7 @@ charge = 5e+006 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/circuit{ @@ -2499,8 +2413,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2520,8 +2433,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2536,8 +2448,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -2548,8 +2459,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -2565,8 +2475,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -2579,28 +2488,22 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/tcommsat/computer) "aft" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, -/turf/open/floor/plating/airless, +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating, /area/shuttle/syndicate) "afu" = ( /obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "afv" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, -/turf/open/floor/plating/airless, +/obj/structure/shuttle/engine/propulsion/right, +/turf/open/floor/plating, /area/shuttle/syndicate) "afw" = ( /obj/structure/closet, @@ -2640,35 +2543,27 @@ }, /area/ai_monitored/security/armory) "afz" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 6"; + name = "Cell Door 6" }, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 - }, -/area/ai_monitored/security/armory) -"afA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) +"afA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "afB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -2682,18 +2577,22 @@ }, /area/ai_monitored/security/armory) "afC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/security/armory) "afD" = ( -/turf/closed/mineral/random/labormineral, -/area/security/transfer) +/obj/structure/holohoop{ + icon_state = "hoop"; + dir = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "afE" = ( /turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2738,14 +2637,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-22"; icon_state = "plant-22" }, /turf/open/floor/plasteel{ @@ -2766,8 +2663,7 @@ }, /obj/machinery/camera{ c_tag = "Telecomms Control Room"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2814,8 +2710,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2828,7 +2723,6 @@ /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/machinery/turretid{ name = "AI Chamber turret control"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/black{ @@ -2836,10 +2730,8 @@ }, /area/ai_monitored/turret_protected/aisat/hallway) "afT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2893,12 +2785,14 @@ /turf/open/floor/plating/asteroid, /area/security/prison) "aga" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light{ - dir = 1 +/obj/machinery/camera{ + c_tag = "Brig Cell 4"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating/asteroid, /area/security/prison) "agb" = ( /obj/machinery/hydroponics/soil, @@ -2906,32 +2800,84 @@ /turf/open/floor/plating/asteroid, /area/security/prison) "agc" = ( -/obj/structure/toilet, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "agd" = ( -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 10; +/obj/machinery/door_timer{ + id = "Cell 5"; + name = "Cell 5"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "age" = ( -/turf/open/floor/plasteel/darkred/side{ +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agf" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkred/side{ +/obj/machinery/door_timer{ + id = "Cell 6"; + name = "Cell 6"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ @@ -2940,27 +2886,46 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/darkred/corner{ - icon_state = "darkredcorners"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/security/armory) "agh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agi" = ( -/obj/machinery/light, -/obj/vehicle/secway, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agj" = ( /obj/machinery/flasher/portable, /obj/machinery/camera/motion{ @@ -3180,7 +3145,6 @@ /area/maintenance/asteroid/fore/com_east) "agF" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /turf/open/floor/plating{ @@ -3191,7 +3155,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/conveyor/auto{ dir = 6; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating{ @@ -3224,8 +3187,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/holopad, /turf/open/floor/plasteel{ @@ -3236,8 +3198,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -3255,8 +3216,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -3269,8 +3229,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -3287,8 +3246,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -3343,13 +3301,11 @@ /obj/machinery/camera{ c_tag = "AI Asteroid Hallway 4"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/item/device/radio/beacon, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/black{ @@ -3365,10 +3321,8 @@ }, /area/ai_monitored/turret_protected/aisat/hallway) "agU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/ai_status_display{ pixel_x = 32 @@ -3379,7 +3333,6 @@ /area/ai_monitored/turret_protected/aisat/hallway) "agV" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -3387,16 +3340,23 @@ /obj/item/seeds/ambrosia, /obj/machinery/flasher{ id = "PermaCell"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "agW" = ( -/obj/item/weapon/cultivator, -/turf/open/floor/plating/astplate{ +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3406,10 +3366,12 @@ }, /area/security/prison) "agY" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 4"; + name = "Cell Door 4"; + req_access_txt = "1" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3426,41 +3388,40 @@ }, /area/ai_monitored/security/armory) "aha" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockMidRight"; + location = "CellBlockUpRight"; + name = "navigation beacon (CellBlockUpRight)" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 5; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahb" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 9; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 2"; + dir = 10; + network = list("SS13","Security","PrisonCell") }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3524,6 +3485,11 @@ icon_state = "pipe-c" }, /obj/structure/grille/broken, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -3533,6 +3499,11 @@ dir = 4; icon_state = "pipe-j2" }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -3615,7 +3586,6 @@ /area/maintenance/asteroid/fore/com_east) "ahu" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 1 }, /turf/open/floor/plating{ @@ -3653,9 +3623,8 @@ }, /area/tcommsat/computer) "ahA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -3665,8 +3634,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -3681,8 +3649,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -3730,33 +3697,26 @@ /area/security/prison) "ahJ" = ( /obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "Brig Long-Term Cells" - }, -/obj/item/seeds/potato, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ahK" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/structure/sign/poster/official/obey{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3776,26 +3736,33 @@ name = "Asteroid" }) "ahN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"ahO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) -"ahO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahP" = ( /turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -3848,7 +3815,6 @@ }, /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -3861,7 +3827,6 @@ /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = -32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /turf/open/floor/plasteel/floorgrime, @@ -3919,7 +3884,6 @@ /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel{ @@ -3958,8 +3922,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/sign/map/left/ceres{ pixel_x = -32 @@ -3972,10 +3935,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -4010,9 +3971,8 @@ }, /area/security/prison) "aim" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -4044,36 +4004,45 @@ }, /area/security/prison) "aiq" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "air" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor/northright{ - name = "Armory Desk"; - req_access_txt = "3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Armory Desk"; - req_one_access_txt = "38;2" - }, -/obj/item/weapon/paper_bin, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ais" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armoryaccess"; - name = "Armory Shutters" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ait" = ( /obj/machinery/door/airlock/glass_security{ name = "Armory"; @@ -4092,14 +4061,17 @@ }, /area/security/prison) "aiu" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" +/obj/machinery/door_timer{ + id = "Cell 7"; + name = "Cell 7"; + pixel_x = 32 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4138,25 +4110,28 @@ }, /area/security/prison) "aix" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = -32 }, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aiy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 5"; + dir = 10; + network = list("SS13","Security","PrisonCell") }, -/turf/open/floor/plating/astplate{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aiz" = ( /obj/structure/rack, /obj/item/weapon/pickaxe/mini, @@ -4182,6 +4157,11 @@ "aiC" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4222,7 +4202,6 @@ /area/maintenance/asteroid/fore/com_east) "aiI" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 9 }, /turf/open/floor/plating{ @@ -4231,7 +4210,6 @@ /area/maintenance/asteroid/fore/com_east) "aiJ" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /obj/structure/plasticflaps, @@ -4242,7 +4220,6 @@ "aiK" = ( /obj/machinery/conveyor/auto{ dir = 6; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating{ @@ -4274,22 +4251,19 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/camera{ c_tag = "AI Asteroid Hallway 3"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/turret_protected/aisat/hallway) "aiP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -4367,22 +4341,26 @@ }, /area/maintenance/asteroid/fore/com_west) "aja" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/gulag_item_reclaimer{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "ajb" = ( /obj/structure/closet/crate, /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_south) "ajc" = ( -/obj/machinery/light/small{ - dir = 4 - }, /obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4398,8 +4376,12 @@ }, /area/security/prison) "aje" = ( -/obj/structure/table, -/turf/open/floor/plating{ +/obj/machinery/camera{ + c_tag = "Brig Cell 3"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4411,7 +4393,13 @@ }, /area/security/prison) "ajg" = ( -/obj/structure/chair/stool, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4423,30 +4411,53 @@ }, /area/security/prison) "aji" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ajj" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Prison Wing APC"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ajk" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4490,12 +4501,14 @@ }, /area/security/prison) "ajo" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/closet/secure_closet/brig{ + id = "Cell 8"; + name = "Cell 8 Locker" }, -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4693,7 +4706,6 @@ "ajL" = ( /obj/machinery/conveyor{ dir = 5; - icon_state = "conveyor0"; id = "CargoWaste"; verted = -1 }, @@ -4811,44 +4823,62 @@ }, /area/security/prison) "ajZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 }, -/area/security/prison) -"aka" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "permatoggle"; - layer = 2.6; - name = "prisoner transfer door" +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"akb" = ( -/obj/machinery/light{ - dir = 8 +"aka" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless }, -/turf/open/floor/plasteel/darkred{ +/area/security/prison) +"akb" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "akc" = ( -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "akd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4861,22 +4891,18 @@ }, /area/security/prison) "akf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 8"; + name = "Cell Door 8" }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "akg" = ( /obj/structure/closet/secure_closet/brig, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkred{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -4989,8 +5015,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance/external{ name = "External Airlock Access"; @@ -5013,7 +5038,6 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5022,9 +5046,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5078,7 +5100,6 @@ "aky" = ( /obj/machinery/conveyor{ dir = 9; - icon_state = "conveyor0"; id = "CargoWaste"; verted = -1 }, @@ -5138,28 +5159,31 @@ /turf/open/floor/plating, /area/space) "akG" = ( -/obj/structure/chair{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akH" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/astplate{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akI" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate{ +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akJ" = ( /obj/effect/turf_decal/stripes/asteroid/line{ icon_state = "ast_warn"; @@ -5177,14 +5201,18 @@ }, /area/maintenance/asteroid/fore/com_north) "akL" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, -/turf/closed/wall/r_wall{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "akM" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/floorgrime{ @@ -5192,7 +5220,8 @@ }, /area/security/prison) "akN" = ( -/obj/machinery/seed_extractor, +/obj/structure/bed, +/obj/item/weapon/bedsheet, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5201,7 +5230,6 @@ /obj/structure/bed, /obj/machinery/flasher{ id = "PermaCell"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plating{ @@ -5216,11 +5244,17 @@ }, /area/security/prison) "akQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5299,8 +5333,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -5309,7 +5342,6 @@ "akY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5324,8 +5356,7 @@ /area/ai_monitored/turret_protected/aisat/hallway) "ala" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -5422,14 +5453,14 @@ }, /area/security/prison) "alo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/glass_security{ - name = "Long-Term Holding Cell"; - req_access_txt = "2" +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; - dir = 1; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5457,29 +5488,16 @@ }, /area/security/transfer) "alr" = ( -/obj/item/weapon/shovel, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" - }, -/area/security/transfer) +/turf/open/floor/plating/asteroid, +/area/security/prison) "als" = ( -/obj/item/weapon/ore/glass, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" - }, -/area/security/transfer) +/obj/structure/chair/stool, +/turf/open/floor/plating/asteroid, +/area/security/prison) "alt" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_north) +/obj/machinery/biogenerator, +/turf/open/floor/plating/asteroid, +/area/security/prison) "alu" = ( /obj/structure/rack, /obj/item/weapon/pickaxe/emergency, @@ -5536,9 +5554,7 @@ /obj/machinery/light_switch{ pixel_y = 25 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5558,7 +5574,6 @@ /area/crew_quarters/heads/captain) "alE" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -5607,9 +5622,8 @@ }, /area/quartermaster/sorting) "alL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -5630,7 +5644,6 @@ /obj/machinery/camera{ c_tag = "Cargo Disposals"; dir = 1; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -5646,11 +5659,7 @@ }, /area/quartermaster/sorting) "alP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5658,7 +5667,6 @@ "alQ" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/table, @@ -5667,47 +5675,51 @@ }, /area/quartermaster/sorting) "alR" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 4"; - dir = 4; - network = list("SS13") +/obj/machinery/door/airlock/glass_security{ + name = "Gulag Dock"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/item/weapon/bedsheet, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "alS" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/floorgrime{ +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5731,7 +5743,6 @@ /obj/machinery/button/flasher{ id = "PermaCell"; name = "Perma Flash"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/button/door{ @@ -5751,96 +5762,71 @@ }, /area/security/prison) "alW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/corner{ + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alX" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockUpLeft"; + location = "CellBlockMidLeft"; + name = "navigation beacon (CellBlockMidLeft)" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alY" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/orange{ d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ama" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockLowRight"; + location = "CellBlockMidRight"; + name = "navigation beacon (CellBlockMidRight)" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 + dir = 4 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 6; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 10; +/turf/open/floor/plasteel/red/corner{ + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5876,112 +5862,97 @@ }, /area/security/prison) "ame" = ( -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/door/airlock/glass_security{ + name = "Perma Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amg" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amh" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ami" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amj" = ( -/obj/machinery/flasher{ - id = "Cell 8"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 3"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amk" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 8"; - dir = 9; - icon_state = "camera"; - network = list("SS13"); - tag = "" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 }, -/obj/item/weapon/bedsheet, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "aml" = ( -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" +/obj/structure/chair/stool, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "amm" = ( /obj/machinery/light/small{ dir = 8 @@ -6135,7 +6106,6 @@ pixel_x = 24 }, /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/light/small{ @@ -6171,8 +6141,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -6187,11 +6156,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "AI Asteroid Hallway 2"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6275,24 +6242,44 @@ /turf/open/floor/plating/airless, /area/space) "amR" = ( -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/door/airlock/glass_security{ + name = "Gulag Dock"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "amS" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amT" = ( -/obj/machinery/door/window/brigdoor/westleft{ - id = "Cell 4"; - name = "Cell Door 4"; - req_access_txt = "1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"amU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -6300,40 +6287,67 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"amU" = ( +"amV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"amW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"amV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"amW" = ( -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 1; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) "amX" = ( -/turf/open/floor/plasteel/red{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; - dir = 8; +/obj/machinery/door/airlock/glass_security{ + name = "Perma Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -6356,28 +6370,37 @@ }, /area/security/prison) "anb" = ( -/obj/machinery/light/small{ +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 3"; + dir = 10; + network = list("SS13","Security","PrisonCell") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/holopad, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "anc" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" +/obj/structure/table, +/obj/item/device/radio/beacon, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "and" = ( /obj/structure/disposalpipe/sortjunction{ name = "disposal pipe - Custodials"; sortType = 22 }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6451,7 +6474,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -6468,9 +6490,7 @@ }, /area/crew_quarters/heads/captain) "ank" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6507,8 +6527,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -6539,7 +6558,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Disposals APC"; - pixel_x = 0; pixel_y = 24 }, /obj/effect/turf_decal/stripes/asteroid/end, @@ -6613,11 +6631,7 @@ }, /area/quartermaster/miningdock) "anB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6640,30 +6654,18 @@ }, /area/security/prison) "anE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "anF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "anG" = ( /obj/structure/cable/orange{ d1 = 1; @@ -6684,8 +6686,10 @@ }, /area/security/prison) "anH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -6704,22 +6708,16 @@ }, /area/security/warden) "anK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "anL" = ( /obj/machinery/door/airlock/glass_security{ name = "Brig Control"; @@ -6740,19 +6738,17 @@ }, /area/security/warden) "anM" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" +/obj/machinery/door_timer{ + id = "Cell 9"; + name = "Cell 9"; + pixel_x = 32 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "anN" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -6800,35 +6796,26 @@ }, /area/security/prison) "anQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "anS" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 8"; - name = "Cell 8 Locker" +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -6961,7 +6948,6 @@ department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/wood{ @@ -7047,8 +7033,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/fans/tiny, /turf/open/floor/plating{ @@ -7108,7 +7093,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -7237,8 +7221,7 @@ /obj/machinery/door_timer{ id = "Cell 4"; name = "Cell 4"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable/orange{ d1 = 1; @@ -7251,29 +7234,37 @@ }, /area/security/prison) "aoM" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"aoN" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"aoN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Brig Control APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/warden) "aoO" = ( /obj/structure/cable/orange{ d1 = 2; @@ -7321,10 +7312,12 @@ }, /area/security/warden) "aoR" = ( -/obj/machinery/light{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Brig Cell 9"; + dir = 9; + network = list("SS13","Security","PrisonCell") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -7424,8 +7417,7 @@ "apd" = ( /obj/structure/table/wood, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/melee/chainofcommand, /turf/open/floor/wood{ @@ -7445,9 +7437,7 @@ }, /area/crew_quarters/heads/captain) "apg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -7469,7 +7459,6 @@ }, /obj/machinery/computer/shuttle/pod{ pixel_x = -32; - pixel_y = 0; possible_destinations = "pod_lavaland1"; shuttleId = "pod1" }, @@ -7478,8 +7467,7 @@ }, /obj/machinery/camera{ c_tag = "Command Escape Pod"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -7491,8 +7479,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -7503,16 +7490,13 @@ dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/turret_protected/aisat/hallway) "apm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -7558,10 +7542,7 @@ }, /area/quartermaster/office) "apt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7608,49 +7589,53 @@ /area/security/prison) "apy" = ( /obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = 0; - pixel_y = 24 + id = "Cell 2"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "apz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 2"; + name = "Cell Door 2"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"apA" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, /obj/structure/cable/orange{ d1 = 2; d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Brig Cellblock South"; + dir = 6; + network = list("SS13","Security") }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"apA" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/paper_bin, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/warden) "apB" = ( /obj/structure/cable/orange{ d1 = 1; @@ -7662,23 +7647,21 @@ }, /area/security/warden) "apC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "apD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 9"; + name = "Cell Door 9" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "apE" = ( /obj/structure/table, /obj/machinery/recharger, @@ -7708,10 +7691,12 @@ }, /area/security/prison) "apG" = ( -/obj/machinery/flasher{ - id = "Cell 7"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 4"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -7722,7 +7707,6 @@ /obj/machinery/camera{ c_tag = "Brig Cell 7"; dir = 9; - icon_state = "camera"; network = list("SS13") }, /obj/item/weapon/bedsheet, @@ -7761,7 +7745,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -7878,8 +7861,7 @@ "apY" = ( /obj/structure/table/wood, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced, /obj/machinery/recharger, @@ -7955,7 +7937,6 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/com_east) "aqh" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -7964,13 +7945,13 @@ d2 = 4; icon_state = "1-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aqi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -7990,10 +7971,10 @@ }, /area/ai_monitored/turret_protected/aisat/hallway) "aql" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aqm" = ( @@ -8011,7 +7992,6 @@ /obj/machinery/camera{ c_tag = "Cargo Western Loading Bay 2"; dir = 5; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -8197,8 +8177,7 @@ "aqJ" = ( /obj/machinery/camera{ c_tag = "Fore Asteroid Maintenance APCs 2"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8318,8 +8297,7 @@ department = "Cargo Bay"; departmentType = 2; name = "Cargo RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8421,14 +8399,12 @@ department = "Cargo Bay"; departmentType = 2; name = "Cargo RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Cargo Eastern Loading Bay 1"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -8446,7 +8422,6 @@ /obj/machinery/button/door{ id = "MiningWarehouse"; name = "Mining Warehouse Shutters"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/reagent_dispensers/fueltank, @@ -8469,10 +8444,14 @@ }, /area/security/prison) "arp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 }, -/obj/machinery/holopad, /turf/open/floor/plasteel/red/side{ icon_state = "red"; dir = 8; @@ -8549,16 +8528,20 @@ }, /area/security/warden) "aru" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/door_timer{ + id = "Cell 10"; + name = "Cell 10"; + pixel_x = 32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "arv" = ( /obj/structure/cable/orange{ d1 = 1; @@ -8606,11 +8589,6 @@ dir = 4; icon_state = "pipe-c" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -8621,8 +8599,7 @@ }, /obj/machinery/camera{ c_tag = "Dorm Commons North"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -8673,8 +8650,7 @@ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8696,7 +8672,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHEAST)"; icon_state = "neutral"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -8707,7 +8682,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHEAST)"; icon_state = "neutral"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -8718,7 +8692,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -8734,7 +8707,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -8743,16 +8715,12 @@ "arI" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -8772,9 +8740,8 @@ }, /area/crew_quarters/heads/captain) "arL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8838,11 +8805,7 @@ }, /area/quartermaster/storage) "arU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/airalarm{ frequency = 1439; locked = 0; @@ -8856,8 +8819,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8921,11 +8883,7 @@ }, /area/quartermaster/office) "asb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -8966,11 +8924,20 @@ /turf/open/floor/plating, /area/shuttle/mining) "ash" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "asi" = ( /obj/structure/bed/roller, /turf/open/floor/plasteel/white{ @@ -8978,15 +8945,19 @@ }, /area/security/main) "asj" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plasteel/white{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "ask" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/toxin, @@ -8998,8 +8969,7 @@ /obj/machinery/door_timer{ id = "Cell 3"; name = "Cell 3"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable/orange{ d1 = 1; @@ -9032,19 +9002,31 @@ }, /area/security/warden) "aso" = ( -/obj/structure/chair/office/light{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 8 }, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "asp" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/closet/secure_closet/brig{ + id = "Cell 10"; + name = "Cell 10 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "asq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/holopad, @@ -9067,7 +9049,6 @@ /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = 32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /obj/effect/spawner/lootdrop/maintenance, @@ -9121,7 +9102,6 @@ name = "Female Sleeping Quarters" }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -9172,7 +9152,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = -28 }, -/obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9279,7 +9258,6 @@ /obj/structure/sign/poster/contraband/power{ pixel_x = 32 }, -/obj/effect/landmark/start/chief_engineer, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9296,7 +9274,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -9308,7 +9285,6 @@ /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = -32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /obj/structure/closet/crate, @@ -9329,7 +9305,6 @@ /area/quartermaster/storage) "asX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/newscaster{ @@ -9383,7 +9358,6 @@ /area/quartermaster/office) "atb" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -9401,9 +9375,8 @@ }, /area/quartermaster/miningdock) "atd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9426,7 +9399,6 @@ /obj/machinery/button/door{ id = "MiningWarehouse"; name = "Mining Warehouse Shutters"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel{ @@ -9444,7 +9416,6 @@ "ath" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -9456,8 +9427,7 @@ "atj" = ( /obj/structure/table, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) @@ -9476,16 +9446,51 @@ }, /area/security/processing) "atm" = ( -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "atn" = ( -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/storage/box/teargas{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "ato" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, @@ -9507,56 +9512,52 @@ /area/security/prison) "atq" = ( /obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = 0; - pixel_y = 24 + id = "Cell 1"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "atr" = ( -/obj/structure/table, -/obj/item/key/security, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/ears/earmuffs, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/machinery/camera{ - c_tag = "Brig Control Center"; - dir = 4; - icon_state = "camera" +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/keycard_auth{ - pixel_x = -24 +/mob/living/simple_animal/bot/secbot{ + auto_patrol = 1; + desc = "Nobody escapes the Block as long as Ol' Saltwater controls it."; + name = "Ol' Saltwater"; + weaponscheck = 1 }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "ats" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/warden) "att" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockLowLeft"; + location = "CellBlockLowRight"; + name = "navigation beacon (CellBlockLowRight)" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "atu" = ( /obj/structure/table, /obj/machinery/light, @@ -9566,10 +9567,12 @@ }, /area/security/warden) "atv" = ( -/obj/machinery/flasher{ - id = "Cell 6"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 6"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -9580,7 +9583,6 @@ /obj/machinery/camera{ c_tag = "Brig Cell 6"; dir = 9; - icon_state = "camera"; network = list("SS13") }, /obj/item/weapon/bedsheet, @@ -9589,15 +9591,11 @@ }, /area/security/prison) "atx" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/weightlifter, +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_north) +/area/security/prison) "aty" = ( /obj/structure/chair/stool, /turf/open/floor/plating{ @@ -9613,12 +9611,10 @@ /area/maintenance/asteroid/fore/com_north) "atA" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -9659,20 +9655,16 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/dorms/female) "atG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -9680,7 +9672,6 @@ /area/crew_quarters/dorms/female) "atH" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -9688,7 +9679,6 @@ /area/crew_quarters/dorms/female) "atI" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHWEST)"; icon_state = "neutral"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -9706,7 +9696,6 @@ pixel_y = 1 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -9740,9 +9729,7 @@ }, /area/maintenance/asteroid/fore/com_north) "atM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9811,9 +9798,7 @@ }, /area/crew_quarters/heads/chief/private) "atW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/item/weapon/storage/secure/safe{ pixel_x = 32 }, @@ -9985,39 +9970,43 @@ }, /area/security/processing) "aup" = ( -/obj/machinery/computer/gulag_teleporter_computer, +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, /obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" + c_tag = "Brig Equipment North"; + dir = 6; + network = list("SS13","Security") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "auq" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aur" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aus" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating{ @@ -10025,11 +10014,15 @@ }, /area/maintenance/asteroid/fore/com_west) "aut" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white{ +/obj/machinery/camera/motion{ + c_tag = "Armory South"; + dir = 1; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/darkred/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "auu" = ( /obj/machinery/door/window/brigdoor/westleft{ id = "Cell 2"; @@ -10043,20 +10036,19 @@ }, /area/security/prison) "auv" = ( -/obj/structure/closet/secure_closet/warden{ - pixel_x = 0 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/item/device/radio, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "auw" = ( /obj/structure/cable/orange{ d1 = 1; @@ -10091,11 +10083,14 @@ }, /area/security/prison) "auz" = ( -/obj/structure/rack, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Brig Perma South"; + dir = 10; + network = list("SS13","Security","PrisonCell") }, -/area/maintenance/asteroid/fore/com_north) +/turf/open/floor/plating/asteroid, +/area/security/prison) "auA" = ( /obj/effect/turf_decal/stripes/asteroid/line, /turf/open/floor/plating/astplate{ @@ -10173,7 +10168,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/yellow, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -10186,7 +10180,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/green, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -10198,7 +10191,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/red, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -10215,8 +10207,7 @@ department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -10244,7 +10235,6 @@ dir = 10 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10259,7 +10249,6 @@ }, /obj/item/weapon/storage/fancy/donut_box, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10271,7 +10260,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10283,8 +10271,7 @@ }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5; - tag = "icon-darkblue (NORTHEAST)" + dir = 5 }, /area/bridge) "auS" = ( @@ -10297,8 +10284,7 @@ name = "Bridge Desk"; opacity = 1; req_access_txt = "0"; - req_one_access_txt = "19;41"; - tag = "icon-right (WEST)" + req_one_access_txt = "19;41" }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -10362,7 +10348,6 @@ pixel_y = 30 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; dir = 9 }, /area/bridge) @@ -10371,7 +10356,6 @@ c_tag = "Bridge Main 1" }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10382,7 +10366,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10393,7 +10376,6 @@ dir = 6 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -10424,8 +10406,7 @@ department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -10448,7 +10429,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -10553,7 +10533,6 @@ "avo" = ( /obj/structure/closet/secure_closet/miner, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -10635,22 +10614,16 @@ /area/shuttle/labor) "avx" = ( /obj/machinery/disposal/deliveryChute{ - tag = "icon-intake (NORTH)"; - icon_state = "intake"; dir = 1 }, /obj/structure/disposalpipe/trunk, /turf/open/floor/plating/airless, /area/space) "avy" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "avz" = ( /obj/structure/chair{ dir = 1 @@ -10664,7 +10637,6 @@ /obj/item/weapon/storage/box/prisoner, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel{ @@ -10672,20 +10644,21 @@ }, /area/security/processing) "avB" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Security Equipment APC"; + pixel_x = 24 + }, /obj/structure/cable/orange{ - d1 = 1; d2 = 2; - icon_state = "1-2" + icon_state = "0-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "avC" = ( /obj/machinery/door/airlock/maintenance{ name = "Fore Asteroid Maintenance Access"; @@ -10740,30 +10713,10 @@ }, /area/security/prison) "avI" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/brig) "avJ" = ( /obj/machinery/door/airlock/glass_security{ name = "Brig Control"; @@ -10832,11 +10785,6 @@ icon_state = "2-4" }, /obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -10897,7 +10845,6 @@ pixel_y = -24 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -10940,7 +10887,6 @@ icon_state = "pipe-c" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -10971,9 +10917,8 @@ /area/crew_quarters/heads/cmo/private) "awb" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -11013,8 +10958,7 @@ "awg" = ( /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 4; - tag = "icon-darkblue (EAST)" + dir = 4 }, /area/bridge) "awh" = ( @@ -11048,8 +10992,7 @@ "awl" = ( /obj/structure/table/wood, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/folder, /turf/open/floor/carpet{ @@ -11059,8 +11002,7 @@ "awm" = ( /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8; - tag = "icon-darkblue (WEST)" + dir = 8 }, /area/bridge) "awn" = ( @@ -11085,10 +11027,8 @@ /area/crew_quarters/heads/chief/private) "awp" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -11147,8 +11087,7 @@ "awx" = ( /obj/machinery/computer/shuttle/labor, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -31; - pixel_y = 0 + pixel_x = -31 }, /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) @@ -11159,41 +11098,33 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "awz" = ( -/obj/structure/table, -/obj/item/weapon/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"awA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/security/processing) -"awB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"awC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/crew_quarters/heads/hos) +"awA" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"awB" = ( +/obj/structure/closet/l3closet/scientist, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"awC" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "awD" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11208,9 +11139,7 @@ }, /area/security/processing) "awF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -11229,72 +11158,71 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"awI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"awJ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awK" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awL" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awM" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/main) +"awI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"awJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awK" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awL" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"awM" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/device/radio, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"awN" = ( +/obj/machinery/button/door{ + id = "wardencell"; + name = "Cell Access Privacy Shutter"; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) "awO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -11304,14 +11232,17 @@ }, /area/security/prison) "awP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, -/obj/effect/landmark/lightsout, /turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "awQ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11324,51 +11255,41 @@ }, /area/security/prison) "awR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) -"awU" = ( -/obj/machinery/door_timer{ - id = "Cell 6"; - name = "Cell 6"; - pixel_x = 32; - pixel_y = 0 +/area/security/brig) +"awS" = ( +/obj/machinery/light{ + dir = 1 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) +"awT" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "awV" = ( /obj/machinery/light/small{ dir = 1 @@ -11434,8 +11355,7 @@ /area/bridge) "axd" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced, /obj/machinery/computer/cargo/request, @@ -11517,9 +11437,8 @@ }, /area/quartermaster/office) "axm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -11536,12 +11455,9 @@ "axo" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -11551,9 +11467,7 @@ /obj/machinery/camera{ c_tag = "Mining Bay"; dir = 8; - icon_state = "camera"; - network = list("SS13","QM"); - tag = "icon-camera (WEST)" + network = list("SS13","QM") }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -11575,15 +11489,14 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "axu" = ( -/obj/machinery/button/flasher{ - id = "gulagshuttleflasher"; - name = "Flash Control"; - pixel_x = 0; - pixel_y = -26; - req_access_txt = "1" +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) +/area/crew_quarters/heads/hos) "axv" = ( /obj/machinery/mineral/labor_claim_console{ machinedir = 2; @@ -11610,8 +11523,16 @@ /turf/open/floor/plating, /area/security/processing) "axy" = ( -/turf/open/floor/plating, -/area/security/processing) +/obj/structure/closet/l3closet/scientist, +/obj/structure/sign/goldenplaque{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "axz" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -11623,18 +11544,11 @@ }, /area/security/processing) "axA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "axB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -11663,32 +11577,27 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "axE" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "axF" = ( -/obj/structure/closet/bombcloset, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 +/obj/structure/closet{ + name = "evidence closet" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "axG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -11707,15 +11616,13 @@ }, /area/security/prison) "axI" = ( -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = 0; - pixel_y = 24 +/obj/structure/chair/office/light{ + dir = 1 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axJ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11738,32 +11645,26 @@ }, /area/security/prison) "axK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/westright{ + name = "Warden's Desk"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axM" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11791,92 +11692,44 @@ }, /obj/machinery/holopad, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "axN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; - icon_state = "red"; - dir = 9; +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel{ +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axQ" = ( -/obj/machinery/flasher{ - id = "Cell 5"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axR" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 5"; - dir = 9; - icon_state = "camera"; - network = list("SS13"); - tag = "" +/obj/structure/chair{ + dir = 8 }, -/obj/item/weapon/bedsheet, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axS" = ( /obj/machinery/power/apc{ dir = 2; @@ -11888,7 +11741,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -11915,9 +11767,9 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable/orange{ - d1 = 4; + d1 = 1; d2 = 8; - icon_state = "4-8" + icon_state = "1-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -12067,7 +11919,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = -28 }, -/obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12090,7 +11941,6 @@ "aym" = ( /obj/structure/table/wood, /obj/item/weapon/paper_bin, -/obj/item/weapon/stamp/hos, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12118,10 +11968,8 @@ }, /area/bridge) "ayq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -12129,7 +11977,6 @@ /area/bridge) "ayr" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/darkblue{ @@ -12167,9 +12014,8 @@ }, /area/bridge) "ayv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -12229,7 +12075,6 @@ /obj/structure/sign/poster/contraband/lamarr{ pixel_x = 32 }, -/obj/effect/landmark/start/research_director, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12275,7 +12120,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -12306,14 +12150,10 @@ }, /area/quartermaster/storage) "ayK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Cargo Western Loading Bay 1"; dir = 5; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -12478,36 +12318,29 @@ /turf/open/floor/plasteel/black, /area/shuttle/labor) "azb" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "azc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/table, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"azd" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) -"azd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/processing) +/area/security/main) "aze" = ( /obj/structure/cable/orange{ d1 = 1; @@ -12524,19 +12357,14 @@ }, /area/maintenance/asteroid/fore/com_west) "azf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/machinery/camera{ - c_tag = "Gulag Shuttle Midsection"; - dir = 9; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "azg" = ( /obj/machinery/vending/security, /turf/open/floor/plasteel/showroomfloor{ @@ -12544,19 +12372,30 @@ }, /area/security/main) "azh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = null; + name = "Evidence Storage"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "azi" = ( -/obj/machinery/holopad, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "azj" = ( /obj/machinery/door/window/brigdoor/westleft{ id = "Cell 1"; @@ -12598,39 +12437,27 @@ req_one_access_txt = "38;2" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "azn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/glass_security{ - name = "Cell Block"; - req_access_txt = "0"; - req_one_access_txt = "38;2" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "azo" = ( -/obj/machinery/door/window/brigdoor/eastleft{ - id = "Cell 5"; - name = "Cell Door 5"; - req_access_txt = "1" - }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 4; +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/folder/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "azp" = ( /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -12679,8 +12506,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -12709,7 +12535,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -12799,9 +12624,8 @@ }, /area/crew_quarters/dorms/male) "azF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/sign/poster/contraband/fun_police{ pixel_x = -32 @@ -12870,7 +12694,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -12883,7 +12706,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -12895,7 +12717,6 @@ }, /obj/machinery/holopad, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -12904,7 +12725,6 @@ "azP" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -12954,10 +12774,8 @@ }, /area/crew_quarters/heads/hor/private) "azV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/item/weapon/storage/secure/safe{ pixel_x = 32 @@ -12983,7 +12801,6 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -13001,9 +12818,8 @@ /area/maintenance/asteroid/fore/com_east) "azY" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13065,9 +12881,7 @@ }, /area/quartermaster/office) "aAf" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /turf/open/floor/plating/airless, /area/shuttle/supply) "aAg" = ( @@ -13075,9 +12889,7 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "aAh" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /turf/open/floor/plating/airless, /area/shuttle/supply) "aAi" = ( @@ -13100,12 +12912,9 @@ /obj/machinery/camera{ c_tag = "Cargo Eastern Loading Bay 2"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -13115,22 +12924,19 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/disposalpipe/trunk{ dir = 1 }, /turf/open/floor/plasteel/brown/corner{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/miningdock) "aAl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13149,88 +12955,81 @@ "aAo" = ( /obj/machinery/mineral/labor_claim_console{ machinedir = 1; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "aAp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space) -"aAq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating{ +/obj/machinery/door/airlock/glass_security{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) -"aAr" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Prisoner Processing"; - req_access_txt = "2" +/area/crew_quarters/heads/hos) +"aAq" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) +"aAr" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "aAs" = ( /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aAt" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Security Equipment APC"; - pixel_x = 23; - pixel_y = 2 +/obj/structure/closet/wardrobe/red, +/obj/machinery/light{ + dir = 4 }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) "aAu" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/camera{ - c_tag = "Security Equipment Room"; - dir = 4; - icon_state = "camera" +/obj/structure/closet{ + name = "evidence closet" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/holopad, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aAw" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 1"; @@ -13241,37 +13040,41 @@ }, /area/security/prison) "aAx" = ( -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig Cells South 2"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "aAy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 }, -/turf/open/floor/plasteel{ +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Emergency Brig Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "1" + }, +/obj/machinery/button/door{ + id = "armoryaccess"; + name = "Armory Shutter Access"; + pixel_x = 24; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "aAz" = ( /obj/machinery/light, /obj/machinery/computer/secure_data, @@ -13280,22 +13083,16 @@ }, /area/security/prison) "aAA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAB" = ( /obj/structure/cable/orange{ d1 = 1; @@ -13314,85 +13111,51 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "aAC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aAD" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) -"aAD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) +/area/security/brig) "aAE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"aAF" = ( -/obj/machinery/door_timer{ - id = "Cell 5"; - name = "Cell 5"; - pixel_y = -32 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Brig Cells South 1"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) +"aAF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aAG" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 5"; - name = "Cell 5 Locker" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAH" = ( /obj/structure/closet/lawcloset, /turf/open/floor/plasteel{ @@ -13400,19 +13163,23 @@ }, /area/security/courtroom) "aAI" = ( -/obj/structure/chair, -/turf/open/floor/plasteel{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/security/brig) "aAJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel{ +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/maintenance/asteroid/fore/com_north) "aAK" = ( /obj/structure/chair/comfy/brown, /turf/open/floor/plasteel{ @@ -13464,8 +13231,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13489,8 +13255,7 @@ }, /obj/machinery/camera{ c_tag = "Dorm SMES"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13589,13 +13354,10 @@ "aBc" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ icon_state = "neutral"; @@ -13609,8 +13371,7 @@ department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13666,8 +13427,7 @@ department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13753,31 +13513,45 @@ }, /area/security/processing) "aBt" = ( +/obj/structure/sign/map/left/ceres{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/machinery/camera{ + c_tag = "Brig Equipment East"; + dir = 9; + network = list("SS13","Security") }, -/area/maintenance/asteroid/fore/com_west) -"aBu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aBv" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) +"aBu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"aBv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aBw" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -13822,9 +13596,7 @@ }, /area/security/courtroom) "aBz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -13858,11 +13630,7 @@ }, /area/security/courtroom) "aBD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -13900,8 +13668,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/rack, /turf/open/floor/plasteel/floorgrime{ @@ -13993,9 +13760,8 @@ /area/crew_quarters/heads/hos/private) "aBS" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -14025,9 +13791,11 @@ /obj/machinery/camera{ c_tag = "Bridge Main 2"; dir = 1; - icon_state = "camera"; network = list("SS13") }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -14058,7 +13826,6 @@ /area/bridge) "aBZ" = ( /turf/open/floor/plasteel/darkblue/corner{ - icon_state = "darkbluecorners"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -14120,10 +13887,8 @@ /area/crew_quarters/heads/hor/private) "aCi" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -14186,7 +13951,6 @@ /obj/machinery/status_display{ density = 0; name = "cargo display"; - pixel_x = 0; pixel_y = 32; supply_display = 1 }, @@ -14200,7 +13964,6 @@ }, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/official }, @@ -14263,7 +14026,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Mining Dock APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -14271,7 +14033,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -14308,14 +14069,18 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "aCz" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Labor Camp Shuttle Airlock"; - shuttledocked = 1 - }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/security/processing) +/obj/machinery/door/airlock/glass_security{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) "aCA" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -14326,92 +14091,114 @@ }, /area/security/processing) "aCB" = ( -/obj/machinery/holopad, +/obj/structure/table, +/obj/item/clothing/head/beret/sec, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aCC" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - id_tag = "laborexit"; - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "63" - }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aCD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aCE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/door{ - id = "GulagCivExit"; - name = "Gulag Door Exit"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aCF" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/assembly/flash, -/obj/item/weapon/restraints/handcuffs, -/obj/item/weapon/restraints/handcuffs, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aCG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aCH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) +"aCF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Brig Main West"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aCG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aCH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aCI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/showroomfloor{ +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aCJ" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -14433,52 +14220,54 @@ }, /area/security/main) "aCK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/obj/machinery/camera{ + c_tag = "Brig Main Middle"; + dir = 6; + network = list("SS13","Security") + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCN" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/sign/bluecross_2{ + pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -14510,34 +14299,30 @@ dir = 4 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCR" = ( -/obj/machinery/camera{ - c_tag = "Brig Hall East" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; - dir = 5; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -14555,27 +14340,32 @@ }, /area/security/brig) "aCU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/closet/secure_closet/courtroom, +/obj/item/weapon/gavelhammer, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light{ + dir = 8 }, -/turf/open/floor/plasteel/red/side{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aCV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aCW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -14593,30 +14383,37 @@ /area/security/courtroom) "aCZ" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aDa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Courtroom North"; + dir = 6 + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aDb" = ( -/turf/open/floor/plasteel/blue/corner{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aDc" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/blue/side{ - baseturf = /turf/open/floor/plating/asteroid/airless +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aDd" = ( @@ -14637,8 +14434,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/table, /obj/machinery/light/small{ @@ -14659,9 +14455,8 @@ }, /area/crew_quarters/locker) "aDg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -14681,14 +14476,11 @@ }, /obj/machinery/camera{ c_tag = "Dorm Commons South"; - dir = 10; - icon_state = "camera"; - tag = "icon-camera (SOUTHWEST)" + dir = 10 }, /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel{ @@ -14724,20 +14516,16 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/dorms/male) "aDn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -14745,7 +14533,6 @@ /area/crew_quarters/dorms/male) "aDo" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -14753,7 +14540,6 @@ /area/crew_quarters/dorms/male) "aDp" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHWEST)"; icon_state = "neutral"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -14938,8 +14724,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -14965,7 +14749,6 @@ /obj/machinery/camera{ c_tag = "Cargo Hall"; dir = 1; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -14992,7 +14775,6 @@ /obj/machinery/camera{ c_tag = "Cargo Hall East"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel{ @@ -15008,81 +14790,44 @@ /turf/open/floor/plating/airless, /area/shuttle/labor) "aDM" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aDN" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aDO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aDP" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) +"aDO" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aDP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aDQ" = ( /obj/structure/cable/orange{ d1 = 4; @@ -15093,8 +14838,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -15109,11 +14853,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15198,7 +14938,6 @@ icon_state = "2-8" }, /obj/structure/disposalpipe/junction{ - tag = "icon-pipe-j2 (WEST)"; icon_state = "pipe-j2"; dir = 8 }, @@ -15207,13 +14946,8 @@ }, /area/security/brig) "aDX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -15225,11 +14959,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -15263,7 +14993,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/junction{ - tag = "icon-pipe-j2 (WEST)"; icon_state = "pipe-j2"; dir = 8 }, @@ -15272,19 +15001,7 @@ }, /area/security/brig) "aEb" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15329,9 +15046,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -15362,10 +15078,15 @@ }, /area/security/brig) "aEg" = ( -/turf/closed/wall/r_wall{ +/obj/machinery/door/airlock/security{ + name = "Courtroom"; + req_access = null; + req_access_txt = "1" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/brig) +/area/security/courtroom) "aEh" = ( /obj/structure/chair{ dir = 4 @@ -15379,7 +15100,6 @@ "aEi" = ( /obj/structure/table/wood, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15392,7 +15112,8 @@ }, /area/security/courtroom) "aEk" = ( -/obj/machinery/holopad, +/obj/structure/table/wood, +/obj/item/weapon/gavelblock, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15404,12 +15125,17 @@ }, /area/security/courtroom) "aEm" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; - icon_state = "blue"; - dir = 9; - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aEn" = ( @@ -15417,7 +15143,6 @@ dir = 8 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15462,7 +15187,6 @@ pixel_y = -24 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -15472,8 +15196,6 @@ /area/crew_quarters/toilet) "aEr" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/cable{ @@ -15510,7 +15232,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/yellow, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -15523,7 +15244,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/green, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -15535,7 +15255,6 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/red, /obj/structure/window{ - tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1 }, @@ -15560,7 +15279,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Head of Security's Personal Quarters APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -15591,7 +15309,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -15601,7 +15318,6 @@ /area/bridge) "aED" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15617,7 +15333,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15628,7 +15343,6 @@ /obj/item/stack/packageWrap, /obj/item/device/destTagger, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15638,7 +15352,6 @@ /obj/structure/table, /obj/machinery/cell_charger, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15648,7 +15361,6 @@ /obj/structure/table, /obj/machinery/recharger, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15661,8 +15373,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (NORTH)"; - icon_state = "darkbluecorners"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15689,7 +15399,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15720,17 +15429,13 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; - icon_state = "darkbluecorners"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/bridge) "aEN" = ( /obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0 - }, +/obj/item/weapon/storage/firstaid/regular, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -15743,7 +15448,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15759,7 +15463,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15774,7 +15477,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15789,7 +15491,6 @@ dir = 8 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -15831,7 +15532,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = 32 }, -/obj/effect/landmark/start/quartermaster, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15902,8 +15602,6 @@ /obj/item/stack/packageWrap, /obj/item/device/destTagger, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15913,15 +15611,19 @@ /turf/open/floor/plating/airless, /area/shuttle/labor) "aFf" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/closet/emcloset, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aFg" = ( /obj/machinery/camera{ c_tag = "Labor Shuttle Dock South"; @@ -15936,21 +15638,19 @@ }, /area/security/processing) "aFh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aFi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15960,188 +15660,273 @@ }, /area/security/processing) "aFj" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /obj/structure/cable/orange{ d1 = 1; - d2 = 2; - icon_state = "1-2" + d2 = 4; + icon_state = "1-4" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - id_tag = "GulagCivExit"; - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aFk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance{ - id_tag = "GulagCivExit"; - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aFl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFm" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFn" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFo" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFp" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/secequipment, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFq" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/cable/orange, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) +"aFl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFp" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aFr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Brig Hall West"; - dir = 1; - icon_state = "camera"; - network = list("SS13") +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFw" = ( -/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFx" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -16150,37 +15935,51 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFz" = ( /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16201,45 +16000,72 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /obj/machinery/light, /turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFE" = ( -/turf/open/floor/plasteel/red/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFF" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFG" = ( -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16283,24 +16109,18 @@ "aFL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aFM" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aFN" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -16308,8 +16128,6 @@ "aFO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -16317,7 +16135,6 @@ "aFP" = ( /obj/structure/table/wood, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -16622,17 +16439,14 @@ }, /area/quartermaster/qm/private) "aGq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; name = "Quartermaster RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -16655,7 +16469,6 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -16673,8 +16486,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -16701,8 +16512,7 @@ }, /turf/open/floor/plasteel/brown/corner{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/office) "aGw" = ( @@ -16710,7 +16520,6 @@ department = "Cargo Bay"; departmentType = 2; name = "Cargo RC"; - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -16738,13 +16547,11 @@ /obj/machinery/camera{ c_tag = "Cargo Desk"; dir = 6; - icon_state = "camera"; network = list("SS13","QM") }, /obj/machinery/status_display{ density = 0; name = "cargo display"; - pixel_x = 0; pixel_y = 32; supply_display = 1 }, @@ -16786,7 +16593,6 @@ /obj/machinery/computer/stockexchange, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/official }, @@ -16808,55 +16614,40 @@ }, /area/security/checkpoint/supply) "aGE" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aGF" = ( -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/detectives_office) "aGG" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aGH" = ( -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/area/lawoffice) "aGI" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -16880,69 +16671,54 @@ }, /area/lawoffice) "aGK" = ( -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aGL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerinterior"; - name = "privacy shutters" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aGM" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/turf/open/floor/wood{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) -"aGN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, +/area/security/brig) +"aGM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerinterior"; - name = "privacy shutters" +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) +"aGN" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aGO" = ( /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -16956,25 +16732,32 @@ }, /area/security/brig) "aGQ" = ( -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "0"; - req_one_access_txt = "38;63" +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plasteel/red/corner{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aGR" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig Checkpoint"; + req_access_txt = "0"; + req_one_access_txt = "38;63" }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 4; +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16991,15 +16774,15 @@ /area/security/courtroom) "aGT" = ( /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aGU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17009,10 +16792,11 @@ }, /area/security/courtroom) "aGW" = ( -/turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; - icon_state = "bluecorner"; - dir = 4; +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/turf/open/floor/plasteel/blue/side{ + icon_state = "blue"; + dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17025,7 +16809,6 @@ pixel_y = -32 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -17079,9 +16862,8 @@ }, /area/bridge) "aHf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17108,10 +16890,8 @@ }, /area/bridge) "aHi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17150,10 +16930,8 @@ /obj/machinery/light_switch{ pixel_y = -25 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17203,10 +16981,8 @@ }, /area/quartermaster/office) "aHr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17238,7 +17014,6 @@ dir = 4 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -17269,37 +17044,26 @@ }, /area/security/checkpoint/supply) "aHx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/checkpoint/supply) "aHy" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Shuttle Dock APC"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aHz" = ( /obj/structure/cable/orange{ d1 = 2; @@ -17327,20 +17091,19 @@ }, /area/security/detectives_office) "aHB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/detectives_office) "aHC" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHD" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, @@ -17350,17 +17113,25 @@ }, /area/security/detectives_office) "aHE" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHF" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/carpet{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHG" = ( /obj/structure/filingcabinet, /obj/item/device/radio/intercom{ @@ -17373,20 +17144,19 @@ }, /area/lawoffice) "aHH" = ( -/obj/machinery/button/door{ - id = "lawyerinterior"; - name = "Privacy Shutters"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/wood{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aHI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/wood{ @@ -17394,47 +17164,37 @@ }, /area/lawoffice) "aHJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/wood{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aHK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/power/apc{ - dir = 4; - name = "Lawyer's Office APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aHL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/flasher{ - id = "HoldingCell"; - name = "Holding Cell Flash"; - pixel_x = -24; - pixel_y = 0 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; - dir = 10; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aHL" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Brig Lobby West"; + dir = 4; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -17449,56 +17209,61 @@ }, /area/security/brig) "aHN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair, /turf/open/floor/plasteel/red/side{ icon_state = "red"; - dir = 6; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHO" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, /obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plasteel/red/corner{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/red/side{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHS" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 6; +/obj/machinery/camera{ + c_tag = "Brig Lobby Checkpoint"; + dir = 9; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -17530,11 +17295,10 @@ }, /area/security/courtroom) "aHW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/blue/side{ + icon_state = "blue"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17595,7 +17359,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -17633,9 +17396,8 @@ /obj/machinery/light_switch{ pixel_y = 25 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17746,7 +17508,6 @@ "aIr" = ( /obj/machinery/light, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -17791,7 +17552,6 @@ /obj/machinery/camera{ c_tag = "Bridge Midway 2"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/darkblue/side{ @@ -17801,7 +17561,6 @@ "aIw" = ( /obj/machinery/light, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/darkblue/side{ @@ -17818,10 +17577,8 @@ }, /area/quartermaster/office) "aIy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -17857,7 +17614,6 @@ "aID" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/red/side{ @@ -17877,7 +17633,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -17892,35 +17647,20 @@ }, /area/security/checkpoint/supply) "aIF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate{ +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aIG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/obj/effect/landmark/secequipment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aIH" = ( /obj/structure/cable/orange{ d1 = 4; @@ -17936,29 +17676,23 @@ }, /area/maintenance/asteroid/fore/com_west) "aII" = ( -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Detective's Office APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; - icon_state = "ast_warn_end"; +/obj/structure/chair/comfy/brown{ dir = 8 }, -/turf/open/floor/plating/astplate{ +/obj/effect/landmark/start/detective, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aIJ" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/grimy{ @@ -17981,61 +17715,14 @@ /area/security/detectives_office) "aIM" = ( /obj/structure/table/wood, -/obj/item/weapon/storage/fancy/cigarettes, -/obj/item/clothing/glasses/sunglasses, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet{ +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aIN" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/effect/landmark/start/detective, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aIO" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aIP" = ( -/obj/structure/rack, -/obj/item/weapon/storage/briefcase, -/obj/item/weapon/storage/briefcase, -/obj/machinery/camera{ - c_tag = "Lawyer's Office"; - dir = 4; - icon_state = "camera" - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIQ" = ( -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIR" = ( -/obj/structure/table/wood, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIS" = ( /obj/structure/table/wood, /obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; @@ -18045,28 +17732,84 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aIT" = ( +"aIO" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aIU" = ( +"aIP" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" - }, /obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) +"aIQ" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"aIR" = ( +/obj/machinery/door/window/brigdoor/southleft{ + name = "Security Checkpoint Waiting Cell"; + req_one_access_txt = "38;63" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIU" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aIV" = ( /obj/structure/chair{ dir = 1 @@ -18083,13 +17826,12 @@ }, /area/security/courtroom) "aIW" = ( -/obj/structure/chair{ - dir = 1 - }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aIX" = ( @@ -18097,24 +17839,27 @@ dir = 1 }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aIY" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aIZ" = ( -/obj/structure/chair{ - dir = 1 - }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aJa" = ( @@ -18161,8 +17906,7 @@ /obj/structure/disposalpipe/segment, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = -29; - pixel_y = 0 + pixel_x = -29 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -18170,7 +17914,6 @@ /area/crew_quarters/locker) "aJf" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -18310,7 +18053,6 @@ pixel_y = 2 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -18429,10 +18171,8 @@ }, /area/security/checkpoint/supply) "aJG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/computer/security/telescreen{ desc = "Used for making sure Cargo isn't hiding an armory bigger than Security's."; @@ -18471,7 +18211,6 @@ /obj/machinery/camera{ c_tag = "Cargo Security Checkpoint"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/red/side{ @@ -18495,11 +18234,12 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/com_west) "aJM" = ( -/obj/machinery/light/small, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) "aJN" = ( /obj/structure/table/wood, /obj/item/weapon/storage/box/evidence, @@ -18510,8 +18250,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -18533,14 +18272,23 @@ }, /area/security/detectives_office) "aJQ" = ( -/turf/open/floor/carpet{ +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aJR" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/holopad, @@ -18550,19 +18298,11 @@ }, /area/lawoffice) "aJS" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aJT" = ( /obj/structure/filingcabinet, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18571,38 +18311,45 @@ }, /area/lawoffice) "aJU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aJV" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "outterbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aJW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/brig) -"aJW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -18614,8 +18361,6 @@ /area/security/brig) "aJY" = ( /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -18624,9 +18369,8 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -18644,7 +18388,6 @@ /obj/structure/table, /obj/structure/bedsheetbin, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18676,17 +18419,14 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/locker) "aKf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -18729,18 +18469,16 @@ }, /area/crew_quarters/heads/hop) "aKl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/heads/hop) "aKm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -18818,7 +18556,6 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/light{ @@ -18832,11 +18569,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -18875,8 +18608,6 @@ "aKy" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/deliveryChute{ - tag = "icon-intake (NORTH)"; - icon_state = "intake"; dir = 1 }, /turf/open/floor/plating/airless, @@ -18903,56 +18634,22 @@ /area/security/detectives_office) "aKB" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKC" = ( -/obj/structure/table/wood, -/obj/item/device/camera/detective, -/obj/item/weapon/lighter, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKD" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKE" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aKF" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, /obj/item/weapon/folder/blue{ pixel_x = 5; pixel_y = 5 }, -/obj/structure/disposalpipe/segment, +/obj/item/weapon/folder/red{ + pixel_x = 8; + pixel_y = 6 + }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aKG" = ( +"aKC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; @@ -18962,17 +18659,58 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aKH" = ( +"aKD" = ( /obj/machinery/photocopier, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" +/obj/machinery/button/door{ + id = "lawyer"; + name = "Privacy Shutters"; + pixel_x = 24; + pixel_y = -3 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) +"aKE" = ( +/obj/machinery/camera{ + c_tag = "Brig Holding Cell"; + dir = 4; + network = list("SS13","Security") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKF" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aKI" = ( /obj/machinery/light/small{ dir = 8 @@ -18999,9 +18737,8 @@ }, /area/crew_quarters/toilet) "aKK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19010,13 +18747,10 @@ "aKL" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -19083,9 +18817,8 @@ }, /area/crew_quarters/heads/hop) "aKT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19109,7 +18842,6 @@ /obj/machinery/camera{ c_tag = "Head of Personnel's Office"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/machinery/recharger, @@ -19142,8 +18874,7 @@ /obj/machinery/button/flasher{ id = "hopflash"; name = "Line Flash"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/button/door{ id = "hopshutter"; @@ -19156,7 +18887,6 @@ id = "hopexternal"; name = "External Lockdown"; pixel_x = 24; - pixel_y = 0; req_access_txt = "57" }, /turf/open/floor/wood{ @@ -19165,13 +18895,11 @@ /area/crew_quarters/heads/hop) "aLa" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8; - tag = "icon-darkblue (WEST)" + dir = 8 }, /area/bridge) "aLb" = ( @@ -19244,13 +18972,11 @@ pixel_y = 23 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 4; - tag = "icon-darkblue (EAST)" + dir = 4 }, /area/bridge) "aLh" = ( @@ -19263,8 +18989,7 @@ "aLi" = ( /obj/machinery/camera{ c_tag = "Command SMES"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19329,10 +19054,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19350,12 +19072,10 @@ /obj/machinery/camera{ c_tag = "Docking Quantum Pad"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19371,8 +19091,6 @@ dir = 6 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19385,8 +19103,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19398,8 +19114,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19412,8 +19126,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19427,24 +19139,18 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/quartermaster/office) "aLx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19455,8 +19161,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19467,8 +19171,6 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19480,8 +19182,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19509,7 +19209,6 @@ pixel_y = 1 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -19518,31 +19217,19 @@ }, /area/maintenance/asteroid/fore/com_west) "aLD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aLE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Security SMES"; - dir = 6; - icon_state = "camera" - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table/wood, +/obj/item/device/camera/detective, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aLF" = ( /obj/structure/cable/orange{ d1 = 2; @@ -19567,31 +19254,40 @@ }, /area/security/detectives_office) "aLH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 }, -/turf/open/floor/plasteel/grimy{ +/obj/item/weapon/pen, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, -/turf/open/floor/plasteel/grimy{ +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/power/apc{ + dir = 4; + name = "Lawyer's Office APC"; + pixel_x = 24 }, -/turf/open/floor/plasteel/grimy{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLK" = ( /obj/structure/table/wood, /obj/item/weapon/paper_bin{ @@ -19605,11 +19301,8 @@ }, /area/lawoffice) "aLL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/newscaster/security_unit{ pixel_x = 32 @@ -19619,19 +19312,19 @@ }, /area/lawoffice) "aLM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/structure/chair{ + dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aLN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -19639,19 +19332,7 @@ }, /area/security/courtroom) "aLO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 - }, -/area/security/courtroom) -"aLP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -19659,11 +19340,21 @@ dir = 5 }, /area/security/courtroom) +"aLP" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) "aLQ" = ( /obj/machinery/camera{ c_tag = "Courtroom Jury East"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -19679,9 +19370,8 @@ }, /area/crew_quarters/toilet) "aLS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19692,7 +19382,6 @@ icon_state = "plant-22" }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -19702,7 +19391,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/neutral{ @@ -19713,8 +19401,7 @@ /obj/structure/closet/wardrobe/mixed, /obj/machinery/camera{ c_tag = "Dorm Lockers"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19752,14 +19439,12 @@ }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8; - tag = "icon-darkblue (WEST)" + dir = 8 }, /area/bridge) "aLZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19802,8 +19487,7 @@ }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 4; - tag = "icon-darkblue (EAST)" + dir = 4 }, /area/bridge) "aMe" = ( @@ -19827,8 +19511,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19838,8 +19521,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable/orange{ d1 = 1; @@ -19852,7 +19534,6 @@ /area/maintenance/asteroid/fore/com_east) "aMi" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -19880,8 +19561,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -19893,8 +19573,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -19922,10 +19601,7 @@ }, /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /obj/item/weapon/paper{ info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; @@ -19944,8 +19620,7 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/brown/corner{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/office) "aMq" = ( @@ -19955,8 +19630,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -19997,7 +19670,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -20006,7 +19678,10 @@ }, /area/maintenance/asteroid/fore/cargo_south) "aMu" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -20023,16 +19698,13 @@ }, /area/maintenance/asteroid/fore/com_west) "aMw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plating{ +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -20051,27 +19723,15 @@ }, /area/maintenance/asteroid/fore/com_west) "aMy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aMz" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/cable{ @@ -20170,7 +19830,6 @@ /obj/machinery/button/door{ id = "lawyerexterior"; name = "Privacy Shutters"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/wood{ @@ -20188,11 +19847,8 @@ }, /area/lawoffice) "aMK" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -20201,43 +19857,48 @@ dir = 4 }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aMM" = ( /obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/storage/box/cups, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMN" = ( -/obj/machinery/light, -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMO" = ( -/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/camera{ + c_tag = "Courtroom South"; + dir = 1; + network = list("SS13") + }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMQ" = ( @@ -20285,13 +19946,11 @@ "aMU" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/camera{ c_tag = "Dorm Bathroom"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/freezer{ @@ -20303,7 +19962,6 @@ /obj/machinery/camera{ c_tag = "Dorm Laundry Room"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/barber{ @@ -20330,11 +19988,9 @@ }, /obj/machinery/camera{ c_tag = "Head of Personnel's Queue Line"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -20342,7 +19998,6 @@ /area/crew_quarters/heads/hop) "aMZ" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -20357,7 +20012,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -20367,13 +20021,11 @@ /obj/machinery/camera{ c_tag = "Bridge Midway 3"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8; - tag = "icon-darkblue (WEST)" + dir = 8 }, /area/bridge) "aNc" = ( @@ -20469,8 +20121,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -20486,8 +20137,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -20501,8 +20151,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/fans/tiny, /turf/open/floor/plating{ @@ -20519,15 +20168,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) "aNm" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -20536,13 +20183,14 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aNn" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aNo" = ( @@ -20617,8 +20265,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown/corner{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/office) "aNv" = ( @@ -20627,12 +20274,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -20684,43 +20328,44 @@ }, /area/maintenance/asteroid/fore/com_west) "aNC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/power/apc{ + dir = 1; + name = "Fore Asteroid Maintenace APC"; + pixel_y = 24 }, +/obj/effect/turf_decal/stripes/end, /obj/structure/cable/orange{ - d1 = 1; d2 = 2; - icon_state = "1-2" + icon_state = "0-2" }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "aND" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + icon_state = "0-2"; + d2 = 2 }, -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/power/terminal{ + dir = 8 }, -/obj/structure/sign/electricshock{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "aNE" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" }, -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aNF" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -20738,40 +20383,50 @@ }, /area/lawoffice) "aNG" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aNH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, /obj/structure/cable/orange{ d1 = 1; d2 = 8; icon_state = "1-8" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aNH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerexterior"; - name = "privacy shutters" - }, -/obj/machinery/door/firedoor, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aNI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/glass{ @@ -20787,8 +20442,11 @@ }, /area/security/brig) "aNJ" = ( -/obj/machinery/door/airlock/glass{ - name = "Brig Lobby" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -20814,8 +20472,8 @@ "aNM" = ( /obj/structure/grille, /obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -20886,7 +20544,6 @@ layer = 2.6 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -20910,7 +20567,6 @@ layer = 2.6 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -20959,8 +20615,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance/external{ name = "External Airlock Access"; @@ -20980,7 +20635,6 @@ }, /area/hallway/primary/fore) "aOc" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -20994,10 +20648,9 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "aOd" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -21005,14 +20658,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/grille, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "aOe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21075,8 +20727,7 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/brown/corner{ baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/office) "aOk" = ( @@ -21094,13 +20745,10 @@ /obj/machinery/camera{ c_tag = "Cargo Lobby"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21202,20 +20850,13 @@ }, /area/hallway/primary/starboard/fore) "aOv" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 10"; - dir = 6; - icon_state = "camera" - }, /obj/structure/cable/orange{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; - dir = 4; +/turf/open/floor/plasteel/red/corner{ + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21226,8 +20867,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21242,18 +20881,11 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) "aOy" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 2"; - dir = 6; - icon_state = "camera" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -21263,8 +20895,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21278,9 +20908,11 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/camera{ + c_tag = "Command Asteroid Hall 2"; + dir = 6 + }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21298,9 +20930,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21314,8 +20944,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21334,9 +20962,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21349,10 +20975,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21369,9 +20999,7 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21390,8 +21018,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21414,8 +21040,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21427,14 +21051,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21449,8 +21066,6 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21458,8 +21073,6 @@ "aOJ" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21469,8 +21082,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21489,15 +21100,12 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 4"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/machinery/newscaster{ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21513,8 +21121,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21527,8 +21133,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21538,8 +21142,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21553,8 +21155,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21567,8 +21167,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21582,12 +21180,9 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 5"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21637,8 +21232,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21658,8 +21251,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21677,8 +21268,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21692,12 +21281,9 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 6"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21713,8 +21299,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21739,11 +21323,9 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 7"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21762,7 +21344,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21782,7 +21363,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21804,7 +21384,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21818,7 +21397,6 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21839,7 +21417,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21855,7 +21432,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -21874,8 +21450,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21893,8 +21467,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21909,8 +21481,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21935,8 +21505,6 @@ name = "navigation beacon (Command-Middle 2)" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21952,12 +21520,9 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 8"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21972,8 +21537,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21982,15 +21545,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22005,8 +21565,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22021,8 +21579,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22040,8 +21596,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22056,8 +21610,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22069,12 +21621,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22084,8 +21633,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22099,16 +21646,12 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) "aPx" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22116,12 +21659,9 @@ "aPy" = ( /obj/machinery/camera{ c_tag = "Command Asteroid Hall 9"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22133,8 +21673,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22144,8 +21682,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22153,8 +21689,6 @@ "aPB" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22170,8 +21704,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22187,8 +21719,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22206,8 +21736,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22229,8 +21757,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22248,8 +21774,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22269,8 +21793,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22285,8 +21807,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22306,8 +21826,6 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22354,18 +21872,14 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/disposalpipe/segment, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22443,8 +21957,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22454,8 +21967,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22465,12 +21977,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 + icon_state = "4-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22532,9 +22041,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22557,9 +22065,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22597,9 +22103,8 @@ }, /area/hallway/primary/fore) "aQh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable{ d1 = 4; @@ -22627,9 +22132,7 @@ }, /area/hallway/primary/fore) "aQk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22666,9 +22169,8 @@ }, /area/hallway/primary/fore) "aQp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22714,8 +22216,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22728,11 +22229,7 @@ }, /area/hallway/primary/fore) "aQw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22747,8 +22244,7 @@ /area/hallway/primary/starboard/fore) "aQy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -22838,8 +22334,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22987,15 +22481,13 @@ dir = 4; icon_state = "direction_supply"; pixel_x = 32; - pixel_y = -32; - tag = "icon-direction_supply (EAST)" + pixel_y = -32 }, /obj/structure/sign/directions/medical{ dir = 4; icon_state = "direction_med"; pixel_x = 32; - pixel_y = -40; - tag = "icon-direction_med (EAST)" + pixel_y = -40 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23169,15 +22661,13 @@ dir = 8; icon_state = "direction_sec"; pixel_x = -32; - pixel_y = -32; - tag = "icon-direction_sec (WEST)" + pixel_y = -32 }, /obj/structure/sign/directions/medical{ dir = 4; icon_state = "direction_med"; pixel_x = -32; - pixel_y = -40; - tag = "icon-direction_med (EAST)" + pixel_y = -40 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23202,8 +22692,7 @@ dir = 4; icon_state = "direction_supply"; pixel_x = 32; - pixel_y = -24; - tag = "icon-direction_supply (EAST)" + pixel_y = -24 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23236,8 +22725,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23250,8 +22738,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23264,8 +22751,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ dir = 1; @@ -23286,8 +22772,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -23334,7 +22819,6 @@ "aRw" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23342,7 +22826,6 @@ "aRx" = ( /obj/machinery/light, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23353,14 +22836,12 @@ pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "aRz" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23369,11 +22850,9 @@ /obj/machinery/camera{ c_tag = "Cargo Asteroid Hall 1"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23383,7 +22862,6 @@ dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23395,7 +22873,6 @@ pixel_y = -22 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23412,7 +22889,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23423,8 +22899,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23434,7 +22908,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23448,7 +22921,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23463,7 +22935,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23484,8 +22955,7 @@ dir = 8; icon_state = "direction_sec"; pixel_x = -32; - pixel_y = -40; - tag = "icon-direction_sec (WEST)" + pixel_y = -40 }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -23729,8 +23199,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/maintenance/external{ @@ -23755,25 +23224,23 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "aSi" = ( /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "aSj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -23789,8 +23256,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23839,6 +23304,8 @@ pixel_x = 1; pixel_y = 5 }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23887,7 +23354,6 @@ id = "GulagCivExit3"; name = "Gulag Door Exit"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plating{ @@ -23901,7 +23367,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -23932,8 +23397,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/weapon/screwdriver, @@ -23956,8 +23420,7 @@ "aSz" = ( /obj/structure/noticeboard{ dir = 8; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/weapon/paper{ info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; @@ -24055,9 +23518,8 @@ }, /area/janitor) "aSH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/vehicle/janicart, /turf/open/floor/plasteel{ @@ -24140,16 +23602,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Vault Airlock"; - dir = 5; - icon_state = "camera" + dir = 5 }, /obj/machinery/holopad, /turf/open/floor/plasteel/black, /area/ai_monitored/nuke_storage) "aSP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/orange{ d1 = 1; @@ -24205,7 +23665,6 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24243,8 +23702,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -24307,16 +23765,15 @@ "aTe" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/space, /area/space) "aTf" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aTg" = ( @@ -24438,21 +23895,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Cargo Asteroid Hall 2"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "aTr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24468,8 +23921,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24479,7 +23930,6 @@ id = "GulagCivExit2"; name = "Gulag Door Exit"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -24 }, /obj/effect/turf_decal/stripes/line{ @@ -24506,7 +23956,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/black{ @@ -24551,10 +24000,8 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/com_east) "aTz" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) +/turf/closed/mineral, +/area/security/prison) "aTA" = ( /obj/structure/rack, /obj/item/clothing/suit/space/fragile, @@ -24564,9 +24011,8 @@ }, /area/janitor) "aTB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24574,8 +24020,7 @@ /area/janitor) "aTC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/disposalpipe/segment, /obj/machinery/power/apc{ @@ -24595,18 +24040,15 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = -29; - pixel_y = 0 + pixel_x = -29 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/nuke_storage) "aTE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/orange{ d1 = 1; @@ -24640,8 +24082,7 @@ }, /obj/machinery/camera{ c_tag = "Command Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24674,8 +24115,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24696,13 +24136,11 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/camera{ c_tag = "Cargo Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24734,8 +24172,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24760,7 +24196,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -24875,7 +24310,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24946,8 +24380,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24955,18 +24387,15 @@ "aUm" = ( /obj/machinery/camera{ c_tag = "Command Asteroid Hallway 1"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) "aUn" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -24977,9 +24406,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -24998,12 +24426,10 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -25034,8 +24460,7 @@ /obj/item/key/janitor, /obj/machinery/camera{ c_tag = "Custodials"; - dir = 5; - icon_state = "camera" + dir = 5 }, /obj/item/key/janitor, /turf/open/floor/plasteel{ @@ -25156,11 +24581,9 @@ /area/hallway/primary/fore) "aUG" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25168,8 +24591,7 @@ "aUH" = ( /obj/machinery/camera{ c_tag = "Command Asteroid Hall 10"; - dir = 8; - icon_state = "camera" + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -25209,8 +24631,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25219,8 +24639,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -25230,8 +24649,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/orange{ d1 = 1; @@ -25239,8 +24657,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25249,8 +24665,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ name = "Cargo SMES Access"; @@ -25279,8 +24694,7 @@ "aUQ" = ( /obj/machinery/camera{ c_tag = "Cargo Bay SMES"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -25301,8 +24715,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -25382,7 +24795,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -25424,7 +24836,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -25433,7 +24844,6 @@ /area/hallway/primary/fore) "aVh" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable/orange{ @@ -25442,8 +24852,6 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25551,8 +24959,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ @@ -25580,11 +24987,11 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25596,8 +25003,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25631,10 +25036,10 @@ /area/hallway/primary/fore) "aVw" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/light/small{ @@ -25679,8 +25084,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light/small{ @@ -25720,8 +25124,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25850,7 +25252,6 @@ /obj/structure/filingcabinet, /obj/item/weapon/folder/documents, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/circuit, @@ -25873,8 +25274,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ @@ -25939,8 +25339,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -25964,8 +25363,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -25982,8 +25379,6 @@ /area/maintenance/asteroid/fore/cargo_south) "aWa" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/cable{ @@ -25998,19 +25393,17 @@ }, /area/maintenance/asteroid/fore/cargo_south) "aWb" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aWc" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/cable{ d1 = 2; @@ -26022,19 +25415,17 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_serv) "aWd" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_serv) "aWe" = ( /obj/structure/grille, @@ -26062,8 +25453,7 @@ "aWg" = ( /obj/machinery/camera{ c_tag = "Vault"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) @@ -26072,10 +25462,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/nuke_storage) "aWi" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -26084,10 +25472,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aWj" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -26101,13 +25488,11 @@ }, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aWk" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -26116,14 +25501,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aWl" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/light/small{ @@ -26170,12 +25556,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -26194,10 +25577,8 @@ /turf/open/floor/plating/airless, /area/space) "aWs" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -26209,7 +25590,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_serv) "aWt" = ( /obj/structure/cable{ @@ -26228,9 +25609,8 @@ /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) "aWv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) @@ -26240,36 +25620,31 @@ /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) "aWx" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/grille, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aWy" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aWz" = ( /obj/machinery/power/solar_control{ @@ -26317,7 +25692,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -26336,7 +25710,6 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/asteroid/command) "aWF" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -26352,6 +25725,7 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aWG" = ( @@ -26417,34 +25791,29 @@ }, /obj/machinery/camera{ c_tag = "Cargo Asteroid Hall 3"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "aWM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "aWN" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aWO" = ( @@ -26459,7 +25828,6 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/asteroid/fore) "aWP" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -26470,6 +25838,7 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aWQ" = ( @@ -26510,19 +25879,15 @@ /area/hallway/primary/starboard/fore) "aWT" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "aWU" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -26538,6 +25903,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aWV" = ( @@ -26555,7 +25921,6 @@ }, /area/hallway/primary/starboard/fore) "aWW" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -26564,13 +25929,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aWX" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/cable{ d1 = 2; @@ -26584,10 +25948,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/med_cargo) "aWY" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -26596,13 +25959,11 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/med_cargo) "aWZ" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -26614,33 +25975,32 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/med_cargo) "aXa" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXb" = ( -/obj/structure/lattice/catwalk, /obj/item/stack/cable_coil{ amount = 2 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXc" = ( -/obj/structure/lattice/catwalk, /obj/item/stack/cable_coil{ amount = 30 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXd" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -26651,47 +26011,46 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXe" = ( -/obj/structure/lattice/catwalk, /obj/machinery/power/tracker, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXf" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aXg" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXh" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 8; icon_state = "1-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXi" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -26707,23 +26066,23 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "aXj" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/tracker, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXk" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -26740,6 +26099,7 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXl" = ( @@ -26748,8 +26108,6 @@ "aXm" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/deliveryChute{ - tag = "icon-intake (NORTH)"; - icon_state = "intake"; dir = 1 }, /turf/open/floor/plating/airless, @@ -26760,7 +26118,6 @@ name = "Civilian Asteroid" }) "aXo" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -26776,6 +26133,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXp" = ( @@ -26797,22 +26155,20 @@ "aXs" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/med_cargo) "aXt" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (EAST)"; - icon_state = "conveyor0"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/asteroid/port/west) "aXu" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (SOUTHEAST)"; - icon_state = "conveyor0"; dir = 6 }, /turf/open/floor/plating, @@ -26828,7 +26184,6 @@ /turf/open/floor/plating, /area/maintenance/asteroid/port/west) "aXx" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -26839,6 +26194,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "aXy" = ( @@ -26847,15 +26203,12 @@ }, /obj/machinery/conveyor/auto{ dir = 5; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating, /area/maintenance/asteroid/port/west) "aXz" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (SOUTHWEST)"; - icon_state = "conveyor0"; dir = 10 }, /turf/open/floor/plating, @@ -26910,14 +26263,12 @@ /area/maintenance/asteroid/port/west) "aXH" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/asteroid/port/west) "aXI" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 8 }, /obj/machinery/light/small{ @@ -26980,8 +26331,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -27068,7 +26418,6 @@ /obj/machinery/hydroponics/soil, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/camera{ @@ -27112,10 +26461,8 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/port/west) "aYk" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -27127,7 +26474,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_serv) "aYl" = ( /obj/structure/grille, @@ -27161,10 +26508,7 @@ }, /area/crew_quarters/rehab_dome) "aYp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27181,10 +26525,8 @@ }, /area/crew_quarters/rehab_dome) "aYr" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -27193,10 +26535,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aYs" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -27210,13 +26551,11 @@ }, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/com_engi) "aYt" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -27225,6 +26564,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aYu" = ( @@ -27255,7 +26595,6 @@ "aYy" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27269,6 +26608,8 @@ "aYA" = ( /obj/machinery/door/airlock/glass, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -27343,8 +26684,6 @@ "aYL" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27358,8 +26697,6 @@ "aYN" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27371,8 +26708,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ @@ -27380,7 +26716,6 @@ }, /area/hallway/primary/central) "aYP" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -27389,13 +26724,12 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "aYQ" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -27409,7 +26743,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/med_cargo) "aYR" = ( /obj/structure/disposalpipe/trunk{ @@ -27443,7 +26777,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27457,8 +26790,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -27497,8 +26829,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27514,14 +26845,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/disposalpipe/sortjunction{ - tag = "icon-pipe-j1s (EAST)"; name = "disposal pipe - Bar"; icon_state = "pipe-j1s"; dir = 4; @@ -27535,8 +26864,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27553,8 +26881,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27587,7 +26914,6 @@ "aZe" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/grass{ @@ -27636,8 +26962,6 @@ /area/hallway/primary/central) "aZl" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27649,8 +26973,6 @@ /area/hallway/primary/central) "aZn" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27659,8 +26981,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 @@ -27689,8 +27010,6 @@ "aZr" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27704,8 +27023,6 @@ "aZt" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27735,20 +27052,16 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/port) "aZx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -27771,6 +27084,8 @@ dir = 4 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -27781,8 +27096,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27802,8 +27116,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27823,8 +27136,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27917,8 +27229,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ @@ -27948,11 +27259,11 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27964,8 +27275,6 @@ /area/hallway/primary/starboard) "aZR" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -27982,7 +27291,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Port Hallway APC"; - pixel_x = 0; pixel_y = 24 }, /obj/effect/decal/cleanable/cobweb, @@ -28008,8 +27316,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -28021,7 +27328,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28095,7 +27401,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Port Asteroid Maintence APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -28141,7 +27446,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating{ @@ -28158,12 +27462,9 @@ /obj/machinery/camera{ c_tag = "Engineering Asteroid Hallway 7"; dir = 4; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28198,7 +27499,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating{ @@ -28227,16 +27527,13 @@ /area/hallway/primary/starboard) "baq" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "bar" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -28247,8 +27544,6 @@ dir = 10 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28281,7 +27576,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/floorgrime{ @@ -28292,11 +27586,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 1"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28305,7 +27597,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Bar APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -28416,8 +27707,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -28480,18 +27770,14 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 29; - pixel_y = 0 + pixel_x = 29 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28500,8 +27786,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -28565,24 +27850,21 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "baV" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28609,7 +27891,6 @@ "baY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28617,8 +27898,7 @@ "baZ" = ( /obj/machinery/camera{ c_tag = "Bar Backroom"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -28630,17 +27910,14 @@ }, /area/crew_quarters/bar) "bbb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/bar) "bbc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -28700,7 +27977,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Kitchen APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -28752,8 +28028,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28767,8 +28041,6 @@ dir = 10 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28809,8 +28081,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ @@ -28837,8 +28108,7 @@ "bbx" = ( /obj/machinery/camera{ c_tag = "EVA Equipment"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -28861,8 +28131,6 @@ "bbA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28901,7 +28169,6 @@ "bbF" = ( /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -28940,10 +28207,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -28952,8 +28216,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -28995,8 +28258,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29010,7 +28271,6 @@ /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = -32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /turf/open/floor/plating/astplate{ @@ -29025,8 +28285,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29036,8 +28295,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance/external{ name = "External Airlock Access"; @@ -29054,8 +28312,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29065,8 +28322,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29082,8 +28338,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29096,8 +28351,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/maintenance/external{ @@ -29115,12 +28369,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29155,18 +28406,13 @@ }, /area/ai_monitored/storage/eva) "bca" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/ai_monitored/storage/eva) "bcb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29197,8 +28443,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29218,8 +28463,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29254,8 +28498,6 @@ /area/maintenance/asteroid/port/west) "bck" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/cable{ @@ -29294,7 +28536,6 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29349,9 +28590,7 @@ }, /area/crew_quarters/bar) "bcs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29390,7 +28629,6 @@ "bcx" = ( /obj/structure/flora/ausbushes/reedbush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/grass{ @@ -29404,7 +28642,6 @@ /area/crew_quarters/rehab_dome) "bcz" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -29412,8 +28649,6 @@ /area/crew_quarters/rehab_dome) "bcA" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29425,8 +28660,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29439,8 +28672,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29467,8 +28698,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29477,8 +28706,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, @@ -29532,8 +28760,7 @@ "bcN" = ( /obj/machinery/camera{ c_tag = "Medical SMES"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/structure/chair/stool, /turf/open/floor/plasteel/floorgrime{ @@ -29588,12 +28815,9 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 6"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29641,8 +28865,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ @@ -29749,9 +28972,8 @@ }, /area/crew_quarters/kitchen) "bdj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -29819,7 +29041,6 @@ /area/crew_quarters/rehab_dome) "bdq" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -29834,7 +29055,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -29864,8 +29084,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29882,17 +29100,12 @@ "bdv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bdw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -29906,8 +29119,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -29931,8 +29143,7 @@ "bdz" = ( /obj/structure/rack, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/tank/jetpack/carbondioxide, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -30012,11 +29223,12 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30037,9 +29249,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30085,8 +29296,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance/external{ name = "External Airlock Access"; @@ -30100,12 +29310,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30114,8 +29322,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ @@ -30169,10 +29376,8 @@ }, /area/crew_quarters/bar) "bdT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /mob/living/carbon/monkey/punpun, /turf/open/floor/wood{ @@ -30263,7 +29468,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30280,7 +29484,6 @@ /area/crew_quarters/rehab_dome) "beg" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (SOUTHWEST)"; icon_state = "neutral"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30289,7 +29492,6 @@ "beh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30299,8 +29501,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30310,8 +29510,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30323,8 +29521,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30337,12 +29533,9 @@ dir = 1; icon_state = "direction_sec"; pixel_x = -32; - pixel_y = 24; - tag = "icon-direction_sec (NORTH)" + pixel_y = 24 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30370,8 +29563,6 @@ dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30381,8 +29572,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30391,13 +29580,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30410,8 +29596,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30421,8 +29605,6 @@ dir = 10 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30473,7 +29655,6 @@ pixel_y = 1 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -30497,8 +29678,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/orange{ d1 = 1; @@ -30515,8 +29695,6 @@ icon_state = "0-8" }, /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/sign/electricshock{ @@ -30660,8 +29838,7 @@ "beS" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -30671,8 +29848,6 @@ /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -30692,7 +29867,6 @@ /area/crew_quarters/rehab_dome) "beV" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30738,8 +29912,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -30752,8 +29925,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -30781,8 +29953,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30795,8 +29966,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -30851,7 +30021,6 @@ "bfh" = ( /obj/machinery/holopad, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30865,7 +30034,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30874,7 +30042,6 @@ "bfj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30887,7 +30054,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30896,7 +30062,6 @@ "bfl" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -30906,8 +30071,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance/external{ name = "Medbay SMES Access"; @@ -30998,7 +30162,6 @@ /area/crew_quarters/theatre) "bfz" = ( /obj/structure/window{ - tag = "icon-window (EAST)"; icon_state = "window"; dir = 4 }, @@ -31013,8 +30176,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/plating{ @@ -31034,7 +30196,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31090,7 +30251,6 @@ icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/sign/poster/random{ @@ -31165,8 +30325,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/asteroid/line, @@ -31188,7 +30347,6 @@ /obj/structure/flora/ausbushes/fullgrass, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/grass{ @@ -31199,7 +30357,6 @@ /obj/structure/flora/ausbushes/sparsegrass, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/grass{ @@ -31223,7 +30380,6 @@ /area/crew_quarters/rehab_dome) "bfV" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table, @@ -31231,7 +30387,6 @@ dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31249,7 +30404,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31259,7 +30413,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31277,7 +30430,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31296,11 +30448,9 @@ /obj/machinery/camera{ c_tag = "Engineering Asteroid Hallway 3"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31309,27 +30459,23 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bgc" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bgd" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -31342,7 +30488,6 @@ /obj/machinery/camera{ c_tag = "Engineering Asteroid Hallway 4"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ @@ -31358,7 +30503,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/neutral/corner{ @@ -31381,8 +30525,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -31412,7 +30555,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -31446,7 +30588,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (WEST)"; icon_state = "blue"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -31493,10 +30634,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -31514,7 +30653,6 @@ pixel_y = 2 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -31531,7 +30669,6 @@ dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31550,8 +30687,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31560,8 +30695,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -31570,8 +30704,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31594,8 +30726,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31616,8 +30746,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31635,8 +30763,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31660,8 +30786,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31682,8 +30806,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31703,8 +30825,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31720,11 +30840,11 @@ icon_state = "pipe-c" }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31747,8 +30867,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -31830,7 +30948,6 @@ /area/maintenance/asteroid/starboard) "bgK" = ( /obj/structure/window{ - tag = "icon-window (EAST)"; icon_state = "window"; dir = 4 }, @@ -31839,9 +30956,8 @@ }, /area/crew_quarters/theatre) "bgL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ @@ -31864,8 +30980,7 @@ "bgN" = ( /obj/machinery/camera{ c_tag = "Bar"; - dir = 5; - icon_state = "camera" + dir = 5 }, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 @@ -32026,8 +31141,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -32051,8 +31165,6 @@ "bhb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32060,8 +31172,6 @@ "bhc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32075,8 +31185,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -32097,7 +31206,6 @@ dir = 8 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -32108,7 +31216,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (WEST)"; icon_state = "blue"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -32129,11 +31236,8 @@ }, /area/ai_monitored/storage/eva) "bhj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32142,11 +31246,9 @@ "bhk" = ( /obj/machinery/camera{ c_tag = "EVA Storage"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -32161,7 +31263,6 @@ "bhm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32170,8 +31271,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ @@ -32192,24 +31292,18 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "bhq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32225,23 +31319,20 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "bhs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32267,7 +31358,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (NORTH)"; icon_state = "ast_warn_end"; dir = 1 }, @@ -32304,7 +31394,6 @@ /area/crew_quarters/theatre) "bhz" = ( /obj/structure/window{ - tag = "icon-window (EAST)"; icon_state = "window"; dir = 4 }, @@ -32328,11 +31417,8 @@ }, /area/crew_quarters/bar) "bhB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/bar{ @@ -32380,9 +31466,8 @@ "bhI" = ( /obj/structure/table, /obj/item/weapon/book/manual/chef_recipes, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32409,8 +31494,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -32468,12 +31552,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Engineering Asteroid Hallway 5"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32482,8 +31563,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32492,8 +31572,6 @@ "bhU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32505,7 +31583,6 @@ }, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -32539,7 +31616,6 @@ /obj/structure/table, /obj/item/weapon/storage/toolbox/mechanical, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHEAST)"; icon_state = "blue"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -32574,7 +31650,6 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 4"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ @@ -32603,7 +31678,6 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 5"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/neutral/corner{ @@ -32627,8 +31701,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32682,14 +31754,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 2"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/sign/map/left/ceres{ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32807,10 +31877,8 @@ }, /area/crew_quarters/kitchen) "biA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32834,8 +31902,7 @@ /obj/structure/table, /obj/machinery/microwave, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32849,16 +31916,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/machinery/camera{ c_tag = "Service Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -32875,7 +31940,6 @@ /area/maintenance/asteroid/port/neast) "biG" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -33001,10 +32065,7 @@ }, /area/medical/surgery) "biX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33089,8 +32150,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33103,8 +32163,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -33120,8 +32179,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33137,8 +32195,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ name = "Port Asteroid Maintenance"; @@ -33155,15 +32212,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33172,8 +32227,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33283,8 +32337,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33303,7 +32356,6 @@ /area/maintenance/asteroid/port/neast) "bjz" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -33323,8 +32375,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33352,8 +32402,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33367,19 +32415,12 @@ /area/hallway/primary/central) "bjG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 - }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33388,8 +32429,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -33425,9 +32465,8 @@ }, /area/hallway/primary/starboard) "bjK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -33477,10 +32516,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33516,10 +32552,7 @@ }, /area/medical/surgery) "bjT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33676,7 +32709,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -33772,10 +32804,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/chair{ dir = 8 }, @@ -33848,7 +32877,6 @@ /obj/structure/closet/secure_closet/freezer/fridge, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/cafeteria{ @@ -33863,8 +32891,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -33882,7 +32909,6 @@ /area/maintenance/asteroid/port/neast) "bky" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -33929,8 +32955,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -33944,8 +32969,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/power/emitter{ anchored = 1; @@ -33989,10 +33013,7 @@ /area/medical/morgue) "bkI" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34057,7 +33078,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/black{ @@ -34190,8 +33210,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/structure/sign/securearea{ @@ -34199,8 +33218,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -34235,8 +33253,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -34249,8 +33266,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -34266,8 +33282,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -34285,16 +33300,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34317,8 +33329,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34338,8 +33348,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -34362,8 +33371,7 @@ department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -34382,8 +33390,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34392,8 +33398,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -34411,8 +33416,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -34421,8 +33425,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34431,8 +33433,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34453,8 +33454,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34473,8 +33473,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34490,8 +33489,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34508,8 +33506,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34535,8 +33532,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -34557,8 +33553,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -34568,8 +33563,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -34582,8 +33576,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -34602,8 +33595,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -34626,8 +33618,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ @@ -34649,8 +33640,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -34709,11 +33699,7 @@ }, /area/medical/patients_rooms) "blL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34754,8 +33740,7 @@ }, /obj/machinery/camera{ c_tag = "Surgery Observation"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -34922,12 +33907,10 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/bar{ @@ -35005,8 +33988,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35019,8 +34001,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35035,8 +34016,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35051,7 +34031,6 @@ }, /area/maintenance/asteroid/port/neast) "bms" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -35060,10 +34039,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bmt" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -35082,8 +34061,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35096,8 +34074,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35115,8 +34092,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35139,7 +34115,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -35153,8 +34128,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -35163,12 +34136,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Engineering Asteroid Hallway 2"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -35177,8 +34147,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35188,8 +34157,7 @@ /obj/structure/reflector/single{ anchored = 1; dir = 4; - icon_state = "reflector"; - tag = "icon-reflector (NORTH)" + icon_state = "reflector" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35207,8 +34175,7 @@ /obj/structure/reflector/single{ anchored = 1; dir = 1; - icon_state = "reflector"; - tag = "icon-reflector (NORTH)" + icon_state = "reflector" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35218,8 +34185,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -35231,8 +34196,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -35277,8 +34240,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -35294,8 +34256,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35316,8 +34277,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -35330,7 +34290,6 @@ }, /area/hallway/primary/central) "bmM" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -35343,10 +34302,10 @@ dir = 2; icon_state = "pipe-c" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bmN" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -35359,10 +34318,10 @@ dir = 4; icon_state = "pipe-c" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bmO" = ( -/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -35374,6 +34333,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bmP" = ( @@ -35383,8 +34343,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -35400,8 +34359,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -35421,8 +34379,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -35500,13 +34457,11 @@ /obj/machinery/camera{ c_tag = "Chief Medical Officer's Office"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/machinery/button/door{ id = "cmooffice"; name = "Office Emergency Lockdown"; - pixel_x = 0; pixel_y = -24 }, /mob/living/simple_animal/pet/cat/Runtime, @@ -35594,17 +34549,11 @@ }, /area/medical/surgery) "bnh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ c_tag = "Surgery"; dir = 10; - icon_state = "camera"; - network = list("SS13","CMO"); - tag = "icon-camera (SOUTHWEST)" + network = list("SS13","CMO") }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35652,11 +34601,7 @@ }, /area/medical/surgery) "bnl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -35703,7 +34648,6 @@ /obj/machinery/camera{ c_tag = "Virology Breakroom"; dir = 5; - icon_state = "camera"; network = list("SS13","CMO") }, /turf/open/floor/plasteel/white{ @@ -35719,10 +34663,8 @@ }, /area/medical/virology) "bns" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35776,8 +34718,7 @@ /obj/structure/table, /obj/machinery/camera{ c_tag = "Primary Tool Storage North"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -35956,7 +34897,6 @@ }, /area/maintenance/asteroid/port/neast) "bnM" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 1; @@ -35970,16 +34910,14 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/serv_engi) "bnN" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35988,10 +34926,9 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/serv_engi) "bnO" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 1; @@ -36005,7 +34942,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/serv_engi) "bnP" = ( /obj/machinery/light{ @@ -36013,16 +34950,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bnQ" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; dir = 1 }, /turf/closed/wall/r_wall, @@ -36035,8 +34968,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -36061,20 +34993,16 @@ /area/engine/engineering) "bnU" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bnV" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 1; @@ -36092,16 +35020,14 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "bnW" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -36113,10 +35039,9 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "bnX" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/cable{ d1 = 1; @@ -36134,23 +35059,20 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "bnY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "bnZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -36158,7 +35080,6 @@ /area/hallway/primary/starboard) "boa" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -36212,13 +35133,8 @@ }, /area/medical/medbay/central) "bof" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -36227,7 +35143,6 @@ "bog" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -36236,7 +35151,6 @@ "boh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -36246,7 +35160,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Morgue APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -36254,7 +35167,6 @@ icon_state = "0-2" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -36262,7 +35174,6 @@ /area/medical/patients_rooms) "boj" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -36286,7 +35197,6 @@ /area/medical/surgery) "bom" = ( /obj/machinery/door/airlock/glass_medical{ - id_tag = ""; name = "Surgery Observation"; req_access_txt = "0" }, @@ -36297,7 +35207,6 @@ /area/medical/surgery) "bon" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -36371,10 +35280,8 @@ }, /area/medical/virology) "bou" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -36395,7 +35302,6 @@ /obj/structure/table, /obj/machinery/reagentgrinder, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -36501,8 +35407,7 @@ dir = 1; icon_state = "direction_sec"; pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_sec (NORTH)" + pixel_y = 24 }, /obj/structure/cable/orange{ d1 = 4; @@ -36530,8 +35435,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36600,8 +35503,6 @@ c_tag = "Service Asteroid Hallway 7" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36611,8 +35512,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36622,16 +35521,12 @@ dir = 10 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/port) "boQ" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36645,8 +35540,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36660,8 +35553,6 @@ c_tag = "Service Asteroid Hallway 8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36672,8 +35563,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36687,8 +35576,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36699,8 +35586,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36710,8 +35595,6 @@ c_tag = "Engineering Asteroid Hallway 1" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36725,8 +35608,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36736,8 +35617,6 @@ dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36747,8 +35626,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36760,7 +35637,8 @@ /obj/machinery/atmospherics/components/binary/pump{ dir = 2; icon_state = "pump_map"; - name = "Cooling Loop To Gas" + name = "Cooling Loop To Gas"; + on = 1 }, /obj/structure/cable{ d1 = 2; @@ -36779,8 +35657,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -36791,15 +35671,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, /obj/structure/cable{ d1 = 1; d2 = 8; icon_state = "1-8" }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4; + filter_type = "n2" + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -36809,7 +35689,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, /turf/open/floor/engine{ @@ -36821,8 +35701,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -36833,7 +35713,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, /turf/open/floor/engine{ @@ -36843,7 +35723,7 @@ /area/engine/engineering) "bpg" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, /turf/open/floor/plasteel/black{ @@ -36854,7 +35734,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, /turf/open/floor/engine{ @@ -36863,7 +35743,7 @@ }, /area/engine/engineering) "bpi" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, /turf/closed/wall/r_wall, @@ -36872,12 +35752,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -36891,22 +35769,19 @@ dir = 4; icon_state = "direction_evac"; pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_evac (EAST)" + pixel_y = 24 }, /obj/structure/sign/directions/medical{ dir = 4; icon_state = "direction_med"; pixel_x = 32; - pixel_y = 32; - tag = "icon-direction_med (EAST)" + pixel_y = 32 }, /obj/structure/sign/directions/security{ dir = 1; icon_state = "direction_sec"; pixel_x = 32; - pixel_y = 40; - tag = "icon-direction_sec (NORTH)" + pixel_y = 40 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -36918,8 +35793,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36933,8 +35806,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36944,8 +35815,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36955,8 +35824,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36970,8 +35837,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -36982,8 +35847,7 @@ dir = 1; icon_state = "direction_sec"; pixel_x = -32; - pixel_y = 24; - tag = "icon-direction_sec (NORTH)" + pixel_y = 24 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -37000,7 +35864,6 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 3"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/neutral/corner{ @@ -37067,8 +35930,7 @@ }, /obj/machinery/camera{ c_tag = "Medbay Security Checkpoint"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 @@ -37085,7 +35947,6 @@ }, /obj/structure/closet/secure_closet/security/med, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -37109,7 +35970,6 @@ "bpy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -37127,7 +35987,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -37308,7 +36167,6 @@ /obj/machinery/camera{ c_tag = "Virology 2"; dir = 5; - icon_state = "camera"; network = list("SS13","CMO") }, /turf/open/floor/plasteel/white{ @@ -37332,7 +36190,6 @@ /obj/machinery/camera{ c_tag = "Virology"; dir = 5; - icon_state = "camera"; network = list("SS13","CMO") }, /obj/machinery/requests_console{ @@ -37341,7 +36198,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -37357,7 +36213,6 @@ "bpT" = ( /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -37375,8 +36230,6 @@ /area/maintenance/asteroid/starboard) "bpW" = ( /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (WEST)"; - icon_state = "propulsion"; dir = 8 }, /turf/open/floor/plating, @@ -37432,21 +36285,15 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/port) "bqe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37492,7 +36339,6 @@ "bqi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/junction{ - tag = "icon-pipe-j2 (WEST)"; icon_state = "pipe-j2"; dir = 8 }, @@ -37516,9 +36362,8 @@ }, /area/hallway/primary/port) "bqk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -37555,9 +36400,7 @@ }, /area/hallway/primary/central) "bqo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37566,13 +36409,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 + icon_state = "1-2" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37581,12 +36420,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 29; - pixel_y = 0 + pixel_x = 29 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37595,19 +36431,17 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, /obj/machinery/meter, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -37616,8 +36450,8 @@ /area/engine/engineering) "bqs" = ( /obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -37626,13 +36460,8 @@ /area/engine/engineering) "bqt" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "co2"; - icon_state = "filter_off_f"; - name = "gas filter (CO2)"; - on = 1; - tag = "icon-filter_off_f (WEST)" +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -37641,10 +36470,9 @@ /area/engine/engineering) "bqu" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/meter, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -37652,14 +36480,8 @@ /area/engine/engineering) "bqv" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = "o2"; - icon_state = "filter_off_f"; - name = "gas filter (O2)"; - on = 1; - tag = "icon-filter_off_f (WEST)" - }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -37669,16 +36491,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, /obj/machinery/camera{ c_tag = "SM North"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -37688,10 +36508,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/meter, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -37699,13 +36518,12 @@ /area/engine/engineering) "bqy" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 8; filter_type = "plasma"; icon_state = "filter_off_f"; name = "gas filter (Plasma)"; - on = 1; - tag = "icon-filter_off_f (WEST)" + on = 1 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -37714,14 +36532,7 @@ /area/engine/engineering) "bqz" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 8; - filter_type = ""; - icon_state = "filter_off_f"; - name = "gas filter (Custom)"; - on = 1; - tag = "icon-filter_off_f (WEST)" - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -37731,7 +36542,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, /turf/open/floor/engine{ @@ -37762,7 +36573,7 @@ dir = 8; frequency = 1441; id = null; - pixel_y = 1 + volume_rate = 200 }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -37772,12 +36583,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37844,9 +36652,8 @@ }, /area/hallway/primary/starboard) "bqK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/computer/security/telescreen{ desc = "Used to watch the questionable medical practices of Medbay from a safe distance."; @@ -38013,7 +36820,6 @@ /obj/machinery/camera{ c_tag = "Medbay North"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/effect/landmark/lightsout, @@ -38044,9 +36850,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 0; - pixel_y = -30; - pixel_z = 0 + pixel_y = -30 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38087,7 +36891,6 @@ /obj/structure/table, /obj/item/stack/packageWrap, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/white{ @@ -38097,7 +36900,6 @@ "brd" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38131,7 +36933,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38159,11 +36960,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38179,7 +36978,6 @@ "brk" = ( /obj/machinery/computer/pandemic, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38231,7 +37029,6 @@ }, /obj/machinery/light/small, /obj/machinery/computer/shuttle/pod{ - pixel_x = 0; pixel_y = 32; possible_destinations = "pod_lavaland3"; shuttleId = "pod3" @@ -38239,7 +37036,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -32 }, /obj/machinery/camera{ @@ -38308,7 +37104,6 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38334,15 +37129,13 @@ dir = 4; icon_state = "direction_eng"; pixel_x = 32; - pixel_y = -24; - tag = "icon-direction_eng (EAST)" + pixel_y = -24 }, /obj/structure/sign/directions/medical{ dir = 4; icon_state = "direction_med"; pixel_x = 32; - pixel_y = -32; - tag = "icon-direction_med (EAST)" + pixel_y = -32 }, /obj/structure/sign/directions/science{ pixel_x = 32; @@ -38364,7 +37157,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38409,7 +37201,6 @@ dir = 4 }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38420,7 +37211,6 @@ dir = 4 }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38435,7 +37225,6 @@ dir = 4 }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -38446,7 +37235,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38463,7 +37251,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38475,11 +37262,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38490,7 +37275,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38500,7 +37284,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38512,7 +37295,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38520,7 +37302,6 @@ "brP" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38530,11 +37311,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38542,17 +37321,14 @@ "brR" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38562,11 +37338,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38578,11 +37352,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38600,12 +37372,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38615,11 +37385,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38631,8 +37399,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38642,8 +37409,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -38662,8 +37428,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38675,8 +37439,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -38699,7 +37462,7 @@ /area/engine/engineering) "bsb" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38708,7 +37471,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -38729,8 +37492,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38739,8 +37500,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -38829,8 +37589,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38841,8 +37600,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38851,14 +37609,12 @@ "bsl" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38869,8 +37625,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38879,14 +37634,12 @@ "bsn" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) "bso" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38897,7 +37650,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38911,7 +37663,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -38922,15 +37673,13 @@ dir = 8; icon_state = "direction_eng"; pixel_x = -32; - pixel_y = -24; - tag = "icon-direction_eng (WEST)" + pixel_y = -24 }, /obj/structure/sign/directions/supply{ dir = 1; icon_state = "direction_supply"; pixel_x = -32; - pixel_y = -32; - tag = "icon-direction_supply (NORTH)" + pixel_y = -32 }, /obj/structure/sign/directions/evac{ pixel_x = -32; @@ -38985,9 +37734,8 @@ }, /area/security/checkpoint/medical) "bsw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39083,7 +37831,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39104,11 +37851,9 @@ /obj/machinery/camera{ c_tag = "Virology Airlocks"; dir = 5; - icon_state = "camera"; network = list("SS13","CMO") }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39119,7 +37864,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39130,7 +37874,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39157,7 +37900,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39170,10 +37912,8 @@ }, /area/medical/virology) "bsP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39191,7 +37931,6 @@ amount = 5 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39260,8 +37999,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39300,7 +38038,6 @@ /area/hydroponics) "bte" = ( /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39374,13 +38111,12 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/serv_engi) "btn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -39396,8 +38132,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral{ @@ -39405,10 +38140,10 @@ }, /area/hallway/primary/central) "btp" = ( +/obj/structure/closet/secure_closet/engineering_personal, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 5 }, -/obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39428,13 +38163,12 @@ /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Gas to Cooling Loop"; - on = 0 + on = 1 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -39445,15 +38179,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -39461,18 +38194,17 @@ /area/engine/engineering) "btt" = ( /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, -/obj/machinery/door/poddoor/shutters{ - id = "SM1" +/obj/machinery/door/poddoor/shutters/preopen{ + id = "SM1"; + name = "Radiation Chamber Shutters" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39493,21 +38225,18 @@ /area/engine/supermatter) "btv" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/supermatter) "btw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -39521,9 +38250,8 @@ }, /area/engine/supermatter) "bty" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -39532,11 +38260,11 @@ /area/engine/supermatter) "btz" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 10 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39556,18 +38284,17 @@ /area/engine/supermatter) "btB" = ( /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, -/obj/machinery/door/poddoor/shutters{ - id = "SM2" +/obj/machinery/door/poddoor/shutters/preopen{ + id = "SM2"; + name = "Radiation Chamber Shutters" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39582,9 +38309,10 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, +/obj/machinery/meter, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -39614,13 +38342,11 @@ /area/engine/engineering) "btF" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/camera{ c_tag = "SM East"; dir = 9; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/black{ @@ -39633,8 +38359,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39643,8 +38367,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -39660,8 +38383,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39695,7 +38416,6 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -39705,13 +38425,12 @@ }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "btM" = ( /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -39720,13 +38439,12 @@ }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "btN" = ( /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -39736,7 +38454,7 @@ }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/engi_med) "btO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -39758,8 +38476,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -39836,10 +38553,8 @@ }, /area/medical/medbay/central) "btY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -39865,7 +38580,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39884,7 +38598,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39912,7 +38625,6 @@ idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; - pixel_x = 0; pixel_y = -28; req_access_txt = "39" }, @@ -39920,7 +38632,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39931,7 +38642,6 @@ idDoor = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; - pixel_x = 0; pixel_y = -28; req_access_txt = "39" }, @@ -39939,7 +38649,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -39968,7 +38677,6 @@ idInterior = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Console"; - pixel_x = 0; pixel_y = -22; req_access_txt = "39" }, @@ -39976,7 +38684,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (WEST)"; icon_state = "whitegreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -40001,7 +38708,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -40107,9 +38813,8 @@ }, /area/storage/primary) "buv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -40286,10 +38991,10 @@ }, /area/maintenance/asteroid/port/east) "buK" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "buL" = ( @@ -40336,7 +39041,6 @@ "buP" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -40348,8 +39052,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/navbeacon{ @@ -40363,7 +39066,6 @@ /area/hallway/primary/central) "buR" = ( /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -40391,12 +39093,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 + icon_state = "1-2" }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -40406,7 +39105,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -40417,6 +39115,7 @@ d2 = 4; icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -40424,11 +39123,11 @@ /area/engine/engineering) "buW" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 8 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40442,12 +39141,11 @@ /area/engine/supermatter) "buY" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40480,7 +39178,9 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Filtered to Gas" + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -40517,8 +39217,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -40534,11 +39233,9 @@ "bvf" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -40579,8 +39276,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -40599,7 +39295,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Central Asteroid Maintenance APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -40657,15 +39352,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bvo" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -40673,6 +39367,7 @@ dir = 1; icon_state = "pipe-c" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bvp" = ( @@ -40771,12 +39466,13 @@ }, /area/hallway/primary/starboard) "bvw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40821,10 +39517,7 @@ }, /area/medical/medbay/central) "bvC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40843,8 +39536,7 @@ /area/medical/medbay/central) "bvF" = ( /obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -40878,7 +39570,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/bed/roller, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -40916,7 +39607,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -40999,9 +39689,7 @@ }, /area/storage/primary) "bvV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41016,8 +39704,7 @@ /area/storage/primary) "bvX" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -41036,7 +39723,6 @@ dir = 4 }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41053,7 +39739,6 @@ /area/hydroponics) "bwa" = ( /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (WEST)"; icon_state = "darkgreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41102,11 +39787,6 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41117,8 +39797,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41147,8 +39826,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ @@ -41185,7 +39863,6 @@ /obj/machinery/camera{ c_tag = "SM West"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/black{ @@ -41199,8 +39876,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine{ @@ -41236,7 +39912,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, /turf/open/floor/engine{ @@ -41291,8 +39967,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -41331,8 +40006,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41349,8 +40023,7 @@ }, /obj/machinery/camera{ c_tag = "Medbay Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41381,6 +40054,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41405,11 +40082,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41434,7 +40109,6 @@ /area/medical/medbay/central) "bwI" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41463,13 +40137,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Medbay East"; - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/structure/noticeboard{ dir = 8; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41480,7 +40152,6 @@ /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -41488,9 +40159,8 @@ }, /area/medical/medbay/central) "bwN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/start/medical_doctor, /turf/open/floor/plasteel{ @@ -41508,14 +40178,12 @@ /area/medical/medbay/central) "bwP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/camera{ c_tag = "Cyrotubes"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41546,7 +40214,6 @@ /obj/structure/bed/roller, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41575,10 +40242,8 @@ }, /area/medical/genetics/cloning) "bwU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/airalarm{ frequency = 1439; @@ -41598,16 +40263,14 @@ dir = 6 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/medical/genetics/cloning) "bwW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /mob/living/carbon/monkey, /turf/open/floor/plasteel/white{ @@ -41615,9 +40278,8 @@ }, /area/medical/virology) "bwX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -41717,11 +40379,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 3"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41813,9 +40473,7 @@ }, /area/hydroponics) "bxq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41877,14 +40535,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41898,7 +40554,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41906,11 +40561,9 @@ /area/engine/break_room) "bxw" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-22"; icon_state = "plant-22" }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (NORTH)"; icon_state = "yellowcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -41920,7 +40573,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -41932,6 +40584,7 @@ pixel_x = 24; req_access_txt = "10" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -41958,7 +40611,6 @@ /area/engine/supermatter) "bxA" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /obj/machinery/meter, @@ -41979,13 +40631,13 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/button/door{ id = "SM2"; name = "Collector Shuttle Toggle"; pixel_x = -24; req_access_txt = "10" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -41995,9 +40647,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -42013,12 +40664,10 @@ "bxF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-22"; icon_state = "plant-22" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42033,7 +40682,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42051,7 +40699,6 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (NORTH)"; icon_state = "yellowcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42144,7 +40791,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -42160,7 +40806,6 @@ /obj/machinery/button/door{ id = "medmain"; name = "Medbay Foyer Doors"; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/requests_console{ @@ -42168,9 +40813,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 30; - pixel_y = 0; - pixel_z = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -42201,12 +40844,10 @@ "bxX" = ( /obj/structure/bed/roller, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42244,7 +40885,6 @@ dir = 9 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42287,8 +40927,7 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/camera{ c_tag = "Primary Tool Storage South"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -42308,7 +40947,6 @@ pixel_y = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -42394,8 +41032,7 @@ icon_state = "right"; name = "Hydroponics Delievery Chute"; opacity = 1; - req_access_txt = "33"; - tag = "icon-right (WEST)" + req_access_txt = "33" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plating{ @@ -42448,8 +41085,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -42473,12 +41109,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -42540,7 +41176,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -42557,7 +41193,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42591,15 +41226,12 @@ /area/maintenance/asteroid/central) "byM" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -42608,6 +41240,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -42633,7 +41266,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42661,7 +41293,6 @@ dir = 10 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42691,8 +41322,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white{ @@ -42706,8 +41336,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -42721,12 +41350,10 @@ /area/medical/medbay/central) "byY" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -42743,7 +41370,6 @@ /obj/machinery/camera{ c_tag = "Medbay West"; dir = 5; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/white{ @@ -42774,8 +41400,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/sign/nosmoking_2{ pixel_x = 32 @@ -42786,7 +41411,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42857,9 +41481,8 @@ }, /area/hydroponics) "bzk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -42867,7 +41490,6 @@ /area/hydroponics) "bzl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ @@ -42878,7 +41500,6 @@ "bzm" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen{ @@ -42922,8 +41543,6 @@ /area/maintenance/asteroid/central) "bzs" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall{ @@ -42933,8 +41552,6 @@ "bzt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -42945,12 +41562,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -42960,8 +41574,6 @@ "bzv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -42972,17 +41584,13 @@ /obj/structure/table, /obj/item/weapon/storage/box/donkpockets, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 29; - pixel_y = 0 + pixel_x = 29 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -42990,8 +41598,6 @@ /area/engine/break_room) "bzx" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall{ @@ -43001,9 +41607,7 @@ "bzy" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5; - icon_state = "intact"; - tag = "icon-intact (SOUTHEAST)" + dir = 5 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -43012,9 +41616,7 @@ "bzz" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (EAST)"; name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/black{ @@ -43022,7 +41624,7 @@ }, /area/engine/engineering) "bzA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, /area/engine/supermatter) "bzB" = ( @@ -43051,11 +41653,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43065,8 +41665,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel{ @@ -43084,8 +41683,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -43104,17 +41702,13 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/checkpoint/engineering) "bzI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; @@ -43141,7 +41735,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43157,12 +41750,11 @@ /area/hallway/primary/starboard) "bzL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -43201,7 +41793,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43260,7 +41851,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43274,7 +41864,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43329,11 +41918,7 @@ }, /area/medical/medbay/central) "bzZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -43348,7 +41933,6 @@ "bAb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43371,10 +41955,7 @@ }, /area/medical/genetics/cloning) "bAe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -43382,7 +41963,6 @@ "bAf" = ( /obj/machinery/clonepod, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable/orange{ @@ -43391,7 +41971,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43452,7 +42031,6 @@ "bAl" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel{ @@ -43476,17 +42054,14 @@ dir = 8 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (WEST)"; icon_state = "darkgreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hydroponics) "bAo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -43512,7 +42087,6 @@ req_access_txt = "35" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen{ @@ -43522,7 +42096,6 @@ "bAs" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/grass{ @@ -43541,7 +42114,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -43565,12 +42137,12 @@ d2 = 4; icon_state = "2-4" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, /obj/item/device/assembly/mousetrap/armed, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -43619,8 +42191,6 @@ /area/maintenance/asteroid/central) "bAC" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -43633,8 +42203,6 @@ /area/maintenance/asteroid/central) "bAD" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/closed/wall/r_wall{ @@ -43643,8 +42211,6 @@ /area/engine/break_room) "bAE" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall{ @@ -43658,7 +42224,6 @@ /obj/machinery/camera{ c_tag = "Engineering Lobby West"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /obj/machinery/newscaster{ @@ -43672,14 +42237,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -43689,7 +42250,6 @@ /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43706,7 +42266,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable{ @@ -43724,9 +42283,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -43736,8 +42292,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -43748,14 +42306,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -43766,17 +42323,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/trinary/filter{ +/obj/machinery/atmospherics/components/trinary/filter/critical{ dir = 8; icon_state = "filter_off"; - on = 1; - tag = "icon-filter_off (WEST)" + on = 1 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -43787,17 +42342,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/sign/radiation{ pixel_y = 32 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -43808,18 +42362,17 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ frequency = 1439; locked = 0; pixel_y = 23 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -43848,7 +42401,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -43858,13 +42411,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/sign/radiation{ pixel_y = 32 }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -43879,7 +42432,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -43889,12 +42442,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -43908,7 +42461,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -43933,14 +42485,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -43950,8 +42498,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -43965,8 +42512,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -43989,8 +42535,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -44002,8 +42547,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ @@ -44024,7 +42568,6 @@ /area/security/checkpoint/engineering) "bBc" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -44038,7 +42581,7 @@ name = "Broom Closet"; req_access_txt = "0" }, -/turf/closed/wall{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) @@ -44069,9 +42612,8 @@ }, /area/medical/medbay/central) "bBg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44081,7 +42623,6 @@ /obj/machinery/camera{ c_tag = "Medbay Lobby"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/white{ @@ -44102,7 +42643,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/white{ @@ -44212,7 +42752,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44322,7 +42861,6 @@ /area/maintenance/asteroid/starboard) "bBA" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /obj/structure/disposalpipe/trunk, @@ -44357,9 +42895,8 @@ }, /area/maintenance/asteroid/port/west) "bBD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44371,8 +42908,6 @@ /area/maintenance/asteroid/central) "bBF" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating/astplate{ @@ -44381,8 +42916,6 @@ /area/maintenance/asteroid/central) "bBG" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating/astplate{ @@ -44391,8 +42924,6 @@ /area/maintenance/asteroid/central) "bBH" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating/astplate{ @@ -44409,13 +42940,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 + icon_state = "1-2" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -44424,7 +42951,6 @@ /obj/structure/table, /obj/item/weapon/storage/box/cups, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44469,8 +42995,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -44481,8 +43006,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -44493,14 +43017,12 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -44511,8 +43033,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/yellow{ d1 = 2; @@ -44529,8 +43050,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -44580,11 +43100,9 @@ /obj/machinery/camera{ c_tag = "Engineering Lobby East"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44605,10 +43123,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44626,8 +43142,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44655,14 +43170,12 @@ /obj/machinery/recharger, /obj/machinery/camera{ c_tag = "Engineering Security Checkpoint"; - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/light{ dir = 4 @@ -44777,7 +43290,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44820,15 +43332,12 @@ id = "cloningmain"; name = "Cloning Door"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/camera{ c_tag = "Cloning"; dir = 10; - icon_state = "camera"; - network = list("SS13","CMO"); - tag = "icon-camera (SOUTHWEST)" + network = list("SS13","CMO") }, /obj/structure/cable/orange{ d1 = 1; @@ -44891,9 +43400,8 @@ }, /area/maintenance/asteroid/port/west) "bCz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -44901,11 +43409,9 @@ /area/hydroponics) "bCA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (WEST)"; icon_state = "darkgreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44966,8 +43472,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -44987,7 +43492,6 @@ "bCL" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -44995,8 +43499,6 @@ /area/engine/break_room) "bCM" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall{ @@ -45060,13 +43562,11 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/camera{ c_tag = "SM South"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/engine{ @@ -45098,8 +43598,6 @@ /area/engine/engineering) "bCX" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, @@ -45115,7 +43613,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45148,8 +43645,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/glass_security{ name = "Prisoner Processing"; @@ -45181,9 +43677,7 @@ }, /area/security/checkpoint/engineering) "bDf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/computer/security/telescreen{ desc = "Used to watch the CE's wrench monkeys incase they build another disposal 'ride'."; name = "Engineering Monitor"; @@ -45213,7 +43707,6 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 2"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/neutral/corner{ @@ -45223,7 +43716,6 @@ "bDi" = ( /obj/machinery/chem_master, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHWEST)"; icon_state = "whiteyellow"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45235,7 +43727,6 @@ }, /obj/effect/landmark/start/chemist, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; icon_state = "whiteyellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45250,7 +43741,6 @@ /obj/item/weapon/reagent_containers/glass/beaker/large, /obj/item/weapon/reagent_containers/dropper, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; icon_state = "whiteyellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45258,7 +43748,6 @@ /area/medical/chemistry) "bDl" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; icon_state = "whiteyellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45267,7 +43756,6 @@ "bDm" = ( /obj/machinery/chem_master, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; icon_state = "whiteyellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45280,7 +43768,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTH)"; icon_state = "whiteyellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45291,7 +43778,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (NORTHEAST)"; icon_state = "whiteyellow"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45315,7 +43801,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45354,8 +43839,7 @@ }, /obj/machinery/camera{ c_tag = "Medbay South"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -45458,9 +43942,8 @@ }, /area/maintenance/asteroid/port/west) "bDG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -45487,8 +43970,6 @@ c_tag = "Hydroponics Storage"; dir = 1; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/floor/plasteel/hydrofloor{ @@ -45553,7 +44034,6 @@ /obj/machinery/camera{ c_tag = "Hydroponics Bee Reserve South"; dir = 5; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/grass{ @@ -45629,8 +44109,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ @@ -45648,7 +44127,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45667,7 +44145,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Engineering APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -45713,8 +44190,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ icon_state = "0-2"; @@ -45766,7 +44242,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (NORTH)"; icon_state = "yellowcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45790,8 +44265,6 @@ dir = 4 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -45802,8 +44275,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d2 = 8; @@ -45834,7 +44306,6 @@ "bEo" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/structure/filingcabinet, @@ -45850,7 +44321,6 @@ dir = 9 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/red/side{ @@ -45879,7 +44349,6 @@ "bEs" = ( /obj/machinery/chem_dispenser, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45904,7 +44373,6 @@ /area/medical/chemistry) "bEw" = ( /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; icon_state = "whiteyellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -45917,7 +44385,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46003,7 +44470,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46086,7 +44552,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46096,6 +44561,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46112,6 +44578,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46161,11 +44628,9 @@ /area/engine/atmos) "bEX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel{ @@ -46204,7 +44669,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Atmospherics APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -46242,7 +44706,6 @@ "bFe" = ( /obj/structure/tank_dispenser, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46262,7 +44725,6 @@ "bFg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46272,8 +44734,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46296,7 +44757,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46328,8 +44788,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -46349,8 +44808,7 @@ icon_state = "plant-20"; light_color = "#E1E17D"; light_range = 5; - luminosity = 2; - tag = "icon-plant-20" + luminosity = 2 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -46492,7 +44950,6 @@ }, /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46519,7 +44976,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46541,7 +44997,6 @@ "bFC" = ( /obj/machinery/vending/cola, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46556,7 +45011,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46593,23 +45047,20 @@ department = "Chemistry"; departmentType = 2; name = "Chemistry RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /mob/living/simple_animal/bot/cleanbot{ name = "Na2CO3" }, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (NORTH)"; icon_state = "whiteyellowcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/medical/chemistry) "bFH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -46663,7 +45114,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteyellow/side{ - tag = "icon-whiteyellow (EAST)"; icon_state = "whiteyellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46694,7 +45144,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46751,7 +45200,6 @@ "bFU" = ( /obj/machinery/computer/scan_consolenew, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46856,7 +45304,6 @@ "bGh" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light{ @@ -46872,11 +45319,7 @@ }, /area/crew_quarters/fitness) "bGj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46891,7 +45334,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/vault{ @@ -46900,15 +45342,11 @@ }, /area/crew_quarters/fitness) "bGm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Fitness North" }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-applebush"; icon_state = "applebush" }, /turf/open/floor/plasteel/vault{ @@ -46929,7 +45367,6 @@ "bGo" = ( /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/official }, @@ -46949,8 +45386,7 @@ /area/crew_quarters/fitness) "bGp" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/filingcabinet, /turf/open/floor/plasteel/vault{ @@ -46968,7 +45404,6 @@ name = "Forbidden Knowledge" }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -46976,9 +45411,7 @@ /area/library) "bGs" = ( /obj/structure/table/wood, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /obj/item/device/camera, /obj/item/device/radio/intercom{ pixel_y = 25 @@ -46997,7 +45430,6 @@ /obj/item/stack/packageWrap, /obj/item/device/destTagger, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47139,7 +45571,6 @@ /obj/machinery/camera{ c_tag = "Atmospherics North-West"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel{ @@ -47167,12 +45598,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47184,11 +45613,9 @@ }, /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47205,8 +45632,7 @@ req_access_txt = "24" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/yellow{ @@ -47215,11 +45641,9 @@ /area/engine/atmos) "bGP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47234,8 +45658,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -47250,8 +45673,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -47267,8 +45689,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47278,7 +45699,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47293,8 +45713,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47316,11 +45735,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47337,8 +45754,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -47357,8 +45773,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47371,8 +45786,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -47390,8 +45804,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -47414,8 +45827,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ @@ -47433,8 +45845,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/yellow{ d1 = 1; @@ -47456,8 +45867,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47474,8 +45884,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ @@ -47490,8 +45899,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel{ @@ -47508,11 +45916,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47527,8 +45933,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47547,8 +45952,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47558,7 +45962,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47568,8 +45971,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -47609,7 +46011,6 @@ dir = 10 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47637,9 +46038,8 @@ }, /area/medical/chemistry) "bHn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47661,7 +46061,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (EAST)"; icon_state = "whiteyellowcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47680,7 +46079,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47782,8 +46180,7 @@ dir = 1 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47801,17 +46198,15 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/medical/genetics) "bHB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47848,7 +46243,6 @@ "bHE" = ( /obj/machinery/dna_scannernew, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -47862,7 +46256,6 @@ /area/maintenance/asteroid/starboard) "bHG" = ( /obj/structure/disposalpipe/junction{ - tag = "icon-pipe-j2 (WEST)"; icon_state = "pipe-j2"; dir = 8 }, @@ -47875,8 +46268,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "disposal pipe - Engineering"; - sortType = 4; - tag = "icon-pipe-j2s (NORTH)" + sortType = 4 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -47988,7 +46380,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -48005,8 +46396,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48039,8 +46429,7 @@ icon_state = "right"; name = "Library Desk"; opacity = 1; - req_access_txt = "37"; - tag = "icon-right (WEST)" + req_access_txt = "37" }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48053,8 +46442,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/poster/random{ name = "random official poster"; @@ -48078,8 +46466,6 @@ /area/library/lounge) "bIe" = ( /obj/structure/chair/comfy/black{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/plasteel/grimy{ @@ -48103,7 +46489,6 @@ /area/maintenance/asteroid/port/east) "bIh" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -48160,8 +46545,7 @@ /area/engine/atmos) "bIn" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/button/door{ id = "atmodesk"; @@ -48169,7 +46553,6 @@ pixel_x = 24 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-13"; icon_state = "plant-13" }, /turf/open/floor/plasteel/yellow/side{ @@ -48186,7 +46569,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48219,7 +46601,6 @@ dir = 1 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48227,7 +46608,6 @@ /area/engine/break_room) "bIt" = ( /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48251,8 +46631,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48267,8 +46646,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/holopad, /turf/open/floor/plasteel{ @@ -48276,11 +46654,8 @@ }, /area/engine/engineering) "bIz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48313,7 +46688,6 @@ /area/engine/engineering) "bIC" = ( /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48325,7 +46699,6 @@ dir = 1 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48358,7 +46731,6 @@ /obj/item/stack/packageWrap, /obj/item/device/destTagger, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48389,7 +46761,6 @@ /area/maintenance/asteroid/central) "bIK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -48440,9 +46811,7 @@ /obj/machinery/camera{ c_tag = "Chemistry"; dir = 10; - icon_state = "camera"; - network = list("SS13","CMO"); - tag = "icon-camera (SOUTHWEST)" + network = list("SS13","CMO") }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48557,8 +46926,7 @@ department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48581,9 +46949,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48591,7 +46958,6 @@ /area/medical/genetics) "bJe" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48631,8 +46997,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "disposal pipe - Atmospherics"; - sortType = 6; - tag = "icon-pipe-j2s (NORTH)" + sortType = 6 }, /obj/structure/grille/broken, /turf/open/floor/plasteel/floorgrime{ @@ -48649,7 +47014,7 @@ /obj/structure/table, /obj/item/weapon/storage/fancy/cigarettes, /obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/maintenance/asteroid/starboard) "bJl" = ( /obj/structure/disposalpipe/segment, @@ -48710,7 +47075,6 @@ "bJs" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (WEST)"; icon_state = "chapel"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48782,10 +47146,8 @@ }, /area/library/lounge) "bJB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light_switch{ pixel_x = 24 @@ -48810,7 +47172,6 @@ /obj/machinery/camera{ c_tag = "Atmospherics Storage"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /obj/machinery/portable_atmospherics/scrubber, @@ -48844,11 +47205,8 @@ }, /area/engine/atmos) "bJH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -48891,12 +47249,10 @@ /obj/machinery/camera{ c_tag = "Engineering West"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /obj/machinery/vending/tool, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -48922,8 +47278,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/item/clothing/gloves/color/yellow, /turf/open/floor/plasteel{ @@ -48934,7 +47289,6 @@ /obj/structure/table, /obj/item/weapon/book/manual/wiki/engineering_construction, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -48942,10 +47296,7 @@ }, /area/engine/engineering) "bJP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -48954,8 +47305,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel{ @@ -48996,11 +47346,9 @@ /obj/machinery/camera{ c_tag = "Engineering East"; dir = 9; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -49067,10 +47415,8 @@ }, /area/medical/medbay/zone2) "bKb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49097,9 +47443,7 @@ "bKe" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -49116,7 +47460,6 @@ "bKf" = ( /obj/structure/closet/wardrobe/genetics_white, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white{ @@ -49178,8 +47521,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "disposal pipe - Genetics"; - sortType = 23; - tag = "icon-pipe-j2s (NORTH)" + sortType = 23 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49202,7 +47544,6 @@ /area/crew_quarters/fitness) "bKn" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -49210,7 +47551,6 @@ "bKo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -49219,7 +47559,6 @@ /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -49321,7 +47660,11 @@ d2 = 8; icon_state = "4-8" }, -/turf/closed/wall{ +/obj/machinery/door/airlock/maintenance{ + name = "Port Asteroid Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/library/lounge) @@ -49335,8 +47678,7 @@ "bKA" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49345,9 +47687,7 @@ "bKB" = ( /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10; - icon_state = "intact"; - tag = "icon-intact (SOUTHEAST)" + dir = 10 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49366,13 +47706,11 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/camera{ c_tag = "Atmospherics North"; dir = 9; - icon_state = "camera"; network = list("SS13","CE") }, /obj/structure/closet/secure_closet/atmospherics, @@ -49435,8 +47773,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49473,11 +47810,8 @@ /area/engine/engineering) "bKO" = ( /obj/structure/closet/radiation, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49520,11 +47854,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49580,7 +47911,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Chemistry APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -49663,19 +47993,15 @@ }, /area/medical/medbay/zone2) "bLh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/requests_console{ announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = 30; - pixel_y = 0; - pixel_z = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49714,9 +48040,7 @@ /obj/machinery/camera{ c_tag = "Genetics"; dir = 10; - icon_state = "camera"; - network = list("SS13","CMO"); - tag = "icon-camera (SOUTHWEST)" + network = list("SS13","CMO") }, /turf/open/floor/plasteel/whitepurple/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49736,7 +48060,6 @@ "bLm" = ( /obj/machinery/dna_scannernew, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -49818,8 +48141,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "disposal pipe - Chemistry"; - sortType = 11; - tag = "icon-pipe-j2s (NORTH)" + sortType = 11 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49860,7 +48182,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -49927,8 +48248,7 @@ }, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 4"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -49936,9 +48256,7 @@ /area/hallway/primary/port) "bLF" = ( /obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, +/obj/machinery/computer/libraryconsole/bookmanagement, /obj/machinery/light_switch{ pixel_y = 28 }, @@ -50032,15 +48350,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/requests_console{ department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/structure/closet/secure_closet/atmospherics, /obj/item/weapon/pickaxe/mini, @@ -50056,7 +48372,6 @@ /obj/machinery/camera{ c_tag = "Atmospherics Airlock"; dir = 5; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel{ @@ -50095,7 +48410,6 @@ "bLW" = ( /obj/machinery/vending/engivend, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -50105,6 +48419,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -50120,13 +48435,13 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "ceoffice" @@ -50153,8 +48468,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "ceoffice" @@ -50202,12 +48516,10 @@ /obj/machinery/camera{ c_tag = "Engineering South"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/yellow/side{ @@ -50218,13 +48530,11 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -50313,21 +48623,18 @@ "bMk" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/engineering) "bMl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Gravity Generator Airlock"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/black{ @@ -50353,8 +48660,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -50367,8 +48673,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ cyclelinkeddir = null; @@ -50389,13 +48694,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Gravity Generator"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/black{ @@ -50412,8 +48715,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -50423,16 +48725,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -50499,7 +48798,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -50536,8 +48834,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -50652,15 +48949,12 @@ "bMH" = ( /obj/structure/table, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/clothing/neck/stethoscope, @@ -50708,7 +49002,6 @@ /obj/machinery/camera{ c_tag = "Medbay Storage"; dir = 10; - icon_state = "camera"; network = list("SS13","CMO") }, /turf/open/floor/plasteel/white{ @@ -50803,8 +49096,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "disposal pipe - Medbay"; - sortType = 9; - tag = "icon-pipe-j2s (NORTH)" + sortType = 9 }, /obj/item/weapon/wrench, /turf/open/floor/plasteel/floorgrime{ @@ -50830,8 +49122,6 @@ /area/crew_quarters/fitness) "bMX" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -50839,16 +49129,12 @@ "bMY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/fitness) "bMZ" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -50920,8 +49206,7 @@ "bNj" = ( /obj/machinery/camera{ c_tag = "Library East"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -50941,7 +49226,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -50981,7 +49265,6 @@ "bNp" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -50997,12 +49280,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -51032,7 +49313,6 @@ id = "engiestoragesmes"; name = "Engineering SMES Blast Door Control"; pixel_x = -24; - pixel_y = 0; req_access_txt = "10;11" }, /obj/machinery/button/door{ @@ -51064,8 +49344,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51082,8 +49361,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/yellow{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51196,7 +49474,6 @@ dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -51251,7 +49528,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Genetics APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -51322,7 +49598,7 @@ dir = 4 }, /obj/structure/closet/firecloset/full, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/maintenance/asteroid/starboard) "bNS" = ( /obj/structure/disposalpipe/junction{ @@ -51382,8 +49658,7 @@ /obj/structure/table/wood, /obj/machinery/camera{ c_tag = "Library West"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51426,11 +49701,8 @@ }, /area/library/lounge) "bOc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51489,7 +49761,6 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/meter, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51506,9 +49777,7 @@ /area/engine/atmos) "bOn" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51517,7 +49786,6 @@ "bOo" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51624,7 +49892,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51634,8 +49901,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/firealarm{ pixel_y = 24 @@ -51652,7 +49918,6 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51662,14 +49927,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51679,15 +49942,13 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 8 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51697,12 +49958,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51712,12 +49971,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/table, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51732,12 +49989,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -51752,8 +50007,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/sign/electricshock{ pixel_y = 32 @@ -51767,8 +50021,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "0-4"; @@ -51783,8 +50036,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "0-4"; @@ -51802,8 +50054,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "0-4"; @@ -51831,8 +50082,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51856,8 +50106,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51870,7 +50119,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -51897,8 +50145,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -51929,7 +50176,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Medbay Storage APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -52022,7 +50268,6 @@ /area/crew_quarters/fitness) "bOZ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -52037,7 +50282,6 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -52103,8 +50347,7 @@ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/poster/random{ name = "random official poster"; @@ -52118,7 +50361,6 @@ "bPh" = ( /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/official }, @@ -52177,17 +50419,11 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/port/east) "bPo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "n2 vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2 vent" }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -52227,7 +50463,6 @@ }, /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -52235,8 +50470,7 @@ /area/engine/atmos) "bPt" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel{ @@ -52257,9 +50491,8 @@ }, /area/engine/atmos) "bPw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52285,16 +50518,16 @@ "bPz" = ( /obj/machinery/computer/apc_control, /obj/machinery/light, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/heads/chief) "bPA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/keycard_auth{ pixel_y = -28 @@ -52308,7 +50541,6 @@ /obj/machinery/suit_storage_unit/ce, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/neutral{ @@ -52320,8 +50552,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52329,7 +50560,6 @@ /area/crew_quarters/heads/chief) "bPD" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /obj/machinery/power/apc{ @@ -52350,7 +50580,6 @@ /obj/structure/table, /obj/item/weapon/book/manual/engineering_particle_accelerator, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -52361,8 +50590,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52407,7 +50635,6 @@ /area/engine/engine_smes) "bPK" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -52425,7 +50652,6 @@ /area/engine/engine_smes) "bPL" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -52677,8 +50903,6 @@ pixel_y = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -52702,10 +50926,8 @@ }, /area/crew_quarters/fitness) "bQg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52748,10 +50970,8 @@ }, /area/library) "bQl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -52803,7 +51023,6 @@ /obj/machinery/camera{ c_tag = "Atmospheric Tanks 2"; dir = 5; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/black{ @@ -52816,7 +51035,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -52855,7 +51073,6 @@ /area/engine/atmos) "bQw" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel{ @@ -52923,7 +51140,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -52934,8 +51150,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52950,19 +51165,16 @@ }, /area/engine/engine_smes) "bQH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/engine_smes) "bQI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -52983,7 +51195,6 @@ "bQK" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/structure/disposalpipe/segment{ @@ -52992,7 +51203,6 @@ /obj/machinery/camera{ c_tag = "Engineering Power Storage"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel{ @@ -53019,8 +51229,7 @@ icon_state = "right"; name = "Engineering Delievery Chute"; opacity = 1; - req_access_txt = "10"; - tag = "icon-right (WEST)" + req_access_txt = "10" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plating{ @@ -53059,11 +51268,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53136,21 +51343,14 @@ }, /area/crew_quarters/fitness) "bQY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 5 }, /area/crew_quarters/fitness) "bQZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 5 @@ -53188,10 +51388,7 @@ "bRe" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -53226,7 +51423,6 @@ dir = 8 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /obj/structure/disposalpipe/segment{ @@ -53246,7 +51442,6 @@ /area/library) "bRj" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /obj/structure/disposalpipe/segment{ @@ -53257,12 +51452,10 @@ }, /area/library) "bRk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /obj/structure/disposalpipe/segment{ @@ -53340,8 +51533,6 @@ /area/engine/atmos) "bRt" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - tag = "icon-connector_map (EAST)"; - icon_state = "connector_map"; dir = 4 }, /obj/machinery/portable_atmospherics/pump, @@ -53351,13 +51542,10 @@ /area/engine/atmos) "bRu" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53365,8 +51553,7 @@ /area/engine/atmos) "bRv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -53379,7 +51566,6 @@ /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53405,9 +51591,7 @@ /area/engine/atmos) "bRz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (NORTH)"; name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel{ @@ -53421,9 +51605,7 @@ name = "Waste Loop" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (EAST)"; name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel{ @@ -53444,7 +51626,6 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53455,7 +51636,6 @@ /obj/machinery/camera{ c_tag = "Engineering Power Storage 2"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /obj/structure/cable{ @@ -53517,11 +51697,9 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53530,7 +51708,6 @@ "bRK" = ( /obj/machinery/suit_storage_unit/engine, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53545,7 +51722,6 @@ "bRM" = ( /obj/machinery/suit_storage_unit/engine, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53553,11 +51729,9 @@ /area/engine/engine_smes) "bRN" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53566,7 +51740,6 @@ /obj/machinery/camera{ c_tag = "Medbay Asteroid Hallway 1"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/neutral/corner{ @@ -53685,16 +51858,13 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/fitness) "bSb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -53805,7 +51975,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -53866,8 +52035,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -53903,7 +52071,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53992,7 +52159,6 @@ /obj/machinery/camera{ c_tag = "Fitness South"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -54022,8 +52188,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -54033,8 +52197,6 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -54064,7 +52226,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -54084,8 +52245,7 @@ "bSU" = ( /obj/machinery/camera{ c_tag = "Library Explicits"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54096,17 +52256,11 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/port/east) "bSW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "oxygen vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "oxygen vent" }, /turf/open/floor/engine/o2{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54115,8 +52269,7 @@ "bSX" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/closed/wall/r_wall{ @@ -54129,7 +52282,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54142,8 +52294,6 @@ node1_concentration = 0.8; node2_concentration = 0.2; on = 1; - pixel_x = 0; - pixel_y = 0; target_pressure = 4500 }, /turf/open/floor/plasteel{ @@ -54162,11 +52312,9 @@ /area/engine/atmos) "bTb" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54184,7 +52332,6 @@ "bTd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54228,8 +52375,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54388,7 +52534,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54396,11 +52541,8 @@ /area/engine/atmos) "bTB" = ( /obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54412,7 +52554,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54437,7 +52578,6 @@ on = 0 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54445,8 +52585,6 @@ /area/engine/atmos) "bTF" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel{ @@ -54473,14 +52611,11 @@ /area/engine/atmos) "bTI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ c_tag = "Atmospherics Distro"; dir = 9; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel{ @@ -54508,7 +52643,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -54572,7 +52706,6 @@ "bTT" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/freezer{ @@ -54600,13 +52733,10 @@ "bTW" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54632,11 +52762,8 @@ }, /area/crew_quarters/fitness) "bTZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -54671,7 +52798,6 @@ }, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/official }, @@ -54699,7 +52825,6 @@ }, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/official }, @@ -54734,9 +52859,7 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -54792,8 +52915,6 @@ /area/engine/atmos) "bUm" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -54803,12 +52924,9 @@ "bUn" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54843,7 +52961,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54854,7 +52971,6 @@ dir = 6 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -54862,8 +52978,6 @@ /area/engine/atmos) "bUt" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -54879,11 +52993,9 @@ target_pressure = 101 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -54962,9 +53074,8 @@ }, /area/crew_quarters/fitness) "bUG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -55075,7 +53186,6 @@ dir = 8 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55083,7 +53193,6 @@ /area/engine/atmos) "bUU" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/yellow/side{ @@ -55117,8 +53226,7 @@ /area/engine/atmos) "bUY" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/meter, /turf/open/floor/plasteel{ @@ -55127,8 +53235,6 @@ /area/engine/atmos) "bUZ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel{ @@ -55142,10 +53248,8 @@ }, /area/maintenance/asteroid/central) "bVb" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -55158,10 +53262,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "bVc" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -55178,10 +53281,9 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "bVd" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -55190,6 +53292,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bVe" = ( @@ -55231,7 +53334,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -55245,12 +53347,10 @@ /obj/machinery/camera{ c_tag = "Fitness Bathrooms"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/urinal{ pixel_x = -32 @@ -55292,8 +53392,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -55339,16 +53438,11 @@ }, /area/chapel/main) "bVr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; - icon_state = "in"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -55368,8 +53462,7 @@ /area/engine/atmos) "bVt" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -55377,8 +53470,6 @@ /area/engine/atmos) "bVu" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /obj/structure/window/reinforced{ @@ -55394,9 +53485,7 @@ /area/engine/atmos) "bVv" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/window/reinforced, /obj/machinery/atmospherics/components/binary/pump{ @@ -55434,8 +53523,7 @@ }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/vault{ - initial_gas_mix = "n2=100;TEMP=80"; - temperature = 80 + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/atmos) "bVy" = ( @@ -55451,9 +53539,8 @@ }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/vault{ - dir = 5; - initial_gas_mix = "n2=500;TEMP=80"; - temperature = 80 + baseturf = /turf/open/floor/plating/asteroid/airless; + dir = 5 }, /area/engine/atmos) "bVz" = ( @@ -55467,8 +53554,7 @@ }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/vault{ - initial_gas_mix = "n2=100;TEMP=80"; - temperature = 80 + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/atmos) "bVA" = ( @@ -55491,7 +53577,6 @@ on = 1 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55502,8 +53587,6 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel{ @@ -55511,10 +53594,8 @@ }, /area/engine/atmos) "bVD" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -55522,10 +53603,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "bVE" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -55540,7 +53620,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "bVF" = ( /obj/machinery/light{ @@ -55569,7 +53649,6 @@ "bVH" = ( /obj/machinery/light/small, /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/button/door{ @@ -55595,8 +53674,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/weapon/storage/firstaid/o2, /obj/structure/disposalpipe/segment, @@ -55607,11 +53685,9 @@ "bVK" = ( /obj/machinery/camera{ c_tag = "Chapel West"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55622,7 +53698,6 @@ dir = 1 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55630,7 +53705,6 @@ /area/chapel/main) "bVM" = ( /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55638,7 +53712,6 @@ /area/chapel/main) "bVN" = ( /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55661,10 +53734,7 @@ }, /area/chapel/main) "bVQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -55674,7 +53744,6 @@ dir = 1 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55695,8 +53764,6 @@ /area/chapel/main) "bVU" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /obj/machinery/light{ @@ -55736,7 +53803,6 @@ /obj/machinery/camera{ c_tag = "Atmospheric Tanks 1"; dir = 1; - icon_state = "camera"; network = list("SS13","CE") }, /obj/machinery/atmospherics/pipe/manifold/cyan/visible, @@ -55768,7 +53834,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55802,7 +53867,6 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/yellow/side{ @@ -55825,7 +53889,6 @@ /area/maintenance/asteroid/disposal/east) "bWi" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /obj/structure/disposalpipe/trunk, @@ -55835,11 +53898,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 5"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -55855,7 +53916,6 @@ /area/chapel/main) "bWl" = ( /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (WEST)"; icon_state = "chapel"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -55911,8 +53971,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating{ @@ -55965,11 +54023,8 @@ /turf/closed/wall/rust, /area/maintenance/asteroid/disposal/east) "bWB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56004,7 +54059,6 @@ "bWE" = ( /obj/machinery/light/small, /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/button/door{ @@ -56055,9 +54109,7 @@ }, /area/chapel/main) "bWI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -56077,8 +54129,7 @@ "bWL" = ( /obj/machinery/camera{ c_tag = "Chapel East"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56098,7 +54149,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -56127,17 +54177,11 @@ }, /area/engine/atmos) "bWP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "co2 vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "co2 vent" }, /turf/open/floor/engine/co2{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56164,17 +54208,11 @@ }, /area/engine/atmos) "bWS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "plasma vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "plasma vent" }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/engine/plasma{ @@ -56202,17 +54240,11 @@ }, /area/engine/atmos) "bWV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "n2o vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2o vent" }, /turf/open/floor/engine/n2o{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56239,17 +54271,11 @@ }, /area/engine/atmos) "bWY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "distro vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro vent" }, /turf/open/floor/engine/vacuum{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56283,12 +54309,12 @@ }, /area/maintenance/asteroid/central) "bXd" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable/orange{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "bXe" = ( @@ -56337,15 +54363,12 @@ /obj/machinery/power/apc{ dir = 1; name = "Eastern External Waste Belt APC"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plating, /area/maintenance/asteroid/disposal/east) "bXj" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (NORTHEAST)"; - icon_state = "conveyor0"; dir = 5 }, /turf/open/floor/plating, @@ -56533,8 +54556,6 @@ }, /obj/machinery/conveyor/auto{ dir = 10; - icon_state = "conveyor0"; - tag = "icon-conveyor0 (SOUTHWEST)"; verted = -1 }, /turf/open/floor/plating, @@ -56657,7 +54678,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -56668,7 +54688,6 @@ dir = 4 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -56687,7 +54706,6 @@ dir = 4 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -56778,8 +54796,6 @@ /area/maintenance/asteroid/disposal/east) "bYk" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (EAST)"; - icon_state = "conveyor0"; dir = 4 }, /obj/machinery/light/small, @@ -56788,8 +54804,6 @@ "bYl" = ( /obj/machinery/conveyor/auto{ dir = 10; - icon_state = "conveyor0"; - tag = "icon-conveyor0 (SOUTHWEST)"; verted = -1 }, /turf/open/floor/plating, @@ -56812,9 +54826,8 @@ name = "Fitness Toilets" }) "bYo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -56909,7 +54922,6 @@ dir = 1 }, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (WEST)"; icon_state = "chapel"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -56930,7 +54942,6 @@ "bYz" = ( /obj/machinery/light, /turf/open/floor/plasteel/chapel{ - tag = "icon-chapel (WEST)"; icon_state = "chapel"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -56956,7 +54967,6 @@ /area/crew_quarters/abandoned_gambling_den) "bYC" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/light/small{ @@ -57015,8 +55025,7 @@ /area/hallway/primary/port) "bYK" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -57140,9 +55149,8 @@ name = "Fitness Toilets" }) "bYX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57211,7 +55219,6 @@ "bZf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-applebush"; icon_state = "applebush" }, /turf/open/floor/plasteel/grimy{ @@ -57307,7 +55314,6 @@ /obj/item/chair/stool, /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -57332,6 +55338,7 @@ /obj/machinery/vending/boozeomat{ req_access_txt = "0" }, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -57435,8 +55442,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Chapel Office"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57466,10 +55472,8 @@ }, /area/chapel/office) "bZI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57540,7 +55544,6 @@ }, /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = 32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -57563,8 +55566,7 @@ "bZT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57582,8 +55584,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57596,8 +55597,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/maintenance/external{ @@ -57680,13 +55680,11 @@ /area/chapel/office) "cad" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = -32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /turf/open/floor/wood{ @@ -57772,9 +55770,8 @@ }, /area/hallway/primary/port) "cap" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57816,8 +55813,7 @@ /obj/structure/closet/coffin, /obj/machinery/camera{ c_tag = "Chapel Coffins"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -57832,7 +55828,6 @@ "caw" = ( /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -58108,13 +56103,11 @@ /obj/machinery/camera{ c_tag = "Holodeck South"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/structure/closet/lasertag/blue, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/official }, @@ -58123,11 +56116,8 @@ }, /area/crew_quarters/fitness) "cba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light, /obj/structure/disposalpipe/segment{ @@ -58149,7 +56139,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel{ @@ -58166,7 +56155,6 @@ /obj/structure/closet/lasertag/red, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/official }, @@ -58187,7 +56175,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel{ @@ -58208,14 +56195,12 @@ }, /obj/machinery/camera{ c_tag = "Service Asteroid Hallway 6"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/extinguisher_cabinet{ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -58228,8 +56213,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -58244,7 +56228,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -58300,7 +56283,6 @@ /obj/machinery/computer/slot_machine, /obj/structure/sign/poster/random{ name = "random contraband poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/contraband }, @@ -58366,7 +56348,6 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -58390,7 +56371,6 @@ dir = 4 }, /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /turf/open/floor/plating{ @@ -58422,8 +56402,7 @@ "cbA" = ( /obj/machinery/camera{ c_tag = "Crematorium"; - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -58524,7 +56503,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -58654,8 +56632,7 @@ }) "cbZ" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -58664,7 +56641,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -58679,8 +56656,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -58703,7 +56679,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -58723,7 +56699,6 @@ name = "Civilian Asteroid" }) "cce" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -58731,13 +56706,12 @@ dir = 4; icon_state = "pipe-c" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "ccf" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -58750,10 +56724,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "ccg" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, @@ -58770,7 +56743,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/dock_med) "cch" = ( /obj/structure/table, @@ -58818,15 +56791,14 @@ }) "ccl" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/grille, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -58844,7 +56816,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -58861,13 +56833,13 @@ }, /area/hallway/primary/starboard/aft) "cco" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "ccp" = ( @@ -59021,8 +56993,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -59030,8 +57001,7 @@ /area/hallway/primary/starboard/aft) "ccI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -59043,10 +57013,11 @@ /area/hallway/primary/starboard/aft) "ccJ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -59122,10 +57093,11 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -59187,8 +57159,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Service-Research Bridge"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -59265,8 +57236,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59313,7 +57284,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59353,11 +57323,9 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 16"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59366,8 +57334,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -59377,8 +57344,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -59396,8 +57362,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -59435,11 +57400,9 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/shuttle/escape) @@ -59497,8 +57460,7 @@ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -59513,7 +57475,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59522,7 +57483,6 @@ /obj/structure/table, /obj/item/weapon/book/manual/wiki/security_space_law, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel @@ -59587,8 +57547,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 4; @@ -59604,8 +57563,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -59615,8 +57573,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -59632,8 +57589,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -59677,7 +57633,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59721,7 +57676,6 @@ dir = 1 }, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel @@ -59730,7 +57684,6 @@ "cdY" = ( /obj/structure/chair, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel @@ -59801,8 +57754,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/storage/tech) @@ -59813,6 +57765,7 @@ icon_state = "1-4" }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/structure/window/reinforced/fulltile, @@ -59827,8 +57780,8 @@ /turf/open/space, /area/space) "ceg" = ( -/obj/structure/lattice/catwalk, /obj/item/weapon/wrench, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "ceh" = ( @@ -59875,7 +57828,6 @@ icon_state = "0-8" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -59890,13 +57842,11 @@ icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59912,7 +57862,6 @@ "cen" = ( /obj/structure/chair, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -59941,8 +57890,7 @@ /obj/structure/chair, /obj/machinery/camera{ c_tag = "Docking Security Holding Area"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -59966,7 +57914,6 @@ "ces" = ( /obj/structure/chair, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -59982,7 +57929,6 @@ /area/hallway/secondary/exit) "ceu" = ( /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel @@ -60000,8 +57946,7 @@ }) "cew" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -60010,7 +57955,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -60030,7 +57975,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating/airless/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/bridges/serv_sci) @@ -60119,8 +58064,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/storage/tech) @@ -60213,11 +58157,8 @@ }, /area/hallway/secondary/exit) "ceO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60273,8 +58214,6 @@ "ceX" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60289,8 +58228,6 @@ /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60321,8 +58258,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60392,11 +58328,8 @@ }, /area/maintenance/asteroid/aft/arrivals) "cfk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60421,9 +58354,7 @@ }, /area/hallway/secondary/exit) "cfo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60469,8 +58400,6 @@ /area/hallway/primary/aft) "cfu" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60482,8 +58411,6 @@ /area/hallway/primary/aft) "cfw" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60505,8 +58432,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60583,8 +58509,8 @@ }, /area/quartermaster/miningdock/abandoned) "cfG" = ( -/obj/structure/lattice/catwalk, /obj/item/stack/sheet/glass, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "cfH" = ( @@ -60639,8 +58565,6 @@ /area/hallway/secondary/exit) "cfP" = ( /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60703,7 +58627,6 @@ dir = 1 }, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (SOUTHWEST)"; icon_state = "darkred"; dir = 10; floor_tile = /obj/item/stack/tile/plasteel @@ -60714,7 +58637,6 @@ dir = 1 }, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel @@ -60725,7 +58647,6 @@ /obj/item/weapon/storage/box/teargas, /obj/item/weapon/storage/box/zipties, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel @@ -60751,8 +58672,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -60775,7 +58694,6 @@ /area/hallway/primary/aft) "cgd" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating{ @@ -60790,9 +58708,7 @@ height = 9; width = 9 }, -/obj/machinery/computer/auxillary_base{ - pixel_y = 0 - }, +/obj/machinery/computer/auxillary_base, /obj/docking_port/stationary/public_mining_dock, /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60800,7 +58716,6 @@ /area/shuttle/auxillary_base) "cgf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating{ @@ -60879,7 +58794,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -60908,8 +58822,7 @@ "cgr" = ( /obj/machinery/camera{ c_tag = "Arrivals SMES"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -60981,17 +58894,13 @@ dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/aft) "cgC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61050,8 +58959,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61099,7 +59007,6 @@ /obj/structure/table, /obj/item/weapon/aiModule/reset, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -61278,7 +59185,6 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (NORTH)"; icon_state = "ast_warn_end"; dir = 1 }, @@ -61304,11 +59210,9 @@ "chf" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (NORTHWEST)"; icon_state = "escape"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -61317,7 +59221,6 @@ "chg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (NORTH)"; icon_state = "escape"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -61325,7 +59228,6 @@ /area/hallway/secondary/exit) "chh" = ( /turf/open/floor/plasteel/escape/corner{ - tag = "icon-escapecorner (NORTH)"; icon_state = "escapecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -61409,7 +59311,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating{ @@ -61426,12 +59327,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Research Asteroid Hallway 1"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61441,8 +59339,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61488,8 +59384,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/landmark/blobstart, /turf/open/floor/plating{ @@ -61559,8 +59454,6 @@ /area/maintenance/asteroid/aft/arrivals) "chE" = ( /obj/machinery/power/terminal{ - tag = "icon-term (WEST)"; - icon_state = "term"; dir = 8 }, /obj/structure/cable{ @@ -61578,8 +59471,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61615,7 +59507,6 @@ dir = 4 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -61623,7 +59514,6 @@ /area/hallway/secondary/exit) "chK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -61632,7 +59522,6 @@ /area/hallway/secondary/exit) "chL" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -61651,8 +59540,6 @@ "chO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61684,7 +59571,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating{ @@ -61727,7 +59613,6 @@ /obj/item/weapon/stock_parts/micro_laser/high, /obj/machinery/requests_console{ department = "Tech storage"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating{ @@ -61735,11 +59620,7 @@ }, /area/storage/tech) "chU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -61769,16 +59650,12 @@ }, /area/storage/tech) "chX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61807,10 +59684,8 @@ }, /area/ai_monitored/turret_protected/ai_upload) "cib" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61898,8 +59773,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -61944,11 +59818,9 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -61982,12 +59854,9 @@ /area/hallway/primary/aft) "civ" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62006,8 +59875,7 @@ }, /obj/machinery/camera{ c_tag = "Research Atmospherics Checkpoint"; - dir = 5; - icon_state = "camera" + dir = 5 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -62023,7 +59891,6 @@ /area/hallway/primary/aft) "ciy" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -62086,7 +59953,6 @@ /obj/item/clothing/glasses/meson, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plating{ @@ -62183,18 +60049,15 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 15"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/aft) "ciP" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -62244,10 +60107,8 @@ }, /area/security/vacantoffice) "ciV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -62272,15 +60133,13 @@ /obj/machinery/power/apc{ dir = 4; name = "Departures APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable/orange{ d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; icon_state = "ast_warn_end"; dir = 8 }, @@ -62312,8 +60171,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62335,8 +60192,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62364,7 +60219,6 @@ /area/hallway/primary/aft) "cjf" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -62432,9 +60286,7 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/computer/cloning{ - pixel_x = 0 - }, +/obj/item/weapon/circuitboard/computer/cloning, /obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 @@ -62513,7 +60365,6 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/black{ @@ -62576,7 +60427,6 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/light{ @@ -62590,9 +60440,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62647,8 +60495,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -62681,7 +60528,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62737,17 +60583,14 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 6"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -62787,8 +60630,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62803,8 +60644,6 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62816,8 +60655,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/atmos{ name = "Research Atmospherics Checkpoint"; @@ -62855,7 +60693,6 @@ /area/hallway/primary/aft) "cjR" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -62915,15 +60752,13 @@ }, /obj/machinery/camera{ c_tag = "Aux Base Construction"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/machinery/computer/camera_advanced/base_construction, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -62936,8 +60771,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -62993,10 +60827,7 @@ }, /area/storage/tech) "cka" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63042,8 +60873,7 @@ /obj/machinery/power/apc{ dir = 4; name = "AI Upload APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ d2 = 8; @@ -63066,7 +60896,6 @@ dir = 4; locked = 0; pixel_x = -23; - pixel_y = 0; req_access = null; req_one_access_txt = "24;10" }, @@ -63102,9 +60931,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63122,12 +60949,10 @@ /obj/machinery/camera{ c_tag = "Docking Quantum Pad"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63181,7 +61006,6 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (NORTH)"; icon_state = "ast_warn_end"; dir = 1 }, @@ -63196,8 +61020,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63211,8 +61034,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63227,7 +61049,6 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63296,8 +61117,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63305,18 +61124,13 @@ "ckz" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/construction/mining/aux_base) "ckA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63360,10 +61174,8 @@ }, /area/construction/mining/aux_base) "ckF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63421,7 +61233,6 @@ /area/ai_monitored/turret_protected/ai_upload) "ckL" = ( /obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16" @@ -63445,9 +61256,7 @@ }, /obj/structure/noticeboard{ dir = 4; - icon_state = "nboard00"; - pixel_x = -32; - tag = "icon-nboard00 (EAST)" + pixel_x = -32 }, /obj/item/weapon/paper{ info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; @@ -63477,8 +61286,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63490,8 +61298,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -63518,10 +61325,7 @@ }, /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /obj/item/weapon/paper{ info = "
Dummies Guide To Quantum Pads


Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

How to set up your Quantum Pad(tm)


1.Unscrew the Quantum Pad(tm) you wish to link.
2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
"; @@ -63573,7 +61377,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63625,8 +61428,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63634,7 +61435,6 @@ "clc" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -63658,8 +61458,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63709,7 +61507,6 @@ /obj/item/device/assault_pod/mining, /obj/item/weapon/storage/box/lights/mixed, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -63772,8 +61569,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/table, /obj/item/device/multitool, @@ -63934,13 +61730,10 @@ }, /area/teleporter) "clI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Teleporter"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -63968,7 +61761,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64000,10 +61792,8 @@ }, /area/hallway/secondary/exit) "clP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -64014,21 +61804,16 @@ /area/shuttle/pod_2) "clR" = ( /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) "clS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64070,8 +61855,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -64127,13 +61911,12 @@ }, /area/teleporter/quantum/research) "cme" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/grille, /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/sci_dock) "cmf" = ( /turf/closed/wall{ @@ -64214,7 +61997,6 @@ "cmo" = ( /obj/structure/closet/secure_closet/security, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -64242,8 +62024,7 @@ /obj/machinery/computer/card, /obj/machinery/camera{ c_tag = "Docking Security Checkpoint"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -64271,11 +62052,8 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -64293,7 +62071,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -64319,7 +62096,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64376,7 +62152,6 @@ /area/shuttle/pod_2) "cmD" = ( /obj/machinery/computer/shuttle/pod{ - pixel_x = 0; pixel_y = -32; possible_destinations = "pod_lavaland2"; shuttleId = "pod2" @@ -64395,7 +62170,6 @@ pixel_y = -28 }, /obj/item/device/radio/intercom{ - pixel_x = 0; pixel_y = 25 }, /obj/structure/chair{ @@ -64449,15 +62223,13 @@ dir = 4; icon_state = "direction_evac"; pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_evac (EAST)" + pixel_y = 24 }, /obj/structure/sign/directions/security{ dir = 1; icon_state = "direction_sec"; pixel_x = 32; - pixel_y = 32; - tag = "icon-direction_sec (NORTH)" + pixel_y = 32 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -64470,12 +62242,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64487,15 +62256,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/sign/map/left/ceres{ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64507,15 +62273,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Research Asteroid Hallway 2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64527,8 +62290,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -64538,8 +62300,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64551,8 +62311,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -64560,8 +62319,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64573,12 +62330,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64590,15 +62344,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light{ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64610,8 +62361,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -64620,8 +62370,6 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64630,13 +62378,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64648,15 +62393,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Research Asteroid Hallway 3" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64665,15 +62407,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64693,8 +62432,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64710,8 +62447,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64731,8 +62466,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64745,8 +62478,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64764,8 +62495,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64783,8 +62512,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64799,8 +62526,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64820,8 +62545,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64841,8 +62564,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64855,8 +62576,6 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64874,8 +62593,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64893,8 +62610,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64912,8 +62627,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64932,8 +62645,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64972,15 +62683,13 @@ dir = 4; icon_state = "direction_evac"; pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_evac (EAST)" + pixel_y = 24 }, /obj/structure/sign/directions/engineering{ dir = 1; icon_state = "direction_eng"; pixel_x = 32; - pixel_y = 32; - tag = "icon-direction_eng (NORTH)" + pixel_y = 32 }, /turf/open/floor/plasteel/neutral/side{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -64993,8 +62702,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65002,16 +62709,12 @@ "cnm" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/entry) "cnn" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65021,8 +62724,6 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65032,15 +62733,13 @@ dir = 8; icon_state = "direction_sci"; pixel_x = -32; - pixel_y = 24; - tag = "icon-direction_sci (WEST)" + pixel_y = 24 }, /obj/structure/sign/directions/engineering{ dir = 1; icon_state = "direction_eng"; pixel_x = -32; - pixel_y = 32; - tag = "icon-direction_eng (NORTH)" + pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ @@ -65085,9 +62784,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65102,8 +62800,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65118,7 +62814,6 @@ dir = 1 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65133,14 +62828,12 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 1"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65156,7 +62849,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65172,7 +62864,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65186,7 +62877,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65221,8 +62911,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -65231,11 +62920,8 @@ }, /area/security/checkpoint/checkpoint2) "cnE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -65294,11 +62980,9 @@ /area/maintenance/asteroid/aft/arrivals) "cnL" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65317,16 +63001,13 @@ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/aft) "cnO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -65351,11 +63032,7 @@ }, /area/hallway/primary/aft) "cnR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65389,9 +63066,7 @@ }, /area/hallway/secondary/entry) "cnW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65415,6 +63090,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65428,10 +63104,8 @@ }, /area/hallway/secondary/entry) "cob" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -65445,7 +63119,6 @@ "cod" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65458,24 +63131,20 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/teleporter) "cof" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/teleporter) "cog" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/red/side{ @@ -65485,9 +63154,8 @@ }, /area/security/checkpoint/checkpoint2) "coh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/closet/wardrobe/red, /turf/open/floor/plasteel/red/side{ @@ -65562,7 +63230,6 @@ pixel_y = -24 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -65592,7 +63259,6 @@ "cos" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel{ @@ -65617,7 +63283,6 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65628,7 +63293,6 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65644,7 +63308,6 @@ req_access_txt = "29" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65654,7 +63317,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65664,7 +63326,6 @@ dir = 4 }, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65682,7 +63343,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65694,7 +63354,6 @@ }, /obj/machinery/light, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65709,7 +63368,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65724,7 +63382,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65750,7 +63407,6 @@ "coG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65775,7 +63431,6 @@ pixel_y = -32 }, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -65787,7 +63442,6 @@ }, /obj/machinery/light, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65802,7 +63456,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65810,7 +63463,6 @@ "coL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65824,7 +63476,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65835,7 +63486,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65845,14 +63495,12 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/aft) "coP" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65866,7 +63514,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65879,11 +63526,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65897,11 +63542,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65914,11 +63557,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65930,14 +63571,12 @@ /obj/machinery/camera{ c_tag = "Research-Docking Bridge 1"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/sci_dock) @@ -65962,7 +63601,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65975,7 +63613,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65988,7 +63625,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -65999,7 +63635,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66016,7 +63651,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66034,8 +63668,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66116,13 +63750,11 @@ /area/security/checkpoint/checkpoint2) "cpj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66148,14 +63780,12 @@ /obj/structure/disposalpipe/trunk, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 5"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/structure/sign/map/left/ceres{ pixel_y = 32 }, /turf/open/floor/plasteel/escape/corner{ - tag = "icon-escapecorner (NORTH)"; icon_state = "escapecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66346,11 +63976,10 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/structure/girder, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/sci_dock) "cpD" = ( /obj/machinery/status_display{ @@ -66389,7 +64018,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66400,7 +64028,6 @@ dir = 4 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66412,11 +64039,9 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 2"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66428,7 +64053,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66437,7 +64061,6 @@ "cpL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66451,7 +64074,6 @@ dir = 4 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66460,7 +64082,6 @@ "cpN" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66471,7 +64092,6 @@ dir = 1 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66483,8 +64103,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 3"; - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -66492,7 +64111,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/arrival/corner{ - tag = "icon-arrivalcorner (NORTH)"; icon_state = "arrivalcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66506,8 +64124,10 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66525,25 +64145,21 @@ dir = 8; icon_state = "direction_sci"; pixel_x = -32; - pixel_y = 24; - tag = "icon-direction_sci (WEST)" + pixel_y = 24 }, /obj/structure/sign/directions/medical{ dir = 1; icon_state = "direction_med"; pixel_x = -32; - pixel_y = 32; - tag = "icon-direction_med (NORTH)" + pixel_y = 32 }, /obj/structure/sign/directions/supply{ dir = 1; icon_state = "direction_supply"; pixel_x = -32; - pixel_y = 40; - tag = "icon-direction_supply (NORTH)" + pixel_y = 40 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66566,8 +64182,7 @@ dir = 4; icon_state = "direction_evac"; pixel_x = 32; - pixel_y = 24; - tag = "icon-direction_evac (EAST)" + pixel_y = 24 }, /obj/structure/cable/orange{ d1 = 1; @@ -66575,8 +64190,6 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66593,8 +64206,6 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66607,8 +64218,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66618,8 +64227,6 @@ dir = 1 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66629,8 +64236,6 @@ dir = 4 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66643,8 +64248,6 @@ dir = 4 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66652,8 +64255,6 @@ "cpZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66664,12 +64265,9 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 4"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66680,8 +64278,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66696,8 +64292,6 @@ pixel_y = 20 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66754,14 +64348,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 4 }, /turf/open/floor/engine/vacuum{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -66801,12 +64389,10 @@ id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; - pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor" }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66826,7 +64412,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -66973,10 +64558,8 @@ }, /area/science/research) "cqD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plasteel/white{ @@ -66984,18 +64567,14 @@ }, /area/science/research) "cqE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Research and Development"; network = list("SS13","RD") }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67012,7 +64591,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67023,7 +64601,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67034,7 +64611,6 @@ dir = 10 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67042,7 +64618,6 @@ /area/science/lab) "cqI" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67053,7 +64628,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67070,7 +64644,6 @@ pixel_y = 23 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67085,7 +64658,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Aft Asteroid Hallway APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -67106,7 +64678,6 @@ /obj/machinery/camera{ c_tag = "Science SMES"; dir = 8; - icon_state = "camera"; network = list("SS13","QM") }, /obj/effect/turf_decal/stripes/line{ @@ -67128,7 +64699,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -67164,9 +64734,8 @@ }, /area/hallway/secondary/entry) "cqS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -67195,6 +64764,9 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -67299,20 +64871,15 @@ }, /area/hallway/secondary/entry) "crd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/entry) "cre" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -67383,7 +64950,6 @@ /area/science/mixing) "crl" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67396,15 +64962,12 @@ /area/science/mixing) "crn" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -67425,10 +64988,7 @@ }, /area/science/robotics/lab) "crq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -67458,10 +65018,8 @@ }, /area/science/robotics/lab) "cru" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -67521,14 +65079,8 @@ /area/science/lab) "crC" = ( /obj/item/weapon/folder/white, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/disk/tech_disk, +/obj/item/weapon/disk/tech_disk, /obj/item/weapon/disk/design_disk, /obj/item/weapon/disk/design_disk, /obj/structure/table/glass, @@ -67683,6 +65235,9 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/arrival{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -67804,7 +65359,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/arrival{ @@ -67932,7 +65486,6 @@ pixel_y = -5 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68067,10 +65620,8 @@ }, /area/science/research) "csv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plasteel/white{ @@ -68079,15 +65630,13 @@ /area/science/research) "csw" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/requests_console{ department = "Science"; departmentType = 2; name = "Science Requests Console"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -68136,8 +65685,7 @@ /obj/item/stack/cable_coil, /obj/structure/table, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -68167,6 +65715,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68180,6 +65729,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68201,6 +65751,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68220,6 +65771,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68237,11 +65789,8 @@ }, /area/science/mixing) "csK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -68254,11 +65803,9 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68384,10 +65931,8 @@ }, /area/science/lab) "csZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -68469,7 +66014,6 @@ /area/maintenance/asteroid/aft/science) "cte" = ( /turf/open/floor/plasteel/darkpurple/side{ - tag = "icon-darkpurple (NORTH)"; icon_state = "darkpurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68480,7 +66024,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkpurple/side{ - tag = "icon-darkpurple (NORTH)"; icon_state = "darkpurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68492,7 +66035,6 @@ dir = 8 }, /turf/open/floor/plasteel/darkpurple/side{ - tag = "icon-darkpurple (NORTH)"; icon_state = "darkpurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68552,7 +66094,6 @@ }, /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68560,12 +66101,9 @@ /area/science/mixing) "ctn" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68573,7 +66111,6 @@ /area/science/mixing) "cto" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68584,8 +66121,6 @@ dir = 5 }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (NORTH)"; - icon_state = "whitepurplecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68603,7 +66138,6 @@ /obj/machinery/camera{ c_tag = "Toxins Mixing"; dir = 9; - icon_state = "camera"; network = list("SS13","RD") }, /obj/structure/closet/bombcloset, @@ -68611,7 +66145,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68704,7 +66237,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -68735,8 +66267,6 @@ icon_state = "0-8" }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (WEST)"; - icon_state = "whitepurplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68769,8 +66299,6 @@ "ctF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (EAST)"; - icon_state = "whitepurplecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68778,7 +66306,6 @@ "ctG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68786,8 +66313,6 @@ /area/science/research) "ctH" = ( /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (NORTH)"; - icon_state = "whitepurplecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68817,7 +66342,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -68866,7 +66390,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -68934,11 +66457,9 @@ /obj/machinery/portable_atmospherics/canister, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -68946,8 +66467,7 @@ /area/science/mixing) "cub" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/white{ @@ -68967,7 +66487,6 @@ }, /obj/structure/closet/bombcloset, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69014,8 +66533,6 @@ "cui" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (NORTH)"; - icon_state = "whitepurplecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -69030,8 +66547,6 @@ "cuk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (EAST)"; - icon_state = "whitepurplecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -69103,8 +66618,6 @@ dir = 5 }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (EAST)"; - icon_state = "whitepurplecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -69114,7 +66627,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69126,7 +66638,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69151,7 +66662,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69170,8 +66680,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (EAST)"; - icon_state = "whitepurplecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -69181,7 +66689,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69193,7 +66700,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69204,7 +66710,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69219,7 +66724,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69230,8 +66734,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (NORTH)"; - icon_state = "whitepurplecorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -69313,8 +66815,7 @@ dir = 10 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/whitepurple/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -69592,7 +67093,6 @@ /area/science/xenobiology) "cvi" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/shuttle, @@ -69602,16 +67102,13 @@ /area/shuttle/arrival) "cvk" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/shuttle/arrival) "cvl" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/shuttle, /area/shuttle/arrival) @@ -69668,7 +67165,6 @@ pixel_y = -2 }, /obj/item/device/assembly/prox_sensor{ - pixel_x = 0; pixel_y = 2 }, /obj/structure/table/reinforced, @@ -69687,7 +67183,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69761,7 +67256,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -69800,7 +67294,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70075,7 +67568,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70147,7 +67639,6 @@ name = "Containment Control 1" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -70165,7 +67656,6 @@ req_access_txt = "55" }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70180,7 +67670,6 @@ }, /obj/machinery/disposal/bin, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -70198,7 +67687,6 @@ name = "Containment Control 2" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -70216,7 +67704,6 @@ name = "Containment Control 3" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -70234,7 +67721,6 @@ name = "Containment Control 4" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -70285,8 +67771,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 13"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70305,8 +67790,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 11"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70323,8 +67807,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70336,7 +67819,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -70354,8 +67836,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 9"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70369,8 +67850,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 7"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/cable/orange{ d1 = 1; @@ -70401,9 +67881,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70420,7 +67899,6 @@ /area/science/mixing) "cwj" = ( /obj/item/device/assembly/signaler{ - pixel_x = 0; pixel_y = 8 }, /obj/item/device/assembly/signaler{ @@ -70440,7 +67918,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70453,12 +67930,8 @@ /obj/item/device/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, +/obj/item/device/transfer_valve, +/obj/item/device/transfer_valve, /obj/item/device/transfer_valve{ pixel_x = 5 }, @@ -70483,10 +67956,7 @@ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/device/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/whitepurple/side{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -70511,7 +67981,6 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70528,7 +67997,6 @@ "cwq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70556,16 +68024,12 @@ }, /area/science/research) "cwt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Research Western Wing"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/white{ @@ -70588,8 +68052,6 @@ "cww" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (WEST)"; - icon_state = "whitepurplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -70621,7 +68083,6 @@ /obj/machinery/camera{ c_tag = "Research Eastern Wing"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/white{ @@ -70629,9 +68090,8 @@ }, /area/science/research) "cwB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/newscaster{ pixel_y = -32 @@ -70653,8 +68113,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (EAST)"; - icon_state = "whitepurplecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -70679,7 +68137,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/white{ @@ -70742,7 +68199,6 @@ /obj/machinery/camera{ c_tag = "Xenobiology 1"; dir = 6; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/plasteel/white{ @@ -70786,17 +68242,13 @@ }, /area/science/xenobiology) "cwQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/science/xenobiology) "cwR" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -70829,7 +68281,6 @@ /area/maintenance/asteroid/aft/arrivals) "cwV" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -70867,7 +68318,6 @@ /area/hallway/secondary/entry) "cxb" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -70898,8 +68348,6 @@ /obj/structure/bed/roller, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (WEST)"; - icon_state = "whitepurplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -70997,7 +68445,6 @@ /area/science/misc_lab) "cxp" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable/orange{ @@ -71044,7 +68491,6 @@ /obj/machinery/camera{ c_tag = "Research Xenobiology-Testing Airlock"; dir = 9; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/plasteel/white{ @@ -71207,8 +68653,7 @@ /obj/item/weapon/extinguisher, /obj/item/weapon/extinguisher, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/whitepurple{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71225,7 +68670,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -71267,7 +68711,6 @@ /area/hallway/secondary/entry) "cxI" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/closed/wall/mineral/titanium, @@ -71328,7 +68771,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Toxins Lab APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/orange{ @@ -71347,14 +68789,10 @@ }, /area/science/server) "cxR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71381,11 +68819,8 @@ locked = 0; pixel_y = 23 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71400,7 +68835,6 @@ /obj/structure/bed/roller, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71412,7 +68846,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71441,9 +68874,8 @@ }, /area/crew_quarters/heads/hor) "cxZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71466,7 +68898,6 @@ /obj/structure/table, /obj/item/weapon/paper_bin, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71502,11 +68933,8 @@ }, /area/security/checkpoint/science) "cyg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/orange{ d1 = 1; @@ -71519,7 +68947,6 @@ random_basetype = /obj/structure/sign/poster/official }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71575,8 +69002,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71600,11 +69026,8 @@ }, /area/science/xenobiology) "cyo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71634,7 +69057,6 @@ /obj/machinery/camera{ c_tag = "Xenobiology 2"; dir = 1; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/plasteel/white{ @@ -71649,26 +69071,21 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/entry) "cyt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel{ @@ -71680,7 +69097,6 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/shuttle, @@ -71702,17 +69118,13 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/shuttle, /area/shuttle/arrival) "cyy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -71720,7 +69132,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel{ @@ -71736,8 +69147,7 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/cable/orange{ d1 = 1; @@ -71798,7 +69208,6 @@ req_access_txt = "30" }, /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/black{ @@ -71822,12 +69231,10 @@ /area/science/server) "cyK" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -71839,12 +69246,10 @@ /obj/machinery/camera{ c_tag = "Research Treatment Center"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71863,7 +69268,6 @@ "cyN" = ( /obj/machinery/iv_drip, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -71910,7 +69314,6 @@ "cyT" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/cable/orange{ @@ -71937,11 +69340,8 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -72206,7 +69606,6 @@ /obj/machinery/camera{ c_tag = "Research Server Room"; dir = 1; - icon_state = "camera"; network = list("SS13","RD") }, /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ @@ -72252,7 +69651,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/red/side{ @@ -72262,14 +69660,12 @@ }, /area/security/checkpoint/science) "czw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Research Security Checkpoint"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/red/side{ @@ -72651,9 +70047,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hor) @@ -72673,7 +70068,6 @@ /area/science/misc_lab) "cAe" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable/orange{ @@ -72709,7 +70103,6 @@ "cAh" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/darkpurple/side{ - tag = "icon-darkpurple (NORTH)"; icon_state = "darkpurple"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -72796,7 +70189,6 @@ /obj/machinery/power/apc{ dir = 1; name = "RnD Server APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/disposalpipe/segment{ @@ -72845,7 +70237,6 @@ /obj/machinery/camera{ c_tag = "Research Director's Office"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/cafeteria{ @@ -72896,7 +70287,6 @@ "cAx" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/table, @@ -72911,14 +70301,12 @@ }, /area/science/misc_lab) "cAy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Xenobiology Killroom"; dir = 1; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/circuit{ @@ -72939,10 +70327,8 @@ }, /area/science/xenobiology) "cAA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -73051,7 +70437,6 @@ /area/science/xenobiology) "cAL" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -73064,7 +70449,6 @@ /area/hallway/secondary/entry) "cAM" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -73101,7 +70485,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Research Director's Office APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/orange{ @@ -73171,8 +70554,7 @@ icon_state = "right"; name = "Research Delievery Chute"; opacity = 1; - req_access_txt = "55"; - tag = "icon-right (WEST)" + req_access_txt = "55" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plating{ @@ -73211,17 +70593,15 @@ /obj/structure/closet/emcloset, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 14"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/secondary/entry) "cAY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -73249,8 +70629,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 12"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -73260,8 +70639,7 @@ /obj/structure/closet/emcloset, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 10"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -73291,8 +70669,7 @@ }, /obj/machinery/camera{ c_tag = "Docking Asteroid Hall 8"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -73303,7 +70680,6 @@ /area/hallway/secondary/entry) "cBf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/beacon, @@ -73370,7 +70746,6 @@ /obj/machinery/camera{ c_tag = "Testing Lab"; dir = 9; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/plasteel{ @@ -73561,9 +70936,8 @@ }, /area/science/misc_lab) "cBE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel{ @@ -73572,8 +70946,7 @@ /area/science/misc_lab) "cBF" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/rack, /obj/item/stack/sheet/metal/fifty, @@ -73616,9 +70989,8 @@ /turf/open/floor/plating/asteroid, /area/hallway/secondary/entry) "cBK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -73631,7 +71003,6 @@ /obj/machinery/camera{ c_tag = "Research Testing Containment"; dir = 9; - icon_state = "camera"; network = list("SS13","RD") }, /turf/open/floor/plating{ @@ -73687,7 +71058,6 @@ /area/science/misc_lab) "cBQ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /turf/open/floor/plasteel{ @@ -73731,8 +71101,6 @@ "cBX" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/deliveryChute{ - tag = "icon-intake (NORTH)"; - icon_state = "intake"; dir = 1 }, /turf/open/floor/plating/airless, @@ -73763,7 +71131,6 @@ /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel{ @@ -73815,9 +71182,7 @@ }, /area/maintenance/asteroid/aft/science) "cCh" = ( -/obj/structure/shuttle/engine/propulsion{ - name = "shuttle engine" - }, +/obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating/airless, /area/shuttle/arrival) "cCi" = ( @@ -73842,7 +71207,6 @@ /area/maintenance/asteroid/disposal/southeast) "cCk" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /obj/structure/disposalpipe/trunk, @@ -73953,7 +71317,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Testing Lab APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/orange{ @@ -74041,21 +71404,21 @@ }, /area/hallway/secondary/entry) "cCE" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable/orange{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "cCF" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable/orange{ d1 = 2; d2 = 8; icon_state = "2-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "cCG" = ( @@ -74065,7 +71428,6 @@ /obj/machinery/power/apc{ dir = 1; name = "South-Eastern External Waste Belt APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -74117,7 +71479,6 @@ /obj/machinery/power/apc{ dir = 1; name = "South-Western External Waste Belt APC"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plating, @@ -74209,7 +71570,6 @@ /area/maintenance/asteroid/disposal/southeast) "cCX" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 1 }, /obj/machinery/light/small{ @@ -74308,7 +71668,6 @@ /area/maintenance/asteroid/disposal/southeast) "cDl" = ( /obj/machinery/conveyor/auto{ - icon_state = "conveyor0"; dir = 1 }, /turf/open/floor/plating, @@ -74316,15 +71675,12 @@ "cDm" = ( /obj/machinery/conveyor/auto{ dir = 9; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating, /area/maintenance/asteroid/disposal/southwest) "cDn" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (SOUTHEAST)"; - icon_state = "conveyor0"; dir = 6 }, /turf/open/floor/plating, @@ -74477,16 +71833,12 @@ /area/maintenance/asteroid/disposal/southeast) "cDC" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (NORTHEAST)"; - icon_state = "conveyor0"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/asteroid/disposal/southeast) "cDD" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (EAST)"; - icon_state = "conveyor0"; dir = 4 }, /turf/open/floor/plating, @@ -74494,21 +71846,16 @@ "cDE" = ( /obj/machinery/conveyor/auto{ dir = 10; - icon_state = "conveyor0"; - tag = "icon-conveyor0 (SOUTHWEST)"; verted = -1 }, /turf/open/floor/plating, /area/maintenance/asteroid/disposal/southeast) "cDF" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (EAST)"; - icon_state = "conveyor0"; dir = 4 }, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/official }, @@ -74564,7 +71911,6 @@ /obj/machinery/light/small, /obj/machinery/conveyor/auto{ dir = 9; - icon_state = "conveyor0"; verted = -1 }, /turf/open/floor/plating, @@ -74714,8 +72060,6 @@ /area/maintenance/asteroid/disposal/southeast) "cEe" = ( /obj/machinery/conveyor/auto{ - tag = "icon-conveyor0 (EAST)"; - icon_state = "conveyor0"; dir = 4 }, /obj/machinery/light/small, @@ -74786,12 +72130,19 @@ }, /area/ai_monitored/turret_protected/ai) "cEo" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate{ +/obj/machinery/door/airlock/security{ + id_tag = "laborexit"; + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "cEp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74814,9 +72165,12 @@ }, /area/quartermaster/sorting) "cEr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall{ +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 3"; + name = "Cell Door 3"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -74827,14 +72181,22 @@ }, /area/security/warden) "cEt" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/closed/wall/r_wall{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/brig) "cEu" = ( /obj/machinery/newscaster/security_unit{ pixel_x = 32 @@ -74844,82 +72206,76 @@ }, /area/crew_quarters/heads/captain) "cEv" = ( -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cEw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 }, -/turf/closed/wall/r_wall{ +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEx" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cEz" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 }, -/obj/structure/plasticflaps, -/turf/open/floor/plating{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEA" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Brig" +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Gunsky, the most rootin'-tootin'-point-and shootin' security bot on this side of the galaxy!"; + name = "Officer Gunsky" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Armory Delievery Chute"; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating{ +/obj/machinery/holopad, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -74953,11 +72309,20 @@ }, /area/security/courtroom) "cEG" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall{ +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/maintenance/asteroid/fore/com_north) "cEH" = ( /obj/structure/sign/poster/random{ name = "random contraband poster"; @@ -75017,11 +72382,12 @@ }, /area/crew_quarters/heads/hop) "cEP" = ( -/obj/structure/bed, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_x = -32 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -75033,17 +72399,8 @@ /area/crew_quarters/locker) "cER" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/structure/window/fulltile, /obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75057,15 +72414,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CommandWest"; - location = "Security"; - name = "navigation beacon (Security)" - }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -75084,8 +72434,6 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75122,9 +72470,8 @@ /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) "cEY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) @@ -75195,7 +72542,6 @@ /obj/structure/flora/ausbushes/fullgrass, /obj/structure/sign/poster/random{ name = "random official poster"; - pixel_x = 0; pixel_y = -32; random_basetype = /obj/structure/sign/poster/official }, @@ -75232,8 +72578,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Medbay2"; @@ -75324,8 +72669,7 @@ /area/engine/engineering) "cFx" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/closet/secure_closet/medical3, /turf/open/floor/plasteel/white{ @@ -75427,7 +72771,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -75445,7 +72788,7 @@ /area/chapel/office) "cFJ" = ( /obj/structure/plasticflaps{ - name = "Officer Beepsky's Home" + name = "Officer Pipsqueak's Home" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -75469,11 +72812,9 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'WARNING: FUN-SIZED JUSTICE'."; name = "WARNING: FUN-SIZED JUSTICE"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75498,7 +72839,6 @@ pixel_x = -28 }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -75546,8 +72886,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75658,14 +72996,20 @@ }, /area/science/misc_lab) "cGe" = ( -/obj/structure/chair/office/light{ - dir = 4 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 }, -/obj/effect/landmark/start/warden, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "cGf" = ( /obj/structure/chair/office/light{ dir = 8 @@ -75697,11 +73041,15 @@ }, /area/quartermaster/office) "cGj" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "cGk" = ( /turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -75847,7 +73195,6 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75859,8 +73206,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/landmark/start/station_engineer, /turf/open/floor/plasteel{ @@ -75876,8 +73222,6 @@ /area/crew_quarters/fitness) "cGB" = ( /obj/structure/chair/comfy/black{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /obj/effect/landmark/start/assistant, @@ -75981,7 +73325,6 @@ }, /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (WEST)"; icon_state = "escape"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -76005,8 +73348,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -76016,8 +73358,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76046,7 +73386,6 @@ }, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (WEST)"; icon_state = "purplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -76065,8 +73404,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76108,7 +73445,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76149,16 +73485,30 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 8; +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76189,51 +73539,22 @@ req_one_access_txt = "38;63" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76279,27 +73600,35 @@ }, /area/security/brig) "cHk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" +/obj/structure/table/reinforced, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + name = "Brig Entry Desk"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/poster/official/help_others{ - pixel_x = -32 +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/light{ + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76309,15 +73638,14 @@ }, /area/security/brig) "cHn" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "outterbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76329,21 +73657,21 @@ pixel_y = 3 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHp" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "cHq" = ( @@ -76351,9 +73679,7 @@ /obj/machinery/disposal/deliveryChute{ desc = "A chute for big and small crimnals alike!"; dir = 1; - icon_state = "intake"; - name = "Criminal Delivery Chute"; - tag = "icon-intake (NORTH)" + name = "Criminal Delivery Chute" }, /obj/machinery/door/window/brigdoor/northleft{ name = "Criminal Deposit"; @@ -76364,52 +73690,48 @@ }, /area/security/checkpoint/supply) "cHr" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHs" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/flasher{ - id = "HoldingCell"; - pixel_x = 24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHu" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHv" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Brig Lobby East"; + dir = 9; + network = list("SS13","Security") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76426,7 +73748,6 @@ /obj/machinery/camera{ c_tag = "Brig Holding Cell"; dir = 9; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plasteel/floorgrime{ @@ -76450,17 +73771,9 @@ }, /area/security/brig) "cHz" = ( -/obj/structure/chair{ - dir = 8 - }, /obj/machinery/light{ dir = 4 }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76491,14 +73804,12 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHD" = ( /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76511,27 +73822,24 @@ pixel_y = 3 }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHG" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, /turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76582,7 +73890,7 @@ /area/security/brig) "cHJ" = ( /obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76624,8 +73932,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76637,15 +73943,8 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -76660,8 +73959,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76677,13 +73974,10 @@ }, /obj/machinery/camera{ c_tag = "Command Asteroid Hall 3"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -76698,8 +73992,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76848,7 +74140,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76903,8 +74194,6 @@ /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76936,12 +74225,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76959,11 +74245,11 @@ /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76982,8 +74268,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77006,11 +74290,11 @@ "cIw" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77106,10 +74390,8 @@ }, /area/hallway/primary/central) "cII" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ @@ -77128,8 +74410,6 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77143,8 +74423,6 @@ icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77242,7 +74520,6 @@ dir = 4 }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (WEST)"; icon_state = "greencorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -77442,8 +74719,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -77464,8 +74740,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -77474,8 +74749,6 @@ "cJs" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77518,7 +74791,6 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (NORTH)"; icon_state = "warn_end"; dir = 1 }, @@ -77613,13 +74885,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -77637,8 +74906,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/sci_dock) @@ -77676,7 +74944,6 @@ dir = 4 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -77826,9 +75093,7 @@ /obj/machinery/disposal/deliveryChute{ desc = "A chute for big and small crimnals alike!"; dir = 1; - icon_state = "intake"; - name = "Criminal Delivery Chute"; - tag = "icon-intake (NORTH)" + name = "Criminal Delivery Chute" }, /obj/machinery/door/window/brigdoor/northleft{ name = "Criminal Deposit"; @@ -77898,8 +75163,7 @@ /obj/structure/flora/tree/palm, /obj/machinery/camera{ c_tag = "Genetics Monkey Dome"; - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -77956,14 +75220,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/airalarm{ frequency = 1439; locked = 0; pixel_y = 23 }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" @@ -77983,11 +75247,9 @@ }, /obj/machinery/portable_atmospherics/canister, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -77995,8 +75257,6 @@ /area/science/mixing) "cKw" = ( /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (WEST)"; - icon_state = "whitepurplecorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -78103,15 +75363,10 @@ }, /area/maintenance/asteroid/fore/com_north) "cKJ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating{ +/turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cKK" = ( /obj/structure/cable/orange{ d1 = 4; @@ -78183,7 +75438,6 @@ "cKR" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel{ @@ -78270,11 +75524,10 @@ }, /area/maintenance/asteroid/fore/cargo_west) "cKZ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_north) +/area/security/prison) "cLa" = ( /obj/machinery/light/small{ dir = 8 @@ -78288,7 +75541,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel{ @@ -78321,11 +75573,20 @@ }, /area/maintenance/asteroid/fore/com_north) "cLf" = ( -/obj/structure/chair/stool, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "cLg" = ( /obj/structure/cable/orange{ d1 = 1; @@ -78435,13 +75696,11 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/camera{ c_tag = "Cargo Hall West"; dir = 1; - icon_state = "camera"; network = list("SS13","QM") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -78506,11 +75765,13 @@ locked = 0; pixel_y = 23 }, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 9; - icon_state = "brown"; - tag = "icon-brown (NORTHWEST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLy" = ( @@ -78531,19 +75792,14 @@ /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 5; - icon_state = "brown"; - tag = "icon-brown (NORTHEAST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "cLC" = ( /obj/structure/cable/orange{ d2 = 2; @@ -78556,7 +75812,6 @@ pixel_y = 2 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -78570,8 +75825,7 @@ /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 8; - icon_state = "brown"; - tag = "icon-brown (WEST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLE" = ( @@ -78602,18 +75856,14 @@ }, /area/quartermaster/qm) "cLH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 4; - icon_state = "brown"; - tag = "icon-brown (EAST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLI" = ( @@ -78649,8 +75899,7 @@ /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 8; - icon_state = "brown"; - tag = "icon-brown (WEST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLL" = ( @@ -78658,6 +75907,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/quartermaster, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -78678,15 +75928,13 @@ department = "Cargo Bay"; departmentType = 2; name = "Quartermaster RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 4; - icon_state = "brown"; - tag = "icon-brown (EAST)" + icon_state = "brown" }, /area/quartermaster/qm) "cLP" = ( @@ -78726,21 +75974,18 @@ "cLS" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/quartermaster/qm) "cLT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Quartermaster's Office"; dir = 1; - icon_state = "camera"; network = list("SS13","QM") }, /turf/open/floor/plasteel/brown{ @@ -78760,11 +76005,9 @@ /area/quartermaster/qm) "cLW" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-21"; icon_state = "plant-21" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless @@ -78776,7 +76019,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel{ @@ -78847,7 +76089,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -78864,6 +76105,11 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -78969,15 +76215,14 @@ /obj/structure/disposalpipe/segment, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79038,7 +76283,6 @@ /obj/machinery/camera{ c_tag = "Service SMES"; dir = 6; - icon_state = "camera"; network = list("SS13","QM") }, /obj/structure/table, @@ -79055,7 +76299,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Port Asteroid Maintence APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -79299,8 +76542,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79312,8 +76554,6 @@ icon_state = "0-8" }, /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/structure/cable{ @@ -79362,8 +76602,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/grille, /turf/open/floor/plating{ @@ -79391,8 +76630,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79406,8 +76644,7 @@ }, /obj/machinery/camera{ c_tag = "Theatre Backstage"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79435,8 +76672,7 @@ /obj/item/device/instrument/violin, /obj/machinery/camera{ c_tag = "Theatre Stage"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79446,9 +76682,7 @@ /obj/machinery/light_switch{ pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79468,7 +76702,6 @@ /area/crew_quarters/theatre) "cNh" = ( /turf/open/floor/plasteel/stairs{ - tag = "icon-stairs (WEST)"; icon_state = "stairs"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -79484,9 +76717,7 @@ }, /area/crew_quarters/theatre) "cNj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79503,7 +76734,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79540,9 +76770,8 @@ }, /area/crew_quarters/theatre) "cNq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/redyellow{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -79561,7 +76790,6 @@ /obj/structure/sign/poster/random{ name = "random contraband poster"; pixel_x = -32; - pixel_y = 0; random_basetype = /obj/structure/sign/poster/contraband }, /obj/item/clothing/head/sombrero, @@ -79602,8 +76830,6 @@ /area/crew_quarters/theatre) "cNw" = ( /obj/structure/chair/wood{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -79613,8 +76839,6 @@ /area/crew_quarters/theatre) "cNx" = ( /obj/structure/chair/wood{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -79680,10 +76904,7 @@ }, /area/crew_quarters/theatre) "cNE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79709,10 +76930,7 @@ }, /area/crew_quarters/theatre) "cNI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79724,10 +76942,7 @@ }, /area/crew_quarters/theatre) "cNK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -79873,14 +77088,11 @@ /area/crew_quarters/theatre) "cOa" = ( /obj/structure/chair/wood{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/camera{ c_tag = "Theatre"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -79900,8 +77112,6 @@ /area/crew_quarters/theatre) "cOc" = ( /obj/structure/chair/wood{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -80006,10 +77216,10 @@ /obj/machinery/power/apc{ dir = 1; name = "Theatre APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/asteroid/end, @@ -80032,8 +77242,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -80073,6 +77282,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/sign/map/left/ceres{ + pixel_y = 32 + }, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -80214,8 +77426,7 @@ department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -80225,6 +77436,7 @@ /obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -80258,9 +77470,8 @@ }, /area/crew_quarters/heads/cmo) "cOP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -80402,9 +77613,8 @@ }, /area/crew_quarters/heads/cmo) "cPf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -80432,7 +77642,6 @@ /area/medical/virology) "cPi" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -80457,7 +77666,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless @@ -80508,10 +77716,8 @@ }, /area/medical/morgue) "cPq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -80522,8 +77728,7 @@ /obj/item/weapon/folder, /obj/machinery/camera{ c_tag = "Morgue North"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -80538,7 +77743,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Morgue APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/table, @@ -80703,10 +77907,8 @@ }, /area/medical/morgue) "cPK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -80715,8 +77917,6 @@ "cPL" = ( /obj/item/stack/rods, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating/astplate{ @@ -80735,7 +77935,6 @@ /obj/machinery/camera{ c_tag = "Morgue South"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/effect/landmark/revenantspawn, @@ -80747,7 +77946,6 @@ "cPO" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/black{ @@ -80801,8 +77999,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -80912,8 +78109,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j1"; @@ -80923,7 +78119,6 @@ dir = 10 }, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -80973,8 +78168,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -81114,6 +78308,7 @@ /obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/landmark/start/chief_engineer, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -81135,17 +78330,15 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/crew_quarters/heads/chief) "cQF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -81200,6 +78393,8 @@ icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ @@ -81443,7 +78638,6 @@ /obj/machinery/camera{ c_tag = "Aux Base Construction North"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/plating{ @@ -81510,8 +78704,7 @@ "cRB" = ( /obj/machinery/camera{ c_tag = "Aux Base Construction South"; - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -81590,8 +78783,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -81640,8 +78832,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -81775,7 +78966,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Toxins Storage APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/orange{ @@ -81797,7 +78987,6 @@ /obj/effect/turf_decal/delivery, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -81819,7 +79008,6 @@ "cSk" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel{ @@ -81840,14 +79028,10 @@ /obj/machinery/camera{ c_tag = "Toxins Storage"; dir = 9; - icon_state = "camera"; network = list("SS13","RD") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -81939,6 +79123,9 @@ /area/crew_quarters/heads/hor) "cSw" = ( /obj/structure/displaycase/labcage, +/obj/structure/sign/map/left/ceres{ + pixel_x = 32 + }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -81949,11 +79136,8 @@ name = "Research Emergency Lockdown"; pixel_x = -24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/button/door{ id = "rdoffice"; @@ -82045,8 +79229,7 @@ department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82056,6 +79239,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, +/obj/effect/landmark/start/research_director, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -82136,7 +79320,6 @@ "cSO" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/keycard_auth{ @@ -82356,7 +79539,6 @@ "cTl" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/circuit{ @@ -82367,10 +79549,10 @@ /obj/structure/disposaloutlet{ dir = 8 }, -/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "cTn" = ( @@ -82522,8 +79704,7 @@ icon_state = "plant-20"; light_color = "#E1E17D"; light_range = 5; - luminosity = 2; - tag = "icon-plant-20" + luminosity = 2 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82703,38 +79884,62 @@ }, /area/ai_monitored/security/armory) "cTV" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTW" = ( -/turf/open/floor/plasteel/darkred{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTX" = ( -/obj/machinery/button/door{ - id = "armoryaccess"; - name = "Armory Shutter Access"; - pixel_x = -28 - }, -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/darkred{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTY" = ( -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/darkred{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) +"cTW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"cTX" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"cTY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "cTZ" = ( /obj/structure/closet/secure_closet/CMO, /turf/open/floor/plasteel/barber{ @@ -82753,8 +79958,6 @@ /area/maintenance/asteroid/central) "cUb" = ( /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating/astplate{ @@ -82764,8 +79967,6 @@ "cUc" = ( /obj/effect/spawner/lootdrop/grille_or_trash, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating/astplate{ @@ -82828,8 +80029,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82837,8 +80037,6 @@ /area/maintenance/asteroid/central) "cUl" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating{ @@ -82852,8 +80050,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82861,8 +80058,6 @@ /area/maintenance/asteroid/central) "cUn" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating{ @@ -82872,8 +80067,6 @@ "cUo" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating{ @@ -82883,8 +80076,6 @@ "cUp" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating{ @@ -82915,8 +80106,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82924,8 +80114,6 @@ /area/maintenance/asteroid/central) "cUt" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating{ @@ -82940,8 +80128,6 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating{ @@ -82952,8 +80138,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82964,8 +80149,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -82999,8 +80183,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plating{ @@ -83015,8 +80198,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83029,8 +80211,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83074,14 +80255,12 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83139,8 +80318,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83153,8 +80331,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83169,8 +80346,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83180,7 +80356,6 @@ /obj/machinery/airalarm{ desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; - icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; @@ -83220,8 +80395,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83282,7 +80456,6 @@ id = "incineratorturbine" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/floorgrime{ @@ -83345,8 +80518,7 @@ pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, @@ -83422,8 +80594,7 @@ dir = 8 }, /obj/structure/sign/fire{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -83441,8 +80612,7 @@ on = 1 }, /obj/structure/sign/fire{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/doorButtons/access_button{ idSelf = "incinerator_access_control"; @@ -83518,14 +80688,8 @@ }, /area/maintenance/disposal/incinerator) "cVp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 0; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1 }, /turf/open/floor/engine/vacuum{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83565,10 +80729,7 @@ /turf/open/floor/plating/airless, /area/maintenance/disposal/incinerator) "cVu" = ( -/obj/structure/sign/fire{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/structure/sign/fire, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cVv" = ( @@ -83581,28 +80742,13 @@ }, /area/maintenance/disposal/incinerator) "cVw" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Armory APC"; - pixel_x = 0; - pixel_y = 24 +/obj/item/weapon/ore/glass, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/rack, -/obj/item/weapon/storage/box/chemimp{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/glass/bottle/morphine, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 1; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/turf/open/floor/plating/asteroid, +/area/security/transfer) "cVx" = ( /obj/structure/cable/orange{ d1 = 4; @@ -83635,65 +80781,100 @@ }, /area/ai_monitored/security/armory) "cVz" = ( -/obj/structure/closet/secure_closet{ - name = "contraband locker"; - req_access_txt = "3" +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" }, -/obj/effect/spawner/lootdrop/armory_contraband{ - loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "cVA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/black{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVB" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/black{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVC" = ( -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 1"; + name = "Cell 1 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation1"; + name = "Cell 1 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVD" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/black{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, /obj/machinery/camera{ - c_tag = "Security Interrogation"; - dir = 9; - icon_state = "camera"; - network = list("SS13"); - tag = "null" + c_tag = "Brig Perma Cell 1"; + dir = 10; + network = list("SS13","Security","PrisonCell") }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83706,17 +80887,19 @@ }, /area/security/prison) "cVH" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVI" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83737,17 +80920,37 @@ }, /area/security/prison) "cVL" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/black{ +/obj/machinery/button/flasher{ + id = "PCell 2"; + name = "Cell 2 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation2"; + name = "Cell 2 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83767,19 +80970,16 @@ }, /area/security/prison) "cVP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; - d2 = 2; - icon_state = "1-2" + d2 = 8; + icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door_timer{ - id = "Cell 8"; - name = "Cell 8"; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/corner{ + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83787,7 +80987,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Security Transfer Range APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/orange{ @@ -83799,15 +80998,12 @@ }, /area/security/transfer) "cVR" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVS" = ( /obj/structure/cable/orange{ d1 = 1; @@ -83850,8 +81046,7 @@ /obj/machinery/door_timer{ id = "Cell 7"; name = "Cell 7"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83888,28 +81083,50 @@ }, /area/security/transfer) "cVX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating{ +/obj/machinery/button/flasher{ + id = "PCell 5"; + name = "Cell 5 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation5"; + name = "Cell 5 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVY" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/button/door{ + id = "permabolt5"; + name = "Cell 5 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 }, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVZ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -83927,6 +81144,7 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/grille, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/door/poddoor/shutters/preopen{ @@ -83985,13 +81203,14 @@ /area/hallway/secondary/bridges/com_engi) "cWf" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/hallway/secondary/bridges/com_serv) "cWg" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/engine, @@ -84006,6 +81225,8 @@ "cWj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/closed/wall/r_wall, @@ -84016,8 +81237,7 @@ "cWl" = ( /obj/machinery/camera{ c_tag = "Command-Service Bridge"; - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/open/floor/engine, /area/hallway/secondary/bridges/com_serv) @@ -84038,6 +81258,8 @@ "cWo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/closed/wall/r_wall, @@ -84080,8 +81302,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/com_serv) @@ -84098,16 +81319,19 @@ /area/hallway/secondary/bridges/com_serv) "cWv" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/com_serv) "cWw" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/engine, @@ -84116,10 +81340,11 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Medbay-Cargo Bridge"; - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, @@ -84149,8 +81374,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/hallway/secondary/bridges/serv_engi) @@ -84215,6 +81439,7 @@ pixel_y = -24 }, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/engine, @@ -84223,8 +81448,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/serv_engi) @@ -84236,8 +81460,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/serv_engi) @@ -84245,11 +81468,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84258,8 +81479,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -84269,8 +81489,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/engi_med) @@ -84282,8 +81501,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/engi_med) @@ -84315,13 +81533,12 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/serv_engi) "cWT" = ( /obj/structure/disposalpipe/segment{ @@ -84342,7 +81559,6 @@ /area/hallway/secondary/bridges/dock_med) "cWW" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/engine, @@ -84375,8 +81591,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Docking-Medical Bridge APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -84386,6 +81601,8 @@ /area/hallway/secondary/bridges/dock_med) "cXb" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, @@ -84397,6 +81614,8 @@ network = list("SS13") }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, @@ -84404,6 +81623,8 @@ "cXd" = ( /obj/machinery/door/airlock/glass, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -84412,6 +81633,8 @@ /area/hallway/primary/starboard/aft) "cXe" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -84424,8 +81647,11 @@ dir = 1 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84435,6 +81661,8 @@ pixel_x = 24 }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -84466,7 +81694,6 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84475,11 +81702,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84491,14 +81716,12 @@ /obj/machinery/camera{ c_tag = "Research-Docking Bridge 5"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/sci_dock) @@ -84509,14 +81732,12 @@ /obj/machinery/camera{ c_tag = "Research-Docking Bridge 2"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/sci_dock) @@ -84533,7 +81754,6 @@ /obj/machinery/camera{ c_tag = "Research-Docking Bridge 3"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/engine, @@ -84545,7 +81765,6 @@ /obj/machinery/camera{ c_tag = "Research-Docking Bridge 4"; dir = 1; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/engine, @@ -84555,15 +81774,13 @@ /turf/open/space/basic, /area/space) "cXt" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "cXu" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/grille, /obj/structure/cable{ @@ -84577,39 +81794,34 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXv" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXw" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/grille, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -84651,8 +81863,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/hallway/secondary/bridges/cargo_ai) @@ -84668,7 +81879,6 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/bridges/cargo_ai) "cXE" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -84677,7 +81887,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84686,7 +81896,6 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/bridges/cargo_ai) "cXG" = ( -/obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -84695,7 +81904,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXH" = ( /obj/machinery/camera{ @@ -84750,8 +81959,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84771,8 +81978,6 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84796,17 +82001,15 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, /obj/structure/grille, /obj/structure/window/reinforced, -/turf/open/space, +/turf/open/floor/plating, /area/hallway/secondary/bridges/cargo_ai) "cXT" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/engine, @@ -84826,8 +82029,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Command-Engineering Bridge APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -84840,8 +82042,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/engine, /area/hallway/secondary/bridges/com_engi) @@ -84854,12 +82055,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84868,12 +82066,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84885,8 +82080,6 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84941,11 +82134,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84978,7 +82171,6 @@ pixel_y = 2 }, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (EAST)"; icon_state = "warn_end"; dir = 4 }, @@ -85062,8 +82254,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -85118,15 +82309,12 @@ /area/shuttle/abandoned) "cYy" = ( /obj/structure/shuttle/engine/propulsion{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) "cYz" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2 }, @@ -85172,8 +82360,6 @@ /area/shuttle/abandoned) "cYE" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -85505,8 +82691,7 @@ "cZj" = ( /obj/structure/table, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/escape) @@ -85557,8 +82742,6 @@ /area/shuttle/escape) "cZq" = ( /obj/structure/chair/comfy/beige{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/plasteel/darkpurple, @@ -85575,7 +82758,6 @@ /area/shuttle/escape) "cZt" = ( /obj/structure/chair/office/light{ - tag = "icon-officechair_white (NORTH)"; icon_state = "officechair_white"; dir = 1 }, @@ -85584,8 +82766,7 @@ "cZu" = ( /obj/machinery/computer/communications, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/black, /area/shuttle/escape) @@ -85594,8 +82775,6 @@ /area/shuttle/escape) "cZw" = ( /obj/structure/chair/comfy/beige{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/plasteel/darkyellow, @@ -85702,15 +82881,13 @@ /area/shuttle/escape) "cZH" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced, /turf/open/floor/plasteel/black, /area/shuttle/escape) "cZI" = ( /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1 }, @@ -85761,13 +82938,11 @@ /area/shuttle/escape) "cZP" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/shuttle/escape) "cZQ" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1 }, @@ -85850,7 +83025,6 @@ /area/shuttle/escape) "cZZ" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/black, @@ -85861,11 +83035,9 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1 }, @@ -85925,7 +83097,6 @@ "dah" = ( /obj/structure/chair, /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred (NORTHEAST)"; icon_state = "darkred"; dir = 5; floor_tile = /obj/item/stack/tile/plasteel @@ -85933,21 +83104,18 @@ /area/shuttle/escape) "dai" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (WEST)"; icon_state = "neutral"; dir = 8 }, /area/shuttle/escape) "daj" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4 }, /area/shuttle/escape) "dak" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2 }, @@ -86050,7 +83218,6 @@ /area/shuttle/escape) "dax" = ( /turf/open/floor/mineral/plastitanium/brig{ - tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel @@ -86058,26 +83225,22 @@ /area/shuttle/escape) "day" = ( /obj/effect/turf_decal/stripes/line{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ pixel_x = -28 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, /area/shuttle/escape) "daz" = ( /obj/effect/turf_decal/stripes/line{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, @@ -86086,7 +83249,6 @@ "daA" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, @@ -86095,7 +83257,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -86118,7 +83279,6 @@ /area/shuttle/escape) "daD" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -86131,7 +83291,6 @@ /obj/effect/turf_decal/delivery, /obj/structure/closet/crate, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -86146,7 +83305,6 @@ /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 27 }, /turf/open/floor/plasteel/neutral, @@ -86175,7 +83333,6 @@ /area/shuttle/escape) "daM" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10 }, @@ -86191,22 +83348,18 @@ /obj/effect/turf_decal/delivery, /obj/structure/closet, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6 }, /area/shuttle/escape) "daQ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, /area/shuttle/escape) "daR" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4 }, /area/shuttle/escape) @@ -86217,7 +83370,6 @@ /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 27 }, /turf/open/floor/plasteel, @@ -86267,7 +83419,6 @@ "daZ" = ( /obj/machinery/light, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -86290,12 +83441,9 @@ /area/shuttle/escape) "dbc" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (WEST)"; - icon_state = "neutralcorner"; dir = 8 }, /area/shuttle/escape) @@ -86310,14 +83458,12 @@ name = "Speedy* Recovery" }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9 }, /area/shuttle/escape) "dbf" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, @@ -86326,7 +83472,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, @@ -86334,7 +83479,6 @@ "dbh" = ( /obj/machinery/atmospherics/components/unary/cryo_cell, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, @@ -86342,7 +83486,6 @@ "dbi" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, @@ -86352,7 +83495,6 @@ /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, /obj/item/weapon/wrench, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5 }, @@ -86363,7 +83505,6 @@ /area/shuttle/escape) "dbl" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8 }, @@ -86373,8 +83514,6 @@ /area/shuttle/escape) "dbn" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/white, @@ -86385,36 +83524,30 @@ /area/shuttle/escape) "dbp" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/white, /area/shuttle/escape) "dbq" = ( /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4 }, /area/shuttle/escape) "dbr" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/machinery/light{ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5 }, /area/shuttle/escape) "dbs" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10 }, @@ -86424,7 +83557,6 @@ /area/shuttle/escape) "dbu" = ( /turf/open/floor/plasteel/whiteblue/corner{ - tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8 }, @@ -86436,7 +83568,6 @@ pixel_y = 3 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4 }, @@ -86447,7 +83578,6 @@ /area/shuttle/escape) "dbx" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue, @@ -86457,8 +83587,7 @@ /area/shuttle/escape) "dbz" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1; @@ -86469,11 +83598,9 @@ /area/shuttle/escape) "dbA" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4 }, @@ -86505,8 +83632,7 @@ "dbC" = ( /obj/structure/table, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/circular_saw, /obj/item/weapon/scalpel{ @@ -86525,7 +83651,6 @@ /obj/item/weapon/storage/firstaid/fire, /obj/item/weapon/crowbar, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4 }, @@ -86541,8 +83666,7 @@ "dbG" = ( /obj/structure/table, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/gloves/color/latex, @@ -86555,15 +83679,14 @@ /obj/structure/table, /obj/item/weapon/storage/firstaid/o2, /obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/defibrillator/loaded, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10 }, /area/shuttle/escape) "dbI" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/side, @@ -86571,29 +83694,24 @@ "dbJ" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/whiteblue/side, /area/shuttle/escape) "dbK" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6 }, /area/shuttle/escape) "dbL" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -86616,7 +83734,6 @@ /area/shuttle/escape) "dbP" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/machinery/light/small{ @@ -86627,14 +83744,12 @@ "dbQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9 }, /area/shuttle/escape) "dbR" = ( /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -86645,21 +83760,18 @@ }, /obj/machinery/computer/monitor, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, /area/shuttle/escape) "dbT" = ( /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5 }, /area/shuttle/escape) "dbU" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -86678,21 +83790,18 @@ "dbW" = ( /obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10 }, /area/shuttle/escape) "dbX" = ( /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8 }, /area/shuttle/escape) "dbY" = ( /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4 }, @@ -86701,7 +83810,6 @@ /obj/structure/table, /obj/item/weapon/storage/box/metalfoam, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -86710,7 +83818,6 @@ /obj/structure/table, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1 }, @@ -86719,7 +83826,6 @@ /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5 }, @@ -86740,7 +83846,6 @@ "dce" = ( /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10 }, @@ -86750,7 +83855,6 @@ pixel_x = 32 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -86759,7 +83863,6 @@ /obj/structure/table, /obj/item/weapon/storage/toolbox/mechanical, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10 }, @@ -86780,7 +83883,6 @@ "dcj" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/yellow/side, @@ -86795,11 +83897,9 @@ /area/shuttle/escape) "dcm" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6 }, @@ -86813,16 +83913,12 @@ /area/shuttle/escape) "dcp" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (NORTH)"; - icon_state = "bulb1"; dir = 1 }, /turf/open/floor/plating, /area/shuttle/escape) "dcq" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /turf/open/floor/plating, @@ -86876,10 +83972,10 @@ }, /area/hydroponics) "dcA" = ( -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/space) "dcB" = ( @@ -86893,11 +83989,8 @@ }, /area/hydroponics) "dcC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/darkgreen{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -86924,13 +84017,11 @@ /area/hydroponics) "dcF" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Hydroponics Bee Reserve North"; dir = 9; - icon_state = "camera"; network = list("SS13") }, /turf/open/floor/grass{ @@ -86939,7 +84030,6 @@ /area/hydroponics) "dcG" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -87018,7 +84108,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (WEST)"; icon_state = "darkgreen"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -87102,7 +84191,6 @@ /area/hydroponics) "dcX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen{ @@ -87111,7 +84199,6 @@ /area/hydroponics) "dcY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -87122,7 +84209,6 @@ "dcZ" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ @@ -87132,9 +84218,7 @@ "dda" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -87208,9 +84292,8 @@ }, /area/hydroponics) "ddj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/darkgreen{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87218,14 +84301,10 @@ /area/hydroponics) "ddk" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/hydrofloor{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87237,7 +84316,6 @@ req_access_txt = "35" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/hydrofloor{ @@ -87246,7 +84324,6 @@ /area/hydroponics) "ddm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black{ @@ -87255,8 +84332,7 @@ /area/hydroponics) "ddn" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/grass{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87268,8 +84344,6 @@ c_tag = "Hydroponics South 1"; dir = 1; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/floor/plasteel/darkgreen{ @@ -87297,8 +84371,6 @@ c_tag = "Hydroponics South 2"; dir = 1; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/floor/plasteel/darkgreen{ @@ -87313,7 +84385,6 @@ pixel_y = 2 }, /obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (EAST)"; icon_state = "ast_warn_end"; dir = 4 }, @@ -87340,8 +84411,7 @@ /area/maintenance/asteroid/port/east) "ddt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87366,8 +84436,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/closet/secure_closet/atmospherics, /obj/item/weapon/pickaxe/mini, @@ -87486,7 +84555,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless @@ -87624,7 +84692,6 @@ "ddW" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -87633,7 +84700,6 @@ /obj/machinery/pipedispenser, /obj/machinery/light, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8 }, @@ -87648,7 +84714,6 @@ /area/engine/atmos) "ddZ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel{ @@ -87672,11 +84737,9 @@ /obj/machinery/camera{ c_tag = "Atmospherics Distro"; dir = 9; - icon_state = "camera"; network = list("SS13","CE") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -87689,7 +84752,6 @@ /obj/machinery/camera{ c_tag = "Atmospherics South"; dir = 4; - icon_state = "camera"; network = list("SS13","CE") }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -87697,7 +84759,6 @@ }, /obj/machinery/meter, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -87705,7 +84766,6 @@ /area/engine/atmos) "dee" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel{ @@ -87720,8 +84780,7 @@ /area/engine/atmos) "deg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87754,7 +84813,6 @@ target_pressure = 101 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4 }, @@ -87779,7 +84837,6 @@ /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -87800,17 +84857,14 @@ "den" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/atmos) "deo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87829,9 +84883,7 @@ "deq" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -87859,16 +84911,14 @@ }, /obj/machinery/meter, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/engine/atmos) "deu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -87892,7 +84942,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel{ @@ -88101,15 +85150,15 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_west) "deY" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess"; + name = "Armory Shutters" }, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "deZ" = ( /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -88121,22 +85170,30 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dfb" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating{ +/obj/vehicle/secway, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfd" = ( /obj/structure/cable/orange{ d1 = 4; @@ -88171,19 +85228,13 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dfi" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfj" = ( /obj/machinery/power/apc{ dir = 4; @@ -88193,7 +85244,6 @@ }, /obj/structure/cable/orange, /obj/effect/turf_decal/stripes/end{ - tag = "icon-warn_end (WEST)"; icon_state = "warn_end"; dir = 8 }, @@ -88241,16 +85291,21 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_west) "dfp" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/vehicle/secway, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ +/obj/machinery/button/door{ + id = "armoryaccess2"; + name = "Armory Shutter Access"; + pixel_y = -28; + req_access_txt = "3" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfq" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -88268,19 +85323,18 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dft" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = 28 }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "dfu" = ( /obj/structure/grille, /turf/open/floor/plating/astplate{ @@ -88630,12 +85684,15 @@ }, /area/maintenance/asteroid/fore/cargo_south) "dgt" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -88739,8 +85796,11 @@ }, /area/maintenance/asteroid/fore/cargo_south) "dgH" = ( -/obj/structure/closet, -/turf/open/floor/plating{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -88753,9 +85813,8 @@ }, /area/maintenance/asteroid/fore/com_west) "dgJ" = ( -/obj/structure/girder, /obj/structure/grille, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -88976,14 +86035,12 @@ "dhi" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "dhj" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89249,8 +86306,6 @@ /area/hallway/primary/starboard/fore) "dhU" = ( /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89292,28 +86347,26 @@ "dia" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/fore) "dib" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "dic" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/command) "did" = ( @@ -89321,12 +86374,12 @@ /turf/open/space, /area/solar/asteroid/command) "die" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/fore) "dif" = ( @@ -89387,7 +86440,7 @@ }, /area/maintenance/asteroid/port/west) "dir" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 5 }, /turf/closed/wall/r_wall, @@ -89576,7 +86629,6 @@ "diU" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89592,7 +86644,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89614,7 +86665,6 @@ /area/hallway/primary/starboard/aft) "diZ" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89625,7 +86675,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89643,16 +86692,13 @@ dir = 6 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard/aft) "djd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -89681,7 +86727,6 @@ "djh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89726,6 +86771,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -89741,12 +86787,12 @@ /turf/open/space, /area/solar/asteroid/aft) "djq" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "djr" = ( @@ -89756,29 +86802,28 @@ }, /area/hallway/primary/starboard/aft) "djs" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "djt" = ( -/obj/structure/lattice/catwalk, /obj/item/stack/cable_coil{ amount = 2 }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "dju" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, +/obj/structure/lattice/catwalk, /turf/open/space, /area/solar/asteroid/aft) "djv" = ( @@ -89803,7 +86848,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90126,8 +87170,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90137,7 +87179,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90161,8 +87202,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90172,8 +87211,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90183,7 +87220,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -90192,7 +87228,6 @@ "dkv" = ( /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless @@ -90235,7 +87270,6 @@ dir = 10 }, /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -90254,10 +87288,10 @@ }, /area/science/server) "dkD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4; external_pressure_bound = 140; - on = 1; + name = "server vent"; pressure_checks = 0 }, /turf/open/floor/circuit{ @@ -90274,6 +87308,7394 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/science/server) +"dkF" = ( +/turf/open/space/basic, +/area/mine/unexplored{ + name = "Command Asteroid" + }) +"dkG" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space) +"dkH" = ( +/obj/structure/rack, +/obj/item/weapon/shovel, +/obj/item/weapon/shovel, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkI" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkK" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid, +/area/security/transfer) +"dkL" = ( +/obj/structure/sign/poster/contraband/fun_police{ + pixel_y = 32 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkM" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkN" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkO" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkP" = ( +/obj/item/weapon/ore/glass, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkQ" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Prisoner Transfer APC"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkS" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkT" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkU" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkV" = ( +/obj/item/weapon/ore/glass, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkW" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dla" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dlb" = ( +/obj/machinery/door/airlock/security{ + name = "Prisoner Transfer Center"; + req_access_txt = "2" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dld" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dle" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dlg" = ( +/obj/machinery/computer/gulag_teleporter_computer, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlh" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dli" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlj" = ( +/obj/machinery/flasher{ + id = "Cell 5"; + pixel_y = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlk" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dll" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlm" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dln" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlo" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/hidden, +/obj/machinery/meter, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlq" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlr" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space) +"dls" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlt" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlv" = ( +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock North"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dly" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlz" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlA" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlB" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlC" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Mix To Perma" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlD" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 10 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlE" = ( +/obj/machinery/door/airlock/glass_external{ + cyclelinkeddir = 2 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dlF" = ( +/turf/closed/wall/rust, +/area/maintenance/asteroid/fore/com_north) +"dlG" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"dlH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlI" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Shuttle Dock APC"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlJ" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlK" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 5"; + name = "Cell 5 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlL" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 6"; + name = "Cell 6 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlM" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 4"; + dir = 10; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlN" = ( +/obj/structure/table, +/obj/item/device/electropack, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlO" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlR" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlS" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/item/seeds/random, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlT" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlU" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlV" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlW" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlX" = ( +/turf/closed/mineral, +/area/security/prison) +"dlY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dlZ" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_y = -26; + req_access_txt = "1" + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"dma" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmb" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dme" = ( +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmg" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmi" = ( +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 5"; + name = "Cell Door 5" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmn" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dms" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmu" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmv" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma North"; + dir = 6; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmw" = ( +/turf/closed/mineral, +/area/security/prison) +"dmx" = ( +/obj/machinery/door/airlock/glass_external{ + cyclelinkeddir = 2 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dmy" = ( +/obj/machinery/computer/shuttle/labor, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmC" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmD" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmF" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 7"; + name = "Cell 7 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmG" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 7"; + dir = 9; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmH" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 3"; + dir = 4; + network = list("SS13","Security") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmJ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 1"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmL" = ( +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmM" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation1"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmN" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmO" = ( +/obj/structure/holohoop, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmP" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmQ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmR" = ( +/turf/closed/mineral, +/area/security/prison) +"dmS" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmT" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmU" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmV" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"dmW" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmY" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmZ" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockUpRight"; + location = "CellBlockUpLeft"; + name = "navigation beacon (CellBlockUpLeft)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dna" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnc" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 7"; + name = "Cell Door 7" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnd" = ( +/obj/machinery/flasher{ + id = "Cell 7"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dne" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell 1 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnf" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dng" = ( +/turf/closed/mineral, +/area/security/prison) +"dnh" = ( +/turf/closed/mineral, +/area/security/prison) +"dni" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnk" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnl" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnm" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnn" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dno" = ( +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnp" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnq" = ( +/obj/structure/shuttle/engine/propulsion/right, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnr" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dns" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnt" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock main"; + dir = 4; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnx" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dny" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnD" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnE" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dnF" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dnG" = ( +/turf/closed/mineral, +/area/security/prison) +"dnH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnI" = ( +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnJ" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnK" = ( +/obj/structure/shuttle/engine/propulsion/right, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnL" = ( +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnM" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnN" = ( +/obj/structure/shuttle/engine/propulsion/right, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnO" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnP" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnW" = ( +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnX" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation2"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnY" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnZ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dob" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dod" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dof" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dog" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 8"; + dir = 9; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doh" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell 2 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doi" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doj" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dok" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Asteroid Maintenance Access"; + req_access_txt = "12" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dol" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dom" = ( +/obj/machinery/disposal/deliveryChute{ + desc = "A chute for the reformed crewmember to re-enter the station population."; + dir = 1; + name = "Gulag Exit Chute" + }, +/obj/machinery/door/window/northright, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"don" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dop" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dor" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/camera{ + c_tag = "Brig Cellblock North"; + dir = 10; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dos" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dot" = ( +/obj/machinery/flasher{ + id = "Cell 8"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dou" = ( +/obj/structure/sign/poster/official/obey{ + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Middle 1"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dov" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dow" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dox" = ( +/obj/structure/table, +/obj/item/weapon/cultivator, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doy" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"doA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock South"; + dir = 4; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doG" = ( +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doH" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation3"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doI" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doJ" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doK" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doL" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doM" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doN" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doO" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doT" = ( +/obj/machinery/door_timer{ + id = "Cell 8"; + name = "Cell 8"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 2"; + dir = 4; + network = list("SS13","Security") + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 3"; + name = "Cell 3 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation3"; + name = "Cell 3 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doW" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell 3 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doX" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 6 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doY" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = null; + pixel_y = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doZ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpa" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpb" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpc" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpd" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Riot Control Storage"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dph" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpj" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpk" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpl" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpm" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpr" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dps" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpt" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpB" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpC" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpD" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpE" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpF" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpG" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpH" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpI" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpJ" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess"; + name = "Armory Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpL" = ( +/obj/machinery/flasher{ + id = "PCell 4"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpM" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt4"; + name = "Cell 4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation4"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpN" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpO" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpP" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dpQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dpR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dpS" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpT" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory North"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpX" = ( +/obj/machinery/button/door{ + id = "armoryaccess"; + name = "Armory Shutter Access"; + pixel_y = 28; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqa" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 2"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqb" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqe" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 9"; + name = "Cell 9 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 4"; + name = "Cell 4 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation4"; + name = "Cell 4 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqh" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 4"; + dir = 10; + network = list("SS13","Security","PrisonCell") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqi" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permabolt4"; + name = "Cell 4 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqj" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Middle 2"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqk" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dql" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqm" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dqn" = ( +/obj/item/weapon/storage/toolbox/mechanical/old, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqo" = ( +/obj/machinery/conveyor/auto, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqp" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqq" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqr" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqs" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqu" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqv" = ( +/obj/structure/rack, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/item/weapon/storage/box/trackimp, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqx" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqy" = ( +/obj/machinery/flasher{ + id = "Cell 9"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqz" = ( +/obj/machinery/vending/sustenance, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dqA" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqB" = ( +/obj/item/weapon/wrench, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqC" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqD" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqE" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqF" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqG" = ( +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Armory APC"; + pixel_x = 24 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqH" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqI" = ( +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access_txt = "3" + }, +/obj/effect/spawner/lootdrop/armory_contraband{ + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqJ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqK" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_y = 1; + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqL" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/key/security, +/obj/item/key/security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqM" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 5"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqN" = ( +/obj/machinery/flasher{ + id = "PCell 5"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqO" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt5"; + name = "Cell 5" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation5"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqP" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqR" = ( +/obj/machinery/conveyor/auto{ + dir = 5; + verted = -1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqS" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqT" = ( +/obj/machinery/conveyor/auto{ + dir = 10 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqU" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqY" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqZ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dra" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drb" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drc" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dre" = ( +/obj/structure/weightlifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drf" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dri" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/asteroid/fore/com_west) +"drk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drl" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drm" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drn" = ( +/obj/machinery/conveyor/auto{ + dir = 10 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dro" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drr" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drs" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drt" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dru" = ( +/obj/item/weapon/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drv" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 1"; + dir = 4; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drw" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dry" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drz" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 10"; + dir = 9; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drA" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 1"; + dir = 4; + network = list("SS13","Security") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drH" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drI" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drJ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Port Asteroid Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drL" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"drM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/window/brigdoor/southleft{ + name = "Security Mail Chute"; + req_one_access_txt = "38;63" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drR" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess2"; + name = "Armory Shutters" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drS" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drT" = ( +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 1"; + name = "Cell Door 1"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drU" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockMidLeft"; + location = "CellBlockLowRight"; + name = "navigation beacon (CellBlockLowRight)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drV" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 10"; + name = "Cell Door 10" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drW" = ( +/obj/machinery/flasher{ + id = "Cell 10"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drZ" = ( +/obj/machinery/flasher{ + id = "PCell 6"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsa" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt6"; + name = "Cell 6" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation6"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dse" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dsg" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dsh" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsi" = ( +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dsj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsl" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsm" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsn" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dso" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsp" = ( +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsq" = ( +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dss" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dst" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsv" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 6"; + name = "Cell 6 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation6"; + name = "Cell 6 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsB" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 6"; + dir = 10; + network = list("SS13","Security","PrisonCell") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsC" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permabolt6"; + name = "Cell 6 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsD" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dsE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsL" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsN" = ( +/obj/machinery/vending/security, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsO" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsQ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Armory"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsR" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsS" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "wardencell" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Brig Cell Access"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dsV" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dsW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dta" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtb" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtc" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtd" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dte" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtg" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Room"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dth" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dti" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtj" = ( +/obj/machinery/computer/crew, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtk" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtl" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtn" = ( +/obj/structure/table, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dto" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin, +/obj/machinery/camera{ + c_tag = "Brig Medbay"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dts" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtt" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtv" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/camera{ + c_tag = "Brig Interrogation 2"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtw" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dtx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dty" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtA" = ( +/obj/structure/closet, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dtB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dtC" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtD" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/deputy, +/obj/item/weapon/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtF" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtG" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtH" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtI" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtK" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtO" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtP" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtR" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtS" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtT" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/cups, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtU" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dtV" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dtW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/girder, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dtZ" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dua" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A fierce companion for any person of power, this spider has been carefully trained by NanoTrasen specialists. Its beady, staring eyes send shivers down your spine."; + emote_hear = list("chitters"); + faction = list("spiders"); + harm_intent_damage = 3; + health = 200; + icon_dead = "guard_dead"; + icon_gib = "guard_dead"; + icon_living = "guard"; + icon_state = "guard"; + max_co2 = 5; + max_tox = 2; + maxHealth = 250; + melee_damage_lower = 15; + melee_damage_upper = 20; + min_oxy = 5; + name = "Sergeant Araneus"; + real_name = "Sergeant Araneus"; + response_help = "pets"; + turns_per_move = 10; + voice_name = "unidentifiable voice" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dub" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duc" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dud" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"due" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dug" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duh" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dui" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duj" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dul" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dum" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dun" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duo" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dup" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/bed/roller, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dur" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dus" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dut" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duu" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duv" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"duw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"duz" = ( +/obj/structure/sign/poster/official/enlist{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duA" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duH" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duI" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duJ" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duK" = ( +/obj/structure/table, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/ears/earmuffs, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duL" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duM" = ( +/obj/machinery/computer/camera_advanced{ + z_lock = 1 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duN" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/bed/roller, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duR" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Courtroom APC"; + pixel_y = -24 + }, +/obj/structure/cable/orange, +/obj/effect/turf_decal/stripes/end{ + icon_state = "warn_end"; + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"duS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 4; + name = "Head of Security's Office APC"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duX" = ( +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4; + network = list("SS13","Security") + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"duY" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"duZ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba, +/obj/item/weapon/lighter, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dva" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvb" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvc" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dve" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvf" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvg" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvh" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvk" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvm" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/northright{ + name = "Warden's Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvp" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvq" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvr" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvs" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvt" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation Room"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvu" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation Viewing"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkblue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dvw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dvx" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/button/door{ + id = "hosoffice"; + name = "Emergency Office Lockdown"; + pixel_x = -24; + pixel_y = 8; + req_access_txt = "58" + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Emergency Brig Lockdown"; + pixel_x = -24; + req_access_txt = "1" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvy" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvF" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvI" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Main East"; + dir = 6; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvN" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dvO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dvP" = ( +/obj/machinery/computer/security, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvQ" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvS" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvT" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvU" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvW" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvX" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + broadcasting = 0; + dir = 8; + listening = 1; + name = "Station Intercom (Court)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dvY" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dvZ" = ( +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dwa" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dwb" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwc" = ( +/obj/machinery/computer/card/minor/hos, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwd" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwf" = ( +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwg" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dwh" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dwi" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwn" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dwp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dwq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwr" = ( +/obj/structure/closet/bombcloset, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dws" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwt" = ( +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "detective" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwv" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dww" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwx" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwz" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwB" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/blue/side{ + icon_state = "blue"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkblue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dwE" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/girder, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwL" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwM" = ( +/obj/machinery/vending/security, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwN" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwO" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/ammo_box/c38, +/obj/item/ammo_box/c38, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwT" = ( +/obj/structure/filingcabinet, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwU" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwX" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwY" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/blue/side{ + icon_state = "blue"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dxa" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxb" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxc" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxd" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxf" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxg" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxh" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxi" = ( +/obj/effect/landmark/secequipment, +/obj/machinery/camera{ + c_tag = "Brig Equipment South"; + dir = 10; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxj" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxk" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxl" = ( +/obj/structure/table/wood, +/obj/machinery/computer/secure_data/laptop, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxm" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Detective's Office APC"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxn" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dxo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxp" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxq" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxu" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxv" = ( +/obj/machinery/button/door{ + id = "outterbrig"; + name = "Brig External Doors"; + normaldoorcontrol = 1; + pixel_x = -8; + pixel_y = -24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Internal Doors"; + normaldoorcontrol = 1; + pixel_x = -8; + pixel_y = -32; + req_access_txt = "2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxw" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxx" = ( +/obj/structure/closet, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxA" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxD" = ( +/obj/structure/table/wood, +/obj/item/device/tape/random, +/obj/item/device/tape/random{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxF" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/clothing/glasses/sunglasses, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxG" = ( +/obj/machinery/button/door{ + id = "detective"; + name = "Privacy Shutters"; + pixel_x = 24 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxH" = ( +/obj/structure/filingcabinet, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dxI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxJ" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxN" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxP" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dxS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dxT" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxZ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase, +/obj/item/weapon/storage/briefcase, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dya" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyb" = ( +/obj/machinery/camera{ + c_tag = "Lawyer's Office"; + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyc" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyd" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dye" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyg" = ( +/obj/structure/sign/poster/official/safety_report{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyh" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyi" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyj" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dyk" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dyl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dym" = ( +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyn" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyo" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyp" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dys" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyv" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyw" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyx" = ( +/obj/structure/closet/lawcloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyB" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyC" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/space) +"dyD" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"dyE" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/asteroid/fore/com_west) +"dyF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyG" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyH" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyI" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyM" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dyN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dyO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dyP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyR" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Command Asteroid Hall 10"; + dir = 6 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyS" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CommandWest"; + location = "Security"; + name = "navigation beacon (Security)" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyV" = ( +/obj/structure/plasticflaps{ + name = "Officer Beepsky's Home" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyW" = ( +/obj/structure/bed/dogbed, +/mob/living/simple_animal/bot/secbot/beepsky, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyX" = ( +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/derelict/secret{ + valid_territory = 0 + }) +"dyY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dyZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dza" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dzb" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/asteroid/starboard) +"dzc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4; + filter_type = "freon"; + name = "gas filter (freon)" + }, +/turf/open/floor/engine{ + baseturf = /turf/open/floor/plating/asteroid/airless; + name = "reinforced floor" + }, +/area/engine/engineering) +"dzd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine{ + baseturf = /turf/open/floor/plating/asteroid/airless; + name = "reinforced floor" + }, +/area/engine/engineering) +"dze" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/engine/engineering) +"dzf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) (1,1,1) = {" aaa @@ -92854,29 +97276,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93111,29 +97533,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93368,29 +97790,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93625,6 +98047,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93673,35 +98118,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aad +aab +aab +aab +aab +aad aaa aaa aaa @@ -93882,6 +98304,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93896,6 +98341,15 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93919,48 +98373,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aad +aab +aab +aab +aab +aab +aab +aad +aab +aab aaa aaa aaa @@ -94139,6 +98561,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94153,6 +98598,10 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94173,52 +98622,25 @@ aaa aaa aaa aaa +aag aaa aaa aaa +cFp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aad +aad +aad +aad +aab +aab +aad aaa aaa aaa @@ -94396,13 +98818,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94430,6 +98855,10 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94454,28 +98883,21 @@ aaa aaa aaa aaa +cFp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad aab aab aab aab aad -aaa -aaa -aaa -aaa +aad +aad +aad +aad +aad +aad aaa aaa aaa @@ -94653,13 +99075,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94681,59 +99106,56 @@ acU aei aeE aeS -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dno aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +aaP +aaP +aaP +aaP +aaP +aaP +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +aaP +aaP +aaP +aaP +aaP +aaP +cFp aaa aaa aad aab aab -aab -aab -aab -aab +cTy +cTB +cTw +cTy +cTG +cTw +aac +aac +aac aad -aab -aab -aaa -aaa -aaa aaa aaa aaa @@ -94910,13 +99332,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94938,61 +99363,58 @@ acU aej acU aeT -aeW -afu +dmS +dnp aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +drg +drH +drH +abV +acj +cFp +cFp +cFp +cFp +cXs +cFp +cFp +cFp +cFp +cFp +avx +abV +abr +abr +dyC +aaP +cFp aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aab -aab -aab aab aad -aad +cTv +cTy +cTC +cTx +cTC +cTH +cTw +cTw +aac +aac aad aad aab -aab -aad -aaa -aaa -aaa -aaa aaa aaa aaa @@ -95167,13 +99589,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -95195,61 +99620,58 @@ acU aek aeF aeU -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dnq aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +drh +drI +drI +aaP +aaP +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +aaP +aaP +abs +abs +abb +aaP +cFp aaa +aad +aad +aad +cTw +cTy +cTB +cTz +cTE +cTC +cTL +cTy +aac +aac +aad +aad aab -aab -aab -aab -aad -aad -aad -aad -aad -aad -aad -aaa -aaa -aaa -aaa aaa aaa aaa @@ -95424,13 +99846,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aah aai aai @@ -95456,58 +99881,55 @@ aai afX aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aab -cTy -cTB -cTw -cTy -cTG -cTw -aac +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +drh +drI +aaP +aaP +cXs +cFp +cFp +cFp +cFp +cXs +cFp +cFp +cFp +cFp +cFp +cXs +aaP +aaP +abs +abb +aaP +cFp aac aac aad -aaa -aaa -aaa -aaa +aad +cTv +cTz +cTx +cTD +cTz +cTI +cTM +cTy +aac +aad +aad +aad +aab +aab aaa aaa aaa @@ -95681,13 +100103,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aai aam aas @@ -95713,60 +100138,57 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +abc +aaP +aaP +cFp +cXs +aaa +aaa +aaa +aaa +abC aaa aaa aaa aaa aaa +abC aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +aaP +aaP +abc +aaP +cFp +aac +aac aad -cTv -cTy -cTC +aad +cTx +cTz +cTz cTx cTC -cTH -cTw -cTw -aac +cTJ +cTN +cTx aac aad +aab +aad +aad aad aab -aaa -aaa -aaa -aaa +aad aaa aaa aaa @@ -95938,13 +100360,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aan aan @@ -95970,64 +100395,61 @@ aaM aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +abd +aaP +cFp +cFp +cXs +aaa +cFp +cFp +cFp +abC +cFp aaa aaa aaa aaa +abC aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +dyD +aaP +cFp aaa aad -aad -aad +aac +aac cTw -cTy -cTB +cTA cTz -cTE -cTC -cTL -cTy +dyX +cTF +cTK +cTO +cTw aac +aad +aab aac aad aad +aad aab aaa aaa aaa aaa -aaa -aaa -aaa -aaa aaP aba abr @@ -96195,13 +100617,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aao aan @@ -96222,67 +100647,64 @@ aan aan aaB aeG -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dno +aaa +aaa +aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +abC +aaa +abC +cFp +cFp +cXs +cFp +cFp +abW +abW +akm +abE +cFp +cFp +cFp +cFp +abC aaa aaa aaa aaa +abC +cFp aaa +aad aac aac -aad -aad +cTw +cTw cTv -cTz -cTx -cTD -cTz -cTI -cTM cTy +cTy +cTv +cTw +cTy +aad +aad +aab +aac +aac aac aad aad aad -aab -aab -aaa -aaa -aaa -aaa -aaa +aad aaa aaa aaP @@ -96452,13 +100874,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aap aat @@ -96479,41 +100904,42 @@ aan aan aan aeH -aeW -afu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dnp aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +abC +aaa +abC +aaa +aaa +abC +aaa +aaa +abW +abW +abW +abE +abE +abW +abW +abW +abC +abW aaa aaa aaa +abC +cFp aaa aaa aaa @@ -96521,26 +100947,22 @@ aac aac aad aad -cTx -cTz -cTz -cTx -cTC -cTJ -cTN -cTx aac -aad -aab +aac +aac +aac aad aad aad aab +aac +aac +aac +aad +aab +aab +aad aad -aaa -aaa -aaa -aaa aaa aaP abb @@ -96709,13 +101131,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aaq aan @@ -96736,39 +101161,42 @@ aan aan aaB aeG -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dnq aaa aaa aaa aaa aaa +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +abC +aaa +aaa +akm +abE +abW +abW +abW +abW +abW +abW +abW +abW +abW +akm +abW aaa aaa aaa +abC +cFp aaa aaa aaa @@ -96778,26 +101206,20 @@ aaa aad aac aac -cTw -cTA -cTz -cTz -cTF -cTK -cTO -cTw +aac aac aad aab -aac +aad +aad aad aad aad aab +aab aaa -aaa -aaa -aaa +aad +aad aaa aaP abc @@ -96966,13 +101388,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aar aan @@ -96996,36 +101421,39 @@ aai aai aaO aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +cXs +abE +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp aaa aaa aaa @@ -97033,26 +101461,20 @@ aaa aaa aaa aad -aac -aac -cTw -cTw -cTv -cTy -cTy -cTv -cTw -cTy +aad +aad +aad +aad +aad +aab +aad aad aad aab -aac -aac -aac -aad -aad -aad -aad +aab +aab +aaa +aaa aaa aaa aaa @@ -97230,6 +101652,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aai aar aan @@ -97253,30 +101678,39 @@ aeI aai aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +abC +abW +dgh +dgg +deK +deI +abW +abW +abW +dgh +deI +deK +deK +abW +abW +abW aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp aaa aaa aaa @@ -97287,30 +101721,18 @@ aaa aaa aad aaa -aaa -aaa -aaa -aaa -aac -aac -aad -aad -aac -aac -aac -aac -aad -aad -aad -aab -aac -aac -aac -aad aab aab +aab +aab +aab +aaa +aaa aad -aad +aaa +aaa +aaa +aaa aaa aaa abC @@ -97487,6 +101909,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aak aai aai @@ -97510,6 +101935,39 @@ aai aai aai afY +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +deK +drj +deK +deK +deI +deL +dtA +deK +dgg +deI +dgh +dgh +dwa +dwp +deI +deK +deK +abW +aaa +aaa +aaa +abC +cFp aaa aaa aaa @@ -97534,42 +101992,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aad -aab -aad -aad -aad -aad -aad -aab -aab -aaa -aad -aad -aaa -aaa abC aaa aaa @@ -97744,6 +102166,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -97765,62 +102190,59 @@ aan aan aan aeX -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dno +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +deK +deI +deI +drk +deI +deI +dsD +deL +deL +deL +deL +deL +deL +dvN +deL +deL +deL +deL +deK +abW aaa aaa aaa +abC +cFp aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa aaa aaa aad -aad -aad -aad -aad -aad -aab -aad -aad -aad -aab -aab -aab +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -98001,6 +102423,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98022,8 +102447,48 @@ aan aan aan aeY -aeW -afu +dmS +dnp +cFp +cFp +cFp +cFp +cFp +abE +abE +deK +deI +dqB +dqD +drl +deI +deL +dro +dsj +dsj +dtY +dsj +duW +dsj +dvO +dsj +dsj +dwE +deL +deI +abW +abW +cFp +aaa +abC +cFp +aaa +aaa +aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -98041,49 +102506,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aab -aab -aab -aab -aab -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa abC aaa aaa @@ -98258,6 +102680,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98279,67 +102704,64 @@ adO adO acG aeZ -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dnq +cFp +cFp +cFp +cFp +abE +abW +deK +deK +dqn +dqC +dqQ +dqS +deK +deL +dsF +dta +dta +dta +dta +dta +dta +dta +dta +dta +dsF +dvN +deI +dgh +abW +cFp aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa abC aaa @@ -98515,6 +102937,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98538,65 +102963,62 @@ aai aai aai aaO +cFp +cFp +cFp +cFp +abE +abW +deK +dpQ +axE +dqD +dqR +dqT +drK +dsh +dsG +dta +dtC +dtZ +duz +duX +dvx +dvP +dwc +dta +dsF +deL +dxw +dgh +abW +cFp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa abC aaa @@ -98776,84 +103198,84 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avv -avv -avw -avv -avv -avw -avv -avv -avv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +aaP +aaP +aaP +aaP +aaP +aaa +aaa +aaa +aaa +aaa +aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +deK +deI +deI +deK +deI +dqS +deK +deK +deL +dsF +dta +dtD +dua +duc +duY +duY +duY +duY +dta +dsF +deL +dtA +deK +abW +cFp +aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aXl aXE @@ -99033,61 +103455,61 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awx -axt -ayZ -aAn -aAn -aCx -aDL -aFe -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +aba +abr +abr +abV +acj +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aKy +aLB +dpR +dqo +dqE +dqT +deI +drL +deL +dsF +dta +dtE +dub +duB +duZ +dvz +dvR +dwe +dta +dsF +dsD +deK +deK +abW +deK +dyE +deK +abW aaa aaa aaa @@ -99290,59 +103712,59 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awy +aaP +abb +abs +abs +aaP +aaP +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +deK +deK +deK +deI +deI +deI +deK +dgq +dsi +dsJ +dta axu -avv -aAn -aAn -aAn -aDL -aFe -aaa -aaa -aaa -aaa -aaa -abC -deK +duc +duC +dva +dvA +dvS +dwf +dta +dsF +deL +deI +dgh +abW deK +drk deK deK deK @@ -99357,7 +103779,7 @@ aaa aaa aaa aaa -aaa +aag aaa aaa aaa @@ -99547,58 +103969,58 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awz -axv -aza -aAo -aBr -aAn -aDL -aFe -aaa -aaa -aaa -aaa -abC +aaP +abb +abs +aaP +aaP abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abW +abW +abW +abW +abW +dgh deK +deL +deL +dsF +dta +dtF +duc +duC +duc +dvB +dvT +duc +dta +dwK +dwE +deL +deI +dgh +deI dgH aOn dgY @@ -99805,58 +104227,58 @@ aaa aaa aaa aaP -aaP -aaP -aaP +abc aaP aaP aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avv -avv -axw -avv -avv -avv -aCy -avv -avv -aaa -aaa -aaa -aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +abW +abW +dgh +dgh +dgh +deL +dro +dsj +dsL +dta +dtG +duc +duC +duc +dvB +duc +duc +dta +dgh +dxd +dwE +deL +dgh deK -deK -deI -dgI +dgQ ajW axE axE @@ -100062,57 +104484,57 @@ aaa aaa aaa aaP -aba -abr -abr -abV -acj +abd +aaP +abC aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avx +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +abW +dgh +deK +deI +deL +dro +drN +dqV +dsM awA -axx awA +duf aAp -awA +duf aCz +duf awA -acj -aaa -aaa -aaa -aaa -aKy -aLB -aMu +awA +dsM +dxe +dxz +dwE +dsD +deI aMu aOo dgZ @@ -100318,58 +104740,58 @@ aaa aaa aaa aaa -aaP -abb -abs -abs -aaP -aaP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC +cFp +cFp +cFp abC +cFp abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avv +avv +avw +avv +avv +avw +avv +avv +avv +cFp +cFp +abE +abW +dgh +deK +deI +dqF +dqU +drp +dqV +dqX +dsN awB axy -awB -abC -awB -axy -awB -abC -abC -aaa -aaa -aaa -deK -deK -deK +dug +duF +dve +dvD +dve +dwi +dwr +dsN +dxf +dxe +dsF +deL +deI dgJ aOp dgQ @@ -100422,7 +104844,7 @@ cMs aXr aXr aXn -bpY +bpZ bru bsT bum @@ -100575,57 +104997,57 @@ aaa aaa aaa aaa -aaP -abb -abs -aaP -aaP +cFp +cFp +cFp abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +awx +axt +ayZ +aAn +aAn +aCx +aDL +aFe +cFp +cFp abW abW -abW -abW -abW -abW -atk -atk -atk +dgh +auB +deL +dgk +dqV +drq +dqX +dsm +dsO awC -axz -awG -atk -awG -aCA +avy +avy +duG +avy +dvE aDM -atk -atk -abW -abW -aaa -abW -abW +dwj +dws +dsO +dxg +dqW +dsF +aJL deI axE dgQ @@ -100832,59 +105254,59 @@ aaa aaa aaa aaa -aaP -abc -aaP -aaP -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa cFp -aaa -aaa -aaa -aaa -aaa +cFp +cFp +abC +cFp +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +awy +dlZ +avv +dmV +aAn +aAn +aDL +aFe +cFp abW abW -acH -acH -acH -acH -atk -auo +abW +dgh +deI +dqp +dqG +dqW +drr +drQ +dsn +avy avy -awD axA azb aAq -aBs -awD -awD +axA +azb +azb aFf -atk -abW -acH -acH -acH -acH +avy +avy +dxh +dqW +dxW +dvN deI -axE +dyG dgR aPQ aQM @@ -101089,57 +105511,57 @@ aaa aaa aaa aaa -aaP -abd -aaP +cFp +cFp +cFp abC -aaa +cFp abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abE -abE -abE +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +dlG +axv +aza +aAo +aBr +aAn +aDL +aFe +cFp abW abW -abW -acH -acH -acH -aep -atl +dpn +dpE +dpE +dpE +dpE +dqX +arn +arn aup -avz -awE -awE +avy +avy +axA azc aAr -awE +dvf aCB -awE -aFg -atk -aep -dgg -deI -deK -deI +azc +aFf +avy +avy +dxi +dqW +dsF +dgo deK deK aOr @@ -101154,12 +105576,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101352,50 +105774,50 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -abC -abE -abE -abE -abE -acH -acH -acH -acH -acH -acH -aep -aep -atk +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avv +avv +axw +avv +avv +avv +aCy +avv +avv +cFp +cFp +abW +dpo +dpF +dpF +dpF +dpF +dpF +dpF +arn auq -avA -awF -axB +dsP +dtf +dtH +duh +duH +dvg +dvF azc -aAq -awF -axB -awE aFh -atk +aDM aHy -deL -dgo -deL +dxh +dqW +dsF deL deL deL @@ -101411,13 +105833,13 @@ abE aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101609,52 +106031,52 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -deK -aiW -aiW -aiW -deK -acH -acH -acH -acH -aep -aep -deK -deK -atk -atk -atk +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp awG -axC +dma +awG +cFp +awG +dnO +awG +cFp +cFp +cFp +abW +dpo +dpF +dpT +dpT +dqI +dpT +dpT +arn +dso +avy +avy +axA azd -atk -awG +azd +axA aCC -awG -aFi -atk -aHz -aIF -apJ +azd +aFf +avy +avy +dxh +dqW dgt -dgt -aMv +dgp +dgp dgp dgS dhb @@ -101668,13 +106090,13 @@ abE aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101866,40 +106288,40 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +awG +dmb +awG +cFp +awG +dmb +awG +cFp +cFp abW abW -deI -aiX -ajV -aiZ -deI -acH -acH -acH -aep -deI -ajW -dfl -ajW -dfi +dpo +dpF +dpU +dqs +dqs +dqs +drt +drR aur avB awH axD -aze +axD aAs aBt aCD @@ -101908,12 +106330,12 @@ aFj aGE dft aIG -dgp +dxB ajc -dgp -aMw -aNA -dgf +dsj +dsj +dsj +dyP aPS dhh ajX @@ -101925,13 +106347,13 @@ abW abE abE aaa -aaa -aaa cFp -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -102123,54 +106545,54 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -deK -aiY -ajW +cFp +cFp +cFp +cFp +cFp +cFp +cFp +atk +atk +atk +awG +axz +awG +atk +awG +aCA +awG +atk akG -deK -abW -aep -deK +doL +doL +akI +dpF dfb -deI -dfi -dfm +dqt +dqt +dqt dfp -dft -aus -avC +arn +arn +arn awI -axE -azf +dtI +dtI aAt -aBu +dqW aCE aDO aFk cLB -dgf -aIH -deL -deK +cLB +cLB +dxC +aGF +aGF +dyv deK aMx -aNB -deK deI deI deI @@ -102182,13 +106604,13 @@ abW abW abE aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -102380,54 +106802,54 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -acH -acH -deI -aiZ -ajW -ajX -deI -acH -aep -cKJ +cFp +cFp +cFp +cFp +cFp +cFp +cFp +atk +auo +dls +awD +awD +dmy +awG +dnu +awD +doa +dol +doA +doM +dpa +doM +dpF dfc cEv cEy -arn -arn -arn -arn -arn +cEy +cEy +cEy +dsp +dpF awJ -arn -arn -arn -arn -arn +dtJ +dtJ +dtJ +dvh +dvG aDP aFl -arn -dgg -dgk -dgq -deK -aLC +cLB +dwO +aJN +dxD +dxZ +aMA aMy aNC -dgT +dyQ aPT aQN deK @@ -102439,13 +106861,13 @@ abW abW abE aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aXn @@ -102637,53 +107059,53 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -acH -acH -acH -acH -acH -acH -deK +cFp +cFp +cFp +cFp +cFp +abW +abW +atk +dlg +dlt +dlH +dlH +dlH +dmW +dlH +dlH aja -axE -akH -deI -aep -deK -cKK -arn +atk +doA +doM +dpb +doM +dpF +dpV cEw cEz -arn +dra ash atm -arn -avD +dsq +dpF awK axF -azg +axF aAu aBv aCF -aDQ +aGP aFm -arn -deK -dgk -aJL -deI +dwt +dwP +dxk +dxE +aKA aLD -axE -axE +aMy +dyH cMe dhc dgT @@ -102894,52 +107316,52 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -aep -deK -deK -deI +atk +dlh +avA +awE +dmd +dmA +awG +awF +axB +dob +dom akI -deI -aep -ajW -cKK -arn +doO +dmb +doM +dpF +dpW cEx cEA cEB -asi -atn +cEx +cEx aut -avE +dpF cGj -axG -azh +aGP +aGP aAv azh aCG -aDR +aGP aFn -arn -deI -dgk +cLB +dwQ +dxl aJM -deI +aIK aLE -aMz +aMy aND aOt aPU @@ -103151,52 +107573,52 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -deI +atk +atk +atk +awG +dme +awG +awG +awG cEo -apL -ajX -akJ -ajX -ajX -ajW -cKK -arn -arn -arn -arn +doc +atk +atk +atk +dpd +atk +dpF +dpX +dqu +dqK +drb asj atn -aut -avF -cGj -cGj +dsr +dpF +dtg +dtK azi -cGj -cGj +duJ +aBv aCH -aDS +aJX aFo -arn -dgh +dwu +dwR aII -deK -deK -aLF -dgz +dxF +aHB +aMD +aMy deK cYj aPV @@ -103408,53 +107830,53 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -auB -ajX -deL -deL -deL -ajX -ajX -ajX +abW +abW +atk +dlu +awF +dmf +dmB +dmB +dmB +dmf +dod +don +doB +doP +dpe +dpu deY -dfc -dfc -dfj -arn -ask -ato -arn -avG -awL -awL -awL -awL +dpY +cEx +cEx +cEx +cEx +cEx +dss +dpF +dsR awL +dsR +dsR +dvi aCI -aDT +aGP aFp aGF -aGF -aGF -aGF -aGF -aGF -aGF -aGF +dwS +dxm +dxG +dya +aME +dxC +dyI aOv aPW aQO @@ -103665,54 +108087,54 @@ aaa abC aaa abC -aaa +cFp +cFp abW abW abW abW abW -acH -acH -acH -acH -acH -afd -afd -afd -afd -afd +abW +atk +dlv +dlI +dmg +dmC +dmY +dmY +dnS akL -afd -akL -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -arn -arn -arn -arn -arn -arn -arn -aCJ -aDU +doo +doo +doo +dpf +dpv +dpJ +dpZ +dqv +dqL +drc +dru +drS +dst +dsQ +dth +aoP +duj +duK +dvi +aCG +aGP aFq -aGF -aHA -aIJ -aJN -aKz -aLG -aMA -aGF -aOw +dwv +dwv +dwv +dwv +dwv +dwv +dwv +dwv +dyR aPX aQP aKp @@ -103922,54 +108344,54 @@ aaa abC aaa abC -aaa +cFp +cFp abW abW abW abW abW -acH -acH -acH -acH -acH -afd -afZ -agV -ahG -ail -ajd -ahH -akM +abW +atk +atk +atk +alm +alm +alm +alm +alm +alm +alm +alm alm alR amR -anD -alm -apx -amR -aro -alm -atp -amR -avH -alm -axH -amR -aAw afd +afd +afd +afd +afd +afd +afd +afd +anJ +dti +aoP +duk +aqy +dvk aCK -aDV -aFr -aGG -aHB -aIK -aIK -aKA -aIK -aIK -aGF -aOx +aGP +aFq +dwv +dwT +dxn +aJR +dyb +aIQ +aIQ +dyJ +aOv aPY aQQ aRQ @@ -104175,59 +108597,59 @@ cFp cFp cFp cFp -aaa +cFp abC -aaa +cFp abC -aaa +cFp +cFp abW abW abW abW -acH -acH -acH -acH -acH -afd -afd +abW +abW +abW +abW +abW +alm aga agW -amS -aim +dli +alm aje -ajg -akN +dop +dli alm alS -amS -amS +dpw alm +dqa apy -amS -amS +dli alm +drv atq -ana -amS -alm +dli +dsR +dtj axI -amS -amS -afd +aoP +asn +dvi aCL -aDW +aJX aFs aGH aHC -aIL -aJO aHC aHC -aMB -aGF -aOw -aPZ +aHC +dym +aIQ +dyJ +aOv +aPW aQR aKp aSt @@ -104432,59 +108854,59 @@ cFp cFp cFp cFp -aaa +cFp abC -aaa -abD -abE -abE +cFp +abC +cFp +cFp +abW +abW +abW +abW +abW +abW abW abW abW -acH -acH -acH -acH -acH -afd -afx -agb -agX -ahI -ain -ajf -amS -akO alm -alT -amS anE +amS +alT +aeK +anE +amS +alT alm -alT -amS -anE +dpg +dpx alm -alT -amS anE -alm -alT amS +alT +aeK anE -afd -aCL -aDX -aFt -aGI -aHD +amS +alT +dsR +dtk +aoP +aoP +duL +dvm +aCG +aGP +aFq +dwv +aIQ +aIM aIM -aJP aKB aLH -aMC -aGF -aOw -aPZ +aIQ +dwv +aOv +aPW aQS aKp aKp @@ -104689,59 +109111,59 @@ cFp cFp cFp cFp -aaa +cFp abC -abE -abE -abE -abE -acH -acH -acH -acH -acH -acH -acH -acH -afd -afd -afd -afd +cFp +abC +cFp +abW +agk +ahP +agl +agk +abW +abW +abW +abW +abW +alm +dmD +amS ahJ -aio +alm ajg -ajY -akP +amS +ahJ alm alU -amT -anF +dpw alm -alU -aqu -anF +dqb +amS +ahJ alm -alU -auu -anF -alm -alU -azj -anF -afd -cGX +drw +amS +ahJ +dsR +dtl +aoP +aoP +duM +dvn +aCL aDX aFu -aGF +dww aHE aIN aJQ aKC aLI -aMD +aIQ aNE -aOw -aPZ +aOv +aPW aQT aRz aSu @@ -104946,58 +109368,58 @@ aaa aaa aaa aaa -aaa +cFp +abC +cFp abC -abE -abE -abW -acH -acH -acH -acH abW abW -acH -acH -acH +agk +dkK +agm +agl abW -afd +alm +alm +alm +alm +alm agc agY -anE -aip -ajh +dnz +alm +agc cEr -ajZ -aln -alV -amU -anG -aoL +dnz +alm +alU +dpw +alm +agc apz -amU -anG -asl -apz -amU -anG +dnz +alm +agc +drT +dnz +dsR awM -axJ -azk +ats +aoP aAx -afd -aCL -aDY +dvo +dvH +cHc aFv -aGF +dwx aHF aIO -aJQ +dxH aKD aLJ -aME -aGF -aOw +dyx +dwv +aOv cEU aQU aQj @@ -105203,24 +109625,24 @@ aaa aaa aaa aaa -aaa +cFp +abC +cFp abC -abE -abE abW -acH -acH -acN -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd +abW +agl +agm +dkS +ahP +agk +alm +dli +dlw +dlJ +dmh +dmE +ajm ahK aiq aji @@ -105230,32 +109652,32 @@ alo alW amV anH -ajm -ajm -ajm +aji +aka +akQ arp -ajm -ajm -ajm -anH +aji +aka +dsu +dsT awN axK -azl +aoP aAy -aAA -aCL -aDX +dsR +aCG +aGP aFw -aGJ -aGK -aGK -aGK -aGK -aGK -aGK -aGK -aOw -aPZ +dwv +dwv +dwv +dwv +dwv +dwv +dwv +dwv +dyS +aPW aQV aRt aSw @@ -105285,7 +109707,7 @@ cWv cWv cWv aYA -cWy +aYW aZy aZY aZY @@ -105460,59 +109882,59 @@ aaa aaa aaa aaa -aaa -abD -abE -abE +cFp +abC abW -acH -acH -acN -acN -acN -acN -acN -acN +akm +abW +abW +agk acN acN acN +ahP +alm +dlj +amS +amS +dmi cTV -acN -acN -afd -afd -afd -afd -akL +dmZ +dnA +dml +amd +dlP +dnA +anI alX -amW +amd anI +amd +anI +dnA +anI +amd +drU aoM -anI -anI -anI -anI -anI -aoM -anI -awO +dsR +dsR axL -anI -anI -aBw +dul +dsR +dsR aCM -aDZ +aGP aFx aGK -aHG +cHh aIP -aJR +cHm aKE -aIQ -aMF -aNF +dyn +cHm +avI aOw -aPZ +aPW aQR aRR aRR @@ -105717,22 +110139,22 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +abC abW -acH -acH -acN -acN -ady -adQ -aeq -aeq -aeq -aeq +abW +abW +abW +agk +ahP +dkT +ahP +ahP +alm aeq +dlx +dlK +aln agd cTW cTX @@ -105740,36 +110162,36 @@ air akc akb ajj -afd +doR alY amW -anI -anJ -anJ -aqv -arq -asm -anJ -anJ -anI +doR +amW +dqw +cTX +cVO +akc +cVO +dsv +dsU awP -axL -anI -anI -aAD -aCL -aDX -aFx -aGK +dtL +dum +awP +dsU +dvI +aJX +dwk +dwy aHH -aIQ -aIQ -aIQ -aIQ -aMG +dxo +dxI +dyc +dyo +aJU aNG aOw -aPZ +aPW aQW aRS aSx @@ -105974,56 +110396,56 @@ aaa aaa aaa aaa -aaa -abE -abE +cFp +abC abW abW abW -abW -acN -acN +ahP +ahP +dkL +agm cVw adS -adR -aer +alm +alm aeK -afe -afy +alm +alm age -cTW +dna cTY ais -akc -akc -ajj -afd -alX -amW -cEs -anJ +doe +dor +doD +aeK +dph +dpy +aeK +dmo apA -aqw -arr -asn +cTY +azk +doe atr -anJ +dsw cEt -awO -axL +cHc +aFB cLf -aAz -afd -aCK -aEa +cHc +cEt +dvH +cHc aFy aGL -aHI +aHM aIR -aIR -aKF -aLK -aMH +dxJ +dxJ +dxJ +dxJ aNH aOw aQa @@ -106231,47 +110653,47 @@ aaa aaa cFp aaa -aaa -abE -abE -abW +cFp +abD abW abW abW +agk +dkH acN acN -cVx +agm adS +alm aes -aes -aes -aes -aes +dlw +dlL +dmj agf -acN -acN -afd +dnb +dnB +dnT ajk akd -akd -akd +doE +doS alZ -amW -anK -aoN -aoP -aso -ars -cGf -ats +dpz +doS +dpz +dqx +dnB +azl +ajk +azl auv -anK -awO -axL -afd -aAA -afd -aCL +dsV +dtm +dtM +dun +dtm +dsV +dvK aEb aFz aGM @@ -106279,9 +110701,9 @@ aHJ aIS aJS aKG -cGm -aMI -aGK +cHm +cHm +dyL aOy aQb aQY @@ -106294,7 +110716,7 @@ aUT abE aaa aaa -aaa +cFp aaa aaa aaa @@ -106488,57 +110910,57 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp abW abW abW +agk +dkI +dkM acN acN -adz -cVy -adT +acN +alm aet -aeL -aff +amS +amS afz -agg +cTV aha -ahN -ait -ajl -ake -ake -ake +dnA +anI +amd +anI +dnA +anI ama -amX -anL -aoO -apB -aqx -art -apB +amd +anI +amd +amh +dnA +anI +amd att -auw +aoM +avI +avI +avI +avI +avI avI -awQ -axM -azm -aAB -azm aCN -aEc +aGP aFA aGN aHK aIT -aJT +cHB aKH -aLL -aMJ -aGK +aKH +cEL +avI aOz aQc aQR @@ -106745,64 +111167,64 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp abW abW abW +agl +agk +dkM +dkM acN acN -adA -adU -aeu -aes -aeM +alm +dli +dlx afg afA agh ahb ahO aiu -ajm -ajm -ajm -ajm +dof +dos +ahO +doT amb amX anM -aoP -apC -aqy +dof +dos +ahO aru -aqy -aqy -aqy -avJ +dof +dos +dsx +avI awR axN -azn +axN aAC azn -aCO -aEd -aFx -cEJ -aGK -aGK -aGK -aGK -aGK -aGK -aGK +aCG +aGP +dwl +awJ +dtJ +dtJ +dxK +dtJ +dtJ +dyy +avI aOA -aPZ +aPW aQR aKp -abW -abW -abW +aMk +dyW +aKp abW abW abE @@ -107002,72 +111424,72 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp +cFp +dkF abW abW -abW -acN -acN -adB -adV -adV -adU -aeN -adU -afB +agk +dkM +dkV +ahP +agl +alm +alm +alm +alm +alm +agi +dnc +dnC +alm agi -acN -acN -afd -ajn akf -akf -akf -amc -amW -anN -aoQ +dnC +alm +alU +dpw +alm +agi apD -cGe -ars -aqz -aoP -aux -avK +dnC +alm +agi +drV +dnC +avI awS axO -afd -aAD -afd -aCP -aDX +axO +axO +dvq +aCG +aDP aFt cHb aHL -cHi +aGP cHl cHr -cEL +aGP cEP cER cES -aPZ -aQR +aPW +dyU +dyV +aMk +aMk aKp abW abW -abW -abW -abW abE abE aaa aaa aaa -aaa +cFp aaa aaa aaa @@ -107259,64 +111681,64 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +cFp +cFp abW abW abW -acN -acN +ahP +dkP +dkW adC adV -adV -adV -adV -adV -afC -adC -agZ -ahM -aiv +dlb +dll +dlz +dlM +alm +dmF +amS +ahJ +alm ajo -akc -akc -afd -amd -amW -cEt -anJ -apE -aqA -ars +amS +ahJ +alm +alU +dpw +alm +dqe +amS +ahJ +alm asp -atu -anJ -cEs -awO -axL -cLf -aAz -afd -aCL -cGY -aFB -cHc -aHM -cHj -cHm -cHm -cEM -cHm -cHH -cET -aPZ +amS +ahJ +avI +dtn +axO +duo +axO +dvq +aCG +aGP +dwm +cHb +dwV +aGP +dxL +dye +aGP +cHD +cER +cES +aPW aQR aKp -abW -acH -acH +aKp +aKp +aKp abW abW abE @@ -107516,59 +111938,59 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +cFp +cFp abW abW abW -acN -acN -adC -adW -aev +ahP +dkQ +dkX +agl +agl +alm cVz aeO afh -aev -agj -acN -ahL -aiw -ajj -akg -ajj -afd -ame -amW -anI -anJ -anJ -aqv -arv -asm -anJ -anJ -avL -awO -axL -anI -anI -aAA -aCK -cGZ -cHa -cHd +alm +anR +amS +ami +aeK +anR +amS +ami +alm +dpg +dpx +alm +anR +amS +ami +aeK +anR +amS +ami +avI +dto +dtN +dup +dup +dvs +aCG +aGP +dwm +cHb aHN -cHg -aJU +dtK +dxM cHs -cHx -cHB -cHI -cHN -aPZ +aGP +cHD +cER +cES +aPW aQR aKp abW @@ -107773,57 +112195,57 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp abW abW abW -acN -acN -cTU -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd -afd -afd -afd -akL -amd -amW -anI +abW +abW +agk +ahP +agl +agk +agk +alm +dlm +aeO +afh +alm +dmG +dnd +dli +alm +dog +dot +dli +alm +alS +dpw +alm aoR -anI -anI -anI -anI -anI -aoR -anI -awO -axL -anI -anI -aBw -aCM -aDZ +dqy +dli +alm +drz +drW +dli +avI +avI +avI +avI +avI +avI +aCN +aGP aFC -aEg +avI aHO -aEg -aEg -aEg -aEg -aMK -cHJ +dxr +awJ +dyf +dyq +dyq +dtJ aOC cHT aRf @@ -108030,59 +112452,59 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp abW abW -acH -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd -afd -afd -cVJ -cVF -akh -akR -alp +abW +abW +abW +abW +abW +abW +abW +alm +alm +dln +aeO +dlN +alm +alm +alm +alm +alm +alm +alm +alm +alm amf amY -aoS -aoS -anO -aoS -aoS -asq -aoS -aoS -anO +alm +alm +alm +alm +alm +alm +alm +alm +avI awT -axK -azl +dtO +dtO aAE -aAD -aCL -cGY +avI +aCG +aGP aFD cHe cHf -cHe +dxs aJV cHt -cHy -cHC -aNI +aEb +aEb +aEb cHO -cHU +aPW aQR cHY dhs @@ -108288,13 +112710,6 @@ aaa aaa aaa aaa -abE -abE -abE -abW -abW -acH -acH abW abW abW @@ -108303,44 +112718,51 @@ abW abW abW abW -afd +abW +alm +dlc +dlo +dlA +dlO +dmk +dmH cVA cVF -cVK -ajq -ajZ -akS -cVO +cVF +cVA +cVF +cVA +doU amg cVP -apF +ajm amU -cVS -cVU -cVV +ajm +ajm amU -apF -amU -anP +drA +ajm +dsy +avI awU axP -azk +dur aAF -afd -aCK -aEe +avI +dvL +aJX aFE aGQ aHP -aGQ +dxt aJW -aGP -aGP -cHD -aNJ +aHP +dyr +dyz +dyz aOD -aPZ -aQR +aQd +aQZ cHY dhs dhr @@ -108544,59 +112966,59 @@ aaa aaa aaa aaa -aaa -aaa -abW -abW -abW -abW -abW -acH -acH -acH +cFp abW abW abW abW abW abW -afd -cVB -cVG -cVG -cVM -afd +abW +abW +abW +alm +dld +dlp +dlB +dlP +dml +anI +dml +anI +anI +dml +anI amh -amZ +dml anQ -alm -amh -aqB -anQ -alm -cVW -alm -amh -auy -anQ -alm -amh +anI +anI +dml +anI +anI +dml +anI +dlP +awO +avI +dtp +dtP azo -anQ -afd -aCL -aDX +duO +dvt +dvK +aEb aFF -aEg +dwz cHg -aEg +dxu cHn cHu +dys aGP -cHE -aEg +avI aOE -aPZ +aPW aQR cHY dhs @@ -108801,8 +113223,9 @@ aaa aaa aaa aaa -aaa -aaa +cFp +cFp +cFp abW abW abW @@ -108810,50 +113233,49 @@ abW abW abW abW -acH -acH -acH -acH -acH -abW -abW -afd +alm +dlc +dlq +dlC +dlQ +dmm +dmI cVC cVH -cVL +dmI cVM -afd -ami -amS -anR -alm -ami -amS -anR -alm +ake +dmI +doV +dpi +cVH +dmI +dqf +ake +dmI cVX -alm -ami -amS -anR -alm -ami -amS -anR -afd -aCQ -aDX +drB +drY +dsz +avI +dtq +dtQ +dtQ +duP +avI +aCI +aGP aFG -aGO -cHh +avI +dwW cHk -aJY -aGP -aGP -cHF -cHK -cHN -aQe +avI +dyg +dys +cHD +cER +cES +aPX aRa cHY dhs @@ -109058,8 +113480,9 @@ aaa aaa aaa aaa -aaa -aaa +cFp +cFp +cFp abW abW abW @@ -109067,51 +113490,50 @@ abW abW abW abW -acH -acH -acH -acH -acH -abW -abW -afd -cVD -cVI -cVI -cVN -afd +alm +alm +alm +dlD +dlR +dmn +dmJ +dmn +dlR +dnU +dmn +dlR amj -ana -amS +dmn +dpj alm apG -amS -amS -alm -cVX +dmo alm +dqM +dmo +doD atv -amS -amS -alm +dmo +avI +dtr axQ -amS -amS -afd +axQ +duQ +avI aCR -cGZ -aJX -aJX +aGP +dwn +dwA aHR aIU -aHQ -aJX -aJX -aML -cHL -cHP -aQd -aQZ +cHb +cHu +dyu +cHD +cER +cES +aPW +aQR cHZ dhs dhw @@ -109315,59 +113737,59 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -acH +cFp +cFp +cFp +cFp +abW +abW +abW +abW +abW abW abW -acH -acH -acH -acH -acH abW abW afd +dlS +dmo +dmK cVE -cVC -cVC +alm +dmK ahc -afd -amk +alm +dmK anb anS alm -apH -anb -arw +dmK +dqh alm +dmK aiy -alm -atw -anb -avM -alm -axR -anb +doD +dmK +dsB +avI +dts +dtQ +dtQ aAG -afd +dvu aCS -aEf -aFH +aDX +aAv aGR aHS -cHk -cHo +dxv +avI cHv cHz cHG -cHK -cHN -aPZ +cER +cES +aPW aRb cHY dhr @@ -109576,55 +113998,55 @@ aaa aaa aaa aaa -aaa -aaa -acH -acH -acH abW abW abW -acH -acH -acH +abW +abW +abW +abW +abW abW afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd +dlT +dmo +dmL +dne +alm +dnW +doh +alm +doG +doW +anS +alm +dpL +dqi +alm +dqN cVY -afd -afd -afd -afd -afd -afd -afd -afd -afd -aCT -aEg -aFI -aEg -aEg -aEg -aEg -aFI -aEg -aEg +doD +drZ +dsC +avI +dtt +dtR +dtR +aAF +azp +azp aEg +azp +azp +azp +azp +azp +azp +azp +azp +azp cHQ -aPZ +aPW aQR cHY dhr @@ -109833,17 +114255,7 @@ aaa aaa aaa aaa -aaa -aaa -acH -acH -acH -abW -abW -abW -acH -acH -acH +cFp abW abW abW @@ -109851,37 +114263,47 @@ abW abW abW abW -agk -agk -agk -agk -agk -agk -agm -agm -aiy -agk -adP -adP -adP -adP -adP +abW +afd +dlU +dmo +dmM +alm +alm +dnX +alm +alm +doH +doX +dpk +alm +dpM +alm +alm +dqO +alm +doD +dsa +alm +avI +dtu +dtR +dtR +aAF azp -aAH -aBx aCU +aGV +aCY aEh aFJ -aGS -azp -aIY +aHT cHp +aIX +aIX aIY -aIY -aIY -aKp +azp aOF -aPZ +aPW aQR cHY dhr @@ -110090,56 +114512,56 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -acH +cFp abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -acH -acH -agk -ahP -agk -agl -cVQ -agl +abW +abW +abW +abW +abW +afd +ahH +dmr +ahH +ahH +ahH +agX +agX +dou +agX +doY +dpl +dpB +ahH +dqj aix -ajp -cVZ -agk -adP -adP -adP -adP -adP -azp +ahH +agX +drG +dsb +agX +avI +dtv +dtT +duu aAI -aBy +azp aCV +aGV +aCY aEi -aFK -aGT +dwX aHT -aIV aIX aIX -aIY +aIX aMM -aKp -aOG -aQf -cGo +aNK +aOB +aPW +aQR cHY dhs dhA @@ -110347,56 +114769,56 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW abW abW -abW -abW -acH -acH -acH -acH -acH -acH -acH -acH -agk -alq -akj +afd +dlV +dmr +ahH +agX +agX +agX +dmN +dmN +agX +agX +agX aml -aiy -agl -cVT -agk -agk -agk -adP -adP -adP -adP -adP +ahH +ahH +ahH +agX +agX +dmN +dsc +agX +avI +avI +avI +avI +avI azp -aAJ -aBz aCW +aBz aEj -aFL aGU -aHU +aGU aIW -aIW -aIW -aLM +dxN +dyh +dyh aMN -aKp -aOB -aPZ -aQR +dyM +dyT +aQd +aQZ cHY dhs dhw @@ -110604,55 +115026,55 @@ aaQ abC abC abC -abC -abC -abC -abC -abC -adm +cXs +cXs +cXs +cXs +cXs abW abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -agk -alr -aml +afd +alm +dmt +agX +dmN +dmN +agX +dmN +dmN +dmN +dmN +dmN anc cVR -ajp -aki -agl -afE -afE -afE -afH -afH -awV -afE -cEF +aml +agX +dmN +dmN +dmN +dsd +agX +dlX +afd +adP +adP +adP +azp aAK -aBA -aCX +dvX aCY aFM aGV -aHT -aIX -aIX -cGl -aLN +azp +dxO +aDc +aDc aMO -aKp +azp aOH -aPZ +aPW aRd cHY dhs @@ -110861,55 +115283,55 @@ aaQ aaQ aaa aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW abW abW -abW -acH -acH -acH -acH -acH -acH -acH -abW -agk +afd +dlW +dmu +dmN +agX +agX +agX +agX +agX +agX +dmN als -als -aml -aml -agm -afD -afD -afH -asr -atx +dpC +dpN +dmN +dmN +dmN +dre +agX +dre auz +alm +afd +adP +afE afE -deN -axS azp aAL -aBB -aCY aEk aCY +dwB aCY aHV -aIY -aIY -aIY -aIY -aIY -aNK +aDc +aDc +aDc +aDc +aNL aOB -aPZ +aPW aQS cHY dhs @@ -111118,53 +115540,53 @@ abt abF aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -abW -acH -acH -abW -abW -acH -acH -acH -acH +afd +alm +dmv +dmO +agX +agX +dnY +agX +agX +agX afD -afD -afD -afD -aiz -ajr -afD -acH +dmN +dmN +als +dmN +dmN +dmN +agX +agX +agX +dmN +dlX +afd afH -dfq -aty -dfq -afE -deN -dfd cEG +duR +azp aAK -aBC -aCZ +dvY aCY aFN aGV -aHT -aIX -aIX -aIX -aLO -aIY -aNL +azp +dxP +aDc +aDc +dyA +azp aOI aQg aRe @@ -111375,51 +115797,51 @@ abu abG aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -abW -abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -acH -acH -acH -abW -abW -acH -afH -ass -dfq -cKZ -dfz -awW -cLe -cEG +afd +dlX +alm +dmN +agX +agX +agX +agX +agX +agX +dmN +dmN +dmN +dmN +dqk +dqz +dlX +drf +agX +drf +dlW +dlX +afd +afE +dfd aAJ -aBD -aDa -aEl -aFO +azp aDa +aGV +aCY +dwC aHW aIZ -aIZ -aIZ -aLP +dxQ +dxQ +dxQ aMP aNM aOJ @@ -111632,55 +116054,55 @@ abt abH aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -adP -adP -adP +afd +afd +dlX +dlW +dlX +dmN +dlW +alm +dox +dmN +dmN +dpm +dpD +dpO +dlW +dlW +dlX +dlX +alm +dlX +dlX +afd +afd afH -adP -adP -adP -adP -adP -deO -deO -deO -deO -deO -deO -afH -afH -afH -afH -afH -cLd dfd +dgl azp -aAM -aBE aDb aEm -aFP +aCY aGW +dwY aHT -cGl aIX aIX -aLQ -aMQ -aKp +aIX +aDc +aNK aOK -aPZ +aPW cMh cHY dht @@ -111890,54 +116312,54 @@ abI aaQ aaQ aaQ -abC -abC -abC -abC -abC -abC -abC -abC -abC -afi -afE -afi -afc -afc -aTz -adP -afE -afH +cXs +cXs +cXs +cXs +cXs +cXs +cXs +adm +abW +afd +afd +dlX +dlX +dlX +dlX +dlX +dlW +doK alt -afE +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +dtw +dtU +duv afH -afH -deO -deO -deO -deO -adP -atz -aqf -cKF -deN -dfd azp -aAN -aBF aDc +dvZ +aCY aEn -aFQ -aGX +dwZ +aHT +aIX +aIX +aIX +dyB azp -azp -azp -cEG -azp -azp -aKp aOL -aPZ +aPW cMh cHY aSC @@ -112146,39 +116568,41 @@ abu abJ abX ack -act -acI -acI -acI -acI -acI -acI -acI -acI -acI -afj -afF -agn -ahd -ahQ -aiB -ahd -ahd -cKC -aBI -amm -cKI -anT +abX +dkG +dkG +dkG +dkG +dkG +dkG +dkG +dlr +abW +abW +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +adP +adP +afH +afH +afE +adP +adP +afE +afE +afH +afE +dtV afH -aqf afH -alw -afc -deQ -cKF -deN -deN -dfd azp azp azp @@ -112187,14 +116611,12 @@ azp azp azp azp -dgl -cLY -aNz -aPP -aMR -aKp +azp +azp +azp +azp aOM -aPZ +aPW cMh cIc aRW @@ -112411,7 +116833,7 @@ abC abC abC abC -abC +cCE abC afi afi @@ -112419,20 +116841,20 @@ afE afE afE adP -ajs -deN -deN -deN -aAT -aBI -aBI -aBI -apI -ahd +adP +adP +adP +adP +adP +adP +adP +afE +alx +deQ arx -ast -cKW -cKW +afa +afa +aQK avO cKU axU @@ -112573,7 +116995,7 @@ ccW ccW ceW clY -cna +cmJ cfv coy cJC @@ -112667,22 +117089,22 @@ aaa aaa aaa aaa -aaa -aaa -aaa +abC +cCE +abC afk afG ago ahe afH adP -afH -afH -cKD -cKF -deO -afH adP +adP +adP +adP +adP +adP +afH deN ahR aQK @@ -112830,7 +117252,7 @@ ccW cda ceW clZ -cna +cmJ cfv coy cJS @@ -112925,7 +117347,7 @@ abC abC abC abC -abC +cCE abC afi afi @@ -112936,9 +117358,9 @@ adP adP deO deO -afH deO deO +afE ahR aQK aiF @@ -113087,7 +117509,7 @@ cda cda ceW cma -cna +cmJ cnR coL cJC @@ -113181,11 +117603,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -afH +abC +cCE +afi +afi +afi afE ahf afH @@ -113438,13 +117860,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -afH -ahg +abC +cCF +dlE +dlY +dlE +aBI +dni afE adP adP @@ -113601,7 +118023,7 @@ cfA cfA cfA cmb -cna +cmJ cfv coy cJC @@ -113695,13 +118117,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +abC +abC +dlF +afi +afi afH -afH -ahh +dnj afE adP adP @@ -113858,7 +118280,7 @@ cfA cfA cfA cfA -cna +cmJ cfv coN cJC @@ -113958,7 +118380,7 @@ aaa aaa afH agq -ahi +dnk afE adP adP @@ -114220,7 +118642,7 @@ afH afH afH adP -afH +deO adP afH ahR @@ -114473,16 +118895,16 @@ aaa afI ags ahk -ahR +dnH aiC -ajt -akk -afa -aQK -aQK +dok +doz +ast +cKW +cKW and -ahe -cKN +dpP +dqm aNx aqC cEC @@ -114629,7 +119051,7 @@ cke ckM clp ckM -cnd +cmR cfv coP cJC @@ -115400,7 +119822,7 @@ cfA ccW ccW ceW -cna +cmJ cfv coP cJC @@ -118436,7 +122858,7 @@ bPp bLN bNn bOk -bSX +bPp bLN bUl bOk @@ -118695,7 +123117,7 @@ bNo bLP bPq bTz -bUm +bVW bLP bVt bVU @@ -118955,7 +123377,7 @@ deh deq dev bVu -bUm +bVW bDR cGJ bXE @@ -119082,17 +123504,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119209,7 +123631,7 @@ bNp bNp bSY bTA -bUn +bSY bUT bVv deE @@ -119339,17 +123761,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119467,9 +123889,9 @@ bQs bSZ bQs bUZ -bUU +bUq bVw -bUm +bVW bLN bLN bLN @@ -119596,17 +124018,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119724,7 +124146,7 @@ ddW deb dei bUo -bUU +bUq bVx bVV bWu @@ -119853,17 +124275,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119981,7 +124403,7 @@ ddX bPu dej def -bUU +bUq bVy bVW bOk @@ -120110,17 +124532,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120367,17 +124789,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120624,17 +125046,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120657,11 +125079,11 @@ akl asJ cED auO +aBi awe awe -ayo azK -ayp +dsX aBV aDs aEE @@ -120881,17 +125303,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120914,11 +125336,11 @@ arK api alD auP -awf -awf -ayp -ayw -ayp +dsW +dtx +dtW +dtX +duT aBW aDs aEF @@ -121138,17 +125560,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -121261,7 +125683,7 @@ bNs bOt ddN bGJ -ddT +bOn bOo ded del @@ -121395,17 +125817,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -121954,11 +126376,11 @@ aGi aCa aIt aJq -cLm +dxR aLc aMa aJq -cLm +dxR aPe aQj aQR @@ -122468,11 +126890,11 @@ aGk aHh ayx aJs -cLn +dxS aLe aMc aJs -cLn +dxS aPg aQj aQR @@ -123280,7 +127702,7 @@ aYJ baj baN baN -bbT +baQ baN cIz bej @@ -123484,11 +127906,11 @@ arP asN arP auZ -awf -awf -ayw -ayw -ayp +dsX +dtx +dtX +dtX +duT aCe aDs aEP @@ -123704,21 +128126,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -123741,16 +128163,16 @@ arQ asO arQ ava -awe -awe +aBi +dtz ayx azQ -ayp -aCf +dsW +dvv aDs aEQ -ayw -aCf +dwo +dvv arP arP abW @@ -123961,21 +128383,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124218,21 +128640,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124323,7 +128745,7 @@ bkA bmC bnS bpg -bpg +dze bsb btx buX @@ -124475,21 +128897,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124587,7 +129009,7 @@ bty bty bxA byD -bzA +dzf bAQ bBR bCV @@ -124732,21 +129154,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124837,7 +129259,7 @@ cKs bmD bjC cKt -bqy +bqv cKr btz buY @@ -124989,21 +129411,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125246,21 +129668,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125305,9 +129727,9 @@ aQt aRm aSf aSY -aTK -aTK -aTK +aTu +aTu +aTu aVg aKp aKp @@ -125350,7 +129772,7 @@ bkA cKs cKs bnT -bpe +dzc bqz cKr btB @@ -125503,21 +129925,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125607,7 +130029,7 @@ bjC bjC bjC bjC -bpd +dzd bqA bsc btC @@ -125760,21 +130182,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -126017,21 +130439,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -126274,21 +130696,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -129673,7 +134095,7 @@ aqV aqV aqV aSh -aTe +aql aaa aaa aaa @@ -132987,7 +137409,7 @@ amE ano aop apk -aZp +bSC aqh aqU aqU @@ -136910,7 +141332,7 @@ bgr bhm bhm bjG -bkG +dyY bkG blF bkG @@ -136921,7 +141343,7 @@ bsr bhm bhm bwF -bxR +bhm byM bzL bxR @@ -137177,10 +141599,10 @@ bqI aZQ aZQ aZQ -aZQ -aZQ +dyZ +bEq byN -bzM +dza bar bCe bDg @@ -141265,8 +145687,8 @@ aqU aqU aqU aYP -aZp -aZp +bSC +bSC bap baT bap @@ -149009,7 +153431,7 @@ bgF beH cPV bHI -bJj +dzb beH bLv bLv diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 5b0aa09dd2..23838ad992 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -388,12 +388,16 @@ /area/hallway/secondary/entry) "aaU" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; name = "External Airlock"; req_access_txt = "13" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aaV" = ( @@ -404,6 +408,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aaW" = ( @@ -414,6 +421,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aaX" = ( @@ -430,7 +440,6 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aaY" = ( -/obj/structure/fans/tiny, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -446,6 +455,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "abb" = ( @@ -474,6 +486,7 @@ /area/hallway/secondary/entry) "abe" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; name = "External Airlock"; req_access_txt = "13" }, @@ -486,6 +499,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "abf" = ( @@ -525,6 +541,8 @@ /area/maintenance/solars/starboard/fore) "abm" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/light/small{ @@ -538,6 +556,7 @@ "abn" = ( /obj/machinery/power/smes, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/line{ @@ -561,7 +580,6 @@ /area/maintenance/solars/starboard/fore) "abp" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -583,10 +601,11 @@ "abs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, @@ -596,6 +615,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -608,6 +629,8 @@ req_access_txt = "10" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -616,18 +639,24 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/fore) "abv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -636,7 +665,6 @@ /area/maintenance/solars/starboard/fore) "abw" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -669,12 +697,16 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Solar Access"; req_access_txt = "10; 13" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/fore) "abz" = ( @@ -684,7 +716,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/fore) @@ -704,9 +735,8 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -718,11 +748,9 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/camera{ @@ -752,8 +780,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Arrivals Shuttle - Fore Port"; @@ -768,7 +795,6 @@ "abF" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -798,8 +824,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -824,6 +849,8 @@ /area/construction/mining/aux_base) "abJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1055,6 +1082,8 @@ /area/construction/mining/aux_base) "ace" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1108,6 +1137,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/arrival) "acm" = ( @@ -1127,6 +1159,8 @@ "acp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1137,11 +1171,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "acq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -1150,9 +1186,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "acr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) @@ -1205,6 +1240,8 @@ "acx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side{ @@ -1324,12 +1361,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "acM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/yellow/side{ @@ -1338,10 +1377,11 @@ /area/construction/mining/aux_base) "acN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -1416,7 +1456,6 @@ /area/hallway/secondary/entry) "acZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -1450,6 +1489,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "add" = ( @@ -1459,11 +1501,12 @@ }, /area/construction/mining/aux_base) "ade" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -1522,6 +1565,8 @@ "adk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -1590,6 +1635,7 @@ dir = 8 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -1606,11 +1652,15 @@ "adv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/lightsout, /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -1622,11 +1672,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating, /area/construction/mining/aux_base) "adx" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating, @@ -1656,17 +1708,13 @@ /turf/open/floor/plating, /area/shuttle/auxillary_base) "adA" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "adB" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -1691,17 +1739,13 @@ }, /area/shuttle/syndicate) "adF" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "adG" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -1709,7 +1753,6 @@ "adH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -1719,9 +1762,8 @@ /area/hallway/secondary/entry) "adI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1729,15 +1771,13 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "adJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) "adK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ @@ -1788,6 +1828,8 @@ /area/construction/mining/aux_base) "adR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -1806,7 +1848,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -1879,7 +1920,6 @@ /area/shuttle/arrival) "aec" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -1900,6 +1940,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aee" = ( @@ -1913,11 +1956,12 @@ /area/construction/mining/aux_base) "aef" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/construction/mining/aux_base) @@ -1982,6 +2026,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aep" = ( @@ -2055,6 +2102,9 @@ name = "Arrival Shuttle Airlock"; req_access_txt = "0" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/shuttle/arrival) "aez" = ( @@ -2072,7 +2122,6 @@ }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/yellow/side{ @@ -2082,10 +2131,11 @@ /area/construction/mining/aux_base) "aeB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/yellow/side, @@ -2172,8 +2222,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -2204,8 +2253,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ @@ -2264,8 +2312,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -2276,6 +2323,8 @@ "aeS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2287,6 +2336,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aeT" = ( @@ -2325,6 +2377,8 @@ /area/maintenance/starboard/fore) "aeZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2334,6 +2388,8 @@ "afa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -2341,6 +2397,8 @@ "afb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -2419,6 +2477,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "afn" = ( @@ -2437,6 +2498,8 @@ /area/maintenance/starboard/fore) "afq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -2448,6 +2511,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "afs" = ( @@ -2517,7 +2583,6 @@ "afD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -2528,6 +2593,8 @@ "afE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2539,6 +2606,8 @@ "afF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -2552,6 +2621,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "afG" = ( @@ -2576,16 +2648,14 @@ /area/maintenance/starboard/fore) "afJ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/redyellow, /area/maintenance/starboard/fore) "afK" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -2629,7 +2699,6 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -2648,6 +2717,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afP" = ( @@ -2656,6 +2728,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afQ" = ( @@ -2665,6 +2740,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afR" = ( @@ -2678,6 +2756,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "afT" = ( @@ -2689,6 +2770,8 @@ "afU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -2745,7 +2828,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -2760,7 +2842,6 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -2789,7 +2870,6 @@ /area/hallway/secondary/entry) "agk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/arrival{ @@ -2808,10 +2888,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/item/device/radio/intercom{ name = "Station Intercom"; pixel_y = 26 @@ -2836,7 +2913,6 @@ /area/hallway/secondary/entry) "ago" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/arrival{ @@ -2856,6 +2932,7 @@ /area/hallway/secondary/entry) "agq" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -2877,6 +2954,8 @@ /area/hallway/secondary/entry) "agr" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -2897,10 +2976,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/arrival{ dir = 1 }, @@ -2937,7 +3013,6 @@ /area/hallway/secondary/entry) "agx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/arrival{ @@ -2968,6 +3043,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -3043,7 +3120,6 @@ /area/hallway/secondary/entry) "agL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/arrival, @@ -3083,7 +3159,6 @@ "agQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/arrival, @@ -3092,14 +3167,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/arrival, /area/hallway/secondary/entry) "agS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3115,7 +3191,6 @@ /area/hallway/secondary/entry) "agU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/arrival/corner{ @@ -3149,7 +3224,6 @@ /area/hallway/secondary/entry) "agZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/arrival/corner, @@ -3172,9 +3246,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/arrival, /area/hallway/secondary/entry) @@ -3184,7 +3257,6 @@ pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/arrival, @@ -3216,6 +3288,8 @@ "ahg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -3227,10 +3301,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) @@ -3276,7 +3347,6 @@ "aho" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -3319,6 +3389,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ahu" = ( @@ -3341,6 +3414,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/vacantoffice) "ahy" = ( @@ -3354,12 +3430,17 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "ahA" = ( @@ -3445,7 +3526,6 @@ /area/security/checkpoint/checkpoint2) "ahO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -3459,7 +3539,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -3473,18 +3552,19 @@ }, /obj/structure/barricade/wooden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "ahR" = ( /obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red, @@ -3492,7 +3572,6 @@ "ahS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/white, @@ -3503,7 +3582,6 @@ /area/maintenance/starboard/fore) "ahU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/white, @@ -3514,7 +3592,6 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -3523,7 +3600,6 @@ "ahW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -3534,6 +3610,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "ahX" = ( @@ -3543,9 +3622,8 @@ /area/maintenance/starboard/fore) "ahY" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red, /area/maintenance/starboard/fore) @@ -3647,6 +3725,8 @@ "aip" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3662,6 +3742,8 @@ /area/security/checkpoint/customs) "air" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/photocopier, @@ -3702,6 +3784,8 @@ /area/security/checkpoint/checkpoint2) "aiw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -3724,13 +3808,14 @@ /area/security/checkpoint/checkpoint2) "aiy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aiz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3742,6 +3827,8 @@ /area/maintenance/starboard/fore) "aiA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3754,6 +3841,8 @@ "aiB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3763,16 +3852,19 @@ /area/maintenance/starboard/fore) "aiC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aiD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -3994,9 +4086,8 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 8; @@ -4005,7 +4096,6 @@ /area/maintenance/port/fore) "aja" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -4020,9 +4110,8 @@ /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "aje" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) @@ -4034,7 +4123,6 @@ /area/security/vacantoffice) "ajg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/wood, @@ -4068,6 +4156,8 @@ /area/security/vacantoffice) "ajl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4075,6 +4165,7 @@ /area/maintenance/port/fore) "ajm" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -4082,9 +4173,8 @@ name = "Customs Desk APC"; pixel_x = -26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/blue/side{ dir = 8 @@ -4092,9 +4182,13 @@ /area/security/checkpoint/customs) "ajn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/holopad, @@ -4130,11 +4224,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/customs) "ajq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/blue/corner{ @@ -4172,7 +4268,6 @@ /area/hallway/secondary/entry) "ajw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner, @@ -4189,6 +4284,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "ajy" = ( @@ -4205,9 +4303,13 @@ /area/security/checkpoint/checkpoint2) "ajz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/holopad, @@ -4219,6 +4321,7 @@ /area/security/checkpoint/checkpoint2) "ajA" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -4226,9 +4329,8 @@ name = "Security Checkpoint APC"; pixel_x = 26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -4241,6 +4343,8 @@ /area/maintenance/starboard/fore) "ajC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -4416,6 +4520,7 @@ /area/crew_quarters/electronic_marketing_den) "akb" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -4425,17 +4530,17 @@ /area/maintenance/port/fore) "akc" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/maintenance/port/fore) "akd" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/air, @@ -4485,6 +4590,8 @@ "akm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4501,6 +4608,8 @@ /area/security/checkpoint/customs) "ako" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -4532,7 +4641,6 @@ /area/hallway/secondary/entry) "aks" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -4541,9 +4649,8 @@ /turf/open/floor/carpet, /area/hallway/secondary/entry) "aku" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/hallway/secondary/entry) @@ -4555,7 +4662,6 @@ /area/hallway/secondary/entry) "akw" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4572,7 +4678,6 @@ /area/hallway/secondary/entry) "aky" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/corner, @@ -4596,6 +4701,8 @@ /area/security/checkpoint/checkpoint2) "akB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -4628,6 +4735,7 @@ /area/maintenance/starboard/fore) "akF" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -4670,7 +4778,6 @@ /area/shuttle/syndicate) "akL" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -4742,7 +4849,6 @@ /area/crew_quarters/electronic_marketing_den) "akX" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/wood{ @@ -4751,7 +4857,6 @@ /area/crew_quarters/electronic_marketing_den) "akZ" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/wood{ @@ -4767,24 +4872,23 @@ /obj/structure/frame/computer, /obj/item/stack/cable_coil/white, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "alc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/maintenance/port/fore) "ald" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -4810,16 +4914,19 @@ /area/security/vacantoffice) "alh" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/wood, /area/security/vacantoffice) "ali" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4834,6 +4941,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4848,6 +4957,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4856,17 +4967,23 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/vacantoffice) "all" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -4890,9 +5007,13 @@ /area/security/checkpoint/customs) "aln" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/office/dark{ @@ -4902,6 +5023,8 @@ /area/security/checkpoint/customs) "alo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -4915,9 +5038,13 @@ "alp" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor/southright{ @@ -4951,9 +5078,13 @@ "alu" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -4963,6 +5094,8 @@ /area/security/checkpoint/checkpoint2) "alv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -4980,9 +5113,13 @@ /area/security/checkpoint/checkpoint2) "alw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/office/dark{ @@ -4993,8 +5130,7 @@ "alx" = ( /obj/machinery/computer/security, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; @@ -5011,6 +5147,8 @@ "alz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -5046,6 +5184,8 @@ /area/maintenance/starboard/fore) "alE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/stool/bar, @@ -5097,7 +5237,6 @@ /area/shuttle/syndicate) "alM" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -5129,19 +5268,13 @@ }, /area/engine/atmospherics_engine) "alQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmospherics_engine) "alR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -5151,9 +5284,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/electronic_marketing_den) "alT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -5195,15 +5327,13 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "alZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) @@ -5229,6 +5359,8 @@ /area/maintenance/port/fore) "amd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5250,11 +5382,12 @@ /area/security/vacantoffice) "amh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/security/vacantoffice) @@ -5270,6 +5403,8 @@ "amj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5286,12 +5421,11 @@ /area/security/checkpoint/customs) "aml" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/customs) "amm" = ( @@ -5316,14 +5450,12 @@ /area/hallway/secondary/entry) "amp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) "amq" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5338,15 +5470,13 @@ /turf/open/floor/carpet, /area/hallway/secondary/entry) "ams" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/hallway/secondary/entry) "amt" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -5366,12 +5496,11 @@ /area/security/checkpoint/checkpoint2) "amw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "amx" = ( @@ -5386,6 +5515,8 @@ "amy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -5410,6 +5541,8 @@ /area/maintenance/starboard/fore) "amD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -5459,12 +5592,11 @@ id = "garbage"; verted = -1 }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "plating_warn_end" +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating, /area/maintenance/disposal) "amJ" = ( /obj/machinery/conveyor{ @@ -5481,9 +5613,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/maintenance/disposal) "amK" = ( /obj/machinery/conveyor{ @@ -5497,9 +5630,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/maintenance/disposal) "amL" = ( /obj/machinery/mass_driver{ @@ -5512,9 +5646,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/maintenance/disposal) "amM" = ( /obj/machinery/door/poddoor{ @@ -5721,10 +5856,11 @@ /area/crew_quarters/electronic_marketing_den) "ang" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/wood, @@ -5734,16 +5870,19 @@ /obj/item/weapon/folder/red, /obj/item/weapon/pen, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "ani" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5751,12 +5890,16 @@ /area/crew_quarters/electronic_marketing_den) "anj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "ank" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/wood{ @@ -5773,6 +5916,8 @@ /area/crew_quarters/electronic_marketing_den) "anm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5870,6 +6015,8 @@ /area/security/checkpoint/customs) "any" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5936,6 +6083,8 @@ /area/security/checkpoint/checkpoint2) "anG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5953,16 +6102,19 @@ /area/security/checkpoint/checkpoint2) "anI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/starboard/fore) "anJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5973,6 +6125,8 @@ /area/maintenance/starboard/fore) "anK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -5985,6 +6139,8 @@ /area/maintenance/starboard/fore) "anL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5994,6 +6150,8 @@ /area/maintenance/starboard/fore) "anM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6005,11 +6163,12 @@ /area/maintenance/starboard/fore) "anN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -6017,6 +6176,8 @@ /area/maintenance/starboard/fore) "anO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -6033,10 +6194,7 @@ "anQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/brown{ icon_state = "brown"; dir = 8 @@ -6051,6 +6209,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/disposal) "anS" = ( @@ -6118,7 +6279,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -6191,6 +6351,8 @@ /area/crew_quarters/electronic_marketing_den) "aoe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/wood{ @@ -6252,6 +6414,8 @@ "aom" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -6259,6 +6423,8 @@ /area/maintenance/port/fore) "aon" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -6270,10 +6436,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/customs) "aoo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -6285,10 +6456,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "aop" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -6453,6 +6629,9 @@ /area/engine/atmospherics_engine) "aoI" = ( /obj/structure/sign/electricshock, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/closed/wall/r_wall, /area/engine/atmospherics_engine) "aoJ" = ( @@ -6466,6 +6645,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aoK" = ( @@ -6480,10 +6665,13 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aoN" = ( @@ -6493,12 +6681,17 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/barricade/wooden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/electronic_marketing_den) "aoO" = ( @@ -6512,6 +6705,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/electronic_marketing_den) "aoP" = ( @@ -6545,12 +6741,16 @@ /area/maintenance/port/fore) "aoU" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/port/fore) "aoV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -6558,6 +6758,8 @@ "aoW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -6566,6 +6768,8 @@ /area/maintenance/port/fore) "aoX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -6575,6 +6779,8 @@ "aoY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -6582,9 +6788,13 @@ "aoZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -6595,9 +6805,13 @@ /area/maintenance/port/fore) "apa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -6605,9 +6819,13 @@ "apb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -6675,8 +6893,7 @@ /area/hallway/secondary/entry) "apj" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -6691,6 +6908,8 @@ "apl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -6776,6 +6995,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/disposal) "apw" = ( @@ -6827,9 +7049,7 @@ }, /area/maintenance/disposal) "apA" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -6839,9 +7059,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "apC" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -6861,7 +7079,6 @@ /obj/item/clothing/glasses/meson/engine, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/bot, @@ -6883,13 +7100,12 @@ icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "apI" = ( @@ -6995,13 +7211,15 @@ /area/engine/atmospherics_engine) "apR" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 10 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8; + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "apS" = ( @@ -7029,6 +7247,8 @@ "apV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, @@ -7036,6 +7256,8 @@ "apW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -7044,21 +7266,29 @@ /area/maintenance/port/fore) "apX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/fore) "apY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port/fore) "apZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7069,16 +7299,19 @@ "aqa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/fore) "aqb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7089,6 +7322,8 @@ "aqc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7099,6 +7334,8 @@ "aqd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7111,6 +7348,8 @@ /area/maintenance/port/fore) "aqe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7121,9 +7360,13 @@ /area/maintenance/port/fore) "aqf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -7131,6 +7374,8 @@ /area/maintenance/port/fore) "aqg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7140,13 +7385,16 @@ /area/maintenance/port/fore) "aqh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -7213,7 +7461,6 @@ "aqp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -7256,6 +7503,8 @@ /area/maintenance/port/fore) "aqt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -7266,6 +7515,8 @@ /area/maintenance/port/fore) "aqu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7283,6 +7534,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7294,10 +7547,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "aqw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -7313,6 +7571,8 @@ /area/hallway/secondary/entry) "aqx" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -7355,7 +7615,6 @@ /area/hallway/secondary/entry) "aqB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -7394,6 +7653,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "aqF" = ( @@ -7408,9 +7670,13 @@ /area/maintenance/starboard/fore) "aqG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -7419,6 +7685,8 @@ "aqH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7429,13 +7697,16 @@ "aqI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -7443,6 +7714,8 @@ "aqJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -7459,6 +7732,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "aqL" = ( @@ -7551,10 +7827,7 @@ dir = 8; id = "garbage" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/turf_decal/stripes/line, @@ -7626,9 +7899,8 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ara" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) @@ -7639,36 +7911,36 @@ d2 = 4; icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "arc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4; + filter_type = "n2" + }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "ard" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "are" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7677,41 +7949,44 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "arf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmospherics_engine) "arg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/circuit/green, /area/engine/atmospherics_engine) "arh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/caution{ icon_state = "caution"; dir = 8 @@ -7719,7 +7994,6 @@ /area/engine/atmospherics_engine) "ari" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7728,6 +8002,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "arj" = ( @@ -7745,15 +8022,15 @@ /area/engine/atmospherics_engine) "arl" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 10 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "arm" = ( @@ -7786,6 +8063,8 @@ /area/engine/atmospherics_engine) "arp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -7800,6 +8079,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "arr" = ( @@ -7811,6 +8093,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "ars" = ( @@ -7832,7 +8117,6 @@ /area/crew_quarters/toilet/auxiliary) "arw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -7844,6 +8128,8 @@ /area/hallway/secondary/entry) "arx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7863,12 +8149,10 @@ /area/hallway/secondary/entry) "arz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/secondary/entry) @@ -7913,6 +8197,8 @@ "arF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -7927,7 +8213,6 @@ "arG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -7943,10 +8228,11 @@ /area/maintenance/starboard/fore) "arI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment{ @@ -7957,6 +8243,8 @@ "arJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7972,6 +8260,8 @@ "arK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7985,6 +8275,8 @@ /area/maintenance/starboard/fore) "arL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7999,6 +8291,8 @@ /area/maintenance/starboard/fore) "arM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8012,6 +8306,8 @@ "arN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8024,10 +8320,11 @@ /area/maintenance/starboard/fore) "arO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -8040,6 +8337,8 @@ "arP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8055,9 +8354,13 @@ "arQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8070,6 +8373,8 @@ /area/maintenance/starboard/fore) "arR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8095,11 +8400,16 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/disposal) "arT" = ( @@ -8111,6 +8421,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -8124,6 +8436,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -8136,6 +8450,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -8152,6 +8468,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown, @@ -8164,6 +8482,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/splatter, @@ -8174,11 +8494,12 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/splatter, @@ -8196,6 +8517,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/brown{ @@ -8212,7 +8534,6 @@ /area/space) "asb" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - icon_state = "intact"; dir = 4 }, /obj/structure/lattice/catwalk, @@ -8220,89 +8541,85 @@ /area/space) "asc" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - icon_state = "intact"; dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmospherics_engine) "asd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ase" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Cooling to Unfiltered"; + on = 1 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "asf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "asg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ash" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/machinery/light, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "asi" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "asj" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ask" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/sign/electricshock{ pixel_y = -32 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmospherics_engine) "asl" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/circuit/green, /area/engine/atmospherics_engine) "asm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -8311,54 +8628,49 @@ }, /area/engine/atmospherics_engine) "asn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/sign/nosmoking_2{ pixel_y = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aso" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/intercom{ name = "Station Intercom"; pixel_y = -26 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "asp" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "asq" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "asr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ass" = ( @@ -8459,6 +8771,8 @@ /area/maintenance/port/fore) "asE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8511,6 +8825,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/item/clothing/under/maid, @@ -8603,11 +8918,16 @@ name = "Auxiliary Restroom" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "asR" = ( @@ -8633,6 +8953,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "asT" = ( @@ -8643,6 +8966,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "asU" = ( @@ -8654,6 +8980,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "asV" = ( @@ -8675,6 +9004,8 @@ "asX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -8685,11 +9016,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "asY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/closed/wall, @@ -8708,7 +9041,6 @@ /area/quartermaster/storage) "atb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/closed/wall, @@ -8719,6 +9051,8 @@ "atd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -8730,6 +9064,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "ate" = ( @@ -8746,7 +9083,6 @@ /area/space) "atg" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - icon_state = "intact"; dir = 4 }, /obj/structure/lattice, @@ -8802,25 +9138,24 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ato" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "atp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8; - icon_state = "manifold"; name = "scrubbers pipe" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "atq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -8833,8 +9168,7 @@ "atr" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating, @@ -8844,7 +9178,8 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8; frequency = 1441; - id = "n2_in" + id = "n2_in"; + volume_rate = 200 }, /turf/open/space, /area/engine/atmospherics_engine) @@ -8856,6 +9191,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/blobstart, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -8876,9 +9213,8 @@ /turf/open/floor/plasteel/redblue, /area/maintenance/port/fore) "atx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/redblue/redside{ icon_state = "redblue"; @@ -8888,9 +9224,8 @@ "aty" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/melee/skateboard, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/cafeteria, /area/maintenance/port/fore) @@ -8905,9 +9240,8 @@ /turf/open/floor/wood, /area/maintenance/port/fore) "atB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/maintenance/port/fore) @@ -8935,6 +9269,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "atF" = ( @@ -8946,10 +9283,11 @@ /area/maintenance/port/fore) "atG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -8972,7 +9310,6 @@ pixel_y = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/item/weapon/grenade/chem_grenade/cleaner, @@ -8992,6 +9329,8 @@ "atJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -9011,9 +9350,8 @@ "atL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/janitor, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ icon_state = "whitegreen"; @@ -9091,6 +9429,8 @@ /area/crew_quarters/toilet/auxiliary) "atU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -9105,15 +9445,13 @@ }, /area/hallway/primary/fore) "atW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/fore) "atX" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -9142,6 +9480,8 @@ "aub" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -9299,7 +9639,6 @@ /area/solar/port/fore) "auv" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - icon_state = "intact"; dir = 4 }, /turf/open/space, @@ -9318,22 +9657,21 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "auy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "auz" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "auA" = ( @@ -9381,23 +9719,20 @@ "auD" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating, /area/engine/supermatter) "auE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine, /area/engine/supermatter) "auF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -9452,7 +9787,9 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "auK" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Filter to Gas" + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "auL" = ( @@ -9479,6 +9816,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -9518,7 +9857,6 @@ /area/maintenance/port/fore) "auV" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/wood{ @@ -9540,6 +9878,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -9564,10 +9904,7 @@ /turf/open/floor/plasteel/neutral, /area/janitor) "avb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitegreen/side{ dir = 8 }, @@ -9575,6 +9912,8 @@ "avc" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -9624,6 +9963,7 @@ /area/crew_quarters/toilet/auxiliary) "avl" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/decal/cleanable/dirt, @@ -9640,6 +9980,8 @@ pixel_x = 24 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -9659,6 +10001,8 @@ /area/hallway/primary/fore) "avo" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -9668,10 +10012,11 @@ /area/hallway/primary/fore) "avp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/junction{ @@ -9685,6 +10030,8 @@ "avq" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -9700,15 +10047,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "avr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -9727,10 +10078,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -9788,6 +10140,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "avz" = ( @@ -9830,7 +10185,6 @@ /area/quartermaster/storage) "avD" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -9885,6 +10239,7 @@ /area/quartermaster/storage) "avK" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -9946,7 +10301,6 @@ "avR" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /obj/structure/window/reinforced/highpressure/fulltile, @@ -9980,7 +10334,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -9989,11 +10342,10 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "avU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) @@ -10072,6 +10424,8 @@ "awf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -10084,6 +10438,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -10123,6 +10479,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "awl" = ( @@ -10139,6 +10498,8 @@ /area/hallway/primary/fore) "awn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -10160,6 +10521,8 @@ "awp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10184,6 +10547,8 @@ "aws" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10192,7 +10557,6 @@ "awt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -10245,6 +10609,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "awz" = ( @@ -10267,7 +10634,6 @@ "awB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/corner{ @@ -10323,6 +10689,7 @@ "awK" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -10391,7 +10758,6 @@ /area/engine/atmospherics_engine) "awS" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -10400,8 +10766,8 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "awT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "awU" = ( @@ -10482,6 +10848,8 @@ "axb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10501,11 +10869,16 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/janitor) "axe" = ( @@ -10516,6 +10889,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/janitor) "axf" = ( @@ -10533,6 +10909,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/janitor) "axg" = ( @@ -10585,6 +10964,8 @@ /area/crew_quarters/toilet/auxiliary) "axl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -10598,6 +10979,8 @@ /area/hallway/primary/fore) "axn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -10605,18 +10988,18 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "axo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/quartermaster/warehouse) "axp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -10625,7 +11008,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/cargo_technician, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -10646,9 +11028,8 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/warehouse) "axt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/warehouse) @@ -10685,16 +11066,14 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "axy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "axz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -10730,6 +11109,7 @@ "axD" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -10738,9 +11118,11 @@ /area/quartermaster/storage) "axE" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -10750,9 +11132,11 @@ /area/quartermaster/storage) "axF" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -10801,14 +11185,13 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "axO" = ( @@ -10818,8 +11201,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10828,7 +11210,6 @@ /area/engine/atmospherics_engine) "axP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, @@ -10851,7 +11232,6 @@ /area/engine/supermatter) "axS" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /obj/machinery/meter, @@ -10880,18 +11260,18 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "axW" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; icon_state = "pump_map"; - name = "Nitrogen to Loop" + name = "Atmos to Gas" }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10900,8 +11280,7 @@ /area/engine/atmospherics_engine) "axX" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -10914,8 +11293,7 @@ "axY" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating, @@ -10923,7 +11301,6 @@ "axZ" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/space, @@ -11008,6 +11385,8 @@ /area/hydroponics/garden/abandoned) "ayj" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -11019,10 +11398,11 @@ "ayk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -11033,6 +11413,8 @@ "ayl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11045,6 +11427,8 @@ /area/maintenance/port/fore) "aym" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11058,6 +11442,8 @@ "ayn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11070,6 +11456,8 @@ /area/maintenance/port/fore) "ayo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11082,9 +11470,13 @@ /area/maintenance/port/fore) "ayp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11099,6 +11491,8 @@ "ayq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -11113,9 +11507,13 @@ "ayr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11217,7 +11615,6 @@ /area/crew_quarters/toilet/auxiliary) "ayA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -11227,6 +11624,8 @@ "ayB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -11243,6 +11642,8 @@ /area/quartermaster/warehouse) "ayE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -11378,6 +11779,8 @@ id = "cargounload" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor{ @@ -11409,7 +11812,7 @@ /turf/open/floor/plasteel, /area/shuttle/supply) "aza" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ filter_type = "n2"; name = "nitrogen filter" }, @@ -11481,25 +11884,23 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "azj" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "azk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "azl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/scrubber, @@ -11527,10 +11928,11 @@ /area/hydroponics/garden/abandoned) "azp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment, @@ -11564,9 +11966,13 @@ /area/maintenance/port/fore) "azu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -11577,6 +11983,8 @@ "azv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11587,6 +11995,8 @@ /area/maintenance/port/fore) "azw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -11595,6 +12005,8 @@ "azx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11608,6 +12020,8 @@ "azy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11624,6 +12038,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11632,10 +12048,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "azA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11648,12 +12069,16 @@ /area/hallway/primary/fore) "azB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -11661,7 +12086,6 @@ /area/hallway/primary/fore) "azC" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -11671,10 +12095,11 @@ "azD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment{ @@ -11687,6 +12112,8 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -11702,11 +12129,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "azF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11725,13 +12157,16 @@ "azG" = ( /obj/effect/decal/cleanable/oil, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -11743,13 +12178,16 @@ "azH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -11760,6 +12198,8 @@ "azI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11773,6 +12213,8 @@ "azJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -11780,6 +12222,8 @@ /area/quartermaster/warehouse) "azK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -11789,6 +12233,8 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/spawner/lootdrop/maintenance{ @@ -11801,6 +12247,7 @@ "azM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -11815,7 +12262,6 @@ /area/quartermaster/warehouse) "azN" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/navbeacon{ @@ -11835,7 +12281,6 @@ /area/quartermaster/storage) "azP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -11862,21 +12307,24 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "azT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "azU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "Supply Dock Airlock"; req_access_txt = "31" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "azV" = ( @@ -11888,16 +12336,22 @@ /area/quartermaster/storage) "azW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; name = "Supply Dock Airlock"; req_access_txt = "31" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "azX" = ( @@ -11940,14 +12394,13 @@ "aAc" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAd" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, /area/engine/supermatter) "aAe" = ( @@ -11964,25 +12417,23 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "aAh" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAi" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/pump, @@ -12013,10 +12464,7 @@ /turf/open/floor/plasteel, /area/hydroponics/garden/abandoned) "aAl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics/garden/abandoned) "aAm" = ( @@ -12034,6 +12482,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12086,6 +12536,8 @@ /area/hallway/secondary/service) "aAw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -12097,6 +12549,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/service) "aAx" = ( @@ -12105,7 +12560,6 @@ "aAy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -12134,6 +12588,8 @@ "aAC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12142,7 +12598,6 @@ "aAD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/brown, @@ -12150,7 +12605,6 @@ "aAE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment, @@ -12296,7 +12750,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -12313,8 +12766,8 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAW" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/green/visible, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "aAX" = ( @@ -12323,19 +12776,15 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAY" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12344,6 +12793,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aAZ" = ( @@ -12356,18 +12808,15 @@ pixel_x = 32; pixel_y = 32 }, -/obj/machinery/atmospherics/components/trinary/filter{ - density = 0; - dir = 8; - req_access = "0" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBa" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12382,6 +12831,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBb" = ( @@ -12401,7 +12851,6 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12415,12 +12864,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBd" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12437,10 +12884,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/supermatter) "aBe" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/machinery/meter, /obj/structure/cable{ d1 = 4; @@ -12450,10 +12899,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12463,12 +12912,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -12488,19 +12935,26 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aBh" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "aBi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -12515,6 +12969,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable, @@ -12524,12 +12979,16 @@ "aBk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics/garden/abandoned) "aBl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, @@ -12537,6 +12996,8 @@ "aBm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12544,6 +13005,8 @@ /area/hydroponics/garden/abandoned) "aBn" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/hydrofloor, @@ -12551,6 +13014,8 @@ "aBo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12573,9 +13038,8 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aBr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) @@ -12611,11 +13075,12 @@ /area/hallway/secondary/service) "aBv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -12644,6 +13109,7 @@ dir = 1 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ @@ -12656,10 +13122,7 @@ name = "sink"; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ c_tag = "Bar Backroom"; dir = 2; @@ -12767,6 +13230,7 @@ "aBJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -12781,9 +13245,13 @@ /area/hallway/primary/fore) "aBK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -12810,6 +13278,8 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/mining{ @@ -12820,6 +13290,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "aBP" = ( @@ -12838,12 +13311,16 @@ /area/quartermaster/storage) "aBS" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "Supply Dock Airlock"; req_access_txt = "31" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aBT" = ( @@ -12907,7 +13384,6 @@ }, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel, @@ -12929,7 +13405,6 @@ pixel_y = -28 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/corner{ @@ -12946,14 +13421,12 @@ /area/engine/atmospherics_engine) "aCg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "aCh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/yellow, @@ -12970,14 +13443,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "aCk" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12992,10 +13464,11 @@ icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/yellow, @@ -13003,6 +13476,8 @@ "aCm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/corner, @@ -13082,6 +13557,8 @@ "aCv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -13106,6 +13583,8 @@ /area/hydroponics/garden/abandoned) "aCy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -13137,9 +13616,8 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aCC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) @@ -13168,6 +13646,8 @@ /area/hallway/secondary/service) "aCG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -13218,6 +13698,8 @@ /area/crew_quarters/bar) "aCJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -13293,9 +13775,8 @@ }, /area/crew_quarters/bar) "aCQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -13364,6 +13845,8 @@ /area/quartermaster/sorting) "aCX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -13594,6 +14077,8 @@ id = "cargoload" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -13629,6 +14114,8 @@ /area/security/prison) "aDo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/item/weapon/cultivator, @@ -13643,9 +14130,13 @@ pixel_y = 28 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -13661,6 +14152,8 @@ /area/security/prison) "aDq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/reagent_containers/glass/bucket, @@ -13700,6 +14193,7 @@ "aDt" = ( /obj/machinery/power/smes, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/light/small{ @@ -13712,6 +14206,8 @@ /area/maintenance/solars/port/fore) "aDu" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/sign/directions/engineering{ @@ -13790,6 +14286,8 @@ dir = 10 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault, @@ -13802,6 +14300,7 @@ pixel_y = 32 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/vault, @@ -13819,10 +14318,11 @@ "aDE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -13830,6 +14330,8 @@ /area/engine/atmospherics_engine) "aDF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13844,14 +14346,15 @@ }, /obj/machinery/light, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -13862,6 +14365,8 @@ pixel_y = -24 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13872,6 +14377,8 @@ /area/engine/atmospherics_engine) "aDI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13885,9 +14392,13 @@ /area/engine/atmospherics_engine) "aDJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13897,10 +14408,11 @@ /area/engine/atmospherics_engine) "aDK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/corner, @@ -13908,6 +14420,8 @@ /area/engine/atmospherics_engine) "aDL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -13921,6 +14435,8 @@ /area/engine/atmospherics_engine) "aDM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/electricshock{ @@ -13933,9 +14449,13 @@ /area/engine/atmospherics_engine) "aDN" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13979,6 +14499,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hydroponics/garden/abandoned) "aDS" = ( @@ -13988,17 +14511,24 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/barricade/wooden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hydroponics/garden/abandoned) "aDT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14022,13 +14552,16 @@ /area/hallway/secondary/service) "aDV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -14041,6 +14574,8 @@ "aDW" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -14056,10 +14591,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/bar) "aDX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14074,6 +14614,8 @@ /area/crew_quarters/bar) "aDY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14084,7 +14626,6 @@ "aDZ" = ( /obj/effect/landmark/start/bartender, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -14110,9 +14651,8 @@ /area/crew_quarters/bar) "aEe" = ( /obj/effect/landmark/start/bartender, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -14161,6 +14701,8 @@ /area/quartermaster/sorting) "aEm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14184,6 +14726,7 @@ /area/quartermaster/sorting) "aEp" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -14198,9 +14741,8 @@ }, /area/security/checkpoint/supply) "aEr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/supply) @@ -14225,6 +14767,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aEu" = ( @@ -14262,7 +14807,6 @@ "aEx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -14291,9 +14835,11 @@ /area/quartermaster/storage) "aEA" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -14302,6 +14848,7 @@ /area/quartermaster/storage) "aEB" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, @@ -14333,6 +14880,7 @@ /area/shuttle/supply) "aEG" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -14342,6 +14890,8 @@ "aEH" = ( /obj/machinery/seed_extractor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -14349,39 +14899,45 @@ /area/security/prison) "aEI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/security/prison) "aEJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/security/prison) "aEK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/security/prison) "aEL" = ( /obj/machinery/biogenerator, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -14389,6 +14945,7 @@ /area/security/prison) "aEM" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -14402,6 +14959,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Solar Access"; req_access_txt = "10"; req_one_access = null; @@ -14410,6 +14968,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/port/fore) "aEO" = ( @@ -14419,7 +14980,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -14444,7 +15004,6 @@ "aEQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -14456,14 +15015,17 @@ /area/maintenance/solars/port/fore) "aER" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -14481,15 +15043,19 @@ req_one_access_txt = "13; 24" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/port/fore) "aET" = ( @@ -14561,6 +15127,8 @@ icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -14571,7 +15139,6 @@ /area/maintenance/disposal/incinerator) "aEZ" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -14594,6 +15161,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/effect/decal/cleanable/oil, @@ -14620,6 +15188,8 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14631,6 +15201,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFd" = ( @@ -14645,6 +15218,8 @@ "aFf" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -14656,6 +15231,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFg" = ( @@ -14666,12 +15244,17 @@ "aFh" = ( /obj/structure/grille, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14681,6 +15264,8 @@ "aFi" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ @@ -14697,11 +15282,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFj" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/effect/decal/cleanable/dirt, @@ -14718,6 +15307,8 @@ /area/maintenance/port/fore) "aFl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14728,6 +15319,8 @@ "aFm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14739,13 +15332,16 @@ /area/maintenance/port/fore) "aFn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -14793,7 +15389,6 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -14802,15 +15397,16 @@ /area/hallway/secondary/service) "aFu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/loadingarea, /area/hallway/secondary/service) @@ -14823,9 +15419,8 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "aFx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) @@ -14872,7 +15467,6 @@ /area/crew_quarters/bar) "aFE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/camera{ @@ -14886,11 +15480,12 @@ /area/hallway/primary/fore) "aFF" = ( /obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -14916,17 +15511,17 @@ "aFI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/loadingarea, /area/quartermaster/sorting) "aFJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -14949,10 +15544,12 @@ /area/quartermaster/sorting) "aFM" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -14962,6 +15559,8 @@ "aFN" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red, @@ -14971,15 +15570,21 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/supply) "aFP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -14991,6 +15596,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -15002,15 +15608,13 @@ }, /area/quartermaster/storage) "aFS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "aFT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -15066,6 +15670,8 @@ /area/security/prison) "aGb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -15149,7 +15755,6 @@ /area/maintenance/disposal/incinerator) "aGl" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, @@ -15176,6 +15781,8 @@ name = "Mix to Turbine" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -15183,22 +15790,29 @@ /area/maintenance/disposal/incinerator) "aGq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aGr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15209,10 +15823,11 @@ /area/maintenance/disposal/incinerator) "aGs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/decal/cleanable/dirt, @@ -15227,6 +15842,8 @@ req_access_txt = "24" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15235,11 +15852,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aGu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15252,10 +15874,11 @@ /area/engine/atmospherics_engine) "aGv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -15276,7 +15899,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -15286,12 +15908,13 @@ /area/engine/atmospherics_engine) "aGz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -15315,6 +15938,8 @@ /area/engine/atmospherics_engine) "aGC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -15322,9 +15947,8 @@ dir = 8; pixel_x = -24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -15395,9 +16019,8 @@ /turf/open/floor/wood, /area/hallway/secondary/service) "aGM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/hallway/secondary/service) @@ -15428,10 +16051,11 @@ /area/hallway/secondary/service) "aGQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -15546,9 +16170,8 @@ }, /area/quartermaster/sorting) "aHe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/brown{ icon_state = "brown"; @@ -15568,10 +16191,11 @@ /area/quartermaster/sorting) "aHg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/brown{ @@ -15582,7 +16206,6 @@ "aHh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/machinery/conveyor_switch/oneway{ @@ -15609,11 +16232,12 @@ /area/security/checkpoint/supply) "aHk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, @@ -15657,7 +16281,6 @@ /area/quartermaster/storage) "aHo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -15677,9 +16300,8 @@ /area/quartermaster/storage) "aHr" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) @@ -15705,6 +16327,7 @@ /area/security/prison) "aHv" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -15717,12 +16340,18 @@ /area/security/prison) "aHw" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass{ @@ -15732,6 +16361,7 @@ /area/security/prison) "aHx" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -15753,9 +16383,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel/black{ - icon_state = "black_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plasteel/black, /area/prison/execution_room) "aHA" = ( /obj/structure/lattice/catwalk, @@ -15768,7 +16399,6 @@ }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/portable_atmospherics/canister, @@ -15805,10 +16435,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/caution, /area/maintenance/disposal/incinerator) "aHG" = ( @@ -15863,9 +16490,8 @@ /area/engine/atmospherics_engine) "aHM" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -15905,11 +16531,12 @@ /area/engine/atmospherics_engine) "aHQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -15922,7 +16549,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -15946,6 +16572,8 @@ /area/engine/atmospherics_engine) "aHT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/computer/monitor{ @@ -15959,6 +16587,7 @@ /area/engine/atmospherics_engine) "aHU" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/smes{ @@ -15966,6 +16595,7 @@ }, /obj/machinery/light/small, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/circuit/green, @@ -15978,6 +16608,7 @@ charge = 5e+006 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/item/device/radio/intercom{ @@ -15991,6 +16622,8 @@ /area/crew_quarters/abandoned_gambling_den) "aHX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -16014,9 +16647,8 @@ /turf/open/floor/wood, /area/hallway/secondary/service) "aHZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/hallway/secondary/service) @@ -16048,7 +16680,6 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -16057,6 +16688,8 @@ /area/hallway/secondary/service) "aIe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/airalarm{ @@ -16083,7 +16716,6 @@ pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/redyellow, @@ -16108,6 +16740,8 @@ /area/quartermaster/sorting) "aIl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -16132,6 +16766,7 @@ /area/quartermaster/sorting) "aIn" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/door_timer{ @@ -16152,14 +16787,17 @@ /area/security/checkpoint/supply) "aIo" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/supply) @@ -16170,8 +16808,7 @@ pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Security Post - Cargo"; @@ -16203,15 +16840,12 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating, /area/quartermaster/storage) "aIt" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/supply) @@ -16221,9 +16855,7 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "aIv" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/supply) @@ -16232,10 +16864,7 @@ dir = 4 }, /obj/item/weapon/soap/nanotrasen, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "aIx" = ( @@ -16254,6 +16883,8 @@ /obj/structure/table, /obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -16261,6 +16892,8 @@ "aIz" = ( /obj/structure/easel, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/computer/security/telescreen/entertainment{ @@ -16276,16 +16909,19 @@ /area/security/prison) "aIA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/security/prison) "aIB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -16296,12 +16932,18 @@ /area/security/prison) "aIC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -16310,6 +16952,8 @@ /area/security/prison) "aID" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -16320,6 +16964,8 @@ /area/security/prison) "aIE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -16330,6 +16976,8 @@ "aIF" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/paper_bin, @@ -16344,6 +16992,8 @@ /obj/structure/table, /obj/item/weapon/clipboard, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/toy/figure/syndie, @@ -16356,9 +17006,13 @@ /area/security/prison) "aIH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -16368,6 +17022,8 @@ /area/security/prison) "aII" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/punching_bag, @@ -16422,9 +17078,8 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "aIO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -16508,6 +17163,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aIX" = ( @@ -16534,6 +17192,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aJb" = ( @@ -16544,6 +17205,8 @@ "aJc" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -16554,6 +17217,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aJd" = ( @@ -16568,7 +17234,6 @@ "aJf" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/space, @@ -16576,23 +17241,20 @@ "aJg" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/space, /area/space) "aJh" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/space, /area/space) "aJi" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/space, @@ -16619,6 +17281,7 @@ /area/crew_quarters/abandoned_gambling_den) "aJn" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -16653,6 +17316,8 @@ /area/hallway/secondary/service) "aJs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -16676,6 +17341,7 @@ /area/crew_quarters/bar/atrium) "aJv" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/light{ @@ -16710,10 +17376,7 @@ }, /area/crew_quarters/bar/atrium) "aJz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aJA" = ( @@ -16738,7 +17401,6 @@ "aJD" = ( /obj/structure/filingcabinet/filingcabinet, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/brown{ @@ -16771,6 +17433,7 @@ /area/quartermaster/sorting) "aJI" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -16779,12 +17442,18 @@ /area/security/checkpoint/supply) "aJJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -16796,6 +17465,7 @@ /area/security/checkpoint/supply) "aJK" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -16804,7 +17474,6 @@ /area/security/checkpoint/supply) "aJL" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -16838,7 +17507,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating{ @@ -16853,10 +17521,7 @@ /area/security/prison) "aJR" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -16891,6 +17556,8 @@ "aJV" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/paper, @@ -16917,16 +17584,14 @@ /area/security/prison) "aJY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/prison) "aJZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -16951,12 +17616,8 @@ id = "justicespark"; pixel_x = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/darkred/corner{ - icon_state = "darkredcorners"; dir = 1 }, /area/prison/execution_room) @@ -16973,12 +17634,8 @@ pixel_x = 26; req_access_txt = "63" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/darkred/corner{ - icon_state = "darkredcorners"; dir = 4 }, /area/prison/execution_room) @@ -17056,9 +17713,8 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aKk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -17154,7 +17810,6 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault, @@ -17171,8 +17826,7 @@ /area/engine/atmos) "aKu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 10 @@ -17180,16 +17834,14 @@ /area/engine/atmos) "aKv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "aKw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 6 @@ -17203,22 +17855,19 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault, /area/engine/atmos) "aKy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault, /area/engine/atmos) "aKz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -17227,19 +17876,19 @@ /area/engine/atmos) "aKA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "aKB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ @@ -17291,10 +17940,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/wood, @@ -17361,12 +18011,11 @@ /area/crew_quarters/bar/atrium) "aKU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/carpet, /area/crew_quarters/bar/atrium) "aKV" = ( @@ -17415,6 +18064,7 @@ "aLc" = ( /obj/structure/table, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/item/stack/wrapping_paper{ @@ -17438,6 +18088,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/cargo_technician, @@ -17445,25 +18097,29 @@ /area/quartermaster/sorting) "aLe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/sorting) "aLf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/brown{ icon_state = "brown"; @@ -17482,6 +18138,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -17490,6 +18147,8 @@ /area/security/checkpoint/supply) "aLi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/closet/secure_closet/brig{ @@ -17502,9 +18161,13 @@ /area/security/checkpoint/supply) "aLj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/side{ @@ -17532,7 +18195,6 @@ /area/quartermaster/storage) "aLn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line, @@ -17540,7 +18202,6 @@ /area/quartermaster/storage) "aLo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line, @@ -17559,6 +18220,8 @@ /area/quartermaster/storage) "aLr" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line, @@ -17566,6 +18229,8 @@ /area/quartermaster/storage) "aLs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light, @@ -17579,6 +18244,8 @@ /area/quartermaster/storage) "aLt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -17589,6 +18256,8 @@ "aLu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -17596,6 +18265,8 @@ /area/quartermaster/storage) "aLv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -17606,6 +18277,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -17621,7 +18293,6 @@ /area/security/prison) "aLy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -17647,7 +18318,6 @@ pixel_y = 5 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -17655,6 +18325,8 @@ "aLC" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/toy/cards/deck, @@ -17793,7 +18465,6 @@ /area/maintenance/disposal/incinerator) "aLT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -17892,7 +18563,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -17931,7 +18601,6 @@ /obj/item/weapon/electronics/firealarm, /obj/item/weapon/electronics/firealarm, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/caution{ @@ -17959,7 +18628,6 @@ "aMf" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -17968,6 +18636,8 @@ /area/engine/atmos) "aMg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -18068,6 +18738,8 @@ "aMs" = ( /obj/structure/chair/stool/bar, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18076,6 +18748,8 @@ "aMu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -18097,12 +18771,11 @@ /area/crew_quarters/theatre) "aMx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/redblue, /area/crew_quarters/theatre) "aMy" = ( @@ -18130,6 +18803,8 @@ /area/hallway/secondary/service) "aMB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -18153,6 +18828,8 @@ /area/crew_quarters/bar/atrium) "aMD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -18170,7 +18847,6 @@ /area/crew_quarters/bar/atrium) "aMG" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -18232,6 +18908,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aMO" = ( @@ -18248,6 +18927,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -18257,7 +18938,6 @@ /area/hallway/primary/fore) "aMQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/light{ @@ -18298,6 +18978,8 @@ /area/quartermaster/sorting) "aMT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -18320,7 +19002,6 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/deliveryChute{ - icon_state = "intake"; dir = 1 }, /turf/open/floor/plating, @@ -18333,15 +19014,21 @@ /area/security/checkpoint/supply) "aMX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/supply) "aMY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair{ @@ -18354,10 +19041,12 @@ /area/security/checkpoint/supply) "aMZ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -18387,6 +19076,8 @@ /area/quartermaster/storage) "aNd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -18413,6 +19104,7 @@ /area/quartermaster/qm) "aNh" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -18421,9 +19113,11 @@ /area/quartermaster/qm) "aNi" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -18432,6 +19126,7 @@ /area/quartermaster/qm) "aNj" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -18440,23 +19135,28 @@ /area/quartermaster/qm) "aNk" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, /area/quartermaster/qm) "aNl" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -18622,7 +19322,6 @@ "aNC" = ( /obj/structure/lattice/catwalk, /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 8 }, /obj/structure/disposalpipe/trunk{ @@ -18756,6 +19455,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -18796,8 +19497,7 @@ /area/engine/atmos) "aNT" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -18834,10 +19534,7 @@ /area/crew_quarters/abandoned_gambling_den) "aOa" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /mob/living/simple_animal/cockroach, /turf/open/floor/wood{ icon_state = "wood-broken5" @@ -18845,6 +19542,8 @@ /area/crew_quarters/abandoned_gambling_den) "aOb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18852,13 +19551,16 @@ /area/crew_quarters/abandoned_gambling_den) "aOc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/sortjunction{ @@ -18872,6 +19574,8 @@ /area/maintenance/port/fore) "aOd" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18888,19 +19592,21 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/theatre) "aOe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -18912,6 +19618,8 @@ "aOf" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18925,9 +19633,13 @@ /area/crew_quarters/theatre) "aOg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -18941,6 +19653,8 @@ /area/crew_quarters/theatre) "aOh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18956,6 +19670,8 @@ /area/crew_quarters/theatre) "aOi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18971,6 +19687,8 @@ "aOj" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -18983,10 +19701,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/theatre) "aOk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18998,12 +19721,18 @@ /area/hallway/secondary/service) "aOl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -19013,6 +19742,8 @@ "aOm" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -19025,10 +19756,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aOn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -19044,6 +19780,8 @@ /area/crew_quarters/bar/atrium) "aOo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -19053,14 +19791,14 @@ /area/crew_quarters/bar/atrium) "aOp" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/carpet, @@ -19081,10 +19819,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aOt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -19093,6 +19836,8 @@ "aOu" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_mining{ @@ -19104,6 +19849,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "aOv" = ( @@ -19127,6 +19875,7 @@ /area/security/checkpoint/supply) "aOy" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -19139,12 +19888,18 @@ "aOz" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_security{ @@ -19158,10 +19913,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aOA" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -19227,6 +19986,8 @@ /area/quartermaster/storage) "aOH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown{ @@ -19260,6 +20021,7 @@ /area/quartermaster/qm) "aOL" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -19267,10 +20029,7 @@ name = "Quartermaster's Office APC"; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/brown{ icon_state = "brown"; dir = 1 @@ -19295,8 +20054,7 @@ /obj/item/stack/packageWrap, /obj/item/weapon/hand_labeler, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ pixel_x = 26; @@ -19315,6 +20073,8 @@ "aOP" = ( /obj/structure/bed, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/bedsheet/qm, @@ -19374,6 +20134,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/prison) "aOW" = ( @@ -19389,11 +20152,16 @@ name = "Cell 2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/prison) "aOX" = ( @@ -19412,6 +20180,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/prison) "aOY" = ( @@ -19437,10 +20208,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/facid{ pixel_x = 7 }, -/obj/item/weapon/storage/backpack/duffelbag/sec{ - contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); - desc = "A large duffelbag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; - name = "duffelbag"; +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery{ pixel_y = 5 }, /turf/open/floor/plasteel/darkred/side{ @@ -19450,6 +20218,8 @@ /area/prison/execution_room) "aOZ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/table/reinforced, @@ -19485,7 +20255,6 @@ /obj/item/weapon/restraints/handcuffs, /obj/item/device/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/darkred/side{ @@ -19494,9 +20263,13 @@ /area/prison/execution_room) "aPa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19509,6 +20282,8 @@ /area/prison/execution_room) "aPb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/hidden, @@ -19521,14 +20296,17 @@ /area/prison/execution_room) "aPc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/closet/secure_closet/injection, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/darkred/side{ @@ -19555,7 +20333,6 @@ "aPf" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment{ @@ -19665,6 +20442,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, @@ -19674,6 +20453,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -19685,6 +20466,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -19748,16 +20531,11 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aPz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; - icon_state = "in"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -19780,6 +20558,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/abandoned_gambling_den) "aPD" = ( @@ -19802,6 +20583,8 @@ /area/crew_quarters/abandoned_gambling_den) "aPG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -19815,6 +20598,8 @@ "aPH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -19828,6 +20613,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/barricade/wooden, @@ -19837,17 +20624,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/abandoned_gambling_den) "aPJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -19856,7 +20649,6 @@ /area/maintenance/port/fore) "aPK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/closed/wall, @@ -19918,6 +20710,8 @@ /area/hallway/secondary/service) "aPR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/pod{ @@ -19963,14 +20757,12 @@ /area/crew_quarters/bar/atrium) "aPV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/carpet, /area/crew_quarters/bar/atrium) "aPW" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/carpet, @@ -19988,7 +20780,6 @@ "aPZ" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/redyellow, @@ -20010,10 +20801,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aQc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -20023,7 +20819,6 @@ /obj/structure/table/reinforced, /obj/machinery/computer/stockexchange, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/newscaster{ @@ -20040,7 +20835,6 @@ /obj/item/device/multitool, /obj/item/weapon/pen/red, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/brown{ @@ -20050,6 +20844,8 @@ /area/quartermaster/office) "aQf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -20063,7 +20859,6 @@ /area/quartermaster/office) "aQg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/brown{ @@ -20109,6 +20904,7 @@ pixel_y = 28 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/brown{ @@ -20124,6 +20920,8 @@ /area/quartermaster/office) "aQl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown{ @@ -20134,8 +20932,7 @@ "aQm" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -20147,10 +20944,11 @@ /area/quartermaster/office) "aQn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -20213,10 +21011,11 @@ /area/quartermaster/storage) "aQu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -20274,6 +21073,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -20322,11 +21123,12 @@ /area/quartermaster/qm) "aQF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/qm) @@ -20346,19 +21148,13 @@ }, /area/quartermaster/qm) "aQH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitered/side{ dir = 8 }, /area/security/prison) "aQI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whitered/side{ dir = 4 }, @@ -20389,10 +21185,7 @@ specialfunctions = 4 }, /obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 3"; dir = 2; @@ -20414,6 +21207,8 @@ /area/security/prison) "aQN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -20432,10 +21227,7 @@ specialfunctions = 4 }, /obj/item/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 2"; dir = 2; @@ -20467,10 +21259,7 @@ /obj/structure/chair/stool, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 1"; dir = 2; @@ -20489,7 +21278,6 @@ /obj/item/device/electropack, /obj/item/device/assembly/signaler, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/clothing/head/helmet/sec, @@ -20499,6 +21287,8 @@ /area/prison/execution_room) "aQS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/office/dark{ @@ -20511,7 +21301,6 @@ /area/prison/execution_room) "aQT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -20519,9 +21308,8 @@ }, /area/prison/execution_room) "aQU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/open/floor/plasteel/vault{ @@ -20530,6 +21318,8 @@ /area/prison/execution_room) "aQV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkred/side{ @@ -20552,8 +21342,7 @@ opened = 1 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/sign/nanotrasen{ pixel_x = 32 @@ -20581,9 +21370,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/security/prison) "aQZ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, @@ -20606,8 +21396,7 @@ "aRb" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -20616,31 +21405,27 @@ /area/engine/atmos) "aRc" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aRd" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aRe" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution, /area/engine/atmos) "aRf" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/airalarm{ dir = 1; @@ -20655,15 +21440,13 @@ /area/engine/atmos) "aRg" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/caution, /area/engine/atmos) "aRh" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -20671,18 +21454,18 @@ /area/engine/atmos) "aRi" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aRj" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -20799,6 +21582,8 @@ /area/crew_quarters/theatre) "aRA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -20820,9 +21605,8 @@ }, /area/crew_quarters/bar/atrium) "aRC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/carpet, /area/crew_quarters/bar/atrium) @@ -20860,6 +21644,8 @@ /area/crew_quarters/bar/atrium) "aRJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ @@ -20876,7 +21662,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -20912,10 +21697,11 @@ "aRO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -20925,10 +21711,11 @@ /area/quartermaster/office) "aRP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -20938,6 +21725,8 @@ /area/quartermaster/office) "aRQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20950,6 +21739,8 @@ /area/quartermaster/office) "aRR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20959,6 +21750,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, @@ -20966,6 +21759,8 @@ "aRS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20975,12 +21770,16 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, /area/quartermaster/office) "aRT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20997,6 +21796,8 @@ "aRU" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/mining{ @@ -21013,13 +21814,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aRV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21036,10 +21844,11 @@ /area/quartermaster/storage) "aRW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -21050,10 +21859,11 @@ /area/quartermaster/storage) "aRX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -21064,6 +21874,8 @@ "aRY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21078,6 +21890,8 @@ "aRZ" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/quartermaster, @@ -21090,6 +21904,8 @@ /area/quartermaster/storage) "aSa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21102,6 +21918,8 @@ /area/quartermaster/storage) "aSb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21115,6 +21933,8 @@ /area/quartermaster/storage) "aSc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21124,16 +21944,21 @@ /area/quartermaster/storage) "aSd" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/brown{ @@ -21143,6 +21968,8 @@ /area/quartermaster/storage) "aSe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -21153,10 +21980,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "aSf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ @@ -21166,12 +21998,16 @@ /area/quartermaster/qm) "aSg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/quartermaster/qm) "aSh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /mob/living/simple_animal/sloth/citrus, @@ -21180,9 +22016,13 @@ "aSi" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/bot, @@ -21191,6 +22031,8 @@ "aSj" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/yellow, @@ -21202,9 +22044,13 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/quartermaster, @@ -21212,6 +22058,8 @@ /area/quartermaster/qm) "aSl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ @@ -21221,6 +22069,8 @@ /area/quartermaster/qm) "aSm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -21231,16 +22081,25 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "aSn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/quartermaster, @@ -21249,8 +22108,7 @@ "aSo" = ( /obj/machinery/computer/shuttle/mining, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/ai_status_display{ pixel_x = 32 @@ -21282,10 +22140,7 @@ pixel_x = -28 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -21311,16 +22166,15 @@ pixel_x = -28 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating{ icon_state = "platingdmg3" }, /area/security/prison) "aSv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -21332,10 +22186,7 @@ id = "PCell 1"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -21343,7 +22194,6 @@ "aSx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -21356,7 +22206,6 @@ /obj/item/weapon/pen, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side{ @@ -21381,10 +22230,11 @@ /area/prison/execution_room) "aSA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/darkred/side, @@ -21395,9 +22245,8 @@ pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/darkred/side, /area/prison/execution_room) @@ -21406,7 +22255,6 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/darkred/side, @@ -21419,7 +22267,6 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/darkred/side{ @@ -21452,7 +22299,6 @@ pixel_x = 32 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/fans/tiny, /obj/machinery/light/small{ dir = 8 }, @@ -21469,17 +22315,11 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aSJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "co2 vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "co2 vent" }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -21562,11 +22402,9 @@ /area/engine/atmos) "aST" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -21590,6 +22428,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aSX" = ( @@ -21610,6 +22451,8 @@ "aTa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -21672,6 +22515,7 @@ /area/engine/atmos) "aTh" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -21680,9 +22524,8 @@ pixel_x = -26; pixel_y = 3 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ @@ -21691,16 +22534,19 @@ /area/hallway/secondary/service) "aTi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/newscaster{ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -21753,14 +22599,15 @@ /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aTq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aTr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ @@ -21813,9 +22660,8 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/office) "aTx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -21839,10 +22685,7 @@ /area/quartermaster/office) "aTA" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -21876,6 +22719,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aTE" = ( @@ -21888,9 +22734,8 @@ }, /area/quartermaster/storage) "aTF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -21903,14 +22748,13 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "aTH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "aTI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -21923,7 +22767,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -21948,7 +22791,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -21972,6 +22814,8 @@ /area/quartermaster/qm) "aTO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22021,11 +22865,12 @@ /area/quartermaster/qm) "aTS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -22042,6 +22887,7 @@ /area/quartermaster/qm) "aTU" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -22050,6 +22896,7 @@ /area/quartermaster/qm) "aTV" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -22068,6 +22915,7 @@ /area/security/prison) "aTX" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -22110,6 +22958,8 @@ /area/security/prison) "aUd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -22142,9 +22992,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/security/prison) "aUg" = ( /turf/closed/wall/mineral/plastitanium, @@ -22209,9 +23060,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aUp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -22261,7 +23111,6 @@ "aUu" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -22294,19 +23143,19 @@ "aUx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aUy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -22335,7 +23184,6 @@ /area/engine/atmos) "aUC" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /obj/effect/decal/cleanable/dirt, @@ -22361,6 +23209,8 @@ /area/maintenance/port/fore) "aUE" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -22368,7 +23218,6 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -22377,9 +23226,13 @@ /area/maintenance/port/fore) "aUF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -22393,6 +23246,8 @@ /area/maintenance/port/fore) "aUG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -22402,6 +23257,8 @@ /area/maintenance/port/fore) "aUH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/sortjunction{ @@ -22417,12 +23274,18 @@ /area/maintenance/port/fore) "aUI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -22436,6 +23299,8 @@ "aUJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22447,6 +23312,8 @@ "aUK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22457,6 +23324,8 @@ "aUL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22467,6 +23336,8 @@ /area/maintenance/port/fore) "aUM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -22479,10 +23350,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/service) "aUN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22495,14 +23371,17 @@ /area/hallway/secondary/service) "aUO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/light/small{ @@ -22536,7 +23415,6 @@ pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/redyellow, @@ -22553,11 +23431,12 @@ }, /area/hallway/primary/fore) "aUU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -22565,11 +23444,9 @@ /area/hallway/primary/fore) "aUV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -22582,7 +23459,6 @@ /area/quartermaster/office) "aUX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -22647,7 +23523,6 @@ /area/quartermaster/storage) "aVe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/brown, @@ -22708,6 +23583,8 @@ /area/quartermaster/storage) "aVl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/pod{ @@ -22727,7 +23604,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -22763,9 +23639,8 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Cargo - Quartermaster's Office"; @@ -22779,6 +23654,8 @@ /area/quartermaster/qm) "aVs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown, @@ -22787,8 +23664,7 @@ /obj/structure/table/reinforced, /obj/machinery/computer/stockexchange, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown{ icon_state = "brown"; @@ -22797,9 +23673,11 @@ /area/quartermaster/qm) "aVu" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -22810,6 +23688,7 @@ "aVv" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -22819,6 +23698,8 @@ "aVw" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/corner, @@ -22827,10 +23708,7 @@ /obj/machinery/newscaster/security_unit{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/corner, /area/security/prison) "aVy" = ( @@ -22843,9 +23721,13 @@ /area/security/prison) "aVz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22853,28 +23735,37 @@ /area/security/prison) "aVA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/corner, /area/security/prison) "aVB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) "aVC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22884,6 +23775,8 @@ /area/security/prison) "aVD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -22903,6 +23796,8 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22915,6 +23810,8 @@ /area/security/prison) "aVF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/computer/security/telescreen{ @@ -22923,16 +23820,19 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) "aVG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -22945,9 +23845,13 @@ /area/security/prison) "aVH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22969,9 +23873,13 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22984,6 +23892,8 @@ /area/security/prison) "aVJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22998,9 +23908,13 @@ /area/security/prison) "aVK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -23008,6 +23922,8 @@ /area/security/prison) "aVL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -23030,6 +23946,8 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -23041,9 +23959,13 @@ /area/security/prison) "aVN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -23053,15 +23975,16 @@ /area/security/prison) "aVO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -23072,12 +23995,18 @@ /area/security/prison) "aVP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/button/door{ @@ -23095,10 +24024,11 @@ /area/security/prison) "aVQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side{ @@ -23108,9 +24038,13 @@ "aVR" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -23120,10 +24054,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/prison) "aVS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -23133,6 +24072,8 @@ /area/security/prison) "aVT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ @@ -23145,6 +24086,8 @@ /area/security/prison) "aVU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -23153,6 +24096,8 @@ /area/security/prison) "aVV" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -23276,7 +24221,6 @@ /area/engine/atmos) "aWl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister, @@ -23286,9 +24230,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aWm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/caution{ @@ -23300,7 +24243,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -23326,6 +24268,8 @@ /area/engine/atmos) "aWr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -23370,23 +24314,16 @@ /obj/machinery/meter, /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aWw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "oxygen vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "oxygen vent" }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -23405,6 +24342,8 @@ /area/maintenance/port/fore) "aWA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -23420,6 +24359,8 @@ /area/hydroponics) "aWD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -23430,11 +24371,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hydroponics) "aWE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/closed/wall, @@ -23451,7 +24394,6 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/door/firedoor, @@ -23462,6 +24404,8 @@ /area/hallway/secondary/service) "aWH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -23562,7 +24506,6 @@ pixel_y = -32 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/light_switch{ @@ -23618,8 +24561,7 @@ /obj/structure/table/reinforced, /obj/machinery/computer/stockexchange, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/newscaster{ pixel_y = -32 @@ -23657,6 +24599,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aXf" = ( @@ -23677,6 +24622,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/mining{ @@ -23687,6 +24634,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aXi" = ( @@ -23695,6 +24645,7 @@ /area/quartermaster/qm) "aXj" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ @@ -23704,6 +24655,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white, @@ -23711,22 +24663,29 @@ /area/quartermaster/qm) "aXk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, /area/security/prison) "aXl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/red/corner{ @@ -23740,6 +24699,8 @@ }, /obj/machinery/light, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -23751,9 +24712,13 @@ /area/security/prison) "aXn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -23763,6 +24728,8 @@ /area/security/prison) "aXo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -23811,9 +24778,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/red/corner{ dir = 1 @@ -23821,6 +24787,8 @@ /area/security/prison) "aXu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -23860,6 +24828,8 @@ /area/security/prison) "aXx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -23924,12 +24894,13 @@ /area/security/prison) "aXD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/security/prison) @@ -23943,6 +24914,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/prison) "aXG" = ( @@ -24097,6 +25071,8 @@ "aXV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -24105,7 +25081,6 @@ /area/engine/atmos) "aXW" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -24174,6 +25149,8 @@ /area/hydroponics) "aYf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -24234,7 +25211,6 @@ /area/hydroponics) "aYm" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/loadingarea{ @@ -24244,6 +25220,8 @@ /area/hallway/secondary/service) "aYn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -24276,16 +25254,14 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aYq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) @@ -24356,10 +25332,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aYz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -24367,6 +25348,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aYA" = ( @@ -24375,6 +25359,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aYB" = ( @@ -24395,6 +25382,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/office) "aYD" = ( @@ -24412,7 +25402,6 @@ "aYE" = ( /obj/structure/filingcabinet/chestdrawer, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -24481,6 +25470,8 @@ /area/quartermaster/miningoffice) "aYL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -24560,12 +25551,17 @@ req_access_txt = "1" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/prison) "aYX" = ( @@ -24584,6 +25580,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/prison) "aYZ" = ( @@ -24601,6 +25600,8 @@ "aZa" = ( /obj/structure/rack, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/restraints/handcuffs, @@ -24638,6 +25639,8 @@ name = "Prisoner Locker" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault, @@ -24662,6 +25665,8 @@ /area/security/prison) "aZg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -24691,17 +25696,11 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "aZk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "plasma vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "plasma vent" }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -24755,7 +25754,7 @@ "aZp" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4; - initialize_directions = 11 + }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -24770,10 +25769,7 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aZs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/caution{ icon_state = "caution"; dir = 8 @@ -24841,6 +25837,8 @@ /area/maintenance/port/fore) "aZB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -24861,10 +25859,11 @@ /area/hydroponics) "aZE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -24877,6 +25876,8 @@ /area/hydroponics) "aZF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24894,6 +25895,8 @@ /area/hydroponics) "aZG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24906,9 +25909,13 @@ /area/hydroponics) "aZH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24921,10 +25928,11 @@ /area/hydroponics) "aZI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/greenblue/side{ @@ -24934,6 +25942,8 @@ /area/hydroponics) "aZJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24945,6 +25955,8 @@ "aZK" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -24957,10 +25969,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/service) "aZL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24968,6 +25985,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/bot, @@ -24975,9 +25994,13 @@ /area/hallway/secondary/service) "aZM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -24987,6 +26010,8 @@ "aZN" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -24999,10 +26024,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aZO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25014,6 +26044,8 @@ /area/crew_quarters/kitchen) "aZP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25023,22 +26055,24 @@ /area/crew_quarters/kitchen) "aZQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/cook, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) "aZR" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) @@ -25079,7 +26113,6 @@ /area/crew_quarters/kitchen) "aZY" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/button/door{ @@ -25109,7 +26142,6 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -25181,15 +26213,13 @@ /area/quartermaster/miningoffice) "baj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) "bak" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -25216,6 +26246,8 @@ /area/quartermaster/miningoffice) "bao" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -25259,6 +26291,7 @@ /area/quartermaster/miningoffice) "bau" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white, @@ -25268,9 +26301,11 @@ /area/quartermaster/miningoffice) "bav" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -25279,9 +26314,11 @@ /area/quartermaster/miningoffice) "baw" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -25291,6 +26328,7 @@ /area/quartermaster/miningoffice) "bax" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ @@ -25341,6 +26379,8 @@ name = "Prison Blast door" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -25426,10 +26466,7 @@ }, /area/engine/atmos) "baK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "baL" = ( @@ -25470,8 +26507,7 @@ /obj/structure/closet/wardrobe/atmospherics_yellow, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/weapon/storage/backpack/satchel/eng, /obj/effect/turf_decal/bot, @@ -25492,15 +26528,11 @@ /area/engine/atmos) "baS" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "baT" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -25526,7 +26558,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -25544,6 +26575,8 @@ "baX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -25562,9 +26595,8 @@ /turf/open/floor/plasteel, /area/hydroponics) "baZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/greenblue/side, /area/hydroponics) @@ -25577,7 +26609,6 @@ /area/hydroponics) "bbb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -25602,9 +26633,8 @@ /turf/open/floor/plasteel/greenblue/side, /area/hydroponics) "bbe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/greenblue/side, /area/hydroponics) @@ -25636,6 +26666,8 @@ "bbi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -25727,7 +26759,6 @@ "bbu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -25759,10 +26790,7 @@ /turf/open/floor/plasteel/neutral, /area/hallway/primary/fore) "bbA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/hallway/primary/fore) "bbB" = ( @@ -25815,6 +26843,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bbI" = ( @@ -25830,13 +26861,16 @@ /area/quartermaster/miningoffice) "bbK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -25851,9 +26885,8 @@ /area/quartermaster/miningoffice) "bbM" = ( /obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) @@ -25919,9 +26952,13 @@ /area/shuttle/mining) "bbX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/sign/securearea{ @@ -25931,7 +26968,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -25941,6 +26977,8 @@ /area/security/prison) "bbY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25960,6 +26998,8 @@ req_access_txt = "63" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -25974,6 +27014,8 @@ "bca" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -25981,6 +27023,8 @@ req_access_txt = "63" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -25990,15 +27034,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/prison) "bcb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -26008,6 +27056,8 @@ "bcc" = ( /obj/structure/closet/l3closet/security, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -26059,8 +27109,7 @@ /area/engine/atmos) "bch" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -26088,11 +27137,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bck" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, @@ -26132,17 +27183,11 @@ }, /area/engine/atmos) "bco" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "n2 vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2 vent" }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -26191,6 +27236,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hydroponics) "bcw" = ( @@ -26201,11 +27249,16 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/service) "bcx" = ( @@ -26226,6 +27279,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bcA" = ( @@ -26261,6 +27317,8 @@ /area/crew_quarters/kitchen) "bcE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ @@ -26271,14 +27329,12 @@ /area/hallway/primary/fore) "bcF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -26293,6 +27349,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bcH" = ( @@ -26413,10 +27472,11 @@ "bcV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel, @@ -26432,6 +27492,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48" @@ -26439,6 +27500,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bda" = ( @@ -26459,6 +27523,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48" @@ -26466,6 +27531,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bdd" = ( @@ -26476,6 +27544,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/mining) "bde" = ( @@ -26519,6 +27590,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/mining) "bdi" = ( @@ -26531,16 +27605,22 @@ req_access_txt = "1" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "bdk" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -26562,6 +27642,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "bdm" = ( @@ -26569,6 +27652,7 @@ /area/security/main) "bdn" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -26608,6 +27692,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/caution{ @@ -26623,7 +27708,6 @@ "bdt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment, @@ -26672,6 +27756,8 @@ /area/engine/atmos) "bdy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -26682,15 +27768,13 @@ /area/engine/atmos) "bdz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bdA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -26831,6 +27915,8 @@ "bdQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/green/side{ @@ -26923,7 +28009,6 @@ /area/crew_quarters/kitchen) "bea" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -26935,6 +28020,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -26946,7 +28033,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -26958,6 +28044,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bee" = ( @@ -26975,7 +28064,6 @@ /area/hallway/primary/fore) "beg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -26983,7 +28071,6 @@ /area/hallway/primary/fore) "beh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -27023,6 +28110,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bem" = ( @@ -27040,23 +28130,25 @@ /area/quartermaster/miningoffice) "beo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) "bep" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) "beq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27069,6 +28161,8 @@ /area/quartermaster/miningoffice) "ber" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -27082,10 +28176,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bes" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27098,6 +28197,8 @@ /area/quartermaster/miningoffice) "bet" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -27105,9 +28206,13 @@ /area/quartermaster/miningoffice) "beu" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27124,9 +28229,8 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) "bew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) @@ -27181,6 +28285,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/shuttle/mining) "beE" = ( @@ -27195,6 +28302,7 @@ /area/shuttle/mining) "beF" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -27205,9 +28313,8 @@ /obj/structure/sink{ pixel_y = 22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/whitered/side{ dir = 1 @@ -27237,6 +28344,7 @@ /area/security/brig) "beJ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -27248,6 +28356,8 @@ /area/security/brig) "beK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27261,6 +28371,8 @@ "beL" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27272,7 +28384,6 @@ /area/security/brig) "beM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -27287,9 +28398,13 @@ /area/security/main) "beO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -27298,6 +28413,8 @@ /area/security/main) "beP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -27309,6 +28426,8 @@ /area/security/main) "beQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light{ @@ -27328,6 +28447,8 @@ /area/security/main) "beR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/newscaster/security_unit{ @@ -27339,6 +28460,8 @@ /area/security/main) "beS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -27384,6 +28507,7 @@ /area/crew_quarters/heads/hos) "beX" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -27396,12 +28520,15 @@ /area/crew_quarters/heads/hos) "beY" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -27414,6 +28541,7 @@ /area/crew_quarters/heads/hos) "beZ" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -27435,17 +28563,11 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bfc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "n2o vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2o vent" }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -27523,6 +28645,8 @@ /area/engine/atmos) "bfk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -27532,6 +28656,8 @@ /area/engine/atmos) "bfl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -27539,6 +28665,8 @@ /area/engine/atmos) "bfm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -27552,6 +28680,8 @@ /area/engine/atmos) "bfn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -27566,9 +28696,13 @@ /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -27583,16 +28717,19 @@ /area/engine/atmos) "bfp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bfq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -27626,8 +28763,7 @@ /area/engine/atmos) "bfu" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/vault{ @@ -27638,7 +28774,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -27646,7 +28781,6 @@ "bfw" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; dir = 8 }, /turf/open/space, @@ -27701,7 +28835,6 @@ /area/hydroponics) "bfC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -27750,6 +28883,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hydroponics) "bfH" = ( @@ -27765,6 +28901,8 @@ /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -27798,6 +28936,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bfL" = ( @@ -27829,9 +28970,8 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/kitchen) "bfO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -27858,10 +28998,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/kitchen) "bfS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -27905,6 +29042,8 @@ /area/hallway/primary/fore) "bfX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ @@ -27925,9 +29064,8 @@ }, /area/hallway/primary/fore) "bfZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/fore) @@ -27962,11 +29100,12 @@ "bge" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/miningoffice) @@ -27992,9 +29131,13 @@ /area/quartermaster/miningoffice) "bgi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -28002,12 +29145,16 @@ /area/quartermaster/miningoffice) "bgj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/purple/side, /area/quartermaster/miningoffice) "bgk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/requests_console{ @@ -28025,6 +29172,8 @@ /area/quartermaster/miningoffice) "bgl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown, @@ -28035,6 +29184,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/purple/side, @@ -28043,6 +29194,8 @@ /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/yellow, @@ -28054,6 +29207,7 @@ /area/quartermaster/miningoffice) "bgo" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ @@ -28061,6 +29215,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -28069,6 +29224,7 @@ /area/quartermaster/miningoffice) "bgp" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, @@ -28187,10 +29343,12 @@ /area/shuttle/mining) "bgt" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -28200,6 +29358,8 @@ "bgu" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/clothing/gloves/color/latex, @@ -28219,25 +29379,32 @@ /area/security/brig) "bgv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/security/brig) "bgw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/security/brig) "bgx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/glass_medical{ @@ -28252,13 +29419,16 @@ /area/security/brig) "bgy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -28267,9 +29437,13 @@ /area/security/brig) "bgz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -28292,6 +29466,8 @@ /area/security/main) "bgC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/corner, @@ -28307,10 +29483,7 @@ }, /area/security/main) "bgF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/security/main) "bgG" = ( @@ -28355,6 +29528,8 @@ "bgL" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/device/taperecorder{ @@ -28467,7 +29642,6 @@ /area/engine/atmos) "bgZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line, @@ -28476,7 +29650,6 @@ "bha" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -28486,7 +29659,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/corner{ @@ -28497,11 +29669,12 @@ "bhc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -28523,8 +29696,7 @@ "bhf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, @@ -28532,8 +29704,7 @@ /area/engine/atmos) "bhg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -28542,7 +29713,6 @@ /area/engine/atmos) "bhh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -28578,6 +29748,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -28625,7 +29797,6 @@ /area/hydroponics) "bhs" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -28677,6 +29848,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side, @@ -28800,7 +29973,6 @@ /obj/item/clothing/suit/apron/chef, /obj/item/weapon/kitchen/rollingpin, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -28837,7 +30009,6 @@ name = "hallway camera" }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/fore) @@ -28848,7 +30019,6 @@ "bhP" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/clipboard, @@ -28901,8 +30071,7 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown{ icon_state = "brown"; @@ -28940,6 +30109,8 @@ "bib" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/loadingarea{ @@ -28950,6 +30121,7 @@ "bic" = ( /obj/structure/table, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/item/weapon/storage/firstaid/regular, @@ -28996,6 +30168,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29097,15 +30271,21 @@ /area/security/brig) "bis" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, /area/security/brig) "bit" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -29116,6 +30296,7 @@ "biu" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -29133,6 +30314,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/security_officer, @@ -29168,6 +30351,7 @@ /area/security/main) "biC" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -29203,12 +30387,11 @@ /area/crew_quarters/heads/hos) "biF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "biG" = ( @@ -29360,7 +30543,6 @@ /area/engine/atmos) "biU" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/bot, @@ -29376,7 +30558,6 @@ /area/engine/atmos) "biW" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -29389,8 +30570,7 @@ /area/engine/atmos) "biY" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -29414,8 +30594,7 @@ /area/engine/atmos) "bjb" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -29443,8 +30622,7 @@ /area/engine/atmos) "bje" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -29456,11 +30634,12 @@ /area/engine/atmos) "bjf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -29481,7 +30660,6 @@ amount = 50 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/bot, @@ -29501,7 +30679,6 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -29518,7 +30695,6 @@ /area/engine/atmos) "bjl" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -29529,7 +30705,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -29537,7 +30712,6 @@ "bjn" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 9 }, /turf/open/space, @@ -29555,6 +30729,8 @@ "bjp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -29581,9 +30757,8 @@ /turf/open/floor/plasteel/neutral, /area/hydroponics) "bju" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hydroponics) @@ -29595,7 +30770,6 @@ /area/hydroponics) "bjw" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/light_switch{ @@ -29623,11 +30797,16 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/service) "bjz" = ( @@ -29668,6 +30847,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bjD" = ( @@ -29676,12 +30858,17 @@ name = "Fore Primary Hallway" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bjE" = ( @@ -29705,6 +30892,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bjG" = ( @@ -29713,6 +30903,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bjH" = ( @@ -29725,6 +30918,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bjJ" = ( @@ -29745,6 +30941,8 @@ "bjL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29755,10 +30953,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "bjM" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -29767,9 +30969,11 @@ /area/quartermaster/miningoffice) "bjN" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -29778,9 +30982,11 @@ /area/security/transfer) "bjO" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -29789,9 +30995,11 @@ /area/security/transfer) "bjP" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -29810,7 +31018,6 @@ pixel_x = -23 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/side{ @@ -29819,6 +31026,8 @@ /area/security/brig) "bjS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29848,6 +31057,7 @@ pixel_x = -26 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29863,9 +31073,13 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/security_officer, @@ -29928,7 +31142,6 @@ /area/security/main) "bkc" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/side{ @@ -29946,6 +31159,7 @@ "bke" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -29970,6 +31184,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30001,6 +31217,7 @@ /area/crew_quarters/heads/hos) "bkk" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -30011,9 +31228,8 @@ /turf/open/floor/plating, /area/crew_quarters/heads/hos) "bkl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -30023,6 +31239,7 @@ /area/crew_quarters/heads/hos) "bkn" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -30044,10 +31261,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -30070,10 +31284,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -30089,8 +31300,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/status_display{ pixel_x = -32 @@ -30128,13 +31338,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bky" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -30149,8 +31361,7 @@ /area/engine/atmos) "bkA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -30160,16 +31371,14 @@ /obj/effect/decal/cleanable/dirt, /obj/item/toy/figure/atmos, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bkC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -30179,30 +31388,26 @@ "bkD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bkE" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; pixel_x = 28 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -30248,7 +31453,6 @@ /area/hydroponics) "bkM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -30260,10 +31464,11 @@ /area/hallway/primary/central) "bkN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -30272,7 +31477,6 @@ /area/hallway/primary/central) "bkO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -30303,7 +31507,6 @@ /area/hallway/primary/central) "bkR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -30318,6 +31521,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bkT" = ( @@ -30334,6 +31540,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -30344,7 +31552,6 @@ "bkV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central) @@ -30353,7 +31560,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central) @@ -30363,17 +31569,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central) "bkY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/brown/corner{ - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central) @@ -30422,6 +31625,8 @@ /area/hallway/primary/central) "bld" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30433,6 +31638,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -30441,10 +31647,11 @@ /area/hallway/primary/central) "ble" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -30458,6 +31665,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30466,11 +31675,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "blg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30485,10 +31699,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/delivery, @@ -30516,6 +31731,8 @@ "blm" = ( /obj/structure/filingcabinet/chestdrawer, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -30568,6 +31785,7 @@ /area/security/transfer) "blr" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -30576,6 +31794,8 @@ /area/security/transfer) "bls" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -30589,6 +31809,8 @@ /area/security/main) "blu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -30626,6 +31848,8 @@ /area/security/main) "blz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -30639,6 +31863,8 @@ /area/security/main) "blA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -30650,12 +31876,18 @@ /area/security/main) "blB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/command{ @@ -30672,9 +31904,13 @@ /area/crew_quarters/heads/hos) "blC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -30685,12 +31921,18 @@ "blD" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -30701,6 +31943,8 @@ "blE" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/red, @@ -30715,6 +31959,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/head_of_security, @@ -30725,6 +31971,8 @@ /area/crew_quarters/heads/hos) "blG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -30735,6 +31983,8 @@ /area/crew_quarters/heads/hos) "blH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -30743,12 +31993,18 @@ /area/crew_quarters/heads/hos) "blI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/command{ @@ -30762,12 +32018,16 @@ /area/crew_quarters/heads/hos) "blJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "blK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/head_of_security, @@ -30775,6 +32035,8 @@ /area/crew_quarters/heads/hos) "blL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/computer/crew, @@ -30782,10 +32044,12 @@ /area/crew_quarters/heads/hos) "blM" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -30913,7 +32177,6 @@ /area/engine/atmos) "bma" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; dir = 10 }, /obj/effect/decal/cleanable/dirt, @@ -30942,7 +32205,6 @@ /area/engine/atmos) "bmd" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/caution{ @@ -30978,8 +32240,7 @@ /area/engine/atmos) "bmh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel/neutral, @@ -30990,18 +32251,18 @@ /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bmj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment, @@ -31061,7 +32322,6 @@ /area/engine/atmos) "bmr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -31076,6 +32336,8 @@ /area/hallway/primary/port) "bmt" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -31091,6 +32353,8 @@ /area/hallway/primary/port) "bmu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31107,6 +32371,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31115,11 +32381,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "bmw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31132,6 +32403,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31141,6 +32414,8 @@ /area/maintenance/port/fore) "bmy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31153,6 +32428,8 @@ "bmz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31165,6 +32442,8 @@ /area/maintenance/port/fore) "bmA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31176,6 +32455,8 @@ "bmB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ @@ -31187,9 +32468,13 @@ "bmC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -31242,7 +32527,6 @@ /area/hydroponics) "bmI" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -31251,13 +32535,16 @@ /area/hallway/primary/central) "bmJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -31272,6 +32559,8 @@ /area/hallway/primary/central) "bmK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31283,6 +32572,8 @@ /area/hallway/primary/central) "bmL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31292,11 +32583,12 @@ /area/hallway/primary/central) "bmM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -31306,6 +32598,8 @@ "bmN" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31314,10 +32608,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bmO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31329,6 +32628,8 @@ /area/hallway/primary/central) "bmP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31340,6 +32641,8 @@ /area/hallway/primary/central) "bmQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -31351,6 +32654,8 @@ /area/hallway/primary/central) "bmR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -31368,16 +32673,19 @@ "bmS" = ( /obj/effect/landmark/lightsout, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -31394,6 +32702,8 @@ /area/hallway/primary/central) "bmT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -31402,6 +32712,8 @@ /area/hallway/primary/central) "bmU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -31410,16 +32722,19 @@ /area/hallway/primary/central) "bmV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ desc = ""; - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "bmW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -31428,12 +32743,16 @@ /area/hallway/primary/central) "bmX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bmY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -31442,43 +32761,53 @@ "bmZ" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bna" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bnb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bnc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall14"; @@ -31514,6 +32843,8 @@ /area/security/transfer) "bnh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -31532,9 +32863,8 @@ /turf/open/floor/plasteel, /area/security/transfer) "bnk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -31550,6 +32880,7 @@ "bnm" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -31570,6 +32901,8 @@ /area/security/brig) "bno" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31593,6 +32926,8 @@ "bnq" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_security{ @@ -31624,6 +32959,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/security_officer, @@ -31664,7 +33001,6 @@ /obj/item/weapon/book/manual/wiki/security_space_law, /obj/item/device/taperecorder, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/side{ @@ -31682,6 +33018,8 @@ /area/security/main) "bny" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31705,6 +33043,7 @@ "bnA" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -31720,6 +33059,8 @@ /area/crew_quarters/heads/hos) "bnB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31732,6 +33073,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31756,7 +33099,6 @@ pixel_x = 4.5 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -31764,6 +33106,8 @@ "bnE" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31815,7 +33159,6 @@ req_access_txt = "58" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/grimy, @@ -31944,7 +33287,6 @@ /area/engine/atmos) "bnY" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -31962,7 +33304,6 @@ /area/engine/atmos) "boa" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ @@ -31994,7 +33335,6 @@ "bod" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -32017,8 +33357,7 @@ "bof" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -32027,8 +33366,7 @@ /obj/item/weapon/storage/belt/utility, /obj/item/device/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -32045,11 +33383,12 @@ /area/engine/atmos) "boi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -32069,13 +33408,13 @@ /area/engine/atmos) "bok" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -32139,10 +33478,11 @@ /area/hallway/primary/port) "bos" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -32174,6 +33514,8 @@ /area/storage/tech) "box" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32198,15 +33540,13 @@ /turf/open/floor/plasteel, /area/hydroponics) "boA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hydroponics) "boB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -32234,6 +33574,8 @@ /area/hydroponics) "boD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -32300,6 +33642,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "boK" = ( @@ -32442,7 +33787,6 @@ /area/hallway/primary/central) "boW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -32454,6 +33798,8 @@ /area/hallway/primary/central) "boX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -32495,6 +33841,7 @@ /area/shuttle/labor) "bpd" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -32503,9 +33850,12 @@ /area/security/transfer) "bpe" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -32515,9 +33865,12 @@ /area/security/transfer) "bpf" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -32526,6 +33879,8 @@ /area/security/transfer) "bpg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -32535,9 +33890,13 @@ /area/security/transfer) "bph" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -32580,6 +33939,8 @@ /area/security/transfer) "bpl" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -32592,12 +33953,18 @@ "bpm" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_security{ @@ -32611,10 +33978,11 @@ /area/security/transfer) "bpn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -32626,26 +33994,33 @@ /area/security/brig) "bpo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/security/brig) "bpp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -32659,12 +34034,18 @@ "bpq" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -32680,6 +34061,8 @@ /area/security/main) "bpr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -32692,9 +34075,13 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/landmark/start/security_officer, @@ -32708,6 +34095,8 @@ "bpt" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/red, @@ -32720,6 +34109,8 @@ "bpu" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/paper_bin, @@ -32731,6 +34122,8 @@ /area/security/main) "bpv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -32742,6 +34135,8 @@ /area/security/main) "bpw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -32752,6 +34147,8 @@ /area/security/main) "bpx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -32761,9 +34158,13 @@ /area/security/main) "bpy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32798,17 +34199,20 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "bpC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -32854,9 +34258,8 @@ pixel_x = 26; pixel_y = -26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32904,24 +34307,17 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bpO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "distro vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro vent" }, /turf/open/floor/engine/vacuum, /area/engine/atmos) "bpP" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 8 }, /turf/open/space, @@ -32929,8 +34325,7 @@ "bpQ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/green/side{ dir = 10 @@ -32938,8 +34333,7 @@ /area/engine/atmos) "bpR" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1 @@ -32952,8 +34346,7 @@ "bpS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -32966,23 +34359,18 @@ /area/engine/atmos) "bpU" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bpV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bpW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -33001,25 +34389,20 @@ dir = 4; pixel_x = -22 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bpY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "bpZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 1 + dir = 2 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -33032,15 +34415,16 @@ /area/engine/atmos) "bqb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -33048,10 +34432,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -33066,56 +34451,67 @@ req_access_txt = "24" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bqe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "bqf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bqg" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -33123,7 +34519,6 @@ "bqh" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/bot, @@ -33152,10 +34547,14 @@ "bql" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, @@ -33164,6 +34563,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33183,7 +34584,6 @@ "bqp" = ( /obj/structure/table/glass, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/stack/packageWrap, @@ -33198,17 +34598,25 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqr" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqs" = ( @@ -33218,6 +34626,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqt" = ( @@ -33232,11 +34643,16 @@ "bqv" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqw" = ( @@ -33280,6 +34696,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/labor) "bqC" = ( @@ -33291,10 +34710,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/transfer) "bqD" = ( -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/transfer) @@ -33307,6 +34728,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/transfer) "bqF" = ( @@ -33317,9 +34741,13 @@ /area/security/transfer) "bqG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment, @@ -33329,11 +34757,12 @@ /area/security/transfer) "bqH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -33342,9 +34771,13 @@ /area/security/transfer) "bqI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33357,9 +34790,13 @@ /area/security/transfer) "bqJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33372,6 +34809,8 @@ /area/security/transfer) "bqK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33383,6 +34822,7 @@ /area/security/transfer) "bqL" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, @@ -33395,7 +34835,6 @@ /area/security/transfer) "bqM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -33404,6 +34843,8 @@ /area/security/brig) "bqN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -33445,14 +34886,15 @@ }, /area/security/main) "bqT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/main) "bqU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33492,6 +34934,8 @@ "bqY" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/fancy/donut_box, @@ -33527,7 +34971,6 @@ /area/crew_quarters/heads/hos) "brb" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/light/small{ @@ -33540,7 +34983,6 @@ /area/engine/atmos) "brc" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -33575,7 +35017,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -33634,7 +35075,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -33645,6 +35085,8 @@ "brm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -33664,8 +35106,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33687,8 +35128,7 @@ /area/engine/atmos) "brp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33700,7 +35140,6 @@ /area/engine/atmos) "brq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -33714,6 +35153,8 @@ "brr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -33744,6 +35185,7 @@ /area/engine/atmos) "bru" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -33768,10 +35210,11 @@ /area/hallway/primary/port) "brw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/junction, @@ -33779,7 +35222,6 @@ /area/hallway/primary/port) "brx" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/scrubber, @@ -33794,6 +35236,7 @@ /area/storage/tech) "brz" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -33802,12 +35245,15 @@ /area/storage/tech) "brA" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -33816,6 +35262,7 @@ /area/storage/tech) "brB" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -33841,7 +35288,7 @@ }, /obj/machinery/requests_console{ department = "Hydroponics"; - departmentType = 0; + departmentType = 2; name = "Hydroponics RC"; pixel_x = 32; pixel_y = -32 @@ -33862,6 +35309,8 @@ /area/hallway/primary/central) "brI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -33895,6 +35344,8 @@ /area/hallway/primary/central) "brO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -33908,6 +35359,7 @@ /area/hallway/primary/central) "brQ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -33945,10 +35397,7 @@ /obj/machinery/ai_status_display{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -33995,6 +35444,8 @@ "brZ" = ( /obj/structure/closet/emcloset, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -34004,9 +35455,13 @@ /area/security/transfer) "bsa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -34028,6 +35483,8 @@ /area/security/transfer) "bsd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side, @@ -34086,6 +35543,8 @@ /area/security/main) "bsl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34105,9 +35564,11 @@ "bsn" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -34124,6 +35585,8 @@ /area/ai_monitored/turret_protected/ai) "bsp" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -34135,9 +35598,11 @@ charge = 5e+006 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/sign/electricshock{ @@ -34153,6 +35618,8 @@ /area/ai_monitored/turret_protected/ai) "bsr" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -34175,7 +35642,6 @@ "bst" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -34232,7 +35698,6 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter{ @@ -34256,6 +35721,8 @@ "bsB" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -34266,6 +35733,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bsC" = ( @@ -34289,9 +35759,8 @@ }, /area/engine/atmos) "bsD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -34301,9 +35770,13 @@ "bsE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -34313,6 +35786,8 @@ /area/engine/atmos) "bsF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34324,6 +35799,8 @@ "bsG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -34338,6 +35815,8 @@ opacity = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/poddoor/preopen{ @@ -34345,6 +35824,8 @@ name = "Atmospherics Lockdown Blast door" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34369,10 +35850,11 @@ /area/hallway/primary/port) "bsJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ @@ -34389,6 +35871,8 @@ }, /obj/item/weapon/circuitboard/computer/mecha_control, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -34408,12 +35892,18 @@ pixel_y = -3 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, @@ -34431,6 +35921,8 @@ pixel_y = -3 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -34481,9 +35973,11 @@ /area/hydroponics) "bsS" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -34496,9 +35990,11 @@ /area/bridge) "bsT" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -34511,9 +36007,11 @@ /area/bridge) "bsU" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -34529,6 +36027,7 @@ /area/bridge) "bsW" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -34541,12 +36040,15 @@ /area/bridge) "bsX" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -34559,6 +36061,7 @@ /area/bridge) "bsY" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -34571,7 +36074,6 @@ /area/bridge) "bsZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -34580,6 +36082,8 @@ /area/hallway/primary/central) "bta" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -34599,10 +36103,12 @@ /area/hallway/primary/central) "btc" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -34614,6 +36120,7 @@ /area/hallway/primary/central) "btd" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -34650,7 +36157,6 @@ /area/security/nuke_storage) "bth" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/circuit/green, @@ -34693,9 +36199,13 @@ "btn" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/glass_security{ @@ -34707,6 +36217,7 @@ /area/security/transfer) "bto" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -34746,6 +36257,7 @@ /area/security/main) "bts" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -34754,12 +36266,18 @@ /area/security/main) "btt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/security{ @@ -34773,6 +36291,7 @@ /area/security/main) "btu" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -34819,6 +36338,8 @@ /area/ai_monitored/turret_protected/ai) "btz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -34827,7 +36348,6 @@ /area/ai_monitored/turret_protected/ai) "btA" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -34864,12 +36384,16 @@ "btE" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; name = "External Airlock"; req_access_txt = "13" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "btF" = ( @@ -34877,36 +36401,31 @@ /area/engine/break_room) "btG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, /area/engine/break_room) "btH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/break_room) "btI" = ( /obj/machinery/status_display, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/closed/wall/r_wall, /area/engine/break_room) "btJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, /area/engine/break_room) "btK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/closed/wall/r_wall, @@ -34945,6 +36464,8 @@ /area/engine/break_room) "btP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -34974,6 +36495,8 @@ "btS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -34987,6 +36510,7 @@ /area/engine/atmos) "btU" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -35000,7 +36524,6 @@ /area/engine/atmos) "btV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/yellow/corner{ @@ -35008,11 +36531,12 @@ }, /area/hallway/primary/port) "btW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -35045,12 +36569,11 @@ /area/storage/tech) "bua" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/storage/tech) @@ -35068,6 +36591,8 @@ /area/storage/tech) "buc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -35109,6 +36634,8 @@ "buh" = ( /obj/machinery/computer/med_data, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkblue/side{ @@ -35134,6 +36661,8 @@ "buk" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkred/side{ @@ -35157,6 +36686,8 @@ "bun" = ( /obj/machinery/computer/station_alert, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkyellow/side{ @@ -35180,19 +36711,24 @@ /area/bridge) "buq" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bur" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -35202,15 +36738,22 @@ /area/hallway/primary/central) "bus" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/vault{ + cyclelinkeddir = 4; locked = 1; name = "Vault Door"; req_access_txt = "53" @@ -35224,6 +36767,8 @@ /area/hallway/primary/central) "but" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35235,11 +36780,14 @@ /area/security/nuke_storage) "buu" = ( /obj/machinery/door/airlock/vault{ + cyclelinkeddir = 8; locked = 1; name = "Vault Door"; req_access_txt = "53" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/electricshock{ @@ -35257,6 +36805,8 @@ /area/security/nuke_storage) "buv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35269,10 +36819,11 @@ layer = 2 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -35281,12 +36832,15 @@ /area/security/nuke_storage) "bux" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/circuit/green, /area/security/nuke_storage) "buy" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -35330,6 +36884,8 @@ }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -35339,9 +36895,13 @@ /area/security/transfer) "buD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -35401,7 +36961,6 @@ /area/security/brig) "buJ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -35433,6 +36992,7 @@ /area/security/main) "buO" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -35450,11 +37010,12 @@ /area/security/main) "buQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -35467,10 +37028,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -35494,16 +37052,19 @@ /area/ai_monitored/turret_protected/ai) "buU" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "buV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -35511,9 +37072,13 @@ /area/ai_monitored/turret_protected/ai) "buW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35523,12 +37088,18 @@ /area/ai_monitored/turret_protected/ai) "buX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/ai_slipper{ @@ -35541,9 +37112,13 @@ /area/ai_monitored/turret_protected/ai) "buY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35553,6 +37128,8 @@ /area/ai_monitored/turret_protected/ai) "buZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35563,10 +37140,11 @@ /area/ai_monitored/turret_protected/ai) "bva" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/circuit/green, @@ -35595,7 +37173,6 @@ /area/engine/gravity_generator) "bve" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/fans/tiny, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/gravity_generator) @@ -35640,6 +37217,7 @@ /area/engine/break_room) "bvj" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -35720,6 +37298,8 @@ "bvr" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -35730,6 +37310,9 @@ req_access_txt = "0"; req_one_access_txt = "24;10" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bvs" = ( @@ -35742,6 +37325,7 @@ pixel_x = -32 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/modular_computer/console/preset/engineering, @@ -35757,18 +37341,24 @@ /area/engine/atmos) "bvv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/holopad, /obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, /area/engine/atmos) "bvw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -35779,6 +37369,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/caution{ @@ -35788,9 +37380,13 @@ "bvy" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/item/weapon/folder/yellow, @@ -35817,10 +37413,11 @@ /area/hallway/primary/port) "bvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -35828,7 +37425,6 @@ /area/hallway/primary/port) "bvB" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/pump, @@ -35844,12 +37440,18 @@ "bvC" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/highsecurity{ @@ -35860,6 +37462,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/storage/tech) "bvD" = ( @@ -35868,13 +37473,16 @@ /area/storage/tech) "bvE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/bot, @@ -35882,6 +37490,8 @@ /area/maintenance/port/fore) "bvF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35896,6 +37506,8 @@ "bvG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35909,9 +37521,13 @@ "bvH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35929,6 +37545,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35937,10 +37555,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "bvJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -35953,9 +37576,13 @@ /area/hallway/primary/central) "bvK" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35966,7 +37593,6 @@ /area/hallway/primary/central) "bvL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/light{ @@ -36007,6 +37633,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -36028,6 +37656,8 @@ /area/bridge) "bvR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -36045,7 +37675,6 @@ "bvT" = ( /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/weapon/wrench, @@ -36059,7 +37688,6 @@ "bvU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -36076,9 +37704,11 @@ "bvW" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -36087,6 +37717,7 @@ /area/hallway/primary/central) "bvX" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -36216,6 +37847,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/labor) "bwd" = ( @@ -36227,11 +37861,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/transfer) "bwe" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/transfer) @@ -36244,15 +37880,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/transfer) "bwg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ @@ -36300,6 +37940,8 @@ /area/security/brig) "bwm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36334,9 +37976,8 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -36354,10 +37995,7 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -36365,9 +38003,11 @@ "bws" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -36379,6 +38019,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -36387,6 +38029,8 @@ /area/security/main) "bwu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/device/radio/intercom{ @@ -36444,9 +38088,8 @@ /area/ai_monitored/turret_protected/ai) "bwz" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -36454,6 +38097,8 @@ /area/ai_monitored/turret_protected/ai) "bwA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -36472,6 +38117,8 @@ /area/ai_monitored/turret_protected/ai) "bwC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36483,7 +38130,6 @@ /area/ai_monitored/turret_protected/ai) "bwD" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -36492,10 +38138,11 @@ /area/ai_monitored/turret_protected/ai) "bwE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/circuit/green, @@ -36504,9 +38151,8 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -36527,7 +38173,6 @@ /area/engine/gravity_generator) "bwI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/vault{ @@ -36545,8 +38190,7 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/gravity_generator) @@ -36559,8 +38203,7 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -36575,8 +38218,7 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ icon_state = "0-2"; @@ -36589,7 +38231,6 @@ /area/engine/gravity_generator) "bwM" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 4 }, /obj/item/device/radio/intercom{ @@ -36597,7 +38238,6 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/cable/white{ @@ -36634,6 +38274,7 @@ "bwP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; name = "External Airlock"; req_access_txt = "13" }, @@ -36641,6 +38282,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bwQ" = ( @@ -36656,6 +38300,7 @@ /area/engine/break_room) "bwS" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, @@ -36693,10 +38338,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bwY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ @@ -36706,6 +38356,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bwZ" = ( @@ -36723,6 +38376,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bxa" = ( @@ -36753,9 +38409,8 @@ /area/engine/atmos) "bxc" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -36782,7 +38437,6 @@ name = "Atmospherics Lockdown Blast door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -36799,6 +38453,8 @@ "bxg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -36806,7 +38462,6 @@ /area/hallway/primary/port) "bxh" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/pump, @@ -36845,6 +38500,8 @@ /area/storage/tech) "bxl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -36879,6 +38536,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -36888,7 +38547,6 @@ /area/maintenance/port/fore) "bxq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/closed/wall, @@ -36910,6 +38568,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/storage/primary) "bxt" = ( @@ -36918,6 +38579,8 @@ opacity = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -36935,7 +38598,6 @@ /area/storage/primary) "bxu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -36949,6 +38611,7 @@ /area/hallway/primary/central) "bxw" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -37020,6 +38683,8 @@ "bxE" = ( /obj/machinery/computer/cargo/request, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkyellow/side{ @@ -37045,18 +38710,19 @@ /area/bridge) "bxH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/bridge) "bxI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/device/radio/beacon, @@ -37066,12 +38732,11 @@ /area/bridge) "bxJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -37098,6 +38763,8 @@ /area/bridge) "bxM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/modular_computer/console/preset/command, @@ -37165,9 +38832,8 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -37209,9 +38875,13 @@ /area/shuttle/labor) "bxX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -37223,9 +38893,8 @@ /turf/open/floor/plasteel/neutral, /area/security/transfer) "bxZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/security/transfer) @@ -37259,6 +38928,8 @@ /area/security/brig) "byd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -37351,9 +39022,8 @@ /area/security/main) "bym" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -37374,6 +39044,8 @@ /area/ai_monitored/turret_protected/ai) "byp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -37395,6 +39067,8 @@ /area/ai_monitored/turret_protected/ai) "bys" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/circuit/green, @@ -37420,9 +39094,8 @@ }, /area/engine/gravity_generator) "byx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -37445,9 +39118,8 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "byA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -37465,6 +39137,8 @@ icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -37475,8 +39149,7 @@ "byC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -37489,8 +39162,7 @@ "byD" = ( /obj/structure/sign/radiation, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) @@ -37500,7 +39172,6 @@ pixel_y = 23 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/machinery/camera{ @@ -37515,8 +39186,7 @@ /area/engine/gravity_generator) "byF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -37530,8 +39200,7 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -37540,20 +39209,19 @@ /area/engine/gravity_generator) "byH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall, /area/engine/break_room) "byI" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/break_room) @@ -37565,36 +39233,44 @@ req_access_txt = "19" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "byK" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/break_room) @@ -37606,22 +39282,29 @@ req_access_txt = "19" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "byM" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -37631,13 +39314,15 @@ /area/engine/break_room) "byN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "byO" = ( @@ -37645,16 +39330,14 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) "byP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/side{ @@ -37663,7 +39346,6 @@ /area/engine/break_room) "byQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/yellow/side{ @@ -37672,8 +39354,7 @@ /area/engine/break_room) "byR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37691,11 +39372,11 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37703,11 +39384,12 @@ /area/engine/break_room) "byT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution{ @@ -37716,13 +39398,16 @@ /area/engine/break_room) "byU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -37735,7 +39420,6 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -37801,6 +39485,8 @@ /area/engine/atmos) "bzb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -37832,6 +39518,8 @@ /area/storage/tech) "bzf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -37846,7 +39534,6 @@ /obj/structure/table/reinforced, /obj/item/device/aicard, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -37870,7 +39557,6 @@ /obj/item/device/assembly/signaler, /obj/item/device/assembly/signaler, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/bot, @@ -37894,6 +39580,8 @@ /area/storage/primary) "bzn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -38012,9 +39700,13 @@ /area/storage/primary) "bzs" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -38029,6 +39721,8 @@ /area/hallway/primary/central) "bzt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38044,13 +39738,17 @@ "bzu" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 4; name = "Bridge Access"; req_access_txt = "19" }, @@ -38066,6 +39764,8 @@ /area/bridge) "bzv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38080,6 +39780,8 @@ /area/bridge) "bzw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ @@ -38100,16 +39802,22 @@ "bzx" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 8; name = "Bridge Access"; req_access_txt = "19" }, @@ -38122,6 +39830,8 @@ /area/bridge) "bzy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38133,10 +39843,11 @@ /area/bridge) "bzz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -38146,9 +39857,13 @@ "bzA" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/light{ @@ -38169,10 +39884,11 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -38184,12 +39900,18 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38201,9 +39923,13 @@ /area/bridge) "bzD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38215,6 +39941,8 @@ "bzE" = ( /obj/structure/window/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38224,6 +39952,8 @@ /area/bridge) "bzF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/southright{ @@ -38231,7 +39961,6 @@ req_access_txt = "19" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/darkblue/side, @@ -38239,12 +39968,18 @@ "bzG" = ( /obj/structure/window/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38254,9 +39989,13 @@ /area/bridge) "bzH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -38269,13 +40008,16 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -38287,11 +40029,12 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -38299,15 +40042,14 @@ /area/bridge) "bzK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -38315,13 +40057,17 @@ "bzL" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 4; name = "Bridge Access"; req_access_txt = "19" }, @@ -38334,6 +40080,8 @@ /area/bridge) "bzM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ @@ -38350,13 +40098,17 @@ "bzN" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 8; name = "Bridge Access"; req_access_txt = "19" }, @@ -38369,10 +40121,11 @@ /area/bridge) "bzO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/blue/corner{ @@ -38382,9 +40135,13 @@ /area/hallway/primary/central) "bzP" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -38435,6 +40192,8 @@ /area/security/transfer) "bzU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/sortjunction{ @@ -38532,6 +40291,8 @@ /area/ai_monitored/turret_protected/ai) "bAe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/ai_slipper{ @@ -38594,6 +40355,8 @@ /area/ai_monitored/turret_protected/ai) "bAi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/ai_slipper{ @@ -38655,9 +40418,13 @@ "bAm" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/glass_command{ @@ -38667,6 +40434,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bAn" = ( @@ -38677,6 +40447,8 @@ /area/engine/gravity_generator) "bAo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -38687,6 +40459,8 @@ "bAp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -38699,18 +40473,27 @@ req_access_txt = "19;23" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bAr" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -38721,6 +40504,8 @@ /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -38728,11 +40513,12 @@ /area/engine/gravity_generator) "bAt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/delivery, @@ -38741,6 +40527,8 @@ "bAu" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ @@ -38749,21 +40537,24 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -38772,57 +40563,74 @@ /area/engine/break_room) "bAw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -38832,6 +40640,8 @@ "bAA" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ @@ -38840,41 +40650,50 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bAC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) "bAD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -38884,40 +40703,47 @@ /area/engine/break_room) "bAE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bAF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bAG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bAH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, @@ -38930,7 +40756,6 @@ /area/engine/break_room) "bAJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, @@ -38946,6 +40771,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -38953,7 +40780,6 @@ /area/hallway/primary/port) "bAM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/yellow/corner{ @@ -39024,6 +40850,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/bot, @@ -39031,6 +40858,8 @@ /area/storage/primary) "bAS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -39039,6 +40868,8 @@ /area/storage/primary) "bAT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -39051,6 +40882,8 @@ /area/storage/primary) "bAU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -39062,6 +40895,8 @@ /area/storage/primary) "bAV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -39103,7 +40938,6 @@ /area/hallway/primary/central) "bBb" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -39112,10 +40946,12 @@ "bBc" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 4; name = "Bridge Access"; req_access_txt = "19" }, @@ -39155,10 +40991,12 @@ "bBf" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 0; + cyclelinkeddir = 8; name = "Bridge Access"; req_access_txt = "19" }, @@ -39187,9 +41025,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39200,10 +41037,11 @@ /area/bridge) "bBi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -39225,6 +41063,8 @@ /area/bridge) "bBk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39272,6 +41112,8 @@ "bBp" = ( /obj/machinery/computer/communications, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39283,7 +41125,6 @@ /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -39319,10 +41160,11 @@ /area/bridge) "bBu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -39359,6 +41201,8 @@ /area/hallway/primary/central) "bBy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39368,7 +41212,6 @@ /area/hallway/primary/central) "bBz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -39378,6 +41221,7 @@ /area/hallway/primary/central) "bBA" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -39390,9 +41234,13 @@ /area/security/transfer) "bBB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/airlock/glass_security{ @@ -39406,6 +41254,7 @@ /area/security/transfer) "bBC" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -39415,6 +41264,8 @@ /area/security/transfer) "bBD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -39465,6 +41316,7 @@ /area/security/warden) "bBJ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -39489,7 +41341,6 @@ /area/security/warden) "bBM" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -39540,7 +41391,6 @@ /area/ai_monitored/turret_protected/ai) "bBO" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -39570,10 +41420,7 @@ }, /area/engine/gravity_generator) "bBR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -39586,15 +41433,13 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bBT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/gravity_generator) "bBU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -39606,8 +41451,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/power/port_gen/pacman, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -39615,18 +41459,18 @@ "bBW" = ( /obj/structure/sign/radiation, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) "bBX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -39640,7 +41484,6 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -39650,7 +41493,6 @@ /obj/structure/closet/radiation, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/machinery/light/small, @@ -39669,9 +41511,8 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bCb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Engineering - Power Tools"; @@ -39685,9 +41526,8 @@ /turf/open/floor/plasteel/caution, /area/engine/break_room) "bCd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/caution, /area/engine/break_room) @@ -39708,6 +41548,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bCg" = ( @@ -39735,9 +41578,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bCj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -39747,11 +41589,12 @@ /area/engine/break_room) "bCk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39773,8 +41616,7 @@ /area/engine/break_room) "bCm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39795,8 +41637,7 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39807,8 +41648,7 @@ /area/engine/break_room) "bCo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39831,9 +41671,8 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39857,6 +41696,7 @@ dir = 4 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -39874,6 +41714,8 @@ /area/hallway/primary/port) "bCu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -39978,17 +41820,17 @@ /area/storage/primary) "bCG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bCH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -40057,6 +41899,8 @@ /area/bridge) "bCP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -40109,14 +41953,12 @@ /obj/structure/table/wood, /obj/item/device/taperecorder, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/grimy, /area/bridge) "bCW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/carpet, @@ -40127,6 +41969,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -40134,7 +41978,6 @@ "bCY" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/carpet, @@ -40147,7 +41990,6 @@ /obj/item/weapon/folder/blue, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/grimy, @@ -40185,6 +42027,8 @@ /area/bridge) "bDe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -40220,6 +42064,7 @@ /area/security/detectives_office) "bDj" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -40253,6 +42098,7 @@ /area/hallway/primary/starboard) "bDn" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -40280,9 +42126,8 @@ id = "brig1"; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -40290,6 +42135,7 @@ /area/security/brig) "bDq" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -40307,9 +42153,13 @@ /area/security/brig) "bDs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40320,6 +42170,8 @@ /area/security/brig) "bDt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40332,6 +42184,8 @@ "bDu" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/security{ @@ -40347,6 +42201,8 @@ /area/security/warden) "bDv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40358,9 +42214,13 @@ /area/security/warden) "bDw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40372,12 +42232,13 @@ /area/security/warden) "bDx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -40385,6 +42246,8 @@ /area/security/warden) "bDy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -40393,12 +42256,18 @@ /area/security/warden) "bDz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/airlock/glass_security{ @@ -40408,10 +42277,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/warden) "bDA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -40422,6 +42296,8 @@ "bDB" = ( /obj/structure/tank_dispenser/oxygen, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -40430,6 +42306,7 @@ /area/security/warden) "bDC" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -40447,7 +42324,6 @@ /area/ai_monitored/turret_protected/ai) "bDE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -40462,8 +42338,7 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/gravity_generator) @@ -40473,8 +42348,7 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/camera{ c_tag = "Engineering - Gravity Generator"; @@ -40493,8 +42367,7 @@ pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -40504,7 +42377,6 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ @@ -40530,6 +42402,8 @@ /area/engine/gravity_generator) "bDK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ @@ -40540,6 +42414,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bDL" = ( @@ -40552,6 +42429,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bDM" = ( @@ -40572,7 +42452,6 @@ "bDP" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -40613,15 +42492,21 @@ /area/engine/break_room) "bDU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bDV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -40629,12 +42514,16 @@ /area/engine/break_room) "bDW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bDX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -40645,6 +42534,8 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ @@ -40655,10 +42546,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bDZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -40666,6 +42562,8 @@ /area/engine/break_room) "bEa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/lightsout, @@ -40674,6 +42572,8 @@ "bEb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -40683,6 +42583,8 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ @@ -40691,19 +42593,28 @@ req_one_access_txt = "32;19" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bEd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -40712,12 +42623,18 @@ /area/hallway/primary/port) "bEe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -40734,6 +42651,7 @@ "bEg" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/item/weapon/folder/yellow, @@ -40750,11 +42668,12 @@ /area/storage/tech) "bEh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -40762,23 +42681,27 @@ /area/storage/tech) "bEi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral, /area/storage/tech) "bEj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -40794,9 +42717,8 @@ /turf/open/floor/plasteel, /area/storage/tech) "bEl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 8 @@ -40857,9 +42779,8 @@ /area/storage/primary) "bEr" = ( /obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/storage/primary) @@ -40890,11 +42811,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/storage/primary) "bEv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/yellow/corner{ @@ -40918,6 +42841,8 @@ "bEz" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/command{ @@ -40985,9 +42910,8 @@ pixel_x = -32; pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Bridge - Command Chair"; @@ -40998,6 +42922,8 @@ /area/bridge) "bEG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -41025,9 +42951,8 @@ pixel_x = -7; pixel_y = -38 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/carpet, /area/bridge) @@ -41067,6 +42992,8 @@ req_access_txt = "20" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -41078,6 +43005,8 @@ /area/crew_quarters/heads/captain) "bEP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -41092,16 +43021,23 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bER" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -41111,15 +43047,21 @@ "bES" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/starboard) "bET" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -41129,6 +43071,8 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -41139,12 +43083,16 @@ "bEX" = ( /obj/structure/closet/secure_closet/detective, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/item/clothing/head/det_hat{ +/obj/item/clothing/head/fedora/det_hat{ icon_state = "curator" }, /obj/item/clothing/suit/det_suit{ @@ -41158,6 +43106,8 @@ "bEY" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/book/manual/wiki/security_space_law, @@ -41167,6 +43117,7 @@ "bEZ" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -41181,15 +43132,21 @@ "bFa" = ( /obj/structure/filingcabinet/security, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/vault, /area/security/detectives_office) "bFb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/trunk, @@ -41219,7 +43176,6 @@ "bFf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment, @@ -41233,9 +43189,8 @@ }, /area/hallway/primary/starboard) "bFg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) @@ -41248,12 +43203,17 @@ "bFi" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/grille, @@ -41266,6 +43226,8 @@ /area/security/brig) "bFj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -41274,6 +43236,8 @@ /area/security/brig) "bFk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -41282,12 +43246,18 @@ /area/security/brig) "bFl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -41301,6 +43271,8 @@ /area/security/brig) "bFm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -41308,9 +43280,13 @@ /area/security/brig) "bFn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -41334,6 +43310,8 @@ /area/security/warden) "bFq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -41379,9 +43357,8 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41389,10 +43366,11 @@ /area/ai_monitored/turret_protected/ai) "bFw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/circuit/green, @@ -41417,10 +43395,10 @@ /area/ai_monitored/turret_protected/ai) "bFz" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/machinery/power/apc{ @@ -41440,6 +43418,8 @@ /area/ai_monitored/turret_protected/ai) "bFB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -41451,9 +43431,8 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41469,6 +43448,8 @@ /area/ai_monitored/turret_protected/ai) "bFE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/hatch{ @@ -41540,7 +43521,6 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -41563,8 +43543,7 @@ req_access_txt = "56" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -41575,13 +43554,13 @@ /area/crew_quarters/heads/chief) "bFM" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -41594,8 +43573,7 @@ name = "Chief's Lockdown Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -41603,12 +43581,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bFO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -41618,7 +43598,6 @@ /area/engine/break_room) "bFP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/sortjunction{ @@ -41639,18 +43618,18 @@ "bFS" = ( /obj/structure/chair/stool/bar, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bFT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) @@ -41659,27 +43638,23 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/break_room) "bFV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/break_room) "bFW" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -41688,14 +43663,12 @@ "bFX" = ( /obj/structure/sign/securearea, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall, /area/engine/break_room) "bFY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/closet/firecloset, @@ -41705,9 +43678,8 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bFZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -41733,6 +43705,8 @@ /area/hallway/primary/port) "bGd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -41787,6 +43761,7 @@ /obj/item/weapon/stock_parts/console_screen, /obj/item/weapon/stock_parts/console_screen, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/vault{ @@ -41825,6 +43800,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/storage/primary) "bGn" = ( @@ -41874,6 +43852,8 @@ /area/bridge/meeting_room/council) "bGt" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -41884,6 +43864,8 @@ /area/bridge/meeting_room/council) "bGu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/light_switch{ @@ -41915,6 +43897,8 @@ /area/tcommsat/computer) "bGz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -41949,6 +43933,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -42017,16 +44003,23 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bGN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -42037,11 +44030,16 @@ req_access_txt = "4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/detectives_office) "bGP" = ( @@ -42050,6 +44048,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -42058,14 +44058,17 @@ /area/security/detectives_office) "bGQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -42073,6 +44076,8 @@ /area/security/detectives_office) "bGR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -42082,12 +44087,18 @@ /area/security/detectives_office) "bGS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -42097,16 +44108,19 @@ /area/security/detectives_office) "bGT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "bGU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/reagent_dispensers/peppertank{ @@ -42148,9 +44162,8 @@ }, /area/security/detectives_office) "bGY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Detective's Interrogation"; @@ -42179,9 +44192,8 @@ /turf/open/floor/plating, /area/security/brig) "bHb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 10 @@ -42189,7 +44201,6 @@ /area/security/brig) "bHc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/bed, @@ -42206,18 +44217,18 @@ /area/security/brig) "bHe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/security/brig) "bHf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -42227,6 +44238,7 @@ /area/security/brig) "bHg" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -42236,9 +44248,13 @@ "bHh" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_security{ @@ -42259,7 +44275,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/vault{ @@ -42285,7 +44300,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -42316,6 +44330,8 @@ /area/ai_monitored/turret_protected/ai) "bHo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -42323,12 +44339,16 @@ /area/ai_monitored/turret_protected/ai) "bHp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bHq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/ai_slipper{ @@ -42338,9 +44358,13 @@ /area/ai_monitored/turret_protected/ai) "bHr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -42348,6 +44372,8 @@ /area/ai_monitored/turret_protected/ai) "bHs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/circuit/green, @@ -42358,7 +44384,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -42374,7 +44399,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -42403,14 +44427,13 @@ name = "Transit Tube Access APC"; pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault, /area/engine/transit_tube) "bHz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -42436,7 +44459,6 @@ "bHB" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/button/door{ @@ -42451,22 +44473,19 @@ /area/crew_quarters/heads/chief) "bHC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/heads/chief) "bHD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/heads/chief) "bHE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ @@ -42476,10 +44495,11 @@ /area/crew_quarters/heads/chief) "bHF" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -42488,9 +44508,13 @@ /area/crew_quarters/heads/chief) "bHG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/firedoor, @@ -42499,15 +44523,19 @@ req_access_txt = "56" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bHH" = ( @@ -42516,35 +44544,41 @@ name = "Chief's Lockdown Shutters" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bHI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) "bHJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -42556,10 +44590,11 @@ /area/engine/break_room) "bHK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -42569,11 +44604,12 @@ /area/engine/break_room) "bHL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -42582,11 +44618,12 @@ /area/engine/break_room) "bHM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -42595,13 +44632,16 @@ /area/engine/break_room) "bHN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -42611,9 +44651,13 @@ /area/engine/break_room) "bHO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -42635,21 +44679,25 @@ /area/security/checkpoint/engineering) "bHR" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/security/checkpoint/engineering) "bHS" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_security{ @@ -42664,6 +44712,7 @@ /area/security/checkpoint/engineering) "bHT" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -42682,7 +44731,6 @@ /area/security/checkpoint/engineering) "bHV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/yellow/corner{ @@ -42758,10 +44806,7 @@ /turf/open/floor/plasteel, /area/storage/primary) "bIb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/storage/primary) "bIc" = ( @@ -42799,9 +44844,8 @@ /turf/open/floor/plasteel/grimy, /area/bridge/meeting_room/council) "bIg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/bridge/meeting_room/council) @@ -42814,6 +44858,8 @@ /area/bridge/meeting_room/council) "bIi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/comfy/brown, @@ -42824,6 +44870,8 @@ /area/bridge/meeting_room/council) "bIj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/comfy/black, @@ -42851,7 +44899,6 @@ /area/bridge/meeting_room/council) "bIl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/wood, @@ -42902,14 +44949,12 @@ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bIr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/camera{ @@ -42922,6 +44967,8 @@ /area/tcommsat/computer) "bIs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -42932,7 +44979,6 @@ /area/tcommsat/computer) "bIt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/grimy, @@ -42943,7 +44989,6 @@ }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/grimy, @@ -42984,9 +45029,8 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bIz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -42996,10 +45040,11 @@ /area/crew_quarters/heads/captain) "bIA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -43013,7 +45058,6 @@ /area/crew_quarters/heads/captain) "bIC" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /obj/effect/landmark/start/captain, @@ -43026,7 +45070,6 @@ /area/crew_quarters/heads/captain) "bIE" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -43068,6 +45111,8 @@ /area/storage/tools) "bIJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -43118,7 +45163,6 @@ "bIP" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/grimy, @@ -43128,6 +45172,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -43188,7 +45234,6 @@ /area/security/detectives_office) "bIW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/light/small{ @@ -43269,9 +45314,13 @@ /area/security/warden) "bJd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -43379,7 +45428,6 @@ "bJl" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -43400,7 +45448,6 @@ /area/ai_monitored/turret_protected/ai) "bJn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/camera/motion{ @@ -43441,7 +45488,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -43450,6 +45496,7 @@ /area/aisat) "bJt" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -43461,6 +45508,8 @@ /area/aisat) "bJu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/hatch{ @@ -43477,6 +45526,8 @@ "bJv" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -43487,10 +45538,11 @@ "bJw" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/space, @@ -43498,19 +45550,23 @@ "bJx" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/space, /area/space) "bJy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/hatch{ + cyclelinkeddir = 4; name = "MiniSat Exterior Access"; req_one_access_txt = "32;19" }, @@ -43523,6 +45579,8 @@ /area/engine/transit_tube) "bJz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -43534,6 +45592,8 @@ /area/engine/transit_tube) "bJA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -43543,10 +45603,11 @@ /area/engine/transit_tube) "bJB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -43572,9 +45633,8 @@ }, /area/crew_quarters/heads/chief) "bJE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ icon_state = "neutral"; @@ -43601,6 +45661,8 @@ /area/crew_quarters/heads/chief) "bJI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -43622,6 +45684,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bJL" = ( @@ -43669,6 +45734,8 @@ /area/engine/break_room) "bJQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -43692,6 +45759,7 @@ /area/engine/break_room) "bJU" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -43753,7 +45821,6 @@ /obj/item/weapon/electronics/firealarm, /obj/item/weapon/electronics/firealarm, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -43764,6 +45831,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -43818,6 +45887,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -43830,6 +45900,8 @@ /area/bridge/meeting_room/council) "bKk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/photocopier, @@ -43838,6 +45910,8 @@ "bKl" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -43849,6 +45923,8 @@ icon_state = "comfychair" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, @@ -43856,6 +45932,8 @@ "bKn" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/blue, @@ -43865,9 +45943,13 @@ "bKo" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/folder/red, @@ -43877,9 +45959,13 @@ "bKp" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/folder/yellow, @@ -43890,7 +45976,6 @@ /obj/structure/table/wood, /obj/item/weapon/storage/fancy/donut_box, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -43903,16 +45988,14 @@ /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKt" = ( /obj/machinery/vending/cigarette, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -43936,45 +46019,49 @@ /area/tcommsat/computer) "bKw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bKx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bKy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bKz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bKA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) @@ -44006,9 +46093,13 @@ "bKF" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -44017,26 +46108,28 @@ /area/crew_quarters/heads/captain) "bKG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bKH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bKI" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -44051,13 +46144,14 @@ }, /obj/item/clothing/mask/cigarette/cigar, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) "bKK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/extinguisher_cabinet{ @@ -44074,7 +46168,6 @@ pixel_x = -26 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/yellow/side{ @@ -44083,27 +46176,25 @@ /area/storage/tools) "bKM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/storage/tools) "bKN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, /area/storage/tools) "bKO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/storage/tools) "bKP" = ( @@ -44137,7 +46228,6 @@ /area/security/detectives_office) "bKS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/vault{ @@ -44146,7 +46236,6 @@ /area/security/detectives_office) "bKT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -44156,6 +46245,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -44178,7 +46269,6 @@ "bKX" = ( /obj/machinery/computer/secure_data, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/status_display{ @@ -44224,9 +46314,8 @@ id = "brig2"; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -44235,7 +46324,6 @@ /area/security/brig) "bLd" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/corner{ @@ -44244,6 +46332,8 @@ /area/security/brig) "bLe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -44278,15 +46368,16 @@ /area/security/warden) "bLh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/security/warden) "bLi" = ( @@ -44297,6 +46388,7 @@ /area/security/warden) "bLj" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -44310,10 +46402,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bLl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -44428,6 +46517,8 @@ "bLx" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -44506,6 +46597,8 @@ "bLG" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/item/weapon/folder/blue{ @@ -44521,6 +46614,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -44531,14 +46626,17 @@ /area/crew_quarters/heads/chief) "bLI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ @@ -44561,6 +46659,8 @@ "bLM" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ @@ -44571,6 +46671,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bLN" = ( @@ -44585,6 +46688,7 @@ /area/engine/break_room) "bLP" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white, @@ -44622,18 +46726,18 @@ }, /area/hallway/primary/port) "bLV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/port) "bLW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/yellow/corner{ @@ -44754,7 +46858,6 @@ "bMj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -44800,6 +46903,8 @@ /area/bridge/meeting_room/council) "bMp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/comfy/brown{ @@ -44856,6 +46961,8 @@ /area/tcommsat/computer) "bMy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -44894,14 +47001,12 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bME" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, @@ -44909,6 +47014,8 @@ "bMF" = ( /obj/structure/chair/comfy/brown, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -44926,7 +47033,6 @@ /area/crew_quarters/heads/captain) "bMH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/wood, @@ -45039,9 +47145,8 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -45049,6 +47154,8 @@ /area/security/detectives_office) "bMU" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -45056,18 +47163,28 @@ /area/security/detectives_office) "bMV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, @@ -45075,6 +47192,8 @@ "bMW" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/item/weapon/paper_bin, @@ -45088,6 +47207,8 @@ }, /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/button/door{ @@ -45123,9 +47244,8 @@ /area/security/detectives_office) "bNa" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -45133,12 +47253,18 @@ /area/security/detectives_office) "bNb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -45160,12 +47286,18 @@ /area/security/warden) "bNd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -45245,6 +47377,8 @@ "bNl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/portable_atmospherics/canister/air, @@ -45261,6 +47395,7 @@ charge = 5e+006 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/light{ @@ -45412,10 +47547,11 @@ "bNG" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/space, @@ -45423,10 +47559,11 @@ "bNH" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/space, @@ -45482,6 +47619,8 @@ "bNN" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/clipboard, @@ -45500,6 +47639,7 @@ /area/crew_quarters/heads/chief) "bNP" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -45576,6 +47716,8 @@ /area/engine/engineering) "bNW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -45599,6 +47741,7 @@ /area/engine/engineering) "bNZ" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -45607,9 +47750,13 @@ /area/security/checkpoint/engineering) "bOa" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -45622,6 +47769,7 @@ /area/security/checkpoint/engineering) "bOb" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -45650,6 +47798,8 @@ "bOf" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ @@ -45660,6 +47810,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/storage/tech) "bOg" = ( @@ -45672,6 +47825,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/storage/primary) "bOh" = ( @@ -45683,6 +47839,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/storage/primary) "bOi" = ( @@ -45708,6 +47867,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bOk" = ( @@ -45755,6 +47917,8 @@ /area/bridge/meeting_room/council) "bOo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -45828,7 +47992,6 @@ "bOy" = ( /obj/structure/table/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/flashlight/lamp/green, @@ -45850,6 +48013,8 @@ /obj/item/weapon/pen/fourcolor, /obj/item/weapon/stamp/captain, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -45956,6 +48121,8 @@ req_access_txt = "4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -46023,6 +48190,8 @@ /area/security/brig) "bOR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46048,9 +48217,13 @@ /area/security/warden) "bOT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -46059,6 +48232,7 @@ "bOU" = ( /obj/machinery/computer/prisoner, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -46195,7 +48369,6 @@ pixel_y = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line, @@ -46203,10 +48376,11 @@ /area/ai_monitored/turret_protected/aisat_interior) "bPc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -46215,7 +48389,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bPd" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -46257,7 +48430,6 @@ pixel_y = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/vault{ @@ -46292,7 +48464,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bPl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -46353,7 +48524,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bPq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault, @@ -46426,7 +48596,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/transit_tube/curved, @@ -46485,10 +48654,7 @@ }, /area/engine/transit_tube) "bPA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -46532,6 +48698,8 @@ "bPE" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/cartridge/engineering{ @@ -46547,9 +48715,8 @@ /turf/open/floor/plasteel/neutral, /area/crew_quarters/heads/chief) "bPF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 8; @@ -46558,10 +48725,11 @@ /area/crew_quarters/heads/chief) "bPG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -46570,12 +48738,18 @@ /area/crew_quarters/heads/chief) "bPH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -46584,21 +48758,24 @@ req_access_txt = "56" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bPI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -46606,35 +48783,40 @@ /area/crew_quarters/heads/chief) "bPJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/chief) "bPK" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/chief_engineer, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/chief) "bPL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46643,6 +48825,7 @@ /area/crew_quarters/heads/chief) "bPM" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -46663,12 +48846,13 @@ /area/engine/engineering) "bPO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/device/radio/beacon, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -46682,6 +48866,7 @@ /area/engine/engineering) "bPQ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -46690,18 +48875,18 @@ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/engine/engineering) "bPR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -46715,7 +48900,6 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/machinery/button/door{ @@ -46727,6 +48911,7 @@ pixel_y = 36 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/red/side{ @@ -46735,7 +48920,6 @@ /area/security/checkpoint/engineering) "bPT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -46744,11 +48928,12 @@ /area/security/checkpoint/engineering) "bPU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -46777,19 +48962,24 @@ /area/security/checkpoint/engineering) "bPW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/port) "bPX" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -46802,11 +48992,16 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bPZ" = ( @@ -46814,6 +49009,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -46825,6 +49022,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -46837,6 +49036,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -46845,10 +49046,14 @@ /area/hallway/primary/port) "bQc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -46857,6 +49062,8 @@ /area/hallway/primary/port) "bQd" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -46868,6 +49075,8 @@ /area/hallway/primary/port) "bQe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -46879,9 +49088,13 @@ /area/hallway/primary/port) "bQf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -46891,6 +49104,8 @@ /area/hallway/primary/port) "bQg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -46908,6 +49123,8 @@ /area/hallway/primary/port) "bQh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -46921,6 +49138,8 @@ /area/hallway/primary/port) "bQi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -46930,10 +49149,11 @@ /area/hallway/primary/port) "bQj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/yellow/corner{ @@ -46943,6 +49163,8 @@ "bQk" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -46954,13 +49176,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bQl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -46970,7 +49199,6 @@ /area/hallway/primary/central) "bQm" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -46980,6 +49208,8 @@ /area/crew_quarters/heads/hop) "bQo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -47026,6 +49256,8 @@ /area/tcommsat/server) "bQw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -47062,6 +49294,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/captain, @@ -47116,6 +49350,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bQF" = ( @@ -47176,6 +49413,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bQK" = ( @@ -47216,6 +49456,8 @@ /area/hallway/primary/starboard) "bQN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -47254,7 +49496,6 @@ /area/hallway/primary/starboard) "bQQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -47286,6 +49527,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bQT" = ( @@ -47315,7 +49559,6 @@ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/light{ @@ -47350,6 +49593,8 @@ /area/security/warden) "bQY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -47461,11 +49706,12 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "bRh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -47474,13 +49720,16 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -47489,6 +49738,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/holopad, @@ -47499,11 +49750,12 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -47511,6 +49763,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -47525,6 +49779,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -47545,10 +49801,11 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -47557,19 +49814,22 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "bRp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -47577,9 +49837,13 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRq" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /mob/living/simple_animal/bot/secbot/pingsky, @@ -47587,6 +49851,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -47594,16 +49860,19 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "bRt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -47612,6 +49881,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -47625,23 +49896,23 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/ai_monitored/turret_protected/aisat_interior) "bRw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -47649,6 +49920,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -47662,6 +49935,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bRy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -47670,10 +49945,11 @@ /area/aisat) "bRz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -47682,11 +49958,12 @@ /area/aisat) "bRA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -47694,6 +49971,8 @@ /area/aisat) "bRB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -47702,6 +49981,8 @@ /area/aisat) "bRC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/holopad, @@ -47711,11 +49992,12 @@ /area/aisat) "bRD" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -47835,7 +50117,6 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -47845,7 +50126,6 @@ "bRP" = ( /obj/structure/filingcabinet/chestdrawer, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/computer/security/telescreen{ @@ -47874,6 +50154,8 @@ /area/crew_quarters/heads/chief) "bRS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -47913,6 +50195,8 @@ /area/crew_quarters/heads/chief) "bRY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -47930,7 +50214,6 @@ /area/crew_quarters/heads/chief) "bSa" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -47940,11 +50223,12 @@ /area/engine/engineering) "bSb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -47958,10 +50242,12 @@ /area/engine/engineering) "bSd" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -47970,28 +50256,35 @@ /area/engine/engineering) "bSe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/red/side{ dir = 8 }, /area/security/checkpoint/engineering) "bSf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, @@ -47999,15 +50292,21 @@ "bSg" = ( /obj/structure/chair/office/dark, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/engineering) "bSh" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, @@ -48028,7 +50327,6 @@ "bSj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/yellow/corner{ @@ -48037,6 +50335,8 @@ /area/hallway/primary/port) "bSk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/navbeacon{ @@ -48068,16 +50368,12 @@ /turf/open/floor/plasteel/neutral, /area/hallway/primary/port) "bSp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/hallway/primary/port) "bSq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/port) @@ -48089,6 +50385,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bSs" = ( @@ -48101,6 +50400,8 @@ /area/hallway/primary/central) "bSt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/navbeacon{ @@ -48187,6 +50488,8 @@ /area/crew_quarters/heads/hop) "bSA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -48212,7 +50515,6 @@ /area/crew_quarters/heads/hop) "bSD" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -48238,6 +50540,8 @@ /area/tcommsat/server) "bSG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/fans/tiny, @@ -48255,7 +50559,6 @@ /area/tcommsat/server) "bSI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -48278,6 +50581,8 @@ pixel_y = -26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -48305,7 +50610,6 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/landmark/start/captain, @@ -48323,16 +50627,12 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/captain/private) "bSQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -48346,10 +50646,14 @@ /area/hallway/primary/central) "bSR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/navbeacon{ @@ -48360,6 +50664,8 @@ /area/hallway/primary/central) "bSS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -48372,6 +50678,8 @@ "bST" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass{ @@ -48380,10 +50688,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bSU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -48391,50 +50704,66 @@ "bSV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) "bSW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) "bSX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bSY" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) "bSZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) "bTa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -48442,6 +50771,8 @@ /area/hallway/primary/starboard) "bTb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment, @@ -48449,19 +50780,24 @@ /area/hallway/primary/starboard) "bTc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/starboard) "bTd" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -48470,16 +50806,23 @@ "bTe" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bTf" = ( /obj/item/device/radio/beacon, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/navbeacon{ @@ -48494,10 +50837,11 @@ /area/hallway/primary/starboard) "bTg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/sortjunction{ @@ -48511,9 +50855,12 @@ "bTh" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 4; name = "Brig"; req_access_txt = "63" }, @@ -48526,13 +50873,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "bTi" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48548,9 +50902,13 @@ /area/security/brig) "bTj" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ @@ -48568,6 +50926,8 @@ /area/security/brig) "bTk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48581,9 +50941,13 @@ /area/security/brig) "bTl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48634,9 +50998,13 @@ /area/security/warden) "bTp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -48644,6 +51012,8 @@ /area/security/warden) "bTq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48656,12 +51026,18 @@ "bTr" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/security{ @@ -48674,10 +51050,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bTs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48690,6 +51071,8 @@ /area/ai_monitored/security/armory) "bTt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48712,10 +51095,11 @@ pixel_y = -3 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -48723,6 +51107,8 @@ /area/ai_monitored/security/armory) "bTv" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ @@ -48745,7 +51131,6 @@ }, /obj/machinery/door/window/southright, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -48767,7 +51152,6 @@ "bTz" = ( /obj/structure/sign/nosmoking_2, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/closed/wall/r_wall, @@ -48787,6 +51171,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -48846,6 +51232,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bTG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -48860,6 +51248,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bTI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -48926,7 +51316,6 @@ /area/aisat) "bTO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/door/window/southleft, @@ -49066,6 +51455,7 @@ /area/crew_quarters/heads/chief) "bUc" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -49079,9 +51469,11 @@ "bUd" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -49113,6 +51505,8 @@ "bUf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -49136,6 +51530,8 @@ /area/engine/engineering) "bUi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -49169,6 +51565,8 @@ /area/security/checkpoint/engineering) "bUl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/computer/secure_data, @@ -49193,7 +51591,6 @@ /area/security/checkpoint/engineering) "bUn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/yellow/corner{ @@ -49205,6 +51602,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -49224,6 +51623,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bUr" = ( @@ -49236,7 +51638,6 @@ /area/hallway/primary/port) "bUs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -49297,11 +51698,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bUy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -49368,17 +51771,17 @@ /area/crew_quarters/heads/hop) "bUG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) "bUH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -49415,6 +51818,8 @@ /area/tcommsat/server) "bUM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/command{ @@ -49457,6 +51862,8 @@ req_access_txt = "20" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -49480,7 +51887,6 @@ /area/crew_quarters/heads/captain/private) "bUU" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -49503,6 +51909,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bUW" = ( @@ -49516,7 +51925,6 @@ /area/hallway/primary/starboard) "bUX" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -49554,6 +51962,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bVb" = ( @@ -49568,16 +51979,19 @@ /area/hallway/primary/starboard) "bVc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, @@ -49614,6 +52028,8 @@ /area/hallway/primary/starboard) "bVg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -49627,7 +52043,6 @@ /area/hallway/primary/starboard) "bVh" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -49660,6 +52075,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bVl" = ( @@ -49673,6 +52091,7 @@ /area/hallway/primary/starboard) "bVn" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -49685,12 +52104,11 @@ /area/security/brig) "bVo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -49698,6 +52116,8 @@ /area/security/brig) "bVp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/poddoor/preopen{ @@ -49709,6 +52129,7 @@ /area/security/brig) "bVq" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -49717,15 +52138,21 @@ /area/security/brig) "bVr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, /area/security/brig) "bVs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -49735,12 +52162,18 @@ "bVt" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_security{ @@ -49751,19 +52184,24 @@ /area/security/warden) "bVu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel, /area/security/warden) "bVv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/button/door{ @@ -49788,9 +52226,8 @@ req_access_txt = "63" }, /obj/effect/landmark/start/warden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/security/warden) @@ -49802,6 +52239,8 @@ "bVx" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/security{ @@ -49811,20 +52250,22 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bVy" = ( /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bVz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bVA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -49926,6 +52367,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "bVJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -50053,6 +52496,8 @@ "bVZ" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ @@ -50063,6 +52508,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "bWa" = ( @@ -50072,6 +52520,8 @@ /area/engine/engineering) "bWb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -50083,6 +52533,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) "bWc" = ( @@ -50101,17 +52554,17 @@ /area/hallway/primary/port) "bWe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side, /area/hallway/primary/port) "bWf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/closet/emcloset, @@ -50129,6 +52582,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port) "bWi" = ( @@ -50176,6 +52632,7 @@ /area/hallway/primary/central) "bWo" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -50189,6 +52646,8 @@ "bWp" = ( /obj/machinery/computer/card, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -50197,12 +52656,16 @@ /area/crew_quarters/heads/hop) "bWq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bWr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment, @@ -50210,9 +52673,13 @@ /area/crew_quarters/heads/hop) "bWs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/grimy, @@ -50265,6 +52732,8 @@ /area/tcommsat/server) "bWz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -50313,6 +52782,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50397,6 +52868,8 @@ req_access_txt = "42" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50418,6 +52891,8 @@ "bWT" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock{ @@ -50479,6 +52954,7 @@ "bWY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 4; name = "Brig"; req_access_txt = "63" }, @@ -50488,6 +52964,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "bWZ" = ( @@ -50551,6 +53030,8 @@ /area/security/warden) "bXf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -50604,7 +53085,6 @@ "bXk" = ( /obj/structure/chair/office/dark, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/corner{ @@ -50651,6 +53131,8 @@ /area/ai_monitored/security/armory) "bXn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -50673,6 +53155,8 @@ /area/engine/engineering) "bXp" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/grille, @@ -50681,6 +53165,8 @@ /area/engine/engineering) "bXq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -50689,6 +53175,8 @@ /area/engine/engineering) "bXr" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/grille, @@ -50699,6 +53187,8 @@ /area/engine/engineering) "bXs" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/grille, @@ -50707,9 +53197,13 @@ /area/engine/engineering) "bXt" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -50718,6 +53212,8 @@ /area/engine/engineering) "bXu" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/grille, @@ -50759,7 +53255,6 @@ "bXz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -50772,8 +53267,7 @@ /area/engine/engineering) "bXA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -50790,8 +53284,7 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -50818,13 +53311,16 @@ /area/engine/engineering) "bXD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/sortjunction{ @@ -50838,6 +53334,8 @@ /area/engine/engineering) "bXE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -50851,14 +53349,15 @@ /area/engine/engineering) "bXF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/firealarm{ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -50867,16 +53366,21 @@ /area/engine/engineering) "bXG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -50886,9 +53390,12 @@ /area/engine/engineering) "bXH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -50897,9 +53404,12 @@ /area/engine/engineering) "bXI" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/power/smes/engineering{ @@ -50909,6 +53419,7 @@ /area/engine/engineering) "bXJ" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/smes/engineering{ @@ -50923,11 +53434,16 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port) "bXL" = ( @@ -50953,6 +53469,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, @@ -51027,7 +53544,6 @@ /area/library) "bXX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -51040,11 +53556,12 @@ /area/hallway/primary/central) "bXY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) @@ -51060,7 +53577,6 @@ "bYb" = ( /obj/machinery/computer/secure_data, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -51069,6 +53585,8 @@ /area/crew_quarters/heads/hop) "bYc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -51083,6 +53601,8 @@ /area/crew_quarters/heads/hop) "bYe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/camera{ @@ -51099,6 +53619,8 @@ /area/tcommsat/server) "bYf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -51109,13 +53631,14 @@ /area/tcommsat/server) "bYg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; name = "server vent"; - on = 1; pressure_checks = 0 }, /turf/open/floor/plasteel/vault{ @@ -51126,6 +53649,8 @@ /area/tcommsat/server) "bYh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -51136,6 +53661,8 @@ /area/tcommsat/server) "bYi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -51148,10 +53675,14 @@ "bYj" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/folder/yellow, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/circuit/green{ @@ -51162,17 +53693,14 @@ /area/tcommsat/server) "bYl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "server vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/plasteel/vault{ dir = 5; @@ -51182,6 +53710,8 @@ /area/tcommsat/server) "bYm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -51192,6 +53722,8 @@ /area/tcommsat/server) "bYn" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -51213,6 +53745,8 @@ /area/crew_quarters/heads/captain/private) "bYp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -51229,7 +53763,6 @@ /area/crew_quarters/heads/captain/private) "bYr" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, @@ -51255,7 +53788,6 @@ "bYu" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/grimy, @@ -51271,7 +53803,6 @@ "bYw" = ( /obj/machinery/vending/snack/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -51335,6 +53866,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -51375,6 +53908,8 @@ /area/lawoffice) "bYK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -51427,7 +53962,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner{ @@ -51436,11 +53970,12 @@ /area/security/brig) "bYQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/security/brig) @@ -51469,6 +54004,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "bYU" = ( @@ -51512,6 +54050,8 @@ /area/ai_monitored/turret_protected/ai_upload) "bZa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -51564,6 +54104,8 @@ /area/engine/engineering) "bZh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/grille, @@ -51574,6 +54116,8 @@ /area/engine/engineering) "bZi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/grille, @@ -51584,6 +54128,8 @@ /area/engine/engineering) "bZj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -51591,21 +54137,29 @@ /area/engine/engineering) "bZk" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Containment Access"; req_access_txt = "10; 13" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "bZl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/fans/tiny, @@ -51615,6 +54169,8 @@ /area/engine/engineering) "bZm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -51625,34 +54181,43 @@ "bZn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "bZo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "bZp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "bZq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "bZr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -51664,10 +54229,14 @@ "bZs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -51678,28 +54247,29 @@ /area/engine/engineering) "bZt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "bZu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "bZv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -51710,9 +54280,13 @@ "bZw" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_engineering{ @@ -51720,22 +54294,22 @@ req_access_txt = "32" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "bZx" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ icon_state = "0-2"; @@ -51748,12 +54322,10 @@ /area/engine/engineering) "bZy" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ icon_state = "0-2"; @@ -51771,14 +54343,12 @@ pixel_y = 32 }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/cable{ @@ -51802,6 +54372,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -51821,6 +54393,8 @@ /area/maintenance/port) "bZF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -51847,15 +54421,13 @@ /area/library) "bZI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, /area/library) "bZJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -51885,10 +54457,7 @@ /obj/structure/chair/office/dark{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/library) "bZN" = ( @@ -51904,7 +54473,6 @@ /area/library) "bZO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/blue/corner, @@ -51918,15 +54486,16 @@ /turf/open/floor/plating, /area/hallway/primary/central) "bZQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/primary/central) "bZR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -51936,12 +54505,18 @@ /area/crew_quarters/heads/hop) "bZS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -51953,6 +54528,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -51981,6 +54557,8 @@ /area/tcommsat/server) "bZW" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -51992,10 +54570,11 @@ "bZX" = ( /obj/machinery/telecomms/broadcaster/preset_left, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/circuit{ @@ -52006,10 +54585,11 @@ /area/tcommsat/server) "bZY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -52021,10 +54601,11 @@ "bZZ" = ( /obj/machinery/message_server, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/circuit/green{ @@ -52035,11 +54616,12 @@ /area/tcommsat/server) "caa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -52051,16 +54633,21 @@ "cab" = ( /obj/machinery/telecomms/hub/preset, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/circuit/green{ @@ -52072,10 +54659,11 @@ "cad" = ( /obj/machinery/blackbox_recorder, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/circuit/green{ @@ -52087,10 +54675,11 @@ "cae" = ( /obj/machinery/telecomms/broadcaster/preset_right, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/circuit{ @@ -52101,13 +54690,15 @@ /area/tcommsat/server) "caf" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 4 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/vault{ @@ -52144,6 +54735,8 @@ icon_state = "comfychair" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/landmark/start/captain, @@ -52155,12 +54748,11 @@ /area/crew_quarters/heads/captain/private) "caj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -52169,9 +54761,13 @@ "cak" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -52183,11 +54779,12 @@ /area/crew_quarters/heads/captain/private) "cal" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) @@ -52197,6 +54794,8 @@ req_access_txt = "20" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, @@ -52263,16 +54862,19 @@ /area/security/courtroom) "cau" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/security/courtroom) "cav" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52282,9 +54884,13 @@ /area/security/courtroom) "caw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -52292,6 +54898,8 @@ /area/security/courtroom) "cax" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52304,6 +54912,8 @@ "cay" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -52318,9 +54928,13 @@ /area/lawoffice) "caz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52330,6 +54944,8 @@ /area/lawoffice) "caA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52340,9 +54956,13 @@ "caB" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52353,11 +54973,12 @@ /area/lawoffice) "caC" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/lawyer, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -52373,6 +54994,8 @@ "caE" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -52384,10 +55007,7 @@ dir = 1 }, /obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 1 }, @@ -52395,6 +55015,8 @@ "caG" = ( /obj/machinery/computer/secure_data, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/button/flasher{ @@ -52433,17 +55055,13 @@ /area/security/brig) "caI" = ( /obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 1 }, /area/security/brig) "caJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner{ @@ -52452,9 +55070,13 @@ /area/security/brig) "caK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/landmark/lightsout, @@ -52466,6 +55088,8 @@ "caL" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -52479,6 +55103,8 @@ /area/security/brig) "caM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52490,6 +55116,8 @@ /area/security/brig) "caN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52501,9 +55129,13 @@ /area/security/brig) "caO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52515,6 +55147,7 @@ /area/security/brig) "caP" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -52557,7 +55190,6 @@ /area/security/brig) "caS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/red/side{ @@ -52607,13 +55239,14 @@ /area/ai_monitored/turret_protected/ai_upload) "caY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai_upload) "caZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -52632,7 +55265,6 @@ /area/ai_monitored/turret_protected/ai_upload) "cbb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/circuit/green, @@ -52678,7 +55310,6 @@ "cbg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/status_display{ @@ -52695,7 +55326,6 @@ /area/engine/engineering) "cbi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/corner{ @@ -52705,8 +55335,7 @@ /area/engine/engineering) "cbj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 2; @@ -52718,12 +55347,13 @@ /area/engine/engineering) "cbk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -52746,8 +55376,7 @@ /area/engine/engineering) "cbm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -52759,8 +55388,7 @@ /area/engine/engineering) "cbn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -52768,6 +55396,8 @@ icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -52778,13 +55408,13 @@ "cbo" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -52795,9 +55425,8 @@ /area/engine/engineering) "cbp" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable{ d1 = 4; @@ -52805,6 +55434,8 @@ icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -52821,6 +55452,8 @@ icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line, @@ -52835,11 +55468,12 @@ pixel_x = 26; pixel_y = -26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -52858,6 +55492,8 @@ "cbt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -52875,6 +55511,8 @@ /area/maintenance/port) "cbw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -52892,15 +55530,13 @@ /turf/open/floor/wood, /area/library) "cby" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/library) "cbz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -52948,11 +55584,12 @@ /area/crew_quarters/heads/hop) "cbG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) @@ -52970,13 +55607,14 @@ }, /obj/item/weapon/storage/lockbox/loyalty, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cbJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -53003,6 +55641,8 @@ "cbM" = ( /obj/machinery/ntnet_relay, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/circuit/green{ @@ -53021,6 +55661,8 @@ /area/tcommsat/server) "cbO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -53052,7 +55694,6 @@ }, /obj/item/weapon/reagent_containers/food/drinks/flask/gold, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/item/weapon/razor, @@ -53078,6 +55719,8 @@ /area/crew_quarters/heads/captain/private) "cbT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -53094,7 +55737,6 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/machinery/camera{ @@ -53139,7 +55781,6 @@ /area/security/courtroom) "cbZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -53162,9 +55803,8 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -53189,6 +55829,8 @@ /area/security/courtroom) "cce" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -53197,7 +55839,6 @@ /area/security/courtroom) "ccf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -53237,17 +55878,17 @@ /area/lawoffice) "ccj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/newscaster{ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, @@ -53270,21 +55911,20 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/lawoffice) "ccm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -53302,6 +55942,8 @@ /area/lawoffice) "cco" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -53316,13 +55958,14 @@ /area/security/brig) "ccp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, /area/security/brig) "ccq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/filingcabinet/chestdrawer, @@ -53343,6 +55986,8 @@ /area/security/brig) "ccs" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -53350,12 +55995,18 @@ /area/security/brig) "cct" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -53369,32 +56020,40 @@ /area/security/brig) "ccu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) "ccv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, /area/security/brig) "ccw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -53402,6 +56061,7 @@ /area/security/brig) "ccx" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -53435,20 +56095,25 @@ /area/security/brig) "ccA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/security/brig) "ccB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/security_officer, @@ -53457,6 +56122,8 @@ "ccC" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -53464,17 +56131,20 @@ /area/security/brig) "ccD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/brig) "ccE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -53489,6 +56159,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -53511,9 +56183,11 @@ /area/space) "ccH" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -53526,6 +56200,8 @@ /area/ai_monitored/turret_protected/ai_upload) "ccI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -53546,6 +56222,8 @@ /area/ai_monitored/turret_protected/ai_upload) "ccJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -53554,19 +56232,24 @@ /area/ai_monitored/turret_protected/ai_upload) "ccK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai_upload) "ccL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -53578,12 +56261,18 @@ /area/ai_monitored/turret_protected/ai_upload) "ccM" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -53596,10 +56285,11 @@ /area/ai_monitored/turret_protected/ai_upload) "ccN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -53608,6 +56298,8 @@ /area/ai_monitored/turret_protected/ai_upload) "ccO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -53615,6 +56307,8 @@ /area/ai_monitored/turret_protected/ai_upload) "ccP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -53639,9 +56333,11 @@ /area/ai_monitored/turret_protected/ai_upload) "ccQ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -53727,6 +56423,8 @@ /area/engine/engineering) "cda" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -53744,6 +56442,8 @@ "cdc" = ( /obj/machinery/vending/engivend, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/delivery, @@ -53754,6 +56454,8 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -53768,6 +56470,7 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/camera{ @@ -53799,6 +56502,8 @@ "cdi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -53902,6 +56607,8 @@ "cdx" = ( /obj/machinery/computer/security/mining, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -53911,6 +56618,8 @@ "cdy" = ( /obj/structure/chair/office/dark, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/head_of_personnel, @@ -53927,6 +56636,8 @@ /area/crew_quarters/heads/hop) "cdA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/circuit/green{ @@ -53992,6 +56703,8 @@ req_access_txt = "20" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -53999,6 +56712,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/captain/private) "cdJ" = ( @@ -54051,6 +56767,8 @@ /area/security/courtroom) "cdP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -54074,7 +56792,6 @@ /obj/structure/table/wood, /obj/item/weapon/paper_bin, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/blue/side{ @@ -54098,9 +56815,8 @@ pixel_y = 3 }, /obj/effect/landmark/start/lawyer, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/lawoffice) @@ -54129,6 +56845,8 @@ /area/lawoffice) "cdW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -54149,14 +56867,15 @@ /area/lawoffice) "cdZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/nanotrasen{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Security - Brig Desk"; @@ -54167,9 +56886,13 @@ /area/security/brig) "cea" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/extinguisher_cabinet{ @@ -54189,9 +56912,13 @@ req_access_txt = "63" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -54203,6 +56930,8 @@ /area/security/brig) "cec" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -54212,6 +56941,8 @@ /area/security/brig) "ced" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/chair{ @@ -54231,6 +56962,8 @@ /area/security/brig) "cef" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -54240,7 +56973,6 @@ /area/security/brig) "ceg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -54279,6 +57011,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -54290,9 +57024,13 @@ /obj/machinery/recharger, /obj/machinery/light, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side, @@ -54303,6 +57041,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side, @@ -54311,6 +57051,8 @@ /obj/structure/table/reinforced, /obj/machinery/recharger, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/side, @@ -54335,9 +57077,8 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload) "ceq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -54345,10 +57086,11 @@ /area/ai_monitored/turret_protected/ai_upload) "cer" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/circuit/green, @@ -54361,6 +57103,8 @@ /area/ai_monitored/turret_protected/ai_upload) "cet" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -54375,15 +57119,13 @@ /area/ai_monitored/turret_protected/ai_upload) "cev" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai_upload) "cew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -54546,6 +57288,8 @@ "ceP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -54598,7 +57342,6 @@ /area/hallway/primary/central) "ceW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -54637,6 +57380,8 @@ "cfb" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -54659,6 +57404,8 @@ /area/tcommsat/server) "cff" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/command{ @@ -54703,6 +57450,8 @@ /area/teleporter) "cfl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/camera/motion{ @@ -54725,6 +57474,8 @@ /area/teleporter) "cfm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -54738,10 +57489,11 @@ /area/teleporter) "cfn" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -54763,7 +57515,6 @@ /area/teleporter) "cfq" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -54787,7 +57538,6 @@ /area/security/courtroom) "cft" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -54828,6 +57578,8 @@ /area/security/courtroom) "cfz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -54884,6 +57636,8 @@ /area/lawoffice) "cfG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -54901,24 +57655,30 @@ /area/lawoffice) "cfI" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/security/brig) "cfJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -54927,16 +57687,19 @@ req_access_txt = "63" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "cfK" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -54952,9 +57715,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -54982,6 +57744,8 @@ /area/ai_monitored/turret_protected/ai_upload) "cfO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -54989,6 +57753,8 @@ /area/ai_monitored/turret_protected/ai_upload) "cfP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/ai_slipper{ @@ -55120,10 +57886,14 @@ "cgd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -55133,6 +57903,8 @@ /area/engine/engineering) "cge" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -55141,6 +57913,8 @@ /area/engine/engineering) "cgf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/station_engineer, @@ -55149,6 +57923,7 @@ "cgg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -55191,6 +57966,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -55208,7 +57985,6 @@ /area/library) "cgn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -55235,7 +58011,6 @@ /area/library) "cgr" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -55281,6 +58056,8 @@ /area/crew_quarters/heads/hop) "cgw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -55305,6 +58082,8 @@ /area/teleporter) "cgA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -55316,13 +58095,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/teleporter) "cgB" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/light{ @@ -55388,7 +58167,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -55419,6 +58197,8 @@ /area/security/courtroom) "cgL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -55429,7 +58209,6 @@ "cgM" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/blue/side{ @@ -55457,6 +58236,8 @@ /area/lawoffice) "cgQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -55468,9 +58249,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/turf/open/floor/plating, /area/lawoffice) "cgR" = ( /obj/effect/decal/cleanable/cobweb, @@ -55554,10 +58336,11 @@ /area/security/range) "cgZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -55611,9 +58394,8 @@ /area/security/range) "che" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -55652,6 +58434,8 @@ /area/ai_monitored/turret_protected/ai_upload) "chk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/flasher{ @@ -55665,6 +58449,8 @@ /area/ai_monitored/turret_protected/ai_upload) "chl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/circuit/green, @@ -55788,9 +58574,8 @@ /turf/open/floor/plating, /area/maintenance/port) "chD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /obj/effect/turf_decal/stripes/line, @@ -55817,6 +58602,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "chG" = ( @@ -55831,6 +58619,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -55840,6 +58630,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -55850,6 +58642,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -55861,6 +58655,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -55868,16 +58664,21 @@ "chL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/delivery, @@ -55889,6 +58690,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -55897,10 +58700,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/library) "chN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -55910,6 +58718,8 @@ /area/library) "chO" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -55920,7 +58730,6 @@ /area/library) "chP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -55962,7 +58771,6 @@ /area/crew_quarters/heads/hop) "chX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -55972,6 +58780,8 @@ /area/crew_quarters/heads/hop) "chY" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment, @@ -55979,15 +58789,16 @@ /area/crew_quarters/heads/hop) "chZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) "cia" = ( @@ -56006,6 +58817,8 @@ /area/tcommsat/server) "cic" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -56049,6 +58862,7 @@ pixel_y = 28 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/disposalpipe/segment{ @@ -56072,6 +58886,8 @@ /area/teleporter) "cii" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -56116,6 +58932,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/teleporter) "cim" = ( @@ -56139,9 +58958,8 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -56153,7 +58971,6 @@ }, /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -56178,6 +58995,8 @@ /area/security/courtroom) "cis" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side, @@ -56207,6 +59026,8 @@ "ciw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/landmark/blobstart, @@ -56221,6 +59042,8 @@ "cix" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -56232,6 +59055,8 @@ /area/maintenance/starboard) "ciy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -56243,13 +59068,16 @@ "ciz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/junction{ @@ -56260,6 +59088,8 @@ /area/maintenance/starboard) "ciA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small{ @@ -56277,6 +59107,8 @@ /area/maintenance/starboard) "ciB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56289,6 +59121,8 @@ /area/maintenance/starboard) "ciC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -56303,6 +59137,8 @@ "ciD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56317,6 +59153,8 @@ "ciE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56330,6 +59168,8 @@ "ciF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56342,13 +59182,16 @@ /area/maintenance/starboard) "ciG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/junction{ @@ -56375,15 +59218,14 @@ /area/security/range) "ciI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -56394,15 +59236,23 @@ /area/security/range) "ciJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -56414,11 +59264,12 @@ /area/security/range) "ciK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -56432,6 +59283,8 @@ /area/security/range) "ciL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -56442,12 +59295,16 @@ /area/security/range) "ciM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/security/range) "ciN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -56456,9 +59313,13 @@ /area/security/range) "ciO" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/target/syndicate, @@ -56468,6 +59329,7 @@ /area/security/range) "ciP" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -56517,6 +59379,8 @@ /area/ai_monitored/turret_protected/ai_upload) "ciT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -56614,6 +59478,9 @@ dir = 2 }, /obj/structure/barricade/wooden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cjc" = ( @@ -56631,7 +59498,6 @@ /obj/item/device/flashlight, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -56651,7 +59517,6 @@ "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -56662,6 +59527,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -56685,10 +59552,11 @@ /area/library) "cjk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -56756,9 +59624,8 @@ pixel_y = 26 }, /obj/effect/landmark/start/head_of_personnel, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) @@ -56781,6 +59648,8 @@ /area/crew_quarters/heads/hop) "cjx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56791,6 +59660,8 @@ /area/crew_quarters/heads/hop) "cjy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -56798,10 +59669,11 @@ /area/crew_quarters/heads/hop) "cjz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -56844,6 +59716,8 @@ /area/tcommsat/server) "cjE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -56856,9 +59730,8 @@ /area/tcommsat/server) "cjF" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /obj/effect/turf_decal/stripes/line{ @@ -56892,7 +59765,6 @@ /area/teleporter) "cjI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, @@ -56906,6 +59778,8 @@ "cjK" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56920,6 +59794,8 @@ /area/teleporter) "cjL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -56934,13 +59810,16 @@ /area/teleporter) "cjM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/junction{ @@ -56951,6 +59830,8 @@ /area/teleporter) "cjN" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -57022,17 +59903,17 @@ /area/security/courtroom) "cjU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/security/courtroom) "cjV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -57051,6 +59932,8 @@ "cjY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -57070,7 +59953,6 @@ /obj/structure/girder, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -57121,7 +60003,6 @@ "ckg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side, @@ -57129,6 +60010,8 @@ "ckh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -57152,6 +60035,7 @@ pixel_x = -26 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/decal/cleanable/dirt, @@ -57161,9 +60045,13 @@ /area/security/range) "ckk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -57228,9 +60116,8 @@ "ckp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -57243,6 +60130,8 @@ /area/security/range) "ckr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -57416,6 +60305,8 @@ "ckL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57431,18 +60322,23 @@ pixel_y = 3 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/wood, /area/library) "ckN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/library) "ckO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -57467,7 +60363,6 @@ }, /obj/effect/landmark/start/librarian, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/carpet, @@ -57509,6 +60404,8 @@ "ckY" = ( /obj/machinery/disposal/bin, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/trunk{ @@ -57530,6 +60427,8 @@ pixel_y = -26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57546,9 +60445,8 @@ pixel_x = -23 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -57557,7 +60455,6 @@ /obj/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -57567,6 +60464,8 @@ /area/tcommsat/server) "cle" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57609,7 +60508,6 @@ /area/teleporter) "cli" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -57620,9 +60518,8 @@ pixel_x = -7; pixel_y = -26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Bridge - Teleporter"; @@ -57638,7 +60535,6 @@ /area/teleporter) "cll" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line, @@ -57650,9 +60546,8 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -57661,6 +60556,8 @@ /area/teleporter) "cln" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -57703,12 +60600,16 @@ /area/security/courtroom) "clt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/side, /area/security/courtroom) "clu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side, @@ -57720,6 +60621,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/neutral/side, @@ -57730,12 +60632,17 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "clx" = ( @@ -57752,6 +60659,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57759,6 +60668,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/starboard) "clA" = ( @@ -57780,11 +60692,16 @@ req_access_txt = "63" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/range) "clC" = ( @@ -57841,6 +60758,8 @@ /area/space) "clM" = ( /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -57890,6 +60809,9 @@ dir = 8 }, /obj/structure/barricade/wooden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "clT" = ( @@ -57931,10 +60853,11 @@ /area/engine/engineering) "clW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/corner{ @@ -57944,8 +60867,7 @@ /area/engine/engineering) "clX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -57958,19 +60880,20 @@ name = "Engineering Secure Storage Lockdown" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "clZ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -57981,8 +60904,7 @@ /obj/machinery/shieldgen, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -57990,8 +60912,7 @@ "cmb" = ( /obj/machinery/field/generator, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -58000,7 +60921,6 @@ /obj/machinery/field/generator, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/bot, @@ -58029,6 +60949,8 @@ /area/maintenance/port) "cmh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -58063,15 +60985,13 @@ /area/library) "cmn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/carpet, /area/library) "cmo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/library) @@ -58098,6 +61018,8 @@ /area/crew_quarters/heads/hop) "cms" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -58118,6 +61040,7 @@ /area/hallway/secondary/command) "cmu" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -58131,6 +61054,8 @@ /area/hallway/secondary/command) "cmw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -58144,6 +61069,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cmx" = ( @@ -58156,6 +61084,9 @@ dir = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/teleporter) "cmy" = ( @@ -58172,6 +61103,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/teleporter) "cmz" = ( @@ -58183,6 +61117,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/teleporter) "cmA" = ( @@ -58215,8 +61152,7 @@ "cmE" = ( /obj/machinery/vending/cigarette, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Courtroom - Aft"; @@ -58234,7 +61170,6 @@ "cmG" = ( /obj/structure/table/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/paper_bin, @@ -58262,6 +61197,8 @@ /area/security/courtroom) "cmL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -58309,6 +61246,8 @@ /area/maintenance/starboard) "cmR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -58322,6 +61261,8 @@ /area/maintenance/starboard) "cmT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -58456,8 +61397,7 @@ /area/engine/engineering) "cnm" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58491,6 +61431,8 @@ "cnp" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ @@ -58504,18 +61446,18 @@ /area/engine/engineering) "cnq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "cnr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58531,6 +61473,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cnt" = ( @@ -58561,9 +61506,8 @@ /obj/structure/sign/fire{ pixel_x = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -58582,9 +61526,8 @@ "cny" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -58622,6 +61565,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "cnC" = ( @@ -58634,10 +61580,11 @@ "cnD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -58670,7 +61617,6 @@ /area/library) "cnG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/carpet, @@ -58685,17 +61631,17 @@ /obj/item/device/taperecorder, /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; pixel_x = 32 }, /turf/open/floor/plasteel/grimy, /area/library) "cnJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, @@ -58717,6 +61663,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cnM" = ( @@ -58729,7 +61678,6 @@ /area/hallway/secondary/command) "cnN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -58738,6 +61686,8 @@ /area/hallway/secondary/command) "cnO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -58767,6 +61717,8 @@ /area/hallway/secondary/command) "cnR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58795,6 +61747,8 @@ /area/hallway/secondary/command) "cnT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -58825,7 +61779,6 @@ /area/hallway/secondary/command) "cnW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/item/device/radio/intercom{ @@ -58838,6 +61791,8 @@ /area/hallway/secondary/command) "cnX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58877,10 +61832,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -58911,13 +61863,11 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) "cof" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -58997,9 +61947,8 @@ }, /area/security/courtroom) "con" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -59007,6 +61956,8 @@ /area/security/courtroom) "coo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ @@ -59038,7 +61989,6 @@ /area/crew_quarters/locker) "cor" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59047,7 +61997,6 @@ /area/crew_quarters/locker) "cos" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59056,7 +62005,6 @@ /area/crew_quarters/locker) "cot" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59065,7 +62013,6 @@ /area/crew_quarters/locker) "cou" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/item/weapon/storage/pod{ @@ -59084,10 +62031,11 @@ /area/maintenance/starboard) "cow" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -59108,6 +62056,8 @@ /area/maintenance/starboard) "coz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -59116,32 +62066,41 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/starboard) "coA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/maintenance/starboard) "coB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/starboard) "coC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -59153,6 +62112,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "coD" = ( @@ -59160,6 +62122,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/starboard) "coE" = ( @@ -59171,9 +62136,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -59189,9 +62153,8 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -59227,9 +62190,8 @@ /turf/open/floor/plating, /area/engine/engineering) "coQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -59255,8 +62217,7 @@ /area/engine/engineering) "coS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -59268,12 +62229,13 @@ /area/engine/engineering) "coT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -59281,8 +62243,7 @@ "coU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -59296,19 +62257,20 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "coW" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -59425,25 +62387,32 @@ /area/library) "cpm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "cpn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -59454,6 +62423,8 @@ /area/hallway/primary/central) "cpo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -59466,10 +62437,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cpp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59481,13 +62457,16 @@ /area/hallway/secondary/command) "cpq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59496,14 +62475,15 @@ /area/hallway/secondary/command) "cpr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light, /turf/open/floor/plasteel/neutral/corner{ @@ -59512,6 +62492,8 @@ /area/hallway/secondary/command) "cps" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59528,9 +62510,13 @@ /area/hallway/secondary/command) "cpt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -59543,6 +62529,8 @@ /area/hallway/secondary/command) "cpu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -59552,12 +62540,18 @@ /area/hallway/secondary/command) "cpv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59569,6 +62563,8 @@ /area/hallway/secondary/command) "cpw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59581,6 +62577,8 @@ /area/hallway/secondary/command) "cpx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/electricshock{ @@ -59588,10 +62586,11 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -59600,6 +62599,8 @@ /area/hallway/secondary/command) "cpy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59615,6 +62616,8 @@ /area/hallway/secondary/command) "cpz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/black, @@ -59626,12 +62629,18 @@ /area/hallway/secondary/command) "cpA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/device/radio/beacon, @@ -59645,6 +62654,8 @@ /area/hallway/secondary/command) "cpB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/black, @@ -59659,6 +62670,8 @@ /area/hallway/secondary/command) "cpC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/wood, @@ -59673,6 +62686,8 @@ /area/hallway/secondary/command) "cpD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/electricshock{ @@ -59687,6 +62702,8 @@ /area/hallway/secondary/command) "cpE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59697,12 +62714,18 @@ /area/hallway/secondary/command) "cpF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59712,6 +62735,8 @@ /area/hallway/secondary/command) "cpG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59721,19 +62746,24 @@ /area/hallway/secondary/command) "cpH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/command) "cpI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59744,6 +62774,8 @@ /area/hallway/secondary/command) "cpJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -59757,6 +62789,8 @@ /area/hallway/secondary/command) "cpK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -59768,10 +62802,11 @@ /area/hallway/secondary/command) "cpL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59780,14 +62815,17 @@ /area/hallway/primary/central) "cpM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) @@ -59807,6 +62845,8 @@ /area/security/courtroom) "cpP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -59831,7 +62871,6 @@ /area/crew_quarters/locker) "cpT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -59856,12 +62895,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "cpW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -59870,6 +62911,8 @@ "cpX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -60008,6 +63051,8 @@ /area/engine/engineering) "cqm" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ @@ -60046,6 +63091,8 @@ "cqq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -60194,6 +63241,8 @@ /area/ai_monitored/storage/eva) "cqI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -60206,6 +63255,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cqJ" = ( @@ -60219,6 +63271,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cqK" = ( @@ -60229,11 +63284,9 @@ /area/hallway/secondary/command) "cqL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -60253,14 +63306,15 @@ }, /area/hallway/secondary/command) "cqN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/command) "cqO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -60269,9 +63323,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "cqP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/command) @@ -60286,7 +63339,6 @@ /area/hallway/secondary/command) "cqR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/light{ @@ -60303,6 +63355,8 @@ /area/gateway) "cqU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -60315,6 +63369,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/gateway) "cqV" = ( @@ -60344,13 +63401,11 @@ "cqZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) "cra" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -60375,6 +63430,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "crc" = ( @@ -60459,11 +63517,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "crj" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -60490,10 +63550,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "crl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -60545,16 +63610,12 @@ /obj/structure/table, /obj/item/device/camera, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) "crr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) "crs" = ( @@ -60581,6 +63642,8 @@ "crv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -60664,7 +63727,6 @@ /obj/item/clothing/gloves/color/yellow, /obj/item/weapon/storage/toolbox/electrical, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/bot, @@ -60676,6 +63738,8 @@ /area/engine/engineering) "crH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/status_display{ @@ -60693,6 +63757,8 @@ "crJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -60739,12 +63805,7 @@ /turf/open/floor/plasteel/black, /area/library) "crP" = ( -/obj/structure/closet/crate, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/rank/curator/treasure_hunter, -/obj/item/clothing/suit/curator, -/obj/item/clothing/head/curator, -/obj/item/weapon/storage/backpack/satchel/explorer, +/obj/structure/closet/wardrobe/curator, /turf/open/floor/plasteel/black, /area/library) "crQ" = ( @@ -60805,6 +63866,8 @@ /area/ai_monitored/storage/eva) "crX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -60827,6 +63890,7 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line{ @@ -60873,6 +63937,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -60881,9 +63946,13 @@ /area/hallway/secondary/command) "cse" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -60893,6 +63962,8 @@ /area/hallway/secondary/command) "csf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/wood, @@ -60901,6 +63972,8 @@ /area/hallway/secondary/command) "csg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/black{ @@ -60911,15 +63984,21 @@ /area/hallway/secondary/command) "csh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/blue/corner, /area/hallway/secondary/command) "csi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/black{ @@ -60929,6 +64008,8 @@ /area/hallway/secondary/command) "csj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -60938,6 +64019,8 @@ /area/hallway/secondary/command) "csk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -60949,6 +64032,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -60963,6 +64047,7 @@ /area/gateway) "csn" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -60978,6 +64063,8 @@ /area/gateway) "cso" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -61012,7 +64099,6 @@ "csr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/airalarm{ @@ -61020,7 +64106,6 @@ pixel_x = -22 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) @@ -61036,16 +64121,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "csu" = ( /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "csv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "csw" = ( @@ -61061,12 +64146,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "csz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) @@ -61083,6 +64170,8 @@ /area/crew_quarters/locker) "csC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -61104,7 +64193,6 @@ /obj/structure/table, /obj/item/toy/cards/deck, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, @@ -61124,11 +64212,9 @@ /area/crew_quarters/locker) "csI" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/closet/wardrobe/black, @@ -61145,10 +64231,11 @@ "csK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/structure/disposalpipe/segment{ @@ -61160,6 +64247,8 @@ "csL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -61175,6 +64264,8 @@ /area/maintenance/starboard) "csM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -61193,6 +64284,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -61204,14 +64297,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "csO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -61223,6 +64320,8 @@ /area/crew_quarters/fitness/recreation) "csP" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -61314,6 +64413,8 @@ /area/engine/engineering) "ctb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/airalarm{ @@ -61372,6 +64473,8 @@ /area/engine/storage) "cth" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, @@ -61379,6 +64482,8 @@ "cti" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -61387,6 +64492,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -61395,6 +64502,8 @@ /area/maintenance/port) "ctk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -61402,6 +64511,8 @@ "ctl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -61410,6 +64521,8 @@ /area/maintenance/port) "ctm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -61417,12 +64530,18 @@ /area/maintenance/port) "ctn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -61445,7 +64564,6 @@ "ctq" = ( /obj/structure/chair/office/dark, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -61454,32 +64572,28 @@ /obj/structure/chair/office/dark, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/library) "cts" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/library) "ctt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/library) "ctu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/library) @@ -61506,9 +64620,8 @@ /area/library) "ctx" = ( /obj/effect/landmark/revenantspawn, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/library) @@ -61516,7 +64629,6 @@ /obj/structure/chair/comfy/black, /obj/effect/landmark/start/librarian, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -61533,9 +64645,8 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -61577,11 +64688,12 @@ /area/ai_monitored/storage/eva) "ctE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line, @@ -61589,10 +64701,11 @@ /area/ai_monitored/storage/eva) "ctF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line, @@ -61600,9 +64713,13 @@ /area/ai_monitored/storage/eva) "ctG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -61610,10 +64727,11 @@ /area/ai_monitored/storage/eva) "ctH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line, @@ -61621,11 +64739,12 @@ /area/ai_monitored/storage/eva) "ctI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line, @@ -61633,6 +64752,8 @@ /area/ai_monitored/storage/eva) "ctJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -61643,6 +64764,8 @@ "ctK" = ( /obj/machinery/cell_charger, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -61653,6 +64776,7 @@ /area/ai_monitored/storage/eva) "ctL" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -61661,6 +64785,8 @@ /area/ai_monitored/storage/eva) "ctM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -61685,6 +64811,7 @@ /area/hallway/secondary/command) "ctR" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -61694,6 +64821,8 @@ "ctS" = ( /obj/structure/closet/secure_closet/medical1, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -61702,9 +64831,13 @@ /area/gateway) "ctT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -61715,13 +64848,16 @@ /area/gateway) "ctU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -61732,7 +64868,6 @@ "ctV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ @@ -61748,6 +64883,7 @@ /area/gateway) "ctX" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -61788,11 +64924,9 @@ /area/gateway) "cub" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) @@ -61821,6 +64955,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cue" = ( @@ -61849,6 +64986,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cuh" = ( @@ -61906,10 +65046,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "cul" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -61936,7 +65081,6 @@ /area/crew_quarters/locker) "cun" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -61956,7 +65100,6 @@ "cup" = ( /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -61966,7 +65109,6 @@ /area/crew_quarters/locker) "cuq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/junction, @@ -61983,7 +65125,6 @@ "cus" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -62061,10 +65202,11 @@ /area/crew_quarters/fitness/recreation) "cuB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -62088,7 +65230,6 @@ /area/crew_quarters/fitness/recreation) "cuE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/stacklifter, @@ -62102,7 +65243,6 @@ /area/crew_quarters/fitness/recreation) "cuG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral/corner{ @@ -62207,10 +65347,7 @@ /area/engine/storage) "cuR" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/yellow/side{ dir = 1; icon_state = "yellow"; @@ -62240,6 +65377,8 @@ "cuU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -62326,7 +65465,6 @@ "cvc" = ( /obj/machinery/photocopier, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -62461,6 +65599,7 @@ /area/ai_monitored/storage/eva) "cvr" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -62476,6 +65615,8 @@ /area/bridge/showroom/corporate) "cvt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -62505,7 +65646,6 @@ /area/gateway) "cvw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -62515,20 +65655,25 @@ /area/gateway) "cvx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/gateway) "cvy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -62540,6 +65685,8 @@ "cvz" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/clipboard, @@ -62553,6 +65700,7 @@ "cvA" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -62571,6 +65719,7 @@ "cvC" = ( /obj/machinery/gateway/centerstation, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/effect/decal/cleanable/dirt, @@ -62593,7 +65742,6 @@ name = "hallway camera" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) @@ -62609,11 +65757,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/restrooms) "cvH" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/firealarm{ @@ -62621,6 +65771,8 @@ pixel_x = -24 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -62629,9 +65781,8 @@ }, /area/crew_quarters/locker) "cvI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) @@ -62672,7 +65823,6 @@ /area/crew_quarters/dorms) "cvQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -62681,6 +65831,8 @@ /area/crew_quarters/fitness/recreation) "cvR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -62692,7 +65844,6 @@ /area/crew_quarters/fitness/recreation) "cvS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -62728,7 +65879,6 @@ /area/crew_quarters/fitness/recreation) "cvW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral, @@ -62816,10 +65966,11 @@ /area/engine/engineering) "cwg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -62836,15 +65987,13 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/storage) "cwi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/power/port_gen/pacman, /obj/effect/turf_decal/bot, @@ -62852,14 +66001,12 @@ /area/engine/storage) "cwj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/storage) "cwk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/yellow, @@ -62885,6 +66032,8 @@ "cwn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -63045,6 +66194,8 @@ /area/ai_monitored/storage/eva) "cwG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced, @@ -63069,6 +66220,8 @@ /area/bridge/showroom/corporate) "cwI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -63076,6 +66229,8 @@ /area/bridge/showroom/corporate) "cwJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -63111,6 +66266,8 @@ /area/bridge/showroom/corporate) "cwO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced, @@ -63160,6 +66317,8 @@ /area/gateway) "cwR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -63174,7 +66333,6 @@ "cwT" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/device/radio/intercom{ @@ -63203,9 +66361,12 @@ "cwW" = ( /obj/machinery/gateway, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -63234,7 +66395,6 @@ pixel_x = -26 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/hallway/primary/central) @@ -63251,9 +66411,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -63293,14 +66452,12 @@ pixel_y = 26 }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/crew_quarters/toilet/restrooms) "cxe" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -63309,6 +66466,7 @@ /area/crew_quarters/toilet/restrooms) "cxf" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -63317,7 +66475,6 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/machinery/camera{ @@ -63326,7 +66483,6 @@ name = "restroom camera" }, /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/crew_quarters/toilet/restrooms) @@ -63376,9 +66532,13 @@ /area/crew_quarters/toilet/restrooms) "cxk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63392,6 +66552,8 @@ /area/crew_quarters/locker) "cxl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63402,6 +66564,8 @@ "cxm" = ( /obj/structure/chair/stool, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63414,6 +66578,8 @@ /obj/item/weapon/folder, /obj/item/weapon/pen, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63425,6 +66591,8 @@ /obj/structure/table, /obj/item/device/paicard, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63435,6 +66603,8 @@ "cxp" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/toy/gun, @@ -63446,9 +66616,13 @@ "cxq" = ( /obj/structure/chair/stool, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/assistant, @@ -63460,6 +66634,8 @@ /area/crew_quarters/locker) "cxr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63470,6 +66646,7 @@ /area/crew_quarters/locker) "cxs" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -63478,7 +66655,6 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/closet/wardrobe/pink, @@ -63605,7 +66781,6 @@ /area/crew_quarters/dorms) "cxC" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/vending/coffee, @@ -63615,6 +66790,8 @@ /area/crew_quarters/fitness/recreation) "cxD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -63622,9 +66799,8 @@ /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cxE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 8; @@ -63637,9 +66813,8 @@ }, /area/crew_quarters/fitness/recreation) "cxG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -63688,9 +66863,13 @@ /area/engine/engineering) "cxN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -63706,22 +66885,33 @@ req_access_txt = "32" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/storage) "cxP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -63752,6 +66942,8 @@ "cxT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -63778,6 +66970,8 @@ "cxX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63804,7 +66998,6 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/grimy, @@ -63815,34 +67008,27 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/library) "cyb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/grimy, /area/library) "cyc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/library) "cyd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 + dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/vault{ dir = 5 @@ -63850,14 +67036,12 @@ /area/library) "cye" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/closed/wall, /area/library) "cyf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -63865,7 +67049,6 @@ "cyg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral/side{ @@ -63922,9 +67105,13 @@ /area/ai_monitored/storage/eva) "cym" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/power/apc{ @@ -63933,45 +67120,55 @@ pixel_x = -26 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/wood, /area/bridge/showroom/corporate) "cyn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/bridge/showroom/corporate) "cyo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/wood, /area/bridge/showroom/corporate) "cyp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/carpet, @@ -63979,9 +67176,13 @@ "cyq" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, @@ -63990,9 +67191,13 @@ "cyr" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/storage/fancy/donut_box, @@ -64001,9 +67206,13 @@ "cys" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/paper_bin, @@ -64011,9 +67220,13 @@ /area/bridge/showroom/corporate) "cyt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair/comfy/black{ @@ -64023,29 +67236,35 @@ /area/bridge/showroom/corporate) "cyu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/wood, /area/bridge/showroom/corporate) "cyv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/bridge/showroom/corporate) "cyw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/airalarm{ @@ -64136,11 +67355,12 @@ /area/gateway) "cyy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/gateway) @@ -64164,6 +67384,7 @@ /area/gateway) "cyB" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -64184,12 +67405,13 @@ /area/gateway) "cyD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -64230,11 +67452,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/restrooms) "cyJ" = ( /turf/open/floor/plasteel/neutral/corner{ - icon_state = "neutralcorner"; dir = 1 }, /area/crew_quarters/toilet/restrooms) @@ -64247,11 +67471,12 @@ /area/crew_quarters/toilet/restrooms) "cyL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 8 @@ -64265,10 +67490,7 @@ /turf/open/floor/plasteel/neutral, /area/crew_quarters/toilet/restrooms) "cyO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/crew_quarters/toilet/restrooms) "cyP" = ( @@ -64282,6 +67504,8 @@ /area/crew_quarters/toilet/restrooms) "cyQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/closet/wardrobe/white, @@ -64292,6 +67516,8 @@ /area/crew_quarters/locker) "cyR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -64377,7 +67603,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -64401,7 +67626,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -64429,7 +67653,6 @@ /area/engine/engineering) "czm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/status_display{ @@ -64448,7 +67671,6 @@ /area/engine/engineering) "czo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/corner{ @@ -64459,20 +67681,20 @@ "czp" = ( /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "czq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -64488,45 +67710,49 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/storage) "czs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/storage) "czt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/storage) "czu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/yellow, /area/engine/storage) "czv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -64544,6 +67770,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/delivery, @@ -64562,9 +67789,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/yellow, /area/maintenance/port) @@ -64594,14 +67820,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "czC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -64635,7 +67865,6 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -64706,11 +67935,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/library) "czM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -64759,9 +67990,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "czS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -64771,7 +68001,6 @@ "czT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -64787,7 +68016,6 @@ /area/ai_monitored/storage/eva) "czV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -64796,9 +68024,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "czW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -64828,6 +68055,8 @@ "czZ" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/clipboard, @@ -64846,6 +68075,8 @@ "cAc" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/folder/blue, @@ -64855,6 +68086,8 @@ "cAd" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/clothing/mask/cigarette/cigar/cohiba{ @@ -64869,6 +68102,8 @@ "cAe" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/lighter, @@ -64876,7 +68111,6 @@ /area/bridge/showroom/corporate) "cAf" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -64884,6 +68118,8 @@ "cAg" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/secure/briefcase, @@ -64905,7 +68141,6 @@ /area/gateway) "cAi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -64915,6 +68150,8 @@ /area/gateway) "cAj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64925,6 +68162,8 @@ /area/gateway) "cAk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64936,6 +68175,8 @@ /area/gateway) "cAl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64948,12 +68189,18 @@ /area/gateway) "cAm" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_command{ @@ -64967,10 +68214,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/gateway) "cAn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64984,6 +68236,8 @@ "cAo" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64994,9 +68248,8 @@ /area/gateway) "cAp" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -65008,9 +68261,8 @@ /obj/machinery/shower{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plating, /area/crew_quarters/toilet/restrooms) @@ -65051,7 +68303,6 @@ pixel_x = -12 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -65059,6 +68310,8 @@ /area/crew_quarters/toilet/restrooms) "cAv" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65073,9 +68326,13 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65088,6 +68345,8 @@ /area/crew_quarters/toilet/restrooms) "cAx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65103,6 +68362,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65115,6 +68376,8 @@ /area/crew_quarters/toilet/restrooms) "cAz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -65126,6 +68389,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65135,6 +68400,8 @@ /area/crew_quarters/toilet/restrooms) "cAB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65145,6 +68412,8 @@ "cAC" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -65156,10 +68425,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/restrooms) "cAD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -65199,10 +68473,11 @@ /area/crew_quarters/locker) "cAH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -65300,6 +68575,7 @@ /area/holodeck/rec_center) "cAU" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line, @@ -65307,6 +68583,8 @@ /area/engine/engineering) "cAV" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/grille, @@ -65317,6 +68595,8 @@ /area/engine/engineering) "cAW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -65327,6 +68607,8 @@ /area/engine/engineering) "cAX" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/grille, @@ -65337,25 +68619,35 @@ /area/engine/engineering) "cAY" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/engine/engineering) "cAZ" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Containment Access"; req_access_txt = "10; 13" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cBa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/fans/tiny, @@ -65366,20 +68658,20 @@ "cBb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "cBc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -65390,13 +68682,16 @@ /area/engine/engineering) "cBd" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -65409,6 +68704,8 @@ /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -65442,9 +68739,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/storage) "cBi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/storage) @@ -65466,6 +68762,8 @@ /area/engine/storage) "cBk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -65571,6 +68869,8 @@ "cBz" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/folder/blue, @@ -65604,6 +68904,8 @@ /area/bridge/showroom/corporate) "cBC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/comfy/brown{ @@ -65613,6 +68915,8 @@ /area/bridge/showroom/corporate) "cBD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -65620,6 +68924,8 @@ /area/bridge/showroom/corporate) "cBE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/comfy/black{ @@ -65650,6 +68956,8 @@ "cBH" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/folder/red, @@ -65691,7 +68999,6 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/bot, @@ -65705,7 +69012,6 @@ /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -65743,6 +69049,8 @@ /area/gateway) "cBR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -65764,6 +69072,8 @@ /area/crew_quarters/toilet/restrooms) "cBT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -65824,6 +69134,8 @@ /area/crew_quarters/locker) "cCb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -65860,19 +69172,13 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) "cCf" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) "cCg" = ( @@ -65881,10 +69187,7 @@ /area/crew_quarters/dorms) "cCh" = ( /obj/structure/dresser, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "cCi" = ( @@ -65899,18 +69202,12 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/carpet, /area/crew_quarters/dorms) "cCj" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet, /area/crew_quarters/dorms) "cCk" = ( @@ -65932,6 +69229,8 @@ /area/engine/engineering) "cCn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/grille, @@ -65942,6 +69241,8 @@ /area/engine/engineering) "cCo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/grille, @@ -65952,6 +69253,8 @@ /area/engine/engineering) "cCp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/grille, @@ -65962,9 +69265,13 @@ /area/engine/engineering) "cCq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/grille, @@ -65975,6 +69282,8 @@ /area/engine/engineering) "cCr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/grille, @@ -66000,7 +69309,6 @@ /area/engine/engineering) "cCu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line, @@ -66008,15 +69316,13 @@ /area/engine/engineering) "cCv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) "cCw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/machinery/camera{ @@ -66030,11 +69336,12 @@ "cCx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -66043,11 +69350,12 @@ /area/engine/engineering) "cCy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/item/clothing/head/cone, /obj/item/clothing/head/cone, @@ -66060,7 +69368,6 @@ /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ @@ -66091,7 +69398,6 @@ /obj/machinery/light, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; pixel_y = -32 }, /obj/effect/turf_decal/bot, @@ -66145,6 +69451,8 @@ "cCJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -66238,6 +69546,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cCU" = ( @@ -66248,6 +69559,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cCV" = ( @@ -66265,6 +69579,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cCW" = ( @@ -66289,6 +69606,8 @@ req_access_txt = "19" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -66304,6 +69623,9 @@ dir = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/gateway) "cDa" = ( @@ -66321,6 +69643,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/gateway) "cDb" = ( @@ -66332,6 +69657,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/gateway) "cDc" = ( @@ -66342,6 +69670,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/gateway) "cDd" = ( @@ -66383,6 +69714,8 @@ "cDj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -66428,6 +69761,8 @@ "cDn" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock{ @@ -66437,6 +69772,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "cDo" = ( @@ -66449,6 +69787,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/locker) "cDp" = ( @@ -66553,6 +69894,8 @@ req_access_txt = "10" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -66560,10 +69903,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "cDB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -66581,7 +69929,6 @@ "cDE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -66597,6 +69944,8 @@ "cDG" = ( /obj/effect/landmark/lightsout, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66664,7 +70013,6 @@ /area/hallway/primary/central) "cDN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/corner{ @@ -66696,6 +70044,8 @@ /area/hallway/primary/central) "cDQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66732,7 +70082,6 @@ /area/hallway/primary/central) "cDU" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel{ @@ -66750,8 +70099,7 @@ "cDW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "cDX" = ( @@ -66799,7 +70147,6 @@ /area/hallway/primary/central) "cEb" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -66840,12 +70187,17 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/restrooms) "cEh" = ( @@ -66891,6 +70243,8 @@ /area/crew_quarters/dorms) "cEm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -66904,10 +70258,11 @@ /area/crew_quarters/dorms) "cEn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -66917,6 +70272,8 @@ /area/crew_quarters/dorms) "cEo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -66928,6 +70285,8 @@ "cEp" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -66939,10 +70298,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cEq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66954,9 +70318,13 @@ /area/crew_quarters/dorms) "cEr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66971,6 +70339,8 @@ /area/crew_quarters/dorms) "cEs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66983,6 +70353,8 @@ /area/crew_quarters/dorms) "cEt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -66994,6 +70366,8 @@ /area/crew_quarters/dorms) "cEu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67010,6 +70384,8 @@ /area/crew_quarters/dorms) "cEv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -67020,6 +70396,8 @@ "cEw" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -67031,14 +70409,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cEx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -67047,9 +70429,13 @@ /area/crew_quarters/fitness/recreation) "cEy" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -67063,9 +70449,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/fitness/recreation) "cEA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -67121,12 +70506,14 @@ name = "Holodeck Access" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cEH" = ( @@ -67134,12 +70521,14 @@ name = "Holodeck Access" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cEI" = ( @@ -67160,9 +70549,8 @@ }, /area/crew_quarters/fitness/recreation) "cEK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Holodeck Control"; @@ -67181,6 +70569,7 @@ /area/crew_quarters/fitness/recreation) "cEM" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Airlock"; req_access_txt = "13" }, @@ -67188,6 +70577,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "cEN" = ( @@ -67201,7 +70593,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -67215,8 +70606,7 @@ /obj/item/device/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67228,8 +70618,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67239,8 +70628,7 @@ "cER" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67249,8 +70637,7 @@ /area/maintenance/port) "cES" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67260,11 +70647,12 @@ "cET" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67274,10 +70662,11 @@ "cEU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -67285,11 +70674,12 @@ "cEV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) @@ -67298,7 +70688,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -67306,11 +70695,12 @@ "cEX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67319,11 +70709,12 @@ /area/maintenance/port) "cEY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -67333,14 +70724,17 @@ "cEZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -67348,13 +70742,16 @@ "cFa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -67365,16 +70762,21 @@ "cFb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -67386,6 +70788,8 @@ /area/maintenance/port) "cFc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67399,6 +70803,8 @@ "cFd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67412,6 +70818,8 @@ "cFe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67428,9 +70836,13 @@ "cFf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67444,6 +70856,8 @@ "cFg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67458,9 +70872,13 @@ /area/maintenance/port) "cFh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67474,6 +70892,8 @@ "cFi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67488,6 +70908,8 @@ /area/maintenance/port) "cFj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67502,6 +70924,8 @@ /area/maintenance/port) "cFk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67516,9 +70940,13 @@ "cFl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -67531,6 +70959,8 @@ "cFm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67540,6 +70970,8 @@ /area/maintenance/port) "cFn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67550,6 +70982,8 @@ "cFo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67559,6 +70993,8 @@ /area/maintenance/port) "cFp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -67571,6 +71007,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -67581,6 +71019,8 @@ /area/maintenance/port) "cFr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67593,19 +71033,24 @@ /area/maintenance/port) "cFs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, /area/maintenance/port) "cFt" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67619,10 +71064,11 @@ /area/maintenance/port) "cFu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -67637,6 +71083,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -67645,14 +71093,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "cFw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -67665,14 +71117,17 @@ /area/hallway/primary/central) "cFx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall6"; @@ -67682,6 +71137,8 @@ /area/hallway/primary/central) "cFy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -67690,9 +71147,13 @@ /area/hallway/primary/central) "cFz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -67702,6 +71163,8 @@ /area/hallway/primary/central) "cFA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -67710,6 +71173,8 @@ /area/hallway/primary/central) "cFB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -67718,12 +71183,11 @@ /area/hallway/primary/central) "cFC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall7"; location = "hall6" @@ -67734,6 +71198,8 @@ /area/hallway/primary/central) "cFD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -67747,6 +71213,8 @@ /area/hallway/primary/central) "cFE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -67755,6 +71223,8 @@ /area/hallway/primary/central) "cFF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -67764,26 +71234,32 @@ /area/hallway/primary/central) "cFG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "cFH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/navbeacon{ @@ -67794,6 +71270,8 @@ /area/hallway/primary/central) "cFI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67815,6 +71293,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67826,10 +71306,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "cFK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67843,6 +71328,8 @@ "cFL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67887,13 +71374,19 @@ "cFP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -67905,6 +71398,8 @@ "cFQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67918,6 +71413,8 @@ "cFR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67937,6 +71434,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -67948,14 +71447,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "cFT" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -67975,7 +71478,6 @@ "cFV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/table, @@ -67988,7 +71490,6 @@ /obj/structure/table, /obj/structure/bedsheetbin, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/arrival{ @@ -68003,9 +71504,8 @@ }, /area/crew_quarters/dorms) "cFY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) @@ -68032,13 +71532,14 @@ /area/crew_quarters/dorms) "cGd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "cGe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -68066,6 +71567,8 @@ /area/crew_quarters/fitness/recreation) "cGi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -68115,7 +71618,6 @@ "cGp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -68124,14 +71626,12 @@ /area/maintenance/port) "cGq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/port) "cGr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/neutral/side, @@ -68139,14 +71639,12 @@ "cGs" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) "cGt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -68156,8 +71654,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) @@ -68165,7 +71662,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/neutral/side, @@ -68173,7 +71669,6 @@ "cGw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -68181,11 +71676,12 @@ "cGx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel, @@ -68194,8 +71690,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) @@ -68204,8 +71699,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) @@ -68217,8 +71711,7 @@ name = "2maintenance loot spawner" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) @@ -68228,17 +71721,17 @@ /obj/item/clothing/gloves/color/fyellow, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) "cGC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -68248,25 +71741,24 @@ "cGD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "cGE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/maintenance/port) "cGF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -68304,6 +71796,8 @@ "cGL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -68313,7 +71807,6 @@ /area/maintenance/port) "cGM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -68401,7 +71894,6 @@ /area/hallway/primary/central) "cGU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -68489,6 +71981,8 @@ /area/maintenance/starboard/aft) "cHe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -68499,6 +71993,8 @@ "cHf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/spawner/lootdrop/maintenance, @@ -68509,6 +72005,8 @@ /area/maintenance/starboard/aft) "cHg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -68519,6 +72017,8 @@ /area/maintenance/starboard/aft) "cHh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -68526,6 +72026,8 @@ /area/maintenance/starboard/aft) "cHi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -68545,6 +72047,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -68556,7 +72060,6 @@ /area/maintenance/starboard/aft) "cHl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -68580,7 +72083,6 @@ /area/crew_quarters/dorms) "cHo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral/corner{ @@ -68623,6 +72125,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cHs" = ( @@ -68730,6 +72235,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cHA" = ( @@ -68750,6 +72258,8 @@ /area/crew_quarters/fitness/recreation) "cHB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -68770,9 +72280,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/fitness/recreation) "cHD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -68828,7 +72337,6 @@ /area/maintenance/department/electrical) "cHL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -68849,26 +72357,29 @@ req_access_txt = "10" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cHP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /mob/living/simple_animal/cockroach, /turf/open/floor/plating, /area/maintenance/port) "cHQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/port) @@ -68877,6 +72388,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -69031,6 +72544,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cIl" = ( @@ -69042,6 +72558,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cIn" = ( @@ -69067,6 +72586,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cIp" = ( @@ -69077,6 +72599,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cIq" = ( @@ -69089,6 +72614,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cIr" = ( @@ -69114,6 +72642,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cIu" = ( @@ -69126,6 +72657,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cIw" = ( @@ -69197,6 +72731,8 @@ "cIJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -69210,15 +72746,13 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/maintenance/starboard/aft) "cIL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -69275,7 +72809,6 @@ /area/crew_quarters/fitness/recreation) "cIT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner, @@ -69307,12 +72840,14 @@ name = "Holodeck Access" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cIX" = ( @@ -69320,12 +72855,14 @@ name = "Holodeck Access" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cIY" = ( @@ -69348,9 +72885,8 @@ /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/fitness/recreation) "cJa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/fitness/recreation) @@ -69365,9 +72901,8 @@ /turf/open/floor/plating, /area/maintenance/port) "cJd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -69389,7 +72924,6 @@ "cJf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -69470,6 +73004,8 @@ "cJq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -69514,7 +73050,6 @@ "cJv" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, @@ -69565,10 +73100,11 @@ "cJB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/delivery, @@ -69576,6 +73112,8 @@ /area/maintenance/port) "cJC" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -69586,10 +73124,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "cJD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -69599,11 +73142,12 @@ /area/science/xenobiology) "cJE" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -69614,7 +73158,6 @@ "cJF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ @@ -69630,11 +73173,10 @@ /turf/open/floor/circuit/green, /area/science/xenobiology) "cJI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; name = "server vent"; - on = 1; pressure_checks = 0 }, /turf/open/floor/circuit{ @@ -69649,15 +73191,10 @@ }, /area/science/xenobiology) "cJK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "server vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Killroom Floor"; @@ -69673,6 +73210,8 @@ /area/science/research) "cJN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -69683,6 +73222,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cJO" = ( @@ -69696,14 +73238,12 @@ /obj/structure/chair, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) "cJS" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) @@ -69711,7 +73251,6 @@ /obj/structure/chair, /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) @@ -69720,7 +73259,6 @@ /obj/item/weapon/folder/white, /obj/item/device/paicard, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) @@ -69754,6 +73292,8 @@ /area/science/research) "cJY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -69919,6 +73459,7 @@ /area/maintenance/starboard/aft) "cKx" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -69937,14 +73478,17 @@ /area/medical/storage) "cKy" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ icon_state = "whiteblue"; @@ -69953,6 +73497,8 @@ /area/medical/storage) "cKz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -69965,6 +73511,8 @@ /area/medical/storage) "cKA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -69981,6 +73529,8 @@ /area/medical/storage) "cKB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock{ @@ -69997,14 +73547,21 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/storage) "cKC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -70021,30 +73578,33 @@ "cKD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -70055,6 +73615,8 @@ /area/maintenance/starboard/aft) "cKG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -70073,6 +73635,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -70084,10 +73648,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "cKI" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -70104,7 +73673,6 @@ "cKJ" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -70116,9 +73684,8 @@ pixel_x = 26; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -70132,9 +73699,8 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -70145,9 +73711,8 @@ pixel_x = 26; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -70164,9 +73729,8 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) @@ -70178,9 +73742,8 @@ pixel_x = 26; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) @@ -70310,9 +73873,13 @@ /area/maintenance/department/electrical) "cLg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -70324,6 +73891,8 @@ "cLh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -70335,6 +73904,8 @@ "cLi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -70345,6 +73916,8 @@ "cLj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -70355,6 +73928,7 @@ /obj/item/weapon/stock_parts/cell/high, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -70367,6 +73941,8 @@ "cLl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -70377,6 +73953,8 @@ "cLm" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/research{ @@ -70387,11 +73965,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "cLn" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 1 }, /obj/structure/disposalpipe/trunk, @@ -70401,7 +73981,6 @@ /area/science/xenobiology) "cLo" = ( /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -70412,7 +73991,6 @@ /area/science/xenobiology) "cLp" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -70423,7 +74001,6 @@ /area/science/xenobiology) "cLq" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -70449,6 +74026,8 @@ /area/science/research) "cLt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -70516,7 +74095,6 @@ /obj/item/weapon/folder/white, /obj/item/device/assembly/infra, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) @@ -70645,7 +74223,6 @@ "cLW" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -70654,6 +74231,8 @@ /area/medical/storage) "cLX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/cmo, @@ -70663,7 +74242,6 @@ /area/medical/storage) "cLZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/cmo, @@ -70695,7 +74273,6 @@ "cMc" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/delivery, @@ -70703,7 +74280,6 @@ /area/maintenance/starboard/aft) "cMd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, @@ -70734,10 +74310,11 @@ /area/maintenance/starboard/aft) "cMh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment, @@ -70813,7 +74390,6 @@ /area/maintenance/port) "cMr" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ - icon_state = "intact"; dir = 5 }, /obj/machinery/light/small{ @@ -70834,7 +74410,6 @@ /area/maintenance/department/electrical) "cMt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -70875,33 +74450,31 @@ /area/maintenance/department/electrical) "cMz" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/electrical) "cMA" = ( /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/maintenance/department/electrical) "cMB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/maintenance/department/electrical) "cMC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, @@ -70909,9 +74482,8 @@ "cMD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/maintenance/department/electrical) @@ -70928,6 +74500,8 @@ /area/maintenance/department/electrical) "cMG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -70959,6 +74533,7 @@ /area/science/xenobiology) "cMK" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/line{ @@ -70969,6 +74544,8 @@ /area/science/xenobiology) "cML" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -70976,12 +74553,16 @@ /area/science/xenobiology) "cMM" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/status_display{ pixel_y = 32 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/camera{ @@ -70999,6 +74580,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -71021,6 +74604,7 @@ /area/science/xenobiology) "cMP" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -71033,9 +74617,13 @@ /area/science/xenobiology) "cMQ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -71053,6 +74641,7 @@ /area/science/xenobiology) "cMR" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -71066,6 +74655,7 @@ /area/science/xenobiology) "cMS" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -71078,9 +74668,13 @@ /area/science/xenobiology) "cMT" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -71098,6 +74692,7 @@ /area/science/xenobiology) "cMU" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -71111,6 +74706,7 @@ /area/science/xenobiology) "cMV" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -71123,9 +74719,13 @@ /area/science/xenobiology) "cMW" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -71143,6 +74743,7 @@ /area/science/xenobiology) "cMX" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -71156,6 +74757,7 @@ /area/science/xenobiology) "cMY" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -71165,9 +74767,13 @@ /area/science/xenobiology) "cMZ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_research{ @@ -71177,10 +74783,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "cNa" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -71189,6 +74799,8 @@ /area/science/xenobiology) "cNb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple, @@ -71213,10 +74825,7 @@ pixel_x = -38; pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -71235,15 +74844,11 @@ icon_state = "plant-22" }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) "cNi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" @@ -71252,7 +74857,6 @@ /area/science/research) "cNj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -71283,7 +74887,6 @@ /area/science/research) "cNn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -71311,6 +74914,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "cNr" = ( @@ -71342,6 +74948,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cNv" = ( @@ -71368,15 +74977,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/cmo, /area/medical/medbay/central) "cNz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment, @@ -71403,6 +75008,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cNC" = ( @@ -71413,7 +75021,6 @@ /area/medical/medbay/central) "cND" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -71578,7 +75185,6 @@ pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -71602,10 +75208,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cNR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -71757,6 +75368,8 @@ "cOm" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -71779,10 +75392,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cOq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -71822,11 +75440,12 @@ /area/science/xenobiology) "cOv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -71841,7 +75460,6 @@ "cOx" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/bot, @@ -71866,6 +75484,8 @@ /area/science/xenobiology) "cOA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window/brigdoor{ @@ -71970,6 +75590,8 @@ /area/science/xenobiology) "cOK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -72002,7 +75624,6 @@ /area/science/xenobiology) "cOO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -72011,6 +75632,8 @@ /area/science/research) "cOP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72020,6 +75643,8 @@ /area/science/research) "cOQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72033,12 +75658,18 @@ "cOR" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/airlock/security{ @@ -72051,14 +75682,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "cOS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side{ @@ -72067,9 +75702,13 @@ /area/security/checkpoint/science/research) "cOT" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/chair/office/dark{ @@ -72079,6 +75718,8 @@ /area/security/checkpoint/science/research) "cOU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/computer/security, @@ -72091,6 +75732,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -72104,7 +75746,6 @@ /area/science/research) "cOX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment, @@ -72147,9 +75788,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/corner{ @@ -72176,6 +75816,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "cPg" = ( @@ -72216,6 +75859,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cPk" = ( @@ -72281,9 +75927,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -72316,11 +75961,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cPu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -72331,9 +75978,8 @@ }, /area/medical/medbay/central) "cPv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -72343,7 +75989,6 @@ /area/medical/medbay/central) "cPw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -72352,6 +75997,7 @@ /area/medical/medbay/central) "cPx" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -72366,9 +76012,8 @@ }, /area/security/checkpoint/medical) "cPz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/medical) @@ -72383,6 +76028,7 @@ /area/security/checkpoint/medical) "cPB" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -72394,7 +76040,6 @@ /area/security/checkpoint/medical) "cPC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -72421,9 +76066,8 @@ }, /area/medical/storage) "cPE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/cmo, /area/medical/storage) @@ -72464,9 +76108,8 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating{ @@ -72485,6 +76128,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cPI" = ( @@ -72499,7 +76145,6 @@ /area/medical/medbay/central) "cPJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -72595,7 +76240,6 @@ "cPS" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/toy/katana, @@ -72638,7 +76282,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -72662,7 +76305,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -72681,15 +76323,13 @@ /area/maintenance/port) "cQc" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "cQd" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -72711,7 +76351,6 @@ "cQf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /obj/effect/decal/cleanable/dirt, @@ -72853,6 +76492,8 @@ /area/science/xenobiology) "cQu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -72862,7 +76503,6 @@ /area/science/xenobiology) "cQv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -72894,6 +76534,8 @@ /area/science/xenobiology) "cQz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72914,6 +76556,8 @@ /area/science/xenobiology) "cQB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72937,7 +76581,6 @@ /area/science/xenobiology) "cQD" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -72946,6 +76589,8 @@ /area/science/xenobiology) "cQE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72966,6 +76611,8 @@ /area/science/xenobiology) "cQG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -72977,9 +76624,8 @@ }, /area/science/xenobiology) "cQH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ icon_state = "whitepurple"; @@ -73005,8 +76651,7 @@ /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/dropper, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/newscaster{ pixel_x = 32 @@ -73017,15 +76662,13 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cQK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/purple, /area/science/research) "cQL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -73043,7 +76686,6 @@ /area/security/checkpoint/science/research) "cQN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/red/side{ @@ -73052,6 +76694,8 @@ /area/security/checkpoint/science/research) "cQO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -73156,10 +76800,12 @@ /area/medical/medbay/central) "cRd" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -73169,6 +76815,8 @@ "cRe" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red, @@ -73187,9 +76835,13 @@ "cRh" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/security{ @@ -73199,6 +76851,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/medical) "cRi" = ( @@ -73222,6 +76877,8 @@ /area/medical/storage) "cRk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/side, @@ -73271,10 +76928,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cRp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -73291,6 +76953,7 @@ /area/maintenance/starboard/aft) "cRr" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -73305,9 +76968,13 @@ /area/crew_quarters/fitness/recreation) "cRs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -73315,17 +76982,11 @@ /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cRt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cRu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cRv" = ( @@ -73338,7 +76999,6 @@ /area/maintenance/port) "cRw" = ( /obj/machinery/atmospherics/components/binary/valve{ - icon_state = "mvalve_map"; dir = 1 }, /obj/structure/sign/nosmoking_2{ @@ -73351,7 +77011,6 @@ /area/maintenance/department/electrical) "cRx" = ( /obj/machinery/atmospherics/components/binary/valve{ - icon_state = "mvalve_map"; dir = 1 }, /obj/effect/decal/cleanable/dirt, @@ -73429,6 +77088,8 @@ "cRI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -73451,9 +77112,13 @@ /area/science/xenobiology) "cRK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/window/brigdoor{ @@ -73471,6 +77136,8 @@ /area/science/xenobiology) "cRL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor{ @@ -73483,12 +77150,18 @@ /area/science/xenobiology) "cRM" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -73498,6 +77171,8 @@ /area/science/xenobiology) "cRN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -73505,6 +77180,8 @@ /area/science/xenobiology) "cRO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -73514,6 +77191,8 @@ "cRP" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -73523,16 +77202,15 @@ /area/science/xenobiology) "cRQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/shower{ dir = 4; name = "emergency shower" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/end{ dir = 8 }, @@ -73540,40 +77218,55 @@ /area/science/xenobiology) "cRR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cRS" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/lightsout, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cRT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/shower{ dir = 8; name = "emergency shower" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -73582,12 +77275,18 @@ /area/science/xenobiology) "cRU" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -73597,6 +77296,8 @@ /area/science/xenobiology) "cRV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -73605,9 +77306,13 @@ /area/science/xenobiology) "cRW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/scientist, @@ -73645,6 +77350,7 @@ /area/science/research) "cSb" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/door_timer{ @@ -73659,9 +77365,8 @@ pixel_x = -26; pixel_y = 3 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/button/door{ desc = "A remote control switch."; @@ -73678,9 +77383,13 @@ /area/security/checkpoint/science/research) "cSc" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/red/side, @@ -73691,8 +77400,7 @@ pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/camera{ @@ -73908,11 +77616,12 @@ /area/security/checkpoint/medical) "cSF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, @@ -73949,7 +77658,6 @@ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -73965,6 +77673,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/storage) "cSM" = ( @@ -74019,7 +77730,6 @@ /area/medical/medbay/central) "cSR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, @@ -74095,7 +77805,6 @@ "cSZ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -74150,7 +77859,6 @@ /area/crew_quarters/fitness/recreation) "cTh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -74249,7 +77957,6 @@ /area/maintenance/department/electrical) "cTv" = ( /obj/structure/disposaloutlet{ - icon_state = "outlet"; dir = 8 }, /obj/structure/disposalpipe/trunk{ @@ -74299,7 +78006,6 @@ /area/science/xenobiology) "cTz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -74324,6 +78030,8 @@ /area/science/xenobiology) "cTC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74354,6 +78062,8 @@ /area/science/xenobiology) "cTG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74363,6 +78073,8 @@ /area/science/xenobiology) "cTH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74383,10 +78095,11 @@ /area/science/xenobiology) "cTJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/purple, @@ -74429,7 +78142,6 @@ "cTN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -74438,6 +78150,7 @@ /area/science/research) "cTO" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -74446,12 +78159,18 @@ /area/security/checkpoint/science/research) "cTP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window/brigdoor{ @@ -74463,6 +78182,7 @@ /area/security/checkpoint/science/research) "cTQ" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -74475,6 +78195,7 @@ "cTR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ + cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47" }, @@ -74483,6 +78204,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cTS" = ( @@ -74492,6 +78216,7 @@ "cTT" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ + cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47" }, @@ -74500,6 +78225,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cTU" = ( @@ -74556,7 +78284,6 @@ "cUc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -74645,7 +78372,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -74665,6 +78391,7 @@ /area/medical/medbay/central) "cUn" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/door_timer{ @@ -74678,9 +78405,8 @@ name = "Security Post - Medical APC"; pixel_x = -26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Security Post - Medbay"; @@ -74694,13 +78420,16 @@ /area/security/checkpoint/medical) "cUo" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side, @@ -74712,8 +78441,7 @@ pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -74723,7 +78451,6 @@ "cUq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -74731,9 +78458,8 @@ }, /area/medical/medbay/central) "cUr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) @@ -74753,6 +78479,8 @@ /area/medical/medbay/central) "cUt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -74775,9 +78503,8 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -74785,7 +78512,6 @@ /area/medical/medbay/central) "cUx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/redblue, @@ -74805,10 +78531,11 @@ /area/medical/medbay/central) "cUB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -74819,9 +78546,13 @@ /area/maintenance/starboard/aft) "cUC" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74835,6 +78566,8 @@ /area/maintenance/starboard/aft) "cUD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -74849,6 +78582,8 @@ /area/maintenance/starboard/aft) "cUE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74862,6 +78597,8 @@ /area/maintenance/starboard/aft) "cUF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -74875,6 +78612,8 @@ /area/maintenance/starboard/aft) "cUG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -74888,6 +78627,8 @@ /area/maintenance/starboard/aft) "cUH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74900,10 +78641,11 @@ /area/maintenance/starboard/aft) "cUI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -74913,6 +78655,8 @@ /area/maintenance/starboard/aft) "cUJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74926,6 +78670,8 @@ /area/maintenance/starboard/aft) "cUK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -74945,6 +78691,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74956,10 +78704,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cUM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -74975,6 +78728,8 @@ /area/crew_quarters/fitness/recreation) "cUN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -75028,7 +78783,6 @@ /area/crew_quarters/fitness/recreation) "cUT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral/corner, @@ -75071,6 +78825,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cUZ" = ( @@ -75086,6 +78843,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cVb" = ( @@ -75106,18 +78866,18 @@ /area/science/xenobiology) "cVd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/xenobiology) "cVe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -75139,6 +78899,8 @@ /area/science/xenobiology) "cVh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window/brigdoor{ @@ -75217,6 +78979,8 @@ /area/science/xenobiology) "cVo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/scientist, @@ -75239,6 +79003,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -75247,6 +79012,8 @@ /area/security/checkpoint/science/research) "cVr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair{ @@ -75258,12 +79025,18 @@ /area/security/checkpoint/science/research) "cVs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/red/side{ @@ -75272,6 +79045,8 @@ /area/security/checkpoint/science/research) "cVt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/closet/secure_closet/brig{ @@ -75284,6 +79059,7 @@ /area/security/checkpoint/science/research) "cVu" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -75312,7 +79088,6 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -75326,7 +79101,6 @@ pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment, @@ -75421,15 +79195,13 @@ }, /area/hallway/primary/aft) "cVJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "cVK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -75498,6 +79270,7 @@ /area/medical/chemistry) "cVR" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -75563,6 +79336,7 @@ /area/medical/medbay/central) "cVZ" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -75571,12 +79345,18 @@ /area/security/checkpoint/medical) "cWa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor{ @@ -75588,6 +79368,7 @@ /area/security/checkpoint/medical) "cWb" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -75599,10 +79380,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cWe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -75637,14 +79423,12 @@ /obj/machinery/holopad, /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/redblue, /area/medical/medbay/central) "cWk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/redblue, @@ -75655,7 +79439,6 @@ pixel_x = 32 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -75669,6 +79452,8 @@ /area/maintenance/starboard/aft) "cWn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -75764,7 +79549,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/purple/side{ @@ -75781,8 +79565,7 @@ /area/maintenance/port) "cWB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -75792,8 +79575,7 @@ "cWC" = ( /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -75803,8 +79585,7 @@ "cWD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -75819,8 +79600,7 @@ "cWF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/side{ @@ -75830,8 +79610,7 @@ /area/maintenance/port) "cWG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/light/small{ dir = 1 @@ -75843,8 +79622,7 @@ /area/maintenance/port) "cWH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/power/apc{ dir = 1; @@ -75852,13 +79630,13 @@ pixel_y = 28 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, /area/maintenance/port) "cWI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /obj/structure/cable/white{ @@ -75869,10 +79647,11 @@ "cWJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -75882,10 +79661,11 @@ /area/maintenance/port) "cWK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -75897,10 +79677,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -75909,10 +79690,11 @@ "cWM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -75922,7 +79704,6 @@ /area/maintenance/port) "cWN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -75936,6 +79717,7 @@ /area/science/xenobiology) "cWP" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/line{ @@ -75946,6 +79728,8 @@ /area/science/xenobiology) "cWQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/airalarm{ @@ -75977,6 +79761,7 @@ /area/science/xenobiology) "cWT" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -75990,9 +79775,13 @@ /area/science/xenobiology) "cWU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/window/brigdoor{ @@ -76010,6 +79799,7 @@ /area/science/xenobiology) "cWV" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -76022,6 +79812,7 @@ /area/science/xenobiology) "cWW" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -76035,9 +79826,13 @@ /area/science/xenobiology) "cWX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/window/brigdoor{ @@ -76055,6 +79850,7 @@ /area/science/xenobiology) "cWY" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -76067,6 +79863,7 @@ /area/science/xenobiology) "cWZ" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -76080,9 +79877,13 @@ /area/science/xenobiology) "cXa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/poddoor/preopen{ @@ -76100,6 +79901,7 @@ /area/science/xenobiology) "cXb" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -76125,29 +79927,35 @@ /area/science/xenobiology) "cXe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whitepurple/side, /area/science/xenobiology) "cXf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/whitepurple/side, /area/science/xenobiology) "cXg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -76160,11 +79968,11 @@ /obj/item/weapon/folder/white, /obj/item/weapon/pen, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/power/apc{ dir = 4; @@ -76185,6 +79993,8 @@ /area/security/checkpoint/science/research) "cXj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side, @@ -76204,12 +80014,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "cXm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -76217,7 +80029,6 @@ "cXn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -76233,10 +80044,7 @@ /turf/open/floor/plasteel, /area/science/research) "cXp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -76273,10 +80081,7 @@ /area/science/lab) "cXs" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/science/lab) "cXt" = ( @@ -76305,8 +80110,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -76376,6 +80180,8 @@ /area/medical/chemistry) "cXF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -76399,10 +80205,7 @@ }, /area/medical/medbay/central) "cXI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "cXJ" = ( @@ -76411,9 +80214,8 @@ /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "cXK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 4 @@ -76431,11 +80233,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cXM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -76448,6 +80252,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -76456,6 +80261,8 @@ /area/security/checkpoint/medical) "cXO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/chair{ @@ -76467,9 +80274,13 @@ /area/security/checkpoint/medical) "cXP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/side{ @@ -76487,6 +80298,8 @@ /area/security/checkpoint/medical) "cXR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/blue, @@ -76525,9 +80338,8 @@ /turf/open/floor/plasteel/redblue, /area/medical/medbay/central) "cXW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/redblue, /area/medical/medbay/central) @@ -76552,7 +80364,6 @@ pixel_x = -23 }, /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -76679,9 +80490,8 @@ /area/crew_quarters/fitness/recreation) "cYo" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/green/side{ dir = 6 @@ -76702,7 +80512,6 @@ /area/maintenance/port) "cYs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -76735,7 +80544,6 @@ "cYw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -76743,12 +80551,16 @@ "cYx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/delivery, @@ -76757,6 +80569,8 @@ "cYy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -76767,6 +80581,8 @@ /area/maintenance/port) "cYz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -76777,6 +80593,8 @@ "cYA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -76786,9 +80604,13 @@ /area/maintenance/port) "cYB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -76799,7 +80621,6 @@ /area/maintenance/port) "cYC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -76870,9 +80691,11 @@ "cYL" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -76918,7 +80741,6 @@ pixel_x = 11 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -77031,10 +80853,7 @@ }, /area/medical/chemistry) "cZd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteyellow/side{ dir = 5 }, @@ -77071,7 +80890,6 @@ /area/medical/medbay/central) "cZk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -77079,9 +80897,8 @@ }, /area/medical/medbay/central) "cZl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -77097,15 +80914,21 @@ /area/security/checkpoint/medical) "cZn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/medical) "cZo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -77115,10 +80938,12 @@ /area/security/checkpoint/medical) "cZp" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -77127,7 +80952,6 @@ /area/security/checkpoint/medical) "cZq" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/effect/turf_decal/stripes/end{ @@ -77137,6 +80961,8 @@ /area/medical/medbay/central) "cZr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -77148,7 +80974,6 @@ /area/medical/medbay/central) "cZt" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/effect/turf_decal/stripes/end{ @@ -77188,6 +81013,8 @@ /area/maintenance/starboard/aft) "cZA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -77232,12 +81059,17 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/barricade/wooden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "cZJ" = ( @@ -77251,12 +81083,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "cZK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -77264,8 +81098,7 @@ "cZL" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -77278,8 +81111,7 @@ name = "3maintenance loot spawner" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -77290,7 +81122,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -77303,15 +81134,13 @@ name = "2maintenance loot spawner" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "cZP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -77321,7 +81150,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -77332,6 +81160,7 @@ /area/science/xenobiology) "cZS" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -77344,12 +81173,18 @@ /area/science/xenobiology) "cZT" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ @@ -77364,10 +81199,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "cZU" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -77384,6 +81223,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cZW" = ( @@ -77399,6 +81241,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "cZY" = ( @@ -77447,6 +81292,7 @@ /obj/item/weapon/stock_parts/console_screen, /obj/item/weapon/stock_parts/console_screen, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -77462,6 +81308,8 @@ /area/science/lab) "daf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -77469,6 +81317,8 @@ /area/science/lab) "dag" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -77480,6 +81330,8 @@ pixel_x = -16 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -77508,7 +81360,6 @@ /area/medical/chemistry) "dak" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/button/door{ @@ -77560,8 +81411,7 @@ pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Medbay - Chemistry"; @@ -77600,12 +81450,18 @@ "das" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/glass_security{ @@ -77616,6 +81472,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/medical) "dat" = ( @@ -77624,6 +81483,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dau" = ( @@ -77639,6 +81501,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "daw" = ( @@ -77648,11 +81513,16 @@ "dax" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "day" = ( @@ -77671,6 +81541,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "daA" = ( @@ -77687,14 +81560,17 @@ /area/maintenance/starboard/aft) "daC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -77708,6 +81584,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -77717,6 +81595,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/abandoned) "daE" = ( @@ -77725,6 +81606,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -77747,9 +81630,8 @@ /area/medical/abandoned) "daH" = ( /obj/item/weapon/wrench, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -77770,6 +81652,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/abandoned) "daK" = ( @@ -77813,6 +81698,7 @@ "daR" = ( /obj/structure/table/wood, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/item/clothing/gloves/color/fyellow, @@ -77848,6 +81734,8 @@ /area/crew_quarters/abandoned_gambling_den) "daV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -77867,10 +81755,11 @@ /area/crew_quarters/abandoned_gambling_den) "daY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -77880,7 +81769,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -77889,11 +81777,12 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) @@ -77903,18 +81792,18 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) "dbc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) @@ -77924,17 +81813,17 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/port) "dbe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -77943,6 +81832,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -77999,7 +81890,6 @@ /area/science/research) "dbl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -78008,7 +81898,6 @@ /area/science/research) "dbm" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -78073,6 +81962,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "dbt" = ( @@ -78158,7 +82050,6 @@ /area/science/lab) "dbA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -78173,6 +82064,8 @@ /area/science/lab) "dbC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -78270,7 +82163,6 @@ /area/medical/chemistry) "dbN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whiteyellow/side{ @@ -78279,6 +82171,8 @@ /area/medical/chemistry) "dbO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -78370,6 +82264,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dbY" = ( @@ -78382,6 +82279,8 @@ /area/medical/medbay/central) "dbZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -78393,7 +82292,6 @@ /area/medical/medbay/central) "dca" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -78427,7 +82325,6 @@ /area/medical/medbay/central) "dce" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -78449,13 +82346,14 @@ "dci" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dcj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -78469,6 +82367,8 @@ name = "emergency shower" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -78535,7 +82435,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/vault{ @@ -78544,15 +82443,13 @@ /area/crew_quarters/abandoned_gambling_den) "dcv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dcw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -78560,24 +82457,28 @@ /area/crew_quarters/abandoned_gambling_den) "dcx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dcy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -78585,12 +82486,13 @@ /area/crew_quarters/abandoned_gambling_den) "dcz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -78598,14 +82500,17 @@ /area/crew_quarters/abandoned_gambling_den) "dcA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /mob/living/simple_animal/cockroach, /turf/open/floor/plasteel/vault{ @@ -78621,7 +82526,6 @@ "dcC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -78647,6 +82551,8 @@ "dcH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -78658,7 +82564,6 @@ /area/science/xenobiology) "dcJ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -78670,9 +82575,8 @@ /turf/open/floor/plasteel/neutral, /area/science/research) "dcL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/purple, /area/science/research) @@ -78705,13 +82609,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "dcQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -78752,6 +82656,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/lab) "dcV" = ( @@ -78761,13 +82668,12 @@ /area/science/lab) "dcW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/science/lab) "dcX" = ( @@ -78845,10 +82751,7 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "dde" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/medical/chemistry) "ddf" = ( @@ -78860,6 +82763,8 @@ /area/medical/chemistry) "ddh" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/whiteyellow/side{ @@ -78868,6 +82773,8 @@ /area/medical/medbay/central) "ddi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -78875,24 +82782,32 @@ /area/medical/medbay/central) "ddj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "ddk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) "ddl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whiteblue, /area/medical/medbay/central) "ddm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -78900,9 +82815,13 @@ /area/medical/medbay/central) "ddn" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/device/radio/beacon, @@ -78912,6 +82831,8 @@ /area/medical/medbay/central) "ddo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -78919,35 +82840,47 @@ /area/medical/medbay/central) "ddp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "ddq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) "ddr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "dds" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -78955,15 +82888,21 @@ /area/medical/medbay/central) "ddt" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) "ddu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -78971,25 +82910,32 @@ /area/medical/medbay/central) "ddv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) "ddw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) "ddx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -78997,6 +82943,8 @@ /area/medical/medbay/central) "ddy" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whiteblue/side{ @@ -79005,6 +82953,8 @@ /area/medical/medbay/central) "ddz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -79014,10 +82964,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "ddA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -79027,9 +82982,13 @@ /area/maintenance/starboard/aft) "ddB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -79048,6 +83007,8 @@ pixel_x = -28 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -79131,6 +83092,8 @@ /area/crew_quarters/abandoned_gambling_den) "ddO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -79163,6 +83126,8 @@ "ddS" = ( /obj/structure/table/wood/poker, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/wallet/random, @@ -79177,7 +83142,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -79185,9 +83149,8 @@ "ddU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -79276,10 +83239,11 @@ /area/maintenance/port) "deg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -79287,15 +83251,13 @@ "deh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "dei" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral/side{ @@ -79385,7 +83347,6 @@ /area/science/explab) "deu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -79394,22 +83355,19 @@ /area/science/research) "dev" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/whitepurple/side, /area/science/research) "dew" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitepurple/corner, /area/science/research) "dex" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner, @@ -79443,6 +83401,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "deC" = ( @@ -79538,10 +83499,11 @@ /area/science/lab) "deK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/whitepurple/corner, @@ -79617,7 +83579,6 @@ /area/medical/chemistry) "deR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whiteyellow/corner{ @@ -79640,6 +83601,8 @@ /area/medical/chemistry) "deT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/item/device/radio/intercom{ @@ -79654,6 +83617,8 @@ /area/medical/chemistry) "deU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -79672,6 +83637,8 @@ req_access_txt = "5; 33" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -79680,10 +83647,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/chemistry) "deW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -79733,6 +83705,8 @@ /area/medical/medbay/central) "dfb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -79754,6 +83728,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dfe" = ( @@ -79785,6 +83762,8 @@ /area/medical/medbay/central) "dfi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -79816,7 +83795,6 @@ /area/medical/medbay/central) "dfn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/corner, @@ -79841,10 +83819,11 @@ /area/maintenance/starboard/aft) "dfq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -79926,7 +83905,6 @@ "dfz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -79944,15 +83922,17 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "dfB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood{ icon_state = "wood-broken2" @@ -79978,6 +83958,7 @@ /area/crew_quarters/abandoned_gambling_den) "dfF" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -79991,15 +83972,20 @@ dir = 4 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dfG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/window/northright, @@ -80010,6 +83996,7 @@ /area/crew_quarters/abandoned_gambling_den) "dfH" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -80023,9 +84010,11 @@ /area/crew_quarters/abandoned_gambling_den) "dfI" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -80036,9 +84025,11 @@ /area/crew_quarters/abandoned_gambling_den) "dfJ" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, @@ -80121,7 +84112,6 @@ "dfU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -80130,6 +84120,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -80140,6 +84132,8 @@ "dfW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -80186,6 +84180,8 @@ /area/science/explab) "dgb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -80194,10 +84190,7 @@ }, /area/science/explab) "dgc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitepurple/corner{ dir = 4 }, @@ -80222,6 +84215,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dgh" = ( @@ -80230,6 +84226,7 @@ /area/science/research) "dgi" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -80239,9 +84236,13 @@ "dgj" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/airlock/research{ @@ -80252,10 +84253,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/misc_lab/range) "dgk" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -80288,6 +84293,7 @@ /area/crew_quarters/heads/hor) "dgp" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -80300,9 +84306,11 @@ /area/crew_quarters/heads/hor) "dgq" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -80319,6 +84327,7 @@ icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -80361,11 +84370,16 @@ req_one_access_txt = "7;29" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dgy" = ( @@ -80375,6 +84389,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dgz" = ( @@ -80382,6 +84399,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dgA" = ( @@ -80395,6 +84415,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dgB" = ( @@ -80410,6 +84433,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dgD" = ( @@ -80426,6 +84452,8 @@ /area/medical/genetics/cloning) "dgG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -80433,16 +84461,24 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dgH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dgI" = ( @@ -80462,6 +84498,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dgL" = ( @@ -80478,6 +84517,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dgN" = ( @@ -80489,6 +84531,8 @@ /area/maintenance/starboard/aft) "dgO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -80515,6 +84559,7 @@ "dgS" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -80538,6 +84583,7 @@ "dgV" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -80548,7 +84594,6 @@ /area/crew_quarters/abandoned_gambling_den) "dgW" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -80637,10 +84682,7 @@ /turf/open/floor/plasteel, /area/science/explab) "dhi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whitepurple/side{ dir = 8 }, @@ -80654,6 +84696,8 @@ /area/science/explab) "dhl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -80681,9 +84725,8 @@ /turf/open/floor/plasteel, /area/science/explab) "dhq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/firealarm{ dir = 8; @@ -80694,7 +84737,6 @@ /area/science/research) "dhr" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -80710,7 +84752,6 @@ /area/science/research) "dht" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -80719,9 +84760,8 @@ /turf/open/floor/plasteel, /area/science/research) "dhu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Science - Lab Access"; @@ -80743,6 +84783,7 @@ /obj/item/clothing/ears/earmuffs, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/firealarm{ @@ -80761,12 +84802,18 @@ /area/science/misc_lab/range) "dhw" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -80795,10 +84842,10 @@ req_access_txt = "47" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/delivery, @@ -80820,6 +84867,8 @@ /area/crew_quarters/heads/hor) "dhz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -80836,10 +84885,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dhB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -80876,7 +84922,6 @@ /obj/item/weapon/stock_parts/cell/high, /obj/machinery/cell_charger, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/airalarm{ @@ -80892,6 +84937,8 @@ /area/science/robotics/mechbay) "dhG" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line{ @@ -80901,6 +84948,8 @@ /area/science/robotics/mechbay) "dhH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -80910,10 +84959,14 @@ /area/science/robotics/mechbay) "dhI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -80923,6 +84976,8 @@ /area/science/robotics/mechbay) "dhJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -80933,6 +84988,7 @@ /area/science/robotics/mechbay) "dhK" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -80951,7 +85007,6 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/sign/nosmoking_2{ @@ -80989,7 +85044,6 @@ }, /area/hallway/primary/aft) "dhQ" = ( -/turf/open/floor/plating, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -81019,7 +85073,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/medical/genetics/cloning) @@ -81035,15 +85088,11 @@ "dhU" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/medical/genetics/cloning) "dhV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whiteblue/corner{ dir = 4 }, @@ -81063,6 +85112,7 @@ "dhX" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -81085,18 +85135,18 @@ /area/medical/medbay/central) "dhZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "dia" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner, @@ -81137,7 +85187,6 @@ /area/medical/medbay/central) "dif" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -81146,11 +85195,12 @@ /area/medical/medbay/central) "dig" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) @@ -81182,9 +85232,8 @@ }, /area/medical/surgery) "din" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -81196,9 +85245,8 @@ }, /area/medical/surgery) "dip" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -81215,6 +85263,8 @@ /area/medical/surgery) "dir" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -81223,6 +85273,8 @@ /area/maintenance/starboard/aft) "dis" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -81251,6 +85303,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "diw" = ( @@ -81258,6 +85313,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "dix" = ( @@ -81265,6 +85323,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "diy" = ( @@ -81295,7 +85356,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -81315,9 +85375,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -81341,7 +85400,6 @@ /area/crew_quarters/abandoned_gambling_den) "diI" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/wood, @@ -81351,7 +85409,6 @@ /area/crew_quarters/abandoned_gambling_den) "diK" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/plating, @@ -81407,10 +85464,7 @@ /area/science/research/abandoned) "diR" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/neutral, /area/science/research/abandoned) @@ -81443,21 +85497,27 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "diW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/port) "diX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -81470,6 +85530,8 @@ /area/maintenance/port) "diY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -81483,10 +85545,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/explab) "diZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -81497,6 +85564,8 @@ /area/science/explab) "dja" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -81509,6 +85578,8 @@ /area/science/explab) "djb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -81524,6 +85595,8 @@ /area/science/explab) "djc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -81539,6 +85612,8 @@ "djd" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/stack/sheet/mineral/plasma{ @@ -81575,7 +85650,6 @@ /obj/item/weapon/folder/white, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -81620,6 +85694,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/explab) "djj" = ( @@ -81682,6 +85759,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "djo" = ( @@ -81700,6 +85780,8 @@ "djp" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ @@ -81714,7 +85796,6 @@ /area/science/misc_lab/range) "djq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment{ @@ -81756,6 +85837,8 @@ /area/crew_quarters/heads/hor) "djt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -81775,7 +85858,6 @@ /area/crew_quarters/heads/hor) "djv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -81791,8 +85873,7 @@ /obj/structure/filingcabinet/chestdrawer, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -81810,14 +85891,12 @@ name = "Research Director's Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) "djy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -81835,7 +85914,6 @@ /area/science/research) "djA" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -81862,6 +85940,8 @@ /area/science/robotics/mechbay) "djD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -81875,9 +85955,8 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "djE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -81927,7 +86006,6 @@ /area/hallway/primary/aft) "djL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -81946,6 +86024,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "djN" = ( @@ -81973,7 +86054,6 @@ /area/hallway/primary/aft) "djQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -82010,7 +86090,6 @@ /area/medical/genetics/cloning) "djV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -82023,6 +86102,8 @@ /area/medical/genetics/cloning) "djX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82040,6 +86121,8 @@ req_access_txt = "5" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82048,10 +86131,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/genetics/cloning) "djZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -82059,15 +86147,18 @@ dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 8 }, /area/medical/medbay/central) "dka" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82126,13 +86217,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dki" = ( /obj/structure/chair, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -82140,6 +86233,8 @@ /area/medical/surgery) "dkj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -82234,7 +86329,6 @@ /area/crew_quarters/abandoned_gambling_den) "dkw" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -82266,7 +86360,6 @@ /area/crew_quarters/abandoned_gambling_den) "dkA" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -82301,6 +86394,8 @@ "dkF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line, @@ -82308,10 +86403,11 @@ /area/science/research/abandoned) "dkG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line, @@ -82319,11 +86415,12 @@ /area/science/research/abandoned) "dkH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -82332,11 +86429,12 @@ /area/science/research/abandoned) "dkI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -82344,11 +86442,12 @@ "dkJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/barricade/wooden, /obj/machinery/door/airlock/maintenance_hatch{ @@ -82358,6 +86457,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research/abandoned) "dkK" = ( @@ -82367,26 +86469,31 @@ name = "Decrepit Blast Door" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/girder, /obj/structure/grille, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "dkL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -82395,13 +86502,16 @@ /area/maintenance/port) "dkM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -82410,8 +86520,7 @@ /area/maintenance/port) "dkN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/science/explab) @@ -82421,7 +86530,6 @@ /obj/item/stack/medical/bruise_pack, /obj/item/stack/medical/ointment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -82569,7 +86677,6 @@ pixel_y = -26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -82577,20 +86684,25 @@ /area/science/misc_lab/range) "dle" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/misc_lab/range) "dlf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -82600,9 +86712,13 @@ "dlg" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/command{ @@ -82613,13 +86729,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dlh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment, @@ -82628,9 +86751,13 @@ /area/crew_quarters/heads/hor) "dli" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -82639,13 +86766,16 @@ /area/crew_quarters/heads/hor) "dlj" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -82655,6 +86785,8 @@ /area/crew_quarters/heads/hor) "dlk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -82671,6 +86803,8 @@ /area/crew_quarters/heads/hor) "dll" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82685,9 +86819,13 @@ "dlm" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/command{ @@ -82704,6 +86842,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dln" = ( @@ -82715,6 +86856,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -82730,13 +86873,14 @@ icon_state = "pipe-j2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/purple, /area/science/research) "dlp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -82752,6 +86896,8 @@ /area/science/robotics/mechbay) "dlr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -82793,11 +86939,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dlx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -82807,9 +86955,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "dly" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) @@ -82826,16 +86973,14 @@ /area/hallway/primary/aft) "dlB" = ( /obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dlC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -82863,9 +87008,8 @@ }, /area/medical/genetics/cloning) "dlG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/medical/genetics/cloning) @@ -82884,7 +87028,6 @@ /area/medical/genetics/cloning) "dlJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -82908,11 +87051,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/genetics/cloning) "dlM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -82921,6 +87066,8 @@ /area/medical/medbay/central) "dlN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -82986,7 +87133,6 @@ /area/crew_quarters/abandoned_gambling_den) "dlX" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -83003,6 +87149,7 @@ "dlZ" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -83021,7 +87168,6 @@ "dmb" = ( /obj/structure/table/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/weapon/paper_bin, @@ -83087,10 +87233,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port) "dmk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -83172,6 +87323,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "dmw" = ( @@ -83188,6 +87342,8 @@ /area/science/misc_lab/range) "dmy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window/northright{ @@ -83223,6 +87379,8 @@ "dmC" = ( /obj/structure/chair/office/light, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -83262,7 +87420,6 @@ "dmF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -83272,6 +87429,8 @@ "dmG" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -83290,10 +87449,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dmJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -83326,6 +87490,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dmP" = ( @@ -83434,12 +87601,13 @@ "dnc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 8 }, /area/medical/medbay/central) "dnd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -83493,7 +87661,6 @@ /area/medical/medbay/central) "dnj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner, @@ -83531,7 +87698,6 @@ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -83575,7 +87741,6 @@ }, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whiteblue, @@ -83603,11 +87768,12 @@ /area/medical/surgery) "dnu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -83635,6 +87801,8 @@ /area/crew_quarters/abandoned_gambling_den) "dnz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window/eastleft, @@ -83666,6 +87834,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research/abandoned) "dnD" = ( @@ -83738,6 +87909,8 @@ /area/science/misc_lab/range) "dnO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -83752,6 +87925,8 @@ /area/science/misc_lab/range) "dnQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/disposal/bin, @@ -83763,6 +87938,8 @@ /area/crew_quarters/heads/hor) "dnR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -83772,9 +87949,13 @@ "dnS" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/button/door{ @@ -83826,12 +88007,13 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dnV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple, @@ -83872,6 +88054,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/genetics) "doc" = ( @@ -83883,6 +88068,7 @@ /area/medical/genetics) "doe" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -83896,19 +88082,27 @@ req_access_txt = "9" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/genetics) "dog" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -83918,6 +88112,7 @@ /area/medical/genetics) "doh" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -83932,9 +88127,13 @@ /area/medical/medbay/central) "doi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, @@ -83966,7 +88165,6 @@ "don" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -83981,9 +88179,8 @@ }, /area/medical/surgery) "dop" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/medical/surgery) @@ -83997,7 +88194,6 @@ name = "medbay camera" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -84019,15 +88215,13 @@ "dot" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, /area/medical/surgery) "dou" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/blue, /area/medical/surgery) @@ -84046,9 +88240,13 @@ /area/medical/surgery) "dow" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -84060,10 +88258,11 @@ /area/maintenance/starboard/aft) "dox" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -84076,6 +88275,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84084,6 +88285,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "doz" = ( @@ -84108,9 +88312,8 @@ /turf/open/floor/plating, /area/hallway/secondary/construction) "doC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/hallway/secondary/construction) @@ -84129,6 +88332,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "doF" = ( @@ -84141,6 +88347,7 @@ "doG" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -84152,9 +88359,11 @@ /area/crew_quarters/abandoned_gambling_den) "doH" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -84164,6 +88373,7 @@ "doI" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -84271,6 +88481,8 @@ "doV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -84280,7 +88492,6 @@ /area/maintenance/port) "doW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -84288,9 +88499,8 @@ }, /area/science/explab) "doX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -84324,7 +88534,6 @@ /area/science/explab) "dpc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -84332,9 +88541,8 @@ }, /area/science/explab) "dpd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/vault{ @@ -84369,7 +88577,6 @@ /area/science/mixing) "dpi" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/sign/securearea{ @@ -84380,7 +88587,6 @@ /area/science/misc_lab/range) "dpj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -84403,9 +88609,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dpl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 8 @@ -84414,13 +88619,16 @@ "dpm" = ( /obj/machinery/computer/aifixer, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/white, @@ -84430,6 +88638,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/research_director, @@ -84439,6 +88649,8 @@ "dpo" = ( /obj/machinery/computer/mecha, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -84446,6 +88658,7 @@ /area/crew_quarters/heads/hor) "dpp" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -84458,7 +88671,6 @@ /area/crew_quarters/heads/hor) "dpq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -84467,19 +88679,19 @@ /area/science/research) "dpr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/science/research) "dps" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -84489,8 +88701,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/science/robotics/mechbay) @@ -84498,14 +88709,15 @@ /obj/machinery/recharge_station, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dpv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -84519,9 +88731,8 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "dpw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -84658,6 +88869,8 @@ /area/medical/genetics) "dpM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -84696,6 +88909,7 @@ /area/medical/genetics) "dpP" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -84714,6 +88928,7 @@ /area/medical/medbay/central) "dpR" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -84774,9 +88989,13 @@ /area/crew_quarters/heads/cmo) "dpX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84786,6 +89005,8 @@ /area/medical/medbay/central) "dpY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -84797,6 +89018,8 @@ "dpZ" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/medical{ @@ -84808,10 +89031,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dqa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84823,17 +89051,20 @@ /area/medical/surgery) "dqb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/blue, /area/medical/surgery) "dqc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84850,6 +89081,8 @@ req_access_txt = "45" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84858,10 +89091,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dqe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84874,10 +89112,11 @@ "dqf" = ( /obj/machinery/computer/operating, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -84886,9 +89125,13 @@ /obj/structure/table/optable, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84899,6 +89142,8 @@ "dqh" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84909,6 +89154,8 @@ /area/medical/surgery) "dqi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84922,6 +89169,8 @@ req_access_txt = "45" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -84930,13 +89179,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/surgery) "dqk" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -84949,7 +89205,6 @@ "dql" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -85031,9 +89286,8 @@ /area/crew_quarters/abandoned_gambling_den) "dqu" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -85072,6 +89326,8 @@ /area/science/research/abandoned) "dqA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -85121,7 +89377,6 @@ /area/science/mixing) "dqF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -85134,7 +89389,6 @@ /area/science/mixing) "dqH" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -85143,7 +89397,6 @@ /area/science/mixing) "dqI" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ - icon_state = "heater"; dir = 8; on = 1 }, @@ -85167,6 +89420,8 @@ /area/science/misc_lab/range) "dqK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -85185,6 +89440,8 @@ /obj/structure/table/reinforced, /obj/machinery/light, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/storage/secure/briefcase, @@ -85202,6 +89459,8 @@ /area/crew_quarters/heads/hor) "dqN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -85210,9 +89469,13 @@ /area/crew_quarters/heads/hor) "dqO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -85242,6 +89505,8 @@ "dqR" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple, @@ -85263,7 +89528,6 @@ /obj/item/stack/packageWrap, /obj/item/weapon/hand_labeler, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -85274,6 +89538,8 @@ /area/science/robotics/mechbay) "dqU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -85284,6 +89550,8 @@ "dqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -85291,6 +89559,8 @@ /area/science/robotics/mechbay) "dqW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -85304,6 +89574,8 @@ /area/science/robotics/mechbay) "dqX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -85311,6 +89583,8 @@ /area/science/robotics/mechbay) "dqY" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, @@ -85326,7 +89600,6 @@ /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/turf_decal/bot, @@ -85334,7 +89607,6 @@ /area/science/robotics/mechbay) "drb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -85376,6 +89648,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/genetics) "drf" = ( @@ -85401,10 +89676,11 @@ /area/medical/genetics) "drh" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -85415,6 +89691,8 @@ /area/medical/genetics) "dri" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85426,6 +89704,7 @@ "drj" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/item/weapon/clipboard, @@ -85499,6 +89778,8 @@ /area/medical/genetics) "drp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85509,7 +89790,6 @@ /area/medical/genetics) "drq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -85533,6 +89813,7 @@ /area/medical/genetics) "drs" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, @@ -85546,7 +89827,6 @@ /area/medical/genetics) "drt" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -85555,9 +89835,13 @@ /area/medical/medbay/central) "dru" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85568,6 +89852,8 @@ /area/medical/medbay/central) "drv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85582,12 +89868,18 @@ req_access_txt = "40" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85596,10 +89888,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/cmo) "drx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85611,35 +89908,43 @@ /area/crew_quarters/heads/cmo) "dry" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "drz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "drA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "drB" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -85656,12 +89961,18 @@ req_access_txt = "40" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -85670,14 +89981,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/cmo) "drD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -85686,21 +90001,23 @@ /area/medical/medbay/central) "drE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/central) "drF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner, @@ -85711,16 +90028,14 @@ }, /area/medical/surgery) "drH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/medical/surgery) "drI" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner, /area/medical/surgery) @@ -85744,6 +90059,8 @@ /area/medical/surgery) "drL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/side, @@ -85753,8 +90070,7 @@ /area/medical/surgery) "drN" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; @@ -85764,6 +90080,8 @@ /area/medical/surgery) "drO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -85823,7 +90141,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -85838,9 +90155,8 @@ /area/maintenance/starboard/aft) "drX" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -85855,7 +90171,6 @@ /area/maintenance/starboard/aft) "drZ" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /obj/effect/decal/cleanable/dirt, @@ -85938,7 +90253,6 @@ "dsn" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/sign/nosmoking_2{ @@ -85954,7 +90268,6 @@ /area/science/mixing) "dso" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -85976,12 +90289,10 @@ /area/science/mixing) "dsr" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/extinguisher_cabinet{ @@ -85993,16 +90304,14 @@ /turf/open/floor/plasteel, /area/science/mixing) "dss" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plating, /area/science/misc_lab/range) "dst" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/science/misc_lab/range) @@ -86012,6 +90321,8 @@ "dsv" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/grille, @@ -86021,12 +90332,18 @@ "dsw" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/command{ @@ -86038,10 +90355,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "dsx" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -86052,12 +90373,17 @@ "dsy" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dsz" = ( @@ -86071,6 +90397,9 @@ dir = 8; pixel_x = 24 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dsA" = ( @@ -86092,6 +90421,8 @@ "dsD" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_research{ @@ -86101,6 +90432,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/robotics/lab) "dsE" = ( @@ -86113,6 +90447,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dsG" = ( @@ -86122,7 +90459,6 @@ pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/folder/white, @@ -86138,9 +90474,13 @@ /area/medical/genetics) "dsH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -86152,10 +90492,11 @@ /area/medical/genetics) "dsI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -86165,6 +90506,8 @@ /area/medical/genetics) "dsJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -86184,9 +90527,13 @@ req_access_txt = "9" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -86198,10 +90545,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/genetics) "dsL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -86216,6 +90568,8 @@ /area/medical/genetics) "dsM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -86231,10 +90585,11 @@ /area/medical/genetics) "dsN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/disposalpipe/segment{ @@ -86244,6 +90599,8 @@ /area/medical/genetics) "dsO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -86256,12 +90613,13 @@ /area/medical/genetics) "dsP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/holopad, /obj/effect/landmark/start/geneticist, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -86270,9 +90628,8 @@ /turf/open/floor/plasteel/neutral, /area/medical/genetics) "dsQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -86297,10 +90654,12 @@ /area/medical/genetics) "dsS" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -86313,10 +90672,11 @@ /area/medical/genetics) "dsT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -86325,14 +90685,17 @@ /area/medical/medbay/central) "dsU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/blue, @@ -86355,21 +90718,21 @@ /area/crew_quarters/heads/cmo) "dsX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dsY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dsZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/cmo, @@ -86419,9 +90782,8 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault, /area/medical/surgery) @@ -86477,6 +90839,7 @@ pixel_y = -26 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/bot, @@ -86486,6 +90849,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -86588,24 +90953,21 @@ /area/science/research/abandoned) "dtB" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/neutral, /area/science/research/abandoned) "dtC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/science/research/abandoned) "dtD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -86614,16 +90976,14 @@ /area/science/research/abandoned) "dtE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/research/abandoned) "dtF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/barricade/wooden, /obj/machinery/door/airlock/maintenance_hatch{ @@ -86633,26 +90993,31 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research/abandoned) "dtG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/port) "dtH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -86661,11 +91026,12 @@ "dtI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -86673,11 +91039,12 @@ /area/maintenance/port) "dtJ" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -86686,7 +91053,6 @@ "dtK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -86712,7 +91078,6 @@ /area/science/mixing) "dtN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -86728,7 +91093,6 @@ /area/science/mixing) "dtP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/structure/sign/fire{ @@ -86769,6 +91133,8 @@ /area/crew_quarters/heads/hor) "dtU" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -86859,6 +91225,8 @@ /area/science/robotics/lab) "dub" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -86927,29 +91295,27 @@ /obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 8 }, /area/medical/genetics) "duh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/medical/genetics) "dui" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/medical/genetics) @@ -86984,9 +91350,8 @@ }, /area/medical/genetics) "dun" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whitepurple/side, /area/medical/genetics) @@ -87036,7 +91401,6 @@ pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /mob/living/simple_animal/pet/cat/Runtime, @@ -87046,6 +91410,8 @@ /area/crew_quarters/heads/cmo) "duu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/holopad, @@ -87059,6 +91425,8 @@ "duw" = ( /obj/structure/chair/office/light, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -87067,11 +91435,11 @@ "dux" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/power/apc{ dir = 4; @@ -87098,6 +91466,8 @@ /area/medical/medbay/central) "duz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -87110,15 +91480,22 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/construction) "duB" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/item/device/radio/intercom{ @@ -87133,6 +91510,7 @@ "duC" = ( /obj/machinery/power/smes, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/light/small{ @@ -87187,7 +91565,6 @@ /area/science/research/abandoned) "duJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -87229,16 +91606,18 @@ "duP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral, /area/maintenance/port) "duQ" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -87252,6 +91631,8 @@ /area/science/mixing) "duR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -87261,6 +91642,8 @@ /area/science/mixing) "duS" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -87276,7 +91659,6 @@ /area/science/mixing) "duU" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister, @@ -87295,6 +91677,8 @@ /obj/item/target/syndicate, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -87305,15 +91689,13 @@ /area/science/misc_lab/range) "duY" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/ai_status_display{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -87328,25 +91710,24 @@ /area/crew_quarters/heads/hor) "dva" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/research_director, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/purple, /area/crew_quarters/heads/hor) "dvb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/heads/hor) "dvc" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/bed, @@ -87364,7 +91745,6 @@ }, /obj/item/weapon/wrench, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/clothing/glasses/welding, @@ -87378,6 +91758,8 @@ /area/science/robotics/lab) "dve" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line{ @@ -87388,6 +91770,8 @@ "dvf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -87397,6 +91781,8 @@ /area/science/robotics/lab) "dvg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -87406,6 +91792,8 @@ /area/science/robotics/lab) "dvh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -87443,6 +91831,7 @@ /area/science/robotics/lab) "dvk" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -87456,6 +91845,8 @@ "dvl" = ( /obj/structure/filingcabinet/chestdrawer, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/button/door{ @@ -87467,24 +91858,25 @@ }, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; pixel_y = -32 }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 8 }, /area/medical/genetics) "dvm" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 8 }, /area/medical/genetics) @@ -87595,10 +91987,11 @@ /area/medical/genetics) "dvz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -87617,6 +92010,7 @@ /area/medical/medbay/central) "dvB" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -87636,6 +92030,8 @@ "dvC" = ( /obj/machinery/disposal/bin, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -87646,12 +92042,18 @@ /area/crew_quarters/heads/cmo) "dvD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -87663,6 +92065,8 @@ "dvE" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/paper_bin, @@ -87674,9 +92078,13 @@ "dvF" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/item/weapon/folder/blue{ @@ -87686,7 +92094,6 @@ /obj/item/weapon/folder/white, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/cmo, @@ -87695,6 +92102,8 @@ /obj/machinery/computer/med_data/laptop, /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -87704,6 +92113,7 @@ /area/crew_quarters/heads/cmo) "dvH" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -87745,13 +92155,14 @@ "dvN" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dvO" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -87765,6 +92176,8 @@ /area/maintenance/starboard/aft) "dvP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -87778,6 +92191,8 @@ /area/maintenance/starboard/aft) "dvQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -87788,9 +92203,13 @@ /area/maintenance/starboard/aft) "dvR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -87798,6 +92217,8 @@ /area/maintenance/starboard/aft) "dvS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -87808,6 +92229,8 @@ /area/maintenance/starboard/aft) "dvT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -87817,6 +92240,8 @@ /area/maintenance/starboard/aft) "dvU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -87831,9 +92256,13 @@ /area/maintenance/starboard/aft) "dvV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -87846,9 +92275,13 @@ /area/maintenance/starboard/aft) "dvW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -87860,9 +92293,13 @@ /area/maintenance/starboard/aft) "dvX" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -87876,22 +92313,24 @@ /area/maintenance/starboard/aft) "dvY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dvZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -87903,6 +92342,8 @@ req_access_txt = "10" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -87911,6 +92352,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/aft) "dwb" = ( @@ -88016,6 +92460,8 @@ /area/science/mixing) "dwq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -88044,6 +92490,8 @@ /area/science/misc_lab/range) "dwu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -88077,6 +92525,8 @@ /area/crew_quarters/heads/hor) "dwy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/camera{ @@ -88090,6 +92540,8 @@ /area/crew_quarters/heads/hor) "dwz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whitepurple/corner, @@ -88108,7 +92560,6 @@ /area/crew_quarters/heads/hor) "dwB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment, @@ -88149,11 +92600,12 @@ /area/science/robotics/lab) "dwE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -88162,9 +92614,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "dwF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/science/robotics/lab) @@ -88194,6 +92645,8 @@ "dwL" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/centcom{ @@ -88204,6 +92657,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/morgue) "dwM" = ( @@ -88220,6 +92676,8 @@ "dwP" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -88230,6 +92688,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/morgue) "dwQ" = ( @@ -88245,18 +92706,18 @@ /area/crew_quarters/heads/cmo) "dwR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dwS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -88280,7 +92741,6 @@ /area/crew_quarters/heads/cmo) "dwV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/camera{ @@ -88303,6 +92763,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dwX" = ( @@ -88332,18 +92795,18 @@ req_access_txt = "0"; use_power = 0 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/cmo, /area/medical/medbay/central) "dxa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -88408,12 +92871,13 @@ /area/maintenance/starboard/aft) "dxi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -88421,7 +92885,6 @@ /area/maintenance/starboard/aft) "dxj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -88535,6 +92998,8 @@ /area/science/research/abandoned) "dxw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -88588,6 +93053,8 @@ /area/science/mixing) "dxz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -88595,7 +93062,6 @@ /area/science/mixing) "dxA" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitepurple/corner, @@ -88617,6 +93083,8 @@ "dxD" = ( /obj/machinery/door/firedoor/heavy, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -88631,6 +93099,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/misc_lab/range) "dxE" = ( @@ -88649,11 +93120,9 @@ /area/crew_quarters/heads/hor) "dxG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -88666,8 +93135,7 @@ /area/science/research) "dxH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ @@ -88683,8 +93151,7 @@ req_access_txt = "29" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -88692,12 +93159,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/robotics/lab) "dxJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -88709,11 +93178,12 @@ "dxK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -88723,14 +93193,12 @@ /area/science/robotics/lab) "dxL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/science/robotics/lab) "dxM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -88738,23 +93206,20 @@ "dxN" = ( /obj/effect/landmark/start/roboticist, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/science/robotics/lab) "dxO" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/science/robotics/lab) "dxP" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; pixel_x = 32 }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -88795,6 +93260,8 @@ /area/medical/morgue) "dxT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -88811,10 +93278,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -88847,7 +93311,6 @@ /turf/open/floor/plating, /area/medical/morgue) "dxZ" = ( -/turf/open/floor/plating, /obj/structure/filingcabinet/chestdrawer, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -88879,6 +93342,8 @@ /area/medical/morgue) "dyd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -88901,6 +93366,8 @@ /area/crew_quarters/heads/cmo) "dyf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/vending/wallmed{ @@ -88965,9 +93432,8 @@ /obj/structure/mirror{ pixel_y = -28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cmo, /area/medical/medbay/central) @@ -89017,6 +93483,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -89024,6 +93492,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/detectives_office/private_investigators_office) "dyu" = ( @@ -89085,7 +93556,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -89095,13 +93565,14 @@ /area/science/mixing) "dyA" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/scientist, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/science/mixing) @@ -89122,6 +93593,8 @@ /area/science/storage) "dyE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -89180,9 +93653,8 @@ }, /area/science/server) "dyK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -89224,6 +93696,8 @@ /area/science/robotics/lab) "dyP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -89263,18 +93737,18 @@ /area/science/robotics/lab) "dyV" = ( /obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dyW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -89298,6 +93772,8 @@ "dyZ" = ( /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -89317,10 +93793,7 @@ /area/medical/morgue) "dzd" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/neutral, /area/medical/morgue) @@ -89339,6 +93812,8 @@ "dzh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -89357,6 +93832,8 @@ "dzk" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/grille, @@ -89370,12 +93847,15 @@ req_access_txt = "40" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "dzm" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -89390,7 +93870,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -89423,6 +93902,7 @@ /area/crew_quarters/theatre/abandoned) "dzr" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -89490,6 +93970,8 @@ /area/security/detectives_office/private_investigators_office) "dzz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -89598,6 +94080,8 @@ /area/science/mixing) "dzL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -89610,6 +94094,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "dzM" = ( @@ -89661,11 +94148,9 @@ /area/science/mixing) "dzQ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/camera{ @@ -89684,7 +94169,6 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -89694,12 +94178,13 @@ /area/science/storage) "dzS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -89727,6 +94212,7 @@ /area/science/storage) "dzW" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/computer/rdservercontrol, @@ -89744,14 +94230,17 @@ }, /area/science/server) "dzX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -89764,6 +94253,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -89780,6 +94271,8 @@ req_access_txt = "30" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -89792,6 +94285,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -89803,17 +94298,20 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/science/research) "dAc" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner, @@ -89821,6 +94319,7 @@ "dAd" = ( /obj/machinery/disposal/bin, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -89836,9 +94335,13 @@ /area/science/robotics/lab) "dAe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -89880,7 +94383,6 @@ /area/science/robotics/lab) "dAk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/junction{ @@ -89904,6 +94406,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/morgue) "dAm" = ( @@ -89922,7 +94427,6 @@ "dAn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating{ @@ -89931,9 +94435,13 @@ /area/medical/morgue) "dAo" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -89945,6 +94453,8 @@ "dAp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -89955,6 +94465,8 @@ /area/medical/morgue) "dAq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -89965,6 +94477,8 @@ "dAr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/start/medical_doctor, @@ -89977,6 +94491,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -89987,6 +94503,8 @@ /area/medical/morgue) "dAt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -89994,6 +94512,8 @@ /area/medical/morgue) "dAu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -90015,6 +94535,8 @@ "dAv" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/centcom{ @@ -90027,10 +94549,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/morgue) "dAw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -90042,11 +94569,12 @@ /area/medical/morgue) "dAx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -90054,6 +94582,8 @@ "dAy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -90064,16 +94594,21 @@ /area/medical/morgue) "dAz" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -90115,11 +94650,12 @@ /area/crew_quarters/heads/cmo) "dAF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/central) @@ -90135,6 +94671,8 @@ /area/maintenance/starboard/aft) "dAH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -90151,6 +94689,8 @@ /area/crew_quarters/theatre/abandoned) "dAK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -90199,6 +94739,8 @@ /area/security/detectives_office/private_investigators_office) "dAR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -90311,10 +94853,7 @@ /turf/open/floor/plasteel, /area/science/mixing) "dBd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/neutral/side{ dir = 1; @@ -90357,6 +94896,8 @@ /area/science/mixing) "dBi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -90392,6 +94933,8 @@ /area/science/mixing) "dBn" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -90402,10 +94945,11 @@ /area/science/storage) "dBo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line, @@ -90413,16 +94957,14 @@ /area/science/storage) "dBp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/storage) "dBq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -90438,6 +94980,7 @@ /area/science/storage) "dBs" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -90447,7 +94990,6 @@ "dBt" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 6 }, /obj/machinery/door/airlock/glass_command{ @@ -90455,9 +94997,13 @@ req_access_txt = "30" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/vault{ @@ -90466,22 +95012,23 @@ /area/science/server) "dBu" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, /area/science/server) "dBv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -90500,7 +95047,6 @@ /obj/item/device/multitool, /obj/item/clothing/head/welding, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/newscaster{ @@ -90511,6 +95057,8 @@ /area/science/robotics/lab) "dBx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -90564,7 +95112,6 @@ /obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/ai_status_display{ @@ -90584,9 +95131,8 @@ }, /area/medical/morgue) "dBF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/medical/morgue) @@ -90594,10 +95140,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, @@ -90626,7 +95173,6 @@ "dBK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -90666,9 +95212,8 @@ /area/medical/morgue) "dBP" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -90677,7 +95222,6 @@ /area/medical/morgue) "dBQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -90685,6 +95229,8 @@ "dBR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -90701,15 +95247,13 @@ /area/medical/morgue) "dBT" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/ai_status_display{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -90718,7 +95262,6 @@ /area/crew_quarters/heads/cmo) "dBU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -90728,9 +95271,8 @@ /turf/open/floor/plasteel/blue, /area/crew_quarters/heads/cmo) "dBW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/heads/cmo) @@ -90738,8 +95280,7 @@ /obj/structure/bed, /obj/item/weapon/bedsheet/cmo, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/status_display{ pixel_x = 32 @@ -90770,13 +95311,14 @@ /area/crew_quarters/theatre/abandoned) "dCb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dCc" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -90802,6 +95344,7 @@ /area/crew_quarters/theatre/abandoned) "dCf" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -90814,12 +95357,13 @@ /area/security/detectives_office/private_investigators_office) "dCg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/security/detectives_office/private_investigators_office) @@ -90873,7 +95417,6 @@ /area/science/mixing) "dCn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -90926,6 +95469,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/mixing) "dCs" = ( @@ -90938,9 +95484,13 @@ /area/science/mixing) "dCt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -90951,6 +95501,8 @@ /area/science/mixing) "dCu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -90965,6 +95517,8 @@ "dCv" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -90982,10 +95536,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/mixing) "dCw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -91001,6 +95560,8 @@ /area/science/mixing) "dCx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -91013,12 +95574,18 @@ /area/science/mixing) "dCy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -91026,6 +95593,8 @@ /area/science/mixing) "dCz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -91035,6 +95604,8 @@ /area/science/mixing) "dCA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -91055,26 +95626,33 @@ name = "Toxins Lab Shutters" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, /area/science/mixing) "dCC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -91084,6 +95662,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -91093,6 +95673,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -91103,6 +95685,8 @@ "dCF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -91110,17 +95694,18 @@ /area/science/storage) "dCG" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/storage) "dCH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; name = "server vent"; - on = 1; pressure_checks = 0 }, /turf/open/floor/circuit/green{ @@ -91137,15 +95722,10 @@ }, /area/science/server) "dCJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "server vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /obj/machinery/camera{ c_tag = "Science - Server Room"; @@ -91175,20 +95755,24 @@ /area/science/research) "dCL" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/science/research) "dCM" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -91197,7 +95781,6 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner, @@ -91216,6 +95799,8 @@ /area/science/robotics/lab) "dCO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -91309,9 +95894,8 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -91349,6 +95933,8 @@ /area/medical/morgue) "dDg" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -91406,13 +95992,14 @@ /area/medical/medbay/central) "dDn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitegreen/side, /area/medical/medbay/central) "dDo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitegreen/corner, @@ -91426,15 +96013,18 @@ /area/maintenance/starboard/aft) "dDq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -91448,6 +96038,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -91457,10 +96049,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/theatre/abandoned) "dDs" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -91470,6 +96067,8 @@ /area/crew_quarters/theatre/abandoned) "dDt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -91481,10 +96080,11 @@ "dDu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, @@ -91497,7 +96097,6 @@ /area/crew_quarters/theatre/abandoned) "dDw" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -91527,9 +96126,8 @@ "dDz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/crew_quarters/theatre/abandoned) @@ -91592,9 +96190,8 @@ /area/science/mixing) "dDK" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -91676,6 +96273,8 @@ /area/science/mixing) "dDR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -91688,7 +96287,6 @@ /area/science/mixing) "dDS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -91710,7 +96308,6 @@ /obj/item/clothing/head/hardhat/red, /obj/item/clothing/mask/gas, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/bot, @@ -91718,12 +96315,13 @@ /area/science/mixing) "dDV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -91737,8 +96335,7 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -91746,8 +96343,7 @@ "dDY" = ( /obj/structure/sign/securearea, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/science/mixing) @@ -91756,8 +96352,7 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/camera{ c_tag = "Science - Toxins Secure Storage"; @@ -91770,7 +96365,6 @@ /area/science/storage) "dEa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/bot, @@ -91803,7 +96397,6 @@ "dEe" = ( /obj/machinery/r_n_d/server/core, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/circuit/green{ @@ -91822,7 +96415,6 @@ "dEg" = ( /obj/machinery/r_n_d/server/robotics, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/circuit/green{ @@ -91839,6 +96431,8 @@ /area/science/research) "dEi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -91846,6 +96440,8 @@ /area/science/research) "dEj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -91857,6 +96453,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/robotics/lab) "dEk" = ( @@ -91886,6 +96485,8 @@ "dEm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -91896,6 +96497,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/morgue) "dEn" = ( @@ -91905,6 +96509,8 @@ "dEo" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/virology{ @@ -91914,13 +96520,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dEp" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood{ icon_state = "wood-broken6" @@ -91928,7 +96536,6 @@ /area/crew_quarters/theatre/abandoned) "dEq" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -92034,6 +96641,8 @@ /area/science/mixing) "dED" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -92045,10 +96654,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "dEE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -92061,6 +96675,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "dEF" = ( @@ -92086,18 +96703,22 @@ req_access_txt = "47" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dEJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral/side{ @@ -92106,6 +96727,8 @@ /area/maintenance/port/aft) "dEK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -92141,7 +96764,6 @@ /area/maintenance/port/aft) "dEO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -92176,18 +96798,24 @@ /area/hallway/primary/aft) "dES" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dET" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92199,6 +96827,8 @@ /area/hallway/primary/aft) "dEU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92213,6 +96843,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92221,10 +96853,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dEW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -92236,6 +96873,8 @@ /area/maintenance/aft) "dEX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92245,6 +96884,8 @@ /area/maintenance/aft) "dEY" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -92255,6 +96896,8 @@ /area/maintenance/aft) "dEZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -92268,6 +96911,8 @@ /area/maintenance/aft) "dFa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92280,21 +96925,29 @@ /area/maintenance/aft) "dFb" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/aft) "dFc" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -92322,6 +96975,8 @@ /area/maintenance/aft) "dFe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/rack, @@ -92336,6 +96991,8 @@ /area/maintenance/aft) "dFf" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -92347,9 +97004,13 @@ /area/maintenance/aft) "dFg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92361,6 +97022,8 @@ /area/maintenance/aft) "dFh" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -92390,10 +97053,11 @@ /area/medical/medbay/central) "dFk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ @@ -92450,7 +97114,6 @@ "dFq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -92617,6 +97280,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "dFN" = ( @@ -92644,6 +97310,8 @@ /area/maintenance/port/aft) "dFQ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -92688,6 +97356,8 @@ "dFV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -92723,10 +97393,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/neutral, /area/science/research) @@ -92756,6 +97423,8 @@ /area/science/research) "dGf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -92780,19 +97449,24 @@ /area/maintenance/port/aft) "dGi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, /area/maintenance/port/aft) "dGj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -92803,6 +97477,8 @@ /area/maintenance/port/aft) "dGk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92812,17 +97488,22 @@ /area/maintenance/port/aft) "dGl" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -92830,6 +97511,8 @@ /area/maintenance/port/aft) "dGm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92840,6 +97523,8 @@ /area/maintenance/port/aft) "dGn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -92855,6 +97540,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92863,10 +97550,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dGp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92878,6 +97570,8 @@ /area/hallway/primary/aft) "dGq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92891,6 +97585,8 @@ /area/hallway/primary/aft) "dGr" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -92995,6 +97691,8 @@ /area/maintenance/aft) "dGD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -93005,6 +97703,8 @@ /area/maintenance/aft) "dGE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93014,6 +97714,8 @@ /area/maintenance/aft) "dGF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93061,6 +97763,8 @@ /area/maintenance/aft) "dGL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -93071,6 +97775,8 @@ /area/maintenance/aft) "dGM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -93082,6 +97788,8 @@ /area/maintenance/aft) "dGN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -93094,10 +97802,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dGO" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -93107,29 +97820,40 @@ /area/medical/medbay/central) "dGP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/bot, @@ -93137,6 +97861,8 @@ /area/medical/medbay/central) "dGQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93151,6 +97877,8 @@ "dGR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -93163,10 +97891,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dGS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93177,6 +97910,8 @@ /area/maintenance/starboard/aft) "dGT" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93186,6 +97921,8 @@ /area/maintenance/starboard/aft) "dGU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -93196,6 +97933,8 @@ /area/maintenance/starboard/aft) "dGV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -93206,6 +97945,8 @@ /area/maintenance/starboard/aft) "dGW" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -93215,11 +97956,12 @@ /area/maintenance/starboard/aft) "dGX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral/side{ @@ -93367,10 +98109,14 @@ "dHt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -93378,16 +98124,19 @@ "dHu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/port/aft) "dHv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -93398,6 +98147,8 @@ "dHw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -93408,9 +98159,13 @@ "dHx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -93419,6 +98174,8 @@ "dHy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -93430,10 +98187,11 @@ /area/maintenance/port/aft) "dHz" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral/side{ @@ -93442,9 +98200,8 @@ /area/maintenance/port/aft) "dHA" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -93465,6 +98222,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/research) "dHD" = ( @@ -93482,16 +98242,19 @@ icon_state = "pipe-c" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/redyellow, /area/science/research) "dHF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -93501,6 +98264,8 @@ /area/science/research) "dHG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -93529,6 +98294,8 @@ /area/maintenance/port/aft) "dHJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -93538,6 +98305,8 @@ "dHK" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_command{ @@ -93549,6 +98318,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/customs) "dHL" = ( @@ -93565,6 +98337,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dHN" = ( @@ -93575,6 +98350,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dHO" = ( @@ -93587,6 +98365,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "dHP" = ( @@ -93599,7 +98380,6 @@ /area/maintenance/aft) "dHR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ @@ -93608,11 +98388,12 @@ /area/medical/medbay/central) "dHS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -93650,12 +98431,16 @@ /area/science/test_area) "dHX" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Airlock"; req_access_txt = "13" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dHY" = ( @@ -93665,6 +98450,7 @@ /area/maintenance/port/aft) "dHZ" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; name = "External Airlock"; req_access_txt = "13" }, @@ -93672,6 +98458,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dIa" = ( @@ -93688,10 +98477,11 @@ /area/maintenance/port/aft) "dIc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/delivery, @@ -93704,6 +98494,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -93715,6 +98507,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -93724,6 +98518,8 @@ "dIf" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/side, @@ -93759,6 +98555,8 @@ "dIk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -93805,7 +98603,6 @@ /area/science/research) "dIp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -93820,6 +98617,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -93835,7 +98634,6 @@ "dIs" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/redyellow, @@ -93843,7 +98641,6 @@ "dIt" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, @@ -93868,6 +98665,8 @@ /area/maintenance/port/aft) "dIv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -93883,7 +98682,6 @@ pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -93896,6 +98694,8 @@ /area/security/checkpoint/customs) "dIx" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/light_switch{ @@ -93971,8 +98771,7 @@ pixel_y = 22 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/newscaster{ pixel_x = 32 @@ -94034,6 +98833,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/library/abandoned) "dIN" = ( @@ -94044,12 +98846,17 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/barricade/wooden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/library/abandoned) "dIO" = ( @@ -94074,6 +98881,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dIS" = ( @@ -94085,12 +98895,13 @@ }, /area/science/research) "dIT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -94102,9 +98913,8 @@ /area/science/research) "dIV" = ( /obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/redyellow, /area/science/research) @@ -94128,6 +98938,8 @@ /area/maintenance/port/aft) "dIY" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -94147,11 +98959,12 @@ /area/security/checkpoint/customs) "dJa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/customs) @@ -94187,9 +99000,8 @@ /turf/open/floor/plasteel/neutral, /area/hallway/primary/aft) "dJg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -94208,7 +99020,6 @@ /area/hallway/primary/aft) "dJj" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -94229,6 +99040,8 @@ "dJn" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -94252,6 +99065,9 @@ pixel_y = -2; req_access_txt = "39" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/medbay/central) "dJo" = ( @@ -94274,6 +99090,7 @@ "dJr" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/window/reinforced/fulltile, @@ -94282,9 +99099,11 @@ "dJs" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/window/reinforced/fulltile, @@ -94319,6 +99138,8 @@ "dJx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -94358,6 +99179,7 @@ "dJE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -94368,6 +99190,8 @@ "dJF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -94375,9 +99199,13 @@ /area/maintenance/port/aft) "dJG" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -94415,6 +99243,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -94455,6 +99284,8 @@ icon_state = "pipe-c" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side, @@ -94488,6 +99319,8 @@ /area/maintenance/port/aft) "dJT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -94499,6 +99332,7 @@ "dJU" = ( /obj/machinery/computer/card, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -94516,12 +99350,18 @@ /area/security/checkpoint/customs) "dJV" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, @@ -94531,6 +99371,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -94539,6 +99381,8 @@ "dJX" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/blue, @@ -94548,9 +99392,13 @@ "dJY" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/window/brigdoor/southright{ @@ -94587,7 +99435,6 @@ "dKd" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -94608,15 +99455,16 @@ dir = 8; pixel_x = -24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) "dKf" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -94652,6 +99500,8 @@ /area/medical/virology) "dKj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -94695,6 +99545,8 @@ /area/medical/virology) "dKo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/filingcabinet/chestdrawer, @@ -94746,6 +99598,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -94786,6 +99640,8 @@ "dKB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -94816,6 +99672,8 @@ "dKF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -94841,6 +99699,8 @@ /area/maintenance/port/aft) "dKI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -94849,11 +99709,16 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/research) "dKJ" = ( @@ -94862,6 +99727,8 @@ /area/maintenance/port/aft) "dKK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -94901,9 +99768,8 @@ /turf/open/floor/plating, /area/security/checkpoint/customs) "dKP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/closet/emcloset, /obj/effect/turf_decal/bot, @@ -94911,7 +99777,6 @@ /area/hallway/primary/aft) "dKQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment, @@ -94945,15 +99810,16 @@ dir = 8; name = "emergency shower" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) "dKW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -94966,10 +99832,11 @@ /area/medical/virology) "dKX" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line{ @@ -94980,6 +99847,8 @@ "dKY" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -95001,31 +99870,49 @@ pixel_y = 22; req_access_txt = "39" }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dKZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/virology) "dLa" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/light/small{ @@ -95034,6 +99921,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/virology) "dLb" = ( @@ -95043,15 +99933,22 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dLc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -95059,7 +99956,6 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -95068,9 +99964,13 @@ /area/medical/virology) "dLd" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95117,10 +100017,11 @@ /area/medical/virology) "dLi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/green, @@ -95138,12 +100039,13 @@ /area/medical/virology) "dLl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/bed, /obj/item/weapon/bedsheet/medical, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault, @@ -95242,19 +100144,24 @@ "dLz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/port/aft) "dLA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95265,6 +100172,8 @@ "dLB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95275,9 +100184,13 @@ "dLC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95288,22 +100201,29 @@ /area/maintenance/port/aft) "dLD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/port/aft) "dLE" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95313,6 +100233,8 @@ /area/maintenance/port/aft) "dLF" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -95325,6 +100247,8 @@ /area/maintenance/port/aft) "dLG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95335,9 +100259,13 @@ /area/maintenance/port/aft) "dLH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -95348,14 +100276,17 @@ /area/maintenance/port/aft) "dLI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -95365,6 +100296,8 @@ /area/maintenance/port/aft) "dLJ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -95375,6 +100308,8 @@ /area/maintenance/port/aft) "dLK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -95385,6 +100320,8 @@ /area/maintenance/port/aft) "dLL" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -95398,6 +100335,8 @@ /area/maintenance/port/aft) "dLM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -95409,11 +100348,12 @@ /area/maintenance/port/aft) "dLN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -95422,9 +100362,13 @@ /area/maintenance/port/aft) "dLO" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -95434,15 +100378,16 @@ "dLQ" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/box/ids, /turf/open/floor/plasteel/blue/side, /area/security/checkpoint/customs) "dLR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/blue/side, /area/security/checkpoint/customs) @@ -95634,7 +100579,6 @@ pixel_x = -24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -95644,15 +100588,21 @@ /area/medical/virology) "dMj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/green, /area/medical/virology) "dMk" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -95666,15 +100616,22 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dMm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -95683,32 +100640,38 @@ /area/medical/virology) "dMn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/green, /area/medical/virology) "dMo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/medical/virology) "dMp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/corner, @@ -95719,15 +100682,22 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dMr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light_switch{ @@ -95740,22 +100710,24 @@ /area/medical/virology) "dMs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/virologist, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/green, /area/medical/virology) "dMt" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/status_display{ pixel_x = 32 @@ -95775,9 +100747,8 @@ /area/library/abandoned) "dMw" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -95790,10 +100761,11 @@ /area/library/abandoned) "dMy" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/blood/splatter, @@ -95816,7 +100788,6 @@ "dMC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -95827,6 +100798,8 @@ "dMD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -95847,15 +100820,19 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/chapel/office) "dMG" = ( @@ -95896,6 +100873,8 @@ /area/maintenance/port/aft) "dML" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -95928,6 +100907,8 @@ /area/hallway/secondary/exit/departure_lounge) "dMP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -95938,9 +100919,11 @@ dir = 2 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dMQ" = ( @@ -95949,6 +100932,7 @@ "dMR" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -95957,6 +100941,7 @@ /area/hallway/secondary/exit/departure_lounge) "dMS" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -95989,6 +100974,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dMW" = ( @@ -95999,6 +100987,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dMX" = ( @@ -96079,7 +101070,6 @@ }, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/cmo, @@ -96113,17 +101103,17 @@ /area/medical/virology) "dNi" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/medical/virology) "dNj" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -96154,6 +101144,8 @@ /area/medical/virology) "dNn" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -96175,10 +101167,11 @@ /area/medical/virology) "dNq" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/neutral, @@ -96197,6 +101190,7 @@ "dNt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -96212,6 +101206,8 @@ "dNu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood{ @@ -96220,12 +101216,16 @@ /area/library/abandoned) "dNv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, /area/library/abandoned) "dNw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -96233,6 +101233,8 @@ "dNx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/grimy, @@ -96272,6 +101274,8 @@ /area/library/abandoned) "dND" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -96288,6 +101292,8 @@ "dNG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -96307,6 +101313,8 @@ /area/chapel/main) "dNJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -96318,6 +101326,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/chapel/main) "dNK" = ( @@ -96410,6 +101421,8 @@ /area/medical/virology) "dOb" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/green, @@ -96434,6 +101447,8 @@ /obj/item/clothing/neck/stethoscope, /obj/structure/table, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/box/donkpockets, @@ -96465,11 +101480,12 @@ /area/medical/virology) "dOj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -96508,6 +101524,8 @@ "dOq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -96530,6 +101548,8 @@ /area/chapel/office) "dOs" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -96540,7 +101560,6 @@ "dOt" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/firealarm{ @@ -96600,6 +101619,8 @@ /area/chapel/main) "dOy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -96656,6 +101677,8 @@ /area/chapel/main) "dOF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -96666,12 +101689,11 @@ /area/hallway/secondary/exit/departure_lounge) "dOG" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -96680,9 +101702,13 @@ /area/hallway/secondary/exit/departure_lounge) "dOH" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -96692,6 +101718,8 @@ /area/hallway/secondary/exit/departure_lounge) "dOI" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -96701,6 +101729,8 @@ /area/hallway/secondary/exit/departure_lounge) "dOJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -96729,10 +101759,7 @@ /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) "dON" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) @@ -96763,6 +101790,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dOU" = ( @@ -96779,9 +101809,11 @@ "dOV" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/window/reinforced/fulltile, @@ -96790,9 +101822,11 @@ "dOW" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/window/reinforced/fulltile, @@ -96801,9 +101835,11 @@ "dOX" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/window/reinforced/fulltile, @@ -96812,6 +101848,7 @@ "dOY" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/window/reinforced/fulltile, @@ -96828,17 +101865,20 @@ /area/medical/virology) "dPa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, /area/medical/virology) "dPb" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/power/apc{ dir = 4; @@ -96847,6 +101887,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -96906,6 +101947,8 @@ /area/maintenance/port/aft) "dPj" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side{ @@ -96914,10 +101957,11 @@ /area/maintenance/port/aft) "dPk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -96925,9 +101969,8 @@ }, /area/chapel/office) "dPl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -96948,6 +101991,8 @@ /area/chapel/main) "dPo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -96981,11 +102026,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/chapel/main) "dPt" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/structure/disposalpipe/segment{ @@ -97009,7 +102056,6 @@ /area/hallway/secondary/exit/departure_lounge) "dPv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -97020,6 +102066,8 @@ /area/hallway/secondary/exit/departure_lounge) "dPw" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -97078,6 +102126,8 @@ "dPE" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/clothing/gloves/color/latex, @@ -97105,6 +102155,8 @@ /area/medical/virology) "dPG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/computer/pandemic, @@ -97131,12 +102183,11 @@ /area/medical/virology) "dPJ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -97161,6 +102212,8 @@ /area/medical/virology) "dPM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, @@ -97194,10 +102247,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitegreen/side{ dir = 1 }, @@ -97212,10 +102262,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /mob/living/carbon/monkey, /turf/open/floor/plasteel/whitegreen/side{ dir = 1 @@ -97247,6 +102294,8 @@ /area/library/abandoned) "dPW" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -97258,6 +102307,8 @@ "dPX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -97277,6 +102328,8 @@ /area/chapel/office) "dPZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/chaplain, @@ -97292,9 +102345,8 @@ }, /area/chapel/office) "dQb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -97306,26 +102358,25 @@ /area/chapel/main) "dQd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) "dQe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) "dQf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -97341,6 +102392,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/chapel/main) "dQi" = ( @@ -97357,6 +102411,8 @@ /area/hallway/secondary/exit/departure_lounge) "dQk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -97422,6 +102478,8 @@ }, /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/reagentgrinder{ @@ -97443,6 +102501,8 @@ /area/medical/virology) "dQv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -97461,10 +102521,11 @@ /area/medical/virology) "dQy" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -97482,6 +102543,7 @@ "dQA" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/window/reinforced/fulltile, @@ -97492,7 +102554,6 @@ /area/medical/virology) "dQB" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -97501,15 +102562,21 @@ /area/medical/virology) "dQC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, /area/medical/virology) "dQD" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -97569,10 +102636,7 @@ "dQN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/vault{ dir = 5 @@ -97588,6 +102652,8 @@ "dQP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -97604,6 +102670,8 @@ /area/maintenance/port/aft) "dQR" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -97670,6 +102738,8 @@ /area/chapel/main) "dQZ" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -97704,11 +102774,15 @@ /area/hallway/secondary/exit/departure_lounge) "dRe" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Docking Port" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dRf" = ( @@ -97724,6 +102798,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/escape) "dRh" = ( @@ -97732,7 +102809,6 @@ /area/shuttle/escape) "dRi" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/cmo, @@ -97742,19 +102818,24 @@ /area/shuttle/escape) "dRk" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/cmo, /area/shuttle/escape) "dRl" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/smartfridge/chemistry/virology/preloaded, @@ -97765,6 +102846,8 @@ /area/medical/virology) "dRm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -97773,12 +102856,18 @@ /area/medical/virology) "dRn" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -97789,6 +102878,8 @@ /area/medical/virology) "dRo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/holopad, @@ -97800,6 +102891,8 @@ /area/medical/virology) "dRp" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -97809,16 +102902,21 @@ /area/medical/virology) "dRq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /obj/structure/disposalpipe/segment{ @@ -97831,6 +102929,8 @@ /area/medical/virology) "dRr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -97849,12 +102949,18 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -97866,10 +102972,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dRt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -97885,9 +102996,13 @@ /area/medical/virology) "dRu" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -97901,7 +103016,6 @@ /area/medical/virology) "dRv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitegreen/corner, @@ -97913,6 +103027,7 @@ "dRx" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/window/reinforced/fulltile, @@ -97926,19 +103041,27 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/virology) "dRz" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/window/reinforced/fulltile, @@ -97969,7 +103092,6 @@ /obj/item/weapon/folder, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/wood, @@ -98018,7 +103140,6 @@ /area/library/abandoned) "dRJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/black, @@ -98033,6 +103154,8 @@ /area/library/abandoned) "dRL" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -98051,13 +103174,14 @@ /area/chapel/office) "dRN" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -98069,11 +103193,9 @@ pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -98126,7 +103248,6 @@ /area/chapel/main) "dRU" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -98182,6 +103303,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dSc" = ( @@ -98191,6 +103315,8 @@ pixel_x = -23 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/book/manual/wiki/infections, @@ -98217,6 +103343,8 @@ /area/medical/virology) "dSe" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -98232,6 +103360,8 @@ /area/medical/virology) "dSh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -98244,7 +103374,6 @@ /area/medical/virology) "dSj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -98253,11 +103382,12 @@ /area/medical/virology) "dSk" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral, @@ -98286,6 +103416,8 @@ /area/medical/virology) "dSo" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -98294,7 +103426,6 @@ /area/medical/virology) "dSp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -98313,7 +103444,6 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -98400,6 +103530,8 @@ /area/maintenance/port/aft) "dSE" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -98413,6 +103545,8 @@ pixel_y = -26 }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -98468,7 +103602,6 @@ /area/hallway/secondary/exit/departure_lounge) "dSM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -98478,13 +103611,14 @@ /area/hallway/secondary/exit/departure_lounge) "dSN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) "dSO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -98500,7 +103634,6 @@ /area/hallway/secondary/exit/departure_lounge) "dSQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -98528,7 +103661,13 @@ turf_type = /turf/open/space; width = 30 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, /area/shuttle/escape) "dSS" = ( /obj/structure/flora/ausbushes/grassybush, @@ -98568,6 +103707,8 @@ "dSV" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/storage/box/beakers{ @@ -98593,6 +103734,8 @@ /area/medical/virology) "dSX" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/disposal/bin, @@ -98620,11 +103763,12 @@ /area/medical/virology) "dTa" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -98647,7 +103791,6 @@ /area/medical/virology) "dTc" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -98657,9 +103800,13 @@ /area/medical/virology) "dTd" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -98667,10 +103814,11 @@ /area/medical/virology) "dTe" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whitegreen/corner, @@ -98682,12 +103830,18 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ @@ -98696,13 +103850,20 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/medical/virology) "dTg" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -98714,6 +103875,8 @@ /area/medical/virology) "dTh" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -98721,9 +103884,13 @@ /area/medical/virology) "dTi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/holopad, @@ -98736,10 +103903,11 @@ /area/medical/virology) "dTj" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/green, @@ -98747,9 +103915,13 @@ "dTk" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/white, @@ -98762,6 +103934,8 @@ /area/medical/virology) "dTl" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -98786,6 +103960,8 @@ req_access_txt = "27" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -98796,7 +103972,6 @@ "dTp" = ( /obj/structure/chair/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel{ @@ -98819,7 +103994,6 @@ "dTs" = ( /obj/structure/chair/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/newscaster{ @@ -98890,6 +104064,7 @@ /obj/structure/grille, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/window/reinforced/fulltile, @@ -98898,6 +104073,7 @@ "dTA" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, @@ -98907,6 +104083,7 @@ "dTB" = ( /obj/structure/grille, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white, @@ -98915,6 +104092,8 @@ /area/medical/virology) "dTC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -98940,6 +104119,8 @@ /area/medical/virology) "dTF" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/sink{ @@ -98947,7 +104128,6 @@ pixel_x = -12 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -98984,6 +104164,8 @@ "dTJ" = ( /obj/structure/table/glass, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/newscaster{ @@ -98991,7 +104173,6 @@ }, /obj/item/weapon/paper_bin, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -99004,7 +104185,6 @@ "dTK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, @@ -99043,7 +104223,6 @@ /area/maintenance/port/aft) "dTO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -99051,10 +104230,11 @@ "dTP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -99077,6 +104257,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -99092,6 +104274,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel{ @@ -99101,6 +104284,8 @@ /area/chapel/main) "dTU" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -99110,6 +104295,8 @@ /area/chapel/main) "dTV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -99119,6 +104306,8 @@ /area/chapel/main) "dTW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -99136,7 +104325,6 @@ /area/chapel/main) "dTY" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -99209,7 +104397,6 @@ }, /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/whitegreen/corner{ @@ -99218,6 +104405,8 @@ /area/medical/virology) "dUh" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -99225,7 +104414,6 @@ /obj/item/weapon/wrench, /obj/item/weapon/restraints/handcuffs, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /obj/structure/disposalpipe/segment, @@ -99257,6 +104445,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/virology) "dUl" = ( @@ -99270,6 +104461,8 @@ "dUn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -99279,6 +104472,8 @@ /area/maintenance/port/aft) "dUo" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -99286,6 +104481,8 @@ "dUp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side, @@ -99293,9 +104490,13 @@ "dUq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/blue/side, @@ -99303,6 +104504,8 @@ "dUr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/side, @@ -99310,16 +104513,22 @@ "dUs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/port/aft) "dUt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/side, @@ -99327,13 +104536,14 @@ "dUu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port/aft) "dUv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/machinery/button/crematorium{ @@ -99351,11 +104561,12 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -99370,7 +104581,6 @@ /area/chapel/main) "dUy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel{ @@ -99403,7 +104613,6 @@ /area/chapel/main) "dUC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel{ @@ -99431,8 +104640,7 @@ /area/hallway/secondary/exit/departure_lounge) "dUG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -99462,6 +104670,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dUK" = ( @@ -99486,9 +104697,8 @@ }, /area/medical/virology) "dUN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ icon_state = "whitegreen"; @@ -99500,9 +104710,8 @@ /turf/closed/wall, /area/medical/virology) "dUP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ icon_state = "whitegreen"; @@ -99531,6 +104740,7 @@ "dUS" = ( /obj/machinery/power/smes, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/light/small{ @@ -99543,6 +104753,8 @@ /area/maintenance/solars/port/aft) "dUT" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/camera{ @@ -99565,6 +104777,8 @@ "dUV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -99593,6 +104807,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dUZ" = ( @@ -99610,6 +104827,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dVa" = ( @@ -99621,12 +104841,17 @@ req_access_txt = "18" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/barricade/wooden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dVb" = ( @@ -99640,6 +104865,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dVc" = ( @@ -99658,10 +104886,11 @@ /area/chapel/office) "dVe" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -99725,7 +104954,6 @@ /area/hallway/secondary/exit/departure_lounge) "dVm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/stripes/line{ @@ -99735,7 +104963,6 @@ /area/medical/virology) "dVn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /obj/structure/disposalpipe/segment{ @@ -99756,9 +104983,8 @@ /area/medical/virology) "dVp" = ( /obj/machinery/iv_drip, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ icon_state = "whitegreen"; @@ -99792,9 +105018,8 @@ /area/medical/virology) "dVt" = ( /obj/machinery/iv_drip, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ icon_state = "whitegreen"; @@ -99829,12 +105054,16 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Solar Access"; req_access_txt = "10; 13" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/port/aft) "dVy" = ( @@ -99844,7 +105073,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/solars/port/aft) @@ -99867,7 +105095,6 @@ "dVA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -99879,14 +105106,17 @@ /area/maintenance/solars/port/aft) "dVB" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /obj/effect/turf_decal/stripes/line{ @@ -99900,6 +105130,8 @@ req_access_txt = "10" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -99908,14 +105140,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/port/aft) "dVD" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -99949,6 +105185,8 @@ /area/maintenance/port/aft) "dVI" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -99985,11 +105223,12 @@ /area/chapel/office) "dVM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -99997,7 +105236,6 @@ /area/chapel/office) "dVN" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -100009,9 +105247,8 @@ }, /area/chapel/main) "dVO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ icon_state = "chapel" @@ -100028,10 +105265,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main) "dVR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel{ dir = 8; @@ -100041,7 +105275,6 @@ "dVS" = ( /obj/item/weapon/twohanded/required/kirbyplants/random, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/sign/nosmoking_2{ @@ -100053,7 +105286,6 @@ /area/chapel/main) "dVT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/delivery, @@ -100073,18 +105305,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) "dVW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -100097,15 +105329,13 @@ /area/hallway/secondary/exit/departure_lounge) "dVY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) "dVZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit/departure_lounge) @@ -100117,7 +105347,6 @@ /obj/item/clothing/head/hardhat/red, /obj/effect/turf_decal/bot, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -100231,23 +105460,25 @@ /area/maintenance/port/aft) "dWo" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/maintenance/port/aft) "dWp" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line, @@ -100290,6 +105521,8 @@ /area/chapel/office) "dWt" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -100314,14 +105547,12 @@ /obj/structure/noticeboard{ desc = "A board for remembering the fallen of the station."; dir = 1; - icon_state = "nboard00"; name = "memorial board"; pixel_y = -32 }, /obj/machinery/holopad, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/machinery/camera{ @@ -100340,7 +105571,6 @@ /area/chapel/main) "dWz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment, @@ -100348,7 +105578,6 @@ /area/chapel/main) "dWA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -100365,6 +105594,8 @@ /area/hallway/secondary/exit/departure_lounge) "dWC" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -100376,7 +105607,6 @@ /area/hallway/secondary/exit/departure_lounge) "dWD" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -100408,7 +105638,6 @@ /area/hallway/secondary/exit/departure_lounge) "dWG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ @@ -100481,6 +105710,8 @@ "dWR" = ( /obj/structure/rack, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -100519,6 +105750,8 @@ req_access_txt = "27" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -100558,11 +105791,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dXa" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/glass_security{ @@ -100573,10 +105811,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "dXb" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -100586,18 +105828,26 @@ "dXc" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "dXd" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -100611,9 +105861,11 @@ /area/security/checkpoint/checkpoint2) "dXf" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -100624,9 +105876,13 @@ "dXg" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/glass_security{ @@ -100636,13 +105892,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "dXh" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -100652,9 +105913,11 @@ /area/security/checkpoint/checkpoint2) "dXi" = ( /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -100663,6 +105926,7 @@ /area/security/checkpoint/checkpoint2) "dXj" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -100690,6 +105954,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dXn" = ( @@ -100788,6 +106055,8 @@ "dXq" = ( /obj/structure/rack, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -100897,13 +106166,14 @@ /area/chapel/office) "dXv" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/chapel/office) "dXw" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/machinery/light/small, @@ -100916,7 +106186,6 @@ /area/chapel/main) "dXx" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/light/small, @@ -100946,7 +106215,6 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/black, @@ -100955,9 +106223,8 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -100988,6 +106255,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/chapel/office) "dXF" = ( @@ -101018,6 +106288,8 @@ /area/security/checkpoint/checkpoint2) "dXH" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -101036,6 +106308,8 @@ "dXJ" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/folder/red, @@ -101071,6 +106345,8 @@ /area/security/checkpoint/checkpoint2) "dXO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -101090,16 +106366,19 @@ /area/security/checkpoint/checkpoint2) "dXR" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Docking Port"; req_access_txt = "63" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "dXS" = ( -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) @@ -101111,6 +106390,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/shuttle/escape) "dXU" = ( @@ -101190,6 +106472,8 @@ /area/maintenance/port/aft) "dYe" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -101200,9 +106484,13 @@ /area/maintenance/port/aft) "dYf" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -101213,6 +106501,8 @@ "dYg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -101223,9 +106513,13 @@ "dYh" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/delivery, @@ -101233,6 +106527,8 @@ /area/maintenance/port/aft) "dYi" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -101242,9 +106538,13 @@ /area/maintenance/port/aft) "dYj" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -101255,6 +106555,8 @@ /area/maintenance/port/aft) "dYk" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -101300,21 +106602,25 @@ "dYr" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; name = "External Airlock"; req_access_txt = "13" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dYs" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/power/apc{ @@ -101332,23 +106638,30 @@ /area/security/checkpoint/checkpoint2) "dYt" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "dYu" = ( /obj/machinery/holopad, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/bot, @@ -101359,25 +106672,32 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "dYw" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "dYx" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -101387,6 +106707,8 @@ "dYy" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -101396,15 +106718,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/checkpoint/checkpoint2) "dYz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -101412,30 +106738,36 @@ /area/security/checkpoint/checkpoint2) "dYA" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "dYB" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) "dYC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/security/checkpoint/checkpoint2) @@ -101502,6 +106834,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dYN" = ( @@ -101515,6 +106850,8 @@ /area/maintenance/port/aft) "dYO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/item/weapon/twohanded/required/kirbyplants/random, @@ -101525,6 +106862,8 @@ /area/maintenance/port/aft) "dYP" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -101552,6 +106891,8 @@ /area/maintenance/port/aft) "dYS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -101560,6 +106901,8 @@ /area/maintenance/port/aft) "dYT" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -101594,6 +106937,8 @@ /area/chapel/office) "dYW" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/grimy, @@ -101608,6 +106953,7 @@ pixel_y = 24 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/grimy, @@ -101693,7 +107039,6 @@ /turf/open/floor/carpet, /area/chapel/office) "dZg" = ( -/obj/structure/fans/tiny, /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; @@ -101720,6 +107065,8 @@ "dZj" = ( /obj/machinery/computer/prisoner, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -101772,9 +107119,13 @@ "dZp" = ( /obj/structure/table, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/item/weapon/restraints/handcuffs, @@ -101787,6 +107138,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side, @@ -101796,6 +107149,8 @@ dir = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/firealarm{ @@ -101814,10 +107169,12 @@ /area/security/checkpoint/checkpoint2) "dZs" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -101864,6 +107221,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "dZz" = ( @@ -101914,9 +107274,8 @@ /area/chapel/office) "dZG" = ( /obj/effect/landmark/start/chaplain, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/chapel/office) @@ -101970,7 +107329,6 @@ /area/chapel/office) "dZM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -101980,8 +107338,7 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/carpet, /area/chapel/office) @@ -101991,7 +107348,6 @@ }, /obj/effect/landmark/start/chaplain, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/carpet, @@ -102004,7 +107360,6 @@ }, /obj/item/weapon/storage/fancy/candle_box, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/newscaster{ @@ -102014,12 +107369,16 @@ /area/chapel/office) "dZQ" = ( /obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; name = "External Airlock"; req_access_txt = "13" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dZR" = ( @@ -102028,9 +107387,11 @@ "dZS" = ( /obj/structure/cable/white, /obj/structure/cable/white{ + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -102039,6 +107400,7 @@ /area/security/checkpoint/checkpoint2) "dZT" = ( /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -102086,6 +107448,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/shuttle/escape) "eaa" = ( @@ -102228,9 +107593,8 @@ }, /area/chapel/office) "eao" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/chapel/office) @@ -102640,37 +108004,38 @@ /area/library) "ebP" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/yellow, /area/engine/atmospherics_engine) "ebQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 4; + filter_type = "freon"; + name = "gas filter (freon)" + }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "ebR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) "ebS" = ( @@ -102682,6 +108047,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "ebT" = ( @@ -102705,6 +108073,8 @@ /area/hallway/primary/central) "ebV" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/device/radio/beacon, @@ -102720,7 +108090,6 @@ /area/maintenance/starboard/fore) "ebX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red, @@ -102728,7 +108097,6 @@ "ebY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -102736,6 +108104,8 @@ /area/maintenance/starboard/fore) "ebZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/ai_slipper{ @@ -102746,9 +108116,8 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "ecb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood{ icon_state = "wood-broken" @@ -102764,7 +108133,6 @@ /area/maintenance/port/fore) "ece" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -102793,10 +108161,7 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "eci" = ( @@ -102809,9 +108174,8 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -102833,6 +108197,8 @@ /area/hydroponics/garden/abandoned) "ecm" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -102870,9 +108236,8 @@ /area/engine/atmos) "ecs" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood{ icon_state = "wood-broken" @@ -102880,6 +108245,8 @@ /area/crew_quarters/abandoned_gambling_den) "ecu" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -102892,10 +108259,11 @@ /area/maintenance/port/fore) "ecv" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -102962,12 +108330,13 @@ /area/crew_quarters/abandoned_gambling_den) "ecR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -102975,9 +108344,8 @@ }, /area/crew_quarters/abandoned_gambling_den) "ecS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) @@ -103012,11 +108380,13 @@ dir = 2 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/surgery) "ecX" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -103035,9 +108405,8 @@ /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) "eda" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) @@ -103051,16 +108420,14 @@ /area/crew_quarters/electronic_marketing_den) "edd" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics/garden/abandoned) "ede" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/hydrofloor, @@ -103081,8 +108448,14 @@ req_access_txt = "39" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/medical/virology) "edh" = ( @@ -103107,7 +108480,6 @@ /area/shuttle/auxillary_base) "edl" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -103170,7 +108542,6 @@ /area/shuttle/transport) "eeq" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/floor/plating/airless, @@ -103180,7 +108551,6 @@ /area/shuttle/transport) "ees" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -103190,7 +108560,6 @@ /area/shuttle/transport) "eet" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced{ @@ -103597,7 +108966,6 @@ "efu" = ( /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/microwave{ @@ -103740,6 +109108,8 @@ /area/security/transfer) "efG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/security{ @@ -103763,7 +109133,6 @@ /area/security/detectives_office) "efI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /obj/structure/disposalpipe/segment{ @@ -103808,9 +109177,13 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/window/brigdoor/northright{ @@ -103832,6 +109205,8 @@ /area/security/warden) "efM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/table/reinforced, @@ -103853,6 +109228,8 @@ /obj/item/clothing/under/rank/security/grey, /obj/item/clothing/under/rank/security/grey, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/item/weapon/storage/backpack/satchel/sec, @@ -103991,7 +109368,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/whitepurple/corner{ - icon_state = "whitepurplecorner"; dir = 1 }, /area/science/research) @@ -104021,6 +109397,8 @@ req_access_txt = "5" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -104029,6 +109407,9 @@ /obj/structure/sign/poster/official/cleanliness{ pixel_x = -32 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/medical/storage) "egb" = ( @@ -104195,7 +109576,6 @@ /area/crew_quarters/abandoned_gambling_den) "egr" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -104249,8 +109629,7 @@ /obj/item/weapon/storage/toolbox/electrical, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/report_crimes{ @@ -104278,7 +109657,6 @@ "egy" = ( /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/crowbar, @@ -104293,8 +109671,7 @@ "egz" = ( /obj/machinery/disposal/bin, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/trunk{ dir = 8 @@ -104319,6 +109696,8 @@ dir = 9 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -104336,6 +109715,7 @@ name = "departures camera" }, /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line{ @@ -104394,6 +109774,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -104415,6 +109797,8 @@ /area/hallway/secondary/exit/departure_lounge) "egM" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -104487,6 +109871,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "egU" = ( @@ -104497,6 +109884,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "egV" = ( @@ -104508,6 +109898,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "egW" = ( @@ -104519,6 +109912,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "egX" = ( @@ -104569,7 +109965,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -104607,7 +110002,6 @@ /area/shuttle/syndicate) "ehf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -104658,7 +110052,6 @@ /area/shuttle/arrival) "ehm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/pod/light, @@ -104700,7 +110093,6 @@ /area/shuttle/escape) "ehr" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -104714,7 +110106,6 @@ "ehs" = ( /obj/effect/turf_decal/bot, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -104734,7 +110125,6 @@ icon_state = "plant-21" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -104826,6 +110216,8 @@ dir = 8 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -104954,14 +110346,17 @@ /area/maintenance/solars/starboard/aft) "eip" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -104970,7 +110365,6 @@ /area/maintenance/solars/starboard/aft) "eiq" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -105003,12 +110397,16 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; name = "External Solar Access"; req_access_txt = "10; 13" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/aft) "eit" = ( @@ -105018,7 +110416,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/fans/tiny, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/solars/starboard/aft) @@ -105082,6 +110479,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -105101,16 +110499,21 @@ pixel_y = -26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/starboard) "eiG" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -105120,6 +110523,7 @@ "eiH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -105131,6 +110535,8 @@ /area/maintenance/starboard/aft) "eiI" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, @@ -105144,12 +110550,15 @@ pixel_x = 26 }, /obj/structure/cable/white{ + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/aft) "eiK" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -105191,7 +110600,6 @@ /area/hallway/secondary/command) "eiQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -105200,6 +110608,8 @@ /area/hallway/secondary/command) "eiR" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -105215,14 +110625,15 @@ /area/hallway/secondary/command) "eiS" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/command) @@ -105252,6 +110663,8 @@ /area/crew_quarters/dorms) "eiZ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -105261,6 +110674,8 @@ /area/crew_quarters/dorms) "eja" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -105282,6 +110697,8 @@ /area/crew_quarters/dorms) "ejc" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -105305,9 +110722,8 @@ }, /area/crew_quarters/dorms) "eje" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) @@ -105320,15 +110736,13 @@ /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "ejh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "eji" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -105401,9 +110815,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/science/research) @@ -105452,6 +110865,8 @@ dir = 4 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -105496,7 +110911,7 @@ dir = 8; icon_state = "diagonalWall3" }, -/area/space) +/area/shuttle/syndicate) "ejD" = ( /turf/closed/wall/mineral/plastitanium, /area/space) @@ -105562,17 +110977,13 @@ /turf/closed/wall/mineral/plastitanium, /area/space) "ejM" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/space) "ejN" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -105597,17 +111008,13 @@ }, /area/space) "ejR" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/space) "ejS" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -105626,7 +111033,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -105859,7 +111265,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -105945,7 +111350,6 @@ "elc" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 4 }, /area/space) @@ -106031,7 +111435,6 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) @@ -106060,7 +111463,6 @@ "elq" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 4 }, /area/space) @@ -106103,7 +111505,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -106118,7 +111519,6 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/space) @@ -106131,7 +111531,6 @@ "elC" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 4 }, /area/space) @@ -106204,7 +111603,6 @@ "elQ" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/space) @@ -106522,7 +111920,6 @@ /area/space) "emR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -106584,13 +111981,11 @@ /area/space) "enf" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) "eng" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) @@ -106604,19 +111999,16 @@ /area/space) "eni" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) "enj" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) "enk" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) @@ -106630,13 +112022,11 @@ /area/space) "enm" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) "enn" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 1 }, /area/space) @@ -106704,7 +112094,6 @@ /area/space) "enD" = ( /turf/open/floor/plasteel/podhatch{ - icon_state = "podhatch"; dir = 6 }, /area/space) @@ -106856,7 +112245,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -107044,9 +112432,7 @@ }, /area/space) "eoI" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107056,9 +112442,7 @@ /turf/open/floor/plating/airless, /area/space) "eoK" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107106,9 +112490,7 @@ }, /area/space) "eoS" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107118,9 +112500,7 @@ /turf/open/floor/plating/airless, /area/space) "eoU" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107144,9 +112524,7 @@ }, /area/space) "eoX" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107156,9 +112534,7 @@ /turf/open/floor/plating/airless, /area/space) "eoZ" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/space) @@ -107169,6 +112545,587 @@ icon_state = "diagonalWall3" }, /area/space) +"epb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epc" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 2; + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epd" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epf" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epg" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"eph" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"epi" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"epj" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"epk" = ( +/obj/machinery/door/airlock/glass{ + name = "Holodeck Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"epl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"epm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"epn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"epo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"epp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"epq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"epr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"eps" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"ept" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"epu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"epv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"epw" = ( +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"epx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/neutral, +/area/engine/atmospherics_engine) +"epy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/yellow, +/area/engine/atmospherics_engine) +"epz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/neutral, +/area/engine/atmospherics_engine) +"epA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"epB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Solar Access"; + req_access_txt = "10; 13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"epC" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"epD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Solar Access"; + req_access_txt = "10"; + req_one_access = null; + req_one_access_txt = "13; 24" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/fore) +"epE" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = 8; + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"epF" = ( +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + cyclelinkeddir = 8; + name = "MiniSat Exterior Access"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/transit_tube) +"epG" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 8; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"epH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 8; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"epI" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"epJ" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"epK" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) +"epL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 1; + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research) +"epM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + cyclelinkeddir = 1; + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research) +"epN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Solar Access"; + req_access_txt = "10; 13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/aft) +"epO" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"epP" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"epQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Solar Access"; + req_access_txt = "10; 13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) +"epR" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Docking Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"epS" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 8; + name = "External Docking Port"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/checkpoint2) (1,1,1) = {" aaa @@ -109783,16 +115740,19 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -110031,22 +115991,22 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -110288,22 +116248,22 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -110545,22 +116505,22 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -110795,29 +116755,29 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111055,26 +117015,23 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111312,28 +117269,28 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111569,28 +117526,28 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111826,28 +117783,28 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112083,28 +118040,28 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112340,28 +118297,28 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112597,26 +118554,26 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112854,29 +118811,29 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -113120,20 +119077,20 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -113377,20 +119334,20 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -113637,17 +119594,17 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -113895,16 +119852,16 @@ aaa aaa aaa aaa -adm -adm -adm -adm -adm -adm -adm -adm -adm -adm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -116216,19 +122173,19 @@ aaa aaa aaa aaa -emc -emt -emK -enb -ens -enH -enY -eon -eoC -eoR aaa aaa aaa +ejC +adn +adn +adn +adn +adn +adn +adn +adn +aes aaa aaa aaa @@ -116467,25 +122424,25 @@ aaa aaa aaa aaa -ekH -ekR -elb -elp -elB -elP -emd -emu -emL -enc -ent -enI -enZ -eoo -eoD -eoS aaa aaa aaa +ejC +adn +adn +adn +adn +adn +adn +aiN +ajI +aiN +alK +amN +anW +aoz +aoC +apA aaa aaa aaa @@ -116724,25 +122681,25 @@ aaa aaa aaa aaa -ekI -ekS -elc -elq -elC -elQ -eme -emv -emM -end -enu -enJ -eoa -eop -eoE -eoT aaa aaa aaa +adn +afv +afK +afK +afK +aho +adn +agG +aeh +aeG +aeG +amO +aeG +aoA +aoC +apB aaa aaa aaa @@ -116981,25 +122938,25 @@ aaa aaa aaa aaa -ekJ -ekT -eld -elr -elD -elR -emf -emw -emN -ene -env -enK -eob -eoq -eoF -eoU aaa aaa aaa +adn +aeG +aeG +aeG +aeG +aeG +aia +ehe +aeh +akK +alL +amP +anX +aoB +aoC +apC aaa aaa aaa @@ -117231,32 +123188,32 @@ aaa aaa aaa aaa +aaa +aaa +aaa ejC -ejL -ejU -ekd -ekm -aaa -aaa -ekK -ekU -ele -els -elE -elS -emg -emx -emO -enf -enw -enL -eoc -eor -eoG -eoV -aaa +adn +adn +adn +aes aaa aaa +adn +aeG +aeG +aeG +aeG +aeG +adn +aiO +aeh +akL +age +amQ +adn +adn +adn +aeI aaa aaa aaa @@ -117488,29 +123445,29 @@ aaa aaa aaa aaa -ejD -ejM -ejV -eke -ekn -ekv -aaa -ekL -ekV -elf -elt -elF -elT -emh -emy -emP -eng -enx -enM -eod aaa aaa aaa +adn +adA +adT +aeh +adn +aeE +aaa +adn +afw +afL +ehd +agG +ahp +adn +aiP +aeh +akL +age +amR +adn aaa aaa aaa @@ -117745,31 +123702,31 @@ aaa aaa aaa aaa -ejE -ejN -ejW -ekf -eko -ekw -ekC -ekM -ekW -elg -elu -elG -brL -emi -emz -emQ -enh -brL -enN -eoe -eos -eoH aaa aaa aaa +ado +adB +adU +aeh +adn +adn +adn +adn +adn +adn +adn +agH +agb +adn +adn +adn +akM +agb +adn +adn +adn +aes aaa aaa aaa @@ -118002,31 +123959,31 @@ aaa aaa aaa aaa -ejF -ejO -ejX -ekg -ekp -ekx -ekD -ekN -ekX -elh -brL -elH -elU -emj -emA -emR -eni -eny -enO -brL -eot -eoI aaa aaa aaa +ado +adC +adV +aeh +aet +aeF +aeT +ehb +aeT +aeT +agb +aeG +aeG +aeG +aeG +ehf +akL +age +aeh +agb +aoC +apA aaa aaa aaa @@ -118259,31 +124216,31 @@ aaa aaa aaa aaa -ejG -ejP -ejY -ekh -ekq -eky -ekE -ekO -ekY -eli -elv -elI -elV -emk -emB -emS -enj -enz -enP -eof -eou -eoJ aaa aaa aaa +ado +adD +adW +aeh +aeu +aeG +adV +adV +adV +aeG +agc +aeG +adV +adV +adV +adV +akL +age +aeh +anY +aoC +apB aaa aaa aaa @@ -118516,31 +124473,31 @@ aaa aaa aaa aaa -ejH -ejQ -ejZ -eki -ekr -ekz -ekF -ekP -ekZ -elj -brL -elJ -elW -eml -emC -emT -enk -enA -enQ -brL -eov -eoK aaa aaa aaa +ado +adE +adV +aeh +adn +aeH +aeU +ehc +aeU +aeU +agb +aeG +aeG +aeG +aeG +ehg +akL +age +aeh +agb +aoC +apC aaa aaa aaa @@ -118773,31 +124730,31 @@ aaa aaa aaa aaa -ejI -ejR -eka -ekj -eks -ekA -ekG -ekQ -ela -elk -elw -elK -brL -emm -emD -emU -enl -brL -enR -eog -eow -eoL aaa aaa aaa +ado +adF +adX +aeh +adn +adn +adn +afk +adn +adn +adn +agI +agb +adn +adn +adn +akM +agb +adn +adn +adn +aev aaa aaa aaa @@ -119030,29 +124987,29 @@ aaa aaa aaa aaa -ejJ -ejS -ekb -ekk -ekt -ekB aaa aaa aaa -ell -elx -elL -elX -emn -emE -emV -enm -enB -enS -eoh +adn +adG +adY +aeh +adn +aeI aaa aaa aaa +adn +agd +aeG +ahq +adn +aiQ +aeh +akL +age +amS +adn aaa aaa aaa @@ -119287,32 +125244,32 @@ aaa aaa aaa aaa -ejK -ejT -ekc -ekl -eku +aaa +aaa +aaa +adp +adn +adn +adn +aev aaa aaa aaa aaa -elm -ely -elM -elY -emo -emF -emW -enn -enC -enT -eoi -eox -eoM -eoW -aaa -aaa -aaa +afM +age +aeG +ahq +adn +aiR +aeh +akL +age +amT +adn +adn +adn +aeE aaa aaa aaa @@ -119553,23 +125510,23 @@ aaa aaa aaa aaa -eln -elz -elN -elZ -emp -emG -emX -eno -enD -enU -eoj -eoy -eoN -eoX aaa aaa aaa +afN +agf +aeG +ahr +aet +aiS +aeh +akN +alM +amP +aeG +aoE +aoC +apA aaa aaa aaa @@ -119810,23 +125767,23 @@ aaa aaa aaa aaa -elo -elA -elO -ema -emq -emH -emY -enp -enE -enV -eok -eoz -eoO -eoY aaa aaa aaa +adp +adn +adn +adn +adn +aiT +aeh +aeG +aeG +amU +aeG +aoF +aoC +apB aaa aaa aaa @@ -120070,20 +126027,20 @@ aaa aaa aaa aaa -emb -emr -emI -emZ -enq -enF -enW -eol -eoA -eoP -eoZ aaa aaa aaa +ahs +adn +aiU +aeh +akO +alN +amV +ehg +aoE +aoC +apC aaa aaa aaa @@ -120328,19 +126285,19 @@ aaa aaa aaa aaa -ems -emJ -ena -enr -enG -enX -eom -eoB -eoQ -epa aaa aaa aaa +adp +adn +adn +adn +adn +adn +adn +adn +adn +aev aaa aaa aaa @@ -122808,6 +128765,9 @@ aaa aaa aaa aaa +aaa +aaa +aaa eaT aaa aaa @@ -122843,9 +128803,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa "} (62,1,1) = {" aaa @@ -126853,7 +132810,7 @@ aaf bVT bVT bVT -cEM +epK bWg bWg chF @@ -127303,7 +133260,7 @@ aaf aaf aBX aBX -aEN +epD aBX aBZ aBZ @@ -127368,7 +133325,7 @@ bZf cCm bVT cyh -cGq +duO ceO cJg cdj @@ -127378,7 +133335,7 @@ bZC bZD cdj cMq -cGq +duO bZC cJc aaf @@ -127625,7 +133582,7 @@ cAU cCn bVT bZD -cGq +duO cHJ cHJ cHJ @@ -127882,7 +133839,7 @@ bZf cAW bVT bZC -cGr +duK cHJ efW cKW @@ -128109,7 +134066,7 @@ bBV bDJ btD bHx -bJy +epF bLz bHv bPy @@ -128139,7 +134096,7 @@ cAV cCo bVT cEN -cGs +duM cHK cJi cKX @@ -128910,7 +134867,7 @@ cAW bVT bVT cEP -cGq +duO cHJ cJl cLa @@ -129125,7 +135082,7 @@ aWd aNU aWd aNU -bpP +aSL aNU aaH btD @@ -129167,7 +135124,7 @@ cAX cCp bVT cEQ -cGs +duM cHJ cHJ cLb @@ -129382,7 +135339,7 @@ aWe aIZ aWe aIU -bjm +aSM aIZ aIZ btF @@ -129423,8 +135380,8 @@ czk bZf cAW bVT -cyf -cGv +cJA +duL cHJ cJm cLc @@ -129434,7 +135391,7 @@ cQj cRz cTn cHJ -cWI +chI cYu bWg daR @@ -129681,7 +135638,7 @@ cAU cCq bVT cER -cGs +duM cHJ cJn cLd @@ -129938,7 +135895,7 @@ bZf cAW bVT cES -cGq +duO cHJ cJo cLe @@ -130195,7 +136152,7 @@ cAY cCr bVT cER -cGw +duN cHN cJp cLf @@ -130657,7 +136614,7 @@ aSR aUo aWi aXO -aZp +aUo baL bcg aSR @@ -130944,7 +136901,7 @@ bRV bDM bVT bXw -bZk +epI bVT ccU ceE @@ -130962,7 +136919,7 @@ cuM cht ccU bVT -cAZ +epJ bXw bVT cEV @@ -131145,8 +137102,8 @@ aiW aiW aiW aiW -apG -aqZ +ept +epv ase aqZ auy @@ -131222,7 +137179,7 @@ czm bZm cCt bVT -cEW +cYz cGA cHJ cJt @@ -131407,11 +137364,11 @@ ara asf atj auz -ato +epx awT axN aza -ato +epx aAW aCd aDD @@ -131737,7 +137694,7 @@ cBb cCu bVT cEY -cGq +duO cHJ cHJ cHJ @@ -131747,7 +137704,7 @@ cHJ cHJ cHJ cHJ -cGq +duO cYz bWg bWg @@ -131949,10 +137906,10 @@ bds bfl bgZ bjb -aXW -aXW +aUz +aUz bof -aXW +aUz bri aIZ btM @@ -132264,7 +138221,7 @@ cMH cMH cYC cZK -daZ +cFn dcE ddX dfO @@ -132520,7 +138477,7 @@ cHS cHS cHS cHS -cyf +cJA dba dcF ddY @@ -132686,7 +138643,7 @@ ajL ajL ajL ajL -aoK +epo apM arf ask @@ -132766,7 +138723,7 @@ cCy bVT cFc bZC -cGq +duO cJx cHS cMI @@ -132777,8 +138734,8 @@ cMI cMI cMI cHS -cyf -dbb +cJA +cFm dcE ddZ dfQ @@ -132943,7 +138900,7 @@ ajL akR anb ajL -aoK +epo apN arg asl @@ -133200,7 +139157,7 @@ ajL ajL ajL ajL -aoK +epo apO arh asm @@ -133210,7 +139167,7 @@ auF auF axS azf -aAd +epA aBc arj aDK @@ -133458,7 +139415,7 @@ alR anc anc aoL -apP +apG ari asn ehy @@ -133549,7 +139506,7 @@ cOs cHS cHS cZM -dbd +cFo dcE dec dfQ @@ -133740,8 +139697,8 @@ aRc aTb aUz aWs -aXW -aXW +aUz +aUz baS bck bdz @@ -133805,8 +139762,8 @@ cTw cVb cWP cHS -cZN -dbb +cJw +cFm dcE ded dfS @@ -133971,10 +139928,10 @@ ajL ajL ajL ajL -aoK +epo apQ ebQ -ash +epw atm auI avS @@ -134228,8 +140185,8 @@ akR ajL akQ ajL -aoK -apQ +eps +epu arl asp atn @@ -134492,7 +140449,7 @@ asq ato auK avU -auK +epy axV azj aAg @@ -134773,9 +140730,9 @@ aWe aIZ aSM aIU -bfv +aWe aIZ -bjm +aSM aIZ bmq bop @@ -134875,7 +140832,7 @@ aaa aaf dUl dUl -dVx +epQ dUl dUl aaf @@ -135030,7 +140987,7 @@ aWd aNU aSL aNU -bfw +aWd bhj aJg aIZ @@ -135617,7 +141574,7 @@ dej dej dej dej -cEW +cYz duL cJc aaa @@ -136080,7 +142037,7 @@ bou bou bOd bPY -bSm +epi bUq bWg bWg @@ -137416,7 +143373,7 @@ dnG dpc dqB dej -cEW +cYz duN dwm bZC @@ -138168,9 +144125,9 @@ cHW cHW cHW cOH -cQx -cRP -cTA +epl +epm +epn cOH cHW cHW @@ -138391,7 +144348,7 @@ akm ajl bKc aip -aol +eph bQf bSn bUr @@ -138413,7 +144370,7 @@ crL cts cuZ cww -cyb +cgp czH bWi cCK @@ -138829,14 +144786,14 @@ aaf aaf aaf aax -ach +egV aax aaf aaa aaa aaf aax -ach +egV aax aaf aaf @@ -139086,14 +145043,14 @@ aaa aaf aaa aax -aci +ack aax aax aax aax aax aax -aci +ack aax aaa aaf @@ -139343,14 +145300,14 @@ aax aaD abT aax -acj +egU aax acC acT ack adq aax -ach +egW aax abR aaD @@ -139441,7 +145398,7 @@ bWi bWi bWi bWi -cye +cji czL bWi cCK @@ -139462,7 +145419,7 @@ cYI cHS dbm dcL -dex +cPe dgh dhu djj @@ -139698,7 +145655,7 @@ crP ctw cvd bWi -cyf +cJA czM cBo cCO @@ -139719,7 +145676,7 @@ cYJ cHS dbn cLI -dex +cPe cJL cJL djn @@ -139881,7 +145838,7 @@ akc alc amd anm -aol +eph aip aqf aib @@ -139976,7 +145933,7 @@ cHS cHS dbo cLH -dex +cPe dgi dhv djo @@ -141668,9 +147625,9 @@ edp edp edp een -acj -aci -acj +epc +ack +epC agl agN ahu @@ -141835,6 +147792,9 @@ aaa aaa aaa aaa +aaa +aaa +aaa eaY aaa aaa @@ -141861,9 +147821,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa "} (136,1,1) = {" aaa @@ -142543,7 +148500,7 @@ cTR cVw cXn cYN -cTR +epL dbv dcR deC @@ -142684,14 +148641,14 @@ aaf aaf aaf aax -ach +egV aax aaf aaf aaf aaf aax -acj +egT aax aaf aaf @@ -142941,14 +148898,14 @@ aaa aaf aaa aax -aci +ack aax aax aax aax aax aax -aci +ack aax aaa aaf @@ -143057,7 +149014,7 @@ cTT cVy cXp cYP -cTT +epM dbx dcS deE @@ -143198,14 +149155,14 @@ aax aaD abR aax -acj +egU aax acE acV adg adr aax -ach +egW aax abT aaD @@ -144483,14 +150440,14 @@ aaa aaf aaa aax -aci +ack aax aax aax aax aax aax -aci +ack aax aaa aaf @@ -145396,7 +151353,7 @@ dEQ dGo ahA ahA -dJd +ahC dJY dKO ahA @@ -147217,7 +153174,7 @@ dMY dRe dXj dXR -dYE +ahM dZs dZU aaf @@ -147463,15 +153420,15 @@ aaf aaa aaa dMY -dRf +dPA dMY -dRf +dPA dMY aaf aaf aaf dMY -dRf +dPA dXk dXS dXk @@ -147567,14 +153524,14 @@ aaa aaf aaa aax -aci +ack aax aax aax aax aax aax -aci +ack aax aaa aaf @@ -147720,17 +153677,17 @@ aaa aaa aaa dMY -dRe +epO dMY -dRe +epP dMY aaa aaa aaa dMY -dRe +epR dXk -dXR +epS dXk aaa aaa @@ -149897,7 +155854,7 @@ afE afU agB ahg -ahP +afE aiD ajG aeX @@ -150206,7 +156163,7 @@ brK bsV bxw bzN -bBc +epE bCL bEL bEL @@ -150485,16 +156442,16 @@ cim brN brN bqq -coe +bkT cpL -cqZ +brH csr -cub +bmI cvE cwY -cqZ -cqZ -cqZ +brH +brH +brH brH bkT cFG @@ -150520,10 +156477,10 @@ djZ dlM dnc doh -dpQ +dnc drt dsT -dpQ +dnc ego dwO dyc @@ -151418,7 +157375,7 @@ aaa aaa aaa abg -aby +epB abg aaf aaf @@ -152860,7 +158817,7 @@ dMh dJp dJr dJp -dKq +dJq dTz aaa aaa @@ -154397,7 +160354,7 @@ dLa dMh aaf aaf -dKq +dJq dPJ dQy dRq @@ -155943,7 +161900,7 @@ dKl dKl dOY dRw -dKq +dJq dTf dTE dKl @@ -157733,7 +163690,7 @@ dHd dyq aaf aaf -dKq +dJq dLl dMs dNq @@ -157925,9 +163882,9 @@ bDq bNb bOP bIZ -bTh +epG bVq -bWY +epH bIZ beF cct @@ -161177,6 +167134,9 @@ aaa aaa aaa aaa +aaa +aaa +aaa aab aaa aaa @@ -161219,9 +167179,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa agg aaf aBU @@ -161575,7 +167532,7 @@ agg agg aaf eik -eis +epN eik aaf aaf @@ -162832,10 +168789,10 @@ cqf cqf cqf cqf -cEE +epj cqf cqf -cIU +epk cqf cqf cqf @@ -163665,6 +169622,9 @@ aaa aaa aaa aaa +aaa +aaa +aaa eaU aaa aaa @@ -163706,9 +169666,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa "} (221,1,1) = {" aaa @@ -165402,10 +171359,10 @@ cqf cqf cqf cqf -cEE +epj cqf cqf -cIU +epk cqf cqf cqf diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 1deccbd657..8490a0d503 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -289,9 +289,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "aaI" = ( @@ -314,9 +312,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "aaK" = ( @@ -639,10 +635,7 @@ /turf/open/space, /area/solar/starboard/fore) "abx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -658,9 +651,8 @@ /turf/open/floor/plasteel/black, /area/prison/execution_room) "abz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -947,9 +939,7 @@ /area/security/prison) "acf" = ( /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/security/prison) "acg" = ( /obj/machinery/light/small, @@ -999,9 +989,8 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/starboard/fore) "acm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -1011,8 +1000,7 @@ /area/prison/execution_room) "acn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -1160,8 +1148,7 @@ }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/darkred{ dir = 4 @@ -1174,9 +1161,8 @@ req_access_txt = "3" }, /obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 8 @@ -1215,17 +1201,15 @@ }, /area/security/prison) "acF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light, /turf/open/floor/plasteel, /area/security/prison) "acG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-13" @@ -1274,9 +1258,8 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light, /turf/open/floor/plasteel/floorgrime, @@ -1632,9 +1615,8 @@ /obj/structure/chair/office/dark{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/prison/execution_room) @@ -1643,10 +1625,7 @@ /turf/open/floor/plasteel/black, /area/prison/execution_room) "adp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/prison/execution_room) "adq" = ( @@ -1754,10 +1733,7 @@ }, /area/security/prison) "adA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/light{ dir = 8 }, @@ -1780,10 +1756,7 @@ id = "insaneflash"; pixel_x = 26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/security/prison) "adD" = ( @@ -1847,10 +1820,7 @@ pixel_x = -28 }, /obj/structure/table, -/obj/item/weapon/storage/backpack/duffelbag/sec{ - contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); - desc = "A large duffelbag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; - name = "duffelbag"; +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery{ pixel_y = 5 }, /obj/item/clothing/mask/balaclava, @@ -1888,8 +1858,7 @@ specialfunctions = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/darkred/side{ dir = 2 @@ -1912,9 +1881,7 @@ }, /area/prison/execution_room) "adO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/flasher{ id = "PCell 3"; pixel_x = -28 @@ -1927,23 +1894,20 @@ /obj/structure/table, /obj/item/weapon/paper, /obj/item/weapon/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "adQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/closed/wall, /area/security/prison) "adR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/flasher{ id = "PCell 2"; @@ -1966,15 +1930,11 @@ /obj/structure/table, /obj/item/weapon/paper, /obj/item/weapon/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "adU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/flasher{ id = "PCell 1"; pixel_x = -28 @@ -2768,10 +2728,7 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/heads/hos) "aff" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/weapon/storage/secure/safe{ name = "armory safe A"; pixel_x = 6; @@ -2816,11 +2773,8 @@ pixel_x = -32; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/crew_quarters/heads/hos) @@ -2852,9 +2806,8 @@ pixel_x = 32; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 2; @@ -3029,9 +2982,8 @@ }, /area/security/prison) "afI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -3054,8 +3006,7 @@ /area/security/prison) "afK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/red/corner{ dir = 1 @@ -3076,8 +3027,7 @@ /area/security/prison) "afM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/firealarm{ dir = 1; @@ -3126,8 +3076,7 @@ /area/security/prison) "afQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/landmark/lightsout, /turf/open/floor/plasteel/red/corner{ @@ -3136,8 +3085,7 @@ /area/security/prison) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -3159,8 +3107,7 @@ /area/security/prison) "afT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/light, /turf/open/floor/plasteel/red/corner{ @@ -3168,9 +3115,8 @@ }, /area/security/prison) "afU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 1 @@ -3188,9 +3134,8 @@ /turf/open/floor/plating, /area/security/prison) "afX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/item/weapon/storage/secure/safe{ name = "armory safe B"; @@ -3846,10 +3791,7 @@ }, /area/crew_quarters/fitness/recreation) "ahm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ahn" = ( @@ -3890,10 +3832,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/solars/port/fore) @@ -3953,9 +3892,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahz" = ( /obj/machinery/door/poddoor{ @@ -3966,9 +3903,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3980,9 +3915,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahB" = ( /turf/closed/wall, @@ -4320,9 +4253,8 @@ /obj/machinery/airalarm{ pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -4524,10 +4456,7 @@ }, /area/security/warden) "aiy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/light/small{ dir = 1 }, @@ -4747,10 +4676,7 @@ }, /area/crew_quarters/fitness/recreation) "aiU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -4829,10 +4755,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "ajf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/maintenance/disposal) "ajg" = ( @@ -4979,9 +4902,8 @@ }, /area/security/warden) "ajv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -4994,8 +4916,7 @@ "ajw" = ( /obj/structure/closet/bombcloset, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -5049,12 +4970,7 @@ /turf/closed/wall, /area/security/main) "ajE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/secequipment, /turf/open/floor/plasteel/vault, /area/security/main) @@ -5078,10 +4994,7 @@ /turf/open/floor/plasteel/vault, /area/security/main) "ajI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/landmark/secequipment, /turf/open/floor/plasteel/vault, /area/security/main) @@ -5123,12 +5036,7 @@ /turf/open/floor/plasteel, /area/security/range) "ajM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/range) "ajN" = ( @@ -5424,10 +5332,7 @@ /area/maintenance/port/fore) "akq" = ( /obj/item/weapon/vending_refill/cola, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -5612,17 +5517,13 @@ /turf/open/floor/plating, /area/security/warden) "akH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "akI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -5759,8 +5660,7 @@ /area/security/main) "akS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -5897,9 +5797,8 @@ }, /area/maintenance/fore) "alc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -5943,10 +5842,7 @@ }, /area/crew_quarters/fitness/recreation) "ali" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -6011,9 +5907,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "alp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -6027,7 +5922,6 @@ /area/maintenance/starboard) "als" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -6230,9 +6124,8 @@ }, /area/security/brig) "alN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/whitered/corner{ dir = 8 @@ -6482,10 +6375,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; @@ -6536,8 +6426,7 @@ /area/security/main) "aml" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -6623,9 +6512,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -7012,7 +6900,6 @@ "anj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/extinguisher_cabinet{ @@ -7036,10 +6923,7 @@ }, /area/security/warden) "anl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault, /area/security/warden) "anm" = ( @@ -7078,9 +6962,8 @@ /turf/open/floor/plasteel, /area/security/warden) "anp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -7201,7 +7084,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/security/range) +/area/maintenance/fore) "anE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance{ @@ -7225,10 +7108,7 @@ }, /area/crew_quarters/fitness/recreation) "anG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "anH" = ( @@ -7282,9 +7162,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "anO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/engine/gravity_generator) @@ -7297,9 +7176,8 @@ /turf/open/floor/plasteel/black, /area/engine/gravity_generator) "anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/engine/gravity_generator) @@ -7343,10 +7221,7 @@ dir = 8; id = "garbage" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/maintenance/disposal) "anX" = ( @@ -7405,9 +7280,8 @@ /turf/open/floor/plating, /area/maintenance/port) "aof" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -7503,7 +7377,7 @@ req_one_access_txt = "0" }, /turf/open/floor/plating, -/area/security/brig) +/area/maintenance/port/fore) "aon" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7571,9 +7445,8 @@ /obj/item/clothing/under/rank/medical/purple{ pixel_y = -4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -7589,8 +7462,7 @@ /area/security/brig) "aor" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -7931,8 +7803,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -7945,8 +7816,7 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=14.8-Dorms-Lockers"; @@ -8200,9 +8070,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "apw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -8630,8 +8499,7 @@ /area/engine/gravity_generator) "aqu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable{ d1 = 4; @@ -8669,8 +8537,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -8710,10 +8577,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) @@ -8871,9 +8735,7 @@ "aqT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port/fore) "aqU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8889,9 +8751,7 @@ icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port/fore) "aqV" = ( /obj/structure/reagent_dispensers/watertank, @@ -8946,8 +8806,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -8967,9 +8826,8 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -9006,10 +8864,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "arg" = ( @@ -9085,8 +8940,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 2; @@ -9118,8 +8972,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel/red/side, @@ -9265,10 +9118,7 @@ }, /area/maintenance/starboard/fore) "arL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) @@ -9289,9 +9139,7 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "arO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -9301,9 +9149,8 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "arP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9328,9 +9175,8 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "arR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/power/terminal, /obj/effect/turf_decal/stripes/line{ @@ -9410,9 +9256,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "arX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light, /obj/structure/cable/yellow{ @@ -9496,9 +9341,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "asd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light, /obj/effect/landmark/xeno_spawn, @@ -9624,11 +9468,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "asn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Labor Shuttle Control Desk"; @@ -9814,11 +9655,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "asy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/vehicle/secway, /obj/item/key/security, @@ -9997,9 +9835,8 @@ /turf/open/floor/plasteel/red/side, /area/security/main) "asL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -10109,9 +9946,8 @@ specialfunctions = 4 }, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -10166,10 +10002,7 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/bed, /obj/item/weapon/bedsheet, /turf/open/floor/carpet, @@ -10210,13 +10043,9 @@ name = "Gravity Generator Room"; req_access_txt = "19;23" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "ath" = ( /obj/machinery/power/smes{ @@ -10227,9 +10056,7 @@ d2 = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "ati" = ( /obj/structure/cable{ @@ -10243,9 +10070,7 @@ }, /obj/item/weapon/pen/blue, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "atj" = ( /obj/machinery/space_heater, @@ -10568,9 +10393,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -10712,9 +10536,8 @@ }, /area/maintenance/fore) "aub" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/fore) @@ -10730,9 +10553,8 @@ /turf/open/floor/wood, /area/crew_quarters/dorms) "aue" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -10756,8 +10578,7 @@ "auh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -10770,8 +10591,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/landmark/lightsout, /turf/open/floor/plasteel, @@ -10803,9 +10623,8 @@ /area/crew_quarters/dorms) "aum" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -10826,9 +10645,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "auq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -11295,12 +11113,7 @@ }, /area/security/brig) "avj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/security/brig) "avk" = ( @@ -11329,12 +11142,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -11597,8 +11408,7 @@ /area/maintenance/starboard/fore) "avH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -11898,10 +11708,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -11913,9 +11720,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -11972,9 +11777,8 @@ /turf/open/floor/plasteel, /area/security/brig) "awl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -12039,10 +11843,7 @@ /turf/open/floor/plasteel, /area/security/brig) "awq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -12056,9 +11857,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/brig) "aws" = ( @@ -12130,9 +11929,8 @@ /turf/open/floor/plating, /area/maintenance/fore) "awC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 1 @@ -12162,9 +11960,8 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -12191,10 +11988,7 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/dorms) "awH" = ( @@ -12237,9 +12031,7 @@ req_access_txt = "10" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "awL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12348,8 +12140,7 @@ /area/shuttle/labor) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -12400,8 +12191,7 @@ /area/security/brig) "axd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/red/corner{ dir = 8 @@ -12414,8 +12204,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel, /area/security/brig) @@ -12441,8 +12230,7 @@ /area/security/brig) "axh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/door_timer{ id = "Cell 3"; @@ -12457,9 +12245,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/side{ dir = 9 }, @@ -12514,8 +12300,7 @@ /area/security/brig) "axn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) @@ -12541,8 +12326,7 @@ /area/security/brig) "axq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/red/corner{ dir = 2 @@ -12585,9 +12369,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -12597,8 +12379,7 @@ /area/security/brig) "axu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/red/corner{ dir = 2 @@ -12664,9 +12445,8 @@ /turf/open/floor/plasteel/black, /area/security/brig) "axB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -12674,9 +12454,8 @@ /turf/closed/wall, /area/crew_quarters/toilet/restrooms) "axD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -12713,8 +12492,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -12737,9 +12515,8 @@ /area/crew_quarters/dorms) "axK" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light/small, /turf/open/floor/wood, @@ -12875,9 +12652,7 @@ req_one_access_txt = "0" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "axV" = ( /obj/structure/sign/securearea{ @@ -12988,7 +12763,7 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/quartermaster/miningoffice) +/area/maintenance/port/fore) "ayl" = ( /turf/closed/wall, /area/quartermaster/warehouse) @@ -13005,7 +12780,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/quartermaster/warehouse) +/area/maintenance/port/fore) "ayn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -13167,9 +12942,7 @@ /turf/open/floor/plasteel/red/side, /area/security/brig) "ayB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_security{ cyclelinkeddir = 2; @@ -13258,9 +13031,7 @@ req_access = null; req_access_txt = "4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/detectives_office) "ayI" = ( @@ -13293,9 +13064,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/airalarm{ pixel_y = 26 @@ -13329,8 +13099,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -13370,9 +13139,7 @@ dir = 1; pixel_y = 2 }, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "ayT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -13386,8 +13153,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -13403,16 +13169,14 @@ /turf/open/floor/plating, /area/engine/engineering) "ayX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/engine/engineering) "aza" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -13628,9 +13392,8 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "azv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 1 @@ -13664,9 +13427,8 @@ }, /area/security/nuke_storage) "azz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -13698,9 +13460,8 @@ id = "Cell 1"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) @@ -13713,11 +13474,8 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "azF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 4 @@ -13729,16 +13487,14 @@ id = "Cell 2"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) "azH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/flasher{ id = "Cell 3"; @@ -13747,9 +13503,7 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "azI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light/small{ dir = 8 }, @@ -13864,9 +13618,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/security/detectives_office) "azT" = ( @@ -14161,17 +13913,13 @@ "aAo" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aAp" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/hooded/wintercoat/engineering, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aAr" = ( /obj/item/device/radio/intercom{ @@ -14188,17 +13936,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aAt" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -14226,8 +13971,7 @@ /area/engine/engineering) "aAw" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -14297,9 +14041,8 @@ }, /area/quartermaster/miningoffice) "aAF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) @@ -14336,9 +14079,7 @@ name = "Warehouse Shutters" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aAK" = ( /obj/structure/disposalpipe/segment, @@ -14548,9 +14289,7 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "aBc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 8; pixel_x = -26 @@ -14577,9 +14316,8 @@ }, /area/security/brig) "aBf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light/small{ dir = 8 @@ -14588,8 +14326,7 @@ /area/security/brig) "aBg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) @@ -14615,11 +14352,8 @@ /turf/open/floor/plasteel/floorgrime, /area/security/brig) "aBj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light/small{ dir = 4 @@ -14646,9 +14380,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/security/detectives_office) "aBn" = ( @@ -14724,10 +14456,7 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aBu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aBv" = ( @@ -14810,8 +14539,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -15038,9 +14766,8 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aBZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) @@ -15125,12 +14852,7 @@ /obj/item/weapon/storage/secure/briefcase{ contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) }, -/obj/item/weapon/storage/backpack/duffelbag{ - contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); - desc = "A large duffelbag for holding extra things. There is a NanoTrasen logo on the back."; - icon_state = "duffle-syndieammo"; - item_state = "duffle-syndieammo" - }, +/obj/item/weapon/storage/backpack/duffelbag/syndie/hitman, /obj/item/weapon/card/id/silver{ access = list(12); assignment = "Reaper"; @@ -15212,9 +14934,7 @@ /turf/open/floor/plating, /area/security/brig) "aCn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_security{ cyclelinkeddir = 1; @@ -15291,9 +15011,8 @@ /area/security/brig) "aCs" = ( /obj/structure/table/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/power/apc{ dir = 8; @@ -15437,8 +15156,7 @@ /area/crew_quarters/dorms) "aCH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -15466,9 +15184,8 @@ specialfunctions = 4 }, /obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -15535,10 +15252,7 @@ /turf/open/floor/plating, /area/engine/engineering) "aCS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/engine/engineering) "aCT" = ( @@ -15677,9 +15391,7 @@ /area/quartermaster/miningoffice) "aDk" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aDl" = ( @@ -15713,9 +15425,8 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aDo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/light_construct/small{ dir = 4 @@ -15774,9 +15485,7 @@ req_access_txt = "2" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "aDw" = ( /turf/open/floor/plasteel/red/corner{ @@ -15830,9 +15539,7 @@ }, /area/hallway/primary/fore) "aDB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ dir = 1 }, @@ -15925,11 +15632,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/button/flasher{ id = "holdingflash"; @@ -15966,9 +15670,8 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -16002,9 +15705,8 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 2; @@ -16103,8 +15805,7 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/urinal{ pixel_y = 29 @@ -16144,7 +15845,6 @@ icon_state = "1-2" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -16201,9 +15901,8 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "aEf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -16232,17 +15931,13 @@ /area/engine/engineering) "aEj" = ( /obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) "aEk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -16331,12 +16026,16 @@ icon_state = "2-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, /area/engine/engineering) "aEq" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16349,6 +16048,8 @@ /area/engine/engineering) "aEr" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -16393,9 +16094,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aEx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -16428,9 +16128,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/loadingarea{ dir = 1 }, @@ -16539,9 +16237,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aEL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -16601,8 +16298,7 @@ /area/hallway/primary/fore) "aEQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -16643,10 +16339,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=1-BrigCells"; location = "0-SecurityDesk" @@ -16712,9 +16405,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -16763,7 +16455,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/security/detectives_office) +/area/maintenance/fore) "aFc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/firealarm{ @@ -16812,9 +16504,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, @@ -16981,8 +16672,7 @@ /area/engine/engineering) "aFv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -16991,8 +16681,7 @@ /area/engine/engineering) "aFw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -17004,8 +16693,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -17029,38 +16717,39 @@ /turf/open/floor/engine, /area/engine/engineering) "aFB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/engine, /area/engine/engineering) "aFC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "aFD" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, /obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "aFE" = ( @@ -17119,9 +16808,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown{ dir = 2 }, @@ -17142,14 +16829,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/warehouse) "aFL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -17289,9 +16972,8 @@ /turf/open/floor/plasteel/black, /area/hallway/primary/fore) "aFX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -17768,9 +17450,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -17899,9 +17580,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -17909,12 +17589,12 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "aGZ" = ( @@ -17965,9 +17645,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -18025,9 +17703,7 @@ req_one_access_txt = "48;50" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/construction/storage/wing) "aHk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -18072,9 +17748,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/construction/storage/wing) "aHn" = ( /obj/structure/cable/yellow{ @@ -18131,9 +17805,8 @@ }, /area/construction/storage/wing) "aHs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/brown/corner{ dir = 8 @@ -18151,10 +17824,7 @@ /turf/open/floor/plasteel, /area/construction/storage/wing) "aHu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -18195,9 +17865,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aHB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ dir = 2 }, @@ -18240,11 +17908,10 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/lawoffice) +/area/maintenance/fore) "aHI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light_switch{ pixel_x = -26 @@ -18294,9 +17961,8 @@ /area/crew_quarters/dorms) "aHN" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -18341,9 +18007,8 @@ }, /obj/structure/bed, /obj/item/weapon/bedsheet, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -18409,17 +18074,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aIc" = ( /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/window/reinforced/highpressure/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plating, /area/engine/engineering) "aIe" = ( @@ -18628,9 +18291,7 @@ req_one_access_txt = "48;50" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/construction/storage/wing) "aIs" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -18662,9 +18323,8 @@ /turf/open/floor/plasteel, /area/construction/storage/wing) "aIu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/power/apc{ dir = 2; @@ -18720,8 +18380,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/item/device/radio/intercom{ freerange = 0; @@ -18781,8 +18440,7 @@ /area/construction/storage/wing) "aIA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -18902,9 +18560,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 2; @@ -19192,9 +18849,7 @@ /obj/structure/table, /obj/item/weapon/airlock_painter, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aJp" = ( /obj/structure/table, @@ -19203,8 +18858,7 @@ /obj/item/clothing/glasses/meson/engine, /obj/item/clothing/glasses/meson/engine, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -19236,7 +18890,6 @@ /area/quartermaster/storage) "aJC" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/conveyor{ @@ -19267,9 +18920,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aJF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19287,8 +18938,7 @@ /area/quartermaster/storage) "aJI" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/corner{ @@ -19333,9 +18983,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aJL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -19394,8 +19042,7 @@ /area/ai_monitored/turret_protected/ai_upload) "aJT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 8 @@ -19413,9 +19060,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aJV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19732,17 +19377,16 @@ pixel_x = 24; req_access_txt = "10" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "aKG" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/closed/wall/r_wall, @@ -19750,7 +19394,8 @@ "aKH" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; - name = "Gas to Chamber" + name = "Gas to Chamber"; + on = 0 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -19762,16 +19407,17 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "aKL" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix Bypass"; + on = 0 + }, /turf/open/floor/engine, /area/engine/engineering) "aKN" = ( @@ -19813,9 +19459,8 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aKR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -19824,9 +19469,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aKT" = ( /obj/structure/closet/crate, @@ -19857,8 +19500,7 @@ /area/quartermaster/storage) "aKW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -20068,9 +19710,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "aLr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/flasher{ pixel_y = 24; @@ -20095,9 +19736,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "aLt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/airalarm{ pixel_y = 23 @@ -20162,11 +19802,8 @@ }, /area/security/courtroom) "aLD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/wood, @@ -20180,10 +19817,7 @@ /turf/open/floor/wood, /area/lawoffice) "aLF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -20328,9 +19962,8 @@ }, /area/hydroponics/garden) "aLW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 5 @@ -20413,6 +20046,8 @@ icon_state = "2-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -20441,8 +20076,8 @@ /turf/open/floor/engine, /area/engine/supermatter) "aMm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/black, /area/engine/engineering) "aMo" = ( @@ -20474,17 +20109,13 @@ /area/quartermaster/storage) "aMu" = ( /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aMv" = ( /turf/open/floor/plasteel, /area/quartermaster/storage) "aMw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/quartermaster/storage) "aMx" = ( @@ -20494,9 +20125,8 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aMy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/loadingarea{ dir = 8 @@ -20546,8 +20176,7 @@ /area/storage/primary) "aMD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/storage/primary) @@ -20829,10 +20458,7 @@ }, /area/crew_quarters/locker) "aNe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" @@ -20926,9 +20552,7 @@ maxcharge = 15000 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aNr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -20942,15 +20566,13 @@ "aNu" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Gas to Filter" + name = "Gas to Filter"; + on = 0 }, /turf/open/floor/engine, /area/engine/supermatter) "aNv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine, /area/engine/supermatter) "aNw" = ( @@ -21049,9 +20671,7 @@ "aNG" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aNH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -21125,9 +20745,7 @@ /area/quartermaster/qm) "aNO" = ( /obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -21199,9 +20817,8 @@ /turf/open/floor/plasteel, /area/storage/primary) "aNU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/storage/primary) @@ -21306,9 +20923,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "aOf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/courtroom) @@ -21354,9 +20970,8 @@ }, /area/security/courtroom) "aOm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -21476,8 +21091,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -21514,8 +21128,7 @@ /area/crew_quarters/locker) "aOE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -21529,8 +21142,7 @@ /area/crew_quarters/locker) "aOF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -22000,7 +21612,6 @@ pixel_x = 30 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/camera{ @@ -22097,9 +21708,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aPA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -22129,9 +21738,7 @@ "aPD" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/courtroom) "aPE" = ( @@ -22204,8 +21811,7 @@ /area/crew_quarters/locker) "aPL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -22348,16 +21954,12 @@ icon_state = "2-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aPZ" = ( /obj/machinery/vending/tool, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aQa" = ( /obj/structure/table, @@ -22373,13 +21975,12 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aQd" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 1; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "aQe" = ( @@ -22437,18 +22038,14 @@ "aQj" = ( /obj/effect/landmark/start/cargo_technician, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aQk" = ( /obj/structure/closet/crate{ icon_state = "crateopen"; opened = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; name = "2maintenance loot spawner" @@ -22547,7 +22144,6 @@ opened = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/delivery, @@ -22594,7 +22190,6 @@ /obj/structure/table, /obj/item/weapon/aiModule/reset, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/ai_status_display{ @@ -22669,15 +22264,13 @@ /area/ai_monitored/turret_protected/ai_upload) "aQE" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 8 @@ -22719,7 +22312,6 @@ /area/security/courtroom) "aQK" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -22955,9 +22547,8 @@ }, /area/hydroponics/garden) "aRc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side, /area/hydroponics/garden) @@ -23188,7 +22779,6 @@ /area/construction/mining/aux_base) "aRF" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/computer/camera_advanced/base_construction, @@ -23246,9 +22836,8 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -23326,10 +22915,7 @@ /turf/open/floor/plasteel, /area/storage/primary) "aRS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -23364,9 +22950,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -23403,8 +22988,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -23427,9 +23011,8 @@ /turf/open/floor/plating, /area/crew_quarters/locker) "aSf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -23590,9 +23173,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aSu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -23626,8 +23208,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -23657,10 +23238,6 @@ /turf/open/floor/engine, /area/engine/engineering) "aSA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 5 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -23669,6 +23246,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, /turf/open/floor/engine, /area/engine/engineering) "aSB" = ( @@ -24011,7 +23591,6 @@ /area/storage/primary) "aTi" = ( /obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; locked = 0; name = "AI Upload"; req_access_txt = "16" @@ -24042,9 +23621,8 @@ /turf/open/floor/plating, /area/security/courtroom) "aTl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/security/courtroom) @@ -24082,9 +23660,8 @@ /turf/open/floor/plasteel/black, /area/security/courtroom) "aTq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ @@ -24224,7 +23801,7 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/hydroponics/garden) +/area/maintenance/starboard/fore) "aTD" = ( /obj/structure/cable/yellow{ d2 = 4; @@ -24312,12 +23889,16 @@ dir = 10 }, /obj/structure/cable/white{ + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, /area/engine/engineering) "aTK" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -24327,6 +23908,8 @@ /area/engine/engineering) "aTM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -24336,6 +23919,8 @@ /area/engine/engineering) "aTN" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -24483,7 +24068,6 @@ /area/quartermaster/storage) "aUf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -24500,16 +24084,14 @@ /area/quartermaster/storage) "aUg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aUh" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -24664,9 +24246,7 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload_foyer) "aUy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/turretid{ control_area = "AI Upload Chamber"; icon_state = "control_stun"; @@ -24718,10 +24298,7 @@ /turf/open/floor/plasteel/vault, /area/ai_monitored/turret_protected/ai_upload_foyer) "aUA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/start/cyborg, /obj/machinery/light/small{ dir = 4 @@ -24788,9 +24365,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aUE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Fore Primary Hallway" @@ -24841,9 +24416,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/courtroom) @@ -24977,8 +24551,7 @@ /obj/structure/closet/secure_closet/personal, /obj/item/clothing/under/assistantformal, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/item/clothing/suit/hooded/wintercoat, /obj/item/clothing/shoes/winterboots, @@ -24987,9 +24560,7 @@ "aUY" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aUZ" = ( /obj/structure/disposalpipe/segment, @@ -25019,9 +24590,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aVc" = ( /obj/structure/disposalpipe/segment, @@ -25044,9 +24613,7 @@ dir = 4 }, /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aVe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25095,10 +24662,7 @@ layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "aVn" = ( @@ -25142,10 +24706,7 @@ layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "aVr" = ( @@ -25208,9 +24769,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aVy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/status_display{ density = 0; @@ -25324,14 +24884,10 @@ /turf/closed/wall, /area/quartermaster/storage) "aVH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/weapon/storage/firstaid/regular, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aVI" = ( /obj/effect/landmark/lightsout, @@ -25404,10 +24960,7 @@ /area/security/checkpoint/supply) "aVP" = ( /obj/structure/chair/office/dark, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/start/depsec/supply, /turf/open/floor/plasteel, /area/security/checkpoint/supply) @@ -25552,9 +25105,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aWg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/corner{ dir = 4 }, @@ -25809,7 +25360,6 @@ pixel_x = -32 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/circuit, @@ -25851,7 +25401,6 @@ /area/ai_monitored/turret_protected/ai) "aWR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/ai_status_display{ @@ -25899,8 +25448,7 @@ /area/hallway/secondary/entry) "aWY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/stripes/corner{ dir = 2 @@ -25935,9 +25483,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aXd" = ( @@ -25950,8 +25496,7 @@ network = list("SS13") }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/arrival{ dir = 4 @@ -25991,9 +25536,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aXi" = ( /obj/structure/disposalpipe/segment, @@ -26425,8 +25968,7 @@ dir = 4 }, /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "aXR" = ( @@ -26557,9 +26099,7 @@ icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/starboard/fore) "aYd" = ( /obj/structure/window/reinforced{ @@ -26604,9 +26144,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/starboard/fore) "aYh" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -26759,9 +26297,8 @@ d2 = 2; icon_state = "0-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light_switch{ pixel_x = 26; @@ -26779,9 +26316,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aYt" = ( /obj/item/device/radio/intercom{ @@ -26793,9 +26328,7 @@ /obj/effect/turf_decal/delivery, /obj/structure/closet/firecloset, /obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aYu" = ( /turf/closed/wall, @@ -26868,9 +26401,8 @@ /turf/closed/wall, /area/hallway/secondary/entry) "aYE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -26910,9 +26442,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -26999,9 +26529,7 @@ /area/quartermaster/storage) "aYQ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, @@ -27053,9 +26581,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/junction{ dir = 1; @@ -27137,10 +26664,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/hallway/primary/central) "aZd" = ( @@ -27255,9 +26779,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -27306,10 +26829,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ d1 = 2; @@ -27319,12 +26839,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aZs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -27386,10 +26903,7 @@ }, /area/storage/tech) "aZz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -27494,9 +27008,8 @@ }, /area/crew_quarters/heads/chief) "aZI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/shower{ @@ -27527,10 +27040,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aZK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/shower{ dir = 8 }, @@ -27756,9 +27266,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -27845,7 +27353,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/quartermaster/storage) +/area/maintenance/port/fore) "bal" = ( /obj/item/device/radio/intercom{ broadcasting = 0; @@ -27859,9 +27367,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "bam" = ( /obj/structure/cable/yellow{ @@ -27870,9 +27376,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "ban" = ( /obj/structure/cable/yellow{ @@ -27969,9 +27473,7 @@ /area/quartermaster/office) "bau" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_mining{ glass = 0; @@ -27981,9 +27483,7 @@ req_one_access_txt = "48;50" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/office) "bav" = ( /obj/structure/cable/yellow{ @@ -28001,9 +27501,7 @@ req_one_access_txt = "48;50" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/office) "baw" = ( /obj/item/weapon/stamp{ @@ -28053,10 +27551,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "baA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/status_display{ density = 0; pixel_y = 32; @@ -28151,8 +27646,7 @@ /area/hallway/primary/central) "baJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -28181,8 +27675,7 @@ /area/hallway/primary/central) "baL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/light, /obj/structure/disposalpipe/segment{ @@ -28215,8 +27708,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -28246,8 +27738,7 @@ pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -28263,8 +27754,7 @@ /area/hallway/primary/central) "baR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -28312,8 +27802,7 @@ /area/hallway/primary/central) "baW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/light, /turf/open/floor/plasteel/neutral/corner{ @@ -28335,8 +27824,7 @@ /area/hallway/primary/central) "baY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/extinguisher_cabinet{ pixel_y = -30 @@ -28347,8 +27835,7 @@ /area/hallway/primary/central) "baZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/item/device/radio/intercom{ freerange = 0; @@ -28374,9 +27861,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bbb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Central Primary Hallway - Fore - Starboard Corner"; dir = 8; @@ -28633,8 +28118,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/segment, /obj/machinery/computer/security/telescreen{ @@ -28668,8 +28152,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -28779,9 +28262,7 @@ }, /area/ai_monitored/turret_protected/ai) "bbI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -28837,9 +28318,7 @@ /area/quartermaster/sorting) "bbQ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ dir = 8; name = "Cargo Office APC"; @@ -28870,10 +28349,7 @@ }, /area/quartermaster/office) "bbS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/status_display{ density = 0; pixel_y = 32; @@ -29020,9 +28496,7 @@ }, /area/hallway/primary/central) "bcm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, @@ -29045,10 +28519,7 @@ }, /area/storage/tools) "bco" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/storage/tools) "bcp" = ( @@ -29056,10 +28527,7 @@ /turf/open/floor/plasteel, /area/storage/tools) "bcq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/storage/tools) "bcr" = ( @@ -29084,9 +28552,8 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bct" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/starboard/fore) @@ -29140,9 +28607,8 @@ }, /area/storage/tech) "bcz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/vault{ @@ -29199,9 +28665,8 @@ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -29260,9 +28725,7 @@ "bcJ" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bcK" = ( /obj/structure/disposalpipe/segment, @@ -29354,9 +28817,8 @@ /turf/open/floor/plating, /area/shuttle/arrival) "bcV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/firealarm{ @@ -29380,8 +28842,7 @@ /area/security/checkpoint/customs) "bcX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/table/reinforced, /obj/item/weapon/book/manual/wiki/security_space_law{ @@ -29402,9 +28863,8 @@ d2 = 2; icon_state = "0-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -29540,9 +29000,7 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -29567,8 +29025,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -29608,15 +29065,13 @@ /area/hallway/primary/port) "bds" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bdt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -29811,9 +29266,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bdQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -29878,9 +29331,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/starboard/fore) "bdX" = ( /obj/structure/rack{ @@ -30071,9 +29522,7 @@ }, /area/engine/engineering) "bem" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera/autoname{ dir = 4; network = list("SS13") @@ -30103,10 +29552,7 @@ }, /area/security/checkpoint/engineering) "ben" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -30168,9 +29614,8 @@ /turf/open/floor/plasteel/black, /area/aisat) "bet" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -30303,11 +29748,10 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "beJ" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_r" +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "beK" = ( /obj/structure/grille, @@ -30368,9 +29812,8 @@ /turf/open/floor/plasteel, /area/security/checkpoint/customs) "beP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -30411,7 +29854,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/security/checkpoint/customs) +/area/maintenance/port/fore) "beS" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -30445,7 +29888,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/quartermaster/sorting) +/area/maintenance/port/fore) "beV" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -30466,7 +29909,6 @@ pixel_y = 12 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -30479,9 +29921,7 @@ dir = 4; pixel_x = -22 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ dir = 8 }, @@ -30574,9 +30014,8 @@ /turf/open/floor/plasteel/floorgrime, /area/janitor) "bfk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/janitor) @@ -30787,7 +30226,6 @@ /obj/effect/landmark/start/captain, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -30825,9 +30263,7 @@ }, /area/hallway/primary/central) "bfF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/corner{ dir = 4 }, @@ -30955,10 +30391,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bfS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/aisat) "bfT" = ( @@ -30977,9 +30410,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "bfU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31039,7 +30470,6 @@ /area/shuttle/pod_4) "bgc" = ( /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19" }, @@ -31054,9 +30484,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -31165,25 +30594,22 @@ /area/shuttle/arrival) "bgt" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "bgu" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "bgv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/cable/yellow{ @@ -31349,10 +30775,7 @@ }, /area/quartermaster/sorting) "bgI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bgJ" = ( @@ -31417,9 +30840,7 @@ d1 = 4; d2 = 8 }, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/sorting) "bgO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -31510,9 +30931,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/office) "bgU" = ( /obj/structure/disposalpipe/segment{ @@ -31815,9 +31234,8 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bhv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -31829,9 +31247,8 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bhx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -32287,10 +31704,7 @@ dir = 1; network = list("RD") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "bip" = ( @@ -32333,9 +31747,7 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) "biu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -32439,9 +31851,8 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "biH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -32508,8 +31919,7 @@ /area/hallway/primary/port) "biO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -32522,9 +31932,8 @@ "biQ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -32556,9 +31965,8 @@ /turf/open/floor/plasteel/floorgrime, /area/janitor) "biU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light/small, /obj/item/device/radio/intercom{ @@ -32750,9 +32158,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -32819,9 +32225,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -32886,10 +32291,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -32957,9 +32359,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -32987,8 +32388,7 @@ /area/hallway/primary/starboard) "bjF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/cable/yellow{ d1 = 2; @@ -33032,8 +32432,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/cable/yellow{ d1 = 4; @@ -33071,8 +32470,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -33121,7 +32519,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bjS" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/flasher{ @@ -33653,9 +33050,8 @@ "bkJ" = ( /obj/effect/landmark/xeno_spawn, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/shower{ pixel_y = 12 @@ -33681,8 +33077,7 @@ pixel_y = 13 }, /obj/machinery/light{ - dir = 2; - icon_state = "tube1" + dir = 2 }, /obj/effect/landmark/start/captain, /obj/machinery/light_switch{ @@ -33722,8 +33117,7 @@ /area/crew_quarters/heads/captain/private) "bkQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ @@ -33746,9 +33140,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bkS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -33779,8 +33171,7 @@ /area/hallway/primary/starboard) "bkV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -33793,8 +33184,7 @@ /area/hallway/primary/starboard) "bkW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/caution/corner{ dir = 8 @@ -33844,8 +33234,7 @@ /area/hallway/primary/starboard) "blb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/firealarm{ dir = 1; @@ -33862,8 +33251,7 @@ /area/hallway/primary/starboard) "blc" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/caution/corner{ dir = 8 @@ -33908,8 +33296,7 @@ /area/hallway/primary/starboard) "blg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=13.2-Tcommstore"; @@ -33960,10 +33347,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bll" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/engine/break_room) "blm" = ( @@ -34001,8 +33385,7 @@ /area/engine/break_room) "blr" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/engine/break_room) @@ -34060,10 +33443,7 @@ /area/aisat) "blB" = ( /obj/machinery/computer/teleporter, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/firealarm{ dir = 8; pixel_x = -26 @@ -34090,9 +33470,8 @@ }, /area/ai_monitored/turret_protected/aisat/foyer) "blE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai) @@ -34133,7 +33512,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "blI" = ( /obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; locked = 0; name = "AI Chamber"; req_access_txt = "16" @@ -34246,11 +33624,10 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "blS" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_l" +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "blT" = ( /obj/structure/cable/yellow{ @@ -34264,9 +33641,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -34330,9 +33706,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side, /area/hallway/primary/port) @@ -34598,9 +33973,8 @@ /turf/open/floor/plasteel/black, /area/bridge) "bmy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -34683,9 +34057,8 @@ }, /area/bridge) "bmF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -34755,9 +34128,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/yellow/corner{ dir = 2 @@ -35255,7 +34626,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bnF" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -35338,9 +34708,7 @@ dir = 8; pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Arrivals - Station Entrance"; dir = 4; @@ -35863,9 +35231,8 @@ /turf/open/floor/plasteel, /area/storage/art) "boN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -35999,9 +35366,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36074,8 +35439,7 @@ /area/engine/break_room) "bpk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/cable/yellow{ d1 = 2; @@ -36112,9 +35476,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "bpn" = ( /obj/structure/window/reinforced{ @@ -36287,10 +35649,7 @@ /turf/open/floor/plasteel/black, /area/aisat) "bpE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; @@ -36313,9 +35672,8 @@ /turf/open/floor/plasteel/black, /area/aisat) "bpG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ icon_state = "4-8"; @@ -36343,17 +35701,13 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "MiniSat Foyer"; req_one_access_txt = "32;19" }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat/foyer) "bpJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ icon_state = "4-8"; d1 = 4; @@ -36377,9 +35731,8 @@ d1 = 4; d2 = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 2; @@ -36396,7 +35749,6 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "MiniSat Antechamber"; req_one_access_txt = "32;19" }, @@ -36419,9 +35771,8 @@ d1 = 4; d2 = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -36452,10 +35803,7 @@ d1 = 4; d2 = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) "bpR" = ( @@ -36503,10 +35851,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -36515,9 +35860,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/storage/satellite) "bpV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 2; @@ -36570,16 +35914,13 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/aisat) "bqb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -36794,9 +36135,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -36806,9 +36146,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/sortjunction{ dir = 8; icon_state = "pipe-j1s"; @@ -36834,10 +36172,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; @@ -36889,17 +36224,15 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -37183,9 +36516,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -37218,9 +36550,8 @@ /turf/open/floor/plasteel, /area/storage/art) "bre" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -37267,9 +36598,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/item/device/radio/intercom{ freerange = 0; @@ -37291,7 +36621,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/crew_quarters/bar) +/area/maintenance/starboard) "brm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37325,8 +36655,7 @@ sortType = 19 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -37383,8 +36712,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -37571,9 +36899,8 @@ /turf/open/floor/plasteel, /area/engine/break_room) "brI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -37615,9 +36942,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/break_room) @@ -37988,8 +37314,7 @@ pixel_y = 1 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/arrival{ dir = 4 @@ -38014,8 +37339,7 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/grimy, @@ -38026,8 +37350,7 @@ /area/hallway/primary/port) "bsu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -38080,8 +37403,7 @@ /area/hallway/primary/port) "bsz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -38181,8 +37503,7 @@ /area/hallway/primary/port) "bsI" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/extinguisher_cabinet{ pixel_y = -30 @@ -38243,10 +37564,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "bsN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -38276,10 +37594,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "bsR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "bsS" = ( @@ -38324,9 +37639,7 @@ pixel_y = -24; req_access_txt = "19" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/button/door{ id = "council blast"; name = "Council Chamber Blast Door Control"; @@ -38346,10 +37659,7 @@ /turf/open/floor/carpet, /area/bridge) "bsY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/button/door{ id = "evashutter"; name = "E.V.A. Storage Shutter Control"; @@ -38441,9 +37751,7 @@ name = "Captain's Desk"; req_access_txt = "20" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/item/weapon/stamp/captain, /turf/open/floor/wood, @@ -38562,10 +37870,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "btp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /obj/structure/disposalpipe/segment{ dir = 4; @@ -38637,9 +37942,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -38725,7 +38028,6 @@ pixel_x = -22 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -38811,10 +38113,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "btP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -38850,9 +38149,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "btT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, @@ -38907,8 +38204,7 @@ /area/hallway/primary/port) "btZ" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -38956,9 +38252,7 @@ /turf/open/floor/wood, /area/library) "buh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Library" @@ -39016,8 +38310,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39157,8 +38450,7 @@ /area/bridge) "buw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/bridge) @@ -39237,9 +38529,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "buI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -39279,9 +38569,7 @@ }, /area/hallway/primary/central) "buM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, @@ -39368,9 +38656,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -39391,8 +38677,7 @@ /area/maintenance/starboard) "buZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/caution{ dir = 8 @@ -39400,9 +38685,8 @@ /area/hallway/primary/starboard) "bva" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -39512,9 +38796,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "bvk" = ( /obj/machinery/door/poddoor{ @@ -39533,9 +38815,7 @@ dir = 8 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "bvl" = ( /obj/machinery/door/poddoor{ @@ -39550,9 +38830,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "bvm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39577,10 +38855,7 @@ /turf/open/floor/plasteel/black, /area/engine/break_room) "bvp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ c_tag = "Engineering - Transit Tube Access"; dir = 8; @@ -39614,7 +38889,6 @@ /area/engine/break_room) "bvs" = ( /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19" }, @@ -39803,9 +39077,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bvL" = ( @@ -39815,8 +39087,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/cable/yellow{ d1 = 1; @@ -39850,8 +39121,7 @@ /area/hallway/primary/port) "bvP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -39863,8 +39133,7 @@ location = "5-Customs" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -39902,8 +39171,7 @@ /area/maintenance/department/science/xenobiology) "bvU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -39962,9 +39230,7 @@ /turf/open/floor/carpet, /area/library) "bwd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/library) "bwe" = ( @@ -40030,7 +39296,6 @@ /area/crew_quarters/heads/hop) "bwl" = ( /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19" }, @@ -40157,10 +39422,7 @@ /obj/machinery/ai_status_display{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/bridge) "bww" = ( @@ -40198,8 +39460,7 @@ /area/bridge) "bwz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ @@ -40233,7 +39494,6 @@ icon_state = "1-4" }, /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/carpet, @@ -40265,7 +39525,6 @@ icon_state = "pipe-c" }, /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -40336,9 +39595,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bwJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ @@ -40490,10 +39747,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "bwW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -40509,9 +39763,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "bwZ" = ( @@ -40546,8 +39798,7 @@ dir = 9 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/caution{ dir = 4 @@ -40587,15 +39838,13 @@ /area/engine/atmos) "bxh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/closed/wall/r_wall, /area/engine/atmos) "bxi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) @@ -40637,9 +39886,8 @@ /turf/open/floor/plasteel/black, /area/engine/break_room) "bxn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/chair/office/dark{ dir = 1 @@ -40705,9 +39953,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bxv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -40839,9 +40086,8 @@ /turf/open/floor/plasteel/neutral/side, /area/hallway/primary/port) "bxH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -40954,9 +40200,8 @@ /turf/open/floor/plasteel/floorgrime, /area/crew_quarters/toilet/auxiliary) "bxQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; @@ -41190,7 +40435,6 @@ /area/crew_quarters/heads/captain/private) "byq" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/carpet, @@ -41202,7 +40446,6 @@ /area/crew_quarters/heads/captain/private) "bys" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -41213,7 +40456,6 @@ pixel_x = 24 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/carpet, @@ -41244,9 +40486,7 @@ }, /area/hallway/primary/central) "byw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -41320,8 +40560,7 @@ /area/crew_quarters/bar) "byG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -41363,9 +40602,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/break_room) "byL" = ( /obj/machinery/power/apc{ @@ -41597,9 +40834,8 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -41650,8 +40886,7 @@ /area/engine/atmos) "bzg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -41713,9 +40948,8 @@ dir = 8; network = list("MiniSat") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/aisat) @@ -41769,9 +41003,8 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bzs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -41901,9 +41134,7 @@ dir = 8; network = list("SS13") }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/library) "bzG" = ( @@ -42008,8 +41239,7 @@ /area/hallway/secondary/command) "bzS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/button/door{ id = "bridge blast"; @@ -42023,9 +41253,8 @@ }, /area/bridge) "bzT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/vending/coffee{ pixel_x = -3 @@ -42040,7 +41269,6 @@ /area/bridge) "bzU" = ( /obj/structure/chair/comfy/teal{ - icon_state = "comfychair"; dir = 4 }, /obj/structure/chair/comfy/black{ @@ -42105,9 +41333,8 @@ }, /area/bridge) "bAc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/firealarm{ dir = 8; @@ -42141,10 +41368,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bAg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, @@ -42249,8 +41473,7 @@ /area/crew_quarters/theatre) "bAt" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/carpet, /area/crew_quarters/theatre) @@ -42266,9 +41489,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/theatre) @@ -42335,9 +41557,8 @@ }, /area/engine/atmos) "bAC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -42368,7 +41589,6 @@ /area/engine/atmos) "bAG" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table, @@ -42437,16 +41657,14 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bAO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "bAP" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -43137,9 +42355,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bCh" = ( /obj/structure/chair{ @@ -43155,8 +42371,7 @@ /area/engine/atmos) "bCj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43235,21 +42450,17 @@ /area/engine/atmos) "bCt" = ( /obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "bCu" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - color = "purple" - }, +/obj/machinery/atmospherics/pipe/manifold/purple/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bCv" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -43260,16 +42471,14 @@ name = "Air to Mix"; on = 0 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bCx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/open/floor/plasteel/green/side{ @@ -43279,16 +42488,14 @@ "bCy" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/open/floor/plating, /area/engine/atmos) "bCz" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -43303,16 +42510,11 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bCB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "mix in" }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -43354,9 +42556,8 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "bCH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -43398,9 +42599,8 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bCL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/security/vacantoffice) @@ -43623,10 +42823,7 @@ layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, @@ -43769,10 +42966,7 @@ layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, @@ -43867,10 +43061,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bDD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bDE" = ( @@ -44005,8 +43196,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bDY" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -44229,8 +43419,7 @@ /area/library) "bEx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/carpet, /area/library) @@ -44238,9 +43427,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/library) "bEz" = ( @@ -44275,8 +43462,7 @@ /area/hallway/primary/central) "bEC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -44343,8 +43529,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -44365,9 +43550,8 @@ }, /area/hallway/secondary/command) "bEI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -44434,8 +43618,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -44448,8 +43631,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/newscaster{ pixel_y = -29 @@ -44484,8 +43666,7 @@ }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -44634,9 +43815,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 2; d2 = 4; @@ -44653,8 +43832,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -44709,8 +43887,7 @@ /area/hallway/secondary/command) "bFc" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/structure/cable/yellow{ d1 = 4; @@ -44728,8 +43905,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -44782,8 +43958,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8 @@ -44960,10 +44135,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "bFt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/crew_quarters/bar) "bFu" = ( @@ -45057,7 +44229,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/crew_quarters/theatre) +/area/maintenance/starboard) "bFB" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -45102,8 +44274,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -45141,9 +44312,7 @@ opacity = 0 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bFG" = ( /obj/structure/disposalpipe/segment{ @@ -45170,10 +44339,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black/corner{ dir = 2 }, @@ -45246,15 +44412,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bFR" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) "bFS" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 9 }, /turf/open/floor/plasteel, @@ -45269,8 +44433,7 @@ /area/engine/atmos) "bFU" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5; - initialize_directions = 12 + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -45421,9 +44584,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard) @@ -45442,9 +44603,8 @@ /turf/open/floor/carpet, /area/library) "bGs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/library) @@ -45454,9 +44614,8 @@ }, /area/library) "bGu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/library) @@ -45644,9 +44803,7 @@ name = "Gateway Atrium"; req_access_txt = "62" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/gateway) @@ -45703,8 +44860,7 @@ /area/maintenance/central) "bGV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -45722,9 +44878,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bGX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -45748,8 +44902,7 @@ /area/crew_quarters/bar) "bHa" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -45760,9 +44913,8 @@ /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) "bHc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) @@ -45845,9 +44997,8 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/carpet, /area/crew_quarters/theatre) @@ -45858,9 +45009,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "bHm" = ( @@ -45964,17 +45113,14 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 + dir = 6 }, /turf/open/floor/plating, /area/engine/atmos) "bHx" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple" - }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -46010,8 +45156,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plating, /area/engine/atmos) @@ -46135,9 +45280,8 @@ /obj/machinery/shower{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plating, /area/crew_quarters/toilet/auxiliary) @@ -46204,9 +45348,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -46349,9 +45492,8 @@ }, /area/hallway/secondary/command) "bIj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -46410,9 +45552,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -46480,16 +45620,13 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bIs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 2 }, @@ -46517,8 +45654,7 @@ /area/crew_quarters/bar) "bIv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -46576,9 +45712,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg2" }, @@ -46596,8 +45730,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 2 @@ -46633,8 +45766,7 @@ "bIK" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -46701,8 +45833,7 @@ /area/engine/atmos) "bIQ" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -46721,16 +45852,13 @@ /area/engine/atmos) "bIT" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bIU" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple" - }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) @@ -46791,16 +45919,11 @@ /turf/open/space, /area/space) "bJc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; - id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + id_tag = "n2o_out" + name = "n2o out" }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -46943,9 +46066,8 @@ /turf/open/floor/plating, /area/maintenance/port) "bJt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/item/device/radio/intercom{ freerange = 0; @@ -47034,9 +46156,8 @@ }, /area/ai_monitored/storage/eva) "bJE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -47249,9 +46370,8 @@ /turf/open/floor/plasteel, /area/gateway) "bJV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ @@ -47343,9 +46463,7 @@ }, /area/hallway/primary/central) "bKd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -47530,15 +46648,13 @@ "bKy" = ( /obj/item/device/radio/beacon, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) "bKz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -47714,10 +46830,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bKU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -47846,9 +46959,7 @@ /turf/open/floor/wood, /area/library) "bLj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/lightsout, /turf/open/floor/carpet, /area/library) @@ -47964,9 +47075,8 @@ /turf/open/floor/plating, /area/teleporter) "bLs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48250,9 +47360,8 @@ /obj/structure/rack, /obj/item/weapon/circuitboard/machine/telecomms/bus, /obj/item/weapon/circuitboard/machine/telecomms/broadcaster, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Telecoms - Storage"; @@ -48306,8 +47415,7 @@ /area/engine/atmos) "bMb" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/arrival{ dir = 8 @@ -48584,9 +47692,8 @@ }, /area/hallway/secondary/entry) "bMB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -48683,9 +47790,7 @@ /turf/open/floor/carpet, /area/library) "bMK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; @@ -48788,8 +47893,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ @@ -49140,9 +48244,8 @@ }, /area/crew_quarters/kitchen) "bNy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria{ dir = 5 @@ -49150,8 +48253,7 @@ /area/crew_quarters/kitchen) "bNz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/cafeteria{ dir = 5 @@ -49256,9 +48358,8 @@ /turf/open/floor/plasteel/black, /area/storage/tcom) "bNM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -49433,9 +48534,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port) "bOf" = ( @@ -49493,9 +48592,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/library) "bOm" = ( @@ -49789,7 +48886,6 @@ /area/gateway) "bOM" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault, @@ -49810,7 +48906,6 @@ "bOO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -49925,17 +49020,15 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "bPd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/start/clown, /turf/open/floor/wood, /area/crew_quarters/theatre) "bPe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -49958,7 +49051,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/crew_quarters/theatre) +/area/maintenance/starboard) "bPg" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -50022,9 +49115,8 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bPl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -50088,8 +49180,7 @@ /area/engine/atmos) "bPt" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -50129,16 +49220,11 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bPx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; - id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + id_tag = "tox_out" + name = "toxin out" }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -50227,7 +49313,7 @@ req_one_access_txt = "0" }, /turf/open/floor/plating, -/area/security/vacantoffice) +/area/maintenance/port) "bPJ" = ( /obj/structure/rack{ dir = 8; @@ -50237,13 +49323,9 @@ /turf/open/floor/plating, /area/maintenance/port) "bPK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port) "bPL" = ( /obj/structure/rack, @@ -50344,12 +49426,7 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = 30 }, -/obj/structure/closet/crate, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/rank/curator/treasure_hunter, -/obj/item/clothing/suit/curator, -/obj/item/clothing/head/curator, -/obj/item/weapon/storage/backpack/satchel/explorer, +/obj/structure/closet/wardrobe/curator, /turf/open/floor/engine/cult, /area/library) "bPY" = ( @@ -50376,9 +49453,8 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bQa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -50400,9 +49476,8 @@ }, /area/teleporter) "bQc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -50426,7 +49501,6 @@ pixel_y = 2 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -50461,10 +49535,7 @@ /turf/open/floor/wood, /area/bridge/showroom/corporate) "bQh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/bridge/showroom/corporate) @@ -50505,10 +49576,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/bridge/showroom/corporate) "bQn" = ( @@ -50542,9 +49610,8 @@ }, /area/gateway) "bQq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -50563,8 +49630,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -50611,9 +49677,8 @@ /turf/open/floor/plasteel, /area/gateway) "bQu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -50636,9 +49701,8 @@ /turf/open/floor/plasteel, /area/gateway) "bQw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -50725,9 +49789,8 @@ }, /area/crew_quarters/kitchen) "bQD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -50800,9 +49863,8 @@ /area/crew_quarters/kitchen) "bQJ" = ( /obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/showroomfloor, @@ -50894,9 +49956,7 @@ /turf/closed/wall, /area/aisat) "bRb" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -50924,9 +49984,7 @@ name = "Storage Room"; req_access_txt = "12" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port) "bRg" = ( @@ -50963,8 +50021,7 @@ }, /obj/machinery/photocopier, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/wood, /area/library) @@ -51076,9 +50133,7 @@ /turf/open/floor/carpet, /area/bridge/showroom/corporate) "bRy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/bridge/showroom/corporate) "bRz" = ( @@ -51565,9 +50620,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -51621,8 +50674,7 @@ /area/engine/atmos) "bSi" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /obj/item/weapon/wrench, @@ -51658,9 +50710,7 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bSm" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -51678,9 +50728,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port) "bSo" = ( /obj/structure/cable/yellow{ @@ -51714,9 +50762,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port) "bSr" = ( /obj/structure/cable/yellow{ @@ -51908,9 +50954,7 @@ /turf/open/floor/plating, /area/bridge/showroom/corporate) "bSK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ name = "Corporate Showroom"; @@ -51956,9 +51000,7 @@ }, /area/hallway/primary/central) "bSR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/green/corner{ dir = 2 }, @@ -51975,7 +51017,6 @@ name = "Service Shutter" }, /obj/machinery/door/airlock/glass_medical{ - id_tag = ""; name = "Service Door"; req_access_txt = "0"; req_one_access_txt = "35;28" @@ -52002,9 +51043,7 @@ req_one_access_txt = "30;35" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/hydroponics) "bSW" = ( /obj/machinery/smartfridge, @@ -52012,8 +51051,7 @@ /area/hydroponics) "bSX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -52025,9 +51063,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -52120,9 +51157,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard) @@ -52235,7 +51270,6 @@ /area/maintenance/solars/port/aft) "bTq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -52273,9 +51307,8 @@ /turf/open/floor/plating, /area/maintenance/port) "bTw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/library) @@ -52323,9 +51356,8 @@ /turf/open/floor/wood, /area/library) "bTA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -52391,8 +51423,7 @@ /area/hallway/primary/central) "bTF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -52478,8 +51509,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/status_display{ density = 0; @@ -52494,9 +51524,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/side{ dir = 1 }, @@ -52511,8 +51539,7 @@ /area/hallway/primary/central) "bTQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -52520,8 +51547,7 @@ /area/hallway/primary/central) "bTR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/neutral/side{ dir = 1 @@ -52553,8 +51579,7 @@ /area/hallway/primary/central) "bTU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/power/apc{ cell_type = 10000; @@ -52572,8 +51597,7 @@ /area/hallway/primary/central) "bTV" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -52661,9 +51685,7 @@ }, /area/hallway/primary/central) "bUc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/botany{ pixel_x = 32; pixel_y = 32 @@ -52832,9 +51854,7 @@ dir = 2; sortType = 20 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -52964,8 +51984,7 @@ "bUE" = ( /obj/item/weapon/cigbutt, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -52997,16 +52016,11 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bUI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; - id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + id_tag = "co2_out" + name = "co2 out" }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -53159,9 +52173,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -53193,9 +52206,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -53218,9 +52230,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ icon_state = "L1" }, @@ -53296,8 +52306,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "bVl" = ( @@ -53325,9 +52334,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -53351,9 +52359,8 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -53367,9 +52374,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bVp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; @@ -53452,9 +52457,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard) @@ -53615,15 +52618,13 @@ icon_state = "4-8" }, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bVS" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -53641,9 +52642,8 @@ /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bVT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -54195,9 +53195,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -54313,7 +53311,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/engine/atmos) +/area/maintenance/starboard) "bXf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ @@ -54371,8 +53369,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/manifold/dark/visible{ dir = 1 }, /turf/open/floor/plasteel, @@ -54383,42 +53380,35 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bXk" = ( /obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bXl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bXm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bXn" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - color = "#330000" - }, +/obj/machinery/atmospherics/pipe/manifold/dark/visible, /obj/machinery/meter{ color = "" }, @@ -54533,9 +53523,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bXC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -54561,9 +53550,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -54619,9 +53606,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ dir = 8 }, @@ -54649,9 +53634,7 @@ }, /area/hallway/primary/central) "bXS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ dir = 8 }, @@ -54729,9 +53712,7 @@ req_access_txt = "0"; req_one_access_txt = "12;35;47" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard/aft) "bYc" = ( @@ -54783,16 +53764,14 @@ /turf/open/floor/plasteel, /area/hydroponics) "bYh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) "bYi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -54820,7 +53799,6 @@ pixel_x = 27 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/camera/autoname{ @@ -54956,9 +53934,7 @@ }, /area/engine/atmos) "bYw" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000" - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bYx" = ( @@ -54987,16 +53963,14 @@ /area/engine/atmos) "bYA" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) "bYB" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/atmos) @@ -55111,9 +54085,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance{ req_access_txt = "0"; req_one_access_txt = "12;5;39;25;28" @@ -55277,9 +54249,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white/side{ dir = 2 @@ -55314,9 +54284,7 @@ /turf/closed/wall, /area/medical/medbay/central) "bZf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Aft Primary Hallway" @@ -55633,9 +54601,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -55710,10 +54676,7 @@ /turf/open/floor/plasteel/white, /area/medical/storage) "caa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -55772,9 +54735,8 @@ /obj/machinery/light_switch{ pixel_y = -25 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -55784,9 +54746,8 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "cag" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -55849,9 +54810,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cam" = ( @@ -55885,9 +54844,7 @@ }, /area/medical/medbay/central) "caq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ dir = 8 }, @@ -56103,7 +55060,6 @@ "caJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_medical{ - id_tag = ""; name = "Hydroponics"; req_access_txt = "35" }, @@ -56227,10 +55183,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -56270,7 +55223,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/hydroponics) +/area/maintenance/starboard) "caU" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -56395,9 +55348,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000" - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/red, /area/engine/atmos) "cbf" = ( @@ -56680,9 +55631,7 @@ icon_state = "pipe-j1s"; sortType = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/aft) "cbC" = ( @@ -56817,8 +55766,7 @@ announcementConsole = 0; department = "Medbay"; departmentType = 1; - name = "Medbay RC"; - pixel_z = 0 + name = "Medbay RC" }, /turf/closed/wall, /area/security/checkpoint/medical) @@ -56879,10 +55827,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cbV" = ( @@ -56946,9 +55891,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "cce" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -56985,8 +55929,7 @@ /area/science/research) "ccj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -57011,9 +55954,7 @@ }, /area/security/checkpoint/science/research) "ccm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/chair/office/dark{ dir = 1 }, @@ -57223,9 +56164,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -57301,9 +56240,8 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -57313,40 +56251,34 @@ icon_state = "0-8" }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 6 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "ccL" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "ccM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/atmos) "ccN" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel/black, /area/engine/atmos) "ccO" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 9 }, /turf/open/floor/plasteel/black, @@ -57368,8 +56300,7 @@ /area/engine/atmos) "ccT" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/engine/atmos) @@ -57510,9 +56441,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cdh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -57531,9 +56461,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/aft) "cdk" = ( @@ -57653,9 +56581,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/shower{ dir = 4; name = "emergency shower" @@ -57668,8 +56594,7 @@ /area/medical/medbay/central) "cdz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -57697,9 +56622,8 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cdD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -57720,9 +56644,7 @@ }, /area/medical/medbay/central) "cdG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -57736,9 +56658,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -57748,8 +56669,7 @@ /area/hallway/primary/aft) "cdI" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/purple/corner{ dir = 2 @@ -57811,9 +56731,8 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -57903,9 +56822,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -57958,8 +56875,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, @@ -57968,9 +56884,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) @@ -58160,9 +57075,8 @@ }, /area/medical/storage) "cex" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -58173,8 +57087,7 @@ /area/medical/storage) "cey" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/storage) @@ -58203,10 +57116,7 @@ pixel_x = -12; pixel_y = 2 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/firealarm{ dir = 8; pixel_x = -26; @@ -58252,9 +57162,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ dir = 2 }, @@ -58451,9 +57359,8 @@ }, /area/security/checkpoint/science/research) "ceW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/checkpoint/science/research) @@ -58730,7 +57637,7 @@ "cfs" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4; - initialize_directions = 11 + }, /obj/machinery/meter, /turf/open/floor/plasteel/floorgrime, @@ -58983,10 +57890,7 @@ /obj/structure/chair/office/light{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteblue/side{ dir = 6 }, @@ -59003,9 +57907,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue, /area/medical/medbay/central) "cfU" = ( @@ -59067,11 +57969,8 @@ /turf/closed/wall, /area/medical/chemistry) "cgb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -59206,9 +58105,7 @@ req_access_txt = "47"; req_one_access_txt = "0" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/science/research) "cgq" = ( @@ -59463,7 +58360,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/medical/sleeper) +/area/maintenance/port/aft) "cgP" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -59598,9 +58495,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_medical{ id_tag = "MedbayFoyer"; @@ -59678,9 +58573,7 @@ }, /area/medical/chemistry) "chg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8 }, @@ -59821,9 +58714,7 @@ }, /area/science/research) "chv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -59992,16 +58883,11 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "chP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; - id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + id_tag = "n2_out" + name = "n2 out" }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -60021,16 +58907,11 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "chS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "o2 out" }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -60050,16 +58931,11 @@ /turf/open/floor/engine/air, /area/engine/atmos) "chV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; - icon_state = "in"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -60088,9 +58964,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -60115,11 +58989,10 @@ req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plating, -/area/medical/surgery) +/area/maintenance/port/aft) "cie" = ( /obj/machinery/firealarm{ dir = 8; @@ -60133,20 +59006,14 @@ }, /area/medical/sleeper) "cif" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/sleeper) "cig" = ( /turf/open/floor/plasteel/white, /area/medical/sleeper) "cih" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 4; @@ -60320,8 +59187,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 @@ -60395,7 +59261,6 @@ pixel_x = -2 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/noticeboard{ @@ -60445,10 +59310,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/lab) "ciG" = ( @@ -60488,9 +59350,8 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -60560,19 +59421,14 @@ }, /area/science/research) "ciP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, /area/science/research) "ciQ" = ( /obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -60588,9 +59444,8 @@ }, /area/science/research) "ciS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /mob/living/simple_animal/pet/dog/pug{ desc = "It's Pugley IV, the research department's lovable pug clone. Hopefully nothing happens to this one - fourth time lucky!"; @@ -60611,9 +59466,8 @@ /turf/open/floor/engine, /area/science/explab) "ciV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/engine, /area/science/explab) @@ -60629,9 +59483,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -60811,9 +59663,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cjw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/landmark/revenantspawn, /turf/open/floor/plasteel/black, @@ -60821,8 +59672,7 @@ "cjx" = ( /obj/structure/chair, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/black, /area/medical/surgery) @@ -60845,9 +59695,8 @@ /turf/open/floor/plasteel/black, /area/medical/surgery) "cjA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/medical/surgery) @@ -60891,8 +59740,7 @@ /area/medical/sleeper) "cjF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 8 @@ -60951,9 +59799,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cjM" = ( @@ -60963,8 +59809,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -60980,8 +59825,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -61021,9 +59865,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -61064,9 +59907,8 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "cjU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -61199,8 +60041,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -61219,8 +60060,7 @@ /area/science/research) "ckh" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/closet/firecloset, /obj/machinery/airalarm{ @@ -61335,10 +60175,7 @@ /area/maintenance/starboard/aft) "ckv" = ( /obj/structure/closet/crate, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/device/assembly/infra, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/turf_decal/stripes/line, @@ -61450,9 +60287,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -61494,9 +60330,8 @@ }, /area/engine/atmos) "ckL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/engine{ name = "vacuum floor"; @@ -61541,9 +60376,8 @@ }, /area/maintenance/port/aft) "ckT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/aisat) @@ -61566,8 +60400,7 @@ "ckX" = ( /obj/structure/chair, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/medical/surgery) @@ -61594,9 +60427,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/medical/surgery) @@ -61608,9 +60440,8 @@ /area/medical/surgery) "clc" = ( /obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/sign/nosmoking_2{ pixel_x = 28 @@ -61620,24 +60451,20 @@ /area/medical/surgery) "cld" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/whiteblue, /area/medical/sleeper) "cle" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 10 }, /area/medical/sleeper) "clf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -61655,7 +60482,6 @@ /area/medical/sleeper) "clh" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -61687,19 +60513,15 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cll" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -61826,9 +60648,7 @@ }, /area/medical/chemistry) "clx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -61895,8 +60715,7 @@ /obj/item/weapon/stock_parts/scanning_module, /obj/item/weapon/stock_parts/scanning_module, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/nosmoking_2{ pixel_x = 30 @@ -61923,9 +60742,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -62024,9 +60842,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/noticeboard{ pixel_y = -32 @@ -62098,7 +60915,6 @@ /area/maintenance/starboard/aft) "clX" = ( /obj/machinery/door/airlock/maintenance{ - icon_state = "door_closed"; locked = 0; name = "Storage Room"; req_access_txt = "0"; @@ -62224,9 +61040,7 @@ name = "Observation"; req_access_txt = "0" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/medical/surgery) "cmo" = ( @@ -62237,9 +61051,7 @@ /area/medical/sleeper) "cmp" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/medical/sleeper) @@ -62256,9 +61068,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -62368,9 +61178,7 @@ }, /area/medical/chemistry) "cmD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/chemistry{ pixel_x = -32 }, @@ -62381,8 +61189,7 @@ "cmE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/science{ pixel_x = 32 @@ -62398,7 +61205,6 @@ pixel_x = -28 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -62484,7 +61290,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass_medical{ glass = 0; - id_tag = ""; name = "Research Break Room"; opacity = 1; req_access_txt = "0"; @@ -62645,15 +61450,9 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cnd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon{ dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "incinerator output intake"; - on = 0; - pressure_checks = 2; - pump_direction = 0 + name = "incinerator output intake" }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -62773,9 +61572,7 @@ }, /area/medical/surgery) "cns" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -62847,8 +61644,7 @@ /area/medical/cryo) "cnv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/closet/secure_closet/medical1{ pixel_x = -3 @@ -62859,9 +61655,7 @@ /turf/open/floor/plasteel/white, /area/medical/cryo) "cnw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -62910,7 +61704,6 @@ pixel_y = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/barber{ @@ -63065,17 +61858,15 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cnP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -63123,9 +61914,8 @@ /turf/open/floor/plasteel/white, /area/science/lab) "cnV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -63469,12 +62259,9 @@ /turf/open/floor/plasteel/white, /area/medical/surgery) "coE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/surgery) @@ -63508,9 +62295,8 @@ }, /area/medical/cryo) "coI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -63570,10 +62356,7 @@ }, /area/crew_quarters/heads/cmo) "coP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/barber{ dir = 8 }, @@ -63655,9 +62438,8 @@ }, /area/medical/chemistry) "coV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -63701,9 +62483,7 @@ }, /area/hallway/primary/aft) "coZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, @@ -63969,10 +62749,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cpv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -64094,8 +62871,7 @@ /area/science/explab) "cpD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -64132,7 +62908,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/science/explab) +/area/maintenance/starboard/aft) "cpG" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -64217,9 +62993,6 @@ }, /area/maintenance/port/aft) "cpR" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -64236,6 +63009,9 @@ req_access = null; req_one_access_txt = "24;10" }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/supermatter) "cpS" = ( @@ -64244,9 +63020,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -64259,7 +63033,7 @@ req_access_txt = "45" }, /turf/open/floor/plating, -/area/medical/surgery) +/area/maintenance/port/aft) "cpU" = ( /turf/open/floor/plasteel/white, /area/medical/surgery) @@ -64333,7 +63107,6 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_medical{ - id_tag = ""; name = "Surgery Observation"; req_access_txt = "0" }, @@ -64436,9 +63209,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; @@ -64739,9 +63510,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -64751,8 +63521,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -64804,8 +63573,7 @@ "cqL" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -64821,8 +63589,7 @@ /area/science/research) "cqN" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 2 @@ -64835,8 +63602,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whitepurple/side{ @@ -64861,9 +63627,8 @@ }, /area/science/explab) "cqR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -64905,9 +63670,8 @@ /turf/open/floor/plasteel/white, /area/science/explab) "cqV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/explab) @@ -64945,9 +63709,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cra" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -64998,9 +63761,8 @@ }, /area/maintenance/port/aft) "crj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/sink{ dir = 8; @@ -65031,9 +63793,8 @@ /turf/open/floor/plasteel/white, /area/medical/surgery) "crn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/firealarm{ dir = 4; @@ -65069,9 +63830,8 @@ dir = 4; pixel_x = -22 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 @@ -65149,8 +63909,7 @@ /area/medical/medbay/central) "crx" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whiteblue/corner{ @@ -65176,9 +63935,7 @@ /area/crew_quarters/heads/cmo) "crz" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -65198,9 +63955,8 @@ }, /area/crew_quarters/heads/cmo) "crB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -65213,8 +63969,7 @@ /area/crew_quarters/heads/cmo) "crC" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/keycard_auth{ pixel_x = 26; @@ -65234,9 +63989,7 @@ /area/crew_quarters/heads/cmo) "crD" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/aft) "crE" = ( @@ -65245,15 +63998,11 @@ req_access_txt = "5; 33" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/medical/chemistry) "crF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ freerange = 0; frequency = 1459; @@ -65308,9 +64057,7 @@ /turf/open/floor/plasteel, /area/science/lab) "crJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -65498,16 +64245,13 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) "csf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -65612,9 +64356,8 @@ }, /area/medical/surgery) "csp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 2 @@ -65645,7 +64388,7 @@ req_access_txt = "5" }, /turf/open/floor/plating, -/area/medical/cryo) +/area/maintenance/port/aft) "css" = ( /turf/closed/wall, /area/medical/cryo) @@ -66151,9 +64894,7 @@ pixel_x = -23 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "ctg" = ( /obj/structure/cable/yellow{ @@ -66198,9 +64939,7 @@ "ctj" = ( /obj/machinery/portable_atmospherics/scrubber/huge, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "ctk" = ( /obj/structure/cable/yellow{ @@ -66208,9 +64947,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg2" }, @@ -66259,9 +64996,7 @@ "ctr" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/medical, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -66271,9 +65006,8 @@ }, /area/medical/patients_rooms/room_a) "cts" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 2; @@ -66319,9 +65053,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; @@ -66389,9 +65121,7 @@ /turf/closed/wall, /area/medical/genetics) "ctE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/blue/corner{ dir = 8 @@ -66452,7 +65182,6 @@ "ctN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white/side{ @@ -66786,8 +65515,7 @@ pixel_x = 27 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -66920,9 +65648,7 @@ /turf/open/floor/plasteel/blue, /area/medical/genetics) "cuA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/side{ dir = 8 }, @@ -66933,9 +65659,7 @@ dir = 5 }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/aft) "cuC" = ( /obj/machinery/portable_atmospherics/canister/air, @@ -66996,9 +65720,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -67097,9 +65820,7 @@ "cuV" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "cuW" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, @@ -67112,15 +65833,12 @@ network = list("SS13","RD") }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "cuX" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -67166,9 +65884,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cvc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -67329,9 +66046,7 @@ /area/medical/patients_rooms/room_a) "cvq" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/examroom{ pixel_x = -32 }, @@ -67569,8 +66284,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 4 @@ -67615,9 +66329,8 @@ }, /area/crew_quarters/heads/hor) "cvR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -67641,9 +66354,8 @@ }, /area/crew_quarters/heads/hor) "cvT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -67679,9 +66391,7 @@ "cvX" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "cvY" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -67692,9 +66402,7 @@ pixel_x = 29 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "cvZ" = ( /obj/structure/closet/crate, @@ -67713,9 +66421,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -67784,9 +66490,7 @@ /area/maintenance/port/aft) "cwm" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -67875,9 +66579,7 @@ /turf/open/floor/plating, /area/medical/patients_rooms/room_b) "cws" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -67903,8 +66605,7 @@ pixel_x = 11 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) @@ -67956,10 +66657,7 @@ }, /area/medical/genetics) "cwA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/genetics) "cwB" = ( @@ -68013,9 +66711,7 @@ }, /area/medical/genetics) "cwF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 @@ -68237,9 +66933,7 @@ }, /obj/machinery/light/small, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "cwZ" = ( /obj/machinery/door/airlock/maintenance{ @@ -68292,16 +66986,14 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/patients_rooms/room_b) "cxg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -68356,8 +67048,7 @@ /area/medical/medbay/aft) "cxk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/whiteblue/corner{ @@ -68381,9 +67072,8 @@ }, /area/medical/genetics/cloning) "cxn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -68392,8 +67082,7 @@ /area/medical/genetics/cloning) "cxo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/dna_scannernew, /turf/open/floor/plasteel/whiteblue/side{ @@ -68445,9 +67134,8 @@ }, /area/medical/genetics) "cxu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 5 @@ -68493,11 +67181,8 @@ }, /area/medical/genetics) "cxz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/navbeacon{ @@ -68514,16 +67199,14 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cxB" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.1-Escape-1"; @@ -68554,9 +67237,8 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "cxE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) @@ -68697,9 +67379,7 @@ /turf/closed/wall, /area/medical/medbay/aft) "cxV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -68757,10 +67437,7 @@ }, /area/medical/genetics/cloning) "cya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -68854,7 +67531,6 @@ "cyi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ - icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Lab"; @@ -68869,9 +67545,8 @@ }, /area/medical/genetics) "cyk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/medical/genetics) @@ -68889,7 +67564,6 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ - icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Access"; @@ -68908,8 +67582,7 @@ /area/hallway/primary/aft) "cyo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ dir = 2 @@ -68948,16 +67621,12 @@ }, /obj/effect/landmark/start/roboticist, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/circuit, /area/science/robotics/mechbay) "cyt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/science/misc_lab/range) @@ -68978,16 +67647,14 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/research) "cyx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -69214,9 +67881,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) @@ -69328,9 +67994,7 @@ /turf/closed/wall, /area/medical/genetics) "czf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ freerange = 0; frequency = 1459; @@ -69357,8 +68021,7 @@ /area/hallway/primary/aft) "czh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/button/door{ dir = 2; @@ -69489,6 +68152,10 @@ "czr" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "toxins_blastdoor"; + name = "biohazard containment door" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -69692,9 +68359,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/cafeteria{ dir = 5 @@ -69751,9 +68417,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 }, @@ -69794,8 +68458,7 @@ }, /obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) @@ -69887,9 +68550,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/genetics) "cAf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/airalarm{ dir = 4; @@ -69994,9 +68656,8 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -70032,9 +68693,8 @@ /turf/open/floor/plasteel, /area/science/misc_lab/range) "cAq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -70144,9 +68804,8 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "cAy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; @@ -70227,8 +68886,7 @@ /area/science/mixing) "cAF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -70443,9 +69101,7 @@ /area/hallway/primary/aft) "cBe" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8 }, @@ -70564,8 +69220,7 @@ /area/science/research) "cBp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 4 @@ -70586,9 +69241,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -70655,16 +69308,14 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "cBz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/mixing) "cBA" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -70741,9 +69392,8 @@ /turf/open/floor/plasteel, /area/science/mixing) "cBI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -70858,9 +69508,8 @@ }, /area/medical/medbay/aft) "cBW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small, /obj/structure/extinguisher_cabinet{ @@ -70895,9 +69544,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) @@ -71251,15 +69898,11 @@ /turf/open/floor/plasteel/freezer, /area/medical/virology) "cCL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/freezer, /area/medical/virology) "cCM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/light/small{ dir = 1 }, @@ -71344,8 +69987,7 @@ /area/medical/medbay/aft) "cCT" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -71368,17 +70010,13 @@ /turf/open/floor/plasteel/black, /area/medical/morgue) "cCV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/black, /area/medical/morgue) "cCW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/medical/morgue) @@ -71531,7 +70169,6 @@ "cDj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -71652,10 +70289,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01"; - temperature = 2.7 +/turf/open/floor/plating/airless{ + luminosity = 2 }, /area/science/test_area) "cDz" = ( @@ -71823,9 +70458,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, +/turf/open/floor/plating, /area/maintenance/port/aft) "cDO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -71845,7 +70478,7 @@ req_access_txt = "5" }, /turf/open/floor/plating, -/area/medical/medbay/aft) +/area/maintenance/port/aft) "cDQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -72036,9 +70669,7 @@ /turf/closed/wall, /area/hallway/primary/aft) "cEg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -72052,8 +70683,7 @@ /area/hallway/primary/aft) "cEh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -72207,14 +70837,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -72381,9 +71005,7 @@ }, /area/medical/virology) "cEK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whitegreen/side{ dir = 1 }, @@ -72438,9 +71060,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/aft) "cEO" = ( @@ -72508,9 +71128,7 @@ icon_state = "pipe-j2"; dir = 2 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, /area/medical/morgue) "cEW" = ( @@ -72550,9 +71168,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -72615,7 +71232,6 @@ pixel_y = 5 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/structure/table, @@ -72642,9 +71258,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "cFl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 1; @@ -72882,8 +71497,7 @@ pixel_x = -4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -72973,9 +71587,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ freerange = 0; frequency = 1459; @@ -73056,9 +71668,7 @@ /turf/open/floor/plasteel/black, /area/hallway/primary/aft) "cFZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, @@ -73082,17 +71692,13 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cGc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/science/robotics/lab) "cGd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/science/robotics/lab) "cGe" = ( @@ -73369,9 +71975,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/virology) "cGA" = ( @@ -73474,9 +72078,8 @@ /turf/open/floor/plasteel/whitegreen, /area/medical/virology) "cGG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -73497,9 +72100,8 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cGH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -73563,9 +72165,7 @@ icon_state = "1-8" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitegreen/side{ dir = 4 }, @@ -73597,9 +72197,8 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) @@ -73653,9 +72252,7 @@ /turf/open/floor/plating, /area/medical/morgue) "cGU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, @@ -73669,7 +72266,6 @@ pixel_x = -22 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/r_n_d/circuit_imprinter, @@ -73778,8 +72374,7 @@ /area/science/research) "cHc" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 2 @@ -73803,8 +72398,7 @@ /area/science/server) "cHf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/closed/wall/r_wall, /area/science/server) @@ -73830,7 +72424,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/science/mixing) +/area/maintenance/starboard/aft) "cHi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -73917,8 +72511,7 @@ /obj/structure/grille, /obj/structure/window/fulltile, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plating, /area/medical/virology) @@ -73946,8 +72539,7 @@ /area/medical/virology) "cHu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel/whitegreen/side, /area/medical/virology) @@ -74028,9 +72620,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whitegreen/side{ dir = 4 }, @@ -74311,8 +72901,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 4 @@ -74389,10 +72978,9 @@ }, /area/science/server) "cIf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; +/obj/machinery/atmospherics/components/unary/vent_pump/on{ external_pressure_bound = 140; - on = 1; + name = "server vent"; pressure_checks = 0 }, /turf/open/floor/circuit{ @@ -74444,9 +73032,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -74593,9 +73179,7 @@ /area/space) "cIz" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -74619,10 +73203,7 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/aft) "cIB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/maintenance/aft) "cIC" = ( @@ -74650,9 +73231,7 @@ /turf/open/floor/plating, /area/maintenance/aft) "cIE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/escape{ dir = 2 }, @@ -74776,9 +73355,8 @@ }, /area/science/research) "cIR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 1; @@ -74799,7 +73377,6 @@ pixel_x = 29 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -74935,9 +73512,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/virology) "cJh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -75149,9 +73725,7 @@ /turf/open/floor/plasteel/vault, /area/hallway/secondary/exit/departure_lounge) "cJE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass{ name = "Departure Lounge" @@ -75345,14 +73919,10 @@ }, /area/science/server) "cJW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Server Base"; @@ -75418,9 +73988,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -75438,9 +74007,8 @@ /area/medical/virology) "cKh" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -75730,7 +74298,7 @@ req_access_txt = "29" }, /turf/open/floor/plating, -/area/science/robotics/lab) +/area/maintenance/aft) "cKI" = ( /obj/structure/sign/securearea, /turf/closed/wall/r_wall, @@ -75761,7 +74329,6 @@ dir = 4 }, /obj/machinery/door/airlock/maintenance{ - icon_state = "door_closed"; locked = 0; name = "Storage Room"; req_access_txt = "0"; @@ -75854,9 +74421,8 @@ }, /area/medical/virology) "cKW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -75867,9 +74433,8 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cKY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -75889,8 +74454,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/maintenance{ name = "Crematorium Maintenance"; - req_access_txt = "12;27"; - req_one_access_txt = "0" + req_access_txt = "0"; + req_one_access_txt = "27" }, /turf/open/floor/plating, /area/maintenance/aft) @@ -75904,8 +74469,8 @@ }, /obj/machinery/door/airlock/maintenance{ name = "Chapel Office Maintenance"; - req_access_txt = "12;22"; - req_one_access_txt = "0" + req_access_txt = "0"; + req_one_access_txt = "22" }, /turf/open/floor/plating, /area/maintenance/aft) @@ -76063,9 +74628,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cLq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -76446,8 +75010,7 @@ /area/chapel/office) "cLX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -76461,9 +75024,8 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "cLY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/chapel/office) @@ -76499,8 +75061,8 @@ "cMb" = ( /obj/machinery/door/airlock/maintenance{ name = "Chapel Maintenance"; - req_access_txt = "12"; - req_one_access_txt = "0" + req_access_txt = "0"; + req_one_access_txt = "12;22" }, /obj/structure/cable/yellow{ d1 = 1; @@ -76625,7 +75187,6 @@ /area/maintenance/starboard/aft) "cMq" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -76641,9 +75202,8 @@ /area/maintenance/solars/starboard/aft) "cMr" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating{ icon_state = "platingdmg3" @@ -76726,9 +75286,8 @@ /turf/open/floor/plasteel/vault, /area/medical/virology) "cMC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/button/crematorium{ pixel_x = -25 @@ -76989,9 +75548,8 @@ }, /area/hallway/secondary/exit/departure_lounge) "cNb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 28 @@ -77065,7 +75623,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -77270,9 +75827,8 @@ /turf/open/floor/plasteel/black, /area/chapel/main) "cNB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/chapel/main) @@ -77432,7 +75988,6 @@ }, /obj/item/weapon/restraints/handcuffs, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/item/device/radio/off, @@ -77454,9 +76009,7 @@ /area/maintenance/aft) "cNU" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -77507,11 +76060,8 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cOb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/black, @@ -77601,8 +76151,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/landmark/xmastree, /turf/open/floor/carpet, @@ -77676,8 +76225,7 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -77717,9 +76265,8 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; @@ -77794,9 +76341,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cOC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -77840,9 +76386,8 @@ pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow, /turf/open/floor/plasteel/grimy, @@ -77913,16 +76458,14 @@ }, /area/chapel/main) "cOT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cOU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -77970,8 +76513,7 @@ /area/hallway/secondary/exit/departure_lounge) "cOZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -78089,7 +76631,6 @@ pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/chapel, @@ -78118,17 +76659,15 @@ /area/chapel/main) "cPr" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/chapel{ dir = 8 }, /area/chapel/main) "cPs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -78325,7 +76864,6 @@ network = list("SS13") }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/extinguisher_cabinet{ @@ -78688,9 +77226,8 @@ }, /area/science/mixing) "cQC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light/small{ dir = 8 @@ -78784,9 +77321,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cQL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -78804,9 +77340,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cQO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -78857,9 +77392,8 @@ /turf/open/floor/plasteel/black, /area/chapel/main) "cQX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/chapel{ dir = 8 @@ -79115,16 +77649,14 @@ }, /area/science/xenobiology) "cRA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cRB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -79133,8 +77665,7 @@ /area/science/xenobiology) "cRC" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -79170,9 +77701,8 @@ /area/chapel/main) "cRG" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/button/door{ id = "chapel_shutters_parlour"; @@ -79210,9 +77740,8 @@ /turf/open/floor/plasteel/vault, /area/chapel/main) "cRK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -79268,9 +77797,7 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "cRS" = ( /turf/open/floor/plasteel/whitepurple/side{ @@ -79401,9 +77928,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "cSf" = ( /obj/structure/disposalpipe/segment, @@ -79415,9 +77940,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "cSg" = ( /obj/structure/disposalpipe/segment{ @@ -80142,8 +78665,6 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -80187,7 +78708,6 @@ dir = 4 }, /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "Test Chamber Maintenance"; req_access_txt = "47"; req_one_access_txt = "0" @@ -80306,9 +78826,7 @@ }, /area/shuttle/syndicate) "cTF" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -80327,7 +78845,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -80786,7 +79303,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -80877,22 +79393,17 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cUP" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cUQ" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) "cUR" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /obj/machinery/atmospherics/components/binary/valve/digital{ @@ -80956,8 +79467,7 @@ pixel_y = -8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/supply) @@ -81051,7 +79561,7 @@ dir = 1 }, /obj/structure/shuttle/engine/heater, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "cVh" = ( /obj/structure/closet/emcloset, @@ -81066,26 +79576,21 @@ /area/library) "cVj" = ( /obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "cVk" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, -/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst/left, +/turf/open/floor/plating/airless, /area/shuttle/supply) "cVl" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, -/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/open/floor/plating/airless, /area/shuttle/supply) "cVm" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "cVn" = ( /turf/closed/wall/mineral/titanium, @@ -81097,11 +79602,10 @@ /area/shuttle/transport) "cVr" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "cVu" = ( /obj/structure/chair, @@ -81112,13 +79616,12 @@ /area/shuttle/transport) "cVw" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "cVx" = ( /obj/machinery/door/airlock/titanium, @@ -81156,7 +79659,7 @@ frequency = 1441; id = "n2_in" }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/engine/atmos) "cVB" = ( /obj/structure/chair{ @@ -81232,15 +79735,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" - }, +/turf/open/floor/plating, /area/shuttle/auxillary_base) "cVN" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -81262,7 +79761,6 @@ /area/shuttle/abandoned) "cVQ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating, @@ -81470,7 +79968,6 @@ /area/shuttle/abandoned) "cWe" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -81480,8 +79977,7 @@ /area/shuttle/abandoned) "cWf" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -82254,6 +80750,8 @@ /area/shuttle/abandoned) "cXz" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -82311,9 +80809,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cXE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -82407,7 +80904,6 @@ /area/shuttle/abandoned) "cXQ" = ( /obj/machinery/door/airlock/titanium{ - icon_state = "door_closed"; name = "medbay"; welded = 0 }, @@ -82701,9 +81197,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cYq" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -82857,18 +81352,13 @@ /area/shuttle/abandoned) "cYD" = ( /obj/structure/table, -/obj/item/weapon/storage/backpack/duffelbag/med{ - contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); - desc = "A large duffelbag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; - name = "surgical duffelbag"; +/obj/item/weapon/storage/backpack/duffelbag/med/surgery{ pixel_y = 4 }, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cYE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow/side{ dir = 1 }, @@ -82950,7 +81440,6 @@ pixel_y = 2 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium, @@ -83508,7 +81997,6 @@ pixel_y = 3 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium/blue, @@ -83885,8 +82373,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 + dir = 6 }, /obj/machinery/light/small{ dir = 1 @@ -83904,10 +82391,10 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "daR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1; external_pressure_bound = 140; - on = 1; + name = "server vent"; pressure_checks = 0 }, /turf/open/floor/circuit{ @@ -83933,13 +82420,13 @@ }, /area/shuttle/syndicate) "daW" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "daX" = ( @@ -83968,11 +82455,8 @@ /turf/open/floor/plating, /area/engine/supermatter) "dbb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -83989,26 +82473,31 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "dbg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/engine, /area/engine/engineering) "dbh" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "dbj" = ( @@ -84285,6 +82774,8 @@ icon_state = "2-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/space, @@ -84339,6 +82830,7 @@ "dbT" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ + d2 = 4; icon_state = "0-4" }, /turf/open/space, @@ -84385,9 +82877,7 @@ /turf/open/space, /area/solar/starboard/aft) "dbX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/sink{ dir = 8; pixel_x = -12; @@ -84422,10 +82912,7 @@ dir = 2; pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/light{ dir = 4 }, @@ -84585,8 +83072,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -84639,8 +83125,7 @@ /area/science/xenobiology) "dcl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; @@ -84805,9 +83290,8 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -85097,9 +83581,8 @@ /turf/open/floor/plating, /area/science/xenobiology) "ddc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -85107,9 +83590,8 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "ddd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light{ dir = 4 @@ -85254,7 +83736,6 @@ /area/science/xenobiology) "ddp" = ( /obj/machinery/door/airlock/hatch{ - icon_state = "door_closed"; name = "Test Chamber Maintenance"; req_access_txt = "47"; req_one_access_txt = "0" @@ -85342,8 +83823,7 @@ /obj/structure/chair, /obj/item/weapon/cigbutt, /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -85369,14 +83849,10 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "ddB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Killroom Floor"; @@ -85393,7 +83869,7 @@ "ddD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8; - initialize_directions = 11 + }, /obj/machinery/deepfryer, /turf/open/floor/plasteel/cafeteria{ @@ -85406,8 +83882,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "ddF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - color = "purple"; +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 5 }, /turf/open/floor/plasteel, @@ -85431,14 +83906,13 @@ /area/shuttle/transport) "ddL" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ dir = 1; pixel_y = 1 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "ddM" = ( /obj/machinery/door/airlock/external, @@ -85546,7 +84020,9 @@ /turf/open/floor/plasteel/black, /area/engine/engineering) "dea" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + volume_rate = 200 + }, /turf/open/floor/plating/airless, /area/engine/engineering) "deb" = ( @@ -85561,8 +84037,7 @@ "ded" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating, @@ -85584,6 +84059,8 @@ "deh" = ( /obj/structure/grille, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/window/reinforced/highpressure/fulltile, @@ -85591,6 +84068,8 @@ /area/engine/engineering) "dei" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -85600,6 +84079,8 @@ /area/engine/engineering) "dej" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -85616,6 +84097,8 @@ name = "Mix to Gas" }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -85625,14 +84108,15 @@ /area/engine/engineering) "del" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/engine, /area/engine/engineering) @@ -85642,6 +84126,8 @@ name = "Gas to Mix" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ @@ -85650,19 +84136,19 @@ /turf/open/floor/engine, /area/engine/engineering) "den" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/engine, /area/engine/engineering) "dep" = ( /obj/machinery/firealarm{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -85676,7 +84162,6 @@ /turf/open/floor/plasteel/black, /area/engine/engineering) "der" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -85684,13 +84169,10 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "des" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -85702,6 +84184,9 @@ icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "det" = ( @@ -85723,31 +84208,36 @@ /turf/open/floor/engine, /area/engine/engineering) "deu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 - }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/engine, /area/engine/engineering) "dev" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/engine, /area/engine/engineering) "dew" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_engineering{ @@ -85758,21 +84248,29 @@ /area/engine/engineering) "dex" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/engineering) "dey" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, /area/engine/engineering) "deA" = ( /obj/structure/cable/white{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -85793,7 +84291,6 @@ dir = 1 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister/nitrogen, @@ -85804,23 +84301,22 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "deI" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "deJ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + filter_type = "freon"; + name = "gas filter (freon)" + }, /turf/open/floor/engine, /area/engine/engineering) "deK" = ( @@ -85835,8 +84331,7 @@ "deL" = ( /obj/structure/cable/white, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plating, /area/engine/engineering) @@ -85845,51 +84340,45 @@ /turf/closed/wall/r_wall, /area/engine/engineering) "deN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "deO" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/engine, /area/engine/engineering) "deS" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating, /area/engine/supermatter) "deT" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 1; + filter_type = "plasma" + }, /turf/open/floor/engine, /area/engine/engineering) "deU" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, /turf/open/floor/engine, /area/engine/engineering) "deV" = ( @@ -85897,7 +84386,6 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "deW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -85906,13 +84394,14 @@ dir = 4; network = list("SS13","Engine") }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine, /area/engine/engineering) "deX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/engine, /area/engine/engineering) "deY" = ( @@ -85933,8 +84422,7 @@ /area/engine/supermatter) "dfb" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/machinery/meter, /turf/closed/wall/r_wall, @@ -85944,24 +84432,19 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "dfd" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "o2"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering) "dfe" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, /turf/open/floor/engine, /area/engine/engineering) "dff" = ( @@ -85985,19 +84468,17 @@ /turf/closed/wall/r_wall, /area/engine/engineering) "dfi" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine, /area/engine/engineering) "dfj" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, @@ -86021,7 +84502,6 @@ dir = 1 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; dir = 8 }, /obj/machinery/portable_atmospherics/canister, @@ -86043,39 +84523,41 @@ /turf/open/floor/engine, /area/engine/supermatter) "dft" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "co2"; - on = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, /turf/open/floor/engine, /area/engine/engineering) "dfu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + filter_type = "n2" + }, /turf/open/floor/engine, /area/engine/engineering) "dfz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/engine, /area/engine/engineering) "dfA" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, /area/engine/engineering) "dfB" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/emitter{ @@ -86087,6 +84569,7 @@ /area/engine/engineering) "dfC" = ( /obj/structure/cable/white{ + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/emitter{ @@ -86095,16 +84578,11 @@ state = 2 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plating, /area/engine/engineering) "dfD" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -86113,6 +84591,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "dfE" = ( @@ -86124,16 +84605,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 1 }, /turf/open/floor/engine, /area/engine/engineering) "dfF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -86146,24 +84623,28 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "dfG" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "dfI" = ( @@ -86172,6 +84653,8 @@ name = "Cooling Loop Bypass" }, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line{ @@ -86183,35 +84666,44 @@ /turf/open/floor/engine, /area/engine/engineering) "dfJ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 - }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "dfM" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, /area/engine/engineering) "dfO" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, /area/engine/engineering) "dfP" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -86223,6 +84715,8 @@ /area/engine/engineering) "dfQ" = ( /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -86230,17 +84724,17 @@ dir = 1; pixel_y = -24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/engine, /area/engine/engineering) "dfR" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Cold Loop" + name = "Gas to Cold Loop"; + on = 1 }, /obj/structure/cable/white{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, @@ -86248,6 +84742,8 @@ /area/engine/engineering) "dfS" = ( /obj/structure/cable/white{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line, @@ -86260,7 +84756,8 @@ "dfU" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Cold Loop to Gas" + name = "Cold Loop to Gas"; + on = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -86272,10 +84769,7 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/engine/engineering) "dfW" = ( @@ -86293,8 +84787,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel{ dir = 1 @@ -86437,9 +84930,7 @@ /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "dgA" = ( /obj/structure/lattice/catwalk, @@ -86520,8 +85011,7 @@ /area/space) "dhe" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -86605,7 +85095,6 @@ /area/maintenance/port/fore) "dhp" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/cable/yellow{ @@ -86948,9 +85437,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ d1 = 2; d2 = 8; @@ -87057,8 +85544,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/poster/official/random{ pixel_x = 32 @@ -87272,10 +85758,7 @@ /turf/open/floor/plating, /area/maintenance/port) "diw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/firealarm{ pixel_y = 29 }, @@ -87311,9 +85794,7 @@ /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) "diA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - req_access_txt = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 }, @@ -87576,7 +86057,6 @@ /area/maintenance/starboard/aft) "diV" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -87644,10 +86124,7 @@ dir = 8; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/chapel/main) "djk" = ( @@ -87829,8 +86306,7 @@ /area/shuttle/arrival) "djM" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /obj/docking_port/mobile/arrivals, /obj/docking_port/stationary{ @@ -87841,7 +86317,7 @@ name = "arrivals"; width = 7 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "djN" = ( /obj/structure/chair{ @@ -87919,9 +86395,7 @@ /turf/open/floor/plating, /area/chapel/main) "djY" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -87986,7 +86460,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -88033,8 +86506,6 @@ "dkp" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -88055,8 +86526,6 @@ "dks" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -88065,7 +86534,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -88080,16 +86548,12 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) "dkw" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -88101,8 +86565,6 @@ "dky" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -88157,7 +86619,6 @@ /area/shuttle/syndicate) "dkI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -88182,50 +86643,36 @@ /area/shuttle/syndicate) "dkM" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkN" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkO" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkP" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkQ" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkR" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "dkS" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -88277,8 +86724,6 @@ /area/shuttle/syndicate) "dle" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -88397,7 +86842,6 @@ /area/shuttle/escape) "dlt" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium/blue, @@ -88418,7 +86862,6 @@ pixel_x = 32 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium, @@ -88438,7 +86881,6 @@ /area/shuttle/escape) "dly" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, @@ -88448,7 +86890,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/plastitanium/brig, @@ -88461,7 +86902,6 @@ /area/shuttle/labor) "dlB" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -88474,7 +86914,6 @@ /area/shuttle/supply) "dlD" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -88732,9 +87171,8 @@ /turf/closed/wall, /area/quartermaster/sorting) "dmT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -88917,9 +87355,8 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "dnP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, @@ -91657,6 +90094,61 @@ "dBt" = ( /turf/closed/wall, /area/maintenance/starboard/aft) +"dBu" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"dBv" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"dBw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"dBx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"dBy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"dBz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"dBA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"dBB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dBC" = ( +/obj/machinery/meter, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) (1,1,1) = {" aaa @@ -109270,7 +107762,7 @@ bHP bvW bLf bJs -bOj +aLd bPK bRf bSv @@ -109789,7 +108281,7 @@ alK alK alC bSs -bTu +bzC bWb dux bYL @@ -111570,7 +110062,7 @@ bkq bmi boc bqt -bsF +bsy buh bwd bwd @@ -111862,7 +110354,7 @@ cmn cns coE cpZ -crp +coB csp ctp duH @@ -121576,7 +120068,7 @@ aIR aMP aOl aPD -aQI +aSa aSa aTp aIT @@ -121648,7 +120140,7 @@ cGY cHU cIO cJN -clK +cCq cgN cMl bTs @@ -121905,7 +120397,7 @@ cGZ cHV cIP cCq -clK +cCq cLA bTs bTs @@ -123413,10 +121905,10 @@ bTS aYX bWF bYb -bZp +cmZ diA crJ -cdT +cJb ceY cgm chr @@ -125180,7 +123672,7 @@ aTt aUN aUM aYc -aZu +aTC bbe bcp bdT @@ -126438,7 +124930,7 @@ alf amv acP aoS -agq +acP arB arB arB @@ -126518,7 +125010,7 @@ cuX cvZ dvY cub -cyL +cKc czC cAJ cBE @@ -127787,16 +126279,16 @@ caQ bST bST cfg -cgr -cgr +cJa +cJa ciX -cgr +cJa clW cIk -cgr +cJa cpG -cgr -cgr +cJa +cJa ctk cuc cvb @@ -131831,8 +130323,8 @@ acP acQ acQ acQ -dnh -dnh +acP +acP dnh dnh dnh @@ -131898,7 +130390,7 @@ bZE cba ccK cef -cfs +chK czH cLC cjb @@ -133122,8 +131614,8 @@ dnh apg aqs arM -dnh -dnh +dBu +dBu avv axY axU @@ -133649,13 +132141,13 @@ aEr aFB aGY daW -deO +dBw aKF aMi cpR dfi aQd -deO +dBA aSA aTN aVf @@ -133909,7 +132401,7 @@ aGZ dlI aKG aMj -aKG +dBy dlI aQe aRv @@ -134156,7 +132648,7 @@ avz axY axY ayW -ddR +bTq aBO aCX dej @@ -134931,7 +133423,7 @@ ddU aBQ dee aEr -det +des djt daY daZ @@ -135705,13 +134197,13 @@ aOS deu deI deN -deT +deI deW aMm dfd deN dft -deN +dBB dbh dfT aVh @@ -135964,9 +134456,9 @@ deJ deO deU deX -aMm +dBx dfe -dfi +dBz dfu dfz dfJ @@ -136761,7 +135253,7 @@ aaf aaa aaf bAR -bCA +dBC bza bFZ bAR diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 009c5e3be0..c1eb2f589a 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -1,31 +1,62 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/closed/indestructible/necropolis, +/turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) "ab" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ac" = ( -/obj/structure/necropolis_gate, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, /area/lavaland/surface/outdoors) "ad" = ( /turf/closed/mineral/random/high_chance/volcanic, /area/lavaland/surface/outdoors) "ae" = ( -/turf/open/indestructible/necropolis, +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "af" = ( -/obj/effect/light_emitter, -/turf/open/indestructible/necropolis, +/obj/structure/necropolis_gate/legion_gate, +/obj/structure/necropolis_arch{ + pixel_y = -40 + }, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, /area/lavaland/surface/outdoors) "ag" = ( -/obj/structure/fluff/drake_statue, -/turf/open/indestructible/necropolis, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ah" = ( -/obj/structure/fluff/drake_statue/falling, -/turf/open/indestructible/necropolis, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ai" = ( /turf/closed/mineral/random/volcanic, @@ -171,7 +202,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -294,9 +324,7 @@ /area/lavaland/surface/outdoors/explored) "aU" = ( /obj/machinery/flasher{ - id = "Labor"; - pixel_x = 0; - pixel_y = 0 + id = "Labor" }, /turf/closed/wall{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -306,8 +334,7 @@ /obj/structure/sink/kitchen{ dir = 4; icon_state = "sink_alt"; - pixel_x = -13; - tag = "icon-sink_alt (EAST)" + pixel_x = -13 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -342,7 +369,6 @@ /obj/machinery/button/door{ id = "Labor"; name = "Labor Camp Lockdown"; - pixel_x = 0; pixel_y = 28; req_access_txt = "2" }, @@ -421,7 +447,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel{ @@ -446,7 +471,6 @@ "bm" = ( /obj/machinery/conveyor{ dir = 10; - icon_state = "conveyor0"; id = "gulag" }, /turf/open/floor/plating{ @@ -498,11 +522,9 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table, @@ -571,8 +593,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -586,8 +607,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -657,10 +677,7 @@ }, /area/mine/eva) "bH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -712,9 +729,9 @@ req_access_txt = "2" }, /obj/structure/cable{ - icon_state = "1-10"; - d1 = 2; - d2 = 4 + d1 = 1; + d2 = 10; + icon_state = "1-10" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -723,8 +740,7 @@ "bN" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 + name = "KEEP CLEAR: DOCKING AREA" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating{ @@ -763,8 +779,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -775,8 +790,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/glass_mining{ name = "Mining Station EVA"; @@ -801,8 +815,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -896,8 +909,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Labor Camp Security APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/camera{ c_tag = "Labor Camp Monitoring"; @@ -918,9 +930,9 @@ icon_state = "2-4" }, /obj/structure/cable{ - icon_state = "5-6"; - d1 = 2; - d2 = 4 + d1 = 5; + d2 = 6; + icon_state = "5-6" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -980,10 +992,8 @@ }, /area/mine/production) "cl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -996,8 +1006,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -1103,9 +1112,9 @@ d2 = 4 }, /obj/structure/cable{ - icon_state = "0-9"; - d1 = 2; - d2 = 4 + d1 = 0; + d2 = 9; + icon_state = "0-9" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -1134,8 +1143,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -1216,8 +1224,7 @@ /area/mine/production) "cP" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -1251,8 +1258,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -1296,7 +1302,6 @@ d2 = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/purple/side{ @@ -1309,8 +1314,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -1416,9 +1420,7 @@ }, /area/mine/maintenance) "dj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -1464,7 +1466,6 @@ /area/mine/living_quarters) "do" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -1479,8 +1480,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -1622,9 +1622,7 @@ }, /area/mine/living_quarters) "dD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -1667,8 +1665,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -1720,10 +1717,7 @@ }, /area/mine/production) "dM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -1794,8 +1788,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance{ name = "Mining Station Maintenance"; @@ -1804,8 +1797,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ @@ -1873,8 +1865,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -1941,8 +1932,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown{ @@ -2002,9 +1992,8 @@ }, /area/mine/production) "ep" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2028,8 +2017,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2040,8 +2028,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2054,8 +2041,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -2086,8 +2072,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -2103,8 +2088,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -2115,8 +2099,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/glass_mining{ name = "Mining Station Bridge"; @@ -2136,8 +2119,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -2151,8 +2133,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2162,8 +2143,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/glass_mining{ name = "Mining Station Bridge"; @@ -2180,8 +2160,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2294,9 +2273,8 @@ }, /area/mine/living_quarters) "eP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2395,7 +2373,6 @@ /area/mine/production) "eZ" = ( /obj/machinery/conveyor{ - icon_state = "conveyor0"; dir = 10; id = "mining_internal" }, @@ -2463,9 +2440,8 @@ }, /area/mine/living_quarters) "ff" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2543,9 +2519,8 @@ }, /area/mine/living_quarters) "fp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2577,7 +2552,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -2677,8 +2651,7 @@ pixel_y = 9 }, /obj/item/weapon/reagent_containers/food/drinks/beer{ - pixel_x = -8; - pixel_y = 0 + pixel_x = -8 }, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2696,10 +2669,8 @@ }, /area/mine/living_quarters) "fF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2741,7 +2712,6 @@ network = list("MINE") }, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/light, @@ -2761,9 +2731,7 @@ "fL" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - tag = "icon-sink (EAST)" + pixel_x = 11 }, /turf/open/floor/plasteel/bar{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -2778,7 +2746,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -2789,7 +2756,6 @@ "fN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel{ @@ -2817,7 +2783,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -2834,6 +2799,3322 @@ "fS" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored) +"fT" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"fU" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"fV" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"fW" = ( +/obj/structure/necropolis_gate/locked, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"fX" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"fY" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"fZ" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ga" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gb" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gc" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gd" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/goliath/beast, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ge" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gf" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gg" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gh" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gi" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gj" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gk" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gl" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gm" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gn" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"go" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gp" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gq" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gr" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gs" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gt" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gu" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gv" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gw" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gx" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gy" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gz" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gA" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gB" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gC" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"gD" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gE" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gH" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gI" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gJ" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gK" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gL" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gM" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gN" = ( +/mob/living/simple_animal/hostile/spawner/lavaland, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gO" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gP" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gQ" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"gR" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gS" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gT" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"gU" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gV" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gW" = ( +/mob/living/simple_animal/hostile/spawner/lavaland, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gX" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"gY" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"gZ" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"ha" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hb" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hc" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hd" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"he" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hf" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hg" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/stone_tile/center/cracked, +/mob/living/simple_animal/hostile/megafauna/legion, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"hh" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hi" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hj" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"hk" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hl" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hm" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"hn" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ho" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/closet/crate/necropolis/tendril{ + anchored = 1; + max_integrity = 500; + obj_integrity = 500 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hp" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hq" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hr" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hs" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ht" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hu" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hv" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hw" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hx" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hy" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hz" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hA" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"hB" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hC" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hD" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hE" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hF" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hH" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hI" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hJ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"hK" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hL" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hM" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hN" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/goliath/beast, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hO" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hP" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hQ" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hR" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hS" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hT" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/goliath/beast, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hU" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hV" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hW" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hX" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hY" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"hZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ia" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ib" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ic" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"id" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ie" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"if" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ig" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ih" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ii" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ij" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ik" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"il" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"im" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"in" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"io" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"ip" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"iq" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"ir" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 5 + }, +/obj/structure/stone_tile/slab/cracked{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"is" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"it" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iu" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iv" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iw" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/slab/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ix" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iy" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iz" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"iA" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iB" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iC" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iD" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iE" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"iF" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"iG" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"iH" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"iI" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iJ" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iK" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iL" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iM" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iN" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iO" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iP" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iQ" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iR" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iS" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iT" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iU" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iV" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iW" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iX" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iY" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"iZ" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ja" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jb" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jc" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jd" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"je" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jf" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jg" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jh" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ji" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jj" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jk" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jl" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jm" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jn" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jo" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jp" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jq" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jr" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"js" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jt" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ju" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jv" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jw" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jx" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jy" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jz" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jA" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/goliath/beast, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jB" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/closet/crate/necropolis/tendril{ + anchored = 1; + max_integrity = 500; + obj_integrity = 500 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jC" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jD" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jE" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jF" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jG" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jH" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jI" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jJ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jK" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jL" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jM" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jN" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"jO" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jP" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jQ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jR" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jS" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jT" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jU" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jV" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jW" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jX" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jY" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jZ" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ka" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kb" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kc" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kd" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ke" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kf" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kg" = ( +/obj/structure/fluff/drake_statue, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kh" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ki" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kj" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kk" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kl" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"km" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kn" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ko" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kp" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kq" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kr" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ks" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kt" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ku" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kv" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kw" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kx" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ky" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kz" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kA" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kB" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kC" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kD" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kE" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kH" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kI" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kJ" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"kK" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kL" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kM" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kN" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kO" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kP" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kQ" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kR" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kS" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kT" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kU" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kV" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kW" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kX" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kY" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"kZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"la" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lb" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lc" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ld" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"le" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lf" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lg" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lh" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"li" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lj" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lk" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ll" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lm" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ln" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lo" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lp" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lq" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lr" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ls" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lt" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lu" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lv" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lw" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lx" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ly" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lz" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lA" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lB" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lC" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lD" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lE" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lF" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lG" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lH" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lI" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lJ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lK" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lL" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lM" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lN" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lO" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lP" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lQ" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lR" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lS" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lT" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lU" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lV" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"lW" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lX" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lY" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"lZ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ma" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mb" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mc" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"md" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"me" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mf" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mg" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mh" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mi" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mj" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mk" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ml" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mm" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mn" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mo" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mp" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mq" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mr" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ms" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mt" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mu" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mv" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mx" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"my" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mz" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mA" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mB" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mC" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"mD" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mE" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mF" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mH" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mI" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mJ" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mK" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mL" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mM" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mN" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mO" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mP" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"mQ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mR" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mS" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mT" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mU" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mV" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mW" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mX" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mY" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"na" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nb" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nc" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nd" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ne" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nf" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ng" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) (1,1,1) = {" aa @@ -3877,7 +7158,7 @@ aa aa aa aa -ab +ix ab aj aj @@ -5161,7 +8442,7 @@ aa aa aa aa -ab +ix ab ab ab @@ -5675,7 +8956,7 @@ aa aa aa aa -ab +iX ab ab ab @@ -5932,7 +9213,7 @@ aa aa aa aa -ab +iY ab ab ab @@ -6702,7 +9983,7 @@ aa aa aa aa -ab +ir ab ab ab @@ -6959,7 +10240,7 @@ aa aa aa aa -ab +is ad ad ab @@ -7219,7 +10500,7 @@ aa aa aa aa -ab +it ab aj aj @@ -8245,7 +11526,7 @@ aa aa aa ad -ab +ix ab ab ab @@ -9017,7 +12298,7 @@ aa aa aa aa -ab +ix ab ab ab @@ -9532,7 +12813,7 @@ aa aa aa ad -ab +jq ab aj aj @@ -10043,7 +13324,7 @@ aa aa aa aa -ab +it ab ab ab @@ -11330,7 +14611,7 @@ aa aa ad ad -ab +ja ab ab ab @@ -11846,7 +15127,7 @@ aa aa aa aa -ab +it ab aj aj @@ -13131,7 +16412,7 @@ aa aa aa aa -ab +jq ab aj aj @@ -13384,7 +16665,7 @@ aa aa aa aa -ab +iu ab ab ab @@ -14413,7 +17694,7 @@ aa aa aa ad -ab +ja ab ab ab @@ -15440,7 +18721,7 @@ aa aa aa aa -ab +it ab ab ab @@ -16727,7 +20008,7 @@ aa aa ab ab -ab +jx ad ad ab @@ -17757,7 +21038,7 @@ ab ad ad ad -ab +jq ab ab aj @@ -20068,7 +23349,7 @@ aa aa ad ad -ab +jb ab ab ab @@ -21351,7 +24632,7 @@ aa aa aa aa -ab +iw ad ad ab @@ -23926,7 +27207,7 @@ ab ab ad ad -ab +ix ab aj aj @@ -24949,7 +28230,7 @@ aa aa aa aa -ab +ix ab ab ab @@ -25207,7 +28488,7 @@ aa aa aa ad -ab +jb ab ab ab @@ -26236,7 +29517,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -27006,7 +30287,7 @@ aa aa aa ad -ab +ix ab ab ab @@ -27519,7 +30800,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -29578,8 +32859,8 @@ aa ad ad ad -ab -ab +jb +jb ab ab ab @@ -30608,7 +33889,7 @@ aa aa aa aa -ab +ix ab ab ab @@ -31374,7 +34655,7 @@ aa aa aa aa -ab +ix ad ab ab @@ -32402,7 +35683,7 @@ aa aa aa aa -ab +it ab ab ab @@ -32918,9 +36199,9 @@ aa aa aa aa -ab -ab -ab +aa +it +ky ad ai ai @@ -33175,13 +36456,13 @@ aa aa aa aa -ad +aa ab ab ad ai ai -ab +jq aj aj aj @@ -33432,7 +36713,7 @@ aa aa aa aa -ad +aa ab ab ab @@ -33443,14 +36724,14 @@ aj aj aj aj -ab +kN aj aj aj aj aj aj -ab +mD ab ak ak @@ -33688,22 +36969,22 @@ aa aa aa ae -ae -ab -ab -ab +jg +gB +gB +js ab ab ab ab aj aj -ab +mu aj aj aj ab -ab +mA aj aj aj @@ -33944,12 +37225,12 @@ aa aa aa aa -ae -ae -ae -ab -ab -ab +iC +gr +gs +gr +gr +kR ab ab ab @@ -33965,16 +37246,16 @@ aj aj aj ab -ab +jQ ak ak ak ak al +iy ab ab -ab -ab +mK al ak ak @@ -34201,20 +37482,20 @@ aa aa aa aa -ae +iD ag -ae -ae -ab -ab -ab -ab +jF +gM +kB +jm +ix ab +jS aj aj aj aj -aj +lI aj aj aj @@ -34229,10 +37510,10 @@ ak ak ab ab +jx ab ab -ab -ab +mM al ak ak @@ -34458,41 +37739,41 @@ aa aa aa aa -ae -ae -ae -ae -ab -ab -ab +aa +ji +go +kg +hs +gr +ia ab ab aj +ly +aj aj aj +lw aj aj +ls aj aj -aj -aj -aj -aj -ab -ab -ab +jx +jS +iy al ak al +jq +ab +kN ab ab +jx ab ab -ab -ab -ab -ab -ab +mN al ak ak @@ -34707,25 +37988,24 @@ aj aa aa aa +mS +mV +mq +na +nd aa aa +fV +fV +gr +jH +gO +kD +ag +le aa aa -aa -aa -aa -aa -ae -ae -ae -ae -ae -ab -ab -aa -aa -aj -aj +ls aj aj aj @@ -34735,22 +38015,23 @@ aj aj aj aj +lI aa aa +jS +ab +ab +ja +ab +jx +ab +jq +ab +kN ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +mO ak ak ak @@ -34963,49 +38244,49 @@ aj (126,1,1) = {" aa aa +fV +gj +gC +mr +nb +ne aa aa +fV +fV +jk +gr +gr +gr +gr +gs aa +lp +lp +lz +lp +lF +lp +lP +lS +lp +lZ +lS +lS +lp aa -aa -aa -aa -aa -aa -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -aa -ab -ab -ab -ab -ab -ab -ab +mE +ab +ab +ab +ab +kN ab ab ab ab ab +jS ab ab al @@ -35218,53 +38499,53 @@ aj aj "} (127,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +mQ +mR +fW +mT +mW +hg +ac +nf +ac +ac ac af -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +lg +fT +kj +fT +fT +lg +is +lq +lu +lq +lD +lG +lu +lQ +lu +lW +ma +lq +mk +mn +kR +mF +ab +mG +ab +ja +ab +jx ab ab +kN ab ab +jq +jR ab ab ak @@ -35477,53 +38758,53 @@ aj (128,1,1) = {" aa aa +fV +gk +mX +mZ +nc +ng aa aa +fV +fV +jl +gr +ah +ji +gs +gy aa +lr +lv +lv +lE +lv +lE +lR +lv +lv +mb +lR +ml +lR aa -aa -aa -aa -aa -aa -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -aa -ab -ab -ab -ab -ab -ab +it +ab +ab +jx +jR ab ab ab +mL al +iY ab ab +jQ ab -ab -ab -ab +jx ak ak ak @@ -35735,43 +39016,43 @@ aj aa aa aa +mU +mY +ms +hJ +id aa aa +fV +fV +jm +jL +gM +kH +gr +ia aa aa -aa -aa -aa -aa -ae -ae -ae -ae -ae -ab -ab -aa -aa -aj -aj -aj -aj -aj -aj +lw +aj +aj +aj +lI aj aj aj aj +lw aj aa aa +jq ab ab ab +jQ ab -ab -ab -ab +mI ab ab al @@ -36000,44 +39281,44 @@ aa aa aa aa -ae -ae -ae -ae -ab -ab -ab +aa +gr +go +kl +hs +ji +lj ab ab aj aj -aj -ab -aj -aj +mv +my +lw aj aj aj +lI aj aj +kN +jq +jS +jx +jS ab ab ab ab ab ab -ab -ab -ab -ab -ab -ab +jR ak +jS +kN ab ab -ab -ab -ab +jR ak ak ak @@ -36257,43 +39538,43 @@ aa aa aa aa -ae +iD ah -ae -ae -ab -ab -ab -ab -ab -aj -aj -aj +jN +gO +kJ +gr +it ab ab aj -ab -ab aj aj +ab +jQ +aj +jx +ab +ly +aj aj ab ab ak al +ja +ab +mH ab ab -ab -ab -ab -ab +mJ al ak ak al ab ab -ab +mP al ak ak @@ -36514,12 +39795,12 @@ aa aa aa aa -ae -ae -ae -ab -ab -ab +iD +gr +gr +gr +jm +is ab ab ab @@ -36530,12 +39811,12 @@ aj aj aj ab -ab +mB aj aj aj ab -ab +ja ak ak ak @@ -36772,10 +40053,10 @@ aa aa aa ae -ae -ab -ab -ab +gr +jm +ko +iu ab ab ab @@ -36787,11 +40068,11 @@ aj aj aj aj -ab +iy aj aj aj -ab +kN ab ak ak @@ -37031,13 +40312,13 @@ aa aa aa aa -aa -aa +jq ab ab ab ab ab +kN aj aj aj @@ -37288,12 +40569,12 @@ aa aa aa aa -aa -aa -ad ab ab ab +jR +mt +ab aj aj aj @@ -37542,14 +40823,14 @@ aa aa aa aa +aa +aa +aa ab ab ab -ad -ad -ab -ab ab +jq ab aj aj @@ -37560,7 +40841,7 @@ aj aj aj aj -aj +mC ab ab ab @@ -37799,10 +41080,10 @@ aa aa aa aa +iK ab -ab -ab -ab +jQ +jq ab ab ab @@ -38581,7 +41862,7 @@ ab ab aj aj -aj +lI aj aj aj @@ -38839,7 +42120,7 @@ ab aj aj aj -ab +iy aj aj aj @@ -39599,7 +42880,7 @@ aa aa aa ad -ab +jq ab ab ab @@ -39609,9 +42890,9 @@ ab ab aj aj -aj +mw ab -aj +lI aj aj aj @@ -39855,7 +43136,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -39866,10 +43147,10 @@ ab ab aj aj -aj +mx ab ab -aj +mx aj aj aj @@ -40628,11 +43909,11 @@ aa aa ad ad -ab +jR ad ab ab -ab +ll ab ab aj @@ -41397,7 +44678,7 @@ aa aa aa aa -ab +ix ab ab ab @@ -42170,7 +45451,7 @@ aa aa ad ad -ab +jS ab ab ab @@ -42941,7 +46222,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -43967,7 +47248,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -45257,7 +48538,7 @@ ab ab ab ab -ab +jS ad ad ab @@ -45770,7 +49051,7 @@ ab ab ab ab -ab +kM ai ai ai @@ -47051,7 +50332,7 @@ aa aa aa aa -ab +it ab ab ab @@ -47569,12 +50850,12 @@ ad ad ab ab -ab +kN ai ai ai ai -ab +jq ab ab ab @@ -47825,7 +51106,7 @@ aa aa aa aa -ab +it ab ai ai @@ -48850,7 +52131,7 @@ aa aa aa aa -ab +iy ab ad ab @@ -50138,7 +53419,7 @@ aa ad ad ai -ab +jS ab ab ab @@ -51164,7 +54445,7 @@ aa aa aa ad -ab +iy ab ab ab @@ -51420,7 +54701,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -53478,7 +56759,7 @@ aa aa ad ad -ab +iy ab ad ad @@ -53739,7 +57020,7 @@ aa aa aa aa -ab +iy ab ab ab @@ -54764,7 +58045,7 @@ aa ad ad ad -ab +iy ab ab ab @@ -55275,7 +58556,7 @@ aa aa aa aa -ab +it ab ab ab @@ -55532,7 +58813,7 @@ aa aa aa aa -ab +it ab ab ab @@ -56819,7 +60100,7 @@ aa aa aa aa -ab +it ab ab ab @@ -58617,7 +61898,7 @@ aa aa aa ad -ab +js ab ab ab @@ -60415,7 +63696,7 @@ aa aa aa aa -ab +is ai ai ai @@ -62214,7 +65495,7 @@ aa aa aa aa -ab +it ab ab ab @@ -63499,8 +66780,8 @@ aa aa aa aa -ab -ab +is +js ab ad ad @@ -67615,7 +70896,7 @@ ad ad ad ad -ab +js ab ab ab @@ -67875,7 +71156,7 @@ aa aa aa aa -ab +js ab ab ab diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 4d378e7ac5..b0c5311525 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -41,11 +41,11 @@ }) "aai" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -58,7 +58,7 @@ /area/bridge) "aaj" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -74,7 +74,7 @@ /area/bridge) "aal" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -87,7 +87,7 @@ /area/bridge) "aam" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -100,11 +100,11 @@ /area/bridge) "aan" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -117,11 +117,11 @@ /area/bridge) "aao" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -134,7 +134,7 @@ /area/bridge) "aap" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, @@ -149,7 +149,6 @@ "aaq" = ( /obj/machinery/computer/med_data, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1 }, @@ -160,7 +159,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; icon_state = "darkblue"; dir = 1 }, @@ -170,7 +168,8 @@ /obj/item/weapon/wrench, /obj/item/device/multitool, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -181,7 +180,8 @@ "aat" = ( /obj/machinery/computer/communications, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -192,7 +192,8 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -206,7 +207,6 @@ pixel_y = 32 }, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1 }, @@ -214,18 +214,17 @@ "aaw" = ( /obj/machinery/computer/security/mining, /turf/open/floor/plasteel/darkpurple/side{ - tag = "icon-darkpurple (NORTH)"; icon_state = "darkpurple"; dir = 1 }, /area/bridge) "aax" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -249,7 +248,6 @@ "aaz" = ( /obj/machinery/computer/card, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; icon_state = "darkred"; dir = 9 }, @@ -274,7 +272,8 @@ "aaB" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkred/side{ @@ -305,7 +304,8 @@ /obj/item/weapon/book/manual/wiki/security_space_law, /obj/item/device/taperecorder, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -319,7 +319,8 @@ dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -331,7 +332,8 @@ /obj/item/weapon/folder/blue, /obj/item/weapon/pen, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -359,11 +361,11 @@ "aaJ" = ( /obj/machinery/computer/station_alert, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1 }, @@ -375,11 +377,9 @@ department = "Bridge"; departmentType = 5; name = "Bridge RC"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1 }, @@ -387,7 +387,6 @@ "aaL" = ( /obj/machinery/computer/monitor, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTHEAST)"; icon_state = "darkyellow"; dir = 5 }, @@ -399,12 +398,9 @@ /obj/item/device/assembly/flash/handheld, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/machinery/camera{ @@ -432,7 +428,8 @@ dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -444,12 +441,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-21"; layer = 4.1; @@ -466,7 +458,8 @@ /area/bridge) "aaR" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -476,8 +469,6 @@ /area/bridge) "aaS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -502,8 +493,7 @@ /obj/item/weapon/storage/secure/briefcase, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/camera{ c_tag = "Bridge - Fore Starboard"; @@ -528,11 +518,13 @@ }) "aaX" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -542,7 +534,8 @@ /area/bridge) "aaY" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -554,11 +547,13 @@ /area/bridge) "aaZ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/power/apc{ @@ -568,9 +563,7 @@ }, /obj/structure/cable/white, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -578,7 +571,8 @@ /area/bridge) "aba" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -588,12 +582,9 @@ /area/bridge) "abb" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -602,17 +593,17 @@ /area/bridge) "abc" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -620,21 +611,22 @@ /area/bridge) "abd" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -642,17 +634,15 @@ /area/bridge) "abe" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -660,20 +650,20 @@ /area/bridge) "abf" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/fireaxecabinet{ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -681,13 +671,12 @@ /area/bridge) "abg" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ @@ -696,16 +685,16 @@ /area/bridge) "abh" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -735,20 +724,17 @@ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; name = "WARNING: PRESSURIZED DOORS"; - pixel_x = -32; - pixel_y = 0; - tag = "icon-doors" + pixel_x = -32 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "abl" = ( /obj/machinery/door/firedoor, @@ -761,9 +747,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "abm" = ( /obj/machinery/status_display, @@ -771,7 +755,7 @@ /area/bridge) "abn" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/modular_computer/console/preset/command, @@ -786,7 +770,8 @@ /area/bridge) "abp" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -804,9 +789,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "abr" = ( /obj/machinery/door/firedoor, @@ -817,23 +800,20 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; name = "WARNING: PRESSURIZED DOORS"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-doors" + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "abs" = ( /turf/closed/wall/r_wall, @@ -856,7 +836,7 @@ /area/crew_quarters/heads/captain/private) "abx" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -870,7 +850,8 @@ "aby" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -895,8 +876,7 @@ /obj/item/weapon/pen, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/light{ dir = 1 @@ -909,11 +889,13 @@ /obj/structure/table/wood, /obj/item/weapon/paper_bin, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -922,18 +904,21 @@ /area/bridge) "abD" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault, /area/bridge) "abE" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/holopad, @@ -944,11 +929,13 @@ /obj/structure/table/wood, /obj/item/weapon/lighter, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -964,7 +951,6 @@ /obj/item/weapon/storage/lockbox/medal, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ @@ -986,7 +972,8 @@ "abI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ @@ -998,7 +985,7 @@ /area/bridge) "abJ" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -1017,10 +1004,7 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "abL" = ( @@ -1113,10 +1097,7 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/security/detectives_office) "abW" = ( @@ -1142,10 +1123,7 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/captain/private) "abY" = ( @@ -1161,8 +1139,6 @@ req_access_txt = "20" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/grimy, @@ -1170,7 +1146,8 @@ "aca" = ( /obj/structure/dresser, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1181,7 +1158,8 @@ "acb" = ( /obj/structure/bed, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1215,20 +1193,17 @@ /obj/item/weapon/pinpointer, /obj/item/weapon/disk/nuclear, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "acd" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault, @@ -1242,7 +1217,7 @@ /area/bridge) "acf" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -1263,12 +1238,11 @@ /area/bridge) "ach" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -1289,18 +1263,14 @@ /area/bridge) "ack" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/grimy, /area/bridge) "acl" = ( @@ -1314,8 +1284,6 @@ /area/bridge) "acm" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault, @@ -1323,7 +1291,8 @@ "acn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault, @@ -1335,8 +1304,6 @@ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/item/toy/figure/hop{ @@ -1356,13 +1323,12 @@ "acp" = ( /obj/structure/bed, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/item/weapon/bedsheet/hop, /obj/effect/landmark/start/head_of_personnel, @@ -1371,12 +1337,11 @@ "acq" = ( /obj/structure/dresser, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/wood, @@ -1389,10 +1354,7 @@ /obj/structure/sign/vacuum{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/weapon/storage/secure/safe{ pixel_x = 32; pixel_y = 24 @@ -1419,8 +1381,6 @@ /area/crew_quarters/heads/hop) "acu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/delivery, @@ -1458,9 +1418,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /obj/effect/turf_decal/delivery, @@ -1486,9 +1445,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn (NORTHWEST)" - }, +/turf/open/floor/plasteel, /area/shuttle/supply) "acA" = ( /obj/effect/turf_decal/stripes/line{ @@ -1507,9 +1464,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn (NORTHEAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/supply) "acD" = ( /obj/item/weapon/pickaxe/emergency, @@ -1563,10 +1518,7 @@ /area/security/detectives_office) "acJ" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/start/detective, /obj/item/weapon/bedsheet/brown, /turf/open/floor/wood, @@ -1574,18 +1526,12 @@ "acK" = ( /obj/structure/closet/crate/bin, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/light_switch{ pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/security/detectives_office) "acL" = ( @@ -1622,7 +1568,6 @@ }, /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1648,24 +1593,22 @@ /area/crew_quarters/heads/captain/private) "acR" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "acS" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/grimy, @@ -1673,7 +1616,6 @@ "acT" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/holopad, @@ -1682,17 +1624,17 @@ /area/crew_quarters/heads/captain/private) "acU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -1701,7 +1643,8 @@ /area/bridge) "acV" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -1711,11 +1654,13 @@ /area/bridge) "acW" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/command{ @@ -1733,7 +1678,8 @@ /area/bridge) "acX" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1745,18 +1691,19 @@ /area/bridge) "acY" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -1806,23 +1753,27 @@ /area/bridge) "adc" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/bridge) "add" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/command{ @@ -1841,7 +1792,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -1850,16 +1802,16 @@ /area/bridge) "adf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -1870,11 +1822,11 @@ /obj/structure/closet/secure_closet/hop, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -1884,50 +1836,53 @@ /area/crew_quarters/heads/hop) "adh" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "adi" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "adj" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -1949,12 +1904,9 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; pixel_x = 12 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/white, @@ -1981,8 +1933,6 @@ /obj/machinery/status_display{ density = 0; name = "cargo display"; - pixel_x = 0; - pixel_y = 0; supply_display = 1 }, /turf/closed/wall, @@ -2064,8 +2014,6 @@ /area/security/detectives_office) "adB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/wood, @@ -2093,22 +2041,16 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; pixel_x = 12 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/white, /area/security/detectives_office) "adF" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/hallway/primary/central{ @@ -2125,7 +2067,6 @@ /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = -26; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -2138,13 +2079,12 @@ "adI" = ( /obj/structure/filingcabinet, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Bridge - Captain's Quarters"; @@ -2155,23 +2095,25 @@ /area/crew_quarters/heads/captain/private) "adJ" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Captain's Quarters"; @@ -2183,15 +2125,18 @@ /area/crew_quarters/heads/captain/private) "adK" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2202,7 +2147,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/sign/goldenplaque{ @@ -2216,7 +2162,8 @@ "adM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -2227,8 +2174,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -2246,7 +2192,7 @@ name = "AI Core Shutters" }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/cable/white, @@ -2263,17 +2209,15 @@ name = "AI Core Shutters" }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "adS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/sign/nanotrasen{ pixel_x = -32 @@ -2284,12 +2228,11 @@ /area/bridge) "adT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -2309,7 +2252,8 @@ "adV" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2322,9 +2266,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/hop) "adW" = ( /obj/structure/cable/white, @@ -2349,8 +2291,7 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/machinery/camera{ c_tag = "Cargo Bay North" @@ -2421,9 +2362,7 @@ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 32; - tag = "icon-doors" + pixel_y = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -2462,7 +2401,8 @@ id = "cargounload" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor{ @@ -2559,9 +2499,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/detectives_office) "aes" = ( /obj/structure/grille, @@ -2597,16 +2535,15 @@ req_access_txt = "20" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/captain/private) "aex" = ( /obj/structure/cable/white, @@ -2652,7 +2589,8 @@ /area/ai_monitored/turret_protected/ai) "aeA" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault, @@ -2687,7 +2625,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = -27 }, /obj/item/device/radio/intercom{ @@ -2715,7 +2652,8 @@ }, /obj/effect/landmark/start/ai, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/ai_slipper{ @@ -2739,7 +2677,8 @@ req_access_txt = "16" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -2748,11 +2687,13 @@ /area/ai_monitored/turret_protected/ai) "aeE" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/vault, @@ -2790,12 +2731,11 @@ /area/bridge) "aeH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -2809,7 +2749,7 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, @@ -2829,7 +2769,8 @@ /area/crew_quarters/heads/hop) "aeK" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2842,10 +2783,8 @@ /area/crew_quarters/heads/hop) "aeL" = ( /obj/machinery/photocopier, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -2866,14 +2805,13 @@ }, /obj/item/weapon/storage/box/ids, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ cell_type = 5000; dir = 1; name = "Head of Personnel Quarter's APC"; - pixel_x = 0; pixel_y = 25 }, /turf/open/floor/plasteel/vault{ @@ -2904,7 +2842,6 @@ density = 0; name = "cargo display"; pixel_x = -32; - pixel_y = 0; supply_display = 1 }, /obj/effect/decal/cleanable/dirt, @@ -2932,7 +2869,6 @@ "aeU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -2960,13 +2896,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aeY" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3000,9 +2935,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/ruin/unpowered{ name = "Asteroid" }) @@ -3024,12 +2957,11 @@ /area/security/detectives_office) "afe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/wood, @@ -3040,7 +2972,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, @@ -3049,12 +2982,12 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/wood, @@ -3064,11 +2997,10 @@ cell_type = 5000; dir = 1; name = "Detective's Office APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/wood, @@ -3103,22 +3035,20 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; - pixel_y = 12; - tag = "icon-plant-15" + pixel_y = 12 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afn" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3139,8 +3069,6 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -3148,7 +3076,6 @@ dir = 8 }, /turf/open/floor/wood{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/crew_quarters/heads/captain/private) @@ -3157,9 +3084,7 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /obj/machinery/camera{ c_tag = "Bridge - Port Access"; @@ -3188,8 +3113,6 @@ dir = 4; name = "ai camera"; network = list("Sat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/floor/plasteel/vault{ @@ -3198,7 +3121,8 @@ /area/ai_monitored/turret_protected/ai) "afr" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/circuit/green, @@ -3226,14 +3150,11 @@ /area/ai_monitored/turret_protected/ai) "aft" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/camera{ c_tag = "Bridge - Starboard Access"; @@ -3250,11 +3171,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -3264,11 +3187,13 @@ "afv" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/command{ @@ -3286,7 +3211,8 @@ /area/crew_quarters/heads/hop) "afw" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3298,15 +3224,18 @@ /area/crew_quarters/heads/hop) "afx" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -3316,11 +3245,13 @@ /area/crew_quarters/heads/hop) "afy" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/holopad, @@ -3333,7 +3264,8 @@ /area/crew_quarters/heads/hop) "afz" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/requests_console{ @@ -3344,9 +3276,8 @@ pixel_x = 64; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -3376,11 +3307,9 @@ "afC" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -3397,12 +3326,7 @@ /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "afG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "afH" = ( @@ -3411,7 +3335,6 @@ id = "cargounload" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -3439,8 +3362,7 @@ "afJ" = ( /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/cable/white, /obj/structure/grille, @@ -3465,7 +3387,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -3506,8 +3427,7 @@ /obj/item/device/camera/detective, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3516,7 +3436,8 @@ "afQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -3543,8 +3464,7 @@ department = "Detective's Office"; departmentType = 0; name = "Detective RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/camera{ c_tag = "Detective's Office - Desk"; @@ -3558,7 +3478,8 @@ /area/security/detectives_office) "afV" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -3576,7 +3497,8 @@ req_access_txt = "20" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -3586,7 +3508,8 @@ /area/crew_quarters/heads/captain/private) "afX" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -3598,11 +3521,11 @@ department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/camera{ @@ -3624,7 +3547,8 @@ /area/crew_quarters/heads/captain/private) "agb" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3632,8 +3556,6 @@ /area/crew_quarters/heads/captain/private) "agc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/wood, @@ -3645,7 +3567,7 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/door/poddoor/preopen{ @@ -3660,7 +3582,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -3669,8 +3592,6 @@ /area/bridge) "agf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -3680,7 +3601,6 @@ "agg" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light{ @@ -3716,7 +3636,7 @@ "agi" = ( /obj/machinery/doomsday_device, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -3754,7 +3674,8 @@ "agm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -3771,7 +3692,6 @@ /obj/structure/table/wood, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/extinguisher_cabinet{ @@ -3789,7 +3709,8 @@ "agp" = ( /obj/machinery/pdapainter, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -3809,7 +3730,8 @@ /obj/item/weapon/pen, /obj/item/weapon/stamp/hop, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ @@ -3874,15 +3796,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, /area/quartermaster/storage) "agw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) @@ -3911,7 +3831,6 @@ dir = 10 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -3934,9 +3853,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "agD" = ( /obj/docking_port/mobile/supply{ @@ -3990,11 +3907,9 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -4005,7 +3920,8 @@ /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -4015,8 +3931,6 @@ /obj/item/weapon/folder/red, /obj/item/weapon/hand_labeler, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -4026,17 +3940,14 @@ dir = 8 }, /obj/effect/landmark/start/detective, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "agM" = ( /obj/machinery/computer/secure_data, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/status_display{ @@ -4046,7 +3957,8 @@ /area/security/detectives_office) "agN" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -4067,7 +3979,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/delivery, @@ -4075,15 +3987,16 @@ /area/crew_quarters/heads/captain/private) "agP" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, @@ -4095,12 +4008,11 @@ icon_state = "comfychair" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/landmark/start/captain, @@ -4109,14 +4021,13 @@ "agR" = ( /obj/structure/table/wood, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/clipboard, /obj/item/weapon/folder/blue, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/item/weapon/melee/chainofcommand, @@ -4125,15 +4036,16 @@ /area/crew_quarters/heads/captain/private) "agS" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -4141,12 +4053,11 @@ /area/crew_quarters/heads/captain/private) "agT" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/wood, @@ -4159,20 +4070,21 @@ req_access_txt = "20" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -4183,11 +4095,13 @@ "agV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -4196,9 +4110,8 @@ /area/bridge) "agW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -4209,8 +4122,7 @@ /obj/item/weapon/aiModule/reset, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -4218,40 +4130,40 @@ /area/ai_monitored/turret_protected/ai) "agY" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "agZ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/ai_monitored/turret_protected/ai) "aha" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/ai_slipper{ uses = 10 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/landmark/start/cyborg, @@ -4261,19 +4173,19 @@ /area/ai_monitored/turret_protected/ai) "ahb" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/ai_monitored/turret_protected/ai) "ahc" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/circuit/green, @@ -4286,16 +4198,13 @@ frequency = 1447; listening = 0; name = "AI Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/camera{ c_tag = "AI Core - Starboard"; dir = 8; name = "ai camera"; network = list("Sat"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/floor/plasteel/vault{ @@ -4304,8 +4213,6 @@ /area/ai_monitored/turret_protected/ai) "ahe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -4314,12 +4221,12 @@ /area/bridge) "ahf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -4371,8 +4278,7 @@ "ahk" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/light_switch{ pixel_x = -24; @@ -4478,7 +4384,8 @@ id = "cargoload" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -4519,10 +4426,8 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -4558,10 +4463,8 @@ dir = 4; pixel_x = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -4596,11 +4499,11 @@ /obj/machinery/photocopier, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault, @@ -4608,15 +4511,18 @@ "ahC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/grimy, @@ -4627,7 +4533,8 @@ /obj/item/weapon/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, @@ -4649,7 +4556,8 @@ pixel_y = -26 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, @@ -4669,7 +4577,8 @@ /area/security/detectives_office) "ahG" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -4687,9 +4596,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/heads/captain/private) "ahI" = ( /obj/machinery/computer/communications, @@ -4717,7 +4624,6 @@ /obj/machinery/button/door{ id = "captainhall"; name = "Captain's Hall Shutters Control"; - pixel_x = 0; pixel_y = -24; req_access_txt = "20" }, @@ -4725,7 +4631,6 @@ /area/crew_quarters/heads/captain/private) "ahL" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /obj/machinery/newscaster{ @@ -4736,7 +4641,6 @@ "ahM" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/table/wood, @@ -4757,7 +4661,6 @@ "ahO" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4785,7 +4688,8 @@ /area/ai_monitored/turret_protected/ai) "ahS" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -4799,7 +4703,6 @@ "ahU" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/circuit/green, @@ -4828,12 +4731,12 @@ "ahX" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -4890,9 +4793,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aie" = ( /obj/machinery/conveyor{ @@ -4980,9 +4881,7 @@ /obj/machinery/firealarm{ pixel_y = 26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Armoury - Internal"; network = list("Labor") @@ -4998,9 +4897,7 @@ pixel_x = -3; pixel_y = 3 }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_y = 0 - }, +/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = 3; pixel_y = -3 @@ -5031,7 +4928,7 @@ /area/security/brig) "aiq" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -5041,7 +4938,8 @@ "air" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -5052,18 +4950,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/brig) "ais" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/glass_security{ @@ -5074,13 +4972,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/brig) "ait" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -5107,15 +5003,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/detectives_office) "aiw" = ( /obj/structure/cable/white, @@ -5135,16 +5030,15 @@ req_access_txt = "12" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -5157,15 +5051,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "aiz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5191,11 +5084,11 @@ frequency = 1447; listening = 0; name = "AI Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -5215,15 +5108,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/bridge) "aiD" = ( /obj/machinery/door/poddoor/shutters/preopen{ @@ -5231,7 +5123,6 @@ name = "Queue Shutters" }, /turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (NORTH)"; icon_state = "loadingarea"; dir = 1 }, @@ -5240,7 +5131,7 @@ }) "aiE" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -5273,9 +5164,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -5283,11 +5172,9 @@ /obj/structure/filingcabinet/filingcabinet, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; icon_state = "brown"; dir = 9 }, @@ -5295,7 +5182,6 @@ "aiJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -5305,7 +5191,6 @@ icon_state = "plant-22" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -5319,7 +5204,6 @@ dir = 1 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -5343,7 +5227,6 @@ /obj/item/weapon/pen/red, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -5355,7 +5238,6 @@ }, /obj/item/weapon/paper_bin, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -5377,7 +5259,6 @@ }, /obj/item/weapon/gun/energy/e_gun/advtaser, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/status_display{ @@ -5399,12 +5280,7 @@ /obj/item/weapon/gun/energy/ionrifle, /obj/item/clothing/suit/armor/laserproof, /obj/item/weapon/gun/energy/temperature/security, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -5412,8 +5288,7 @@ "aiU" = ( /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -5433,12 +5308,11 @@ /area/security/brig) "aiX" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -5466,7 +5340,7 @@ /area/security/brig) "aiZ" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/structure/grille, @@ -5501,13 +5375,12 @@ }, /obj/structure/chair, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Security - Cell 1"; @@ -5519,7 +5392,7 @@ /area/security/brig) "ajc" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -5550,7 +5423,8 @@ }) "aje" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5575,9 +5449,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/corner{ dir = 1 }, @@ -5596,8 +5468,6 @@ }) "aji" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -5608,7 +5478,8 @@ }) "ajj" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5640,7 +5511,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/neutral/corner{ @@ -5682,7 +5552,8 @@ }) "ajo" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5690,7 +5561,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -5700,7 +5570,6 @@ "ajp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -5748,7 +5617,8 @@ }) "ajt" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5792,7 +5662,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/neutral/corner{ @@ -5830,7 +5699,8 @@ }) "ajz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -5845,9 +5715,7 @@ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; name = "WARNING: PRESSURIZED DOORS"; - pixel_x = 0; - pixel_y = 32; - tag = "icon-doors" + pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -5872,7 +5740,8 @@ }) "ajC" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5886,12 +5755,11 @@ }) "ajD" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/blue/corner{ @@ -5912,8 +5780,6 @@ }) "ajF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -5933,8 +5799,6 @@ "ajG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -5958,7 +5822,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -5977,8 +5840,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/landmark/start/cargo_technician, @@ -5991,11 +5852,9 @@ department = "Cargo Office"; departmentType = 0; name = "Cargo Office RC"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -6006,7 +5865,7 @@ }, /obj/structure/shuttle/engine/heater, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "ajO" = ( /obj/structure/window/reinforced{ @@ -6015,7 +5874,7 @@ /obj/structure/shuttle/engine/heater, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "ajP" = ( /obj/structure/barricade/wooden, @@ -6043,8 +5902,7 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -6052,7 +5910,8 @@ /area/security/brig) "ajS" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -6091,7 +5950,8 @@ pixel_y = -3 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6102,7 +5962,7 @@ "ajU" = ( /obj/structure/cable/white, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -6122,8 +5982,6 @@ /area/security/brig) "ajW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -6132,11 +5990,13 @@ /area/security/brig) "ajX" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6149,7 +6009,8 @@ /area/security/brig) "ajY" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6161,15 +6022,18 @@ /area/security/brig) "ajZ" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -6186,23 +6050,24 @@ /area/security/brig) "aka" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/corner, /area/security/brig) "akb" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/red/side{ @@ -6220,16 +6085,16 @@ "akd" = ( /obj/effect/landmark/lightsout, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner, @@ -6238,7 +6103,8 @@ }) "ake" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6253,7 +6119,8 @@ }) "akf" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -6267,11 +6134,11 @@ }) "akg" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -6283,7 +6150,8 @@ }) "akh" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6299,11 +6167,13 @@ }) "aki" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -6316,7 +6186,8 @@ }) "akj" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6324,7 +6195,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/neutral/corner{ @@ -6342,7 +6212,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -6354,11 +6225,13 @@ }) "akl" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6371,7 +6244,8 @@ }) "akm" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6385,11 +6259,13 @@ }) "akn" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6402,16 +6278,16 @@ }) "ako" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -6421,11 +6297,13 @@ }) "akp" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6440,7 +6318,8 @@ }) "akq" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6456,20 +6335,24 @@ }) "akr" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -6481,11 +6364,13 @@ }) "aks" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6500,14 +6385,16 @@ }) "akt" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel{ @@ -6518,7 +6405,8 @@ }) "aku" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6533,7 +6421,8 @@ }) "akv" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6541,7 +6430,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel{ @@ -6552,11 +6442,13 @@ }) "akw" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6564,7 +6456,8 @@ }, /obj/effect/landmark/lightsout, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel{ @@ -6575,7 +6468,8 @@ }) "akx" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -6587,12 +6481,11 @@ }) "aky" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel{ @@ -6603,27 +6496,29 @@ }) "akz" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel{ desc = ""; - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central{ name = "Primary Hallway" }) "akA" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6635,11 +6530,13 @@ }) "akB" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -6649,22 +6546,26 @@ }) "akC" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, @@ -6673,11 +6574,13 @@ }) "akD" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6690,20 +6593,21 @@ }) "akE" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -6713,15 +6617,18 @@ }) "akF" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6734,11 +6641,13 @@ }) "akG" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6752,14 +6661,16 @@ }) "akH" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ @@ -6777,7 +6688,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -6790,7 +6702,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -6802,12 +6715,11 @@ }) "akK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -6818,22 +6730,18 @@ "akL" = ( /obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, /area/quartermaster/storage) "akM" = ( /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/quartermaster/storage) "akN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -6841,7 +6749,6 @@ "akO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -6849,36 +6756,31 @@ "akP" = ( /obj/machinery/photocopier, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, /area/quartermaster/storage) "akQ" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "akR" = ( /obj/structure/shuttle/engine/propulsion, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "akS" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/supply) "akT" = ( /obj/structure/sign/electricshock{ pixel_x = -32 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -6888,15 +6790,18 @@ "akU" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/airlock/security{ @@ -6907,13 +6812,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/brig) "akV" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -6924,14 +6827,12 @@ "akW" = ( /obj/vehicle/secway, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/power/apc{ dir = 8; name = "Security Office APC"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -6939,21 +6840,18 @@ /area/security/brig) "akX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/corner, /area/security/brig) "akY" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side{ @@ -6970,8 +6868,7 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/red/corner, /area/security/brig) @@ -6991,7 +6888,8 @@ }) "alc" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -7016,9 +6914,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -7046,15 +6942,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/teleporter) "alj" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/command{ @@ -7064,9 +6959,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/teleporter) "alk" = ( /obj/structure/cable/white, @@ -7100,7 +6993,8 @@ dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -7110,10 +7004,8 @@ name = "Primary Hallway" }) "aln" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel{ icon_state = "L4" @@ -7124,7 +7016,8 @@ "alo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -7149,9 +7042,8 @@ name = "Primary Hallway" }) "alr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ icon_state = "L12" @@ -7164,11 +7056,11 @@ icon_state = "plant-22" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -7182,17 +7074,14 @@ desc = "A direction sign, pointing out which way the Supply department is."; dir = 4; icon_state = "direction_supply"; - name = "supply department"; - tag = "icon-direction_supply" + name = "supply department" }, /obj/structure/sign/directions/engineering{ desc = "A direction sign, pointing out which way the Command department is."; dir = 1; icon_state = "direction_bridge"; name = "command department"; - pixel_x = 0; - pixel_y = 8; - tag = "icon-direction_bridge" + pixel_y = 8 }, /obj/structure/sign/directions/science{ pixel_y = -8 @@ -7216,7 +7105,8 @@ }) "alw" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -7229,9 +7119,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -7245,9 +7133,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -7262,12 +7148,11 @@ "alz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -7277,10 +7162,7 @@ /obj/structure/table/reinforced, /obj/structure/noticeboard{ dir = 4; - icon_state = "nboard00"; - pixel_x = -32; - pixel_y = 0; - tag = "icon-nboard00 (EAST)" + pixel_x = -32 }, /obj/item/weapon/clipboard, /obj/item/weapon/folder/yellow, @@ -7296,7 +7178,6 @@ network = list("SS13") }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -7308,17 +7189,13 @@ /area/quartermaster/storage) "alC" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/quartermaster/storage) "alD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -7326,7 +7203,8 @@ "alE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/landmark/lightsout, @@ -7337,15 +7215,13 @@ /obj/machinery/power/apc{ dir = 4; name = "Cargo Bay APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -7387,12 +7263,11 @@ /area/security/brig) "alI" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/side{ @@ -7401,14 +7276,10 @@ /area/security/brig) "alJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -7448,7 +7319,8 @@ /area/security/brig) "alN" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -7489,13 +7361,12 @@ }, /obj/structure/chair, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Security - Cell 2"; @@ -7507,8 +7378,6 @@ /area/security/brig) "alR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner{ @@ -7519,17 +7388,16 @@ }) "alS" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -7565,10 +7433,8 @@ /obj/structure/urinal{ pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -7601,7 +7467,6 @@ id = "teleportershutters"; name = "Teleporter Shutters"; pixel_x = -26; - pixel_y = 0; req_access_txt = "19" }, /obj/effect/turf_decal/delivery, @@ -7609,10 +7474,8 @@ /area/teleporter) "alZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -7627,11 +7490,13 @@ /area/teleporter) "amb" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -7643,7 +7508,8 @@ "amc" = ( /obj/machinery/shieldwallgen, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -7654,7 +7520,7 @@ /area/teleporter) "amd" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -7663,7 +7529,7 @@ /area/teleporter) "ame" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -7675,11 +7541,13 @@ "amf" = ( /obj/structure/closet/crate/bin, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -7698,7 +7566,8 @@ "amh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -7726,11 +7595,13 @@ "aml" = ( /obj/structure/closet/emcloset, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -7740,7 +7611,7 @@ }) "amm" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -7751,7 +7622,7 @@ }) "amn" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -7774,7 +7645,8 @@ /obj/item/weapon/stock_parts/cell/high, /obj/item/weapon/stock_parts/cell/high, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -7786,11 +7658,13 @@ "amp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -7842,15 +7716,12 @@ }) "amt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -7860,17 +7731,14 @@ }) "amu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -7880,7 +7748,6 @@ /obj/machinery/computer/stockexchange, /obj/structure/table/reinforced, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10 }, @@ -7897,7 +7764,6 @@ "amy" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -7914,7 +7780,8 @@ "amA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown, @@ -7927,14 +7794,12 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/item/stack/packageWrap, /obj/item/stack/cable_coil/white, /obj/item/weapon/hand_labeler, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6 }, @@ -7985,8 +7850,7 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/camera{ c_tag = "Security - Office"; @@ -8000,7 +7864,8 @@ "amI" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8026,19 +7891,19 @@ /area/security/brig) "amL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/corner, /area/security/brig) "amM" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8051,15 +7916,18 @@ /area/security/brig) "amN" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/window/brigdoor/westright{ @@ -8081,7 +7949,6 @@ }, /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/effect/turf_decal/bot, @@ -8092,13 +7959,11 @@ "amP" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/side, /area/hallway/primary/central{ @@ -8113,7 +7978,6 @@ "amR" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light/small, @@ -8139,8 +8003,7 @@ /obj/item/weapon/hand_labeler, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/camera{ c_tag = "Bridge - Teleporter"; @@ -8169,16 +8032,15 @@ /area/teleporter) "amW" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/teleporter) "amX" = ( /obj/machinery/teleport/hub, @@ -8196,7 +8058,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/delivery, @@ -8207,7 +8070,8 @@ "ana" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -8234,7 +8098,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/delivery, @@ -8253,21 +8118,19 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) "ang" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8293,9 +8156,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -8305,16 +8166,12 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (EAST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -8324,9 +8181,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8334,15 +8189,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8373,15 +8227,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "anp" = ( /obj/structure/sign/nosmoking_1, @@ -8391,7 +8244,6 @@ /obj/structure/closet/secure_closet/miner, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /obj/effect/decal/cleanable/dirt, @@ -8411,8 +8263,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Mining Dock APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/extinguisher_cabinet{ pixel_y = 26 @@ -8420,7 +8271,7 @@ /obj/structure/closet/secure_closet/miner, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line{ @@ -8443,9 +8294,7 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn (NORTHWEST)" - }, +/turf/open/floor/plasteel, /area/shuttle/mining) "anv" = ( /obj/machinery/computer/shuttle/mining, @@ -8479,15 +8328,13 @@ /obj/item/weapon/storage/box/firingpins, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/requests_console{ department = "Security"; departmentType = 0; name = "Security RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/item/weapon/gun/energy/e_gun/dragnet, /obj/item/weapon/gun/energy/e_gun/dragnet, @@ -8497,7 +8344,8 @@ /area/security/brig) "anz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8569,7 +8417,8 @@ /area/security/brig) "anE" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8602,8 +8451,7 @@ dir = 1; icon_state = "direction_bridge"; name = "command department"; - pixel_y = 8; - tag = "icon-direction_bridge" + pixel_y = 8 }, /turf/closed/wall, /area/security/brig) @@ -8613,25 +8461,22 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) "anI" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8642,9 +8487,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8656,9 +8499,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8667,7 +8508,6 @@ dir = 4; name = "RCD Storage"; pixel_x = 1; - pixel_y = 0; req_access_txt = "19" }, /obj/structure/window/reinforced, @@ -8695,7 +8535,8 @@ "anO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -8730,15 +8571,14 @@ name = "Atrium" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8750,9 +8590,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8765,9 +8603,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -8779,7 +8615,6 @@ dir = 4; name = "RCD Storage"; pixel_x = 1; - pixel_y = 0; req_access_txt = "19" }, /obj/structure/window/reinforced, @@ -8791,8 +8626,7 @@ dir = 8 }, /obj/machinery/status_display{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -8802,7 +8636,8 @@ }) "anV" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -8824,8 +8659,7 @@ department = "E.V.A. Storage"; departmentType = 0; name = "E.V.A. RC"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8860,17 +8694,14 @@ }) "aoa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -8893,8 +8724,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (NORTH)"; - icon_state = "browncorner"; dir = 1 }, /area/hallway/primary/central{ @@ -8904,15 +8733,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (NORTH)"; - icon_state = "browncorner"; dir = 1 }, /area/hallway/primary/central{ @@ -8927,7 +8749,6 @@ dir = 2 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -8940,8 +8761,6 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -8950,12 +8769,11 @@ "aog" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (EAST)"; - icon_state = "browncorner"; dir = 4 }, /area/hallway/primary/central{ @@ -8995,12 +8813,10 @@ /area/quartermaster/miningdock) "aoj" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTHWEST)"; icon_state = "purple"; dir = 9 }, @@ -9008,12 +8824,12 @@ "aok" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/start/shaft_miner, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -9079,8 +8895,7 @@ /obj/structure/table/reinforced, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/red/corner{ dir = 8 @@ -9088,17 +8903,17 @@ /area/security/brig) "aot" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/side, @@ -9106,12 +8921,11 @@ "aou" = ( /obj/machinery/computer/security, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/corner, @@ -9186,8 +9000,6 @@ /area/security/brig) "aoB" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/red/corner{ @@ -9200,8 +9012,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, /obj/structure/toilet{ - tag = "icon-toilet00 (WEST)"; - icon_state = "toilet00"; dir = 8 }, /obj/machinery/newscaster{ @@ -9216,8 +9026,6 @@ "aoD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/toilet{ - tag = "icon-toilet00 (WEST)"; - icon_state = "toilet00"; dir = 8 }, /obj/machinery/newscaster{ @@ -9233,8 +9041,6 @@ "aoE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/toilet{ - tag = "icon-toilet00 (WEST)"; - icon_state = "toilet00"; dir = 8 }, /obj/machinery/newscaster{ @@ -9254,7 +9060,6 @@ /obj/machinery/cell_charger, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/vault{ @@ -9268,19 +9073,17 @@ /area/teleporter) "aoH" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/teleporter) "aoI" = ( /obj/machinery/computer/teleporter, @@ -9324,9 +9127,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -9341,8 +9142,6 @@ /area/maintenance/port/central) "aoN" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -9353,15 +9152,18 @@ "aoO" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -9375,7 +9177,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -9388,7 +9191,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -9401,11 +9205,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -9423,7 +9226,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -9437,7 +9241,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -9445,12 +9250,11 @@ /area/maintenance/starboard/central) "aoU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/caution{ @@ -9471,15 +9275,12 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -9498,16 +9299,12 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (EAST)" - }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) "aoZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/machinery/light{ @@ -9527,15 +9324,18 @@ }, /obj/effect/landmark/lightsout, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/brown/corner, @@ -9548,7 +9348,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -9563,12 +9364,11 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8 }, /area/hallway/primary/central{ @@ -9577,12 +9377,11 @@ "apd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown/corner{ - tag = "icon-browncorner (WEST)"; - icon_state = "browncorner"; dir = 8 }, /area/hallway/primary/central{ @@ -9593,7 +9392,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown, @@ -9603,7 +9403,8 @@ "apf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown/corner, @@ -9614,16 +9415,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/brown/corner, @@ -9636,7 +9438,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -9654,7 +9457,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -9667,7 +9471,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -9675,16 +9480,14 @@ /area/quartermaster/miningdock) "apk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -9692,11 +9495,11 @@ "apl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (EAST)"; icon_state = "purple"; dir = 4 }, @@ -9719,17 +9522,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/miningdock) "apo" = ( /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/quartermaster/miningdock) "app" = ( /obj/machinery/door/airlock/shuttle{ @@ -9801,32 +9600,29 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "apw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "distro vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro vent" }, /turf/open/floor/engine/vacuum, /area/engine/atmos) "apx" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/airlock/glass_security{ @@ -9837,20 +9633,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/brig) "apy" = ( /obj/machinery/vending/security, /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -9861,8 +9653,6 @@ "apz" = ( /obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -9871,11 +9661,13 @@ /area/security/brig) "apA" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9888,7 +9680,8 @@ /area/security/brig) "apB" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9904,7 +9697,8 @@ req_access_txt = "63" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9917,12 +9711,11 @@ /area/security/brig) "apD" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -9930,7 +9723,8 @@ /area/security/brig) "apE" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9949,7 +9743,8 @@ req_access_txt = "63" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -9962,7 +9757,8 @@ /area/security/brig) "apG" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9977,22 +9773,21 @@ }) "apH" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -10036,7 +9831,7 @@ pixel_y = -26 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/line, @@ -10047,7 +9842,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -10060,8 +9856,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/sign/nosmoking_2{ pixel_y = -32 @@ -10080,7 +9875,8 @@ /area/maintenance/port/central) "apQ" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10095,7 +9891,8 @@ "apR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10114,7 +9911,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -10127,13 +9925,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -10147,15 +9944,18 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -10207,7 +10007,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution, @@ -10234,8 +10035,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/sign/nosmoking_2{ pixel_y = -32 @@ -10252,7 +10052,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -10269,7 +10070,7 @@ pixel_y = -26 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/line, @@ -10281,10 +10082,8 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -10332,7 +10131,8 @@ "aqi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner, @@ -10385,7 +10185,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/effect/turf_decal/bot, @@ -10440,13 +10239,10 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (WEST)"; icon_state = "purple"; dir = 8 }, @@ -10454,7 +10250,6 @@ "aqs" = ( /obj/machinery/computer/shuttle/mining, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -10463,8 +10258,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/sign/pods{ - name = "MINING POD"; - pixel_x = 0 + name = "MINING POD" }, /turf/open/floor/plating, /area/quartermaster/miningdock) @@ -10494,9 +10288,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, +/turf/open/floor/plasteel, /area/shuttle/mining) "aqx" = ( /obj/structure/chair{ @@ -10506,9 +10298,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/mining) "aqy" = ( /obj/structure/chair{ @@ -10518,34 +10308,26 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/mining) "aqz" = ( /turf/closed/wall/r_wall, /area/engine/atmos) "aqA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/grille, /turf/closed/wall/r_wall, @@ -10555,9 +10337,7 @@ /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) @@ -10565,9 +10345,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/engine/atmos) @@ -10576,9 +10354,7 @@ /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) @@ -10587,9 +10363,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating/astplate, /area/hallway/primary/central{ @@ -10597,8 +10371,6 @@ }) "aqH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -10607,21 +10379,20 @@ /obj/structure/closet/secure_closet/security/sec, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8 }, /area/security/brig) "aqJ" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -10636,7 +10407,6 @@ dir = 4 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8 }, @@ -10644,8 +10414,7 @@ "aqL" = ( /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -10658,8 +10427,6 @@ /obj/structure/table/reinforced, /obj/machinery/recharger, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -10673,14 +10440,13 @@ /area/security/brig) "aqO" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 8 @@ -10696,8 +10462,7 @@ pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Security - Brig Aft"; @@ -10726,13 +10491,13 @@ /area/security/brig) "aqS" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -10753,7 +10518,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/bot, @@ -10783,7 +10548,6 @@ department = "Primary Tool Storage"; departmentType = 0; name = "Primary Tool Storage RC"; - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/bot, @@ -10814,7 +10578,8 @@ /area/maintenance/port/central) "aqZ" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10841,15 +10606,14 @@ name = "Atrium" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/bar{ name = "Atrium" }) @@ -10861,9 +10625,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/bar{ name = "Atrium" }) @@ -10876,9 +10638,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/bar{ name = "Atrium" }) @@ -10889,9 +10649,7 @@ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; name = "WARNING: PRESSURIZED DOORS"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-doors" + pixel_x = 32 }, /turf/open/floor/plating, /area/crew_quarters/bar{ @@ -10901,15 +10659,14 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/starboard/central) "arh" = ( /obj/structure/girder, @@ -10931,7 +10688,8 @@ "arj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -10942,13 +10700,11 @@ /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/item/weapon/paper_bin, /obj/item/weapon/pen, @@ -10962,13 +10718,11 @@ department = "Mining"; departmentType = 0; name = "Mining Dock RC"; - pixel_x = 0; pixel_y = -32 }, /obj/item/weapon/folder/yellow, /obj/item/toy/figure/miner, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10 }, @@ -10982,7 +10736,6 @@ pixel_y = -32 }, /turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (SOUTHEAST)"; icon_state = "purple"; dir = 6 }, @@ -11098,8 +10851,6 @@ /area/shuttle/mining) "arq" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/structure/grille, @@ -11189,7 +10940,6 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/green/side{ - tag = "icon-green (NORTH)"; icon_state = "green"; dir = 1 }, @@ -11205,8 +10955,7 @@ /area/engine/atmos) "arz" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, @@ -11235,15 +10984,13 @@ /area/security/brig) "arD" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/status_display{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -11251,14 +10998,13 @@ /area/security/brig) "arE" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -11266,7 +11012,8 @@ /area/security/brig) "arF" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -11277,7 +11024,8 @@ "arG" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -11294,11 +11042,13 @@ /area/security/brig) "arH" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11311,12 +11061,11 @@ /area/security/brig) "arI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/side{ @@ -11325,11 +11074,13 @@ /area/security/brig) "arJ" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/landmark/start/security_officer, @@ -11340,7 +11091,8 @@ /area/security/brig) "arK" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11353,11 +11105,13 @@ "arL" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/glass_security{ @@ -11375,7 +11129,8 @@ "arM" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/extinguisher_cabinet{ @@ -11422,13 +11177,12 @@ pixel_y = 38 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/vault{ @@ -11463,7 +11217,8 @@ "arQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side{ @@ -11477,9 +11232,7 @@ }, /area/storage/primary) "arS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/yellow/side{ dir = 1 }, @@ -11502,7 +11255,8 @@ /area/storage/primary) "arV" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11519,7 +11273,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11532,27 +11287,29 @@ /area/maintenance/port/central) "arX" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/central) "arY" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11562,7 +11319,8 @@ /area/maintenance/port/central) "arZ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11573,7 +11331,8 @@ "asa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11585,20 +11344,21 @@ /area/maintenance/port/central) "asb" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -11606,7 +11366,8 @@ "asc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11643,7 +11404,8 @@ "asf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -11683,7 +11445,8 @@ "ask" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -11693,7 +11456,8 @@ dir = 5 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -11704,7 +11468,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -11716,7 +11481,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -11727,7 +11493,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -11737,7 +11504,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -11748,7 +11516,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -11802,11 +11571,7 @@ "asx" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, @@ -11858,9 +11623,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "asD" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -11877,8 +11640,6 @@ /area/engine/atmos) "asE" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/decal/cleanable/dirt, @@ -11895,8 +11656,7 @@ /area/engine/atmos) "asG" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 2; - initialize_directions = 11 + dir = 2 }, /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, @@ -11904,8 +11664,7 @@ /area/engine/atmos) "asH" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ @@ -11943,9 +11702,7 @@ pixel_x = -3; pixel_y = 3 }, -/obj/item/clothing/suit/armor/vest{ - pixel_y = 0 - }, +/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest{ pixel_x = 3; pixel_y = -3 @@ -11965,7 +11722,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/camera{ @@ -11981,7 +11737,6 @@ /obj/structure/closet/secure_closet/security/sec, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/vault{ @@ -12000,7 +11755,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12014,7 +11770,6 @@ /obj/item/device/assembly/flash/handheld, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -12065,9 +11820,8 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Security - Front Desk"; @@ -12085,13 +11839,12 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -12099,16 +11852,16 @@ /area/security/brig) "asT" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -12127,7 +11880,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -12140,11 +11894,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner{ @@ -12160,7 +11916,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -12171,7 +11928,8 @@ /obj/item/device/flashlight, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -12181,7 +11939,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -12195,7 +11954,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -12211,7 +11971,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -12222,7 +11983,8 @@ "atb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -12239,7 +12001,8 @@ "atd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12265,7 +12028,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12274,14 +12038,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/theatre) "ath" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/closed/wall, @@ -12302,9 +12062,7 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /obj/machinery/light{ dir = 4 @@ -12320,8 +12078,6 @@ /area/crew_quarters/bar) "atl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall, @@ -12334,8 +12090,6 @@ /area/crew_quarters/bar) "atn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall, @@ -12343,7 +12097,8 @@ "ato" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -12352,12 +12107,11 @@ /area/maintenance/starboard/central) "atp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -12431,9 +12185,8 @@ "atv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /obj/effect/decal/cleanable/dirt, @@ -12459,11 +12212,7 @@ "aty" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "atz" = ( @@ -12510,14 +12259,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "atE" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/caution{ @@ -12526,8 +12271,6 @@ /area/engine/atmos) "atF" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -12538,10 +12281,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/atmos) "atH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -12555,13 +12296,11 @@ /obj/machinery/power/apc{ dir = 4; name = "Atmospherics Engine APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -12586,7 +12325,6 @@ pixel_x = 32 }, /turf/open/floor/plasteel/caution/corner{ - tag = "icon-cautioncorner (NORTH)"; icon_state = "cautioncorner"; dir = 1 }, @@ -12599,7 +12337,8 @@ req_access_txt = "63" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -12607,17 +12346,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/security/brig) "atM" = ( /obj/structure/sign/electricshock{ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -12628,7 +12363,8 @@ }) "atN" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -12677,8 +12413,6 @@ /obj/item/clothing/gloves/color/yellow, /obj/item/weapon/storage/box/lights/mixed, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -12799,7 +12533,8 @@ "atW" = ( /obj/effect/landmark/blobstart, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12821,7 +12556,6 @@ /area/crew_quarters/theatre) "atY" = ( /obj/structure/piano{ - tag = "icon-piano"; icon_state = "piano" }, /obj/machinery/light{ @@ -12832,15 +12566,15 @@ "atZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/theatre) "aua" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-21"; @@ -12904,9 +12638,7 @@ /obj/structure/sign/barsign{ pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/crew_quarters/bar) "auh" = ( @@ -12949,9 +12681,7 @@ name = "sink"; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/vault, /area/crew_quarters/bar) "aul" = ( @@ -12967,8 +12697,7 @@ /obj/item/stack/cable_coil/random, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/vault, /area/crew_quarters/bar) @@ -12980,7 +12709,8 @@ /obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -13001,11 +12731,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -13013,28 +12743,18 @@ name = "Primary Hallway" }) "auq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "n2 vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2 vent" }, /turf/open/floor/engine/n2, /area/engine/atmos) "aur" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -13076,8 +12796,7 @@ /area/engine/atmos) "auv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -13086,9 +12805,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "aux" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -13100,8 +12817,6 @@ /area/engine/atmos) "auy" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -13123,17 +12838,15 @@ /area/engine/atmos) "auB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution{ @@ -13188,13 +12901,12 @@ }) "auH" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/corner, @@ -13203,7 +12915,8 @@ }) "auI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -13217,11 +12930,13 @@ }) "auJ" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/splatter, @@ -13232,7 +12947,8 @@ }) "auK" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -13249,14 +12965,16 @@ "auL" = ( /obj/effect/landmark/blobstart, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/red/corner, @@ -13265,7 +12983,8 @@ }) "auM" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -13285,7 +13004,8 @@ }) "auN" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13299,20 +13019,21 @@ }) "auO" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/camera{ @@ -13327,12 +13048,11 @@ }) "auP" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -13343,7 +13063,8 @@ }) "auQ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13357,7 +13078,8 @@ }) "auR" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13372,7 +13094,8 @@ }) "auS" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13395,10 +13118,8 @@ /area/storage/primary) "auV" = ( /obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/storage/primary) @@ -13433,10 +13154,8 @@ }, /area/crew_quarters/theatre) "avb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/theatre) @@ -13446,22 +13165,20 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/crew_quarters/theatre) "avd" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -13479,12 +13196,11 @@ "avf" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -13585,12 +13301,9 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -13599,8 +13312,6 @@ /area/crew_quarters/bar) "avr" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/closed/wall, @@ -13609,15 +13320,14 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/starboard/central) "avt" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -13629,13 +13339,12 @@ }) "avu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -13661,11 +13370,7 @@ }) "avx" = ( /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/closed/wall/r_wall, /area/engine/atmos) "avy" = ( @@ -13692,7 +13397,6 @@ /area/engine/atmos) "avA" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; dir = 10 }, /obj/effect/decal/cleanable/dirt, @@ -13725,8 +13429,6 @@ /area/engine/atmos) "avE" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -13746,14 +13448,14 @@ name = "Distribution Loop" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution{ @@ -13768,7 +13470,8 @@ /area/engine/atmos) "avI" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -13783,7 +13486,8 @@ "avJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -13795,7 +13499,8 @@ }) "avK" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -13815,7 +13520,8 @@ }) "avL" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -13828,16 +13534,16 @@ }) "avM" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/hallway/primary/central{ @@ -13937,7 +13643,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -13948,13 +13655,10 @@ }) "avU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central{ @@ -13971,12 +13675,9 @@ "avW" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral/corner, @@ -14004,8 +13705,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/light_switch{ pixel_x = -24; @@ -14028,7 +13728,6 @@ /obj/machinery/vending/assist, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light, @@ -14058,7 +13757,7 @@ }, /obj/item/stack/cable_coil/white, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/effect/decal/cleanable/dirt, @@ -14094,22 +13793,21 @@ /obj/effect/landmark/start/clown, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/crew_quarters/theatre) "awi" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/grimy, /area/crew_quarters/theatre) "awj" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -14123,7 +13821,8 @@ /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -14140,8 +13839,6 @@ "awm" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/redyellow, @@ -14182,7 +13879,8 @@ /obj/effect/landmark/start/bartender, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/black, @@ -14193,7 +13891,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -14210,7 +13909,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -14223,7 +13923,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -14233,7 +13934,8 @@ "awu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -14244,13 +13946,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -14268,7 +13969,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -14278,20 +13980,21 @@ /area/crew_quarters/bar) "awx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -14300,8 +14003,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -14317,9 +14019,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -14388,10 +14088,8 @@ /area/engine/atmos) "awI" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) @@ -14414,7 +14112,8 @@ on = 0 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -14437,7 +14136,8 @@ /area/engine/atmos) "awM" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -14445,16 +14145,12 @@ req_access_txt = "24" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "awN" = ( /obj/effect/decal/cleanable/dirt, @@ -14473,15 +14169,14 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -14503,16 +14198,15 @@ /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/crew_quarters/theatre) "awT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar{ @@ -14525,7 +14219,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -14544,8 +14239,6 @@ }) "awW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/redyellow, @@ -14560,7 +14253,8 @@ /area/crew_quarters/bar) "awY" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -14589,7 +14283,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/vault{ @@ -14626,7 +14319,8 @@ "axe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -14700,7 +14394,6 @@ "axm" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8; - icon_state = "manifold"; name = "scrubbers pipe" }, /obj/machinery/meter, @@ -14716,23 +14409,18 @@ /area/engine/atmos) "axo" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2; - icon_state = "manifold"; - name = "scrubbers pipe"; - tag = "icon-manifold (NORTH)" + dir = 2 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "axp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2; - icon_state = "manifold"; - name = "scrubbers pipe"; - tag = "icon-manifold (NORTH)" + dir = 2 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution{ @@ -14759,13 +14447,12 @@ /area/engine/atmos) "axr" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/delivery, @@ -14884,7 +14571,8 @@ dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -14980,7 +14668,8 @@ /area/crew_quarters/dorms) "axL" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15008,7 +14697,8 @@ /obj/effect/landmark/start/mime, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -15016,15 +14706,18 @@ "axO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/redyellow, @@ -15033,7 +14726,8 @@ }) "axP" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -15043,7 +14737,8 @@ "axQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -15052,7 +14747,8 @@ }) "axR" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -15060,13 +14756,12 @@ }, /area/crew_quarters/bar) "axS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/black, @@ -15083,12 +14778,9 @@ departmentType = 0; name = "Bar RC"; pixel_x = 32; - pixel_y = 0; receive_ore_updates = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -15099,7 +14791,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -15134,17 +14827,11 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/escape) "aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "oxygen vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "oxygen vent" }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -15188,8 +14875,6 @@ node1_concentration = 0.8; node2_concentration = 0.2; on = 1; - pixel_x = 0; - pixel_y = 0; target_pressure = 4500 }, /obj/effect/decal/cleanable/dirt, @@ -15239,13 +14924,11 @@ /area/engine/atmos) "ayj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (NORTH)"; - name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -15258,7 +14941,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -15285,8 +14969,7 @@ /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, @@ -15321,7 +15004,8 @@ /obj/item/weapon/storage/belt/utility, /obj/item/device/t_scanner, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -15337,7 +15021,7 @@ name = "Atmospherics Lockdown Blast door" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -15345,7 +15029,8 @@ "ayt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -15371,12 +15056,7 @@ }, /area/crew_quarters/dorms) "ayx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, @@ -15384,12 +15064,10 @@ "ayy" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -15419,7 +15097,8 @@ /area/crew_quarters/dorms) "ayD" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15435,33 +15114,27 @@ }, /area/crew_quarters/theatre) "ayF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/theatre) "ayG" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/crew_quarters/theatre) "ayH" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -15486,7 +15159,8 @@ "ayJ" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -15503,10 +15177,8 @@ name = "Atrium" }) "ayL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar{ @@ -15563,14 +15235,13 @@ dir = 1 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ cell_type = 5000; dir = 1; name = "Central Starborad Maintenance APC"; - pixel_x = 0; pixel_y = 25 }, /obj/effect/turf_decal/stripes/line, @@ -15610,7 +15281,7 @@ "ayW" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/machinery/power/apc{ @@ -15626,7 +15297,7 @@ pixel_y = 23 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/red/side{ @@ -15643,7 +15314,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -15659,11 +15331,11 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -15678,7 +15350,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/red/side{ @@ -15727,7 +15400,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/mineral/plastitanium/brig, @@ -15805,7 +15477,8 @@ "azp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15815,7 +15488,8 @@ /area/engine/atmos) "azq" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15826,8 +15500,6 @@ "azr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -15839,7 +15511,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15855,7 +15527,8 @@ /area/engine/atmos) "azu" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15865,7 +15538,8 @@ /area/engine/atmos) "azv" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15875,23 +15549,24 @@ /area/engine/atmos) "azw" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/loadingarea, /area/engine/atmos) "azx" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15903,28 +15578,30 @@ /area/engine/atmos) "azy" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "azz" = ( /obj/machinery/computer/atmos_alert, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/caution{ @@ -15955,9 +15632,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "azE" = ( /obj/structure/table/wood, @@ -15973,7 +15648,6 @@ /obj/item/weapon/canvas/twentythreeXtwentythree, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light, @@ -15981,12 +15655,11 @@ /area/crew_quarters/theatre) "azG" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -15998,7 +15671,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16023,7 +15695,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -16046,8 +15719,6 @@ pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/redyellow, @@ -16075,7 +15746,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side, @@ -16101,7 +15773,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -16124,8 +15797,6 @@ }) "azT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -16152,10 +15823,8 @@ name = "\improper Departure Lounge" }) "azW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit{ @@ -16164,8 +15833,6 @@ "azX" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/bot, @@ -16174,11 +15841,10 @@ name = "\improper Departure Lounge" }) "azY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -16219,9 +15885,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (NORTH)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "aAd" = ( /turf/open/floor/plasteel/vault{ @@ -16263,11 +15927,7 @@ name = "Mixed Air Tank In" }, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -16275,9 +15935,7 @@ /area/engine/atmos) "aAj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -16287,9 +15945,7 @@ "aAk" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -16300,7 +15956,6 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (NORTHWEST)"; icon_state = "arrival"; dir = 9 }, @@ -16308,8 +15963,6 @@ "aAl" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -16319,8 +15972,6 @@ /area/engine/atmos) "aAm" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/effect/decal/cleanable/dirt, @@ -16328,16 +15979,13 @@ /area/engine/atmos) "aAn" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aAo" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/meter, /turf/open/floor/plasteel/neutral, @@ -16355,7 +16003,8 @@ }, /obj/effect/landmark/start/atmospheric_technician, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, @@ -16365,41 +16014,47 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aAs" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aAt" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -16415,15 +16070,18 @@ req_access_txt = "24" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ @@ -16433,7 +16091,8 @@ /area/engine/atmos) "aAv" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/caution/corner{ @@ -16442,22 +16101,19 @@ /area/engine/atmos) "aAw" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aAx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/engine/atmos) "aAy" = ( @@ -16467,7 +16123,8 @@ "aAz" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -16485,7 +16142,8 @@ density = 0 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/caution{ @@ -16494,8 +16152,6 @@ /area/engine/atmos) "aAC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -16535,8 +16191,6 @@ /area/crew_quarters/dorms) "aAG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/neutral, @@ -16581,15 +16235,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/theatre) "aAN" = ( /obj/machinery/power/apc{ @@ -16599,7 +16252,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/redyellow, @@ -16609,23 +16262,28 @@ "aAO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/redyellow, @@ -16644,7 +16302,8 @@ /obj/item/weapon/kitchen/fork, /obj/effect/landmark/lightsout, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -16653,12 +16312,11 @@ }) "aAQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -16670,7 +16328,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -16679,12 +16338,11 @@ }) "aAS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/redyellow, @@ -16700,7 +16358,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -16714,7 +16373,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -16725,11 +16385,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -16744,7 +16406,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -16755,15 +16418,18 @@ "aAX" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -16790,12 +16456,11 @@ }) "aBa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -16837,7 +16502,8 @@ "aBf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side, @@ -16942,24 +16608,19 @@ sensors = list("air_sensor" = "Tank") }, /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /obj/structure/window/reinforced{ dir = 8 }, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (WEST)"; icon_state = "arrival"; dir = 8 }, /area/engine/atmos) "aBr" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/stripes/line{ @@ -16976,8 +16637,6 @@ /area/engine/atmos) "aBt" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/stripes/line, @@ -16995,16 +16654,14 @@ /area/engine/atmos) "aBw" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) "aBx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -17012,7 +16669,6 @@ "aBy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8; - icon_state = "manifold"; name = "scrubbers pipe" }, /obj/effect/turf_decal/stripes/line, @@ -17020,9 +16676,6 @@ /area/engine/atmos) "aBz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (NORTH)"; - name = "scrubbers pipe"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line, @@ -17034,7 +16687,8 @@ }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, @@ -17072,19 +16726,17 @@ /obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ - tag = "icon-caution (SOUTHWEST)"; icon_state = "caution"; dir = 10 }, /area/engine/atmos) "aBE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution, @@ -17103,7 +16755,8 @@ /obj/structure/chair/office/dark, /obj/effect/landmark/start/atmospheric_technician, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution, @@ -17130,8 +16783,7 @@ department = "Atmospherics Office"; departmentType = 0; name = "Atmospherics RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/structure/extinguisher_cabinet{ pixel_x = 26; @@ -17143,16 +16795,16 @@ /area/engine/atmos) "aBK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -17168,7 +16820,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -17184,7 +16837,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -17197,7 +16851,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -17210,7 +16865,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -17220,14 +16876,16 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/dorms) "aBQ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -17240,7 +16898,7 @@ pixel_y = -26 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -17256,7 +16914,8 @@ /area/crew_quarters/dorms) "aBU" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -17274,8 +16933,7 @@ department = "Theatre Backstage"; departmentType = 0; name = "Theatre RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/camera{ c_tag = "Theatre Storage" @@ -17291,14 +16949,12 @@ /obj/machinery/vending/autodrobe, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/machinery/power/apc{ cell_type = 5000; dir = 1; name = "Theatre Backstage APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/extinguisher_cabinet{ @@ -17306,7 +16962,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ @@ -17316,7 +16972,6 @@ "aBY" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/machinery/light{ @@ -17363,9 +17018,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aCe" = ( /turf/closed/wall, @@ -17376,10 +17029,8 @@ /area/crew_quarters/kitchen) "aCg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -17393,9 +17044,7 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -17407,7 +17056,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -17417,11 +17066,13 @@ "aCj" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/window/brigdoor/southright{ @@ -17431,7 +17082,8 @@ }, /obj/structure/table/reinforced, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/weapon/folder/red, @@ -17439,9 +17091,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" }) @@ -17449,11 +17099,11 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -17464,11 +17114,13 @@ "aCl" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/airlock/glass_security{ @@ -17477,15 +17129,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" }) @@ -17493,7 +17144,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -17527,21 +17178,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "aCr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 4; - external_pressure_bound = 0; frequency = 1441; - icon_state = "in"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -17550,11 +17194,7 @@ name = "Mixed Air Tank Out" }, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTH)"; - icon_state = "intact"; - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -17562,8 +17202,7 @@ /area/engine/atmos) "aCt" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -17591,9 +17230,7 @@ /area/engine/atmos) "aCw" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/closet/wardrobe/atmospherics_yellow, /obj/machinery/status_display{ @@ -17617,8 +17254,6 @@ /area/engine/atmos) "aCy" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/structure/closet/secure_closet/atmospherics, @@ -17637,7 +17272,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light, @@ -17673,7 +17307,6 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/effect/decal/cleanable/dirt, @@ -17690,12 +17323,11 @@ /area/engine/atmos) "aCE" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -17732,7 +17364,7 @@ pixel_x = -32 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -17749,19 +17381,19 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "aCJ" = ( /obj/structure/grille, @@ -17771,7 +17403,7 @@ name = "Atmospherics Lockdown Blast door" }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -17787,11 +17419,13 @@ }, /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/window/westright{ @@ -17806,12 +17440,12 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ @@ -17861,10 +17495,8 @@ /area/crew_quarters/theatre) "aCQ" = ( /obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/theatre) @@ -17874,7 +17506,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -17886,7 +17519,8 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -17902,8 +17536,6 @@ /area/crew_quarters/theatre) "aCU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/redyellow, @@ -17916,8 +17548,7 @@ /obj/item/toy/figure/chef, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/camera{ c_tag = "Kitchen"; @@ -17946,7 +17577,6 @@ department = "Kitchen"; departmentType = 0; name = "Kitchen RC"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/vault, @@ -17976,7 +17606,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -17995,8 +17626,7 @@ /obj/item/weapon/pen, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ dir = 8 @@ -18008,11 +17638,11 @@ }) "aDe" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (NORTH)"; icon_state = "escape"; dir = 1 }, @@ -18021,12 +17651,12 @@ }) "aDg" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (NORTH)"; icon_state = "escape"; dir = 1 }, @@ -18092,16 +17722,13 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/shuttle/escape) "aDn" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, @@ -18112,16 +17739,12 @@ /area/engine/atmos) "aDp" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aDq" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall, @@ -18141,15 +17764,14 @@ req_access_txt = "24" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "aDu" = ( /obj/structure/sign/securearea, @@ -18165,8 +17787,7 @@ "aDw" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -18181,12 +17802,11 @@ }) "aDx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/caution{ @@ -18205,8 +17825,6 @@ }) "aDz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/caution{ @@ -18216,10 +17834,8 @@ name = "Primary Hallway" }) "aDA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/caution{ dir = 1 @@ -18254,16 +17870,14 @@ /area/crew_quarters/dorms) "aDE" = ( /obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/dorms) "aDF" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/newscaster{ pixel_x = 32 @@ -18316,12 +17930,11 @@ /area/crew_quarters/theatre) "aDL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/grimy, @@ -18331,11 +17944,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -18352,7 +17967,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -18366,15 +17982,18 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/redyellow, @@ -18393,8 +18012,6 @@ "aDQ" = ( /obj/structure/chair/stool/bar, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/redyellow, @@ -18438,8 +18055,6 @@ "aDU" = ( /obj/effect/landmark/start/cook, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/white, @@ -18451,9 +18066,7 @@ /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) "aDW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -18462,8 +18075,7 @@ "aDX" = ( /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -18472,8 +18084,6 @@ /area/crew_quarters/kitchen) "aDY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/closed/wall, @@ -18481,7 +18091,8 @@ "aDZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -18508,9 +18119,7 @@ name = "\improper Departure Lounge" }) "aEc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" @@ -18723,16 +18332,15 @@ name = "Engineering Power Monitoring Console" }, /obj/machinery/status_display{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/light/small{ @@ -18742,21 +18350,21 @@ /area/engine/engineering) "aEv" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/smes{ charge = 5e+006 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/circuit/green, /area/engine/engineering) "aEw" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/smes{ @@ -18767,7 +18375,7 @@ pixel_x = 26 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/circuit/green, @@ -18787,13 +18395,12 @@ "aEy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/landmark/lightsout, /obj/effect/turf_decal/delivery, @@ -18831,12 +18438,11 @@ }) "aEC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -18845,8 +18451,6 @@ }) "aED" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -18864,8 +18468,6 @@ }) "aEF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral, @@ -18903,7 +18505,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -18914,8 +18517,6 @@ }) "aEJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/extinguisher_cabinet{ @@ -18929,8 +18530,7 @@ /obj/machinery/vending/clothing, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -19035,7 +18635,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/vault{ @@ -19043,9 +18642,8 @@ }, /area/crew_quarters/theatre) "aEU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/sign/poster/contraband/random{ pixel_y = -32 @@ -19062,7 +18660,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -19073,7 +18670,8 @@ /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -19108,8 +18706,6 @@ /obj/item/clothing/suit/apron/chef, /obj/item/weapon/kitchen/rollingpin, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -19125,7 +18721,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/red, @@ -19144,7 +18741,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white, @@ -19152,7 +18750,8 @@ "aFd" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/deepfryer, @@ -19163,7 +18762,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white, @@ -19179,7 +18779,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -19189,20 +18790,21 @@ /area/crew_quarters/kitchen) "aFg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/landmark/blobstart, @@ -19210,12 +18812,11 @@ /area/maintenance/starboard/central) "aFh" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -19264,8 +18865,6 @@ }) "aFn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -19279,8 +18878,6 @@ "aFp" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -19299,7 +18896,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/effect/turf_decal/bot, @@ -19343,26 +18939,22 @@ /area/engine/engineering) "aFw" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aFx" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable{ @@ -19379,13 +18971,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aFy" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/firealarm{ @@ -19400,16 +18989,12 @@ /obj/machinery/camera{ c_tag = "SMES Access"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aFz" = ( /obj/structure/closet/radiation, @@ -19426,14 +19011,13 @@ /area/engine/engineering) "aFA" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -19447,8 +19031,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -19470,7 +19052,6 @@ pixel_x = -32 }, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (WEST)"; icon_state = "arrival"; dir = 8 }, @@ -19482,15 +19063,18 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, @@ -19500,7 +19084,8 @@ "aFE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -19509,12 +19094,11 @@ }) "aFF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -19527,7 +19111,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -19539,7 +19124,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner, @@ -19555,7 +19141,8 @@ name = "Engineering Foyer" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -19570,7 +19157,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -19582,16 +19170,16 @@ }) "aFK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -19618,7 +19206,8 @@ "aFM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -19653,8 +19242,6 @@ "aFP" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/redyellow, @@ -19678,21 +19265,18 @@ /area/crew_quarters/kitchen) "aFS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) "aFT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/white, @@ -19714,8 +19298,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -19728,7 +19311,8 @@ /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -19767,8 +19351,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - tag = "icon-doors" + name = "WARNING: EXTERNAL AIRLOCK" }, /turf/open/floor/plating, /area/hallway/secondary/exit{ @@ -19810,9 +19393,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aGi" = ( /obj/structure/sign/securearea, @@ -19824,8 +19405,6 @@ "aGj" = ( /obj/machinery/status_display, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/closed/wall/r_wall, @@ -19837,11 +19416,13 @@ req_access_txt = "32" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -19853,9 +19434,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aGl" = ( /obj/structure/grille, @@ -19863,11 +19442,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -19878,8 +19456,6 @@ "aGm" = ( /obj/structure/sign/radiation, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall, @@ -19891,16 +19467,15 @@ req_access_txt = "10" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aGo" = ( /obj/structure/sign/fire, @@ -19917,7 +19492,6 @@ pixel_x = -24 }, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (WEST)"; icon_state = "arrival"; dir = 8 }, @@ -19926,12 +19500,11 @@ }) "aGq" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/corner{ @@ -19962,10 +19535,8 @@ name = "Primary Hallway" }) "aGt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow/corner, /area/hallway/primary/central{ @@ -19991,13 +19562,12 @@ }) "aGw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -20009,8 +19579,6 @@ }) "aGx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -20057,14 +19625,13 @@ /area/maintenance/port/central) "aGD" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ cell_type = 5000; dir = 1; name = "Central Port Maintenance APC"; - pixel_x = 0; pixel_y = 25 }, /turf/open/floor/plasteel/neutral/corner{ @@ -20077,7 +19644,8 @@ dir = 6 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, @@ -20085,7 +19653,8 @@ "aGF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20096,7 +19665,8 @@ "aGG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20107,11 +19677,13 @@ "aGH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -20125,7 +19697,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -20139,11 +19712,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -20154,7 +19729,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -20168,7 +19744,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -20183,7 +19760,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -20196,15 +19774,18 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/redyellow, @@ -20232,8 +19813,6 @@ /obj/structure/chair/stool, /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/redyellow, @@ -20244,8 +19823,7 @@ /obj/machinery/holopad, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar{ @@ -20266,9 +19844,7 @@ }, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -20280,14 +19856,13 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aGT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -20319,7 +19894,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -20339,8 +19913,6 @@ /area/crew_quarters/kitchen) "aGX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -20355,7 +19927,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -20379,9 +19950,7 @@ /obj/machinery/camera{ c_tag = "Gravity Generator Room"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -20393,13 +19962,13 @@ /area/engine/engineering) "aHi" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/button/door{ id = "engstorage"; name = "Engineering Secure Storage Control"; - pixel_x = 0; pixel_y = 24; req_access_txt = "10" }, @@ -20414,13 +19983,12 @@ /area/engine/engineering) "aHj" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/corner{ @@ -20430,13 +19998,12 @@ /area/engine/engineering) "aHk" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/corner{ @@ -20446,12 +20013,11 @@ /area/engine/engineering) "aHl" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -20461,15 +20027,14 @@ /area/engine/engineering) "aHm" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -20480,15 +20045,14 @@ /area/engine/engineering) "aHn" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/sign/electricshock{ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -20504,11 +20068,13 @@ /area/engine/engineering) "aHo" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -20522,16 +20088,14 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -20541,7 +20105,8 @@ /area/engine/engineering) "aHq" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/light{ @@ -20551,8 +20116,6 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -20562,7 +20125,8 @@ /area/engine/engineering) "aHr" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/firealarm{ @@ -20570,8 +20134,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -20581,13 +20143,12 @@ /area/engine/engineering) "aHs" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -20596,18 +20157,18 @@ /area/engine/engineering) "aHt" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -20616,7 +20177,8 @@ /area/engine/engineering) "aHu" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -20624,8 +20186,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/caution{ @@ -20649,12 +20209,10 @@ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -20670,25 +20228,23 @@ req_access_txt = "10" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "aHy" = ( /obj/structure/grille, @@ -20698,7 +20254,7 @@ name = "Engineering Lockdown Shutters" }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -20713,11 +20269,13 @@ }, /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/door/window/westright{ @@ -20736,7 +20294,7 @@ name = "Engineering Lockdown Shutters" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -20756,16 +20314,16 @@ /area/engine/engineering) "aHC" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -20781,7 +20339,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -20794,7 +20353,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -20812,7 +20372,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -20825,15 +20386,14 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aHH" = ( /obj/effect/decal/cleanable/dirt, @@ -20841,41 +20401,39 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aHI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aHJ" = ( /obj/effect/decal/cleanable/dirt, @@ -20883,7 +20441,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -20897,27 +20456,29 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, /area/maintenance/port/central) "aHL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -20927,8 +20488,6 @@ /area/hydroponics) "aHN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall, @@ -20944,20 +20503,17 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hydroponics) "aHP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/closed/wall, @@ -20981,12 +20537,11 @@ }) "aHS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -21025,20 +20580,20 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aHX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -21063,10 +20618,8 @@ name = "\improper Departure Lounge" }) "aIa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit{ @@ -21089,12 +20642,15 @@ }, /area/engine/gravity_generator) "aIe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) "aIf" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/sign/nosmoking_2{ @@ -21107,9 +20663,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aIg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -21117,79 +20670,67 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/engineering) "aIh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIi" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - tag = "icon-filter_off_f (EAST)"; - icon_state = "filter_off_f"; +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) "aIj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (NORTH)"; - name = "scrubbers pipe"; - icon_state = "manifold"; - dir = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIl" = ( @@ -21201,16 +20742,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "aIm" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/button/door{ id = "engsm"; name = "Radiation Shutters Control"; @@ -21220,68 +20757,61 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIo" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIp" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -21290,11 +20820,15 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIr" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -21325,7 +20859,8 @@ /area/engine/engineering) "aIt" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -21355,11 +20890,14 @@ }, /obj/effect/landmark/start/station_engineer, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -21387,8 +20925,7 @@ department = "Engineering"; departmentType = 0; name = "Engineering RC"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -21396,7 +20933,8 @@ "aIz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -21409,12 +20947,10 @@ "aIA" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -21430,15 +20966,14 @@ req_access_txt = "26" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/janitor) "aID" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -21459,7 +20994,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -21483,7 +21019,6 @@ "aIH" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; pixel_x = 12 }, /obj/effect/turf_decal/delivery, @@ -21515,7 +21050,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /obj/effect/turf_decal/stripes/line{ @@ -21526,7 +21060,8 @@ "aIL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -21540,7 +21075,6 @@ department = "Hydroponics"; departmentType = 0; name = "Hydroponics RC"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -21606,16 +21140,16 @@ /area/crew_quarters/kitchen) "aIT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/delivery, @@ -21631,7 +21165,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ @@ -21667,15 +21202,12 @@ "aIX" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/light{ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner{ @@ -21686,13 +21218,12 @@ }) "aIY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -21777,8 +21308,7 @@ "aJj" = ( /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -21793,12 +21323,7 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ c_tag = "Gravity Generator Entry"; dir = 2; @@ -21814,7 +21339,6 @@ cell_type = 5000; dir = 1; name = "Gravity Generator APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -21827,23 +21351,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aJm" = ( /obj/machinery/power/terminal{ - tag = "icon-term (EAST)"; - icon_state = "term"; dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -21871,34 +21392,37 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/engine/gravity_generator) "aJp" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aJq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aJr" = ( @@ -21911,9 +21435,6 @@ /area/engine/engineering) "aJs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - tag = "icon-manifold (EAST)"; - name = "scrubbers pipe"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -21925,7 +21446,7 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "aJu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, /area/engine/supermatter) "aJv" = ( @@ -21956,22 +21477,22 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aJy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aJz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21987,12 +21508,9 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -22015,8 +21533,6 @@ /obj/item/weapon/grenade/chem_grenade/metalfoam, /obj/item/weapon/grenade/chem_grenade/metalfoam, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/yellow/side{ @@ -22025,20 +21541,17 @@ /area/engine/engineering) "aJC" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aJD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -22047,8 +21560,6 @@ "aJE" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/bot, @@ -22056,15 +21567,11 @@ /area/engine/engineering) "aJF" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "aJG" = ( @@ -22076,7 +21583,8 @@ /area/engine/engineering) "aJH" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/computer/apc_control, @@ -22092,15 +21600,12 @@ }, /obj/item/weapon/storage/box/mousetraps, /obj/item/weapon/restraints/legcuffs/beartrap{ - tag = "icon-beartrap0"; icon_state = "beartrap0" }, /obj/item/weapon/restraints/legcuffs/beartrap{ - tag = "icon-beartrap0"; icon_state = "beartrap0" }, /obj/item/weapon/restraints/legcuffs/beartrap{ - tag = "icon-beartrap0"; icon_state = "beartrap0" }, /obj/effect/decal/cleanable/cobweb, @@ -22108,7 +21613,6 @@ department = "Custodial Closet"; departmentType = 0; name = "Custodial RC"; - pixel_x = 0; pixel_y = 32 }, /obj/item/device/radio/intercom{ @@ -22130,11 +21634,10 @@ cell_type = 5000; dir = 1; name = "Custodial Closet APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/bot, @@ -22144,7 +21647,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -22168,15 +21672,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aJN" = ( /obj/machinery/seed_extractor, @@ -22190,14 +21693,12 @@ /area/hydroponics) "aJO" = ( /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (NORTHWEST)"; icon_state = "greenblue"; dir = 9 }, /area/hydroponics) "aJP" = ( /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (NORTH)"; icon_state = "greenblue"; dir = 1 }, @@ -22205,36 +21706,30 @@ "aJQ" = ( /obj/effect/landmark/start/botanist, /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (NORTH)"; icon_state = "greenblue"; dir = 1 }, /area/hydroponics) "aJR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (NORTH)"; icon_state = "greenblue"; dir = 1 }, /area/hydroponics) "aJS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (NORTHEAST)"; icon_state = "greenblue"; dir = 5 }, @@ -22264,12 +21759,11 @@ /area/hydroponics) "aJW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow, @@ -22289,10 +21783,8 @@ /turf/closed/wall, /area/crew_quarters/kitchen) "aJZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Kitchen Coldroom"; @@ -22305,7 +21797,6 @@ "aKa" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -22320,10 +21811,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/white, /turf/open/floor/plasteel/freezer, @@ -22333,7 +21822,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/freezer, @@ -22343,7 +21833,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /mob/living/simple_animal/hostile/retaliate/goat{ @@ -22356,7 +21847,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -22366,15 +21858,18 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -22421,7 +21916,7 @@ }) "aKl" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -22438,9 +21933,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "aKn" = ( /obj/machinery/status_display, @@ -22455,15 +21948,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "aKp" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/vault, /area/engine/gravity_generator) @@ -22477,11 +21967,13 @@ "aKs" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/glass_command{ @@ -22498,8 +21990,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -22511,19 +22001,18 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/neutral, /area/engine/gravity_generator) "aKv" = ( @@ -22531,17 +22020,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 + icon_state = "4-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -22556,11 +22040,9 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -22573,42 +22055,48 @@ req_access_txt = "10" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aKy" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aKz" = ( @@ -22626,8 +22114,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, @@ -22659,25 +22146,26 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aKF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aKG" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -22692,15 +22180,18 @@ req_access_txt = "10" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -22710,7 +22201,8 @@ /area/engine/engineering) "aKI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -22719,11 +22211,13 @@ /area/engine/engineering) "aKJ" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -22731,7 +22225,8 @@ "aKK" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/item/clothing/gloves/color/yellow, @@ -22752,7 +22247,8 @@ /obj/item/weapon/electronics/airlock, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22766,23 +22262,24 @@ /obj/item/weapon/folder/yellow, /obj/item/device/lightreplacer, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aKN" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -22790,15 +22287,18 @@ "aKO" = ( /obj/machinery/computer/station_alert, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -22824,11 +22324,13 @@ "aKQ" = ( /obj/effect/landmark/start/janitor, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/green/side{ @@ -22836,15 +22338,13 @@ }, /area/janitor) "aKR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTHEAST)"; icon_state = "purple"; dir = 5 }, @@ -22869,7 +22369,8 @@ "aKU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -22886,7 +22387,6 @@ /area/hydroponics) "aKW" = ( /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (WEST)"; icon_state = "greenblue"; dir = 8 }, @@ -22933,7 +22433,8 @@ /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/bot, @@ -22942,7 +22443,6 @@ "aLb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (EAST)"; icon_state = "greenblue"; dir = 4 }, @@ -22994,9 +22494,7 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -23036,8 +22534,6 @@ /obj/structure/kitchenspike, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -23045,8 +22541,6 @@ /area/crew_quarters/kitchen) "aLl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall, @@ -23073,7 +22567,6 @@ }) "aLt" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -23144,13 +22637,11 @@ /area/shuttle/escape) "aLA" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = -26; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -23161,13 +22652,11 @@ /area/shuttle/escape) "aLC" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/cmo, /area/shuttle/escape) @@ -23185,10 +22674,8 @@ pixel_y = -32 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -23258,7 +22745,6 @@ /obj/item/clothing/glasses/meson, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/effect/decal/cleanable/dirt, @@ -23273,42 +22759,41 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; - dir = 1 + dir = 4 }, /turf/open/floor/plating, /area/engine/gravity_generator) "aLM" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1; + filter_type = "n2" }, /turf/open/floor/plasteel, /area/engine/engineering) "aLN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aLO" = ( @@ -23317,7 +22802,6 @@ /area/engine/supermatter) "aLP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, @@ -23354,12 +22838,10 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "aLV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/light{ dir = 8 @@ -23368,11 +22850,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aLW" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -23398,9 +22882,8 @@ /turf/open/floor/plasteel/neutral, /area/engine/engineering) "aMb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) @@ -23410,7 +22893,8 @@ /area/engine/engineering) "aMd" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -23434,20 +22918,15 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plating, /area/janitor) "aMf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple/side{ @@ -23457,8 +22936,6 @@ "aMg" = ( /obj/effect/landmark/start/janitor, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/green/side{ @@ -23468,7 +22945,6 @@ "aMh" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; pixel_x = 12 }, /obj/item/weapon/reagent_containers/glass/bucket, @@ -23494,15 +22970,14 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aMk" = ( /obj/machinery/plantgenes, @@ -23517,27 +22992,26 @@ /area/hydroponics) "aMl" = ( /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (SOUTHWEST)"; icon_state = "greenblue"; dir = 10 }, /area/hydroponics) "aMm" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/greenblue/side, /area/hydroponics) "aMn" = ( /obj/effect/landmark/start/botanist, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/greenblue/side, @@ -23547,19 +23021,19 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/greenblue/side, /area/hydroponics) "aMp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/greenblue/side, @@ -23567,7 +23041,6 @@ "aMq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/greenblue/side{ - tag = "icon-greenblue (SOUTHEAST)"; icon_state = "greenblue"; dir = 6 }, @@ -23605,11 +23078,13 @@ "aMu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/redyellow, @@ -23626,7 +23101,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -23641,7 +23117,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -23652,7 +23129,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -23672,7 +23150,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -23687,9 +23164,8 @@ name = "\improper Departure Lounge" }) "aMB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/lightsout, /turf/open/floor/plasteel/neutral, @@ -23699,7 +23175,6 @@ "aMC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4 }, @@ -23783,7 +23258,9 @@ "aMK" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/tcommsat/server) "aML" = ( @@ -23801,9 +23278,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tcommsat/server) "aMM" = ( /obj/structure/grille, @@ -23817,7 +23292,8 @@ /area/tcommsat/server) "aMO" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/newscaster{ @@ -23832,33 +23308,31 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aMP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aMQ" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -23895,10 +23369,8 @@ /turf/open/floor/plating, /area/engine/supermatter) "aMT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -23906,9 +23378,8 @@ /turf/open/floor/engine, /area/engine/supermatter) "aMV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/engine, /area/engine/supermatter) @@ -23916,7 +23387,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -23935,8 +23405,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -23949,20 +23418,21 @@ /turf/open/floor/plating, /area/engine/supermatter) "aMZ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aNa" = ( @@ -23977,8 +23447,7 @@ desc = "A handy sign praising the engineering department."; icon_state = "safety"; name = "engineering plaque"; - pixel_y = -32; - tag = "icon-safety" + pixel_y = -32 }, /obj/item/clothing/glasses/meson/engine, /obj/effect/turf_decal/stripes/line{ @@ -24045,7 +23514,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/light, @@ -24069,11 +23537,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ @@ -24104,7 +23572,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/effect/turf_decal/bot, @@ -24113,7 +23580,8 @@ "aNk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -24152,7 +23620,8 @@ /obj/effect/decal/cleanable/blood/splatter, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -24197,7 +23666,6 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -24247,15 +23715,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/bar{ name = "Atrium" }) @@ -24268,9 +23735,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/crew_quarters/bar{ name = "Atrium" }) @@ -24280,7 +23745,8 @@ dir = 5 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -24291,7 +23757,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -24303,7 +23770,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -24311,16 +23779,16 @@ "aND" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, @@ -24330,7 +23798,8 @@ dir = 9 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -24360,11 +23829,9 @@ /obj/item/weapon/stamp, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8 }, @@ -24386,7 +23853,6 @@ /obj/structure/closet/crate, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -24410,7 +23876,6 @@ /obj/structure/closet/crate, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/effect/turf_decal/delivery, @@ -24429,7 +23894,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -26 }, /obj/effect/decal/cleanable/dirt, @@ -24449,7 +23913,6 @@ pixel_y = 1 }, /obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 0; pixel_y = -1 }, /obj/item/weapon/storage/toolbox/emergency{ @@ -24548,7 +24011,6 @@ /obj/machinery/computer/telecomms/monitor, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/vault{ @@ -24557,22 +24019,23 @@ /area/tcommsat/server) "aNY" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/engineering) "aNZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -24581,12 +24044,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aOa" = ( @@ -24604,8 +24067,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -24619,27 +24081,27 @@ /turf/open/floor/plating, /area/engine/supermatter) "aOc" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aOd" = ( /obj/machinery/power/apc{ dir = 4; name = "Engine Room APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable/white, /obj/effect/decal/cleanable/dirt, @@ -24659,15 +24121,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/janitor) "aOg" = ( /obj/machinery/door/airlock/maintenance_hatch{ @@ -24676,15 +24137,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port/central) "aOh" = ( /obj/structure/grille, @@ -24701,9 +24161,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hydroponics) "aOj" = ( /obj/structure/grille, @@ -24734,7 +24192,6 @@ layer = 4.1 }, /turf/open/floor/plasteel/redyellow/side{ - tag = "icon-redyellow (NORTHWEST)"; icon_state = "redyellow"; dir = 9 }, @@ -24742,18 +24199,17 @@ "aOn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/redyellow/side{ - tag = "icon-redyellow (NORTH)"; icon_state = "redyellow"; dir = 1 }, /area/hallway/primary/central) "aOo" = ( /turf/open/floor/plasteel/redyellow/side{ - tag = "icon-redyellow (NORTH)"; icon_state = "redyellow"; dir = 1 }, @@ -24761,7 +24217,6 @@ "aOp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/redyellow/side{ - tag = "icon-redyellow (NORTH)"; icon_state = "redyellow"; dir = 1 }, @@ -24771,7 +24226,6 @@ icon_state = "plant-22" }, /turf/open/floor/plasteel/redyellow/side{ - tag = "icon-redyellow (NORTHEAST)"; icon_state = "redyellow"; dir = 5 }, @@ -24781,8 +24235,7 @@ desc = "A direction sign, pointing out which way the Supply department is."; dir = 4; icon_state = "direction_supply"; - name = "supply department"; - tag = "icon-direction_supply" + name = "supply department" }, /obj/structure/sign/directions/science{ pixel_y = -8 @@ -24811,15 +24264,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/starboard/central) "aOv" = ( /obj/machinery/computer/message_monitor, @@ -24835,18 +24287,15 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/server) "aOx" = ( /obj/structure/chair/office/dark, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/tcommsat/server) @@ -24865,13 +24314,17 @@ /area/tcommsat/server) "aOz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aOA" = ( @@ -24891,8 +24344,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -24923,8 +24375,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -24936,14 +24387,16 @@ /turf/open/floor/plating, /area/engine/supermatter) "aOF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aOG" = ( @@ -24961,7 +24414,8 @@ /area/maintenance/port) "aOI" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24972,7 +24426,8 @@ /area/maintenance/port) "aOJ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24983,7 +24438,8 @@ "aOK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24996,7 +24452,8 @@ /area/maintenance/port) "aOL" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25005,9 +24462,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "aOM" = ( /obj/effect/decal/cleanable/dirt, @@ -25015,15 +24470,14 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "aON" = ( /obj/effect/decal/cleanable/dirt, @@ -25036,7 +24490,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -25053,7 +24508,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -25065,11 +24521,13 @@ "aOP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25085,7 +24543,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25096,16 +24555,16 @@ }) "aOR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25116,12 +24575,11 @@ }) "aOS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25136,11 +24594,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25154,7 +24614,8 @@ /obj/effect/landmark/lightsout, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -25172,7 +24633,8 @@ pixel_y = 26 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -25180,7 +24642,6 @@ network = list("SS13","Prison") }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, @@ -25192,25 +24653,23 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (NORTH)"; icon_state = "purplecorner"; dir = 1 }, @@ -25228,15 +24687,15 @@ pixel_y = 24 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, @@ -25246,11 +24705,13 @@ "aOY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25267,7 +24728,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25280,21 +24742,16 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/newscaster{ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, @@ -25306,11 +24763,11 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -25322,7 +24779,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -25330,7 +24788,6 @@ network = list("SS13","Prison") }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, @@ -25343,7 +24800,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -25354,11 +24812,11 @@ "aPe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -25369,11 +24827,11 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, @@ -25383,11 +24841,11 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -25400,31 +24858,32 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/corner{ - tag = "icon-greencorner (NORTH)"; icon_state = "greencorner"; dir = 1 }, /area/hallway/primary/central) "aPi" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel{ @@ -25433,12 +24892,11 @@ /area/hallway/primary/central) "aPj" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -25451,11 +24909,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel{ @@ -25467,7 +24927,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -25477,7 +24938,8 @@ "aPm" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -25488,14 +24950,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -25507,22 +24965,21 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/hallway/primary/central) "aPp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25537,7 +24994,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25550,11 +25008,11 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25569,7 +25027,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25584,7 +25043,8 @@ pixel_y = 32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25594,11 +25054,13 @@ "aPu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25609,12 +25071,11 @@ }) "aPv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25629,7 +25090,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25640,16 +25102,16 @@ }) "aPx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner, @@ -25743,13 +25205,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tcommsat/server) "aPI" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ @@ -25759,17 +25220,23 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1; + filter_type = "freon"; + name = "gas filter (freon)" + }, /turf/open/floor/plasteel, /area/engine/engineering) "aPJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aPK" = ( @@ -25782,18 +25249,16 @@ /turf/open/floor/plating, /area/engine/engineering) "aPM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/engineering) "aPN" = ( @@ -25818,14 +25283,13 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) @@ -25839,9 +25303,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -25849,9 +25311,7 @@ "aPR" = ( /obj/structure/girder, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) @@ -25861,9 +25321,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -25875,9 +25333,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -25951,7 +25407,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -25965,9 +25422,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -26010,8 +25466,6 @@ }) "aQe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ @@ -26024,7 +25478,6 @@ "aQf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26074,7 +25527,6 @@ "aQk" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26086,8 +25538,6 @@ /area/hallway/primary/central) "aQl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/yellow/corner{ @@ -26100,7 +25550,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -26111,9 +25562,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel{ icon_state = "L4" @@ -26151,8 +25601,6 @@ /area/hallway/primary/central) "aQs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel{ @@ -26170,7 +25618,6 @@ "aQu" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26193,7 +25640,6 @@ "aQx" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26209,7 +25655,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -26222,8 +25669,6 @@ }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -26272,9 +25717,7 @@ "aQD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood{ icon_state = "wood-broken" }, @@ -26299,7 +25742,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -26318,11 +25760,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/grimy, /area/tcommsat/server) "aQI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -26330,22 +25774,20 @@ }, /area/tcommsat/server) "aQJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - icon_state = "manifold"; - name = "scrubbers pipe" - }, /obj/machinery/meter, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQK" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple{ +/obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -26363,24 +25805,21 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/trinary/filter{ +/obj/machinery/atmospherics/components/trinary/filter/critical{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) "aQN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQO" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Engineering Aft"; @@ -26388,27 +25827,30 @@ network = list("SS13","Engine"); pixel_x = 23 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/engineering) "aQP" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQQ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQR" = ( @@ -26416,21 +25858,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ dir = 1 }, -/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/engineering) "aQS" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, /obj/machinery/meter, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQT" = ( @@ -26446,7 +25887,8 @@ /area/maintenance/port) "aQV" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -26471,9 +25913,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/library) "aQZ" = ( /obj/machinery/door/firedoor, @@ -26482,22 +25922,19 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/library) "aRa" = ( /obj/structure/sign/kiddieplaque{ desc = "A long list of rules to be followed when in the library, extolling the virtues of being quiet at all times and threatening those who would dare eat hot food inside."; - name = "Library Rules Sign"; - pixel_x = 0; - pixel_y = 0 + name = "Library Rules Sign" }, /turf/closed/wall, /area/library) @@ -26516,16 +25953,15 @@ req_access_txt = "5" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/morgue) "aRe" = ( /obj/structure/grille, @@ -26588,7 +26024,8 @@ "aRl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -26654,15 +26091,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "aRv" = ( /obj/machinery/door/firedoor, @@ -26674,9 +26110,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "aRw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -26691,15 +26125,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) @@ -26723,15 +26156,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/starboard) "aRB" = ( /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -26739,8 +26169,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -26756,7 +26185,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -26770,20 +26198,18 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) "aRF" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, -/obj/structure/closet/crate/bin, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -26795,74 +26221,73 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aRG" = ( +/obj/structure/cable/white{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /obj/machinery/atmospherics/components/binary/pump{ dir = 2; name = "Gas to Cooling Loop"; on = 1 }, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; - dir = 4 - }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aRH" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "aRI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aRJ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "aRK" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aRL" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -26882,17 +26307,19 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aRN" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + icon_state = "pump_map"; + name = "Freezer to Gas" + }, /turf/open/floor/plasteel/neutral, /area/engine/engineering) "aRO" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 9 }, /turf/open/floor/plasteel/yellow, @@ -26914,7 +26341,6 @@ "aRR" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/effect/decal/cleanable/dirt, @@ -26927,7 +26353,8 @@ "aRS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -26966,7 +26393,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel/vault{ @@ -27013,7 +26439,8 @@ "aSb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -27044,7 +26471,8 @@ /area/medical/morgue) "aSf" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -27069,7 +26497,6 @@ /obj/structure/closet/wardrobe/chemistry_white, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/item/device/radio/intercom{ @@ -27090,11 +26517,10 @@ cell_type = 5000; dir = 1; name = "Chemistry Lab APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/item/weapon/twohanded/required/kirbyplants{ @@ -27147,23 +26573,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central) "aSp" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central) "aSq" = ( /obj/machinery/ai_status_display, @@ -27184,13 +26607,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central) "aSu" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -27225,12 +26647,7 @@ }, /area/science/lab) "aSw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whitepurple/corner{ dir = 4 }, @@ -27243,7 +26660,6 @@ department = "Research Lab"; departmentType = 0; name = "Research RC"; - pixel_x = 0; pixel_y = 32; receive_ore_updates = 1 }, @@ -27270,12 +26686,12 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/end{ @@ -27298,7 +26714,8 @@ "aSC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -27349,7 +26766,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/maintenance/starboard) @@ -27386,7 +26802,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -27398,8 +26813,6 @@ /area/tcommsat/server) "aSO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, @@ -27444,11 +26857,17 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1; + on = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aSV" = ( /obj/machinery/power/emitter{ - tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1; anchored = 1; @@ -27472,20 +26891,15 @@ target_temperature = 80 }, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) "aSX" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/engine/engineering) "aSY" = ( @@ -27494,8 +26908,7 @@ pixel_x = -5 }, /obj/item/weapon/tank/internals/emergency_oxygen/engi{ - pixel_x = 5; - pixel_y = 0 + pixel_x = 5 }, /obj/item/device/geiger_counter, /obj/item/device/geiger_counter, @@ -27520,7 +26933,8 @@ /area/engine/engineering) "aTb" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -27534,12 +26948,7 @@ /turf/open/floor/plasteel/black, /area/library) "aTd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -27595,21 +27004,19 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plating, /area/medical/morgue) "aTk" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -27619,8 +27026,6 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -27649,7 +27054,6 @@ /obj/machinery/door/window/southright, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/vault, @@ -27674,7 +27078,8 @@ /area/medical/chemistry) "aTr" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteyellow/corner{ @@ -27722,7 +27127,6 @@ "aTw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -27730,7 +27134,8 @@ "aTx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -27771,7 +27176,6 @@ "aTE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/purple/corner{ - tag = "icon-purplecorner (EAST)"; icon_state = "purplecorner"; dir = 4 }, @@ -27836,16 +27240,16 @@ /area/science/lab) "aTM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -27858,7 +27262,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -27875,7 +27280,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -27886,15 +27292,18 @@ "aTP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -27907,7 +27316,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -27920,7 +27330,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -27931,7 +27342,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -27943,7 +27355,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/delivery, @@ -27982,7 +27395,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -27993,19 +27405,16 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) "aTZ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -28014,7 +27423,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -28025,7 +27433,8 @@ "aUb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -28040,7 +27449,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/black, @@ -28050,7 +27459,8 @@ dir = 6 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -28058,7 +27468,8 @@ "aUe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -28068,19 +27479,19 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/library) "aUg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -28088,18 +27499,21 @@ "aUh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/grimy, /area/library) "aUi" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -28116,8 +27530,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plating, /area/medical/morgue) @@ -28125,7 +27538,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -28155,10 +27569,7 @@ }, /area/medical/medbay/zone3) "aUp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 }, @@ -28183,18 +27594,19 @@ /area/medical/chemistry) "aUt" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8 }, /area/medical/chemistry) "aUu" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow, @@ -28202,26 +27614,21 @@ "aUv" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/chemistry) "aUw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteyellow/corner{ dir = 4 }, /area/medical/chemistry) "aUx" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/plasteel/grimy, @@ -28231,7 +27638,6 @@ /area/hallway/primary/central) "aUz" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -28278,8 +27684,7 @@ /obj/item/weapon/stock_parts/manipulator, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -28292,11 +27697,13 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -28307,16 +27714,13 @@ /obj/machinery/power/apc{ dir = 4; name = "Research Division APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -28337,8 +27741,6 @@ /area/science/research) "aUJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -28347,7 +27749,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, @@ -28363,21 +27766,16 @@ /area/maintenance/starboard) "aUM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/wood, /area/maintenance/starboard) "aUN" = ( /obj/structure/chair/comfy/brown{ - icon_state = "comfychair"; dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/wood{ @@ -28388,16 +27786,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 7 + icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -28482,8 +27876,6 @@ /area/library) "aUY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -28497,7 +27889,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -28507,8 +27900,7 @@ /obj/item/weapon/storage/crayons, /obj/item/weapon/storage/crayons, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; @@ -28529,12 +27921,11 @@ "aVd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -28569,12 +27960,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 }, @@ -28583,8 +27969,6 @@ /obj/machinery/holopad, /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/bot, @@ -28612,27 +27996,23 @@ "aVk" = ( /obj/effect/landmark/start/chemist, /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8 }, /area/medical/chemistry) "aVl" = ( /turf/open/floor/plasteel/whiteyellow/corner{ - tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8 }, /area/medical/chemistry) "aVm" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/whiteyellow/corner, /area/medical/chemistry) "aVn" = ( @@ -28643,28 +28023,24 @@ departmentType = 0; name = "Chemistry RC"; pixel_x = 32; - pixel_y = 0; receive_ore_updates = 1 }, /turf/open/floor/plasteel/whiteyellow/corner, /area/medical/chemistry) "aVo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "aVp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/hallway/primary/central) @@ -28673,17 +28049,13 @@ /turf/open/floor/carpet, /area/hallway/primary/central) "aVr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/hallway/primary/central) "aVs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral, @@ -28697,7 +28069,7 @@ pixel_y = 3 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/line{ @@ -28707,11 +28079,10 @@ /area/science/lab) "aVu" = ( /obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, @@ -28743,13 +28114,12 @@ /area/science/lab) "aVy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -28758,8 +28128,6 @@ /area/science/research) "aVz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -28770,11 +28138,10 @@ /turf/closed/wall, /area/science/research) "aVB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; name = "server vent"; - on = 1; pressure_checks = 0 }, /turf/open/floor/circuit/green{ @@ -28789,15 +28156,10 @@ }, /area/science/research) "aVD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "server vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /obj/machinery/camera{ c_tag = "Server Room"; @@ -28817,12 +28179,11 @@ "aVF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -28882,7 +28243,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -28925,9 +28287,8 @@ }, /area/library) "aVT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/library) @@ -28944,7 +28305,8 @@ "aVW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -28975,12 +28337,12 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -28988,8 +28350,6 @@ /area/medical/morgue) "aWa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/vault{ @@ -29043,8 +28403,6 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/whiteblue/corner, @@ -29081,7 +28439,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -29109,7 +28466,8 @@ /area/medical/chemistry) "aWi" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29145,7 +28503,8 @@ "aWl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner, @@ -29161,7 +28520,6 @@ "aWn" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/light, @@ -29190,7 +28548,8 @@ "aWq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -29218,8 +28577,6 @@ /area/science/research) "aWt" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -29230,8 +28587,6 @@ "aWu" = ( /obj/machinery/r_n_d/server/robotics, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/circuit/green{ @@ -29242,7 +28597,8 @@ "aWv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -29319,7 +28675,8 @@ "aWF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -29343,7 +28700,7 @@ pixel_y = -26 }, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -29353,7 +28710,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -29363,9 +28721,7 @@ /obj/machinery/camera{ c_tag = "Medbay Morgue"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -29387,9 +28743,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "aWM" = ( /obj/structure/grille, @@ -29405,16 +28759,15 @@ req_access_txt = "5; 33" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/chemistry) "aWO" = ( /obj/structure/grille, @@ -29438,7 +28791,6 @@ /obj/effect/landmark/start/assistant, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/grimy, @@ -29463,7 +28815,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/grimy, @@ -29483,15 +28834,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/lab) "aWV" = ( /obj/structure/grille, @@ -29511,7 +28861,7 @@ /area/science/research) "aWY" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/grille, @@ -29525,11 +28875,13 @@ /area/science/research) "aWZ" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/door/poddoor/preopen{ @@ -29547,7 +28899,7 @@ /area/science/research) "aXa" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/structure/grille, @@ -29561,7 +28913,8 @@ "aXb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -29577,7 +28930,8 @@ }) "aXd" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29591,8 +28945,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/black, /area/library) @@ -29621,7 +28974,6 @@ "aXi" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/black, @@ -29709,7 +29061,8 @@ /area/medical/medbay/zone3) "aXt" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -29727,8 +29080,7 @@ id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/light{ dir = 4 @@ -29747,8 +29099,6 @@ /area/hallway/primary/central) "aXw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -29779,7 +29129,8 @@ "aXz" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -29792,7 +29143,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -29801,12 +29153,11 @@ /area/science/research) "aXB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -29818,7 +29169,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -29828,15 +29180,18 @@ "aXD" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/landmark/lightsout, @@ -29850,7 +29205,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -29864,7 +29220,8 @@ req_access_txt = "30" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29878,7 +29235,8 @@ "aXG" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29890,17 +29248,17 @@ /area/science/research) "aXH" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -29912,7 +29270,6 @@ /obj/item/weapon/wrench, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -29922,7 +29279,8 @@ "aXJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -29961,15 +29319,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/library) "aXO" = ( /obj/structure/table/glass, @@ -29991,9 +29348,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -30; - pixel_y = 0; - pixel_z = 0 + pixel_x = -30 }, /obj/machinery/camera{ c_tag = "Medbay Storage"; @@ -30016,7 +29371,6 @@ /obj/structure/closet/secure_closet/medical3, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /obj/machinery/light_switch{ @@ -30034,7 +29388,6 @@ /area/medical/medbay/zone3) "aXS" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -30082,15 +29435,13 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/medical/medbay/zone3) "aXY" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -30105,12 +29456,9 @@ /area/medical/medbay/zone3) "aYa" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, @@ -30121,7 +29469,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -30180,7 +29529,6 @@ "aYi" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -30208,9 +29556,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 8 @@ -30220,7 +29567,6 @@ /obj/machinery/light, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -30232,8 +29578,6 @@ /area/science/research) "aYn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -30246,7 +29590,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner, @@ -30276,8 +29621,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -30293,13 +29637,10 @@ /obj/structure/cable/white, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -30307,7 +29648,7 @@ /area/science/research) "aYs" = ( /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/machinery/computer/rdservercontrol, @@ -30321,7 +29662,8 @@ dir = 5 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -30337,7 +29679,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -30352,7 +29695,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -30372,10 +29716,8 @@ /area/library) "aYx" = ( /obj/effect/landmark/start/librarian, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/library) @@ -30395,7 +29737,8 @@ /area/library) "aYz" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30406,7 +29749,8 @@ "aYA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30418,7 +29762,8 @@ /area/maintenance/port) "aYB" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30431,7 +29776,8 @@ /area/maintenance/port) "aYC" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30443,7 +29789,8 @@ "aYD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30456,11 +29803,13 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/delivery, @@ -30468,7 +29817,8 @@ /area/maintenance/port) "aYF" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30496,7 +29846,6 @@ }, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/effect/turf_decal/delivery, @@ -30518,9 +29867,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYK" = ( /obj/effect/turf_decal/delivery, @@ -30528,10 +29875,8 @@ /area/medical/medbay/zone3) "aYL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 1 @@ -30539,15 +29884,12 @@ /area/medical/medbay/zone3) "aYM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/zone3) "aYN" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/line{ @@ -30572,15 +29914,14 @@ /area/medical/medbay/zone3) "aYQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/zone3) "aYR" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -30622,7 +29963,8 @@ "aYV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -30648,8 +29990,6 @@ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/purple/corner, @@ -30677,9 +30017,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/robotics/mechbay) "aZe" = ( /obj/structure/grille, @@ -30692,23 +30030,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "aZg" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "aZh" = ( /obj/structure/sign/nanotrasen, @@ -30723,8 +30058,6 @@ /area/science/robotics/lab) "aZk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall/r_wall, @@ -30737,8 +30070,6 @@ /area/science/robotics/lab) "aZm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -30746,7 +30077,8 @@ "aZn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -30796,7 +30128,8 @@ "aZt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -30810,7 +30143,6 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/status_display{ - pixel_x = 0; pixel_y = -32 }, /obj/machinery/newscaster{ @@ -30840,15 +30172,15 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/library) "aZx" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -30883,14 +30215,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "aZB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall, @@ -30914,7 +30242,8 @@ pixel_x = -32 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/delivery, @@ -30922,24 +30251,21 @@ /area/medical/medbay/zone3) "aZD" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/cmo, /area/medical/medbay/zone3) "aZE" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/cmo, /area/medical/medbay/zone3) @@ -30950,7 +30276,8 @@ req_access_txt = "5" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -30959,13 +30286,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "aZG" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -30976,7 +30302,8 @@ /area/medical/medbay/zone3) "aZH" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -30989,7 +30316,8 @@ /area/medical/medbay/zone3) "aZI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -30997,18 +30325,21 @@ /area/medical/medbay/zone3) "aZJ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/landmark/lightsout, @@ -31017,7 +30348,8 @@ "aZK" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31029,7 +30361,8 @@ "aZL" = ( /obj/effect/landmark/start/medical_doctor, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31039,7 +30372,8 @@ /area/medical/medbay/zone3) "aZM" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31050,11 +30384,13 @@ /area/medical/medbay/zone3) "aZN" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31065,7 +30401,8 @@ /area/medical/medbay/zone3) "aZO" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -31079,7 +30416,8 @@ req_access_txt = "5" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -31092,12 +30430,11 @@ /area/medical/medbay/zone3) "aZQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -31110,15 +30447,18 @@ pixel_x = 24 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, @@ -31126,8 +30466,7 @@ "aZS" = ( /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -31146,18 +30485,16 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/power/apc{ cell_type = 10000; dir = 1; name = "Mech Bay APC"; - pixel_x = 0; pixel_y = 28 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/effect/turf_decal/bot, @@ -31192,7 +30529,8 @@ "aZZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -31235,9 +30573,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/robotics/lab) "bad" = ( /obj/structure/rack, @@ -31258,9 +30594,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/robotics/lab) "baf" = ( /obj/item/stack/sheet/metal{ @@ -31309,7 +30643,6 @@ department = "Robotics Lab"; departmentType = 0; name = "Robotics RC"; - pixel_x = 0; pixel_y = 32; receive_ore_updates = 1 }, @@ -31326,7 +30659,8 @@ "bai" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -31343,10 +30677,8 @@ /area/maintenance/port) "bal" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -31376,12 +30708,11 @@ "bao" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/delivery, @@ -31430,8 +30761,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Medbay APC"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/structure/cable/white, /obj/effect/turf_decal/delivery, @@ -31448,9 +30778,7 @@ /obj/machinery/light, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -31462,7 +30790,6 @@ /obj/machinery/vending/medical, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31476,7 +30803,6 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/sign/bluecross_2, /obj/structure/sign/nosmoking_1{ - pixel_x = 0; pixel_y = -28 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31486,7 +30812,6 @@ /area/medical/medbay/zone3) "bax" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /obj/machinery/newscaster{ @@ -31498,9 +30823,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "bay" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -31517,12 +30840,11 @@ /area/medical/medbay/zone3) "baA" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -31541,8 +30863,6 @@ /area/medical/medbay/zone3) "baD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/blue, @@ -31558,27 +30878,24 @@ "baG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, /area/hallway/primary/central) "baH" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ c_tag = "Medbay Foyer"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) @@ -31597,7 +30914,8 @@ /area/hallway/primary/central) "baJ" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/table/reinforced, @@ -31633,20 +30951,19 @@ "baN" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/camera{ @@ -31662,7 +30979,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -31676,7 +30994,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -31689,7 +31008,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -31708,7 +31028,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -31722,7 +31043,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -31732,15 +31054,18 @@ "baT" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/whitepurple/corner{ @@ -31767,8 +31092,6 @@ /area/science/robotics/lab) "baW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -31777,10 +31100,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "baX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -31810,7 +31131,6 @@ /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/effect/turf_decal/bot, @@ -31819,7 +31139,8 @@ "bbb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -31845,7 +31166,8 @@ /area/maintenance/port) "bbf" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31856,7 +31178,8 @@ /area/maintenance/port) "bbg" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31867,7 +31190,8 @@ "bbh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31878,7 +31202,8 @@ /area/maintenance/port) "bbi" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31892,11 +31217,11 @@ "bbj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -31905,7 +31230,8 @@ "bbk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -31945,16 +31271,15 @@ req_access_txt = "12" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "bbp" = ( /obj/machinery/light{ @@ -31968,7 +31293,8 @@ "bbq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/corner, @@ -31994,9 +31320,7 @@ /obj/machinery/firealarm{ dir = 4; icon_state = "fire0"; - pixel_x = 24; - pixel_y = 0; - tag = "icon-fire0 (EAST)" + pixel_x = 24 }, /obj/machinery/light{ dir = 4 @@ -32006,12 +31330,9 @@ /area/medical/medbay/zone3) "bbv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, @@ -32022,7 +31343,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -32055,11 +31377,13 @@ /area/hallway/primary/central) "bbz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/holopad, @@ -32071,19 +31395,16 @@ /area/hallway/primary/central) "bbA" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ dir = 4; name = "Security Checkpoint APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -32091,12 +31412,11 @@ /area/hallway/primary/central) "bbB" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line{ @@ -32110,7 +31430,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -32128,15 +31449,12 @@ "bbE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/mech_bay_recharge_floor, /area/science/robotics/mechbay) "bbF" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port (WEST)"; icon_state = "recharge_port"; dir = 8 }, @@ -32162,11 +31480,13 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -32183,7 +31503,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -32193,12 +31514,11 @@ /area/science/robotics/lab) "bbJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -32213,7 +31533,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/bot, @@ -32244,10 +31565,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bbO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -32255,7 +31574,8 @@ "bbP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/blobstart, @@ -32272,14 +31592,11 @@ /area/maintenance/port) "bbS" = ( /turf/open/floor/wood{ - tag = "icon-wood-broken6"; icon_state = "wood-broken6" }, /area/maintenance/port) "bbT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall, @@ -32298,9 +31615,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "bbV" = ( /obj/structure/grille, @@ -32326,14 +31641,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "bbX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall, @@ -32353,9 +31664,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "bca" = ( /obj/structure/sign/poster/contraband/random, @@ -32363,7 +31672,8 @@ /area/maintenance/port) "bcb" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32385,7 +31695,6 @@ /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = -26; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -32398,7 +31707,6 @@ /obj/effect/decal/cleanable/blood/old, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/blue, @@ -32420,7 +31728,6 @@ "bch" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -32462,19 +31769,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "bcl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -32484,8 +31788,7 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /turf/open/floor/plating, /area/hallway/primary/central) @@ -32499,7 +31802,8 @@ /area/hallway/primary/central) "bco" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -32515,21 +31819,18 @@ /area/hallway/primary/central) "bcq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bcr" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -32570,7 +31871,8 @@ "bcx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner, @@ -32587,7 +31889,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, @@ -32648,7 +31951,6 @@ /area/maintenance/port) "bcI" = ( /turf/open/floor/wood{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/maintenance/port) @@ -32712,11 +32014,13 @@ "bcS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32733,14 +32037,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ dir = 4; name = "Port Maintenance APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -32766,10 +32069,8 @@ /turf/open/floor/plasteel/neutral, /area/medical/medbay/zone3) "bcW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/zone3) @@ -32787,12 +32088,9 @@ "bcY" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/camera{ @@ -32822,9 +32120,8 @@ dir = 1 }, /obj/effect/landmark/start/medical_doctor, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 9 @@ -32847,11 +32144,13 @@ "bdd" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -32861,7 +32160,8 @@ /area/hallway/primary/central) "bde" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/table/reinforced, @@ -32879,18 +32179,21 @@ /area/hallway/primary/central) "bdf" = ( /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/chair/office/dark{ dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, @@ -32898,11 +32201,11 @@ "bdg" = ( /obj/machinery/computer/security, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red, @@ -32911,15 +32214,13 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, /area/hallway/primary/central) "bdi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral, @@ -32930,7 +32231,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -32961,8 +32263,6 @@ "bdl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -32980,16 +32280,13 @@ "bdn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) "bdo" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) @@ -32999,10 +32296,8 @@ /area/science/robotics/mechbay) "bdq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/whitepurple/corner{ dir = 8 @@ -33010,20 +32305,18 @@ /area/science/research) "bdr" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/corner, @@ -33037,12 +32330,11 @@ /obj/machinery/power/apc{ dir = 8; name = "Robotics Lab APC"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/effect/turf_decal/bot, @@ -33051,15 +32343,18 @@ "bdu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/bot, @@ -33100,12 +32395,11 @@ /area/science/robotics/lab) "bdz" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -33130,10 +32424,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -33145,9 +32437,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/starboard) "bdD" = ( /obj/structure/table/wood, @@ -33164,7 +32454,6 @@ "bdF" = ( /obj/structure/chair/stool/bar, /turf/open/floor/wood{ - tag = "icon-wood-broken5"; icon_state = "wood-broken5" }, /area/maintenance/port) @@ -33172,7 +32461,6 @@ /obj/structure/chair/stool/bar, /obj/effect/landmark/revenantspawn, /turf/open/floor/wood{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/maintenance/port) @@ -33180,7 +32468,6 @@ /obj/structure/table/wood, /obj/item/toy/cards/deck/syndicate{ icon_state = "deck_syndicate_full"; - pixel_x = 0; pixel_y = 6 }, /obj/machinery/light/small{ @@ -33236,9 +32523,8 @@ /area/maintenance/port) "bdM" = ( /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/bar, /area/maintenance/port) @@ -33263,7 +32549,8 @@ "bdO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33282,7 +32569,6 @@ /obj/structure/closet/secure_closet/medical2, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/structure/extinguisher_cabinet{ @@ -33294,16 +32580,14 @@ /area/medical/medbay/zone3) "bdR" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/blue, /area/medical/medbay/zone3) "bdS" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33330,7 +32614,6 @@ "bdU" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33342,7 +32625,8 @@ "bdV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whiteblue/side, @@ -33352,9 +32636,8 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -26 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/camera{ c_tag = "Medbay Recovery Room"; @@ -33382,7 +32665,6 @@ "bdY" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -33395,13 +32677,10 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -26 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 6 @@ -33437,13 +32716,11 @@ /area/hallway/primary/central) "bed" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bee" = ( @@ -33458,7 +32735,8 @@ "bef" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/corner{ @@ -33470,13 +32748,10 @@ /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -33499,7 +32774,6 @@ /area/science/robotics/mechbay) "bej" = ( /obj/machinery/mech_bay_recharge_port{ - tag = "icon-recharge_port (WEST)"; icon_state = "recharge_port"; dir = 8 }, @@ -33516,7 +32790,8 @@ "bel" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -33529,7 +32804,6 @@ /obj/machinery/cell_charger, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -26 }, /obj/effect/decal/cleanable/dirt, @@ -33542,7 +32816,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, @@ -33719,16 +32994,15 @@ /area/maintenance/port) "beD" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/maintenance/port) "beE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -33742,15 +33016,14 @@ req_access_txt = "5" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/medical/medbay/zone3) "beG" = ( /obj/structure/sign/bluecross_2, @@ -33763,7 +33036,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/red/side{ @@ -33772,7 +33044,8 @@ /area/hallway/primary/central) "beI" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33782,7 +33055,6 @@ /obj/structure/closet/secure_closet/security, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/camera{ @@ -33803,7 +33075,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, @@ -33824,9 +33097,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "beN" = ( /obj/machinery/door/firedoor, @@ -33839,15 +33110,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/research) "beO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -33864,20 +33134,17 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/robotics/lab) "beQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall, @@ -33885,7 +33152,8 @@ "beR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33895,20 +33163,21 @@ /area/maintenance/port) "beS" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -33917,12 +33186,11 @@ "beT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -33930,32 +33198,32 @@ "beU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "beV" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/effect/turf_decal/delivery, @@ -33963,12 +33231,11 @@ /area/maintenance/port) "beW" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -33978,24 +33245,20 @@ /area/maintenance/port) "beX" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/port) "beY" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -34006,12 +33269,11 @@ /area/maintenance/port) "beZ" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -34020,15 +33282,18 @@ "bfa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -34038,12 +33303,11 @@ /area/maintenance/port) "bfb" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ @@ -34052,7 +33316,8 @@ /area/maintenance/port) "bfc" = ( /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -34072,18 +33337,17 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, /area/hallway/primary/central) "bff" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34094,22 +33358,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central) "bfg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, @@ -34120,7 +33382,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/bot, @@ -34135,7 +33398,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -34148,7 +33412,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -34160,7 +33425,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/blobstart, @@ -34172,7 +33438,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -34181,19 +33448,23 @@ "bfm" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -34203,15 +33474,18 @@ "bfn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, @@ -34224,7 +33498,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -34235,7 +33510,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -34245,7 +33521,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -34254,11 +33531,13 @@ "bfr" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ @@ -34270,7 +33549,8 @@ dir = 10 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -34279,7 +33559,7 @@ /area/maintenance/starboard) "bft" = ( /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -34306,10 +33586,7 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/chapel/main) "bfw" = ( @@ -34330,16 +33607,12 @@ /area/chapel/main) "bfx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall, /area/chapel/main) "bfy" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/closed/wall, @@ -34351,13 +33624,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -34365,9 +33637,7 @@ /area/chapel/main) "bfA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall, /area/chapel/main) @@ -34379,20 +33649,17 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/chapel/main) "bfC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -34400,19 +33667,19 @@ /area/chapel/main) "bfD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, /area/maintenance/port) "bfE" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34421,7 +33688,8 @@ /area/maintenance/port) "bfF" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -34431,7 +33699,8 @@ "bfG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -34444,7 +33713,8 @@ req_access_txt = "12" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -34455,31 +33725,32 @@ "bfI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, /area/hallway/primary/central) "bfJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -34489,7 +33760,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -34497,15 +33769,18 @@ "bfL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, @@ -34521,11 +33796,12 @@ pixel_y = 24 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/neutral, @@ -34536,19 +33812,19 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/hallway/primary/central) "bfO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/purple/corner, @@ -34558,15 +33834,18 @@ /area/science/xenobiology) "bfQ" = ( /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ @@ -34582,9 +33861,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bfR" = ( /obj/machinery/door/poddoor/preopen{ @@ -34601,15 +33878,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bfS" = ( /obj/structure/toilet{ @@ -34635,8 +33911,6 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -34646,17 +33920,15 @@ "bfU" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -34669,7 +33941,8 @@ "bfW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -34679,7 +33952,6 @@ "bfX" = ( /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel{ @@ -34689,21 +33961,18 @@ /area/chapel/main) "bfY" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/power/apc{ cell_type = 5000; dir = 1; name = "Chapel APC"; - pixel_x = 0; pixel_y = 25 }, /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel{ @@ -34713,8 +33982,6 @@ /area/chapel/main) "bfZ" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/newscaster{ @@ -34727,8 +33994,6 @@ /area/chapel/main) "bga" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/plasteel{ @@ -34742,7 +34007,6 @@ desc = "A plaque commemorating the fallen, may they rest in peace, forever asleep amongst the stars. Someone has drawn a picture of a crying badger at the bottom."; icon_state = "kiddieplaque"; name = "Remembrance Plaque"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/light/small{ @@ -34766,14 +34030,11 @@ /area/maintenance/port) "bge" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -34786,7 +34047,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner{ @@ -34818,8 +34080,6 @@ /area/hallway/primary/central) "bgj" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -34850,7 +34110,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, @@ -34881,7 +34141,8 @@ "bgr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, @@ -34908,8 +34169,7 @@ /obj/machinery/camera{ c_tag = "Xenobiology Test Chamber"; dir = 2; - network = list("Xeno","RD"); - pixel_x = 0 + network = list("Xeno","RD") }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -34975,7 +34235,6 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; pixel_x = 12 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -35002,14 +34261,11 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Crematorium"; @@ -35022,12 +34278,11 @@ /area/chapel/main) "bgE" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -35039,10 +34294,8 @@ /turf/closed/wall, /area/chapel/main) "bgG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -35050,19 +34303,19 @@ /obj/structure/table/wood/fancy, /obj/item/device/flashlight/lantern, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/grimy, /area/chapel/main) "bgI" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -35072,21 +34325,19 @@ /area/chapel/main) "bgJ" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel{ @@ -35095,14 +34346,10 @@ /area/chapel/main) "bgK" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel{ dir = 8; @@ -35142,15 +34389,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgP" = ( /turf/closed/wall, @@ -35178,9 +34424,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgS" = ( /obj/machinery/door/firedoor, @@ -35189,15 +34433,14 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgT" = ( /obj/machinery/ai_status_display, @@ -35221,17 +34464,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgX" = ( /obj/structure/sign/directions/engineering{ desc = "A direction sign, pointing out which way the Supply department is."; dir = 1; icon_state = "direction_supply"; - name = "supply department"; - tag = "icon-direction_supply" + name = "supply department" }, /obj/structure/sign/directions/science{ dir = 1; @@ -35257,7 +34497,8 @@ /area/science/xenobiology) "bha" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/machinery/door/window/brigdoor{ @@ -35270,7 +34511,8 @@ name = "Creature Cell #2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -35279,7 +34521,8 @@ /area/science/xenobiology) "bhb" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/delivery, @@ -35288,7 +34531,8 @@ "bhc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -35298,25 +34542,28 @@ "bhd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/side{ dir = 5; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - tag = "icon-whitehall (WEST)" + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /area/science/xenobiology) "bhe" = ( @@ -35330,11 +34577,13 @@ name = "Creature Cell #3" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -35343,7 +34592,6 @@ /area/science/xenobiology) "bhf" = ( /turf/open/floor/plasteel/vault{ - tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8 }, @@ -35357,8 +34605,7 @@ /area/science/xenobiology) "bhi" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -35366,7 +34613,6 @@ /area/science/xenobiology) "bhj" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -35387,9 +34633,8 @@ "bhm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -35431,7 +34676,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -35444,10 +34690,7 @@ }, /obj/structure/noticeboard{ dir = 4; - icon_state = "nboard00"; - pixel_x = -32; - pixel_y = 0; - tag = "icon-nboard00 (EAST)" + pixel_x = -32 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -35463,20 +34706,21 @@ /area/chapel/main) "bhv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/grimy, @@ -35486,7 +34730,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -35496,7 +34741,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -35512,7 +34758,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -35523,7 +34770,8 @@ "bhz" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side, @@ -35534,11 +34782,13 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/arrival, @@ -35560,11 +34810,10 @@ cell_type = 5000; dir = 1; name = "Arrivals APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plasteel/arrival, @@ -35573,9 +34822,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/neutral/side, /area/hallway/secondary/entry) "bhE" = ( @@ -35587,7 +34834,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/side, @@ -35617,8 +34865,6 @@ /area/hallway/secondary/entry) "bhJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/side, @@ -35648,8 +34894,6 @@ dir = 4 }, /obj/structure/disposaloutlet{ - tag = "icon-outlet (WEST)"; - icon_state = "outlet"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -35682,7 +34926,8 @@ "bhQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -35760,10 +35005,8 @@ /obj/machinery/light_switch{ pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Chaplen Quarters"; @@ -35791,8 +35034,6 @@ /area/chapel/main) "bic" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/wood, @@ -35805,7 +35046,6 @@ desc = "A plaque commemorating the fallen, may they rest in peace, forever asleep amongst the stars. Someone has drawn a picture of a crying badger at the bottom."; icon_state = "kiddieplaque"; name = "Remembrance Plaque"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35818,9 +35058,7 @@ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Chapel Office"; dir = 2; @@ -35834,7 +35072,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -35874,17 +35113,14 @@ /area/chapel/main) "bik" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -35894,8 +35130,6 @@ /area/chapel/main) "bil" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35947,7 +35181,8 @@ "biq" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -35960,7 +35195,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -35976,15 +35212,18 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/side{ @@ -35995,12 +35234,12 @@ "bit" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/arrival{ @@ -36012,7 +35251,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/side{ @@ -36025,7 +35265,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/arrival{ @@ -36053,10 +35294,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/arrival{ dir = 1 @@ -36109,7 +35348,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/end{ @@ -36131,10 +35371,8 @@ pixel_x = -32 }, /obj/effect/landmark/start/chaplain, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -36170,9 +35408,8 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main) "biK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -36183,7 +35420,8 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/vault{ @@ -36200,7 +35438,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -36214,19 +35453,19 @@ pixel_y = -24 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main) "biO" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36241,7 +35480,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -36251,15 +35491,14 @@ /area/chapel/main) "biQ" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel{ @@ -36268,8 +35507,6 @@ /area/chapel/main) "biR" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36282,14 +35519,11 @@ /area/chapel/main) "biS" = ( /obj/structure/chair/wood/normal{ - tag = "icon-wooden_chair (WEST)"; - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/button/door{ id = "chapelprivacy"; name = "Chapel Privacy Shutters"; - pixel_x = 0; pixel_y = -24; req_access_txt = "0" }, @@ -36301,7 +35535,6 @@ /obj/structure/bookcase, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /obj/machinery/firealarm{ @@ -36326,9 +35559,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "biV" = ( /obj/machinery/door/firedoor, @@ -36336,16 +35567,12 @@ /obj/machinery/camera{ c_tag = "Arrivals Hallway 3"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "biW" = ( /obj/structure/grille, @@ -36354,7 +35581,7 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating, @@ -36370,12 +35597,12 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "biY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -36411,11 +35638,10 @@ /turf/open/floor/plating, /area/science/xenobiology) "bjd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 2; external_pressure_bound = 140; name = "server vent"; - on = 1; pressure_checks = 0 }, /turf/open/floor/circuit/green{ @@ -36424,15 +35650,10 @@ }, /area/science/xenobiology) "bje" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 2; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - name = "server vent"; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /obj/machinery/camera{ c_tag = "Science - Server Room"; @@ -36461,7 +35682,6 @@ /obj/structure/closet/crate/bin, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -36529,11 +35749,13 @@ name = "Creature Cell #1" }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/vault{ @@ -36541,13 +35763,12 @@ }, /area/science/xenobiology) "bjq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -36557,11 +35778,13 @@ "bjr" = ( /obj/machinery/holopad, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/bot, @@ -36569,7 +35792,6 @@ /area/science/xenobiology) "bjs" = ( /turf/open/floor/plasteel/whitepurple/side{ - tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1 }, @@ -36578,14 +35800,11 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/plasteel/whitepurple/side{ dir = 5; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - tag = "icon-whitehall (WEST)" + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /area/science/xenobiology) "bju" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/effect/turf_decal/delivery, @@ -36597,8 +35816,6 @@ req_access_txt = "47" }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/effect/turf_decal/stripes/end, @@ -36613,8 +35830,6 @@ /area/science/xenobiology) "bjx" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -36625,13 +35840,10 @@ "bjy" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -36650,7 +35862,6 @@ }, /obj/item/weapon/storage/fancy/candle_box, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/newscaster{ @@ -36681,7 +35892,8 @@ /obj/structure/chair/office/light, /obj/effect/landmark/start/scientist, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side, @@ -36692,8 +35904,7 @@ "bjG" = ( /turf/open/floor/plasteel/whitepurple/side{ dir = 6; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - tag = "icon-whitepurple (SOUTHEAST)" + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /area/science/xenobiology) "bjH" = ( @@ -36721,8 +35932,7 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -36733,10 +35943,8 @@ /obj/structure/noticeboard{ desc = "A board for remembering the fallen of the station."; dir = 1; - icon_state = "nboard00"; name = "memorial board"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /turf/open/floor/plasteel/grimy, /area/chapel/main) @@ -36748,7 +35956,6 @@ department = "Chapel Office"; departmentType = 0; name = "Chapel RC"; - pixel_x = 0; pixel_y = -32 }, /obj/machinery/status_display{ @@ -36760,8 +35967,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -36770,8 +35976,6 @@ /area/hallway/secondary/entry) "bjN" = ( /obj/structure/shuttle/engine/propulsion{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -36793,8 +35997,7 @@ /obj/machinery/airalarm{ dir = 4; locked = 0; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/machinery/newscaster{ pixel_y = -32 @@ -36827,12 +36030,12 @@ department = "Xenobiology Lab"; departmentType = 0; name = "Xenobiology RC"; - pixel_x = 0; pixel_y = -32; receive_ore_updates = 1 }, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/circuit/green, @@ -36850,7 +36053,8 @@ pixel_y = -32 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -36866,8 +36070,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Xenobiology Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/machinery/light_switch{ pixel_x = 24; @@ -36875,11 +36078,10 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable/white{ - tag = "icon-0-8"; + d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/line{ @@ -36892,8 +36094,6 @@ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -36906,14 +36106,11 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -36923,8 +36120,6 @@ "bjW" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -36938,8 +36133,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - tag = "icon-doors" + name = "WARNING: EXTERNAL AIRLOCK" }, /turf/open/floor/plating, /area/hallway/secondary/entry) @@ -37100,10 +36294,8 @@ /area/hallway/secondary/entry) "bkk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -37112,8 +36304,6 @@ /area/hallway/secondary/entry) "bkl" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -37269,8 +36459,6 @@ "bkF" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -37345,7 +36533,6 @@ dir = 1 }, /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, @@ -37361,9 +36548,8 @@ /turf/open/floor/plasteel, /area/shuttle/arrival) "bkS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -37379,9 +36565,7 @@ name = "Arrival Shuttle Airlock"; req_access_txt = "0" }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (WEST)" - }, +/turf/open/floor/plasteel, /area/shuttle/arrival) "bkV" = ( /obj/machinery/ai_status_display, @@ -37391,10 +36575,8 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -37406,8 +36588,7 @@ pixel_x = 32 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -37433,7 +36614,6 @@ dir = 1 }, /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4 }, @@ -37459,8 +36639,6 @@ /area/shuttle/arrival) "blf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/machinery/camera{ @@ -37483,16 +36661,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/primary/central{ name = "Primary Hallway" }) "blh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ @@ -37521,7 +36698,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -37575,15 +36753,14 @@ }) "bln" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/camera{ c_tag = "Engineering Starboard"; dir = 8; - network = list("SS13","Engine"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13","Engine") }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -37592,12 +36769,11 @@ /area/engine/engineering) "blo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -37617,7 +36793,6 @@ c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); - pixel_x = 0; pixel_y = -22 }, /turf/open/floor/plasteel/purple/corner, @@ -37635,7 +36810,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /obj/machinery/camera{ @@ -37675,8 +36851,7 @@ /obj/machinery/camera{ c_tag = "Xenobiology Test Chamber"; dir = 2; - network = list("Xeno","RD"); - pixel_x = 0 + network = list("Xeno","RD") }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -37712,9 +36887,7 @@ /obj/machinery/camera{ c_tag = "Arrivals Hallway 2"; dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13") }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -37751,12 +36924,10 @@ name = "Mass Driver"; req_access_txt = "22" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/airalarm{ - icon_state = "alarm0"; dir = 8; pixel_x = 25 }, @@ -37900,9 +37071,8 @@ name = "\improper Departure Lounge" }) "bmh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit{ @@ -37931,7 +37101,6 @@ /area/space) "bmC" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -38042,17 +37211,13 @@ /turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) "bmX" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "bmY" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -38077,9 +37242,7 @@ }, /area/shuttle/syndicate) "bnc" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -38102,7 +37265,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -38414,7 +37576,6 @@ id = "smindicate"; name = "external door control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "150" }, /obj/docking_port/mobile{ @@ -38440,8 +37601,6 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -38450,8 +37609,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) @@ -38735,8 +37893,7 @@ /area/shuttle/syndicate) "bpM" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -39176,7 +38333,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -39189,9 +38345,7 @@ "brs" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -39368,9 +38522,7 @@ }, /area/shuttle/syndicate) "bsc" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -39380,9 +38532,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "bse" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -39427,9 +38577,7 @@ }, /area/shuttle/syndicate) "bsm" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/floor/plating, /area/shuttle/syndicate) "bsn" = ( @@ -39437,9 +38585,7 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "bso" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating, /area/shuttle/syndicate) "bsp" = ( @@ -39462,9 +38608,7 @@ }, /area/shuttle/syndicate) "bsr" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/floor/plating, /area/shuttle/syndicate) "bss" = ( @@ -39472,9 +38616,7 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "bst" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating, /area/shuttle/syndicate) "bsu" = ( @@ -39487,15 +38629,16 @@ "bsv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/escape{ - tag = "icon-escape (NORTH)"; icon_state = "escape"; dir = 1 }, @@ -39509,7 +38652,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39527,7 +38671,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39541,7 +38686,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39554,11 +38698,13 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /obj/structure/cable/white{ - tag = "icon-2-4"; + d1 = 2; + d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral/corner{ @@ -39572,7 +38718,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39590,7 +38737,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39602,7 +38750,8 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39618,7 +38767,8 @@ layer = 4.1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39629,7 +38779,8 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/light, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39641,7 +38792,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39653,7 +38803,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39665,7 +38814,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39677,7 +38825,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39693,7 +38840,8 @@ icon_state = "plant-22" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39705,7 +38853,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39717,7 +38864,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39729,11 +38875,13 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39752,7 +38900,8 @@ dir = 8 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39765,7 +38914,8 @@ }, /obj/effect/turf_decal/delivery, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39774,12 +38924,11 @@ }) "bsP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, @@ -39791,17 +38940,17 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/effect/turf_decal/bot, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39811,7 +38960,8 @@ "bsR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-2-8"; + d1 = 2; + d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, @@ -39820,7 +38970,8 @@ }) "bsS" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39830,7 +38981,8 @@ "bsT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, @@ -39839,7 +38991,6 @@ }) "bsU" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39847,7 +38998,8 @@ "bsV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/escape, @@ -39856,7 +39008,6 @@ }) "bsW" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -39872,18 +39023,18 @@ dir = 2 }, /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/hallway/secondary/exit{ name = "\improper Departure Lounge" }) "bsY" = ( /obj/structure/cable/white{ - tag = "icon-1-4"; + d1 = 1; + d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -39897,7 +39048,8 @@ req_access_txt = "48;50" }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39906,11 +39058,11 @@ }) "bta" = ( /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; icon_state = "brown"; dir = 9 }, @@ -39919,16 +39071,14 @@ }) "btb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -39937,13 +39087,12 @@ }) "btc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /obj/effect/turf_decal/delivery, /obj/structure/cable/white{ - tag = "icon-4-8"; + d1 = 4; + d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -39953,11 +39102,11 @@ "btd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - tag = "icon-1-8"; + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -40054,9 +39203,7 @@ name = "Arrivals" }) "bto" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -40121,7 +39268,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -40168,8 +39314,6 @@ "btF" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -40190,8 +39334,6 @@ "btI" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -40200,7 +39342,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -40215,16 +39356,12 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) "btM" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -40236,8 +39373,6 @@ "btO" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -40292,7 +39427,6 @@ /area/shuttle/syndicate) "btY" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -40317,50 +39451,36 @@ /area/shuttle/syndicate) "buc" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "bud" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "bue" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "buf" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "bug" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "buh" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "bui" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -40412,8 +39532,6 @@ /area/shuttle/syndicate) "buu" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -40463,8 +39581,7 @@ "buA" = ( /obj/machinery/requests_console{ department = "Arrival shuttle"; - name = "Arrivals Shuttle console"; - pixel_y = 0 + name = "Arrivals Shuttle console" }, /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/arrival) @@ -40493,7 +39610,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40502,8 +39618,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Telecoms Server Room APC"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/structure/cable{ icon_state = "0-4"; @@ -40515,13 +39630,10 @@ }, /area/tcommsat/server) "buI" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 7 - }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40533,14 +39645,12 @@ }, /area/tcommsat/server) "buK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40552,14 +39662,12 @@ }, /area/tcommsat/server) "buM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40578,8 +39686,7 @@ /obj/machinery/telecomms/receiver/preset_left/birdstation, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/circuit/green{ initial_gas_mix = "n2=100;TEMP=80"; @@ -40608,7 +39715,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40617,7 +39723,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40628,7 +39733,6 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) @@ -40641,13 +39745,12 @@ /turf/open/floor/plasteel/vault{ dir = 5; initial_gas_mix = "n2=100;TEMP=80"; - tag = ""; temperature = 80 }, /area/tcommsat/server) "buV" = ( /obj/structure/cable/white{ - tag = "icon-0-2"; + d2 = 2; icon_state = "0-2" }, /obj/machinery/modular_computer/console/preset/research, @@ -40957,15 +40060,13 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/transport) "bwb" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/transport) "bwc" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced, @@ -41011,20 +40112,17 @@ /turf/open/floor/plating, /area/shuttle/transport) "bwn" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/transport) "bwo" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/transport) @@ -41086,15 +40184,13 @@ /turf/open/floor/pod/light, /area/shuttle/transport) "bwA" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/transport) "bwB" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -41182,12 +40278,16 @@ /area/shuttle/transport) "bwV" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/engineering) "bwW" = ( @@ -41196,6 +40296,168 @@ }, /turf/closed/wall/r_wall, /area/tcommsat/server) +"bwX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bwY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bwZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bxa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"bxb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bxc" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "waste_out"; + volume_rate = 200 + }, +/turf/open/space/basic, +/area/space) +"bxd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/mineral/random/labormineral, +/area/ruin/unpowered{ + name = "Asteroid" + }) +"bxe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/mineral/random/labormineral, +/area/ruin/unpowered{ + name = "Asteroid" + }) +"bxf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/mineral/random/labormineral, +/area/ruin/unpowered{ + name = "Asteroid" + }) +"bxg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bxh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bxi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bxj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"bxq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"bxr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"bxs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"bxt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bxu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/caution, +/area/engine/engineering) (1,1,1) = {" aaa @@ -67530,7 +66792,7 @@ aad aad aad aaa -aaa +bxc aaa aaa aaa @@ -67787,7 +67049,7 @@ aad aad aad aad -aad +bxd aaa aaa aaa @@ -68044,7 +67306,7 @@ aad aad aad aad -aad +bxd aad aac aac @@ -68301,7 +67563,7 @@ aad aad aad aad -aad +bxd aad aad aad @@ -68558,7 +67820,7 @@ aGe aGe aGe aGe -aGe +bwY abi aad aad @@ -68815,7 +68077,7 @@ aIb aJh aKp aLD -aGe +bwY agE aad aad @@ -69072,7 +68334,7 @@ aIc aJi aKq aLE -aGe +bwY afM abP afM @@ -69329,11 +68591,11 @@ aId aHe aKr aLF -aMJ -aMJ -aMJ -aMJ -aMJ +bxj +bxl +bxl +bxl +bxo aMJ aMJ aMJ @@ -69586,11 +68848,11 @@ aGe aJj aKs aLG -aMJ +bxk aNT aOv buC -aPG +bxp aRB aPG aTX @@ -69847,7 +69109,7 @@ aMK aNU aOw buC -aPG +bxp aRB aPG aQG @@ -70096,7 +69358,7 @@ abi aad abT agE -aGe +bwX aJl aKu aLI @@ -70353,7 +69615,7 @@ aad aad aad afL -aGe +bwY aJm aKv aLJ @@ -70361,7 +69623,7 @@ aMM aNW aOx buC -aPG +bxp aRB aPG buG @@ -70610,7 +69872,7 @@ ahu ahu ahu aaV -aGe +bwY aJn aKw aLK @@ -70618,7 +69880,7 @@ aMJ aNX aOy buC -aPG +bxp aRE aSN aTZ @@ -70875,7 +70137,7 @@ aMN aMN aMN aMN -aMN +bxt bwW aMJ aMJ @@ -71383,15 +70645,15 @@ aGh aHj aIg aJq -aJq +bxb aLN aMP aNZ -aOA +aMP aPJ aQJ aRG -aSQ +bxu aUa aUQ aVK @@ -71620,7 +70882,7 @@ acD aad abi abu -aqB +awL art asA atB @@ -71630,7 +70892,7 @@ awE awE ayd azk -aAl +ayd aBr aCv aDp @@ -71877,7 +71139,7 @@ aad aad abi aik -aqB +awL aru asB atC @@ -71903,7 +71165,7 @@ aMR buZ buZ buW -aQL +aQK aRI aSS aPL @@ -72924,7 +72186,7 @@ aFx aGl aHp aIm -aJu +bxa aKC aLS aMV @@ -73419,7 +72681,7 @@ agE abi aad abi -aqB +awL arA asH atI @@ -73676,7 +72938,7 @@ abi aad aad aaV -aqB +awL aqz aqz atJ @@ -79373,7 +78635,7 @@ bcg bcX bdS aSh -beX +bbg bfy bfY bgJ @@ -82394,7 +81656,7 @@ aak aar aaD aaQ -abb +acX abn abC ach @@ -83422,7 +82684,7 @@ aak aav aaH aaQ -abb +acX buV abF ack diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 066f301502..36f64ad9d2 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -68,7 +68,6 @@ /obj/machinery/light, /obj/machinery/flasher{ id = "AI"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/circuit, @@ -121,8 +120,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/effect/landmark/tripai, /obj/item/device/radio/intercom{ @@ -131,8 +129,7 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/machinery/firealarm{ dir = 1; @@ -183,8 +180,7 @@ freerange = 1; frequency = 1447; name = "Private Channel"; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/circuit, /area/wreck/ai) @@ -206,7 +202,6 @@ network = list("MiniSat") }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -215,8 +210,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/circuit, /area/wreck/ai) @@ -224,8 +218,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor/heavy, /obj/machinery/door/airlock/glass_command{ @@ -264,7 +257,6 @@ uses = 8 }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/holopad, @@ -294,7 +286,6 @@ network = list("MiniSat") }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -328,7 +319,6 @@ freerange = 1; listening = 0; name = "Custom Channel"; - pixel_x = 0; pixel_y = -31 }, /obj/item/device/radio/intercom{ @@ -392,7 +382,6 @@ }, /obj/machinery/flasher{ id = "AI"; - pixel_x = 0; pixel_y = 20 }, /obj/machinery/ai_status_display{ @@ -408,8 +397,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -420,8 +408,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -437,8 +424,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -451,8 +437,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel/white, @@ -461,8 +446,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/wreck/ai) @@ -510,10 +494,7 @@ /turf/open/floor/plating, /area/wreck/ai) "abc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/wreck/ai) "abd" = ( @@ -556,8 +537,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/wreck/ai) @@ -605,11 +585,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "abp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "abq" = ( @@ -619,9 +595,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "abr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "abs" = ( @@ -634,8 +608,7 @@ /obj/machinery/power/apc{ dir = 8; name = "MiniSat Antechamber APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/recharger, /turf/open/floor/plasteel/grimy, @@ -647,8 +620,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) @@ -680,19 +652,12 @@ pixel_x = 28 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "abx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "aby" = ( @@ -702,9 +667,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "abz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "abA" = ( @@ -745,9 +708,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "abF" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) @@ -761,18 +723,14 @@ /area/ai_monitored/turret_protected/aisat_interior) "abH" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/item/device/radio/intercom{ broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; - pixel_x = 0; pixel_y = -29 }, /obj/machinery/camera/motion{ @@ -792,8 +750,7 @@ req_access_txt = "65" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) @@ -906,8 +863,7 @@ req_access_txt = "65" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) @@ -921,18 +877,14 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/AIsatextAP) "acb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "acc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/AIsatextAP) @@ -956,9 +908,8 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat_interior) "acg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -990,9 +941,8 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/AIsatextAS) "ack" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) @@ -1062,8 +1012,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1072,8 +1021,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/item/seeds/glowshroom, /obj/machinery/computer/security/telescreen/entertainment{ @@ -1090,14 +1038,12 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1107,8 +1053,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/sign/poster/official/random{ pixel_y = 32 @@ -1119,8 +1064,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/cable{ d1 = 1; @@ -1139,11 +1083,8 @@ }, /area/security/prison) "acC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1165,11 +1106,7 @@ /turf/open/space, /area/ai_monitored/turret_protected/AIsatextAP) "acF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -1195,11 +1132,8 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/AIsatextAS) "acI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) @@ -1237,8 +1171,7 @@ "acP" = ( /obj/machinery/seed_extractor, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 8 @@ -1246,8 +1179,7 @@ /area/security/prison) "acQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1333,11 +1265,8 @@ /turf/open/floor/plasteel/barber, /area/security/prison) "adf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/cable/yellow{ icon_state = "0-4"; @@ -1346,23 +1275,18 @@ /obj/machinery/power/apc{ dir = 8; name = "MiniSat Port Maintenance APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) "adg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1373,8 +1297,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ pixel_y = 22 @@ -1393,8 +1316,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1407,8 +1329,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAP) @@ -1419,8 +1340,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) @@ -1433,8 +1353,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/darkblue/side{ dir = 8 @@ -1464,8 +1383,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/camera/motion{ c_tag = "MiniSat Foyer"; @@ -1473,7 +1391,6 @@ network = list("MiniSat") }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/ai_monitored/turret_protected/aisat_interior) @@ -1481,12 +1398,10 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) @@ -1498,8 +1413,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -1513,23 +1427,18 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "adr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/airalarm{ pixel_y = 22 @@ -1542,15 +1451,13 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "ads" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) @@ -1563,19 +1470,15 @@ /obj/machinery/power/apc{ dir = 4; name = "MiniSat Starboard Maintenance APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "adu" = ( -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, +/obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, /obj/machinery/newscaster{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1645,7 +1548,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "adG" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/ai_monitored/turret_protected/aisat_interior) @@ -1668,14 +1570,10 @@ /area/ai_monitored/turret_protected/AIsatextAS) "adJ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1699,8 +1597,6 @@ /obj/item/weapon/pen, /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/black, @@ -1708,9 +1604,7 @@ "adN" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1720,10 +1614,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/security/prison) @@ -1757,9 +1649,8 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "adU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) @@ -1769,11 +1660,8 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) "adW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/aisat_interior) @@ -1873,7 +1761,6 @@ pixel_y = -28 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/ai_monitored/turret_protected/aisat_interior) @@ -1894,11 +1781,8 @@ /turf/open/floor/plating, /area/security/transfer) "aep" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -1911,7 +1795,6 @@ }, /obj/machinery/flasher{ id = "executionflash"; - pixel_x = 0; pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ @@ -1920,11 +1803,8 @@ /turf/open/floor/plasteel/black, /area/security/transfer) "aer" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -2057,16 +1937,14 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) @@ -2076,9 +1954,7 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "aeL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -2109,7 +1985,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -2120,8 +1995,7 @@ /area/security/prison) "aeP" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) @@ -2133,16 +2007,12 @@ id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/chair, /turf/open/floor/plasteel/floorgrime, @@ -2157,7 +2027,6 @@ desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; - pixel_x = 0; pixel_y = 24; prison_radio = 1 }, @@ -2185,23 +2054,18 @@ id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/structure/chair, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "aeU" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -2281,9 +2145,7 @@ id = "PCell 2"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "afe" = ( @@ -2303,9 +2165,7 @@ id = "PCell 1"; pixel_x = -28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "afh" = ( @@ -2360,7 +2220,6 @@ icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; - pixel_x = 0; pixel_y = 20 }, /turf/open/space, @@ -2374,14 +2233,10 @@ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /obj/structure/table, -/obj/item/weapon/storage/backpack/duffelbag/sec{ - contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); - desc = "A large duffelbag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; - name = "duffelbag"; +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery{ pixel_y = 5 }, /obj/item/clothing/mask/balaclava, @@ -2395,8 +2250,7 @@ pixel_x = 3 }, /obj/item/device/taperecorder{ - pixel_x = -3; - pixel_y = 0 + pixel_x = -3 }, /turf/open/floor/plasteel/black, /area/security/transfer) @@ -2426,16 +2280,12 @@ /area/security/prison) "afu" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/closed/wall, /area/security/prison) "afv" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/closed/wall, @@ -2502,11 +2352,8 @@ /turf/open/floor/plasteel/black, /area/security/transfer) "afE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/button/ignition{ id = "executionburn"; @@ -2580,7 +2427,6 @@ desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); - pixel_x = 0; pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -2594,8 +2440,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -2619,13 +2464,14 @@ /area/security/prison) "afM" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -2641,8 +2487,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -2674,21 +2519,16 @@ /area/security/armory) "afR" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "afS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) @@ -2699,22 +2539,17 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "afU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "afV" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) @@ -2729,8 +2564,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2748,8 +2582,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/security/transfer) @@ -2763,15 +2596,12 @@ pixel_x = 3 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -2781,19 +2611,15 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/security/transfer) @@ -2802,12 +2628,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -2821,7 +2644,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ aiControlDisabled = 0; - icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; @@ -2829,8 +2651,6 @@ req_access_txt = "2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -2839,12 +2659,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -2855,12 +2672,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel, @@ -2869,20 +2683,16 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 + icon_state = "4-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/prison) "agf" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/prison) @@ -2895,25 +2705,20 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/prison) "agh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/security/prison) "agi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/prison) @@ -2929,8 +2734,7 @@ pixel_x = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/red, /area/security/prison) @@ -3030,20 +2834,15 @@ /area/security/transfer) "agy" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, /area/security/transfer) "agz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; dir = 4 }, /obj/structure/cable{ @@ -3055,8 +2854,7 @@ /area/security/transfer) "agA" = ( /obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 0 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ dir = 9 @@ -3071,8 +2869,6 @@ /area/security/prison) "agD" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/red/side{ @@ -3087,8 +2883,6 @@ /area/security/prison) "agF" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red/side{ @@ -3097,8 +2891,6 @@ /area/security/prison) "agG" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/side{ @@ -3112,8 +2904,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side{ @@ -3167,8 +2957,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/security/armory) @@ -3181,8 +2970,7 @@ cell_type = 5000; dir = 4; name = "Armory APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -3255,8 +3043,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/black, /area/security/transfer) @@ -3264,15 +3051,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/security/transfer) @@ -3281,8 +3065,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Prisoner Transfer Centre"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -3335,14 +3118,11 @@ /obj/item/weapon/gun/energy/temperature/security, /obj/item/clothing/suit/armor/laserproof, /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_x = 0 + dir = 8 }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/black, /area/security/armory) @@ -3406,8 +3186,7 @@ pixel_y = -3 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/sign/nosmoking_2{ pixel_x = 32 @@ -3424,7 +3203,6 @@ /obj/machinery/requests_console{ department = "Security"; departmentType = 5; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -3464,7 +3242,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/red/side{ @@ -3484,8 +3261,7 @@ /obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/red, /area/security/main) @@ -3558,9 +3334,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) @@ -3572,9 +3346,7 @@ }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahF" = ( /obj/machinery/door/firedoor, @@ -3583,13 +3355,12 @@ name = "prison blast door" }, /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahG" = ( /obj/machinery/door/firedoor, @@ -3599,17 +3370,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "ahH" = ( /turf/closed/wall, /area/security/brig) "ahI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/light/small{ dir = 1 }, @@ -3622,7 +3389,6 @@ name = "Evidence Closet" }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; dir = 5 }, /area/security/brig) @@ -3637,17 +3403,11 @@ pixel_x = 3; pixel_y = -3 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/security/armory) "ahL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/security/armory) "ahM" = ( @@ -3656,9 +3416,7 @@ pixel_x = -3; pixel_y = 3 }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_y = 0 - }, +/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = 3; pixel_y = -3 @@ -3684,9 +3442,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/security/armory) "ahO" = ( @@ -3710,8 +3466,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Security Office APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/red/side{ @@ -3729,8 +3484,7 @@ /area/security/main) "ahS" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -3753,7 +3507,6 @@ desc = "An embossed piece of paper from the University of Nanotrasen at Portpoint."; icon_state = "kiddieplaque"; name = "\improper 'Diploma' frame"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/black, @@ -3767,7 +3520,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/black, @@ -3791,7 +3543,6 @@ department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/black, @@ -3867,7 +3618,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -3910,15 +3660,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) @@ -3929,12 +3676,9 @@ /obj/machinery/power/apc{ dir = 1; name = "Crematorium APC"; - pixel_x = 0; pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ d2 = 8; icon_state = "0-8" @@ -3972,7 +3716,6 @@ freerange = 0; frequency = 1459; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/table/glass, @@ -3994,8 +3737,6 @@ /area/security/brig) "ais" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/side{ @@ -4004,20 +3745,17 @@ /area/security/brig) "ait" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) "aiu" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4029,16 +3767,12 @@ req_access_txt = "63" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/red, /area/security/brig) "aiw" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel, @@ -4053,7 +3787,6 @@ }, /obj/effect/landmark/revenantspawn, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/security/brig) @@ -4113,9 +3846,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/newscaster{ pixel_x = -32 @@ -4150,12 +3881,9 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 + icon_state = "2-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/darkred/corner, /area/crew_quarters/heads/hos) "aiI" = ( @@ -4228,8 +3956,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4243,8 +3970,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4255,7 +3981,6 @@ /obj/machinery/button/door{ id = "supplybridge"; name = "Space Bridge Control"; - pixel_x = 0; pixel_y = 27; req_access_txt = "0" }, @@ -4272,8 +3997,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4284,8 +4008,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4329,8 +4052,6 @@ /area/maintenance/department/security/brig) "aiY" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/item/weapon/wrench, @@ -4348,15 +4069,9 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "ajb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/black, @@ -4365,9 +4080,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) @@ -4381,16 +4094,12 @@ network = list("SS13") }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) "aje" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/closed/wall/r_wall, @@ -4398,17 +4107,13 @@ "ajf" = ( /obj/item/weapon/storage/box/bodybags, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/structure/table/glass, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/item/weapon/reagent_containers/syringe{ @@ -4422,19 +4127,14 @@ /area/security/brig) "ajg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (WEST)"; dir = 8 }, /area/security/brig) "ajh" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/white, @@ -4448,8 +4148,6 @@ req_access_txt = "0" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/whitered/side{ @@ -4458,23 +4156,19 @@ /area/security/brig) "ajj" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) "ajk" = ( /obj/structure/cable{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/plasteel, /area/security/brig) "ajl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -4487,11 +4181,8 @@ /turf/closed/wall, /area/security/brig) "ajn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/light/small, /turf/open/floor/plasteel/red/side{ @@ -4516,9 +4207,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/red/side{ @@ -4560,7 +4249,8 @@ /area/security/main) "ajx" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -4667,16 +4357,12 @@ /area/space) "ajM" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "ajN" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/machinery/meter, @@ -4684,8 +4370,6 @@ /area/maintenance/department/security/brig) "ajO" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -4695,8 +4379,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) @@ -4723,9 +4406,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whitered/side{ dir = 8 }, @@ -4734,12 +4415,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/security/brig) @@ -4754,8 +4433,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/whitered/side{ dir = 4 @@ -4765,8 +4443,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, @@ -4775,8 +4452,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -4788,11 +4464,8 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) @@ -4805,8 +4478,7 @@ cell_type = 10000; dir = 4; name = "Brig APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -4838,8 +4510,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault, @@ -4868,14 +4539,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/vault, @@ -4892,9 +4561,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/light{ dir = 8 @@ -4905,8 +4572,6 @@ network = list("SS13") }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/item/device/radio/intercom{ @@ -4920,8 +4585,6 @@ /area/security/main) "akf" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, @@ -4932,8 +4595,6 @@ }, /obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, @@ -4941,8 +4602,6 @@ "akh" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel, @@ -4957,8 +4616,6 @@ }, /obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, @@ -4973,8 +4630,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4986,15 +4641,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -5007,15 +4659,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -5024,8 +4673,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -5033,8 +4681,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/cable{ d1 = 1; @@ -5042,8 +4689,6 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/black, @@ -5092,8 +4737,7 @@ "akt" = ( /turf/open/floor/wood{ broken = 1; - icon_state = "wood-broken"; - tag = "icon-wood-broken" + icon_state = "wood-broken" }, /area/maintenance/department/crew_quarters/dorms) "aku" = ( @@ -5121,9 +4765,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -5143,7 +4785,6 @@ location = "Security" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/vault{ @@ -5206,9 +4847,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -5229,8 +4868,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Brig Control APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -5287,17 +4925,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/security/warden) "akO" = ( /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) @@ -5316,9 +4950,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -5327,7 +4959,8 @@ /area/security/main) "akS" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -5336,9 +4969,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) @@ -5392,8 +5023,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -5403,12 +5033,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -5417,20 +5044,15 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "alf" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5440,14 +5062,14 @@ icon_state = "2-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "alg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall, @@ -5469,23 +5091,19 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/security/brig) "alj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/sign/map{ icon_state = "map-pubby"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -5495,8 +5113,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/security/brig) @@ -5504,8 +5121,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -5526,8 +5142,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -5541,11 +5156,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "alo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -5557,8 +5169,7 @@ /area/security/warden) "alq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -5570,8 +5181,6 @@ /area/security/warden) "als" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/showroomfloor, @@ -5584,8 +5193,6 @@ /obj/structure/table, /obj/machinery/recharger, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/showroomfloor, @@ -5599,8 +5206,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -5609,13 +5214,9 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/red/side{ @@ -5641,13 +5242,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -5680,17 +5278,13 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/light_switch{ pixel_y = -24 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (EAST)"; dir = 4 }, /area/crew_quarters/heads/hos) @@ -5698,11 +5292,9 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/crew_quarters/heads/hos) @@ -5710,11 +5302,9 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/crew_quarters/heads/hos) @@ -5723,8 +5313,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Head of Security's Office"; @@ -5734,11 +5323,9 @@ /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -27 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/crew_quarters/heads/hos) @@ -5750,7 +5337,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Head of Security's Office APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -5758,7 +5344,6 @@ d2 = 4 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/crew_quarters/heads/hos) @@ -5793,8 +5378,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -5816,8 +5400,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -5836,8 +5419,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -5886,8 +5468,7 @@ /obj/machinery/requests_console{ department = "Security"; departmentType = 5; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /mob/living/simple_animal/pet/dog/pug{ name = "McGriff" @@ -5896,17 +5477,13 @@ /area/security/warden) "alY" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "alZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -5918,15 +5495,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -5934,14 +5508,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -5951,8 +5523,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/main) @@ -5960,17 +5531,14 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/main) @@ -5978,8 +5546,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -5990,8 +5557,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -6004,9 +5570,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -6014,8 +5578,7 @@ icon_state = "2-8" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -6033,11 +5596,8 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -6052,8 +5612,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -6067,8 +5626,7 @@ /obj/machinery/status_display{ density = 0; layer = 3; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/light{ dir = 1 @@ -6100,11 +5658,8 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "amr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Brig Gulag Teleporter"; @@ -6175,8 +5730,7 @@ "amx" = ( /obj/item/device/radio/intercom{ dir = 4; - name = "Station Intercom (General)"; - pixel_x = 0 + name = "Station Intercom (General)" }, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6260,8 +5814,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -6284,8 +5837,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6301,8 +5853,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6332,8 +5883,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -6347,8 +5897,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -6398,11 +5947,12 @@ /area/maintenance/department/crew_quarters/dorms) "amT" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/item/device/camera_film, /turf/open/floor/plating{ @@ -6461,8 +6011,6 @@ /area/security/brig) "ane" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel, @@ -6471,15 +6019,12 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/security/warden) @@ -6516,9 +6061,7 @@ req_access_txt = "63" }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0 + layer = 2.9 }, /obj/item/weapon/pen{ pixel_x = 4; @@ -6548,8 +6091,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/disposalpipe/segment, @@ -6559,8 +6101,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/security/warden) @@ -6587,9 +6128,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/structure/sign/securearea{ @@ -6597,8 +6136,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating, /area/maintenance/fore) @@ -6615,8 +6153,7 @@ dir = 4 }, /obj/item/weapon/storage/pod{ - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -6625,8 +6162,7 @@ dir = 8 }, /obj/item/device/radio/intercom{ - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -6718,8 +6254,7 @@ "anC" = ( /obj/machinery/computer/shuttle/labor, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -31; - pixel_y = 0 + pixel_x = -31 }, /turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) @@ -6736,16 +6271,14 @@ /turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "anF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) "anG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -6755,15 +6288,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -6792,8 +6322,7 @@ /area/security/brig) "anK" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) @@ -6805,8 +6334,7 @@ /area/security/brig) "anM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -6825,8 +6353,7 @@ c_tag = "Brig Entrance" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; @@ -6865,9 +6392,7 @@ }, /area/security/brig) "anT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/security/brig) "anU" = ( @@ -6883,9 +6408,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -7015,9 +6538,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/space, /area/solar/starboard) @@ -7036,9 +6557,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/space, /area/solar/port) @@ -7078,7 +6597,6 @@ /obj/machinery/button/flasher{ id = "gulagshuttleflasher"; name = "Flash Control"; - pixel_x = 0; pixel_y = -26; req_access_txt = "1" }, @@ -7116,7 +6634,6 @@ /obj/machinery/button/door{ id = "prison release"; name = "Labor Camp Shuttle Lockdown"; - pixel_x = 0; pixel_y = -25; req_access_txt = "2" }, @@ -7134,25 +6651,18 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/security/brig) "aox" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) "aoy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j1"; dir = 4 @@ -7260,7 +6770,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /obj/item/weapon/folder/yellow{ @@ -7272,7 +6781,6 @@ }, /obj/item/weapon/pen, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/bridge) @@ -7284,21 +6792,18 @@ network = list("SS13") }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/bridge) "aoP" = ( /obj/machinery/computer/communications, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/bridge) "aoQ" = ( /obj/machinery/computer/teleporter, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/bridge) @@ -7312,7 +6817,6 @@ }, /obj/machinery/recharger, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/bridge) @@ -7366,8 +6870,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -7375,9 +6878,7 @@ /turf/open/floor/plating, /area/crew_quarters/dorms) "aoZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7396,9 +6897,7 @@ /area/crew_quarters/dorms) "apb" = ( /obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7412,6 +6911,8 @@ pixel_x = 32 }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/barber, @@ -7433,8 +6934,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light{ dir = 1 @@ -7469,8 +6969,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -7530,8 +7029,6 @@ /area/shuttle/labor) "apo" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/red/side{ @@ -7540,17 +7037,13 @@ /area/security/brig) "app" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) "apq" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side, @@ -7559,15 +7052,11 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/door_timer{ id = "Cell 1"; @@ -7578,17 +7067,13 @@ /area/security/brig) "aps" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/brig) "apt" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/door_timer{ id = "Cell 2"; @@ -7604,9 +7089,7 @@ "apv" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/machinery/door_timer{ id = "Cell 3"; @@ -7617,9 +7100,7 @@ /area/security/brig) "apw" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/red/side, /area/security/brig) @@ -7631,17 +7112,13 @@ "apy" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/red/side, /area/security/brig) "apz" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -7649,18 +7126,14 @@ /area/security/brig) "apA" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall, /area/security/brig) "apB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -7669,22 +7142,16 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) "apD" = ( /obj/structure/table, /obj/item/weapon/folder/red, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, +/obj/item/device/taperecorder, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -7693,16 +7160,12 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) "apF" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/black, @@ -7714,8 +7177,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/closed/wall/r_wall, /area/bridge) @@ -7781,6 +7243,8 @@ /area/bridge) "apM" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/closed/wall/r_wall, @@ -7817,7 +7281,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Vault APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -7839,8 +7302,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Dormitory Maintenance APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable, /obj/machinery/light/small, @@ -7860,8 +7322,7 @@ /area/crew_quarters/dorms) "apV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/barber, /area/crew_quarters/dorms) @@ -7906,8 +7367,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/closet/emcloset{ anchored = 1; @@ -7941,9 +7401,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/circuit/green, /area/maintenance/department/security/brig) @@ -7956,8 +7414,7 @@ "aqi" = ( /obj/machinery/mineral/labor_claim_console{ machinedir = 1; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) @@ -8005,8 +7462,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 1; @@ -8087,8 +7543,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -8117,7 +7572,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/security/brig) @@ -8134,9 +7588,8 @@ /turf/open/floor/plasteel/black, /area/security/brig) "aqy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -8144,9 +7597,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/command{ @@ -8176,7 +7627,6 @@ /area/bridge) "aqD" = ( /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/bridge) @@ -8220,11 +7670,8 @@ /turf/open/floor/plating, /area/bridge) "aqK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 1 @@ -8258,9 +7705,8 @@ }, /area/ai_monitored/nuke_storage) "aqO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -8299,8 +7745,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/grille/broken, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -8311,11 +7756,12 @@ "aqU" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) @@ -8363,9 +7809,8 @@ pixel_y = -2; prison_radio = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) @@ -8376,11 +7821,8 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) @@ -8390,7 +7832,6 @@ /area/security/brig) "arf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8405,7 +7846,6 @@ "arg" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/security/brig) @@ -8416,11 +7856,7 @@ name = "Brig Desk"; req_access_txt = "1" }, -/obj/item/weapon/paper_bin{ - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" - }, +/obj/item/weapon/paper_bin, /obj/item/weapon/pen{ layer = 3.1 }, @@ -8472,9 +7908,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/light/small{ @@ -8516,7 +7950,6 @@ /area/bridge) "arr" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -8594,8 +8027,7 @@ /area/ai_monitored/nuke_storage) "arB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/cable{ d1 = 1; @@ -8649,7 +8081,6 @@ /obj/machinery/button/door{ id = "Dorm3Shutters"; name = "Privacy Shutters Control"; - pixel_x = 0; pixel_y = 26; req_access_txt = "0" }, @@ -8663,12 +8094,10 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/dorms) @@ -8678,7 +8107,6 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -8730,7 +8158,6 @@ desc = "Used for watching the monastery."; name = "Monastery Monitor"; network = list("Monastery"); - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/blue/corner{ @@ -8738,18 +8165,14 @@ }, /area/crew_quarters/dorms) "arK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) "arL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -8906,28 +8329,21 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) "asg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plasteel/black, /area/security/brig) "ash" = ( /obj/structure/chair/office/dark, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/security/brig) @@ -9018,13 +8434,8 @@ /turf/open/floor/plasteel/darkpurple, /area/bridge) "asu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -9060,9 +8471,7 @@ /turf/open/floor/plasteel/black, /area/bridge) "asA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/darkblue/side{ dir = 8 }, @@ -9123,6 +8532,8 @@ }, /obj/machinery/light, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/black, @@ -9145,17 +8556,13 @@ /area/crew_quarters/dorms) "asK" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/dorms) "asL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood{ icon_state = "wood-broken7" @@ -9184,9 +8591,7 @@ icon_state = "pipe-j2"; dir = 2 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "asP" = ( @@ -9239,7 +8644,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/arrival{ @@ -9279,7 +8683,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Fitness Room APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -9290,8 +8693,7 @@ /area/crew_quarters/fitness/recreation) "asY" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -9313,8 +8715,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -9322,8 +8723,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -9384,8 +8784,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/closed/wall, /area/security/brig) @@ -9417,8 +8816,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/side{ @@ -9449,7 +8847,6 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/security/brig) @@ -9524,9 +8921,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/command{ @@ -9559,7 +8954,6 @@ "att" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -9589,9 +8983,7 @@ }, /area/bridge) "atx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/bridge) "aty" = ( @@ -9603,9 +8995,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/bridge) "atz" = ( @@ -9653,8 +9043,7 @@ /area/ai_monitored/nuke_storage) "atF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/structure/sign/poster/official/random{ pixel_x = -32 @@ -9710,9 +9099,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "atO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "atP" = ( @@ -9723,9 +9110,8 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "atQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -9736,8 +9122,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel, @@ -9760,9 +9145,7 @@ name = "prisoner processing blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/security/brig) "atW" = ( /obj/item/weapon/twohanded/required/kirbyplants{ @@ -9802,17 +9185,13 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) "aud" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) @@ -9837,13 +9216,10 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/crew_quarters/heads/captain) @@ -9868,7 +9244,6 @@ department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/carpet, @@ -9879,7 +9254,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/carpet, @@ -9947,7 +9321,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -9996,8 +9369,7 @@ /area/bridge) "aux" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/bridge) @@ -10046,7 +9418,6 @@ /obj/machinery/button/door{ id = "Dorm2Shutters"; name = "Privacy Shutters Control"; - pixel_x = 0; pixel_y = 26; req_access_txt = "0" }, @@ -10060,12 +9431,10 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -10075,7 +9444,6 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -10103,7 +9471,6 @@ /obj/structure/table/wood, /obj/item/weapon/storage/pill_bottle/dice, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; dir = 4 }, /turf/open/floor/carpet, @@ -10114,10 +9481,7 @@ layer = 4 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -10190,8 +9554,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -10221,7 +9584,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Port Solar APC"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plating, @@ -10235,7 +9597,6 @@ id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = -25; - pixel_y = 0; req_access_txt = "2" }, /turf/open/floor/plasteel/red/side{ @@ -10248,15 +9609,13 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "avb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -10274,9 +9633,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ave" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/hallway/primary/fore) "avf" = ( @@ -10318,9 +9675,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "avk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/primary/fore) "avl" = ( @@ -10344,9 +9699,8 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) "avp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) @@ -10371,8 +9725,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10456,7 +9809,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/black, @@ -10522,8 +9874,7 @@ }, /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/black, /area/bridge) @@ -10594,7 +9945,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/black, @@ -10608,8 +9958,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -10624,7 +9973,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -10635,19 +9983,11 @@ dir = 1; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/bridge) "avM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/bridge) "avN" = ( @@ -10676,17 +10016,13 @@ /area/crew_quarters/dorms) "avR" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) "avS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -10803,8 +10139,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/space, /area/solar/port) @@ -10829,8 +10164,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 4; @@ -10844,8 +10178,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -10853,8 +10186,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -10873,8 +10205,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -10890,9 +10221,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -10905,9 +10234,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ name = "Port Solar Access"; @@ -10916,8 +10243,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -10925,8 +10251,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -10939,8 +10264,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -10951,8 +10275,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/item/weapon/vending_refill/cigarette, /obj/effect/spawner/lootdrop/maintenance, @@ -11009,8 +10332,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11019,8 +10341,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11059,8 +10380,7 @@ "awF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11102,8 +10422,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11165,10 +10484,7 @@ /obj/structure/table/wood, /obj/item/weapon/pen, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) @@ -11181,8 +10497,7 @@ /obj/item/weapon/folder/blue, /obj/item/weapon/stamp/captain, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) @@ -11207,7 +10522,6 @@ "axa" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16" @@ -11222,8 +10536,7 @@ /area/ai_monitored/turret_protected/ai_upload) "axb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/bridge) @@ -11238,7 +10551,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) @@ -11319,18 +10631,14 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "axr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "axs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -11386,9 +10694,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/plating{ broken = 1; @@ -11433,7 +10739,6 @@ "axE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; dir = 8 }, /area/hallway/primary/fore) @@ -11486,8 +10791,7 @@ "axN" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/black, /area/crew_quarters/heads/captain) @@ -11565,7 +10869,6 @@ desc = "Used for watching the monastery."; name = "Monastery Monitor"; network = list("Monastery"); - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/wood, @@ -11604,7 +10907,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /obj/structure/bed/dogbed{ @@ -11654,8 +10956,7 @@ "ayf" = ( /obj/structure/table, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/weapon/crowbar, /turf/open/floor/plasteel, @@ -11675,7 +10976,6 @@ /obj/machinery/button/door{ id = "Dorm1Shutters"; name = "Privacy Shutters Control"; - pixel_x = 0; pixel_y = 26; req_access_txt = "0" }, @@ -11689,12 +10989,10 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) @@ -11704,7 +11002,6 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -11723,15 +11020,12 @@ /area/crew_quarters/dorms) "ayl" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aym" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "ayn" = ( @@ -11766,8 +11060,7 @@ /area/crew_quarters/fitness/recreation) "ayt" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -11787,18 +11080,17 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/space, /area/solar/starboard) @@ -11807,18 +11099,17 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/space, /area/solar/port) @@ -11853,8 +11144,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -11868,8 +11158,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -11888,7 +11177,6 @@ }, /obj/machinery/requests_console{ department = "Detective's office"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/grimy, @@ -11932,20 +11220,15 @@ /area/security/detectives_office) "ayI" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; dir = 8 }, /area/hallway/primary/fore) "ayJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11957,7 +11240,6 @@ /area/storage/primary) "ayL" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/neutral/side{ @@ -11984,7 +11266,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /obj/item/weapon/screwdriver{ @@ -12051,11 +11332,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/crew_quarters/heads/captain) @@ -12112,7 +11390,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; dir = 8 }, /area/bridge) @@ -12133,11 +11410,8 @@ }, /area/ai_monitored/turret_protected/ai_upload) "aza" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 1 @@ -12164,12 +11438,10 @@ /turf/open/floor/plasteel/black, /area/ai_monitored/turret_protected/ai_upload) "aze" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/ai_monitored/turret_protected/ai_upload) @@ -12188,7 +11460,6 @@ pixel_x = 28 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; dir = 5 }, /area/ai_monitored/turret_protected/ai_upload) @@ -12205,7 +11476,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; dir = 4 }, /turf/open/floor/plasteel/black, @@ -12220,10 +11490,7 @@ pixel_y = 6 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -12262,9 +11529,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -12364,17 +11630,13 @@ /area/crew_quarters/dorms) "azv" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) "azw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) @@ -12412,7 +11674,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/white/corner, @@ -12425,8 +11686,7 @@ /area/crew_quarters/dorms) "azC" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/white/side, /area/crew_quarters/dorms) @@ -12449,9 +11709,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12473,11 +11731,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -12513,9 +11768,7 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "azN" = ( @@ -12525,7 +11778,6 @@ pixel_x = -28 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; dir = 8 }, /area/hallway/primary/fore) @@ -12537,8 +11789,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Tool Storage APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/neutral/side{ dir = 8 @@ -12570,9 +11821,7 @@ /area/storage/primary) "azT" = ( /obj/structure/table/wood, -/obj/item/weapon/storage/lockbox/medal{ - pixel_y = 0 - }, +/obj/item/weapon/storage/lockbox/medal, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "azU" = ( @@ -12601,7 +11850,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/black, @@ -12656,8 +11904,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/darkblue/corner{ dir = 4 @@ -12666,7 +11913,6 @@ "aAa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; dir = 8 }, /area/bridge) @@ -12690,9 +11936,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) @@ -12727,7 +11971,6 @@ pixel_x = 32 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/ai_monitored/turret_protected/ai_upload) @@ -12830,9 +12073,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -12859,8 +12101,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) @@ -12885,8 +12126,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Head of Personnel APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -12947,8 +12187,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /obj/effect/decal/cleanable/deadcockroach, /turf/open/floor/plasteel/freezer, @@ -12987,10 +12226,7 @@ /obj/structure/table/wood, /obj/item/weapon/pen, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/carpet, /area/security/detectives_office) @@ -13026,8 +12262,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Detective's Office APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -13060,15 +12295,11 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/storage/primary) "aAN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/storage/primary) "aAO" = ( @@ -13108,9 +12339,8 @@ /area/crew_quarters/heads/captain) "aAS" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/crew_quarters/heads/captain) @@ -13137,7 +12367,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; dir = 8 }, /area/bridge) @@ -13181,7 +12410,6 @@ /obj/machinery/computer/upload/ai, /obj/machinery/flasher{ id = "AI"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/circuit, @@ -13190,8 +12418,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance{ name = "Monastery Maintenance"; @@ -13205,7 +12432,6 @@ /obj/machinery/computer/upload/borg, /obj/machinery/flasher{ id = "AI"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/circuit, @@ -13340,14 +12566,10 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) @@ -13393,7 +12615,6 @@ /area/crew_quarters/dorms) "aBs" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -13417,16 +12638,13 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aBw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aBx" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) @@ -13474,9 +12692,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -13487,7 +12703,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; dir = 8 }, /area/hallway/primary/fore) @@ -13594,8 +12809,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Starboard Emergency Storage APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -13612,9 +12826,8 @@ /turf/open/floor/plating, /area/storage/emergency/starboard) "aBU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) @@ -13637,8 +12850,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -13649,8 +12861,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/freezer, @@ -13663,8 +12874,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -13675,8 +12885,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light{ dir = 1 @@ -13914,10 +13123,7 @@ /obj/structure/table, /obj/item/weapon/pen, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -13944,18 +13150,14 @@ /area/storage/emergency/starboard) "aCL" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aCM" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -14040,8 +13242,7 @@ /obj/structure/table, /obj/machinery/recharger, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -14049,9 +13250,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -14064,9 +13263,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14116,7 +13313,6 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-21"; layer = 4.1; - pixel_x = 0; pixel_y = 3 }, /turf/open/floor/plasteel, @@ -14234,8 +13430,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/freezer, @@ -14283,8 +13478,6 @@ /area/shuttle/escape) "aDA" = ( /obj/structure/chair/comfy/black{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/mineral/titanium/blue, @@ -14293,8 +13486,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -14305,8 +13497,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -14350,21 +13541,17 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "aDG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14423,7 +13610,7 @@ "aDM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1; - initialize_directions = 11 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14437,8 +13624,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14479,8 +13665,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/blue/corner{ dir = 1 @@ -14540,8 +13725,7 @@ /area/hallway/primary/central) "aDY" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/blue/corner{ dir = 1 @@ -14619,8 +13803,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Dormitory Bathrooms APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable, /obj/structure/cable{ @@ -14671,10 +13854,11 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/space, @@ -14684,10 +13868,11 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/space, @@ -14766,10 +13951,8 @@ }, /area/maintenance/department/security/brig) "aEC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Dorms"; @@ -14779,7 +13962,6 @@ /area/hallway/primary/central) "aED" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; dir = 4 }, /turf/open/floor/plasteel, @@ -14788,8 +13970,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 2; @@ -14844,9 +14025,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14898,6 +14078,8 @@ /area/hallway/primary/central) "aEN" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ @@ -14909,15 +14091,15 @@ /area/hallway/primary/central) "aEO" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aEP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14927,8 +14109,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14955,9 +14136,8 @@ icon_state = "pipe-j2"; dir = 2 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -14971,8 +14151,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Robo"; @@ -15030,15 +14209,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - layer = 2.4; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aEY" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ @@ -15137,6 +14314,8 @@ /area/crew_quarters/toilet/restrooms) "aFf" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -15173,8 +14352,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -15189,8 +14367,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -15207,6 +14384,8 @@ icon_state = "1-2" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -15214,8 +14393,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -15259,8 +14437,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -15280,7 +14457,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -15292,7 +14468,6 @@ icon_state = "plant-17" }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; dir = 5 }, /area/hallway/secondary/exit/departure_lounge) @@ -15348,7 +14523,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel, @@ -15370,8 +14544,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -15463,15 +14636,13 @@ dir = 8; icon_state = "direction_sec"; pixel_x = -32; - pixel_y = -24; - tag = "icon-direction_sec (WEST)" + pixel_y = -24 }, /obj/structure/sign/directions/evac{ dir = 1; icon_state = "direction_evac"; pixel_x = -32; - pixel_y = -32; - tag = "icon-direction_evac (NORTH)" + pixel_y = -32 }, /obj/structure/sign/directions/science{ pixel_x = -32; @@ -15531,8 +14702,7 @@ /area/crew_quarters/dorms) "aFT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -15701,19 +14871,16 @@ /area/hallway/secondary/exit/departure_lounge) "aGq" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Departure Lounge Holding Area"; dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/hallway/secondary/exit/departure_lounge) @@ -15727,7 +14894,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/machinery/light/small{ @@ -15879,9 +15045,8 @@ /turf/open/floor/plasteel, /area/teleporter) "aGP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/camera{ c_tag = "Monastery Secondary Dock"; @@ -15977,11 +15142,8 @@ /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) "aHg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 10 @@ -16000,9 +15162,7 @@ /turf/open/floor/plasteel/red/side, /area/hallway/secondary/exit/departure_lounge) "aHj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 6 }, @@ -16037,10 +15197,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/storage/art) @@ -16048,8 +15206,7 @@ /obj/machinery/photocopier, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/neutral/side{ dir = 5 @@ -16080,9 +15237,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria/lunchroom) @@ -16097,7 +15253,6 @@ /area/crew_quarters/cafeteria/lunchroom) "aHt" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -16112,8 +15267,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, @@ -16136,11 +15290,8 @@ req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light_switch{ pixel_x = 36; @@ -16212,7 +15363,6 @@ id = "evashutter"; name = "EVA Shutters Control"; pixel_x = -24; - pixel_y = 0; req_access_txt = "18" }, /obj/effect/turf_decal/stripes/line{ @@ -16281,10 +15431,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/blue/corner{ @@ -16296,8 +15447,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/teleporter) @@ -16342,17 +15492,13 @@ /obj/machinery/requests_console{ department = "Security"; departmentType = 5; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 30 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -16380,7 +15526,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/red/side{ @@ -16415,7 +15560,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 30; supply_display = 1 }, @@ -16564,6 +15708,8 @@ /area/maintenance/department/cargo) "aIn" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -16589,7 +15735,6 @@ /area/maintenance/department/cargo) "aIp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/carpet, @@ -16643,7 +15788,6 @@ "aIu" = ( /obj/machinery/button/massdriver{ id = "trash"; - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/stripes/line, @@ -16701,8 +15845,7 @@ "aIB" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -16752,14 +15895,10 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/storage/art) @@ -16773,8 +15912,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Art Storage APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -16794,11 +15932,8 @@ c_tag = "Lunchroom"; dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; @@ -16811,7 +15946,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Cafeteria APC"; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/neutral/side, @@ -16835,9 +15969,8 @@ /area/crew_quarters/toilet/auxiliary) "aIN" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/auxiliary) @@ -16930,10 +16063,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/clothing/shoes/magboots{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/clothing/shoes/magboots, /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; @@ -16974,10 +16104,7 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/tank/jetpack/carbondioxide{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/tank/jetpack/carbondioxide, /obj/item/weapon/tank/jetpack/carbondioxide{ pixel_x = -4; pixel_y = 1 @@ -17090,10 +16217,8 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aJq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -17162,8 +16287,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -17204,8 +16328,7 @@ }, /obj/machinery/button/massdriver{ id = "trash"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -17331,8 +16454,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/escape{ dir = 1 @@ -17351,8 +16473,7 @@ cell_type = 5000; dir = 4; name = "Departure Lounge APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/firealarm{ dir = 1; @@ -17461,8 +16582,7 @@ }, /obj/machinery/requests_console{ department = "EVA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/camera{ c_tag = "EVA Storage"; @@ -17482,8 +16602,7 @@ "aKe" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -17502,8 +16621,7 @@ network = list("SS13") }, /obj/structure/extinguisher_cabinet{ - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/blue/corner{ dir = 1 @@ -17514,12 +16632,10 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/teleporter) @@ -17531,8 +16647,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/teleporter) @@ -17542,11 +16657,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/teleporter) @@ -17572,8 +16684,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -17599,10 +16710,11 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -17666,9 +16778,7 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/quartermaster/office) "aKu" = ( @@ -17720,9 +16830,7 @@ /area/quartermaster/office) "aKz" = ( /obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) "aKA" = ( @@ -17746,10 +16854,8 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) "aKD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) @@ -17759,9 +16865,7 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aKF" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating/airless, /area/shuttle/supply) "aKG" = ( @@ -17928,8 +17032,7 @@ "aLc" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/extinguisher_cabinet{ - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -17941,11 +17044,8 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/storage/eva) @@ -17957,9 +17057,8 @@ /turf/open/floor/plasteel, /area/storage/eva) "aLf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/storage/eva) @@ -18002,8 +17101,7 @@ /area/hallway/primary/central) "aLn" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown/corner{ @@ -18015,8 +17113,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Security Post - Cargo APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/closet/wardrobe/red, /turf/open/floor/plasteel/red/side{ @@ -18024,12 +17121,7 @@ }, /area/security/checkpoint/supply) "aLp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/supply) "aLq" = ( @@ -18058,9 +17150,8 @@ /obj/structure/disposalpipe/wrapsortjunction{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -18083,7 +17174,6 @@ id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; - pixel_y = 0; req_access_txt = "31" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18115,7 +17205,6 @@ /area/shuttle/supply) "aLD" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -18188,18 +17277,13 @@ /area/maintenance/disposal) "aLL" = ( /obj/structure/chair/comfy/beige{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/carpet, /area/shuttle/escape) "aLM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -18240,8 +17324,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -18250,11 +17333,8 @@ dir = 8; icon_state = "pipe-j2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -18414,8 +17494,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -18445,8 +17524,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -18470,8 +17548,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -18594,12 +17671,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aMv" = ( @@ -18632,10 +17707,7 @@ /obj/item/weapon/folder/yellow, /obj/item/weapon/pen, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -18662,9 +17734,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aME" = ( /obj/machinery/door/poddoor/shutters{ @@ -18673,9 +17743,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aMF" = ( /obj/machinery/door/poddoor/shutters{ @@ -18683,9 +17751,7 @@ name = "warehouse shutters" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aMG" = ( /obj/structure/closet/crate/internals, @@ -18730,11 +17796,8 @@ /turf/open/floor/plating, /area/maintenance/disposal) "aMM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -18753,10 +17816,7 @@ /turf/open/floor/plating, /area/maintenance/disposal) "aMO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -18766,15 +17826,12 @@ /obj/structure/disposalpipe/segment, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/plating{ - tag = "icon-warnplatecorner (EAST)" - }, +/turf/open/floor/plating, /area/maintenance/disposal) "aMQ" = ( /obj/machinery/door/airlock/titanium{ @@ -18807,8 +17864,7 @@ /area/hallway/secondary/exit/departure_lounge) "aMV" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/vending/coffee, /turf/open/floor/plasteel, @@ -18824,6 +17880,8 @@ /area/maintenance/department/crew_quarters/bar) "aMX" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -18853,9 +17911,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light/small{ @@ -18889,7 +17945,6 @@ icon_state = "2-4" }, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/wood{ @@ -18902,11 +17957,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -18943,8 +17995,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) @@ -19055,7 +18106,6 @@ id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; - pixel_y = 0; req_access_txt = "31" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -19082,8 +18132,7 @@ cell_type = 2500; dir = 4; name = "Cargo Maintenance APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -19105,8 +18154,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Disposal APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -19139,8 +18187,7 @@ dir = 4; name = "security camera"; pixel_x = 6; - pixel_y = -7; - pixel_x = 0 + pixel_y = -7 }, /turf/open/floor/grass, /area/hallway/secondary/exit/departure_lounge) @@ -19243,9 +18290,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, @@ -19298,9 +18343,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, /area/crew_quarters/bar) "aNX" = ( @@ -19434,8 +18477,7 @@ /area/quartermaster/office) "aOl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -19463,15 +18505,13 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aOp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -19509,7 +18549,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 30; supply_display = 1 }, @@ -19574,10 +18613,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -19590,8 +18630,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -19607,8 +18646,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ dir = 2; @@ -19627,8 +18665,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -19642,8 +18679,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -19657,8 +18693,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -19704,8 +18739,7 @@ /area/solar/starboard) "aOK" = ( /obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" + dir = 4 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -19773,11 +18807,8 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) @@ -19791,9 +18822,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor, /area/hydroponics) @@ -19810,7 +18840,6 @@ "aOV" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 0; pixel_y = 3 }, /obj/item/weapon/reagent_containers/spray/plantbgone{ @@ -19834,9 +18863,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -19849,15 +18876,12 @@ dir = 2; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/requests_console{ department = "Kitchen"; departmentType = 2; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/showroomfloor, @@ -19926,8 +18950,7 @@ dir = 8 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aPh" = ( @@ -19935,9 +18958,8 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -20114,11 +19136,8 @@ /turf/open/floor/mineral/titanium, /area/shuttle/escape) "aPD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -20157,8 +19176,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -20321,8 +19339,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -20452,12 +19469,10 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aQn" = ( @@ -20474,8 +19489,7 @@ /area/quartermaster/office) "aQp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/loadingarea{ dir = 8 @@ -20490,9 +19504,7 @@ id = "cargodeliver" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/quartermaster/office) "aQr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -20501,20 +19513,17 @@ }, /area/quartermaster/office) "aQs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/office) "aQt" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/conveyor_switch{ id = "cargodeliver" @@ -20555,9 +19564,8 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aQy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -20604,7 +19612,6 @@ pixel_y = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -20640,8 +19647,7 @@ }, /obj/machinery/button/massdriver{ id = "chapelgun"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -20680,9 +19686,7 @@ /obj/structure/sign/directions/evac{ dir = 1; icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-direction_evac (NORTH)" + pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -20777,7 +19781,6 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20812,7 +19815,6 @@ /obj/machinery/requests_console{ department = "Bar"; departmentType = 2; - pixel_x = 0; pixel_y = 30; receive_ore_updates = 1 }, @@ -20845,7 +19847,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/black, @@ -20871,14 +19872,12 @@ /area/crew_quarters/bar) "aRc" = ( /obj/structure/piano{ - tag = "icon-piano"; icon_state = "piano" }, /turf/open/floor/wood, /area/crew_quarters/theatre) "aRd" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/carpet{ @@ -20955,19 +19954,19 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/redblue, /area/crew_quarters/theatre) "aRl" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/light_switch{ pixel_x = 24; @@ -21003,7 +20002,6 @@ dir = 8; layer = 4; pixel_x = 32; - pixel_y = 0; supply_display = 1 }, /turf/open/floor/plasteel/brown{ @@ -21070,8 +20068,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/closed/wall, /area/maintenance/department/chapel/monastery) @@ -21111,8 +20108,7 @@ layer = 4.1 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/escape{ dir = 6 @@ -21124,7 +20120,6 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/black, @@ -21133,11 +20128,8 @@ /obj/machinery/camera{ c_tag = "Custodial Quarters" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 1 @@ -21145,7 +20137,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /obj/machinery/light/small{ @@ -21210,11 +20201,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "aRQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) @@ -21233,9 +20221,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/black, /area/crew_quarters/bar) @@ -21266,11 +20253,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/bar) "aRX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -21289,11 +20273,8 @@ /turf/open/floor/plasteel/black, /area/crew_quarters/bar) "aRZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light/small{ brightness = 3; @@ -21322,9 +20303,8 @@ }, /area/crew_quarters/theatre) "aSc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 4 @@ -21349,9 +20329,8 @@ c_tag = "Theatre Storage"; dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/redblue, /area/crew_quarters/theatre) @@ -21382,11 +20361,8 @@ dir = 8; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/item/cardboard_cutout, /obj/structure/mirror{ @@ -21407,8 +20383,7 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aSk" = ( @@ -21517,10 +20492,7 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, -/obj/item/device/assembly/timer{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/device/assembly/timer, /turf/open/floor/plating, /area/maintenance/department/cargo) "aSw" = ( @@ -21615,9 +20587,8 @@ /turf/open/floor/plasteel/vault, /area/janitor) "aSG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/vault, @@ -21650,7 +20621,6 @@ /obj/machinery/requests_console{ department = "Hydroponics"; departmentType = 2; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/green/corner{ @@ -21662,7 +20632,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/green/side{ @@ -21766,8 +20735,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/brown{ dir = 1 @@ -21827,8 +20795,7 @@ /area/quartermaster/office) "aTg" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/firealarm{ dir = 4; @@ -21849,8 +20816,7 @@ /area/quartermaster/storage) "aTi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -21951,6 +20917,8 @@ "aTu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -21963,8 +20931,7 @@ pixel_y = 30 }, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -21986,18 +20953,15 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; dir = 5 }, /area/security/checkpoint/customs) "aTz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -22014,8 +20978,7 @@ /area/janitor) "aTB" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -22037,15 +21000,13 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aTG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/segment, /obj/machinery/firealarm{ @@ -22089,7 +21050,6 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/vault{ @@ -22155,7 +21115,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/black, @@ -22167,8 +21126,7 @@ pixel_x = -28 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aTT" = ( @@ -22178,7 +21136,6 @@ dir = 4; layer = 4; pixel_x = -32; - pixel_y = 0; supply_display = 1 }, /turf/open/floor/plasteel, @@ -22218,11 +21175,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -22252,11 +21206,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -22290,8 +21241,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -22303,6 +21253,8 @@ /area/maintenance/department/cargo) "aUg" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -22320,11 +21272,8 @@ }, /area/hallway/secondary/entry) "aUi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/arrival{ dir = 1 @@ -22332,8 +21281,6 @@ /area/hallway/secondary/entry) "aUj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/arrival{ @@ -22346,8 +21293,6 @@ dir = 2 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/arrival{ @@ -22356,14 +21301,11 @@ /area/hallway/secondary/entry) "aUl" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/arrival{ @@ -22372,8 +21314,6 @@ /area/hallway/secondary/entry) "aUm" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plasteel/arrival{ @@ -22392,19 +21332,15 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/red/side{ dir = 8 }, /area/security/checkpoint/customs) "aUo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/checkpoint/customs) @@ -22415,11 +21351,8 @@ /turf/open/floor/plasteel, /area/security/checkpoint/customs) "aUq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/checkpoint/customs) @@ -22433,7 +21366,6 @@ dir = 4 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (EAST)"; dir = 4 }, /area/security/checkpoint/customs) @@ -22446,8 +21378,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -22458,8 +21389,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22474,6 +21404,8 @@ icon_state = "1-2" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -22484,13 +21416,11 @@ /area/hallway/primary/central) "aUv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central) @@ -22510,7 +21440,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Custodial Closet APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -22550,9 +21479,8 @@ /turf/open/floor/plasteel, /area/hydroponics) "aUD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -22612,8 +21540,7 @@ /area/crew_quarters/bar) "aUO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/landmark/xmastree, /turf/open/floor/carpet{ @@ -22630,11 +21557,8 @@ }, /area/crew_quarters/bar) "aUQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -22657,8 +21581,7 @@ pixel_x = -24 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "aUT" = ( @@ -22671,14 +21594,10 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -26 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /obj/structure/extinguisher_cabinet{ pixel_x = -26 @@ -22727,11 +21646,8 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "aUZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -22760,8 +21676,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -22775,7 +21690,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Cargo Bay APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -22792,8 +21706,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -22802,7 +21715,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel, @@ -22863,11 +21775,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aVo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -22885,8 +21794,7 @@ /area/hallway/secondary/entry) "aVr" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/neutral/corner{ @@ -22916,10 +21824,7 @@ /obj/item/weapon/pen, /obj/structure/table, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/customs) @@ -22955,9 +21860,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -22968,7 +21872,6 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/button/door{ @@ -22976,27 +21879,23 @@ id = "jangarage"; name = "Custodial Closet Shutters Control"; pixel_x = -25; - pixel_y = 0; req_access_txt = "26" }, /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime, /area/janitor) "aVz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime, /area/janitor) @@ -23005,8 +21904,7 @@ /obj/machinery/requests_console{ department = "Janitorial"; departmentType = 1; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/cable{ d1 = 1; @@ -23047,9 +21945,7 @@ /area/crew_quarters/kitchen) "aVF" = ( /obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aVG" = ( @@ -23079,9 +21975,8 @@ /area/crew_quarters/kitchen) "aVJ" = ( /obj/effect/landmark/start/bartender, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/black, @@ -23104,8 +21999,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -23168,9 +22062,8 @@ }, /area/crew_quarters/bar) "aVV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -23292,8 +22185,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating, /area/maintenance/solars/starboard) @@ -23383,8 +22275,7 @@ /area/hydroponics) "aWu" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/camera{ c_tag = "Hydroponics South"; @@ -23485,7 +22376,6 @@ "aWH" = ( /obj/structure/disposalpipe/segment, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/plasteel/vault{ @@ -23493,10 +22383,8 @@ }, /area/crew_quarters/bar) "aWI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/item/clothing/shoes/sandal, /turf/open/floor/plasteel/black, @@ -23534,12 +22422,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/item/weapon/storage/belt/fannypack/yellow, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; dir = 9 }, /area/quartermaster/qm) @@ -23553,13 +22439,11 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/brown{ - dir = 1; - tag = "icon-brown (NORTH)" + dir = 1 }, /area/quartermaster/qm) "aWP" = ( @@ -23578,7 +22462,6 @@ pixel_x = -28 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; dir = 9 }, /area/quartermaster/miningdock) @@ -23604,8 +22487,7 @@ /obj/structure/closet/emcloset, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/brown{ dir = 5 @@ -23630,8 +22512,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -23639,8 +22520,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ name = "Starboard Solar Access"; @@ -23652,9 +22532,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -23667,8 +22545,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/solars/starboard) @@ -23681,8 +22558,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/starboard) @@ -23690,8 +22566,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 4; @@ -23705,8 +22580,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/starboard) @@ -23714,8 +22588,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -23730,8 +22603,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/space, /area/solar/starboard) @@ -23770,7 +22642,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/window/reinforced/fulltile, @@ -23829,8 +22700,6 @@ /area/hallway/secondary/entry) "aXr" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -23838,8 +22707,6 @@ /area/hallway/secondary/entry) "aXs" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, @@ -23872,11 +22739,8 @@ /turf/open/floor/plasteel/floorgrime, /area/janitor) "aXw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/janitor) @@ -23885,9 +22749,7 @@ /obj/item/weapon/mop, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/floorgrime, /area/janitor) @@ -23924,11 +22786,8 @@ /turf/open/floor/plasteel/black, /area/chapel/main/monastery) "aXE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/black, @@ -24018,14 +22877,10 @@ /obj/machinery/power/apc{ dir = 8; name = "Quartermaster APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/brown{ dir = 8 @@ -24033,6 +22888,8 @@ /area/quartermaster/qm) "aXP" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -24053,8 +22910,7 @@ /obj/item/weapon/folder/yellow, /obj/item/weapon/pen, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/miningdock) "aXT" = ( @@ -24072,11 +22928,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "aXU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -24085,8 +22938,7 @@ /obj/machinery/requests_console{ department = "Mining"; departmentType = 0; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/brown/corner, /area/quartermaster/miningdock) @@ -24123,8 +22975,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Starboard Solar APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plating, /area/maintenance/solars/starboard) @@ -24144,8 +22995,6 @@ /area/maintenance/solars/starboard) "aYc" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel, @@ -24155,26 +23004,20 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aYe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aYf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aYg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -24228,7 +23071,6 @@ /area/janitor) "aYm" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -24238,11 +23080,8 @@ }, /area/hydroponics) "aYn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -24303,8 +23142,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -24360,18 +23198,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aYz" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8; @@ -24405,7 +23239,6 @@ /area/crew_quarters/bar) "aYC" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/light, @@ -24417,7 +23250,6 @@ /area/crew_quarters/bar) "aYE" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /obj/machinery/light, @@ -24490,7 +23322,6 @@ dir = 4; layer = 4; pixel_x = -32; - pixel_y = 0; supply_display = 1 }, /turf/open/floor/plasteel/brown{ @@ -24513,8 +23344,7 @@ "aYO" = ( /obj/machinery/mineral/equipment_vendor, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/miningdock) "aYP" = ( @@ -24559,10 +23389,7 @@ "aYV" = ( /obj/structure/table, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -24581,11 +23408,10 @@ /turf/open/floor/plating, /area/shuttle/arrival) "aYZ" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_r" +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 }, -/turf/open/floor/plasteel/black, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "aZa" = ( /obj/machinery/camera{ @@ -24594,8 +23420,7 @@ network = list("SS13") }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -24636,8 +23461,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -24652,8 +23476,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24665,8 +23488,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24674,9 +23496,7 @@ /obj/structure/sign/directions/evac{ dir = 8; icon_state = "direction_evac"; - pixel_x = 0; - pixel_y = -32; - tag = "icon-direction_evac (WEST)" + pixel_y = -32 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -24684,8 +23504,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -24699,6 +23518,8 @@ icon_state = "1-2" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -24753,7 +23574,6 @@ id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -24; - pixel_y = 0; req_access_txt = "28" }, /obj/machinery/light_switch{ @@ -24829,7 +23649,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plating, @@ -24851,8 +23670,7 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_x = -30; - pixel_y = 0 + pixel_x = -30 }, /turf/open/floor/plasteel/brown{ dir = 10 @@ -24861,10 +23679,7 @@ "aZD" = ( /obj/structure/table, /obj/item/weapon/clipboard, -/obj/item/weapon/stamp/qm{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/stamp/qm, /obj/machinery/light, /obj/machinery/camera{ c_tag = "Cargo Quartermaster's Office"; @@ -24904,8 +23719,7 @@ dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/miningdock) "aZG" = ( @@ -24922,10 +23736,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "aZH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -25040,13 +23852,12 @@ /area/shuttle/arrival) "aZX" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/black, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "aZY" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -25127,7 +23938,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/purple/corner{ @@ -25175,8 +23985,7 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/structure/sign/poster/official/random{ pixel_y = 32 @@ -25235,15 +24044,13 @@ dir = 1; icon_state = "direction_evac"; pixel_x = -32; - pixel_y = 38; - tag = "icon-direction_evac (NORTH)" + pixel_y = 38 }, /obj/structure/sign/directions/medical{ dir = 8; icon_state = "direction_med"; pixel_x = -32; - pixel_y = 28; - tag = "icon-direction_med (WEST)" + pixel_y = 28 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -25270,16 +24077,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_corner (WEST)" - }, +/turf/open/floor/plasteel, /area/science/robotics/mechbay) "baw" = ( /turf/open/floor/plasteel, @@ -25288,9 +24091,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) @@ -25301,17 +24102,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) @@ -25323,13 +24120,10 @@ /obj/machinery/power/apc{ dir = 8; name = "Mining Dock APC"; - pixel_x = -24; - pixel_y = 0; - pixel_z = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/quartermaster/miningdock) "baB" = ( @@ -25362,20 +24156,16 @@ /obj/effect/landmark/start{ name = "Assistant" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "baG" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, -/turf/open/floor/plasteel/black, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "baH" = ( /obj/structure/grille, @@ -25399,11 +24189,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) @@ -25522,7 +24309,6 @@ /area/hallway/primary/central) "baU" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel, @@ -25539,15 +24325,12 @@ dir = 1; icon_state = "direction_evac"; pixel_x = 32; - pixel_y = 38; - tag = "icon-direction_evac (NORTH)" + pixel_y = 38 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "baW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel, @@ -25601,15 +24384,13 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel, @@ -25618,8 +24399,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -25641,14 +24421,12 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -25659,8 +24437,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -25675,8 +24452,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -25708,8 +24484,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -25723,10 +24498,11 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -25742,6 +24518,8 @@ "bbk" = ( /obj/structure/closet/secure_closet/miner, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -25749,8 +24527,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/brown, /area/quartermaster/miningdock) @@ -25762,8 +24539,7 @@ "bbm" = ( /obj/structure/closet/secure_closet/miner, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/brown{ dir = 6 @@ -25799,8 +24575,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -25808,8 +24583,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/grille/broken, /turf/open/floor/plating, @@ -25830,8 +24604,7 @@ /area/shuttle/arrival) "bbu" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -25850,7 +24623,8 @@ /area/crew_quarters/lounge) "bbx" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -25891,11 +24665,8 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -25907,19 +24678,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bbD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bbE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/hallway/primary/central) "bbF" = ( @@ -25932,15 +24697,13 @@ /area/hallway/primary/central) "bbG" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/button/door{ dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; - pixel_x = 25; - pixel_y = 0 + pixel_x = 25 }, /turf/open/floor/plasteel/purple/corner, /area/hallway/primary/central) @@ -25952,8 +24715,7 @@ dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; - pixel_x = -25; - pixel_y = 0 + pixel_x = -25 }, /obj/machinery/camera{ c_tag = "Mech Bay"; @@ -25965,18 +24727,15 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "bbJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/stripes/line{ @@ -26027,11 +24786,10 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) "bbR" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_l" +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 4 }, -/turf/open/floor/plasteel/black, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "bbS" = ( /obj/structure/chair/comfy/beige{ @@ -26055,8 +24813,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) @@ -26081,7 +24838,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1; - initialize_directions = 11 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -26135,9 +24892,7 @@ /turf/open/floor/plasteel/blue/corner, /area/hallway/primary/central) "bcc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/central) "bcd" = ( @@ -26183,11 +24938,8 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "bci" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -26211,8 +24963,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -26221,8 +24972,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -26242,8 +24992,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -26258,8 +25007,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -26339,8 +25087,6 @@ /area/shuttle/arrival) "bcu" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plasteel/neutral/corner, @@ -26353,8 +25099,6 @@ name = "privacy shutters" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -26370,25 +25114,19 @@ pixel_y = -22 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "bcx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "bcy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) @@ -26545,8 +25283,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -26562,8 +25299,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -26576,6 +25312,8 @@ /area/maintenance/department/cargo) "bde" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -26739,8 +25477,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -26755,7 +25492,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/red/side{ @@ -26765,7 +25501,6 @@ "bdy" = ( /obj/machinery/computer/secure_data, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/red/side{ @@ -26796,8 +25531,7 @@ "bdC" = ( /obj/structure/chair, /turf/open/floor/plasteel/whiteblue/side{ - dir = 1; - tag = "icon-whiteblue (NORTH)" + dir = 1 }, /area/medical/medbay/central) "bdD" = ( @@ -26806,8 +25540,7 @@ dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ - dir = 1; - tag = "icon-whiteblue (NORTH)" + dir = 1 }, /area/medical/medbay/central) "bdE" = ( @@ -26923,10 +25656,7 @@ name = "Robotics Desk"; req_access_txt = "29" }, -/obj/item/weapon/paper_bin{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/door/poddoor/shutters/preopen{ id = "robotics"; @@ -26939,9 +25669,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -26965,11 +25693,8 @@ /turf/open/floor/engine, /area/science/explab) "bdY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/engine, /area/science/explab) @@ -27018,24 +25743,18 @@ /area/science/xenobiology) "bee" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/closed/wall/r_wall, /area/science/xenobiology) "bef" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/science/xenobiology) "beg" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -27063,8 +25782,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -27078,8 +25796,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27182,9 +25899,7 @@ dir = 2; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/airalarm{ pixel_y = 22 }, @@ -27193,10 +25908,7 @@ "bez" = ( /obj/structure/table, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /obj/item/weapon/pen, /obj/structure/sign/poster/official/random{ @@ -27220,7 +25932,8 @@ "beC" = ( /obj/item/weapon/extinguisher, /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -27231,11 +25944,8 @@ /turf/open/floor/plasteel/black, /area/medical/morgue) "beE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/medical/morgue) @@ -27260,11 +25970,8 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -27287,10 +25994,7 @@ /obj/structure/table, /obj/item/weapon/pen, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -27305,15 +26009,13 @@ "beM" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "beN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -27474,15 +26176,12 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -27494,7 +26193,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Robotics Lab APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -27538,8 +26236,7 @@ /area/science/explab) "bfq" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, @@ -27561,13 +26258,13 @@ /area/science/explab) "bfs" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/engine, /area/science/explab) @@ -27576,7 +26273,6 @@ desc = "A guide to the drone shell dispenser, detailing the constructive and destructive applications of modern repair drones, as well as the development of the uncorruptable cyborg servants of tomorrow, available today."; icon_state = "kiddieplaque"; name = "\improper 'Perfect Drone' sign"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/engine, @@ -27600,8 +26296,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/grille/broken, /obj/structure/disposalpipe/segment{ @@ -27617,8 +26312,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/grille/broken, /obj/structure/disposalpipe/segment{ @@ -27641,8 +26335,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -27653,8 +26346,7 @@ /obj/machinery/camera{ c_tag = "Xenobiology Test Chamber"; dir = 2; - network = list("Xeno","RD"); - pixel_x = 0 + network = list("Xeno","RD") }, /obj/machinery/light{ dir = 1 @@ -27734,11 +26426,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -27787,7 +26476,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Port Emergency Storage APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable{ @@ -27869,10 +26557,8 @@ /turf/open/floor/plasteel/red/side, /area/security/checkpoint/medical) "bfX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/medical) @@ -27885,9 +26571,8 @@ /area/security/checkpoint/medical) "bfZ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -27908,11 +26593,8 @@ }, /area/science/research) "bgd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -27930,9 +26612,8 @@ /area/science/research) "bgg" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -27974,9 +26655,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -27987,9 +26666,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bgl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -28019,8 +26697,7 @@ amount = 50 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -28033,9 +26710,7 @@ /turf/open/floor/engine, /area/science/explab) "bgo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/engine, /area/science/explab) "bgp" = ( @@ -28121,8 +26796,6 @@ "bgC" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating{ @@ -28140,27 +26813,20 @@ }, /area/maintenance/department/cargo) "bgE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgF" = ( /obj/item/device/radio/beacon, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgG" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plasteel/neutral/corner, @@ -28283,8 +26949,7 @@ "bgT" = ( /obj/structure/table/reinforced, /obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 0 + pixel_x = 1 }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 8 @@ -28308,18 +26973,13 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bgX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bgY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/research) "bgZ" = ( @@ -28368,8 +27028,7 @@ "bhd" = ( /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-18"; - layer = 3; - pixel_y = 0 + layer = 3 }, /turf/open/floor/plasteel/whitepurple/side, /area/science/research) @@ -28391,9 +27050,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -28414,8 +27071,7 @@ /obj/item/device/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -28492,7 +27148,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -28523,10 +27178,7 @@ /obj/item/clothing/glasses/science, /obj/item/clothing/glasses/science, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 5 @@ -28613,13 +27265,11 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/computer/auxillary_base{ density = 0; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plating, /area/shuttle/auxillary_base) @@ -28641,22 +27291,18 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 0; pixel_y = 26 }, /obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/medical/genetics) "bhJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/medical/genetics) @@ -28668,18 +27314,15 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/medical/genetics) "bhL" = ( /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/medical/genetics) @@ -28687,11 +27330,9 @@ /obj/machinery/vending/clothing, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = 27 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; dir = 1 }, /area/medical/genetics) @@ -28719,21 +27360,17 @@ }, /obj/item/weapon/storage/box/masks, /turf/open/floor/plasteel/whiteblue/side{ - dir = 1; - tag = "icon-whiteblue (NORTH)" + dir = 1 }, /area/medical/medbay/zone3) "bhP" = ( /obj/machinery/vending/medical, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; dir = 5 }, /area/medical/medbay/zone3) "bhQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/medical/morgue) "bhR" = ( @@ -28754,8 +27391,7 @@ dir = 5 }, /turf/open/floor/plasteel/whiteblue/side{ - dir = 1; - tag = "icon-whiteblue (NORTH)" + dir = 1 }, /area/medical/medbay/central) "bhT" = ( @@ -28763,7 +27399,6 @@ dir = 10 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; dir = 5 }, /area/medical/medbay/central) @@ -28773,9 +27408,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -32; - pixel_y = 0; - pixel_z = 0 + pixel_x = -32 }, /obj/item/device/radio/intercom{ broadcasting = 0; @@ -28783,7 +27416,6 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -28796,7 +27428,6 @@ }, /obj/effect/landmark/start/medical_doctor, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTHEAST)"; dir = 5 }, /area/medical/medbay/central) @@ -28882,8 +27513,7 @@ /obj/machinery/cell_charger, /obj/item/weapon/stock_parts/cell/high/plus, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/firealarm{ dir = 4; @@ -28917,16 +27547,14 @@ /obj/machinery/button/door{ id = "testlab"; name = "Window Blast Doors"; - pixel_x = -6; - pixel_y = 0 + pixel_x = -6 }, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/button/door{ id = "telelab"; name = "Test Chamber Blast Door"; - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -28951,7 +27579,6 @@ /area/science/explab) "bip" = ( /obj/item/weapon/paper_bin{ - pixel_x = 0; pixel_y = 6 }, /obj/item/weapon/pen, @@ -28979,7 +27606,6 @@ departmentType = 2; dir = 2; name = "Science Requests Console"; - pixel_x = 0; pixel_y = 30; receive_ore_updates = 1 }, @@ -29068,16 +27694,12 @@ /area/maintenance/department/cargo) "biD" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "biE" = ( /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/machinery/meter, @@ -29085,8 +27707,6 @@ /area/maintenance/department/chapel/monastery) "biF" = ( /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /turf/open/floor/plating, @@ -29157,7 +27777,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (WEST)"; dir = 8 }, /area/medical/medbay/zone3) @@ -29176,14 +27795,12 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/zone3) @@ -29197,8 +27814,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -29209,8 +27825,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -29221,8 +27836,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/black, @@ -29232,8 +27846,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -29242,6 +27855,8 @@ /area/medical/morgue) "biX" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -29284,7 +27899,6 @@ /area/medical/morgue) "bja" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /obj/structure/cable{ @@ -29303,19 +27917,18 @@ /area/medical/medbay/central) "bjb" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bjc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -29332,7 +27945,6 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -29343,8 +27955,6 @@ id = "MedbayFoyer"; name = "Medbay Door Control"; normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 0; req_access_txt = "5" }, /turf/open/floor/plasteel/whiteblue/side{ @@ -29426,7 +28036,6 @@ "bjo" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -29452,9 +28061,8 @@ dir = 2; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /obj/machinery/light{ dir = 1 @@ -29500,8 +28108,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -29511,6 +28118,8 @@ icon_state = "pipe-c" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -29558,16 +28167,14 @@ /turf/open/floor/plasteel, /area/science/explab) "bjA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/explab) "bjB" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/science/explab) @@ -29578,11 +28185,8 @@ /turf/open/floor/plasteel, /area/science/explab) "bjD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/explab) @@ -29616,9 +28220,7 @@ }, /area/science/xenobiology) "bjG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bjH" = ( @@ -29678,8 +28280,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/poddoor/preopen{ id = "misclab"; @@ -29768,8 +28369,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -29820,8 +28420,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -29866,11 +28465,10 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "bjY" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "bjZ" = ( /turf/closed/wall/mineral/titanium, @@ -29889,8 +28487,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Arrivals APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -29914,9 +28511,8 @@ /turf/open/floor/carpet, /area/library) "bkf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/library) @@ -30019,17 +28615,16 @@ icon_state = "2-8" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) @@ -30037,8 +28632,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Medbay APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -30056,8 +28650,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Medbay APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/whiteblue/corner{ dir = 1 @@ -30065,15 +28658,13 @@ /area/medical/medbay/central) "bkp" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bkq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/sign/poster/official/random{ pixel_x = 32 @@ -30169,7 +28760,6 @@ departmentType = 2; name = "Science Requests Console"; pixel_x = -32; - pixel_y = 0; receive_ore_updates = 1 }, /obj/item/weapon/book/manual/research_and_development, @@ -30204,9 +28794,7 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/purple/side{ dir = 1 }, @@ -30233,8 +28821,7 @@ name = "emergency shower" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -30254,11 +28841,8 @@ /area/science/research) "bkH" = ( /obj/structure/closet/firecloset/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -30281,9 +28865,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/science/robotics/lab) "bkK" = ( @@ -30463,7 +29045,6 @@ /obj/machinery/computer/security/telescreen{ name = "Test Chamber Moniter"; network = list("Xeno"); - pixel_x = 0; pixel_y = 2 }, /obj/structure/table/reinforced, @@ -30476,7 +29057,6 @@ /obj/machinery/button/door{ id = "misclab"; name = "Test Chamber Blast Doors"; - pixel_x = 0; pixel_y = -2; req_access_txt = "55" }, @@ -30543,8 +29123,7 @@ "bll" = ( /obj/machinery/disposal/bin, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/disposalpipe/trunk{ dir = 1 @@ -30552,9 +29131,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTHEAST)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "blm" = ( /obj/machinery/door/window/northleft{ @@ -30567,16 +29144,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bln" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio5"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -30605,16 +29179,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "blp" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio6"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -30655,11 +29226,10 @@ /area/maintenance/department/cargo) "bls" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "blt" = ( /turf/open/floor/pod/light, @@ -30678,8 +29248,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -30695,13 +29264,11 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/entry) @@ -30733,8 +29300,7 @@ "blB" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -30818,8 +29384,7 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/airalarm{ pixel_y = 22 @@ -30883,9 +29448,7 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "blT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/medical/chemistry) "blU" = ( @@ -30911,9 +29474,8 @@ }, /area/hallway/primary/aft) "blW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -30922,10 +29484,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/weapon/disk/tech_disk, /obj/item/weapon/disk/design_disk, /turf/open/floor/plasteel, /area/science/explab) @@ -30943,8 +29502,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Research Lab APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable{ icon_state = "0-2"; @@ -31071,7 +29629,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -31085,8 +29642,7 @@ /obj/machinery/camera{ c_tag = "Experimentation Lab"; dir = 1; - network = list("SS13","RD"); - pixel_y = 0 + network = list("SS13","RD") }, /obj/machinery/airalarm{ dir = 1; @@ -31178,8 +29734,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -31254,10 +29809,8 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light/small{ dir = 8 @@ -31273,8 +29826,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/science/xenobiology) @@ -31300,14 +29852,12 @@ /area/maintenance/department/cargo) "bmM" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "bmN" = ( /obj/machinery/door/airlock/titanium, @@ -31355,12 +29905,9 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel/neutral/corner, @@ -31375,9 +29922,7 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -31396,9 +29941,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -31415,8 +29958,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /turf/open/floor/plating, @@ -31436,11 +29977,8 @@ /turf/open/floor/plasteel/whiteblue/side, /area/medical/genetics) "bmX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side, /area/medical/genetics) @@ -31493,7 +30031,6 @@ /area/medical/sleeper) "bne" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; dir = 5 }, /obj/effect/turf_decal/stripes/corner{ @@ -31585,9 +30122,7 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "bnp" = ( -/obj/machinery/disposal/bin{ - pixel_x = 0 - }, +/obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 8 }, @@ -31623,7 +30158,6 @@ /obj/item/weapon/reagent_containers/glass/beaker/large, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /obj/item/weapon/storage/box/beakers, @@ -31730,7 +30264,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -28 }, /turf/closed/wall, @@ -31758,12 +30291,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bnK" = ( @@ -31786,8 +30314,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -31800,11 +30327,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -31845,8 +30369,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ d1 = 4; @@ -31867,14 +30390,12 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -31887,9 +30408,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -31905,14 +30425,12 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -31964,11 +30482,12 @@ icon_state = "pipe-c" }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/landmark/blobstart, /turf/open/floor/plasteel/floorgrime, @@ -32139,8 +30658,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/corner, /area/medical/medbay/central) @@ -32174,7 +30692,6 @@ department = "Chemistry"; departmentType = 2; pixel_x = 32; - pixel_y = 0; receive_ore_updates = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32185,8 +30702,6 @@ c_tag = "Aft Primary Hallway Chemistry"; dir = 4; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -32270,7 +30785,6 @@ cell_type = 10000; dir = 1; name = "Research Division APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -32334,7 +30848,6 @@ /area/science/research) "boP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/white/side, @@ -32355,8 +30868,7 @@ "boS" = ( /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-18"; - layer = 4.1; - pixel_y = 0 + layer = 4.1 }, /turf/open/floor/plasteel/white/side{ dir = 8 @@ -32364,10 +30876,8 @@ /area/science/research) "boT" = ( /obj/structure/closet/firecloset, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -32412,8 +30922,7 @@ /area/science/xenobiology) "boY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -32461,8 +30970,7 @@ network = list("SS13","RD") }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/whitepurple/side, /area/science/xenobiology) @@ -32499,11 +31007,8 @@ name = "Xenobiology APC"; pixel_x = -25 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /obj/machinery/light/small{ brightness = 3; @@ -32624,13 +31129,10 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -32; - pixel_y = 0; - pixel_z = 0 + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) @@ -32657,8 +31159,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) @@ -32676,8 +31177,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel/white, @@ -32700,8 +31200,7 @@ /area/medical/sleeper) "bpC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -32734,18 +31233,14 @@ /area/medical/medbay/central) "bpH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "bpI" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) @@ -32770,8 +31265,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/disposalpipe/junction{ dir = 2; @@ -32836,8 +31330,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/explab) @@ -32853,9 +31346,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/explab) "bpR" = ( /obj/structure/cable{ @@ -32874,9 +31365,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/explab) "bpS" = ( /obj/structure/cable{ @@ -32893,16 +31382,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/explab) "bpT" = ( /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 4; @@ -32969,9 +31455,8 @@ icon_state = "pipe-j2s"; sortType = 13 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -32996,8 +31481,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33017,6 +31501,8 @@ /area/science/research) "bqa" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ @@ -33036,9 +31522,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -33047,9 +31532,8 @@ dir = 4; layer = 2.9 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -33082,7 +31566,6 @@ idDoor = "xeno_airlock_exterior"; idSelf = "xeno_airlock_control"; name = "Access Button"; - pixel_x = 0; pixel_y = -24; req_access_txt = "0" }, @@ -33095,8 +31578,7 @@ /area/science/xenobiology) "bqg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33134,7 +31616,6 @@ idDoor = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; name = "Access Button"; - pixel_x = 0; pixel_y = -24; req_access_txt = "0" }, @@ -33168,9 +31649,7 @@ "bqm" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 4 @@ -33179,16 +31658,13 @@ "bqn" = ( /obj/machinery/disposal/bin, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/disposalpipe/trunk, /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTHEAST)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bqo" = ( /obj/machinery/door/window/northleft{ @@ -33201,16 +31677,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bqp" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio1"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -33243,16 +31716,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bqs" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio2"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -33281,16 +31751,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bqu" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio3"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -33319,16 +31786,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/science/xenobiology) "bqw" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "xenobio4"; name = "Containment Blast Doors"; - pixel_x = 0; pixel_y = 4; req_access_txt = "55" }, @@ -33378,9 +31842,8 @@ dir = 4; layer = 2.9 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /mob/living/carbon/monkey, /turf/open/floor/grass, @@ -33418,8 +31881,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -33444,8 +31906,7 @@ pixel_x = -24 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/machinery/light{ dir = 8 @@ -33460,11 +31921,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) @@ -33480,8 +31938,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Treatment Center APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, @@ -33504,7 +31961,6 @@ /area/medical/sleeper) "bqO" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/plasteel/blue, @@ -33545,8 +32001,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Chemistry APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -33591,9 +32046,7 @@ }, /obj/item/weapon/paper_bin{ layer = 2.9; - pixel_x = -2; - pixel_y = 0; - tag = "every single paper bin is edited to this" + pixel_x = -2 }, /obj/machinery/door/poddoor/shutters/preopen{ id = "chemistry_shutters"; @@ -33616,8 +32069,7 @@ /area/hallway/primary/aft) "bra" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -33666,10 +32118,7 @@ /turf/open/floor/plasteel, /area/science/explab) "brf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/science/explab) "brg" = ( @@ -33688,8 +32137,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -33698,7 +32146,6 @@ dir = 4 }, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -33721,7 +32168,6 @@ dir = 4 }, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -33755,7 +32201,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/white, @@ -33782,14 +32227,10 @@ "brr" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -33841,7 +32282,6 @@ departmentType = 2; name = "Science Requests Console"; pixel_x = 32; - pixel_y = 0; receive_ore_updates = 1 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -33877,8 +32317,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -33925,8 +32364,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -33973,8 +32411,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -34021,8 +32458,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -34044,8 +32480,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/light/small{ dir = 1 @@ -34057,11 +32492,12 @@ /area/maintenance/department/science) "brL" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plating, /area/maintenance/department/science) @@ -34104,9 +32540,7 @@ /obj/machinery/camera{ c_tag = "Genetics Monkey Pen"; dir = 4; - network = list("SS13","RD"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13","RD") }, /mob/living/carbon/monkey, /turf/open/floor/grass, @@ -34125,9 +32559,8 @@ }, /area/medical/genetics) "brT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -34151,9 +32584,7 @@ "brW" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 28 @@ -34193,7 +32624,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/whiteblue/corner{ @@ -34222,7 +32652,6 @@ department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/cmo, @@ -34366,8 +32795,7 @@ /area/science/explab) "bss" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/purple/side, /area/science/explab) @@ -34407,7 +32835,6 @@ /area/science/explab) "bsw" = ( /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -34477,11 +32904,8 @@ /turf/open/floor/plating, /area/maintenance/department/science) "bsH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/grass, /area/medical/genetics) @@ -34528,11 +32952,8 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bsM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -34544,8 +32965,7 @@ department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 4 @@ -34575,7 +32995,6 @@ idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; - pixel_y = 0; req_access_txt = "39" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -34661,8 +33080,7 @@ /area/medical/medbay/central) "bsW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 @@ -34670,11 +33088,8 @@ /area/medical/medbay/central) "bsX" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -34690,11 +33105,8 @@ /obj/structure/chair/office/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -34720,8 +33132,7 @@ layer = 4; name = "Surgery Telescreen"; network = list("Surgery"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -34805,8 +33216,7 @@ /obj/structure/closet/wardrobe/red, /obj/machinery/airalarm{ dir = 8; - pixel_x = 23; - pixel_y = 0 + pixel_x = 23 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -34815,9 +33225,7 @@ "btn" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "bto" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -34830,9 +33238,7 @@ network = list("SS13","RD") }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/science/storage) "btp" = ( /obj/effect/turf_decal/stripes/line{ @@ -34846,7 +33252,6 @@ cell_type = 5000; dir = 1; name = "Toxins Storage APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -34901,7 +33306,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/white, @@ -34931,8 +33335,7 @@ /obj/machinery/camera{ c_tag = "Toxins Lab"; dir = 2; - network = list("SS13","RD"); - pixel_y = 0 + network = list("SS13","RD") }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -34981,10 +33384,7 @@ pixel_x = -27 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 10 @@ -34999,9 +33399,7 @@ /obj/machinery/camera{ c_tag = "Genetics"; dir = 1; - network = list("SS13","RD"); - pixel_x = 0; - pixel_y = 0 + network = list("SS13","RD") }, /turf/open/floor/plasteel/whitepurple/side, /area/medical/genetics) @@ -35012,7 +33410,6 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/whitepurple/corner{ - tag = "icon-whitepurplecorner (WEST)"; dir = 8 }, /area/medical/genetics) @@ -35039,11 +33436,8 @@ }, /area/medical/genetics) "btM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/shower{ dir = 4 @@ -35078,7 +33472,6 @@ /area/medical/virology) "btP" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -35088,18 +33481,13 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -32; - pixel_y = 0; - pixel_z = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "btQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -35137,7 +33525,6 @@ dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -35296,8 +33683,7 @@ /area/maintenance/department/engine) "bug" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/corner, @@ -35338,7 +33724,6 @@ /obj/machinery/power/apc{ dir = 1; name = "RD Office APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -35361,6 +33746,8 @@ /area/crew_quarters/heads/hor) "bun" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment, @@ -35375,7 +33762,6 @@ id = "rndshutters"; name = "Research Lockdown"; pixel_x = 28; - pixel_y = 0; req_access_txt = "47" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -35391,11 +33777,8 @@ dir = 4; network = list("SS13","RD") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -35405,8 +33788,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -35417,8 +33799,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Science Security APC"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/structure/cable{ d2 = 8; @@ -35434,9 +33815,8 @@ /turf/open/floor/plasteel, /area/science/storage) "but" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -35450,17 +33830,13 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/science/storage) "buv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/science/storage) @@ -35527,9 +33903,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -35558,7 +33932,6 @@ departmentType = 2; name = "Science Requests Console"; pixel_x = 32; - pixel_y = 0; receive_ore_updates = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -35642,8 +34015,7 @@ "buU" = ( /obj/structure/closet/l3closet, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35652,7 +34024,6 @@ /area/medical/virology) "buV" = ( /obj/machinery/shower{ - tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4 }, @@ -35662,17 +34033,14 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = -28; - pixel_y = 0 + pixel_x = -28 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "buW" = ( /obj/effect/landmark/start/medical_doctor, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -35698,11 +34066,9 @@ /area/medical/medbay/central) "buZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -35728,10 +34094,8 @@ /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bvd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -35739,8 +34103,7 @@ /obj/machinery/power/apc{ dir = 4; name = "CMO's Office APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable, /turf/open/floor/plasteel/cmo, @@ -35762,8 +34125,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Server Room APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; @@ -35776,6 +34138,8 @@ /area/science/server) "bvi" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -35801,10 +34165,10 @@ /turf/open/floor/plating, /area/science/server) "bvk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8; external_pressure_bound = 140; - on = 1; + name = "server vent"; pressure_checks = 0 }, /turf/open/floor/circuit{ @@ -35830,19 +34194,15 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hor) "bvp" = ( /obj/machinery/disposal/bin, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/disposalpipe/trunk{ dir = 8 @@ -35855,14 +34215,10 @@ /obj/item/weapon/pen, /obj/structure/table, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -35874,10 +34230,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science) "bvs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -35896,8 +34249,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/science/storage) @@ -35994,9 +34346,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/structure/cable{ d1 = 2; @@ -36086,14 +34436,12 @@ /area/medical/virology) "bvQ" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -36108,17 +34456,13 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/virology) "bvS" = ( /obj/structure/closet/l3closet, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHWEST)"; - icon_state = "intact"; dir = 10 }, /obj/effect/turf_decal/stripes/line{ @@ -36151,15 +34495,12 @@ "bvX" = ( /obj/structure/table, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/weapon/storage/belt/medical{ - pixel_x = 0; pixel_y = 2 }, /obj/item/clothing/glasses/hud/health, @@ -36248,9 +34589,7 @@ pixel_y = 28; products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/blobstart, /obj/item/weapon/melee/baton/cattleprod{ cell = new /obj/item/weapon/stock_parts/cell/high() @@ -36267,16 +34606,12 @@ id = "CMOCell"; name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = 0; pixel_y = 26; req_access_txt = "0"; specialfunctions = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/black, @@ -36307,8 +34642,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -36322,18 +34656,14 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bwl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/yellow/corner, /area/hallway/primary/aft) @@ -36370,14 +34700,10 @@ /turf/open/floor/plasteel/black, /area/science/server) "bwp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "server vent" }, /turf/open/floor/circuit{ name = "Server Base"; @@ -36394,10 +34720,8 @@ /obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hor) @@ -36437,7 +34761,6 @@ dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/red/side, @@ -36479,11 +34802,8 @@ /turf/open/floor/plasteel, /area/science/mixing) "bwE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/science/mixing) @@ -36501,7 +34821,6 @@ pixel_y = -2 }, /obj/item/device/assembly/prox_sensor{ - pixel_x = 0; pixel_y = 2 }, /obj/structure/table/reinforced, @@ -36510,9 +34829,8 @@ "bwG" = ( /obj/structure/chair/stool, /obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/science/mixing) @@ -36541,8 +34859,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -36553,8 +34870,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/science/mixing) @@ -36563,16 +34879,14 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the turbine vent."; dir = 8; name = "turbine vent monitor"; network = list("Turbine"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -36583,8 +34897,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/closed/wall, /area/science/mixing) @@ -36592,8 +34905,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/closet/emcloset, /turf/open/floor/plasteel, @@ -36615,8 +34927,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light{ dir = 1 @@ -36628,8 +34939,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -36639,8 +34949,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/camera{ c_tag = "Toxins Launch Area"; @@ -36659,8 +34968,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -36671,8 +34979,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light{ dir = 1 @@ -36686,8 +34993,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -36721,8 +35027,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -36733,8 +35038,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -36745,8 +35049,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/item/weapon/cigbutt/cigarbutt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -36758,8 +35061,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -36773,8 +35075,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -36793,42 +35094,32 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plating, /area/maintenance/department/engine) "bxd" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/engine) "bxe" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/closed/wall/r_wall, /area/medical/virology) "bxf" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /mob/living/carbon/monkey, /turf/open/floor/plasteel/freezer, /area/medical/virology) "bxg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/freezer, @@ -36837,10 +35128,8 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /mob/living/carbon/monkey, /turf/open/floor/plasteel/freezer, @@ -36870,7 +35159,6 @@ idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; - pixel_y = 0; req_access_txt = "39" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -36977,7 +35265,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/whitepurple/side{ @@ -36993,7 +35280,6 @@ department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; - pixel_x = 0; pixel_y = -30; receive_ore_updates = 1 }, @@ -37004,8 +35290,7 @@ /obj/item/weapon/paper_bin{ layer = 2.9; pixel_x = -2; - pixel_y = 5; - tag = "every single paper bin is edited to this" + pixel_y = 5 }, /obj/item/weapon/folder/white, /obj/item/weapon/pen, @@ -37038,7 +35323,6 @@ desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/whitepurple/side, @@ -37076,7 +35360,6 @@ "bxH" = ( /obj/structure/closet/firecloset, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -37085,7 +35368,6 @@ /obj/structure/reagent_dispensers/watertank, /obj/machinery/light, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -37093,7 +35375,6 @@ "bxJ" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/white/side{ - tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1 }, @@ -37108,7 +35389,6 @@ /area/science/mixing) "bxM" = ( /obj/item/device/assembly/signaler{ - pixel_x = 0; pixel_y = 8 }, /obj/item/device/assembly/signaler{ @@ -37133,12 +35413,8 @@ /obj/item/device/transfer_valve{ pixel_x = -5 }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, +/obj/item/device/transfer_valve, +/obj/item/device/transfer_valve, /obj/item/device/transfer_valve{ pixel_x = 5 }, @@ -37161,10 +35437,7 @@ pixel_x = 6; pixel_y = -4 }, -/obj/item/device/assembly/timer{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/item/device/assembly/timer, /obj/structure/table/reinforced, /turf/open/floor/plasteel, /area/science/mixing) @@ -37189,8 +35462,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/mixing) @@ -37220,8 +35492,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - color = "#330000"; +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -37233,9 +35504,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plasteel, /area/science/mineral_storeroom) @@ -37245,7 +35514,6 @@ icon_state = "0-8" }, /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /turf/open/floor/plasteel, @@ -37267,7 +35535,6 @@ /area/maintenance/department/chapel/monastery) "bya" = ( /turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (EAST)"; dir = 4 }, /area/science/mineral_storeroom) @@ -37306,9 +35573,7 @@ /area/medical/virology) "byh" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /mob/living/carbon/monkey, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -37341,7 +35606,6 @@ pixel_y = 24 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9 }, @@ -37360,7 +35624,6 @@ cell_type = 5000; dir = 1; name = "Virology APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -37369,7 +35632,6 @@ }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5 }, @@ -37391,10 +35653,8 @@ pixel_y = 28; products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light{ dir = 1 @@ -37427,10 +35687,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/medbay/central) "byr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -37443,11 +35701,9 @@ pixel_x = 28 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -37464,7 +35720,6 @@ /obj/machinery/status_display{ density = 0; layer = 4; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/freezer, @@ -37631,11 +35886,8 @@ /turf/open/floor/plasteel, /area/science/mineral_storeroom) "byM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/science/mineral_storeroom) @@ -37653,9 +35905,8 @@ /turf/open/floor/plasteel, /area/science/mineral_storeroom) "byP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/science/mineral_storeroom) @@ -37703,7 +35954,6 @@ "byU" = ( /obj/machinery/vending/medical, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9 }, @@ -37726,8 +35976,7 @@ /area/medical/virology) "byX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ dir = 1 @@ -37746,7 +35995,6 @@ dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/whitegreen/side{ @@ -37755,8 +36003,7 @@ /area/medical/virology) "byZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/whitegreen/corner{ dir = 1 @@ -37789,7 +36036,6 @@ "bzd" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5 }, @@ -37835,11 +36081,8 @@ /turf/open/floor/plating, /area/medical/surgery) "bzj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/freezer, /area/medical/surgery) @@ -37858,8 +36101,7 @@ frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/machinery/holopad, /turf/open/floor/plasteel/freezer, @@ -38076,8 +36318,7 @@ /area/maintenance/department/engine/atmos) "bzD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -38163,9 +36404,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plating{ - tag = "icon-warnplate (WEST)" - }, +/turf/open/floor/plating, /area/science/mineral_storeroom) "bzN" = ( /obj/structure/grille, @@ -38236,8 +36475,7 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/whitegreen/side{ dir = 8 @@ -38251,11 +36489,8 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bzZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -38270,12 +36505,9 @@ }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4 }, @@ -38286,9 +36518,7 @@ department = "Medbay"; departmentType = 1; name = "Medbay RC"; - pixel_x = -30; - pixel_y = 0; - pixel_z = 0 + pixel_x = -30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/whiteblue/side{ @@ -38300,7 +36530,6 @@ dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -38323,7 +36552,6 @@ /area/medical/surgery) "bAg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/freezer, @@ -38341,7 +36569,6 @@ /area/medical/surgery) "bAi" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ @@ -38369,11 +36596,9 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/surgery) @@ -38425,8 +36650,7 @@ /area/hallway/primary/aft) "bAr" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -38467,8 +36691,7 @@ /area/maintenance/department/engine/atmos) "bAw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plating, @@ -38530,7 +36753,6 @@ department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/yellow/side{ @@ -38555,14 +36777,11 @@ c_tag = "Atmospherics Toxins"; dir = 2; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/yellow/side{ @@ -38581,6 +36800,8 @@ /area/engine/atmos) "bAG" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -38646,7 +36867,6 @@ layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel, @@ -38658,7 +36878,6 @@ pixel_y = -24 }, /turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (EAST)"; dir = 4 }, /area/science/mineral_storeroom) @@ -38667,8 +36886,7 @@ id = "toxinsdriver" }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/machinery/door/window/southleft{ dir = 8; @@ -38679,7 +36897,6 @@ dir = 1 }, /turf/open/floor/plating{ - tag = "icon-plating_warn_end (NORTH)"; icon_state = "plating_warn_end" }, /area/science/mineral_storeroom) @@ -38751,7 +36968,6 @@ /area/maintenance/department/engine) "bAY" = ( /obj/structure/light_construct{ - tag = "icon-tube-construct-stage1 (EAST)"; icon_state = "tube-construct-stage1"; dir = 4 }, @@ -38787,18 +37003,14 @@ /area/medical/virology) "bBd" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /obj/machinery/computer/pandemic, /turf/open/floor/plasteel/white, /area/medical/virology) "bBe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -38848,11 +37060,9 @@ /area/medical/medbay/central) "bBk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) @@ -38872,9 +37082,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/surgery) "bBo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 @@ -38889,18 +37098,13 @@ /obj/machinery/power/apc{ dir = 4; name = "Surgery APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/surgery) @@ -38998,7 +37202,6 @@ on = 0 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -39027,16 +37230,11 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bBI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "distro out" }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -39083,12 +37281,10 @@ layer = 2.9 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -39097,8 +37293,7 @@ /area/science/mineral_storeroom) "bBO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/closed/wall, /area/science/mineral_storeroom) @@ -39130,16 +37325,13 @@ "bBS" = ( /obj/machinery/conveyor{ dir = 10; - icon_state = "conveyor0"; id = "toxmineral" }, /obj/machinery/light/small, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/plating{ - tag = "icon-warnplatecorner (EAST)" - }, +/turf/open/floor/plating, /area/science/mineral_storeroom) "bBT" = ( /obj/structure/window/reinforced{ @@ -39219,7 +37411,6 @@ layer = 3 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4 }, @@ -39228,11 +37419,8 @@ /obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/freezer, /area/medical/medbay/central) @@ -39270,15 +37458,13 @@ dir = 4 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/medbay/central) "bCl" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/medical/surgery) @@ -39306,8 +37492,7 @@ /area/medical/surgery) "bCp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/white, /area/medical/surgery) @@ -39315,7 +37500,6 @@ /obj/structure/table, /obj/item/weapon/surgical_drapes, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (EAST)"; dir = 4 }, /area/medical/surgery) @@ -39361,7 +37545,6 @@ /area/hallway/primary/aft) "bCx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; dir = 10 }, /turf/closed/wall/r_wall, @@ -39389,10 +37572,8 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -39449,8 +37630,6 @@ /area/engine/atmos) "bCG" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plasteel/yellow/side{ @@ -39523,7 +37702,6 @@ sensors = list("mix_sensor" = "Tank") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -39569,7 +37747,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/engine/vacuum, @@ -39589,14 +37766,8 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bCW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -39610,8 +37781,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/science/mineral_storeroom) @@ -39652,11 +37822,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/virology) "bDd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -39680,12 +37847,10 @@ /obj/item/weapon/storage/box/syringes, /obj/structure/reagent_dispensers/virusfood{ density = 0; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/item/weapon/reagent_containers/spray/cleaner, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6 }, @@ -39768,8 +37933,6 @@ c_tag = "Aft Primary Hallway Atmospherics"; dir = 2; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39779,7 +37942,6 @@ dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel, @@ -39816,8 +37978,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -39892,6 +38053,8 @@ /area/maintenance/department/chapel/monastery) "bDE" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -39913,7 +38076,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -40048,10 +38210,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/table, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /obj/item/weapon/pen/red, /turf/open/floor/plasteel/whitegreen/side, @@ -40061,7 +38220,6 @@ icon_state = "plant-21" }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6 }, @@ -40098,8 +38256,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -40139,8 +38296,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/cable{ d1 = 1; @@ -40159,9 +38315,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bEj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -40171,7 +38326,6 @@ }, /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (NORTHWEST)"; icon_state = "arrival"; dir = 9 }, @@ -40213,9 +38367,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bEq" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bEr" = ( @@ -40231,7 +38383,6 @@ /area/engine/atmos) "bEs" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/plasteel/black, @@ -40262,7 +38413,6 @@ /area/engine/atmos) "bEw" = ( /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -40493,8 +38643,7 @@ /area/engine/atmos) "bEX" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40521,21 +38670,15 @@ on = 0 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) "bFc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2o out" }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -40543,10 +38686,7 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bFe" = ( -/obj/structure/sign/fire{ - pixel_x = 0; - pixel_y = 0 - }, +/obj/structure/sign/fire, /turf/closed/wall/r_wall, /area/science/mixing) "bFf" = ( @@ -40585,8 +38725,6 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plating, @@ -40601,8 +38739,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/open/floor/plating, @@ -40629,8 +38765,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /turf/open/floor/plating, @@ -40645,8 +38779,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating, @@ -40675,8 +38807,6 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plating{ @@ -40690,8 +38820,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -40747,8 +38875,7 @@ /area/hallway/primary/aft) "bFB" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/yellow/corner, /area/hallway/primary/aft) @@ -40789,8 +38916,7 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40819,7 +38945,6 @@ sensors = list("n2o_sensor" = "Tank") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -40887,6 +39012,8 @@ /area/maintenance/department/engine) "bFV" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -40904,11 +39031,8 @@ dir = 2; network = list("SS13") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/black, @@ -41100,9 +39224,7 @@ name = "atmos blast door" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bGo" = ( /obj/structure/chair/office/dark{ @@ -41113,9 +39235,8 @@ /area/engine/atmos) "bGp" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41192,11 +39313,8 @@ /turf/open/space, /area/space) "bGA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/library) @@ -41242,8 +39360,7 @@ "bGI" = ( /obj/structure/closet/radiation, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/machinery/airalarm{ dir = 2; @@ -41267,15 +39384,12 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTHEAST)" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "bGK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -41291,8 +39405,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -41331,15 +39444,13 @@ /area/hallway/primary/aft) "bGR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bGS" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/yellow/corner, /area/hallway/primary/aft) @@ -41361,9 +39472,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bGU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -41400,19 +39509,16 @@ department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bGX" = ( /obj/machinery/pipedispenser/disposal, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/camera{ @@ -41423,9 +39529,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bGY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41438,8 +39543,7 @@ /area/engine/atmos) "bHa" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -41460,14 +39564,11 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) "bHe" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /obj/item/weapon/wrench, @@ -41475,8 +39576,6 @@ /area/maintenance/department/engine) "bHf" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - tag = "icon-manifold (EAST)"; - icon_state = "manifold"; dir = 4 }, /obj/machinery/meter, @@ -41503,16 +39602,11 @@ req_access_txt = "11" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "bHk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -41520,15 +39614,11 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bHl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "bHm" = ( /obj/machinery/door/firedoor, @@ -41537,23 +39627,17 @@ req_access_txt = "11" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/storage/tech) "bHn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel/black, /area/storage/tech) "bHo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/storage/tech) @@ -41562,9 +39646,7 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/computer/cloning{ - pixel_x = 0 - }, +/obj/item/weapon/circuitboard/computer/cloning, /obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 @@ -41613,17 +39695,14 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "bHt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/storage/tech) "bHu" = ( /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -41652,8 +39731,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/yellow/corner{ dir = 8 @@ -41668,8 +39746,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -41687,11 +39764,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -41699,8 +39773,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -41709,9 +39782,7 @@ opacity = 1 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/atmos) "bHC" = ( /obj/machinery/navbeacon{ @@ -41729,11 +39800,8 @@ icon_state = "pipe-j2s"; sortType = 6 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41750,8 +39818,7 @@ /area/engine/atmos) "bHG" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/item/weapon/wrench, /turf/open/floor/plasteel, @@ -41768,7 +39835,6 @@ on = 0 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -41782,16 +39848,11 @@ /turf/open/floor/plating, /area/engine/atmos) "bHJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "toxin out" }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -41941,8 +40002,7 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41962,7 +40022,6 @@ /area/storage/tech) "bIg" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; dir = 1 }, /turf/open/floor/plasteel/black, @@ -41984,8 +40043,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel/black, /area/storage/tech) @@ -42006,8 +40064,6 @@ c_tag = "Aft Primary Hallway Engineering"; dir = 1; network = list("SS13"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -42044,7 +40100,6 @@ /area/engine/atmos) "bIq" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /obj/machinery/atmospherics/components/binary/pump{ @@ -42053,8 +40108,7 @@ on = 0 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -42080,7 +40134,6 @@ sensors = list("tox_sensor" = "Tank") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -42148,11 +40201,8 @@ /area/maintenance/department/engine) "bIF" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -42170,8 +40220,7 @@ /area/engine/gravity_generator) "bIH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -42287,7 +40336,6 @@ /obj/item/clothing/glasses/meson, /obj/machinery/requests_console{ department = "Tech storage"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel/black, @@ -42315,7 +40363,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Tech Storage APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable, @@ -42353,8 +40400,6 @@ "bIY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/open/floor/plasteel/yellow/side{ @@ -42527,8 +40572,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -42550,12 +40594,9 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = 28 }, /obj/effect/turf_decal/stripes/line{ @@ -42588,7 +40629,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 24 }, /obj/effect/turf_decal/stripes/line{ @@ -42606,9 +40646,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bJy" = ( /obj/structure/disposalpipe/segment, @@ -42672,7 +40710,6 @@ dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -42775,8 +40812,7 @@ department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/yellow/side{ dir = 9 @@ -42909,14 +40945,10 @@ /obj/machinery/requests_console{ department = "Security"; departmentType = 5; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -42929,15 +40961,11 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/effect/landmark/start/depsec/engineering, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) @@ -43015,9 +41043,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (EAST)" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bKo" = ( /obj/machinery/door/poddoor/preopen{ @@ -43029,13 +41055,10 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bKp" = ( /obj/machinery/door/firedoor/heavy, @@ -43103,9 +41126,7 @@ }) "bKw" = ( /obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, +/obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plasteel/black, /area/library) "bKx" = ( @@ -43130,7 +41151,6 @@ on = 0 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -43144,16 +41164,11 @@ /turf/open/floor/plating, /area/engine/atmos) "bKB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "co2 out" }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -43218,7 +41233,6 @@ id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; - pixel_y = 0; req_access_txt = "11" }, /obj/machinery/button/door{ @@ -43233,8 +41247,7 @@ /obj/item/weapon/paper/monitorkey, /obj/item/weapon/pen, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/crew_quarters/heads/chief) "bKK" = ( @@ -43264,16 +41277,12 @@ pixel_y = 26 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/crew_quarters/heads/chief) "bKO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/machinery/light/small{ dir = 8 @@ -43287,11 +41296,8 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "bKQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light/small{ dir = 4 @@ -43312,17 +41318,14 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/engine/engine_smes) "bKS" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/structure/cable/yellow{ @@ -43332,14 +41335,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-warning (NORTH)" - }, +/turf/open/floor/plasteel, /area/engine/engine_smes) "bKT" = ( /obj/machinery/suit_storage_unit/engine, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/engine_smes) @@ -43403,18 +41403,14 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "bLa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -43422,11 +41418,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "bLb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43437,11 +41430,8 @@ name = "Monastery Asteroid" }) "bLd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43464,7 +41454,6 @@ sensors = list("co2_sensor" = "Tank") }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/atmos) @@ -43508,21 +41497,16 @@ req_access_txt = "0" }, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /obj/item/clothing/glasses/meson/gar, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/crew_quarters/heads/chief) "bLo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) @@ -43538,17 +41522,14 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bLr" = ( /obj/machinery/power/apc{ dir = 4; name = "CE Office APC"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/cable{ d2 = 8; @@ -43556,7 +41537,6 @@ }, /obj/machinery/modular_computer/console/preset/engineering, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/crew_quarters/heads/chief) @@ -43635,8 +41615,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ d1 = 1; @@ -43651,12 +41630,10 @@ dir = 4; name = "Engine Monitor"; network = list("Engine"); - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/engine/engine_smes) "bLw" = ( @@ -43668,14 +41645,10 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engine_smes) @@ -43693,8 +41666,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/effect/landmark/start/station_engineer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -43706,22 +41678,17 @@ /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 + icon_state = "1-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/engine/engine_smes) "bLz" = ( /obj/structure/tank_dispenser, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - tag = "icon-yellow (EAST)"; dir = 4 }, /area/engine/engine_smes) @@ -43732,24 +41699,21 @@ dir = 4; name = "Engine Monitor"; network = list("Engine"); - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/red/side{ dir = 10 }, /area/security/checkpoint/engineering) "bLB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/checkpoint/engineering) "bLC" = ( /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/structure/closet/wardrobe/red, /turf/open/floor/plasteel/red/side{ @@ -43766,9 +41730,7 @@ }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bLF" = ( /obj/machinery/door/poddoor/preopen{ @@ -43784,9 +41746,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bLG" = ( /obj/machinery/door/poddoor/preopen{ @@ -43798,9 +41758,7 @@ dir = 6 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, +/turf/open/floor/plasteel, /area/engine/engineering) "bLH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -43816,8 +41774,6 @@ "bLJ" = ( /obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - tag = "icon-intact (NORTHEAST)"; - icon_state = "intact"; dir = 5 }, /turf/open/floor/plasteel, @@ -43848,8 +41804,6 @@ c_tag = "Telecoms External Fore"; dir = 1; network = list("SS13, Telecoms"); - pixel_x = 0; - pixel_y = 0; start_active = 1 }, /turf/open/space, @@ -43857,7 +41811,7 @@ "bLO" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4; - initialize_directions = 12 + }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, @@ -43967,8 +41921,7 @@ cell_type = 10000; dir = 8; name = "Engine Room APC"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/structure/cable, /obj/item/stack/sheet/metal{ @@ -43977,8 +41930,7 @@ }, /obj/item/stack/cable_coil, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/engine/engine_smes) "bMd" = ( @@ -44131,8 +42083,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -44144,8 +42095,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ dir = 2; @@ -44307,8 +42257,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4; - initialize_directions = 12 + dir = 4 }, /turf/open/floor/plating, /area/engine/atmos) @@ -44359,8 +42308,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 1; @@ -44422,8 +42370,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/disposalpipe/sortjunction{ dir = 8; @@ -44498,8 +42445,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -44543,13 +42489,14 @@ /area/engine/engineering) "bNk" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -44646,7 +42593,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel, @@ -44683,8 +42629,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44718,8 +42663,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/engine/atmos) @@ -44741,8 +42685,7 @@ /area/engine/engineering) "bNC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8; - initialize_directions = 11 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44759,8 +42702,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44773,8 +42715,7 @@ /area/engine/engineering) "bNG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44933,11 +42874,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "bNY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44945,8 +42883,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -44959,8 +42896,7 @@ /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/machinery/camera{ c_tag = "Engineering Central"; @@ -44979,9 +42915,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "bOc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45044,16 +42979,11 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "bOj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "n2 out" }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -45073,16 +43003,11 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "bOm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "oxygen out" }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -45102,16 +43027,11 @@ /turf/open/floor/engine/air, /area/engine/atmos) "bOp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 1; - external_pressure_bound = 0; frequency = 1441; - icon_state = "vent_map"; id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 + name = "air out" }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -45155,10 +43075,7 @@ /obj/item/weapon/storage/belt/utility, /obj/item/clothing/glasses/meson, /obj/item/weapon/paper_bin{ - layer = 2.9; - pixel_x = 0; - pixel_y = 0; - tag = "every single paper bin is edited to this" + layer = 2.9 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45193,19 +43110,15 @@ /turf/open/floor/plasteel, /area/engine/engineering) "bOx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/engine/engineering) "bOy" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/closet/radiation, /turf/open/floor/plasteel, @@ -45214,9 +43127,7 @@ /obj/structure/sign/securearea{ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 0; - pixel_y = 0 + name = "RADIOACTIVE AREA" }, /turf/closed/wall/r_wall, /area/engine/engineering) @@ -45264,11 +43175,8 @@ /area/engine/engineering) "bOE" = ( /obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45357,8 +43265,7 @@ "bOV" = ( /obj/structure/closet/radiation, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45403,8 +43310,7 @@ "bPa" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45558,8 +43464,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -45607,8 +43512,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/cable/yellow{ d1 = 4; @@ -45621,8 +43525,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -45699,7 +43602,6 @@ id = "Singularity"; name = "Shutters Control"; pixel_x = 25; - pixel_y = 0; req_access_txt = "11" }, /turf/open/floor/plasteel/yellow/side, @@ -45709,7 +43611,6 @@ id = "Singularity"; name = "Shutters Control"; pixel_x = -25; - pixel_y = 0; req_access_txt = "11" }, /obj/structure/cable/yellow{ @@ -45740,7 +43641,6 @@ id = "Singularity"; name = "Shutters Control"; pixel_x = 25; - pixel_y = 0; req_access_txt = "11" }, /obj/effect/turf_decal/stripes/line{ @@ -45758,7 +43658,6 @@ id = "Singularity"; name = "Shutters Control"; pixel_x = -25; - pixel_y = 0; req_access_txt = "11" }, /turf/open/floor/plasteel/yellow/side, @@ -45944,11 +43843,8 @@ /turf/open/floor/plating, /area/engine/engineering) "bQm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/sign/poster/official/random{ pixel_y = 32 @@ -45957,8 +43853,7 @@ /area/engine/engineering) "bQn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -46103,8 +43998,7 @@ network = list("Labor") }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/machinery/computer/security/telescreen{ desc = "Used for watching telecoms."; @@ -46112,8 +44006,7 @@ layer = 4; name = "Telecoms Telescreen"; network = list("Telecoms"); - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -46147,8 +44040,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -46158,8 +44050,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -46214,11 +44105,8 @@ /turf/open/floor/plating, /area/engine/engineering) "bQO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -46242,6 +44130,8 @@ /area/engine/engineering) "bQR" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46326,8 +44216,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46335,8 +44224,7 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46344,14 +44232,12 @@ /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4"; - tag = "90Curve" + d1 = 1; + d2 = 4 }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46359,8 +44245,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46377,8 +44262,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plating, /area/engine/engineering) @@ -46508,8 +44392,7 @@ /obj/structure/cable/yellow{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46658,8 +44541,7 @@ /area/space/nearstation) "bRO" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/structure/cable{ d1 = 1; @@ -46753,10 +44635,9 @@ /area/engine/engineering) "bSb" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4"; - tag = "90Curve" + d1 = 1; + d2 = 4 }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46764,14 +44645,12 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46779,14 +44658,12 @@ /obj/structure/cable/yellow{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /obj/machinery/light, /turf/open/floor/plating/airless, @@ -46795,8 +44672,7 @@ /obj/structure/cable/yellow{ d1 = 1; d2 = 8; - icon_state = "1-8"; - tag = "" + icon_state = "1-8" }, /turf/open/floor/plating/airless, /area/engine/engineering) @@ -46916,9 +44792,7 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "bSx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/light/small{ dir = 1 }, @@ -46955,18 +44829,14 @@ /turf/open/floor/plating, /area/tcommsat/computer) "bSD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bSE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /obj/item/device/radio/beacon, /turf/open/floor/plasteel, @@ -47037,8 +44907,7 @@ /area/tcommsat/computer) "bSO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/power/port_gen/pacman, /turf/open/floor/plating, @@ -47061,7 +44930,6 @@ /obj/item/device/radio, /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/yellow/side{ @@ -47074,14 +44942,10 @@ department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; - pixel_x = 0; pixel_y = 30 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -47097,8 +44961,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -47125,8 +44988,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -47145,11 +45007,8 @@ d2 = 8; icon_state = "0-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -47166,15 +45025,11 @@ brightness = 3; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/yellow/side{ - dir = 8; - tag = "" + dir = 8 }, /area/tcommsat/computer) "bSZ" = ( @@ -47192,7 +45047,8 @@ /area/tcommsat/computer) "bTb" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply, @@ -47219,9 +45075,8 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -47234,8 +45089,7 @@ /obj/structure/table, /obj/item/weapon/paper_bin{ pixel_x = -2; - pixel_y = 5; - tag = "every single paper bin is edited to this" + pixel_y = 5 }, /obj/item/weapon/pen, /turf/open/floor/plasteel/yellow/side{ @@ -47257,7 +45111,8 @@ req_access_txt = "61" }, /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -47280,7 +45135,8 @@ /area/tcommsat/computer) "bTk" = ( /obj/structure/cable{ - tag = "icon-1-2"; + d1 = 1; + d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -47303,7 +45159,7 @@ charge = 5e+006 }, /obj/structure/cable{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /obj/structure/cable{ @@ -47321,8 +45177,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/tcommsat/computer) @@ -47361,7 +45216,6 @@ dir = 1; layer = 4; name = "Telecoms Server APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable, @@ -47371,7 +45225,6 @@ /area/tcommsat/server) "bTt" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /turf/open/floor/plasteel/black{ @@ -47461,8 +45314,7 @@ /area/tcommsat/server) "bTF" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ initial_gas_mix = "n2=100;TEMP=80" @@ -47571,8 +45423,7 @@ /area/tcommsat/server) "bTU" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkyellow/side{ dir = 1; @@ -47719,18 +45570,12 @@ frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/circuit, /area/wreck/ai) "bUm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/wreck/ai) "bUn" = ( @@ -47787,17 +45632,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating{ - tag = "icon-warnplate (NORTH)" - }, +/turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "bUw" = ( /obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/main) @@ -47818,8 +45658,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47827,9 +45666,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plating{ - tag = "icon-warnplate (WEST)" - }, +/turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "bUA" = ( /obj/machinery/door/airlock/glass{ @@ -47838,15 +45675,13 @@ /obj/machinery/button/door{ id = "supplybridge"; name = "Space Bridge Control"; - pixel_x = 0; pixel_y = 27; req_access_txt = "0" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47854,9 +45689,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plating{ - tag = "icon-warnplate (WEST)" - }, +/turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "bUB" = ( /obj/item/weapon/storage/secure/safe{ @@ -47869,9 +45702,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0; - tag = "" + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/machinery/firealarm{ @@ -47884,14 +45715,14 @@ /area/security/main) "bUD" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/black, /area/security/processing/cremation) "bUE" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (SOUTHEAST)"; - icon_state = "intact"; dir = 6 }, /turf/closed/wall, @@ -47912,8 +45743,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -47965,7 +45795,6 @@ /area/crew_quarters/dorms) "bUO" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/firealarm{ @@ -47973,13 +45802,11 @@ pixel_x = 28 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/bridge) "bUP" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel, @@ -47998,8 +45825,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating{ broken = 1; @@ -48010,8 +45836,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/light/small{ dir = 1 @@ -48042,11 +45867,9 @@ "bUW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/extinguisher_cabinet{ - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; dir = 8 }, /area/hallway/primary/fore) @@ -48066,8 +45889,7 @@ "bUZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/red/corner, /area/hallway/primary/fore) @@ -48087,7 +45909,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -48109,8 +45930,7 @@ "bVf" = ( /obj/structure/table, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /obj/item/device/taperecorder, /turf/open/floor/plasteel, @@ -48125,15 +45945,13 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/primary/central) "bVi" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -48156,7 +45974,7 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/cable, /obj/structure/cable{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -48169,7 +45987,7 @@ icon_state = "0-8" }, /obj/structure/cable{ - tag = "icon-0-4"; + d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating, @@ -48207,8 +46025,7 @@ /area/hallway/primary/central) "bVp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -48250,7 +46067,6 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/blue/corner{ @@ -48275,8 +46091,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -48293,8 +46108,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -48315,8 +46129,7 @@ /area/maintenance/department/cargo) "bVz" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -48358,8 +46171,7 @@ /area/shuttle/escape) "bVE" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) @@ -48368,17 +46180,14 @@ /obj/structure/sign/directions/evac{ dir = 1; icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-direction_evac (NORTH)" + pixel_x = 32 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central) "bVG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "bVH" = ( @@ -48392,12 +46201,10 @@ /area/maintenance/department/crew_quarters/bar) "bVI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "bVJ" = ( @@ -48500,7 +46307,6 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/vault{ @@ -48510,8 +46316,7 @@ "bWa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown/corner{ dir = 4 @@ -48519,8 +46324,6 @@ /area/hallway/primary/central) "bWb" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /obj/machinery/airalarm{ @@ -48537,8 +46340,7 @@ /area/hydroponics) "bWd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/black, @@ -48556,7 +46358,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/carpet{ @@ -48590,7 +46391,6 @@ id = "jangarage"; name = "Custodial Closet Shutters Control"; pixel_x = 25; - pixel_y = 0; req_access_txt = "26" }, /turf/open/floor/plasteel/neutral/corner, @@ -48648,7 +46448,6 @@ /area/crew_quarters/kitchen) "bWq" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/carpet{ @@ -48658,7 +46457,6 @@ "bWr" = ( /obj/effect/landmark/start/assistant, /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/carpet{ @@ -48680,12 +46478,10 @@ /area/crew_quarters/bar) "bWt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; dir = 4 }, /turf/open/floor/plasteel/brown/corner{ - dir = 1; - tag = "icon-browncorner (NORTH)" + dir = 1 }, /area/hallway/primary/central) "bWu" = ( @@ -48747,8 +46543,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -48761,15 +46556,12 @@ "bWD" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (EAST)"; - icon_state = "intact"; dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWE" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -48810,14 +46602,12 @@ /area/crew_quarters/bar) "bWI" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/plasteel/black, /area/crew_quarters/bar) "bWJ" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/plasteel/black, @@ -48902,7 +46692,6 @@ "bWX" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = 27 }, /obj/structure/chair, @@ -48954,8 +46743,7 @@ name = "JoinLate" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/arrival) @@ -49002,8 +46790,7 @@ "bXk" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/secondary/entry) @@ -49011,8 +46798,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/carpet, /area/crew_quarters/lounge) @@ -49024,8 +46810,7 @@ /area/hallway/primary/central) "bXn" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1; - initialize_directions = 11 + dir = 1 }, /turf/open/floor/plasteel/blue/corner, /area/hallway/primary/central) @@ -49074,7 +46859,6 @@ /obj/machinery/power/apc{ dir = 2; name = "Lounge APC"; - pixel_x = 0; pixel_y = -24 }, /obj/structure/cable, @@ -49124,7 +46908,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /turf/open/floor/plasteel/white, @@ -49220,7 +47003,6 @@ "bXT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/corner{ - tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4 }, @@ -49250,9 +47032,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -49286,8 +47066,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/medical/sleeper) @@ -49320,15 +47099,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bYg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/science/research) "bYh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -49345,8 +47121,6 @@ /area/science/research) "bYj" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -49356,8 +47130,6 @@ /area/science/research) "bYk" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (WEST)"; - icon_state = "comfychair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -49401,8 +47173,6 @@ /area/space) "bYr" = ( /obj/machinery/atmospherics/pipe/manifold/general/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/plating, @@ -49427,9 +47197,7 @@ req_access_txt = "12;24" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/engine) @@ -49440,7 +47208,6 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; dir = 9 }, /turf/open/floor/plating, @@ -49455,9 +47222,8 @@ }, /area/hallway/primary/aft) "bYx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -49596,9 +47362,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 0 + name = "EXTERNAL AIRLOCK" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -49650,7 +47414,6 @@ "bZa" = ( /obj/machinery/airalarm{ dir = 4; - icon_state = "alarm0"; pixel_x = -22 }, /turf/open/floor/plasteel/black, @@ -49660,8 +47423,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/chapel/dock) @@ -49726,11 +47488,8 @@ name = "Monastery Asteroid" }) "bZk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/extinguisher_cabinet{ pixel_x = -24 @@ -49752,8 +47511,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/chapel/dock) @@ -49761,9 +47519,8 @@ /turf/open/floor/plasteel/black, /area/chapel/dock) "bZn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/item/device/radio/intercom{ dir = 0; @@ -49790,8 +47547,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 + dir = 10 }, /turf/open/floor/plating, /area/engine/atmos) @@ -49889,9 +47645,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4; @@ -49940,8 +47694,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /turf/open/floor/plasteel/asteroid{ icon_plating = "asteroid" @@ -50078,7 +47831,6 @@ /area/space/nearstation) "cae" = ( /obj/structure/sign/directions/engineering{ - tag = "icon-direction_eng (EAST)"; icon_state = "direction_eng"; dir = 4 }, @@ -50248,9 +48000,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 0 + name = "EXTERNAL AIRLOCK" }, /turf/open/floor/plating, /area/chapel/asteroid{ @@ -50270,8 +48020,7 @@ department = "Engineering"; departmentType = 4; name = "Engineering RC"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -50299,8 +48048,6 @@ /area/engine/atmos) "caG" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall, @@ -50366,7 +48113,6 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -50389,8 +48135,7 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5; - initialize_directions = 12 + dir = 5 }, /turf/open/floor/plating, /area/engine/atmos) @@ -50399,22 +48144,18 @@ /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4; - initialize_directions = 12 + }, /turf/open/floor/plating, /area/engine/atmos) "caU" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ - tag = "icon-intact (WEST)"; - icon_state = "intact"; dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmos) "caV" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ - tag = "icon-intact (NORTHWEST)"; - icon_state = "intact"; dir = 9 }, /turf/closed/wall/r_wall, @@ -50449,8 +48190,7 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 30; - pixel_y = 0 + pixel_x = 30 }, /turf/open/floor/plasteel/chapel{ dir = 4 @@ -50610,14 +48350,12 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /obj/machinery/requests_console{ department = "Chapel"; departmentType = 2; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/carpet, /area/chapel/office) @@ -50743,10 +48481,7 @@ /turf/open/floor/plasteel/black, /area/chapel/office) "cbO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/black, /area/chapel/office) "cbP" = ( @@ -50756,14 +48491,12 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/camera{ c_tag = "Chapel Port Access"; @@ -50780,9 +48513,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -50790,32 +48521,27 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel/chapel{ dir = 8 }, /area/chapel/main/monastery) "cbS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0; - tag = "" + icon_state = "4-8" }, /turf/open/floor/plasteel/chapel, /area/chapel/main/monastery) "cbT" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -50831,9 +48557,8 @@ /turf/open/floor/carpet, /area/chapel/main/monastery) "cbV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/chapel{ dir = 8 @@ -50853,12 +48578,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/airalarm{ pixel_y = 22 }, @@ -50910,8 +48630,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -50927,8 +48646,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -50939,12 +48657,10 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/office) @@ -50952,15 +48668,9 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 + icon_state = "2-8" }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -51020,9 +48730,8 @@ /turf/open/floor/plasteel/black, /area/chapel/main/monastery) "ccq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -51051,27 +48760,20 @@ /obj/machinery/power/apc{ dir = 8; name = "Chapel Office APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-4"; d2 = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/black, /area/chapel/office) "ccv" = ( /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/chapel/office) @@ -51080,11 +48782,12 @@ dir = 4 }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel/black, /area/chapel/office) @@ -51100,8 +48803,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/black, @@ -51189,8 +48891,7 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -51199,6 +48900,8 @@ /area/chapel/main/monastery) "ccM" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -51275,8 +48978,7 @@ /area/chapel/main/monastery) "ccU" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /turf/open/floor/plasteel/black, /area/chapel/main/monastery) @@ -51307,8 +49009,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -51374,8 +49075,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/black, @@ -51463,11 +49163,8 @@ /turf/open/floor/plasteel/hydrofloor, /area/chapel/main/monastery) "cdw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor, /area/chapel/main/monastery) @@ -51494,8 +49191,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -51620,8 +49316,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plasteel/hydrofloor, /area/chapel/main/monastery) @@ -51630,8 +49325,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Garden APC"; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/structure/cable{ icon_state = "0-2"; @@ -51662,7 +49356,6 @@ name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -51674,7 +49367,6 @@ desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/grimy, @@ -51745,20 +49437,19 @@ /obj/structure/cable{ d1 = 2; d2 = 4; - icon_state = "2-4"; - tag = "" + icon_state = "2-4" }, /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4; - initialize_directions = 11 + dir = 4 }, /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/black, @@ -51767,8 +49458,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -51779,8 +49469,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/door/airlock{ name = "Garden" @@ -51791,6 +49480,8 @@ /area/hydroponics/garden/monastery) "cee" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /turf/open/floor/grass, @@ -51839,11 +49530,8 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cel" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) @@ -51851,10 +49539,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cen" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "ceo" = ( @@ -51905,7 +49590,6 @@ /obj/item/device/radio/intercom{ dir = 0; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/hydrofloor, @@ -51914,9 +49598,8 @@ /turf/open/floor/plasteel/hydrofloor, /area/chapel/main/monastery) "cev" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel/hydrofloor, /area/chapel/main/monastery) @@ -51931,8 +49614,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -51972,7 +49654,6 @@ /area/chapel/main/monastery) "ceD" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52054,8 +49735,7 @@ /obj/structure/cable{ d1 = 1; d2 = 2; - icon_state = "1-2"; - pixel_y = 0 + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -52104,8 +49784,6 @@ /area/shuttle/abandoned) "ceV" = ( /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/closed/wall/mineral/titanium, @@ -52126,7 +49804,6 @@ name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; - pixel_y = 0; req_access_txt = "0"; specialfunctions = 4 }, @@ -52203,7 +49880,7 @@ "cfi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1; - initialize_directions = 11 + }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -52250,8 +49927,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -52305,8 +49981,7 @@ /obj/structure/cable{ d1 = 1; d2 = 4; - icon_state = "1-4"; - tag = "90Curve" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/black, @@ -52315,8 +49990,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_y = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52327,14 +50001,12 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -52346,8 +50018,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52359,8 +50030,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52372,8 +50042,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52384,8 +50053,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -52396,8 +50064,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52492,17 +50159,13 @@ }, /area/shuttle/syndicate) "cfM" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/med_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/shuttle/syndicate) "cfN" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/crew/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -52527,9 +50190,7 @@ }, /area/shuttle/syndicate) "cfR" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/camera_advanced/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -52542,7 +50203,6 @@ /obj/item/weapon/clipboard, /obj/item/toy/figure/syndie, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -52671,7 +50331,6 @@ id = "smindicate"; name = "external door control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "150" }, /obj/docking_port/mobile{ @@ -52697,8 +50356,6 @@ }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -52707,8 +50364,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/closed/wall/mineral/plastitanium, /area/shuttle/syndicate) @@ -52802,8 +50458,7 @@ /area/shuttle/syndicate) "cgv" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -53056,7 +50711,6 @@ /obj/item/weapon/circular_saw, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -53066,9 +50720,7 @@ "cgT" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror{ pixel_x = 30 @@ -53140,9 +50792,7 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate) "chd" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -53152,9 +50802,7 @@ /turf/open/floor/plating/airless, /area/shuttle/syndicate) "chf" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate) @@ -53298,11 +50946,8 @@ "chA" = ( /obj/structure/table, /obj/item/toy/cards/deck, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -53336,8 +50981,7 @@ icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/escape{ dir = 8 @@ -53421,7 +51065,6 @@ c_tag = "Departures - Port"; dir = 4; name = "security camera"; - pixel_x = 0; pixel_y = -7 }, /turf/open/floor/plasteel/escape{ @@ -53453,10 +51096,8 @@ /turf/open/floor/grass, /area/hallway/secondary/exit/departure_lounge) "chR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -53515,12 +51156,10 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-21"; layer = 4.1; - pixel_x = 0; pixel_y = 3 }, /turf/open/floor/plasteel/escape{ - dir = 10; - tag = "icon-escape (NORTHWEST)" + dir = 10 }, /area/hallway/secondary/exit/departure_lounge) "chZ" = ( @@ -53556,14 +51195,13 @@ /area/shuttle/transport) "cif" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ dir = 1; pixel_y = 1 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/shuttle/transport) "cig" = ( /obj/machinery/door/airlock/external, @@ -53579,6 +51217,8 @@ /area/quartermaster/storage) "cij" = ( /obj/structure/cable{ + d1 = 1; + d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ @@ -53605,8 +51245,7 @@ /area/hallway/secondary/entry) "cim" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /obj/docking_port/mobile/arrivals{ height = 13; @@ -53621,7 +51260,7 @@ name = "pubby arrivals"; width = 6 }, -/turf/open/floor/plasteel/black, +/turf/open/floor/plating/airless, /area/shuttle/arrival) "cin" = ( /obj/machinery/door/airlock/external{ @@ -53638,9 +51277,7 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "cip" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, +/obj/machinery/computer/secure_data/syndie, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -53705,7 +51342,6 @@ name = "tactical chair" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -53752,8 +51388,6 @@ "ciG" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -53774,8 +51408,6 @@ "ciJ" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -53784,7 +51416,6 @@ /obj/item/weapon/crowbar/red, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/podhatch{ @@ -53799,16 +51430,12 @@ name = "tactical chair" }, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) "ciN" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; dir = 4 }, /area/shuttle/syndicate) @@ -53820,8 +51447,6 @@ "ciP" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -53876,7 +51501,6 @@ /area/shuttle/syndicate) "ciZ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -53901,50 +51525,36 @@ /area/shuttle/syndicate) "cjd" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cje" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cjf" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cjg" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cjh" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cji" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) "cjj" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; dir = 1 }, /area/shuttle/syndicate) @@ -53996,8 +51606,6 @@ /area/shuttle/syndicate) "cjv" = ( /turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; dir = 6 }, /area/shuttle/syndicate) @@ -54033,7 +51641,6 @@ /area/shuttle/labor) "cjA" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -54066,7 +51673,6 @@ /area/shuttle/escape) "cjG" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -68196,7 +65802,7 @@ cax cfd cfp cbh -aIp +aKR aXJ bgH bqb @@ -70763,7 +68369,7 @@ cdP cdP ceQ cdk -cfi +cfj cfv aBW aTP @@ -71021,7 +68627,7 @@ cdP ceR cdl cdb -cfw +cft aAK aTQ bby @@ -71278,7 +68884,7 @@ cdP cdC cdl cdb -cfw +cft aDy aDy aDy @@ -71693,11 +69299,11 @@ amn agu anA ahy -apk +alM aqg aqX agv -ata +apl amo amo awr @@ -75025,7 +72631,7 @@ agH ahe ahF ait -ajk +aow ajW akD alk @@ -75552,7 +73158,7 @@ apr aqn ahH ahH -atg +aqq bUP avd awC @@ -76077,7 +73683,7 @@ aAE aBB aBC axB -aDD +ayz agu aaa aaa @@ -76334,7 +73940,7 @@ aAF aBC aCm axB -aDD +ayz agu aaa aaa @@ -76580,7 +74186,7 @@ apt aqq ahH ahH -atg +aqq atY avf awF @@ -76591,7 +74197,7 @@ aAG aBD aCn axB -aDD +ayz agv aaa aaa @@ -76848,7 +74454,7 @@ aAH aBC aBC axB -aDE +aDC agv agv agv @@ -77608,7 +75214,7 @@ apv aqq ahH ahH -atg +aqq atX avg awG @@ -78159,7 +75765,7 @@ aZj aAt baN bbB -bbW +aEa bcA bdo bew @@ -78187,7 +75793,7 @@ bvP bvP bvP bvP -bFl +bFo bFP boc boc @@ -81498,7 +79104,7 @@ aXy aYr aXy aMY -baU +baX bbD bXn bcF @@ -83858,7 +81464,7 @@ bNF bNB bOx bNt -bPo +bNZ bPH bPY bQq @@ -84582,7 +82188,7 @@ aXE bWH aKZ bWS -baU +baX axi aDI bcL @@ -85098,7 +82704,7 @@ aZs bam aFw aAs -aDM +bce bcN bXB beO @@ -85869,7 +83475,7 @@ aWL bal baV bbE -bcc +aDN bXy bcJ beR @@ -86381,7 +83987,7 @@ aQV aUK aUL bWA -baU +baX axi aDI axi @@ -86897,7 +84503,7 @@ aUL bWA aFw aAs -aDM +bce aye bdK bXG @@ -86942,7 +84548,7 @@ bNF bNB bOc bNt -bPx +bOb bPH bPY bQr @@ -89460,7 +87066,7 @@ bVG aTS aUS bVG -bWt +bVI bVG axi aDd @@ -90789,7 +88395,7 @@ bJf bEY bBz bKu -bLO +bLM bMp bJI bNw @@ -91562,7 +89168,7 @@ bBB bJB bEY bMr -caT +bLR aad bCQ bOo @@ -94068,7 +91674,7 @@ aBU aBv aBv aBv -aFe +aBX aFV aAw aIf @@ -96167,7 +93773,7 @@ bsD btB buG bvG -bwK +bvB bxR byJ bzG @@ -96409,7 +94015,7 @@ amZ aAC aUe aPB -bfx +aUg bed bht biz @@ -98717,7 +96323,7 @@ aUf aYU aCg aPA -bbq +aWV aAC aGY bdf @@ -98974,7 +96580,7 @@ aUg aCg aZN aCg -bbq +aWV aAC bcq bdg @@ -99231,7 +96837,7 @@ aCg aYV aZO baC -bbq +aWV aAC bcr bdh @@ -99745,7 +97351,7 @@ aXZ aVi bWN aCg -bbq +aWV aAC aAC bdi diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.041517.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.041517.dmm deleted file mode 100644 index 8cd22b0c1d..0000000000 --- a/_maps/map_files/TgStation/tgstation.2.1.3.041517.dmm +++ /dev/null @@ -1,128234 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aaa" = ( -/turf/open/space/basic, -/area/space) -"aab" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_n"; - name = "north of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"aac" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"aae" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space) -"aaf" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aag" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aah" = ( -/obj/structure/sign/securearea{ - pixel_y = -32 - }, -/turf/open/space, -/area/space) -"aai" = ( -/turf/closed/wall/r_wall, -/area/security/prison) -"aaj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/security/prison) -"aak" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/prison) -"aal" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/prison) -"aam" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/prison) -"aan" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/ambrosia, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/security/prison) -"aao" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plating, -/area/security/prison) -"aap" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/carrot, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/security/prison) -"aaq" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/hydroponics/soil, -/obj/item/device/plant_analyzer, -/obj/machinery/camera{ - c_tag = "Prison Common Room"; - network = list("SS13","Prison") - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/security/prison) -"aar" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/glowshroom, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/security/prison) -"aas" = ( -/obj/structure/sink{ - pixel_y = 20 - }, -/turf/open/floor/plating, -/area/security/prison) -"aat" = ( -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aau" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aav" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaw" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plating, -/area/security/prison) -"aax" = ( -/mob/living/simple_animal/mouse/brown/Tom, -/turf/open/floor/plating, -/area/security/prison) -"aay" = ( -/turf/open/floor/plating, -/area/security/prison) -"aaz" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plating, -/area/security/prison) -"aaA" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaB" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/potato, -/turf/open/floor/plasteel/green/side{ - dir = 10 - }, -/area/security/prison) -"aaC" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"aaD" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/grass, -/turf/open/floor/plasteel/green/side{ - dir = 2 - }, -/area/security/prison) -"aaE" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/weapon/cultivator, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/security/prison) -"aaF" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/weapon/cultivator, -/turf/open/floor/plasteel/green/side{ - dir = 2 - }, -/area/security/prison) -"aaG" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaH" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"aaI" = ( -/obj/structure/bookcase, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaJ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaK" = ( -/obj/machinery/washing_machine, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaM" = ( -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, -/obj/structure/table, -/obj/machinery/newscaster{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaN" = ( -/obj/structure/table, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/security/prison) -"aaO" = ( -/obj/structure/table, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/plasteel, -/area/security/prison) -"aaP" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaR" = ( -/obj/structure/lattice, -/obj/structure/sign/securearea{ - pixel_y = -32 - }, -/turf/open/space, -/area/space) -"aaS" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aaT" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) -"aaU" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aaV" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/security/prison) -"aaW" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/security/prison) -"aaX" = ( -/obj/machinery/washing_machine, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaY" = ( -/obj/structure/window/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/barber, -/area/security/prison) -"aaZ" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"aba" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space, -/area/space) -"abb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/security/transfer) -"abc" = ( -/turf/closed/wall, -/area/security/transfer) -"abd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/security/transfer) -"abe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/transfer) -"abf" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/transfer) -"abh" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abi" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abj" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abk" = ( -/obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = 10 - }, -/obj/structure/table/wood, -/obj/item/device/radio/off, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/turf/open/floor/carpet, -/area/security/hos) -"abl" = ( -/obj/machinery/vending/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abm" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/firingpins, -/obj/item/weapon/storage/box/firingpins, -/obj/item/key/security, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abn" = ( -/obj/structure/rack, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/item/weapon/gun/energy/e_gun/dragnet, -/obj/item/weapon/gun/energy/e_gun/dragnet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/main) -"abp" = ( -/turf/closed/wall, -/area/security/main) -"abq" = ( -/turf/closed/wall/r_wall, -/area/security/hos) -"abr" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/hos) -"abs" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/tracker, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxport) -"abt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"abu" = ( -/obj/machinery/door/poddoor{ - id = "executionspaceblast"; - name = "blast door" - }, -/turf/open/floor/plating, -/area/security/transfer) -"abv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"abw" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/flasher{ - id = "executionflash"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"abx" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aby" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/transfer) -"abz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abA" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abD" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abF" = ( -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abG" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Unisex Showers"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abH" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/chemimp{ - pixel_x = 6 - }, -/obj/item/weapon/storage/box/trackimp{ - pixel_x = -3 - }, -/obj/item/weapon/storage/lockbox/loyalty, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abI" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/clothing/head/helmet/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abJ" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_y = 0 - }, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abK" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt3"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abL" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"abN" = ( -/obj/structure/closet/secure_closet/lethalshots, -/turf/open/floor/plasteel/black, -/area/ai_monitored/security/armory) -"abO" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abP" = ( -/obj/structure/closet/secure_closet/security/sec, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abQ" = ( -/obj/structure/rack, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/weapon/gun/energy/ionrifle, -/obj/item/weapon/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"abR" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abS" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/carpet, -/area/security/hos) -"abT" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Security's Desk"; - departmentType = 5; - name = "Head of Security RC"; - pixel_x = 0; - pixel_y = 30 - }, -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = -31 - }, -/obj/structure/table/wood, -/obj/item/weapon/storage/box/seccarts{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/weapon/storage/box/deputy, -/turf/open/floor/carpet, -/area/security/hos) -"abU" = ( -/obj/machinery/computer/card/minor/hos, -/turf/open/floor/carpet, -/area/security/hos) -"abV" = ( -/obj/machinery/computer/security, -/turf/open/floor/carpet, -/area/security/hos) -"abW" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 - }, -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/turf/open/floor/carpet, -/area/security/hos) -"abX" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/tracker, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxstarboard) -"abY" = ( -/obj/structure/grille, -/turf/open/space, -/area/space) -"abZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"aca" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acb" = ( -/obj/machinery/sparker{ - dir = 2; - id = "executionburn"; - pixel_x = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acc" = ( -/obj/structure/bed, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acd" = ( -/turf/closed/wall, -/area/security/prison) -"ace" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell3"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/glass{ - id_tag = "permabolt3"; - name = "Cell 3" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acf" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/glass{ - id_tag = "permabolt2"; - name = "Cell 2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "permacell1"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/glass{ - id_tag = "permabolt1"; - name = "Cell 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ach" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"aci" = ( -/obj/vehicle/secway, -/turf/open/floor/plasteel/black, -/area/ai_monitored/security/armory) -"acj" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/suit_storage_unit/hos, -/turf/open/floor/carpet, -/area/security/hos) -"ack" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acm" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 4; - name = "Armory APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acn" = ( -/obj/item/weapon/storage/secure/safe/HoS{ - pixel_x = 35 - }, -/obj/structure/closet/secure_closet/hos, -/turf/open/floor/carpet, -/area/security/hos) -"aco" = ( -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"acp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"acq" = ( -/obj/effect/landmark/secequipment, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"acr" = ( -/obj/structure/chair/comfy/black, -/turf/open/floor/carpet, -/area/security/hos) -"acs" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/security/hos) -"act" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/security/hos) -"acu" = ( -/turf/open/floor/carpet, -/area/security/hos) -"acv" = ( -/obj/structure/closet/secure_closet{ - anchored = 1; - name = "Contraband Locker"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/security/armory) -"acw" = ( -/obj/structure/sign/securearea{ - pixel_y = -32 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"acx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"acy" = ( -/obj/structure/lattice, -/obj/item/stack/cable_coil/random, -/turf/open/space, -/area/space) -"acz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acA" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"acC" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 3"; - network = list("SS13","Prison") - }, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acD" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt1"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acE" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 2"; - network = list("SS13","Prison") - }, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acF" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acH" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 1"; - network = list("SS13","Prison") - }, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acI" = ( -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Transfer Room"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/transfer) -"acJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acK" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"acL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acM" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/gun/energy/e_gun, -/obj/item/weapon/gun/energy/e_gun{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"acN" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"acO" = ( -/obj/structure/closet/l3closet/security, -/obj/machinery/camera{ - c_tag = "Brig Equipment Room"; - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"acP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"acQ" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/hos, -/turf/open/floor/carpet, -/area/security/hos) -"acR" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - on = 0; - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/carpet, -/area/security/hos) -"acS" = ( -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/security/hos) -"acT" = ( -/obj/machinery/door/window/eastleft{ - name = "armoury desk"; - req_access_txt = "1" - }, -/obj/machinery/door/window/westleft{ - name = "armoury desk"; - req_access_txt = "3" - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acU" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, -/turf/open/floor/plating, -/area/security/main) -"acV" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxport) -"acW" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"acX" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/transfer) -"acY" = ( -/obj/structure/table, -/obj/item/weapon/paper, -/obj/item/weapon/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"acZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/transfer) -"ada" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/machinery/flasher{ - id = "PCell 3"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adb" = ( -/obj/structure/table, -/obj/item/weapon/paper, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adc" = ( -/obj/machinery/flasher{ - id = "PCell 1"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"add" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ade" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adf" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"adg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"adh" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/carpet, -/area/security/hos) -"adi" = ( -/obj/machinery/flasher/portable, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"adj" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/gun/energy/e_gun/advtaser, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"adk" = ( -/obj/structure/rack, -/obj/item/weapon/gun/ballistic/shotgun/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/gun/ballistic/shotgun/riot, -/obj/item/weapon/gun/ballistic/shotgun/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"adl" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armory"; - name = "Armoury Shutter" - }, -/obj/machinery/button/door{ - id = "armory"; - name = "Armory Shutters"; - pixel_x = 0; - pixel_y = -26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/ai_monitored/security/armory) -"adm" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/hos) -"adn" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/security/hos) -"ado" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/carpet, -/area/security/hos) -"adp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/security/hos) -"adq" = ( -/obj/structure/table/wood, -/obj/item/device/instrument/guitar{ - pixel_x = -7 - }, -/obj/item/device/instrument/eguitar{ - pixel_x = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"adr" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/security/main) -"ads" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxstarboard) -"adt" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adw" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adx" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"ady" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"adB" = ( -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/space, -/area/space) -"adC" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/weapon/scalpel{ - pixel_y = 12 - }, -/obj/item/weapon/circular_saw, -/obj/item/weapon/hemostat, -/obj/item/weapon/retractor, -/obj/item/weapon/surgical_drapes, -/obj/item/weapon/razor, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"adD" = ( -/obj/machinery/button/flasher{ - id = "executionflash"; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/button/door{ - id = "executionspaceblast"; - name = "Vent to Space"; - pixel_x = 25; - pixel_y = -5; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"adE" = ( -/obj/structure/table, -/obj/item/weapon/folder/red{ - pixel_x = 3 - }, -/obj/item/device/taperecorder{ - pixel_x = -3; - pixel_y = 0 - }, -/obj/item/device/assembly/flash/handheld, -/obj/item/weapon/reagent_containers/spray/pepper, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"adF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/prison) -"adG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/prison) -"adH" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Long-Term Cell 3"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adI" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Long-Term Cell 2"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adJ" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Long-Term Cell 1"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"adL" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"adM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/security/hos) -"adN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Head of Security's Office APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/security/hos) -"adO" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"adP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/security/hos) -"adQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"adR" = ( -/turf/closed/wall/r_wall, -/area/security/main) -"adS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adU" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adV" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adX" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"adZ" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxport) -"aea" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/security/transfer) -"aeb" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aec" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/transfer) -"aed" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/machinery/button/ignition{ - id = "executionburn"; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/button/door{ - id = "executionfireblast"; - name = "Transfer Area Lockdown"; - pixel_x = 25; - pixel_y = -5; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aee" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aef" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"aeg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/transfer) -"aeh" = ( -/obj/machinery/button/door{ - id = "permacell3"; - name = "Cell 3 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 3"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/prison) -"aei" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aej" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) -"aek" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("Prison"); - pixel_x = 0; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"ael" = ( -/obj/machinery/button/door{ - id = "permacell2"; - name = "Cell 2 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 2"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/prison) -"aem" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aen" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("Prison"); - pixel_x = 0; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway"; - network = list("SS13","Prison") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"aeo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) -"aep" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aeq" = ( -/obj/machinery/button/door{ - id = "permacell1"; - name = "Cell 1 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 1"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/prison) -"aer" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Prison Wing APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/prison) -"aes" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/plasteel/red/side, -/area/ai_monitored/security/armory) -"aet" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"aeu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/plasteel/red/side, -/area/ai_monitored/security/armory) -"aev" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"aew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"aex" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/hos) -"aey" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Head of Security"; - req_access_txt = "58" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/security/hos) -"aez" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"aeA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aeB" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/security/main) -"aeC" = ( -/obj/machinery/camera{ - c_tag = "Security Escape Pod"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plating, -/area/security/main) -"aeD" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aeE" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"aeG" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/auxstarboard) -"aeH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/transfer) -"aeI" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/weapon/tank/internals/anesthetic{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/weapon/tank/internals/oxygen/red{ - pixel_x = 3 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/transfer) -"aeJ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/security/transfer) -"aeK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aeL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aeM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"aeN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 0; - icon_state = "door_closed"; - id_tag = null; - locked = 0; - name = "Prisoner Transfer Centre"; - req_access = null; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"aeO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeP" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"aeQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeR" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aeS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aeV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeW" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Brig Control Room"; - dir = 4 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aeX" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"aeY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/window/southleft{ - name = "Armory"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"aeZ" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"afa" = ( -/obj/machinery/door/airlock/titanium{ - name = "Emergency Shuttle Airlock" - }, -/obj/docking_port/mobile/emergency{ - name = "Box emergency shuttle"; - timid = 0 - }, -/obj/docking_port/stationary{ - dir = 4; - dwidth = 12; - height = 18; - id = "emergency_home"; - name = "BoxStation emergency evac bay"; - turf_type = /turf/open/space; - width = 32 - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"afb" = ( -/obj/machinery/recharger, -/obj/structure/table, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afc" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afd" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/red, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"aff" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/main) -"afg" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"afh" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"afi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"afj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"afk" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"afl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/main) -"afn" = ( -/turf/open/floor/plating, -/area/security/main) -"afo" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Three"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/security/main) -"afp" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_angle = 180; - preferred_direction = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afq" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_asteroid3"; - shuttleId = "pod3" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afr" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"afs" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) -"aft" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/security/transfer) -"afu" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/transfer) -"afv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"afw" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - layer = 2.4 - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Armory"; - req_access_txt = "2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/security/transfer) -"afx" = ( -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"afy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"afz" = ( -/obj/structure/table, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/prison) -"afA" = ( -/turf/closed/wall/r_wall, -/area/security/transfer) -"afB" = ( -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"afC" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"afD" = ( -/obj/structure/table, -/obj/item/device/electropack, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afE" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"afF" = ( -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/clothing/suit/straight_jacket, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afG" = ( -/obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/item/weapon/storage/box/hug, -/obj/item/weapon/razor{ - pixel_x = -6 - }, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afH" = ( -/obj/structure/closet/secure_closet/brig{ - anchored = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afI" = ( -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 1; - pixel_y = -27 - }, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afK" = ( -/obj/machinery/door/airlock/glass_security{ - id_tag = null; - name = "Evidence Storage"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"afL" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"afM" = ( -/turf/open/floor/plasteel, -/area/security/brig) -"afN" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"afO" = ( -/obj/machinery/door/airlock/command{ - name = "Command Tool Storage"; - req_access = null; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"afP" = ( -/obj/machinery/door/airlock/command{ - cyclelinkeddir = 2; - name = "Command Tool Storage"; - req_access = null; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"afQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/security/main) -"afR" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/main) -"afS" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Equipment Room"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afT" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"afU" = ( -/turf/open/floor/plasteel, -/area/security/main) -"afV" = ( -/obj/structure/table, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/timer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"afW" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/main) -"afX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/start/head_of_security, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"afY" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afZ" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aga" = ( -/obj/structure/sign/pods{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agb" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"agc" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/main) -"agd" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel, -/area/atmos) -"agf" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 1 - }, -/obj/item/weapon/storage/box/bodybags, -/obj/item/weapon/pen, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"agg" = ( -/obj/structure/closet/secure_closet/injection, -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 2; - name = "Prisoner Transfer Centre"; - pixel_x = 0; - pixel_y = -27 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"agh" = ( -/obj/structure/table, -/obj/item/device/electropack, -/obj/item/weapon/screwdriver, -/obj/item/weapon/wrench, -/obj/item/clothing/head/helmet, -/obj/item/device/assembly/signaler, -/obj/machinery/light/small, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/black, -/area/security/transfer) -"agi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_security{ - name = "Prison Wing"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/prison) -"agj" = ( -/turf/closed/wall, -/area/security/brig) -"agk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_security{ - name = "Prison Wing"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/prison) -"agl" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access = null; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agm" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"agn" = ( -/turf/closed/wall/r_wall, -/area/security/warden) -"ago" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agp" = ( -/obj/machinery/computer/prisoner, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"agr" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ags" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agt" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agu" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agw" = ( -/obj/structure/table, -/obj/machinery/syndicatebomb/training, -/obj/item/weapon/gun/energy/laser/practice, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/main) -"agx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"agy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"agz" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/main) -"agA" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"agB" = ( -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"agC" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"agD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/security/brig) -"agE" = ( -/obj/structure/table, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/security/main) -"agF" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/security/brig) -"agG" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"agH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agI" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agJ" = ( -/obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agK" = ( -/turf/open/floor/plasteel/black, -/area/security/prison) -"agL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"agM" = ( -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitered/side{ - dir = 9 - }, -/area/security/brig) -"agN" = ( -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/regular, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/security/brig) -"agO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"agP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"agQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agR" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"agS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agT" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agV" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agW" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"agX" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agY" = ( -/obj/structure/table, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"agZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"aha" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahb" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"ahc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahd" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahe" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j2s"; - sortType = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahi" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j2s"; - sortType = 7 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"ahj" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Security Delivery"; - req_access_txt = "1" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/main) -"ahk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ahl" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Security" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/main) -"ahm" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/iv_drip{ - density = 0 - }, -/obj/item/weapon/reagent_containers/blood/empty, -/turf/open/floor/plasteel/whitered/side{ - dir = 5 - }, -/area/security/brig) -"ahn" = ( -/turf/closed/wall, -/area/maintenance/fsmaint) -"aho" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"ahp" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/security/prison) -"ahq" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/black, -/area/security/prison) -"ahr" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"ahs" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/table/glass, -/obj/machinery/computer/med_data/laptop, -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/security/brig) -"aht" = ( -/turf/open/floor/plasteel/whitered/corner{ - dir = 8 - }, -/area/security/brig) -"ahu" = ( -/obj/item/weapon/storage/box/bodybags, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/syringe{ - name = "steel point" - }, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitered/side{ - dir = 10 - }, -/area/security/brig) -"ahv" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Brig Control APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"ahB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahD" = ( -/obj/machinery/door/window/westleft{ - base_state = "left"; - dir = 4; - icon_state = "left"; - name = "Brig Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 4 - }, -/area/security/brig) -"ahE" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahH" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-y"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"ahL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahN" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Security Office APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"ahO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/main) -"ahP" = ( -/turf/open/floor/plasteel/white, -/area/security/brig) -"ahQ" = ( -/obj/structure/closet/secure_closet/warden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahR" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/warden, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = -27; - pixel_y = 8; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = -27; - pixel_y = -2; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahS" = ( -/obj/structure/table, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahT" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ahU" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"ahV" = ( -/obj/structure/table, -/obj/item/weapon/folder/red, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"ahW" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/camera{ - c_tag = "Brig Infirmary"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"ahX" = ( -/obj/structure/table, -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"ahZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/main) -"aia" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aib" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aic" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aid" = ( -/turf/open/floor/plasteel/whitered/side{ - dir = 10 - }, -/area/security/brig) -"aie" = ( -/obj/structure/table, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen, -/obj/item/weapon/hand_labeler, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aif" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aig" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aih" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"aii" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"aij" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aik" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"ail" = ( -/obj/machinery/camera{ - c_tag = "Brig Interrogation"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"aim" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"ain" = ( -/turf/open/floor/plasteel/whitered/side{ - dir = 8 - }, -/area/security/brig) -"aio" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aip" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aiq" = ( -/obj/machinery/camera{ - c_tag = "Security Office"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/computer/secure_data, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"air" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"ais" = ( -/obj/structure/filingcabinet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"ait" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/computer/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aiu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aiv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aiw" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Brig Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 4 - }, -/area/security/brig) -"aix" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/main) -"aiy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"aiz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"aiA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aiB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"aiC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/security/prison) -"aiD" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aiE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/security/prison) -"aiF" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/turf/open/floor/plasteel/whitered/side, -/area/security/brig) -"aiG" = ( -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"aiH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aiI" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_x = -32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"aiJ" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aiK" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"aiL" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"aiM" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aiN" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/warden) -"aiO" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/turf/open/floor/plasteel/whitered/side{ - dir = 6 - }, -/area/security/brig) -"aiP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/main) -"aiQ" = ( -/obj/machinery/camera{ - c_tag = "Brig East" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aiR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aiS" = ( -/obj/item/stack/rods, -/turf/open/space, -/area/space) -"aiT" = ( -/turf/closed/wall, -/area/security/processing) -"aiU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"aiV" = ( -/turf/closed/wall/r_wall, -/area/security/processing) -"aiW" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access = null; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/security/prison) -"aiX" = ( -/turf/closed/wall/r_wall, -/area/security/brig) -"aiY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"aiZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"aja" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"ajc" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajd" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aje" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"ajh" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/closet/secure_closet/courtroom, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/securearea{ - pixel_x = -32 - }, -/obj/item/weapon/gavelhammer, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"aji" = ( -/obj/structure/chair{ - name = "Judge" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/crew_quarters/courtroom) -"ajj" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/camera{ - c_tag = "Courtroom North" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"ajk" = ( -/obj/structure/chair{ - name = "Judge" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/crew_quarters/courtroom) -"ajl" = ( -/obj/structure/chair{ - name = "Judge" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/crew_quarters/courtroom) -"ajm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"ajn" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"ajo" = ( -/turf/closed/wall, -/area/crew_quarters/courtroom) -"ajp" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"ajq" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxport) -"ajr" = ( -/obj/machinery/computer/gulag_teleporter_computer, -/turf/open/floor/plasteel, -/area/security/processing) -"ajs" = ( -/obj/machinery/gulag_teleporter, -/turf/open/floor/plasteel, -/area/security/processing) -"ajt" = ( -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/table, -/obj/item/weapon/storage/box/prisoner, -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aju" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ajv" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"ajw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"ajx" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajy" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Brig APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajz" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"ajB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"ajC" = ( -/obj/item/weapon/storage/toolbox/drone, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"ajD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/courtroom) -"ajF" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/security/brig) -"ajG" = ( -/obj/machinery/light, -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"ajH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/courtroom) -"ajI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"ajM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"ajN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Brig"; - req_access = null; - req_access_txt = "63; 42" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajO" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - broadcasting = 0; - dir = 8; - listening = 1; - name = "Station Intercom (Court)"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/courtroom) -"ajP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 9 - }, -/area/crew_quarters/courtroom) -"ajQ" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/courtroom) -"ajR" = ( -/obj/structure/table/wood, -/obj/item/weapon/gavelblock, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/courtroom) -"ajS" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/crew_quarters/courtroom) -"ajT" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/crew_quarters/courtroom) -"ajU" = ( -/obj/machinery/door/window/southleft{ - name = "Court Cell"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"ajV" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"ajW" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"ajX" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/labor) -"ajZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/mining_construction) -"aka" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akb" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akd" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"ake" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"akf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Brig West"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/security/brig) -"akh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aki" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"akj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akk" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/security/brig) -"akl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"akn" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/courtroom) -"ako" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akq" = ( -/obj/machinery/camera{ - c_tag = "Brig Central"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"aks" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"akt" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 4"; - name = "Cell 4"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aku" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"akv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"akw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"akx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"aky" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/courtroom) -"akz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"akA" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/crew_quarters/courtroom) -"akB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"akC" = ( -/obj/machinery/computer/shuttle/labor, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -31; - pixel_y = 0 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"akD" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/labor) -"akE" = ( -/obj/structure/table, -/obj/item/weapon/folder/red, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"akF" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"akG" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"akH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akJ" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"akL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"akM" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akN" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akO" = ( -/obj/machinery/door/window/brigdoor{ - id = "Cell 1"; - name = "Cell 1"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akP" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akR" = ( -/obj/machinery/door/window/brigdoor{ - id = "Cell 2"; - name = "Cell 2"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akS" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akT" = ( -/obj/machinery/door/window/brigdoor{ - id = "Cell 3"; - name = "Cell 3"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"akU" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"akV" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akW" = ( -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"akX" = ( -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"akY" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"akZ" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"ala" = ( -/obj/machinery/door/window/brigdoor{ - id = "Cell 4"; - name = "Cell 4"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"alb" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/crew_quarters/courtroom) -"alc" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/courtroom) -"ald" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/courtroom) -"ale" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/courtroom) -"alf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"alg" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"alh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"ali" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"alj" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"alk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"all" = ( -/obj/machinery/mineral/labor_claim_console{ - machinedir = 2; - pixel_x = 30; - pixel_y = 30 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"alm" = ( -/obj/machinery/button/flasher{ - id = "gulagshuttleflasher"; - name = "Flash Control"; - pixel_x = 0; - pixel_y = -26; - req_access_txt = "1" - }, -/obj/machinery/light, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"aln" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/security/processing) -"alo" = ( -/obj/machinery/door/airlock/titanium{ - name = "Labor Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"alp" = ( -/turf/open/floor/plating, -/area/security/processing) -"alq" = ( -/turf/open/floor/plasteel, -/area/security/processing) -"alr" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"als" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"alt" = ( -/obj/structure/reagent_dispensers/peppertank, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"alu" = ( -/obj/machinery/nuclearbomb/selfdestruct, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/nuke_storage) -"alv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"alw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"alx" = ( -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aly" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"alz" = ( -/obj/machinery/button/door{ - id = "briggate"; - name = "Desk Shutters"; - pixel_x = -26; - pixel_y = 6; - req_access_txt = "0" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/button/flasher{ - id = "brigentry"; - pixel_x = -28; - pixel_y = -8 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"alA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/eastleft{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/black, -/area/security/brig) -"alB" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/black, -/area/security/brig) -"alC" = ( -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"alD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/crew_quarters/courtroom) -"alE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = 28 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"alF" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 2 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"alG" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/crew_quarters/courtroom) -"alH" = ( -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/courtroom) -"alI" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/courtroom) -"alJ" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/courtroom) -"alK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 8; - name = "Courtroom APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/crew_quarters/courtroom) -"alM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"alN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/auxstarboard) -"alO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"alP" = ( -/turf/closed/wall, -/area/maintenance/fsmaint2) -"alQ" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Fore Port Solar Control"; - track = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"alR" = ( -/turf/closed/wall/r_wall, -/area/maintenance/auxsolarport) -"alS" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"alT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"alU" = ( -/turf/closed/wall, -/area/maintenance/fpmaint2) -"alV" = ( -/obj/effect/decal/cleanable/vomit, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"alW" = ( -/obj/item/weapon/cigbutt/cigarbutt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"alX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/atmos) -"alY" = ( -/obj/machinery/door/airlock/titanium{ - name = "Labor Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/labor) -"alZ" = ( -/obj/machinery/mineral/stacking_machine/laborstacker{ - input_dir = 2; - output_dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/labor) -"ama" = ( -/mob/living/simple_animal/sloth/paperwork, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"amb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"amc" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"amd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"ame" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"amf" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amg" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 1"; - name = "Cell 1 Locker" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amh" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"ami" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "Cell 2 Locker" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amj" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amk" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 3"; - name = "Cell 3 Locker" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aml" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "outerbrig"; - name = "Brig Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -26; - pixel_y = -5; - req_access_txt = "63" - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "innerbrig"; - name = "Brig Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -26; - pixel_y = 5; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"amm" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/eastright{ - name = "Brig Desk"; - req_access_txt = "2" - }, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/radio/off, -/turf/open/floor/plasteel/black, -/area/security/brig) -"amn" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"amo" = ( -/obj/machinery/flasher{ - id = "brigentry"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"amp" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 4"; - name = "Cell 4 Locker" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amq" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 25; - pixel_y = -2; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"amr" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/courtroom) -"ams" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/courtroom) -"amt" = ( -/obj/machinery/door/airlock/glass{ - name = "Courtroom"; - req_access_txt = "42" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"amu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"amv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"amw" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"amx" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"amy" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"amz" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"amA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"amB" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"amC" = ( -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amD" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amE" = ( -/obj/structure/bed, -/obj/effect/landmark/xeno_spawn, -/obj/item/weapon/bedsheet, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amF" = ( -/obj/machinery/computer/slot_machine{ - balance = 15; - money = 500 - }, -/obj/item/weapon/coin/iron, -/obj/item/weapon/coin/diamond, -/obj/item/weapon/coin/diamond, -/obj/item/weapon/coin/diamond, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amG" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/toy/sword, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amH" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27; - pixel_y = 0 - }, -/obj/item/trash/plate, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"amI" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"amJ" = ( -/obj/machinery/mineral/labor_claim_console{ - machinedir = 1; - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"amK" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/security/processing) -"amL" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"amM" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Prisoner Processing"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"amN" = ( -/obj/structure/table, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amO" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"amP" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters{ - id = "syndieshutters"; - name = "blast shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"amQ" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/grille, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"amR" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"amS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"amT" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/southleft{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"amU" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "briggate"; - name = "security blast door" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/brig) -"amV" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"amW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"amX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"amY" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"amZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"ana" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anb" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"and" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ane" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"anf" = ( -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ang" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Fore Port Solar APC"; - pixel_x = -25; - pixel_y = 3 - }, -/obj/machinery/camera{ - c_tag = "Fore Port Solar Control"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"anh" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"ani" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"anj" = ( -/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ank" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anl" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anm" = ( -/obj/item/trash/sosjerky, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ann" = ( -/obj/item/weapon/electronics/airalarm, -/obj/item/weapon/circuitboard/machine/seed_extractor, -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ano" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anp" = ( -/obj/item/weapon/cigbutt, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anq" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"anr" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/flasher{ - id = "gulagshuttleflasher"; - pixel_x = 25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"ans" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/processing) -"ant" = ( -/obj/machinery/gulag_item_reclaimer{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"anu" = ( -/obj/machinery/button/door{ - desc = "A remote control switch for the exit."; - id = "laborexit"; - name = "exit button"; - normaldoorcontrol = 1; - pixel_x = 26; - pixel_y = -6; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/processing) -"anv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/processing) -"anw" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"anx" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"any" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"anz" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anA" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"anB" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"anC" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/courtroom) -"anD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anE" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anF" = ( -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anG" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"anH" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/auxsolarport) -"anI" = ( -/obj/machinery/door/airlock/engineering{ - icon_state = "door_closed"; - locked = 0; - name = "Fore Port Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarport) -"anJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anK" = ( -/obj/effect/decal/cleanable/egg_smudge, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anL" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"anM" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"anN" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Labor Camp Shuttle Airlock"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/security/processing) -"anO" = ( -/obj/machinery/door/airlock/titanium{ - id_tag = "prisonshuttle"; - name = "Labor Shuttle Airlock" - }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp"; - name = "labor camp shuttle"; - port_angle = 90; - width = 9 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_home"; - name = "fore bay 1"; - width = 9 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"anP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - id_tag = "laborexit"; - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "63" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"anQ" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anS" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Courtroom" - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anV" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anX" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Courtroom South"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anY" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"anZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoa" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aob" = ( -/obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aoc" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aod" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"aoe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"aof" = ( -/turf/closed/wall/r_wall, -/area/maintenance/auxsolarstarboard) -"aog" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoh" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Fore Starboard Solar Control"; - track = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoi" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/item/device/multitool, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoj" = ( -/obj/machinery/camera{ - c_tag = "Fore Port Solar Access" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aok" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aol" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aom" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aon" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoo" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/monkey_recycler, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aop" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating/airless, -/area/shuttle/labor) -"aoq" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"aor" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/processing) -"aos" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aot" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/processing) -"aou" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock South"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/processing) -"aov" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aow" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aox" = ( -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway West"; - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aoy" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA"; - location = "Security" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoz" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoA" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoB" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoC" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoD" = ( -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway East"; - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoE" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoF" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/fore) -"aoG" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"aoH" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/courtroom) -"aoI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Fitness Room APC"; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aoJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoL" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air Out"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aoM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoN" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoO" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aoP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aoQ" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aoR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoU" = ( -/obj/structure/bed, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoV" = ( -/turf/open/space, -/area/space/nearstation) -"aoW" = ( -/obj/structure/table, -/obj/item/weapon/stamp, -/obj/item/weapon/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aoY" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/labor) -"aoZ" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Waste Release" - }, -/turf/open/floor/plasteel, -/area/atmos) -"apa" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/atmos) -"apb" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/security/processing) -"apc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/security/processing) -"apd" = ( -/turf/closed/wall, -/area/security/detectives_office) -"ape" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Vacant Office B"; - req_access_txt = "32" - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"apf" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/detectives_office) -"apg" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aph" = ( -/turf/closed/wall, -/area/lawoffice) -"api" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/turf/open/floor/plasteel, -/area/lawoffice) -"apj" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"apk" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"apl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"apm" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"apn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/closed/wall, -/area/maintenance/fsmaint) -"apo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"app" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apq" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apr" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Dormitory Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aps" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apv" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apw" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air In"; - on = 1 - }, -/obj/effect/landmark/blobstart, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apx" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apy" = ( -/obj/item/weapon/wrench, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"apz" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"apA" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Fore Starboard Solar APC"; - pixel_x = -25; - pixel_y = 3 - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"apB" = ( -/obj/machinery/camera{ - c_tag = "Fore Starboard Solars"; - dir = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"apC" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fsmaint2) -"apD" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"apE" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"apF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/atmos) -"apG" = ( -/obj/machinery/portable_atmospherics/canister/water_vapor, -/turf/open/floor/plasteel, -/area/janitor) -"apH" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"apI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "waste_out" - }, -/turf/open/floor/plating/airless, -/area/atmos) -"apJ" = ( -/turf/closed/wall, -/area/mining_construction) -"apK" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) -"apL" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/fpmaint2) -"apM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/fpmaint2) -"apN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"apO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"apP" = ( -/obj/structure/grille, -/obj/structure/window/fulltile{ - obj_integrity = 35 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"apQ" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"apR" = ( -/obj/item/weapon/paper{ - info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; - name = "Note from Beepsky's Mom" - }, -/turf/open/floor/plating, -/area/security/processing) -"apS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/security/processing) -"apU" = ( -/turf/open/floor/plating, -/area/security/vacantoffice2) -"apV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"apW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"apX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/fitness) -"apY" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"apZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aqa" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"aqb" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/storage/briefcase, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/wood, -/area/lawoffice) -"aqc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/fsmaint) -"aqd" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aqe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqk" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Dormitory APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/sleep) -"aql" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqn" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm4"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"aqo" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"aqp" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/weapon/tank/internals/oxygen, -/obj/item/clothing/mask/gas, -/obj/item/weapon/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"aqr" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aqs" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aqt" = ( -/obj/structure/grille, -/obj/effect/landmark/syndicate_breach_area, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aqu" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aqv" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering{ - icon_state = "door_closed"; - locked = 0; - name = "Fore Starboard Solar Access"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"aqx" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/auxsolarstarboard) -"aqy" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqz" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqB" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqC" = ( -/obj/machinery/computer/slot_machine{ - balance = 15; - money = 500 - }, -/obj/item/weapon/coin/iron, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqD" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/item/weapon/coin/gold, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqE" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aqF" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aqG" = ( -/obj/docking_port/stationary/random{ - dir = 4; - id = "pod_asteroid3"; - name = "asteroid" - }, -/turf/open/space, -/area/space) -"aqH" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"aqI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aqJ" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aqK" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/fpmaint2) -"aqL" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aqM" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 10 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aqN" = ( -/obj/structure/closet/secure_closet/miner{ - locked = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aqO" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aqP" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Arrivals North Maintenance APC"; - pixel_x = -1; - pixel_y = 26 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aqQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aqR" = ( -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aqS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/potato{ - name = "\improper Beepsky's emergency battery" - }, -/turf/open/floor/plating, -/area/security/processing) -"aqT" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Labor Shuttle Dock APC"; - pixel_x = -24 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/security/processing) -"aqV" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"aqW" = ( -/turf/open/floor/carpet, -/area/security/detectives_office) -"aqX" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/obj/structure/chair, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"aqY" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"aqZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ara" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Law office"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/closet/lawcloset, -/turf/open/floor/wood, -/area/lawoffice) -"arb" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/pen/red, -/turf/open/floor/wood, -/area/lawoffice) -"arc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"ard" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "lawyer_blast"; - name = "privacy door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/lawoffice) -"are" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arf" = ( -/turf/closed/wall, -/area/crew_quarters/sleep) -"arg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fsmaint) -"arh" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"ari" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"arj" = ( -/turf/closed/wall, -/area/crew_quarters/fitness) -"ark" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"arl" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 9 - }, -/area/crew_quarters/fitness) -"arm" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"arn" = ( -/obj/structure/closet/athletic_mixed, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"aro" = ( -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/holodeck/rec_center) -"arp" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arq" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ars" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Bar Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"art" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Fore Starboard Solar Access" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aru" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arv" = ( -/obj/structure/table, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arw" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arx" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ary" = ( -/obj/structure/closet, -/obj/item/weapon/coin/iron, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arz" = ( -/obj/item/weapon/coin/gold, -/obj/item/weapon/coin/iron, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arA" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"arB" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"arC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"arD" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"arE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/mining_construction) -"arF" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"arG" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"arH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arI" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arK" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/fpmaint2) -"arL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arM" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arN" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arO" = ( -/obj/machinery/monkey_recycler, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"arP" = ( -/turf/closed/wall, -/area/maintenance/fpmaint) -"arQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"arR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"arS" = ( -/obj/structure/table/wood, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"arT" = ( -/turf/open/floor/plasteel, -/area/security/vacantoffice2) -"arU" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/security/vacantoffice2) -"arV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/filingcabinet/employment, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/lawoffice) -"arX" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/blue, -/obj/item/weapon/folder/blue, -/obj/item/weapon/folder/blue, -/obj/item/weapon/folder/blue, -/obj/item/weapon/stamp/law, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arZ" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/lawyer, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/wood, -/area/lawoffice) -"asa" = ( -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"asb" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"asc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/sleep) -"ase" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asf" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/sleep) -"asg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 9 - }, -/area/crew_quarters/sleep) -"ash" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"ask" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"asl" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"asm" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"asn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"aso" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Law Office Maintenance"; - req_access_txt = "38" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lawoffice) -"asp" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"asq" = ( -/obj/machinery/camera{ - c_tag = "Fitness Room" - }, -/obj/structure/closet/masks, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"asr" = ( -/obj/structure/closet/boxinggloves, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"ass" = ( -/obj/structure/closet/lasertag/red, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/fitness) -"ast" = ( -/obj/structure/closet/lasertag/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"asu" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/red, -/obj/machinery/button/door{ - id = "Dorm5"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = -25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"asv" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asx" = ( -/obj/structure/door_assembly/door_assembly_mai, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asz" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/snacks/donut, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asA" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"asB" = ( -/turf/closed/wall, -/area/maintenance/electrical) -"asC" = ( -/turf/open/floor/plasteel/airless, -/area/space/nearstation) -"asD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"asE" = ( -/turf/closed/wall, -/area/hallway/secondary/entry) -"asF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mining_construction) -"asG" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"asH" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/mining_construction) -"asI" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/mining_construction) -"asJ" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/mining_construction) -"asK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asL" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/red, -/obj/machinery/button/door{ - id = "Dorm6"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = -25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"asM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/fitness) -"asN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"asO" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"asP" = ( -/obj/structure/chair/stool, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"asQ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"asR" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"asS" = ( -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"asT" = ( -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"asU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/vacantoffice2) -"asV" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"asW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/rack, -/obj/item/weapon/storage/briefcase, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"asX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"asY" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"asZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"ata" = ( -/turf/open/floor/wood, -/area/lawoffice) -"atb" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/mining_construction) -"atc" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"atd" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"ate" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"atf" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"atg" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm4"; - name = "Dorm 4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"ath" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"ati" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/sleep) -"atj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"atk" = ( -/obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; - dir = 8; - network = list("SS13","AuxBase") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"atl" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 4; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/bluespace_beacon, -/obj/machinery/computer/auxillary_base{ - pixel_y = 0 - }, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"atm" = ( -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"atn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"ato" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/security/hos) -"atp" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Construction Zone"; - req_access = null; - req_access_txt = "0"; - req_one_access_txt = "0" - }, -/turf/open/floor/plating, -/area/mining_construction) -"atq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"atr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ats" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"att" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"atu" = ( -/obj/machinery/camera{ - c_tag = "Vacant Office B"; - dir = 1 - }, -/obj/structure/table/wood, -/turf/open/floor/plasteel, -/area/security/vacantoffice2) -"atv" = ( -/obj/structure/table, -/obj/item/weapon/shard, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/obj/item/weapon/shard{ - icon_state = "small" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"atw" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"atx" = ( -/obj/machinery/button/door{ - id = "maint3"; - name = "Blast Door Control C"; - pixel_x = 0; - pixel_y = 24; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aty" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fsmaint2) -"atA" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"atB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"atC" = ( -/obj/item/stack/rods{ - amount = 50 - }, -/obj/structure/rack, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 10; - layer = 2.9 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"atD" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"atE" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/maintenance/electrical) -"atF" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/maintenance/electrical) -"atG" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"atH" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/circuit, -/area/maintenance/electrical) -"atI" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/mining_construction) -"atJ" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"atL" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"atN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"atP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"atQ" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm5"; - name = "Cabin 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"atR" = ( -/obj/effect/landmark/carpspawn, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"atS" = ( -/turf/closed/wall, -/area/space/nearstation) -"atT" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atU" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atV" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/fitness) -"atW" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"atX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"atY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/vacantoffice2) -"atZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Holodeck Door" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aua" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"aub" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side, -/area/mining_construction) -"auc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/mining_construction) -"aud" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aue" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"auf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/lawoffice) -"aug" = ( -/obj/structure/table/wood, -/obj/machinery/camera{ - c_tag = "Law Office"; - dir = 1; - network = list("SS13") - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 1; - name = "Prison Monitor"; - network = list("Prison"); - pixel_x = 0; - pixel_y = -27 - }, -/turf/open/floor/wood, -/area/lawoffice) -"auh" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/obj/item/weapon/cartridge/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"aui" = ( -/obj/machinery/photocopier, -/obj/machinery/button/door{ - id = "lawyer_blast"; - name = "Privacy Shutters"; - pixel_x = 25; - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/lawoffice) -"auj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"auk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/sleep) -"aul" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"aum" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aun" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/sleep) -"auo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aup" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm6"; - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"auq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/vacantoffice2) -"aur" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Fitness Ring" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"aus" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aut" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"auu" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auv" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"auw" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm3"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"aux" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/sleep) -"auy" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auz" = ( -/obj/machinery/camera{ - c_tag = "Holodeck" - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auA" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"auC" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auD" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auG" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auH" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"auI" = ( -/turf/open/floor/plating, -/area/maintenance/electrical) -"auJ" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"auK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"auL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"auM" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"auN" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"auO" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"auP" = ( -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"auQ" = ( -/turf/open/floor/plasteel, -/area/mining_construction) -"auR" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"auS" = ( -/obj/machinery/requests_console{ - department = "Crew Quarters"; - pixel_y = 30 - }, -/obj/machinery/camera{ - c_tag = "Dormitory North" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"auT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"auU" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"auV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"auW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"auX" = ( -/obj/structure/mirror{ - icon_state = "mirror_broke"; - pixel_y = 28; - broken = 1 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"auY" = ( -/obj/structure/mirror{ - icon_state = "mirror_broke"; - pixel_y = 28; - broken = 1 - }, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/obj/item/weapon/circuitboard/computer/operating, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"auZ" = ( -/obj/structure/frame/computer, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ava" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/chair, -/obj/item/weapon/reagent_containers/blood/random, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avb" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/space/nearstation) -"avc" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avd" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ave" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"avf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Chemical Storage"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"avg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"avh" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/power/apc{ - dir = 8; - name = "Vacant Office B APC"; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/security/vacantoffice2) -"avi" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Law Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/lawoffice) -"avj" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"avk" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"avl" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"avm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"avn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/crew_quarters/sleep) -"avo" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/turf/closed/wall, -/area/maintenance/electrical) -"avp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters{ - id = "aux_base_shutters"; - name = "Auxillary Base Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/mining_construction) -"avq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avr" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Detective's Office"; - dir = 2 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"avs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"avt" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/sleep) -"avv" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avw" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/fitness) -"avx" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"avy" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"avz" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"avA" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"avB" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"avC" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"avD" = ( -/obj/machinery/computer/holodeck, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"avE" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint3" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"avF" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint3" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"avG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avH" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/electrical) -"avI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"avJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"avK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/electrical) -"avL" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Electrical Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"avM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"avN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"avO" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/device/multitool, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"avP" = ( -/obj/structure/sign/pods, -/turf/closed/wall, -/area/hallway/secondary/entry) -"avQ" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base Construction"; - dir = 8 - }, -/obj/machinery/computer/camera_advanced/base_construction, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/mining_construction) -"avR" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/firstaid/regular, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"avS" = ( -/obj/item/weapon/wrench, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avT" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_ne"; - name = "northeast of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"avU" = ( -/obj/item/weapon/paper/crumpled, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/space/nearstation) -"avV" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avW" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"avY" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"avZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fpmaint) -"awa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/maintenance/fpmaint) -"awb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awc" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awd" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "EVA Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awe" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awh" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awi" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awj" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"awk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"awl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"awm" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"awn" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"awo" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm3"; - name = "Dorm 3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awp" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awq" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awr" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aws" = ( -/obj/structure/table/wood, -/obj/item/weapon/coin/silver, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awu" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"awv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aww" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"awx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awz" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Fitness" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awB" = ( -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"awC" = ( -/obj/structure/table, -/obj/item/weapon/paper{ - desc = ""; - info = "Brusies sustained in the holodeck can be healed simply by sleeping."; - name = "Holodeck Disclaimer" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awD" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awE" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awF" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awG" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awH" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awI" = ( -/obj/machinery/button/door{ - id = "maint2"; - name = "Blast Door Control B"; - pixel_x = -28; - pixel_y = 4; - req_access_txt = "0" - }, -/obj/machinery/button/door{ - id = "maint1"; - name = "Blast Door Control A"; - pixel_x = -28; - pixel_y = -6; - req_access_txt = "0" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awJ" = ( -/obj/structure/janitorialcart, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awK" = ( -/obj/structure/table/glass, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awL" = ( -/obj/structure/table/glass, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"awN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"awO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering{ - name = "Electrical Maintenance"; - req_access_txt = "11" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awS" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"awU" = ( -/obj/structure/table, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/electrical) -"awV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"awW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"awX" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"awY" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/hallway/secondary/entry) -"awZ" = ( -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axa" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"axb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/arrival{ - dir = 5 - }, -/area/hallway/secondary/entry) -"axc" = ( -/obj/structure/rack{ - dir = 4 - }, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxillary Mining Base."; - dir = 8; - name = "Auxillary Base Monitor"; - network = list("AuxBase"); - pixel_x = 28 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/mining_construction) -"axe" = ( -/obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axf" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axg" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/bag/trash, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axj" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axm" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axn" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axr" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = -32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axx" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"axy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"axz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"axA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/storage/eva) -"axB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"axC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"axD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fsmaint) -"axE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/fore) -"axF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"axG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"axJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"axK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"axL" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axM" = ( -/obj/structure/table/wood, -/obj/item/device/paicard, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axN" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axO" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axP" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck{ - pixel_x = 2 - }, -/obj/item/clothing/mask/balaclava{ - pixel_x = -8; - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"axR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Fitness" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"axS" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"axT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"axU" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"axV" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axW" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - icon_state = "left"; - name = "Fitness Ring" - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"axX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"axY" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"axZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ayb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ayc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ayd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aye" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ayf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ayg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"ayh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayj" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/maintenance/electrical) -"ayk" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayl" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aym" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayn" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayp" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/mining_construction) -"ayr" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"ays" = ( -/obj/structure/closet/wardrobe/white, -/obj/item/clothing/shoes/jackboots, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayt" = ( -/obj/structure/table/glass, -/obj/item/weapon/hemostat, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayu" = ( -/obj/structure/table/glass, -/obj/item/weapon/restraints/handcuffs/cable/zipties, -/obj/item/weapon/reagent_containers/blood/random, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayv" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/device/radio/off, -/obj/item/device/assembly/timer, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayw" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayx" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"ayz" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fpmaint2) -"ayA" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayB" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayC" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayD" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayE" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fpmaint) -"ayF" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayG" = ( -/turf/closed/wall/r_wall, -/area/gateway) -"ayH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"ayK" = ( -/obj/structure/closet/crate/rcd, -/obj/machinery/camera/motion{ - c_tag = "EVA Motion Sensor"; - name = "motion-sensitive security camera" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"ayL" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"ayM" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/item/clothing/head/welding, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayN" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/hand_labeler, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"ayO" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/weapon/screwdriver{ - pixel_y = 16 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"ayP" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "EVA Storage APC"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayQ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"ayR" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayS" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"ayT" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayV" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm2"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"ayW" = ( -/turf/closed/wall, -/area/ai_monitored/storage/eva) -"ayX" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/storage/belt/utility, -/obj/item/clothing/head/welding, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"ayZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/fore) -"aza" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"azb" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/sleep) -"azc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"azd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/sleep) -"aze" = ( -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"azf" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"azh" = ( -/obj/machinery/camera{ - c_tag = "Fitness Room South"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"azi" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"azj" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/fitness) -"azk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/fitness) -"azm" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azn" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azp" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"azq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"azr" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"azs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azt" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"azu" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"azv" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"azw" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"azx" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"azy" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Port Docking Bay 1" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"azz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azC" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"azE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azF" = ( -/turf/closed/wall, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"azG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"azH" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/space, -/area/space) -"azI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/space, -/area/space) -"azJ" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/gateway) -"azK" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"azL" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/gateway) -"azM" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"azN" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"azO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"azP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "EVA Maintenance"; - req_access_txt = "18" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_command{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azT" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/sleep) -"azU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"azW" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azX" = ( -/obj/machinery/door/airlock{ - name = "Unisex Showers"; - req_access_txt = "0" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"azY" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/obj/item/device/radio/off, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azZ" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aAa" = ( -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/fore) -"aAb" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm2"; - name = "Dorm 2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aAc" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAd" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"aAe" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAf" = ( -/obj/structure/closet/wardrobe/pjs, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"aAg" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/sleep) -"aAh" = ( -/turf/closed/wall, -/area/crew_quarters/toilet) -"aAi" = ( -/obj/structure/closet/wardrobe/pjs, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/sleep) -"aAj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Security Checkpoint APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/checkpoint2) -"aAk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/fitness) -"aAl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/fitness) -"aAm" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/fitness) -"aAn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/fitness) -"aAo" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/fitness) -"aAp" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/fitness) -"aAq" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAr" = ( -/obj/structure/closet, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAs" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAt" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAu" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAv" = ( -/obj/structure/closet, -/obj/effect/landmark/blobstart, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aAw" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Garden APC"; - pixel_x = 27; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAy" = ( -/obj/machinery/power/smes{ - charge = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"aAz" = ( -/obj/machinery/computer/monitor{ - name = "backup power monitoring console" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/electrical) -"aAA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/closed/wall, -/area/maintenance/electrical) -"aAB" = ( -/obj/machinery/power/smes{ - charge = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/electrical) -"aAC" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"aAD" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aAE" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAF" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAG" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAH" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 North"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAI" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aAK" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sink{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAL" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Primary Tool Storage APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/primary) -"aAM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAP" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAQ" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aAS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAT" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAU" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aAV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAW" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/tank/jetpack/carbondioxide, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aAX" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"aAY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aAZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBa" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBd" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"aBe" = ( -/turf/open/floor/plasteel/black, -/area/gateway) -"aBf" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"aBg" = ( -/obj/machinery/gateway/centerstation, -/turf/open/floor/plasteel/black, -/area/gateway) -"aBh" = ( -/obj/machinery/camera{ - c_tag = "EVA Maintenance"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aBi" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Gateway APC"; - pixel_x = -24; - pixel_y = -1 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aBj" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/item/weapon/tank/jetpack/carbondioxide, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aBl" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "1" - }, -/turf/open/floor/plating, -/area/security/checkpoint2) -"aBm" = ( -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aBn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBo" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/clothing/shoes/magboots, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBq" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/clothing/shoes/magboots, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBs" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aBt" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aBu" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/fore) -"aBv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aBw" = ( -/obj/item/seeds/apple, -/obj/item/seeds/banana, -/obj/item/seeds/cocoapod, -/obj/item/seeds/grape, -/obj/item/seeds/orange, -/obj/item/seeds/sugarcane, -/obj/item/seeds/wheat, -/obj/item/seeds/watermelon, -/obj/structure/table/glass, -/obj/item/seeds/tower, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aBx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aBy" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBz" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBA" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/fsmaint2) -"aBC" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aBD" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aBE" = ( -/obj/item/clothing/under/rank/mailman, -/obj/item/clothing/head/mailman, -/obj/structure/closet, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aBF" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aBG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aBH" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aBI" = ( -/turf/closed/wall, -/area/security/checkpoint2) -"aBJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/checkpoint2) -"aBK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/checkpoint2) -"aBL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Garden Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aBM" = ( -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aBN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/storage/primary) -"aBO" = ( -/obj/machinery/requests_console{ - department = "EVA"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBQ" = ( -/turf/closed/wall, -/area/storage/primary) -"aBR" = ( -/turf/closed/wall/r_wall, -/area/storage/primary) -"aBS" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aBT" = ( -/obj/machinery/computer/bank_machine, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/nuke_storage) -"aBU" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Vault APC"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aBV" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aBW" = ( -/obj/structure/filingcabinet, -/obj/item/weapon/folder/documents, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/nuke_storage) -"aBX" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/gateway) -"aBY" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/gateway) -"aBZ" = ( -/obj/machinery/gateway, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/gateway) -"aCa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCb" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/item/weapon/pen{ - desc = "Writes upside down!"; - name = "astronaut pen" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCd" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm1"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/sleep) -"aCe" = ( -/obj/effect/landmark/xeno_spawn, -/obj/item/weapon/bikehorn/rubberducky, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aCf" = ( -/obj/machinery/camera{ - c_tag = "Theatre Storage" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aCg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCh" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aCi" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aCj" = ( -/obj/machinery/camera{ - c_tag = "EVA East"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCk" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCm" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aCn" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aCo" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCp" = ( -/obj/machinery/camera{ - c_tag = "Arrivals North"; - dir = 8; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aCq" = ( -/obj/structure/table/wood, -/obj/machinery/requests_console{ - department = "Theatre"; - departmentType = 0; - name = "theatre RC"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/food/snacks/baguette, -/obj/item/toy/dummy, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aCr" = ( -/turf/closed/wall, -/area/crew_quarters/theatre) -"aCs" = ( -/obj/structure/closet/wardrobe/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint2) -"aCt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCu" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aCv" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aCw" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aCx" = ( -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCy" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCA" = ( -/obj/structure/grille/broken, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/window{ - icon_state = "window"; - dir = 4 - }, -/obj/structure/window, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fsmaint2) -"aCB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/fsmaint2) -"aCC" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCD" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint1" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fsmaint2) -"aCF" = ( -/obj/structure/girder, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCH" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCK" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCL" = ( -/obj/structure/closet/secure_closet/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint2) -"aCM" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCN" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aCO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aCP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aCQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aCR" = ( -/turf/closed/wall, -/area/chapel/main) -"aCS" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"aCT" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/mining_construction) -"aCU" = ( -/obj/machinery/door/airlock/titanium{ - name = "Arrivals Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/shuttle/arrival) -"aCV" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/arrival) -"aCW" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aCX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/mining_construction) -"aCY" = ( -/obj/machinery/computer/security, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; - pixel_y = 30 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint2) -"aCZ" = ( -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint2) -"aDa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aDb" = ( -/obj/structure/table, -/obj/item/weapon/wirecutters, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDc" = ( -/obj/machinery/computer/card, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint2) -"aDd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDf" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint2) -"aDg" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aDh" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDi" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/gateway) -"aDj" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"aDk" = ( -/obj/structure/table, -/obj/item/device/assembly/igniter{ - pixel_x = -8; - pixel_y = -4 - }, -/obj/item/device/assembly/igniter, -/obj/item/weapon/screwdriver{ - pixel_y = 16 - }, -/obj/machinery/camera{ - c_tag = "Primary Tool Storage" - }, -/obj/machinery/requests_console{ - department = "Tool Storage"; - departmentType = 0; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDl" = ( -/obj/structure/table, -/obj/item/device/t_scanner, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDm" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDn" = ( -/obj/structure/table, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/device/multitool, -/obj/item/device/multitool{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDo" = ( -/turf/open/floor/plasteel, -/area/storage/primary) -"aDp" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDq" = ( -/obj/machinery/vending/tool, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aDs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/ai_monitored/nuke_storage) -"aDt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aDv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/ai_monitored/nuke_storage) -"aDw" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"aDx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/window{ - name = "Gateway Chamber"; - req_access_txt = "62" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"aDy" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/gateway) -"aDz" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aDA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDB" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDC" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDE" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "EVA Storage"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDF" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDG" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/sleep) -"aDH" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/weapon/folder/white, -/obj/item/weapon/stamp/rd{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"aDI" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aDK" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm1"; - name = "Dorm 1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"aDL" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDN" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDR" = ( -/obj/structure/table/wood, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/item/weapon/lipstick/random{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/lipstick/random{ - pixel_x = -2; - pixel_y = -2 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aDS" = ( -/obj/machinery/door/airlock{ - name = "Unisex Showers"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDT" = ( -/obj/machinery/light/small, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDV" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aDW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aDX" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aDY" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/mime, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aDZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEa" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEb" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Theatre Maintenance"; - req_access_txt = "46" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/theatre) -"aEc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aEd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEe" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Chapel APC"; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/chapel/main) -"aEh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aEi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Chapel Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aEk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aEl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEm" = ( -/obj/machinery/door/window{ - dir = 8; - name = "Mass Driver"; - req_access_txt = "22" - }, -/obj/machinery/mass_driver{ - dir = 4; - id = "chapelgun"; - name = "Holy Driver" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/chapel/main) -"aEn" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "Chapel Launcher Door" - }, -/turf/open/floor/plating, -/area/chapel/main) -"aEo" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aEq" = ( -/obj/machinery/computer/arcade, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEr" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEs" = ( -/obj/structure/closet/wardrobe/black, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEt" = ( -/obj/structure/closet/wardrobe/green, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEu" = ( -/obj/structure/closet/wardrobe/grey, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEv" = ( -/obj/structure/closet/wardrobe/mixed, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEw" = ( -/obj/machinery/requests_console{ - department = "Arrival shuttle"; - name = "Arrivals Shuttle console"; - pixel_y = 30 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aEx" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_r" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/arrival) -"aEy" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/arrival) -"aEz" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Entry Hall APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aEA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j1s"; - sortType = 18 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aED" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aEE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint2) -"aEF" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, -/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, -/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, -/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon, -/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, -/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, -/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aEG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint2) -"aEH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint2) -"aEI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint2) -"aEJ" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint2) -"aEK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint2) -"aEL" = ( -/obj/machinery/door/airlock{ - name = "Garden"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aEM" = ( -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aEN" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_x = -1; - pixel_y = 5 - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_x = 1; - pixel_y = -2 - }, -/obj/item/weapon/storage/belt/champion, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/ai_monitored/nuke_storage) -"aEO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aEP" = ( -/obj/item/weapon/coin/silver{ - pixel_x = 7; - pixel_y = 12 - }, -/obj/item/weapon/coin/silver{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/weapon/coin/silver{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/weapon/coin/silver{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/weapon/coin/silver{ - pixel_x = 5; - pixel_y = -8 - }, -/obj/structure/closet/crate{ - name = "Silver Crate" - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/ai_monitored/nuke_storage) -"aEQ" = ( -/obj/structure/table, -/obj/item/weapon/paper/pamphlet, -/turf/open/floor/plasteel, -/area/gateway) -"aER" = ( -/obj/machinery/camera{ - c_tag = "Gateway"; - dir = 4; - network = list("SS13") - }, -/obj/structure/table, -/obj/structure/sign/biohazard{ - pixel_x = -32 - }, -/obj/item/weapon/storage/firstaid/regular, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aES" = ( -/obj/structure/table, -/obj/item/device/radio/off{ - pixel_y = 6 - }, -/obj/item/device/radio/off{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/device/radio/off{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/device/radio/off, -/turf/open/floor/plasteel, -/area/gateway) -"aET" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aEU" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/structure/sign/biohazard{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aEV" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aEW" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aEX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_command{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aEY" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aEZ" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aFa" = ( -/obj/machinery/suit_storage_unit/cmo, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"aFb" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aFc" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aFd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/sleep) -"aFe" = ( -/obj/machinery/camera{ - c_tag = "Dormitory South"; - c_tag_order = 999; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"aFf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aFg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aFh" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aFi" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Dormitory Bathrooms APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aFj" = ( -/turf/open/floor/plasteel/redblue/redside, -/area/crew_quarters/theatre) -"aFk" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/redblue/redside, -/area/crew_quarters/theatre) -"aFl" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/dresser, -/turf/open/floor/plasteel/redblue/redside, -/area/crew_quarters/theatre) -"aFm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFo" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFp" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFq" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/space, -/area/space) -"aFr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFu" = ( -/turf/closed/wall, -/area/library) -"aFv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFw" = ( -/turf/closed/wall, -/area/chapel/office) -"aFx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aFy" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Chapel Office APC"; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/chapel/office) -"aFz" = ( -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aFA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/computer/pod/old{ - density = 0; - icon = 'icons/obj/airlock_machines.dmi'; - icon_state = "airlock_control_standby"; - id = "chapelgun"; - name = "Mass Driver Controller"; - pixel_x = 24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aFB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aFC" = ( -/obj/structure/chair, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aFD" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"aFE" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aFF" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/arrival) -"aFG" = ( -/turf/open/floor/plasteel/arrival{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aFH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint2) -"aFI" = ( -/obj/machinery/camera{ - c_tag = "Security Checkpoint"; - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/light_switch{ - pixel_x = 6; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint2) -"aFJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - icon_state = "intact"; - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aFK" = ( -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint2) -"aFL" = ( -/obj/item/device/radio/off, -/obj/item/weapon/crowbar, -/obj/item/device/assembly/flash/handheld, -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint2) -"aFM" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint2) -"aFN" = ( -/obj/structure/table/glass, -/obj/item/weapon/cultivator, -/obj/item/weapon/hatchet, -/obj/item/weapon/crowbar, -/obj/item/device/plant_analyzer, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aFO" = ( -/obj/machinery/camera{ - c_tag = "Garden"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aFP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aFQ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/weapon/screwdriver{ - pixel_y = 16 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFS" = ( -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFU" = ( -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aFW" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/gateway) -"aFX" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aFY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aGa" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 6 - }, -/area/ai_monitored/nuke_storage) -"aGb" = ( -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/ai_monitored/nuke_storage) -"aGc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 1; - network = list("MiniSat") - }, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 10 - }, -/area/ai_monitored/nuke_storage) -"aGd" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/vault, -/area/ai_monitored/nuke_storage) -"aGe" = ( -/obj/structure/safe, -/obj/item/clothing/head/bearpelt, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/gun/ballistic/revolver/russian, -/obj/item/ammo_box/a357, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/ai_monitored/nuke_storage) -"aGf" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aGg" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aGh" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aGi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aGj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aGk" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGl" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGm" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGn" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGo" = ( -/obj/structure/table, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aGp" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGq" = ( -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aGr" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aGs" = ( -/obj/machinery/suit_storage_unit/rd, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"aGt" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aGu" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/fore) -"aGv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/theatre) -"aGw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/freezer/cream_pie, -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aGx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aGy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j1s"; - sortType = 19 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j1s"; - sortType = 20 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGD" = ( -/obj/structure/table/wood, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/item/device/flashlight/lamp/bananalamp{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aGE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGF" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j2s"; - sortType = 17 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Library Maintenance"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/library) -"aGH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGI" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Crematorium Maintenance"; - req_access_txt = "27" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/chapel/office) -"aGN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/chapel/office) -"aGP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGS" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/requests_console{ - department = "Chapel"; - departmentType = 2; - pixel_y = 30 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aGV" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aGX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/space, -/area/space) -"aGY" = ( -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aGZ" = ( -/obj/machinery/door/airlock/security{ - name = "Security Checkpoint"; - req_access = null; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint2) -"aHa" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/item/weapon/paper, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Security Checkpoint"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aHb" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/stack/packageWrap, -/turf/open/floor/wood, -/area/library) -"aHc" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/library) -"aHd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/wood, -/area/library) -"aHe" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHf" = ( -/obj/structure/closet/wardrobe/chaplain_black, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aHg" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Chapel Office"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aHh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHi" = ( -/obj/structure/closet/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aHj" = ( -/obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aHl" = ( -/obj/structure/closet/coffin, -/obj/machinery/door/window/eastleft{ - name = "Coffin Storage"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aHm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aHn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aHo" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, -/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aHp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aHq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/chapel/main) -"aHr" = ( -/obj/effect/landmark/marauder_entry, -/turf/open/space, -/area/space) -"aHs" = ( -/obj/machinery/door/airlock/titanium{ - name = "Arrivals Shuttle Airlock" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aHu" = ( -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aHv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"aHx" = ( -/obj/structure/grille, -/obj/structure/window/fulltile{ - obj_integrity = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aHy" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/checkpoint2) -"aHz" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aHA" = ( -/obj/item/weapon/reagent_containers/spray/plantbgone, -/obj/item/weapon/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/table/glass, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aHB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aHC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"aHD" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHE" = ( -/obj/structure/table, -/obj/item/weapon/weldingtool, -/obj/item/weapon/crowbar, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHF" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aHG" = ( -/obj/machinery/door/airlock/vault{ - icon_state = "door_locked"; - locked = 1; - req_access_txt = "53" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/nuke_storage) -"aHH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Dormitory" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/sleep) -"aHI" = ( -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aHJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aHK" = ( -/obj/structure/closet/secure_closet/freezer/cream_pie, -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aHL" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"aHN" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/weapon/crowbar, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aHO" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aHP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aHQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aHR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/hallway/primary/central) -"aHS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Bar Storage Maintenance"; - req_access_txt = "25" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aHT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Dormitory" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/sleep) -"aHU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHV" = ( -/obj/machinery/door/airlock{ - name = "Unit 1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHW" = ( -/obj/machinery/door/airlock{ - name = "Unit 2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHX" = ( -/obj/machinery/door/airlock{ - name = "Unit B" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aHZ" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/item/weapon/storage/crayons{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/food/snacks/pie/cream{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/theatre) -"aIa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIb" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Theatre APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/crew_quarters/theatre) -"aIc" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Bar APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aId" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"aIf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIg" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Bar" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/crew_quarters/bar) -"aIh" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Kitchen APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/kitchen) -"aIi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aIj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j1s"; - sortType = 21 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIk" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIl" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIn" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Hydroponics APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/hydroponics) -"aIo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aIp" = ( -/turf/closed/wall, -/area/hydroponics) -"aIq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/hydroponics) -"aIr" = ( -/obj/structure/filingcabinet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/library) -"aIs" = ( -/obj/structure/chair/office/dark, -/obj/machinery/camera{ - c_tag = "Library North"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aIt" = ( -/turf/open/floor/wood, -/area/library) -"aIu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/library) -"aIv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aIw" = ( -/obj/structure/chair/office/dark, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aIx" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/library) -"aIy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aIz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aIA" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aIB" = ( -/obj/structure/bodycontainer/crematorium, -/obj/effect/landmark/revenantspawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aIC" = ( -/obj/effect/landmark/start/chaplain, -/obj/structure/chair, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aID" = ( -/obj/structure/closet/coffin, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aIE" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aIF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/warden) -"aIG" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aIH" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/lights/mixed, -/obj/item/weapon/pipe_dispenser, -/obj/machinery/button/door{ - id = "aux_base_shutters"; - name = "Public Shutters Control"; - pixel_x = 24; - pixel_y = 0; - req_access_txt = "0"; - req_one_access_txt = "32;47;48" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/mining_construction) -"aII" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aIJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIM" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIN" = ( -/obj/structure/table, -/obj/item/weapon/wrench, -/obj/item/device/analyzer, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIO" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Lounge"; - dir = 2 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIP" = ( -/obj/structure/sign/map/left{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIQ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIR" = ( -/obj/structure/sign/map/right{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIS" = ( -/obj/structure/table/glass, -/obj/item/weapon/hatchet, -/obj/item/weapon/cultivator, -/obj/item/weapon/crowbar, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/device/plant_analyzer, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aIT" = ( -/obj/item/weapon/storage/bag/plants/portaseeder, -/obj/structure/table/glass, -/obj/item/device/plant_analyzer, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/light_switch{ - pixel_x = -6; - pixel_y = -25 - }, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aIU" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - freq = 1400; - location = "Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIV" = ( -/obj/machinery/button/door{ - id = "stationawaygate"; - name = "Gateway Access Shutter Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "31" - }, -/turf/open/floor/plasteel, -/area/gateway) -"aIW" = ( -/obj/structure/table, -/obj/item/weapon/crowbar, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/clothing/gloves/color/fyellow, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIX" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIY" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJa" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aJb" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJc" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJd" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aJe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/hallway/primary/port) -"aJf" = ( -/obj/machinery/camera{ - c_tag = "EVA South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJg" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/hallway/primary/central) -"aJh" = ( -/turf/open/floor/plasteel, -/area/gateway) -"aJi" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/closet/secure_closet/exile, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aJj" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/extinguisher, -/obj/item/weapon/extinguisher, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJk" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"aJl" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJm" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aJn" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aJo" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Central Hallway North"; - dir = 2 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"aJp" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/hallway/primary/central) -"aJq" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJr" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"aJs" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"aJt" = ( -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 40 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = 32; - pixel_y = 32 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aJu" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/hallway/primary/central) -"aJv" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aJw" = ( -/turf/closed/wall, -/area/hallway/primary/central) -"aJx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aJy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/hallway/primary/central) -"aJz" = ( -/obj/machinery/camera{ - c_tag = "Dormitory Toilets"; - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aJA" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance"; - req_access_txt = "28" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/crew_quarters/kitchen) -"aJB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Hydroponics Maintenance"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hydroponics) -"aJC" = ( -/turf/closed/wall, -/area/crew_quarters/bar) -"aJD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Bar Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aJE" = ( -/obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/ballistic/revolver/doublebarrel, -/obj/structure/table/wood, -/obj/item/stack/spacecash/c10, -/obj/item/stack/spacecash/c100, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aJF" = ( -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/library) -"aJG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/button/crematorium{ - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aJH" = ( -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Bar Delivery"; - req_access_txt = "25" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aJI" = ( -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aJJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aJK" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Kitchen" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/crew_quarters/kitchen) -"aJL" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Hydroponics" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/hydroponics) -"aJM" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp{ - pixel_y = 10 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJN" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/hydroponics_pod_people, -/obj/item/weapon/paper/hydroponics, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aJO" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aJP" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen, -/turf/open/floor/wood, -/area/library) -"aJQ" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aJR" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aJS" = ( -/obj/structure/table/wood, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"aJT" = ( -/obj/structure/table/wood, -/obj/item/weapon/nullrod, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJU" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen, -/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJV" = ( -/obj/structure/closet/coffin, -/obj/machinery/door/window/eastleft{ - dir = 8; - name = "Coffin Storage"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aJW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/side, -/area/hallway/secondary/entry) -"aJY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side, -/area/hallway/secondary/entry) -"aJZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Primary Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aKa" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Primary Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aKb" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aKc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - icon_state = "door_closed"; - lockdownbyai = 0; - locked = 0; - name = "Gateway Access"; - req_access_txt = "62" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aKd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "stationawaygate"; - name = "Gateway Access Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aKe" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aKf" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Auxillary Base Construction APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/mining_construction) -"aKg" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aKh" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"aKi" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "burst_l" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/arrival) -"aKj" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/hallway/secondary/entry) -"aKk" = ( -/turf/open/floor/plasteel/neutral/side, -/area/hallway/secondary/entry) -"aKl" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"aKm" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Garden" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aKn" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/construction{ - name = "\improper Garden" - }) -"aKo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/hallway/primary/central) -"aKp" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/storage/primary) -"aKq" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/camera{ - c_tag = "Theatre Stage"; - dir = 2 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aKr" = ( -/obj/machinery/airalarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aKs" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/storage/primary) -"aKt" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aKu" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aKv" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aKw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/hallway/primary/port) -"aKx" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aKy" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"aKz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "stationawaygate"; - name = "Gateway Access Shutters" - }, -/turf/open/floor/plasteel, -/area/gateway) -"aKB" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/gateway) -"aKC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aKD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKE" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/hallway/primary/central) -"aKF" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/hallway/primary/central) -"aKG" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"aKH" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKI" = ( -/obj/structure/closet/secure_closet/hydroponics, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKJ" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aKK" = ( -/obj/structure/closet/wardrobe/botanist, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKL" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Hydroponics Storage" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/plantgenes, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aKN" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aKO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aKP" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aKQ" = ( -/obj/machinery/reagentgrinder, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKR" = ( -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKS" = ( -/obj/machinery/camera{ - c_tag = "Bar Storage" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKT" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aKU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKV" = ( -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Kitchen Delivery"; - req_access_txt = "28" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aKW" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aKX" = ( -/obj/machinery/door/window/eastright{ - name = "Hydroponics Delivery"; - req_access_txt = "35" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"aKZ" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/camera{ - c_tag = "Chapel Crematorium"; - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aLa" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Crematorium"; - req_access_txt = "27" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aLc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLd" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 0; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/weapon/watertank, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aLe" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLf" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/wood, -/area/library) -"aLg" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"aLh" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/wood, -/area/library) -"aLi" = ( -/obj/structure/chair/comfy/beige, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLj" = ( -/obj/structure/chair/comfy/beige, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLl" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLm" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/chapel/office) -"aLp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aLt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fpmaint2) -"aLu" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 1; - name = "Auxillary Base Construction"; - req_access_txt = "0"; - req_one_access_txt = "32;47;48" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/mining_construction) -"aLv" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aLw" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aLx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLy" = ( -/obj/structure/chair/comfy/beige, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLz" = ( -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLA" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLB" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/hallway/secondary/entry) -"aLC" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/entry) -"aLD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aLE" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLF" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLG" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/apc{ - name = "Port Hall APC"; - dir = 1; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLI" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLL" = ( -/obj/machinery/camera{ - c_tag = "Port Hallway 2"; - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLM" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aLP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLQ" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway North-East"; - dir = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLR" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"aLS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aLT" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLU" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aLV" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLW" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway North-West"; - dir = 2 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLX" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aLY" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLZ" = ( -/turf/open/floor/plasteel{ - icon_state = "L3" - }, -/area/hallway/primary/central) -"aMa" = ( -/turf/open/floor/plasteel{ - icon_state = "L1" - }, -/area/hallway/primary/central) -"aMb" = ( -/turf/open/floor/plasteel{ - icon_state = "L7" - }, -/area/hallway/primary/central) -"aMc" = ( -/turf/open/floor/plasteel{ - icon_state = "L5" - }, -/area/hallway/primary/central) -"aMd" = ( -/turf/open/floor/plasteel{ - icon_state = "L11" - }, -/area/hallway/primary/central) -"aMe" = ( -/turf/open/floor/plasteel{ - icon_state = "L9" - }, -/area/hallway/primary/central) -"aMf" = ( -/turf/open/floor/plasteel{ - desc = ""; - icon_state = "L13"; - name = "floor" - }, -/area/hallway/primary/central) -"aMg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aMh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMi" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"aMk" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo" - }, -/obj/machinery/camera{ - c_tag = "Kitchen Cold Room" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMm" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMn" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMo" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMp" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aMq" = ( -/obj/structure/piano{ - icon_state = "piano" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aMr" = ( -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aMs" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = -31 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMu" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aMv" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aMw" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aMx" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aMy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMB" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMC" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMD" = ( -/obj/machinery/icecream_vat, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aME" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMF" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMG" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/wrench, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/wirecutters, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMH" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"aMI" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMJ" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"aMK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aML" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aMM" = ( -/obj/machinery/camera{ - c_tag = "Chapel North"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aMN" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aMO" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/snacks/chips, -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aMP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aMQ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMW" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aMX" = ( -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aMY" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMZ" = ( -/turf/closed/wall, -/area/hallway/secondary/exit) -"aNa" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aNb" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aNc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNd" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aNe" = ( -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aNf" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aNg" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/entry) -"aNh" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aNi" = ( -/turf/open/floor/goonplaque, -/area/hallway/secondary/entry) -"aNj" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CHW"; - location = "Lockers" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNl" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aNu" = ( -/obj/structure/closet/secure_closet/bar{ - req_access_txt = "25" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNv" = ( -/turf/open/floor/plasteel{ - icon_state = "L4" - }, -/area/hallway/primary/central) -"aNw" = ( -/turf/open/floor/plasteel{ - icon_state = "L2" - }, -/area/hallway/primary/central) -"aNx" = ( -/obj/effect/landmark/observer_start, -/turf/open/floor/plasteel{ - icon_state = "L8" - }, -/area/hallway/primary/central) -"aNy" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Lockers"; - location = "EVA" - }, -/turf/open/floor/plasteel{ - icon_state = "L6" - }, -/area/hallway/primary/central) -"aNz" = ( -/turf/open/floor/plasteel{ - icon_state = "L12" - }, -/area/hallway/primary/central) -"aNA" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Security"; - location = "EVA2" - }, -/turf/open/floor/plasteel{ - icon_state = "L10" - }, -/area/hallway/primary/central) -"aNB" = ( -/turf/open/floor/plasteel{ - desc = ""; - icon_state = "L14" - }, -/area/hallway/primary/central) -"aNC" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA2"; - location = "Dorm" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aND" = ( -/obj/structure/closet/gmcloset, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/cable_coil, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aNG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aNH" = ( -/obj/machinery/door/window{ - dir = 4; - name = "Theatre Stage"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aNI" = ( -/obj/machinery/computer/slot_machine, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aNJ" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aNK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/mob/living/simple_animal/hostile/retaliate/goat{ - name = "Pete" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hydroponics) -"aNM" = ( -/obj/structure/kitchenspike, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"aNO" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/closet/chefcloset, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"aNQ" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/hydroponics) -"aNR" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aNS" = ( -/obj/machinery/bookbinder{ - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/library) -"aNT" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Port Hallway"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNV" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/library) -"aNW" = ( -/obj/machinery/door/airlock/glass{ - name = "Chapel Office"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"aNX" = ( -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aNY" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth (Chaplain)"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aNZ" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/hallway/secondary/exit) -"aOa" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aOb" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aOc" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOd" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOe" = ( -/obj/item/device/radio/beacon, -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 South" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOf" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOg" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOh" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOi" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOj" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/cigarettes{ - pixel_y = 2 - }, -/obj/item/weapon/lighter/greyscale{ - pixel_x = 4; - pixel_y = 2 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aOk" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/entry) -"aOl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOn" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOo" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOp" = ( -/obj/machinery/camera{ - c_tag = "Port Hallway 3"; - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOq" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOr" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOz" = ( -/obj/structure/sign/directions/security{ - dir = 4; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = 32; - pixel_y = -40 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOD" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=QM"; - location = "CHW" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOE" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aOF" = ( -/obj/machinery/light, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aOG" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/obj/machinery/light, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aOH" = ( -/obj/structure/window/reinforced, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aOI" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOJ" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aOK" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aOL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aOM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aON" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOO" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel{ - icon_state = "wood" - }, -/area/crew_quarters/bar) -"aOP" = ( -/obj/effect/landmark/blobstart, -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aOQ" = ( -/obj/machinery/requests_console{ - department = "Hydroponics"; - departmentType = 2; - pixel_x = 0; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aOS" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/library) -"aOT" = ( -/obj/machinery/gibber, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOV" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aOW" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/camera{ - c_tag = "Hydroponics North"; - dir = 2 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aOX" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aOY" = ( -/obj/structure/chair/comfy/beige{ - dir = 1; - icon_state = "comfychair" - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aOZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aPa" = ( -/obj/structure/chair/comfy/beige{ - dir = 1; - icon_state = "comfychair" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aPb" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/wood, -/area/library) -"aPc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPd" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/library) -"aPe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aPf" = ( -/obj/machinery/computer/libraryconsole, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"aPg" = ( -/obj/structure/bookcase{ - name = "Forbidden Knowledge" - }, -/turf/open/floor/engine/cult, -/area/library) -"aPh" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen/invisible, -/turf/open/floor/engine/cult, -/area/library) -"aPi" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/engine/cult, -/area/library) -"aPj" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aPk" = ( -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aPl" = ( -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aPm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aPn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aPo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/tinted/fulltile, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aPp" = ( -/obj/machinery/camera{ - c_tag = "Escape Arm Holding Area"; - dir = 4 - }, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aPq" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPu" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPv" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPw" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/securearea{ - desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; - icon_state = "monkey_painting"; - name = "Mr. Deempisi portrait"; - pixel_x = -28; - pixel_y = -4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "barShutters"; - name = "bar shutters"; - pixel_x = 4; - pixel_y = 28 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aPx" = ( -/obj/structure/chair/comfy/beige{ - dir = 1; - icon_state = "comfychair" - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aPy" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/black, -/area/hallway/secondary/entry) -"aPz" = ( -/turf/closed/wall, -/area/maintenance/port) -"aPA" = ( -/turf/closed/wall, -/area/crew_quarters/locker) -"aPB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aPC" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aPD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aPE" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/locker) -"aPF" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/storage/art) -"aPG" = ( -/turf/closed/wall, -/area/storage/art) -"aPH" = ( -/obj/machinery/door/airlock/glass{ - name = "Art Storage" - }, -/turf/open/floor/plasteel, -/area/storage/art) -"aPI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"aPJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/storage/art) -"aPK" = ( -/turf/closed/wall, -/area/storage/emergency2) -"aPL" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPM" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPN" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPP" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aPQ" = ( -/turf/closed/wall, -/area/storage/tools) -"aPR" = ( -/turf/closed/wall/r_wall, -/area/bridge) -"aPS" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPT" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/bridge) -"aPU" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPV" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPW" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPX" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - layer = 2.9; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPY" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aPZ" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/obj/item/clothing/head/hardhat/cakehat, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQa" = ( -/obj/structure/table, -/obj/item/weapon/kitchen/fork, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQb" = ( -/obj/structure/window/reinforced, -/obj/structure/table/wood, -/obj/item/device/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aQc" = ( -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQd" = ( -/obj/structure/chair, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/hydroponics) -"aQg" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "barShutters"; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aQh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/hydroponics) -"aQi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aQj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aQk" = ( -/obj/machinery/door/airlock{ - name = "Kitchen cold room"; - req_access_txt = "28" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aQl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQm" = ( -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/hydroponics) -"aQn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQp" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aQq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aQr" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/cult, -/area/library) -"aQs" = ( -/obj/structure/destructible/cult/tome, -/obj/item/clothing/under/suit_jacket/red, -/obj/item/weapon/book/codex_gigas, -/turf/open/floor/engine/cult, -/area/library) -"aQt" = ( -/obj/effect/landmark/blobstart, -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/engine/cult, -/area/library) -"aQu" = ( -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aQv" = ( -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aQw" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aQx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aQy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aQz" = ( -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aQA" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth" - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aQB" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aQC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aQD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQE" = ( -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aQF" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Security Escape Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aQG" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQH" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQI" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aQJ" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aQL" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"aQM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/port) -"aQN" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQO" = ( -/obj/structure/closet/wardrobe/white, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQP" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQQ" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQR" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQS" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQT" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQU" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQV" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQW" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQX" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQY" = ( -/obj/structure/table, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel, -/area/storage/art) -"aQZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/storage/art) -"aRa" = ( -/turf/open/floor/plasteel, -/area/storage/art) -"aRb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"aRc" = ( -/obj/machinery/door/airlock{ - name = "Port Emergency Storage"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/storage/emergency2) -"aRd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/hallway/secondary/entry) -"aRe" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/storage/tools) -"aRf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Auxiliary Tool Storage"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRg" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRi" = ( -/obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/bridge) -"aRj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/secure/briefcase, -/obj/item/weapon/storage/box/PDAs{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/weapon/storage/box/ids, -/turf/open/floor/plasteel, -/area/bridge) -"aRk" = ( -/obj/machinery/computer/monitor{ - name = "bridge power monitoring console" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/bridge) -"aRl" = ( -/obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/yellow/side, -/area/bridge) -"aRm" = ( -/obj/machinery/computer/communications, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aRn" = ( -/obj/machinery/computer/shuttle/labor, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/bridge) -"aRo" = ( -/obj/machinery/modular_computer/console/preset/command, -/turf/open/floor/plasteel/green/side{ - dir = 10 - }, -/area/bridge) -"aRp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/bridge) -"aRq" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/bridge) -"aRr" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/green/side{ - dir = 2 - }, -/area/bridge) -"aRs" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/toolbox/emergency, -/obj/item/weapon/wrench, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/turf/open/floor/plasteel, -/area/bridge) -"aRt" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRu" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRv" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRw" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRx" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRy" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRz" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aRA" = ( -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRB" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/camera{ - c_tag = "Kitchen"; - dir = 2 - }, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRC" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/obj/machinery/food_cart, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/hydroponics) -"aRF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRG" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRH" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hydroponics) -"aRJ" = ( -/turf/open/floor/plasteel, -/area/hydroponics) -"aRK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Library APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/library) -"aRL" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Holding Area"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aRM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aRN" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/library) -"aRO" = ( -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/wood, -/area/library) -"aRP" = ( -/obj/machinery/camera{ - c_tag = "Library South"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/wood, -/area/library) -"aRQ" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access_txt = "37" - }, -/turf/open/floor/engine/cult, -/area/library) -"aRR" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aRS" = ( -/turf/open/floor/carpet, -/area/chapel/main) -"aRT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/electronics/airlock, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRU" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aRV" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Auxiliary Tool Storage APC"; - pixel_y = 24 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRW" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aRX" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/arrival{ - dir = 2 - }, -/area/hallway/secondary/entry) -"aRY" = ( -/turf/open/floor/plasteel/arrival{ - dir = 2 - }, -/area/hallway/secondary/entry) -"aRZ" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"aSa" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Auxiliary Tool Storage"; - dir = 2 - }, -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSb" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSd" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSe" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSf" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Hallway"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSg" = ( -/turf/open/floor/plating, -/area/maintenance/port) -"aSh" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/item/device/radio/intercom{ - dir = 0; - name = "Station Intercom (General)"; - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSj" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSk" = ( -/obj/structure/table, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil, -/obj/item/weapon/paper_bin/construction, -/obj/item/stack/cable_coil, -/turf/open/floor/plasteel, -/area/storage/art) -"aSl" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/storage/emergency2) -"aSm" = ( -/turf/open/floor/plating, -/area/storage/emergency2) -"aSn" = ( -/obj/item/weapon/extinguisher, -/turf/open/floor/plating, -/area/storage/emergency2) -"aSo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSp" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSq" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSr" = ( -/turf/open/floor/plasteel, -/area/storage/tools) -"aSs" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tools) -"aSt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSu" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/bridge) -"aSv" = ( -/obj/structure/table/reinforced, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel, -/area/bridge) -"aSw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/bridge) -"aSx" = ( -/obj/structure/chair{ - dir = 1; - name = "Engineering Station" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSy" = ( -/obj/structure/chair{ - dir = 1; - name = "Command Station" - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Blast Door Control"; - pixel_x = 28; - pixel_y = -2; - req_access_txt = "19" - }, -/obj/machinery/keycard_auth{ - pixel_x = 29; - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSz" = ( -/obj/structure/table/reinforced, -/obj/item/device/aicard, -/obj/item/device/multitool, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/bridge) -"aSA" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/bridge) -"aSB" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/bridge) -"aSC" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/bridge) -"aSD" = ( -/obj/structure/chair{ - dir = 1; - name = "Crew Station" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSE" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel, -/area/bridge) -"aSF" = ( -/mob/living/carbon/monkey/punpun, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSG" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSH" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSI" = ( -/obj/machinery/door/airlock/glass{ - name = "Kitchen"; - req_access_txt = "28" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/kitchen) -"aSJ" = ( -/obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSN" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSP" = ( -/obj/machinery/smartfridge, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aSQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/hydroponics) -"aSR" = ( -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aSS" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/hydroponics) -"aST" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hydroponics) -"aSV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSW" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aSY" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/that{ - throwforce = 1 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aSZ" = ( -/obj/effect/landmark/start/bartender, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aTa" = ( -/obj/machinery/requests_console{ - department = "Bar"; - departmentType = 2; - pixel_x = 30; - pixel_y = 0; - receive_ore_updates = 1 - }, -/obj/machinery/camera{ - c_tag = "Bar"; - dir = 8; - network = list("SS13") - }, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aTb" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/library) -"aTc" = ( -/obj/machinery/door/window/northright{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Library Desk Door"; - req_access_txt = "37" - }, -/turf/open/floor/wood, -/area/library) -"aTd" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement{ - pixel_y = 0 - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/library) -"aTe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aTf" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aTg" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aTh" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aTi" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aTj" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aTk" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aTl" = ( -/obj/machinery/vending/cola/random, -/obj/machinery/status_display{ - layer = 4; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/escape{ - dir = 9 - }, -/area/hallway/secondary/exit) -"aTm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aTn" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Escape Airlock" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aTo" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aTq" = ( -/turf/closed/wall, -/area/security/vacantoffice{ - name = "Vacant Office A" - }) -"aTr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aTs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"aTt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"aTu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aTv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aTw" = ( -/obj/structure/closet/wardrobe/green, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTx" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTz" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTA" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTB" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTC" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTD" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/camera{ - c_tag = "Locker Room East"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTE" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel, -/area/storage/art) -"aTF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/structure/table, -/obj/item/device/camera_film, -/obj/item/device/camera, -/turf/open/floor/plasteel, -/area/storage/art) -"aTG" = ( -/obj/structure/table, -/obj/item/weapon/storage/crayons, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plasteel, -/area/storage/art) -"aTH" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/storage/emergency2) -"aTI" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/storage/emergency2) -"aTJ" = ( -/obj/machinery/light/small, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/storage/emergency2) -"aTK" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/storage/emergency2) -"aTL" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/emergency, -/turf/open/floor/plasteel, -/area/storage/tools) -"aTM" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/snacks/mint, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTN" = ( -/obj/structure/table, -/obj/item/weapon/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTO" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/chef_recipes, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTP" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/device/multitool, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/storage/tools) -"aTQ" = ( -/turf/closed/wall, -/area/bridge) -"aTR" = ( -/obj/machinery/computer/prisoner, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/bridge) -"aTS" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/bridge) -"aTT" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/red/side, -/area/bridge) -"aTU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTV" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/bridge) -"aTW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTX" = ( -/turf/open/floor/plasteel, -/area/bridge) -"aTY" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/bridge) -"aTZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/bridge) -"aUa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aUb" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/bridge) -"aUc" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/bridge) -"aUd" = ( -/obj/machinery/computer/security/mining{ - network = list("MINE","AuxBase") - }, -/turf/open/floor/plasteel/brown{ - dir = 6 - }, -/area/bridge) -"aUe" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plasteel/brown{ - dir = 2 - }, -/area/bridge) -"aUf" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/camera{ - c_tag = "Bar West"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aUg" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aUh" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/crew_quarters/kitchen) -"aUi" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/hydroponics) -"aUj" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/plasteel, -/area/hydroponics) -"aUk" = ( -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aUl" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUp" = ( -/obj/structure/table, -/obj/item/clothing/head/soft/grey{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUq" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUr" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUs" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/storage/tools) -"aUx" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"aUy" = ( -/obj/machinery/camera{ - c_tag = "Vacant Office"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUz" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aUA" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUB" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/wood, -/area/library) -"aUC" = ( -/obj/structure/chair/comfy/black, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/library) -"aUD" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/library) -"aUE" = ( -/obj/machinery/libraryscanner, -/turf/open/floor/wood, -/area/library) -"aUF" = ( -/obj/effect/landmark/start/librarian, -/obj/structure/chair/office/dark, -/turf/open/floor/wood, -/area/library) -"aUG" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aUH" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aUI" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aUJ" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aUK" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aUL" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aUM" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 2"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aUN" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUO" = ( -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUP" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUQ" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUR" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen/red, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aUT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aUU" = ( -/obj/structure/closet/wardrobe/grey, -/obj/machinery/requests_console{ - department = "Locker Room"; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUV" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUW" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUY" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUZ" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aVa" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/storage/tools) -"aVb" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/hallway/primary/central) -"aVc" = ( -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/bridge) -"aVd" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/bridge) -"aVe" = ( -/obj/machinery/camera{ - c_tag = "Bridge West"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/bridge) -"aVf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/bridge) -"aVg" = ( -/obj/structure/chair{ - dir = 1; - name = "Security Station" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVh" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Fore Primary Hallway APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway"; - dir = 4; - network = list("SS13") - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"aVi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVk" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVl" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVn" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVp" = ( -/obj/item/device/radio/beacon, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/bridge) -"aVr" = ( -/obj/machinery/camera{ - c_tag = "Bridge East"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/bridge) -"aVs" = ( -/obj/structure/chair{ - dir = 1; - name = "Logistics Station" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVt" = ( -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/bridge) -"aVu" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/hallway/primary/central) -"aVv" = ( -/obj/machinery/camera{ - c_tag = "Bridge East Entrance"; - dir = 2 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"aVw" = ( -/obj/structure/table/wood/poker, -/obj/item/clothing/mask/cigarette/cigar, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aVx" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aVy" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aVz" = ( -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/reagent_containers/food/snacks/pie/cream, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVB" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVC" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aVD" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVE" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/glass/beaker{ - pixel_x = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVF" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVG" = ( -/obj/structure/table, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVH" = ( -/obj/machinery/processor, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVI" = ( -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/hydroponics) -"aVJ" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aVK" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"aVL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - sortType = 16 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVM" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"aVN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVP" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper, -/turf/open/floor/wood, -/area/library) -"aVQ" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aVR" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen/red, -/obj/item/weapon/pen/blue{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/library) -"aVS" = ( -/obj/structure/table/wood, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/turf/open/floor/wood, -/area/library) -"aVT" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/turf/open/floor/wood, -/area/library) -"aVU" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aVV" = ( -/obj/machinery/camera{ - c_tag = "Chapel South"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"aVW" = ( -/obj/item/device/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aVX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aVY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aVZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aWa" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aWb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aWc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aWd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/library) -"aWe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aWf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aWh" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aWi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWj" = ( -/obj/structure/grille, -/obj/structure/window{ - icon_state = "window"; - dir = 8 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"aWk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWl" = ( -/obj/structure/grille, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWm" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_x = -28; - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWn" = ( -/obj/structure/closet/wardrobe/black, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWo" = ( -/obj/machinery/camera{ - c_tag = "Locker Room West"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aWs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aWt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWw" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Art Storage"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/storage/art) -"aWx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/locker/locker_toilet) -"aWz" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Port Emergency Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/storage/emergency2) -"aWA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWB" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port) -"aWC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port) -"aWD" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/storage/tools) -"aWE" = ( -/obj/machinery/computer/med_data, -/obj/machinery/newscaster{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aWF" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/storage/tools) -"aWG" = ( -/obj/machinery/computer/secure_data, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aWH" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/hallway/primary/central) -"aWI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/bridge) -"aWJ" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 4; - name = "Bridge"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/bridge) -"aWL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 8; - name = "Bridge"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/light, -/obj/machinery/light_switch{ - pixel_x = -6; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner, -/area/bridge) -"aWQ" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWR" = ( -/obj/structure/fireaxecabinet{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWT" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_y = -30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWV" = ( -/obj/machinery/turretid{ - control_area = "AI Upload Chamber"; - name = "AI Upload turret control"; - pixel_y = -25 - }, -/obj/machinery/camera{ - c_tag = "Bridge Center"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWW" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 2; - name = "Bridge APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWX" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aWY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/bridge) -"aWZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/bridge) -"aXa" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/bridge) -"aXc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 4; - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/hallway/primary/central) -"aXe" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = 8; - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXg" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXi" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aXj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/lighter, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aXk" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 32 - }, -/obj/item/weapon/book/manual/barman_recipes, -/obj/item/weapon/reagent_containers/glass/rag, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aXl" = ( -/obj/machinery/door/window/southright{ - name = "Bar Door"; - req_access_txt = "0"; - req_one_access_txt = "25;28" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aXm" = ( -/obj/effect/landmark/start/cook, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aXn" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/machinery/requests_console{ - department = "Kitchen"; - departmentType = 2; - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aXo" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hydroponics) -"aXp" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aXq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aXr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXs" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXt" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aXv" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXx" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXy" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aXA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXB" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aXD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aXE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port) -"aXF" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"aXG" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aXI" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - id_tag = null; - name = "Port Docking Bay 2"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aXJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/port) -"aXK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"aXL" = ( -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aXM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Cargo Bay Warehouse Maintenance"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aXN" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aXP" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port) -"aXQ" = ( -/turf/closed/wall, -/area/crew_quarters/locker/locker_toilet) -"aXR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aXS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/hydroponics) -"aXT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aXU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/carpet, -/area/library) -"aXV" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/library) -"aXW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXX" = ( -/obj/machinery/door/airlock/engineering{ - name = "Vacant Office A"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXY" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aYa" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Locker Room Maintenance APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port) -"aYd" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aYe" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aYf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYg" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"aYh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYi" = ( -/obj/structure/closet/secure_closet/detective, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aYj" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/button/door{ - id = "kanyewest"; - name = "Privacy Shutters"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aYk" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/hallway/primary/central) -"aYl" = ( -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/central) -"aYm" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/hallway/primary/central) -"aYn" = ( -/obj/machinery/camera{ - c_tag = "Bridge West Entrance"; - dir = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/hallway/primary/central) -"aYo" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/bridge) -"aYp" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/bridge) -"aYq" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aYr" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aYs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYu" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/bridge) -"aYv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/highsecurity{ - icon_state = "door_closed"; - locked = 0; - name = "AI Upload Access"; - req_access_txt = "16" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"aYx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYy" = ( -/obj/machinery/ai_status_display, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYC" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/bridge) -"aYD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/bridge) -"aYE" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/hallway/primary/central) -"aYF" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Central Hall APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/hallway/primary/central) -"aYG" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aYH" = ( -/obj/structure/table, -/obj/item/weapon/razor, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aYI" = ( -/obj/structure/chair/stool/bar, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aYJ" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Kitchen"; - req_access_txt = "28" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/kitchen) -"aYL" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/button/door{ - id = "kitchen"; - name = "Kitchen Shutters Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "28" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYN" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYO" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYP" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYQ" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/hydroponics) -"aYR" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYS" = ( -/obj/structure/closet, -/obj/item/clothing/under/suit_jacket/female{ - pixel_x = 3; - pixel_y = 1 - }, -/obj/item/clothing/under/suit_jacket/really_black{ - pixel_x = -2; - pixel_y = 0 - }, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aYT" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics South"; - dir = 8; - network = list("SS13") - }, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aYV" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aYW" = ( -/turf/open/floor/carpet, -/area/library) -"aYX" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aYY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aYZ" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/evidence, -/obj/item/weapon/hand_labeler{ - pixel_x = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZb" = ( -/obj/machinery/camera{ - c_tag = "Bar South"; - dir = 1 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"aZc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aZd" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/library) -"aZe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aZf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aZg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aZh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aZi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"aZk" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZm" = ( -/obj/machinery/camera{ - c_tag = "Escape Arm Airlocks"; - dir = 8; - network = list("SS13") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZn" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/blue, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aZo" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aZp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/stock_parts/cell{ - maxcharge = 2000 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"aZq" = ( -/obj/machinery/button/door{ - id = "heads_meeting"; - name = "Security Shutters"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZr" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZs" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZt" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aZu" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZv" = ( -/obj/machinery/door/airlock{ - name = "Unit 1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aZw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"aZx" = ( -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aZy" = ( -/obj/machinery/camera{ - c_tag = "Conference Room"; - dir = 2 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZz" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZA" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aZB" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aZC" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZE" = ( -/turf/closed/wall, -/area/quartermaster/storage) -"aZF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port) -"aZG" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"aZH" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "packageSort2" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"aZI" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/stack/sheet/cardboard, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"aZJ" = ( -/obj/structure/table/wood, -/obj/item/device/camera/detective, -/turf/open/floor/carpet, -/area/security/detectives_office) -"aZK" = ( -/turf/closed/wall, -/area/quartermaster/office) -"aZL" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZM" = ( -/turf/closed/wall/r_wall, -/area/bridge/meeting_room) -"aZN" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/central) -"aZO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/bridge/meeting_room) -"aZP" = ( -/turf/closed/wall, -/area/bridge/meeting_room) -"aZQ" = ( -/obj/machinery/door/airlock/command{ - name = "Conference Room"; - req_access = null; - req_access_txt = "19" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZR" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"aZS" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"aZT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"aZU" = ( -/obj/machinery/porta_turret/ai{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"aZV" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/captain) -"aZW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/crew_quarters/captain) -"aZX" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Office"; - req_access = null; - req_access_txt = "20" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"aZY" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"aZZ" = ( -/obj/machinery/vending/cigarette{ - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"baa" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bab" = ( -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bac" = ( -/obj/machinery/newscaster{ - pixel_y = -28 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bad" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bae" = ( -/obj/structure/noticeboard{ - pixel_y = -27 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"baf" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bag" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bah" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -30 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bai" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"baj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bak" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bal" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bam" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/hydroponics) -"ban" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/northleft{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bao" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bap" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"baq" = ( -/obj/machinery/ai_status_display{ - pixel_y = 32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bar" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bas" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/library) -"bat" = ( -/obj/structure/table/wood, -/obj/item/weapon/pen, -/turf/open/floor/wood, -/area/library) -"bau" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/library) -"bav" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/wood, -/area/library) -"baw" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bax" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bay" = ( -/obj/structure/chair/comfy/black, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"baA" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/chapel/main) -"baB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"baC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"baD" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Escape Hallway APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"baE" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"baF" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"baG" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"baH" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"baI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baJ" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"baK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baL" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"baM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Locker Restrooms APC"; - pixel_x = 27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/crew_quarters/locker/locker_toilet) -"baN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"baO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"baP" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"baQ" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"baR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"baS" = ( -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"baT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"baU" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baW" = ( -/obj/item/weapon/storage/secure/safe{ - pixel_x = -23 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baX" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/detective, -/turf/open/floor/carpet, -/area/security/detectives_office) -"baY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"baZ" = ( -/obj/machinery/status_display{ - layer = 4; - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bbb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"bbc" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbg" = ( -/obj/effect/landmark/blobstart, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbh" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbj" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/reset, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bbk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bbl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/crew_quarters/sleep) -"bbm" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bbn" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bbo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bbp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bbq" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bbr" = ( -/obj/machinery/camera{ - c_tag = "Locker Room South"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bbs" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bbt" = ( -/obj/structure/closet/crate, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bbu" = ( -/obj/machinery/power/apc{ - cell_type = 2500; - dir = 1; - name = "Captain's Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bbv" = ( -/obj/machinery/status_display{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bbw" = ( -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bbx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Diner" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"bby" = ( -/obj/structure/sign/barsign, -/turf/closed/wall, -/area/crew_quarters/bar) -"bbz" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bbA" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 2"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bbB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bbC" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bbD" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/library) -"bbE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/library) -"bbF" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/chapel/main) -"bbG" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"bbH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bbI" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Vacant Office A APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/security/vacantoffice{ - name = "Vacant Office A" - }) -"bbJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbL" = ( -/obj/machinery/door/airlock{ - name = "Unit 2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bbM" = ( -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bbN" = ( -/obj/machinery/washing_machine, -/obj/machinery/light, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"bbO" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"bbP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bbQ" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ - pixel_x = 3 - }, -/obj/item/weapon/lighter, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bbR" = ( -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bbS" = ( -/obj/structure/closet/crate, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bbT" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bbU" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Detective Maintenance"; - req_access_txt = "4" - }, -/turf/open/floor/plating, -/area/security/detectives_office) -"bbV" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bbW" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "heads_meeting"; - layer = 2.9; - name = "privacy shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/bridge/meeting_room) -"bbX" = ( -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbY" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbZ" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bca" = ( -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bcb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcc" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bcd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bce" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/supplied/quarantine, -/obj/machinery/camera/motion{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bcf" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bcg" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/supplied/freeform, -/obj/structure/sign/kiddieplaque{ - pixel_x = 32 - }, -/obj/machinery/camera/motion{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bch" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bci" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bck" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcl" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/disposal) -"bcm" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bcn" = ( -/obj/structure/displaycase/captain, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bco" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Dorm"; - location = "HOP2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcp" = ( -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 28 - }, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 36 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcq" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcr" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcs" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bct" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bcu" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bcv" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/locker) -"bcx" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 5"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcy" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/hallway/secondary/exit) -"bcz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcB" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bcE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bcF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bcG" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bcH" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/cigarettes, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bcI" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/port) -"bcJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/closet/crate/freezer, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bcK" = ( -/obj/structure/rack{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"bcL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bcM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bcN" = ( -/obj/item/weapon/folder/blue, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bcO" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bcP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bcQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bcR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bcS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bcT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/storage) -"bcV" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/filingcabinet, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bcW" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcX" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "heads_meeting"; - layer = 2.9; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/bridge/meeting_room) -"bcY" = ( -/obj/item/weapon/hand_labeler, -/obj/item/device/assembly/timer, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bcZ" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Command)"; - pixel_x = 0 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bda" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bdc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -30 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bdd" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bde" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bdf" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bdg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bdh" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/ai_upload) -"bdi" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bdj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bdk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bdl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdn" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway East"; - dir = 4; - network = list("SS13") - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bdo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bds" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 4"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdu" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdv" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=HOP2"; - location = "Stbd" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdw" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdz" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdA" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Cargo Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"bdB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - sortType = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bdF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bdH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bdI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdJ" = ( -/obj/machinery/door/airlock{ - name = "Unit 3" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bdK" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdL" = ( -/obj/effect/landmark/blobstart, -/obj/item/clothing/suit/ianshirt, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/port) -"bdM" = ( -/obj/item/latexballon, -/turf/open/floor/plating, -/area/maintenance/port) -"bdN" = ( -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "6" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bdO" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bdP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/assembly/chargebay) -"bdQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/disposal) -"bdR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdS" = ( -/obj/structure/closet/crate/internals, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bdT" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Disposal APC"; - pixel_x = -24; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bdU" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bdW" = ( -/obj/item/clothing/gloves/color/rainbow, -/obj/item/clothing/head/soft/rainbow, -/obj/item/clothing/shoes/sneakers/rainbow, -/obj/item/clothing/under/color/rainbow, -/turf/open/floor/plating, -/area/maintenance/port) -"bdX" = ( -/obj/item/weapon/storage/fancy/donut_box, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bdY" = ( -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bea" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"beb" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/core/full/asimov, -/obj/item/weapon/aiModule/core/freeformcore, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/item/weapon/aiModule/core/full/corp, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/aiModule/core/full/custom, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bec" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bed" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 2; - name = "Upload APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bee" = ( -/obj/machinery/computer/upload/ai, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = 0; - pixel_y = -21 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bef" = ( -/obj/machinery/computer/upload/borg, -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_y = -29 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"beg" = ( -/obj/structure/table, -/obj/item/weapon/aiModule/supplied/oxygen, -/obj/item/weapon/aiModule/zeroth/oneHuman, -/obj/machinery/door/window{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/item/weapon/aiModule/reset/purge, -/obj/structure/window/reinforced, -/obj/item/weapon/aiModule/core/full/antimov, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/aiModule/supplied/protectStation, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"beh" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"bei" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bej" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bek" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bel" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bem" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"ben" = ( -/obj/structure/table/wood, -/obj/machinery/camera{ - c_tag = "Captain's Office"; - dir = 8 - }, -/obj/item/weapon/storage/lockbox/medal{ - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"beo" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Stbd"; - location = "HOP" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bep" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"beq" = ( -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/science{ - dir = 4; - icon_state = "direction_sci"; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = 32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ber" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bes" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/starboard) -"bet" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/hallway/primary/starboard) -"beu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/hallway/primary/starboard) -"bev" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bew" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bex" = ( -/obj/machinery/button/door{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bey" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bez" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beA" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "packageSort2" - }, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/quartermaster/office) -"beB" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 3"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"beE" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"beG" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/secondary/exit) -"beH" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/escape{ - dir = 2 - }, -/area/hallway/secondary/exit) -"beI" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/escape{ - dir = 2 - }, -/area/hallway/secondary/exit) -"beJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/secondary/exit) -"beK" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Port Docking Bay 4"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"beL" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Port Docking Bay 3"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"beM" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"beN" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"beO" = ( -/turf/closed/wall, -/area/maintenance/disposal) -"beP" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beQ" = ( -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beR" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/machinery/recycler, -/obj/structure/sign/securearea{ - name = "\improper STAY CLEAR HEAVY MACHINERY"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beS" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/disposal) -"beU" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage"; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/office) -"beW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/table/reinforced, -/obj/item/stack/wrapping_paper{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/stack/packageWrap{ - pixel_x = -1; - pixel_y = -1 - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"beX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"beY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"beZ" = ( -/obj/machinery/mineral/stacking_unit_console{ - dir = 2; - machinedir = 8 - }, -/turf/closed/wall, -/area/maintenance/disposal) -"bfa" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bfb" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/chapel/main) -"bfc" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Locker Room APC"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/crew_quarters/locker) -"bfd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfe" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bff" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/stack/sheet/cardboard, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bfh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/port) -"bfi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bfj" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bfk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Cargo Bay APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bfm" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/quartermaster/office) -"bfn" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bfo" = ( -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bfp" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_y = -30 - }, -/obj/machinery/light, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bfq" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfr" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bfs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bft" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfv" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfw" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfy" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfA" = ( -/obj/structure/table/wood, -/obj/item/weapon/hand_tele, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfB" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/blue, -/obj/item/weapon/stamp/captain, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfC" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfE" = ( -/obj/structure/table/wood, -/obj/item/weapon/pinpointer, -/obj/item/weapon/disk/nuclear, -/obj/item/weapon/storage/secure/safe{ - pixel_x = 35; - pixel_y = 5 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bfF" = ( -/turf/closed/wall, -/area/medical/chemistry) -"bfG" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/medbay) -"bfH" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall, -/area/medical/medbay) -"bfI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfJ" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bfK" = ( -/turf/closed/wall, -/area/security/checkpoint/medical) -"bfL" = ( -/turf/closed/wall, -/area/medical/morgue) -"bfM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bfO" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfP" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Starboard Primary Hallway APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bfR" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/hand_labeler{ - pixel_y = 8 - }, -/obj/item/weapon/hand_labeler{ - pixel_y = 8 - }, -/obj/item/weapon/storage/box, -/obj/item/weapon/storage/box, -/obj/item/weapon/storage/box, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bfS" = ( -/turf/closed/wall, -/area/storage/emergency) -"bfT" = ( -/turf/closed/wall, -/area/assembly/chargebay) -"bfU" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bfV" = ( -/turf/closed/wall/r_wall, -/area/assembly/robotics) -"bfW" = ( -/turf/open/floor/plasteel/purple/side{ - dir = 10 - }, -/area/hallway/primary/starboard) -"bfX" = ( -/turf/open/floor/plasteel/purple/side{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bfY" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/purple/side{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bfZ" = ( -/obj/structure/sign/securearea{ - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/plasteel/purple/side{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bga" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/purple/side{ - dir = 2 - }, -/area/hallway/primary/starboard) -"bgb" = ( -/turf/open/floor/plasteel/purple/side{ - dir = 6 - }, -/area/hallway/primary/starboard) -"bgc" = ( -/turf/closed/wall/r_wall, -/area/toxins/lab) -"bgd" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/escape{ - dir = 2 - }, -/area/hallway/secondary/exit) -"bge" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/escape{ - dir = 10 - }, -/area/hallway/secondary/exit) -"bgf" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bgg" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bgh" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bgi" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 3 & 4"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bgj" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgk" = ( -/obj/machinery/conveyor{ - dir = 5; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgl" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "garbage"; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bgo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Mech Bay APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/assembly/chargebay) -"bgp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bgq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bgr" = ( -/obj/machinery/door/airlock{ - name = "Unit 4" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bgs" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"bgt" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"bgu" = ( -/obj/machinery/button/door{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -1; - pixel_y = 24; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bgv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/quartermaster/office) -"bgw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bgx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bgy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/port) -"bgz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bgA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"bgB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/storage) -"bgC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/office) -"bgD" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2" - }, -/obj/machinery/camera{ - c_tag = "Cargo Delivery Office"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"bgE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bgF" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bgG" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway West"; - dir = 8 - }, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/central) -"bgH" = ( -/obj/machinery/door/window/eastright{ - dir = 1; - name = "Bridge Delivery"; - req_access_txt = "19" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge/meeting_room) -"bgI" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgJ" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgL" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgM" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgN" = ( -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bgO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bgP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bgQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/medbay) -"bgR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bgS" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_x = -30; - pixel_y = 0 - }, -/obj/structure/filingcabinet, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgT" = ( -/obj/machinery/computer/communications, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgU" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/start/captain, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgV" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/coin/plasma, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgX" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/item/device/camera, -/obj/item/weapon/storage/photo_album{ - pixel_y = -10 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bgY" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgZ" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Chemistry APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/mob/living/simple_animal/bot/cleanbot{ - name = "C.L.E.A.N." - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bha" = ( -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhb" = ( -/obj/machinery/chem_dispenser, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bhc" = ( -/obj/machinery/camera{ - c_tag = "Chemistry"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhd" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 5 - }, -/area/medical/chemistry) -"bhe" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bhf" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bhg" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/medbay) -"bhh" = ( -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bhi" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bhj" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Medbay"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/medical) -"bhk" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Doors Control"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 26; - req_access_txt = "5" - }, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/medical) -"bhl" = ( -/obj/structure/filingcabinet, -/obj/machinery/newscaster{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/medical) -"bhm" = ( -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bhn" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/bodybags, -/obj/item/weapon/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bho" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bhp" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Morgue APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bhq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bhr" = ( -/obj/machinery/door/airlock{ - name = "Starboard Emergency Storage"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/storage/emergency) -"bhs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bht" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Mech Bay"; - req_access_txt = "29"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"bhu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "Skynet_launch"; - name = "mech bay" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"bhv" = ( -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 8 - }, -/area/assembly/robotics) -"bhw" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bhx" = ( -/obj/machinery/requests_console{ - department = "Robotics"; - departmentType = 2; - name = "Robotics RC"; - pixel_y = 30; - receive_ore_updates = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/r_n_d/circuit_imprinter, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bhy" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics"; - name = "robotics lab shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/assembly/robotics) -"bhz" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Robotics Desk"; - req_access_txt = "29" - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics"; - name = "robotics lab shutters" - }, -/turf/open/floor/plating, -/area/assembly/robotics) -"bhA" = ( -/turf/closed/wall, -/area/medical/research{ - name = "Research Division" - }) -"bhB" = ( -/obj/machinery/door/airlock/research{ - cyclelinkeddir = 2; - name = "Research Division Access"; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bhC" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd"; - name = "research lab shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/lab) -"bhD" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - name = "Research and Development Desk"; - req_access_txt = "7" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd"; - name = "research lab shutters" - }, -/turf/open/floor/plating, -/area/toxins/lab) -"bhE" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bhF" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bhG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/asmaint2) -"bhH" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bhI" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhJ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - layer = 3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhL" = ( -/obj/machinery/mineral/stacking_machine{ - input_dir = 1; - stack_amt = 10 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhM" = ( -/turf/open/floor/circuit, -/area/assembly/chargebay) -"bhN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/locker/locker_toilet) -"bhR" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"bhS" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - icon_state = "window"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhT" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"bhU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bhV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bhW" = ( -/obj/machinery/door/poddoor/shutters{ - id = "qm_warehouse"; - name = "warehouse shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/quartermaster/storage) -"bhX" = ( -/obj/structure/disposalpipe/wrapsortjunction{ - dir = 1 - }, -/turf/closed/wall, -/area/quartermaster/storage) -"bhY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/storage) -"bhZ" = ( -/obj/machinery/door/window/eastleft{ - dir = 4; - icon_state = "right"; - name = "Mail"; - req_access_txt = "50" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bia" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bib" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bic" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bid" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/central) -"bie" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - dir = 1; - freq = 1400; - location = "Bridge" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/bridge/meeting_room) -"bif" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"big" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/gravity_generator) -"bih" = ( -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/engine/gravity_generator) -"bii" = ( -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/engine/gravity_generator) -"bij" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bik" = ( -/obj/item/device/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Command)"; - pixel_x = -28 - }, -/obj/machinery/suit_storage_unit/captain, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bil" = ( -/obj/machinery/computer/card, -/obj/item/weapon/card/id/captains_spare, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bim" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/obj/item/weapon/melee/chainofcommand, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bin" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bio" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/machinery/requests_console{ - department = "Chemistry"; - departmentType = 2; - pixel_x = -30; - pixel_y = 0; - receive_ore_updates = 1 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bip" = ( -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"biq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bir" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - dir = 8; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bis" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chemist, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 4 - }, -/area/medical/chemistry) -"bit" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"biu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"biv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/quartermaster/office) -"biw" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bix" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/medical, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/medical) -"biy" = ( -/obj/machinery/computer/secure_data, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/medical) -"biz" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"biA" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"biB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"biC" = ( -/turf/open/floor/plating, -/area/storage/emergency) -"biD" = ( -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/storage/emergency) -"biE" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/extinguisher, -/turf/open/floor/plating, -/area/storage/emergency) -"biF" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - sortType = 2 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"biG" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/assembly/chargebay) -"biH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"biI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/circuit, -/area/assembly/chargebay) -"biJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/circuit, -/area/assembly/chargebay) -"biK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitered/corner{ - icon_state = "whiteredcorner"; - dir = 1 - }, -/area/assembly/robotics) -"biL" = ( -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"biN" = ( -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/assembly/robotics) -"biO" = ( -/obj/machinery/camera{ - c_tag = "Robotics Lab"; - dir = 2; - network = list("SS13","RD") - }, -/obj/machinery/button/door{ - dir = 2; - id = "robotics"; - name = "Shutters Control Button"; - pixel_x = 6; - pixel_y = 24; - req_access_txt = "29" - }, -/obj/structure/table, -/obj/item/weapon/book/manual/robotics_cyborgs{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/turf/open/floor/plasteel/whitered/corner{ - dir = 4 - }, -/area/assembly/robotics) -"biP" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/assembly/robotics) -"biQ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/assembly/robotics) -"biR" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"biS" = ( -/obj/machinery/camera{ - c_tag = "Research Division Access"; - dir = 2; - network = list("SS13") - }, -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"biT" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"biU" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/toxins/lab) -"biV" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/toxins/lab) -"biW" = ( -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"biX" = ( -/obj/machinery/camera{ - c_tag = "Research and Development"; - dir = 2; - network = list("SS13","RD"); - pixel_x = 22 - }, -/obj/machinery/button/door{ - dir = 2; - id = "rnd"; - name = "Shutters Control Button"; - pixel_x = -6; - pixel_y = 24; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/toxins/lab) -"biY" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bja" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjb" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "garbage" - }, -/obj/structure/sign/vacuum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjd" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bje" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Disposal Access"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjh" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bji" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjl" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjm" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/weapon/hand_labeler, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = 0; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjn" = ( -/obj/structure/table, -/obj/item/clothing/head/soft, -/obj/item/clothing/head/soft, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjo" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay North" - }, -/obj/structure/closet/wardrobe/cargotech, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjp" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjq" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjr" = ( -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjs" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Office"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bju" = ( -/obj/machinery/photocopier, -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bjy" = ( -/obj/machinery/camera{ - c_tag = "Gravity Generator Room"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bjz" = ( -/turf/closed/wall/r_wall, -/area/maintenance/maintcentral) -"bjA" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bjB" = ( -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bjC" = ( -/obj/structure/closet/wardrobe/black, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bjD" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Bridge Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bjE" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bjF" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/keycard_auth{ - pixel_x = 0; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bjG" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Captain's Desk Door"; - req_access_txt = "20" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bjH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bjI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bjJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"bjK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjL" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bjN" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/medical) -"bjO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjP" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"bjQ" = ( -/obj/machinery/smartfridge/chemistry, -/turf/open/floor/plating, -/area/medical/chemistry) -"bjR" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/obj/item/weapon/reagent_containers/dropper, -/obj/item/weapon/reagent_containers/dropper, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 4 - }, -/area/medical/chemistry) -"bjS" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bjT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/medbay) -"bjU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 2 - }, -/area/medical/medbay) -"bjV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/medbay) -"bjX" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/medical) -"bjY" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/medical) -"bjZ" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bka" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bkb" = ( -/obj/machinery/camera{ - c_tag = "Medbay Morgue"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkc" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/storage/emergency) -"bkd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/storage/emergency) -"bke" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/storage/emergency) -"bkf" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/storage/emergency) -"bkh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/assembly/chargebay) -"bki" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/beaker/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/dropper, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bkj" = ( -/obj/structure/closet/emcloset, -/obj/machinery/airalarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bkm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bkn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bko" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bkp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkq" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bkr" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bks" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = -30; - pixel_y = 0; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bkt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bku" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bkw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bkx" = ( -/obj/machinery/status_display{ - density = 0; - pixel_y = 2; - supply_display = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/quartermaster/office) -"bky" = ( -/turf/closed/wall, -/area/maintenance/asmaint2) -"bkz" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "garbage"; - layer = 2.5 - }, -/obj/machinery/door/poddoor/preopen{ - id = "Disposal Exit"; - layer = 3; - name = "disposal exit vent" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkA" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"bkB" = ( -/obj/machinery/button/door{ - id = "Disposal Exit"; - name = "Disposal Vent Control"; - pixel_x = -25; - pixel_y = 4; - req_access_txt = "12" - }, -/obj/machinery/button/massdriver{ - id = "trash"; - pixel_x = -26; - pixel_y = -6 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkC" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/port) -"bkE" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/port) -"bkF" = ( -/turf/closed/wall/r_wall, -/area/maintenance/port) -"bkG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Cargo Bay Maintenance"; - req_access_txt = "31" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bkH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bkI" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bkJ" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bkK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bkL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bkM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bkN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bkO" = ( -/obj/machinery/light_switch{ - pixel_x = 28; - pixel_y = 0 - }, -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/obj/item/device/radio/off, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/medical) -"bkP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bkT" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bkU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint) -"bkW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bkX" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Conference Room APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/bridge/meeting_room) -"bkY" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bkZ" = ( -/obj/machinery/gravity_generator/main/station, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/gravity_generator) -"bla" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"blb" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access = null; - req_access_txt = "20" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"blc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/crew_quarters/captain) -"bld" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Captain's Office Maintenance"; - req_access_txt = "20" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/crew_quarters/captain) -"ble" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blf" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/syringes, -/obj/item/clothing/glasses/science{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/clothing/glasses/science, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"blg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Morgue Maintenance"; - req_access_txt = "6" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/morgue) -"blh" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bli" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"blj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"blk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/medbay) -"bll" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"blm" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/food/drinks/britcup{ - desc = "Kingston's personal cup." - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bln" = ( -/obj/structure/table/reinforced, -/obj/machinery/camera{ - c_tag = "Medbay Foyer"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"blo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Starboard Emergency Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/emergency) -"blp" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Medbay Security APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/medical) -"blq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/sortjunction{ - sortType = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"blr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bls" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/weapon/crowbar/large, -/obj/machinery/camera{ - c_tag = "Mech Bay"; - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"blt" = ( -/obj/machinery/recharge_station, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"blu" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"blv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"blw" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/assembly/chargebay) -"blx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"bly" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"blz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"blA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/assembly/robotics) -"blB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"blC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"blD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/assembly/robotics) -"blE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/weapon/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/weapon/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"blF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "robo1" - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"blG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"blH" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"blI" = ( -/obj/machinery/r_n_d/destructive_analyzer, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"blJ" = ( -/obj/machinery/r_n_d/protolathe, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"blK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/lab) -"blL" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"blM" = ( -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"blO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"blP" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"blQ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"blR" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/item/weapon/cigbutt, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"blS" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/mass_driver{ - id = "trash" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"blT" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"blU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/sleep) -"blV" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/disposal) -"blW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/quartermaster/storage) -"blX" = ( -/obj/machinery/door/airlock/research{ - cyclelinkeddir = 1; - name = "Research Division Access"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"blY" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"blZ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bma" = ( -/obj/structure/table/glass, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/capacitor, -/obj/item/weapon/stock_parts/capacitor, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/micro_laser, -/obj/item/weapon/stock_parts/micro_laser, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bmb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bmd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bme" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bmf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/quartermaster/office) -"bmg" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Bay"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_mining{ - name = "Delivery Office"; - req_access_txt = "50" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bml" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 8; - output_dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/office) -"bmm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmn" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bmo" = ( -/turf/closed/wall, -/area/crew_quarters/heads) -"bmp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/maintcentral) -"bmq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/heads) -"bmr" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads) -"bms" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access = null; - req_access_txt = "57" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads) -"bmt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/quartermaster/office) -"bmu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bmv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bmw" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bmx" = ( -/turf/closed/wall, -/area/crew_quarters/captain) -"bmy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bmz" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/dresser, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bmA" = ( -/obj/machinery/door/airlock{ - name = "Private Restroom"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/captain) -"bmB" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bmC" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/captain) -"bmD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/crew_quarters/captain) -"bmE" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmF" = ( -/obj/structure/table/glass, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmG" = ( -/obj/machinery/chem_dispenser, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 2 - }, -/area/medical/chemistry) -"bmH" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Bay"; - req_access_txt = "31" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmI" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 6 - }, -/area/medical/chemistry) -"bmJ" = ( -/obj/item/device/radio/intercom{ - broadcasting = 1; - freerange = 0; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_x = 0; - pixel_y = -30 - }, -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bmK" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bmL" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Doors Control"; - normaldoorcontrol = 1; - pixel_x = -26; - req_access_txt = "5" - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bmM" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/structure/sign/nosmoking_2{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bmN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/medical) -"bmO" = ( -/obj/structure/closet, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/medical) -"bmP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmQ" = ( -/obj/item/weapon/stamp{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/stamp/denied{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmR" = ( -/obj/structure/table, -/obj/item/weapon/paper/morguereminder{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bmS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmT" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bmV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "6;5" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bmW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/medical/morgue) -"bmX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bmY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/morgue) -"bmZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bna" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bnb" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"bnc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/assembly/chargebay) -"bnf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bng" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bnh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bni" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bnj" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/cable_coil, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bnk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bnl" = ( -/obj/item/weapon/stock_parts/console_screen, -/obj/structure/table/glass, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/console_screen, -/obj/item/weapon/stock_parts/matter_bin, -/obj/item/weapon/stock_parts/matter_bin, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/item/weapon/stock_parts/scanning_module{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/stock_parts/scanning_module, -/obj/machinery/power/apc{ - dir = 4; - name = "Research Lab APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bnm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/medical/research{ - name = "Research Division" - }) -"bnn" = ( -/obj/machinery/computer/rdconsole/core, -/turf/open/floor/plasteel, -/area/toxins/lab) -"bno" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, -/turf/open/floor/plasteel, -/area/toxins/lab) -"bnp" = ( -/turf/open/floor/plasteel, -/area/toxins/lab) -"bnq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/toxins/lab) -"bnr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/turf/open/floor/plasteel/loadingarea, -/area/toxins/lab) -"bns" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"bnt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bnu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"bnv" = ( -/obj/machinery/door/poddoor{ - id = "trash"; - name = "disposal bay door" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bnw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bnx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bny" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnz" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnA" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnB" = ( -/obj/structure/closet/wardrobe/chemistry_white, -/obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnC" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/chemistry, -/obj/item/weapon/book/manual/wiki/chemistry{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnF" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = 0; - pixel_y = 30 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bnG" = ( -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/clipboard, -/obj/item/weapon/pen/red, -/obj/structure/table, -/obj/machinery/computer/stockexchange, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bnI" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnJ" = ( -/obj/machinery/firealarm{ - pixel_y = 27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnK" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/quartermaster/office) -"bnL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"bnM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnN" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/hallway/primary/central) -"bnO" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bnP" = ( -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = 6; - pixel_y = 36 - }, -/obj/machinery/button/door{ - id = "hop"; - name = "Privacy Shutters Control"; - pixel_x = 6; - pixel_y = 25; - req_access_txt = "57" - }, -/obj/machinery/button/door{ - id = "hopqueue"; - name = "Queue Shutters Control"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "57" - }, -/obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 36 - }, -/obj/machinery/pdapainter, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/crew_quarters/heads) -"bnQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/bed/dogbed{ - anchored = 1; - desc = "Ian's bed! Looks comfy."; - name = "Ian's bed" - }, -/mob/living/simple_animal/pet/dog/corgi/Ian{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bnR" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("Prison"); - pixel_x = 0; - pixel_y = 30 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bnS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bnT" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "Gravity Generator"; - req_access_txt = "11"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bnV" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnW" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bnY" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/captain, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bnZ" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"boa" = ( -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/captain) -"bob" = ( -/obj/structure/table/glass, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/screwdriver{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"boc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bod" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/device/radio/headset/headset_med, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"boe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay) -"bof" = ( -/turf/closed/wall, -/area/medical/medbay) -"bog" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/medbay) -"boh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay) -"boi" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"boj" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 30; - pixel_y = 0; - pixel_z = 0 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bok" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/medical) -"bol" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bom" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bon" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics) -"boo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"boq" = ( -/obj/structure/bed/roller, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/medbay) -"bor" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/weapon/surgical_drapes, -/obj/item/weapon/razor, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bos" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/power/apc{ - dir = 8; - name = "Robotics Lab APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bou" = ( -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bov" = ( -/obj/structure/table, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/crowbar, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bow" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/research{ - name = "Research Division" - }) -"box" = ( -/turf/closed/wall, -/area/assembly/robotics) -"boy" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/research{ - name = "Research Division" - }) -"boz" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/research{ - name = "Research Division" - }) -"boA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"boB" = ( -/turf/closed/wall, -/area/toxins/lab) -"boC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/assembly/robotics) -"boD" = ( -/obj/structure/table, -/obj/item/weapon/circular_saw, -/obj/item/weapon/scalpel{ - pixel_y = 12 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"boE" = ( -/obj/structure/table, -/obj/item/weapon/hemostat, -/obj/item/weapon/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"boF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"boG" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"boH" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"boI" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/quartermaster/storage) -"boJ" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"boK" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"boL" = ( -/obj/structure/table, -/obj/item/weapon/retractor, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"boM" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, -/area/medical/research{ - name = "Research Division" - }) -"boN" = ( -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/office) -"boO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/medical/research{ - name = "Research Division" - }) -"boP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"boQ" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"boR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westleft{ - name = "Cargo Desk"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"boW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"boX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 8 - }, -/area/hallway/primary/central) -"boY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/hallway/primary/central) -"boZ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - dir = 8; - icon_state = "left"; - name = "Reception Window"; - req_access_txt = "0" - }, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - name = "Head of Personnel's Desk"; - req_access = null; - req_access_txt = "57" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "hopflash"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - layer = 2.9; - name = "Privacy Shutters" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bpa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bpc" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/crew_quarters/heads) -"bpd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bpe" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bpf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bpg" = ( -/obj/structure/chair/office/light, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bph" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bpi" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bpj" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Captain's Quarters"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bpk" = ( -/obj/structure/closet/secure_closet/captains, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bpl" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/matches, -/obj/item/weapon/razor{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/clothing/mask/cigarette/cigar, -/obj/item/weapon/reagent_containers/food/drinks/flask/gold, -/turf/open/floor/carpet, -/area/crew_quarters/captain) -"bpm" = ( -/obj/machinery/shower{ - dir = 1 - }, -/obj/item/weapon/soap/deluxe, -/obj/item/weapon/bikehorn/rubberducky, -/obj/effect/landmark/revenantspawn, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/captain) -"bpn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bpp" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Research Division Delivery"; - req_access_txt = "47" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/toxins/lab) -"bpq" = ( -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = -23 - }, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bpr" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Research Division" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/lab) -"bps" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/quartermaster/storage) -"bpt" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bpu" = ( -/obj/structure/bed/roller, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Exit Button"; - normaldoorcontrol = 1; - pixel_x = 0; - pixel_y = 26 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Medbay Reception"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpw" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/medical/medbay) -"bpx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bpA" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bpB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bpC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Chemistry Lab"; - req_access_txt = "5; 33" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bpE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/genetics) -"bpF" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bpG" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Genetics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpH" = ( -/obj/structure/table/glass, -/obj/item/weapon/folder/white, -/obj/item/device/radio/headset/headset_medsci, -/obj/machinery/requests_console{ - department = "Genetics"; - departmentType = 0; - name = "Genetics Requests Console"; - pixel_x = 0; - pixel_y = 30 - }, -/obj/item/weapon/storage/pill_bottle/mutadone, -/obj/item/weapon/storage/pill_bottle/mannitol, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpI" = ( -/obj/machinery/dna_scannernew, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/medical/genetics) -"bpJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpK" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bpL" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bpM" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/chemistry) -"bpN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bpQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bpR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bpS" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/bodybags, -/obj/item/weapon/pen, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bpT" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bpU" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bpV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/assembly/robotics) -"bpW" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/structure/window/fulltile, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/turf/open/floor/plating, -/area/assembly/robotics) -"bpX" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/medical/research{ - name = "Research Division" - }) -"bpY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bpZ" = ( -/obj/item/weapon/folder/white, -/obj/structure/table, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/disk/tech_disk{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/disk/design_disk, -/obj/item/weapon/disk/design_disk, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bqa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - name = "Robotics Surgery"; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bqc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bqd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor{ - dir = 4; - id = "robo2" - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"bqe" = ( -/turf/closed/wall/r_wall, -/area/toxins/explab) -"bqf" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bqg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bqh" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bqi" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqj" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/lab) -"bql" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bqn" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bqo" = ( -/obj/machinery/autolathe, -/obj/machinery/light_switch{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/table/reinforced, -/obj/item/device/destTagger, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"bqq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bqr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bqs" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqt" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqu" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqv" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bqw" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bqx" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - layer = 2.9; - name = "Privacy Shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/heads) -"bqy" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqz" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bqA" = ( -/obj/machinery/computer/card, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/crew_quarters/heads) -"bqB" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/crew_quarters/heads) -"bqC" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bqD" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Gravity Generator APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/weapon/paper/gravity_gen{ - layer = 3 - }, -/obj/item/weapon/pen/blue, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bqE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bqF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bqG" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bqH" = ( -/turf/closed/wall/r_wall, -/area/teleporter) -"bqI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/teleporter) -"bqJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/teleporter) -"bqK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Teleporter Maintenance"; - req_access_txt = "17" - }, -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/teleporter) -"bqL" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqM" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"bqN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/medbay) -"bqP" = ( -/obj/structure/bed/roller, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqR" = ( -/obj/structure/table, -/obj/item/weapon/crowbar, -/obj/item/clothing/neck/stethoscope, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/structure/sign/nosmoking_2{ - pixel_x = 0; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/medbay) -"bqS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/medbay) -"bqT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/medbay) -"bqU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Medbay West"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 1 - }, -/area/medical/medbay) -"bqW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bqZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bra" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/rxglasses, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brb" = ( -/obj/machinery/computer/scan_consolenew, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/genetics) -"brc" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/geneticist, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brd" = ( -/turf/open/floor/plasteel, -/area/medical/genetics) -"bre" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"brf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"brg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"brh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 2 - }, -/area/medical/medbay) -"bri" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/medbay) -"brj" = ( -/obj/structure/bed/roller, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/medbay) -"brk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"brn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bro" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 10 - }, -/area/medical/research{ - name = "Research Division" - }) -"brp" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"brq" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - dir = 2; - id = "robotics2"; - name = "Shutters Control Button"; - pixel_x = 24; - pixel_y = -24; - req_access_txt = "29" - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"brr" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/explab) -"brs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Robotics Desk"; - req_access_txt = "29" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/assembly/robotics) -"brt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bru" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"brv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"brw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"brx" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/toxins/lab) -"bry" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Experimentation Lab Maintenance"; - req_access_txt = "47" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/explab) -"brz" = ( -/obj/structure/table, -/obj/item/weapon/pen, -/obj/machinery/camera{ - c_tag = "Experimentor Lab"; - dir = 2; - network = list("SS13","RD") - }, -/obj/item/weapon/hand_labeler, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/toxins/explab) -"brA" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 0; - pixel_y = 6 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, -/area/toxins/explab) -"brB" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/toxins/explab) -"brC" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/folder/white, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/item/device/radio/off, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/toxins/explab) -"brD" = ( -/obj/structure/closet/emcloset{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/toxins/explab) -"brE" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "0"; - req_one_access_txt = "8;12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brG" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brJ" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"brK" = ( -/turf/open/floor/plating, -/area/quartermaster/storage) -"brL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brM" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #1" - }, -/obj/effect/turf_decal/bot, -/mob/living/simple_animal/bot/mulebot{ - beacon_freq = 1400; - home_destination = "QM #1"; - suffix = "#1" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brN" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brO" = ( -/obj/structure/table, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30; - pixel_y = 0 - }, -/obj/item/device/multitool, -/obj/machinery/camera{ - c_tag = "Cargo Office"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"brP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"brQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"brR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"brS" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"brT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"brU" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - layer = 2.9; - name = "Privacy Shutters" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/heads) -"brV" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"brW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/vending/cart, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"brX" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/masks{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/storage/box/gloves{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"brY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"brZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bsa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bsb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bsc" = ( -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bsd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bse" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bsf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bsg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bsh" = ( -/turf/closed/wall, -/area/teleporter) -"bsi" = ( -/obj/structure/table, -/obj/item/weapon/hand_tele, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/teleporter) -"bsj" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/device/radio/beacon, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsk" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsl" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/closet/crate, -/obj/item/weapon/crowbar, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsn" = ( -/obj/machinery/camera{ - c_tag = "Teleporter" - }, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bso" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsp" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/hallway/primary/central) -"bsq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = 0; - pixel_y = -30 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bsr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bss" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bst" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Medbay East"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = -22 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bsu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "GeneticsDoor"; - name = "Genetics"; - req_access_txt = "5; 68" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsw" = ( -/obj/machinery/door/airlock/research{ - name = "Robotics Lab"; - req_access_txt = "29"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bsx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bsy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bsz" = ( -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bsA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bsC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bsD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bsE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Experimentation Lab"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bsF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bsG" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bsH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/toxins/explab) -"bsI" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Experimentation Lab APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bsJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"bsK" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/disks{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsL" = ( -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bsN" = ( -/obj/machinery/door/window/westleft{ - name = "Monkey Pen"; - req_access_txt = "9" - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bsO" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bsP" = ( -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bsQ" = ( -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bsR" = ( -/obj/machinery/computer/operating{ - name = "Robotics Operating Computer" - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"bsS" = ( -/obj/machinery/camera{ - c_tag = "Robotics Lab - South"; - dir = 1; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bsT" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bsU" = ( -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"bsV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bsW" = ( -/obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ - pixel_x = -3 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"bsX" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bsY" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/head_of_personnel, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bsZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bta" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Division North"; - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/teleporter) -"btd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bte" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 6 - }, -/area/medical/research{ - name = "Research Division" - }) -"btf" = ( -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = -30; - pixel_y = 0; - pixel_z = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"btg" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bth" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bti" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"btk" = ( -/obj/structure/closet/wardrobe/white, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btm" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - sortType = 12 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/research{ - name = "Research Division" - }) -"bto" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/sign/securearea{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btp" = ( -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"btq" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"btr" = ( -/obj/machinery/camera{ - c_tag = "Cargo Recieving Dock"; - dir = 4 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - layer = 4; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = -8 - }, -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - layer = 4; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bts" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #2" - }, -/obj/effect/turf_decal/bot, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #2"; - suffix = "#2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"btt" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/item/weapon/folder/yellow, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btw" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/research{ - name = "Research Division" - }) -"btx" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/research{ - name = "Research Division" - }) -"bty" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btz" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"btA" = ( -/obj/machinery/camera{ - c_tag = "Research Division West"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btB" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/crew_quarters/heads) -"btC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"btD" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"btE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"btF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/gravity_generator) -"btG" = ( -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"btH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/teleporter) -"btI" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Teleporter APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel, -/area/teleporter) -"btK" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Teleport Access"; - req_access_txt = "17" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btO" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/hallway/primary/central) -"btP" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 10 - }, -/area/medical/research{ - name = "Research Division" - }) -"btR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"btS" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"btU" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"btV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"btW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"btX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"btY" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = 0; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"btZ" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bua" = ( -/turf/closed/wall, -/area/medical/genetics) -"bub" = ( -/obj/machinery/light, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 8 - }, -/area/quartermaster/storage) -"buc" = ( -/obj/machinery/light, -/obj/machinery/power/apc{ - dir = 2; - name = "Cargo Office APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/brown/corner{ - dir = 2 - }, -/area/quartermaster/office) -"bud" = ( -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/quartermaster/office) -"bue" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Personnel's Desk"; - departmentType = 5; - name = "Head of Personnel RC"; - pixel_y = -30 - }, -/obj/machinery/camera{ - c_tag = "Head of Personnel's Office"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"buf" = ( -/obj/machinery/computer/scan_consolenew, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/medical/genetics) -"bug" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bui" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"buj" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/assembly/robotics) -"buk" = ( -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"bul" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bum" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bun" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bup" = ( -/obj/machinery/light, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"buq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/genetics) -"bur" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bus" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"but" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"buv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"buw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bux" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/genetics) -"buy" = ( -/obj/structure/disposalpipe/sortjunction{ - sortType = 23 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"buB" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buD" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #3" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buE" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/computer/stockexchange, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buG" = ( -/obj/machinery/door/airlock/research{ - name = "Genetics Research"; - req_access_txt = "9" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buH" = ( -/obj/machinery/door/airlock/research{ - name = "Genetics Research Access"; - req_access_txt = "47" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"buI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buJ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buK" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"buL" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buM" = ( -/obj/machinery/keycard_auth{ - pixel_x = -24; - pixel_y = 0 - }, -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/crew_quarters/heads) -"buN" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"buO" = ( -/obj/structure/table, -/obj/item/weapon/folder/blue, -/obj/item/weapon/stamp/hop, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"buP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"buQ" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"buR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"buS" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/camera{ - c_tag = "Gravity Generator Foyer" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"buT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/research{ - name = "Research Division" - }) -"buU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/research{ - name = "Research Division" - }) -"buV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"buW" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/teleporter) -"buX" = ( -/obj/machinery/shieldwallgen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/teleporter) -"buY" = ( -/obj/machinery/shieldwallgen, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/teleporter) -"buZ" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/teleporter) -"bva" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/hallway/primary/central) -"bvb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bvc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bvd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/sleeper) -"bve" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bvf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bvg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bvh" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/sleeper) -"bvi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/medical/sleeper) -"bvj" = ( -/turf/closed/wall, -/area/medical/sleeper) -"bvk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bvl" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = ""; - name = "Surgery Observation"; - req_access_txt = "0" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bvm" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bvn" = ( -/obj/machinery/button/door{ - desc = "A remote control switch for the genetics doors."; - id = "GeneticsDoor"; - name = "Genetics Exit Button"; - normaldoorcontrol = 1; - pixel_x = 8; - pixel_y = 24 - }, -/obj/structure/table, -/obj/item/weapon/book/manual/medical_cloning{ - pixel_y = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvq" = ( -/obj/structure/chair, -/obj/effect/landmark/start/geneticist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvr" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvs" = ( -/obj/machinery/dna_scannernew, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/genetics) -"bvt" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Genetics Research"; - req_access_txt = "5; 9; 68" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvu" = ( -/obj/structure/window/reinforced, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bvv" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bvw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvx" = ( -/turf/closed/wall/r_wall, -/area/medical/research{ - name = "Research Division" - }) -"bvy" = ( -/obj/machinery/camera{ - c_tag = "Genetics Research"; - dir = 1; - network = list("SS13","RD"); - pixel_x = 0 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/genetics) -"bvz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvA" = ( -/obj/structure/sign/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bvB" = ( -/obj/machinery/camera{ - c_tag = "Genetics Access"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"bvD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bvE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 6 - }, -/area/medical/research{ - name = "Research Division" - }) -"bvF" = ( -/obj/structure/table, -/obj/item/weapon/cartridge/quartermaster{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/weapon/cartridge/quartermaster, -/obj/item/weapon/cartridge/quartermaster{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30; - pixel_y = 0 - }, -/obj/item/weapon/coin/silver, -/turf/open/floor/plasteel/brown{ - dir = 9 - }, -/area/quartermaster/qm) -"bvG" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bvH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bvI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bvJ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/crew_quarters/hor) -"bvK" = ( -/turf/closed/wall, -/area/crew_quarters/hor) -"bvL" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/supply) -"bvM" = ( -/obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bvN" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bvO" = ( -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bvP" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bvQ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bvR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bvS" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvT" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvU" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/light, -/obj/machinery/status_display{ - density = 0; - pixel_y = -30; - supply_display = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvV" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bvX" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bvY" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #4" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bvZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 6; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bwa" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bwd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"bwe" = ( -/turf/closed/wall, -/area/security/checkpoint/supply) -"bwf" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay Entrance"; - dir = 4; - network = list("SS13") - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bwg" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/hallway/primary/central) -"bwh" = ( -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwi" = ( -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/closet/secure_closet/hop, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/crew_quarters/heads) -"bwj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bwk" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/stack/packageWrap{ - pixel_x = -1; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bwl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bwm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/engine/gravity_generator) -"bwn" = ( -/obj/structure/closet/radiation, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bwo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/engine/gravity_generator) -"bwp" = ( -/obj/structure/closet/radiation, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bwq" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plating, -/area/teleporter) -"bwr" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plating, -/area/teleporter) -"bws" = ( -/obj/structure/rack, -/obj/item/weapon/tank/internals/oxygen, -/obj/item/clothing/mask/gas, -/turf/open/floor/plating, -/area/teleporter) -"bwt" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plating, -/area/teleporter) -"bwu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwv" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "Medbay" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/medbay) -"bww" = ( -/obj/structure/chair, -/obj/machinery/camera{ - c_tag = "Surgery Observation" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bwx" = ( -/obj/machinery/door/window/eastleft{ - name = "Medical Delivery"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/medbay) -"bwy" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bwz" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bwA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bwB" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bwC" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bwD" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bwF" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 7; - pixel_y = 1 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 7; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwG" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/wall, -/area/medical/sleeper) -"bwH" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwI" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwJ" = ( -/obj/structure/table/glass, -/obj/machinery/camera{ - c_tag = "Medbay Cryogenics"; - dir = 2; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwK" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bwL" = ( -/obj/machinery/camera{ - c_tag = "Genetics Cloning"; - dir = 4; - network = list("SS13") - }, -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/item/weapon/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/bodybags, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bwM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"bwN" = ( -/obj/machinery/light_switch{ - pixel_x = 8; - pixel_y = 28 - }, -/obj/machinery/button/door{ - id = "Biohazard"; - name = "Biohazard Shutter Control"; - pixel_x = -5; - pixel_y = 28; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"bwO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bwQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/hor) -"bwR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bwS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bwT" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Quartermaster"; - req_access_txt = "41" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bwU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 4 - }, -/area/quartermaster/qm) -"bwV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - sortType = 3 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwY" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bwZ" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bxa" = ( -/obj/structure/chair, -/obj/structure/sign/nosmoking_2{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bxb" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bxc" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bxd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bxe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bxf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bxg" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bxi" = ( -/obj/machinery/computer/aifixer, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Research Director's Desk"; - departmentType = 5; - name = "Research Director RC"; - pixel_x = -2; - pixel_y = 30; - receive_ore_updates = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bxj" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; - name = "Research Monitor"; - network = list("RD","MiniSat"); - pixel_x = 0; - pixel_y = 2 - }, -/obj/structure/table, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bxk" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/storage/primary) -"bxl" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/aicore{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bxm" = ( -/obj/effect/landmark/xmastree/rdrod, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bxn" = ( -/turf/closed/wall, -/area/toxins/explab) -"bxo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/explab) -"bxp" = ( -/obj/machinery/computer/rdconsole/experiment, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/toxins/explab) -"bxq" = ( -/obj/structure/table, -/obj/item/weapon/clipboard, -/obj/item/weapon/book/manual/experimentor, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/toxins/explab) -"bxr" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/toxins/explab) -"bxs" = ( -/obj/machinery/button/door{ - id = "telelab"; - name = "Test Chamber Blast Doors"; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "47" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"bxt" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bxu" = ( -/turf/closed/wall, -/area/quartermaster/qm) -"bxv" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/depsec/science, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bxw" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Quartermaster"; - req_access_txt = "41" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bxx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/quartermaster/qm) -"bxy" = ( -/turf/closed/wall, -/area/quartermaster/miningdock) -"bxz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bxA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bxB" = ( -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/supply) -"bxC" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/supply) -"bxD" = ( -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/supply) -"bxE" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/supply) -"bxF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bxG" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access = null; - req_access_txt = "57" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/heads) -"bxH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"bxI" = ( -/obj/machinery/ai_status_display, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"bxJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"bxK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/engine/gravity_generator) -"bxL" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway South-East"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bxM" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint2) -"bxN" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bxO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bxP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bxQ" = ( -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxR" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxS" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxW" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Research Director"; - req_access_txt = "30" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bxX" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bxY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bxZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bya" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"byb" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"byc" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/stockexchange, -/turf/open/floor/plasteel/brown{ - dir = 2 - }, -/area/quartermaster/qm) -"byd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/brown{ - dir = 2 - }, -/area/quartermaster/qm) -"bye" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"byf" = ( -/turf/closed/wall/r_wall, -/area/toxins/server) -"byg" = ( -/obj/structure/table, -/obj/item/weapon/clipboard, -/obj/item/weapon/stamp/qm{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 2 - }, -/area/quartermaster/qm) -"byh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Server Room"; - req_access = null; - req_access_txt = "30" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"byi" = ( -/turf/closed/wall, -/area/security/checkpoint/science) -"byj" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/science) -"byk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"byl" = ( -/obj/structure/table, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/weapon/pen/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 2 - }, -/area/quartermaster/qm) -"bym" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/qm) -"byn" = ( -/obj/structure/filingcabinet, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 6 - }, -/area/quartermaster/qm) -"byo" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "Biohazard"; - name = "Biohazard Shutter Control"; - pixel_x = -5; - pixel_y = 5; - req_access_txt = "47" - }, -/obj/machinery/button/door{ - id = "rnd2"; - name = "Research Lab Shutter Control"; - pixel_x = 5; - pixel_y = 5; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"byp" = ( -/obj/machinery/computer/robotics, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"byq" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/landmark/start/research_director, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"byr" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bys" = ( -/obj/structure/rack, -/obj/item/device/aicard, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"byt" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/hor) -"byu" = ( -/obj/structure/displaycase/labcage, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"byv" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "telelab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/engine, -/area/toxins/explab) -"byw" = ( -/obj/machinery/door/poddoor/preopen{ - id = "telelab"; - name = "test chamber blast door" - }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/engine, -/area/toxins/explab) -"byx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"byy" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byz" = ( -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"byA" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Quartermaster APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"byB" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"byC" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"byD" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/brown{ - dir = 5 - }, -/area/quartermaster/qm) -"byE" = ( -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byF" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Dock APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byH" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/structure/closet, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/supply) -"byI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/supply) -"byJ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"byK" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byL" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/depsec/supply, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byM" = ( -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/computer/security/mining{ - network = list("MINE","AuxBase") - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/supply) -"byN" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byO" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = -30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/supply) -"byP" = ( -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"byQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"byR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/hallway/primary/central) -"byS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/supply) -"byU" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byW" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byX" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byY" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/medical/sleeper) -"byZ" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/sleeper) -"bza" = ( -/obj/structure/chair, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bzb" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/sleeper) -"bzc" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Recovery Room"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzd" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/weapon/pen, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 0; - pixel_y = 30; - pixel_z = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bze" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bzh" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzj" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzk" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bzl" = ( -/obj/machinery/dna_scannernew, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 - }, -/area/medical/genetics) -"bzm" = ( -/obj/machinery/clonepod, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/genetics) -"bzn" = ( -/obj/machinery/computer/cloning, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/medical/genetics) -"bzo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzp" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzq" = ( -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzr" = ( -/obj/structure/closet/wardrobe/genetics_white, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzs" = ( -/turf/closed/wall, -/area/maintenance/asmaint) -"bzt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 140; - on = 1; - pressure_checks = 0 - }, -/turf/open/floor/circuit{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bzu" = ( -/obj/machinery/r_n_d/server/robotics, -/turf/open/floor/circuit{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bzv" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bzw" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/server) -"bzx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bzy" = ( -/obj/machinery/camera{ - c_tag = "Server Room"; - dir = 2; - network = list("SS13","RD"); - pixel_x = 22 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Server Room APC"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bzz" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/structure/closet, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/science) -"bzA" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bzB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bzC" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/science) -"bzD" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons from the safety of your own office."; - name = "Research Monitor"; - network = list("RD"); - pixel_x = 0; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"bzE" = ( -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bzF" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bzG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/central) -"bzH" = ( -/obj/structure/table, -/obj/item/weapon/hemostat, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/medical/sleeper) -"bzI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/weapon/surgicaldrill, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzJ" = ( -/obj/machinery/computer/mecha, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bzK" = ( -/obj/structure/table, -/obj/item/weapon/scalpel{ - pixel_y = 12 - }, -/obj/item/weapon/circular_saw, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bzM" = ( -/obj/structure/rack, -/obj/item/device/taperecorder{ - pixel_x = -3 - }, -/obj/item/device/paicard{ - pixel_x = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bzN" = ( -/obj/machinery/modular_computer/console/preset/research, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"bzO" = ( -/turf/open/floor/engine, -/area/toxins/explab) -"bzP" = ( -/obj/machinery/computer/cargo, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/quartermaster/qm) -"bzQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzS" = ( -/obj/structure/table, -/obj/item/weapon/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzT" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/quartermaster, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 2 - }, -/area/medical/sleeper) -"bzV" = ( -/obj/structure/closet/wardrobe/white/medical, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzW" = ( -/obj/structure/closet/l3closet, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzX" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay) -"bzY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bzZ" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bAa" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bAb" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAd" = ( -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/device/radio/off, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/supply) -"bAe" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AIW"; - location = "QM" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAf" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAg" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AftH"; - location = "AIW" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAh" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CHE"; - location = "AIE" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAj" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=HOP"; - location = "CHE" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAl" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/black, -/area/medical/sleeper) -"bAm" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Maintenance"; - req_access_txt = "48" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"bAo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Cargo Security APC"; - pixel_x = 1; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"bAp" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAq" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay Treatment Center"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAr" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAs" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1; - name = "Connector Port (Air Supply)" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAt" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/wrench/medical, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAu" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAv" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1; - name = "Connector Port (Air Supply)" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAw" = ( -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bAx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bAy" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/black{ - name = "Server Walkway"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bAz" = ( -/obj/machinery/airalarm/server{ - dir = 4; - pixel_x = -22; - pixel_y = 0 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/black{ - name = "Server Walkway"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bAA" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bAB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_command{ - name = "Server Room"; - req_access_txt = "30" - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bAC" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bAD" = ( -/obj/structure/chair/office/light, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bAE" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Science"; - dir = 4; - network = list("SS13","RD") - }, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/science) -"bAF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAG" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAH" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/science) -"bAI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bAJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bAK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bAL" = ( -/obj/structure/table, -/obj/item/device/plant_analyzer, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/storage/tech) -"bAM" = ( -/obj/structure/table, -/obj/item/device/analyzer, -/obj/item/device/healthanalyzer, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bAN" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bAO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bAP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bAQ" = ( -/obj/effect/landmark/blobstart, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine, -/area/toxins/explab) -"bAR" = ( -/obj/machinery/r_n_d/experimentor, -/turf/open/floor/engine, -/area/toxins/explab) -"bAS" = ( -/obj/machinery/computer/security/mining{ - network = list("MINE","AuxBase") - }, -/obj/machinery/camera{ - c_tag = "Quartermaster's Office"; - dir = 4 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/machinery/status_display{ - density = 0; - pixel_x = -32; - pixel_y = 0; - supply_display = 1 - }, -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/quartermaster/qm) -"bAT" = ( -/obj/structure/closet/jcloset, -/turf/open/floor/plasteel, -/area/janitor) -"bAU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bAV" = ( -/obj/machinery/door/window/westleft{ - name = "Janitoral Delivery"; - req_access_txt = "26" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/janitor) -"bAW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/sleeper) -"bAY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBb" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bBc" = ( -/obj/structure/table, -/obj/item/weapon/surgical_drapes, -/obj/item/weapon/razor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"bBd" = ( -/obj/structure/table, -/obj/structure/bedsheetbin{ - pixel_x = 2 - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/sleeper) -"bBe" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/sleeper) -"bBf" = ( -/obj/structure/filingcabinet, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/newscaster{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Security Post - Cargo"; - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/supply) -"bBg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bBi" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBj" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBk" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/camera{ - c_tag = "Central Primary Hallway South-West"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay) -"bBn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBq" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = -32; - pixel_y = -40 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = -32; - pixel_y = -24 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Central Primary Hallway South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBv" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - sortType = 22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBy" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBD" = ( -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bBE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bBF" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/obj/item/weapon/storage/firstaid/toxin, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bBG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bBI" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/closet/wardrobe/miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBJ" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBK" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBL" = ( -/obj/machinery/vending/medical{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bBN" = ( -/turf/closed/wall, -/area/medical/cmo) -"bBO" = ( -/obj/machinery/computer/med_data, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bBP" = ( -/obj/machinery/computer/crew, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bBQ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bBR" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bBS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/circuit{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bBT" = ( -/obj/machinery/r_n_d/server/core, -/turf/open/floor/circuit{ - name = "Server Base"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/server) -"bBU" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bBV" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/server) -"bBW" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bBX" = ( -/obj/machinery/computer/rdservercontrol, -/turf/open/floor/plasteel/black, -/area/toxins/server) -"bBY" = ( -/obj/item/device/radio/intercom{ - pixel_x = -25 - }, -/obj/structure/filingcabinet, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/science) -"bBZ" = ( -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/obj/item/device/radio/off, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"bCa" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Science Security APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"bCb" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/science) -"bCc" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = -30 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"bCd" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j1s"; - sortType = 15 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCe" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCf" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "RD Office APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/item/weapon/twohanded/required/kirbyplants/dead, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCg" = ( -/obj/structure/table, -/obj/item/weapon/cartridge/signal/toxins, -/obj/item/weapon/cartridge/signal/toxins{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/weapon/cartridge/signal/toxins{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/machinery/camera{ - c_tag = "Research Director's Office"; - dir = 1; - network = list("SS13","RD") - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCh" = ( -/obj/machinery/keycard_auth{ - pixel_x = 0; - pixel_y = -24 - }, -/obj/machinery/light, -/obj/machinery/computer/card/minor/rd, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCi" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCj" = ( -/obj/structure/closet/secure_closet/RD, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCk" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/hor) -"bCl" = ( -/obj/machinery/camera{ - c_tag = "Experimentor Lab Chamber"; - dir = 1; - network = list("SS13","RD") - }, -/obj/machinery/light, -/obj/structure/sign/nosmoking_2{ - pixel_y = -32 - }, -/turf/open/floor/engine, -/area/toxins/explab) -"bCm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bCn" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCo" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bCp" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bCq" = ( -/turf/closed/wall, -/area/maintenance/aft) -"bCr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCs" = ( -/turf/closed/wall, -/area/storage/tech) -"bCt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bCu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bCv" = ( -/turf/closed/wall, -/area/janitor) -"bCw" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bCx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/gateway) -"bCy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/janitor) -"bCz" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bCA" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/black, -/area/hallway/primary/central) -"bCB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Surgery Maintenance"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/sleeper) -"bCC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bCD" = ( -/obj/structure/table, -/obj/item/weapon/retractor, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/medical/sleeper) -"bCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCF" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCG" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/gun/syringe, -/obj/item/weapon/reagent_containers/dropper, -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCI" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/library) -"bCJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCL" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/machinery/camera{ - c_tag = "Medbay Storage"; - dir = 2; - network = list("SS13") - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCM" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCN" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCO" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/rxglasses, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/sleeper) -"bCQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/sleeper) -"bCR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bCS" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/sleeper) -"bCT" = ( -/obj/structure/table, -/obj/item/weapon/storage/belt/medical{ - pixel_x = 0; - pixel_y = 2 - }, -/obj/item/weapon/storage/belt/medical{ - pixel_x = 0; - pixel_y = 2 - }, -/obj/item/weapon/storage/belt/medical{ - pixel_x = 0; - pixel_y = 2 - }, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCU" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Medbay South"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bCV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bCW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bCX" = ( -/obj/effect/decal/cleanable/oil, -/obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bCY" = ( -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bCZ" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/chief_medical_officer, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bDa" = ( -/obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bDb" = ( -/turf/closed/wall/r_wall, -/area/toxins/xenobiology) -"bDc" = ( -/turf/closed/wall, -/area/toxins/storage) -"bDd" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bDe" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bDf" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bDg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bDh" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bDi" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 32 - }, -/turf/open/space, -/area/space) -"bDj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bDk" = ( -/obj/structure/table, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen, -/obj/machinery/requests_console{ - department = "Mining"; - departmentType = 0; - pixel_x = -30; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bDl" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bDm" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bDn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bDo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bDp" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bDq" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/item/key/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"bDr" = ( -/obj/item/weapon/restraints/legcuffs/beartrap, -/obj/item/weapon/restraints/legcuffs/beartrap, -/obj/item/weapon/storage/box/mousetraps, -/obj/item/weapon/storage/box/mousetraps, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/janitor) -"bDs" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/janitor) -"bDt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/aft) -"bDu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bDv" = ( -/obj/structure/table, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/machinery/ai_status_display{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDw" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver{ - pixel_y = 16 - }, -/obj/item/weapon/wirecutters, -/turf/open/floor/plating, -/area/storage/tech) -"bDx" = ( -/obj/structure/table, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/electronics/airlock, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDy" = ( -/obj/machinery/camera{ - c_tag = "Tech Storage"; - dir = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Tech Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDz" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDA" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 4; - name = "Treatment Center APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/sleeper) -"bDB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/sleeper) -"bDC" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDD" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -28 - }, -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/sleeper) -"bDE" = ( -/obj/machinery/vending/wallmed{ - pixel_x = 28; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Medbay Recovery Room"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDF" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "medpriv4"; - name = "privacy door" - }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"bDG" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bDH" = ( -/obj/structure/closet/l3closet/janitor, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bDI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bDJ" = ( -/obj/item/weapon/storage/box/lights/mixed, -/obj/item/weapon/storage/box/lights/mixed, -/turf/open/floor/plasteel, -/area/janitor) -"bDK" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Custodial Closet" - }, -/obj/vehicle/janicart, -/turf/open/floor/plasteel, -/area/janitor) -"bDL" = ( -/turf/open/floor/plasteel, -/area/janitor) -"bDM" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/janitor) -"bDN" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bDO" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bDP" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 1; - freq = 1400; - location = "Janitor" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/janitor) -"bDQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bDR" = ( -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bDT" = ( -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDU" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Chief Medical Officer"; - req_access_txt = "40" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bDV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sortjunction{ - sortType = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bDW" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Medbay Storage"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bDZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEa" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bEc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bEd" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Medbay Storage"; - req_access_txt = "45" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bEf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bEg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/research{ - name = "Toxins Storage"; - req_access_txt = "8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bEh" = ( -/obj/structure/table/glass, -/obj/item/weapon/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bEi" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/cmo) -"bEj" = ( -/obj/structure/table/glass, -/obj/item/weapon/pen, -/obj/item/clothing/neck/stethoscope, -/mob/living/simple_animal/pet/cat/Runtime, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bEk" = ( -/obj/structure/table/glass, -/obj/item/weapon/folder/white, -/obj/item/weapon/stamp/cmo, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bEl" = ( -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - pixel_x = 25 - }, -/obj/machinery/camera{ - c_tag = "Chief Medical Office"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = -22 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bEm" = ( -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bEn" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - dir = 2; - network = list("Xeno","RD"); - pixel_x = 0 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bEo" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/toxins/storage) -"bEp" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/structure/sign/nosmoking_2{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/toxins/storage) -"bEq" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Misc Research APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bEr" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bEs" = ( -/turf/closed/wall, -/area/toxins/mixing) -"bEt" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bEu" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEv" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = 28 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEw" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEx" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Toxins Lab West"; - dir = 2; - network = list("SS13","RD"); - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEy" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bEA" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEC" = ( -/turf/closed/wall/r_wall, -/area/toxins/mixing) -"bED" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEE" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bEF" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bEG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bEH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/toxins/mixing) -"bEI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bEJ" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"bEK" = ( -/obj/machinery/computer/security/mining{ - network = list("MINE","AuxBase") - }, -/obj/machinery/camera{ - c_tag = "Mining Dock"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bEL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bEM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/toxins/mixing) -"bEN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bEO" = ( -/obj/structure/sign/securearea{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bEP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bEQ" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bER" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bES" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/aft) -"bET" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bEU" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bEV" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bEW" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bEX" = ( -/obj/structure/table, -/obj/item/device/aicard, -/obj/item/weapon/aiModule/reset, -/turf/open/floor/plating, -/area/storage/tech) -"bEY" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bEZ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/storage/tech) -"bFa" = ( -/turf/open/floor/plating, -/area/storage/tech) -"bFb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bFe" = ( -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage"; - req_access_txt = "23" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFf" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"bFg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/janitor) -"bFh" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bFi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/janitor) -"bFj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bFk" = ( -/obj/item/weapon/mop, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/janitor) -"bFl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Custodial Closet APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/janitor) -"bFm" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - sortType = 6 - }, -/obj/structure/grille, -/obj/structure/window/fulltile{ - obj_integrity = 25 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFn" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFo" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFp" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bFr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFs" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Custodial Maintenance"; - req_access_txt = "26" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/janitor) -"bFt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bFv" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/sleeper) -"bFx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bFy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFz" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/sleeper) -"bFA" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFB" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bFC" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bFD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bFE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bFF" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFG" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bFH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light_switch{ - pixel_x = 28; - pixel_y = 0 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bFI" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bFJ" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFK" = ( -/obj/structure/closet/wardrobe/pjs, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFL" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bFM" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bFN" = ( -/obj/structure/table, -/obj/item/weapon/cartridge/medical{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/weapon/cartridge/medical{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/weapon/cartridge/medical, -/obj/item/weapon/cartridge/chemistry{ - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bFO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/cmo) -"bFP" = ( -/obj/machinery/computer/card/minor/cmo, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bFQ" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bFR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bFS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bFT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bFU" = ( -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bFV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bFW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bFX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bFY" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "0"; - req_one_access_txt = "8;12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bFZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/toxins/mixing) -"bGa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"bGb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/toxins/mixing) -"bGc" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/mixing) -"bGd" = ( -/obj/machinery/doppler_array{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/mixing) -"bGe" = ( -/turf/closed/wall, -/area/toxins/test_area) -"bGf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bGg" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"bGh" = ( -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"bGi" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"bGj" = ( -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel/brown{ - dir = 9 - }, -/area/quartermaster/miningdock) -"bGk" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGl" = ( -/obj/item/device/assembly/prox_sensor{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = 0; - pixel_y = 2 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGn" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGo" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGp" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGr" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bGs" = ( -/obj/machinery/camera{ - c_tag = "Secure Tech Storage"; - dir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bGt" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/borgupload{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/weapon/circuitboard/computer/aiupload{ - pixel_x = 2; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bGu" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/storage/tech) -"bGv" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/device/multitool, -/turf/open/floor/plating, -/area/storage/tech) -"bGw" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/pandemic{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/circuitboard/computer/rdconsole, -/obj/item/weapon/circuitboard/machine/rdserver{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/circuitboard/machine/destructive_analyzer, -/obj/item/weapon/circuitboard/machine/protolathe, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/weapon/circuitboard/computer/aifixer, -/obj/item/weapon/circuitboard/computer/teleporter, -/obj/item/weapon/circuitboard/machine/circuit_imprinter, -/obj/item/weapon/circuitboard/machine/mechfab, -/turf/open/floor/plating, -/area/storage/tech) -"bGx" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/machine/telecomms/processor, -/obj/item/weapon/circuitboard/machine/telecomms/receiver, -/obj/item/weapon/circuitboard/machine/telecomms/server, -/obj/item/weapon/circuitboard/machine/telecomms/bus, -/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, -/obj/item/weapon/circuitboard/computer/message_monitor{ - pixel_y = -5 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bGy" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/mining, -/obj/item/weapon/circuitboard/machine/autolathe{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/circuitboard/computer/arcade/battle, -/turf/open/floor/plating, -/area/storage/tech) -"bGz" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/wrench, -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGA" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGB" = ( -/obj/structure/table, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/item/weapon/grenade/chem_grenade/cleaner, -/obj/machinery/requests_console{ - department = "Janitorial"; - departmentType = 1; - pixel_y = -29 - }, -/obj/item/weapon/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel, -/area/janitor) -"bGC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room Access"; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGD" = ( -/obj/structure/janitorialcart, -/turf/open/floor/plasteel, -/area/janitor) -"bGE" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/janitor) -"bGF" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bGG" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bGH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bGL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bGM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bGO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bGP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGQ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGR" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/weapon/gun/syringe, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bGS" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/item/weapon/reagent_containers/glass/beaker/synthflesh, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bGT" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/vending/wallmed{ - pixel_y = 28 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bGU" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/button/door{ - id = "medpriv4"; - name = "Privacy Shutters"; - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bGV" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bGW" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bGX" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bGY" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bGZ" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bHa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/cmo) -"bHb" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bHc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bHd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHe" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Toxins Storage APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/camera{ - c_tag = "Toxins Storage"; - dir = 4; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bHf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bHg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bHh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bHl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bHm" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Lab"; - req_access_txt = "7" - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bHn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/asmaint) -"bHo" = ( -/obj/structure/closet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHp" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/toxins/mixing) -"bHs" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bHt" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bHu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bHv" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("Toxins"); - pixel_x = 30; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bHw" = ( -/obj/item/target, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/toxins/test_area) -"bHx" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"bHy" = ( -/obj/structure/closet/crate, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bHz" = ( -/obj/item/weapon/ore/iron, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bHA" = ( -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/quartermaster/miningdock) -"bHC" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHE" = ( -/turf/open/floor/plating, -/area/maintenance/aft) -"bHF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bHG" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/crew{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/weapon/circuitboard/computer/card{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/weapon/circuitboard/computer/communications{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bHH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHI" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage"; - req_access_txt = "19;23" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/storage/tech) -"bHK" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bHL" = ( -/obj/machinery/camera{ - c_tag = "Research Division South"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/medical/research{ - name = "Research Division" - }) -"bHM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bHN" = ( -/obj/machinery/requests_console{ - department = "Tech storage"; - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHO" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/device/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/storage/tech) -"bHP" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bHQ" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plating, -/area/storage/tech) -"bHR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Aft Primary Hallway 2"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bHS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHT" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "medpriv1"; - name = "privacy door" - }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"bHU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHV" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Medbay Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/structure/window/fulltile{ - obj_integrity = 35 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHX" = ( -/obj/structure/grille, -/obj/structure/window/fulltile{ - obj_integrity = 25 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bHZ" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bIa" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bIb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bIc" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/sleeper) -"bId" = ( -/obj/machinery/vending/wallmed{ - pixel_y = -28 - }, -/obj/machinery/camera{ - c_tag = "Surgery Operating"; - dir = 1; - network = list("SS13"); - pixel_x = 22 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIe" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bIf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = -24; - pixel_y = 0; - req_access_txt = "39" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - icon_state = "door_locked"; - id_tag = "virology_airlock_exterior"; - locked = 1; - name = "Virology Exterior Airlock"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - sortType = 13 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIi" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/o2, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIj" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/item/weapon/reagent_containers/spray/cleaner, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIk" = ( -/obj/structure/table, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 0; - pixel_y = -30; - pixel_z = 0 - }, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIl" = ( -/obj/structure/table, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 0; - frequency = 1485; - listening = 1; - name = "Station Intercom (Medbay)"; - pixel_x = 0; - pixel_y = -30 - }, -/obj/item/weapon/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/toxin, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIm" = ( -/obj/machinery/light, -/obj/structure/table, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/storage/box/syringes, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/weapon/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/weapon/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIn" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/brute, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIo" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bIp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bIq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bIr" = ( -/obj/machinery/door/airlock/medical{ - name = "Patient Room"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bIs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Xenobiology Maintenance"; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bIt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIw" = ( -/obj/structure/closet/secure_closet/CMO, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/barber, -/area/medical/cmo) -"bIx" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/toxins/xenobiology) -"bIy" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bIz" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/storage) -"bIA" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/storage) -"bIB" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/toxins/storage) -"bIC" = ( -/turf/open/floor/plasteel/floorgrime, -/area/toxins/storage) -"bID" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/medical/research{ - name = "Research Division" - }) -"bIE" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bIF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bIG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bIH" = ( -/obj/machinery/pipedispenser/disposal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bII" = ( -/obj/item/weapon/storage/secure/safe{ - pixel_x = 5; - pixel_y = 29 - }, -/obj/machinery/camera{ - c_tag = "Virology Break Room" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIK" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bIN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/toxins/xenobiology) -"bIO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bIS" = ( -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room"; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bIT" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bIU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bIV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bIW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bIX" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'BOMB RANGE"; - name = "BOMB RANGE" - }, -/turf/closed/wall, -/area/toxins/test_area) -"bIY" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bIZ" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bJa" = ( -/obj/item/device/flashlight/lamp, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bJb" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Mining Dock Airlock"; - req_access = null; - req_access_txt = "48"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"bJc" = ( -/obj/machinery/door/airlock/titanium{ - name = "Mining Shuttle Airlock"; - req_access_txt = "0" - }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining"; - name = "mining shuttle"; - port_angle = 90; - width = 7 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining_home"; - name = "mining shuttle bay"; - width = 7 - }, -/turf/open/floor/plating, -/area/shuttle/labor) -"bJd" = ( -/obj/machinery/door/airlock/glass_mining{ - cyclelinkeddir = 8; - name = "Mining Dock"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bJe" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJf" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bJh" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/robotics{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/weapon/circuitboard/computer/mecha_control{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bJi" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/storage/tech) -"bJj" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/subspace/analyzer, -/obj/item/weapon/stock_parts/subspace/analyzer, -/obj/item/weapon/stock_parts/subspace/analyzer, -/turf/open/floor/plating, -/area/storage/tech) -"bJk" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/cloning{ - pixel_x = 0 - }, -/obj/item/weapon/circuitboard/computer/med_data{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/circuitboard/machine/clonescanner, -/obj/item/weapon/circuitboard/machine/clonepod, -/obj/item/weapon/circuitboard/computer/scan_consolenew, -/turf/open/floor/plating, -/area/storage/tech) -"bJl" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/powermonitor{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/weapon/circuitboard/computer/stationalert{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/weapon/circuitboard/computer/atmos_alert{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bJm" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/circuitboard/computer/secure_data{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/weapon/circuitboard/computer/security{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bJn" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bJo" = ( -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/research{ - name = "Research Division" - }) -"bJp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bJq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/research{ - name = "Research Division" - }) -"bJs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJu" = ( -/obj/structure/light_construct{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"bJv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJx" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/blue/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bJy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bJA" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bJB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/atmos) -"bJC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/sleeper) -"bJD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/medical/sleeper) -"bJE" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay) -"bJF" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bJG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bJH" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/shieldwallgen{ - req_access_txt = "55" - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bJI" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bJJ" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bJK" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bJL" = ( -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bJM" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bJN" = ( -/turf/closed/wall, -/area/toxins/xenobiology) -"bJO" = ( -/obj/machinery/door/airlock/research{ - name = "Testing Lab"; - req_access_txt = "47" - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bJQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/toxins/storage) -"bJS" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"bJT" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"bJU" = ( -/obj/structure/closet/wardrobe/science_white, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bJV" = ( -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bJW" = ( -/obj/item/device/transfer_valve{ - pixel_x = -5 - }, -/obj/item/device/transfer_valve{ - pixel_x = -5 - }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, -/obj/item/device/transfer_valve{ - pixel_x = 0 - }, -/obj/item/device/transfer_valve{ - pixel_x = 5 - }, -/obj/item/device/transfer_valve{ - pixel_x = 5 - }, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = 0; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bJX" = ( -/obj/item/device/assembly/signaler{ - pixel_x = 0; - pixel_y = 8 - }, -/obj/item/device/assembly/signaler{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/device/assembly/signaler{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/device/assembly/signaler{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bJY" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bJZ" = ( -/obj/item/device/assembly/timer{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/device/assembly/timer{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/device/assembly/timer{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/device/assembly/timer{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bKa" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Toxins Lab APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bKb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bKc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bKd" = ( -/obj/machinery/camera{ - c_tag = "Toxins Launch Room Access"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bKe" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/toxins/mixing) -"bKf" = ( -/obj/machinery/door/window/southleft{ - name = "Mass Driver Door"; - req_access_txt = "7" - }, -/turf/open/floor/plasteel/loadingarea, -/area/toxins/mixing) -"bKg" = ( -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bKh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bKi" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bKj" = ( -/obj/machinery/camera{ - c_tag = "Mining Dock External"; - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKk" = ( -/obj/item/weapon/ore/silver, -/obj/item/weapon/ore/silver, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKl" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/quartermaster/miningdock) -"bKm" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bKn" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/pickaxe{ - pixel_x = 5 - }, -/obj/item/weapon/shovel{ - pixel_x = -5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKo" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKp" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKq" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKr" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bKs" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/storage/tech) -"bKt" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/micro_laser, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/stock_parts/capacitor, -/obj/item/weapon/stock_parts/micro_laser/high, -/obj/item/weapon/stock_parts/micro_laser/high, -/obj/item/weapon/stock_parts/micro_laser/high, -/obj/item/weapon/stock_parts/micro_laser/high, -/turf/open/floor/plating, -/area/storage/tech) -"bKu" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/subspace/amplifier, -/obj/item/weapon/stock_parts/subspace/amplifier, -/obj/item/weapon/stock_parts/subspace/amplifier, -/turf/open/floor/plating, -/area/storage/tech) -"bKv" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint) -"bKx" = ( -/obj/structure/closet/crate, -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bKy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/asmaint) -"bKz" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/construction) -"bKB" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKC" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bKG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/sign/securearea{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKI" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j1s"; - sortType = 11 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKK" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Medbay APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/medical/medbay) -"bKL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKM" = ( -/obj/machinery/vending/wallmed{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bKN" = ( -/obj/machinery/door/airlock/medical{ - name = "Patient Room 2"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bKO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bKP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westleft{ - name = "Delivery Desk"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bKQ" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/medbay) -"bKS" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "CM Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/cmo) -"bKT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bKU" = ( -/obj/machinery/door/airlock/engineering{ - name = "Construction Area"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bKV" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bKW" = ( -/obj/item/weapon/wrench, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bKX" = ( -/obj/machinery/button/door{ - id = "misclab"; - name = "Test Chamber Blast Doors"; - pixel_x = 0; - pixel_y = -2; - req_access_txt = "55" - }, -/obj/structure/table/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bKY" = ( -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Moniter"; - network = list("Xeno"); - pixel_x = 0; - pixel_y = 2 - }, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bKZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bLa" = ( -/obj/machinery/door/window/southleft{ - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bLb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bLc" = ( -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bLd" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = 8; - pixel_y = -28; - req_access_txt = "39" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLe" = ( -/obj/structure/sign/biohazard, -/turf/closed/wall, -/area/toxins/xenobiology) -"bLf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLh" = ( -/obj/structure/sign/fire, -/turf/closed/wall, -/area/medical/research{ - name = "Research Division" - }) -"bLi" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bLj" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/toxins/mixing) -"bLk" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "toxinsdriver" - }, -/turf/open/floor/plating, -/area/toxins/mixing) -"bLl" = ( -/obj/machinery/door/poddoor{ - id = "toxinsdriver"; - name = "toxins launcher bay door" - }, -/turf/open/floor/plating, -/area/toxins/mixing) -"bLm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/mixing) -"bLn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bLo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bLp" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bLq" = ( -/turf/closed/indestructible{ - desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; - icon_state = "riveted"; - name = "hyper-reinforced wall" - }, -/area/toxins/test_area) -"bLr" = ( -/obj/machinery/camera{ - active_power_usage = 0; - c_tag = "Bomb Test Site"; - desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; - dir = 8; - invuln = 1; - light = null; - name = "Hardened Bomb-Test Camera"; - network = list("Toxins"); - use_power = 0 - }, -/obj/item/target/alien{ - anchored = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" - }, -/area/toxins/test_area) -"bLs" = ( -/obj/structure/ore_box, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"bLt" = ( -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating, -/area/shuttle/labor) -"bLu" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLv" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLx" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/subspace/transmitter, -/obj/item/weapon/stock_parts/subspace/transmitter, -/obj/item/weapon/stock_parts/subspace/treatment, -/obj/item/weapon/stock_parts/subspace/treatment, -/obj/item/weapon/stock_parts/subspace/treatment, -/turf/open/floor/plating, -/area/storage/tech) -"bLy" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/subspace/ansible, -/obj/item/weapon/stock_parts/subspace/ansible, -/obj/item/weapon/stock_parts/subspace/ansible, -/obj/item/weapon/stock_parts/subspace/crystal, -/obj/item/weapon/stock_parts/subspace/crystal, -/obj/item/weapon/stock_parts/subspace/crystal, -/turf/open/floor/plating, -/area/storage/tech) -"bLz" = ( -/obj/structure/table, -/obj/item/weapon/stock_parts/subspace/filter, -/obj/item/weapon/stock_parts/subspace/filter, -/obj/item/weapon/stock_parts/subspace/filter, -/obj/item/weapon/stock_parts/subspace/filter, -/obj/item/weapon/stock_parts/subspace/filter, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/storage/tech) -"bLA" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, -/turf/open/floor/plating, -/area/storage/tech) -"bLB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bLD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/storage/tech) -"bLE" = ( -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bLF" = ( -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bLG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bLH" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/caution{ - dir = 5 - }, -/area/hallway/primary/aft) -"bLI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bLJ" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/atmos) -"bLK" = ( -/turf/closed/wall/r_wall, -/area/atmos) -"bLL" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/atmos) -"bLM" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/atmos) -"bLN" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/atmos) -"bLO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/atmos) -"bLP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/atmos) -"bLQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/atmos) -"bLR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/closed/wall/r_wall, -/area/atmos) -"bLS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bLT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bLU" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bLV" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/button/door{ - id = "medpriv1"; - name = "Privacy Shutters"; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bLW" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bLX" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay) -"bLY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bMa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bMc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay) -"bMd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bMe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bMf" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stack/cable_coil, -/obj/item/device/multitool, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bMg" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Xenobiology APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMh" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMi" = ( -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/aft) -"bMk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMl" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMm" = ( -/obj/machinery/monkey_recycler, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMn" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMo" = ( -/obj/machinery/smartfridge/extract, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMp" = ( -/obj/structure/closet/l3closet/scientist, -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = 28 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMq" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bMr" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"bMs" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/research{ - name = "Research Division" - }) -"bMt" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"bMu" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"bMv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/toxins/mixing) -"bMw" = ( -/obj/machinery/sparker{ - dir = 2; - id = "mixingsparker"; - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"bMx" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/engine, -/area/toxins/mixing) -"bMy" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "mix to port" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bMz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - pixel_y = 0; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bMA" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bMB" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bMC" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bMD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bME" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bMF" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating/airless, -/area/shuttle/labor) -"bMG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bMH" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMK" = ( -/turf/closed/wall, -/area/atmos) -"bML" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plasteel, -/area/atmos) -"bMM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bMP" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bMQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bMR" = ( -/obj/machinery/pipedispenser, -/turf/open/floor/plasteel, -/area/atmos) -"bMS" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics North East" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 2 - }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMX" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Distro"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bMY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/atmos) -"bMZ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNa" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/space, -/area/space) -"bNb" = ( -/obj/item/weapon/airlock_painter, -/obj/structure/lattice, -/obj/structure/closet, -/turf/open/space, -/area/space/nearstation) -"bNc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bNd" = ( -/turf/closed/wall/r_wall, -/area/medical/virology) -"bNe" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bNf" = ( -/obj/structure/sign/biohazard, -/turf/closed/wall, -/area/medical/virology) -"bNg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bNh" = ( -/obj/machinery/computer/pandemic, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bNi" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNj" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_virology{ - name = "Isolation A"; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNk" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/virology) -"bNl" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_virology{ - name = "Isolation B"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNm" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bNn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bNo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bNp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bNq" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bNr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Xenobiology Lab"; - req_access_txt = "55" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bNs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNt" = ( -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"bNu" = ( -/obj/machinery/door/airlock/glass_research{ - autoclose = 0; - frequency = 1449; - glass = 1; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "tox_airlock_exterior"; - locked = 1; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, -/turf/open/floor/engine, -/area/toxins/mixing) -"bNv" = ( -/obj/machinery/door/airlock/glass_research{ - autoclose = 0; - frequency = 1449; - glass = 1; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "tox_airlock_interior"; - locked = 1; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, -/turf/open/floor/engine, -/area/toxins/mixing) -"bNw" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "tox_airlock_pump" - }, -/turf/open/floor/engine, -/area/toxins/mixing) -"bNx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bNy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bNz" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Toxins Lab East"; - dir = 8; - network = list("SS13","RD"); - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bNA" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bNB" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bNC" = ( -/obj/structure/closet/wardrobe/grey, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bND" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bNE" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bNF" = ( -/obj/item/device/flashlight/lamp, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/toxins/test_area) -"bNG" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/test_area) -"bNH" = ( -/obj/structure/table/reinforced, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -26 - }, -/obj/item/weapon/paper_bin{ - pixel_x = -3 - }, -/obj/item/weapon/pen{ - pixel_x = -3 - }, -/obj/item/weapon/folder/yellow{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bNI" = ( -/turf/closed/wall, -/area/construction) -"bNJ" = ( -/turf/open/floor/plating, -/area/construction) -"bNK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Office"; - req_access_txt = "50" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bNL" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plating, -/area/construction) -"bNM" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/quartermaster/office) -"bNN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bNO" = ( -/turf/open/floor/plasteel/caution{ - dir = 6 - }, -/area/hallway/primary/aft) -"bNP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Monitoring"; - dir = 2; - network = list("SS13") - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/caution{ - dir = 5 - }, -/area/atmos) -"bNS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNT" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics North West"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNU" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/medical/virology) -"bNV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bNW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bNY" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bNZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOc" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Distro"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOd" = ( -/turf/open/floor/plasteel, -/area/atmos) -"bOe" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8; - initialize_directions = 11 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bOf" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10; - initialize_directions = 10 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bOg" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Incinerator"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOh" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/atmos) -"bOi" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/space/nearstation) -"bOj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bOk" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOl" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/announcement_system, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOm" = ( -/obj/item/weapon/bedsheet, -/obj/structure/bed, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOo" = ( -/obj/item/device/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Telecoms)"; - pixel_x = 0; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOp" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Virology Airlock"; - dir = 2; - network = list("SS13") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOr" = ( -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOs" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOt" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOu" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOw" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/droneDispenser, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bOy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bOz" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bOA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/research{ - name = "Research Division" - }) -"bOB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bOC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOD" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOE" = ( -/obj/machinery/sparker{ - dir = 2; - id = "mixingsparker"; - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"bOF" = ( -/obj/structure/sign/fire{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/engine, -/area/toxins/mixing) -"bOG" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "port to mix" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bOH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; - pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" - }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; - pixel_x = -25; - pixel_y = -5 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/mixing) -"bOI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"bOJ" = ( -/obj/item/target, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/toxins/test_area) -"bOK" = ( -/obj/structure/barricade/wooden, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/aft) -"bOL" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bOM" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bON" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kanyewest"; - layer = 2.9; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/security/detectives_office) -"bOO" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Engineering Security APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/engineering) -"bOP" = ( -/obj/structure/table/glass, -/obj/structure/reagent_dispensers/virusfood{ - density = 0; - pixel_x = -30 - }, -/obj/item/weapon/book/manual/wiki/infections{ - pixel_y = 7 - }, -/obj/item/weapon/reagent_containers/syringe/antiviral, -/obj/item/weapon/reagent_containers/dropper, -/obj/item/weapon/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bOQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 8 - }, -/area/hallway/primary/aft) -"bOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOS" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/atmos) -"bOT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "Atmospherics" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/atmos) -"bOU" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bOW" = ( -/obj/machinery/computer/atmos_control, -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/atmos) -"bOX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bOY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/atmos) -"bOZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bPa" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bPb" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Firing Range"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bPc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bPd" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Waste In"; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bPe" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel, -/area/atmos) -"bPf" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Air to Mix"; - on = 0 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bPg" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix Outlet Pump"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bPh" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bPi" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/atmos) -"bPj" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/grille, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/atmos) -"bPk" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Waste Tank" - }, -/turf/open/floor/engine/vacuum, -/area/atmos) -"bPl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "mix_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/vacuum, -/area/atmos) -"bPm" = ( -/turf/open/floor/engine/vacuum, -/area/atmos) -"bPn" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bPo" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPp" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPq" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPr" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/closet/l3closet, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bPt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bPw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bPx" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/deathsposal{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPy" = ( -/obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPz" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/weapon/storage/box/monkeycubes, -/obj/item/weapon/storage/box/monkeycubes, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPA" = ( -/obj/machinery/computer/camera_advanced/xenobio, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPB" = ( -/obj/structure/table/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPE" = ( -/obj/structure/table, -/obj/item/weapon/extinguisher{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bPG" = ( -/obj/structure/table, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/item/stack/sheet/mineral/plasma{ - layer = 2.9 - }, -/obj/machinery/light, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPH" = ( -/obj/structure/table, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = 0; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPI" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPJ" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/storage/box/syringes, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bPK" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bPL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bPM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bPN" = ( -/turf/closed/wall, -/area/toxins/misc_lab) -"bPO" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bPP" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bPQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bPR" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/turf/open/floor/wood, -/area/maintenance/aft) -"bPS" = ( -/turf/open/floor/wood, -/area/maintenance/aft) -"bPT" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/aft) -"bPU" = ( -/obj/item/weapon/shard, -/turf/open/floor/plating, -/area/maintenance/aft) -"bPW" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/aft) -"bPX" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) -"bPZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bQa" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bQb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plating, -/area/construction) -"bQd" = ( -/obj/structure/table, -/obj/item/weapon/folder/blue, -/obj/item/weapon/pen/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQe" = ( -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -6; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/item/device/radio/off, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light_switch{ - pixel_x = -27; - pixel_y = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/engineering) -"bQf" = ( -/turf/open/floor/plasteel/caution{ - dir = 5 - }, -/area/hallway/primary/aft) -"bQg" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQh" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bQi" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - layer = 2.9; - name = "atmos blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bQj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQl" = ( -/obj/machinery/computer/atmos_control, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/atmos) -"bQm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQn" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bQo" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQq" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Engineering"; - dir = 8; - network = list("SS13") - }, -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/engineering) -"bQr" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/atmos) -"bQs" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Filter"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQu" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQw" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQx" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bQy" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bQz" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_out"; - sensors = list("mix_sensor" = "Tank") - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/atmos) -"bQA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/atmos) -"bQB" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, -/turf/open/floor/engine/vacuum, -/area/atmos) -"bQC" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/atmos) -"bQD" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQE" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQF" = ( -/obj/structure/closet/wardrobe/virology_white, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQG" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bQH" = ( -/obj/structure/closet/l3closet, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQI" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bQJ" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQK" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Control Room"; - req_access_txt = "19; 61" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQL" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bQM" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bQN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology North"; - dir = 8; - network = list("SS13","RD") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bQO" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light_switch{ - pixel_x = -20; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bQP" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bQQ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQR" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/clothing/ears/earmuffs, -/obj/machinery/camera{ - c_tag = "Testing Lab North"; - dir = 2; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bQS" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - dir = 2; - name = "Science Requests Console"; - pixel_x = 0; - pixel_y = 30; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bQT" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bQU" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bQV" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - req_access = null - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bQW" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bQX" = ( -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bQY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bQZ" = ( -/turf/closed/wall/r_wall, -/area/toxins/misc_lab) -"bRa" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bRb" = ( -/obj/structure/rack, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bRg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bRh" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bRi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bRj" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bRk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/engineering) -"bRl" = ( -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction) -"bRm" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/construction) -"bRo" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("Engine"); - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/engineering) -"bRp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bRq" = ( -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/hallway/primary/aft) -"bRr" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bRs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/window/northleft{ - dir = 4; - icon_state = "left"; - name = "Atmospherics Desk"; - req_access_txt = "24" - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - layer = 2.9; - name = "atmos blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/atmos) -"bRt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bRu" = ( -/obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/atmos) -"bRv" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRw" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/atmos) -"bRx" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bRy" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRz" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_atmos{ - name = "Distribution Loop"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Mix"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRG" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Unfiltered to Mix"; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4; - initialize_directions = 12 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRH" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5; - initialize_directions = 12 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bRI" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bRJ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/atmos) -"bRK" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"bRL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/vacuum, -/area/atmos) -"bRM" = ( -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRN" = ( -/turf/closed/wall, -/area/medical/virology) -"bRO" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - icon_state = "door_locked"; - id_tag = "virology_airlock_interior"; - locked = 1; - name = "Virology Interior Airlock"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/medical/virology) -"bRR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_virology{ - name = "Monkey Pen"; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRS" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/depsec/engineering, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRT" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bRU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bRV" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bRW" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bRX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bRY" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/button/door{ - id = "xenobio8"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bRZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bSa" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bSb" = ( -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bSc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bSd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bSe" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/device/electropack, -/obj/item/device/healthanalyzer, -/obj/item/device/assembly/signaler, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bSf" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bSg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bSh" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bSi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bSj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bSk" = ( -/obj/machinery/magnetic_module, -/obj/effect/landmark/blobstart, -/obj/structure/target_stake, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"bSl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bSm" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"bSn" = ( -/obj/machinery/space_heater, -/turf/open/floor/wood, -/area/maintenance/aft) -"bSp" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/aft) -"bSq" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) -"bSr" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bSs" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/aft) -"bSt" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Telecoms Monitoring"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bSv" = ( -/obj/machinery/camera{ - c_tag = "Construction Area"; - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"bSw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bSx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"bSy" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bSz" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/construction) -"bSA" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bSB" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/table, -/obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 - }, -/obj/item/weapon/tank/internals/emergency_oxygen{ - pixel_x = -8; - pixel_y = 0 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 4; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bSC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - layer = 2.9; - name = "atmos blast door" - }, -/turf/open/floor/plating, -/area/atmos) -"bSD" = ( -/obj/structure/sign/atmosplaque{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/structure/table, -/obj/item/weapon/storage/box, -/obj/item/weapon/storage/box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bSE" = ( -/obj/machinery/computer/station_alert, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 24; - pixel_y = 4; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/caution{ - dir = 6 - }, -/area/atmos) -"bSF" = ( -/obj/structure/table, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/head/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel, -/area/atmos) -"bSG" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50; - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bSH" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/weapon/storage/belt/utility, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/obj/item/device/t_scanner, -/turf/open/floor/plasteel, -/area/atmos) -"bSI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bSJ" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSK" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSM" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSN" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSP" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"bSQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bSS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - name = "Break Room"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bST" = ( -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Console"; - pixel_x = 8; - pixel_y = 22; - req_access_txt = "39" - }, -/obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSU" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/firealarm{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSX" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 1; - name = "Virology APC"; - pixel_x = 0; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/camera{ - c_tag = "Virology Module" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSY" = ( -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSZ" = ( -/obj/effect/landmark/revenantspawn, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bTa" = ( -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bTb" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bTc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bTd" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bTe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bTf" = ( -/obj/structure/rack, -/obj/item/weapon/wrench, -/obj/item/weapon/crowbar, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Moniter"; - network = list("Test"); - pixel_x = 0; - pixel_y = -30 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bTg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bTh" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bTi" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/engineering) -"bTj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"bTk" = ( -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bTl" = ( -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bTm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bTn" = ( -/obj/structure/table, -/obj/item/device/assembly/igniter{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/device/assembly/igniter{ - pixel_x = 5; - pixel_y = -4 - }, -/obj/item/device/assembly/igniter{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/device/assembly/igniter{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/item/device/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/device/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/device/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/device/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bTo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bTp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bTq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/toxins/misc_lab) -"bTr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bTs" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/aft) -"bTt" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/aft) -"bTu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/wood, -/area/maintenance/aft) -"bTv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTz" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/aft) -"bTB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/aft) -"bTC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/aft) -"bTD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTF" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bTG" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/engineering) -"bTH" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/engineering) -"bTI" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bTJ" = ( -/obj/machinery/power/apc{ - name = "Aft Hall APC"; - dir = 8; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bTK" = ( -/obj/item/weapon/crowbar, -/obj/item/weapon/wrench, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/caution{ - dir = 6 - }, -/area/hallway/primary/aft) -"bTL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/atmos) -"bTM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/atmos) -"bTN" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/glass_atmos{ - name = "Atmospherics Monitoring"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bTO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6; - initialize_directions = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bTP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bTQ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bTR" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bTS" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bTT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bTU" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bTV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2O Outlet Pump"; - on = 0 - }, -/turf/open/floor/plasteel/escape{ - dir = 5 - }, -/area/atmos) -"bTW" = ( -/turf/open/floor/engine/n2o, -/area/atmos) -"bTX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "n2o_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/n2o, -/area/atmos) -"bTY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bTZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bUa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/medical/virology) -"bUb" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bUc" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Telecoms Admin"; - departmentType = 5; - name = "Telecoms RC"; - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bUd" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio3"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bUe" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bUf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bUg" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bUh" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bUi" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bUj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bUk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bUl" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - sortType = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bUm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bUn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bUo" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/grenade/chem_grenade, -/obj/item/weapon/grenade/chem_grenade, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bUp" = ( -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bUq" = ( -/obj/structure/target_stake, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bUr" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"bUs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUt" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUx" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-y"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bUz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Construction Area APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bUB" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Telecoms Monitoring APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bUC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bUD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/arrival{ - dir = 8 - }, -/area/atmos) -"bUF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/atmos) -"bUG" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/atmos) -"bUH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/atmos) -"bUI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/atmos) -"bUJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUK" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to External"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUN" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel, -/area/atmos) -"bUO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Mix to Port"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Air to Port"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Pure to Port"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bUR" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/atmos) -"bUS" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/atmos) -"bUT" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") - }, -/turf/open/floor/plasteel/escape{ - dir = 4 - }, -/area/atmos) -"bUU" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/engine/n2o, -/area/atmos) -"bUV" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, -/turf/open/floor/engine/n2o, -/area/atmos) -"bUW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/n2o, -/area/atmos) -"bUX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bUY" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bUZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bVa" = ( -/obj/machinery/smartfridge/chemistry/virology, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bVb" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bVc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/hallway/primary/aft) -"bVd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/hallway/primary/aft) -"bVe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVf" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"bVg" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/hallway/primary/aft) -"bVh" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"bVi" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall, -/area/toxins/xenobiology) -"bVj" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bVk" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bVl" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bVm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVn" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bVo" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/break_room) -"bVp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVq" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVs" = ( -/obj/machinery/camera{ - c_tag = "Testing Firing Range"; - dir = 8; - network = list("SS13","RD"); - pixel_y = -22 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bVt" = ( -/obj/structure/target_stake, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bVu" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/space, -/area/space/nearstation) -"bVv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"bVw" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"bVx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/maintenance/aft) -"bVy" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"bVA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVD" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/sign/deathsposal{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVE" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVG" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -28 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVI" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"bVJ" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bVK" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVL" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVN" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Access"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/atmos) -"bVO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/atmos) -"bVP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bVQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bVR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/atmos) -"bVS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/sign/securearea, -/turf/closed/wall, -/area/atmos) -"bVT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "External to Filter"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bVU" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/atmos) -"bVV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bVW" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel, -/area/atmos) -"bVX" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/atmos) -"bVY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bVZ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWa" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWb" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2o"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWc" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/escape{ - dir = 6 - }, -/area/atmos) -"bWd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/n2o, -/area/atmos) -"bWe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bWf" = ( -/obj/structure/table/glass, -/obj/item/clothing/gloves/color/latex, -/obj/machinery/requests_console{ - department = "Virology"; - name = "Virology Requests Console"; - pixel_x = -32 - }, -/obj/item/device/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bWg" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/obj/item/device/radio/headset/headset_med, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bWh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bWi" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/virology) -"bWj" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/virology) -"bWk" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWl" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bWm" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/button/door{ - id = "xenobio7"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bWn" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bWo" = ( -/obj/item/device/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bWp" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bWq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bWr" = ( -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bWs" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWt" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWu" = ( -/obj/machinery/door/airlock/engineering{ - name = "Telecommunications"; - req_access_txt = "61" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWx" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWy" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bWz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWB" = ( -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWC" = ( -/obj/machinery/telecomms/bus/preset_four, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWD" = ( -/obj/machinery/telecomms/server/presets/engineering, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWE" = ( -/obj/machinery/telecomms/processor/preset_three, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWF" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 1; - name = "Telecoms Server APC"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWG" = ( -/obj/machinery/telecomms/server/presets/security, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bWH" = ( -/obj/structure/table, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/tcommsat/computer) -"bWI" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bWJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bWK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/hallway/primary/aft) -"bWL" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bWM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/atmos) -"bWN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "atmos blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/atmos) -"bWO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/atmos) -"bWP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "atmos blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/atmos) -"bWQ" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"bWR" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics West"; - dir = 8; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWT" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Air to Port"; - on = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWU" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bWV" = ( -/obj/structure/door_assembly/door_assembly_mai, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bWW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWX" = ( -/obj/structure/table/glass, -/obj/item/device/radio/intercom{ - pixel_x = -25 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/weapon/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/storage/box/syringes, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bWY" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/weapon/pen/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bWZ" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/virologist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXb" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/medical/virology) -"bXc" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXe" = ( -/obj/effect/landmark/revenantspawn, -/mob/living/simple_animal/slime, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bXf" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bXg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bXh" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bXi" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bXj" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/button/ignition{ - id = "testigniter"; - pixel_x = -6; - pixel_y = 2 - }, -/obj/machinery/button/door{ - id = "testlab"; - name = "Test Chamber Blast Doors"; - pixel_x = 4; - pixel_y = 2; - req_access_txt = "55" - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bXk" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AIE"; - location = "AftH" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXl" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 0; - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"bXm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/hallway/primary/aft) -"bXo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Engineering"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bXs" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/item/weapon/paper/range, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bXt" = ( -/obj/structure/table/reinforced, -/obj/machinery/magnetic_controller{ - autolink = 1 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"bXu" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/tinted/fulltile, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bXv" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bXw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bXx" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bXy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bXz" = ( -/obj/machinery/telecomms/processor/preset_four, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bXA" = ( -/obj/machinery/telecomms/server/presets/common, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bXB" = ( -/obj/machinery/telecomms/bus/preset_three, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bXC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bXD" = ( -/obj/machinery/telecomms/server/presets/command, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bXE" = ( -/obj/machinery/computer/message_monitor, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/tcommsat/computer) -"bXF" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bXG" = ( -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bXH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXJ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light/small, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/atmos) -"bXK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/atmos) -"bXL" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/atmos) -"bXM" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bXN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXO" = ( -/obj/structure/filingcabinet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/engineering) -"bXP" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/structure/closet, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/engineering) -"bXQ" = ( -/obj/structure/fireaxecabinet{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bXR" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bXS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/atmos) -"bXT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/atmos) -"bXU" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bXV" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics East"; - dir = 8; - network = list("SS13") - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Plasma Outlet Pump"; - on = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bXW" = ( -/turf/open/floor/engine/plasma, -/area/atmos) -"bXX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "tox_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/plasma, -/area/atmos) -"bXY" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/plasma, -/area/atmos) -"bXZ" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bYa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYb" = ( -/obj/machinery/vending/cigarette{ - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYc" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/deathsposal{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bYd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYe" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYf" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio2"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bYg" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bYh" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bYi" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bYj" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bYk" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"bYl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bYm" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"bYn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/aft) -"bYo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bYp" = ( -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/hallway/primary/aft) -"bYq" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/aft) -"bYr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bYs" = ( -/obj/structure/closet/crate, -/obj/item/clothing/under/color/lightpurple, -/obj/item/stack/spacecash/c200, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYu" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYv" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Space"; - on = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bYw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bYx" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/aft) -"bYy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYz" = ( -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bYA" = ( -/obj/machinery/telecomms/broadcaster/preset_right, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bYB" = ( -/obj/machinery/blackbox_recorder, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bYC" = ( -/obj/machinery/telecomms/receiver/preset_right, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bYD" = ( -/obj/machinery/computer/telecomms/server{ - network = "tcommsat" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/tcommsat/computer) -"bYE" = ( -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/aft) -"bYF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bYG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/hallway/primary/aft) -"bYH" = ( -/turf/closed/wall, -/area/engine/break_room) -"bYI" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"bYJ" = ( -/turf/open/floor/plasteel/caution{ - dir = 9 - }, -/area/engine/break_room) -"bYK" = ( -/turf/open/floor/plasteel/caution{ - dir = 5 - }, -/area/engine/break_room) -"bYL" = ( -/turf/open/floor/plasteel/caution{ - dir = 1 - }, -/area/engine/break_room) -"bYM" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/aft) -"bYN" = ( -/turf/closed/wall, -/area/security/checkpoint/engineering) -"bYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYP" = ( -/obj/effect/landmark/event_spawn, -/turf/closed/wall, -/area/crew_quarters/bar) -"bYQ" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bYR" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/wall, -/area/atmos) -"bYS" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bYT" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bYU" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/engine/plasma, -/area/atmos) -"bYV" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, -/turf/open/floor/engine/plasma, -/area/atmos) -"bYW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/plasma, -/area/atmos) -"bYX" = ( -/obj/structure/closet/l3closet/virology, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 2 - }, -/area/medical/virology) -"bYY" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 2 - }, -/area/medical/virology) -"bYZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bZa" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology South"; - dir = 4; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bZb" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"bZc" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bZd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bZe" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/break_room) -"bZf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZg" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZh" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/laser/practice, -/obj/item/clothing/ears/earmuffs, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"bZi" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"bZj" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Port"; - on = 0 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZm" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"bZn" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bZo" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bZp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"bZq" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZr" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/tcommsat/computer) -"bZs" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZu" = ( -/obj/machinery/camera{ - c_tag = "Engineering Foyer"; - dir = 1 - }, -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -27 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZv" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZw" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bZy" = ( -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZz" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/light_switch{ - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZC" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/door/airlock/glass_command{ - name = "Chief Engineer"; - req_access_txt = "56" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/chiefs_office) -"bZD" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"bZE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/break_room) -"bZF" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Atmospherics APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bZG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/atmos) -"bZH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/item/weapon/wrench, -/turf/open/floor/plasteel, -/area/atmos) -"bZI" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"bZJ" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bZK" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"bZL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/plasma, -/area/atmos) -"bZM" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint) -"bZN" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZO" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bZQ" = ( -/obj/machinery/atmospherics/components/binary/valve/open{ - icon_state = "mvalve_map"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZR" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/item/weapon/wrench, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZS" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZT" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZU" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"bZV" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bZW" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio6"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"bZX" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"bZY" = ( -/obj/item/device/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"bZZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"caa" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cab" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cac" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cad" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cae" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"caf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/aft) -"cag" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/machinery/ntnet_relay, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cah" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cai" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"caj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cak" = ( -/obj/machinery/telecomms/hub/preset, -/turf/open/floor/plasteel/vault{ - dir = 8; - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cal" = ( -/obj/machinery/door/airlock/glass_engineering{ - cyclelinkeddir = 4; - name = "Server Room"; - req_access_txt = "61" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"cam" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"can" = ( -/obj/machinery/door/airlock/glass_engineering{ - cyclelinkeddir = 8; - name = "Server Room"; - req_access_txt = "61" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"cao" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"cap" = ( -/obj/machinery/light, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/break_room) -"caq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cas" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cat" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cau" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cav" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/caution/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"caw" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cax" = ( -/obj/structure/closet/wardrobe/black, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cay" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caz" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"caB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"caE" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel, -/area/atmos) -"caF" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Central"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Port to Filter"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"caG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"caH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/atmos) -"caI" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"caK" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caN" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caP" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caQ" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caR" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caT" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"caV" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"caW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"caX" = ( -/obj/machinery/sparker{ - id = "testigniter"; - pixel_x = -25 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"caY" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"caZ" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"cba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"cbb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"cbc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"cbd" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Testing Lab APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"cbe" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cbf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cbg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"cbh" = ( -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cbi" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cbj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/aft) -"cbk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Space"; - on = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/aft) -"cbl" = ( -/obj/machinery/camera{ - c_tag = "Telecoms Server Room"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cbm" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"cbn" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = 0 - }, -/turf/closed/wall, -/area/tcommsat/computer) -"cbo" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"cbp" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 4; - name = "CE Office APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cbq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cbr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cbs" = ( -/obj/structure/sign/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/engine/engineering) -"cbt" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/camera{ - c_tag = "Aft Primary Hallway 1"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = -22 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 2 - }, -/area/hallway/primary/aft) -"cbu" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Engineering Foyer APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbv" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Research Delivery access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cbw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cby" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbz" = ( -/obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor/plasteel, -/area/atmos) -"cbA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/atmos) -"cbB" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cbC" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cbD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Filter"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cbE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cbF" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/item/weapon/cigbutt, -/turf/open/floor/plasteel, -/area/atmos) -"cbG" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "CO2 Outlet Pump"; - on = 0 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/atmos) -"cbH" = ( -/turf/open/floor/engine/co2, -/area/atmos) -"cbI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "co2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/co2, -/area/atmos) -"cbJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/asmaint) -"cbL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbO" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbP" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cbR" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio1"; - name = "Containment Blast Doors"; - pixel_x = 0; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/toxins/xenobiology) -"cbS" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"cbT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"cbU" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"cbV" = ( -/obj/machinery/camera{ - c_tag = "Testing Chamber"; - dir = 1; - network = list("Test","RD"); - pixel_x = 0 - }, -/obj/machinery/light, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"cbW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cbX" = ( -/obj/machinery/camera{ - c_tag = "Testing Lab South"; - dir = 8; - network = list("SS13","RD"); - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cbY" = ( -/obj/structure/closet/crate, -/obj/item/target/syndicate, -/obj/item/target/alien, -/obj/item/target/clown, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cbZ" = ( -/obj/structure/closet/crate, -/obj/item/target, -/obj/item/target, -/obj/item/target, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"cca" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/port) -"ccb" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/port) -"ccc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"ccd" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cce" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Construction Area Maintenance"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"ccf" = ( -/obj/machinery/telecomms/broadcaster/preset_left, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"ccg" = ( -/obj/machinery/message_server, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cch" = ( -/obj/machinery/telecomms/receiver/preset_left, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cci" = ( -/obj/structure/table, -/obj/item/device/multitool, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/tcommsat/computer) -"ccj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/weapon/stamp/ce, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cck" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"ccl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"ccm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ccn" = ( -/obj/machinery/camera{ - c_tag = "Engineering Access" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cco" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ccp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cct" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccv" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/atmos) -"ccw" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"ccx" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"ccy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/atmos) -"ccz" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"ccA" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/atmos) -"ccB" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/engine/co2, -/area/atmos) -"ccC" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, -/turf/open/floor/engine/co2, -/area/atmos) -"ccD" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/co2, -/area/atmos) -"ccE" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = 0; - pixel_y = 28 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccG" = ( -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccI" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccK" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccM" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccN" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ccO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"ccQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"ccR" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"ccS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"ccT" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/toxins/misc_lab) -"ccU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/asmaint2) -"ccV" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccW" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ccX" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"ccY" = ( -/obj/structure/table, -/obj/item/weapon/kitchen/rollingpin, -/obj/item/weapon/reagent_containers/food/condiment/enzyme, -/obj/item/weapon/reagent_containers/food/condiment/sugar, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccZ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/aft) -"cda" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdb" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdc" = ( -/obj/machinery/telecomms/bus/preset_two, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cdd" = ( -/obj/machinery/telecomms/server/presets/supply, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cde" = ( -/obj/machinery/telecomms/processor/preset_one, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cdf" = ( -/obj/machinery/telecomms/server/presets/medical, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cdg" = ( -/obj/machinery/computer/telecomms/monitor{ - network = "tcommsat" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/tcommsat/computer) -"cdh" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - sortType = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdk" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/modular_computer/console/preset/engineering, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/chapel/main) -"cdm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cdn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdo" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdp" = ( -/obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/tinted/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cds" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Science Maintenance APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/camera{ - c_tag = "Aft Starboard Solar Access"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdu" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdv" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdw" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cdx" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/plasteel, -/area/atmos) -"cdy" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/atmos) -"cdz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 to Pure"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cdA" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - pixel_x = 0; - pixel_y = 0; - target_pressure = 4500 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cdB" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "co2"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cdC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/atmos) -"cdD" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/co2, -/area/atmos) -"cdE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdF" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdH" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdK" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/mob/living/simple_animal/mouse, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdN" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cdO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdQ" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdR" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdS" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"cdT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdU" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/item/weapon/storage/fancy/cigarettes, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cdV" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cdW" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Engineering Maintenance APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"cdY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdZ" = ( -/obj/machinery/telecomms/processor/preset_two, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cea" = ( -/obj/machinery/telecomms/server/presets/service, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"ceb" = ( -/obj/machinery/telecomms/bus/preset_one, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cec" = ( -/obj/structure/sign/nosmoking_2{ - pixel_y = -32 - }, -/obj/machinery/light, -/turf/open/floor/circuit{ - name = "Mainframe Base"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"ced" = ( -/obj/machinery/telecomms/server/presets/science, -/turf/open/floor/plasteel/black{ - name = "Mainframe Floor"; - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/tcommsat/server) -"cee" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/tcommsat/computer) -"cef" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"ceg" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/light, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ceh" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/bridge) -"cei" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cej" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engineering) -"cek" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engineering) -"cel" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engineering) -"cem" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cen" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ceo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cep" = ( -/obj/structure/sign/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"ceq" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"cer" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ces" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"cet" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/engine/engineering) -"ceu" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cev" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"cew" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cex" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics South West"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cey" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cez" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/atmos) -"ceA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/atmos) -"ceB" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/atmos) -"ceC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceE" = ( -/obj/structure/sign/fire{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceF" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/asmaint) -"ceI" = ( -/obj/structure/sign/biohazard, -/turf/closed/wall, -/area/maintenance/asmaint) -"ceJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asmaint) -"ceK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/l3closet, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ceM" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - icon_state = "intact"; - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceO" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceP" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/toxins/misc_lab) -"ceQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"ceR" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceS" = ( -/obj/item/stack/sheet/cardboard, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceT" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceU" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ceV" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceW" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"ceY" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Power Storage"; - req_access_txt = "11"; - req_one_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfa" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/weapon/storage/belt/utility, -/obj/item/weapon/wrench, -/obj/item/weapon/weldingtool, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"cfb" = ( -/turf/closed/wall/r_wall, -/area/engine/chiefs_office) -"cfc" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"cfd" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"cfe" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/engineering) -"cfh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side, -/area/engine/break_room) -"cfi" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cfj" = ( -/turf/closed/wall, -/area/maintenance/incinerator) -"cfk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/atmos{ - name = "Turbine Access"; - req_access_txt = "32" - }, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cfl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/incinerator) -"cfm" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/toy/minimeteor, -/obj/item/weapon/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/reagent_containers/food/snacks/donkpocket, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfo" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/roller, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/weapon/c_tube, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfq" = ( -/obj/structure/mopbucket, -/obj/item/weapon/caution, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - external_pressure_bound = 140; - on = 1; - pressure_checks = 0 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Kill Room"; - dir = 4; - network = list("SS13","RD") - }, -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"cfs" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Air Supply Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cft" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Testing Lab Maintenance"; - req_access_txt = "47" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/toxins/misc_lab) -"cfu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/toxins/misc_lab) -"cfv" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cfw" = ( -/turf/closed/wall/r_wall, -/area/maintenance/portsolar) -"cfx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/maintenance/portsolar) -"cfy" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/suit/hooded/wintercoat, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"cfz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/engineering) -"cfB" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"cfD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"cfE" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cfF" = ( -/obj/machinery/suit_storage_unit/ce, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/engine/chiefs_office) -"cfG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfH" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/keycard_auth{ - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cfI" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"cfJ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfK" = ( -/obj/structure/sign/securearea, -/turf/closed/wall, -/area/engine/engineering) -"cfL" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfM" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 2; - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfN" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, -/area/atmos) -"cfO" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/atmos) -"cfP" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cfQ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/atmos) -"cfR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cfS" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4; - initialize_directions = 12 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cfT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cfU" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/incinerator) -"cfV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cfX" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Incinerator APC"; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cfY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cfZ" = ( -/obj/machinery/light_switch{ - pixel_x = 0; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cga" = ( -/obj/machinery/power/smes{ - capacity = 9e+006; - charge = 10000 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cgb" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/deathsposal{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cgc" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint) -"cgd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cge" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cgf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille/broken, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cgg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cgh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cgi" = ( -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"cgj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cgk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/biohazard, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"cgl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - external_pressure_bound = 120; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"cgm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"cgo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgp" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgq" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"cgs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgt" = ( -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgu" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cgy" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cgz" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"cgA" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"cgB" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"cgC" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"cgD" = ( -/obj/machinery/camera{ - c_tag = "Aft Port Solar Access"; - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgE" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/portsolar) -"cgF" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cgJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cgK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cgL" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cgM" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - departmentType = 3; - name = "Chief Engineer RC"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/computer/apc_control, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cgO" = ( -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cgQ" = ( -/obj/machinery/camera{ - c_tag = "Engineering East"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/engineering) -"cgR" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgS" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"cgT" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 8; - name = "SMES Room"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engine_smes) -"cgU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgV" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") - }, -/turf/open/floor/plasteel/red/side, -/area/atmos) -"cgW" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/atmos) -"cgX" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/atmos) -"cgY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "N2 Outlet Pump"; - on = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/atmos) -"cgZ" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") - }, -/turf/open/floor/plasteel/blue/side{ - dir = 0 - }, -/area/atmos) -"cha" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/atmos) -"chb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 Outlet Pump"; - on = 1 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/atmos) -"chc" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") - }, -/turf/open/floor/plasteel/arrival, -/area/atmos) -"chd" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/arrival{ - dir = 10 - }, -/area/atmos) -"che" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/atmos) -"chf" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics South East"; - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air Outlet Pump"; - on = 1 - }, -/turf/open/floor/plasteel/arrival{ - dir = 6 - }, -/area/atmos) -"chg" = ( -/turf/open/floor/plating, -/area/atmos) -"chh" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"chi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general{ - level = 2 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"chj" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "plasma tank pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"chk" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/closed/wall, -/area/maintenance/incinerator) -"chl" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "atmospherics mix pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"chm" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/machinery/airalarm{ - desc = "This particular atmos control unit appears to have no access restrictions."; - dir = 8; - icon_state = "alarm0"; - locked = 0; - name = "all-access air alarm"; - pixel_x = 24; - req_access = "0"; - req_one_access = "0" - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"chn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cho" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"chp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/asmaint) -"chq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"chr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Kill Chamber"; - req_access_txt = "55" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"chs" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/circuit{ - name = "Killroom Floor"; - initial_gas_mix = "n2=500;TEMP=80" - }, -/area/toxins/xenobiology) -"cht" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"chu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"chv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chA" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chB" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chC" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chD" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chF" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"chG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"chH" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"chI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"chJ" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/port) -"chK" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"chL" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"chM" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"chN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chS" = ( -/obj/machinery/door/airlock/engineering{ - name = "Aft Port Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"chT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"chV" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/tank/internals/emergency_oxygen/engi{ - pixel_x = 5; - pixel_y = 0 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"chX" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"chY" = ( -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/engine/engineering) -"cia" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cib" = ( -/obj/machinery/power/apc{ - cell_type = 15000; - dir = 1; - name = "Engineering APC"; - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cic" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cid" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cie" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cif" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/table, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cig" = ( -/turf/closed/wall, -/area/engine/engineering) -"cih" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cii" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cij" = ( -/obj/machinery/computer/station_alert, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cik" = ( -/obj/machinery/computer/station_alert, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -10; - req_access_txt = "10" - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for secure storage."; - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_x = -24; - pixel_y = 0; - req_access_txt = "11" - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = -24; - pixel_y = 10; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cim" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chief_engineer, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cin" = ( -/obj/structure/closet/secure_closet/engineering_chief{ - req_access_txt = "0" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cio" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cip" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ciq" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"cir" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cis" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cit" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/atmos) -"ciu" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"civ" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"ciw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/atmos) -"cix" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/atmos) -"ciy" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4; - name = "input gas connector port" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciz" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciB" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/reagent_dispensers/watertank, -/obj/item/weapon/extinguisher, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciC" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"ciD" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - name = "output gas connector port" - }, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/sign/nosmoking_2{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciE" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ciF" = ( -/obj/structure/table, -/obj/item/weapon/cartridge/medical, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ciG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ciH" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/latexballon, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ciI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ciJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"ciK" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ciL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/tinted/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ciM" = ( -/obj/machinery/power/compressor{ - comp_id = "incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/obj/structure/cable/yellow, -/obj/structure/cable/yellow{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/camera{ - c_tag = "Turbine Chamber"; - dir = 4; - network = list("Turbine") - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"ciN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ciO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ciP" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"ciQ" = ( -/obj/machinery/power/solar_control{ - id = "portsolar"; - name = "Aft Port Solar Control"; - track = 0 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"ciR" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Aft Port Solar APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/machinery/camera{ - c_tag = "Aft Port Solar Control"; - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"ciS" = ( -/turf/open/floor/plating, -/area/maintenance/portsolar) -"ciT" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciU" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciW" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/engine/engineering) -"ciX" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ciY" = ( -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "secure storage" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ciZ" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"cja" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjb" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/nosmoking_2{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Engineering Power Storage" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cje" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjg" = ( -/obj/machinery/camera{ - c_tag = "Chief Engineer's Office"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/computer/card/minor/ce, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cjh" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cji" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjj" = ( -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/structure/filingcabinet/chestdrawer, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cjk" = ( -/obj/structure/sign/securearea, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cjl" = ( -/obj/machinery/camera{ - c_tag = "Engineering MiniSat Access"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjm" = ( -/obj/machinery/door/airlock/command{ - name = "MiniSat Access"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjo" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/construction) -"cjp" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/item/weapon/storage/toolbox/emergency, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjq" = ( -/obj/machinery/atmospherics/components/binary/valve{ - name = "Mix to Space" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjr" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjs" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cju" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Incinerator to Output"; - on = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjv" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cjw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asmaint) -"cjx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/incinerator) -"cjy" = ( -/obj/structure/disposalpipe/segment, -/obj/item/weapon/shard, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cjz" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/maintenance/asmaint) -"cjA" = ( -/obj/structure/disposalpipe/segment, -/obj/item/weapon/cigbutt/roach, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cjB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/structure/table, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"cjC" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cjD" = ( -/turf/closed/wall/r_wall, -/area/maintenance/starboardsolar) -"cjE" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cjF" = ( -/obj/machinery/door/airlock/engineering{ - name = "Aft Starboard Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cjG" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/starboardsolar) -"cjH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"cjI" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjJ" = ( -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"cjK" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cjM" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Secure Storage"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cjN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjO" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjR" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjU" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cjV" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/toxins/misc_lab) -"cjX" = ( -/obj/item/weapon/cartridge/engineering{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/weapon/cartridge/engineering{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/weapon/cartridge/engineering{ - pixel_x = 3 - }, -/obj/structure/table/reinforced, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/item/weapon/cartridge/atmos, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cjY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cka" = ( -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/machinery/door/airlock/glass_research{ - cyclelinkeddir = 4; - name = "Test Chamber"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"ckb" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/atmos) -"ckc" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter{ - name = "Mixed Air Tank In" - }, -/turf/closed/wall/r_wall, -/area/atmos) -"ckd" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter{ - name = "Mixed Air Tank Out" - }, -/turf/closed/wall/r_wall, -/area/atmos) -"cke" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ckf" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"ckg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ckh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to MiniSat" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cki" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ckj" = ( -/obj/item/weapon/cigbutt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ckk" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Incinerator to Space" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"ckl" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ckm" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Biohazard Disposals"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"ckn" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/toxins/xenobiology) -"cko" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asmaint2) -"ckp" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ckq" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion" - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"ckr" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cks" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"ckt" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Aft Starboard Solar APC"; - pixel_x = -26; - pixel_y = 3 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cku" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"ckv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ckw" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"ckx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cky" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"ckz" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"ckA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"ckB" = ( -/obj/machinery/field/generator, -/turf/open/floor/plating, -/area/engine/engineering) -"ckC" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/engine/engineering) -"ckD" = ( -/obj/structure/table, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/apc, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/item/weapon/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckE" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckG" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/engineering_singularity_safety, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckI" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckJ" = ( -/obj/structure/closet/crate{ - name = "solar pack crate" - }, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/weapon/circuitboard/computer/solar_control, -/obj/item/weapon/electronics/tracker, -/obj/item/weapon/paper/solar, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckK" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckL" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"ckM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/misc_lab) -"ckN" = ( -/obj/machinery/door/airlock/glass_research{ - cyclelinkeddir = 8; - name = "Test Chamber"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/toxins/misc_lab) -"ckO" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/chiefs_office) -"ckP" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Chief Engineer"; - req_access_txt = "56" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"ckQ" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"ckR" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/engine/chiefs_office) -"ckS" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"ckT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"ckU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, -/turf/open/floor/engine/n2, -/area/atmos) -"ckV" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in" - }, -/turf/open/floor/engine/n2, -/area/atmos) -"ckW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "n2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/n2, -/area/atmos) -"ckX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, -/turf/open/floor/engine/o2, -/area/atmos) -"ckY" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "o2_in" - }, -/turf/open/floor/engine/o2, -/area/atmos) -"ckZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - frequency = 1441; - id_tag = "o2_out"; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/o2, -/area/atmos) -"cla" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, -/turf/open/floor/engine/air, -/area/atmos) -"clb" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/air, -/area/atmos) -"clc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ - dir = 1; - external_pressure_bound = 0; - frequency = 1441; - icon_state = "vent_map"; - id_tag = "air_out"; - internal_pressure_bound = 2000; - on = 1; - pressure_checks = 2; - pump_direction = 0 - }, -/turf/open/floor/engine/air, -/area/atmos) -"cld" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Incinerator"; - on = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cle" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"clf" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"clg" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"clh" = ( -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -31 - }, -/obj/machinery/computer/turbine_computer{ - id = "incineratorturbine" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"cli" = ( -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "32" - }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; - pixel_x = -6; - pixel_y = -24; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"clj" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"clk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cll" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"clm" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - icon_state = "manifold"; - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cln" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"clo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"clp" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clq" = ( -/obj/structure/rack, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"clr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cls" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"clt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"clu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"clv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"clw" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"clx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cly" = ( -/obj/structure/chair/stool, -/obj/machinery/camera{ - c_tag = "Aft Starboard Solar Control"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"clz" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"clA" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"clC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"clD" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/engine_smes) -"clE" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/smes/engineering, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/engine/engine_smes) -"clF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"clG" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/smes/engineering, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/engine/engine_smes) -"clH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall, -/area/engine/engineering) -"clI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"clJ" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"clM" = ( -/obj/structure/table, -/obj/item/weapon/crowbar/large, -/obj/item/weapon/storage/box/lights/mixed, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"clN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/engineering) -"clO" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"clP" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/engineering) -"clQ" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/engineering) -"clR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/book/manual/wiki/engineering_construction, -/obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"clS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"clT" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/engine/n2, -/area/atmos) -"clU" = ( -/turf/open/floor/engine/n2, -/area/atmos) -"clV" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/engine/o2, -/area/atmos) -"clW" = ( -/turf/open/floor/engine/o2, -/area/atmos) -"clX" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"clY" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/air, -/area/atmos) -"clZ" = ( -/turf/open/floor/engine/air, -/area/atmos) -"cmb" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/incinerator) -"cmc" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/closed/wall/r_wall, -/area/maintenance/incinerator) -"cmd" = ( -/turf/closed/wall/r_wall, -/area/maintenance/incinerator) -"cme" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall/r_wall, -/area/maintenance/incinerator) -"cmf" = ( -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "incinerator_airlock_interior"; - locked = 1; - name = "Turbine Interior Airlock"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/incinerator) -"cmg" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cmh" = ( -/obj/structure/disposalpipe/junction{ - dir = 2; - icon_state = "pipe-y" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cmi" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cmj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cmk" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cml" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"cmn" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cmo" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cmp" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"cmq" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"cmr" = ( -/obj/structure/closet/toolcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cms" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cmt" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cmu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/asmaint2) -"cmv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cmw" = ( -/obj/machinery/power/solar_control{ - id = "starboardsolar"; - name = "Aft Starboard Solar Control"; - track = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cmx" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cmy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cmz" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cmA" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/engine_smes) -"cmB" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/engine_smes) -"cmC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cmD" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Engineering" - }, -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmE" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"cmF" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"cmG" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engineering) -"cmK" = ( -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Engineering"; - departmentType = 4; - name = "Engineering RC"; - pixel_y = 30 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"cmL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"cmN" = ( -/obj/structure/sign/nosmoking_2{ - pixel_y = 32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"cmQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmU" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/n2, -/area/atmos) -"cmV" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/o2, -/area/atmos) -"cmW" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/air, -/area/atmos) -"cmX" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"cmY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "incinerator_airlock_exterior"; - idSelf = "incinerator_access_control"; - layer = 3.1; - name = "Incinerator airlock control"; - pixel_x = 8; - pixel_y = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/sign/fire{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/maintenance/incinerator) -"cmZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 - }, -/obj/structure/sign/fire{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/doorButtons/access_button{ - idSelf = "incinerator_access_control"; - idDoor = "incinerator_airlock_interior"; - name = "Incinerator airlock control"; - pixel_x = -8; - pixel_y = 24 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine, -/area/maintenance/incinerator) -"cna" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/incinerator) -"cnb" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnc" = ( -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cne" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnf" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cng" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/clipboard, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cni" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"cnj" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cnk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cnl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/port) -"cnm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnn" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/engine_smes) -"cno" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/smes/engineering, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/engine/engine_smes) -"cnp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "SMES Room"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnq" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/smes/engineering, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/engine/engine_smes) -"cnr" = ( -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Engineering Delivery"; - req_access_txt = "10" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnt" = ( -/obj/machinery/camera{ - c_tag = "Engineering West"; - dir = 4; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/engineering) -"cnv" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cny" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/construction) -"cnC" = ( -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "incinerator_airlock_exterior"; - locked = 1; - name = "Turbine Exterior Airlock"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/incinerator) -"cnD" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/maintenance/asmaint) -"cnE" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Waste Out"; - on = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnG" = ( -/obj/structure/closet/emcloset, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cnH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cnJ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cnK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cnL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnM" = ( -/obj/machinery/door/window{ - name = "SMES Chamber"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnN" = ( -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnO" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnP" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/engine_smes) -"cnQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cnR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"cnS" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "SMES Access"; - dir = 8; - network = list("SS13"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cnU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/loadingarea, -/area/engine/engineering) -"cnW" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"cnX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/nosmoking_2{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coa" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cob" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cof" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"coh" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"cop" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"coq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - initialize_directions = 1; - internal_pressure_bound = 4000; - on = 0; - pressure_checks = 2; - pump_direction = 0 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"cor" = ( -/obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"cos" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Auxiliary Incinerator Vent" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"cot" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cou" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cov" = ( -/obj/machinery/power/port_gen/pacman, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cow" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cox" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coB" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 4; - name = "SMES Room"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engine_smes) -"coC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coH" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coJ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"coL" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coM" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"coS" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/gun/energy/laser, -/obj/item/weapon/gun/energy/laser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"coT" = ( -/obj/item/pipe{ - dir = 4; - icon_state = "mixer"; - name = "gas mixer fitting"; - pipe_type = 14 - }, -/turf/open/floor/engine, -/area/toxins/misc_lab) -"coZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpa" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpb" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cpc" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"cpd" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_4) -"cpe" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_asteroid2"; - name = "asteroid" - }, -/turf/open/space, -/area/space) -"cpg" = ( -/obj/item/weapon/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/weapon/grenade/barrier, -/obj/item/weapon/grenade/barrier{ - pixel_x = -4 - }, -/obj/structure/table, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"cph" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/space, -/area/space/nearstation) -"cpi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"cpj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpk" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpl" = ( -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpm" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpn" = ( -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpq" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cps" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpt" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cpv" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cpx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cpy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cpA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"cpC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/bridge) -"cpD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cpE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpG" = ( -/obj/structure/table/optable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"cpI" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Escape Pod Four"; - req_access = null; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cpJ" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod4"; - name = "escape pod 4"; - port_angle = 180; - preferred_direction = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"cpK" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_x = 0; - pixel_y = -32; - possible_destinations = "pod_asteroid2"; - shuttleId = "pod2" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpL" = ( -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cpM" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_4) -"cpN" = ( -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"cpO" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Incinerator Output Pump"; - on = 1 - }, -/turf/open/space, -/area/maintenance/incinerator) -"cpP" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/space, -/area/space/nearstation) -"cpQ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/space, -/area/maintenance/incinerator) -"cpR" = ( -/obj/machinery/door/airlock{ - name = "Observatory Access" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cpS" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 2; - name = "SMES room APC"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpT" = ( -/obj/structure/table, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/item/weapon/stock_parts/cell/high/plus, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpU" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpV" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Engineering Storage"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpX" = ( -/obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpY" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cpZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqa" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cqb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cqe" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqf" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/engine, -/area/engine/engineering) -"cqg" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Filter"; - on = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Fore"; - dir = 1; - network = list("SS13","Engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqi" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/light, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cqj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "engsm"; - name = "Radiation Shutters Control"; - pixel_x = 0; - pixel_y = -24; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqk" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cql" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqm" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqn" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqo" = ( -/obj/structure/sign/pods{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqp" = ( -/obj/machinery/camera{ - c_tag = "Engineering Escape Pod"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cqq" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 8; - id = "pod2"; - name = "escape pod 2"; - port_angle = 180 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cqr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cqs" = ( -/obj/structure/sign/fire{ - pixel_x = 0; - pixel_y = 0 - }, -/turf/closed/wall/r_wall, -/area/maintenance/incinerator) -"cqt" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/incinerator) -"cqu" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cqv" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqw" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqz" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqA" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cqB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cqD" = ( -/obj/structure/sign/radiation, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cqE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass_engineering{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cqF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cqG" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/weapon/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/weapon/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"cqJ" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"cqK" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"cqN" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqO" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/stack/cable_coil, -/obj/item/weapon/electronics/airlock, -/obj/item/weapon/electronics/airlock, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqP" = ( -/obj/structure/table, -/obj/item/weapon/folder/yellow, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqQ" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqR" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqS" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/engine/engineering) -"cqT" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cqU" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cqY" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cqZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"cra" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/obj/machinery/airalarm{ - dir = 4; - locked = 0; - pixel_x = -23; - pixel_y = 0; - req_access = null; - req_one_access_txt = "24;10" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"crb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - icon_state = "pump_map"; - name = "Gas to Chamber" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/engine/supermatter) -"crc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"crd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"crh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cri" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"crj" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/solar{ - id = "starboardsolar"; - name = "Starboard Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/starboard) -"crk" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crl" = ( -/obj/structure/table, -/obj/item/device/taperecorder{ - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"crm" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/matches, -/obj/item/weapon/storage/fancy/cigarettes, -/turf/open/floor/plating, -/area/maintenance/aft) -"crn" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cro" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"crp" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"crq" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"crr" = ( -/obj/structure/grille, -/obj/structure/cable, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"crs" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - icon_state = "intact"; - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"crt" = ( -/obj/machinery/door/airlock/glass_engineering{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cru" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"crv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"crw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crx" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/escape) -"cry" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crA" = ( -/obj/structure/transit_tube_pod, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crB" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crC" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crD" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crF" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"crH" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space) -"crI" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"crJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space) -"crK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"crL" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"crM" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"crN" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"crO" = ( -/turf/open/floor/mineral/titanium, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/escape) -"crP" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crQ" = ( -/obj/machinery/computer/emergency_shuttle, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"crR" = ( -/obj/structure/transit_tube, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crS" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "starboardsolar"; - name = "Starboard Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/starboard) -"crT" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space) -"crU" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space) -"crV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"crW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crX" = ( -/obj/structure/closet/emcloset, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crY" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, -/turf/open/floor/plating, -/area/engine/engineering) -"crZ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"csa" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"csb" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space) -"csc" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/space, -/area/maintenance/asmaint) -"csd" = ( -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cse" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"csg" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"csi" = ( -/obj/structure/transit_tube/curved/flipped{ - dir = 1 - }, -/turf/open/space, -/area/space) -"csj" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"csk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"csl" = ( -/obj/structure/transit_tube/curved{ - dir = 4 - }, -/turf/open/space, -/area/space) -"csm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asmaint) -"csn" = ( -/obj/structure/transit_tube/horizontal, -/turf/open/space, -/area/space) -"cso" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/crossing/horizontal, -/turf/open/space, -/area/space) -"csq" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the turbine vent."; - dir = 1; - name = "turbine vent monitor"; - network = list("Turbine"); - pixel_x = 0; - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"csr" = ( -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "incinerator_airlock_exterior"; - idSelf = "incinerator_access_control"; - idInterior = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; - pixel_x = 6; - pixel_y = -26; - req_access_txt = "12" - }, -/obj/machinery/button/ignition{ - id = "Incinerator"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/incinerator) -"css" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"csu" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"csv" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"csw" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/space, -/area/space) -"csx" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"csy" = ( -/obj/structure/table, -/obj/item/weapon/weldingtool, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"csz" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space/nearstation) -"csA" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"csC" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"csD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csE" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"csH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"csI" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"csJ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"csM" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/transit_tube/crossing/horizontal, -/turf/open/space, -/area/space) -"csN" = ( -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csO" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"csQ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"csR" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"csT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"csU" = ( -/obj/structure/transit_tube/station/reverse, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csX" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csY" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"csZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard) -"cta" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "MiniSat External Access"; - req_access = null; - req_access_txt = "65;13" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctb" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctd" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/space, -/area/space) -"ctg" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"cth" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 0; - pixel_y = -29 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"cti" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctj" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Pod Access"; - dir = 1; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 2; - on = 1 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cto" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Foyer"; - req_one_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctp" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/ai_monitored/turret_protected/aisat_interior) -"ctq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"ctr" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/folder{ - pixel_x = 3 - }, -/obj/item/weapon/phone{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cts" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/off{ - pixel_y = 4 - }, -/obj/item/weapon/screwdriver{ - pixel_y = 10 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"ctt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctv" = ( -/turf/closed/wall/r_wall, -/area/space) -"ctw" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"ctx" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"cty" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctz" = ( -/obj/machinery/door/poddoor/shutters{ - id = "teledoor"; - name = "MiniSat Teleport Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctB" = ( -/obj/structure/cable, -/obj/machinery/power/tracker, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/starboard) -"ctE" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctF" = ( -/obj/machinery/button/door{ - id = "teledoor"; - name = "MiniSat Teleport Shutters Control"; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "17;65" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctG" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctH" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/obj/machinery/computer/monitor, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"ctI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctJ" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctK" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Teleporter"; - req_access_txt = "17;65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctL" = ( -/obj/machinery/teleport/station, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctM" = ( -/obj/machinery/bluespace_beacon, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"ctO" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - icon_state = "intact"; - dir = 5 - }, -/turf/open/space, -/area/space) -"ctP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctQ" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = 0; - pixel_y = 4 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"ctR" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/closed/wall, -/area/engine/engineering) -"ctS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctT" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"ctV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "MiniSat Foyer APC"; - pixel_x = 27; - pixel_y = 0 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctW" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctX" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Teleporter"; - dir = 1; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"ctY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"ctZ" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cua" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cub" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 0; - pixel_y = -29 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuc" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cud" = ( -/obj/machinery/turretid{ - control_area = null; - enabled = 1; - icon_state = "control_standby"; - name = "Antechamber Turret Control"; - pixel_x = 0; - pixel_y = -24; - req_access_txt = "65" - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera/motion{ - c_tag = "MiniSat Foyer"; - dir = 1; - network = list("MiniSat") - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cue" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuf" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cug" = ( -/obj/machinery/ai_status_display{ - pixel_y = -32 - }, -/obj/structure/table, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cuh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/rack, -/obj/item/weapon/wrench, -/obj/item/weapon/crowbar/red, -/obj/item/clothing/head/welding, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cui" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuj" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cuk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cul" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cum" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cun" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix to MiniSat" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuo" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cup" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Air Out"; - on = 0 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cur" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 1 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cus" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 4 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cuu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuv" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuw" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cux" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/clothing/head/welding, -/obj/item/stack/sheet/mineral/plasma{ - amount = 35; - layer = 3.1 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuy" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Atmospherics"; - dir = 4; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 4 - }, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuC" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuD" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Antechamber"; - dir = 4; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/obj/machinery/turretid{ - control_area = "AI Satellite Atmospherics"; - enabled = 1; - icon_state = "control_standby"; - name = "Atmospherics Turret Control"; - pixel_x = -27; - pixel_y = 0; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 1 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cuE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cuF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/turretid{ - control_area = "AI Satellite Service"; - enabled = 1; - icon_state = "control_standby"; - name = "Service Bay Turret Control"; - pixel_x = 27; - pixel_y = 0; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 4 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cuG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuH" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 1 - }, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuJ" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuK" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Service Bay"; - dir = 8; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/rack, -/obj/item/weapon/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/device/multitool, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuM" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "MiniSat Atmospherics APC"; - pixel_x = -27; - pixel_y = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Atmospherics"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/mob/living/simple_animal/bot/secbot/pingsky, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Service Bay"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cuV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuX" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "MiniSat Service Bay APC"; - pixel_x = 27; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/port_gen/pacman, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cuY" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cuZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/mob/living/simple_animal/bot/floorbot, -/turf/open/floor/plasteel/darkblue/corner, -/area/ai_monitored/turret_protected/AIsatextAS{ - name = "AI Satellite Atmospherics" - }) -"cva" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvb" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvc" = ( -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat_interior) -"cvd" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/corner, -/area/ai_monitored/turret_protected/aisat_interior) -"cve" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/machinery/turretid{ - control_area = "AI Satellite Hallway"; - enabled = 1; - icon_state = "control_standby"; - name = "Chamber Hallway Turret Control"; - pixel_x = 32; - pixel_y = -24; - req_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat_interior) -"cvf" = ( -/obj/machinery/status_display, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/mob/living/simple_animal/bot/cleanbot, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cvh" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cvi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFP{ - name = "AI Satellite Service" - }) -"cvj" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvk" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvl" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cvm" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Chamber Hallway"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvp" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvq" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvr" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvs" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvu" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvv" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"cvw" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvx" = ( -/obj/effect/landmark/tripai, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = 5 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 0; - pixel_y = -25 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvy" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvA" = ( -/obj/effect/landmark/tripai, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = 0; - pixel_y = 28 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = 27; - pixel_y = 5 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 0; - pixel_y = -25 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvB" = ( -/obj/structure/rack, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/wrench, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvD" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvE" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvF" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "MiniSat External NorthWest"; - dir = 8; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/turf/open/space, -/area/space) -"cvG" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/weapon/gun/energy/e_gun - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvJ" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/weapon/gun/energy/e_gun - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvK" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "MiniSat External NorthEast"; - dir = 4; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/turf/open/space, -/area/space) -"cvL" = ( -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvM" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat Core Hallway"; - dir = 4; - network = list("MiniSat") - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvN" = ( -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cvP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvR" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvU" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvV" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvX" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvY" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cvZ" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwa" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - dir = 4; - name = "MiniSat Chamber Hallway APC"; - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwb" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_x = -28; - pixel_y = -29 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwe" = ( -/obj/structure/sign/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cwf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Chamber Observation"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwg" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwh" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwi" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwm" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/white, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwp" = ( -/obj/structure/chair/office/dark, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwq" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cwr" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"cws" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"cwt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_command{ - name = "AI Core"; - req_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwv" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cww" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table_frame, -/obj/item/weapon/wirerod, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cwz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwB" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cwD" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/turretid{ - name = "AI Chamber turret control"; - pixel_x = 5; - pixel_y = -24 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwE" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 2; - name = "AI Chamber APC"; - pixel_y = -24 - }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = -11; - pixel_y = -24 - }, -/obj/machinery/camera/motion{ - c_tag = "MiniSat AI Chamber North"; - dir = 1; - network = list("MiniSat") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwF" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwG" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/crowbar, -/obj/item/weapon/storage/firstaid/fire, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cwH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint2) -"cwI" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"cwJ" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwK" = ( -/obj/machinery/computer/atmos_alert, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cwL" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwM" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/ai_monitored/security/armory) -"cwN" = ( -/obj/machinery/computer/security, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cwO" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwP" = ( -/obj/machinery/computer/crew, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cwQ" = ( -/obj/machinery/button/flasher{ - id = "cockpit_flasher"; - pixel_x = 6; - pixel_y = -24 - }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwR" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 0; - pixel_y = -29 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwS" = ( -/obj/machinery/computer/communications, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cwT" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Escape Pod 2"; - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cwU" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion" - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"cwV" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_asteroid1"; - name = "asteroid" - }, -/turf/open/space, -/area/space) -"cwW" = ( -/obj/machinery/status_display, -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"cwX" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Cockpit"; - req_access_txt = "19" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cwY" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cwZ" = ( -/obj/machinery/flasher{ - id = "cockpit_flasher"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxa" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxb" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/crowbar, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxc" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxd" = ( -/obj/machinery/flasher{ - id = "shuttle_flasher"; - pixel_x = -24; - pixel_y = 6 - }, -/obj/machinery/button/flasher{ - id = "shuttle_flasher"; - pixel_x = -24; - pixel_y = -6 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cxe" = ( -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cxf" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Brig"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxg" = ( -/obj/machinery/door/airlock/titanium{ - name = "Emergency Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cxh" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cxi" = ( -/obj/structure/chair, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxj" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"cxl" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_x = 0; - pixel_y = -32; - possible_destinations = "pod_asteroid1"; - shuttleId = "pod1" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"cxm" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/escape) -"cxn" = ( -/obj/structure/lattice, -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space) -"cxo" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxq" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxr" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxs" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxt" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" - }, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxu" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/transport) -"cxw" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxx" = ( -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_x = 0; - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"cxy" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"cxB" = ( -/obj/structure/chair, -/turf/open/floor/pod/dark, -/area/shuttle/transport) -"cxC" = ( -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cxD" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxE" = ( -/obj/machinery/door/airlock/titanium, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 13; - id = "ferry"; - name = "ferry shuttle"; - port_angle = 0; - preferred_direction = 4; - roundstart_move = "ferry_away"; - width = 5 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 13; - id = "ferry_home"; - name = "port bay 2"; - turf_type = /turf/open/space; - width = 5 - }, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cxF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 8; - id = "pod1"; - name = "escape pod 1"; - port_angle = 180 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"cxG" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Escape Pod Three"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/security/main) -"cxI" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/pod/dark, -/area/shuttle/transport) -"cxJ" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/security/processing) -"cxK" = ( -/obj/machinery/door/airlock/titanium{ - name = "Emergency Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"cxL" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = -30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxM" = ( -/obj/machinery/door/airlock/titanium{ - name = "Emergency Shuttle Cargo" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/auxsolarstarboard) -"cxO" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Infirmary" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cxP" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Labor Camp Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/security/processing) -"cxQ" = ( -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cxR" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cxS" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxT" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/crowbar, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cxU" = ( -/obj/structure/closet, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cxV" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cxW" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 2; - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fsmaint2) -"cxX" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"cxY" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Escape Pod 1"; - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxZ" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"cya" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fpmaint) -"cyb" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Escape Pod One" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyc" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cyd" = ( -/obj/machinery/door/airlock/titanium, -/obj/docking_port/mobile{ - dheight = 0; - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship"; - launch_status = 0; - name = "NT Medical Ship"; - port_angle = -90; - preferred_direction = 4; - roundstart_move = "whiteship_away"; - timid = null; - width = 35 - }, -/obj/docking_port/stationary{ - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship_home"; - name = "SS13 Arrival Docking"; - turf_type = /turf/open/space; - width = 35 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cye" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyf" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cyg" = ( -/obj/machinery/door/airlock/command{ - cyclelinkeddir = 1; - name = "Command Tool Storage"; - req_access = null; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/storage/eva) -"cyh" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Security Escape Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cyi" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyj" = ( -/obj/structure/table, -/obj/item/weapon/screwdriver, -/obj/structure/light_construct{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyk" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyl" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - id_tag = null; - name = "Port Docking Bay 2"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cym" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cyn" = ( -/turf/open/floor/plating, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/abandoned) -"cyo" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cyp" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cyq" = ( -/obj/machinery/computer/pod{ - id = "oldship_gun" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyr" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Cargo Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cys" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/supply) -"cyt" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Port Docking Bay 4"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyu" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Port Docking Bay 3"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyv" = ( -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyw" = ( -/turf/open/floor/mineral/titanium, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/abandoned) -"cyx" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/hardsuit/medical, -/obj/item/clothing/mask/breath, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyy" = ( -/obj/machinery/mass_driver{ - dir = 4; - icon_state = "mass_driver"; - id = "oldship_gun" - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyz" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyA" = ( -/obj/machinery/door/poddoor{ - id = "oldship_gun"; - name = "pod bay door" - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyB" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"cyC" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cyD" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"cyE" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "External Access"; - req_access = null; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyF" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cyG" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/atmos) -"cyH" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyI" = ( -/obj/item/weapon/stock_parts/cell{ - charge = 100; - maxcharge = 15000 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyJ" = ( -/obj/structure/rack, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/portsolar) -"cyL" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyM" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 1; - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cyN" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"cyO" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyP" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyQ" = ( -/obj/machinery/door/airlock/titanium{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"cyR" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cyS" = ( -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = 8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = -8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"cyT" = ( -/obj/machinery/door/airlock/titanium{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/obj/docking_port/mobile/supply{ - dwidth = 5; - width = 12 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 5; - height = 7; - id = "supply_home"; - name = "Cargo Bay"; - width = 12 - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"cyU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/starboardsolar) -"cyV" = ( -/obj/machinery/door/window, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) -"cyW" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) -"cyX" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyY" = ( -/obj/structure/table, -/obj/item/weapon/gun/energy/laser/retro, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cyZ" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"cza" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czb" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/remains/human, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czc" = ( -/obj/machinery/computer/shuttle/white_ship, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czd" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cze" = ( -/obj/structure/table, -/obj/item/weapon/tank/internals/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czf" = ( -/turf/open/floor/mineral/titanium/blue, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/supply) -"czg" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Escape Pod Four"; - req_access = null; - req_access_txt = "0"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"czh" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/engine/engineering) -"czi" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czj" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czk" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "MiniSat External Access"; - req_access = null; - req_access_txt = "65;13" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"czl" = ( -/obj/machinery/door/window/northright, -/obj/effect/decal/remains/human, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) -"czm" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) -"czn" = ( -/obj/structure/frame/computer{ - anchored = 1 - }, -/obj/structure/light_construct, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/abandoned) -"czp" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"czr" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czs" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"czt" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"czu" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"czv" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"czw" = ( -/obj/item/device/multitool, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czx" = ( -/obj/structure/chair, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czy" = ( -/obj/structure/frame/computer{ - anchored = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czz" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"czA" = ( -/obj/item/weapon/scalpel, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czB" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 6; - pixel_y = -5 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czC" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/obj/effect/decal/remains/human, -/obj/structure/light_construct, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"czE" = ( -/turf/open/floor/engine, -/area/engine/engineering) -"czF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"czG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"czH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"czI" = ( -/obj/item/weapon/wrench, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"czJ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/incinerator) -"czK" = ( -/turf/closed/wall, -/area/security/vacantoffice) -"czL" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_asteroid4"; - shuttleId = "pod4" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 3; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"czM" = ( -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/item/weapon/storage/pod{ - pixel_x = 6; - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_4) -"czN" = ( -/obj/docking_port/stationary/random{ - dir = 4; - id = "pod_asteroid4"; - name = "asteroid" - }, -/turf/open/space, -/area/space) -"czO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"czP" = ( -/obj/structure/chair/stool/bar, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"czQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"czR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"czS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/asmaint2) -"czT" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"czX" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czZ" = ( -/obj/structure/chair, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAa" = ( -/obj/structure/chair, -/obj/item/weapon/storage/fancy/cigarettes, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAb" = ( -/obj/structure/closet, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cAc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/aft) -"cAd" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cAe" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cAf" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"cAg" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cAh" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAi" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAm" = ( -/obj/machinery/power/supermatter_shard/crystal, -/turf/open/floor/engine, -/area/engine/supermatter) -"cAo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Cooling Loop to Gas"; - on = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4; - initialize_directions = 11 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix"; - on = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cAt" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cAu" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 4; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cAy" = ( -/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAz" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cAA" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAB" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAC" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAD" = ( -/obj/structure/table, -/obj/item/weapon/kitchen/knife, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAE" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = 2 - }, -/obj/item/weapon/reagent_containers/food/snacks/mint{ - pixel_y = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAF" = ( -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Head of Personnel APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads) -"cAH" = ( -/obj/machinery/processor, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAI" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "garbage"; - name = "disposal coveyor" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAJ" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAK" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/mob/living/simple_animal/hostile/lizard{ - name = "Wags-His-Tail"; - real_name = "Wags-His-Tail" - }, -/turf/open/floor/plasteel, -/area/janitor) -"cAM" = ( -/obj/structure/table/wood, -/obj/structure/disposalpipe/segment, -/obj/item/toy/cards/deck/cas, -/obj/item/toy/cards/deck/cas/black{ - pixel_x = -2; - pixel_y = 6 - }, -/turf/open/floor/wood, -/area/library) -"cAN" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/main) -"cAP" = ( -/obj/structure/sign/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cAQ" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAR" = ( -/obj/machinery/door/window{ - dir = 1; - name = "AI Core Door"; - req_access_txt = "16" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cAS" = ( -/obj/effect/landmark/start/ai, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = -9 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = 0; - pixel_y = -31 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 27; - pixel_y = -9 - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = -28; - pixel_y = -28 - }, -/obj/machinery/requests_console{ - department = "AI"; - departmentType = 5; - pixel_x = 28; - pixel_y = -28 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cAT" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cAU" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "MiniSat External SouthWest"; - dir = 8; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/turf/open/space, -/area/space) -"cAV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cAW" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cAX" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "MiniSat External SouthEast"; - dir = 4; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/turf/open/space, -/area/space) -"cAY" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"cAZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cBa" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBb" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat AI Chamber South"; - dir = 2; - network = list("MiniSat") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBc" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBd" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cBe" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"cBf" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External South"; - dir = 2; - network = list("MiniSat"); - pixel_x = 0; - pixel_y = 0; - start_active = 1 - }, -/turf/open/space, -/area/space) -"cBg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/hydroponics) -"cBh" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"cBi" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"cBj" = ( -/obj/structure/table, -/obj/item/weapon/folder/blue, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cBk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cBl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cBm" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cBn" = ( -/obj/machinery/camera{ - c_tag = "Locker Room Toilets"; - dir = 8; - network = list("SS13") - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/locker/locker_toilet) -"cBo" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/crew_quarters/captain) -"cBp" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cBq" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cBr" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cBt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/toxins/explab) -"cBu" = ( -/obj/machinery/ai_status_display{ - pixel_y = 32 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/hor) -"cBv" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"cBw" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cBx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/research{ - name = "Research Division" - }) -"cBy" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/janitor) -"cBz" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine, -/area/toxins/xenobiology) -"cBA" = ( -/obj/machinery/button/massdriver{ - dir = 2; - id = "toxinsdriver"; - pixel_y = 24 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/toxins/mixing) -"cBB" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"cBC" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/storage/tech) -"cBD" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cBE" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine/vacuum, -/area/toxins/mixing) -"cBF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/atmos) -"cBG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/toxins/xenobiology) -"cBH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBI" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cBJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/atmos) -"cBK" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cBL" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cBM" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/paper/monitorkey, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/neutral{ - dir = 2 - }, -/area/engine/chiefs_office) -"cBN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/aft) -"cBO" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cBP" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine/air, -/area/atmos) -"cBR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"cBS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/AIsatextFS{ - name = "AI Satellite Hallway" - }) -"cBT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cBU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asmaint2) -"cBV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Security Office"; - req_access = null; - req_access_txt = "1" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"cBW" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_southmaint"; - name = "south maintenance airlock"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"cBX" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_se"; - name = "southeast of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"cBY" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_s"; - name = "south of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"cBZ" = ( -/obj/structure/table/wood, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/obj/item/clothing/under/burial, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cCb" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/device/flashlight, -/turf/open/floor/plating, -/area/construction) -"cCc" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/plating, -/area/construction) -"cCd" = ( -/turf/open/floor/plasteel, -/area/construction) -"cCe" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/construction) -"cCf" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"cCg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cCh" = ( -/obj/item/weapon/bedsheet/red, -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, -/turf/open/floor/plating, -/area/security/processing) -"cCi" = ( -/turf/closed/wall, -/area/security/vacantoffice2) -"cCj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"cCk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"cCl" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cCm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cCn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Detective's Office APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/port) -"cCo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cCp" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/blood/AMinus, -/obj/item/weapon/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/APlus, -/obj/item/weapon/reagent_containers/blood/random, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"cCq" = ( -/obj/machinery/deepfryer, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cCs" = ( -/obj/structure/mining_shuttle_beacon{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cCt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cCu" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/pod/dark, -/area/shuttle/transport) -"cCw" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cCx" = ( -/obj/machinery/computer/shuttle/ferry/request, -/turf/open/floor/pod/dark, -/area/shuttle/transport) -"cCy" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/shuttle/transport) -"cCz" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cCB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10; - pixel_x = 0; - initialize_directions = 10 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cCC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cCD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cCE" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/atmos) -"cCF" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/atmos) -"cCG" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"cCH" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"cCI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"cCJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"cCP" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"cCQ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"cCS" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"cCT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cCW" = ( -/obj/machinery/portable_atmospherics/canister/freon, -/turf/open/floor/plating, -/area/engine/engineering) -"cCY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/device/flashlight, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/weapon/pipe_dispenser, -/turf/open/floor/engine, -/area/engine/engineering) -"cDi" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDj" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cDl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/tool, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/engivend, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDp" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDs" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDv" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - icon_state = "filter_off_f"; - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop"; - on = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDz" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDC" = ( -/obj/item/weapon/wrench, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cDD" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - name = "scrubbers pipe"; - icon_state = "manifold"; - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cDE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cDF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cDG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cDH" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDL" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cDN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"cDS" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space) -"cDY" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) -"cDZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cEa" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cEd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Port"; - dir = 4; - network = list("SS13","Engine") - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEf" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cEg" = ( -/obj/machinery/status_display, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cEh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Starboard"; - dir = 8; - network = list("SS13","Engine"); - pixel_x = 0; - pixel_y = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEk" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cEl" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"cEr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Cooling Loop"; - on = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEt" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cEu" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - dir = 2; - network = list("Engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cEv" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cEw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cEx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cEy" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - icon_state = "manifold"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cEz" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cEA" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cEB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cEC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Gas"; - on = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cED" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEE" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space) -"cEK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cEL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cEM" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/item/weapon/tank/internals/plasma, -/turf/open/floor/plating, -/area/engine/supermatter) -"cET" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cEU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"cEW" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - icon_state = "connector_map"; - dir = 8 - }, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cFb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - icon_state = "pump_map"; - name = "Cooling Loop Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFe" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cFh" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cFj" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"cFk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Bypass" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFm" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"cFn" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space) -"cFo" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"cFu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cFw" = ( -/obj/structure/sign/electricshock, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cFy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cFA" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cFI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFJ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFL" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "co2"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Aft"; - dir = 2; - network = list("SS13","Engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cFP" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "plasma"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = ""; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFS" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFT" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGd" = ( -/obj/structure/closet/crate/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cGe" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cGg" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cGh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"cGi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/engine/engineering) -"cGj" = ( -/obj/structure/table, -/obj/item/weapon/pipe_dispenser, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGk" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGl" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cGs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cGt" = ( -/obj/structure/closet/wardrobe/engineering_yellow, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cGu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGw" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGx" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGz" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"cGC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"cGD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"cGE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cGH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cGI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_engineering{ - name = "Laser Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cGK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cGL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cGM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cGR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cGT" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGU" = ( -/obj/structure/reflector/double{ - anchored = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGV" = ( -/obj/structure/reflector/box{ - anchored = 1; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cGZ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cHa" = ( -/obj/machinery/airalarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"cHb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHc" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHd" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHj" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 8; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHl" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cHn" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"cHo" = ( -/obj/structure/reflector/single{ - anchored = 1; - dir = 1; - icon_state = "reflector" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHp" = ( -/obj/structure/reflector/single{ - anchored = 1; - dir = 4; - icon_state = "reflector" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cHr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"cHs" = ( -/obj/item/weapon/crowbar/large, -/turf/open/floor/plating, -/area/engine/engineering) -"cHD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - sortType = 14 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asmaint) -"cHE" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mech Bay Maintenance"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/assembly/chargebay) -"cHF" = ( -/obj/machinery/button/door{ - dir = 2; - id = "Skynet_launch"; - name = "Mech Bay Door Control"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHJ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_research{ - name = "Robotics Lab"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"cHL" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/assembly/chargebay) -"cHM" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"cHN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/circuit, -/area/assembly/chargebay) -"cHO" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "robo1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"cHP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/weapon/storage/belt/utility, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/assembly/chargebay) -"cHR" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "robo1" - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHT" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHU" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/assembly/robotics) -"cHV" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "robo2" - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"cHW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHX" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/device/multitool{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cHZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/assembly/robotics) -"cIa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/assembly/robotics) -"cIb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "robo2" - }, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cIc" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cId" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/assembly/robotics) -"cIe" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/assembly/robotics) -"cIf" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/assembly/robotics) -"cIg" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" - }, -/obj/docking_port/mobile/arrivals, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 15; - id = "arrivals_stationary"; - name = "arrivals"; - width = 7 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/arrival) -"cIh" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Port Docking Bay 1" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cIl" = ( -/obj/machinery/computer/med_data{ - icon_keyboard = "syndi_key" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIm" = ( -/obj/machinery/computer/crew{ - icon_keyboard = "syndi_key" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIn" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIo" = ( -/obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIp" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIq" = ( -/obj/machinery/computer/camera_advanced{ - icon_keyboard = "syndi_key" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIr" = ( -/obj/machinery/computer/secure_data{ - icon_keyboard = "syndi_key" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIs" = ( -/obj/structure/table/reinforced, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/obj/item/weapon/clipboard, -/obj/item/toy/figure/syndie, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIt" = ( -/obj/structure/chair/office/dark{ - dir = 8; - name = "tactical swivel chair" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"cIu" = ( -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"cIv" = ( -/obj/structure/chair/office/dark{ - dir = 1; - name = "tactical swivel chair" - }, -/obj/machinery/button/door{ - id = "syndieshutters"; - name = "Cockpit View Control"; - pixel_x = 32; - pixel_y = 32; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"cIx" = ( -/obj/structure/chair/office/dark{ - dir = 4; - name = "tactical swivel chair" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"cIy" = ( -/obj/structure/table/reinforced, -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/obj/item/weapon/storage/fancy/donut_box, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIz" = ( -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cIG" = ( -/obj/machinery/status_display, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"cIH" = ( -/obj/machinery/door/airlock/hatch{ - name = "Cockpit"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cII" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil/white, -/obj/item/stack/cable_coil/white, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIJ" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIK" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/zipties, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIL" = ( -/obj/structure/chair{ - dir = 4; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIN" = ( -/obj/structure/chair{ - dir = 8; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIO" = ( -/obj/structure/chair{ - dir = 4; - name = "tactical chair" - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIQ" = ( -/obj/structure/chair{ - dir = 8; - name = "tactical chair" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIR" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - dir = 5 - }, -/area/shuttle/syndicate) -"cIU" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cIY" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (EAST)"; - icon_state = "podhatch"; - dir = 4 - }, -/area/shuttle/syndicate) -"cJb" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJf" = ( -/obj/machinery/door/poddoor{ - id = "smindicate"; - name = "outer blast door" - }, -/obj/machinery/button/door{ - id = "smindicate"; - name = "external door control"; - pixel_x = -26; - pixel_y = 0; - req_access_txt = "150" - }, -/obj/docking_port/mobile{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate"; - name = "syndicate infiltrator"; - port_angle = 0; - roundstart_move = "syndicate_away"; - width = 18 - }, -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_nw"; - name = "northwest of station"; - turf_type = /turf/open/space; - width = 18 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; - dir = 1 - }, -/area/shuttle/syndicate) -"cJj" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJk" = ( -/obj/machinery/door/airlock/external{ - name = "Ready Room"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJl" = ( -/obj/item/weapon/storage/toolbox/syndicate, -/obj/item/weapon/crowbar/red, -/obj/structure/table/reinforced, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/podhatch{ - dir = 10 - }, -/area/shuttle/syndicate) -"cJm" = ( -/turf/open/floor/plasteel/podhatch, -/area/shuttle/syndicate) -"cJn" = ( -/obj/structure/chair{ - name = "tactical chair" - }, -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; - dir = 6 - }, -/area/shuttle/syndicate) -"cJr" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJs" = ( -/obj/machinery/door/airlock/external{ - name = "E.V.A. Gear Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJz" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; - dir = 6 - }, -/area/shuttle/syndicate) -"cJC" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJG" = ( -/obj/structure/chair{ - dir = 1; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJI" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJJ" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"cJO" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJR" = ( -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ - pixel_x = -3 - }, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 2; - pixel_y = 8 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJS" = ( -/obj/structure/table/reinforced, -/obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJW" = ( -/obj/item/weapon/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/stock_parts/cell/high, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJX" = ( -/obj/item/weapon/screwdriver{ - pixel_y = 9 - }, -/obj/item/device/assembly/voice{ - pixel_y = 3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJY" = ( -/obj/item/weapon/wrench, -/obj/item/device/assembly/infra, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cJZ" = ( -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/signaler, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKa" = ( -/obj/item/weapon/weldingtool/largetank{ - pixel_y = 3 - }, -/obj/item/device/multitool, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKb" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKg" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cKi" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cKq" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 9 - }, -/area/shuttle/syndicate) -"cKr" = ( -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (NORTH)"; - icon_state = "podhatch"; - dir = 1 - }, -/area/shuttle/syndicate) -"cKt" = ( -/obj/machinery/door/airlock/hatch{ - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKA" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 5 - }, -/area/shuttle/syndicate) -"cKC" = ( -/obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKD" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/obj/item/weapon/reagent_containers/glass/beaker, -/obj/item/weapon/reagent_containers/dropper, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKF" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 10 - }, -/area/shuttle/syndicate) -"cKN" = ( -/turf/open/floor/plasteel/podhatch{ - tag = "icon-podhatch (SOUTHEAST)"; - icon_state = "podhatch"; - dir = 6 - }, -/area/shuttle/syndicate) -"cKP" = ( -/obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKQ" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/l_arm/robot, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cKR" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Surgery"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cKS" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cKT" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/brute, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cKU" = ( -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cKY" = ( -/obj/item/device/sbeacondrop/bomb{ - pixel_y = 5 - }, -/obj/item/device/sbeacondrop/bomb, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cKZ" = ( -/obj/item/weapon/grenade/syndieminibomb{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/weapon/grenade/syndieminibomb{ - pixel_x = -1 - }, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/grenade/plastic/c4, -/obj/item/weapon/grenade/plastic/c4, -/obj/item/weapon/grenade/plastic/c4, -/obj/item/weapon/grenade/plastic/c4, -/obj/item/weapon/grenade/plastic/c4, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cLb" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Technological Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cLc" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/device/aicard, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"cLd" = ( -/obj/item/weapon/surgicaldrill, -/obj/item/weapon/circular_saw, -/obj/structure/table/reinforced, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cLf" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - pixel_x = 30 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"cLg" = ( -/obj/machinery/nuclearbomb/syndicate, -/obj/machinery/door/window{ - dir = 1; - name = "Theatre Stage"; - req_access_txt = "0" - }, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"cLk" = ( -/obj/item/weapon/cautery, -/obj/item/weapon/scalpel, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cLl" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cLm" = ( -/obj/item/weapon/retractor, -/obj/item/weapon/hemostat, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"cLn" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"cLq" = ( -/obj/machinery/recharge_station, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"cLr" = ( -/obj/machinery/telecomms/allinone{ - intercept = 1 - }, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"cLw" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"cLx" = ( -/obj/structure/shuttle/engine/propulsion, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"cLy" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"cLI" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"cLJ" = ( -/obj/structure/chair, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"cLK" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"cLL" = ( -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/arrival) -"cLM" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cLN" = ( -/obj/structure/table, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cLO" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cLP" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cLQ" = ( -/obj/machinery/light/small, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cLR" = ( -/obj/machinery/light, -/turf/open/floor/pod/light, -/area/shuttle/transport) -"cLS" = ( -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cLT" = ( -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/escape) -"cLU" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cLV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) -"cLW" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"cLX" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"cLY" = ( -/obj/structure/light_construct/small, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cLZ" = ( -/obj/structure/frame/computer{ - anchored = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMa" = ( -/obj/structure/light_construct, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMb" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"cMc" = ( -/obj/structure/light_construct{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMd" = ( -/obj/structure/light_construct{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMe" = ( -/obj/structure/light_construct/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMf" = ( -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMh" = ( -/obj/structure/light_construct/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cMk" = ( -/obj/structure/light_construct/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cMl" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"cMm" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/engineering) -"cMB" = ( -/obj/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating, -/area/shuttle/arrival) -"cMC" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cMG" = ( -/turf/open/floor/engine, -/area/engine/supermatter) -"cMK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/highpressure/fulltile, -/turf/open/floor/plating, -/area/engine/supermatter) -"cMN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("Engine"); - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cMO" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - dir = 2; - network = list("Engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"cMP" = ( -/obj/machinery/camera/motion{ - c_tag = "External Armory Camera"; - dir = 1; - network = list("SS13") - }, -/turf/open/space/basic, -/area/space) -"cMT" = ( -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cNj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"dEx" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/bar) -"efz" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"fqA" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"gDF" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"hDE" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/wood, -/area/maintenance/bar) -"iBV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) -"knZ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance Bar"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"kXN" = ( -/obj/structure/closet{ - name = "Glasware Storage" - }, -/obj/item/weapon/storage/box/beakers, -/obj/item/weapon/storage/box/drinkingglasses, -/turf/open/floor/wood, -/area/maintenance/bar) -"lhL" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/wood, -/area/maintenance/bar) -"lWq" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/maintenance/bar) -"lXh" = ( -/obj/structure/table/wood/poker, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/maintenance/bar) -"mFG" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/maintenance/bar) -"nQM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/bar) -"pIV" = ( -/obj/structure/girder, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/aft) -"rUp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/closed/wall, -/area/maintenance/bar) -"uyH" = ( -/obj/machinery/vending/kink, -/turf/open/floor/wood, -/area/maintenance/bar) -"uDj" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"viP" = ( -/obj/structure/rack, -/turf/open/floor/wood, -/area/maintenance/aft) -"wxf" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/maintenance/bar) -"xcD" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"xzP" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Maintenance Bar APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"yBG" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/wood, -/area/maintenance/bar) -"yMW" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"zOW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/tinted/fulltile, -/turf/open/floor/plating, -/area/maintenance/bar) -"BRv" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"DuX" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/maintenance/bar) -"DEO" = ( -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"Fjx" = ( -/obj/structure/window/reinforced/tinted/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/bar) -"HrP" = ( -/turf/closed/wall, -/area/maintenance/bar) -"Idt" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/maintenance/bar) -"IWx" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"JKV" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/arcade, -/turf/open/floor/wood, -/area/maintenance/bar) -"NIG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"PTH" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/wood, -/area/maintenance/aft) -"PVu" = ( -/obj/structure/table/wood/poker, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/maintenance/bar) -"QYV" = ( -/obj/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"RfJ" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"RvM" = ( -/obj/machinery/vending/cola/random, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/wood, -/area/maintenance/bar) -"RIF" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"Skc" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"SyT" = ( -/obj/structure/rack, -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/aft) -"SPf" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - icon_state = "intact"; - dir = 4 - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"Wia" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"WTn" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/maintenance/aft) -"XqK" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/turf/open/floor/wood, -/area/maintenance/bar) -"XAk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced/tinted/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/bar) - -(1,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(2,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(3,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(4,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(5,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(6,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(7,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(8,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(9,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(10,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(11,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(12,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(13,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(14,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(15,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyc -cye -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(16,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyw -cyi -cyw -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(17,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(18,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(19,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(20,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cMa -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(21,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(22,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(23,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyi -czd -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(24,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyw -cyi -cyw -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(25,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyc -cye -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(26,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(27,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyc -cye -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(28,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyc -cyw -cyi -cyw -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(29,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cpe -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -cyc -cyf -cym -cym -cym -cyF -aaa -cyc -cyw -cyi -cyi -cyi -cyw -cyc -aaa -cyf -cym -cym -cym -cyF -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(30,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaf -aaa -aqH -apK -aqH -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqF -apH -aqF -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyc -cyo -cyo -cyo -cyc -cyc -cyc -cMc -cyi -cyi -cyi -cMa -cyc -cyc -cyc -cyo -cyo -cyo -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(31,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aqH -cpK -aqH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqF -cxl -aqF -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyn -cyv -cyv -cyn -cyc -cyw -cyi -cyi -cyi -cyi -cyi -cyw -cyc -cyn -cyv -cyv -cyn -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(32,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aqH -cpL -aqH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqF -cxx -aqF -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cyc -cyn -cyv -cLY -cyc -cyi -cyi -cyi -cyi -cyi -cyi -czr -cyc -cMk -cyv -cyn -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(33,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -ckq -cqq -ckq -aaa -aaa -aaa -aCS -cMB -aCV -aCV -aCS -aaa -aaa -aaa -cwU -cxF -cwU -aaa -aaa -aaa -cxt -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -cyc -cyc -cyH -cyc -cyc -cyc -cyR -cza -cyR -cyc -cyc -cyc -cyH -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(34,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaa -aaf -arB -asE -cyb -asE -arB -aaa -aaa -aCS -aFC -aEr -aIG -aCS -aaa -aaa -arB -asE -cyb -asE -arB -aaa -cxt -cxD -cxt -aaa -aaf -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -cyc -cyc -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(35,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -auO -auP -cwT -aAC -aaa -aaa -aCS -cLJ -aEr -cLK -aCS -aaa -aaa -aAC -auO -auP -cxY -arB -aaa -cxy -cxC -cCy -aaa -aaf -aaa -aaf -aaa -aAC -aaf -aaa -aaa -cyc -cyc -cyw -cyI -cyi -cyi -cyi -cyi -cMd -cyi -cyi -cyi -cyi -cyi -cyc -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(36,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -apN -arC -arC -arC -arC -arC -arC -arC -aEp -apJ -avP -cyb -asE -arB -aaa -aCS -aCS -aCS -aHs -aCS -aCS -aCS -aaa -arB -asE -cyb -avP -arB -aaa -cxu -cLQ -cxu -aaa -arB -awW -awW -asE -arB -aaf -aaa -cyc -cyc -cyw -cyi -cyi -cyi -cyi -cyc -cyc -cyc -cyc -cyc -cyc -cyi -cyi -cyc -cyc -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(37,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN -apJ -awY -ayk -awW -aAD -awW -aCS -aEo -aEr -aEr -aEr -aKg -aCS -awW -awW -awW -aQG -aRX -arB -cxu -cxu -cCw -cxu -cxu -arB -awY -ayk -awW -aAD -awW -cyc -cyc -cyc -cyc -cyc -cyc -cyw -cyi -cyc -cyV -cyi -cMh -cyi -cye -cyi -cyi -cye -cyi -cyw -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(38,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN -apJ -awZ -ayl -azy -auP -cIh -aCU -aEr -aFE -aFE -aFE -aEr -aCU -azy -auP -cIh -ayl -aRY -awW -cxw -cxB -cxC -cxI -cxw -awW -awZ -ayl -beK -auP -cyt -cyd -cyi -cyi -cyx -cyx -cyw -cyc -cMa -cyc -cyW -cyi -cze -czm -cyc -cMc -cyi -cyc -cyi -czB -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(39,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -apJ -aqI -arD -arD -arD -atk -arD -arD -arD -auN -apJ -awZ -ayk -awW -awW -awW -aCS -aEq -aEr -aEr -aEr -cLL -aCS -awW -awW -awW -awV -aRY -awW -cxu -cxB -cxC -cxI -cxu -awW -awZ -ayk -awW -awW -awW -cyc -cyi -cyi -cyi -cyi -cyJ -cyc -cyi -cye -cyi -cMe -cyi -czl -cyc -cyi -cyi -cyc -cyi -cyi -cyw -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(40,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -aqI -arD -arD -asG -atl -awX -arD -arD -auN -apJ -awZ -cqr -azz -aAF -awW -aCV -aEt -aFE -aFE -aFE -aEr -aCV -awW -aOf -azz -aPu -aRY -awW -cxu -cLP -cxC -cxC -cxu -awW -awZ -aym -azz -aAF -awW -cyc -cyk -cyi -cyi -cyi -cyi -cyc -cyi -cyc -cyc -cyc -cyc -cyc -cyc -cyi -cyI -cyR -czA -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(41,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -aqI -arD -arD -arD -cCs -arD -arD -arD -auN -apJ -awZ -aIK -ayl -aAE -awW -aCV -aEs -aEr -aEr -aEr -aEr -aCV -awW -aOe -ayl -ayl -aRY -awW -cCu -cxC -cCx -cxC -cCz -awW -awZ -ayl -ayl -aAE -awW -cyc -cyj -cyi -cyi -cyi -cyi -cye -cyi -cyi -cyi -cMf -cyi -cyi -cyi -cyi -cyi -cyR -cyi -cyi -czC -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(42,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN -apJ -awZ -aIK -ayl -aAH -awW -aCV -aEv -aFE -aFE -aFE -aEr -aCV -awW -aOh -ayl -ayl -aRY -awW -cxu -cxC -cxC -cLR -cxu -awW -awZ -ayl -ayl -bgi -awW -cyc -cyi -cyi -cyi -cyi -cyi -cyc -cyw -cyi -cyi -cyi -cyi -cyi -cyi -cyi -czw -cyR -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(43,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -apJ -aqI -arD -arD -arD -arD -arD -arD -arD -auN -apJ -awZ -cry -azA -aAG -awW -aCV -aEu -aEr -aEr -aEr -aEr -aCV -awW -aOg -azA -aQH -aRY -awW -cxu -cxB -cxC -cxI -cxu -awW -awZ -ayn -azA -bgh -awW -cyc -cyi -cyi -cyi -cyi -cyw -cyc -cyc -cyc -cyR -cza -cyR -cyc -cyc -cyc -cyc -cyc -cyi -cyi -cyi -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(44,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -aqN -asD -asD -asD -cCt -asD -asD -asD -aFD -apJ -awZ -crz -awW -awW -awW -aCS -aEw -aFE -aFE -aFE -aKh -aCS -awW -awW -awW -awV -aRY -awW -cxw -cxB -cxC -cxI -cxw -awW -awZ -ayk -awW -awW -awW -cyc -cyi -cyi -cyi -cyw -cyc -cyw -cyi -cyi -cyi -cyi -cyi -cyi -cyX -cyX -cyX -cyc -cyi -cyi -cyw -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(45,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -apJ -apJ -apJ -ajZ -atp -asF -asF -asF -asF -apJ -axh -aIK -azy -auP -cIh -aCU -aEr -aEr -aEr -aEr -aEr -aCU -azy -auP -cIh -ayl -aRY -awW -cxu -cxw -cxE -cxw -cxu -awW -awZ -ayl -beL -auP -cyu -cye -cyi -cyq -cyi -cyc -cyw -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyw -cyw -czy -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(46,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -apJ -asH -atI -arE -ayq -ayq -auc -avp -axI -ayp -awW -aAD -awW -aCS -aEy -aEy -aEy -aEy -aEy -aCS -awW -awW -awW -aQG -aRX -arB -aaa -aWa -aXI -awW -aaa -arB -awY -ayk -awW -aAD -awW -cyc -cyc -cyc -cyz -cyc -cLZ -cyO -cyi -cyi -cyi -cyi -cyi -cyi -cyi -cyi -czx -czn -cyc -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(47,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amO -aac -aac -aac -aac -aac -aac -aac -aac -clO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -asF -asI -auQ -auQ -auQ -aCX -aub -aLu -axH -ayo -azB -awW -aaa -aCS -aEx -aFF -cIg -aFF -aKi -aCS -aaa -awW -aPt -aPu -aRY -arB -awW -awW -auP -awW -awW -arB -awZ -aym -azB -awW -aaf -aaa -aaa -cyc -cyy -cyc -czy -cyO -cyi -cyi -cyX -czb -cyX -cyi -cyi -cyi -cyi -cyw -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(48,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amO -aac -aac -aac -aac -aac -aac -cJO -cKb -cJO -cKD -cKQ -cLd -cLk -cLn -cLw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -asJ -avQ -axc -aCT -atb -aIH -apJ -clB -aIK -azC -arB -arB -arB -awW -awW -awW -awW -awW -arB -arB -arB -aPv -ayl -aRZ -asE -aAF -awW -cyl -awW -baF -asE -bbb -ayl -beN -arB -aaf -aaf -aaf -cyc -cyA -cyc -cyw -cyP -cyi -cyi -cyY -czc -cyX -cyi -cyi -cyi -cyw -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(49,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -cIR -cIY -cIY -cIY -cJz -aac -cJr -cIz -cIJ -cIJ -cKR -cIJ -cLl -cLn -cLx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -axG -aIK -aym -aAI -aBH -azz -azz -azz -azz -azz -azz -aLv -aBH -azz -aPu -ayl -ayl -aNh -aym -azz -ayl -azz -aPu -ayl -aIK -ayl -beM -aAC -aaf -aaf -aaf -aaf -aaf -cyc -cyc -cyc -cyR -cyR -cyR -cyR -cyR -cyR -cyR -cyc -cyc -cyc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(50,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -cIJ -cIJ -cIJ -cIJ -cIJ -cJJ -cJQ -cIz -cKq -cKF -cKS -cLf -cLm -cLn -cLy -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -alU -atJ -amC -aKf -bEJ -axb -ayr -azD -aAJ -azD -aCp -aEz -aFG -aHu -ayl -ayl -ayl -aNb -ayl -ayl -ayl -ayl -aTr -aUM -ayl -ayl -aWc -baG -ayl -aIK -ayl -beM -asE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(51,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amO -aac -aac -aac -clO -aaa -aaa -aac -cIJ -cIJ -cIJ -cIJ -cIJ -aac -cJR -cIz -cKr -cJm -cKT -aac -aac -aac -czv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aag -alU -alU -alU -aCW -amC -aud -alU -alU -atO -alU -alU -aBI -aBI -aBI -aBI -aBI -aNh -aKj -aLw -aLw -aLw -aLw -aQI -aNh -czK -czK -czK -czK -aXX -czK -czK -bbc -beO -beO -beO -beO -beO -beO -beO -beO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(52,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -cIl -cIs -cIz -aac -czz -aaa -aac -cIU -cJb -cJj -cJr -cJC -aac -cJS -cIz -cKr -cJm -cKU -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aqJ -amC -aqJ -ase -avq -aum -avq -axJ -cwH -axJ -aAj -aBK -aCL -aEG -aFI -aBI -aIM -aKk -aLy -aNd -aOj -aPx -aQJ -ayl -czK -aUO -aUy -aWm -aWf -aUQ -czK -bhN -bcl -beQ -bgk -bhI -bjb -bkz -blS -bnv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(53,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -cIm -cIt -cIz -aac -aac -aac -aac -aac -aac -aac -cJs -coh -aac -aac -aac -cKt -coh -aac -aac -aac -clO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -alU -alU -alU -asc -atn -aLt -aue -aue -aue -aue -aAe -aBJ -aCs -aEE -aFH -aGZ -aIJ -aJX -aLi -aMO -aNR -aOY -aQl -bcD -aTs -aUN -baH -aWi -aXY -baH -aTs -bbd -beO -beP -bgj -beO -bja -beO -bja -bja -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(54,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -cIn -cIu -cIz -cIG -cII -cIL -cIO -cIL -cIL -coh -cIJ -cIJ -cIJ -cIJ -cKg -cKr -cJm -cIz -coh -cLn -cLw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -apL -aqK -alU -asc -atq -aon -amC -axe -ays -alU -aAM -aBI -aCY -aEI -aFK -aHy -aIM -aKk -aLz -aNe -aNe -aLz -aQo -aSb -czK -aUQ -aUA -aWr -aXZ -aUQ -czK -bbe -beO -beS -bgj -bhJ -bjd -bkB -cAI -bja -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(55,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -cIo -cIv -cIz -cIH -cIJ -cIu -cIu -cIu -cIJ -cJk -cIJ -cIu -cIu -cIu -cIu -cKr -cJm -cIz -cLg -cLn -cLx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -alU -alU -apM -aqL -alU -asc -atq -auX -avS -amC -amC -alU -aAM -aBI -aDc -aEH -bxM -aHa -aIL -aJY -aLj -aMP -aMP -aPa -aQn -ayl -czK -aUP -aUO -aXL -aXZ -aUO -czK -bbe -beO -beR -bgj -bgj -bjc -cAF -cAF -bja -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(56,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -cIp -cIu -cIz -aac -cIK -cIN -cIQ -cIN -cIN -coh -cIJ -cIJ -cIJ -cIJ -cKi -cKr -cJm -cIz -coh -cLn -cLy -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aba -aaS -aaS -aaf -aaf -aaf -aaa -aaa -aaa -alU -aoS -amC -aom -ank -asc -atq -auZ -bsU -axf -amC -alU -auT -aBI -aDf -aEK -aFM -aHy -ayl -aKk -aLA -aNf -aNf -aLA -aQD -aSd -czK -aUQ -aUW -aXL -aXZ -baJ -czK -bbe -beO -beU -bgl -bhL -bjc -cAF -blV -beO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -chJ -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(57,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -cIq -cIx -cIz -aac -aac -aac -cmp -aac -aac -aac -cof -coh -aac -aac -aac -cKt -coh -aac -aac -aac -cmE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abY -aaa -aaf -aaa -aaf -aaa -aaf -aaa -acy -aaa -aaf -aaa -aiS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -alU -aoR -apO -aqM -arF -asc -atq -auY -amC -amC -ayt -alU -aAw -aBl -aCZ -aEJ -aFL -aBI -aIO -aKk -asE -asE -asE -asE -aQD -ayl -czK -aUl -aUR -aWs -aXZ -aUQ -czK -bbf -beT -beT -bdQ -beZ -bje -bkC -cAJ -beO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aaf -aaf -aaa -chI -aaa -aaf -aaf -aaS -aaS -aba -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(58,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -cIr -cIy -cIz -aac -czv -aaa -aaa -aaa -aac -cJl -cIJ -cJG -aac -cJW -cIz -cKr -cJm -cKY -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abY -aaa -acV -adv -adZ -aaa -acV -adv -adZ -aaa -acV -adv -adZ -aaa -aaS -aaf -aaf -aaf -aaa -aaa -aaa -alU -aoT -amC -aqO -arG -asc -atq -ava -amC -axg -ayu -azF -azF -azF -azF -azF -azF -azF -aIQ -aKk -aLC -aNg -aOk -aPy -aRd -aRM -aTt -aUm -aUm -aWt -aYd -aZn -aTt -bbg -bdG -bdu -bdT -beO -bjf -beO -beO -beO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaa -aaf -aaa -aaf -aaa -aaa -chI -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(59,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bJS -aac -aac -aac -cmE -aaa -aaa -aaa -aaa -cJf -cJm -cIJ -cJG -aac -cJX -cIz -cKr -cJm -cKZ -aac -aac -aac -czz -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -abY -aaf -acV -adu -adZ -aaa -acV -adu -adZ -aaa -acV -adu -adZ -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -alU -alU -alU -alU -arG -ash -atq -alU -alU -alU -alU -azF -aAP -aAP -aAP -aEF -aFN -azF -aIP -aKl -aLB -aLB -aLB -aLB -aQK -aSe -czK -aUQ -aUQ -aXN -aUO -aUQ -czK -bcI -aPz -bdt -bdR -aSg -aYf -bkD -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -cca -cca -cca -cca -cca -aaa -chK -aaa -cca -cca -cca -cca -cca -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(60,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cni -cJn -cIJ -cJI -cIG -cJY -cIz -cKA -cKN -cKS -cIJ -cLq -cLn -cLw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abY -aaa -acV -adu -adZ -aaf -acV -adu -adZ -aaf -acV -adu -adZ -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -ali -aoX -arI -asi -atr -atN -atN -atN -ayi -azq -aAK -aBv -aDa -aAQ -aAQ -azF -aIR -ayl -ayl -aNi -ayl -ayl -ayl -aSf -aTq -aTq -aTq -aTq -aTq -aTq -aTq -aPz -aPz -bdB -aWv -aTu -bjg -bkD -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -ccc -ccX -ccX -ccX -ccX -cgz -chL -ciP -cjH -cjH -cjH -cjH -cnl -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(61,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bJS -aac -aac -aac -aac -cJZ -cIz -cIJ -cIJ -cLb -cIJ -cLr -cLn -cLx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -acV -adu -adZ -aaa -acV -adu -adZ -aaa -acV -adu -adZ -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaf -aaa -ali -amC -arH -atP -auV -auV -auV -axK -ayh -azi -aAx -aBm -aAQ -aAQ -aAQ -azF -azF -azF -aLD -aNh -aNh -aPz -aPz -aPz -aPz -aSg -aWj -aXP -aZr -baL -bbI -bcK -aPz -bdB -aWv -bfh -aPz -aPz -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -aaf -ccb -ccb -ccb -ccb -ccb -aaa -chL -aaa -ccb -ccb -ccb -ccb -ccb -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(62,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cnW -aac -cKa -cIz -cKC -cKP -cLc -cKi -cLq -cLn -cLy -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaf -aaa -acV -adu -adZ -aaa -acV -adu -adZ -aaa -acV -adu -adZ -aaa -aaf -aaa -ajV -alR -alR -alR -alR -alU -alU -alU -aqP -arJ -alU -avb -aaH -bOi -atO -asK -azF -aAT -aBw -aDg -aAQ -aAQ -aHz -aIS -aKn -aLF -aLF -aLF -aPz -aQL -aSg -aSg -aSg -aWl -aSg -aZs -baN -bbK -bcM -bdH -bdD -bea -bfq -bji -bkF -cys -cys -cys -cys -cys -cys -cys -cys -cys -cys -cys -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -aaa -aaa -aaa -aaf -aaa -aaa -aaa -chL -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aba -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(63,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bJS -aac -aac -aac -aac -aac -aac -aac -aac -cmE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaa -aaa -adw -aaa -aaa -aaa -adw -aaa -aaa -aaa -adw -aaa -aaa -ajV -ajV -ajV -alQ -amy -ang -alR -aoj -amC -apP -amC -arH -alU -aaH -bNb -apQ -atO -asK -azF -aAS -aFP -aAQ -aAQ -aAQ -aAQ -aAQ -aKm -aLE -aNj -aLE -aPz -aPz -aPz -aTu -aUS -aWk -aWk -aWk -baM -bbJ -bcL -aWk -bdC -bdZ -bhO -bjh -bkE -cys -cyB -cyB -cyB -cyB -cMb -cyB -cyB -cyB -czf -cys -czs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -aaf -cca -cca -cca -cca -cca -aaa -chL -aaa -cca -cca -cca -cca -cca -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(64,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -abs -abZ -abZ -acW -ady -ady -ady -ady -ady -ady -ady -ady -ady -ady -ajq -ajW -akB -alh -alT -amA -ani -anI -aol -aol -aol -aol -arL -alU -avU -avb -bOi -atO -asK -azF -aAU -aBG -aAQ -aAQ -aAQ -aBM -aAQ -aKn -aLE -aNl -aOm -aPB -aQM -aQM -aTv -aUT -aPz -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -bhQ -bjj -bkF -cys -cyB -cyB -cyB -cyB -cyB -cyB -cyB -cyB -cyB -czp -czt -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -aaa -ccc -ccX -ccX -ccX -ccX -cgz -chL -ciP -cjH -cjH -cjH -cjH -cnl -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(65,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaa -aaa -adx -aaa -aaa -aaa -adx -aaa -aaa -aaa -adx -aaa -aaa -ajV -ajV -ajV -alS -amz -anh -anH -aok -anJ -anJ -aFJ -arK -alU -alU -ali -alU -atO -asK -azF -aAP -aAP -aAP -aAQ -aFO -aHA -aIT -azF -aLG -aNk -aOl -aPA -aPA -aPA -aPA -aPA -aPA -aXQ -aZt -aXQ -aZt -aXQ -aZt -aXQ -aZt -bhQ -bjj -bkF -cys -cLX -cyB -cyB -cyB -cyB -cyB -cyB -cyB -cyB -czp -czt -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -acy -ccb -ccb -ccb -ccb -ccb -aaa -chL -aaa -ccb -ccb -ccb -ccb -ccb -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(66,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aba -aaS -aaf -aaa -acV -adz -adZ -aaa -acV -adz -adZ -aaa -acV -adz -adZ -aaa -aaf -aaa -ajV -alR -alR -alR -alR -aom -amC -apP -amC -arN -amC -amC -amC -amC -axi -asK -azF -azF -azF -azF -aEL -azF -azF -azF -azF -aLE -aNn -aOl -aPA -aQO -aSh -aTw -aUU -aWn -aXQ -aZv -aXQ -bbL -aXQ -bdJ -aXQ -bgr -bhQ -bjj -bkF -cys -cyB -cyB -cyB -cyB -cyB -cyB -cyB -cyB -cyB -czp -czt -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aba -aaa -aaa -aaa -aaf -aaa -aaa -aaa -chL -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(67,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -acV -adz -adZ -aaa -acV -adz -adZ -aaa -acV -adz -adZ -aaf -aaf -aaa -aaa -alU -alF -anj -anJ -anl -aoU -alU -amC -arM -alU -atT -asO -avV -atO -ayw -atN -aAV -alU -aDh -aDo -aFQ -aHe -aIN -aKp -aLE -aNm -aOl -aPA -aQN -aQN -aQN -aUn -aTy -aWy -aYe -aZw -aZw -bbq -bct -bfa -bfa -bhQ -bjk -bkE -cys -cyB -cyB -cyB -cyB -cyS -cyB -cyB -cyB -czf -cys -czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaS -aaf -cca -cca -cca -cca -cca -aaa -chL -aaa -cca -cca -cca -cca -cca -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(68,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -acV -adz -adZ -aaf -acV -adz -adZ -aaf -acV -adz -adZ -aaa -aaf -aaf -aaf -alU -alF -anl -amC -alU -alU -alU -amC -alU -alU -apP -alU -alU -atP -auV -axK -aAN -aBL -aDd -aDd -aFR -aDd -aDd -aJZ -aLk -aNo -aOo -aPA -aQQ -aQN -aSV -aUo -aUX -aXp -baO -aZo -baw -bcO -baw -cBn -bgs -bhQ -bjk -bkF -cys -cys -cys -cyN -cyQ -cys -cyT -cyZ -cys -cys -cys -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aoV -bZm -aoV -aoV -aoV -aaa -aaS -aaa -ccc -ccX -ccX -ccX -ccX -cgz -chL -ciP -cjH -cjH -cjH -cjH -cnl -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(69,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -acV -adz -adZ -aaa -acV -adz -adZ -aaa -acV -adz -adZ -aaf -aaf -aaa -aaa -alU -alU -ank -alU -alU -aoV -alU -amC -amC -amC -arN -alU -avW -amC -ayx -atO -aAL -aBQ -aDb -aDo -aFY -aDo -aDo -aKp -aLE -aLE -aOn -aPA -aQP -aQN -aTx -aUV -aWo -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -aXQ -bhQ -bjk -aPz -aaa -aaa -boI -bqi -brJ -boI -brJ -bvS -boI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aoV -bVz -apQ -apQ -aoV -aaa -aaS -aaf -ccb -ccb -ccb -ccb -ccb -aaa -chL -aaa -ccb -ccb -ccb -ccb -ccb -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(70,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -acV -adA -adZ -aaa -acV -adA -adZ -aaa -acV -adA -adZ -aaa -aaS -aaa -aaa -alU -amD -anm -amC -ali -aoV -ali -amC -alU -asO -atL -alU -avX -axf -amC -atO -aAY -aBQ -aDl -bxk -aFS -aDo -aIX -aBQ -aLE -aLE -aOp -aPA -aQR -aQN -aTA -aUq -aWq -aXs -aYH -aZx -bbO -aPA -bdM -aPz -bgt -bhS -bjk -aPz -aaa -aaa -blW -bqj -brK -blW -brK -bvT -blW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -bVw -bVz -bVw -bVw -aoV -aaa -aaS -aaa -aaa -aaf -aaa -aaf -aaa -aaa -chL -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(71,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaS -aaf -aaf -alU -amC -amC -amC -ali -apQ -ali -amC -alU -alU -alU -alU -alU -axj -alU -atO -aAY -aBQ -aDk -aDo -aDo -aDo -aIW -aBQ -aLE -aLE -aOl -aPC -aQN -aQN -aTz -aUp -aWq -aXr -aZx -cBh -bbN -aPA -bdL -aPz -bgt -bhR -bjk -aZE -blW -blW -blW -bqi -cyD -blW -cyD -bvS -blW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -apQ -bVz -aoV -bVw -aoV -aaa -aaS -aaS -aaS -aaf -aaf -aaf -aaf -aaf -chM -aaf -aaf -aaf -aaf -aaf -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(72,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aba -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaa -aaa -alU -amE -ann -amC -alU -aoV -ali -amC -alU -arN -atU -alU -atU -amC -atJ -atO -aAY -aBQ -aDn -aDo -aDo -aHD -aIZ -aBQ -aLE -aLE -aOq -aPD -aQT -aQT -aTC -aUs -aUY -aXv -aYS -aZx -bbO -aPA -bdM -aPz -aSg -bhT -bjk -aZE -blY -bnw -boJ -bql -brL -btr -bnw -bvV -blW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -apQ -bVz -apQ -bVw -aoV -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -cfx -chO -cfx -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(73,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -alU -alU -ank -alU -aoV -alU -amC -amC -amC -amC -alU -aqO -amC -atJ -atO -aAY -aBQ -aDm -aDo -aDo -aDo -aIY -aBQ -aLE -aLE -aOl -aPA -aQS -aSj -aTB -aUr -aWq -aXt -aPA -aPA -aPA -aPA -aPA -aPz -bel -bfI -bgq -bhY -bkj -bqm -bqm -bps -bjr -bjr -buB -bvU -aZE -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aag -aaa -bVx -caf -aoV -bVw -apQ -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -cfx -chN -cfx -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(74,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -amF -alU -amC -alU -apQ -alU -alU -alU -alU -amC -alU -atM -axl -auV -azG -aAY -aBQ -aDp -aDo -aFU -aDo -aJb -aKp -aLE -aLE -aOl -aPE -aQV -aQN -aSi -aUu -aWq -aXw -aZB -aZB -aZB -aZB -aPA -bfc -bew -bfM -bjl -bkG -bkp -bmj -bjt -cCo -bjt -bjt -biq -bvV -blW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bCq -bCq -bCq -bLv -bCq -aoV -cbj -aoV -bVw -apQ -aaf -bCq -bCq -bCq -bCq -bCq -bCq -cfx -cfx -cyK -cfx -cfx -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(75,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -alU -alU -amC -alU -apQ -aaH -alU -arO -alU -amC -avc -atO -axk -ayy -ayy -aAO -aBN -aDe -aDe -aFT -aDe -aIU -aKa -aLH -aLE -aOl -aPA -aQU -aQN -aQN -aUt -aWq -aXw -aZA -aZA -aZA -aZA -aPA -aWv -aYb -aZE -aZE -aZE -bkn -bmh -bjr -bmb -bjr -bjr -buC -bvV -blW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bCq -viP -PTH -bSn -PTH -bCq -cbj -bLv -bXv -bLv -aaf -bCq -cAy -cAB -ccY -cAD -cAH -cfw -cgA -chP -ciQ -cfw -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(76,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -anK -ali -aaH -atR -alU -alU -alU -atW -atW -atO -axn -alU -aoX -atJ -aBQ -aDq -aDo -aFZ -aHE -aJc -aKs -aLK -aLK -aOr -aPA -aQX -aQN -aQN -aUv -aWp -aXA -aYX -aYX -aYX -bbs -bcw -bfd -bgw -aZE -bjn -bjr -bkt -bmh -boK -bpz -boK -bjr -bkt -bvV -blW -aaa -aaa -aaa -aaa -aaa -akD -akD -ajX -akD -ajX -akD -akD -aaa -bCq -bPS -bPS -bPS -bPS -bCq -cbk -bLv -bHE -bLv -aaf -bCq -cAA -bHE -bHE -ccZ -cAK -cfw -cgC -chR -ciS -cfw -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(77,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alU -amC -alU -aaH -apQ -apQ -aaH -alU -ali -ali -atO -axm -ayz -ayz -ayz -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aLJ -aLE -aOl -aPA -aQW -aQW -aTD -aQW -aUZ -aXx -aYU -aYU -aYU -bbr -bcu -bfe -bgx -aZE -bjm -bjr -bjr -bmh -boK -bjr -boK -bjr -bjr -bvV -bxu -aaa -aaa -aaa -aaa -aaa -akD -bGg -amI -cMl -bHx -anM -akD -aaa -bLv -bPR -SyT -PTH -bTs -bCq -bVy -bLv -cyE -bLv -bLv -bCq -bHE -cAC -ccZ -cAE -ceV -cfw -cgB -chQ -ciR -cfw -aag -aag -aag -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(78,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -aKY -ali -asC -apQ -aaH -apQ -aoV -aoV -apQ -avY -axo -ayB -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aKu -aLM -aLF -aOs -aPG -aPG -aPG -aPG -aPG -aPA -aPA -aPA -aPA -aPA -aPA -aPA -aWv -bgx -aZE -bjp -bjr -bjr -bmh -boK -bjr -cBp -bjr -buB -bvV -bxu -bxu -bxx -bxu -bxu -bDi -ajX -bGh -bHx -amI -bHx -bLt -bMF -aaa -bCq -bPS -bTs -bPS -bTu -bCq -bVB -bHE -bHE -bYu -bZk -bCq -bTz -bCq -bCq -bCq -bCq -cfw -cgE -chS -cfw -cfw -bCq -bXv -bCq -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(79,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaf -ali -amC -ali -asC -aaH -apQ -aoV -aoV -aoV -aoV -avY -axo -ayA -aaf -aBa -aBa -aBa -aBa -aBa -aBa -aaf -aKt -aLL -bDe -aOl -aPF -aQY -aSk -aTE -aPG -aWu -aYa -aZD -aZD -aZD -aZD -aZD -bff -bfk -aZE -bjo -bjr -bjr -bmh -boK -bjr -boK -bjr -bjr -bub -bxu -bvF -bzP -bAS -bxu -aaa -akD -bGg -amI -amI -bHx -bLs -akD -aaa -bLv -bPT -PTH -PTH -bTt -bCq -bVA -bWw -bXw -bYt -bZj -bCq -bHE -bCq -bSq -cdW -ceW -bCq -cgD -cgH -bHE -cjI -bCq -clA -bCq -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(80,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -ali -alU -alU -amC -alU -alU -alU -aaH -apQ -aoV -apQ -apQ -avY -axo -ayA -aaa -aBa -aBT -aDs -aEN -aGb -aBa -aaa -aKt -aLN -aLE -aOl -aPH -aRa -aRa -aTG -aPG -aWw -aYc -aZF -aZF -aZF -aZF -aZF -aZF -bgy -aZE -bjr -bjr -ama -bmh -bjr -bjr -bjr -bjr -bjr -bvX -bxu -byA -bzR -byd -bxx -aaa -akD -akD -ajX -bJc -ajX -akD -akD -aaa -bCq -DEO -bCq -bCq -SPf -bCq -bVD -bWy -bXx -bYw -bZj -bYy -bHE -bTz -bHE -cdY -ceY -bCq -bHE -cgH -bHE -bLu -bCq -cyE -bCq -aaa -aaa -aaf -aaa -bCq -bCq -bLv -bLv -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(81,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -alV -amG -ano -amC -aon -aoW -alU -aqQ -aqQ -aqQ -aqQ -aqQ -avZ -axp -ayC -azH -aBb -aBS -aDr -aEM -aGa -aHF -aJd -aKv -aLN -aLE -aOl -aPF -aQZ -aRa -aTF -aPG -aSX -aWC -baS -aZI -baS -baS -bdS -bdU -ckQ -aZE -bjq -bjr -bjr -bmh -bjr -bjr -bjr -bjr -bjr -bjr -bxw -byz -bzQ -byc -bxx -aaa -aaa -bGi -bGi -bJb -bGi -bGi -aoV -aoV -bCq -bPU -bHE -bSp -bTv -bCq -bVC -bWx -bWy -bYv -bZl -bCq -bHE -bCq -cda -cgF -bCq -cqn -cAh -chT -bHE -bHE -ckv -bHE -bCq -bLv -bLv -bLv -bLv -bCq -ciT -cqK -crl -bLv -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(82,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -aKY -amC -anp -amC -amC -amC -ank -aqR -aqR -aGh -aqR -aqR -awb -axo -ayA -aaa -aBa -aBV -alu -aEM -aGd -aHG -aJe -aKw -aLP -aMR -aNU -aPJ -aPJ -aPJ -aPJ -aPJ -aVC -aXJ -bgA -aZp -baY -bcJ -bcF -bfg -bgA -bhW -bjt -biq -bjr -bmh -bjr -bqn -brN -brN -brN -brN -bxx -byC -bzT -byl -bxx -aaf -aaf -bGi -bHz -byE -bKk -bGi -aoV -aoV -bCq -bPW -bCq -bCq -RIF -bCq -bVF -bWA -bXy -bYx -bWz -bCq -bHE -bCq -bQa -cpY -cyL -cqy -cAi -bQa -bHE -bHE -bHE -bHE -bHE -bHE -bHE -bHE -bHE -cpR -bHE -cAQ -crm -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(83,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -alW -amH -ano -anL -aoo -aoX -alU -aqQ -aqQ -aqQ -aqQ -aqQ -awa -axq -ayD -azI -aBc -aBU -aDt -aEO -aGc -aHF -aJd -aKb -aLN -aMQ -aNT -aPI -aRb -aRb -aRb -aRb -aWx -aXE -baS -baS -bbP -bcR -bcE -baS -bex -bhY -bgu -bic -bku -bmh -bjr -aZE -brM -bts -buD -bvY -bxx -byB -bwS -byg -bxx -aaa -aaa -bGi -bHy -byE -bKj -bGi -aoV -aoV -bCq -bHE -bHE -bSq -bTx -bCq -bVE -bWz -bHE -bHE -bLu -bCq -bLu -bCq -cdb -bSs -bCq -bCq -cgG -bCq -bCq -bCq -bCq -bTz -bCq -bLv -bLv -bLv -bLv -bCq -cqv -cqL -bJe -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(84,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ali -ali -alU -alU -ali -alU -alU -alU -aaa -aaa -aaa -aaa -aag -avY -axo -ayA -aaa -aBa -aBW -aDv -aEP -aGe -aBa -aaa -aKt -aLN -aMS -aOt -aPK -aPK -aPK -aPK -aPK -aWA -aXM -bfi -cBi -bbS -bcS -bbt -bfi -beD -aZE -aZE -biA -bmg -bmH -bkJ -aZE -aZE -aZE -aZE -aZE -bxu -byD -bwU -byn -bxu -aaa -bxy -bxy -bxy -bJd -bKm -bxy -apQ -apQ -bCq -pIV -WTn -bCq -bCq -bCq -bCq -cMT -HrP -HrP -HrP -HrP -zOW -HrP -HrP -HrP -HrP -HrP -cgH -bLv -aaa -bCq -ckv -bHE -bCq -aaa -aaa -aaf -aaa -bCq -bCq -bCq -bCq -bCq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(85,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -avY -axo -ayA -aaf -aBa -aBa -aBa -aBa -aBa -aBa -aaf -aKt -aLN -aMS -aOi -aLE -aPK -aSl -aTH -aPK -aWz -aWC -aZE -aZE -aZE -bcT -aZE -aZE -aZE -aZE -bju -biv -bmf -bmt -boN -bqo -brO -btt -buE -bvZ -bxu -bxx -bwT -bym -bxu -bxy -bxy -bGj -bHA -bHA -bKl -bxy -aaH -aaH -bCq -bPX -bRg -bRg -bCq -bHE -bVG -bHE -HrP -lhL -efz -efz -fqA -efz -efz -XqK -efz -HrP -cgH -bLv -aaa -bLv -bJf -ccd -bCq -aaa -aaa -aaf -aaa -aaa -aaf -aaf -cig -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(86,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akD -akD -ajX -akD -akD -ajX -akD -akD -akD -aaa -aaa -aaa -aaa -aaa -aag -avY -axs -ayF -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aKx -aLN -aMS -aOi -aLE -aRc -aSm -aTJ -aPK -cCl -aYh -cCm -cCm -cCm -cCn -aPz -bdW -aSg -aZE -bgz -biT -boU -bmP -buF -bbR -bbR -btu -bbR -bOL -bxy -byF -bwW -bGm -bCo -bDk -bEK -byE -byE -byE -byE -bGi -apQ -apQ -bLv -bQa -bHE -bHE -bCq -bHE -HrP -HrP -HrP -efz -dEx -efz -efz -uDj -efz -efz -RfJ -HrP -cgH -bLv -aaf -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -aaa -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(87,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -ajX -akC -alj -alY -amI -amI -anM -aop -aoY -aaa -aaa -aaa -aaf -arP -avd -avZ -axr -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -aLl -aMT -aOu -aPL -aPK -aSm -aTI -aPK -aWB -cCj -apd -apd -bbU -cCk -apd -aZE -bgB -bhX -bgv -biF -bkw -bnE -bny -btv -btv -bjv -btv -buc -bxz -bBa -bwV -byy -bBa -bAb -bzY -bBa -bEQ -bGM -bKn -bGi -aoV -aoV -bLv -bPZ -bHE -bHE -bTz -bHE -HrP -RvM -fqA -dEx -PVu -yMW -efz -efz -dEx -dEx -efz -HrP -cgH -bLv -aaa -cjJ -ckw -clC -cmy -cnm -cnL -cov -cpj -cpS -cjJ -aaa -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(88,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ajX -akF -alm -akD -cLI -amI -amI -aop -aoY -aaa -aaa -aaa -aaf -arP -ave -awa -axu -ayH -ayH -ayH -ayH -ayH -ayH -aFV -ayH -ayH -aKy -aLn -aMU -aOw -aPN -aPK -aSn -aTK -aPK -apd -cCj -asW -baW -bLE -bLG -apd -bfj -bgC -bia -aZK -bjs -bkx -bmQ -bnA -bpB -bpB -brR -bsV -bwc -bxA -bvI -bwX -byG -bvI -bAm -bBG -bDo -byE -byE -bKp -bGi -apQ -apQ -bLv -bHE -bHE -bSs -bCq -bHE -HrP -yBG -efz -dEx -lXh -dEx -efz -gDF -hDE -IWx -efz -Fjx -cgH -bLv -aaa -cjJ -cky -clE -cmA -cno -cnN -cox -cpl -cpU -cjJ -aaf -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(89,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -adB -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ajX -akE -all -alZ -amJ -anr -amI -aop -aoY -aaa -aaa -arP -arP -arP -cya -avZ -axt -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -aLm -aMS -aOv -aPM -aPQ -aPQ -aPQ -aPQ -apd -aYi -aqW -aqW -bbQ -bLG -apd -aZH -aZK -bhZ -aZK -bkM -bfQ -bnG -bnz -bpA -bbR -bkM -bqs -bud -bxy -bvG -bAZ -bGm -bzF -bAc -bGm -byE -cBB -byE -bKo -bxy -aaH -aaH -bCq -bHE -bRh -bSr -bCq -bHE -zOW -efz -efz -dEx -mFG -dEx -uDj -dEx -IWx -efz -efz -Fjx -cgH -bLv -aaf -cjJ -ckx -clD -cmz -cnn -cnM -cow -cpk -cpT -cjJ -aaa -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(90,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -afA -afA -afA -afu -afA -aaa -aaa -aaa -aaa -aaa -aaa -akD -akD -alo -akD -akD -akD -anO -akD -akD -aaa -aaa -arP -asQ -aqR -aqR -avZ -axt -ayG -azK -aBe -aBe -aDj -aER -aFX -aHj -aJa -aKc -aLp -aMV -aOy -aLE -aPQ -aRV -aSW -aVa -apd -aWE -aqW -aqW -bcG -bLG -apd -aZH -bgD -bfN -bgE -bjv -bkH -bfm -boS -bfm -bNK -bkN -bml -bwe -bwe -bwd -bwY -byJ -bwe -bAc -bBI -bGn -bGn -bGn -bKq -bxy -apQ -apQ -bCq -bOK -bCq -bCq -bCq -bHE -knZ -RfJ -lhL -efz -dEx -efz -efz -Wia -IWx -lhL -lWq -Fjx -cgH -bLv -aaa -cjJ -cky -clG -cmB -cnq -cnP -coz -cpn -cjJ -cjJ -aaa -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(91,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -afA -aea -aeH -aft -afA -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiU -aln -aiU -aaa -aiU -anN -aiU -aaa -aaa -aaa -arP -asP -aqR -aqR -awb -axt -ayG -azJ -aBd -aBX -aDi -aEQ -aFW -aHh -aIV -ayG -aLN -aMS -aOx -aPc -aRe -aRT -aSt -aWF -apd -aWG -aZa -baX -bcH -bdE -apd -aZH -bnL -bbR -boU -bkM -bfm -bnI -boR -bqs -bbR -bkM -bNM -bwd -bxB -bvL -byI -byH -bwe -bAn -bBH -bxy -bxy -bxy -bxy -bxy -bLv -bLv -bCq -bHE -bLv -aaa -bLv -bHE -zOW -efz -uDj -efz -efz -efz -efz -dEx -IWx -fqA -Idt -HrP -cgH -bLv -aaa -cjJ -ckz -clF -cmy -cnp -cnO -coy -cpm -cjJ -aaf -aaf -crn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abY -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(92,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abc -abu -abu -abu -afA -afA -aec -aeJ -afw -afA -afA -aaf -aaa -aaf -aaf -aaf -aaf -aiU -alp -aiU -aaa -aiU -alp -aiU -aaf -aaf -aaf -arP -arP -arP -arP -avZ -axt -ayG -azM -aBg -aBZ -aDx -aET -aET -bCx -aHJ -aKd -aLq -aMY -aOA -aPO -aRf -aSc -aSc -aUw -apd -aXK -avr -aZJ -bbT -bSy -apd -aZH -beF -bfl -bmi -bjw -bmk -bbR -boT -bbR -bbR -buI -bbR -bwd -bxD -byL -byK -byT -bwe -bAx -bTE -bCq -bHD -bJe -bCq -bLu -bHE -bHE -bHE -bHE -bLv -aaf -bLv -bUt -HrP -wxf -xcD -Skc -Skc -Skc -NIG -dEx -hDE -efz -BRv -HrP -cgH -bLv -aaf -cjJ -cjJ -cjJ -cjJ -cjJ -cnR -coB -cjJ -cjJ -aaa -aaa -crn -aaf -abY -abY -abY -abY -abY -abY -abY -abY -abY -aaa -aaf -ctv -abY -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(93,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abb -abt -aca -acz -acX -adC -aeb -aeI -afv -agf -afA -aaf -aaa -aaa -aiV -aiV -aiV -akG -cxJ -aiU -amK -aiU -cxP -aoq -aiV -aiT -aiT -arP -asR -aqR -arP -awc -axt -ayG -azL -aBf -aBY -aDw -aES -aJh -aHv -aJh -aKA -aLN -aMS -aOz -aLE -aPQ -aSa -aSr -aSr -apd -aYZ -bLE -aqW -aqW -bLE -apd -beA -bqp -bbR -boU -bLF -aZK -bnJ -bbR -bqt -cBq -bbR -bbR -bwd -bxC -byK -cBv -byO -bwe -bAo -bTE -bGo -bHC -bHE -bCq -bCq -bLv -bLv -bHE -bLv -bCq -aaa -bLv -bUs -HrP -uyH -QYV -JKV -DuX -DuX -xzP -dEx -IWx -efz -kXN -HrP -cgH -bCq -aaa -aaf -aaa -aaa -aaf -cjJ -cnQ -coA -cpo -cjJ -aaa -aaa -crn -aaf -abY -ctv -ctv -ctv -ctv -ctv -ctv -ctv -abY -aaa -aaf -ctv -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(94,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abe -abw -acc -acB -acZ -adE -aee -aeL -afy -agh -afA -aaf -aaa -aaf -aiV -ajs -akb -akI -akI -amc -aiV -ant -akI -aos -aiT -apR -cCh -arP -asT -aqR -avf -awb -axt -ayG -azN -aBe -aBe -aDy -aEU -aGf -aHL -aJi -aKB -aLT -aNp -aOC -aPQ -aPQ -aTL -aTP -aWD -apd -aYj -aZL -baU -baU -bcV -apf -bfn -beW -bfR -bKF -bNH -aZK -bbR -bbR -bbR -bbR -bty -buJ -bwe -bxE -byM -bAd -bBf -bwe -bAJ -bCe -bCq -bHE -bJf -bCq -aaa -aaf -bLv -bHE -bLv -aaa -aaa -bTB -bUv -iBV -iBV -rUp -iBV -iBV -iBV -iBV -XAk -XAk -XAk -iBV -nQM -cgH -bCq -bCq -bCq -bCq -bCq -bCq -cjJ -cnS -coC -cpp -cjJ -aaf -aaf -cig -aaf -aaT -aaT -aaT -aaT -aaT -aaT -aaT -aaT -aaT -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(95,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abd -abv -acb -acA -acI -adD -aed -aeK -afx -agg -afA -aaf -aaa -aaa -aiU -ajr -aka -akH -alq -amb -aiU -ans -alq -aor -apb -alp -aqS -arP -asS -aqR -arP -awd -axv -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -aHP -aNc -aOB -aPQ -aPQ -aSs -aSs -aSs -apd -apd -apd -baV -bON -apd -apd -aZK -beV -bfm -bKP -bfm -aZK -bnK -bnK -bqu -bqu -bnK -bnK -bwe -bwe -bwe -bwe -bwe -bwe -bAI -bCd -bCq -bCq -bCq -bCq -bLv -bLv -bLv -bOK -bLv -bLv -bLv -bTA -bUu -bVH -bVH -cNj -bVH -bVH -bVH -cem -bVH -bVH -bVH -bVH -caq -cbw -ccu -ciT -bCq -bSs -ceY -ccw -ccw -cnR -cgT -cjJ -ccw -ccw -ccw -ccw -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(96,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaH -aai -aai -abg -aby -aby -aby -aby -aby -aeg -aeN -afA -afA -afA -aaf -aaa -aaa -aiU -aju -akd -akK -als -ame -amM -anv -als -aou -aiT -aiT -aiT -arP -arP -arP -arP -awf -axx -ayJ -ayJ -aBi -aqR -aqR -aqR -aqR -aqR -aqR -arP -aLI -aNr -bBo -aJq -aRh -aJq -aJq -aJq -aJq -aJq -aLY -aJq -aJq -bcW -bbV -bfo -bkS -bfo -bgn -bfo -bmn -bfo -boW -bmE -bmE -btz -btz -bwf -btz -btz -btz -bBh -bCr -bAK -bCn -bGq -bGq -bGq -bGq -bLw -bGq -bGq -bGq -bLw -bGq -bGq -bTD -bUx -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bTA -bEP -cdi -bCq -bCq -bHE -bHE -cmD -cnr -cnU -chD -cpq -cpV -cqw -cqO -crp -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaT -abY -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(97,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aai -aai -aai -aaU -abf -abx -acd -acC -ada -adF -aef -aeM -afz -aai -aai -aai -aai -aai -aai -ajt -akc -akJ -alr -amd -amL -anu -alq -aot -apc -apS -aqT -arQ -arQ -atX -atX -awe -axw -ayI -azO -aBh -akL -aDz -aEV -aGg -aHx -aqZ -apg -aLx -aNq -aOD -aPe -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -aJq -bHt -aJq -aJq -beX -aJq -bgm -bjx -bmm -bnM -boV -bnM -brT -brT -brT -brT -brT -brT -bAe -bBg -bCq -bCq -bDt -bGp -bGp -bGp -bES -bGp -bGp -bGp -bGp -bGp -bGp -bES -bTC -bUw -bVI -bWB -bWB -bYz -bYz -cag -cbl -bYz -bWB -bWB -bVI -cax -cbx -cdh -ciU -cjK -ckA -ckA -cmC -cmC -cfJ -chB -cpW -cgR -cgR -cqN -cro -cEl -cEE -cEl -cFm -csx -cFm -cFm -csx -csv -aaa -aaa -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(98,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aah -aai -aai -aai -aai -aaI -aaM -aat -aat -aat -ace -aat -aat -adH -aei -aeO -afJ -acd -agL -agK -agK -aiB -aai -ajw -akf -aiX -aiX -aiX -aiX -aiV -anP -aiT -cCi -cCi -cCi -cCi -cCi -cCi -cCi -awg -axy -ayL -azQ -aBk -ayL -ayL -ayL -ayW -ayW -ayW -ayW -aLW -aNs -aJq -aLX -aLX -aLX -aLX -aLX -aJq -aYl -aZN -aYl -aYl -aYl -aYl -aYl -bgG -bid -aYl -bBi -aLY -bnN -boY -bqw -aJq -aJq -aYl -aKF -aLX -aJq -aJq -bBi -aJw -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -bCq -bTF -bUw -bVI -bWD -bXA -bYB -bYz -cai -bYz -ccg -cdd -cea -bVI -caz -cby -cdj -cdv -cem -cem -cem -cfe -cfD -cgv -chE -ciN -ciN -cji -cDZ -crr -crJ -crT -crJ -cFn -css -csx -csx -css -csb -aaf -aaf -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(99,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aai -aan -aaw -aaB -aat -aaJ -aat -abh -aat -acd -abK -acY -adG -aeh -aeO -afI -agl -agH -ags -ags -aho -acd -ajv -ake -agj -afL -aez -ahU -aiX -anz -aov -cCi -air -aqY -arU -apU -apU -cCi -awg -axy -ayK -azP -aBj -aBO -aDC -ayL -aGo -aHN -aJj -ayW -aLV -aJq -aOE -aJn -aJn -aJn -aJn -aJs -aJq -aYk -aZM -aZM -bbW -bcX -bcX -aZM -aZM -aZM -bjz -bkT -bjz -bjz -boX -bqv -bqv -bqv -bqv -bwg -aJw -aJq -aJq -bBi -aJw -aaa -bEU -bGr -bGr -bGr -bKr -aaa -aaf -aaa -aaa -aaf -aaf -bCq -bTE -bUw -bVI -bWC -bXz -bYA -bZn -cah -bWB -ccf -cdc -cdZ -bVI -cay -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -cfL -coH -cBO -cgR -cDB -cqP -crq -crZ -crT -crZ -cFo -css -cFm -cFm -css -csv -aaa -aaa -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(100,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aak -aap -aay -aaD -aat -aat -aat -aat -abA -acd -acd -acd -acd -aek -aeU -afI -acd -agI -ahq -ahV -aho -acd -ajy -akh -afK -ajc -afM -afN -aiX -anz -aov -cCi -aqX -arR -asj -asU -ats -atY -auo -axy -ayN -azP -aAW -aCa -aDB -aDI -azW -azW -azW -ayW -aLX -aJq -aOE -aJn -aaa -aaa -aJn -aJs -aJq -aYn -aZM -aZu -bbY -bcY -bdX -bbX -bgH -bie -bjB -bkW -bmp -bjz -bpa -bqy -cBr -bqy -buK -bqy -aJw -aJq -aJq -bBi -aJw -aaf -bEW -bGt -bHG -bJh -bEW -aaf -aaf -aaa -aaa -bKv -bLB -bES -bMj -bUw -bVI -bWF -bXC -bXC -bZp -cak -bWB -bWB -bWB -cec -bVI -cay -ccw -chY -ciX -cjM -ckB -ckB -ckB -ccw -cnY -coH -cgR -cgR -cqx -cqR -crp -crJ -crT -crJ -cFn -css -csx -csx -css -csb -aaf -aaf -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(101,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aaj -aao -aax -aaC -aat -aat -adO -aat -abz -acd -acE -add -adF -aej -aeQ -afD -acd -agJ -ahp -ahp -aiC -adF -ajx -akg -agj -adL -ahr -aih -aiX -anz -aov -ape -arT -aqV -arS -apU -atu -cCi -awg -axy -ayM -azs -aAR -aBP -aDA -aEW -aGi -aHB -aEZ -aBt -aJs -aJq -aOE -aJn -aaa -aaa -aJw -aVb -aWH -aYm -aZM -aZq -bbX -bbX -bbX -bfp -aZP -aZP -bjA -cAG -bmo -bmr -boZ -bqx -brU -bmr -bmr -bmr -bmr -byN -aJq -bBj -aJw -aaa -bEV -bGs -cBC -bJg -bKs -aaa -aaf -aaf -aaf -bJQ -bLg -cCg -cCg -bNg -bVI -bWE -bXB -bYC -bZo -caj -bWB -cch -cde -ceb -bVI -cay -ccw -chY -cCW -ciW -ckB -ckB -ckC -ccw -cnX -coH -cps -cpX -cqz -cqQ -ccw -crH -crT -crZ -cFo -css -cFm -cFm -css -csv -aaa -aaa -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(102,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aal -aar -aay -aaF -aat -aaO -aaW -aat -abB -acf -abM -acG -adI -aem -aeO -afG -acd -agK -agK -ail -aiE -aiW -ajA -akj -agj -agj -agj -aiX -aiX -anQ -aov -cCi -apU -arT -arT -asn -atK -auq -avs -axz -ayP -azU -aBo -aCg -azW -aEX -aEZ -aEZ -aEZ -aEX -aJs -aJq -bJx -aJn -aaa -aaa -aTQ -aVd -aWJ -aYp -aZM -aZz -baI -bda -bda -bca -bgJ -aZP -bjD -bkY -bmo -bnP -bpc -bqA -brW -btB -buM -bwi -bmr -aMm -aJq -bBi -bCs -bCs -bEY -bGu -bHI -bJi -bEY -bCs -bCs -bNI -bNI -bRn -cce -bNI -bNI -bUz -bVI -bWG -bXD -bYz -bYz -cam -bYz -bYz -cdf -ced -bVI -cay -ccw -ciZ -ciZ -ciZ -ckC -ckC -ckC -ccw -coa -coJ -clJ -clJ -cig -cig -ccw -crJ -crT -crJ -cFn -css -csx -csx -css -csb -aaf -aaf -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(103,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aaj -aaq -aay -aaE -aaJ -aaN -aaV -aat -aat -acd -abL -adb -acd -ael -aeO -afF -agj -agj -agj -agj -agj -agj -ajz -aki -akM -alv -amf -amQ -anw -anz -aov -cCi -arT -arT -asl -arT -apU -cCi -awg -axy -ayv -azE -aBn -aCb -aDD -aEY -aGj -aHC -aEZ -aBt -aJs -aJq -aOE -aJn -aaa -aaa -aPR -aVc -aWI -aYo -aZM -aZy -bay -bcZ -bdY -bdF -bgI -aZP -bjC -bkX -bmo -bnO -bpb -bqz -bqq -brS -bsY -bue -bmr -aMn -aJq -bBi -bCs -bDv -bEX -bFa -bHH -bFa -bKt -bLx -bCs -cCe -bRl -apV -bLC -cCf -bNI -bUz -bVI -bWB -bWB -bYz -bZq -cal -cbm -bYz -bWB -bWB -bVI -cay -ccw -ccw -ciY -ciY -ccw -ccw -ccw -ccw -cnZ -coH -cpt -cpZ -cig -cqS -ccw -crH -crT -crZ -cFo -css -cFm -cFm -css -csv -aaa -aaa -aaT -ctv -abY -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(104,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aal -aat -aay -aat -aat -aaJ -aat -aat -abD -acd -acd -acd -acd -aen -aeO -afH -agj -agM -ahu -ahW -aiD -agj -auj -akl -akO -alx -alx -amR -anw -anz -aox -cCi -cCi -cCi -cCi -cCi -cCi -cCi -awg -axy -ayQ -azE -aBq -aBr -aDE -aFc -azW -azW -aJf -ayW -aJr -aJq -aOE -aJn -aaa -aPR -aPR -aPR -aWL -aPR -aZM -bbX -bay -bbM -bcN -bdK -bgL -aZP -aZP -aZP -bmo -bnR -bpe -bqB -bqq -btD -buO -bwk -bmr -aLY -cBw -bBk -bCs -bDx -bFa -bFa -bHJ -bFa -bFa -bLz -bCs -cCe -bNJ -apV -cjL -bNJ -bNI -bUz -bVJ -bWI -bXF -bXF -bZs -cao -cbo -bXF -bXF -cef -bVJ -cay -ccw -cib -cjb -ckH -ckE -clH -cmG -cnt -cob -coL -cDo -cgR -cqA -cqT -czh -crJ -crU -csb -cFn -css -csx -csx -css -csb -aaf -aaf -aaT -aaT -aaT -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(105,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aaj -aas -aaz -aat -aat -aat -aat -aat -abC -acd -acH -adc -acd -aeo -aeS -afH -agj -agN -aht -ain -aid -agj -aiZ -akk -akN -alw -amg -amR -anw -anR -aow -apg -aqZ -aqZ -aqZ -apW -aqZ -avh -awh -axz -ayO -azE -aBp -aCc -aDF -ayL -aGq -aHO -aJl -ayW -aJq -aJq -aOE -aJn -aaa -aPR -aTR -aVe -aWK -aYq -aZO -aZC -baK -bbC -bbC -bdI -bgK -bgK -bjE -bgK -bmq -bnQ -bpd -bpd -bqr -btC -buN -bwj -bmr -byP -aJq -bBi -bCs -bDw -bEZ -bGv -bHH -bJj -bKu -bLy -bCs -bNJ -bNJ -bKx -cjL -bNJ -bNI -bUA -bVJ -bWH -bXE -bYD -bZr -can -cbn -cci -cdg -cee -bVJ -cay -ccw -cia -cja -cgR -ckD -cig -cmF -cfG -cgw -coK -cpu -cMm -ccw -ccw -ccw -crK -cEK -csa -csj -csa -csa -cGr -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(106,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aam -aav -aav -aav -aaL -aaQ -aaY -aav -abE -acg -acJ -ade -adJ -aep -aeT -afH -agj -ahs -ahP -ahP -aiF -agj -aja -ajG -amS -aiX -aiX -amS -anx -anz -aov -aph -aph -aph -arW -aso -auf -avi -awi -axy -ayS -azS -aBs -aCi -aDI -ayL -ayW -ayW -ayW -ayW -aJq -aJq -aOE -aJn -aaa -aPR -aTT -aVg -aWN -aYs -aZQ -bbi -bde -bcd -bcd -bcd -bcd -bcd -bcd -bcd -bms -bnS -bpf -bqC -brZ -btE -bnS -bwl -bxG -byR -brT -bBl -bCs -bDz -bFa -bFa -bHH -bFa -bFa -bFa -bCs -bNL -bNJ -apV -cjL -bNJ -bNI -bUz -bVJ -bOo -bOD -bQb -bZv -bSd -bXG -bOC -bWt -cBK -bVJ -cay -ccw -cid -cgR -cen -ckG -clJ -cmF -cgR -cgI -chF -ciO -cqc -cqc -cqc -cEd -cEr -cEL -cFb -cFu -cFI -cGd -cGs -cGr -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(107,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aai -aau -aaA -aaG -aaK -aaP -aaX -aat -aat -acd -acD -acY -adG -aeq -aeV -acd -agj -ahm -ahD -aiw -aiO -agj -ajD -akm -akP -aly -amh -amR -anw -anz -aov -aph -aob -ara -arV -apZ -aph -aph -awg -axA -ayR -azR -aBr -azW -afO -azW -agm -aBt -aaa -aJn -aLY -aLY -aOF -aPR -aPR -aPR -aTS -aVf -aWM -aYr -aZP -bbh -bcc -bdd -bbX -bfr -bgM -bif -aZM -aZM -bmr -bmr -bmr -bmr -bmr -bmr -bmr -bmr -bmr -byQ -aJq -aJq -bCs -bDy -bFb -bGw -bER -bJk -bFa -bLA -bCs -cCd -bQc -bKA -cjL -bSv -bNI -bUB -bVJ -bOl -bOC -bPQ -bQK -bYF -bTI -bUy -bWs -ceg -bVJ -cay -ccw -cic -cBO -cjN -cgR -ceu -clQ -cgR -cgx -coM -cpv -cqb -cqb -cqb -cqb -cEs -cqb -cqb -cAp -cqb -cAo -cGt -cgx -ccw -ccw -ccw -ccw -ccw -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(108,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aai -aai -aai -aai -aai -aai -aai -abj -abG -acd -acd -acd -acd -aeP -afC -agk -agF -agP -agP -agP -agP -aiz -ajg -akl -akR -alx -alx -amR -anw -anz -aov -aph -aoc -ata -arY -ata -auh -aph -awg -axA -ayT -azR -azW -azW -aBt -azW -aio -aBt -aaa -aJn -aJq -aJq -aOE -aPT -aRj -aSv -aTV -aVi -aWP -aYu -aYt -bbk -bbk -bbk -bbk -bfs -aZM -aZM -aZM -aaf -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aJn -aXf -aJq -byV -bCs -bAM -bFa -bGy -bFc -bJm -bFa -bHO -bCs -cCd -cCd -aYg -cjL -cCc -bNI -bEP -bVJ -bVJ -bOM -bQd -bQP -bSt -bUc -bVb -bWv -cei -bVJ -caB -ccw -cif -cgR -cjP -ckF -ceZ -ckF -ckF -cgK -cDg -cDp -cqe -cqB -cqB -cEe -csP -cAl -cFc -cAq -cFJ -cpx -cGu -cGH -cGR -cHa -csd -ciZ -ccw -aaa -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(109,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaf -aai -abi -abF -ach -acK -adf -acd -aer -afB -agi -agD -agO -agO -agO -agO -aiy -ajb -ajF -akN -alw -ami -amR -anw -anz -aov -api -ata -arb -arX -atc -aug -aph -awg -axA -azW -ayU -azW -aCj -ayW -ayW -ayW -ayW -aJn -aJn -aJq -aJq -aOE -aPS -aRi -aSu -aTU -cpC -aWO -aYt -aYx -bbj -bce -bdf -beb -aYv -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aJn -aXf -aJq -byU -bCs -bAL -bFa -bGx -bET -bJl -bHh -bHN -bCs -cjo -cCd -bSx -cjL -cCb -bNI -bEP -bVL -bVJ -bVJ -bVJ -bVJ -bVJ -bVJ -bUC -bWu -bVJ -bVJ -caB -ccw -cie -cdT -cCY -cnA -cev -cfg -cgU -cgJ -chG -cpx -cqd -cDC -cqU -cEf -cEt -cEM -csA -cEg -cFK -cGe -cGv -cGI -cGS -cHb -cHg -cHn -ccw -aaf -aaT -ctv -aaT -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(110,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaR -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -agn -agR -agn -agR -agn -ajc -ajI -ako -amS -aiX -aiX -amS -any -anz -aov -aph -aqb -are -arZ -ata -aui -aph -awg -axA -ayX -azY -azW -azW -afP -aFb -aEZ -cyg -aJp -aKE -aMa -aNw -aOE -aPU -aRl -aSx -aTX -aVi -aWR -aYv -aZS -aZR -aZR -bbm -bec -bfu -bgO -bgO -bgO -bmu -bgO -bgO -bgO -bgO -bsb -aaf -aaf -aaf -aJn -aXf -aJq -aJq -bCs -bFa -bFa -bFa -bET -bJn -bHi -bHQ -bCs -cjo -bJu -bSx -cmX -bSz -bNI -bUD -bVM -bVM -bVM -bVM -bVM -cat -bCq -bVd -bWK -bYp -bCq -cay -ccw -cih -cje -cgR -ckJ -clJ -cmL -cgR -ccw -cDh -cpy -cDv -cDD -cqU -cMC -cMO -cEu -cEu -cMC -cFL -csJ -cGw -cMm -ciZ -cHc -cAu -cAu -ccw -aaa -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(111,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -aaT -aaf -aaZ -abm -cpg -acv -adi -adi -aaZ -aeW -agQ -ahv -ahQ -aiI -aiH -ajB -akm -akP -aly -amj -amR -anw -anz -aov -aph -aph -ard -ard -ard -aph -aph -awj -axA -ayW -ayW -aBt -aBt -ayW -ayW -ayW -ayW -aJo -aJq -aLZ -aNv -aOE -aPS -aRk -aSw -aTW -aVj -aWQ -aYv -aZR -aZR -aZR -aZR -aZR -bft -bgN -bgN -bgN -bmv -bkI -bnT -bpg -bqD -bsa -bgO -buP -bwm -bxH -byS -aJq -aMh -bCs -bCs -bCs -bCs -bFe -bCs -bLD -bCs -bCs -bNI -bNI -bKU -cnB -bNI -bNI -bCq -bCq -bCq -bCq -bCq -bCq -cas -bCq -bVc -bWJ -bYn -bZB -caC -ccw -cig -cjd -cgR -ckI -cig -cmK -cBO -ccw -chV -cpx -cqf -cqD -cMC -crs -cEv -cEv -cFe -cMC -cFM -czE -cGx -ccw -cGT -csd -csd -ciZ -ccw -aaf -aaT -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(112,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -aaT -aaa -aaZ -abH -acl -ajC -acL -adi -aaZ -agp -agT -ahx -ahS -aiK -ajc -ajI -akl -akT -aww -alx -amR -anw -anz -aov -apk -anw -anw -anw -anw -aVh -avj -awl -axC -ayY -azZ -azZ -azZ -azZ -azZ -aGt -aHQ -aJr -aJq -aMc -aNy -aOE -aPS -aRn -aSz -aTY -aVl -aWT -aYx -aZR -bbm -bbm -bdh -bee -bfv -bgN -bih -big -bii -bgN -bnV -bph -bqF -bsd -btG -buQ -bwn -bxI -bwa -bAg -bBq -bCu -bAO -bFd -bFd -bFj -bJp -bHk -bHR -bIe -bFd -bJz -bRp -cav -bSA -bTJ -bSA -bSA -bWL -bSA -bSA -bZx -bSR -bUl -bVf -bXm -bYE -bCq -ceW -ccw -cij -cjf -cgR -ckK -clJ -cmL -cgR -cgL -chX -cpx -cqh -cqF -cra -crI -cEw -cEw -cEw -cFw -cFN -csH -csR -cMm -cGU -csd -csd -cHo -ccw -aaa -abY -ctv -abY -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(113,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -abY -aaa -aaZ -abn -ack -adk -adK -cqG -aeX -ago -agS -ahw -ahR -aiJ -ajc -ajI -akk -akS -alw -amk -amR -anw -anS -aoy -apj -anz -anz -anz -anz -anz -anz -awk -axB -anz -anz -anz -anz -anz -anz -apj -aHP -aJq -aJq -aMb -aNx -aOE -aPS -aRm -aSy -aTX -aVk -aWS -aYw -aZT -cBj -bcf -bdg -bed -bfv -bgN -big -bgN -bkZ -bgN -bnU -bph -bqE -bsc -btF -bph -bsc -btF -bvW -bAf -bBp -aHP -bAN -bQg -bQg -bFh -bGN -bHj -bNN -bNN -bNN -bNN -bNN -cau -cBH -bMG -bLZ -bLZ -bLZ -bLZ -bLZ -bQQ -bSw -cbr -bVe -bXk -bYq -ccw -ccw -ccw -cdk -cMC -cgR -ckK -clJ -cmL -cnv -cMm -chX -cpx -cqg -cqE -cqZ -crt -cMH -cAm -cMK -cMN -cFO -csC -csQ -cMm -cGV -csd -cGV -ccw -ccw -aaa -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(114,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -aaT -aaa -aaZ -abJ -ack -acM -adQ -cwM -aeZ -agr -agU -ahy -ahX -aiL -ajc -ajI -akq -amS -aiX -aiX -amS -anx -anz -aoz -apm -aqd -anA -asa -atd -anA -avk -awk -axE -ayZ -aAa -aBu -aAa -aAa -aAa -aGu -aHR -aJt -aJq -aMe -aNA -aOE -aPV -aRp -aSB -aTZ -aVn -aWV -aYz -aZR -bbm -bbm -bdh -bef -bfv -bgN -bii -big -bih -bgN -bnV -bph -bqF -bsf -btG -buS -bwp -bxK -bwh -bAh -bBs -bzG -bAP -bCp -bDp -bFq -bGO -bHl -bHS -bLI -bLI -bOR -bQg -bQg -bQg -bQg -bQg -bQg -bQg -bQg -bYI -bDG -bHP -cbt -bVh -bXo -bYM -cfb -cfF -cfb -cfb -cfb -cfb -cfb -cig -cmN -cgR -cgL -chX -cpx -cqj -cqF -crb -cru -cEx -cEx -cEx -cAP -cFP -csI -cAt -cMm -csd -csd -csd -cHp -ccw -aaf -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(115,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -aaT -cMP -aaZ -abI -ack -coS -aet -cxA -aeY -agt -agt -ahz -aie -aiN -ajc -ajI -akp -akU -alz -aml -amT -anw -anz -aoz -apl -aqc -aqc -aqc -aqc -aqc -aqc -awm -axD -ahn -ahn -ahn -ahn -ahn -ahn -ahn -ahn -aJs -aJq -aMd -aNz -aOE -aPS -aRo -aSA -aTX -aVm -aWU -aYy -aZR -aZR -aZR -aZR -aZR -bfw -bgN -bgN -bgN -bjy -bmw -bnW -bpi -bqG -bse -bij -buR -bwo -bxJ -bwb -aJq -bBr -bCv -bCv -bCv -bCv -bCv -bJq -bKw -bLH -bRq -bNO -bOQ -bQf -bRq -bRq -bTK -bUE -bUE -bWM -bXJ -bYH -bYH -bYH -bYH -bVg -bXn -bYG -cfb -cfE -cgM -cik -cjg -cjU -ckL -clM -cfz -cgR -ccw -cii -cpx -cqi -cMC -cAP -crv -cEy -cEy -cFh -cMC -cFQ -czE -cGx -ccw -cGT -csd -csd -ciZ -ccw -aaf -aaS -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(116,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -abY -aaa -aaZ -abQ -ack -adj -arc -blT -agq -cml -agV -cxk -aig -aiM -ajc -ajI -akp -akV -alB -amn -amV -anw -anz -aoz -aod -aqf -ahT -ahT -ahT -ahT -ahT -awn -axF -anF -anF -anF -anF -anF -anF -anF -aoa -aJu -aKF -aMf -aNB -aOE -aPW -aRr -aSD -ceh -aVp -aWX -aYB -aZU -aZR -aZR -bbm -beh -bfx -bij -bij -bij -bgR -bij -bij -bij -bij -bsg -aaf -aaf -aaf -aJn -aJq -aJq -bBu -bCv -bAT -bDL -bDq -bCv -bJs -bKy -bLK -bLK -bLK -bOT -bQi -bRs -bSC -bLK -bUG -bVO -bWO -bXK -bYH -bZz -caw -bYH -bVo -bXq -bZe -cfb -cfH -cgO -cim -cgO -ceo -ceq -cfa -cmQ -cgR -ccw -cDi -cDr -cqk -cDE -cEa -cMC -cEz -cEz -cEz -cMC -cFR -csJ -cGz -cMm -ciZ -cHd -cHj -cHd -ccw -aaa -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(117,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -abY -aaa -aaZ -abN -ack -bkA -acF -aes -avB -amN -agt -awN -aHp -aIF -ajc -ajI -akp -amS -alA -amm -amU -anw -anT -aoA -apn -aqe -arf -arf -arf -arf -arf -arf -arf -arf -arf -arf -arf -arf -arf -anF -ahn -aJn -aJn -aJq -aJq -aOE -aPS -aRq -aSC -aUa -aVo -aWW -aYA -aYz -bbn -bcg -aZU -beg -aYB -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aJn -aJq -aJq -bBt -bCv -bDH -bFf -bGB -bCv -bJs -bKy -bLJ -bLJ -bNP -bOS -bQh -bRr -bSB -bTL -bUF -bVN -bWN -bLK -bYJ -bRi -bZy -cbu -bVm -bXp -bYO -cfc -cgO -ccj -cBM -cdU -ceo -ceq -clQ -cmQ -cgR -cMm -chX -cpD -cqk -cDF -cEa -cEg -cEA -cET -cFj -cEf -cFS -cGg -cGA -cGI -cGS -cHe -cHe -cHr -ccw -aaf -aaT -ctv -aaT -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(118,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaf -aaT -aaf -aaZ -aci -acm -cpA -adg -aeu -alt -agu -agX -ahB -aij -agn -aje -ajJ -akr -akX -alC -alC -amX -anz -anz -aoB -aod -aqe -arf -aqa -atf -arf -aqa -atf -arf -aqa -atf -arf -aqa -atf -arf -anF -ahn -aaa -aJn -aJq -aJq -aOE -aPX -aRs -aSE -aUc -aVm -aWY -aYC -aYA -bbp -bbp -bbp -bbp -bfz -aZV -aZV -aZV -aaf -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aJn -aJq -aJq -aXf -bCv -bDK -bFi -bGE -bCv -bJs -bKy -bLM -bLM -bNQ -bOV -bQk -bRt -bSD -bTM -bUH -bVQ -bWN -bXM -bYL -cew -bTh -cdt -bVq -bXI -bZg -bZD -cbq -ccl -cdm -cio -cjY -ckP -ckH -cja -cgR -cMm -cDj -cDs -cql -cDG -cDG -cEh -cEB -cEU -cFk -cAs -cFT -cpx -cGx -cGK -cGY -cEk -csd -cHs -ccw -aaf -abY -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(119,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaa -adR -abo -aaZ -aaZ -aaZ -acT -adl -aaZ -aaZ -agn -agW -ahE -aii -agn -ajd -ajI -ahY -akW -aiG -amo -amW -anz -anz -aoz -aod -aqe -arf -apY -ate -arf -apY -ath -arf -apY -ath -arf -apY -ate -arf -anF -ahn -aaa -aJn -aLY -aLY -aOG -aPR -aPR -aPR -aUb -aVq -aWM -aYr -aZV -bbo -bch -bdi -bei -bfy -bgS -bik -aZV -aZV -bmx -bmx -bmx -bqH -bsh -bsh -bsh -bsh -bqH -aJq -aJq -aXf -bCv -bDJ -bCt -bGD -bCv -bJs -bKy -bLL -bLL -bNQ -bOU -bQj -bOd -bOd -bRx -bTP -bVP -bWP -bXL -bYK -bRj -bTg -bUm -bVp -bXH -bZf -bZC -cbp -cck -cin -cjj -cjX -ckO -clP -cgR -cny -ccw -cip -cnx -cDx -cqb -cqb -cqb -cEC -cqb -cqb -cAr -cqb -cGh -cGC -cey -ccw -ccw -cHl -ccw -ccw -aaf -abY -aaT -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(120,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -adR -abP -aco -acO -abl -abO -abO -afc -afQ -agw -agY -ahA -ahZ -adR -aiQ -ajI -akt -amS -aiX -aiX -aiX -anB -anz -aoD -aod -aqe -arf -aqn -ath -arf -auw -ath -arf -ayV -ath -arf -aCd -ath -arf -anF -ahn -aJw -aJw -aMh -aJq -aOE -aJn -aaa -aPR -aUe -aVs -aXa -aYD -aZX -baf -bdk -bdk -bek -bfB -bgU -bdk -bjF -blc -bmz -bnY -bpk -bqJ -bsj -btI -btd -bwr -bqH -aMm -aJq -bBv -cBy -bDM -bCw -bDr -bCy -bGP -bHn -bLN -bLN -bNS -bOX -bQm -bRv -bOd -bTN -bTP -bRA -bWQ -bWQ -bYN -bRm -bTj -caA -cer -ccs -bZu -cfb -cfb -cgS -ciq -cfb -cfb -ckR -clR -cgR -cgR -cMm -cir -cDt -cDy -cqC -crc -cEi -cED -crc -crc -cFy -cBR -cGi -cGD -cGL -aag -aag -aaf -aaf -aaf -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(121,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -abo -abO -abO -abO -abO -abO -abO -afb -abo -afg -ahb -ahG -aik -cBV -ajf -ajK -aks -akY -alx -amp -aiX -anA -anz -aoC -aod -aqe -arf -asd -atg -arf -asd -awo -arf -asd -aAb -arf -asd -aDK -arf -aoa -ahn -aJv -aKG -aMg -bHt -aOE -aJn -aaa -aPR -aUd -aVr -aWZ -aYq -aZW -aZG -bej -bej -bdj -bfA -bgT -bil -bej -blb -bmy -bnX -bpj -bqI -bsi -btH -btc -bwq -bqH -aJq -aJq -aXf -bCv -bAU -cAL -bFg -bFs -bJt -bKy -bLK -bMK -bNR -bOW -bQl -bRu -bSE -bRx -bUI -bVR -bWQ -bOO -bQe -bRk -bTi -caA -bVr -bXN -bZt -bZE -cbs -cCT -cdn -cej -cep -ces -clN -ccm -ckF -cDe -cDk -coc -cqa -cig -ccw -ccw -czF -csd -csd -cFz -cFU -cGj -cGE -cGM -cGZ -aag -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(122,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -adR -abO -acq -acq -acq -acq -aew -afe -afS -agy -aha -ahC -aia -aiP -aiR -ajB -akv -ala -akz -alf -aiX -anA -anz -aoF -apo -aqh -arh -asg -atj -aul -auR -atj -aul -azc -atj -aAX -azc -atj -aFe -aul -aHT -aJy -aJy -aMj -aJq -aOE -aJn -aaa -aPR -aPR -aPR -aXc -aPR -aZV -baq -baQ -baQ -bcQ -bfC -bgV -bim -bjG -aZV -bmB -bnZ -bpl -bqH -bsl -btK -buW -bwt -bqH -aLY -aLY -bBx -bCv -apG -bFk -bDs -bCv -bJs -bHo -bLK -bMK -bMK -bOY -bQn -bRx -bMK -bMK -bUJ -bVS -bWQ -bXP -cBI -bRS -bTH -caA -bWh -cdt -bZA -cfh -cfM -cco -cdp -cel -cyM -ckT -cgU -cco -cgU -cgU -cis -cjN -cDz -cDH -cMm -csd -crM -crV -crV -cFA -csd -cGk -ccw -aag -aag -aag -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(123,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -abo -abO -acp -acP -acP -acP -aev -afd -afR -agx -agZ -ahI -aim -adR -aiG -ajL -aku -akZ -alE -amq -aiX -anA -anz -aoE -aod -aqg -arg -asf -ati -auk -aux -avt -axL -bbl -azT -auk -auk -aDG -aFd -auk -aHH -aJg -aKo -aLO -aJq -aOE -aJn -aaa -aaa -aPR -aVt -aXb -aYo -aZV -bao -baP -bbZ -bcP -cBo -bbw -bbw -bbw -aZV -bmA -bmx -bmx -bqH -bsk -btJ -buV -bws -bqH -aJq -aJq -byW -bCv -bAV -bCv -bCv -bCv -bJs -bKz -bLK -bML -bNT -bOV -bQj -bRw -bSF -bOd -bTP -bRA -bWQ -bXO -bQq -bRo -bTG -caA -bVK -bYb -bZw -cap -ctR -ccn -cdo -cek -ccw -cet -cfd -cfB -cfI -cgQ -cjS -cjN -cqm -cgR -crd -cEk -crL -cEW -cse -cse -csu -cGl -ccw -aaa -aaa -aaf -aaa -aaf -ctv -abY -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(124,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -adR -abR -abP -abP -abP -abP -abp -abp -abp -agA -afU -ahF -aip -adR -aiX -ajN -akx -aiX -aiX -aiX -aiX -anC -anU -anC -aod -aqe -arf -arf -arf -arf -auU -avG -awr -awr -azV -aAh -aAh -aFg -aFh -aAh -aAh -aAh -aAh -aLR -aJq -aOE -aJn -aaa -aaa -aTQ -aVd -aXe -aYp -aZV -bbv -bcm -bcm -bem -bfD -bgW -bfD -bjI -aZV -bmC -boa -bpm -bqH -bsn -btL -buY -buY -bqH -aJq -aJq -aXf -bCv -bDP -bCv -bAw -bHV -bJw -bKC -bLK -bMN -bNV -bOV -bQo -bRz -bSH -bOd -bTP -bRA -bWQ -bWQ -bWQ -bWQ -caD -bWQ -ccw -ccw -cey -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -cDl -cjN -cjh -cDI -ccw -ccw -ccw -ccw -ccw -cMm -cMm -cMm -ccw -aaf -aaf -aaf -aaf -aaf -ctv -abY -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(125,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -abq -abq -abq -abr -abr -abq -abq -aff -afT -agz -ahb -ahF -clI -adR -ajh -ajM -akw -alb -alG -amr -amY -amY -ajp -aoG -aod -aqe -arf -aqo -asp -arf -auS -avv -awu -awr -aAd -aAh -aCm -aDL -aFf -aGk -aHU -aJz -aAh -aLQ -aJq -aOE -aJn -aaa -aaa -aJw -aVu -aXd -aYE -aZV -bbu -bbw -bbw -bbw -bbw -bbw -bbw -bjH -aZV -bmx -bmx -bmx -bqH -bsm -btL -buX -buX -bqH -aJq -aJq -bBy -bzs -bDO -bFl -bGH -bHU -bJv -bKB -bLK -bMM -bOd -bOV -bQj -bRy -bSG -bOd -bUK -bVT -bWR -bXQ -bOd -bZF -bPc -bOd -ccv -cdw -cex -bOd -cfN -cfN -bLK -apQ -bOh -bOh -bOh -bOh -bOh -ccw -cDm -cjP -ckF -cDJ -ckF -cpE -cjR -crW -csg -aag -aaa -aaa -aaa -aaa -aaa -aaa -ctv -ctv -ctv -abY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(126,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -abq -abT -acs -acR -ado -adN -aex -afh -afV -agB -ahd -ahI -clS -adR -ajj -ajP -aky -alc -alI -ams -amZ -amZ -anW -aoH -aod -aqe -arf -asm -blU -atQ -avg -awp -axN -awr -aAg -aAh -aDO -aDQ -aFi -aGl -aBy -aBy -aAh -aMn -aJq -aOE -aJn -aaa -aaa -aJn -aVv -aXg -aYF -aZV -bbw -bcn -bbw -ben -bfE -bgX -bbw -bjJ -bld -bmD -bmD -bmD -bqK -bso -btN -buZ -buZ -bqH -byN -aJq -bBA -bCz -bDQ -bFn -bGJ -bHX -bJy -bKE -bLP -bMP -bIG -bJB -bKV -bRB -bSI -bSI -bUM -bVV -bWS -bSI -bSI -bZG -caE -cbA -ccy -bOd -bOd -bQu -cfO -cgW -cit -cph -ckb -ckV -clU -clU -bOh -ccw -coZ -cgU -cgU -cDK -crw -cjO -ccw -crX -cfK -aag -aaa -aaa -aaa -aaa -aaa -aaa -abY -abY -abY -abY -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(127,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -abr -abS -acr -acQ -adn -adM -abq -afg -afU -afU -ahc -ahH -aiq -adR -aji -ajO -akw -ajn -alH -amr -amY -amY -anV -ajo -aod -aqe -arf -ari -asu -aun -auW -avR -axM -awu -aAf -aAh -aCn -aDM -aGx -aAh -aAh -aBy -aAh -aMm -aJq -aOE -aJn -aJn -aJn -aJn -aJs -aXf -aYk -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -bmx -bmx -bmx -bqH -bqH -btM -bqH -bqH -bqH -aJq -bHt -bBz -bzs -bzs -bFm -bGI -bHW -cBD -bKD -bLO -bMO -bIF -bOZ -bQp -bRA -bOd -bTO -bUL -bVU -bMK -bXR -bYQ -bXR -bMK -cbz -ccx -cbA -cbA -cfi -bRH -cgV -bMQ -apQ -bQA -ckU -clT -cmU -bOh -ccw -cpa -cjc -cqo -cDL -cjk -cjm -ccw -ccw -cig -aag -aag -aag -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(128,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -abr -abV -acu -acS -adp -adP -aey -afj -afX -agC -ahf -ahK -ait -adR -ajl -ajR -akw -ald -alJ -amt -ajp -ajp -anY -ajo -apq -aqe -arf -arf -arf -arf -avm -aws -axP -azb -aAi -aAh -aCn -aDM -aGx -aGm -aHV -aBy -aAh -aJq -aJq -aJq -aJr -aJr -aJr -aJr -aJr -aXh -aYG -aZY -aYG -aYG -bdn -bep -aYG -aYG -aYG -aYG -ble -bmE -bmE -bpn -bqL -bsp -btO -bva -bwu -bwu -bwu -bwu -bBB -aJv -bzs -bFp -bGJ -bHZ -bJA -bKG -bLK -bMR -bIH -bJF -bQr -bRA -bOd -bTP -bOd -bVX -bMK -bMK -bYR -bMK -bMK -cbC -bRA -bTO -cez -cez -cfQ -cgY -ciu -bVu -ckb -ckW -clU -clU -bOh -ccw -ccw -cpI -ccw -cDL -cjl -cjQ -cjV -cig -aaf -aaf -aaf -aaf -aag -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(129,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aaf -aaf -aaf -aaf -aaf -abr -abU -act -acu -acu -ato -abq -afi -afW -afW -ahe -ahJ -ais -adR -ajk -ajQ -akw -ajn -alH -amr -amY -amY -anX -ajo -app -aqi -arf -ask -atm -arf -avl -awq -axO -aza -aAh -aAh -aAh -aDS -aGx -aAh -aAh -aDN -aAh -aMo -aNC -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bco -aJq -beo -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bAk -aJq -aJq -aJq -aJq -bAj -aJq -aKG -bzs -bFo -bDu -bFt -bGQ -bHp -bLK -bMQ -bNY -bPa -bMQ -bRC -bMQ -bTP -bUN -bVW -bMK -bXS -bXS -bXS -bMK -cbB -alk -alX -aoZ -bQt -apa -cgX -apF -apI -bOh -bOh -bOh -bOh -bOh -cig -cpb -ciZ -cqp -cDN -cjT -cgR -crP -cig -aaa -aaa -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(130,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -abq -abW -abk -acj -acn -adh -adm -afk -afZ -agE -ahh -ahM -aiv -adR -aiY -ajE -ajH -akn -ale -alD -ana -ana -amu -ajo -aps -aqk -arf -asm -aHw -aup -avn -awv -axX -aze -aAh -aBz -aBz -aDU -aGx -aGn -aHW -aBy -aAh -aJq -aJq -aJq -aJq -aRt -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bcp -aJq -beq -aJq -bgY -aJq -aJq -aJq -bAi -bmS -bmS -bpC -bqN -aNr -aJq -aJq -bxL -byX -aJq -aJq -bCA -bzs -bCC -bDA -bFx -bGW -bKI -bLQ -bMT -bOb -bPd -cBF -bRD -bSK -bTR -bUP -bVZ -bWT -bWa -bYS -bZH -caF -bQt -cBJ -cdy -bOd -bRy -cfR -cha -civ -cph -ckb -ckY -clW -clW -bOh -cig -cig -czg -cig -cDN -crh -crA -crR -crY -csi -aaa -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(131,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abq -abq -abq -abq -abq -abq -abq -afg -afY -afY -ahg -ahL -aiu -adR -ajm -ajS -ajn -ajT -akA -amr -amY -amY -anV -ajo -apr -aqj -arf -ark -asL -aun -avu -awt -axV -azd -azX -aAZ -aCe -aDT -aGx -aAh -aAh -aBy -aAh -aCr -aCr -aCr -aJC -bYP -aQg -aJC -aQg -aJC -aQg -aJC -aJC -aHP -aHP -aHP -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bqM -brV -bof -bwv -bvj -bvj -bvj -bvj -bvj -bvj -bCB -bCP -bvj -bvd -bKH -bLK -bMS -bOa -bPc -bQs -bMZ -bSJ -bTQ -bUO -bVY -bOd -bOd -bOd -bOd -bOd -cbD -bTO -cdx -bOd -bOd -cfP -cgZ -bMQ -apQ -bQA -ckX -clV -cmV -bOh -cig -cpc -cpJ -cpc -cDN -cqY -cqY -cqY -cig -aaa -csl -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(132,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -abo -aeB -afm -agb -agG -ahi -ahN -aix -adR -ajp -ajU -ajn -ajn -ajn -amr -ajp -ajp -ajp -ajo -apt -aqm -arj -arj -arj -arj -avx -awz -axR -avx -aAh -aBA -aBA -aDP -aBx -aGp -aHX -aBy -aAh -aMq -adq -aQb -aPZ -aRu -aQc -aUf -aQc -aXi -aQc -baa -aJC -bcq -bcq -bcq -bfF -bha -bio -bgF -blf -bmF -bob -bnB -bfF -bqR -brX -bof -bwx -bvj -bwB -bxa -byZ -bzI -bAX -bCF -bDB -bFB -bvd -bKJ -bLR -bMV -bOd -bMZ -bQv -bRF -bSM -bTS -bUQ -agd -bUO -bVZ -bVZ -bZI -caH -cbF -ccz -cdA -cez -bOe -cfQ -chb -ciu -bVu -ckb -ckZ -clW -clW -bOh -cig -cpd -czM -cpd -cDN -aaa -aaa -aaa -aaf -aaf -cso -aaf -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(133,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -abo -aeA -afl -aga -adR -ahj -adR -cAN -adR -ajo -ajo -ajo -ajo -ajo -ajo -ajo -ajo -aoa -ajo -apt -aql -apv -arl -asM -atV -avw -awy -axQ -azj -arj -aAh -aAh -aAh -aAh -aAh -aAh -aAh -aAh -aMp -aMr -aOH -aPY -aQc -aRx -aQc -aQc -aPY -aQc -aZZ -aJC -aYV -aYV -aYV -bfF -bgZ -bin -bin -bjK -bkK -bkK -bkK -bpD -bqO -bLX -btf -bui -bvi -bww -bwZ -byY -bzH -bAW -bCE -bFv -bFz -bvd -bKH -bLK -bMU -bOc -bPe -bQu -bRE -bSL -bPe -bOd -cCB -cCC -bXT -bXT -bXT -caG -cbE -bTU -cdz -cez -bUL -cfS -bOd -bMQ -apQ -bOh -bOh -bOh -bOh -bOh -ccw -cpd -czL -cpd -cDL -aaf -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(134,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -acw -adR -adR -adR -adR -cxG -adR -adR -ahl -ahO -aic -ahT -ahT -ahT -ahT -ahT -ahT -ahT -alL -ahT -anb -ahT -anZ -apu -ahn -asb -asV -aus -aus -awA -axT -azl -aAl -arj -aCq -aDR -aFl -aGD -aHZ -aCr -aKJ -aMr -aMr -aOH -aQc -aQd -aQa -aRv -aPY -aVw -aPY -bac -aJC -aYV -aYV -aYV -bfF -bhc -bip -bgP -bjL -bkL -bmT -bnD -bpM -bqT -bFD -bJG -bJG -bvl -bwE -bxc -bzb -bzK -bBb -cpG -bDC -bId -bvd -bKH -bLK -bMX -bOd -bPg -bQx -bRH -bSO -bTU -bUS -bUS -cCD -bXU -bUS -bUS -bUS -bXU -bRF -bMW -cez -cez -cfQ -chd -ciw -cpP -ckc -clb -clY -clZ -bOh -aaa -cpd -cpM -cpd -cDS -aaf -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(135,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aag -acU -adr -acU -aeC -afn -agc -adR -ahk -aoJ -aib -aif -aif -aif -aif -aif -aif -aif -alK -alM -bkV -anc -anD -aoI -apX -arn -asN -aur -avy -avy -axS -azk -aAk -arj -aCf -aDY -aFj -aGr -aHI -aJk -aMr -aMr -aNt -aOH -aQc -aQc -aSq -aQc -aQc -aPY -aQc -bab -aJC -aYV -aYV -ber -bfF -bhb -bip -bjO -bip -bmG -bip -bnC -bpF -bqS -brY -bwz -bwy -bvj -bza -bxb -bvh -bCD -bAY -bCH -bDR -bIc -bvd -bKH -bLK -bMW -bOe -bPf -bQw -bRG -bSN -bTT -bUR -bWb -cCE -bTT -bUR -bZJ -bUR -bTT -bUR -cdB -bUR -bUR -cfT -chc -bMQ -apQ -bQA -cla -cBP -cmW -bOh -aaa -aaa -czN -aaa -cDS -aaf -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(136,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aag -aag -aag -aaa -aaa -aag -adR -adR -adR -adR -afo -abp -adR -ahn -ahn -aiA -aiA -aiA -ahn -aiA -aiA -aiA -ahn -and -anF -aod -ahn -apx -ahn -arj -asr -asN -aut -avz -aXF -axU -azn -aAn -arj -aCh -aEc -aFk -aGw -aHK -aCr -aKr -aMr -bHF -aOH -aQc -aQc -aSo -clX -aVx -aQc -aQc -aQc -bbx -aYV -aYV -aYV -bfF -bhd -bis -bjR -bis -bmI -bod -bpt -bfF -bqV -bEe -bBL -bwA -bvj -bAl -bAl -bvh -bzS -bBc -bCJ -buk -cCp -bvd -bKH -bLK -bMZ -bOg -bPi -bQz -bRJ -bSO -bTV -bUT -bWc -bWU -bXV -bYT -bZK -bOd -cbG -ccA -cdC -ceB -cez -cez -chf -cix -cpP -ckd -clc -clZ -clZ -bOh -aaa -aaa -aaa -aaa -cDS -aaf -aaa -aaa -aaf -aaf -cso -aaf -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(137,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaf -aaf -aaf -aaf -abp -aeD -afp -aeD -abp -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaf -aaf -ahn -ahn -anE -aod -aoK -apw -aqp -arj -asq -asN -aut -avz -avz -axU -azm -aAm -arj -aCr -aEb -aCr -aGv -aCr -aCr -aKq -aLS -aNF -aOH -aQc -aQc -aSH -aQc -aQc -aRx -aQc -aQc -aQg -aYV -aYV -bes -bfF -bfF -bir -bjQ -blh -bfF -bfF -bfF -bfF -bqU -bsq -bvj -bvj -bvj -bvj -bvj -bvj -bvj -bvd -bFu -bvj -bvj -bvd -bKH -bLK -bMY -bOf -bPh -bQy -bRI -bSP -bPh -bQy -bRI -cCF -bPh -bQy -bRI -bQy -bPh -bQy -bRI -ceA -bLK -bLK -che -bLK -apQ -bOh -bOh -bOh -bOh -bOh -aaa -aaa -aaa -aaa -cDS -aaf -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(138,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -adR -aeE -afr -aeE -adR -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaf -ahn -anG -aoe -aoL -apy -aqq -arj -ast -asN -auv -avA -avA -axW -azo -aAp -aBC -aCt -aEA -aCt -aGz -aIb -aCr -aKN -aMv -aNH -aOJ -aQc -aPY -aSG -aPY -aUg -bFC -aRw -aQc -bbx -aYV -aYV -bet -bfH -bhf -bhh -bhh -bhh -bmJ -bof -bpu -bqP -bsy -bEe -bvh -bwC -bxN -bze -bAp -bvh -bCG -bBd -bFw -bDD -bFJ -bvd -bKH -bzs -bRK -apQ -bRK -apQ -bVv -apQ -bRK -apQ -bVv -cCG -cCH -cCI -cCJ -cCI -cCH -cCI -cCJ -cCI -cCP -bLK -chg -bLK -apQ -aoV -aoV -apQ -apQ -apQ -aoV -aoV -aoV -aoV -cCQ -aoV -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(139,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aeE -afq -aeE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ahn -anE -ahn -ahn -ahn -ahn -arj -ass -asX -auu -att -att -att -azf -aAo -aBB -aBB -aBB -aBB -aGy -aIa -aBB -aKM -aMu -aNG -aKM -aKM -aKM -aSp -aQc -aQc -aSq -aQc -bad -bby -aYV -aYV -bet -bfG -bhe -bit -bjS -bli -bli -boe -bli -bpN -bqX -bEe -btg -bDR -bDR -bDR -bDR -bzc -bDR -bDZ -bCK -bFy -bFF -bvd -bKH -bzs -bNa -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -cCQ -bLK -cyG -bLK -aoV -aoV -aoV -apQ -apQ -aoV -aoV -aoV -aoV -aoV -cCQ -aoV -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(140,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aeE -afs -aeE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aag -aag -aaa -aaa -aaf -arj -arj -asZ -aua -aua -awB -axY -azh -arj -arj -aaf -aaa -alP -aGI -aId -aJD -aKP -aMx -aNJ -aQe -aOL -aOL -aOL -aOL -aOL -aOL -aXO -aZb -aJC -aYV -aYV -bet -bfG -bhe -bhh -bjU -blk -blk -boh -biu -bpO -bqY -bss -btg -buk -bvm -bDT -buk -bvh -bzU -bBe -bCS -bDE -bFK -bvd -bKH -bzs -bNa -bOh -bPl -bQB -bRL -bOh -bTX -bUV -bWd -bOh -bXX -bYV -bZL -bOh -cbI -ccC -cdD -bOh -cCG -cCS -cCS -cCI -cCI -cCI -cCI -cCI -cCI -cCI -cCI -cCI -cCI -cCI -cDY -apQ -aaf -aaf -aaf -aaf -cso -aaf -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(141,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqr -arm -arm -asY -atZ -auB -auB -atZ -azg -azp -azp -aCu -aaf -alP -aGH -aIc -aJC -aKO -aMw -aNI -aMw -aOK -acN -acN -acN -acN -acN -aQc -bae -aJC -bcr -aYV -bet -bfG -bhe -bhh -bjV -blj -bmK -bog -bog -bhh -bsx -bsr -bvh -bwD -bDR -bDR -bAq -bvj -bCQ -bDW -bCP -bvj -bvj -bJC -bKH -bzs -bNa -bOh -bPk -bPm -bPm -bOh -bTW -bUU -bTW -bOh -bXW -bYU -bXW -bOh -cbH -ccB -cbH -bOh -apQ -aoV -aoV -apQ -aoV -aoV -aoV -apQ -aoV -aoV -aoV -aoV -aoV -aoV -apQ -aoV -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(142,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqs -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCv -aaa -alP -aGK -aIe -aJC -aJC -aJC -aJC -aJC -aJC -aXj -aVy -aSY -aVy -aVy -aYI -bah -aJC -aYV -bdo -beu -bvk -biu -biu -bjT -blm -bmL -boi -bpw -bhh -bsx -btX -bvj -bwG -bxR -bxR -bvj -bvj -bzW -bDZ -bCT -bGR -bIj -bJC -bKH -bzs -bNa -bOh -bPm -bQC -bPm -bOh -bTW -bUW -bTW -bOh -bXY -bYW -bXW -bOh -cbH -ccD -cbH -bOh -apQ -apQ -apQ -apQ -apQ -aoV -aoV -apQ -aoV -aoV -aoV -aoV -aoV -csz -apQ -aoV -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(143,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqs -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCv -aaf -alP -aGJ -aIe -aJE -aKQ -aLU -aNu -aJC -aPw -aQc -aQc -aSZ -aQc -aVy -czP -bag -aJC -aYV -aYV -bet -bfJ -bhh -bhh -bgQ -bll -bhh -bhh -bpv -bhh -bsx -btV -bvh -bwF -bxQ -bxQ -bAr -bvj -bzV -bDZ -bzf -bDR -bIi -bJC -bKH -bzs -bNa -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -apQ -apQ -ciC -bVu -bVu -bVu -bVu -bVu -caJ -aoV -aoV -aoV -aoV -aoV -apQ -aoV -aaa -aaa -aaf -aaa -csn -aaa -aaf -aag -aaa -aaa -aaa -aaa -aaf -aaf -ctZ -ctZ -ctZ -ctZ -ctZ -aaf -aaa -aaf -cvF -aaf -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -cAU -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(144,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqt -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCv -aaa -alP -aGA -aHS -aJx -aJx -aMi -aNE -aOO -aQi -aRz -aSF -aQc -aQc -aXl -aQc -bai -aJC -aYV -aYV -bet -bfH -bhh -bhh -bhg -bln -bmM -boj -bof -bhh -bsx -btV -bvj -bwI -bxT -bxQ -bAt -bvj -bCM -bDZ -bDR -bDR -bIl -bJC -bKH -bzs -bUr -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -caJ -apQ -apQ -apQ -apQ -apQ -cfj -cfU -cfj -cfj -ckf -cfj -cfj -bUr -bVu -bVu -bVu -bVu -bVu -apQ -bVu -csw -csw -csw -csw -csM -csw -csw -ctd -csw -csw -csw -csw -ctO -ctZ -ctZ -cuo -cuA -cuM -ctZ -cvk -cvk -cvk -cvk -aaf -aaf -aaf -aaf -cvk -cvk -cvk -cvk -cvk -cvk -cvk -cva -cva -cva -cva -cva -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(145,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aqs -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCv -aaf -alP -aGL -aHM -aJm -aKz -aKR -aND -aJC -aPP -aRg -aQc -aTa -aQc -aXk -aQc -aQc -aJC -aYV -aYV -bev -bfK -bhi -bhi -bhi -bfK -bfK -bfK -bof -bhh -bsx -btV -bvh -bwH -bxS -bzh -bAs -bvj -bCL -bxO -bDR -bDR -bIk -bJC -bKH -bzs -bzs -bzs -bPn -bPn -bPn -bzs -bzs -bPn -bPn -bPn -bzs -bzs -bPn -caI -bPn -bzs -bzs -bzs -cfj -cfj -cjp -chh -ciy -cke -clg -cfj -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aaa -aaa -aaf -aaa -csn -aag -aag -aag -aag -aaa -aaa -aaa -ctN -ctY -cuh -cun -cuz -cuL -cuY -cvj -cvs -cvD -cvk -cvk -cvk -cvk -cvk -cvk -cvX -cvX -cvX -cvX -cwq -cwq -cva -cva -cva -cva -cva -cva -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(146,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqs -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCv -aaa -alP -aGL -aIe -aJC -aKS -aMC -aJC -aJC -aJI -aJI -aSI -aJI -aVA -aJI -aYK -aJI -aJI -bcs -aYV -aYV -bfK -bhk -bix -bjX -blp -bmO -bhi -bpy -bwz -brg -btZ -bvj -bwI -bxV -bzj -bAv -bvj -bCO -bDR -bDR -bDR -bIn -bJC -bKL -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bUY -bWe -bWe -bWe -bWe -bWe -cdE -bAw -bzs -bAw -caK -cfj -ciB -ckh -chj -ciA -cjr -clh -cfj -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aaa -aaa -aaf -aaa -csn -csD -cta -csD -cua -aaa -aaa -aaa -aaf -ctZ -cui -cuq -cuC -cuO -cuz -cvm -cvt -cvt -cvt -cvL -cvQ -cvX -cvX -cvX -cvX -cva -cva -cva -cva -cva -cva -cva -cva -cvx -cva -cva -cva -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(147,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqu -arm -arm -arm -auy -auB -auB -axZ -azp -azp -azp -aCw -aaf -alP -aGL -aIg -aJH -aKR -aMB -aJC -aOP -aJI -aRA -aVz -aVz -aVz -aVz -aYJ -aJI -bbz -aYV -aYV -aYV -bfK -bhj -biw -bhs -bjM -bmN -bok -bpx -bpP -brf -bhh -bvh -bwJ -bxU -bzi -bAu -bvj -bCN -bEa -bFA -bGS -bIm -bJD -bKK -bLS -bNc -bOj -bNc -bNc -bNc -bNc -bTY -bUX -bzs -bWV -bzs -bzs -bZM -cbJ -ceC -cfV -cfW -cfX -chk -chl -ciz -chi -ciz -cjq -ckg -cmb -cpO -cpQ -cpQ -cpQ -cpQ -czJ -apQ -aoV -aaa -aaa -aaf -aaa -csn -csD -csX -ctg -cua -cua -cua -cua -cua -ctZ -ctZ -cup -cuB -cuN -cuZ -cvj -cvj -cvj -cvj -cvj -cvP -cvj -cvj -cvj -cvj -cva -cva -cva -cva -cvp -cwv -cvr -cvp -cvl -cvr -cwv -cvp -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(148,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -arj -arj -arj -auA -avD -awC -ayb -arj -alP -alP -aaa -aaa -alP -aGL -aIi -aJI -aJI -aJI -aJI -aJI -aJI -aRC -aSK -aVz -aVz -aVz -aYL -aJI -bbz -aYV -bdq -aYV -bfK -bhl -biy -bjY -bjN -bkO -bmU -bnH -bqQ -bsx -bhh -bvj -bvj -bxR -bxR -bvj -bvj -bCQ -bEd -bof -bof -bof -bJE -bof -bof -bNd -bIJ -bPo -bQE -bRM -bOr -bTZ -bUX -bzs -bAw -bBR -bHZ -bzs -bzs -bzs -ccF -cdG -ceE -cfl -cfZ -cki -cld -cjt -cjr -csq -cmd -cmd -cmd -cmd -cmd -bVw -bVw -bVw -bVw -aaa -aaa -aaf -csD -csO -csD -czk -cti -cua -cua -ctw -ctH -ctQ -cuc -cuj -cuj -cuE -cuQ -cuj -cvk -cvw -cvw -cvG -cvM -cvS -cvZ -cvG -cvw -cvw -cvf -cwh -cwm -cwr -cvp -cwx -cwj -cwu -cAV -cAZ -cvl -cvl -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(149,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -arj -auz -avC -avC -aya -arj -arA -alP -alP -alP -alP -aGN -aIh -aJI -aKT -aMD -aNM -aOI -aJI -aRy -aSJ -aTM -aVB -aVz -aVz -baj -bbz -aYV -bdp -aYV -bfK -bfK -bfK -bfK -bfK -bfK -bfK -bnF -bqQ -bsx -bhh -bfJ -bhh -bhh -bhh -bhh -bhh -bzX -bBm -bof -bGT -bIo -bof -bIo -bLU -bNd -bII -bOr -bQD -bLY -bMa -bTZ -bUX -bzs -bAw -bXZ -bHZ -bZN -caK -bzs -ccE -cdF -ceD -cfk -cfY -cjr -ckj -cjs -cle -cli -cmc -cmY -cmc -cop -cmd -cmd -cqs -aaa -bVw -aaa -aaa -aaf -csD -csN -csV -ctb -cth -cua -ctr -ctu -ctG -ctP -cub -cuj -cur -cuD -cuP -cvc -cvk -cvu -cvu -cvu -cvu -cvR -cvY -cwb -cvu -cvu -cva -cwg -cwl -cwr -cvl -cww -cwD -cvv -cvv -cAY -cBb -cBd -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(150,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaf -arj -auB -auB -arj -arj -arj -anf -anf -anf -awD -alP -aGB -aIf -aJA -aKC -aKC -aKC -aON -aQk -aRD -aSM -aVG -aVE -aXm -aVz -bak -bbz -aYV -bdp -aYV -bfL -bhn -biz -biz -biz -bmR -bfL -bol -bqQ -bsx -bst -bfJ -bhh -bhh -bwK -bhh -bhh -bhh -btV -bof -bGV -bIp -bof -bKM -bLW -bNd -bOn -bOr -bOr -bRO -bSQ -bTZ -bUZ -bPv -bPv -bPv -bPv -bPv -caM -cbL -cbL -cdI -ceG -cfj -cgb -chn -ciE -cjv -clj -ckk -cmf -cna -cnC -cor -ciM -cpN -cqt -aaa -bVw -aaa -aaa -aaf -csD -csU -csW -ctc -ctc -cto -ctt -cty -ctJ -ctT -cue -cul -cuu -cuG -cuS -cve -cvo -cvz -cvz -cvI -cvz -cvT -cBS -cwc -cvz -cwd -cwf -cwj -cwo -cwt -cwu -cwA -cAR -cAS -cvv -cBa -cBc -cBe -cva -cva -cva -cBf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(151,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -alP -ayf -aBD -aCx -aDV -alP -aGL -aHY -aQj -aQj -aMk -aNK -aOM -aQj -aRB -aSL -aTN -aVD -cCq -cAg -bak -bbz -aYV -bdp -cBm -bfL -bhm -bhm -bhm -bhm -bkP -bmV -boc -bqW -brh -bua -bua -bua -bua -bua -bua -bhh -bhh -btV -bof -bGU -bqQ -bof -bCR -bLV -bNd -bOm -bPp -bQF -bRN -bSS -bUa -bNc -bNc -bOj -bNc -bNc -bZO -caL -cbK -ccG -cdH -ceF -cfj -cga -chm -ciD -cju -clf -csr -cme -cmZ -cme -coq -cmd -cmd -cqs -aaa -bVw -aaa -aaa -aaf -csD -ctb -csV -ctb -ctj -ctk -cts -ctx -ctI -ctS -cud -cuk -cus -cuF -cuR -cvd -cvn -cvy -cvy -cvH -cvy -cvy -cvy -cvy -cvy -cvy -cwe -cwi -cwn -cws -cwn -cwz -cwE -cvv -cvv -cvv -cvp -cvl -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(152,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -alP -aAq -aAq -aCy -aCG -alP -aGL -avI -aJK -aKV -aMl -aMF -aMF -aJI -aRG -aSO -aTO -aVG -cCq -aVz -bak -bbz -aYV -bdp -bdc -bfL -beY -biz -biz -biz -bkR -bfL -boo -bqQ -bhg -bua -bvn -bwL -bxX -bsL -bua -bBJ -bhh -bBn -bof -bDF -bIr -bof -bKN -bHT -bNd -bNd -bNd -bNd -bNd -bSU -bUb -bVa -bWf -bWX -bOP -bNd -bTZ -bUX -bzs -bzs -bzs -bzs -cfj -cfj -cfj -cfj -cjx -cfj -cfj -cmd -cmd -cmd -cos -cmd -czI -bVw -bVw -bVw -aaa -aaa -aaf -csD -csD -csD -csD -cti -ctq -cua -ctA -cuy -ctV -cug -cuj -cuj -cuE -cuU -cuj -cvk -cvw -cvw -cvJ -cvw -cvV -cwa -cvJ -cvw -cvw -cvb -cwk -cwp -cwr -cvp -cwC -cwn -cAT -cAW -cvl -cvl -cvl -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(153,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aba -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaf -aaf -alO -alO -alO -alP -alP -alP -alP -alP -alP -alP -aDW -aFn -aGP -avI -aJI -aJI -aJI -aNO -aOT -aJI -aRF -aSN -aVF -aVF -aVF -aYM -aJI -bbA -aYV -bdr -bdb -bdN -blr -bho -bho -bho -bkQ -bmW -bom -bIq -bri -bsu -bsL -bsL -bvo -bzl -bua -bzd -bhh -btT -bCU -bCR -bqQ -bGX -bCR -bqQ -bRN -bIK -bPq -bLd -bNd -bST -bOr -bOr -bOr -bWW -bYa -bYX -bTZ -caN -cbM -cbM -cdJ -bzs -cfm -cgc -bAw -ciF -cjw -ckl -clk -clk -bAw -bzs -apQ -aaa -apQ -apQ -apQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ctp -cua -ctz -ctK -ctU -cuf -cuf -cuv -cuH -cuT -cvg -cvj -cvj -cvj -cvj -cvj -cvU -cvj -cvj -cvj -cvj -cva -cva -cva -cva -cvp -cwB -cvr -cvp -cvl -cvr -cwB -cvp -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(154,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaS -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aag -alO -arp -alO -anf -anf -anf -awD -anf -aoP -alP -aBE -alP -aDX -alP -aGR -avI -aJL -aKX -aJI -aJI -aJI -aJI -aRH -aVz -aVz -aVH -aXn -aYN -aJI -bbz -aYV -aYV -bey -bfL -bhm -biz -biz -biz -bla -bmY -boq -boq -brj -bpE -btk -bum -bvq -bzn -bua -bBL -bhh -bBC -bCV -bDN -bFM -btR -bDN -bIa -bIf -bIL -bOq -bLf -bRP -bSW -bMH -bNi -bOr -bWZ -bYd -bYY -bZP -caO -cbN -ccI -cdL -ceI -cfo -bAw -bAw -bAw -cjz -ceJ -clm -cmg -cnc -cnD -bzs -apQ -apQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -cua -ctF -ctM -ctX -cuf -cum -cuw -cuJ -cuW -cvi -cvq -cvC -cvC -cvC -cvN -cvW -cvX -cvX -cvX -cvX -cva -cva -cva -cva -cva -cva -cva -cva -cvA -cva -cva -cva -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(155,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -ads -adS -aeG -aaa -ads -adS -aeG -aaa -ads -adS -aeG -aaa -aaS -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aag -cxW -anf -aqv -anf -anf -anf -aEl -anf -alP -alP -alP -alP -alP -alP -aGQ -aIk -aIp -aKW -aMG -aIp -aIp -aJI -aJI -aSP -aUh -aJI -aJI -aJI -aJI -aJI -bcq -bcq -bcq -bfL -bhp -biB -biB -biB -bkU -bmX -bpE -bpE -bpE -bpE -bti -bul -bvp -bzm -bua -bBK -bwz -bBw -bJG -bDI -bFL -bli -bKO -bHY -bNf -bOp -bPr -bQH -bNd -bSV -bSQ -bNh -bWg -bWY -bYc -bNd -bNd -bzs -bzs -ccH -cdK -ceH -cfn -cgd -ceJ -ccM -cjy -ceJ -cll -ccM -cnb -bHd -ceI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -cua -ctE -ctL -ctW -cuf -cum -cuw -cuI -cuV -cvh -cvj -cvB -cvE -cvk -cvk -cvk -cvk -cvk -cvk -cvX -cvX -cvX -cvX -cwq -cwq -cva -cva -cva -cva -cva -cva -cva -cva -cva -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(156,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaS -aaf -ads -adT -aeG -aaa -ads -adT -aeG -aaa -ads -adT -aeG -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -alO -alO -alO -anf -auC -alP -anf -anf -alP -arA -anf -alP -atw -alP -aGS -aIm -aIp -aKH -aMI -aIp -aOV -aOX -aOX -aSR -aUi -aVJ -aOX -aYP -bal -bam -aYV -aYV -aYV -bfL -bhq -bhm -bkb -bhm -bla -bmZ -bpH -bra -bsK -bpE -bpE -buq -bvt -bye -bon -bBN -bEi -bEi -bEi -bDU -bFO -bBN -bKR -bMc -bNd -bNd -bNd -bNd -bNd -bSX -bMI -bNk -bNU -bXb -bWi -bYZ -bZR -caQ -bzs -ccK -ccM -ceJ -ceJ -cgf -ceJ -ccM -ccM -ceJ -clo -cmi -cbQ -cnF -cot -csc -csm -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -cua -cua -cua -cua -cuf -cuf -cux -cuK -cuX -cuf -cvk -cvk -cvk -cvk -aaf -aaf -aaf -aaf -cvk -cvk -cvk -cvk -cvk -cvk -cvk -cva -cva -cva -cva -cva -cva -cva -cva -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(157,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -ads -adT -aeG -aaf -ads -adT -aeG -aaf -ads -adT -aeG -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alO -aqy -anf -alP -awE -anf -apE -anf -anf -alP -anf -alP -aCE -aIj -aJB -aKD -aMs -aNL -aOQ -aQf -aRE -aSQ -aVI -aVI -aVI -aYO -aRJ -bbB -aYV -aYV -aYV -bfL -bfL -bfL -bfL -bfL -blg -bmZ -bpG -bqZ -brk -bsv -bsv -bun -bvr -bzo -bon -aFa -bCY -bEh -bCW -bDS -bFN -bBN -bKQ -bMb -bNd -bOr -bOt -bOr -bRQ -bOr -bSQ -bNj -bNs -bXa -bYa -bNd -bZQ -caP -cbO -ccJ -cdM -bLS -cfp -cge -cbK -ciG -bLS -ckm -cln -cmh -cnd -cnE -bPn -aoV -aoV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -cuf -cuf -cuf -cuf -cuf -aaf -aaa -aaf -cvK -aaf -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -cAX -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(158,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -ads -adT -aeG -aaa -ads -adT -aeG -aaa -ads -adT -aeG -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -apC -apC -apC -apC -apC -apC -alP -anf -alP -alP -alP -alP -awD -ayf -aGC -aIl -aIq -aKK -aMy -aIp -aOX -aQm -aRJ -aRJ -aRJ -aVK -aRJ -aRJ -aRJ -bbB -aYV -aYV -aYV -bfO -bfS -biC -bkd -bfS -bKH -bmZ -bpJ -brc -bsL -bug -btl -but -bvw -bzq -bon -bBP -bCZ -bEk -bFG -bCY -bFP -bBN -bKQ -bMb -bNd -bOt -bOr -bOr -bRQ -bOr -bSQ -bWj -bWk -bXc -bYe -bNd -bZS -caR -bzs -ccL -ccM -ceL -ceJ -cgh -ceJ -ceJ -ccM -ceJ -cAe -cmj -cne -bHd -bPn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(159,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaf -aaa -ads -adT -aeG -aaa -ads -adT -aeG -aaa -ads -adT -aeG -aaa -aaf -aaa -aaa -aaa -aaa -amw -aof -aof -aof -aof -arq -asv -atv -auD -apC -awF -anf -alP -arA -anf -aCz -asw -aCJ -aGT -aIn -aIp -aKI -aMt -aIp -aOW -aQm -aRJ -aSS -aUj -aRJ -aRJ -aYQ -cBg -bam -aYV -aYV -aYV -aYV -bhr -biC -bkc -bfS -blo -bmZ -bpI -brb -bsL -buf -bvs -bur -bvp -bzp -bon -bBO -bCY -bEj -bCY -bGZ -bFE -bBN -bKS -bMd -bNd -bOs -bOt -bQJ -bRR -bOr -bSQ -bWj -bWj -bWj -bWj -bNd -bzs -bzs -bzs -ccH -bFr -ceK -ceJ -cgg -ccM -ccM -cjA -ceJ -ccM -cdN -bFr -cnG -bzs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(160,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaa -aaa -adV -aaa -aaa -aaa -adV -aaa -aaa -aaa -adV -aaa -aaa -aaf -aaa -aaa -amw -amw -amw -aoh -aoN -apA -aof -ars -anf -arx -anf -apC -aoQ -cqM -asw -asw -asw -aCA -anf -aFp -aGW -anf -aIp -aKI -aMA -aIp -aOX -aQm -aRJ -aST -aUk -aRJ -aRJ -aYQ -bam -aYV -aYV -aYV -aYV -beE -bfS -biE -bkf -bfS -bKH -bmZ -bpL -bre -bsN -bre -bvv -bur -bvp -bzr -bon -bBQ -bDa -bEl -bFH -bHb -bIw -bBN -bKT -bMb -bNd -bOt -bPu -bOr -bRQ -bOr -bSQ -bWj -bWk -bXc -bYe -bNd -bZU -caS -cbN -ccN -bHd -bzs -bzs -bKT -bAw -bAw -bFr -ceJ -ccM -ccM -cng -bzs -bzs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(161,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -abX -acx -acx -adt -adU -adU -adU -adU -adU -adU -adU -adU -adU -adU -adU -adU -alg -alN -amv -ane -cxN -aog -aoM -apz -aqw -arr -asw -asw -auE -apC -awG -auF -alP -alP -alP -alP -alP -aFo -aGV -aIp -aIp -aKL -aMz -aNQ -aOX -aQm -aRJ -aRJ -aRJ -aRJ -aRJ -aYR -ban -aYV -aYV -aYV -bez -bfP -bfS -biD -bke -bfS -bKH -bmZ -bpK -brd -bpK -bpK -bvu -bux -bvy -bon -bon -bBN -bBN -bBN -bBN -bHa -bBN -bBN -bKB -bMb -bNd -bOr -bPt -bOr -bRQ -bSY -bMJ -bNl -bNW -bXd -bPu -bNd -bZT -bMb -bFr -ccM -cdN -bzs -cfq -bKT -bAw -ciH -bHd -bzs -bAw -cmk -cnf -bzs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(162,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaa -aaa -adX -aaa -aaa -aaa -adX -aaa -aaa -aaa -adX -aaa -aaa -aaf -aaa -aaa -amw -amw -amw -aoi -aoO -apB -aqx -art -anf -anf -auF -apC -awH -auF -alP -aAr -anf -alP -aaa -aFq -aGX -aIp -aJO -aKU -aME -aNN -aOR -aQh -aRI -aSU -aXo -aXo -aXo -aYO -bap -aYV -aYV -bci -beB -bfS -bfS -bfS -bfS -bfS -bKH -bmZ -bon -bon -bon -bon -bon -buG -bvA -bon -bAw -bzg -bLS -bLS -bLS -cbQ -bLS -bLS -bKE -caU -bNc -bOj -bPw -bNc -bNc -bNc -bNc -bNc -bNc -bNc -bPw -bNc -bLS -caU -cbQ -bhG -bhG -bhG -cbK -cgj -cbK -cbK -chp -bCq -clp -bCq -bCq -bCq -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(163,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aba -aaS -acy -aaa -ads -adW -aeG -aaa -ads -adW -aeG -aaa -ads -adW -aeG -aaa -aaf -aaa -aaa -aaa -aaa -amw -aof -aof -aof -aof -anf -aoP -atw -auF -apC -aoP -auF -azr -anf -anf -alP -alP -aFo -aGV -aIp -aJN -aLd -aMN -aNQ -aOZ -aOX -aOX -aOX -aUz -aVM -aOX -aYT -bam -aYV -baR -bcb -bdl -bdO -cHD -bgo -bPv -bPv -blq -bna -bPv -bpQ -bPv -bdO -btm -buy -bvz -bdO -bPv -bna -bPv -bPv -bPv -bDV -bPv -bPv -bHq -bMe -bIg -bIM -bPv -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -caT -cbP -ccO -cdO -cdO -cdO -cnH -czH -czT -czY -bCq -bHE -bHE -clp -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(164,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -ads -adW -aeG -aaa -ads -adW -aeG -aaa -ads -adW -aeG -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -apC -aqy -anf -anf -aty -auF -apC -alP -auF -alP -alP -alP -alP -ayf -aFm -aGF -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aXS -aIq -aIq -baZ -bck -bdm -bdP -cHE -bdP -bdP -bdP -bdP -bnc -boC -bpV -boC -boC -bto -buL -bvB -cbK -bxg -bzk -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bIs -bIN -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bky -bky -bUw -czY -bCq -bLv -bLv -bLv -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(165,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -ads -adW -aeG -aaf -ads -adW -aeG -aaf -ads -adW -aeG -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -apC -anf -anf -alP -atx -auF -apC -auD -auF -alP -aAs -anf -alP -aCG -aFr -aGE -aIo -aIo -aIo -aIo -aIo -aIo -aIo -aRK -aIo -aIo -aUx -aVL -aXR -aZc -aZc -baT -bcj -beC -bfT -cHF -biG -blw -blu -bnb -bfT -bor -bpS -bsO -bfV -btn -buH -byf -byf -byf -byf -bDb -bEm -bEm -bEm -bDb -bJH -bKW -bMg -bIh -bOx -bPx -bJN -bRT -bEm -bEm -bJN -bRT -bEm -bEm -bJN -bRT -bEm -bEm -bDb -cfr -cho -bDb -aaa -bky -bUw -czY -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(166,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaf -ads -adW -aeG -aaa -ads -adW -aeG -aaa -ads -adW -aeG -aaf -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -apC -anf -alP -alP -apE -auG -apC -aoP -auF -apE -anf -anf -alP -aCG -aFt -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aVO -bdp -aYV -aYV -bba -aXq -bfU -bhu -cHG -biI -bkh -biI -cHQ -bfT -boE -bpY -bsQ -box -btx -buU -byf -bzu -bAz -bBT -bDb -bEm -bEm -bEm -bIx -bJJ -bKY -bMi -bNo -bIP -bPA -bJN -bRU -bSZ -bEm -bJN -bRU -bXe -bEm -bJN -bRU -bSZ -bEm -bDb -cgi -chq -ccQ -aaa -bZi -bUw -czY -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(167,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -ads -adY -aeG -aaa -ads -adY -aeG -aaa -ads -adY -aeG -aaa -aaS -aaf -aaf -aaf -aaf -aaf -aaf -aaf -apC -anf -anf -asx -anf -auF -alP -alP -auF -alP -alP -alP -aCB -aEB -aFs -bbE -aIr -bav -aLf -aIt -aNS -aPb -aQp -aRN -aIt -aUB -aFu -aVN -bdp -bar -bar -aYV -aXq -bfU -bhu -cHH -biH -cHN -blv -bls -bfT -boD -bpY -bsP -box -btw -buT -byf -bzt -bAy -bBS -bDb -bEm -bEm -cBz -bEm -bJI -bKX -bMh -bIt -bOx -bPz -bJN -bRU -bEm -bEm -bJN -bRU -bEm -bEm -bJN -bRU -bEm -cBz -bDb -cgi -chq -ccQ -aaa -bZi -bUw -czY -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(168,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aiS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apC -alP -alP -alP -anf -auH -avF -awI -ayc -asw -aAu -asw -aCD -aEa -aFv -aGG -aIu -aJQ -bCI -aIt -aIt -aPb -aIt -aRN -aIt -aUB -aFu -aVZ -aXT -aFu -aFu -bcv -aXq -bfU -bhu -cHI -biJ -bhM -biJ -blx -bfT -boL -bpY -bsR -box -buo -bxd -byf -bzw -bAB -bBV -bDb -bEn -bEm -bEm -bEm -bJL -bLa -bMi -bNo -bPy -bPA -bJN -bRW -bTb -bUe -bJN -bWl -bXf -bYg -bJN -bZV -caV -cbS -bDb -cgl -chs -bDb -aaa -bky -bUw -czY -bCq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(169,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aba -aaS -aaS -aaf -aaa -aaa -aaf -aaf -aaf -aaf -alO -aqz -aru -alP -anf -anf -avE -anf -anf -awD -aAt -aty -aCC -aDZ -aFu -aFu -aIs -aJP -aLg -aMH -aIt -aYW -aYW -aYW -aYW -aYW -aYW -aVY -aYY -bas -aFu -aYV -cBk -aYV -bht -cHJ -cHL -blw -bjP -blt -bfT -boG -bqa -cIe -box -buo -bvb -byh -bzv -bAA -bBU -bDb -bEm -bEm -bEm -bIy -bJK -bKZ -bMi -bIu -bIO -bPB -bLe -bRV -bTa -bUd -bVi -bRV -bTa -bYf -bVi -bRV -bTa -cbR -bDb -cgk -chr -bDb -aaa -bky -cBN -czY -bCq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(170,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -alO -anf -anf -asy -anf -anf -alP -alP -anf -alP -alP -alP -aCE -aDZ -aFu -aHc -aIw -aJS -cAM -aMJ -aNP -aOS -aOS -aOS -aOS -aOS -aOS -aWb -aXU -bau -aFu -aYV -aXq -aYV -bfV -cHK -blA -blA -blA -blD -box -cHU -cHZ -cIf -box -btA -bxd -byf -bzy -bAD -bBX -bDb -bEm -bEm -bEm -bIx -bJM -bLc -bMi -bNo -bOx -bPD -bQM -bMi -bMi -bRZ -bVj -bMi -bMi -bRZ -bZa -bMi -bMi -bRZ -bMi -bMi -chu -ccQ -aaf -bZi -bUw -cAa -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(171,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaf -aaf -alO -aqA -anf -alP -anf -anf -alP -awJ -anf -alP -aAv -anf -aCE -aDZ -aFu -aHb -aIv -aJR -aJR -aIt -aIt -aPd -aIt -aRO -aIt -aUC -aVP -aXu -aYW -bat -bbD -aYV -aXq -beE -bfV -bhv -biK -bkk -blz -bly -bos -bpR -bqc -bsS -box -buo -bxd -byf -bzx -bAC -bBW -bDb -bEm -bEm -bEm -bDb -bJH -bLb -bMk -bNn -bIQ -bPC -bQL -cBG -bTc -bUf -bTc -bRX -bTc -bUf -bTc -bRX -bTc -cbT -ccP -ccP -cht -ckn -csk -czQ -czU -czZ -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(172,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -alP -alP -alP -alP -alP -anf -anf -alP -anf -anf -apE -anf -anf -aCE -aDZ -aFu -aHd -aIx -aJF -aLh -aIt -aNV -aPd -aIt -aRO -aIt -aIt -aVQ -aXu -aYW -aVQ -aFu -aYV -aXq -bds -bfV -bhx -biL -bkm -cHO -blG -biL -cHV -cIa -biL -box -buo -bvc -byf -byf -byf -byf -bDb -bDb -bDb -bDb -bDb -bJN -bJN -bMm -bNp -bOx -bMi -bQN -bRZ -bMi -bMi -bVk -bRZ -bMi -bMi -bZb -bRZ -bMi -bMi -cfy -cgn -cjB -ccQ -aaf -bZi -czV -czY -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(173,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -alO -apD -aEl -anf -arx -anf -anf -alP -alP -atB -alP -alP -alP -aCF -aDZ -aFw -aFw -aFw -aFw -aFw -aFw -aFw -aPf -aQq -aRP -aIt -aIt -aIt -aWd -aXV -aIt -bbD -aYV -aXq -aYV -bfV -bhw -cHM -biL -blB -blF -cHS -cHW -cIb -bsT -box -btP -bxd -byi -bzz -bAE -bBY -bDc -bEo -bFI -bHe -bIz -bIz -bJN -bMl -bIv -bIR -bPE -bLe -bRY -bTd -bUg -bVi -bWm -bTd -bUg -bVi -bZW -bTd -bUg -bDb -bDb -bDb -bDb -aaa -bky -czV -czY -bCq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(174,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -alP -anf -anf -arw -asA -asA -anf -alP -awL -anf -anf -apE -aBF -aCH -aED -aFy -aGO -aIB -aJJ -aKZ -aMW -aFw -aFu -aFu -aFu -aTc -aUD -aVS -aYW -aYW -bax -aFu -aYV -aXq -aYV -bfV -bfV -biO -biL -cHP -cHR -bou -bpT -bqd -biL -box -btS -bxd -byi -bwN -bAG -bCa -bDc -bEo -bIC -bEc -bIB -bIB -bJN -bMo -bNp -bOx -bPH -bJN -bSa -bTe -bUh -bJN -bWn -bXg -bYh -bJN -bZX -caW -cbU -bDb -aaf -aaf -aaa -aaa -bky -czV -czY -bCq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bZi -bZi -bZi -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(175,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -alO -aoQ -anf -arv -asz -atA -anf -alP -awK -anf -awD -apE -anf -aCk -aEC -aFx -aGM -aIy -aJG -cAz -aMK -aFw -aPg -aQr -aFu -aTb -aIt -aVR -aYW -aYW -aUD -bbD -aYV -aXq -aYV -bfW -bhy -biN -biL -bni -blM -bou -cHX -cIc -biL -buj -btQ -bve -byj -bwM -bAF -bBZ -bDc -bEp -bCX -bEc -bIA -bIA -bJN -bMn -bNp -bOz -bPG -bJN -bEm -bEm -bRU -bJN -bEm -bEm -bRU -bJN -bEm -bEm -bRU -bDb -aaf -aaa -aaa -aaa -bZi -czV -czY -bLv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bZi -btp -cqu -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(176,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alP -alP -alP -aqB -arx -anf -anf -anf -alP -awM -ayg -ayg -ayg -ayg -aCl -aEe -aFw -aFw -aFw -aLo -aLb -aFw -aFw -aPi -aQt -aRQ -aIt -aUF -aLg -aYW -aYW -aVQ -aFu -aYV -aXq -aYV -bfX -bhz -biQ -biL -blC -bou -cHT -bou -cId -biL -bsw -btU -bxe -bvC -bzD -bxv -bCc -bDc -bEo -bDj -bDY -bIA -bIA -bJN -bMq -bNp -bOx -bPJ -bJN -bEm -bSZ -bRU -bJN -bEm -bXe -bRU -bJN -bEm -bSZ -bRU -bDb -aaf -aaa -aaa -aaa -bZi -czV -czY -bLv -aaf -aaf -aaf -aaf -aaf -bky -bky -bZi -cqu -bZi -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(177,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alP -aoP -alP -alP -apE -alP -atB -alP -alP -awx -aye -ayd -aAc -ayd -aCI -aEd -aFw -aHf -aIz -aJM -aLa -cBZ -aFw -aPh -aQs -aFu -aTd -aUE -aVT -aYW -aYW -aZd -aFu -aYV -aXq -aYV -bfX -bhy -biP -bko -blE -bnj -bov -bpU -brq -bsW -buj -bvE -bxd -byk -bzC -bAH -bCb -bDc -bEo -bDf -bEb -bGY -bGY -bJN -bMp -bNp -bOx -bPI -bJN -bEm -bEm -bUi -bJN -bEm -bEm -bUi -bJN -bEm -bEm -bUi -bDb -aaf -aaf -aaa -aaa -bZi -czV -czY -bLv -aaa -aaa -aaa -aaf -aaf -bky -cwy -cmn -cmn -bZi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(178,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -alP -alP -alP -alP -alP -anf -anf -anf -anf -anf -anf -aty -anf -awx -avI -asA -apE -arx -aCo -aEf -aFw -aGU -aIC -aJU -aLe -aMX -aFw -aCR -aCR -aCR -aCR -aCR -aCR -aWe -aWe -aCR -aCR -bcs -aXq -aYV -bfX -bfV -bfV -bfV -bfV -bfV -box -bpW -brs -box -box -buo -bxd -byk -byk -byk -byk -bDc -bDc -bJR -bEg -bDc -bDc -bLe -bMr -bNr -bIT -bJN -bJN -bJN -bJN -bJN -bJN -bJN -bJN -bDb -bDb -bDb -bDb -bDb -bDb -bky -bky -bky -bky -bky -czX -cAc -bCq -bky -bky -bky -bky -bky -bky -cmn -cmn -cmn -bZi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(179,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alO -amx -anf -anf -anf -anf -alP -alP -alP -asB -asB -asB -avo -awx -avH -asB -asB -asB -aCK -aEf -aFw -aHg -aIA -aJT -aLc -aMX -aFw -aPj -aFz -aRR -aTe -aUG -aFz -aRS -aXW -baz -aCR -bcx -aXq -aYV -bfY -bhA -biR -bkq -bjZ -bvx -boz -boM -bzE -bsX -bsz -btW -bxf -bzE -bzE -bzE -bzE -bDd -bEq -bDl -bEf -bFQ -bHc -bHK -bIb -bID -bOA -bPK -bQO -bSb -bOu -bUj -bVl -bWo -bXh -bQZ -bTl -bZY -caX -bTl -bQZ -cdQ -btp -bky -czG -czR -czW -cAb -cko -clq -cmq -ciI -cnJ -cri -bYr -cmn -cBT -cBU -bZi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(180,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alP -alP -alP -alP -alP -anf -alP -aqD -arz -asB -atD -auJ -asB -awQ -avK -azt -aAy -asB -aCN -aEf -aFw -aGY -aII -aJW -aMX -aMX -aNW -aPl -aQv -aPl -aTg -aUI -aTg -aRS -aZf -aFz -bbF -aYV -aXq -aYV -bfX -bhB -bgp -bhU -bhU -blX -bow -boO -bhU -bsZ -cdX -ceX -bvg -bvD -bvD -cBx -bzB -bAa -bBE -bDm -bEr -bFR -bHf -bHM -bFR -bIE -bJr -bJO -bWr -bQX -bQX -bUk -bVn -bWq -bXj -bYj -bZc -bTl -bTl -bTl -bQZ -bNB -ceM -ccU -cgo -czS -blO -cAd -bky -bDh -cBL -btp -btp -cvO -bky -bky -bky -bky -bky -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(181,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -alP -anf -alP -aqC -ary -asB -atC -auI -auI -awP -avJ -awO -awO -asB -aCM -aEg -aFw -aHi -aHi -aJV -aFw -aFw -aFw -aPk -aQu -aPk -aTf -aUH -aTf -aRS -aZf -baA -bbF -aYV -aXq -aYV -bfZ -bhA -biS -bkr -blH -bnm -boy -bpX -brt -brm -bsA -bvH -bvf -brt -bwO -bxF -bzA -bzZ -bBD -bBD -bBD -bBD -bBD -bHL -bBD -bBD -bJo -bPK -bQX -bWr -bQX -bQX -bWr -bWp -bXi -bYi -bTl -bTl -caY -cbV -bQZ -blQ -brG -cfs -cgm -bns -bky -bky -bky -bky -bky -bky -btp -csy -cko -cAf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(182,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -alP -anf -alP -alP -alP -asB -atE -auI -auI -awT -avM -azv -aAA -asB -aCE -aEi -aFw -aHl -aID -aID -aFw -aMM -aFz -aFz -aQw -aRS -aRS -aRS -aRS -aRS -aZf -aRS -bbF -aYV -aXq -aYV -bga -bgc -bgc -bgc -bgc -bgc -boB -boB -boB -btb -buo -bvJ -bvJ -bvJ -bwQ -bxW -bvK -bvK -bEt -bDn -bEz -bFS -bJT -bLh -bMs -bMs -bMs -bPN -bQS -bSf -bWr -bWr -bQX -bWr -bXl -caZ -cba -bTl -cbc -bTl -bQZ -cdR -ceO -bky -cgm -chw -ciK -cjC -ckp -cls -cmr -bky -btp -cmo -bky -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -alP -anf -apE -anf -anf -asB -asB -asB -avL -awR -auI -azu -aAz -asB -aCO -aEh -aFz -aHk -aFz -aFz -aTe -aML -aFz -aFz -aQw -cdl -aRS -aRS -aRS -aRS -aZf -aRS -bbF -aYV -aXq -aYV -bfX -bhC -biU -bks -blI -bnn -boA -bpZ -boB -bta -buo -bvJ -bCk -byo -aDH -bxP -bCf -bvK -bEs -bGc -bHm -bGc -bEs -bEs -aaf -aaf -aaf -bPN -bQR -bSe -bMf -bNe -bNm -bNX -bTf -bQZ -bTl -bTl -cbb -bTl -bQZ -cdR -ceN -bky -cgp -chv -ciJ -cbf -cbf -clr -bnt -bky -btp -cou -bZi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(184,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -alP -aoQ -alP -aqE -arA -asB -atG -auL -avN -axa -auI -azw -aAA -asB -aCQ -aEk -aFB -aHn -aFB -csT -aFB -aLr -aFB -aPn -aQy -aPn -aTi -aUK -aVU -aWg -aZf -baA -bbF -aYV -aXq -aYV -bfX -bhD -biV -biW -blK -bnp -bng -boQ -brx -bro -buo -bvJ -bxj -byq -bwR -bxY -bCh -bvK -bEv -bFU -bFU -bFU -bJV -bEC -bMu -bMu -bMu -bEC -bQU -bQU -bTl -bQU -bXr -bWr -bOw -bQZ -bQZ -bQZ -cka -bQZ -bQZ -bQZ -bQZ -bQZ -cgr -chx -bky -bky -bky -clt -bnt -bky -btp -bMB -bZi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(185,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -alP -alP -alP -alP -alP -asB -atF -auK -auJ -awS -auI -awO -awO -asB -aCP -aEj -aFA -aHm -aEj -aEj -aEj -aEj -aEj -aPm -aQx -aPm -aTh -aUJ -aTh -aXz -aZg -aFz -bbF -aYV -bdv -aYV -bgb -bhC -biU -biW -blJ -bno -bnf -boP -bqf -brn -bsC -bvK -bxi -byp -bzJ -bxY -bCg -bvK -bEu -bFU -bFU -bFU -bJU -bEC -bMt -bNt -bNt -bEC -bQT -bSg -bTk -bSh -bXr -bQX -bOv -bYk -bYk -bZZ -cjW -bZZ -ccR -cdS -ceP -bQZ -cgq -chx -bky -aaa -bky -cgr -cms -bky -btp -bNA -bky -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(186,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -asB -atH -auM -avO -awU -ayj -azx -aAB -asB -aCR -aEm -aCR -aPl -aQv -aPl -aQv -aCR -aNY -aCR -aQA -aCR -aTj -aFz -aVV -aXB -aZh -baB -aCR -bcq -bdx -bcq -bgc -bgc -biX -bhV -bka -blZ -bnk -bpo -bqk -brp -bsD -bvK -bxl -bys -bzM -bya -bCj -bvK -bEx -bFU -bFU -bGl -bJX -bEC -bMw -cBE -bOE -bEC -bQV -bSi -bTm -bUn -bXr -bQX -bOv -bYm -bYm -bZZ -ckN -bZZ -ccR -cdS -ceP -bQZ -cgt -chx -bZi -aaa -bZi -clt -bnt -btp -btp -bky -bky -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(187,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -asB -asB -asB -asB -asB -asB -asB -asB -asB -aCR -bfb -aCR -aHo -aIE -aKe -aIE -aCR -aNX -aPo -aQz -aCR -aCR -aCR -aCR -aXy -aZe -aCR -aCR -bcy -bdw -beG -bgc -bhE -biW -bkv -blL -biW -bnh -biW -brx -bte -bup -bvK -cBu -byr -bzL -bxZ -bCi -bvK -bEw -bFU -bFU -bGk -bJW -bEC -bMv -bNu -bMv -bEC -bQT -bSh -coT -bTl -bXr -bNZ -bOy -bZd -bYl -caa -ckM -cbW -ccS -ccS -ceQ -cft -cgs -chy -bZi -aaa -bZi -clt -bns -bky -bky -bky -aaa -aaa -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aba -aaS -aaS -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(188,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -atS -apQ -aoV -aoV -atS -apQ -apQ -apQ -atS -aCR -aEn -aCR -aHq -aHq -aHq -aHq -aCR -aCR -aCR -aCR -aCR -aTl -aUL -aVW -aXD -aZj -baD -bbG -aTk -bdy -beI -bgc -bhF -biW -bib -bki -bma -bnl -bpq -boB -bth -bus -bvK -bxm -byu -bzN -byb -aGs -bvK -bBF -bFU -bEL -bGz -bJZ -bEC -bMx -bNw -bOF -bEC -bQW -bSj -bTn -bUo -bNq -bOk -bOB -bPs -bYo -cab -cbd -cbX -ccT -bSc -bSc -cfu -cgu -chA -bky -aaa -bky -clt -bns -aaf -aaf -aaf -aaf -aaf -aaS -aaa -aaf -aaa -acy -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(189,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -atS -aoV -aoV -aoV -atS -aoV -aoV -apQ -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aMZ -aNZ -aPp -aQB -aNa -aTk -aPq -aPq -aXC -aZi -baC -aPq -aPq -bdy -beH -bgc -bgc -bgc -bgc -bgc -bgc -bgc -bpp -bgc -brr -bsE -bvK -bvK -byt -byt -byt -byt -byt -bEy -bFU -bFT -bFU -bJY -bEC -bMv -bNv -bMv -bEC -bPN -bPK -bPN -bPN -bPK -bPN -bPK -bPb -bQG -bPN -bPN -bPN -bQZ -bQZ -bQZ -bQZ -bky -chz -bky -bky -bky -clt -bns -aaa -aaa -aaa -aaa -aaa -aaS -aaa -crj -crB -crS -aaa -crj -crB -crS -aaa -crj -crB -crS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(190,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -atS -aoV -aoV -aoV -aaH -aoV -aoV -apQ -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aMZ -aOb -aPr -aQC -aRU -aQC -aQC -aQC -czO -aZl -baE -bbH -bcA -bdz -beJ -bge -bhH -biY -biY -biY -bmd -bnr -bpr -bgc -btj -buu -bvM -bxo -bqe -bzO -bzO -bzO -bqe -bEB -bFW -bFT -bFU -bFU -bLi -bMz -bNy -bOH -bEs -bQY -bQX -bTo -bUp -bUp -bUp -bXs -bPL -bQI -bPN -bWr -cbZ -bQZ -cmo -bky -bDh -bky -chC -ciL -btp -btp -clv -cmt -aaa -aaa -aaa -aaa -aaa -aba -aaf -crj -crC -crS -aaa -crj -crC -crS -aaa -crj -crC -crS -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(191,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -atS -aoV -aoV -aoV -aaH -aoV -aoV -aoV -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aMZ -aOa -aVX -aTm -aRL -aTm -aTm -aTm -aWh -aZk -aTm -aTm -bcz -aTm -aTm -bgd -bhG -bhG -bhG -blO -bmc -bnq -bgc -bgc -bru -bsF -btY -bxn -bqe -bzO -bzO -bzO -bqe -bEA -bFV -bFT -bGA -bHg -bFU -bMy -bNx -bOG -bEs -bQX -bSk -bQX -bUp -bUp -bUp -bXr -bPF -bWr -bWr -bWr -cbY -bQZ -btp -bky -bky -bky -ccp -cbf -cbf -cbf -clu -cmt -aaa -aaa -aaa -aaa -aaa -aaf -aaa -crj -crC -crS -aaf -crj -crC -crS -aaf -crj -crC -crS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(192,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaH -aoV -aoV -aoV -atS -aoV -aoV -aoV -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aNa -aOd -aOU -aPq -aNa -aPq -aPq -aPq -aOU -aPq -aPq -aPq -bcC -cBl -aPq -bgg -aNa -aaa -bky -bqh -bme -bnx -bqe -brA -brw -buw -bvO -bxq -byv -bzO -bAR -bzO -bqe -bED -bFX -bFT -bGF -bKa -bFU -bMA -bNz -bOI -bEs -bRa -bQX -bTp -bUp -bVs -bUp -bXt -bPM -bZh -bPN -cbe -cbY -bQZ -btp -ceS -cae -bky -ccq -cdq -cjE -ckr -clw -cmu -aaf -aaf -aaf -aaf -aaf -aaf -aaf -crj -crC -crS -aaa -crj -crC -crS -aaa -crj -crC -crS -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(193,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -atS -aoV -aoV -aoV -atS -aoV -aoV -aoV -apQ -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aNa -aOc -aPs -aPq -aNa -aPq -aPs -aPs -aXG -aZm -aPs -aPq -bcB -aPq -aPs -bgf -aNa -aaf -bky -blP -bns -boF -bqe -brz -brv -cBt -bvN -bxp -byv -bzO -bAQ -bCl -bqe -bEC -bEC -bEM -bGC -bEC -bEC -bEC -bEC -bEC -bEC -bQZ -bQZ -bQZ -bQZ -bQZ -bQZ -bQZ -bUp -bQZ -bQZ -bQZ -bQZ -bQZ -btp -ceR -btp -cbv -ccq -bns -cjD -cjD -cjD -cjD -cnj -aaa -aaa -aaa -aaa -aaf -aaa -crj -crC -crS -aaa -crj -crC -crS -aaa -crj -crC -crS -aaa -aaf -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(194,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -atS -aoV -aoV -aoV -atS -aoV -aoV -aoV -aoV -aaf -aaa -aaf -aaf -aaf -aaf -aaf -aNa -aNa -aNa -aQF -aNa -aTn -aNa -aNa -aNa -aNa -aNa -cyp -aNa -bdA -aNa -aNa -aNa -aaa -bky -blR -bns -boF -bqe -brC -brv -buv -bvO -bxr -byv -bzO -bzO -bzO -bqe -bEF -bky -bEO -bGK -bKc -bky -bMB -bNA -btp -btp -bRb -bDh -bPN -bUq -bVt -bVt -bUp -bUp -bUp -bPN -bDh -bqg -bky -bDh -bDh -ckS -bky -ccq -cds -cjD -ckt -cly -cmw -cnj -cnj -cnj -aaa -aaa -aaf -aaa -aaa -crD -aaa -aaa -aaa -crD -aaa -aaa -aaa -csZ -aaa -aaa -aaa -aaf -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(195,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apQ -aoV -aoV -aoV -atS -aoV -aoV -aoV -aoV -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaf -aaf -aNa -aQE -aNa -aQE -aNa -aaa -aaf -aaa -aNa -aQE -aNa -aQE -aNa -aaf -aaf -aaf -bky -cyC -bns -boF -bqe -brB -brv -bsG -bvP -bxn -bqe -bzO -bzO -bzO -bqe -bEE -bFY -bEN -bGG -bKb -bFY -buz -buz -buz -buz -buz -bSl -bTq -bTq -bTq -bTq -bTq -bTq -bTq -bTq -cbf -cbf -ccU -ccU -ccU -ccU -ccU -ccr -cdr -cjF -cks -clx -cmv -cnk -cnK -cyU -cpi -cpi -cpi -cqJ -crk -crk -crk -crk -crk -crk -crk -csE -cpi -csY -cpi -cpi -cpi -ctB -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(196,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -apQ -aoV -aoV -aoV -apQ -aoV -aoV -aoV -aoV -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaf -aaa -aNa -aQE -aNa -aQE -aNa -aaf -aaf -aaf -aNa -aQE -aNa -aQE -aNa -aaa -aaf -aaa -aaf -aaa -bns -boF -bqe -brD -brP -bsI -bvO -bxs -byw -bzO -bzO -bzO -bqe -bEG -bGa -bHs -bGL -bKd -bhG -bMC -blO -blO -bPO -blO -bSm -bTr -bTr -bTr -bTr -bXu -bTr -bTr -bTr -cbg -bTr -bTr -bXu -bTr -cbg -bTr -cct -cdu -cjG -cku -clz -cmx -cnj -cnj -cnj -aaa -aaa -aaf -aaa -aaa -crF -aaa -aaa -aaa -crF -aaa -aaa -aaa -csZ -aaa -aaa -aaa -aaf -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(197,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aoV -aoV -aoV -aoV -apQ -aoV -aoV -aoV -aoV -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aNa -aeR -aNa -aQE -aNa -aaf -aaa -aaf -aNa -aQE -aNa -afE -aNa -aaa -aaa -aaa -aaf -aaa -bns -boF -bqe -bqe -bry -bsH -bqe -bqe -bqe -bqe -bqe -bqe -bqe -bEG -bFZ -bHr -bIS -bEs -bEs -bEs -bky -bky -btp -bky -bky -bky -bky -bky -btp -bky -bky -bky -bky -bky -bky -bky -bky -btp -bky -bky -bky -bky -cjD -cjD -cjD -cjD -cnj -aaa -aaa -aaa -aaa -aaf -aaa -crj -crE -crS -aaa -crj -crE -crS -aaa -crj -crE -crS -aaa -aaf -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(198,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aNa -aQE -aNa -aQE -aNa -aaf -aaf -aaf -aNa -aQE -aNa -aQE -aNa -aaa -aaa -aaa -aaf -aaf -bns -boH -biY -brF -brQ -bsM -buz -buz -buz -buz -buz -buz -buz -bEI -bFZ -bHu -bIV -bKf -bLk -bEs -bNC -btp -btp -bky -aaa -aaa -aaf -bky -btp -btp -bYr -btp -cad -cbi -bky -ccW -cdV -btp -bky -cgy -ccV -bky -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -crj -crE -crS -aaa -crj -crE -crS -aaa -crj -crE -crS -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(199,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aNa -cyh -aRW -aTo -aNa -aaa -aaf -aaa -aNa -aTo -aRW -cyr -aNa -aaa -aaa -aaf -aaf -aaf -bnu -bhG -bhG -bhG -bhG -bsJ -brE -bhG -bhG -bhG -bhG -brE -bhG -bEH -bGb -cBA -bIU -bKe -bLj -bEs -bNB -btp -bPP -bky -aaa -aaa -aaf -bky -bky -bky -bky -btp -cac -cbh -bky -ccV -btp -btp -cfv -cBL -btp -bky -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -crj -crE -crS -aaf -crj -crE -crS -aaf -crj -crE -crS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(200,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwI -cwI -cwI -cxg -cwI -afa -cwI -crx -crx -crx -cwI -cxK -cwI -cxK -cwI -cwI -cwI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bky -btq -brH -bvQ -bxt -bvQ -bCm -bDh -bEs -bGd -bHv -bIW -bKe -bLm -bEs -bky -bky -bky -bky -aaa -aaa -aaf -aaa -aaf -bky -bYs -btp -cae -btp -btp -btp -btp -ceT -bky -btp -chH -bky -aaf -aaf -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -crj -crE -crS -aaa -crj -crE -crS -aaa -crj -crE -crS -aaf -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(201,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwI -cwI -cwI -cwI -cwY -cxd -cxe -cwI -cLO -anq -anq -anq -anq -anq -cLS -cwI -cxQ -cLU -cxU -cwI -cwI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bZi -bqg -brG -brG -btp -brG -brG -bDg -bEs -bGc -bGc -bGc -bEs -bLl -bEs -aaf -aaa -aaf -atS -aaa -aaa -aaf -aaa -aaf -bky -bky -bZi -bZi -bZi -bky -bky -bky -blP -bky -bky -bky -bky -aaf -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aba -aaa -crj -crG -crS -aaa -crj -crG -crS -aaa -crj -crG -crS -aaa -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(202,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -cwI -crO -cwK -cwP -cwI -cwY -cxe -cxh -cwI -cxo -cwL -cwL -cwL -cwL -cwL -cxL -cwI -cxQ -cxQ -cxU -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bZi -btp -brI -bvR -btp -byx -brI -bky -bky -aaf -aaf -aaf -aaf -aaa -aaf -aaf -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aag -aaf -aaa -aaa -aaa -aaf -aaf -bky -ceU -bky -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaS -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aaf -aaa -aba -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(203,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -crx -crN -cwJ -cwO -cwI -cwY -cxe -cxh -cwI -cwL -cxq -cxq -cxq -cxq -cxq -cwL -cxM -cxQ -cxQ -cxV -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bky -bky -bky -bky -bky -bky -bky -bky -aaf -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aag -aaf -aaa -aaa -aaa -aaa -aaf -bky -cyC -bky -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaS -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(204,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avT -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -crx -cwF -cwL -cwR -cwI -crx -cxf -crx -cxm -cwL -cxr -cxr -cxr -cxr -cxr -cwL -cwI -cxR -cLV -cxV -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaf -aaf -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaf -aag -aag -aag -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(205,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -crx -crQ -cwL -cwQ -cwI -cwZ -cwL -cxi -cLN -cwL -cwL -cwL -cwL -cwL -cwL -cLT -cwW -cwI -cwI -cwI -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(206,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -crx -cwF -cwL -cwL -cwX -cwL -cwL -anq -cxj -cwL -cxq -cxq -cxq -cxq -cxq -cwL -crx -cxc -cLW -cxc -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(207,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -crx -cwG -amB -amB -cwW -cxa -cwL -cxj -cxj -cwL -cxr -cxr -cxr -cxr -cxr -cwL -cxO -cxa -cxa -cxa -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwI -crO -cwN -cwS -cwI -cxc -cwL -cwL -cwL -cwL -cwL -cwL -cwL -cwL -cwL -cwL -crx -cxa -cxa -cxa -cxX -cxZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(209,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwI -cwI -cwI -cwI -cxb -cLM -cxa -cxa -cxp -cxs -cxs -cxs -cxs -cxs -cxp -crx -cxS -cxT -cxS -cwI -cwI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(210,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cwI -crx -cwI -crx -cwI -cwI -cwI -crx -crx -crx -cwI -cwI -cwI -crx -cwI -crx -cwI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(211,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(212,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxn -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(213,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(215,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(216,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(217,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(218,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(220,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(221,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBX -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(222,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(223,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(224,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bGf -bLo -bGf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(225,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bIX -bGf -bLn -bGf -bIX -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(226,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bGf -bGf -bKh -bLo -bMD -bGf -bGf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(227,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -bGe -bGe -bIY -bKg -bKg -bKg -bND -bGe -bGe -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(228,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -bGf -bHw -bJa -bKg -bLp -bKg -bNF -bOJ -bGf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(229,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -bGe -bGe -bIZ -bKg -bKg -bKg -bNE -bGe -bGe -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(230,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bGf -bGf -bKi -bLr -bME -bNG -bNG -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(231,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bIX -bGf -bLq -bGf -bIX -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(232,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -bGf -bGe -bGf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(233,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(234,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(235,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(236,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(237,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(238,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(239,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(240,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(241,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(242,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(243,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(244,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(245,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(246,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(247,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(248,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aHr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(249,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(250,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(251,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(252,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(253,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(254,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(255,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm deleted file mode 100644 index 7fdf81d020..0000000000 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ /dev/null @@ -1,7319 +0,0 @@ -"aaa" = (/turf/open/space/basic,/area/space) -"aab" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aac" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) -"aad" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) -"aae" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aaf" = (/obj/machinery/computer/med_data{icon_keyboard = "syndi_key"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aag" = (/obj/machinery/computer/crew{icon_keyboard = "syndi_key"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aah" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aai" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaj" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aak" = (/obj/machinery/computer/camera_advanced{icon_keyboard = "syndi_key"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aal" = (/obj/machinery/computer/secure_data{icon_keyboard = "syndi_key"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aam" = (/obj/structure/table/reinforced,/obj/machinery/status_display{pixel_x = -32},/obj/item/weapon/clipboard,/obj/item/toy/figure/syndie,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aan" = (/obj/structure/chair/office/dark{dir = 8; name = "tactical swivel chair"},/turf/open/floor/plasteel/black,/area/shuttle/syndicate) -"aao" = (/turf/open/floor/plasteel/black,/area/shuttle/syndicate) -"aap" = (/obj/structure/chair/office/dark{dir = 1; name = "tactical swivel chair"},/obj/machinery/button/door{id = "syndieshutters"; name = "Cockpit View Control"; pixel_x = 32; pixel_y = 32; req_access_txt = "150"},/turf/open/floor/plasteel/black,/area/shuttle/syndicate) -"aaq" = (/obj/structure/chair/office/dark{dir = 4; name = "tactical swivel chair"},/turf/open/floor/plasteel/black,/area/shuttle/syndicate) -"aar" = (/obj/structure/table/reinforced,/obj/machinery/ai_status_display{pixel_x = 32},/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aas" = (/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"aat" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aau" = (/obj/machinery/status_display,/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) -"aav" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaw" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aax" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 10},/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aay" = (/obj/structure/table/reinforced,/obj/item/stack/cable_coil/white,/obj/item/stack/cable_coil/white,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaz" = (/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaA" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/handcuffs{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/zipties,/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaB" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 6},/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"aaC" = (/obj/structure/chair{dir = 4; name = "tactical chair"},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaD" = (/obj/structure/chair{dir = 8; name = "tactical chair"},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaE" = (/obj/structure/chair{dir = 4; name = "tactical chair"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaF" = (/obj/structure/chair{dir = 8; name = "tactical chair"},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"aaG" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) -"aaH" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/plasteel/podhatch{dir = 5},/area/shuttle/syndicate) -"aaI" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaJ" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (EAST)"; icon_state = "podhatch"; dir = 4},/area/shuttle/syndicate) -"aaK" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaL" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate"; name = "syndicate infiltrator"; port_angle = 0; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/open/space; width = 18},/obj/structure/fans/tiny,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/shuttle/syndicate) -"aaM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) -"aaN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) -"aaP" = (/obj/machinery/door/airlock/external{name = "Ready Room"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaQ" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/podhatch{dir = 10},/area/shuttle/syndicate) -"aaR" = (/turf/open/floor/plasteel/podhatch,/area/shuttle/syndicate) -"aaS" = (/obj/structure/chair{name = "tactical chair"},/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/shuttle/syndicate) -"aaT" = (/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaU" = (/obj/machinery/door/airlock/external{name = "E.V.A. Gear Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaV" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) -"aaW" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/shuttle/syndicate) -"aaX" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaY" = (/obj/structure/chair{dir = 1; name = "tactical chair"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aaZ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"aba" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) -"abb" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_n"; name = "north of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"abc" = (/obj/machinery/ai_status_display,/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) -"abd" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abe" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abf" = (/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abg" = (/obj/structure/table/reinforced,/obj/item/stack/medical/gauze,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abh" = (/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abi" = (/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abj" = (/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abk" = (/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abl" = (/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abm" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"abo" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"abp" = (/turf/open/floor/plasteel/podhatch{dir = 9},/area/shuttle/syndicate) -"abq" = (/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (NORTH)"; icon_state = "podhatch"; dir = 1},/area/shuttle/syndicate) -"abr" = (/obj/machinery/door/airlock/hatch{req_access_txt = "150"},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abs" = (/turf/open/floor/plasteel/podhatch{dir = 5},/area/shuttle/syndicate) -"abt" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abu" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"abv" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abw" = (/turf/open/floor/plasteel/podhatch{dir = 10},/area/shuttle/syndicate) -"abx" = (/turf/open/floor/plasteel/podhatch{tag = "icon-podhatch (SOUTHEAST)"; icon_state = "podhatch"; dir = 6},/area/shuttle/syndicate) -"aby" = (/obj/structure/closet/syndicate/nuclear,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abz" = (/obj/structure/window/reinforced{dir = 1},/obj/item/bodypart/r_arm/robot,/obj/item/bodypart/l_arm/robot,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abA" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abB" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abC" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abD" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abE" = (/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abF" = (/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/grenade/plastic/c4,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abG" = (/obj/machinery/door/window{dir = 1; name = "Technological Storage"; req_access_txt = "150"},/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/reinforced,/obj/item/device/aicard,/turf/open/floor/plasteel/vault,/area/shuttle/syndicate) -"abI" = (/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abJ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/plasteel/vault{dir = 5},/area/shuttle/syndicate) -"abK" = (/obj/machinery/nuclearbomb/syndicate,/obj/machinery/door/window{dir = 1; name = "Theatre Stage"; req_access_txt = "0"},/turf/open/floor/circuit/red,/area/shuttle/syndicate) -"abL" = (/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abM" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abN" = (/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/structure/table/reinforced,/turf/open/floor/plasteel/vault{dir = 8},/area/shuttle/syndicate) -"abO" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating/airless,/area/shuttle/syndicate) -"abP" = (/obj/machinery/recharge_station,/turf/open/floor/circuit/red,/area/shuttle/syndicate) -"abQ" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/open/floor/circuit/red,/area/shuttle/syndicate) -"abR" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating/airless,/area/shuttle/syndicate) -"abS" = (/obj/structure/shuttle/engine/propulsion,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating/airless,/area/shuttle/syndicate) -"abT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating/airless,/area/shuttle/syndicate) -"abU" = (/obj/effect/landmark/carpspawn,/turf/open/space,/area/space) -"abV" = (/obj/structure/lattice,/turf/open/space,/area/space) -"abW" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space) -"abX" = (/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) -"abY" = (/turf/closed/wall/r_wall,/area/security/prison) -"abZ" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"aca" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/prison) -"acb" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"acc" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) -"acd" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/ambrosia,/turf/open/floor/plasteel/green/side{dir = 9},/area/security/prison) -"ace" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/carrot,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) -"acf" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plating,/area/security/prison) -"acg" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/glowshroom,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) -"ach" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/hydroponics/soil,/obj/item/device/plant_analyzer,/obj/machinery/camera{c_tag = "Prison Common Room"; network = list("SS13","Prison")},/turf/open/floor/plasteel/green/side{dir = 5},/area/security/prison) -"aci" = (/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acj" = (/obj/structure/sink{pixel_y = 20},/turf/open/floor/plating,/area/security/prison) -"ack" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acl" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plating,/area/security/prison) -"acn" = (/turf/open/floor/plating,/area/security/prison) -"aco" = (/mob/living/simple_animal/mouse/brown/Tom,/turf/open/floor/plating,/area/security/prison) -"acp" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plating,/area/security/prison) -"acq" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acr" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/potato,/turf/open/floor/plasteel/green/side{dir = 10},/area/security/prison) -"acs" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/grass,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) -"act" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/security/prison) -"acu" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) -"acv" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 6},/area/security/prison) -"acw" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acx" = (/turf/open/floor/plating/airless,/area/space/nearstation) -"acy" = (/obj/structure/bookcase,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acz" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) -"acB" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) -"acC" = (/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acD" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/security/prison) -"acE" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) -"acF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) -"acG" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/barber,/area/security/prison) -"acH" = (/obj/structure/lattice,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) -"acI" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space) -"acJ" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acK" = (/obj/structure/chair/stool,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acL" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/security/prison) -"acM" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) -"acN" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) -"acO" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/security/prison) -"acP" = (/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) -"acQ" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) -"acR" = (/turf/closed/wall,/area/security/transfer) -"acS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/security/transfer) -"acT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/transfer) -"acU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/security/transfer) -"acV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/transfer) -"acW" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acX" = (/obj/machinery/holopad,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"acY" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/freezer,/area/security/prison) -"acZ" = (/obj/machinery/shower{dir = 8},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/freezer,/area/security/prison) -"ada" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) -"adb" = (/obj/structure/grille,/turf/open/space,/area/space) -"adc" = (/turf/closed/wall/r_wall,/area/security/main) -"add" = (/turf/closed/wall,/area/security/main) -"ade" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) -"adf" = (/turf/closed/wall,/area/crew_quarters/heads/hos) -"adg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hos) -"adh" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/fore) -"adi" = (/obj/machinery/door/poddoor{id = "executionspaceblast"; name = "blast door"},/turf/open/floor/plating,/area/security/transfer) -"adj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/black,/area/security/transfer) -"adk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{id = "executionflash"; pixel_x = 0; pixel_y = 25},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) -"adl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel/black,/area/security/transfer) -"adm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) -"adn" = (/obj/machinery/vending/cola/random,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"ado" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adr" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"ads" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adu" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) -"adv" = (/turf/open/floor/plasteel/freezer,/area/security/prison) -"adw" = (/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adx" = (/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"ady" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adz" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/obj/structure/table/wood,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/deputy,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adA" = (/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adB" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adC" = (/obj/machinery/computer/card/minor/hos,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adD" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adE" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/fore) -"adF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"adG" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/black,/area/security/transfer) -"adH" = (/obj/structure/bed,/obj/effect/landmark/revenantspawn,/turf/open/floor/plasteel/black,/area/security/transfer) -"adI" = (/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = 25},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) -"adJ" = (/turf/closed/wall,/area/security/prison) -"adK" = (/obj/machinery/door/poddoor/preopen{id = "permacell3"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adL" = (/obj/machinery/door/poddoor/preopen{id = "permacell2"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "permacell1"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"adN" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) -"adO" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adP" = (/obj/effect/landmark/secequipment,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"adR" = (/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 4; network = list("SS13")},/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adS" = (/obj/structure/chair/comfy/black,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adT" = (/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adU" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adV" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 10},/obj/structure/table/wood,/obj/item/device/radio/off,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"adW" = (/obj/structure/sign/securearea{pixel_y = -32},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) -"adX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"adY" = (/obj/structure/lattice,/obj/item/stack/cable_coil/random,/turf/open/space,/area/space) -"adZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel/black,/area/security/transfer) -"aea" = (/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/black,/area/security/transfer) -"aeb" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel/black,/area/security/transfer) -"aec" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aed" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aee" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aef" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeg" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeh" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aei" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aej" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aek" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) -"ael" = (/obj/structure/table,/obj/item/weapon/storage/box/firingpins,/obj/item/weapon/storage/box/firingpins,/obj/item/key/security,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aem" = (/obj/structure/table,/obj/item/weapon/storage/box/chemimp{pixel_x = 6},/obj/item/weapon/storage/box/trackimp{pixel_x = -3},/obj/item/weapon/storage/lockbox/loyalty,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aen" = (/obj/structure/rack,/obj/machinery/firealarm{pixel_y = 24},/obj/item/weapon/gun/energy/e_gun/dragnet,/obj/item/weapon/gun/energy/e_gun/dragnet,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aeo" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/bulletproof{pixel_y = 0},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 3; pixel_y = -3},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/alt{layer = 3.00001},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = 3; pixel_y = -3},/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aep" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot{pixel_x = 3; pixel_y = -3},/obj/machinery/light{dir = 1},/obj/item/clothing/head/helmet/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aeq" = (/obj/structure/rack,/obj/machinery/airalarm{pixel_y = 23},/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/temperature/security,/obj/item/clothing/suit/armor/laserproof,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aer" = (/obj/structure/closet/secure_closet/lethalshots,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"aes" = (/obj/vehicle/secway,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"aet" = (/obj/structure/closet/l3closet/security,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aeu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aev" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aew" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aex" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aey" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/suit_storage_unit/hos,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aez" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "63"},/turf/open/floor/plating,/area/security/main) -"aeA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/fore) -"aeB" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"aeC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) -"aeD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) -"aeE" = (/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Transfer Room"; req_access_txt = "2"},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) -"aeF" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeG" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeH" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeJ" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeK" = (/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"aeM" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel/freezer,/area/security/prison) -"aeN" = (/obj/item/weapon/grenade/barrier{pixel_x = 4},/obj/item/weapon/grenade/barrier,/obj/item/weapon/grenade/barrier{pixel_x = -4},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"aeO" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"aeP" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"aeQ" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"aeR" = (/obj/machinery/vending/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"aeS" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aeT" = (/obj/structure/chair{dir = 1},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aeU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aeV" = (/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 35},/obj/structure/closet/secure_closet/hos,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"aeW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/security/main) -"aeX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/fore) -"aeY" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"aeZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afb" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afc" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afd" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"aff" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"afg" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/space,/area/space) -"afh" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/black,/area/security/transfer) -"afi" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/device/assembly/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel/black,/area/security/transfer) -"afj" = (/obj/machinery/button/flasher{id = "executionflash"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionspaceblast"; name = "Vent to Space"; pixel_x = 25; pixel_y = -5; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) -"afk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/prison) -"afl" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"afm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/prison) -"afn" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 2"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"afo" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) -"afp" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Contraband Locker"; req_access_txt = "3"},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) -"afq" = (/obj/item/weapon/storage/toolbox/drone,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afr" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/ballistic/shotgun/riot,/obj/item/weapon/gun/ballistic/shotgun/riot{pixel_x = 3; pixel_y = -3},/obj/effect/turf_decal/bot{dir = 2},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel{dir = 2},/area/ai_monitored/security/armory) -"afs" = (/obj/structure/rack,/obj/item/weapon/gun/energy/e_gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/e_gun,/obj/item/weapon/gun/energy/e_gun{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/turf_decal/bot{dir = 2},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel{dir = 2},/area/ai_monitored/security/armory) -"aft" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/effect/turf_decal/bot{dir = 2},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel{dir = 2},/area/ai_monitored/security/armory) -"afu" = (/obj/structure/rack,/obj/item/weapon/gun/energy/e_gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/e_gun/advtaser,/obj/item/weapon/gun/energy/e_gun/advtaser{pixel_x = 3; pixel_y = -3},/obj/effect/turf_decal/bot{dir = 2},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel{dir = 2},/area/ai_monitored/security/armory) -"afv" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afx" = (/obj/machinery/door/window/eastleft{name = "armoury desk"; req_access_txt = "1"},/obj/machinery/door/window/westleft{name = "armoury desk"; req_access_txt = "3"},/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"afy" = (/obj/machinery/power/apc{dir = 8; name = "Head of Security's Office APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"afz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"afA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"afB" = (/obj/machinery/light_switch{pixel_y = -23},/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"afC" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"afD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afF" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afG" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"afK" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/fore) -"afL" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating,/area/security/transfer) -"afM" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/security/transfer) -"afN" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) -"afO" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) -"afP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/ignition{id = "executionburn"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionfireblast"; name = "Transfer Area Lockdown"; pixel_x = 25; pixel_y = -5; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) -"afQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) -"afR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) -"afS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) -"afT" = (/obj/machinery/button/door{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) -"afU" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) -"afV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) -"afW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) -"afX" = (/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) -"afY" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Prison Hallway"; network = list("SS13","Prison")},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) -"afZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) -"aga" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) -"agb" = (/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) -"agc" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) -"agd" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) -"age" = (/obj/machinery/flasher/portable,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"agf" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agg" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agh" = (/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agi" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agk" = (/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agm" = (/obj/machinery/door/poddoor/shutters{id = "armory"; name = "Armoury Shutter"},/obj/machinery/button/door{id = "armory"; name = "Armory Shutters"; pixel_x = 0; pixel_y = -26; req_access_txt = "3"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/ai_monitored/security/armory) -"agn" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"ago" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hos) -"agq" = (/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/hos) -"agr" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hos) -"ags" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) -"agt" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/security/main) -"agu" = (/obj/machinery/camera{c_tag = "Security Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/security/main) -"agv" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) -"agw" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) -"agx" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/fore) -"agy" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/security/transfer) -"agz" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/security/transfer) -"agA" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/tank/internals/anesthetic{pixel_x = -3; pixel_y = 1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 3},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) -"agB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) -"agC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/security/transfer) -"agD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/transfer) -"agE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) -"agF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) -"agH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) -"agJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"agK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/prison) -"agL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) -"agM" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/prison) -"agN" = (/obj/structure/rack,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"agO" = (/obj/structure/rack,/obj/item/weapon/storage/box/teargas{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) -"agP" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"agR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) -"agS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) -"agT" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agU" = (/obj/machinery/recharger,/obj/structure/table,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agW" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"agX" = (/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) -"agY" = (/obj/effect/landmark/start/security_officer,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"agZ" = (/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aha" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"ahb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"ahc" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"ahd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) -"ahe" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ahf" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Pod Three"; req_access_txt = "0"},/turf/open/floor/plating,/area/security/main) -"ahg" = (/turf/open/floor/plating,/area/security/main) -"ahh" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"; req_access_txt = "0"},/turf/open/floor/plating,/area/security/main) -"ahi" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod3"; name = "escape pod 3"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) -"ahj" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/obj/machinery/light/small,/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) -"ahk" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_lavaland3"; shuttleId = "pod3"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) -"ahl" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_3) -"ahm" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_lavaland3"; name = "lavaland"},/turf/open/space,/area/space) -"ahn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/transfer) -"aho" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating,/area/security/transfer) -"ahp" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; layer = 2.4},/obj/machinery/door/window/southleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Armory"; req_access_txt = "2"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/security/transfer) -"ahq" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahs" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/transfer) -"aht" = (/turf/closed/wall/r_wall,/area/security/transfer) -"ahu" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/prison) -"ahv" = (/obj/structure/extinguisher_cabinet{pixel_x = 1; pixel_y = -27},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahw" = (/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahx" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahy" = (/obj/structure/table,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/box/hug,/obj/item/weapon/razor{pixel_x = -6},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahz" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahA" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/open/floor/plasteel/red/side,/area/security/prison) -"ahB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/prison) -"ahC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) -"ahD" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahE" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/obj/machinery/door/firedoor,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"ahG" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Armory"; req_access_txt = "3"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) -"ahH" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ai_monitored/security/armory) -"ahI" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) -"ahJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_x = -32},/turf/open/floor/plating,/area/security/main) -"ahK" = (/obj/machinery/door/airlock/glass_security{name = "Equipment Room"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) -"ahL" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) -"ahM" = (/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"ahN" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/timer,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"ahO" = (/turf/open/floor/plasteel,/area/security/main) -"ahP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start/head_of_security,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ahQ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/main) -"ahR" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel,/area/security/main) -"ahS" = (/obj/effect/landmark/start/security_officer,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) -"ahT" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"ahU" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/security/main) -"ahV" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/security/main) -"ahW" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 1},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahX" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/clothing/head/helmet,/obj/item/device/assembly/signaler,/obj/machinery/light/small,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahY" = (/obj/structure/closet/secure_closet/injection,/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Prisoner Transfer Centre"; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/black,/area/security/transfer) -"ahZ" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/security/prison) -"aia" = (/turf/closed/wall,/area/security/brig) -"aib" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/security/brig) -"aic" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/security/brig) -"aid" = (/turf/closed/wall/r_wall,/area/security/warden) -"aie" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = 3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aif" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aig" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aih" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aii" = (/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aij" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aik" = (/obj/structure/table,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ail" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aim" = (/obj/structure/table,/obj/machinery/syndicatebomb/training,/obj/item/weapon/gun/energy/laser/practice,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) -"ain" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aio" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aip" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) -"aiq" = (/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/main) -"air" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"ais" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ait" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) -"aiu" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"aiv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/security/prison) -"aiw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aix" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aiy" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) -"aiz" = (/turf/open/floor/plasteel/black,/area/security/prison) -"aiA" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 9},/area/security/brig) -"aiB" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) -"aiC" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) -"aiD" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/iv_drip{density = 0},/obj/item/weapon/reagent_containers/blood/empty,/turf/open/floor/plasteel/whitered/side{dir = 5},/area/security/brig) -"aiE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"aiF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"aiG" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aiH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiL" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiM" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"aiN" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aiO" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"aiP" = (/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel,/area/security/main) -"aiQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiS" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiT" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/security/main) -"aiU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"aiV" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/turf/open/floor/plasteel,/area/security/main) -"aiW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/security/main) -"aiX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start/security_officer,/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) -"aiY" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"aiZ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Security Delivery"; req_access_txt = "1"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/security/main) -"aja" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Security"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/security/main) -"ajb" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ajc" = (/turf/closed/wall,/area/maintenance/fore/secondary) -"ajd" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"aje" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/black,/area/security/prison) -"ajf" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"ajg" = (/obj/item/weapon/storage/box/bodybags,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe{name = "steel point"},/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) -"ajh" = (/turf/open/floor/plasteel/whitered/corner{dir = 8},/area/security/brig) -"aji" = (/turf/open/floor/plasteel/white,/area/security/brig) -"ajj" = (/obj/machinery/door/window/westleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) -"ajk" = (/obj/machinery/power/apc{dir = 8; name = "Brig Control APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajs" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) -"aju" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) -"ajw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajy" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/chair,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/effect/landmark/start/security_officer,/turf/open/floor/plasteel,/area/security/main) -"ajA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) -"ajD" = (/obj/machinery/power/apc{dir = 4; name = "Security Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) -"ajE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/main) -"ajF" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ajG" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/prison) -"ajH" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 8},/turf/open/floor/plasteel/black,/area/security/prison) -"ajI" = (/obj/structure/bodycontainer/morgue,/obj/machinery/camera{c_tag = "Brig Infirmary"; dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) -"ajJ" = (/turf/open/floor/plasteel/whitered/side{dir = 8},/area/security/brig) -"ajK" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) -"ajL" = (/obj/structure/closet/secure_closet/warden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajM" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajN" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/warden,/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -27; pixel_y = 8; req_access_txt = "2"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Shutters"; pixel_x = -27; pixel_y = -2; req_access_txt = "0"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajO" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajP" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajS" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"ajT" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"ajU" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/main) -"ajV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajW" = (/obj/structure/noticeboard{dir = 1; pixel_y = -27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) -"ajX" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) -"ajY" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"ajZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"aka" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) -"akb" = (/obj/machinery/camera{c_tag = "Security Office"; dir = 1; network = list("SS13")},/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"akc" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/computer/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"akd" = (/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/main) -"ake" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) -"akf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/red/side,/area/security/main) -"akg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/main) -"akh" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/main) -"aki" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"akj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"akk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"akl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/prison) -"akm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) -"akn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"ako" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) -"akp" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/security/brig) -"akq" = (/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) -"akr" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/whitered/side,/area/security/brig) -"aks" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/whitered/side{dir = 6},/area/security/brig) -"akt" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aku" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"akv" = (/obj/structure/table/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Armory Desk"; req_access_txt = "3"},/obj/machinery/door/window/southleft{name = "Reception Desk"; req_access_txt = "63"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"akw" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"akx" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) -"aky" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) -"akz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/security/warden) -"akA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Security Office"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) -"akB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/main) -"akC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"akD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"akE" = (/obj/item/stack/rods,/turf/open/space,/area/space) -"akF" = (/turf/closed/wall,/area/security/processing) -"akG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"akH" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/prison) -"akI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) -"akJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) -"akK" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akN" = (/obj/structure/sign/goldenplaque{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akO" = (/obj/machinery/camera{c_tag = "Brig East"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"akR" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"akS" = (/turf/closed/wall/r_wall,/area/security/brig) -"akT" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/closet/secure_closet/courtroom,/obj/effect/decal/cleanable/cobweb,/obj/structure/sign/securearea{pixel_x = -32},/obj/item/weapon/gavelhammer,/turf/open/floor/plasteel,/area/security/courtroom) -"akU" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/camera{c_tag = "Courtroom North"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/courtroom) -"akV" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 9},/area/security/courtroom) -"akW" = (/obj/structure/chair{name = "Judge"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 1},/area/security/courtroom) -"akX" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 5},/area/security/courtroom) -"akY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/security/courtroom) -"akZ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/security/courtroom) -"ala" = (/turf/open/floor/plasteel/black,/area/security/courtroom) -"alb" = (/turf/closed/wall,/area/security/courtroom) -"alc" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/fore) -"ald" = (/obj/machinery/gulag_teleporter,/turf/open/floor/plasteel,/area/security/processing) -"ale" = (/obj/machinery/computer/gulag_teleporter_computer,/turf/open/floor/plasteel,/area/security/processing) -"alf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel,/area/security/processing) -"alg" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/obj/machinery/camera{c_tag = "Labor Shuttle Dock North"},/turf/open/floor/plasteel,/area/security/processing) -"alh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) -"ali" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"alj" = (/obj/machinery/power/apc{dir = 1; name = "Brig APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"alk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"all" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"alm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"aln" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) -"alo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) -"alp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/brig) -"alr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"als" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/brig) -"alt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alu" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"alv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"aly" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Brig"; req_access = null; req_access_txt = "63; 42"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/courtroom) -"alA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/security/courtroom) -"alB" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; listening = 1; name = "Station Intercom (Court)"; pixel_x = 0},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/security/courtroom) -"alC" = (/obj/structure/table/wood,/obj/item/weapon/gavelblock,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/security/courtroom) -"alD" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/security/courtroom) -"alE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/security/courtroom) -"alF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/security/courtroom) -"alG" = (/obj/machinery/door/window/southleft{name = "Court Cell"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/courtroom) -"alH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"alI" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"alJ" = (/turf/closed/wall/mineral/titanium,/area/shuttle/labor) -"alK" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) -"alL" = (/turf/closed/wall/r_wall,/area/security/processing) -"alM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/security/processing) -"alN" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/security/processing) -"alO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"alP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/processing) -"alQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Labor Shuttle"; req_access = null; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) -"alS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Brig West"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) -"alU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) -"alV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) -"alW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) -"alX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) -"alY" = (/obj/machinery/light,/obj/machinery/door_timer{id = "Cell 1"; name = "Cell 1"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) -"alZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) -"ama" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) -"amb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 2"; name = "Cell 2"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amc" = (/obj/machinery/camera{c_tag = "Brig Central"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 3"; name = "Cell 3"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) -"ame" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"amf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"amg" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 4"; name = "Cell 4"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) -"ami" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) -"amj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"amk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) -"aml" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/courtroom) -"amm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/security/courtroom) -"amn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/security/courtroom) -"amo" = (/turf/open/floor/plasteel,/area/security/courtroom) -"amp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"amq" = (/obj/machinery/computer/shuttle/labor,/obj/structure/reagent_dispensers/peppertank{pixel_x = -31; pixel_y = 0},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"amr" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"ams" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"amt" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"amu" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/security/processing) -"amv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/security/processing) -"amw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"amx" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) -"amy" = (/obj/machinery/door/airlock/glass_security{id_tag = null; name = "Evidence Storage"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amz" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amA" = (/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amB" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall,/area/security/brig) -"amD" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amE" = (/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amF" = (/obj/machinery/door/window/brigdoor{id = "Cell 3"; name = "Cell 3"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) -"amG" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amH" = (/obj/machinery/door/airlock/glass_security{name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"amI" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amJ" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"amK" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"amL" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amM" = (/obj/machinery/door/window/brigdoor{id = "Cell 4"; name = "Cell 4"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) -"amN" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"amO" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/courtroom) -"amP" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/security/courtroom) -"amQ" = (/obj/machinery/holopad,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/security/courtroom) -"amR" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/security/courtroom) -"amS" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 5},/area/security/courtroom) -"amT" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"amU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"amV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port/fore) -"amW" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"amX" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/obj/machinery/light,/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"amY" = (/obj/machinery/mineral/labor_claim_console{machinedir = 2; pixel_x = 30; pixel_y = 30},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"amZ" = (/obj/machinery/door/airlock/titanium{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) -"ana" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"; shuttledocked = 1},/turf/open/floor/plating,/area/security/processing) -"anb" = (/turf/open/floor/plating,/area/security/processing) -"anc" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/security/processing) -"and" = (/turf/open/floor/plasteel,/area/security/processing) -"ane" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"anf" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) -"ang" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"anh" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"ani" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anj" = (/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ank" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anm" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ann" = (/obj/machinery/button/door{id = "briggate"; name = "Desk Shutters"; pixel_x = -26; pixel_y = 6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = -28; pixel_y = -8},/turf/open/floor/plasteel/black,/area/security/brig) -"ano" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/black,/area/security/brig) -"anp" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/eastleft{name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/brig) -"anq" = (/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"anr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ans" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/flasher{id = "Cell 4"; pixel_x = 28},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"ant" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/courtroom) -"anu" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/security/courtroom) -"anv" = (/turf/open/floor/plasteel/neutral/side,/area/security/courtroom) -"anw" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/neutral/side,/area/security/courtroom) -"anx" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/security/courtroom) -"any" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 6},/area/security/courtroom) -"anz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/fore) -"anA" = (/turf/closed/wall,/area/maintenance/starboard/fore) -"anB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"anC" = (/turf/closed/wall/r_wall,/area/maintenance/solars/port/fore) -"anD" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Port Bow Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"anE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"anF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"anG" = (/turf/closed/wall,/area/maintenance/port/fore) -"anH" = (/obj/effect/decal/cleanable/vomit,/turf/open/floor/plating,/area/maintenance/port/fore) -"anI" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/port/fore) -"anJ" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating,/area/maintenance/port/fore) -"anK" = (/obj/machinery/door/airlock/titanium{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/shuttle/labor) -"anL" = (/obj/machinery/mineral/stacking_machine/laborstacker{input_dir = 2; output_dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/labor) -"anM" = (/obj/machinery/computer/shuttle/labor,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/security/processing) -"anN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/processing) -"anO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) -"anP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) -"anQ" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) -"anR" = (/turf/open/floor/plasteel,/area/security/brig) -"anS" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) -"anT" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anU" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anV" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anW" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anY" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"anZ" = (/obj/machinery/light/small{dir = 8},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -5; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 5; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/brig) -"aoa" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) -"aob" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/eastright{name = "Brig Desk"; req_access_txt = "2"},/obj/item/weapon/restraints/handcuffs,/obj/item/device/radio/off,/turf/open/floor/plasteel/black,/area/security/brig) -"aoc" = (/obj/machinery/flasher{id = "brigentry"; pixel_x = 28},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"aod" = (/obj/structure/closet/secure_closet/brig{id = "Cell 4"; name = "Cell 4 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"aoe" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"aof" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) -"aog" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/courtroom) -"aoh" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/courtroom) -"aoi" = (/obj/machinery/door/airlock/glass{name = "Courtroom"; req_access_txt = "42"},/turf/open/floor/plasteel/black,/area/security/courtroom) -"aoj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/courtroom) -"aok" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aol" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aom" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aon" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"aoo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"aop" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"aoq" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 2},/turf/open/floor/plating,/area/maintenance/port/fore) -"aor" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plating,/area/maintenance/port/fore) -"aos" = (/turf/open/floor/plating,/area/maintenance/port/fore) -"aot" = (/obj/structure/bed,/obj/effect/landmark/xeno_spawn,/obj/item/weapon/bedsheet,/turf/open/floor/plating,/area/maintenance/port/fore) -"aou" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/turf/open/floor/plating,/area/maintenance/port/fore) -"aov" = (/obj/structure/chair{dir = 1},/obj/item/toy/sword,/turf/open/floor/plating,/area/maintenance/port/fore) -"aow" = (/obj/structure/chair{dir = 1},/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/obj/item/trash/plate,/turf/open/floor/plating,/area/maintenance/port/fore) -"aox" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"aoy" = (/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"aoz" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"aoA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall,/area/security/processing) -"aoB" = (/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) -"aoC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"aoD" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) -"aoE" = (/obj/machinery/light,/turf/open/floor/plasteel/red/side,/area/security/brig) -"aoF" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) -"aoG" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aoH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aoI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/brig) -"aoJ" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/southleft{name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"aoK" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/brig) -"aoL" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "briggate"; name = "security blast door"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) -"aoM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) -"aoN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) -"aoO" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/security/courtroom) -"aoP" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/courtroom) -"aoQ" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/courtroom) -"aoR" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "Courtroom APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/courtroom) -"aoS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aoT" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aoU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aoV" = (/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aoW" = (/turf/closed/wall,/area/construction/mining/aux_base) -"aoX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Port Bow Solar APC"; pixel_x = -25; pixel_y = 3},/obj/machinery/camera{c_tag = "Fore Port Solar Control"; dir = 1},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"aoY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"aoZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"apa" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{icon_state = "manifold"; dir = 8},/turf/open/floor/plating,/area/maintenance/port/fore) -"apb" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/port/fore) -"apc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port/fore) -"apd" = (/obj/item/trash/sosjerky,/turf/open/floor/plating,/area/maintenance/port/fore) -"ape" = (/obj/item/weapon/electronics/airalarm,/obj/item/weapon/circuitboard/machine/seed_extractor,/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"apf" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/port/fore) -"apg" = (/obj/item/weapon/cigbutt,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/port/fore) -"aph" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "gulagshuttleflasher"; pixel_x = 25},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"api" = (/obj/machinery/gulag_item_reclaimer{pixel_y = 24},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/security/processing) -"apj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) -"apk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) -"apl" = (/obj/machinery/button/door{desc = "A remote control switch for the exit."; id = "laborexit"; name = "exit button"; normaldoorcontrol = 1; pixel_x = 26; pixel_y = -6; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) -"apm" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"apn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"apo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"app" = (/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apq" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"apr" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"aps" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/security/courtroom) -"apt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apu" = (/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apv" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"apy" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"apz" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"apA" = (/obj/structure/closet/secure_closet/miner{locked = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"apB" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Port Bow Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/solars/port/fore) -"apC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/solars/port/fore) -"apD" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/turf/open/floor/plating,/area/maintenance/port/fore) -"apE" = (/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plating,/area/maintenance/port/fore) -"apF" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/fore) -"apG" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"apH" = (/obj/machinery/door/airlock/titanium{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; port_angle = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"apI" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Labor Camp Shuttle Airlock"; shuttledocked = 1},/turf/open/floor/plating,/area/security/processing) -"apJ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Labor Camp Shuttle Airlock"},/turf/open/floor/plating,/area/security/processing) -"apK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{id_tag = "laborexit"; name = "Labor Shuttle"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel,/area/security/processing) -"apL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apN" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"apP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Courtroom"},/turf/open/floor/plasteel/black,/area/security/courtroom) -"apQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/courtroom) -"apR" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/security/courtroom) -"apS" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/security/courtroom) -"apT" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/camera{c_tag = "Courtroom South"; dir = 1},/turf/open/floor/plasteel/black,/area/security/courtroom) -"apU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/security/courtroom) -"apV" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apW" = (/obj/structure/disposalpipe/segment,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"apY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fore/secondary) -"apZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/fore/secondary) -"aqa" = (/turf/closed/wall/r_wall,/area/maintenance/solars/starboard/fore) -"aqb" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Starboard Bow Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqd" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/device/multitool,/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqe" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"aqf" = (/turf/open/floor/plating,/area/shuttle/auxillary_base) -"aqg" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"aqh" = (/obj/machinery/camera{c_tag = "Fore Port Solar Access"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/port/fore) -"aqi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/port/fore) -"aqj" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/turf/open/floor/plating,/area/maintenance/port/fore) -"aqk" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aql" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqm" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/monkey_recycler,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqn" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) -"aqo" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) -"aqp" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/security/processing) -"aqq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) -"aqr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera{c_tag = "Labor Shuttle Dock South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) -"aqs" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) -"aqt" = (/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"aqu" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 1},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"aqv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) -"aqw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA"; location = "Security"},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"aqx" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqy" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqz" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqA" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway East"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqB" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqC" = (/obj/machinery/vending/snack/random,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqD" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) -"aqE" = (/obj/structure/table,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/security/courtroom) -"aqF" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/black,/area/security/courtroom) -"aqG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aqH" = (/obj/machinery/light/small{dir = 8},/obj/structure/chair/stool{pixel_y = 8},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aqI" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Out"; on = 1},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aqJ" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"aqM" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aqN" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aqO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/construction/mining/aux_base) -"aqP" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqQ" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aqR" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/port/fore) -"aqS" = (/obj/structure/bed,/obj/effect/landmark/xeno_spawn,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqT" = (/turf/open/space,/area/space/nearstation) -"aqU" = (/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"aqV" = (/turf/open/floor/plasteel/airless,/area/space/nearstation) -"aqW" = (/obj/structure/table,/obj/item/weapon/stamp,/obj/item/weapon/poster/random_official,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqX" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port/fore) -"aqY" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/labor) -"aqZ" = (/obj/structure/plasticflaps,/turf/open/floor/plating,/area/security/processing) -"ara" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fore) -"arb" = (/turf/closed/wall,/area/security/vacantoffice/b) -"arc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Vacant Office B"; req_access_txt = "32"},/turf/open/floor/plating,/area/security/vacantoffice/b) -"ard" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"are" = (/turf/closed/wall,/area/lawoffice) -"arf" = (/obj/machinery/door/airlock{name = "Law Office"; req_access_txt = "38"},/turf/open/floor/plasteel,/area/lawoffice) -"arg" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"arh" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/fore) -"ari" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"arj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fore/secondary) -"ark" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall,/area/maintenance/fore/secondary) -"arl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fore/secondary) -"arm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/security/courtroom) -"arn" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aro" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arq" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ars" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"art" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aru" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arv" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air In"; on = 1},/obj/effect/landmark/blobstart,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arw" = (/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"arx" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Starboard Bow Solar APC"; pixel_x = -25; pixel_y = 3},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"ary" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"arz" = (/obj/machinery/camera{c_tag = "Fore Starboard Solars"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"arA" = (/turf/closed/wall/r_wall,/area/maintenance/starboard/fore) -"arB" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"arC" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"arD" = (/obj/machinery/light,/turf/open/floor/plating,/area/shuttle/auxillary_base) -"arE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/construction/mining/aux_base) -"arF" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/construction/mining/aux_base) -"arG" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/construction/mining/aux_base) -"arH" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/construction/mining/aux_base) -"arI" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/port/fore) -"arJ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/fore) -"arK" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/fore) -"arL" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/port/fore) -"arM" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 35},/turf/open/floor/plating,/area/maintenance/port/fore) -"arN" = (/obj/effect/landmark/carpspawn,/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"arO" = (/obj/item/weapon/paper{info = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110"; name = "Note from Beepsky's Mom"},/turf/open/floor/plating,/area/security/processing) -"arP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fore) -"arQ" = (/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice/b) -"arR" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice/b) -"arS" = (/turf/open/floor/plasteel,/area/security/vacantoffice/b) -"arT" = (/turf/open/floor/plating,/area/security/vacantoffice/b) -"arU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"arV" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/wood,/area/lawoffice) -"arW" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/wood,/area/lawoffice) -"arX" = (/turf/open/floor/wood,/area/lawoffice) -"arY" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/lawoffice) -"arZ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"asa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fore/secondary) -"asb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ase" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asf" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asg" = (/obj/machinery/power/apc{dir = 2; name = "Dormitory APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/dorms) -"ash" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ask" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Fitness Room APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/fitness) -"asm" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"asn" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"aso" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"asp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"asq" = (/obj/structure/grille,/obj/effect/landmark/syndicate_breach_area,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"asr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"ass" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ast" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Starboard Bow Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/solars/starboard/fore) -"asu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/solars/starboard/fore) -"asv" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asw" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asx" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asy" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asz" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asA" = (/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/coin/gold,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asB" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asC" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"asD" = (/obj/machinery/camera{c_tag = "Auxillary Mining Base"; dir = 8; network = list("SS13","AuxBase")},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"asE" = (/obj/docking_port/mobile/auxillary_base{dheight = 4; dir = 4; dwidth = 4; height = 9; width = 9},/obj/machinery/bluespace_beacon,/obj/machinery/computer/auxillary_base{pixel_y = 0},/turf/closed/wall,/area/shuttle/auxillary_base) -"asF" = (/obj/structure/mining_shuttle_beacon{dir = 4},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"asG" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/docking_port/stationary/public_mining_dock{dir = 8},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"asH" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Construction Zone"; req_access = null; req_access_txt = "0"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/construction/mining/aux_base) -"asI" = (/turf/open/floor/plasteel/yellow/side{dir = 8},/area/construction/mining/aux_base) -"asJ" = (/turf/open/floor/plasteel,/area/construction/mining/aux_base) -"asK" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Auxillary Base Construction"; dir = 8},/obj/machinery/computer/camera_advanced/base_construction,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/construction/mining/aux_base) -"asL" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/fore) -"asM" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/port/fore) -"asN" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/port/fore) -"asO" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"asP" = (/obj/machinery/power/apc{dir = 1; name = "Port Bow Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/port/fore) -"asQ" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/port/fore) -"asR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"asS" = (/turf/open/floor/plating,/area/maintenance/fore) -"asT" = (/obj/item/weapon/bedsheet/red,/mob/living/simple_animal/bot/secbot/beepsky{name = "Officer Beepsky"},/turf/open/floor/plating,/area/security/processing) -"asU" = (/obj/machinery/light/small{dir = 4},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/potato{name = "\improper Beepsky's emergency battery"},/turf/open/floor/plating,/area/security/processing) -"asV" = (/obj/machinery/power/apc{dir = 8; name = "Labor Shuttle Dock APC"; pixel_x = -24},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/security/processing) -"asW" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/plating,/area/security/vacantoffice/b) -"asX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/security/vacantoffice/b) -"asY" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/security/vacantoffice/b) -"asZ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Law office"; pixel_x = -32; pixel_y = 0},/obj/structure/closet/lawcloset,/turf/open/floor/wood,/area/lawoffice) -"ata" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/lawoffice) -"atb" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/lawoffice) -"atc" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "lawyer_blast"; name = "privacy door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/lawoffice) -"atd" = (/turf/closed/wall,/area/crew_quarters/dorms) -"ate" = (/obj/machinery/door/airlock/maintenance{name = "Dormitories Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"atf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/dorms) -"atg" = (/turf/closed/wall,/area/crew_quarters/fitness) -"ath" = (/obj/machinery/door/airlock/maintenance{name = "Fitness Maitenance"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"ati" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/fitness) -"atj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"atk" = (/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/rec_center) -"atl" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atm" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atn" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Bow Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ato" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atp" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Fore Starboard Solar Access"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atq" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atr" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ats" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"att" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atu" = (/obj/item/weapon/coin/gold,/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atv" = (/obj/structure/closet,/obj/item/weapon/coin/iron,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atw" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"atx" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"aty" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/construction/mining/aux_base) -"atz" = (/obj/structure/rack{dir = 4},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/device/assault_pod/mining,/obj/machinery/computer/security/telescreen{desc = "Used for the Auxillary Mining Base."; dir = 8; name = "Auxillary Base Monitor"; network = list("AuxBase"); pixel_x = 28},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/construction/mining/aux_base) -"atA" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/closed/wall,/area/maintenance/port/fore) -"atB" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/closed/wall,/area/maintenance/port/fore) -"atC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"atD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"atE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"atF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"atG" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/port/fore) -"atH" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"atI" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"atJ" = (/obj/machinery/monkey_recycler,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/turf/open/floor/plating,/area/maintenance/port/fore) -"atK" = (/turf/closed/wall,/area/maintenance/fore) -"atL" = (/obj/structure/rack,/turf/open/floor/plasteel,/area/security/vacantoffice/b) -"atM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/security/vacantoffice/b) -"atN" = (/obj/structure/table/wood,/turf/open/floor/plating,/area/security/vacantoffice/b) -"atO" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plating,/area/security/vacantoffice/b) -"atP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/lawoffice) -"atQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/filingcabinet/employment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/wood,/area/lawoffice) -"atR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) -"atS" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/law,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) -"atT" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start/lawyer,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/lawoffice) -"atU" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"atV" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"atW" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/carpet,/area/crew_quarters/dorms) -"atX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm4"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"atY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/dorms) -"atZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/dorms) -"aua" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/dorms) -"aub" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/dorms) -"auc" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/wood,/area/crew_quarters/dorms) -"aud" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/crew_quarters/dorms) -"aue" = (/obj/structure/dresser,/turf/open/floor/wood,/area/crew_quarters/dorms) -"auf" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/turf/open/floor/wood,/area/crew_quarters/dorms) -"aug" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/fitness) -"auh" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"aui" = (/obj/structure/closet/athletic_mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"auj" = (/obj/structure/closet/boxinggloves,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/clothing/shoes/jackboots,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"auk" = (/obj/machinery/camera{c_tag = "Fitness Room"},/obj/structure/closet/masks,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"aul" = (/obj/structure/closet/lasertag/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) -"aum" = (/obj/structure/closet/lasertag/red,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/fitness) -"aun" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"auo" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aup" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"auq" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aur" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aus" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aut" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/donut,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"auu" = (/turf/closed/wall,/area/maintenance/department/electrical) -"auv" = (/turf/closed/wall,/area/space/nearstation) -"auw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/construction/mining/aux_base) -"aux" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/construction/mining/aux_base) -"auy" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/port/fore) -"auz" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/fore) -"auA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port/fore) -"auB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"auC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"auD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"auE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/port/fore) -"auF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/port/fore) -"auG" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fore) -"auH" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fore) -"auI" = (/obj/structure/chair/stool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore) -"auJ" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fore) -"auK" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fore) -"auL" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plating,/area/maintenance/fore) -"auM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/vacantoffice/b) -"auN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/security/vacantoffice/b) -"auO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fore) -"auP" = (/obj/machinery/door/airlock/maintenance{name = "Law Office Maintenance"; req_access_txt = "38"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/lawoffice) -"auQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/wood,/area/lawoffice) -"auR" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/lawyer,/turf/open/floor/wood,/area/lawoffice) -"auS" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"auT" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"auU" = (/obj/effect/landmark/xeno_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"auV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"auW" = (/obj/machinery/door/airlock{id_tag = "Dorm4"; name = "Dorm 4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"auX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"auY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/dorms) -"auZ" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/dorms) -"ava" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/dorms) -"avb" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/dorms) -"avc" = (/turf/open/floor/wood,/area/crew_quarters/dorms) -"avd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/dorms) -"ave" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/dorms) -"avf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"avg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) -"avk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/crew_quarters/fitness) -"avl" = (/obj/structure/table,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/shard{icon_state = "small"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"avm" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"avn" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard/fore) -"avo" = (/obj/machinery/button/door{id = "maint3"; name = "Blast Door Control C"; pixel_x = 0; pixel_y = 24; req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"avp" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"avq" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"avr" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"avs" = (/obj/item/stack/rods{amount = 50},/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil{amount = 5},/obj/item/stack/sheet/mineral/plasma{amount = 10; layer = 2.9},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"avt" = (/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/maintenance/department/electrical) -"avu" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/department/electrical) -"avv" = (/turf/open/floor/mech_bay_recharge_floor,/area/maintenance/department/electrical) -"avw" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/circuit,/area/maintenance/department/electrical) -"avx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/construction/mining/aux_base) -"avy" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/construction/mining/aux_base) -"avz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"avA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/port/fore) -"avB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port/fore) -"avC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port/fore) -"avD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/port/fore) -"avE" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/space/nearstation) -"avF" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/space/nearstation) -"avG" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/fore) -"avH" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/port/fore) -"avI" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"avJ" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/port/fore) -"avK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) -"avL" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light,/turf/open/floor/plating,/area/security/vacantoffice/b) -"avM" = (/obj/machinery/camera{c_tag = "Vacant Office B"; dir = 1},/obj/structure/table/wood,/turf/open/floor/plasteel,/area/security/vacantoffice/b) -"avN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/vacantoffice/b) -"avO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/lawoffice) -"avP" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/turf/open/floor/wood,/area/lawoffice) -"avQ" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Law Office"; dir = 1; network = list("SS13")},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 1; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = -27},/turf/open/floor/wood,/area/lawoffice) -"avR" = (/obj/machinery/photocopier,/obj/machinery/button/door{id = "lawyer_blast"; name = "Privacy Shutters"; pixel_x = 25; pixel_y = 8},/turf/open/floor/wood,/area/lawoffice) -"avS" = (/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/camera{c_tag = "Fore Primary Hallway"; dir = 4; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"avT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"avU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/dorms) -"avV" = (/obj/machinery/door/airlock{id_tag = "Dorm5"; name = "Cabin 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/dorms) -"avW" = (/obj/machinery/door/airlock{id_tag = "Dorm6"; name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/dorms) -"avX" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"avY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avZ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"awa" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"awb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"awc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"awd" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) -"awe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"awf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"awg" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"awh" = (/obj/machinery/camera{c_tag = "Holodeck"},/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"awi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"awj" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awk" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awn" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"awp" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"awq" = (/turf/open/floor/plating,/area/maintenance/department/electrical) -"awr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"aws" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"awt" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"awu" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"awv" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/shuttle/auxillary_base) -"aww" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating,/area/shuttle/auxillary_base) -"awx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/construction/mining/aux_base) -"awy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side,/area/construction/mining/aux_base) -"awz" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/pipe_dispenser,/obj/machinery/button/door{id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = 24; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/construction/mining/aux_base) -"awA" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Auxillary Base Construction APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/construction/mining/aux_base) -"awB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"awC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"awD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port/fore) -"awE" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; broken = 1},/obj/machinery/iv_drip,/turf/open/floor/plating,/area/maintenance/port/fore) -"awF" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/maintenance/port/fore) -"awG" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; broken = 1},/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/circuitboard/computer/operating,/turf/open/floor/plating,/area/maintenance/port/fore) -"awH" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/chair,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/port/fore) -"awI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"awJ" = (/obj/item/weapon/airlock_painter,/obj/structure/lattice,/obj/structure/closet,/turf/open/space,/area/space/nearstation) -"awK" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"awL" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fore) -"awM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore) -"awN" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fore) -"awO" = (/obj/machinery/door/airlock/maintenance{name = "Chemical Storage"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fore) -"awP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice/b) -"awQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice/b) -"awR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/apc{dir = 8; name = "Vacant Office B APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/security/vacantoffice/b) -"awS" = (/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/lawoffice) -"awT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) -"awU" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) -"awV" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm3"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"awW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"awX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/dorms) -"awY" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"awZ" = (/obj/machinery/requests_console{department = "Crew Quarters"; pixel_y = 30},/obj/machinery/camera{c_tag = "Dormitory North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axd" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axe" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/dorms) -"axf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/dorms) -"axg" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"axh" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) -"axi" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"axj" = (/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) -"axk" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"axl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axm" = (/obj/machinery/computer/holodeck,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axn" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"axo" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"axp" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"axq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/department/electrical) -"axr" = (/obj/machinery/power/apc{dir = 1; name = "Electrical Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/department/electrical) -"axs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/department/electrical) -"axt" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"axu" = (/turf/closed/wall/r_wall,/area/hallway/secondary/entry) -"axv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/shutters{id = "aux_base_shutters"; name = "Auxillary Base Shutters"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/construction/mining/aux_base) -"axw" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Auxillary Base Construction"; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/construction/mining/aux_base) -"axx" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"axy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port/fore) -"axz" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/port/fore) -"axA" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/open/floor/plating,/area/maintenance/port/fore) -"axB" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/space/nearstation) -"axC" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plating,/area/maintenance/port/fore) -"axD" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/fore) -"axE" = (/obj/machinery/light/small{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/port/fore) -"axF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/port/fore) -"axG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port/fore) -"axH" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"axI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fore) -"axJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fore) -"axL" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axM" = (/obj/machinery/power/apc{dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) -"axO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"axR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"axS" = (/obj/effect/landmark/blobstart,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"axT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"axU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"axV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"axW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"axX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"axY" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore/secondary) -"axZ" = (/obj/machinery/door/airlock{id_tag = "Dorm3"; name = "Dorm 3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"aya" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayc" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayd" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"aye" = (/obj/structure/table/wood,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayf" = (/obj/structure/table/wood,/obj/item/weapon/coin/silver,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayg" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"ayj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"ayk" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"ayl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aym" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) -"ayn" = (/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"ayo" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"ayp" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayq" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayr" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ays" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayt" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayu" = (/obj/machinery/button/door{id = "maint2"; name = "Blast Door Control B"; pixel_x = -28; pixel_y = 4; req_access_txt = "0"},/obj/machinery/button/door{id = "maint1"; name = "Blast Door Control A"; pixel_x = -28; pixel_y = -6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayv" = (/obj/structure/janitorialcart,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayw" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayx" = (/obj/structure/table/glass,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"ayA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Electrical Maintenance"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayF" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/department/electrical) -"ayG" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/department/electrical) -"ayH" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) -"ayI" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4; icon_state = "propulsion"},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) -"ayJ" = (/turf/closed/wall,/area/hallway/secondary/entry) -"ayK" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/hallway/secondary/entry) -"ayL" = (/obj/structure/sign/pods,/turf/closed/wall,/area/hallway/secondary/entry) -"ayM" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayN" = (/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/secondary/entry) -"ayQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/secondary/entry) -"ayR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/secondary/entry) -"ayS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) -"ayT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/arrival{dir = 5},/area/hallway/secondary/entry) -"ayU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"ayV" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/plating,/area/maintenance/port/fore) -"ayW" = (/obj/effect/landmark/blobstart,/turf/open/floor/plating,/area/maintenance/port/fore) -"ayX" = (/obj/structure/table/glass,/obj/item/weapon/storage/bag/trash,/turf/open/floor/plating,/area/maintenance/port/fore) -"ayY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/maintenance/port/fore) -"ayZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aza" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port/fore) -"azb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"azc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port/fore) -"azd" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aze" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) -"azh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"azi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"azl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) -"azn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"azo" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) -"azp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"azq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"azr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/storage/eva) -"azs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"azt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) -"azu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"azv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fore/secondary) -"azw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"azx" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azy" = (/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azz" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azA" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azB" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azC" = (/obj/structure/table/wood,/obj/item/toy/cards/deck{pixel_x = 2},/obj/item/clothing/mask/balaclava{pixel_x = -8; pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azD" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"azG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azJ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azK" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azL" = (/obj/machinery/door/window/eastright{base_state = "left"; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) -"azM" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"azN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azP" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"azQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"azR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"azS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"azT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"azU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"azV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/department/electrical) -"azW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/department/electrical) -"azX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"azY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plating,/area/maintenance/department/electrical) -"azZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/maintenance/department/electrical) -"aAa" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_lavaland2"; name = "lavaland"},/turf/open/space,/area/space) -"aAb" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_2) -"aAc" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_lavaland2"; shuttleId = "pod2"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) -"aAd" = (/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -28},/obj/item/device/radio/intercom{pixel_x = 0; pixel_y = 25},/obj/structure/chair{dir = 8},/obj/machinery/light/small,/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) -"aAe" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod2"; name = "escape pod 2"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) -"aAf" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Escape Pod One"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"aAg" = (/turf/open/floor/plating,/area/hallway/secondary/entry) -"aAh" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAi" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aAp" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aAq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aAr" = (/obj/structure/closet/wardrobe/white,/obj/item/clothing/shoes/jackboots,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAs" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAt" = (/obj/structure/table/glass,/obj/item/weapon/restraints/handcuffs/cable/zipties,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/port/fore) -"aAv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aAx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port/fore) -"aAy" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"aAA" = (/turf/closed/wall/r_wall,/area/maintenance/port/fore) -"aAB" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"aAC" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"aAD" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"aAE" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"aAF" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) -"aAG" = (/turf/closed/wall/r_wall,/area/maintenance/fore) -"aAH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aAI" = (/turf/closed/wall/r_wall,/area/gateway) -"aAJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aAK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aAL" = (/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aAM" = (/obj/structure/closet/crate/rcd,/obj/machinery/camera/motion{c_tag = "EVA Motion Sensor"; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{dir = 1},/obj/item/weapon/hand_labeler,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAO" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAP" = (/obj/machinery/power/apc{dir = 1; name = "EVA Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAQ" = (/obj/machinery/airalarm{pixel_y = 23},/obj/item/device/radio/off,/obj/item/device/assembly/timer,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAR" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAS" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/weapon/screwdriver{pixel_y = 16},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aAT" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aAU" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAV" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAW" = (/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAX" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aAY" = (/turf/closed/wall,/area/ai_monitored/storage/eva) -"aAZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aBa" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aBb" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm2"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"aBc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"aBd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"aBe" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/dorms) -"aBf" = (/obj/machinery/light,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aBg" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aBh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/dorms) -"aBi" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) -"aBj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness) -"aBk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aBl" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aBm" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aBn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aBo" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"aBp" = (/obj/machinery/camera{c_tag = "Fitness Room South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) -"aBq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/crew_quarters/fitness) -"aBr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aBs" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aBt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aBu" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBy" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBz" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aBA" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 2"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aBB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aBC" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"aBD" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aBE" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aBF" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aBG" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aBH" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aBI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aBJ" = (/turf/closed/wall,/area/hydroponics/garden) -"aBK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hydroponics/garden) -"aBL" = (/obj/machinery/door/airlock/maintenance{name = "Garden Maintenace"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"aBM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/maintenance/port/fore) -"aBN" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/space,/area/space) -"aBO" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/space,/area/space) -"aBP" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/gateway) -"aBQ" = (/obj/machinery/gateway{dir = 9},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) -"aBR" = (/obj/machinery/gateway{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aBS" = (/obj/machinery/gateway{dir = 5},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) -"aBT" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) -"aBU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fore) -"aBV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "EVA Maintenance"; req_access_txt = "18"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aBZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCc" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCd" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/assembly/prox_sensor,/obj/item/device/assembly/prox_sensor,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aCe" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aCf" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aCg" = (/obj/machinery/door/airlock{id_tag = "Dorm2"; name = "Dorm 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"aCh" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/dorms) -"aCi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aCj" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aCk" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aCl" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/dorms) -"aCm" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/dorms) -"aCn" = (/turf/closed/wall,/area/crew_quarters/toilet) -"aCo" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aCp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) -"aCq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aCr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aCs" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aCt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) -"aCu" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/fitness) -"aCv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCw" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCx" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCy" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCz" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCA" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCB" = (/obj/structure/closet,/obj/effect/landmark/blobstart,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCC" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aCD" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aCE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall,/area/maintenance/department/electrical) -"aCF" = (/obj/machinery/computer/monitor{name = "backup power monitoring console"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/department/electrical) -"aCG" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/department/electrical) -"aCH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/hallway/secondary/entry) -"aCI" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aCJ" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aCK" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aCL" = (/obj/machinery/camera{c_tag = "Arrivals Bay 1 North"; dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aCM" = (/obj/machinery/vending/coffee,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aCN" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aCO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aCP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/apc{dir = 2; name = "Security Checkpoint APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint/checkpoint2) -"aCQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"aCR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/port/fore) -"aCS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port/fore) -"aCT" = (/obj/machinery/power/apc{dir = 4; name = "Garden APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/hydroponics/garden) -"aCU" = (/obj/machinery/hydroponics/soil,/turf/open/floor/grass,/area/hydroponics/garden) -"aCV" = (/obj/machinery/light{dir = 1},/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aCW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aCX" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aCY" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aCZ" = (/obj/structure/sink{pixel_y = 30},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDa" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port/fore) -"aDb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aDc" = (/obj/machinery/power/apc{dir = 2; name = "Primary Tool Storage APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/primary) -"aDd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aDe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/fore) -"aDf" = (/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aDg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aDh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aDi" = (/turf/open/floor/plasteel/black,/area/gateway) -"aDj" = (/obj/machinery/gateway{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aDk" = (/obj/machinery/gateway/centerstation,/turf/open/floor/plasteel/black,/area/gateway) -"aDl" = (/obj/machinery/gateway{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aDm" = (/obj/machinery/power/apc{dir = 8; name = "Gateway APC"; pixel_x = -24; pixel_y = -1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/gateway) -"aDn" = (/obj/machinery/camera{c_tag = "EVA Maintenance"; dir = 8; network = list("SS13")},/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aDo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aDp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDq" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDs" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDu" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDw" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aDx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aDy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aDz" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aDA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"aDB" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDD" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aDE" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aDF" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aDG" = (/obj/item/clothing/under/rank/mailman,/obj/item/clothing/head/mailman,/obj/structure/closet,/obj/effect/landmark/blobstart,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aDH" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aDI" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"aDJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aDK" = (/turf/closed/wall,/area/security/checkpoint/checkpoint2) -"aDL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/checkpoint/checkpoint2) -"aDM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/checkpoint/checkpoint2) -"aDN" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/open/floor/plating,/area/security/checkpoint/checkpoint2) -"aDO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDP" = (/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDQ" = (/obj/item/seeds/apple,/obj/item/seeds/banana,/obj/item/seeds/cocoapod,/obj/item/seeds/grape,/obj/item/seeds/orange,/obj/item/seeds/sugarcane,/obj/item/seeds/wheat,/obj/item/seeds/watermelon,/obj/structure/table/glass,/obj/item/seeds/tower,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aDT" = (/turf/closed/wall,/area/storage/primary) -"aDU" = (/obj/machinery/door/airlock/maintenance{name = "Tool Storage Maintenance"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/fore) -"aDV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/storage/primary) -"aDW" = (/turf/closed/wall/r_wall,/area/storage/primary) -"aDX" = (/obj/machinery/computer/bank_machine,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aDY" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aDZ" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aEa" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aEb" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aEc" = (/obj/machinery/gateway{dir = 10},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) -"aEd" = (/obj/machinery/gateway,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) -"aEe" = (/obj/machinery/gateway{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) -"aEf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/fore) -"aEg" = (/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEi" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/pen{desc = "Writes upside down!"; name = "astronaut pen"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEl" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEm" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aEn" = (/obj/machinery/camera{c_tag = "EVA East"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aEo" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm1"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"aEp" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aEq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aEr" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aEs" = (/obj/effect/landmark/xeno_spawn,/obj/item/weapon/bikehorn/rubberducky,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aEt" = (/obj/structure/table/wood,/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/reagent_containers/food/snacks/baguette,/obj/item/toy/dummy,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aEu" = (/obj/machinery/camera{c_tag = "Theatre Storage"},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aEv" = (/obj/machinery/vending/autodrobe,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aEw" = (/turf/closed/wall,/area/crew_quarters/theatre) -"aEx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/starboard/fore) -"aEz" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aEA" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aEB" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) -"aEC" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aED" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEF" = (/obj/structure/grille/broken,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window{icon_state = "window"; dir = 4},/obj/structure/window,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard/fore) -"aEG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/starboard/fore) -"aEH" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEI" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard/fore) -"aEK" = (/obj/structure/girder,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEL" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEP" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aEQ" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aER" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aES" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aET" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/chapel/main) -"aEU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) -"aEX" = (/turf/closed/wall,/area/chapel/main) -"aEY" = (/turf/closed/wall/mineral/titanium,/area/shuttle/arrival) -"aEZ" = (/obj/machinery/door/airlock/titanium{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/arrival) -"aFa" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/arrival) -"aFb" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aFc" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/checkpoint2) -"aFd" = (/obj/structure/closet/wardrobe/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/checkpoint2) -"aFe" = (/obj/machinery/computer/security,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/checkpoint2) -"aFf" = (/obj/machinery/computer/card,/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/checkpoint2) -"aFg" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/checkpoint2) -"aFh" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/checkpoint2) -"aFi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aFj" = (/turf/open/floor/plasteel,/area/hydroponics/garden) -"aFk" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aFl" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel,/area/storage/primary) -"aFm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aFn" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/storage/primary) -"aFo" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/storage/primary) -"aFp" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/storage/primary) -"aFq" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aFr" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/storage/primary) -"aFs" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) -"aFt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aFu" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel,/area/storage/primary) -"aFv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aFw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aFx" = (/obj/machinery/nuclearbomb/selfdestruct,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) -"aFy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aFz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aFA" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/gateway) -"aFB" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/gateway) -"aFC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window{name = "Gateway Chamber"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/gateway) -"aFD" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) -"aFE" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/gateway) -"aFF" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aFG" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFH" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFK" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light,/obj/machinery/camera{c_tag = "EVA Storage"; dir = 1},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFL" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aFN" = (/obj/machinery/door/airlock/command{name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aFO" = (/obj/machinery/door/airlock/command{cyclelinkeddir = 2; name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aFP" = (/obj/machinery/door/airlock{id_tag = "Dorm1"; name = "Dorm 1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms) -"aFQ" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/dorms) -"aFR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) -"aFS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFV" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFX" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFY" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aFZ" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/random{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/random{pixel_x = -2; pixel_y = -2},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aGa" = (/obj/structure/chair/stool,/obj/effect/landmark/start/mime,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aGb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) -"aGc" = (/obj/machinery/door/airlock/maintenance{name = "Theatre Maintenance"; req_access_txt = "46"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/theatre) -"aGd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 18},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGe" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGh" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Chapel APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/chapel/main) -"aGr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aGs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aGt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) -"aGu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) -"aGv" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 4; id = "chapelgun"; name = "Holy Driver"},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/chapel/main) -"aGw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/landmark/event_spawn,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/chapel/main) -"aGx" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/open/floor/plating,/area/chapel/main) -"aGy" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGz" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGA" = (/obj/machinery/computer/arcade,/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGB" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGC" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGD" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGE" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGF" = (/obj/machinery/requests_console{department = "Arrival shuttle"; name = "Arrivals Shuttle console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aGG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/shuttle/arrival) -"aGH" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/arrival) -"aGI" = (/obj/machinery/power/apc{dir = 4; name = "Entry Hall APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aGJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/checkpoint2) -"aGK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/security/checkpoint/checkpoint2) -"aGL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/security/checkpoint/checkpoint2) -"aGM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/checkpoint/checkpoint2) -"aGN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/checkpoint2) -"aGO" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/checkpoint2) -"aGP" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics/garden) -"aGQ" = (/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aGR" = (/turf/open/floor/plasteel,/area/storage/primary) -"aGS" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/primary) -"aGT" = (/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/weapon/storage/belt/champion,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aGU" = (/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aGV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) -"aGW" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aGX" = (/obj/machinery/camera{c_tag = "Gateway"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/structure/sign/biohazard{pixel_x = -32},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aGY" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/open/floor/plasteel,/area/gateway) -"aGZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) -"aHa" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel,/area/gateway) -"aHb" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/sign/biohazard{pixel_x = 32},/turf/open/floor/plasteel,/area/gateway) -"aHc" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aHd" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aHe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aHf" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) -"aHg" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) -"aHh" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aHi" = (/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"aHj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/dorms) -"aHk" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aHl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aHm" = (/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aHn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) -"aHo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/crew_quarters/toilet) -"aHp" = (/obj/machinery/light/small{dir = 8},/obj/structure/dresser,/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aHq" = (/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aHr" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) -"aHs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHu" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHw" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/space,/area/space) -"aHx" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHC" = (/turf/closed/wall,/area/library) -"aHD" = (/turf/closed/wall,/area/chapel/office) -"aHE" = (/obj/machinery/power/apc{dir = 2; name = "Chapel Office APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/chapel/office) -"aHF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aHG" = (/turf/open/floor/plasteel/black,/area/chapel/main) -"aHH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) -"aHI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/computer/pod/old{density = 0; icon = 'icons/obj/airlock_machines.dmi'; icon_state = "airlock_control_standby"; id = "chapelgun"; name = "Mass Driver Controller"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"aHJ" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/arrival) -"aHK" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aHL" = (/obj/structure/chair,/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aHM" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aHN" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion"},/turf/open/floor/plating/airless,/area/shuttle/arrival) -"aHO" = (/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) -"aHP" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/checkpoint2) -"aHQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/checkpoint2) -"aHR" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/checkpoint2) -"aHS" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/checkpoint2) -"aHT" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/checkpoint2) -"aHU" = (/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/item/device/assembly/flash/handheld,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/checkpoint2) -"aHV" = (/obj/structure/table/glass,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/crowbar,/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics/garden) -"aHW" = (/obj/machinery/camera{c_tag = "Garden"; dir = 8; network = list("SS13")},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aHX" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/storage/primary) -"aHY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/storage/primary) -"aHZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/storage/primary) -"aIa" = (/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel,/area/storage/primary) -"aIb" = (/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/primary) -"aIc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aId" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) -"aIe" = (/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) -"aIf" = (/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/nuke_storage) -"aIg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/vault,/area/ai_monitored/nuke_storage) -"aIh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/nuke_storage) -"aIi" = (/obj/structure/safe,/obj/item/clothing/head/bearpelt,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/gun/ballistic/revolver/russian,/obj/item/ammo_box/a357,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) -"aIj" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aIk" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aIl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/gateway) -"aIm" = (/turf/open/floor/plasteel,/area/gateway) -"aIn" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/gateway) -"aIo" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aIp" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aIq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aIr" = (/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aIs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aIt" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/table,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aIu" = (/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aIv" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aIw" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) -"aIx" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) -"aIy" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIz" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIA" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIB" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/effect/landmark/blobstart,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aIC" = (/obj/machinery/light/small{dir = 8},/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aID" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/device/flashlight/lamp/bananalamp{pixel_y = 3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aIE" = (/obj/structure/chair/stool,/obj/effect/landmark/start/clown,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aIF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aIG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/theatre) -"aIH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aII" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIJ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 19},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIV" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIY" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aIZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/space,/area/space) -"aJa" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 17},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aJb" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aJc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/library) -"aJd" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) -"aJe" = (/obj/structure/table/wood,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/wood,/area/library) -"aJf" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/stack/packageWrap,/turf/open/floor/wood,/area/library) -"aJg" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/wood,/area/library) -"aJh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/chapel/office) -"aJi" = (/obj/machinery/door/airlock/maintenance{name = "Crematorium Maintenance"; req_access_txt = "27"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/chapel/office) -"aJj" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aJk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/requests_console{department = "Chapel"; departmentType = 2; pixel_y = 30},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aJl" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Chapel Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aJm" = (/obj/machinery/airalarm{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aJn" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aJo" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aJp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aJq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aJr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aJs" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aJt" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aJu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/chapel/main) -"aJv" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"aJw" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"aJx" = (/obj/effect/landmark/marauder_entry,/turf/open/space,/area/space) -"aJy" = (/obj/machinery/door/airlock/titanium{name = "Arrivals Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aJz" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion"},/obj/docking_port/mobile/arrivals,/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 15; id = "arrivals_stationary"; name = "arrivals"; width = 7},/turf/open/floor/plating/airless,/area/shuttle/arrival) -"aJA" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/entry) -"aJB" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/checkpoint/checkpoint2) -"aJC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/checkpoint2) -"aJD" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/machinery/door/window/westright{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aJE" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics/garden) -"aJF" = (/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel,/area/hydroponics/garden) -"aJG" = (/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/pestspray{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = 2; pixel_y = 1},/obj/structure/table/glass,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics/garden) -"aJH" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) -"aJI" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel,/area/storage/primary) -"aJJ" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel,/area/storage/primary) -"aJK" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) -"aJL" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/ai_monitored/nuke_storage) -"aJM" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/gateway) -"aJN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/gateway) -"aJO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/gateway) -"aJP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/gateway) -"aJQ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/gateway) -"aJR" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aJS" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aJT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aJU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aJV" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aJW" = (/obj/machinery/door/airlock/command{cyclelinkeddir = 1; name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) -"aJX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aJY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aJZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aKa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/dorms) -"aKb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/dorms) -"aKc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aKd" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aKe" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aKf" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aKg" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aKh" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/crayons{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/pie/cream{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aKi" = (/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aKj" = (/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) -"aKk" = (/obj/machinery/power/apc{dir = 8; name = "Theatre APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/crew_quarters/theatre) -"aKl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKn" = (/obj/machinery/power/apc{dir = 2; name = "Bar APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) -"aKo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/bar) -"aKp" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Bar Storage Maintenance"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/bar) -"aKq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/crew_quarters/bar) -"aKr" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/crew_quarters/bar) -"aKs" = (/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/kitchen) -"aKt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 21},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKz" = (/obj/machinery/power/apc{dir = 2; name = "Hydroponics APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/hydroponics) -"aKA" = (/turf/closed/wall,/area/hydroponics) -"aKB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/hydroponics) -"aKC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aKD" = (/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/library) -"aKE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/wood,/area/library) -"aKF" = (/obj/structure/chair/office/dark,/obj/machinery/camera{c_tag = "Library North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKG" = (/obj/structure/chair/office/dark,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) -"aKI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/wood,/area/library) -"aKJ" = (/obj/structure/bodycontainer/crematorium,/obj/effect/landmark/revenantspawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) -"aKK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) -"aKL" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKM" = (/obj/effect/landmark/start/chaplain,/obj/structure/chair,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKN" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aKP" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) -"aKQ" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aKR" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aKS" = (/turf/open/floor/mineral/titanium,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/escape) -"aKT" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aKU" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aKV" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aKW" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aKX" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aKY" = (/obj/structure/chair{dir = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aKZ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLa" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLd" = (/obj/machinery/camera{c_tag = "Arrivals Lounge"; dir = 2},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLe" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLf" = (/obj/structure/sign/map/left{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLg" = (/obj/structure/sign/map/right{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aLh" = (/obj/structure/table/glass,/obj/item/weapon/hatchet,/obj/item/weapon/cultivator,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/device/plant_analyzer,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics/garden) -"aLi" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table/glass,/obj/item/device/plant_analyzer,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light_switch{pixel_x = -6; pixel_y = -25},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics/garden) -"aLj" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/turf/open/floor/plasteel,/area/storage/primary) -"aLk" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/storage/primary) -"aLl" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plasteel,/area/storage/primary) -"aLm" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/storage/primary) -"aLn" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/primary) -"aLo" = (/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/storage/primary) -"aLp" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/storage/primary) -"aLq" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/storage/primary) -"aLr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aLs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) -"aLt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aLu" = (/obj/machinery/button/door{id = "stationawaygate"; name = "Gateway Access Shutter Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/turf/open/floor/plasteel,/area/gateway) -"aLv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) -"aLw" = (/obj/machinery/light{dir = 4},/obj/structure/closet/secure_closet/exile,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/gateway) -"aLx" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aLy" = (/obj/machinery/camera{c_tag = "EVA South"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aLz" = (/obj/structure/tank_dispenser/oxygen,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) -"aLA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) -"aLB" = (/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) -"aLC" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"aLD" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) -"aLE" = (/turf/open/floor/plasteel,/area/hallway/primary/central) -"aLF" = (/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = 32},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 24},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) -"aLG" = (/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"aLH" = (/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) -"aLI" = (/turf/closed/wall,/area/hallway/primary/central) -"aLJ" = (/obj/machinery/vending/cola/random,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"aLK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/central) -"aLL" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) -"aLM" = (/obj/machinery/camera{c_tag = "Dormitory Toilets"; dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aLN" = (/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"aLO" = (/obj/machinery/door/airlock{name = "Theatre Backstage"; req_access_txt = "46"},/turf/open/floor/plasteel,/area/crew_quarters/theatre) -"aLP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/bar) -"aLQ" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aLR" = (/turf/closed/wall,/area/crew_quarters/bar) -"aLS" = (/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/ballistic/revolver/doublebarrel,/obj/structure/table/wood,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLU" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aLV" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/crew_quarters/bar) -"aLW" = (/turf/closed/wall,/area/crew_quarters/kitchen) -"aLX" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/kitchen) -"aLY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/kitchen) -"aLZ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/crew_quarters/kitchen) -"aMa" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/hydroponics) -"aMb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/hydroponics) -"aMc" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMd" = (/obj/structure/table,/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/item/weapon/paper/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aMe" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/library) -"aMf" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/wood,/area/library) -"aMg" = (/obj/structure/table/wood,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) -"aMh" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aMi" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/library) -"aMj" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/library) -"aMk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aMl" = (/obj/structure/disposalpipe/segment,/obj/machinery/button/crematorium{pixel_x = 25},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) -"aMm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/chapel/office) -"aMn" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp{pixel_y = 10},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aMo" = (/obj/structure/table/wood,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aMp" = (/obj/structure/table/wood,/obj/item/weapon/nullrod,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aMq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aMr" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aMs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/xmastree,/turf/open/floor/plasteel/black,/area/chapel/main) -"aMt" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aMu" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aMv" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aMw" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aMx" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aMy" = (/obj/machinery/computer/security,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aMz" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aMA" = (/obj/machinery/light,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aMB" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/light,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) -"aMC" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/arrival) -"aMD" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/secondary/entry) -"aME" = (/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) -"aMH" = (/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/secondary/entry) -"aMI" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hydroponics/garden) -"aMJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Garden"},/turf/open/floor/plasteel,/area/hydroponics/garden) -"aMK" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) -"aML" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aMM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) -"aMN" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) -"aMO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMP" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMQ" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) -"aMS" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/hallway/primary/port) -"aMT" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) -"aMU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) -"aMV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{icon_state = "door_closed"; lockdownbyai = 0; locked = 0; name = "Gateway Access"; req_access_txt = "62"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) -"aMW" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) -"aMX" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/open/floor/plasteel,/area/gateway) -"aMY" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/gateway) -"aMZ" = (/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"aNa" = (/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aNb" = (/obj/machinery/vending/snack/random,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"aNc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) -"aNd" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aNe" = (/turf/open/floor/wood,/area/crew_quarters/theatre) -"aNf" = (/obj/machinery/airalarm{dir = 2; pixel_y = 24},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aNg" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Theatre Stage"; dir = 2},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aNh" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aNi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aNj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aNk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aNl" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) -"aNm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/bar) -"aNn" = (/obj/machinery/camera{c_tag = "Bar Storage"},/turf/open/floor/wood,/area/crew_quarters/bar) -"aNo" = (/turf/open/floor/wood,/area/crew_quarters/bar) -"aNp" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aNq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aNr" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/crew_quarters/kitchen) -"aNs" = (/obj/machinery/door/window/eastright{name = "Hydroponics Delivery"; req_access_txt = "35"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/hydroponics) -"aNt" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNu" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNw" = (/obj/structure/closet/wardrobe/botanist,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNx" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNy" = (/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Hydroponics Storage"},/obj/machinery/light/small{dir = 1},/obj/machinery/plantgenes,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNz" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/watertank,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aNB" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/wood,/area/library) -"aNC" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/library) -"aND" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/library) -"aNE" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/obj/item/toy/cards/deck/cas,/obj/item/toy/cards/deck/cas/black{pixel_x = -2; pixel_y = 6},/turf/open/floor/wood,/area/library) -"aNF" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/library) -"aNG" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/office) -"aNH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) -"aNI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Crematorium"; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) -"aNJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNK" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNM" = (/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aNN" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/main) -"aNO" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aNP" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aNQ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aNR" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/obj/machinery/light,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aNS" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aNT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aNU" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aNV" = (/obj/structure/chair/comfy/beige,/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNW" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNX" = (/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNY" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aNZ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aOa" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aOb" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/entry) -"aOc" = (/obj/machinery/door/firedoor,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aOd" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOe" = (/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{name = "Port Hall APC"; dir = 1; pixel_y = 26},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOi" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOj" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOk" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOl" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOm" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOq" = (/obj/machinery/light{dir = 1},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOt" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aOu" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOw" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOx" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOy" = (/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) -"aOz" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOA" = (/turf/open/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) -"aOB" = (/turf/open/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) -"aOC" = (/turf/open/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) -"aOD" = (/turf/open/floor/plasteel{icon_state = "L7"},/area/hallway/primary/central) -"aOE" = (/turf/open/floor/plasteel{icon_state = "L9"},/area/hallway/primary/central) -"aOF" = (/turf/open/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central) -"aOG" = (/turf/open/floor/plasteel{icon_state = "L13"; name = "floor"},/area/hallway/primary/central) -"aOH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) -"aOJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) -"aOK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) -"aOL" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) -"aOM" = (/obj/machinery/camera{c_tag = "Central Hallway North-East"; dir = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aON" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOO" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOP" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aOQ" = (/obj/structure/piano{icon_state = "piano"},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOR" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOT" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aOU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOV" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOW" = (/obj/machinery/computer/slot_machine,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aOX" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOY" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/xeno_spawn,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) -"aOZ" = (/obj/machinery/vending/cola/random,/turf/open/floor/wood,/area/crew_quarters/bar) -"aPa" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/crew_quarters/bar) -"aPb" = (/obj/machinery/icecream_vat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aPc" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/obj/machinery/camera{c_tag = "Kitchen Cold Room"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aPd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aPe" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPf" = (/obj/machinery/light/small,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = -31},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPl" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPm" = (/obj/machinery/chem_master/condimaster,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aPn" = (/turf/open/floor/wood,/area/library) -"aPo" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/wood,/area/library) -"aPp" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aPq" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark/revenantspawn,/turf/open/floor/plasteel/black,/area/chapel/office) -"aPr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/office) -"aPs" = (/obj/structure/table/wood,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/turf/open/floor/plasteel/grimy,/area/chapel/office) -"aPt" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) -"aPu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"aPv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) -"aPw" = (/turf/closed/wall,/area/hallway/secondary/exit) -"aPx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aPy" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aPz" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"aPA" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aPB" = (/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aPC" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPD" = (/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aPF" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aPG" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aPH" = (/turf/open/floor/goonplaque,/area/hallway/secondary/entry) -"aPI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPO" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPT" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPV" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPW" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aPX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aPZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aQa" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aQb" = (/turf/open/floor/plasteel{icon_state = "L2"},/area/hallway/primary/central) -"aQc" = (/turf/open/floor/plasteel{icon_state = "L4"},/area/hallway/primary/central) -"aQd" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lockers"; location = "EVA"},/turf/open/floor/plasteel{icon_state = "L6"},/area/hallway/primary/central) -"aQe" = (/obj/effect/landmark/observer_start,/turf/open/floor/plasteel{icon_state = "L8"},/area/hallway/primary/central) -"aQf" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Security"; location = "EVA2"},/turf/open/floor/plasteel{icon_state = "L10"},/area/hallway/primary/central) -"aQg" = (/turf/open/floor/plasteel{icon_state = "L12"},/area/hallway/primary/central) -"aQh" = (/turf/open/floor/plasteel{icon_state = "L14"},/area/hallway/primary/central) -"aQi" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) -"aQj" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aQk" = (/obj/structure/table/wood,/obj/item/device/instrument/guitar{pixel_x = -7},/obj/item/device/instrument/eguitar{pixel_x = 5},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aQl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aQm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aQn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aQo" = (/obj/machinery/door/window{dir = 4; name = "Theatre Stage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aQp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aQq" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aQr" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aQs" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/wood,/area/crew_quarters/bar) -"aQt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/crew_quarters/bar) -"aQu" = (/obj/structure/closet/gmcloset,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/cable_coil,/obj/item/device/flashlight/lamp,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/bar) -"aQv" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQx" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQy" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aQz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hydroponics) -"aQA" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hydroponics) -"aQB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) -"aQC" = (/obj/machinery/bookbinder{pixel_y = 0},/turf/open/floor/wood,/area/library) -"aQD" = (/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) -"aQE" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/library) -"aQF" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) -"aQG" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aQH" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/chapel/main) -"aQI" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 9},/area/hallway/secondary/exit) -"aQJ" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) -"aQK" = (/obj/machinery/light{dir = 1},/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) -"aQL" = (/obj/structure/chair,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aQM" = (/obj/structure/chair,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aQN" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aQO" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aQP" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aQQ" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aQR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aQS" = (/obj/machinery/vending/snack/random,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aQT" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals Bay 1 South"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aQU" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aQV" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aQW" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter/greyscale{pixel_x = 4; pixel_y = 2},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aQX" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) -"aQY" = (/obj/machinery/vending/cola/random,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aQZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRa" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRc" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRd" = (/obj/machinery/camera{c_tag = "Port Hallway 3"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRe" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRf" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRr" = (/obj/structure/sign/directions/security{dir = 4; icon_state = "direction_sec"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = -32},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRs" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aRt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aRu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aRv" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=QM"; location = "CHW"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aRw" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRx" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRy" = (/obj/machinery/light,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"aRA" = (/obj/structure/window/reinforced,/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRB" = (/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) -"aRD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aRE" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) -"aRF" = (/obj/effect/landmark/blobstart,/obj/item/toy/beach_ball/holoball,/turf/open/floor/plating,/area/crew_quarters/bar) -"aRG" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRJ" = (/obj/machinery/gibber,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aRK" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRL" = (/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRM" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRN" = (/obj/machinery/hydroponics/constructable,/obj/machinery/camera{c_tag = "Hydroponics North"; dir = 2},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) -"aRP" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/black,/area/hydroponics) -"aRQ" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/library) -"aRR" = (/turf/open/floor/carpet,/area/library) -"aRS" = (/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/library) -"aRT" = (/obj/structure/bookcase/random/reference,/turf/open/floor/wood,/area/library) -"aRU" = (/obj/machinery/computer/libraryconsole,/obj/structure/table/wood,/turf/open/floor/wood,/area/library) -"aRV" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/open/floor/engine/cult,/area/library) -"aRW" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/engine/cult,/area/library) -"aRX" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/turf/open/floor/engine/cult,/area/library) -"aRY" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/black,/area/chapel/main) -"aRZ" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aSa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aSb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aSc" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/black,/area/chapel/main) -"aSd" = (/obj/machinery/camera{c_tag = "Escape Arm Holding Area"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) -"aSe" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSg" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSh" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aSi" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aSj" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aSk" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aSl" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aSm" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) -"aSn" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4; icon_state = "propulsion"},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) -"aSo" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aSp" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aSq" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aSr" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aSs" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aSt" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) -"aSu" = (/obj/machinery/vending/snack/random,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) -"aSv" = (/turf/closed/wall,/area/maintenance/port) -"aSw" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"aSx" = (/turf/closed/wall,/area/crew_quarters/locker) -"aSy" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aSz" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aSA" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall,/area/crew_quarters/locker) -"aSB" = (/turf/closed/wall,/area/storage/art) -"aSC" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/art) -"aSD" = (/obj/machinery/door/airlock/glass{name = "Art Storage"},/turf/open/floor/plasteel,/area/storage/art) -"aSE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/storage/art) -"aSF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"aSG" = (/turf/closed/wall,/area/storage/emergency/port) -"aSH" = (/obj/structure/table,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSI" = (/obj/structure/table,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSJ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aSM" = (/turf/closed/wall,/area/storage/tools) -"aSN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aSO" = (/turf/closed/wall/r_wall,/area/bridge) -"aSP" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"aSQ" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSR" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSS" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aST" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSU" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) -"aSV" = (/obj/structure/table,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/item/clothing/head/hardhat/cakehat,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSW" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSX" = (/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aSZ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/bar) -"aTa" = (/obj/machinery/disposal/bin,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = -28; pixel_y = -4},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/button/door{id = "barShutters"; name = "bar shutters"; pixel_x = 4; pixel_y = 28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aTb" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aTc" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aTd" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) -"aTe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) -"aTf" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) -"aTg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics) -"aTh" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/library) -"aTi" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/library) -"aTj" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/workboots/mining,/obj/item/clothing/under/rank/curator/treasure_hunter,/obj/item/clothing/suit/curator,/obj/item/clothing/head/curator,/obj/item/weapon/storage/backpack/satchel/explorer,/obj/machinery/light/small,/turf/open/floor/engine/cult,/area/library) -"aTk" = (/obj/effect/landmark/blobstart,/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/engine/cult,/area/library) -"aTl" = (/obj/structure/destructible/cult/tome,/obj/item/clothing/under/suit_jacket/red,/obj/item/weapon/book/codex_gigas,/turf/open/floor/engine/cult,/area/library) -"aTm" = (/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aTn" = (/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) -"aTo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aTp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aTq" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aTr" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"aTs" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) -"aTt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aTu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aTv" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aTw" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Security Escape Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTx" = (/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTy" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTz" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Security Escape Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aTA" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aTB" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aTC" = (/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aTD" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aTE" = (/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aTF" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_lavaland1"; name = "lavaland"},/turf/open/space,/area/space) -"aTG" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_1) -"aTH" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_lavaland1"; shuttleId = "pod1"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) -"aTI" = (/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -28},/obj/item/device/radio/intercom{pixel_x = 0; pixel_y = 25},/obj/structure/chair{dir = 8},/obj/machinery/light/small,/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) -"aTJ" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod1"; name = "escape pod 1"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) -"aTK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aTL" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aTM" = (/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aTN" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/secondary/entry) -"aTO" = (/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) -"aTU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/secondary/entry) -"aTV" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"aTW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/port) -"aTX" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTY" = (/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aTZ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUa" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUb" = (/obj/machinery/vending/cola/random,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUc" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUd" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUe" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUf" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUg" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUh" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aUi" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) -"aUj" = (/turf/open/floor/plasteel,/area/storage/art) -"aUk" = (/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/storage/art) -"aUl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"aUm" = (/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency/port) -"aUn" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/storage/tools) -"aUo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) -"aUp" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aUq" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/open/floor/plasteel,/area/bridge) -"aUr" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/bridge) -"aUs" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/yellow/side,/area/bridge) -"aUt" = (/obj/machinery/computer/monitor{name = "bridge power monitoring console"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/bridge) -"aUu" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) -"aUv" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"aUw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) -"aUx" = (/obj/machinery/modular_computer/console/preset/command,/turf/open/floor/plasteel/green/side{dir = 10},/area/bridge) -"aUy" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/green/side{dir = 2},/area/bridge) -"aUz" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/green/side{dir = 6},/area/bridge) -"aUA" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/wrench,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/bridge) -"aUB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"aUC" = (/obj/effect/landmark/event_spawn,/turf/closed/wall,/area/crew_quarters/bar) -"aUD" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUE" = (/obj/structure/chair,/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUF" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUG" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUH" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUI" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aUJ" = (/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUK" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/food_cart,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUL" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUN" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Kitchen"; dir = 2},/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUO" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUP" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUQ" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aUR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aUS" = (/turf/open/floor/plasteel,/area/hydroponics) -"aUT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aUU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Library APC"; pixel_x = 24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) -"aUV" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/library) -"aUW" = (/obj/structure/displaycase/trophy,/turf/open/floor/wood,/area/library) -"aUX" = (/obj/machinery/camera{c_tag = "Library South"; dir = 8; network = list("SS13")},/turf/open/floor/wood,/area/library) -"aUY" = (/obj/machinery/door/morgue{name = "Private Study"; req_access_txt = "37"},/turf/open/floor/engine/cult,/area/library) -"aUZ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/black,/area/chapel/main) -"aVa" = (/turf/open/floor/carpet,/area/chapel/main) -"aVb" = (/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/chapel/main) -"aVc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aVd" = (/obj/machinery/door/airlock/glass_security{name = "Holding Area"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aVe" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) -"aVf" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) -"aVg" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aVh" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 1"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aVi" = (/obj/machinery/light,/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) -"aVj" = (/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) -"aVk" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/entry) -"aVl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVm" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVn" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVp" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVq" = (/obj/machinery/camera{c_tag = "Arrivals Hallway"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aVr" = (/turf/open/floor/plating,/area/maintenance/port) -"aVs" = (/obj/structure/closet/wardrobe/mixed,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aVt" = (/obj/effect/landmark/lightsout,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aVu" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil,/obj/item/weapon/paper_bin/construction,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/storage/art) -"aVv" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency/port) -"aVw" = (/turf/open/floor/plating,/area/storage/emergency/port) -"aVx" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency/port) -"aVy" = (/obj/machinery/power/apc{dir = 1; name = "Auxiliary Tool Storage APC"; pixel_y = 24},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/storage/tools) -"aVz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/storage/tools) -"aVA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) -"aVB" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/storage/tools) -"aVC" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel,/area/storage/tools) -"aVD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tools) -"aVE" = (/obj/structure/table/reinforced,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel,/area/bridge) -"aVF" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/bridge) -"aVG" = (/obj/structure/chair{dir = 1; name = "Engineering Station"},/turf/open/floor/plasteel,/area/bridge) -"aVH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/bridge) -"aVI" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/device/multitool,/turf/open/floor/plasteel/blue/side{dir = 8},/area/bridge) -"aVJ" = (/obj/structure/chair{dir = 1; name = "Command Station"},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 28; pixel_y = -2; req_access_txt = "19"},/obj/machinery/keycard_auth{pixel_x = 29; pixel_y = 8},/turf/open/floor/plasteel,/area/bridge) -"aVK" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) -"aVL" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/bridge) -"aVM" = (/obj/structure/chair{dir = 1; name = "Crew Station"},/turf/open/floor/plasteel,/area/bridge) -"aVN" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/bridge) -"aVO" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel,/area/bridge) -"aVP" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/preopen{id = "barShutters"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/bar) -"aVQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVR" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVS" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVU" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVV" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVW" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVX" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVY" = (/mob/living/carbon/monkey/punpun,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aVZ" = (/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) -"aWa" = (/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWc" = (/obj/effect/landmark/start/cook,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aWh" = (/obj/machinery/smartfridge,/turf/closed/wall,/area/crew_quarters/kitchen) -"aWi" = (/turf/open/floor/plasteel/black,/area/hydroponics) -"aWj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aWk" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hydroponics) -"aWl" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hydroponics) -"aWm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aWn" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 8; icon_state = "right"; name = "Library Desk Door"; req_access_txt = "37"},/turf/open/floor/wood,/area/library) -"aWo" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/library) -"aWp" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/wood,/area/library) -"aWq" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aWr" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aWs" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aWt" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) -"aWu" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/black,/area/chapel/main) -"aWv" = (/obj/machinery/vending/cola/random,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/escape{dir = 9},/area/hallway/secondary/exit) -"aWw" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/secondary/exit) -"aWx" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Airlock"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aWy" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"aWz" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Box emergency shuttle"; timid = 0},/obj/docking_port/stationary{dir = 4; dwidth = 12; height = 18; id = "emergency_home"; name = "BoxStation emergency evac bay"; turf_type = /turf/open/space; width = 32},/turf/open/floor/plating,/area/shuttle/escape) -"aWA" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aWB" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aWC" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"aWD" = (/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aWE" = (/turf/closed/wall,/area/security/vacantoffice) -"aWF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice) -"aWG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice) -"aWH" = (/turf/closed/wall,/area/security/vacantoffice/a) -"aWI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"aWJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"aWK" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWL" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWM" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWN" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWO" = (/obj/structure/table,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWP" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWQ" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWS" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Locker Room East"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aWT" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel,/area/storage/art) -"aWU" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/storage/art) -"aWV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/device/camera_film,/obj/item/device/camera,/turf/open/floor/plasteel,/area/storage/art) -"aWW" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency/port) -"aWX" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency/port) -"aWY" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency/port) -"aWZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency/port) -"aXa" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel,/area/storage/tools) -"aXb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/storage/tools) -"aXc" = (/turf/open/floor/plasteel,/area/storage/tools) -"aXd" = (/obj/structure/rack,/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/suit/hazardvest,/obj/item/device/multitool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/storage/tools) -"aXe" = (/turf/closed/wall,/area/bridge) -"aXf" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/red/side{dir = 10},/area/bridge) -"aXg" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/red/side,/area/bridge) -"aXh" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 6},/area/bridge) -"aXi" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel,/area/bridge) -"aXj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/bridge) -"aXk" = (/turf/open/floor/plasteel,/area/bridge) -"aXl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/bridge) -"aXm" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/bridge) -"aXn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/bridge) -"aXo" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) -"aXp" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/bridge) -"aXq" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/bridge) -"aXr" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/brown{dir = 10},/area/bridge) -"aXs" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/brown{dir = 2},/area/bridge) -"aXt" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel/brown{dir = 6},/area/bridge) -"aXu" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXv" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXw" = (/obj/effect/landmark/event_spawn,/obj/effect/landmark/xmastree,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXx" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXy" = (/obj/effect/landmark/start/bartender,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXz" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0; receive_ore_updates = 1},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aXA" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aXB" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aXC" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aXD" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aXE" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aXF" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/firedoor,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/crew_quarters/kitchen) -"aXG" = (/turf/open/floor/plasteel/vault{dir = 8},/area/hydroponics) -"aXH" = (/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) -"aXI" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/hydroponics) -"aXJ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/hydroponics) -"aXK" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) -"aXL" = (/obj/machinery/hydroponics/constructable,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/hydroponics) -"aXM" = (/obj/structure/bookcase/random/adult,/turf/open/floor/wood,/area/library) -"aXN" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start/assistant,/turf/open/floor/wood,/area/library) -"aXO" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/library) -"aXP" = (/obj/effect/landmark/start/librarian,/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/library) -"aXQ" = (/obj/machinery/libraryscanner,/turf/open/floor/wood,/area/library) -"aXR" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/black,/area/chapel/main) -"aXS" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aXT" = (/obj/structure/chair/stool,/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aXU" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) -"aXV" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) -"aXW" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"aXX" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aXY" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aXZ" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"aYa" = (/turf/closed/wall/mineral/titanium,/area/shuttle/transport) -"aYb" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) -"aYc" = (/obj/machinery/door/airlock/external,/turf/open/floor/pod/dark,/area/shuttle/transport) -"aYd" = (/obj/machinery/camera{c_tag = "Arrivals Bay 2"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"aYe" = (/turf/open/floor/wood,/area/security/vacantoffice) -"aYf" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) -"aYg" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice) -"aYh" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/wood,/area/security/vacantoffice) -"aYi" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) -"aYj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice) -"aYk" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) -"aYl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) -"aYm" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/requests_console{department = "Locker Room"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYp" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYq" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYr" = (/obj/structure/table,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYs" = (/obj/structure/table,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYt" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start/assistant,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aYx" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) -"aYy" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) -"aYz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small,/turf/open/floor/plasteel,/area/storage/tools) -"aYA" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/tools) -"aYB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) -"aYC" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"aYD" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/bridge) -"aYE" = (/obj/machinery/camera{c_tag = "Bridge West"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/red/corner{dir = 1},/area/bridge) -"aYF" = (/obj/structure/chair{dir = 1; name = "Security Station"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/bridge) -"aYH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) -"aYJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/bridge) -"aYL" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYO" = (/obj/item/device/radio/beacon,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1},/area/bridge) -"aYR" = (/obj/structure/chair{dir = 1; name = "Logistics Station"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"aYS" = (/obj/machinery/camera{c_tag = "Bridge East"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/bridge) -"aYT" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/bridge) -"aYU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) -"aYV" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"aYW" = (/obj/machinery/holopad,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aYX" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"aYY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aYZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/stack/packageWrap,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZa" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZc" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"aZd" = (/obj/machinery/light{dir = 8},/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) -"aZe" = (/obj/effect/landmark/start/botanist,/turf/open/floor/plasteel,/area/hydroponics) -"aZf" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/hydroponics) -"aZg" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) -"aZh" = (/obj/structure/table/wood,/obj/item/weapon/paper,/turf/open/floor/wood,/area/library) -"aZi" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/wood,/area/library) -"aZj" = (/obj/structure/table/wood,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/open/floor/wood,/area/library) -"aZk" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/library) -"aZl" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/wood,/area/library) -"aZm" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) -"aZn" = (/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) -"aZo" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"aZp" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/open/floor/plating/airless,/area/shuttle/transport) -"aZq" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/shuttle/transport) -"aZr" = (/obj/structure/chair,/turf/open/floor/pod/dark,/area/shuttle/transport) -"aZs" = (/obj/machinery/light{dir = 1},/turf/open/floor/pod/light,/area/shuttle/transport) -"aZt" = (/turf/open/floor/pod/light,/area/shuttle/transport) -"aZu" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) -"aZv" = (/obj/machinery/camera{c_tag = "Vacant Office"; dir = 4; network = list("SS13")},/turf/open/floor/wood,/area/security/vacantoffice) -"aZw" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) -"aZx" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/security/vacantoffice) -"aZy" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/security/vacantoffice) -"aZz" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/security/vacantoffice) -"aZA" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) -"aZB" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) -"aZC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"aZD" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZG" = (/obj/machinery/camera{c_tag = "Locker Room West"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZK" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"aZL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) -"aZM" = (/obj/machinery/power/apc{dir = 1; name = "Art Storage"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/art) -"aZN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/port) -"aZO" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/port) -"aZP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZR" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/emergency/port) -"aZS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) -"aZT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/port) -"aZU" = (/turf/closed/wall,/area/security/detectives_office) -"aZV" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) -"aZW" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 4; name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) -"aZX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/bridge) -"aZY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 8; name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) -"aZZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) -"baa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/bridge) -"bab" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"bac" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner,/area/bridge) -"bad" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/light,/obj/machinery/light_switch{pixel_x = -6; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bae" = (/obj/structure/fireaxecabinet{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"baf" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bag" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bah" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bai" = (/obj/machinery/turretid{control_area = "AI Upload Chamber"; name = "AI Upload turret control"; pixel_y = -25},/obj/machinery/camera{c_tag = "Bridge Center"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"baj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bak" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bal" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bam" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/bridge) -"ban" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/bridge) -"bao" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) -"bap" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 4; name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"baq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/bridge) -"bar" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 8; name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) -"bas" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bat" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bau" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bav" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"baw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bax" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/cigar,/obj/item/toy/cards/deck,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bay" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"baz" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"baA" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"baB" = (/obj/effect/landmark/start/cook,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"baC" = (/obj/machinery/deepfryer,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"baD" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"baE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 16},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"baF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"baG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"baH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"baI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"baJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"baK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"baL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/carpet,/area/library) -"baM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/turf/open/floor/carpet,/area/chapel/main) -"baN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/carpet,/area/chapel/main) -"baO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) -"baP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/carpet,/area/chapel/main) -"baQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"baR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"baS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"baT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"baU" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"baV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"baW" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plating/airless,/area/shuttle/transport) -"baX" = (/obj/machinery/light/small,/turf/open/floor/pod/light,/area/shuttle/transport) -"baY" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/pod/light,/area/shuttle/transport) -"baZ" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/pod/dark,/area/shuttle/transport) -"bba" = (/obj/machinery/door/airlock/titanium,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 13; id = "ferry"; name = "ferry shuttle"; port_angle = 0; preferred_direction = 4; roundstart_move = "ferry_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 13; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/pod/light,/area/shuttle/transport) -"bbb" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bbc" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bbd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) -"bbe" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) -"bbf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/security/vacantoffice) -"bbg" = (/turf/open/floor/carpet,/area/security/vacantoffice) -"bbh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/security/vacantoffice) -"bbi" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) -"bbj" = (/obj/machinery/light{dir = 4},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/wood,/area/security/vacantoffice) -"bbk" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port) -"bbl" = (/turf/closed/wall,/area/crew_quarters/toilet/locker) -"bbm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/toilet/locker) -"bbn" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bbo" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbq" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbr" = (/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbs" = (/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbu" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bbv" = (/obj/machinery/power/apc{dir = 8; name = "Port Maintenance APC"; pixel_x = -27; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/port) -"bbw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/port) -"bbx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port) -"bby" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/port) -"bbz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) -"bbA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Warehouse Maintenance"; req_access_txt = "31"},/turf/open/floor/plating,/area/maintenance/port) -"bbB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bbC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"bbD" = (/obj/structure/closet/secure_closet/detective,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bbE" = (/obj/machinery/computer/med_data,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bbF" = (/obj/machinery/computer/secure_data,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bbG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"bbH" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/hand_labeler{pixel_x = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bbI" = (/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/button/door{id = "kanyewest"; name = "Privacy Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bbJ" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bbK" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"bbL" = (/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1},/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"bbM" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 6},/area/hallway/primary/central) -"bbN" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) -"bbO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/bridge) -"bbP" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbR" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bbS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) -"bbT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bbU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bbV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bbW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bbX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bbY" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bbZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bca" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bcb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) -"bcc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) -"bcd" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/hallway/primary/central) -"bce" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) -"bcf" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bcg" = (/obj/structure/chair{dir = 1},/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bch" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bci" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/start/assistant,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bcj" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bck" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) -"bcl" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bcm" = (/obj/machinery/light,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bcn" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bco" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bcp" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bcq" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) -"bcr" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics) -"bcs" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) -"bct" = (/obj/structure/chair/stool,/obj/effect/landmark/start/botanist,/turf/open/floor/plasteel,/area/hydroponics) -"bcu" = (/obj/machinery/camera{c_tag = "Hydroponics South"; dir = 8; network = list("SS13")},/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) -"bcv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/hydroponics) -"bcw" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bcx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bcy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bcz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) -"bcA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/library) -"bcB" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/library) -"bcC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/chapel/main) -"bcD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"bcE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) -"bcF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/chapel/main) -"bcG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) -"bcH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bcI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bcJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bcK" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bcL" = (/obj/machinery/camera{c_tag = "Escape Arm Airlocks"; dir = 8; network = list("SS13")},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bcM" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plating/airless,/area/shuttle/transport) -"bcN" = (/obj/structure/chair{dir = 1},/turf/open/floor/pod/dark,/area/shuttle/transport) -"bcO" = (/obj/machinery/light,/turf/open/floor/pod/light,/area/shuttle/transport) -"bcP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bcQ" = (/obj/machinery/door/airlock/engineering{name = "Vacant Office A"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) -"bcR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) -"bcS" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) -"bcT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/security/vacantoffice) -"bcU" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) -"bcV" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bcW" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"bcX" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bcY" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bcZ" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bda" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bdb" = (/obj/structure/table,/obj/item/weapon/razor,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bdc" = (/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bdd" = (/obj/structure/closet,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bde" = (/obj/machinery/portable_atmospherics/pump,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bdf" = (/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bdg" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bdh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bdi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bdj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) -"bdk" = (/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bdn" = (/turf/closed/wall,/area/quartermaster/storage) -"bdo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bdp" = (/obj/machinery/light/small{dir = 8},/obj/structure/rack,/obj/item/weapon/storage/briefcase,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdq" = (/turf/open/floor/carpet,/area/security/detectives_office) -"bdr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bds" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Detective's Office"; dir = 2},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdt" = (/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdu" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bdv" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bdw" = (/turf/closed/wall/r_wall,/area/bridge/meeting_room) -"bdx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/bridge/meeting_room) -"bdy" = (/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bdz" = (/turf/closed/wall,/area/bridge/meeting_room) -"bdA" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bdB" = (/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai_upload) -"bdC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bdD" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bdE" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/captain) -"bdF" = (/obj/machinery/door/airlock/command{name = "Captain's Office"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bdG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/heads/captain) -"bdH" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bdI" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdJ" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdK" = (/obj/machinery/newscaster{pixel_y = -28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdL" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdM" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdN" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdO" = (/obj/structure/noticeboard{pixel_y = -27},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdP" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdQ" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdR" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) -"bdS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bdT" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) -"bdU" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hydroponics) -"bdV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/hydroponics) -"bdW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hydroponics) -"bdX" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{name = "Hydroponics Desk"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) -"bdY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) -"bdZ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bea" = (/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"beb" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bec" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/library) -"bed" = (/obj/structure/chair/comfy/black{dir = 4},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/wood,/area/library) -"bee" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) -"bef" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/library) -"beg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/library) -"beh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/main) -"bei" = (/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main) -"bej" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) -"bek" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bel" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bem" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"ben" = (/obj/machinery/door/airlock/external,/turf/open/floor/pod/light,/area/shuttle/transport) -"beo" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bep" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"beq" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/wood,/area/security/vacantoffice) -"ber" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice) -"bes" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bet" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"beu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "Locker Restrooms APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/crew_quarters/toilet/locker) -"bev" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bew" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bex" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bey" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bez" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell{maxcharge = 2000},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"beA" = (/obj/effect/landmark/event_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"beB" = (/obj/item/weapon/storage/secure/safe{pixel_x = -23},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"beC" = (/obj/structure/chair/comfy/brown,/obj/effect/landmark/start/detective,/turf/open/floor/carpet,/area/security/detectives_office) -"beD" = (/obj/structure/table/wood,/obj/item/device/camera/detective,/turf/open/floor/carpet,/area/security/detectives_office) -"beE" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"beF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Detective's Office"; req_access_txt = "4"},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"beG" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/bridge/meeting_room) -"beH" = (/obj/machinery/button/door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/wood,/area/bridge/meeting_room) -"beI" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/bridge/meeting_room) -"beJ" = (/obj/machinery/camera{c_tag = "Conference Room"; dir = 2},/turf/open/floor/wood,/area/bridge/meeting_room) -"beK" = (/turf/open/floor/wood,/area/bridge/meeting_room) -"beL" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"beM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"beN" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/wood,/area/bridge/meeting_room) -"beO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"beP" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"beQ" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"beR" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"beS" = (/obj/structure/table,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"beT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"beU" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"beV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"beW" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"beX" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"beY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"beZ" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bfa" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfb" = (/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel,/area/crew_quarters/bar) -"bfd" = (/obj/structure/sign/barsign,/turf/closed/wall,/area/crew_quarters/bar) -"bfe" = (/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) -"bff" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) -"bfg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) -"bfh" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/library) -"bfi" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/chapel/main) -"bfj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) -"bfk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bfl" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"bfm" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"bfn" = (/obj/machinery/light/small,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"bfo" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"bfp" = (/obj/machinery/light,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"bfq" = (/obj/machinery/power/apc{dir = 8; name = "Vacant Office A APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/security/vacantoffice/a) -"bfr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bfs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) -"bft" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bfu" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bfv" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bfw" = (/obj/machinery/washing_machine,/obj/machinery/light,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) -"bfx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bfy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bfz" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bfA" = (/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/open/floor/plating,/area/security/detectives_office) -"bfB" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 3},/obj/item/weapon/lighter,/turf/open/floor/carpet,/area/security/detectives_office) -"bfC" = (/obj/structure/table/wood,/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/security/detectives_office) -"bfD" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/carpet,/area/security/detectives_office) -"bfE" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/security/detectives_office) -"bfF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "kanyewest"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/security/detectives_office) -"bfG" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge/meeting_room) -"bfH" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"bfI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bfJ" = (/obj/structure/chair/comfy/black,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bfK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bfL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/wood,/area/bridge/meeting_room) -"bfM" = (/obj/machinery/vending/snack/random,/turf/open/floor/wood,/area/bridge/meeting_room) -"bfN" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/quarantine,/obj/machinery/camera/motion{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bfO" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bfP" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/freeform,/obj/structure/sign/kiddieplaque{pixel_x = 32},/obj/machinery/camera/motion{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bfQ" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfT" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bfU" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bfV" = (/obj/structure/chair/comfy/brown{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bfW" = (/obj/structure/displaycase/captain,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bfX" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorm"; location = "HOP2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bfY" = (/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 28},/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 36},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bfZ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bga" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgb" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgd" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bge" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgg" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgh" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bgi" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/exit) -"bgj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bgn" = (/obj/machinery/door/airlock/titanium{name = "Emergency Shuttle Cargo"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"bgo" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) -"bgp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/secondary/entry) -"bgq" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bgr" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bgs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bgu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"bgv" = (/obj/effect/landmark/blobstart,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgw" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port) -"bgx" = (/obj/structure/rack{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"bgy" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bgz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) -"bgA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bgB" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bgC" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bgD" = (/obj/machinery/camera{c_tag = "Locker Room South"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) -"bgE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/closet/crate/freezer,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bgF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bgG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bgH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/storage) -"bgI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Detective's Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plating,/area/security/detectives_office) -"bgJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) -"bgK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgM" = (/obj/machinery/light/small,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgN" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/filingcabinet,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) -"bgO" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bgP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/bridge/meeting_room) -"bgQ" = (/obj/item/weapon/hand_labeler,/obj/item/device/assembly/timer,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgR" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgS" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgT" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgU" = (/obj/structure/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bgV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgW" = (/obj/machinery/vending/cola/random,/turf/open/floor/wood,/area/bridge/meeting_room) -"bgX" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bgY" = (/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/ai_upload) -"bgZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai_upload) -"bha" = (/obj/machinery/computer/arcade,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bhb" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bhc" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bhd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhe" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhg" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhm" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP2"; location = "Stbd"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bhn" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bho" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bhp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bhq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bhr" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bhs" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Cargo Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"bht" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/exit) -"bhu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Cargo Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) -"bhv" = (/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"bhw" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"bhx" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"bhy" = (/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bhz" = (/turf/closed/wall,/area/maintenance/disposal) -"bhA" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/disposal) -"bhB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/disposal) -"bhC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bhD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bhE" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bhF" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bhG" = (/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/port) -"bhH" = (/obj/effect/landmark/blobstart,/obj/item/clothing/suit/ianshirt,/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/port) -"bhI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker) -"bhJ" = (/obj/machinery/door/airlock/maintenance{name = "Locker Room Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bhK" = (/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhN" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bhO" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/security/detectives_office) -"bhP" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bhQ" = (/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) -"bhR" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bhS" = (/obj/item/weapon/folder/blue,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) -"bhT" = (/obj/structure/table,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/aiModule/core/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/corp,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/aiModule/core/full/custom,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bhU" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bhV" = (/obj/machinery/computer/upload/ai,/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -21},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai_upload) -"bhW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai_upload) -"bhX" = (/obj/machinery/computer/upload/borg,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai_upload) -"bhY" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bhZ" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/reset/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/antimov,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/aiModule/supplied/protectStation,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) -"bia" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bib" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bic" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bid" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bie" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bif" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"big" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8},/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bih" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) -"bii" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Stbd"; location = "HOP"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bij" = (/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; pixel_x = 32; pixel_y = -32},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bik" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bil" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/starboard) -"bim" = (/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) -"bin" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) -"bio" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/starboard) -"bip" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biq" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/open/floor/plasteel/white/corner{dir = 2},/area/hallway/primary/starboard) -"bir" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/hallway/primary/starboard) -"bis" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/primary/starboard) -"bit" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biu" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 3"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bix" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biy" = (/turf/open/floor/plasteel/loadingarea{dir = 1},/area/hallway/primary/starboard) -"biz" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biA" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 4"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"biB" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/secondary/exit) -"biC" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"biD" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"biE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/exit) -"biF" = (/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"biG" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"biH" = (/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"biI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"biJ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Port Docking Bay 4"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"biK" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Port Docking Bay 3"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"biL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/chair{dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"biM" = (/obj/structure/chair{dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"biN" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"biO" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"biP" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"biQ" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/obj/structure/sign/securearea{name = "\improper STAY CLEAR HEAVY MACHINERY"; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/disposal) -"biR" = (/obj/machinery/conveyor{dir = 6; id = "garbage"; verted = -1},/turf/open/floor/plating,/area/maintenance/disposal) -"biS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) -"biT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"biU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"biV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"biW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) -"biX" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"biY" = (/obj/machinery/camera{c_tag = "Locker Room Toilets"; dir = 8; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"biZ" = (/obj/machinery/power/apc{dir = 1; name = "Locker Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/crew_quarters/locker) -"bja" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bjb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bjc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bjd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) -"bje" = (/obj/structure/closet/crate/medical,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bjf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/stack/sheet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bjg" = (/obj/item/clothing/gloves/color/rainbow,/obj/item/clothing/head/soft/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/color/rainbow,/turf/open/floor/plating,/area/maintenance/port) -"bjh" = (/turf/closed/wall,/area/quartermaster/sorting) -"bji" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/sorting) -"bjj" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/open/floor/plating,/area/quartermaster/sorting) -"bjk" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/quartermaster/sorting) -"bjl" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/quartermaster/sorting) -"bjm" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bjn" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/machinery/light,/turf/open/floor/wood,/area/bridge/meeting_room) -"bjo" = (/turf/open/floor/carpet,/area/bridge/meeting_room) -"bjp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bjq" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bjr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) -"bjs" = (/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/turf/open/floor/wood,/area/bridge/meeting_room) -"bjt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bju" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjv" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjw" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjx" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) -"bjA" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjB" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjC" = (/obj/structure/table/wood,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjD" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjE" = (/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjG" = (/obj/structure/table/wood,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bjH" = (/turf/closed/wall,/area/medical/chemistry) -"bjI" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/medbay/central) -"bjJ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/medbay/central) -"bjK" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bjL" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bjM" = (/turf/closed/wall,/area/security/checkpoint/medical) -"bjN" = (/turf/closed/wall,/area/medical/morgue) -"bjO" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bjP" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bjQ" = (/obj/machinery/power/apc{dir = 2; name = "Starboard Primary Hallway APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"bjR" = (/turf/closed/wall,/area/storage/emergency/starboard) -"bjS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bjT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/science/robotics/mechbay) -"bjU" = (/turf/closed/wall,/area/science/robotics/mechbay) -"bjV" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bjW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bjX" = (/turf/closed/wall/r_wall,/area/science/robotics/lab) -"bjY" = (/turf/open/floor/plasteel/purple/side{dir = 10},/area/hallway/primary/starboard) -"bjZ" = (/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bka" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bkb" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bkc" = (/obj/machinery/light,/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) -"bkd" = (/turf/open/floor/plasteel/purple/side{dir = 6},/area/hallway/primary/starboard) -"bke" = (/turf/closed/wall/r_wall,/area/science/lab) -"bkf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/escape{dir = 10},/area/hallway/secondary/exit) -"bkg" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) -"bkh" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bki" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"bkj" = (/obj/structure/closet,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"bkk" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) -"bkl" = (/obj/machinery/camera{c_tag = "Arrivals Bay 3 & 4"; dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bkm" = (/obj/machinery/vending/cigarette,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/entry) -"bkn" = (/obj/machinery/conveyor{dir = 5; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bko" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bkp" = (/obj/machinery/conveyor{dir = 10; id = "garbage"; verted = -1},/turf/open/floor/plating,/area/maintenance/disposal) -"bkq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall,/area/maintenance/disposal) -"bkr" = (/obj/machinery/power/apc{dir = 8; name = "Disposal APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bks" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bkt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bku" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bkv" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bkw" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet/locker) -"bkx" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) -"bky" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port) -"bkz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bkA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bkB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bkC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bkD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/power/apc{dir = 2; name = "Cargo Bay APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/quartermaster/storage) -"bkE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/port) -"bkF" = (/obj/structure/closet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bkG" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bkH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) -"bkI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/sorting) -"bkJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/sorting) -"bkK" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/sorting) -"bkL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/sorting) -"bkM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/sorting) -"bkN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/table/reinforced,/obj/item/device/destTagger,/obj/item/device/destTagger,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/sorting) -"bkO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/reinforced,/obj/item/stack/wrapping_paper{pixel_x = 3; pixel_y = 4},/obj/item/stack/packageWrap{pixel_x = -1; pixel_y = -1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/sorting) -"bkP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/sorting) -"bkQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bkR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bkS" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bkT" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/bridge/meeting_room) -"bkU" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/wood,/area/bridge/meeting_room) -"bkV" = (/obj/machinery/computer/slot_machine,/turf/open/floor/wood,/area/bridge/meeting_room) -"bkW" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/wood,/area/bridge/meeting_room) -"bkX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"bkY" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4},/turf/open/floor/wood,/area/bridge/meeting_room) -"bkZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bla" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"blb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"blc" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = -30; pixel_y = 0},/obj/structure/filingcabinet,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bld" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/effect/landmark/start/captain,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"ble" = (/obj/machinery/computer/communications,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"blf" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/coin/plasma,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"blg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"blh" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bli" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) -"blj" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"blk" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/mob/living/simple_animal/bot/cleanbot{name = "C.L.E.A.N."},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bll" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"blm" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) -"bln" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) -"blo" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"blp" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"blq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"blr" = (/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bls" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/medical) -"blt" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; req_access_txt = "5"},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/medical) -"blu" = (/obj/machinery/camera{c_tag = "Security Post - Medbay"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) -"blv" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/medical) -"blw" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blx" = (/turf/open/floor/plasteel/black,/area/medical/morgue) -"bly" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blA" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blB" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"blC" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency/starboard) -"blD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) -"blE" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/science/robotics/mechbay) -"blF" = (/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24},/obj/effect/turf_decal/stripes/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"blG" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"blH" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"blI" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"blJ" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"blK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"blL" = (/obj/machinery/airalarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/whitered/side{dir = 8},/area/science/robotics/lab) -"blM" = (/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30; receive_ore_updates = 1},/obj/machinery/light{dir = 1},/obj/machinery/r_n_d/circuit_imprinter,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"blN" = (/obj/machinery/computer/rdconsole/robotics,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"blO" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/robotics/lab) -"blP" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/science/robotics/lab) -"blQ" = (/turf/closed/wall,/area/science/research) -"blR" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47"},/turf/open/floor/plasteel/white,/area/science/research) -"blS" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/lab) -"blT" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/turf/open/floor/plating,/area/science/lab) -"blU" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel/white,/area/science/lab) -"blV" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/science/lab) -"blW" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) -"blX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/starboard) -"blY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"blZ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Port Docking Bay 4"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bma" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Port Docking Bay 3"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) -"bmb" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) -"bmc" = (/obj/structure/disposalpipe/trunk{dir = 2},/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; layer = 3},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bmd" = (/obj/machinery/mineral/stacking_machine{input_dir = 1; stack_amt = 10},/turf/open/floor/plating,/area/maintenance/disposal) -"bme" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8},/turf/closed/wall,/area/maintenance/disposal) -"bmf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/port) -"bmg" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bmh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) -"bmi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet/locker) -"bmj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plating,/area/maintenance/port) -"bmk" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window{icon_state = "window"; dir = 1},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) -"bml" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) -"bmm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bmn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bmo" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/quartermaster/storage) -"bmp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/storage) -"bmq" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/closed/wall,/area/quartermaster/sorting) -"bmr" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/sorting) -"bms" = (/obj/machinery/door/window/eastleft{dir = 4; icon_state = "right"; name = "Mail"; req_access_txt = "50"},/turf/open/floor/plating,/area/quartermaster/sorting) -"bmt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bmu" = (/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bmv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bmw" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler{pixel_y = 8},/obj/item/weapon/hand_labeler{pixel_y = 8},/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bmx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/sorting) -"bmy" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) -"bmz" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/bridge/meeting_room) -"bmA" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/bridge/meeting_room) -"bmB" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) -"bmC" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) -"bmD" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) -"bmE" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = -28},/obj/machinery/suit_storage_unit/captain,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bmF" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bmG" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/item/weapon/melee/chainofcommand,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bmH" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0; receive_ore_updates = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bmI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bmJ" = (/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bmK" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start/chemist,/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) -"bmL" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"bmM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bmN" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start/depsec/medical,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) -"bmO" = (/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"bmP" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{pixel_x = 25},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"bmQ" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark/revenantspawn,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bmR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bmS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bmT" = (/turf/open/floor/plating,/area/storage/emergency/starboard) -"bmU" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency/starboard) -"bmV" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency/starboard) -"bmW" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/science/robotics/mechbay) -"bmX" = (/obj/machinery/mech_bay_recharge_port{icon_state = "recharge_port"; dir = 2},/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plating,/area/science/robotics/mechbay) -"bmY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/circuit,/area/science/robotics/mechbay) -"bmZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bna" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/circuit,/area/science/robotics/mechbay) -"bnb" = (/obj/machinery/mech_bay_recharge_port{icon_state = "recharge_port"; dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/science/robotics/mechbay) -"bnc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/robotics/lab) -"bnd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitered/corner{icon_state = "whiteredcorner"; dir = 1},/area/science/robotics/lab) -"bne" = (/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bnf" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bng" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/button/door{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = 6; pixel_y = 24; req_access_txt = "29"},/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/whitered/corner{dir = 4},/area/science/robotics/lab) -"bnh" = (/turf/open/floor/plasteel/whitered/side{dir = 1},/area/science/robotics/lab) -"bni" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/science/robotics/lab) -"bnj" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/science/robotics/lab) -"bnk" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/white,/area/science/research) -"bnl" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/science/research) -"bnm" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel/white,/area/science/research) -"bnn" = (/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/science/lab) -"bno" = (/obj/structure/chair/stool,/obj/effect/landmark/start/scientist,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/science/lab) -"bnp" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/button/door{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24; req_access_txt = "47"},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/science/lab) -"bnq" = (/turf/open/floor/plasteel/white,/area/science/lab) -"bnr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) -"bns" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) -"bnt" = (/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) -"bnu" = (/obj/machinery/door/airlock/titanium,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; port_angle = -90; preferred_direction = 4; roundstart_move = "whiteship_away"; timid = null; width = 35},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; turf_type = /turf/open/space; width = 35},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bnv" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bnw" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/disposal) -"bnx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) -"bny" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"bnz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"bnA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bnB" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) -"bnC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bnD" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) -"bnE" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) -"bnF" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bnG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bnH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bnI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) -"bnJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) -"bnK" = (/obj/structure/table,/obj/item/clothing/head/soft,/obj/item/clothing/head/soft,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnL" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnM" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnN" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnO" = (/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnP" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnR" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = 24; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bnS" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/office) -"bnT" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/quartermaster/office) -"bnU" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/quartermaster/office) -"bnV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bnW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bnX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bnY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/cargo_technician,/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bnZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{name = "Delivery Desk"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/bot,/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/quartermaster/sorting) -"boa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bob" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) -"boc" = (/turf/closed/wall/r_wall,/area/maintenance/central) -"bod" = (/turf/open/floor/plating,/area/maintenance/central) -"boe" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/central) -"bof" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Central Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/central) -"bog" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/plating,/area/maintenance/central) -"boh" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) -"boi" = (/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = 0},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"boj" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Captain's Desk Door"; req_access_txt = "20"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bok" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bol" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bom" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) -"bon" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"boo" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bop" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"boq" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) -"bor" = (/obj/machinery/smartfridge/chemistry/preloaded,/turf/open/floor/plating,/area/medical/chemistry) -"bos" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bot" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay/central) -"bou" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay/central) -"bov" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay/central) -"bow" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay/central) -"box" = (/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay/central) -"boy" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) -"boz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"boA" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"boB" = (/obj/machinery/camera{c_tag = "Medbay Morgue"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/medical/morgue) -"boC" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency/starboard) -"boD" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency/starboard) -"boE" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency/starboard) -"boF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency/starboard) -"boG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"boH" = (/turf/open/floor/mech_bay_recharge_floor,/area/science/robotics/mechbay) -"boI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/circuit,/area/science/robotics/mechbay) -"boJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/circuit,/area/science/robotics/mechbay) -"boK" = (/turf/open/floor/circuit,/area/science/robotics/mechbay) -"boL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"boM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"boN" = (/obj/machinery/light{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"boO" = (/obj/structure/closet/firecloset,/obj/machinery/light{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/science/research) -"boP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"boQ" = (/obj/machinery/shower{dir = 8},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"boR" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0; receive_ore_updates = 1},/turf/open/floor/plasteel/white,/area/science/lab) -"boS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/science/lab) -"boT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/science/lab) -"boU" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/science/lab) -"boV" = (/turf/closed/wall,/area/maintenance/starboard) -"boW" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"boX" = (/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"boY" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"boZ" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/structure/light_construct{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bpa" = (/obj/machinery/conveyor{dir = 1; id = "garbage"; layer = 2.5},/obj/machinery/door/poddoor/preopen{id = "Disposal Exit"; layer = 3; name = "disposal exit vent"},/turf/open/floor/plating,/area/maintenance/disposal) -"bpb" = (/obj/machinery/button/door{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/button/massdriver{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/disposal) -"bpc" = (/turf/open/floor/plating,/area/maintenance/disposal) -"bpd" = (/obj/effect/decal/cleanable/oil,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/disposal) -"bpe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port) -"bpf" = (/turf/closed/wall/r_wall,/area/maintenance/port) -"bpg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/port) -"bph" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/quartermaster/storage) -"bpi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bpk" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/storage) -"bpl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) -"bpm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bpn" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bpo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bpp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bpq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bpr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bps" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/power/apc{dir = 2; name = "Delivery Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bpt" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -26},/obj/item/weapon/paper_bin{pixel_x = -3},/obj/item/weapon/pen{pixel_x = -3},/obj/item/weapon/folder/yellow{pixel_x = 4},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bpu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bpv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bpw" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/central) -"bpx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/central) -"bpy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 2; name = "Head of Personnel APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/crew_quarters/heads/hop) -"bpz" = (/obj/effect/landmark/blobstart,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/central) -"bpA" = (/obj/machinery/power/apc{dir = 4; name = "Conference Room APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge/meeting_room) -"bpB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bpC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bpD" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) -"bpE" = (/obj/machinery/camera{c_tag = "Gravity Generator Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bpF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bpG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/heads/captain) -"bpH" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bpI" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/heads/captain) -"bpJ" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bpK" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bpL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bpM" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bpN" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"bpO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bpP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay/central) -"bpQ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bpR" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bpS" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bpT" = (/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/cell_charger,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bpU" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) -"bpV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/checkpoint/medical) -"bpW" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) -"bpX" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bpY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bpZ" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"bqa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bqb" = (/obj/machinery/conveyor_switch/oneway{id = "robo1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bqc" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/machinery/mecha_part_fabricator,/turf/open/floor/plasteel,/area/science/robotics/lab) -"bqd" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bqe" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bqf" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bqg" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bqh" = (/obj/structure/closet/firecloset,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel/white,/area/science/research) -"bqi" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel/white,/area/science/research) -"bqj" = (/obj/machinery/r_n_d/destructive_analyzer,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/lab) -"bqk" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/lab) -"bql" = (/obj/machinery/r_n_d/protolathe,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/lab) -"bqm" = (/obj/structure/disposalpipe/segment,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/science/lab) -"bqn" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/science/lab) -"bqo" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/white,/area/science/lab) -"bqp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard) -"bqq" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) -"bqr" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard) -"bqs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) -"bqt" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard) -"bqu" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion"},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bqv" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bqw" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/abandoned) -"bqx" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bqy" = (/obj/machinery/light/small{dir = 8},/obj/machinery/mass_driver{id = "trash"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) -"bqz" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/open/floor/plating,/area/maintenance/disposal) -"bqA" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/disposal) -"bqB" = (/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/disposal) -"bqC" = (/turf/closed/wall/mineral/titanium,/area/shuttle/supply) -"bqD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"bqE" = (/obj/structure/closet/emcloset,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqF" = (/obj/structure/closet/emcloset,/obj/machinery/airalarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqH" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqJ" = (/mob/living/simple_animal/sloth/paperwork,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqL" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bqM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) -"bqN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"bqO" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bqP" = (/obj/machinery/status_display{density = 0; pixel_y = 2; supply_display = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/quartermaster/sorting) -"bqQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/sorting) -"bqR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/quartermaster/sorting) -"bqS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/sorting) -"bqT" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bqU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bqV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/central) -"bqW" = (/turf/closed/wall,/area/crew_quarters/heads/hop) -"bqX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/heads/hop) -"bqY" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads/hop) -"bqZ" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/hop) -"bra" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"brb" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"brc" = (/turf/closed/wall,/area/crew_quarters/heads/captain) -"brd" = (/obj/machinery/light/small{dir = 1},/obj/structure/dresser,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bre" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"brf" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"brg" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/heads/captain) -"brh" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/heads/captain) -"bri" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/heads/captain) -"brj" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"brk" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"brl" = (/obj/structure/table/glass,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"brm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"brn" = (/obj/structure/disposalpipe/segment,/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bro" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/chemistry) -"brp" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) -"brq" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"brr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"brs" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/obj/effect/landmark/start/medical_doctor,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"brt" = (/obj/structure/chair/office/light{dir = 1},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bru" = (/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/medical) -"brv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) -"brw" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/medical) -"brx" = (/obj/structure/table,/obj/item/weapon/paper/morguereminder{pixel_x = 5; pixel_y = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"bry" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/medical/morgue) -"brz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"brA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"brB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) -"brC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/morgue) -"brD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/morgue) -"brE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"brF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/emergency/starboard) -"brG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{sortType = 9},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"brH" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"brI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"brJ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/crowbar/large,/obj/machinery/camera{c_tag = "Mech Bay"; dir = 1},/obj/machinery/light,/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"brK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"brL" = (/obj/machinery/recharge_station,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/robotics/mechbay) -"brM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/science/robotics/lab) -"brN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"brO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"brP" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/conveyor{dir = 4; id = "robo1"},/turf/open/floor/plasteel,/area/science/robotics/lab) -"brQ" = (/obj/machinery/conveyor{dir = 4; id = "robo1"},/turf/open/floor/plasteel,/area/science/robotics/lab) -"brR" = (/obj/effect/turf_decal/bot,/obj/effect/landmark/start/roboticist,/turf/open/floor/plasteel,/area/science/robotics/lab) -"brS" = (/turf/open/floor/plasteel,/area/science/robotics/lab) -"brT" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/science/robotics/lab) -"brU" = (/turf/closed/wall/r_wall,/area/science/research) -"brV" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 1; name = "Research Division Access"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"brW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/science/research) -"brX" = (/obj/machinery/computer/rdconsole/core,/turf/open/floor/plasteel,/area/science/lab) -"brY" = (/turf/open/floor/plasteel,/area/science/lab) -"brZ" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/open/floor/plasteel,/area/science/lab) -"bsa" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/science/lab) -"bsb" = (/obj/structure/table/glass,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white,/area/science/lab) -"bsc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/starboard) -"bsd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard) -"bse" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/starboard) -"bsf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard) -"bsg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/starboard) -"bsh" = (/turf/open/floor/plating,/area/shuttle/abandoned) -"bsi" = (/turf/open/floor/mineral/titanium,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/abandoned) -"bsj" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/medical,/obj/item/clothing/mask/breath,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bsk" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plating,/area/shuttle/abandoned) -"bsl" = (/obj/machinery/mass_driver{dir = 4; icon_state = "mass_driver"; id = "oldship_gun"},/turf/open/floor/plating,/area/shuttle/abandoned) -"bsm" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "pod bay door"},/turf/open/floor/plating,/area/shuttle/abandoned) -"bsn" = (/obj/machinery/door/poddoor{id = "trash"; name = "disposal bay door"},/turf/open/floor/plating,/area/maintenance/disposal) -"bso" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) -"bsp" = (/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) -"bsq" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bsr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bss" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bst" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bsu" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bsv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) -"bsw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"bsx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bsy" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bsz" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red,/obj/structure/table,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) -"bsA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/office) -"bsB" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel,/area/quartermaster/office) -"bsC" = (/turf/open/floor/plasteel,/area/quartermaster/office) -"bsD" = (/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel,/area/quartermaster/office) -"bsE" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/office) -"bsF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bsG" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/central) -"bsH" = (/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 6; pixel_y = 36},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "57"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "57"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 36},/obj/machinery/pdapainter,/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/heads/hop) -"bsI" = (/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bsJ" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bsK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bsL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bsM" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"bsN" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"bsO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_engineering{name = "Gravity Generator"; req_access_txt = "11"; req_one_access_txt = "0"},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) -"bsP" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) -"bsQ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bsR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bsS" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bsT" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/heads/captain) -"bsU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bsV" = (/obj/structure/table/glass,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bsW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bsX" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bsY" = (/turf/closed/wall,/area/medical/medbay/central) -"bsZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay/central) -"bta" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay/central) -"btb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/medbay/central) -"btc" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"btd" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bte" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/medical) -"btf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint/medical) -"btg" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) -"bth" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/medical/morgue) -"bti" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/morgue) -"btj" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/genetics) -"btk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) -"btl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"btm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/robotics/mechbay) -"btn" = (/turf/closed/wall,/area/science/robotics/lab) -"bto" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"btp" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/science/robotics/lab) -"btq" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/science/robotics/lab) -"btr" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bts" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/research) -"btt" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/research) -"btu" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/research) -"btv" = (/turf/closed/wall,/area/science/lab) -"btw" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/lab) -"btx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/lab) -"bty" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/lab) -"btz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel/white,/area/science/lab) -"btA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/science/lab) -"btB" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table/glass,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/power/apc{dir = 4; name = "Research Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/white,/area/science/lab) -"btC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/loadingarea,/area/science/lab) -"btD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/science/lab) -"btE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/starboard) -"btF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"btG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/starboard) -"btH" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"btI" = (/obj/machinery/conveyor_switch/oneway{id = "QMLoad2"},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"btJ" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/quartermaster/storage) -"btK" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) -"btL" = (/turf/open/floor/plasteel/brown/corner{dir = 1},/area/quartermaster/office) -"btM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"btN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"btO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"btP" = (/obj/effect/landmark/start/cargo_technician,/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"btQ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"btR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/quartermaster/office) -"btS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) -"btT" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"btU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"btV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/central) -"btW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/central) -"btX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/hallway/primary/central) -"btY" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access = null; req_access_txt = "57"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/flasher{id = "hopflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"btZ" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 8},/area/crew_quarters/heads/hop) -"bua" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bub" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"buc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bud" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bue" = (/obj/structure/chair/office/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"buf" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bug" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"buh" = (/obj/structure/closet/secure_closet/captains,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"bui" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"buj" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches,/obj/item/weapon/razor{pixel_x = -4; pixel_y = 2},/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask/gold,/turf/open/floor/carpet,/area/crew_quarters/heads/captain) -"buk" = (/obj/machinery/shower{dir = 1},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/obj/effect/landmark/revenantspawn,/obj/structure/curtain,/turf/open/floor/plasteel/freezer,/area/crew_quarters/heads/captain) -"bul" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bum" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bun" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/weapon/book/manual/wiki/chemistry{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"buo" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bup" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"buq" = (/obj/structure/bed/roller,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bur" = (/obj/machinery/status_display,/turf/closed/wall,/area/medical/medbay/central) -"bus" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"but" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buw" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bux" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buA" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"buB" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay/central) -"buC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/genetics) -"buD" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/obj/item/weapon/storage/pill_bottle/mutadone,/obj/item/weapon/storage/pill_bottle/mannitol,/turf/open/floor/plasteel/white,/area/medical/genetics) -"buE" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) -"buF" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/genetics) -"buG" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) -"buH" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/medical/genetics) -"buI" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"buJ" = (/turf/closed/wall/r_wall,/area/medical/genetics) -"buK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/science/robotics/lab) -"buL" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"buM" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"buN" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"buO" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"buP" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"buQ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/science/robotics/lab) -"buR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"buS" = (/obj/machinery/conveyor_switch/oneway{id = "robo2"},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"buT" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/mecha_part_fabricator,/turf/open/floor/plasteel,/area/science/robotics/lab) -"buU" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel,/area/science/robotics/lab) -"buV" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel,/area/science/robotics/lab) -"buW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/science/robotics/lab) -"buX" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/science/robotics/lab) -"buY" = (/turf/open/floor/plasteel/white/corner{dir = 2},/area/science/research) -"buZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/science/research) -"bva" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/science/research) -"bvb" = (/obj/item/weapon/folder/white,/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/turf/open/floor/plasteel/white,/area/science/lab) -"bvc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/white,/area/science/lab) -"bvd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/lab) -"bve" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/lab) -"bvf" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = -23},/turf/open/floor/plasteel/white,/area/science/lab) -"bvg" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/science/lab) -"bvh" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Research Division"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/lab) -"bvi" = (/turf/closed/wall/r_wall,/area/science/explab) -"bvj" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"bvk" = (/obj/structure/light_construct/small,/turf/open/floor/plating,/area/shuttle/abandoned) -"bvl" = (/obj/machinery/door/airlock/titanium,/turf/open/floor/plating,/area/shuttle/abandoned) -"bvm" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bvn" = (/obj/structure/rack,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bvo" = (/obj/structure/frame/computer{anchored = 1},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bvp" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bvq" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) -"bvr" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/quartermaster/storage) -"bvs" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) -"bvt" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/quartermaster/storage) -"bvu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/storage) -"bvv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bvw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bvx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bvy" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bvz" = (/obj/machinery/autolathe,/obj/machinery/light_switch{pixel_x = -27},/turf/open/floor/plasteel,/area/quartermaster/office) -"bvA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvC" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvD" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvE" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvF" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/quartermaster/office) -"bvG" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/central) -"bvH" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) -"bvI" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bvJ" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hop) -"bvK" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/blue/side{dir = 10},/area/crew_quarters/heads/hop) -"bvL" = (/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bvM" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bvN" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bvO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bvP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bvQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bvR" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/machinery/power/smes{charge = 5e+006},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bvS" = (/turf/closed/wall/r_wall,/area/teleporter) -"bvT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/teleporter) -"bvU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/teleporter) -"bvV" = (/obj/machinery/door/airlock/maintenance{name = "Teleporter Maintenance"; req_access_txt = "17"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/teleporter) -"bvW" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bvX" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bvY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bvZ" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/chemistry) -"bwa" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{dir = 1; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"bwb" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwd" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwe" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwi" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bwj" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwl" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start/geneticist,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bwm" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bwn" = (/obj/structure/window/reinforced{dir = 8},/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"bwo" = (/turf/open/floor/plasteel,/area/medical/genetics) -"bwp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"bwq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/robotics/lab) -"bwr" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bws" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bwt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/window/eastright{name = "Robotics Surgery"; req_access_txt = "29"},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bwu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/science/robotics/lab) -"bwv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bww" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bwx" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/machinery/conveyor{dir = 4; id = "robo2"},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bwy" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/conveyor{dir = 4; id = "robo2"},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bwz" = (/obj/effect/turf_decal/stripes/line,/obj/effect/turf_decal/bot,/obj/effect/landmark/start/roboticist,/turf/open/floor/plasteel,/area/science/robotics/lab) -"bwA" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/science/robotics/lab) -"bwB" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/button/door{dir = 2; id = "robotics2"; name = "Shutters Control Button"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/open/floor/plasteel,/area/science/robotics/lab) -"bwC" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/science/robotics/lab) -"bwD" = (/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bwE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bwF" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/science/lab) -"bwG" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/lab) -"bwH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/science/lab) -"bwI" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/turf/open/floor/plasteel/white/corner{dir = 2},/area/science/explab) -"bwJ" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Experimentor Lab"; dir = 2; network = list("SS13","RD")},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white/side{dir = 2},/area/science/explab) -"bwK" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/device/radio/off,/turf/open/floor/plasteel/white/side{dir = 2},/area/science/explab) -"bwL" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white/side{dir = 2},/area/science/explab) -"bwM" = (/obj/structure/closet/emcloset{pixel_x = -2},/turf/open/floor/plasteel/white/corner{dir = 8},/area/science/explab) -"bwN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) -"bwO" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bwP" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bwQ" = (/obj/machinery/door/airlock/titanium{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) -"bwR" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) -"bwS" = (/turf/open/floor/plating,/area/quartermaster/storage) -"bwT" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) -"bwU" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bwV" = (/obj/effect/landmark/event_spawn,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bwW" = (/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bwX" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #1"},/obj/effect/turf_decal/bot,/mob/living/simple_animal/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bwY" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/device/multitool,/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/office) -"bwZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) -"bxa" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/office) -"bxb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bxc" = (/obj/effect/landmark/event_spawn,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bxd" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hop) -"bxe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/vending/cart,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bxf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bxg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads/hop) -"bxh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bxi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bxj" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bxk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bxl" = (/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bxm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bxn" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bxo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"bxp" = (/turf/closed/wall,/area/teleporter) -"bxq" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/teleporter) -"bxr" = (/obj/structure/table,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) -"bxs" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/closet/crate,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) -"bxt" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) -"bxu" = (/obj/machinery/camera{c_tag = "Teleporter"},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) -"bxv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/teleporter) -"bxw" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/teleporter) -"bxx" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bxy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bxz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay/central) -"bxA" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 4},/area/medical/medbay/central) -"bxB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay/central) -"bxC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay/central) -"bxD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay/central) -"bxE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 1},/area/medical/medbay/central) -"bxF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bxM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay/central) -"bxN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay/central) -"bxO" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay/central) -"bxP" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bxQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bxR" = (/turf/open/floor/plasteel/white,/area/medical/genetics) -"bxS" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/open/floor/plasteel,/area/medical/genetics) -"bxT" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bxU" = (/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bxV" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bxW" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bxX" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/science/robotics/lab) -"bxY" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/science/robotics/lab) -"bxZ" = (/obj/machinery/camera{c_tag = "Robotics Lab - South"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bya" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"byb" = (/obj/structure/closet/wardrobe/robotics_black,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"byc" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"byd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/science/research) -"bye" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"byf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"byg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Research Division North"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"byh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/science/research) -"byi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"byj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"byk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/science/research) -"byl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bym" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/science/explab) -"byn" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"byo" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/science/explab) -"byp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"byq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"byr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bys" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/science/explab) -"byt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"byu" = (/obj/structure/light_construct,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"byv" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) -"byw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) -"byx" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/obj/machinery/light{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) -"byy" = (/obj/machinery/camera{c_tag = "Cargo Recieving Dock"; dir = 4},/obj/machinery/button/door{id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = -8},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) -"byz" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #2"},/obj/effect/turf_decal/bot,/mob/living/simple_animal/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/open/floor/plasteel,/area/quartermaster/storage) -"byA" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel,/area/quartermaster/office) -"byB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"byC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"byD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"byE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) -"byF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) -"byG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) -"byH" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/office) -"byI" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"byJ" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/heads/hop) -"byK" = (/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"byL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"byM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"byN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"byO" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) -"byP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "11"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/gravity_generator) -"byQ" = (/obj/machinery/power/apc{dir = 8; name = "Teleporter APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/teleporter) -"byR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) -"byS" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"byT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel,/area/teleporter) -"byU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"byV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/teleporter) -"byW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) -"byX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"byY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"byZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay/central) -"bza" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzb" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bze" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzk" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzl" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bzm" = (/turf/closed/wall,/area/medical/genetics) -"bzn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 68"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzp" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bzq" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) -"bzr" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/science/robotics/lab) -"bzs" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel/white,/area/science/robotics/lab) -"bzt" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bzu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/science/research) -"bzv" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bzw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bzx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bzy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bzz" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bzA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bzB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/science/explab) -"bzG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzH" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/science/explab) -"bzI" = (/obj/machinery/power/apc{dir = 4; name = "Experimentation Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/explab) -"bzJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/explab) -"bzK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"bzL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard) -"bzM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard) -"bzN" = (/obj/structure/light_construct{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bzO" = (/obj/machinery/door/airlock/titanium{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_home"; name = "Cargo Bay"; width = 12},/turf/open/floor/plating,/area/shuttle/supply) -"bzP" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bzQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bzR" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #3"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bzS" = (/obj/structure/table,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) -"bzT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bzU" = (/obj/machinery/mineral/ore_redemption{input_dir = 8; output_dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/office) -"bzV" = (/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/office) -"bzW" = (/obj/structure/chair{dir = 8},/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/office) -"bzX" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bzY" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/computer/cargo,/turf/open/floor/plasteel/blue/side{dir = 8},/area/crew_quarters/heads/hop) -"bzZ" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/head_of_personnel,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bAa" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bAb" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bAc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/engine/gravity_generator) -"bAd" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bAe" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bAf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall,/area/engine/gravity_generator) -"bAg" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/teleporter) -"bAh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/teleporter) -"bAi" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/teleporter) -"bAj" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/teleporter) -"bAk" = (/obj/machinery/shieldwallgen,/obj/structure/window/reinforced{dir = 8},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/teleporter) -"bAl" = (/obj/machinery/shieldwallgen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/teleporter) -"bAm" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/teleporter) -"bAn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) -"bAo" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bAp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bAq" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bAr" = (/turf/closed/wall,/area/medical/sleeper) -"bAs" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bAt" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bAu" = (/obj/machinery/button/door{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24},/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAv" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAw" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAy" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bAz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/medical/genetics) -"bAA" = (/obj/structure/window/reinforced,/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) -"bAB" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bAD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/research) -"bAE" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/research) -"bAF" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/science/research) -"bAG" = (/obj/machinery/camera{c_tag = "Research Division West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bAH" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bAI" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bAJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/science/research) -"bAK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/science/research) -"bAL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/science/research) -"bAM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bAN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/science/research) -"bAO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bAP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/hor) -"bAQ" = (/turf/closed/wall,/area/crew_quarters/heads/hor) -"bAR" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/explab) -"bAS" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30; receive_ore_updates = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/science/explab) -"bAT" = (/turf/open/floor/plasteel/white,/area/science/explab) -"bAU" = (/obj/structure/chair/office/light,/obj/effect/landmark/start/scientist,/turf/open/floor/plasteel/white,/area/science/explab) -"bAV" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/science/explab) -"bAW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard) -"bAX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "8;12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard) -"bAY" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) -"bAZ" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) -"bBa" = (/turf/open/floor/plating,/area/maintenance/starboard) -"bBb" = (/obj/machinery/door/window,/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) -"bBc" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) -"bBd" = (/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bBe" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bBf" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) -"bBg" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/quartermaster/storage) -"bBh" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) -"bBi" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/quartermaster/storage) -"bBj" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/obj/machinery/status_display{density = 0; pixel_y = -30; supply_display = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/quartermaster/storage) -"bBk" = (/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) -"bBl" = (/obj/machinery/camera{c_tag = "Cargo Bay South"; dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) -"bBm" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #4"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/quartermaster/storage) -"bBn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel,/area/quartermaster/office) -"bBo" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/office) -"bBp" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 2},/area/quartermaster/office) -"bBq" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) -"bBr" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) -"bBs" = (/turf/closed/wall,/area/security/checkpoint/supply) -"bBt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/supply) -"bBu" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bBv" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/hallway/primary/central) -"bBw" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/secure_closet/hop,/turf/open/floor/plasteel/blue/side{dir = 10},/area/crew_quarters/heads/hop) -"bBx" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bBy" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap{pixel_x = -1; pixel_y = -1},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bBz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bBA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bBB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/gravity_generator) -"bBC" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bBD" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/gravity_generator) -"bBE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/engine/gravity_generator) -"bBF" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/teleporter) -"bBG" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/teleporter) -"bBH" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/teleporter) -"bBI" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/teleporter) -"bBJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bBK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/medical/medbay/central) -"bBL" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/medical/medbay/central) -"bBM" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bBN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bBO" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bBP" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bBQ" = (/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bBR" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) -"bBS" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel,/area/medical/sleeper) -"bBT" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/medical/sleeper) -"bBU" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bBV" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel,/area/medical/sleeper) -"bBW" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plasteel,/area/medical/sleeper) -"bBX" = (/obj/structure/table/glass,/obj/machinery/camera{c_tag = "Medbay Cryogenics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/medical/sleeper) -"bBY" = (/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bBZ" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) -"bCc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) -"bCg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "9"},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCh" = (/obj/structure/disposalpipe/sortjunction{sortType = 23},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCi" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bCj" = (/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bCk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/research) -"bCl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/science/research) -"bCm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bCn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bCo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bCp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/science/research) -"bCq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bCr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bCs" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bCt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bCu" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bCv" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); pixel_x = 0; pixel_y = 2},/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bCw" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30; receive_ore_updates = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bCx" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bCy" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/effect/landmark/event_spawn,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bCz" = (/obj/effect/landmark/xmastree/rdrod,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bCA" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/explab) -"bCB" = (/turf/closed/wall,/area/science/explab) -"bCC" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/science/explab) -"bCD" = (/obj/machinery/computer/rdconsole/experiment,/turf/open/floor/plasteel/white/side{dir = 1},/area/science/explab) -"bCE" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/white/corner{dir = 1},/area/science/explab) -"bCF" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0; req_access_txt = "47"},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/explab) -"bCG" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard) -"bCH" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"bCI" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"bCJ" = (/obj/structure/lattice,/obj/effect/landmark/carpspawn,/turf/open/space,/area/space) -"bCK" = (/obj/machinery/door/airlock/glass,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCL" = (/obj/structure/light_construct{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCM" = (/obj/structure/light_construct/small{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCN" = (/obj/structure/light_construct{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCO" = (/obj/structure/chair{dir = 4},/obj/effect/decal/remains/human,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCP" = (/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bCQ" = (/turf/closed/wall,/area/quartermaster/qm) -"bCR" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bCS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/qm) -"bCT" = (/turf/closed/wall,/area/quartermaster/miningdock) -"bCU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/miningdock) -"bCV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bCW" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/supply) -"bCX" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) -"bCY" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) -"bCZ" = (/obj/machinery/computer/secure_data,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/supply) -"bDa" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bDb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/engine/gravity_generator) -"bDc" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/engine/gravity_generator) -"bDd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/engine/gravity_generator) -"bDe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/engine/gravity_generator) -"bDf" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bDg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/medical/sleeper) -"bDh" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bDi" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bDj" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bDk" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/medical/sleeper) -"bDl" = (/turf/open/floor/plasteel,/area/medical/sleeper) -"bDm" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDo" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/medical/sleeper) -"bDp" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/medical/sleeper) -"bDq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDs" = (/obj/structure/chair,/obj/effect/landmark/start/geneticist,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDu" = (/obj/machinery/door/airlock/glass_research{name = "Genetics Research"; req_access_txt = "5; 9; 68"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDx" = (/obj/machinery/camera{c_tag = "Genetics Research"; dir = 1; network = list("SS13","RD"); pixel_x = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) -"bDy" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) -"bDz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDA" = (/obj/machinery/camera{c_tag = "Genetics Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bDB" = (/turf/closed/wall/r_wall,/area/science/server) -"bDC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/science/server) -"bDD" = (/turf/closed/wall,/area/security/checkpoint/science) -"bDE" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/science) -"bDF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/checkpoint/science) -"bDG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/science) -"bDH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bDI" = (/obj/structure/table,/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/button/door{id = "rnd2"; name = "Research Lab Shutter Control"; pixel_x = 5; pixel_y = 5; req_access_txt = "47"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bDJ" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start/research_director,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bDK" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bDL" = (/obj/structure/rack,/obj/item/device/aicard,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bDM" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bDN" = (/obj/structure/displaycase/labcage,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bDO" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/hor) -"bDP" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/science/explab) -"bDQ" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/science/explab) -"bDR" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard) -"bDS" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard) -"bDT" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bDU" = (/obj/structure/light_construct/small{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bDV" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bDW" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/supply) -"bDX" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/weapon/coin/silver,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/qm) -"bDY" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bDZ" = (/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bEa" = (/obj/machinery/holopad,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bEb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) -"bEc" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/qm) -"bEd" = (/obj/machinery/power/apc{dir = 1; name = "Mining Dock APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEg" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bEh" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) -"bEi" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/depsec/supply,/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bEj" = (/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bEk" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) -"bEl" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEm" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bEn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bEo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) -"bEp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEs" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEu" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bEv" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEw" = (/obj/structure/chair,/obj/machinery/camera{c_tag = "Surgery Observation"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEy" = (/obj/structure/chair,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEz" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bEA" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bEB" = (/obj/effect/landmark/start/medical_doctor,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bEC" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plasteel,/area/medical/sleeper) -"bED" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bEE" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/medical/sleeper) -"bEF" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bEG" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/genetics) -"bEH" = (/obj/machinery/computer/cloning,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/genetics) -"bEI" = (/obj/machinery/clonepod,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) -"bEJ" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/medical/genetics) -"bEK" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_y = -28},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bEL" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bEM" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/genetics) -"bEN" = (/obj/structure/closet/wardrobe/genetics_white,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/medical/genetics) -"bEO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/aft) -"bEP" = (/obj/machinery/r_n_d/server/robotics,/turf/open/floor/circuit{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bEQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/circuit{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bER" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/server) -"bES" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/science/server) -"bET" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/science/server) -"bEU" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/black,/area/science/server) -"bEV" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 25},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/science) -"bEW" = (/obj/machinery/light_switch{pixel_x = 8; pixel_y = 28},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 28; req_access_txt = "47"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) -"bEX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) -"bEY" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of your own office."; name = "Research Monitor"; network = list("RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) -"bEZ" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/science) -"bFa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bFb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/heads/hor) -"bFc" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bFd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bFe" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bFf" = (/obj/structure/rack,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bFg" = (/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bFh" = (/obj/machinery/modular_computer/console/preset/research,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) -"bFi" = (/turf/open/floor/engine,/area/science/explab) -"bFj" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard) -"bFk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) -"bFl" = (/obj/machinery/power/apc{dir = 4; name = "Starboard Maintenace APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/starboard) -"bFm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) -"bFn" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) -"bFo" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/supply) -"bFp" = (/obj/machinery/computer/cargo,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) -"bFq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bFr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bFs" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/quartermaster,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bFt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bFu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/qm) -"bFv" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/qm) -"bFw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start/shaft_miner,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 3},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bFA" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bFB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) -"bFC" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/supply) -"bFD" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/machinery/light{dir = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) -"bFE" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIW"; location = "QM"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFF" = (/obj/machinery/door/firedoor,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFG" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AftH"; location = "AIW"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFH" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHE"; location = "AIE"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFJ" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bFK" = (/obj/structure/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bFL" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bFM" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bFN" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/medical/sleeper) -"bFO" = (/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bFP" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/machinery/camera{c_tag = "Medbay Treatment Center"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/medical/sleeper) -"bFQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/medical/sleeper) -"bFR" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench/medical,/turf/open/floor/plasteel,/area/medical/sleeper) -"bFS" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/turf/open/floor/plasteel,/area/medical/sleeper) -"bFT" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/medical/sleeper) -"bFU" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) -"bFV" = (/turf/open/floor/plating,/area/maintenance/aft) -"bFW" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bFX" = (/obj/machinery/airalarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bFY" = (/obj/effect/landmark/blobstart,/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bFZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Server Room"; req_access_txt = "30"},/turf/open/floor/plasteel/black,/area/science/server) -"bGa" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/open/floor/plasteel/black,/area/science/server) -"bGb" = (/obj/structure/chair/office/light,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/open/floor/plasteel/black,/area/science/server) -"bGc" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/science/server) -"bGd" = (/obj/machinery/camera{c_tag = "Security Post - Science"; dir = 4; network = list("SS13","RD")},/obj/machinery/newscaster{pixel_x = -30},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science) -"bGe" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bGf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bGg" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/depsec/science,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/science) -"bGh" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science) -"bGi" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/science/research) -"bGj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bGk" = (/obj/machinery/door/airlock/glass_command{name = "Research Director"; req_access_txt = "30"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGp" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bGq" = (/obj/machinery/r_n_d/experimentor,/turf/open/floor/engine,/area/science/explab) -"bGr" = (/obj/effect/landmark/blobstart,/obj/effect/landmark/xeno_spawn,/turf/open/floor/engine,/area/science/explab) -"bGs" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard) -"bGt" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard) -"bGu" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bGv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/supply) -"bGw" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/supply) -"bGx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) -"bGy" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/status_display{density = 0; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/qm) -"bGz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bGA" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bGB" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bGC" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/qm{pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) -"bGD" = (/obj/structure/filingcabinet,/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/qm) -"bGE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/qm) -"bGF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bGG" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bGH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bGI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) -"bGJ" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/supply) -"bGK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) -"bGL" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) -"bGM" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "Security Post - Cargo"; dir = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/supply) -"bGN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) -"bGO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGP" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGQ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Central Primary Hallway South-West"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGS" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGT" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGU" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/engineering{pixel_x = -32; pixel_y = -40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = -32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) -"bGZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Central Primary Hallway South"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHa" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 22},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHb" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHc" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHd" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHe" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) -"bHh" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bHi" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/sleeper) -"bHj" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/sleeper) -"bHk" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bHl" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bHm" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bHn" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bHo" = (/turf/closed/wall,/area/crew_quarters/heads/cmo) -"bHp" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bHq" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bHr" = (/obj/machinery/computer/med_data,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bHs" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bHt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bHu" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"bHv" = (/obj/machinery/r_n_d/server/core,/turf/open/floor/circuit{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bHw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/circuit{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/server) -"bHx" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/server) -"bHy" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/science/server) -"bHz" = (/obj/machinery/computer/rdservercontrol,/turf/open/floor/plasteel/black,/area/science/server) -"bHA" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/science/server) -"bHB" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/science) -"bHC" = (/obj/machinery/power/apc{dir = 2; name = "Science Security APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bHD" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bHE" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) -"bHF" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/science) -"bHG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/research) -"bHH" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bHI" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/item/weapon/twohanded/required/kirbyplants/dead,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHJ" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/machinery/computer/card/minor/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHK" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","RD")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHL" = (/obj/structure/closet/secure_closet/RD,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHM" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHN" = (/obj/machinery/suit_storage_unit/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/heads/hor) -"bHO" = (/obj/machinery/camera{c_tag = "Experimentor Lab Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/open/floor/engine,/area/science/explab) -"bHP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard) -"bHQ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "8;12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) -"bHR" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/starboard) -"bHS" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bHU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"bHV" = (/turf/closed/wall,/area/maintenance/port/aft) -"bHW" = (/turf/closed/wall,/area/storage/tech) -"bHX" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/central) -"bHY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/central) -"bHZ" = (/turf/closed/wall,/area/janitor) -"bIa" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/obj/structure/disposalpipe/segment,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/janitor) -"bIb" = (/turf/closed/wall,/area/maintenance/aft) -"bIc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"bId" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/primary/central) -"bIe" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel,/area/medical/sleeper) -"bIf" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) -"bIg" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIh" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) -"bIi" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plasteel,/area/medical/sleeper) -"bIj" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/sleeper) -"bIl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/sleeper) -"bIm" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIn" = (/obj/structure/closet/wardrobe/white/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIo" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIp" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIq" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIr" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bIs" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay/central) -"bIt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/cmo) -"bIu" = (/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bIv" = (/obj/structure/chair/office/light,/obj/effect/landmark/start/chief_medical_officer,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bIw" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bIx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bIy" = (/turf/closed/wall/r_wall,/area/science/xenobiology) -"bIz" = (/turf/closed/wall,/area/science/storage) -"bIA" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bIB" = (/obj/machinery/door/firedoor/heavy,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/research) -"bIC" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bID" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) -"bIE" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) -"bIF" = (/obj/structure/light_construct/small{dir = 1},/turf/open/floor/plating,/area/shuttle/abandoned) -"bIG" = (/obj/item/device/multitool,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bIH" = (/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bII" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/open/space,/area/space) -"bIJ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bIK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start/shaft_miner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bIL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bIM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bIN" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/miningdock) -"bIO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bIP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Cargo Security APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) -"bIQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bIR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bIS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port/aft) -"bIT" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/storage/tech) -"bIU" = (/obj/structure/table,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) -"bIV" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/storage/tech) -"bIW" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/storage/tech) -"bIX" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/storage/tech) -"bIY" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) -"bIZ" = (/obj/structure/table,/obj/item/device/plant_analyzer,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) -"bJa" = (/turf/open/floor/plating,/area/storage/tech) -"bJb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bJc" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bJd" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bJe" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel,/area/janitor) -"bJf" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel,/area/janitor) -"bJg" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/vehicle/janicart,/turf/open/floor/plasteel,/area/janitor) -"bJh" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/janitor) -"bJi" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/janitor) -"bJj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/janitor) -"bJk" = (/obj/machinery/portable_atmospherics/canister/water_vapor,/turf/open/floor/plasteel,/area/janitor) -"bJl" = (/obj/machinery/door/window/westleft{name = "Janitoral Delivery"; req_access_txt = "26"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/janitor) -"bJm" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 1; freq = 1400; location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/janitor) -"bJn" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) -"bJo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft) -"bJp" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/sleeper) -"bJq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJr" = (/obj/effect/landmark/start/medical_doctor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJt" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) -"bJu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) -"bJv" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/sleeper) -"bJw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/sleeper) -"bJy" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJA" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJB" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bJC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay/central) -"bJD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bJE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bJF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bJG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bJH" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bJI" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/cmo,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bJJ" = (/obj/structure/table/glass,/obj/item/weapon/pen,/obj/item/clothing/neck/stethoscope,/mob/living/simple_animal/pet/cat/Runtime,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bJK" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bJL" = (/turf/open/floor/engine,/area/science/xenobiology) -"bJM" = (/obj/machinery/camera{c_tag = "Xenobiology Test Chamber"; dir = 2; network = list("Xeno","RD"); pixel_x = 0},/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/science/xenobiology) -"bJN" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/science/storage) -"bJO" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/science/storage) -"bJP" = (/obj/machinery/power/apc{dir = 8; name = "Misc Research APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bJQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/research) -"bJR" = (/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bJS" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/white,/area/science/research) -"bJT" = (/turf/closed/wall,/area/science/mixing) -"bJU" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bJV" = (/obj/structure/closet/bombcloset,/obj/machinery/light{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bJW" = (/obj/machinery/portable_atmospherics/canister,/obj/structure/window/reinforced{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera{c_tag = "Toxins Lab West"; dir = 2; network = list("SS13","RD"); pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bJX" = (/obj/machinery/portable_atmospherics/canister,/obj/item/device/radio/intercom{pixel_y = 25},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bJY" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/item/weapon/storage/firstaid/toxin,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bJZ" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bKa" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/white,/area/science/mixing) -"bKb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/mixing) -"bKc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel/white,/area/science/mixing) -"bKd" = (/turf/closed/wall/r_wall,/area/science/mixing) -"bKe" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) -"bKf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) -"bKg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) -"bKh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) -"bKi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/science/mixing) -"bKj" = (/obj/structure/frame/computer{anchored = 1},/obj/structure/light_construct,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bKk" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/camera{c_tag = "Mining Dock"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKn" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/wardrobe/miner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bKo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/miningdock) -"bKp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bKq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bKr" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 15},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bKs" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bKt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/port/aft) -"bKu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bKv" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bKw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bKx" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bKy" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/open/floor/plating,/area/storage/tech) -"bKz" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) -"bKA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/tech) -"bKB" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bKC" = (/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bKD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bKE" = (/turf/open/floor/plasteel,/area/janitor) -"bKF" = (/obj/structure/chair/stool,/obj/effect/landmark/start/janitor,/turf/open/floor/plasteel,/area/janitor) -"bKG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/janitor) -"bKH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/janitor) -"bKI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/janitor) -"bKJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/lizard{name = "Wags-His-Tail"; real_name = "Wags-His-Tail"},/turf/open/floor/plasteel,/area/janitor) -"bKK" = (/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/janitor) -"bKL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/janitor) -"bKM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) -"bKN" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/turf/open/floor/plating,/area/maintenance/aft) -"bKO" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"bKP" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"bKQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bKR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/sleeper) -"bKS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKU" = (/obj/structure/table/optable,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bKX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/medical/sleeper) -"bKY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/sleeper) -"bKZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLa" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/iv_drip,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/sleeper) -"bLb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) -"bLc" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/neck/stethoscope,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLd" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bLf" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay South"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bLg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bLh" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bLi" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bLj" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bLk" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bLl" = (/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bLm" = (/obj/effect/decal/cleanable/oil,/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bLn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bLo" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bLp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/science/storage) -"bLq" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bLr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/science/research) -"bLs" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/white,/area/science/research) -"bLt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/mixing) -"bLu" = (/turf/open/floor/plasteel/white,/area/science/mixing) -"bLv" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/white,/area/science/mixing) -"bLw" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel/white,/area/science/mixing) -"bLx" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/white,/area/science/mixing) -"bLy" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "8;12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard) -"bLz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/starboard) -"bLA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/science/mixing) -"bLB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/science/mixing) -"bLC" = (/obj/machinery/doppler_array{dir = 4},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/mixing) -"bLD" = (/turf/closed/wall,/area/science/test_area) -"bLE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/science/test_area) -"bLF" = (/obj/item/weapon/scalpel,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bLG" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"bLH" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"bLI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/miningdock) -"bLJ" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/miningdock) -"bLK" = (/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bLL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bLM" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bLN" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port/aft) -"bLO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bLP" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port/aft) -"bLQ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bLR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/aiupload{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel,/area/storage/tech) -"bLS" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) -"bLT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/storage/tech) -"bLU" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) -"bLV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/computer/rdconsole,/obj/item/weapon/circuitboard/machine/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/destructive_analyzer,/obj/item/weapon/circuitboard/machine/protolathe,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/circuitboard/computer/aifixer,/obj/item/weapon/circuitboard/computer/teleporter,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/obj/item/weapon/circuitboard/machine/mechfab,/turf/open/floor/plating,/area/storage/tech) -"bLW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/mining,/obj/item/weapon/circuitboard/machine/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/computer/arcade/battle,/turf/open/floor/plating,/area/storage/tech) -"bLX" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/processor,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/server,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/computer/message_monitor{pixel_y = -5},/turf/open/floor/plating,/area/storage/tech) -"bLY" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bLZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/key/janitor,/turf/open/floor/plasteel,/area/janitor) -"bMa" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel,/area/janitor) -"bMb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/open/floor/plasteel,/area/janitor) -"bMc" = (/obj/structure/janitorialcart,/turf/open/floor/plasteel,/area/janitor) -"bMd" = (/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/janitor) -"bMe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/janitor) -"bMf" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/janitor) -"bMg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) -"bMh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft) -"bMi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"bMj" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"bMk" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "Treatment Center APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/sleeper) -"bMl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/sleeper) -"bMm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMn" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMo" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/sleeper) -"bMp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMq" = (/obj/machinery/vending/wallmed{pixel_x = 28; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMr" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMs" = (/obj/structure/closet/crate/freezer/surplus_limbs,/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bMt" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMu" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMv" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMw" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv4"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay/central) -"bMx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bMA" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bMB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bMC" = (/obj/machinery/holopad,/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bMD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bME" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/crew_quarters/heads/cmo) -"bMF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bMG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bMH" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine,/area/science/xenobiology) -"bMI" = (/obj/machinery/power/apc{dir = 8; name = "Toxins Storage APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 4; network = list("SS13","RD")},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bMJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bMK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark/xeno_spawn,/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bML" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bMM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bMN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bMO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bMP" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/science/research) -"bMQ" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "7"},/turf/open/floor/plasteel/white,/area/science/mixing) -"bMR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/science/mixing) -"bMS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bMT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/mixing) -"bMU" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/science/mixing) -"bMV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/science/mixing) -"bMW" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/science/mixing) -"bMX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/science/mixing) -"bMY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/science/mixing) -"bMZ" = (/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_y = 24},/obj/effect/landmark/event_spawn,/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/science/mixing) -"bNa" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/mixing) -"bNb" = (/obj/item/target,/obj/structure/window/reinforced,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/science/test_area) -"bNc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bNd" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"bNe" = (/obj/item/weapon/ore/iron,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNf" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNg" = (/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/miningdock) -"bNh" = (/obj/effect/landmark/start/shaft_miner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNi" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bNj" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/port/aft) -"bNk" = (/obj/effect/landmark/blobstart,/turf/open/floor/plating,/area/maintenance/port/aft) -"bNl" = (/turf/open/floor/plating,/area/maintenance/port/aft) -"bNm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/computer/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/storage/tech) -"bNn" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/tech) -"bNo" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) -"bNp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) -"bNq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark/xeno_spawn,/turf/open/floor/plating,/area/storage/tech) -"bNr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/storage/tech) -"bNs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark/blobstart,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bNt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bNu" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bNv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bNw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bNx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bNy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/janitor) -"bNz" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/janitor) -"bNA" = (/obj/machinery/power/apc{dir = 8; name = "Aft Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/aft) -"bNB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) -"bNC" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/turf/open/floor/plating,/area/maintenance/aft) -"bND" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 35},/turf/open/floor/plating,/area/maintenance/aft) -"bNE" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"bNF" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bNG" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bNH" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel,/area/medical/sleeper) -"bNI" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) -"bNJ" = (/obj/machinery/vending/wallmed{pixel_y = -28},/obj/machinery/camera{c_tag = "Surgery Operating"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNK" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) -"bNL" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel,/area/medical/sleeper) -"bNM" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNN" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNO" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNP" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNQ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNR" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNS" = (/obj/structure/table,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNT" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNU" = (/obj/machinery/light,/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 8; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe{pixel_x = 6; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) -"bNV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bNW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bNX" = (/obj/machinery/door/airlock/medical{name = "Patient Room"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bNY" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bNZ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bOa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/heads/cmo) -"bOb" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bOc" = (/obj/machinery/computer/card/minor/cmo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bOd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bOe" = (/obj/structure/closet/secure_closet/CMO,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/crew_quarters/heads/cmo) -"bOf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/science/xenobiology) -"bOg" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/floor/engine,/area/science/xenobiology) -"bOh" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/storage) -"bOi" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/storage) -"bOj" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/science/storage) -"bOk" = (/obj/machinery/portable_atmospherics/scrubber/huge,/turf/open/floor/plasteel/floorgrime,/area/science/storage) -"bOl" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bOm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bOn" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel/white,/area/science/research) -"bOo" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/science/mixing) -"bOp" = (/obj/structure/chair/stool,/obj/effect/landmark/start/scientist,/turf/open/floor/plasteel/white,/area/science/mixing) -"bOq" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/white,/area/science/mixing) -"bOr" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/science/mixing) -"bOs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bOt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bOu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/science/mixing) -"bOv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bOw" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bOx" = (/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bOy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bOz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/science/mixing) -"bOA" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/science/mixing) -"bOB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/wall,/area/science/test_area) -"bOC" = (/obj/structure/chair,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating/airless,/area/science/test_area) -"bOD" = (/obj/item/device/flashlight/lamp,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating/airless,/area/science/test_area) -"bOE" = (/obj/structure/chair,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating/airless,/area/science/test_area) -"bOF" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/effect/decal/remains/human,/obj/structure/light_construct,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"bOG" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"bOH" = (/obj/machinery/door/airlock/titanium{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; port_angle = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/open/floor/plating,/area/shuttle/labor) -"bOI" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48"; shuttledocked = 1},/turf/open/floor/plating,/area/quartermaster/miningdock) -"bOJ" = (/obj/machinery/door/airlock/glass_mining{cyclelinkeddir = 8; name = "Mining Dock"; req_access_txt = "48"},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bOL" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"bOM" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/port/aft) -"bON" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/robotics{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/mecha_control{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/tech) -"bOO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) -"bOP" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/storage/tech) -"bOQ" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/open/floor/plating,/area/storage/tech) -"bOR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/computer/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/clonescanner,/obj/item/weapon/circuitboard/machine/clonepod,/obj/item/weapon/circuitboard/computer/scan_consolenew,/turf/open/floor/plating,/area/storage/tech) -"bOS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/security{pixel_x = 1; pixel_y = -1},/turf/open/floor/plating,/area/storage/tech) -"bOT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/computer/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/open/floor/plating,/area/storage/tech) -"bOU" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plating,/area/storage/tech) -"bOV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bOW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bOX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bOY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bOZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bPa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bPb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bPc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bPd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bPe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"bPf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/aft) -"bPg" = (/obj/effect/landmark/blobstart,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bPh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bPi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plating,/area/maintenance/aft) -"bPj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/sleeper) -"bPk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/sleeper) -"bPl" = (/turf/closed/wall/r_wall,/area/medical/medbay/central) -"bPm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bPn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bPo" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/shieldwallgen/xenobiologyaccess,/turf/open/floor/plating,/area/science/xenobiology) -"bPp" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bPq" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bPr" = (/obj/machinery/door/window/southleft{dir = 1; name = "Test Chamber"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"bPs" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bPt" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bPu" = (/turf/closed/wall,/area/science/xenobiology) -"bPv" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bPw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/research) -"bPx" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/white,/area/science/research) -"bPy" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel/white,/area/science/mixing) -"bPz" = (/obj/structure/closet/wardrobe/science_white,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPA" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPB" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30; receive_ore_updates = 1},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPC" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPD" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/science/mixing) -"bPF" = (/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/science/mixing) -"bPG" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bPH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/science/mixing) -"bPI" = (/obj/machinery/camera{c_tag = "Toxins Launch Room Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/science/mixing) -"bPJ" = (/obj/machinery/door/window/southleft{name = "Mass Driver Door"; req_access_txt = "7"},/turf/open/floor/plasteel/loadingarea,/area/science/mixing) -"bPK" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/science/mixing) -"bPL" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating/airless,/area/science/test_area) -"bPM" = (/turf/open/floor/plating/airless,/area/science/test_area) -"bPN" = (/obj/structure/chair{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating/airless,/area/science/test_area) -"bPO" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPP" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/reagent_dispensers/fueltank,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall,/area/quartermaster/miningdock) -"bPR" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/miningdock) -"bPS" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPT" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPU" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPV" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel,/area/quartermaster/miningdock) -"bPW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port/aft) -"bPX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bPY" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) -"bPZ" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/open/floor/plating,/area/storage/tech) -"bQa" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/turf/open/floor/plating,/area/storage/tech) -"bQb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/storage/tech) -"bQc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) -"bQd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/storage/tech) -"bQe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bQf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bQg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"bQh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft) -"bQi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/maintenance/aft) -"bQj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall/r_wall,/area/maintenance/aft) -"bQk" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQl" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQm" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQn" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bQp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"bQq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bQs" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"bQu" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"bQv" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/medbay/central) -"bQw" = (/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bQx" = (/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bQy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bQz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/medbay/central) -"bQA" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQB" = (/obj/machinery/power/apc{dir = 1; name = "CM Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/heads/cmo) -"bQC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bQE" = (/obj/item/weapon/wrench,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQF" = (/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQG" = (/obj/machinery/button/door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQH" = (/obj/machinery/door/window/southleft{name = "Test Chamber"; req_access_txt = "55"},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQI" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQJ" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plasteel,/area/science/xenobiology) -"bQL" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/science/xenobiology) -"bQM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bQN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/research) -"bQO" = (/obj/machinery/camera{c_tag = "Research Division South"; dir = 8; network = list("SS13")},/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/science/research) -"bQP" = (/obj/structure/sign/fire,/turf/closed/wall,/area/science/research) -"bQQ" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/open/floor/plasteel/white,/area/science/mixing) -"bQR" = (/turf/closed/wall,/area/maintenance/starboard/aft) -"bQS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "8;12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bQT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/starboard/aft) -"bQU" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/open/floor/plating,/area/science/mixing) -"bQV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/science/mixing) -"bQW" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/science/mixing) -"bQX" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "toxins launcher bay door"},/turf/open/floor/plating,/area/science/mixing) -"bQY" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating/airless,/area/science/test_area) -"bQZ" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating/airless,/area/science/test_area) -"bRa" = (/obj/item/device/radio/beacon,/turf/open/floor/plating/airless,/area/science/test_area) -"bRb" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Test Site"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; dir = 8; invuln = 1; light = null; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/obj/item/target/alien{anchored = 1},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating{luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/science/test_area) -"bRc" = (/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/science/test_area) -"bRd" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating,/area/shuttle/labor) -"bRe" = (/obj/structure/ore_box,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) -"bRf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"bRg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port/aft) -"bRh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bRi" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/open/floor/plating,/area/storage/tech) -"bRj" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) -"bRk" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/open/floor/plating,/area/storage/tech) -"bRl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) -"bRm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) -"bRn" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/storage/tech) -"bRo" = (/obj/machinery/vending/assist,/turf/open/floor/plating,/area/storage/tech) -"bRp" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bRq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bRr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bRs" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) -"bRt" = (/turf/closed/wall/r_wall,/area/engine/atmos) -"bRu" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/atmos) -"bRv" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/atmos) -"bRw" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/atmos) -"bRx" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/atmos) -"bRy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/atmos) -"bRz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/turf/open/floor/plating,/area/engine/atmos) -"bRA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/closed/wall/r_wall,/area/engine/atmos) -"bRB" = (/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/closed/wall/r_wall,/area/engine/atmos) -"bRC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bRD" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bRE" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bRF" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bRG" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv1"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay/central) -"bRH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bRI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central) -"bRJ" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay/central) -"bRK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bRL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bRM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bRN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"bRO" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRP" = (/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRQ" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRS" = (/obj/machinery/monkey_recycler,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRT" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRU" = (/obj/machinery/smartfridge/extract/preloaded,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRV" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRW" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRX" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bRY" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/science/xenobiology) -"bRZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bSa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/research) -"bSb" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/open/floor/engine/vacuum,/area/science/mixing) -"bSc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/engine/vacuum,/area/science/mixing) -"bSd" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/science/mixing) -"bSe" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/closed/wall/r_wall,/area/science/mixing) -"bSf" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/components/binary/pump{dir = 4; on = 1},/turf/open/floor/engine,/area/science/mixing) -"bSg" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel/white,/area/science/mixing) -"bSh" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "mix to port"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bSi" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/mixing) -"bSj" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bSk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bSl" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bSm" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating/airless,/area/science/test_area) -"bSn" = (/obj/structure/chair{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating/airless,/area/science/test_area) -"bSo" = (/obj/structure/shuttle/engine/propulsion/burst,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) -"bSp" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bSq" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bSr" = (/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/aft) -"bSs" = (/turf/closed/wall,/area/engine/atmos) -"bSt" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel,/area/engine/atmos) -"bSu" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bSv" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/engine/atmos) -"bSw" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bSx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bSy" = (/obj/machinery/pipedispenser,/turf/open/floor/plasteel,/area/engine/atmos) -"bSz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bSA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/meter{frequency = 1441; id_tag = "waste_meter"; name = "Waste Loop"},/turf/open/floor/plasteel,/area/engine/atmos) -"bSB" = (/obj/machinery/camera{c_tag = "Atmospherics North East"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Distro to Waste"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bSC" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 2},/obj/machinery/meter{frequency = 1441; id_tag = "distro_meter"; name = "Distribution Loop"},/turf/open/floor/plasteel,/area/engine/atmos) -"bSD" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bSE" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to Distro"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bSF" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plasteel,/area/engine/atmos) -"bSG" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"bSH" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall/r_wall,/area/engine/atmos) -"bSI" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space/nearstation) -"bSJ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/space,/area/space/nearstation) -"bSK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/virology) -"bSL" = (/turf/closed/wall/r_wall,/area/medical/virology) -"bSM" = (/turf/closed/wall,/area/medical/virology) -"bSN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"bSO" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/medical/virology) -"bSP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) -"bSQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Xenobiology Maintenance"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/science/xenobiology) -"bSR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bST" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "55"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bSZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/science/research) -"bTa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/science/research) -"bTb" = (/turf/open/floor/engine/vacuum,/area/science/mixing) -"bTc" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine/vacuum,/area/science/mixing) -"bTd" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/science/mixing) -"bTe" = (/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1449; id = "tox_airlock_pump"},/turf/open/floor/engine,/area/science/mixing) -"bTf" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/science/mixing) -"bTg" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/science/mixing) -"bTh" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bTi" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Toxins Lab East"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) -"bTj" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bTk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bTl" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bTm" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bTn" = (/obj/structure/chair{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating/airless,/area/science/test_area) -"bTo" = (/obj/item/device/flashlight/lamp,/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plating/airless,/area/science/test_area) -"bTp" = (/obj/structure/chair{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating/airless,/area/science/test_area) -"bTq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/test_area) -"bTr" = (/turf/closed/wall,/area/construction) -"bTs" = (/obj/structure/closet/crate,/turf/open/floor/plating,/area/construction) -"bTt" = (/turf/open/floor/plating,/area/construction) -"bTu" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/construction) -"bTv" = (/turf/open/floor/plasteel,/area/construction) -"bTw" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/construction) -"bTx" = (/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) -"bTy" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel,/area/engine/atmos) -"bTz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bTA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bTB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/camera{c_tag = "Atmospherics Monitoring"; dir = 2; network = list("SS13")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/caution{dir = 5},/area/engine/atmos) -"bTC" = (/obj/machinery/camera{c_tag = "Atmospherics North West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"bTD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bTE" = (/turf/open/floor/plasteel,/area/engine/atmos) -"bTF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bTG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bTH" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bTI" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bTJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bTK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bTL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Distro"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bTM" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"bTN" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Incinerator"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bTO" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bTP" = (/obj/structure/grille,/turf/closed/wall/r_wall,/area/engine/atmos) -"bTQ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space/nearstation) -"bTR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/medical/virology) -"bTS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTT" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/machinery/camera{c_tag = "Virology Break Room"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTU" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTV" = (/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/open/floor/plasteel/white,/area/medical/virology) -"bTW" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTY" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Virology Airlock"; dir = 2; network = list("SS13")},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel/white,/area/medical/virology) -"bTZ" = (/turf/open/floor/plasteel/white,/area/medical/virology) -"bUa" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) -"bUb" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bUc" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"bUd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/xenobiology) -"bUe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUg" = (/obj/effect/landmark/start/scientist,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUk" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bUl" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/science/xenobiology) -"bUm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 1},/area/science/research) -"bUn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white/side{dir = 1},/area/science/research) -"bUo" = (/turf/open/floor/plasteel/white/side{dir = 1},/area/science/research) -"bUp" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1441; id = "air_in"},/turf/open/floor/engine/vacuum,/area/science/mixing) -"bUq" = (/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/open/floor/engine,/area/science/mixing) -"bUr" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bUs" = (/obj/machinery/light,/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "port to mix"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/science/mixing) -"bUt" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/science/mixing) -"bUu" = (/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bUv" = (/obj/item/target,/obj/structure/window/reinforced{dir = 1},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/science/test_area) -"bUw" = (/obj/structure/barricade/wooden,/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/port/aft) -"bUx" = (/obj/structure/light_construct{dir = 8},/turf/open/floor/plating,/area/construction) -"bUy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/construction) -"bUz" = (/obj/structure/light_construct{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bUA" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bUB" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bUC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/aft) -"bUD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Atmospherics"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/atmos) -"bUE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/engine/atmos) -"bUF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bUG" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bUH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bUI" = (/obj/machinery/computer/atmos_control,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/engine/atmos) -"bUJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/engine/atmos) -"bUK" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/atmos) -"bUL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bUM" = (/obj/machinery/pipedispenser/disposal/transit_tube,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bUN" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bUO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Waste In"; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bUP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bUQ" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"bUR" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix Outlet Pump"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bUS" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bUT" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel/green/side{dir = 5},/area/engine/atmos) -"bUU" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bUV" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/engine/atmos) -"bUW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "mix_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bUX" = (/obj/machinery/camera{c_tag = "Atmospherics Waste Tank"},/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bUY" = (/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bUZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"bVa" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVb" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/virology) -"bVc" = (/obj/machinery/shower{dir = 4},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVe" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"bVg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) -"bVh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) -"bVi" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVj" = (/obj/machinery/computer/camera_advanced/xenobio,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVk" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVl" = (/obj/structure/table/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVn" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVo" = (/obj/structure/table,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVp" = (/obj/structure/table,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30; receive_ore_updates = 1},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVq" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVr" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVs" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bVt" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/science/misc_lab) -"bVu" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/turf/open/floor/plasteel,/area/science/misc_lab) -"bVv" = (/turf/closed/wall,/area/science/misc_lab) -"bVw" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bVx" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bVy" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/maintenance/port/aft) -"bVz" = (/turf/open/floor/wood,/area/maintenance/port/aft) -"bVA" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/open/floor/wood,/area/maintenance/port/aft) -"bVB" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/maintenance/port/aft) -"bVC" = (/obj/machinery/door/airlock/maintenance{name = "Maint Bar Access"; req_access_txt = "12"},/obj/structure/barricade/wooden{name = "wooden barricade (CLOSED)"},/turf/open/floor/plating,/area/maintenance/port/aft) -"bVD" = (/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/port/aft) -"bVE" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/port/aft) -"bVF" = (/obj/structure/girder,/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/port/aft) -"bVG" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/port/aft) -"bVH" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"bVI" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/port/aft) -"bVJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port/aft) -"bVK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bVL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/construction) -"bVM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVN" = (/obj/structure/closet/crate,/obj/effect/landmark/blobstart,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/construction) -"bVP" = (/obj/effect/landmark/xeno_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bVR" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bVS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bVT" = (/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) -"bVU" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bVV" = (/obj/structure/tank_dispenser{pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bVW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"bVX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bVY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bVZ" = (/obj/machinery/computer/atmos_control,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/engine/atmos) -"bWa" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bWb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bWc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bWd" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/atmos) -"bWe" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/engine/atmos) -"bWf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/atmos) -"bWg" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Filter"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bWh" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bWi" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"bWj" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bWk" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bWl" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_out"; sensors = list("mix_sensor" = "Tank")},/turf/open/floor/plasteel/green/side{dir = 4},/area/engine/atmos) -"bWm" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bWn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/engine/atmos) -"bWo" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "mix_sensor"},/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bWp" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bWq" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/machinery/newscaster{pixel_x = -30},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWr" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/virology) -"bWs" = (/obj/structure/closet/wardrobe/virology_white,/turf/open/floor/plasteel/white,/area/medical/virology) -"bWt" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "39"},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWv" = (/obj/structure/closet/l3closet,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel/white,/area/medical/virology) -"bWw" = (/obj/effect/landmark/blobstart,/turf/open/floor/plasteel/white,/area/medical/virology) -"bWx" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bWy" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bWz" = (/obj/machinery/door/firedoor,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Xenobiology North"; dir = 8; network = list("SS13","RD")},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bWA" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/open/floor/plasteel,/area/science/misc_lab) -"bWB" = (/turf/open/floor/plasteel,/area/science/misc_lab) -"bWC" = (/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"bWD" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; dir = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30; receive_ore_updates = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"bWE" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/ears/earmuffs,/obj/machinery/camera{c_tag = "Testing Lab North"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel,/area/science/misc_lab) -"bWF" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/engine,/area/science/misc_lab) -"bWG" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/engine,/area/science/misc_lab) -"bWH" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; req_access = null},/turf/open/floor/engine,/area/science/misc_lab) -"bWI" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/engine,/area/science/misc_lab) -"bWJ" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/science/misc_lab) -"bWK" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/misc_lab) -"bWL" = (/turf/closed/wall/r_wall,/area/science/misc_lab) -"bWM" = (/obj/structure/rack,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bWN" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/maintenance/port/aft) -"bWO" = (/obj/structure/table/wood,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/port/aft) -"bWP" = (/obj/structure/table/wood,/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/port/aft) -"bWQ" = (/obj/structure/table/wood,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/wood,/area/maintenance/port/aft) -"bWR" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/port/aft) -"bWS" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/aft) -"bWT" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/aft) -"bWU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bWV" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port/aft) -"bWW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bWX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bWY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"bWZ" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) -"bXa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/construction) -"bXb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bXc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bXd" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/atmos) -"bXe" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start/atmospheric_technician,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bXf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bXg" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/atmospheric_technician,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bXh" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/caution{dir = 4},/area/engine/atmos) -"bXi" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bXj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/engine/atmos) -"bXk" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"bXl" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"bXm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/atmos) -"bXn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bXo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/engine/atmos) -"bXp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/open/floor/plasteel,/area/engine/atmos) -"bXq" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/open/floor/plasteel,/area/engine/atmos) -"bXr" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"bXs" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/open/floor/plasteel,/area/engine/atmos) -"bXt" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/engine/atmos) -"bXu" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/green/side{dir = 6},/area/engine/atmos) -"bXv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bXw" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/space,/area/space/nearstation) -"bXx" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "mix_in"; pixel_y = 1},/turf/open/floor/engine/vacuum,/area/engine/atmos) -"bXy" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/white,/area/medical/virology) -"bXz" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXA" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"bXC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/virology) -"bXD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Monkey Pen"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bXE" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/open/floor/engine,/area/science/xenobiology) -"bXF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/engine,/area/science/xenobiology) -"bXG" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bXH" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/science/xenobiology) -"bXI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bXJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bXK" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/science/xenobiology) -"bXL" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bXM" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel,/area/science/misc_lab) -"bXN" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"bXO" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/science/misc_lab) -"bXP" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/engine,/area/science/misc_lab) -"bXQ" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/engine,/area/science/misc_lab) -"bXR" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/engine,/area/science/misc_lab) -"bXS" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/engine,/area/science/misc_lab) -"bXT" = (/obj/machinery/magnetic_module,/obj/effect/landmark/blobstart,/obj/structure/target_stake,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"bXU" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bXV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bXW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"bXX" = (/obj/machinery/space_heater,/turf/open/floor/wood,/area/maintenance/port/aft) -"bXY" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/maintenance/port/aft) -"bXZ" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/port/aft) -"bYa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/port/aft) -"bYb" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/port/aft) -"bYc" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"bYd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bYe" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/construction) -"bYf" = (/obj/machinery/camera{c_tag = "Construction Area"; dir = 1},/turf/open/floor/plating,/area/construction) -"bYg" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/hazardvest,/turf/open/floor/plating,/area/construction) -"bYh" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/open/floor/plating,/area/construction) -"bYi" = (/obj/structure/table,/turf/open/floor/plating,/area/construction) -"bYj" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bYk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bYl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plating,/area/engine/atmos) -"bYm" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bYn" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"bYo" = (/obj/machinery/computer/station_alert,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/turf/open/floor/plasteel/caution{dir = 6},/area/engine/atmos) -"bYp" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 7},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/light{dir = 8},/obj/item/device/multitool,/turf/open/floor/plasteel,/area/engine/atmos) -"bYq" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/belt/utility,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/turf/open/floor/plasteel,/area/engine/atmos) -"bYr" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel,/area/engine/atmos) -"bYs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/atmos) -"bYt" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYu" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYw" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYx" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYy" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYz" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"bYA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYD" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYE" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "virology_airlock_exterior"; idInterior = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22; req_access_txt = "39"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{pixel_y = 25},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYH" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/open/floor/plasteel/white,/area/medical/virology) -"bYI" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/white,/area/medical/virology) -"bYJ" = (/obj/effect/landmark/revenantspawn,/turf/open/floor/engine,/area/science/xenobiology) -"bYK" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"bYL" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/xenobiology) -"bYM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bYN" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/science/xenobiology) -"bYO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"bYP" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/science/misc_lab) -"bYQ" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high/plus,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"bYR" = (/turf/open/floor/engine,/area/science/misc_lab) -"bYS" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/engine,/area/science/misc_lab) -"bYT" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/science/misc_lab) -"bYU" = (/obj/item/pipe{dir = 4; icon_state = "mixer"; name = "gas mixer fitting"; pipe_type = 14},/turf/open/floor/engine,/area/science/misc_lab) -"bYV" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/turf/open/floor/engine,/area/science/misc_lab) -"bYW" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/science/misc_lab) -"bYX" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/science/misc_lab) -"bYY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/science/misc_lab) -"bYZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"bZa" = (/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/port/aft) -"bZb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/maintenance/port/aft) -"bZc" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/maintenance/port/aft) -"bZd" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bZe" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bZf" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bZg" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port/aft) -"bZh" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port/aft) -"bZi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/port/aft) -"bZj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port/aft) -"bZk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"bZl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port/aft) -"bZm" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"bZn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/port/aft) -"bZo" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"bZp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"bZq" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/structure/window/reinforced,/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) -"bZr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/atmos) -"bZs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/engine/atmos) -"bZt" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/engine/atmos) -"bZu" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"bZv" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bZw" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"bZx" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"bZy" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"bZz" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"bZA" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"bZB" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "N2O Outlet Pump"; on = 0},/turf/open/floor/plasteel/escape{dir = 5},/area/engine/atmos) -"bZC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2o,/area/engine/atmos) -"bZD" = (/turf/open/floor/engine/n2o,/area/engine/atmos) -"bZE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/medical/virology) -"bZF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) -"bZG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/medical/virology) -"bZH" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZI" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) -"bZL" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bZM" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/xenobiology) -"bZN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"bZO" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/science/xenobiology) -"bZP" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"bZQ" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/open/floor/engine,/area/science/xenobiology) -"bZR" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"bZS" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/science/misc_lab) -"bZT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel,/area/science/misc_lab) -"bZU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/engine,/area/science/misc_lab) -"bZV" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/turf/open/floor/engine,/area/science/misc_lab) -"bZW" = (/turf/open/floor/plating,/area/science/misc_lab) -"bZX" = (/obj/structure/target_stake,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/science/misc_lab) -"bZY" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) -"bZZ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plating/airless,/area/maintenance/port/aft) -"caa" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cab" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cac" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cad" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port/aft) -"cae" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"caf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cag" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cah" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cai" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/power/apc{dir = 1; name = "Construction Area APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) -"caj" = (/obj/machinery/power/apc{dir = 2; name = "Telecoms Monitoring APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) -"cak" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cal" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port/aft) -"cam" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"can" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/arrival{dir = 8},/area/engine/atmos) -"cao" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/engine/atmos) -"cap" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution{dir = 8},/area/engine/atmos) -"caq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/atmos) -"car" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/engine/atmos) -"cas" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/engine/atmos) -"cat" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to External"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cau" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"cav" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plasteel,/area/engine/atmos) -"caw" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/engine/atmos) -"cax" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"cay" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"caz" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Pure to Port"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"caA" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"caB" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"caC" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/open/floor/plasteel/escape{dir = 4},/area/engine/atmos) -"caD" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/open/floor/engine/n2o,/area/engine/atmos) -"caE" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/engine/n2o,/area/engine/atmos) -"caF" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/n2o,/area/engine/atmos) -"caG" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft) -"caH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"caI" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"caJ" = (/obj/machinery/smartfridge/chemistry/virology/preloaded,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"caK" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"caL" = (/obj/machinery/computer/pandemic,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"caM" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/virology) -"caN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation A"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) -"caO" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"caP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) -"caQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall,/area/science/xenobiology) -"caR" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"caS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"caT" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"caU" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"caV" = (/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/science/misc_lab) -"caW" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"caX" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"caY" = (/obj/machinery/camera{c_tag = "Testing Firing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/turf/open/floor/plating,/area/science/misc_lab) -"caZ" = (/obj/structure/target_stake,/turf/open/floor/plating,/area/science/misc_lab) -"cba" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"cbb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) -"cbc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/maintenance/port/aft) -"cbd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/maintenance/port/aft) -"cbe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 1},/turf/open/floor/plating/airless,/area/maintenance/port/aft) -"cbf" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cbh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/port/aft) -"cbi" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/deathsposal{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/port/aft) -"cbj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/port/aft) -"cbk" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbl" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbm" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plating,/area/maintenance/port/aft) -"cbn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbo" = (/turf/closed/wall/r_wall,/area/tcommsat/server) -"cbp" = (/turf/closed/wall/r_wall,/area/tcommsat/computer) -"cbq" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cbs" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/closed/wall/r_wall,/area/engine/atmos) -"cbt" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/caution{dir = 8},/area/engine/atmos) -"cbu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cbv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"cbw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/engine/atmos) -"cbx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/sign/securearea,/turf/closed/wall,/area/engine/atmos) -"cby" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "External to Filter"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cbz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"cbA" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/engine/atmos) -"cbB" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/engine/atmos) -"cbC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel,/area/engine/atmos) -"cbD" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"cbE" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"cbF" = (/obj/machinery/atmospherics/pipe/manifold4w/general/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cbG" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/engine/atmos) -"cbH" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cbI" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/escape{dir = 6},/area/engine/atmos) -"cbJ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/open/floor/engine/n2o,/area/engine/atmos) -"cbK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft) -"cbL" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"cbM" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"cbN" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/medical/virology) -"cbO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"cbP" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/landmark/revenantspawn,/turf/open/floor/plasteel/white,/area/medical/virology) -"cbQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"cbR" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cbS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"cbT" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/science/xenobiology) -"cbU" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cbV" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cbW" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cbX" = (/obj/structure/chair/office/light,/obj/effect/landmark/start/scientist,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cbY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cbZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"cca" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/science/misc_lab) -"ccb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/maintenance/port/aft) -"ccc" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"ccd" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft) -"cce" = (/obj/machinery/atmospherics/pipe/manifold4w/general,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/port/aft) -"ccf" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/maintenance/port/aft) -"ccg" = (/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cch" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cci" = (/obj/machinery/telecomms/bus/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ccj" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Telecoms Server APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cck" = (/obj/machinery/telecomms/processor/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ccl" = (/obj/machinery/telecomms/server/presets/security,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ccm" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) -"ccn" = (/obj/structure/table,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) -"cco" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/tcommsat/computer) -"ccp" = (/obj/machinery/light{dir = 1},/obj/machinery/announcement_system,/turf/open/floor/plasteel,/area/tcommsat/computer) -"ccq" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"ccr" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/escape{dir = 8},/area/engine/atmos) -"ccs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/engine/atmos) -"cct" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/atmos) -"ccu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/atmos) -"ccv" = (/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) -"ccw" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel,/area/engine/atmos) -"ccx" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/engine/atmos) -"ccy" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"ccz" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel,/area/engine/atmos) -"ccA" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Mix to Engine"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"ccB" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"ccC" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"ccD" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plating,/area/engine/atmos) -"ccE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 10},/turf/open/space,/area/space/nearstation) -"ccF" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/aft) -"ccG" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"ccH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccI" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start/virologist,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccJ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"ccK" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"ccL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccM" = (/obj/structure/table,/turf/open/floor/plasteel/white,/area/medical/virology) -"ccN" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) -"ccO" = (/obj/effect/landmark/revenantspawn,/mob/living/simple_animal/slime,/turf/open/floor/engine,/area/science/xenobiology) -"ccP" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"ccQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"ccR" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccS" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/button/ignition{id = "testigniter"; pixel_x = -6; pixel_y = 2},/obj/machinery/button/door{id = "testlab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = 2; req_access_txt = "55"},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccT" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccU" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccV" = (/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Test"); pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccW" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/droneDispenser,/turf/open/floor/plasteel,/area/science/misc_lab) -"ccX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"ccY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"ccZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"cda" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/paper/range,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating,/area/science/misc_lab) -"cdb" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating,/area/science/misc_lab) -"cdc" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/tinted/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cdd" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cde" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cdf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cdg" = (/obj/effect/landmark/blobstart,/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cdh" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cdi" = (/obj/machinery/telecomms/server/presets/common,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdj" = (/obj/machinery/telecomms/processor/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdl" = (/obj/machinery/telecomms/bus/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdm" = (/obj/machinery/telecomms/server/presets/command,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cdn" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cdo" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) -"cdp" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cdr" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cds" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light/small,/turf/open/floor/plasteel/escape{dir = 8},/area/engine/atmos) -"cdt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/closed/wall/r_wall,/area/engine/atmos) -"cdu" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/engine/atmos) -"cdv" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/engine/atmos) -"cdw" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/engineering) -"cdx" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/engineering) -"cdy" = (/obj/structure/filingcabinet,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/engineering) -"cdz" = (/obj/structure/fireaxecabinet{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"cdA" = (/obj/structure/closet/secure_closet/atmospherics,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"cdB" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/engine/atmos) -"cdC" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/atmos) -"cdD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/engine/atmos) -"cdE" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"cdF" = (/obj/machinery/camera{c_tag = "Atmospherics East"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Plasma Outlet Pump"; on = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/engine/atmos) -"cdG" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/orange/visible,/turf/open/space,/area/space/nearstation) -"cdH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/plasma,/area/engine/atmos) -"cdI" = (/turf/open/floor/engine/plasma,/area/engine/atmos) -"cdJ" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/engine/plasma,/area/engine/atmos) -"cdK" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft) -"cdL" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cdM" = (/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{density = 0; pixel_x = -30},/obj/item/weapon/book/manual/wiki/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) -"cdN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) -"cdO" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/virology) -"cdP" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) -"cdQ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) -"cdR" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/virology) -"cdS" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cdT" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/xenobiology) -"cdU" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cdV" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/misc_lab) -"cdW" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/misc_lab) -"cdX" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/science/misc_lab) -"cdY" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"cdZ" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/window/reinforced{dir = 4},/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"cea" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/science/misc_lab) -"ceb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"cec" = (/obj/machinery/door/airlock/glass_research{name = "Firing Range"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"ced" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/science/misc_lab) -"cee" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"cef" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"ceg" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ceh" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cei" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cej" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft) -"cek" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cel" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cem" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/port/aft) -"cen" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/structure/barricade/wooden{name = "wooden barricade (CLOSED)"},/turf/open/floor/plating,/area/maintenance/port/aft) -"ceo" = (/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cep" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ceq" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cer" = (/obj/machinery/telecomms/receiver/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ces" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) -"cet" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/tcommsat/computer) -"ceu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cev" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/pen/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cew" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cex" = (/turf/closed/wall,/area/engine/break_room) -"cey" = (/turf/open/floor/plasteel/caution{dir = 9},/area/engine/break_room) -"cez" = (/turf/open/floor/plasteel/caution{dir = 1},/area/engine/break_room) -"ceA" = (/turf/open/floor/plasteel/caution{dir = 5},/area/engine/break_room) -"ceB" = (/turf/closed/wall,/area/security/checkpoint/engineering) -"ceC" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light_switch{pixel_x = -27; pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) -"ceD" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"ceE" = (/obj/machinery/camera{c_tag = "Security Post - Engineering"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) -"ceF" = (/obj/machinery/suit_storage_unit/atmos,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"ceG" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/engine/atmos) -"ceH" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"ceI" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"ceJ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible,/turf/open/space,/area/space/nearstation) -"ceK" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/open/floor/engine/plasma,/area/engine/atmos) -"ceL" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/engine/plasma,/area/engine/atmos) -"ceM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/plasma,/area/engine/atmos) -"ceN" = (/obj/structure/closet/l3closet/virology,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) -"ceO" = (/obj/structure/closet/secure_closet/medical1,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) -"ceP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/medical/virology) -"ceQ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Xenobiology South"; dir = 4; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"ceR" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"ceS" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/engine,/area/science/misc_lab) -"ceT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/engine,/area/science/misc_lab) -"ceU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/science/misc_lab) -"ceV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"ceW" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/science/misc_lab) -"ceX" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/science/misc_lab) -"ceY" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel,/area/science/misc_lab) -"ceZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cfa" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/port/aft) -"cfb" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cfc" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Port"; on = 0},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/port/aft) -"cfd" = (/obj/item/stack/tile/plasteel,/turf/open/space,/area/space/nearstation) -"cfe" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cff" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cfg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cfh" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) -"cfi" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cfj" = (/obj/machinery/status_display,/turf/closed/wall,/area/tcommsat/computer) -"cfk" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/turf/open/floor/plating,/area/tcommsat/computer) -"cfl" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cfm" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/tcommsat/computer) -"cfn" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"cfo" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cfp" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cfq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) -"cfr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/break_room) -"cfs" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/break_room) -"cft" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cfu" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"cfv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) -"cfw" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/depsec/engineering,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) -"cfx" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for watching the Engine."; dir = 8; layer = 4; name = "Engine Monitor"; network = list("Engine"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) -"cfy" = (/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"cfz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/atmos) -"cfA" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/engine/atmos) -"cfB" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"cfC" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "plasma"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cfD" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"cfE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/orange/visible,/turf/open/space,/area/space/nearstation) -"cfF" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/open/floor/engine/plasma,/area/engine/atmos) -"cfG" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) -"cfH" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/aft) -"cfI" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) -"cfJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/virology) -"cfK" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"cfL" = (/obj/machinery/atmospherics/components/binary/valve/open{icon_state = "mvalve_map"; dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"cfM" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"cfN" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft) -"cfO" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cfP" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cfQ" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/science/xenobiology) -"cfR" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"cfS" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/engine,/area/science/misc_lab) -"cfT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/misc_lab) -"cfU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/science/misc_lab) -"cfV" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel,/area/science/misc_lab) -"cfW" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cfX" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cfY" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"cfZ" = (/obj/item/weapon/weldingtool,/turf/open/floor/plating/airless,/area/space/nearstation) -"cga" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/ntnet_relay,/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgb" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgd" = (/obj/machinery/telecomms/hub/preset,/turf/open/floor/plasteel/vault{dir = 8; name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cge" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cgg" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 4; name = "Server Room"; req_access_txt = "61"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"cgh" = (/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"cgi" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 8; name = "Server Room"; req_access_txt = "61"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) -"cgj" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgl" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Telecoms Monitoring"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cgm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft) -"cgn" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cgo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"cgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cgq" = (/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"cgr" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/engine/break_room) -"cgs" = (/turf/open/floor/plasteel,/area/engine/break_room) -"cgt" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"cgu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/engine/break_room) -"cgv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/engineering) -"cgw" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/engineering) -"cgx" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/engineering) -"cgy" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/engineering) -"cgz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) -"cgA" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/engine/atmos) -"cgB" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"cgC" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/engine/atmos) -"cgD" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"cgE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space/nearstation) -"cgF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cgG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cgH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"cgI" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"cgJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) -"cgK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cgL" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"cgM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cgN" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"cgO" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 2},/turf/open/floor/plating,/area/maintenance/aft) -"cgP" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"cgQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"cgR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cgS" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"cgT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/open/floor/engine,/area/science/xenobiology) -"cgU" = (/obj/machinery/sparker{id = "testigniter"; pixel_x = -25},/turf/open/floor/engine,/area/science/misc_lab) -"cgV" = (/obj/item/device/radio/beacon,/turf/open/floor/engine,/area/science/misc_lab) -"cgW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/engine,/area/science/misc_lab) -"cgX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/science/misc_lab) -"cgY" = (/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/door/airlock/glass_research{cyclelinkeddir = 4; name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/science/misc_lab) -"cgZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/science/misc_lab) -"cha" = (/obj/machinery/door/airlock/glass_research{cyclelinkeddir = 8; name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/science/misc_lab) -"chb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/science/misc_lab) -"chc" = (/obj/machinery/power/apc{dir = 4; name = "Testing Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"chd" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"che" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"chf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"chg" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"chh" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"chi" = (/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"chj" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/port/aft) -"chk" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless,/area/space/nearstation) -"chl" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/space/nearstation) -"chm" = (/obj/machinery/camera{c_tag = "Telecoms Server Room"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"chn" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"cho" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/tcommsat/computer) -"chp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/closed/wall,/area/tcommsat/computer) -"chq" = (/turf/open/floor/plasteel,/area/tcommsat/computer) -"chr" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"chs" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cht" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) -"chu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"chv" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) -"chw" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/engine/break_room) -"chx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"chy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"chz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/engineering) -"chA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"chB" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/open/floor/plasteel,/area/engine/atmos) -"chC" = (/obj/machinery/space_heater,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/engine/atmos) -"chD" = (/obj/machinery/space_heater,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"chE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"chF" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"chG" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/cigbutt,/turf/open/floor/plasteel,/area/engine/atmos) -"chH" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plasteel,/area/engine/atmos) -"chI" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "CO2 Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/engine/atmos) -"chJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/co2,/area/engine/atmos) -"chK" = (/turf/open/floor/engine/co2,/area/engine/atmos) -"chL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/aft) -"chM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"chN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"chO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"chP" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/open/floor/plating,/area/maintenance/aft) -"chQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"chR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"chS" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"chT" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/science/xenobiology) -"chU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"chV" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/science/xenobiology) -"chW" = (/obj/machinery/camera{c_tag = "Testing Chamber"; dir = 1; network = list("Test","RD"); pixel_x = 0},/obj/machinery/light,/turf/open/floor/engine,/area/science/misc_lab) -"chX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/science/misc_lab) -"chY" = (/obj/machinery/camera{c_tag = "Testing Lab South"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/science/misc_lab) -"chZ" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/turf/open/floor/plasteel,/area/science/misc_lab) -"cia" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/alien,/obj/item/target/clown,/turf/open/floor/plasteel,/area/science/misc_lab) -"cib" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cic" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/aft) -"cid" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cie" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/aft) -"cif" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plating,/area/maintenance/port/aft) -"cig" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 11},/turf/open/floor/plating,/area/maintenance/port/aft) -"cih" = (/obj/item/clothing/head/hardhat,/turf/open/floor/plating/airless,/area/space/nearstation) -"cii" = (/obj/machinery/message_server,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cij" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cik" = (/obj/machinery/telecomms/receiver/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cil" = (/obj/structure/table,/obj/item/device/multitool,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) -"cim" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cin" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cio" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/computer) -"cip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/hallway/primary/aft) -"ciq" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/primary/aft) -"cir" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) -"cis" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cit" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/primary/aft) -"ciu" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/hallway/primary/aft) -"civ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/engine/break_room) -"ciw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cix" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"ciy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"ciz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"ciA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/break_room) -"ciB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/break_room) -"ciC" = (/obj/machinery/vending/snack/random,/turf/open/floor/plasteel,/area/engine/break_room) -"ciD" = (/turf/closed/wall/r_wall,/area/engine/engineering) -"ciE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/engine/atmos) -"ciF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plasteel,/area/engine/atmos) -"ciG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"ciH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"ciI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/atmos) -"ciJ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"ciK" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/atmos) -"ciL" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/open/floor/engine/co2,/area/engine/atmos) -"ciM" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/engine/co2,/area/engine/atmos) -"ciN" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/co2,/area/engine/atmos) -"ciO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/aft) -"ciP" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"ciQ" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 28},/turf/open/floor/plating,/area/maintenance/aft) -"ciR" = (/obj/structure/chair/stool,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"ciS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"ciT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ciU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ciV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) -"ciW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ciX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"ciY" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"ciZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cja" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"cjb" = (/obj/structure/rack,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/suit/hooded/wintercoat,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"cjc" = (/obj/machinery/portable_atmospherics/pump,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"cjd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cje" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/science/misc_lab) -"cjf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/starboard/aft) -"cjg" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cjh" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cji" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cjj" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/open/floor/plating,/area/maintenance/port/aft) -"cjk" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/port/aft) -"cjl" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"cjm" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port/aft) -"cjn" = (/obj/machinery/telecomms/server/presets/supply,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjo" = (/obj/machinery/telecomms/bus/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjp" = (/obj/machinery/telecomms/processor/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjq" = (/obj/machinery/telecomms/server/presets/medical,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cjr" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) -"cjs" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) -"cju" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjv" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer) -"cjw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) -"cjx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cjy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cjz" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIE"; location = "AftH"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cjA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"cjB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/hallway/primary/aft) -"cjC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/break_room) -"cjG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"cjI" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/break_room) -"cjJ" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/engine/atmos) -"cjK" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cjL" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/atmos) -"cjM" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cjN" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 4; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/open/floor/plasteel,/area/engine/atmos) -"cjO" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/engine/atmos) -"cjP" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "co2"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cjQ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/engine/atmos) -"cjR" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/open/floor/engine/co2,/area/engine/atmos) -"cjS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/aft) -"cjT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) -"cjU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cjV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"cjW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cjX" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"cjY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cjZ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) -"cka" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/aft) -"ckb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ckc" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"ckd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cke" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Xenobiology Kill Room"; dir = 4; network = list("SS13","RD")},/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"ckf" = (/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"ckg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"ckh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/biohazard,/turf/open/floor/plating,/area/science/xenobiology) -"cki" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"ckj" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ckk" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ckl" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ckm" = (/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"ckn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/science/misc_lab) -"cko" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ckp" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ckq" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plating,/area/maintenance/port/aft) -"ckr" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2},/obj/item/weapon/reagent_containers/food/snacks/mint{pixel_y = 9},/turf/open/floor/plating,/area/maintenance/port/aft) -"cks" = (/obj/machinery/power/apc{dir = 8; name = "Port Quarter Maintenance APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"ckt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cku" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"ckv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port/aft) -"ckw" = (/obj/machinery/telecomms/server/presets/service,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ckx" = (/obj/machinery/telecomms/processor/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"cky" = (/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/machinery/light,/turf/open/floor/circuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ckz" = (/obj/machinery/telecomms/bus/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ckA" = (/obj/machinery/telecomms/server/presets/science,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) -"ckB" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) -"ckC" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) -"ckD" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/tcommsat/computer) -"ckE" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/light,/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/tcommsat/computer) -"ckF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/tcommsat/computer) -"ckG" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/hallway/primary/aft) -"ckH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"ckI" = (/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"ckJ" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"ckK" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) -"ckL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/hallway/primary/aft) -"ckM" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/break_room) -"ckN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"ckO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"ckP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"ckQ" = (/obj/machinery/camera{c_tag = "Engineering Foyer"; dir = 1},/obj/structure/noticeboard{dir = 1; pixel_y = -27},/turf/open/floor/plasteel,/area/engine/break_room) -"ckR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) -"ckS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) -"ckT" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/engine/break_room) -"ckU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"ckV" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"ckW" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"ckX" = (/obj/machinery/atmospherics/components/binary/valve/digital{name = "Waste Release"},/turf/open/floor/plasteel,/area/engine/atmos) -"ckY" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plasteel,/area/engine/atmos) -"ckZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plating,/area/engine/atmos) -"cla" = (/obj/machinery/power/apc{dir = 2; name = "Incinerator APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"clb" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"clc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating,/area/maintenance/aft) -"cld" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cle" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"clf" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/maintenance/aft) -"clg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/aft) -"clh" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/aft) -"cli" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) -"clj" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/l3closet,/turf/open/floor/plating,/area/maintenance/aft) -"clk" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"cll" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"clm" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/circuit{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/science/xenobiology) -"cln" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Kill Chamber"; req_access_txt = "55"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/science/xenobiology) -"clo" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"clp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology) -"clq" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/science/xenobiology) -"clr" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cls" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clt" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clu" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clv" = (/obj/machinery/portable_atmospherics/canister,/obj/effect/turf_decal/bot{dir = 2},/turf/open/floor/plasteel{dir = 2},/area/science/misc_lab) -"clw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/science/misc_lab) -"clx" = (/obj/item/stack/sheet/cardboard,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cly" = (/obj/effect/landmark/blobstart,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clz" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clA" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clC" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"clD" = (/obj/machinery/processor,/turf/open/floor/plating,/area/maintenance/port/aft) -"clE" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/port/aft) -"clF" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/aft) -"clG" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/port/aft) -"clH" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/port/aft) -"clI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"clJ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"clK" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/chief) -"clL" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"clM" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"clN" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/crew_quarters/heads/chief) -"clO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/engine/break_room) -"clP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side,/area/engine/break_room) -"clQ" = (/obj/machinery/light,/obj/structure/closet/firecloset,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/engine/break_room) -"clR" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 2; filter_type = "n2"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"clS" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 5},/turf/open/space,/area/space/nearstation) -"clT" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/space,/area/space/nearstation) -"clU" = (/turf/closed/wall,/area/maintenance/disposal/incinerator) -"clV" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/closed/wall,/area/maintenance/disposal/incinerator) -"clW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/disposal/incinerator) -"clX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/atmos{name = "Turbine Access"; req_access_txt = "32"},/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"clY" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/toy/minimeteor,/obj/item/weapon/poster/random_contraband,/turf/open/floor/plating,/area/maintenance/aft) -"clZ" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/obj/item/roller,/turf/open/floor/plating,/area/maintenance/aft) -"cma" = (/obj/structure/disposalpipe/segment,/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/snacks/donkpocket,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cmb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/c_tube,/turf/open/floor/plating,/area/maintenance/aft) -"cmc" = (/obj/structure/mopbucket,/obj/item/weapon/caution,/turf/open/floor/plating,/area/maintenance/aft) -"cmd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/science/xenobiology) -"cme" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/science/xenobiology) -"cmf" = (/obj/machinery/door/airlock/maintenance{name = "Air Supply Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cmg" = (/obj/machinery/door/airlock/maintenance{name = "Testing Lab Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/science/misc_lab) -"cmh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/science/misc_lab) -"cmi" = (/obj/structure/closet/cardboard,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cmj" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cmk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/maintenance/solars/port/aft) -"cml" = (/turf/closed/wall/r_wall,/area/maintenance/solars/port/aft) -"cmm" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/port/aft) -"cmn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/port/aft) -"cmp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmq" = (/obj/structure/closet/wardrobe/black,/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cms" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmu" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/port/aft) -"cmv" = (/obj/machinery/suit_storage_unit/ce,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/chief) -"cmw" = (/obj/machinery/holopad,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cmx" = (/obj/machinery/light{dir = 1},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cmy" = (/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cmz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cmA" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cmB" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/engineering) -"cmC" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 2; name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cmD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/engine/engineering) -"cmE" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/engine/atmos) -"cmF" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel,/area/engine/atmos) -"cmG" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cmH" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cmI" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/turf/open/floor/plasteel,/area/engine/atmos) -"cmJ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"cmK" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/engine/atmos) -"cmL" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 9},/turf/open/floor/plasteel,/area/engine/atmos) -"cmM" = (/obj/machinery/atmospherics/pipe/simple/orange/visible,/obj/structure/lattice,/turf/open/space,/area/space/nearstation) -"cmN" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cmO" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "atmospherics mix pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cmP" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cmQ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"cmR" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/trunk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"cmS" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"cmT" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) -"cmU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) -"cmV" = (/obj/structure/disposalpipe/segment,/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cmW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cmX" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cmY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cmZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/barricade/wooden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cna" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnb" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating/airless,/area/space/nearstation) -"cnc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cne" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cng" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard/aft) -"cnh" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cni" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnk" = (/obj/structure/rack{dir = 1},/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnl" = (/obj/machinery/door/airlock/maintenance{name = "Research Delivery access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnm" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cnn" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cno" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cnp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cnq" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cnr" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cns" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/solars/port/aft) -"cnt" = (/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 4},/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port/aft) -"cnu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cnv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cnw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cnx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cny" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft) -"cnz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cnA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port/aft) -"cnB" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/obj/machinery/computer/apc_control,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cnC" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cnD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cnE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cnF" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"cnG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/engine/engineering) -"cnH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cnI" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cnJ" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/red/side{dir = 10},/area/engine/atmos) -"cnK" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/turf/open/floor/plasteel/red/side,/area/engine/atmos) -"cnL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "N2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/engine/atmos) -"cnM" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/engine/atmos) -"cnN" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/blue/side{dir = 10},/area/engine/atmos) -"cnO" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/open/floor/plasteel/blue/side{dir = 0},/area/engine/atmos) -"cnP" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/blue/side{dir = 6},/area/engine/atmos) -"cnQ" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/arrival{dir = 10},/area/engine/atmos) -"cnR" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/turf/open/floor/plasteel/arrival,/area/engine/atmos) -"cnS" = (/obj/machinery/camera{c_tag = "Atmospherics South East"; dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/arrival{dir = 6},/area/engine/atmos) -"cnT" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Atmospherics External Airlock"; req_access_txt = "24"},/turf/open/floor/plating,/area/engine/atmos) -"cnU" = (/turf/open/floor/plating,/area/engine/atmos) -"cnV" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Atmospherics External Airlock"; req_access_txt = "24"},/turf/open/floor/plating,/area/engine/atmos) -"cnW" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/space,/area/space/nearstation) -"cnX" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall,/area/maintenance/disposal/incinerator) -"cnY" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cnZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to MiniSat"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"coa" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cob" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"coc" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cod" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"coe" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/airalarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cof" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cog" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"coh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"coi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"coj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard/aft) -"cok" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"col" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"com" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"con" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"coo" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cop" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"coq" = (/obj/structure/rack{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cor" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cos" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cot" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cou" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cov" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cow" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port/aft) -"cox" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"coy" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"coz" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"coA" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"coB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coH" = (/obj/machinery/door/airlock/engineering{name = "Port Quarter Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"coI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port/aft) -"coJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port/aft) -"coK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"coL" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"coM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"coN" = (/obj/machinery/shieldgen,/turf/open/floor/plating,/area/engine/engineering) -"coO" = (/turf/open/floor/plating,/area/engine/engineering) -"coP" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coQ" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coR" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coS" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coT" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coV" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) -"coW" = (/turf/closed/wall,/area/engine/engineering) -"coX" = (/obj/machinery/computer/station_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/engine/engineering) -"coY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/modular_computer/console/preset/engineering,/turf/open/floor/plasteel,/area/engine/engineering) -"coZ" = (/obj/machinery/computer/station_alert,/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -10; req_access_txt = "10"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 0; req_access_txt = "11"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 10; req_access_txt = "24"},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cpa" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start/chief_engineer,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cpb" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper/monitorkey,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cpc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cpd" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cpe" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"cpf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/engine/engineering) -"cpg" = (/obj/effect/landmark/lightsout,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cph" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cpi" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/closed/wall/r_wall,/area/engine/atmos) -"cpj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"cpk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/engine/atmos) -"cpl" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"cpm" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/atmos) -"cpn" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/closed/wall/r_wall,/area/engine/atmos) -"cpo" = (/obj/machinery/atmospherics/components/unary/tank/toxins{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpp" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "plasma tank pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpq" = (/obj/machinery/atmospherics/pipe/manifold4w/general{level = 2},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpr" = (/obj/effect/landmark/blobstart,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cps" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpu" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{name = "output gas connector port"},/obj/machinery/portable_atmospherics/canister,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cpv" = (/obj/structure/table,/obj/item/weapon/cartridge/medical,/turf/open/floor/plating,/area/maintenance/aft) -"cpw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/firecloset/full,/turf/open/floor/plating,/area/maintenance/aft) -"cpx" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/aft) -"cpy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpB" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpE" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"cpG" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpH" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpI" = (/obj/machinery/power/apc{dir = 8; name = "Starboard Quarter Maintenance APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Aft Starboard Solar Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpK" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cpL" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cpM" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Port Quarter Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cpN" = (/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cpO" = (/obj/machinery/power/apc{dir = 4; name = "Port Quarter Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/solars/port/aft) -"cpP" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port/aft) -"cpQ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cpR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cpS" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/open/floor/plating,/area/engine/engineering) -"cpT" = (/obj/machinery/portable_atmospherics/canister/freon,/turf/open/floor/plating,/area/engine/engineering) -"cpU" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "secure storage"},/turf/open/floor/plating,/area/engine/engineering) -"cpV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) -"cpW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"cpX" = (/turf/open/floor/plasteel,/area/engine/engineering) -"cpY" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/engineering) -"cpZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cqa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) -"cqb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Engineering Power Storage"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cqc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel,/area/engine/engineering) -"cqd" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the Engine."; dir = 8; layer = 4; name = "Engine Monitor"; network = list("Engine"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cqe" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/card/minor/ce,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cqf" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cqg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cqh" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/filingcabinet/chestdrawer,/mob/living/simple_animal/parrot/Poly,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cqi" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/engineering) -"cqj" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/engineering) -"cqk" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/engineering) -"cql" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/space,/area/space/nearstation) -"cqm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "waste_out"},/turf/open/floor/plating/airless,/area/engine/atmos) -"cqn" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/space,/area/space/nearstation) -"cqo" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4; name = "input gas connector port"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqp" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqr" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqt" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Incinerator to Output"; on = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cqu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/disposal/incinerator) -"cqv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/aft) -"cqw" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/aft) -"cqx" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/aft) -"cqy" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/cigbutt/roach,/turf/open/floor/plating,/area/maintenance/aft) -"cqz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/starboard/aft) -"cqA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqB" = (/obj/structure/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqC" = (/obj/structure/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/starboard/aft) -"cqE" = (/obj/structure/closet,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqF" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqG" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqH" = (/obj/structure/rack,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cqI" = (/turf/closed/wall/r_wall,/area/maintenance/solars/starboard/aft) -"cqJ" = (/obj/machinery/door/airlock/engineering{name = "Starboard Quarter Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cqK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/solars/starboard/aft) -"cqL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cqM" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cqN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/engine/engine_smes) -"cqO" = (/turf/closed/wall/r_wall,/area/engine/engine_smes) -"cqP" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"cqQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cqR" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) -"cqS" = (/obj/effect/landmark/blobstart,/turf/open/floor/plating,/area/engine/engineering) -"cqT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"cqU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cqV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cqW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) -"cqX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel,/area/engine/engineering) -"cqY" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cqZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"cra" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"crb" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/machinery/light_switch{pixel_x = 27},/obj/item/weapon/cartridge/atmos,/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"crc" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) -"crd" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cre" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/engine/atmos) -"crf" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank In"},/turf/closed/wall/r_wall,/area/engine/atmos) -"crg" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank Out"},/turf/closed/wall/r_wall,/area/engine/atmos) -"crh" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"cri" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"crj" = (/obj/machinery/atmospherics/components/binary/valve{name = "Mix to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"crk" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"crl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"crm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"crn" = (/obj/machinery/portable_atmospherics/canister,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft) -"cro" = (/obj/machinery/door/airlock/maintenance{name = "Biohazard Disposals"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"crp" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/starboard/aft) -"crq" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"crr" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"crs" = (/obj/machinery/power/apc{dir = 8; name = "Starboard Quarter Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"crt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cru" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"crv" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/port/aft) -"crw" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cry" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"crA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"crB" = (/obj/machinery/field/generator,/turf/open/floor/plating,/area/engine/engineering) -"crC" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/engine/engineering) -"crD" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"crE" = (/obj/structure/table,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/engine/engineering) -"crF" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plasteel,/area/engine/engineering) -"crG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"crH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"crI" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plasteel,/area/engine/engineering) -"crJ" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel,/area/engine/engineering) -"crK" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel,/area/engine/engineering) -"crL" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"crM" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"crN" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral{dir = 2},/area/crew_quarters/heads/chief) -"crO" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads/chief) -"crP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/crew_quarters/heads/chief) -"crQ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"crR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"crS" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/engine/engineering) -"crT" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/open/floor/engine/n2,/area/engine/atmos) -"crU" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/open/floor/engine/n2,/area/engine/atmos) -"crV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2,/area/engine/atmos) -"crW" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/open/floor/engine/o2,/area/engine/atmos) -"crX" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/open/floor/engine/o2,/area/engine/atmos) -"crY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/o2,/area/engine/atmos) -"crZ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/air,/area/engine/atmos) -"csa" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "air_sensor"},/turf/open/floor/engine/air,/area/engine/atmos) -"csb" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "vent_map"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/air,/area/engine/atmos) -"csc" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"csd" = (/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/obj/machinery/computer/turbine_computer{id = "incineratorturbine"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"cse" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"csf" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 1; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 0; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"csg" = (/obj/machinery/button/door{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/button/door{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"csh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "Incinerator to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"csi" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; idInterior = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = 6; pixel_y = -26; req_access_txt = "12"},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = -6; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/disposal/incinerator) -"csj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"csk" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/general/hidden{icon_state = "manifold"; dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"csl" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"csm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/aft) -"csn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) -"cso" = (/obj/structure/disposalpipe/segment,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft) -"csp" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/aft) -"csq" = (/obj/structure/rack,/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"csr" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"css" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cst" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"csu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"csv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"csw" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"csx" = (/obj/structure/chair/stool,/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"csy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"csz" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"csA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/port/aft) -"csB" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port/aft) -"csC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) -"csE" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"csF" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) -"csG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"csH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall,/area/engine/engineering) -"csI" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"csJ" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"csK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Power Storage"; req_access_txt = "11"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"csL" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) -"csM" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/item/weapon/storage/box/lights/mixed,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"csN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"csO" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"csP" = (/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"csQ" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"csR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"csS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"csT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/radiation,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"csU" = (/turf/open/floor/engine/n2,/area/engine/atmos) -"csV" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/engine/n2,/area/engine/atmos) -"csW" = (/turf/open/floor/engine/o2,/area/engine/atmos) -"csX" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/engine/o2,/area/engine/atmos) -"csY" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/engine/air,/area/engine/atmos) -"csZ" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/landmark/event_spawn,/turf/open/floor/engine/air,/area/engine/atmos) -"cta" = (/turf/open/floor/engine/air,/area/engine/atmos) -"ctb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal/incinerator) -"ctc" = (/turf/closed/wall/r_wall,/area/maintenance/disposal/incinerator) -"ctd" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/closed/wall/r_wall,/area/maintenance/disposal/incinerator) -"cte" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Turbine Interior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/disposal/incinerator) -"ctf" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/maintenance/disposal/incinerator) -"ctg" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"cth" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) -"cti" = (/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/turf/open/floor/plating,/area/maintenance/aft) -"ctj" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"ctk" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/aft) -"ctl" = (/obj/effect/landmark/xeno_spawn,/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard/aft) -"ctm" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ctn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cto" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ctp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ctq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/starboard/aft) -"ctr" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Starboard Quarter Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cts" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"ctt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"ctu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"ctv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"ctw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"ctx" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"cty" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/engineering) -"ctz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) -"ctA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port/aft) -"ctB" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) -"ctC" = (/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"ctD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"ctE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"ctF" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"ctG" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) -"ctH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"ctI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"ctJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"ctK" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"ctL" = (/obj/machinery/light/small,/turf/open/floor/engine/n2,/area/engine/atmos) -"ctM" = (/obj/machinery/light/small,/turf/open/floor/engine/o2,/area/engine/atmos) -"ctN" = (/obj/machinery/light/small,/turf/open/floor/engine/air,/area/engine/atmos) -"ctO" = (/obj/structure/lattice,/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"; on = 1},/turf/open/space,/area/maintenance/disposal/incinerator) -"ctP" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; on = 1},/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; layer = 3.1; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = -24},/obj/machinery/light/small{dir = 8},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/turf/open/floor/engine,/area/maintenance/disposal/incinerator) -"ctQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/disposal/incinerator) -"ctR" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; on = 1},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/doorButtons/access_button{idSelf = "incinerator_access_control"; idDoor = "incinerator_airlock_interior"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/engine,/area/maintenance/disposal/incinerator) -"ctS" = (/obj/machinery/light/small,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"ctT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"ctU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) -"ctV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) -"ctW" = (/obj/machinery/light/small,/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/clipboard,/turf/open/floor/plating,/area/maintenance/aft) -"ctX" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) -"ctY" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"ctZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cua" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cub" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port/aft) -"cuc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cud" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) -"cue" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) -"cuf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) -"cug" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "SMES Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cuh" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/engine/engineering) -"cui" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) -"cuj" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) -"cuk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cul" = (/obj/machinery/holopad,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/engine/engineering) -"cum" = (/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel,/area/engine/engineering) -"cun" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) -"cuo" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/maintenance/disposal/incinerator) -"cup" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Turbine Exterior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/disposal/incinerator) -"cuq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/aft) -"cur" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Waste Out"; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) -"cus" = (/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plating,/area/maintenance/aft) -"cut" = (/obj/structure/closet/emcloset,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) -"cuu" = (/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cuv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cuw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cux" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cuy" = (/obj/machinery/door/window{name = "SMES Chamber"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cuz" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cuA" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) -"cuB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engine_smes) -"cuC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cuD" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "SMES Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cuE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/loadingarea,/area/engine/engineering) -"cuF" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/engineering) -"cuG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuH" = (/obj/machinery/firealarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cuM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"cuN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cuO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cuP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"cuQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cuR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cuS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Supermatter Engine Room"; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/engineering) -"cuT" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cuU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cuV" = (/obj/machinery/camera{c_tag = "Engineering East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/structure/closet/wardrobe/engineering_yellow,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) -"cuW" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cuX" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cuY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cuZ" = (/obj/machinery/door/poddoor{id = "auxincineratorvent"; name = "Auxiliary Incinerator Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cva" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) -"cvb" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cvc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cvd" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cve" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cvf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/starboard/aft) -"cvg" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvl" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 4; name = "SMES Room"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/engine_smes) -"cvm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvn" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvo" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 8; name = "SMES Room"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{name = "floor"},/area/engine/engine_smes) -"cvp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cvq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cvr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cvs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cvt" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cvu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) -"cvv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cvw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cvx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/engine,/area/engine/engineering) -"cvy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/flashlight,/obj/effect/turf_decal/stripes/line{dir = 1},/obj/item/weapon/pipe_dispenser,/turf/open/floor/engine,/area/engine/engineering) -"cvB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/tank/internals/emergency_oxygen/engi{pixel_x = 5; pixel_y = 0},/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/meson/engine,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/glasses/meson,/obj/item/device/geiger_counter,/obj/item/device/geiger_counter,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvF" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cvG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/engine,/area/engine/engineering) -"cvH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cvI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{icon_state = "intact"; dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cvJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cvK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cvL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/vending/tool,/turf/open/floor/plasteel,/area/engine/engineering) -"cvM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/vending/engivend,/turf/open/floor/plasteel,/area/engine/engineering) -"cvN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/secure_closet/engineering_electrical,/turf/open/floor/plasteel,/area/engine/engineering) -"cvO" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/turf_decal/stripes/line{dir = 5},/obj/structure/closet/secure_closet/engineering_welding,/turf/open/floor/plasteel,/area/engine/engineering) -"cvP" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/engine/engineering) -"cvQ" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) -"cvR" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) -"cvS" = (/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/camera{c_tag = "Turbine Chamber"; dir = 4; network = list("Turbine")},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cvT" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/maintenance/aft) -"cvU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cvV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvW" = (/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvX" = (/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvY" = (/obj/machinery/light,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/engine/engine_smes) -"cvZ" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwb" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cwd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cwe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) -"cwf" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cwg" = (/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cwh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/engine/engineering) -"cwi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Supermatter Engine Room"; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/engineering) -"cwj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/engine,/area/engine/engineering) -"cwk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cwl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cwr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/engine,/area/engine/engineering) -"cws" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/engine,/area/engine/engineering) -"cwt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Supermatter Engine Room"; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/engineering) -"cwu" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cwv" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Pod Four"; req_access = null; req_access_txt = "0"},/turf/open/floor/plating,/area/engine/engineering) -"cww" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Escape Pod Four"; req_access = null; req_access_txt = "0"; shuttledocked = 1},/turf/open/floor/plating,/area/engine/engineering) -"cwx" = (/obj/machinery/door/airlock/titanium{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod4"; name = "escape pod 4"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) -"cwy" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/obj/machinery/light/small,/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) -"cwz" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_lavaland4"; shuttleId = "pod4"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) -"cwA" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_4) -"cwB" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_lavaland4"; name = "lavaland"},/turf/open/space,/area/space) -"cwC" = (/obj/machinery/power/turbine{luminosity = 2},/obj/structure/cable/yellow,/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cwD" = (/obj/item/weapon/wrench,/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) -"cwE" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/maintenance/aft) -"cwF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table_frame,/obj/item/weapon/wirerod,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cwG" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cwH" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/airless,/area/space) -"cwI" = (/obj/machinery/door/airlock{name = "Observatory Access"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cwJ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "SMES room APC"; pixel_y = -24},/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwK" = (/obj/structure/chair/office/light{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwL" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/item/weapon/stock_parts/cell/high/plus,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/engine/engine_smes) -"cwM" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/engine/engineering) -"cwN" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cwO" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cwP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/engine,/area/engine/engineering) -"cwQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cwR" = (/obj/effect/turf_decal/stripes/corner,/obj/machinery/atmospherics/pipe/simple/general/visible{icon_state = "intact"; dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cwS" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"cwT" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/components/trinary/filter/flipped{icon_state = "filter_off_f"; dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cwU" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/light,/turf/open/floor/engine,/area/engine/engineering) -"cwV" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -26},/obj/machinery/camera{c_tag = "Engineering Supermatter Fore"; dir = 1; network = list("SS13","Engine"); pixel_x = 23},/turf/open/floor/engine,/area/engine/engineering) -"cwW" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Gas to Filter"; on = 1},/turf/open/floor/engine,/area/engine/engineering) -"cwX" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/machinery/button/door{id = "engsm"; name = "Radiation Shutters Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/engineering) -"cwY" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/light,/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"cwZ" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cxa" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cxb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Atmos to Loop"; on = 0},/turf/open/floor/engine,/area/engine/engineering) -"cxc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cxd" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plating,/area/engine/engineering) -"cxe" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cxf" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel,/area/engine/engineering) -"cxg" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) -"cxh" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/engine/engineering) -"cxi" = (/obj/machinery/camera{c_tag = "Engineering Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) -"cxj" = (/obj/effect/landmark/carpspawn,/turf/open/space,/area/space/nearstation) -"cxk" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/maintenance/disposal/incinerator) -"cxl" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/disposal/incinerator) -"cxm" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Turbine Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/disposal/incinerator) -"cxn" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cxo" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/port/aft) -"cxp" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cxq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cxr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel,/area/engine/engineering) -"cxs" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cxt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) -"cxu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) -"cxv" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cxw" = (/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cxx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{name = "scrubbers pipe"; icon_state = "manifold"; dir = 4},/obj/machinery/meter,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cxy" = (/obj/structure/sign/radiation,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cxz" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cxA" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/glass_engineering{heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/supermatter) -"cxB" = (/turf/closed/wall/r_wall,/area/engine/supermatter) -"cxC" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "External Gas to Loop"},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cxD" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "External Gas to Loop"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cxE" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cxF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/engine,/area/engine/engineering) -"cxG" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel,/area/engine/engineering) -"cxH" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cxI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cxJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cxK" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"cxL" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/closed/wall,/area/engine/engineering) -"cxM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/space,/area/space) -"cxN" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 9},/turf/open/space,/area/space/nearstation) -"cxO" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cxP" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cxQ" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cxR" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/port/aft) -"cxS" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/port/aft) -"cxT" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/port/aft) -"cxU" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/engine/engineering) -"cxV" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) -"cxW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) -"cxX" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/open/floor/plasteel,/area/engine/engineering) -"cxY" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/engine/engineering) -"cxZ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/engine/engineering) -"cya" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/engineering) -"cyb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) -"cyc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/effect/turf_decal/bot,/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cyd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Gas to Filter"},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null; req_one_access_txt = "24;10"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/engine,/area/engine/supermatter) -"cye" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/engine,/area/engine/supermatter) -"cyf" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; icon_state = "pump_map"; name = "Gas to Chamber"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/engine,/area/engine/supermatter) -"cyg" = (/obj/structure/sign/fire,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyh" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cyi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cyj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Supermatter Engine Room"; req_access_txt = "10"},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cyk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cyl" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) -"cym" = (/obj/machinery/camera{c_tag = "Engineering MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cyn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) -"cyo" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/engine/engineering) -"cyp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cyq" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/aft) -"cyr" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cys" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port/aft) -"cyt" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plating,/area/maintenance/port/aft) -"cyu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/engine/engineering) -"cyv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/engine/engineering) -"cyw" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cyx" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cyy" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) -"cyz" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/fans/tiny,/turf/open/floor/plating,/area/engine/engineering) -"cyA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/camera{c_tag = "Engineering Supermatter Port"; dir = 4; network = list("SS13","Engine")},/turf/open/floor/engine,/area/engine/engineering) -"cyB" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cyC" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyD" = (/obj/machinery/atmospherics/pipe/simple/general/visible{icon_state = "intact"; dir = 6},/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyE" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyF" = (/obj/machinery/door/airlock/glass_engineering{heat_proof = 1; name = "Supermatter Chamber"; req_access_txt = "10"},/turf/open/floor/engine,/area/engine/supermatter) -"cyG" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyH" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyI" = (/obj/machinery/status_display,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cyJ" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cyK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/camera{c_tag = "Engineering Supermatter Starboard"; dir = 8; network = list("SS13","Engine"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine,/area/engine/engineering) -"cyL" = (/turf/open/floor/plasteel/black,/area/engine/engineering) -"cyM" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cyN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) -"cyO" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cyP" = (/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) -"cyQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) -"cyR" = (/obj/structure/transit_tube_pod,/obj/structure/transit_tube/station/reverse/flipped{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/engine/engineering) -"cyS" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) -"cyT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyV" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cyZ" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 6},/obj/structure/lattice,/turf/open/space,/area/space) -"cza" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 4},/turf/open/space,/area/space) -"czb" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) -"czc" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 4},/turf/open/space,/area/space) -"czd" = (/obj/machinery/atmospherics/pipe/heat_exchanging/junction{dir = 8},/turf/closed/wall/r_wall,/area/engine/engineering) -"cze" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"czf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Gas to Cooling Loop"; on = 1},/turf/open/floor/engine,/area/engine/engineering) -"czg" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/engine,/area/engine/engineering) -"czh" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/supermatter) -"czi" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Supermatter Chamber"; dir = 2; network = list("Engine"); pixel_x = 23},/turf/open/floor/engine,/area/engine/supermatter) -"czj" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plating,/area/engine/supermatter) -"czk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/engine,/area/engine/supermatter) -"czl" = (/turf/open/floor/engine,/area/engine/supermatter) -"czm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/engine,/area/engine/supermatter) -"czn" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/manifold/general/visible{icon_state = "manifold"; dir = 4},/turf/open/floor/plating,/area/engine/supermatter) -"czo" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/engine,/area/engine/supermatter) -"czp" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/supermatter) -"czq" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"czr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Gas"; on = 0},/turf/open/floor/engine,/area/engine/engineering) -"czs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"czt" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel/black,/area/engine/engineering) -"czu" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"czv" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/engineering) -"czw" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plasteel,/area/engine/engineering) -"czx" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/engine/engineering) -"czy" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/engine/engineering) -"czz" = (/obj/structure/transit_tube,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/engine/engineering) -"czA" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/aft) -"czB" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 5},/turf/open/space,/area/space) -"czC" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 4},/turf/open/space,/area/space) -"czD" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 10},/turf/open/space,/area/space) -"czE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/engine/engineering) -"czF" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"czG" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"czH" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/tank/internals/plasma,/turf/open/floor/plating,/area/engine/supermatter) -"czI" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/engine,/area/engine/supermatter) -"czJ" = (/obj/machinery/power/supermatter_shard/crystal,/turf/open/floor/engine,/area/engine/supermatter) -"czK" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/supermatter) -"czL" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/engine/engineering) -"czM" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel/black,/area/engine/engineering) -"czN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/black,/area/engine/engineering) -"czO" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/engine/engineering) -"czP" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) -"czQ" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube,/turf/open/floor/plating,/area/engine/engineering) -"czR" = (/turf/closed/wall/r_wall,/area/space) -"czS" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 9},/turf/open/space,/area/space) -"czT" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/engine/engineering) -"czU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/engine,/area/engine/engineering) -"czV" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 2; icon_state = "pump_map"; name = "Cooling Loop Bypass"},/turf/open/floor/engine,/area/engine/engineering) -"czW" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/supermatter) -"czX" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/engine/supermatter) -"czY" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/engine/supermatter) -"czZ" = (/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/supermatter) -"cAa" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix Bypass"},/turf/open/floor/engine,/area/engine/engineering) -"cAb" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAc" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) -"cAd" = (/obj/structure/sign/securearea,/turf/closed/wall,/area/engine/engineering) -"cAe" = (/obj/structure/transit_tube/curved/flipped{dir = 1},/turf/open/space,/area/space) -"cAf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAg" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple,/obj/structure/lattice,/turf/open/space,/area/space) -"cAh" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 6},/turf/open/space,/area/space) -"cAi" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 10},/obj/structure/lattice,/turf/open/space,/area/space) -"cAj" = (/obj/machinery/atmospherics/pipe/heat_exchanging/junction{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) -"cAk" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"cAl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Cooling Loop to Gas"; on = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAm" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/engine,/area/engine/engineering) -"cAn" = (/obj/structure/sign/electricshock,/turf/closed/wall/r_wall,/area/engine/supermatter) -"cAo" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/turf/open/floor/plating,/area/engine/supermatter) -"cAp" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"cAq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Gas to Mix"; on = 0},/turf/open/floor/engine,/area/engine/engineering) -"cAr" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cAs" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAt" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAu" = (/obj/structure/transit_tube/curved{dir = 4},/turf/open/space,/area/space) -"cAv" = (/obj/structure/lattice,/obj/structure/transit_tube/crossing/horizontal,/turf/open/space,/area/space) -"cAw" = (/obj/structure/transit_tube/horizontal,/turf/open/space,/area/space) -"cAx" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/transit_tube/crossing/horizontal,/turf/open/space,/area/space) -"cAy" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube/horizontal,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAz" = (/obj/structure/transit_tube/horizontal,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAA" = (/obj/structure/transit_tube/station/reverse,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAB" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAC" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/heat_exchanging/simple,/turf/open/space,/area/space) -"cAD" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/heat_exchanging/simple,/turf/open/space,/area/space) -"cAE" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/engine,/area/engine/engineering) -"cAF" = (/obj/effect/turf_decal/stripes/corner{dir = 8},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/engine,/area/engine/engineering) -"cAG" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cAH" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "co2"; on = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAI" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAJ" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/engine,/area/engine/engineering) -"cAK" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/camera{c_tag = "Engineering Supermatter Aft"; dir = 2; network = list("SS13","Engine"); pixel_x = 23},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAL" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "plasma"; on = 1},/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/engine,/area/engine/engineering) -"cAM" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cAN" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = ""; on = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAO" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAP" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/engine,/area/engine/engineering) -"cAQ" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/engine,/area/engine/engineering) -"cAR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAS" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cAT" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAU" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cAV" = (/obj/structure/closet/crate/bin,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/engine,/area/engine/engineering) -"cAW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/engine,/area/engine/engineering) -"cAX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/engine,/area/engine/engineering) -"cAY" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/engine/engineering) -"cAZ" = (/turf/open/floor/engine,/area/engine/engineering) -"cBa" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/engine/engineering) -"cBb" = (/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBc" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/engine,/area/engine/engineering) -"cBd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/engine,/area/engine/engineering) -"cBe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/turf_decal/stripes/corner,/turf/open/floor/engine,/area/engine/engineering) -"cBf" = (/obj/effect/turf_decal/stripes/line{dir = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/engine,/area/engine/engineering) -"cBg" = (/obj/structure/table,/obj/item/weapon/pipe_dispenser,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBh" = (/obj/machinery/light,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBi" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBj" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBl" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cBo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/engine/engineering) -"cBp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/engine/engineering) -"cBq" = (/obj/structure/closet/wardrobe/engineering_yellow,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/engine,/area/engine/engineering) -"cBr" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBt" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBu" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBv" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/engine,/area/engine/engineering) -"cBw" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/engine,/area/engine/engineering) -"cBy" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/engine/engineering) -"cBA" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 6},/obj/machinery/meter,/turf/open/floor/engine,/area/engine/engineering) -"cBB" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) -"cBC" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plating,/area/engine/engineering) -"cBD" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) -"cBE" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBG" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBH" = (/obj/machinery/camera{c_tag = "MiniSat Pod Access"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/light/small,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cBI" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/engine/engineering) -"cBJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Laser Room"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/engine/engineering) -"cBK" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/engine/engineering) -"cBL" = (/obj/structure/grille,/obj/structure/window/reinforced/highpressure/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/engine/engineering) -"cBM" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plating/airless,/area/engine/engineering) -"cBN" = (/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) -"cBO" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Foyer"; req_one_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cBP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) -"cBQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) -"cBR" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8},/turf/open/floor/plating/airless,/area/ai_monitored/turret_protected/aisat_interior) -"cBS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cBT" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard/aft) -"cBU" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 5},/obj/structure/lattice,/turf/open/space,/area/space) -"cBV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) -"cBX" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBY" = (/obj/structure/reflector/double{anchored = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cBZ" = (/obj/structure/reflector/box{anchored = 1; dir = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cCa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cCb" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/engine/engineering) -"cCc" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/folder{pixel_x = 3},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/pen,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCe" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/off{pixel_y = 4},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCf" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/black,/area/engine/engineering) -"cCg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/engine/engineering) -"cCh" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/engine/engineering) -"cCi" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/engine/engineering) -"cCj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) -"cCk" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCn" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCp" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "MiniSat Teleport Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCq" = (/obj/machinery/button/door{id = "teledoor"; name = "MiniSat Teleport Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "17;65"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCr" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cCs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) -"cCt" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/emitter{anchored = 1; dir = 4; icon_state = "emitter"; state = 2},/turf/open/floor/plating,/area/engine/engineering) -"cCu" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/emitter{anchored = 1; dir = 8; icon_state = "emitter"; state = 2},/turf/open/floor/plating,/area/engine/engineering) -"cCv" = (/obj/effect/decal/cleanable/dirt,/turf/closed/wall/r_wall,/area/engine/engineering) -"cCw" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCx" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCy" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start/cyborg,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCA" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCB" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Teleporter"; req_access_txt = "17;65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCC" = (/obj/machinery/bluespace_beacon,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCD" = (/obj/machinery/teleport/station,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cCE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light,/turf/open/floor/plating,/area/engine/engineering) -"cCF" = (/obj/structure/reflector/single{anchored = 1; dir = 1; icon_state = "reflector"},/turf/open/floor/plating,/area/engine/engineering) -"cCG" = (/obj/structure/reflector/single{anchored = 1; dir = 4; icon_state = "reflector"},/turf/open/floor/plating,/area/engine/engineering) -"cCH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light,/turf/open/floor/plating,/area/engine/engineering) -"cCI" = (/obj/item/weapon/crowbar/large,/turf/open/floor/plating,/area/engine/engineering) -"cCJ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space) -"cCK" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/obj/structure/lattice,/turf/open/space,/area/space) -"cCL" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCN" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) -"cCP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "MiniSat Foyer APC"; pixel_x = 27; pixel_y = 0},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) -"cCR" = (/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCS" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) -"cCT" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard/aft) -"cCU" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat/atmos) -"cCV" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat/atmos) -"cCW" = (/obj/structure/rack{dir = 1},/obj/machinery/status_display{pixel_y = -32},/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cCX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cCZ" = (/obj/machinery/turretid{control_area = null; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "65"},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Foyer"; dir = 1; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDa" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cDb" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat/service) -"cDc" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar/red,/obj/item/clothing/head/welding,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/atmos) -"cDd" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/atmos) -"cDe" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) -"cDf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) -"cDh" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/service) -"cDi" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/turf_decal/stripes/corner{dir = 2},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/atmos) -"cDj" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Mix to MiniSat"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/aisat/atmos) -"cDk" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air Out"; on = 0},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/aisat/atmos) -"cDl" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/aisat/atmos) -"cDm" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) -"cDn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDo" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) -"cDp" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/aisat/service) -"cDq" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/aisat/service) -"cDr" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/stack/sheet/mineral/plasma{amount = 35; layer = 3.1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/service) -"cDs" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Atmospherics"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/space_heater,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/atmos) -"cDt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/atmos) -"cDu" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/atmos) -"cDv" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat/atmos) -"cDw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) -"cDx" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Antechamber"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/turretid{control_area = "AI Satellite Atmospherics"; enabled = 1; icon_state = "control_standby"; name = "Atmospherics Turret Control"; pixel_x = -27; pixel_y = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) -"cDy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turretid{control_area = "AI Satellite Service"; enabled = 1; icon_state = "control_standby"; name = "Service Bay Turret Control"; pixel_x = 27; pixel_y = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) -"cDA" = (/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat/service) -"cDB" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDD" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Service Bay"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/service) -"cDE" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Atmospherics APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/atmos) -"cDF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/atmos) -"cDG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/atmos) -"cDH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/atmos) -"cDI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Atmospherics"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/ai_slipper{uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Service Bay"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{uses = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDQ" = (/obj/machinery/power/apc{dir = 4; name = "MiniSat Service Bay APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/service) -"cDR" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat/atmos) -"cDS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/floorbot,/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/aisat/atmos) -"cDT" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) -"cDU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "AI Satellite Hallway"; enabled = 1; icon_state = "control_standby"; name = "Chamber Hallway Turret Control"; pixel_x = 32; pixel_y = -24; req_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) -"cDV" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/aisat_interior) -"cDW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/cleanbot,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/aisat/service) -"cDX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/service) -"cDY" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat/service) -"cDZ" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat/hallway) -"cEa" = (/turf/closed/wall,/area/ai_monitored/turret_protected/aisat/hallway) -"cEb" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Hallway"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat/hallway) -"cEe" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEf" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_southmaint"; name = "south maintenance airlock"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cEg" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEi" = (/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEn" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEo" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEp" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEq" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cEr" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/e_gun},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEu" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/e_gun},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEv" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cEw" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEx" = (/obj/machinery/camera/motion{c_tag = "MiniSat Core Hallway"; dir = 4; network = list("MiniSat")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEy" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEA" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cED" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEF" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEH" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEI" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEL" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "MiniSat Chamber Hallway APC"; pixel_x = 27; pixel_y = 0},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/aisat/hallway) -"cEM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cEN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = -28; pixel_y = -29},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat/hallway) -"cEP" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) -"cEQ" = (/obj/machinery/status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) -"cER" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Observation"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cES" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) -"cET" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) -"cEU" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cEV" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cEW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cEX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cEY" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cEZ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFd" = (/obj/structure/chair/office/dark,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFe" = (/obj/structure/grille,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat/hallway) -"cFf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai) -"cFg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai) -"cFi" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cFj" = (/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFk" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/ai_slipper{uses = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFn" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFs" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/ai_status_display{pixel_x = 32},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFt" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 5; pixel_y = -24},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFv" = (/obj/machinery/door/window{dir = 1; name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "AI Chamber APC"; pixel_y = -24},/obj/machinery/flasher{id = "AI"; pixel_x = -11; pixel_y = -24},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber North"; dir = 1; network = list("MiniSat")},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFx" = (/turf/closed/wall,/area/ai_monitored/turret_protected/ai) -"cFy" = (/obj/effect/landmark/start/ai,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -9},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = -31},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27; pixel_y = -9},/obj/machinery/newscaster/security_unit{pixel_x = -28; pixel_y = -28},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 28; pixel_y = -28},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFz" = (/obj/machinery/ai_slipper{uses = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFA" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cFB" = (/obj/effect/landmark/tripai,/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFD" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFE" = (/obj/effect/landmark/tripai,/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFF" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) -"cFG" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_s"; name = "south of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) -"cFH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/closed/wall,/area/ai_monitored/turret_protected/ai) -"cFJ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFK" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber South"; dir = 2; network = list("MiniSat")},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFL" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/ai_slipper{uses = 10},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai) -"cFM" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFN" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) -"cFO" = (/obj/machinery/camera{c_tag = "MiniSat External South"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaadaadaadaadaadaacaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaafaagaahaaiaajaakaalaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaamaanaaoaapaaoaaqaaraacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaasaasaasaasaasaasaasaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaataacaacaauaavaacaacaacaawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaacaayaazaaAaacaaBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaCaaoaaDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaaEaaoaaFaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaHaazaazaaIaacaaCaaoaaDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaJaazaazaaKaacaaCaazaaDaacaacaaLaaMaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaJaazaazaaNaacaaOaaPaaOaacaaQaaRaaSaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaJaazaazaaTaaUaazaazaazaaVaazaazaazaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaWaazaazaaXaaOaazaaoaazaaOaaYaaYaaZaacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacabcaacaacaacaazaaoaazaacaacaacaauaacaacaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabdaaTabeabfabgaacaazaaoaazaacabhabiabjabkablaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabmaasaasaasaasaacabnaaoaboaacaasaasaasaasaasaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabdaazabpabqabqabrabqabqabqabrabqabqabsaazabtaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabvaazabwaaRaaRaaOaaRaaRaaRaaOaaRaaRabxaazabyaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabzabAabBabCabDaacaasaasaasaacabEabFabBabGabHaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabIaazabJaacaacaacaaOabKaaOaacaacaacaazaazaboaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabLabMabNaacaaaaacabOabOabOaacaaaaacabPabQabPaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabOabOabOaacaaaaatabRabSabTaawaaaaacabOabOabOaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatabRabSabTaaBaaaaaaaaaaaaaaaaaaaaaaaxabRabSabTaawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWabWabWabWabWaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXabVaaaabVaaaabVaaaabVaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabYabYabZacaacbacaacbacaaccabYabYaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabYacdaceacfacgachaciacjackaclabYaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabYacmacnacoacnacnacnacpackacqabYabVabVaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaabVaaaabVaaaabVaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabYabYacracsactacuacvaciaciackacwabYabVabVabVabVabVabVabVabVabVabVabVaaaaaaaaaabVaaaabVaaaabVaaaabVaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxabYacyaciaciaciaciaczaciaciacAacBabYaaaabVaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaabVaaaabVaaaabVaaaabVaaaaaaaaaaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYabYacCaczaciaciacDacEaczaciacFacGabYabVacHabVabVabVabVabVabVabVabVabVabVabVabVabVaaaabVaaaabVaaaabVaaaaaaaaaaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaacIacIacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYacJaciaciaciacKacLacMaciaciacNacOabYabYacPabVabVabVabVabVabVabVabVaaaaaaaaaaaaabVabVabVabVabVabVabVabVaaaaaaaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaacQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacSacTacUacVacWaciacXaciaciaciaciaciaciackaciacYacZacPadaadaadbadaadaadbadbadaadcaddadeaddadeaddadfadfadgadgadgadfadfaaaaaaaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaacQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVadhabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiadjadkadladmadnaciaciadoadpadqaciadradsadtaciaduadvacPabVaaaaaaaaaaaaaaaaaaabVadeadwadxadxadxadyadfadzadAadBadCadDadfaaaaaaaaaabVaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVadEabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIadbadbadbadbabVabVaaaadFaaaabVabVacIacIacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiadGadHadIadmadJadKadJadJadJadLadJadJadJadMadJadJadNacPacPacPacPacPacPacPacPacPacPadOadxadPadQadwadfadRadSadTadUadVadfaaaabVadWabWabWabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIacIacIabVabVaaaadXaaaadYabVacIacIacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaabVaaaabVaaaaaaadFaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiadZaeaaebadmaecaciaedadJaeeaefaegadJaehaeiaejadJaekacPaelaemaenaeoaepaeqaeraesacPaetadxadPaeuadwadgaevaewaexadTaeyadfaaaabVaddaezaddabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQaaaaaaabVaaaabVaaaaaaadXaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeAaeAaeAaeAaeAaaaaeBaaaaeAaeAaeAaeAaeAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRaeCaeDaeEadmaeFaciaeGadJaeHaeIaeJadJaeKaeLaeGadJaeMacPaeNaeOaePaePaePaePaePaeQacPaeRadxadPaeuadwadgaeSaeTaeUadTaeVadfabVabVaddaeWaddabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeXaeXaeXaeXaeXaaaaeYaaaaeXaeXaeXaeXaeXabVacIaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaeZafaafaafaafaafbafcafdafeafeafeafeaffaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafgacRacRacRafhafiafjadmafkaflafmadJafkafnadJadJadJafoafmadJadJacPafpafqafrafsaftafuafvafwafxadxadxadPaeuadwadfafyafzafAafBafCadfadeadeadcaezaddaddadcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaafDafEafEafEafEafFafGafHafIafIafIafIafJaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVafKafKafKafKafKaaaafcaaaafKafKafKafKafKabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRafLafMafNafOafPafQafRafSafTafUafVafWafXafYafZagaagbagcagdacPageagfaggaghagiagjagkaglagmadxadxagnagoaddadfagpadfagqadfagradfagsagtaddaguaddagvagwagwagwaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVagxagxagxagxagxaaaafGaaaagxagxagxagxagxabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaaaaabVaaaaaaaaaafcaaaaaaaaaabVaaaaaaaaaacQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRagyagzagAagBagCagDagEagFagFagGagHagFagFagFagIagJagKagLagMacPageageagNagOagPagQagRagSacPagTagUagVagWaddagXagYagZahaahbahcagZahdaheahfahgahhahiahjahkahlahmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaaaaabVaaaaaaaaaafGaaaaaaaaaabVaaaaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeAaeAaeAaeAaeAaaaafcaaaaeAaeAaeAaeAaeAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahnahoahpahqahrahsahtahuahvahwahwahxahyahzahAahAahAadJahBahCacPacPacPahDahEahFahGahHahIacPahJadeahKahLaddahMahNahOahPahQahRahSahTahUaddahVaddagvagwagwagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeXaeXaeXaeXaeXaaaafGaaaaeXaeXaeXaeXaeXabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaeZafaafaafaafaafbafcafdafeafeafeafeaffaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRahWahXahYahtabYadJahZadJadJadJaiaaiaaiaaiaaiaaibaicaidaieaifaigaihaiiaijaikailaidaimagZainaioaipaiqairahOaisahQaitahSaiuaddadcaddaddaddadcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaafDafEafEafEafEafFafGafHafIafIafIafIafJaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIadYafKafKafKafKafKaaaafcaaaafKafKafKafKafKabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaacRacRacRacRahtabYaivaiwaixaiyaizaiaaiAaiBaiCaiDaiEaiFaiGaiHaiIaiJaiKaiiaiLaiiaiMaiNaiOaiPaiQaiRahOaiPaiSaiTaiUaiVaiWaiXaiYaiZajaajbajcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVagxagxagxagxagxaaaafGaaaagxagxagxagxagxabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaaaaabVaaaaaaaaaafcaaaaaaaaaabVaaaaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVabYaizajdajeajfaizaiaajgajhajiajjaiEaiFaidajkajlajmajnajoajpajqajrajsajtajuajvajwajxajxajwajyajzajAajBajCajDaddajEajFajcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaaaaabVaaaaaaaaaafGaaaaaaaaaabVaaaaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeAaeAaeAaeAaeAaaaafcaaaaeAaeAaeAaeAaeAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaizajdajGajfajHaiaajIajJajiajKaiEaiFaiGajLajMajNajOajPajQajRajSajTajUajVajWajXajYajZakaakbakcakdakeakfakgakhakiakjakkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVaeXaeXaeXaeXaeXaaaafGaaaaeXaeXaeXaeXaeXabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaeZafaafaafaafaafbafcafdafeafeafeafeaffaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaabVaaaaaaabYaklakmakmaknakoaiaakpakqakraksaiEaiFaidaktakuakvakwakxakyakzaidaidadcakAakBadcadcaddaddaddaddaddaddaddaddaddakCakDakkabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaafDafEafEafEafEafFafGafHafIafIafIafIafJaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQakEafKafKafKafKafKaaaafcaaaafKafKafKafKafKabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVakFakFakGakGabYabYadJadJafkakHaiaaiaaiaaiaaiaakIakJakKakLakKakKakKakKakKakKakMakNakOakPakQakRakSakTakUakVakWakXakYakZalaalbakCakDakkabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVagxagxagxagxagxaaaafGaaaagxagxagxagxagxakEacQaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaabVaaaabVaaaaaaalcaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVakFaldalealfalgalhalialjalkallalmalnaloalpalqalralsaltalualtaltaltaltaltaltalvaltaltalwalualxalyalzalAalBalCalDalEalFalGalbakCakDajcabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaabVaaaabVaaaaaaafGaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIabVabVabVabValHalIalHabVabVabVabVacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJalKalKalKalJaaaabValLalMalNalOalPalQalRalSalTalUalValWalXalYalZalWamaambalZalWalXamcamdamdamdameamfamgamhamiamjamkamlammamlamlamlamnamoamoalbakCakDakkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIabVabVabVabVabVafGabVabVabVabVabVacIacIacIabVaaaaaaaaaaaaaaaaaaaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaabVaaaaaaabVaaaalHampalHaaaaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJamqamramsalJakGakGamtamuamvamwamxakSaiaamyaiaaiaamzamAamBamCamDamEamBamCamDamFamGamCamHamIamCamJamKamCamLamMamNakSamOamPamoamQamoamRamSamoalbakCakDakkabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaabVaaaaaaamTaaaaaaabVaaaaaaabVaaaabVabVabVaaaaaaaaaaaaaaaaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaabVaaaaaaabValHalHamUalHalHaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaabUamVamVamVamVamVaaaalKamWamXamYamZanaanbancamuandaneanfakSangakKanhaiaanianjankaiaanlanjankaiaanlanmankaiaannanoanpanqakRaiaanjanransakSantanuanvanwanvanxanyamoalbakCakDakkabVaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaabVaaaaaaanzaaaaaaabVaaaaaaabVaaaaaaaaaabVabVaaaaaaaaaaaaaaaanAanBanAabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaabVaaaaaaabVanCanDanEanFanCanGanGanGanGanGanGanGanGanGaaaaaaaaaaaaamVanHanIanJamVaaaalJanKalJanLalJakGakGakGanManNanOanPakSanQanRanSaiaanTanjanUaiaanVanjanWaiaanXanjanYaiaanZaoaaobanqaocaiaaodaoeaofakSaogaohaogaoiaogaojaogaogalbakCakDajcajcabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaabVaaaaokaolaokaaaabVaaaaaaabVaaaaaaaaaaaaabVabVaaaaaaaaaaaaanAaomanAabVaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanCaonaooaopanCaoqaoqanGaoraosaotanGaouanGaaaaaaaaaabVanGaovaosaowanGaaaalJaoxaoyaozalJaaaaaaaoAakFakGaoBaoCakSaoDaoEaoFakSaoGaoHaoHaoIaoHaoHaoHaoIaoHaoHaoHaoIaoJaoKaoLaoMaoNakSakSakSakSakSaoOaoPaoOalaaoOaoQaoOalaalbaoRaoSaoTajcajcajcabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaaaaabVaaaaokaoUaokaaaabVabVabVabVaaaabVaaaaaaaaaabVabVaaaaaaaaaanAaoVanAabVaaaabVaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoWaoWaoWaoWaoWaoWaoWaoWaoWaoWaoWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanCaoXaoYaoZanCapaapbapcapdaosapeanGanGanGamVanGamVamVanGapfapgapfanGaaaalKaoxaoxaphalJakGakGakGapiapjapkaplalLakSakSakSakSapmapmapmapnapmapmapmapoapmapmapmapnapmapmapmappappapqaprapraprapsaoOaoPaoOalaaoOaoQaoOalaalbakCaptapuapvapwapvabWaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaaaaaaaabVaokaokapxaokaokabVaaaaaaabVaaaabVaaaaaaaaaaaaabVabVaaaaaaanAaoVanAabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoWapyapzapzapzapzapzapzapzapAaoWabVaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaanCanCapBapCanCapDaosanGaosaosaosapcaosaosapEaosanIaosaosaosaosapFamVaaaalJapGaoxaoxapHapIanbapJamuandaneandapKappappappapLappappapMappappappappappappappapNappappappapOappappappappappappapPalaapQapRapSapTapUapRalaapVapWapXapYapYapZajcabWaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaaaaaaaaaaabVaqaaqbaqcaqdaqaabVaaaaaaabVaaaabVaaaabVaaaaaaaaaabVanAanAanAaoVanAanAanAanAanAanAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoWaqeaqfaqfaqfaqfaqfaqfaqfaqgaoWabVaaaaaaaaaabVaaaaaaaaaaaaanGanGanGanGanGabVabVanGaqhaqiaqjaqkapbanGanGamVamVanGanGanGanGamVanGamVamVanGaqlaosaqmanGaaaalJaqnaqnaqnalJakGakGaqoaqpaqqaqraqsakFaqtaqtaqtaqtaqtaquaqvaqtaqtaqtaqtaqtaqtaqtaqwaqxaqxaqxaqyaqzaqxaqAaqBaqCaqDapsaqEaqFalbalbalbalbalbalbalbakCaqGajcaqHaqIajcaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaaaaaaaaaaaaaabVaqaaqJaqKaqLaqaabVaaaaaaabVaaaabVaaaabVanAanBanAanBanAaqMaoVaoVaoVaoVaoVaoVaqNanAabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaoWaqeaqfaqfaqfaqfaqfaqfaqfaqgaoWaoWaqOaoWaoWabVabWabWanGanGanGaqPaqQaqRanGaaaaaaanGaosaqiapDaosaqSanGaqTaqTaqUaqTaqTaqUaqUacxacxaqVaqVanGaqWaosaqXanGaaaalJaqYaqYaqYalJaaaabValLakFaqZakFaraarbarbarbarcarbarbarbardarearearearfareareargarhariarjapYarkapYapYapYapYarlapYarmarmarmarmarnaroarparqarrarrarsartaruarvarwajcaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaaaaaaaaabWabWabWaaaabVaqaarxaryarzaqaarAarAarAarAarAanBanBanBanAarBaoVaqNanAanAaoVanAanAanAanAarCanAanAabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaoWaqeaqfaqfaqfarDaqfaqfaqfaqgarEarFarGarHaoWabVanGarIanGarJarKaosarLaosanGamVamVanGarMaqiapDarManGanGanGamVamVamVanGanGacxarNaqUaqUacxanGanGapcanGanGaaaaaaaaaaaaaaaaaaaaaabVakFarOanbakFarParbarQarRarSarTarSarbarUarearVarWarXarYareapmapparZasaasbascascascascascasdaseascascascascascasfasgashasiasjaskaslajcasmasnajcabVasoaspaspasqaspaspasrabVabVaaaaaaaaaabVanBassanBaaaarAaqaaqaastasuaqaasvaoVaoVaoVanAaswaoVasxanAasyaoVaoVaszanAaoVanAasAasBanAaoVasCanAaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaoWaqeaqfaqfasDasEasFaqfaqfasGasHasIasJasKaoWabVanGaosanGasLasMaqkasNasOanGaqXaosasPaosaqiasQaosaosaosaosaosaosaosaosanGanGanGaqUacxaqUacxasRasSasRaaaaaaaaaaaaaaaaaaaaaaaaabVakFasTasUakFasVarbasWasXasYarSarSarbarUareasZarXataatbatcapmappaprasaakCatdatdatdatdatdateatfatdatdatdatdatdatdatdatdatgathatgatiatgatgatgatgatgatjatkatkatkatkatkatjatgabVaaaaaaaaaabVatlaoVanBaaaarAatmatnatoatpaoVaoVaoVanAaoVanAatqaoVaoVanAaoVatratsattarCaoVanAatuatvanAaoVatwanAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaoWaqeaqfaqfaqfatxaqfaqfaqfaqgaqOatyasJatzaoWanGanGarIanGanGanGapcatAatBatBatCatDatEatDatFatGatHatIanGaosanGanGanGaosanGatJanGacxaqUaqTaqUasRasSasRaaaaaaaaaaaaaaaatKatKatKatKatKatKatKatKarParbatLatMatNarSatOarbarUatPatQatRatSatTatcapmappatUasaakCatdatVatWatXatYatZauaatdaubaucaudatdaueaucaufatgaugauhauiaujaukaulaumatgatjatkatkatkatkatkatjatgabVabVabVabVanBanBaunanBanBarAauoaoVaupaoVaqMaoVanAanAauqanAanAauranAanAattausautaoVanAaoVauuauuauuauuauuauuauuauuauuauvauvauvauvacxauvauvaqUaqUaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaoWaqeaqfaqfaqfaqfaqfaqfaqfaqgaqOauwasJauxaoWauyauzauAauBauBauBauBauBauBauCauDauEanGanGanGanGaosanGanGaosauFanGatHaosanGanGanGanGaqTaqTaqTasRauGasRaaaaaaaaaabVabVatKauHauIatKauJauKauLatKarParbarTauMarTauNarSarbauOauPauQarXauRarXatcapmappauSasaakCatdauTauUauVauWauXauYatdauZavaavbatdavcavdaveatgavfavgavhavhavhavhaviavjavkatkatkatkatkatkatjatgatgatgaaaaaaanBaoVaoVaoVasvarAavlattaupaoVavmavnavoarCaoVaoVaoVaoVaoVaoVaoVausavpaoVavqaoVauuavravsavtauuavuavvavwauuaqUaqTaqTaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaoWaqeaqfaqfaqfaqfaqfaqfaqfaqgaqOauwavxavyaoWaosaosavzavAavBavBavBavBavBavBavCavDavEacxavFanGaosavGarMatHavHanGavIaosaosaosavJamVaqTaqTaqUasRasSasRaaaaaaaaaatKatKatKasSasSatKasSasSasSatKavKarbarTavLavMavNarTarbarUavOareavPavQavRareavSappaprasaakCatdatdatdatdatdavTavUatdatdavVatfatdatdavWatfatgavXavYavZawaawaawbawcawdaweatkatkatkatkatkawfawgawhawiaaaaaaanBaoVaoVawjaoVarAawkaoVawlawmawmawmawmawnawmawoaoVaoVaoVaoVaoVaoVaoVaoVanAavnauuawpawqawqauuawrawsawtauuaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVaoWawuawvawvawvawvawvawvawvawwaqOawxawyawzaoWawAawBawCawDaqlawEawFawGawHanGawIavDacxawJavEamVaosauFanGanGanGanGanGanGanGawKavJamVaqUaqTaqUasRasSasRabWabWabWawLawMawNasSasSatKatKawOatKatKavKarbarbawParbawQarbarbawRawSareareareareareawTappawUasaakCatdatVatWawVatYawWawXawYawZaxaaxbaxcaxdaxeaxfaxgaxhavYaxiaxjaxjaxkaxlawdawiatkatkatkatkatkawiaxmaxnawiabVabVanAaoVaoVanAanAarAarAarAarAarAarAarAarAarAanAaxoaxpanAanAanAanAanAanAanAanAaoVaxqauuawqawqaxraxsawpaxtauuaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxuaoWaoWaoWaoWaoWaoWaoWaoWaoWaoWaoWaxvaxwaoWaoWaxxanGavzaxyaosaxzaxAaosaosanGawIavDaxBaqUaxBanGaosaxCanGaxDaxEanGavIasOaxFaxGaxGaxGaxHaxHaxHaxIaxJaxKaxHaxHaxHaxIaxKaxIaxIaxJaxIaxLaxJaxMaxNaxOaxPaxPaxQaxPaxRaxPaxPaxSaxTaxPaxPaxPaxPaxUaxVaxWaxWaxXaxYatdauTauVauVaxZauXayaaybaycaydayeayfaygayhayiayjaykaylaxiaymaxjaxkaxlaynawiatkatkatkatkatkawiayoaxnatgaaaaaaanAaypasyaoVayqanAayraqNaysaytaqManAawkaqManAayuaoVanAayvaoVanAaywayxayyayzayzayzayAayBayCayDayEayFayGauuauvauvacxacxauvauvauvauvaqUaqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayHayHayHayIayJayKayLayMayNayNayNayNayNayNayNayOayPayQayRaySayTanGayUaxyayVaosayWaosayXanGawIayYaxGaxGaxGaxGayZaxGauEaosayWazaaosaosazbazcazdazeazfazfazfazgazfazhazfazfaziazjazkazlazlazlazlazlazlazmaznazoazpazpazpazpazqazpazpazqazpazrazrazrazrazrazsaztazuazvazwatdatdatdatdatdavTazxazyazzazAazBazCazDazEazFazGazHazIazJazKazKazLaxlazMaweatkatkatkatkatkazNazOazPatgaaaaaaanAaoVaoVaoVaoVaoVaoVazQawmawmawmawmawmawmawmazRaoVaoVaoVaoVavqaoVaoVazSazTazUazVazWazXazYawqawqawqazZauuaqUaqTaqTaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAbaAcaAdaAeaAfaAgaAfaAhaAiaAhaAjaAkaAkaAlaAmaAkaAnaAoaAkaAkaApaxGaAqaxyaAraosaosaAsaAtanGaAuaAvaAwaAwaAwaAwaAwaAxavDaAyaosanGauyauyavDaAzanGaAAaABaACaACaADaACaAEaACaACaAFaAGaAHaAIaAIaAIaAIaAIaAIaAIaAJaAKaALaAMaANaAOaAPaAQaARaASaATaAUaAVaAWaAXaAYaAZappaBaajcapuatdatVatWaBbatYaBcaBdazyazyazyazzaBeaBfaBgaBhaxgaBiaBjaBkaBlaBmaBnaBoaBpaBqatkatkatkatkatkaBratgatgatganAanAanAaqManAanAarCanAanAaupanAanAaBsanAanAarCanAaupaypanAanAarCanAaoVaypazSaBtausauuaBuaBvaBwaBxaByaBvaBzauuaqUaqTaqTaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayHayHayHayIayJaBAayJaBBaBCaBBaBDaAiaAiaBEaBBaBCaBBaBFaBGaBHaBIanGayUaxyanGanGanGanGaBJaBJaBKaBLaBJaBJaBJaBJaBJawIayYaxGaxGaxGaxGaxGaBMaAzaqXaAAaaaabVaaaaBNaaaaBOaaaabVaaaaAGaAHaAIaBPaBQaBRaBSaBTaAIaAJaBUaBVaBWaBWaBXaBYaBZaBZaBZaCaaCbaCbaCcaCdaAYaCeappaCfajcapuatdauTauVauVaCgauXaChaCiaCjaCkaClaCmaCnaCnaCoaCnatgaCpaCqaCraCsaCtaCuatgaBratkatkatkatkatkaBranAatwaoVaCvaCwanAanAanAatwaoVanAatwaupanAaCxaoVanAaCyaoVanAaCzaCAanAaCBaoVanAarCarCazSaCCarCauuaCDaBvaCEaCFaCEaBvaCGauuaqUaqUaqUaqTaqTaqTaqTaqTaqTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxuaCHaxuaCIaAgaBBaCJaCKaCLaCMaBBaAgaCIaBBaxuaCNaCOanGaCPaCQaCRaCRaCSaCTaBJaCUaCVaCWaCXaCYaCZaCUaBJaDaaDbaDcaDdaDdaDdaDdaDdaDeauyaAAabVaDfaDfaDgaDfaDhaDfaDfabVaAGaAHaAIaDiaDjaDkaDlaDiaAIaDmaDnaDoaDpaDqaDraDsaDtaDuaDvaDwaDxaAWaAWaAWaDyaCeappaDzajcapuatdatdatdatdatdaDAavUaCnaCnaCnaCnaCnaCnaDBaDCaDDaCnatgatgatgatgaDEatiatgaBratkatkatkatkatkaBranAanAaoVaDFaCwanAaDGanAaoVaoVanAaoVaupanAaoVaoVanAaoVaoVanAaupavnanAaoVaoVanAaDHaoVazSaBtattauuauuauuauuauuauuauuauuauuauvauvauvauvauvaqUaqTaqTaqTaqTaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBaDIaBBaBBaBBaBBaBBaBBaDIaBBaaaaxuaDJaBIaDKaDLaDMaDKaDKaDKaDNaBJaCUaDOaDPaDQaDRaDSaCUaBJaDTaDUaDTaDTaDTaDTaDTaDTaDVaDTaDWaaaaDfaDXaDYaDZaEaaEbaDfaaaaAGaAHaAIaDiaEcaEdaEeaDiaAIasSaEfaALaEgaEhaEiaEjaEkaDxaElaEmaAWaAWaEnaAWaDyaCeappaCfajcapuatdatVatWaEoatYaBcavUaCnaEpaEqaEraEraCnaDBaEsaDDaCnaEtaEuaEvaEwaExaEyabVaEzaEAaEAaEAaEAaEAaEBaaaanAaoVaECaEDanAanAanAanAanAanAaEEaEFanAanAanAanAanAanAaEGaEHaEIaEJaEJaEJaEKaELaEMaENaEOaEPaEQaERaESaETaEUaEVaEWaEXaEXaEXabVabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaEYaEYaEZaEYaFaaFaaFaaFaaEYaEZaEYaEYaxuaBDaFbaDKaFcaFdaFeaFfaFgaFhaBJaCUaFiaFjaFkaFjaFjaCUaBJaFlaFmaFnaFoaFpaFqaFraFsaFtaFuaDWabVaDfaFvaFwaFxaFyaFzaDfabVaAGaAHaAIaFAaFBaFCaFDaFEaAIasSaFFaALaFGaFHaFIaAWaFJaFKaFLaFMaFNaDyaAYaFOaAYaCeappaCfajcapuatdauTauUauVaFPauXaFQaFRaFSaFTaFUaFUaFVaFWaFXaFYaCnaFZaGaaGbaGcaGdaEyaaaabVaaaabVaaaabVaaaabVaaaanAaypaGeaGfaGgaGhanAavmaoVaypaupaoVanAaaaanAaCvaGfaGfaGiaGjaGkaGkaGkaGkaGkaGlaGmaGnaGoaGpaGpaGpaGqaGraGsaGtaGuaGvaGwaGxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEYaEYaEYaEYaGyaGzaGAaGBaGCaGDaGEaGFaGzaGGaGHaBBaBDaGIaDKaGJaGKaGLaGMaGNaGOaBJaGPaFjaFjaFjaFjaFjaFjaGQaGRaFmaGRaGSaGRaGRaGRaGRaFtaGRaDWaaaaDfaGTaGUaGUaGVaGWaDfaaaaAGaAHaAIaGXaGYaGZaHaaHbaAIasSaHcaALaALaFMaHdaHeaHfaHgaALaALaAWaAWaAYaHhaAYaCeappaCfajcapuatdatdatdatdatdaHiaHjaHkaHlaHmaHnaHnaHnaHnaHnaHoaCnaHpaHqaHraEwaExaEyanAanAanAanAanAanAanAanAanAanAanAanAanAaHsanAanAanAanAaCvaHtaHuaHvaHwaHvaHxaHyaHzaHAaHBaHCaHCaHCaHCaHDaHEaHFaHDaHDaHDaHDaHDaHDaHDaHGaHHaHIaEXaEXaEXabVabVabVabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHJaHKaHLaEYaGzaHMaGzaHMaGzaHMaGzaHMaGzaGGaHNaBBaBDaHOaDKaHPaHQaHRaHSaHTaHUaBJaHVaFjaFjaFjaFjaFjaHWaBJaHXaHYaHZaIaaGRaGRaGRaIbaIcaIdaDWabVaDfaIeaIfaIgaIhaIiaDfabVaAGaIjaAIaIkaIlaGZaImaInaAIasSaIoaAYaIpaAWaIqaIraIsaAWaItaAYaIuaIvaAYaIraAYaIwarhaIxajcapuapuapuapuapuapVavTavUaCnaIyaIzaCnaIAaCnaIBaCnaICaCnaIDaIEaIFaIGaIHaIIaIJaIKaILaIMaINaIOaIOaIOaIOaIPaIQaIOaIOaIRaISaITaIUaEJaIVaIWaIXaIYaIZaIYaJaaJbaHCaJcaJdaHCaJeaJfaJgaHDaJhaJiaHDaJjaJkaJlaJmaJnaJoaJpaJqaJraJsaJtaJuaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaJvaJwaJwaJwaJwaJwaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFaaGzaGzaJyaGzaHMaGzaHMaGzaHMaGzaHMaGzaGGaJzaBBaBDaJAaDKaDKaJBaJCaJDaJCaDKaBJaBJaBJaBJaJEaFjaJFaJGaBJaJHaFmaGRaGRaGRaJIaGRaGRaFtaJJaDWaaaaDfaDfaJKaJLaJKaDfaDfaaaaAGaAHaAIaJMaJNaJOaJPaJQaAIasSaJRaAYaJSaAWaJTaIraJUaAWaJVaAYaDyaDyaAYaJWaAYaJXaJYaJZajcapVajcajcajcajcajcaKaaKbaCnaKcaKdaCnaKeaCnaKfaCnaKgaCnaKhaKiaKjaEwaKkaKlaKmaKnaKoaKoaKpaKqaKoaKraKoaKsaKtaKuazUazUazUaKvaKwaKxaKyaKzaoVaKAaKAaKAaKBaKCaHCaKDaKEaKFaKGaKHaKIaHDaKJaKKaHDaKLaKMaKNaKOaJnaKPaHGaHHaGuaKQaKRaJuaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaJvaKSaKTaKUaKVaKUaKWaKSaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFaaKXaKYaEYaGzaHMaGzaHMaGzaHMaGzaHMaGzaGGaHNaBBaBDaAiaKZaLaaLbaLaaLcaAiaLdaLeaLfaLgaBJaLhaFjaFjaLiaBJaLjaFmaGRaLkaLlaLmaLnaLoaLpaLqaDWaaaabVaaaaLraLsaLraaaabVaaaaAGaAHaAIaLtaLuaLvaImaLwaAIasSarUaAYaLxaAWaIraIraIraLyaLzaAYaaaaaaaLAaLBaLCaLDaLEaLFaLGaLHaLAaaaaaaaLIaLJaLKaLLaCnaLMaKdaKdaKdaLNaKdaKdaKdaCnaEwaLOaEwaEwaEwaLPaLQaLRaLRaLSaLTaLUaLRaLVaLWaLWaLXaLYaLZaLWaMaaKAaKAaMbaKBaKAaKAaKAaMcaMdaKBaKCaHCaMeaMfaMgaMhaMiaMjaHDaMkaMlaMmaMnaMoaMpaMqaMraKPaHGaMsaGuaJsaMtaJuaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaJvaMuaMvaMwaMwaMwaMxaMyaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEYaEYaEYaEYaMzaGzaMAaGzaGzaGzaGzaMBaGzaGGaMCaBBaBDaAiaMDaMEaMFaMEaMGaMEaMEaMEaMHaAiaBJaMIaMJaMIaBJaBJaMKaMLaMKaDTaDTaDTaDTaMKaMMaMNaDWaMOaMPaMPaMQaMRaMSaMPaMPaMTaAGaMUaAIaMVaAIaMWaMXaMYaAIatKardaAYaAYaAYaDyaHeaDyaAYaAYaAYaLAaLAaLAaMZaLEaLEaLEaLEaLEaNaaLAaLAaLAaLIaNbaLKaNcaCnaCnaCnaCnaCnaCnaCnaCnaCnaCnaNdaNeaNfaNgaNhaNiaNjaNkaLRaNlaLTaNmaNnaNoaLWaNpaNqaLYaNraLWaNsaNtaNuaNvaNwaNxaNxaNyaNzaNAaKBaKCaHCaNBaNCaNDaNEaMiaNFaHDaNGaNHaNIaNJaNKaNLaNMaHDaHDaNNaHHaGuaKQaKRaJuaaaabVabVabVabVabVabVabVaaaaaaaaaaaaaJvaNOaNPaNQaNRaMwaMxaNSaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEYaEYaEZaEYaFaaFaaFaaFaaEYaEZaEYaEYaxuaNTaAiaNUaNVaNWaNXaNYaNZayJaOaaObaAiaOcaOdaOeaOeaOfaOeaOeaOgaOeaOeaOeaOeaOeaOeaOhaOiaOjaOkaOlaOmaOmaOnaOmaOmaOmaOmaOoaOpaOqaOraOmaOsaOmaOtaJYaOuaOvaOwaOxaOyaLGaLGaLGaLDaLEaLEaOzaLEaLEaOAaOBaOCaODaOEaOFaOGaLEaLEaOzaOHaOIaOJaOKaOLaOMaONaOOaLEaOPaLEaEwaOQaORaNeaNeaNeaOSaOTaOUaOVaOWaLRaOXaOYaNoaOZaPaaLWaPbaNqaPcaPdaLWaLWaPeaPfaPgaPhaPiaPjaPkaPlaPmaKBaKCaHCaPnaPnaPoaPpaPnaPnaHDaPqaPraHDaPsaNMaNMaNMaHDaPtaPuaPvaGuaEXaEXaEXaPwaPwaPwaPxaPxaPxabVabVaaaaaaaaaaJvaJvaJvaJvaJvaJvaPyaPzaJvaJvaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBaBCaBBaBBaBBaBBaBBaBBaBCaBBaaaaxuaDJaPAaNUaPBaPCaPDaPEaPFayJaPGaObaPHaKZaOdaPIaPJaPKaPLaPMaPNaOeaOeaOeaOeaOeaOeaOeaOiaOeaOdaPOaOeaOeaPPaPQaPRaPRaPRaPSaPTaPRaPUaPRaPVaPRaPWaPXaPYaPZaQaaLEaLEaLEaLEaLEaLEaLEaLEaOzaLEaLEaQbaQcaQdaQeaQfaQgaQhaLEaLEaOzaLEaQiaLEaLEaLEaLEaLEaLEaLEaQjaLEaEwaQkaNeaNeaQlaQmaQnaQoaQpaQqaQraLRaQsaQtaQuaLRaLRaLWaQvaNqaQwaQxaQyaLWaKAaKAaQzaKAaKAaKAaQAaQBaQAaKBaKCaHCaQCaPnaPnaQDaPnaQEaHDaHDaHDaHDaHDaHDaHDaQFaHDaHGaHGaHHaGuaQGaQHaEXaQIaQJaQKaQLaQMaPxabVaaaaaaaaaaaaaJvaQNaQNaQNaJwaQOaMwaQPaQQaQRaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxuaCHaxuaBBaAgaBBaQSaQTaQUaQVaBBaAgaBBaBBaxuaBDaAiaNUaQWaQXaPDaPEaPFayJaQYaObaAiaKZaOdaOeaQZaRaaRaaRaaRbaRcaRdaRaaReaRaaRaaRaaRfaRaaRgaRaaRaaRaaRhaRiaRjaRkaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaLEaRwaRwaRwaRxaRwaRwaRwaRwaRyaRwaRwaRwaRwaRwaRwaRwaRwaRwaRwaRwaRzaRwaRwaRwaRwaRwaRwaRwaRwaLEaLEaLEaEwaRAaRBaRBaRBaRBaRBaRCaNiaRDaOWaLRaLRaREaLRaLRaRFaLWaRGaRHaRIaQxaRJaLWaKAaRKaRLaRMaRNaRMaRMaROaRPaKBaKCaHCaRQaRQaRRaRSaRTaRTaRUaHCaRVaRWaRXaEXaRYaJsaRZaHGaHGaSaaSbaEXaScaEXaSdaSeaSfaSgaShaPxaPxaPxaPxaPxaPxaJvaSiaSjaSjaSkaMwaMwaMwaMwaSlaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSmaSmaSmaSnayJayKayJaBBaDIaBBaBDaAiaAiaBEaBBaDIaBBaSoaSpaSqaAiaNUaSraSsaNXaStaNZayJaSuaObaAiaSvaSvaSvaSwaSxaSxaSxaSxaSxaSxaSyaSzaSxaSAaSxaSxaSxaSBaSCaSDaSCaSEaSFaSGaOeaOeaSHaSIaSJaOeaSKaSLaOeaSMaSMaLEaSNaOyaLAaLAaLAaLAaLAaLAaLAaLAaSOaSPaSQaSRaSQaSQaSQaSSaSQaSTaSQaSUaSOaLAaLAaLAaLAaLAaLAaLAaLAaLDaLEaLEaLRaSVaSWaSXaSXaSXaSXaSXaNiaSYaSZaLRaTaaTbaTcaLWaLWaLWaLWaTdaLYaLWaLWaLWaLWaRMaTeaTfaTfaTfaTfaTgaRMaKBaKCaHCaThaPnaRRaRSaPnaPnaTiaHCaTjaTkaTlaEXaHGaKQaTmaTnaTnaToaTpaTqaTraEXaTsaTtaTuaTvaTvaTwaTxaTxaTyaTxaTzaTAaSjaTBaTBaJwaTCaTDaTEaMwaQPaJwaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTFaTGaTHaTIaTJaAfaAgaAfaTKaAiaTLaSqaAiaAiaTMaTLaAiaTKaSqaAiaAiaAiaTNaTOaTPaTQaTRaTSaTSaTTaTUaAiaSvaTVaSvaTWaSxaTXaTYaTZaUaaUbaTYaUcaUdaUeaUfaUgaUhaSBaUiaUjaUkaSEaUlaSGaSGaUmaSGaSGaSMaSMaUnaUoaSMaSMaSMaUpaLEaOyaLAaaaaaaaaaaaaaaaaaaaaaaSOaUqaUraUsaUtaUuaUvaUwaUxaUyaUzaUAaSOaaaaaaaaaaaaaaaaaaaaaaLAaLDaLEaUBaUCaUDaSXaUEaSXaSXaSXaSWaNiaSYaUFaUGaSXaUHaUIaLWaUJaUKaULaUMaUNaUOaUPaUQaLWaRMaURaUSaUSaUSaUSaUTaRMaKBaUUaHCaUVaUVaRRaRSaUWaUWaUXaHCaHCaUYaHCaEXaUZaJsaRZaVaaVbaSaaSbaEXaEXaEXaPxaVcaVdaPxaPxaPxaPxaPxaPxaPxaVeaJvaJvaJvaJvaVfaVgaTEaTEaMwaQPaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaSmaSmaSmaSnayJaVhayLaViaVjaVjaVjaVjaVjaVjaVjaVjaViaVjaVkaAiaAiaKZaAiaVlaVmaAiaVnaAiaVoaVpaVqaSvaVraSvaTWaSxaVsaTYaTYaTYaTYaTYaUcaVtaTYaTYaTYaUhaSBaVuaUjaUjaSEaUlaSGaVvaVwaVwaVxaSMaVyaVzaVAaVBaVCaVDaLEaLEaOyaLAaaaaaaaaaaaaaSOaSOaSOaSOaVEaVFaVGaVHaVIaVJaVKaVLaVMaVNaVOaSOaSOaSOaSOaaaaaaaaaaaaaLAaLDaLEaLEaVPaSXaVQaVRaVSaVTaVUaVVaVWaSYaUFaVXaSXaVYaSXaVZaWaaWbaWcaWdaWeaWfaWgaWaaWhaWiaWjaUSaWkaWlaUSaWmaRMaKBaKCaHCaPnaPnaRRaRSaUWaUWaPnaWnaWoaPnaWpaEXaNNaWqaWraVaaVaaWsaWtaWuaEXaWvaWwaTtaTuaTvaTvaWxaTxaTxaTxaTxaWyaWzaWAaWBaMwaMwaMwaMwaMwaMwaWCaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxuaxuaxuaxuaBBaBBaBBaBBaBBaBBaBBaBBaxuaxuayJaKZaWDaWEaWEaWFaWEaWEaWEaWEaWGaWEaWHaSvaVraWIaWJaSxaWKaTYaWLaWMaWNaWOaWPaWQaWRaTYaTYaWSaSBaWTaWUaWVaSEaUlaSGaWWaWXaWYaWZaSMaXaaXbaVAaXcaXdaVDaLEaLEaOyaLAaLAaLIaXeaSOaSOaXfaXgaXhaXiaXjaXkaXlaXmaXkaXnaXkaXoaXpaXqaXraXsaXtaSOaSOaXeaLIaLAaLAaLDaLEaLEaLRaXuaSXaXvaSXaXwaSXaSWaSXaSYaUFaXxaXyaSXaXzaLWaWaaWaaXAaXBaXCaXDaXEaWaaXFaXGaXHaUSaXIaXJaUSaXKaXLaKBaKCaHCaXMaXMaRRaRSaXNaPnaPnaXOaPnaXPaXQaEXaXRaXSaXTaVaaVaaXUaXVaHGaEXaXWaTvaTtaTuaTvaShaPxaPxaPxaPxaPxaPxaJvaTDaMwaXXaXYaMwaXXaXYaMwaXZaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaYbaYaaYaaYcaYaaYaaYbaYaaaaaBBaCJaBHaYdaWEaYeaYfaYgaYhaYgaYiaYjaYgaWHaVraVraYkaYlaSxaYmaYnaYoaYpaYqaYraYsaYtaYuaYvaYwaUhaSBaSBaSBaSBaSEaUlaSGaSGaSGaSGaSGaSMaYxaYyaYzaXcaYAaVDaLEaLEaOyaLGaLGaYBaYCaYDaSOaYEaYFaYGaYHaYIaYHaYJaYKaYLaYMaYNaYOaYPaYNaYQaYRaYSaSOaYTaYCaYUaYVaLGaLDaLEaLEaVPaSXaSXaSWaSXaYWaSXaYXaSXaSYaUFaVXaSXaSXaSXaYYaWaaWaaYZaZaaZbaXBaXEaZcaLWaZdaXHaZeaUSaUSaUSaXKaZfaKBaZgaHCaHCaHCaRRaRSaZhaZiaPnaZjaZkaNDaZlaEXaHGaWqaWraVaaVaaZmaWtaZnaEXaZoaTvaTtaTuaTvaShaPxaaaabVabVabVaaaaJwaTDaMwaXXaXYaMwaXXaXYaMwaXZaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZpaZqaYaaYaaZraZraZsaZtaZtaZraZraYbaZuaBBaBBaBDaAiaWEaZvaZwaZxaYeaZyaZzaYjaYgaWHaZAaZBaZCaSvaSxaZDaZEaZFaZGaZHaZHaZIaZHaZHaZHaZJaZKaSxaZLaZMaZNaZOaZPaZQaZRaZSaZTaZUaZUaZUaZUaZUaZUaZUaZUaLEaLEaLEaLEaLEaZVaZWaZXaZYaZZbaababbacbadbaebafbagbahbaibajbakbalbambabbanbaobapbaqbarbasbatbaubavaLEaLEaLRbawaSWbaxaSWaSXaVQbayaVSaSYaUFaVXaVXbazbaAaLWaWaaWaaWabaBbaCbaCaXEbaDaLWaRMaXHaUSaUSaUSaUSaXKaRMaKBbaEbaFbaGbaHbaIbaJbaKbaKbaLaRRaRRaRRaRRbaMaVaaVaaVaaVaaVabaNbaObaPbaQbaRbaSbaTbaUaSgbaVaPxabVabVaaaabVabVaJwaTDaMwaXXaXYaMwaXXaXYaMwaXZaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZpbaWaZtbaXbaYaZtaZtaZtbaZaZtaZtaZtbbabbbaAgbbcaAiaAiaWEbbdbbebbfbbgbbgbbhbbibbjaWHbbkaVraZCbblbblbblbbmbbnbblbbobbpbbqbbrbbsbbsbbtbbuaSxbbvbbwbbxbbybbzbbAbbxbbBbbCbbCbbDbbEbbFbbGbbHbbIaZUaLEaLEbbJbbKbbLbbMbbNbbOaSObbPbbQbbRbbSbbTbbUbbUbbVbbWbbXbbYbbZbcabcbbbRbccbbPaSObbObbNbcdbcebbKbcfaLEaLEaVPaSXaSXaSWaSXaSXaSXbcgaSXbchaSXbcibcjaSXaSXbckbclbcmaWaaWabcnaWabcobcpaLWbcqbcraUSbcsbcsbctbcrbcubcvbcwbcxbcxbcybczbcAaRRaRRbcBaRRaRRaRRaRRbaMbcCbcDbcDbcDbcDbcDbcEbcFbcGbcHbcIbcJbcKaTvbcLaPxaaaabVabVabVaaaaJwaTDaMwaXXaXYaMwaXXaXYaMwaXZaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZpbcMaYaaYabcNbcNaZtaZtbcObcNbcNaYbaBBaBBaBBaBDbcPbcQbcRbcSbcTbcTbcTbcTbcUaYeaWHbcVbcWaZCbblbcXbcYbcZbdabblbdbbdcbddaSxbdebdfbdgbdhaSxbdibdjbdkbdlbdkbdmbdnbdoaZUbdpbdqbdqbdrbdsbdtbduaZUaOzaOzbdvbdwbdwbdwbdwbdwbdwbdxbdybdzbbTbbVbdAbdBbdBbdCbdBbdBbdDbbXbcabdEbdFbdGbdEbdEbdEbdEbdEbdEbdHaOzaOzaLRbdIbdJbdKbdLaSXaSXaSXbdMbdNbdObdPbdQbdRaSXaLWaLWaLWbdSbdTbdTbdTaLWaLWaLWbdUaUSaUSbdVbdWbdXbdYbdWaKBbdZbeabebaHCbecbedbeeaZiaPnbefaXOaZibegaEXbehaHGbeiaVaaVabeiaHGbejaEXbekbelbemaTuaTvaShaPxaPxaPxaPxaPxaPxaJvaTDaMwaXXaXYaMwaXXaXYaMwaXZaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaYbaYaaYabenaYaaYaaYbaYaaaaaBBbeoaSqbepaWEaYgaZwaYgaYebeqaYgberaYgaWHbesbetbeubblbblbblbevbewbblbdcbexbdcaSxbdebdfbdgbdhaSxbdibdjbeybezbdkbeAbdnbdoaZUbeBbdqbdqbeCbeDbdqbeEbeFaLEaLEbbJbdwbeGbeHbeIbeJbeKbeLbeMbeNbeObePbdBbdBbeQbeRbeQbdBbdBbeSbeTbeUbeVbeWbeXbeYbeZbfabfbbdEbcfaLEaLEaLRaLRaLRaLRaLRbfcaVPbfcbfdaLRaLRaLRaLRaLRaLRaLWbfebfebfebfebfebfebffbfeaLWbdWbfgbfgbdWbeabeabeabeaaKBbdZbeabebaHCaHCaHCbfhaHCbfhaHCbfhaHCaHCaEXaEXbfibfibfibfibfibfiaEXaEXbfjaTvbfkaTuaTvaTvbflaTxaTxaTxaTxaWybfmbfnbfoaMwaMwbfpaMwaMwaMwaWCaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVaxuaxuaBBaBBaBBaBBaBBaBBaBBaBBaxuaxuayJaAiaAiaWEaWEaWFaWEaWEaWEaWEaWGaWEaWHbfqbfrbfsbblbcXbftbevbfubblbfvbfwbfvaSxbdebdfbdgbdhaSxbdibdjbdkbfxbfybfzbdnbdobfAbdtbfBbfCbfDbfEbdqbeEbfFaLEaLEbbJbfGbfHbeKbfIbfJbfJbfKbfLbfMbeObfNbdBbdBbeQbfObeQbdBbdBbfPbeTbfQbfRbfSbfTbfUbfVbfbbfWbdEbcfbfXbfYaJYbfZbeabeabeabeabeabeabeabeabgabeabeabeabeabgbbeabeabeabeabeabeabeabeabfZbeabeabeabeabeabeabeabgcbgdbgebgfbeabggbeabeabeabeabeabeabeabeabeabgbbghbeabeabeabeabeabeabfZbgiaWwaTvbgjbgkbglbgmaPxaPxaPxaPxaPxaVeaJvaJvaJvbgnaJvaPzaJwbgoaJwaJwaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBayMayNayNayNayNayNayNayNayNayMayNbgpaAkaAkbgqbgrbgsbgtbgtbgtbgubgvbgwaSvbgxbgybgzbblbblbblbgAbgBbblaSxaSxaSxaSxbdebdfbgCbgDaSxbdibdjbdkbgEbgFbgGbgHbgIbgJbgKbgKbgKbgLbgMbdtbgNaZUbgOaQibbJbgPbgQbeKbgRbgSbgTbgUbgVbgWbeObgXbeQbdBbgYbgZbgYbdBbeQbdDbeTbhabfRbfSbfTbhbbfVbfbbfbbdEbhcaLEaLEaJYbfZbeabeabeabeabeabeabeabeabeabhdbeabeabeabeabeabhebcxbcxbcxbcxbhfbeabfZbeabeabeabeabeabeabhgbhhbhibhjbhkbhkbhkbhlbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhkbhmbhnbhobhpbhpbhqaTubhraTvbhsaTxaTxbhtaTxbhubfmbhvbhvbhvbhwaJvaQQaQPaQPbhxaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaBBaAhaAiaAhaBHaAiaAibhyaAhaAiaAhaBHaAiaAiaAibhzbhAbhzbhzbhzbhzbhBbhCaSvaSvaSvbhDaZCbblbcXbhEbhFbfubblbhGbhHbhGaSxaSxaSxbhIbhJaSxbdibdjbhKbhLbhMbhNbdnaSvaZUaZUaZUaZUaZUaZUaZUbhOaZUbhPaLEbbJbgPbhQbeKbgRbhRbhSbgUbgVbeKbeObhTbhUbdBbhVbhWbhXbdBbhYbhZbeTbiabibbicbidbiebifbfbbigbdEbihbiibijaJYbfZbeabeabikbeabilbimbimbimbimbinbimbimbiobeabeabeabeabeabipbiqbirbisbfZbeabeabeabeabeabitbiubivbiwbixbiybiybiybeabeabizbiAbeabeabeabeabeabeabeabeabeabeabeabeabeabfZbiBbiCbiDbiEaTuaTvaShaPxaPxaPxaPxaPxaPxaJvbiFbhvbhvbiGaJvbiHaQPaQPbiIaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayJaBBbiJaBBaBDaAiaAiaBEaBBbiKaBBaBFbiLbiMbiMbhzbiNbiObiPbiQbiRbhBbiSbiTbiUbiUbiVbiWbblbblbblbiXbiYbblaSvaSvaSvaSvbiZbjabjbbjcbjabjdbdjbjebjfbdkbdmbdnbjgbjhbjibjjbjjbjjbjjbjkbjlbjhbjmaLEbbJbdwbeKbjnbjobjpbjqbjrbgVbjsbjtbbUbjubjvbjwbjwbjwbjxbjybbZbjzbjAbjBbjCbjDbjEbjFbfbbjGbdEbcfaLEaLEbjHbjHbjHbjHbjHbjHbjHbjIbjJbjJbjJbjKbjLbjIbjMbjMbjMbjMbjMbjNbjNbjNbjObjNbjNbjNbjNbjPbeabizbjQbjRbjSbjTbjUbjVbjVbjVbjWbjXbjXbjXbjXbjXbjYbjZbjZbjZbkabjZbkbbkcbjZbjZbkdbkebkebkebkebkfbkgbkhbkiaPxabVaaaaaaaaaaaaaJvbkjbkjbkkbkkaJvaQQaQPaQPbhxaJwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaCHaxuaCIaAgaBBaCJaCKbklbkmaBBaAgaCIaBBaxuaCHayJbhzbknbkobkobkobkpbkqbkrbksbjabjabktbkubblbcXbkvbiXbkwbblbkxbkxaVrbkybkzbkAbkBbkCbkCbkDbkEbkFbdlbkGbkHbdnaVrbkIbkJbjhbkKbkLbkMbkNbkObkPbkQbkRbkSbdwbkTbdzbkUbkVbkWbkXbgVbkYbdwabVbkZblablablablablablbabVbdEblcbldbleblfbfbblgbfbblhbdEbcfaLEblibjHbljblkbllblmblnbjHbloblpblpblpblqblrblrblsbltblublvbjMblwblxblyblzblxblAblBbjNbjRblCbjRbjRbjRblDblEblFblGblHblIblJblKblLblMblNbjXblOblPblObjXblQblRblQbkeblSblTblSbkeblUblVbkeblWblXaPxaPxaPxabVabVaaaaaaaaaaJvaJvblYblYblYblYblYblYblYaJvaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaabVabVabVabVaBBblZaBBaBBaBBaBBaBBaBBbmaaBBabVabVabVaaabhzbmbbhzbmcbkobmdbmebhzaVraWIbmfbmgbmhbmibmibmibmibmibmibmjbmkbmlbmmbmnbdnbdnbdnbdnbdnbdnbdnbmobmpbdnbdnbdnbmqbmrbmsbmtbmubmvbmubmwbmxbjmaLEbmybdwbmzbdzbdzbdzbdzbkXbgVbmAbdwabVbkZblabmBbmCbmDblablbabVbdEbmEbfRbmFbmGbfbbjFbfbbfbbdEbcfaLEaLEbjHbmHbmIbmJbmJbmKbmLblrbmMblrblrblqblrblrblsbmNbmObmPbjMbmQblxbmQbmRbmQbmSblxbjNbmTbmTbmUbmVbjRbmWbjTbmXbmYbmZbnabnbbncbndbnebnfbngbnhbnibnjbjXbnkbnlbnmbkebnnbnobnnbnpbnqbnqbkebnrblXaaaabVaaaabVaaaaaaaaaabVaaaaJvbnsbnsbnsbnsbnsbnsbnsaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntaaaaaaaaaaaaaaaaaabntbnubntbntbntbntbntbntbnvbntaaaabVabVaaabhzbnwbnxbnybnzbnzbnAbnBbnCbnDaSvbnEbnFbnGbnGbnGbnHbnHbnHbnHbnHbnHbnIbnJbdnbnKbnLbnMbnNbnObnPbnQbnRbdnbnSbnTbnUbjhbjhbnVbnWbnXbnWbnYbnZboabobbbJbocbodboebofbogbdzbohbgVbdwbdwabVbkZblabmCblabmCblablbabVbdEbdEboibfSbojbfbbokbolbombdEbcfaLEaLEbjHbonbmIboobopboqborblrbosbotboubovbowboxblsboybozboAbjMbmQblxbmQbmRbmQbmSboBbjNboCboDboEboFbjRboGbjTboHboIboJboKboHbncboLboMbnebnebnebneboNbjXboOboPboQbkeboRbnqbnqboSboTboUbkebnrblXboVboVboVboVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboWbntbntaaaaaaaaaaaabntbntboXboXboYboZboXboXboXboXbntaaaabVabVaaabhzbpabhzbpbbpcbpcbpdbhzbpebpeaSvbpfbpgbpfbpfbpfbpgbpfaSvaSvbdnbdnbmpbphbdnbnObnObnObnObnObnObpibpjbpkbplbpmbpnbpobppbpqbppbprbpsbptbmxbjmbpubpvbpwbpxbpybpzbpAbdzbkXbgVbdwabVabVbpBbpCbmDbpDbmBbpEbpFabVabVbdEbpGbpHbdEbdEbdEbdEbpIbdEbpJaLEaLEbjHbpKbpLbpMbmJbmKbpNblrbpObpPbpQbpRbpSbpTbjMbpUbpVbpWbjMbmQblxbmQbmRbmQbmSblxbjNbjRbjRbjRbjRbjRboGbjTbpXbmYbpYbnabpZbncbqabqbbqcbqdbqebqfbqgbjXbqhboPbqibkebqjbqkbqlbqmbqnbqobkebnrbqpbqqbqrbqsbqtaaaaaaabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbqwbntaaaaaabntbntbntboXboXboXboXboXboXboXbqxbntbntbntabVaaabhzbqybnxbqzbpcbqAbqBbhzaaaaaaaaabqCbqCbqCbqCbqCbqCbqCaaaaaabqDbqEbqFbqGbqHbqIbnObnObnObqJbnObnObqKbqLbqMbqNbqObqPbqQbqRbmxbqSbjhbjhbjhbqTbqUaOzbocbqVbqWbqWbqWbqWbqXbqYbqZabVaaabkZbrablablablabrbblbaaaabVbrcbrdbrebrfbrgbrhbrcbribrcbrjaLEbrkbjHbrlbrmbrnbrobrpbjHbrqbpObpPbrrbrsblrbrtbjMbrubrvbrwbjMbrxbrybrzbrAbrBbrCbrBbrDbrEbrFbrEbrEbrEbrGbjTbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbrTbjXbrUbrVbrWbkebrXbrYbrZbsabnqbsbbkebscbsdbsebsfbsfbsfbsfbsfbsfbsgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbshbqwbntbntbntbsibntbsjboXboXboXboXboXboXboXbskbslbsmabVaaabhzbsnbnxbnxbnxbhzbhzbhzaaaaaaaaabqCbsobsobspbsobsobqCaaaaaabqDbsqbsrbssbstbstbstbstbstbstbstbstbstbsubsvbswbsxbsybszbsAbsBbsCbsCbsDbsEbjmbsFbsGbocbocbqZbsHbsIbsJbsKbsLbqZaaaaaabkZbsMbsNbsObsNbsPblbaaaaaabrcbsQbsRbsSbrcbsTbrcbribrcbrjaLEbsUbjHbsVbrmbsWbmJbsXbjHbsYbsZbtabtbbtcblrbtdbjMblsbtebtfbjMbjNbtgbjNbthbtibtjbtkbtkbtkbtkbtkbtkbtkbtlbtmbjUbjUbjUbjUbjUbtnbtobnebtpbrSbrSbtqbtrbtnbtsbttbtubtvbtwbtxbtybtzbtAbtBbkebtCbtDbtEbtFbtFbtFbtFbtFbtGblXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbshbshbntbntbsiboXbntbsjboXboXboXboXboXbsibntbntbntbntbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobqCbtHbqDbqDbtIbsrbnQbnObtJbtJbtJbtJbnObnObnObnObtKbtLbtMbtNbtObtPbtQbtRbtSbsCbsCbsEbtTbtUbtVbtWbtXbtYbtZbuabubbucbudbqZabVaaabkZbuebufbufbufbugblbaaaabVbrcbuhbuibujbrcbukbrcbribrcbulaLEbsUbjHbumbrmbunbuobupbjHbuqbpOblqbtbburbusbsYbsYbutbuubuvbuwbuxbuybuzbuAbuBbuCbuDbuEbuFbuGbuHbuIbuJboGbuKbuLbuMbuNbuObuPbuQbuRbuSbuTbuUbuVbrSbuWbuXbuYbuZbvabtvbvbbvcbvdbvebnqbvfbvgbvhbkebvibvibvibvibvibvibnrblXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvjbntbqwbvkbvlboXbvmboXbntbsibvnboXboXboXbsibntbsibvobvpbsibntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobvqbvrbvsbvrbvtbvubvvbvwbvxbnObnObnObnObnObvybdnbdnbvzbsCbvAbvBbvCbsAbvDbsCbvEbsCbvFbrjbsFbvGbvHbvIbvJbvKbvLbvMbucbvNbqZaaaaaabkZbvObvPbvQbvPbvRblbaaaaaabvSbvTbvUbvSbvSbvSbvSbvVbvSbvWaOzbvXbjHbjHbvYbvZbwabjHbjHbwbbwcbwdblrblrblrblrblrbwebwfbwgbwgbwgbwhbwgbwibuBbuCbwjbwkbwlbwmbwnbwobuJbwpbwqbwrbwsbwsbwsbwtbwubwvbwwbwxbwybwzbwAbwBbwCbwDboPbwEbtvbtvbwFbwGbwHbwFbtvbkebkebkebwIbwJbwKbwLbwMbvibwNblXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbntboXboXboXbsibntbntbntbnvbntbntbsiboXbwObwObwPbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobwQbwRbwSbwTbwUbnObnQbnObtJbtJbwVbtJbnObnObwWbwXbdnbwYbsCbvAbvBbsCbwZbsCbsCbxabsCbvFbrjbxbaLEbvHbxcbxdbxebxfbxfbxgbxhbqZabVabVbxibxjbxkbxlbxmbxnbxoabVabVbxpbxqbxrbxsbxtbxubxvbxwbvSbxxaLEbxybxzbxAbxBbxCbxDbxEbxFbxGbxHbxIbxJbxJbxJbxJbxJbxKbxLbxJbxJbxJbxMboxbxNbxObuCbxPbxQbxRbxRbxSbuIbuJboGbuKbxTbxUbxVbxWbxXbxYbxZbnebyabnebnebnebybbtnbycbydbyebyfbygbyhbyibyjbykbylbymbynbyobypbyqbyqbyqbyrbysbytblXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbsiboXbntboXboXboXboXbyuboXboXboXbsibntboXboXboXboXboXbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbywbsobsobsobyxbqCbtHbqDbqDbyybnObnQbnObnObnObnObnObnObnObwWbyzbdnbyAbyBbyCbyDbyEbyFbyEbyGbsCbyHbsEbyIbxbaLEbvHbvIbqZbyJbyKbyLbyMbyNbqZaaaaaaabVbkZbyObyPbyOblbabVaaaaaabxpbyQbyRbySbyTbyUbyUbyVbyWbyXbyYaPYbyZbzabzbbzcbzdbzebzfbzebzebzgbzhbzibzjbzjbzjbzkblrblrblrbzlbzmbzmbznbuCbuCbuCbzobzpbzqbwnbuIbuJbjSbuKbjXbtnbtnbtnbtnbtnbtnbtnbtnbtnbzrbzsbzrbtnbztbzubzvbzwbzwbzwbzxbzybzzbzAbzBbzCbzDbzEbzFbzGbzHbzIbzJbzKbzLboVbzMbzMboVabVabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbntbntbntbntbntbntbntbntaaabntbntbsibzNboXboXbntboXboXbntbntbntbnvbntboXboXbntboXboXboXboXboXbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobzObwRbwSbwTbsqbzPbpibzQbqIbnObzPbnObnObnObwWbzRbdnbzSbsCbvAbzTbvDbzUbzVbsCbsCbzWbsEbyIbxbbbJbvHbzXbqZbzYbzZbAabAbbsLbqZaaaaaaabVbAcbAdbufbAebAfabVaaaaaabxpbAgbAhbAibAjbAkbAlbAmbvSbAnaLEaLEbsYbsYbAobApbwebAqbArbAsbAtbAtbAsbArbAsbArbAsbArbAsbArbjLbjLbzmbAubxRbAvbAwbuCbzobAxbAybAzbAAbuJbABbACbADbAEbAFbzwbzwbAGbzwbzwbAHbAIbAJbAKbALbzwbAMbANbAObAPbAPbAPbAQbAQbAQbAQbAQbARbASbATbAUbATbAVbATbvibAWbAXbAYbAZbBaboVabVaaaaaaaaaaaaaaaaaaabVaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbsiboXboXboXboXboXboXboXbsibntbntbntbsiboXboXboXboXbyvboXboXbntbBbbBcboXbntboXboXbyvboXboXboXbBdbBebyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobBfbBgbBhbBgbBibBjbBibBibBibBibBibBkbBlbnObwWbBmbdnbBnbBobBpbBqbBrbBsbBtbBtbBtbBsbBsbBubxbaNabBvbvIbqZbBwbBxbBybBzbBAbqZaaaaaaabVbBBbBCbxlbBDbBEabVaaaaaabxpbBFbBGbBHbBIbAkbAlbAmbvSbBJaLEaLEbBKbBLbBMbApbBNbBObArbBPbBQbBRbBSbBTbBUbBVbBWbBVbBXbArblrblrbzmbBYbxRbBZbCabCbbCcbCdbCebCebCfbCgbChbCibCjbCkbClbCmbCnbCmbCmbCobCmbCmbCpbCqbCmbCmbCrbCsbCtbAPbCubCvbCwbCxbCybCzbAQbCAbCBbCCbCDbCEbCBbCFbvibAWblXbCGbCHbCIboVaaaaaaaaaaaaaaaaaaaaaabVbCJabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnvboXboXboXboXboXboXboXboXboXbnvboXbnvboXboXboXboXboXbCKboXbCLbntboXboXbCMbntbCNboXbCKboXboXboXbCObCPbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbsobsobsobsobsobqCbtHbqDbqDbqDbdnbqDbqDbqDbCQbCQbCQbCQbCRbCSbCSbCQbCQbCTbCUbCVbCTbBsbCWbCXbCYbCZbBsbyIbxbaOyaLIaLIbqZbqZbqZbqZbqZbDabqZaLAaLAaLAbDbbDcbyPbDdbDeaLAaLAaLAbvSbvSbvSbvSbvSbvSbvSbvSbvSbBJaLEbDfbArbArbDgbDhbArbArbArbDibBQbDjbBQbDkbDlbDmbDnbDobDpbDkblrblrbzmbDqbDrbDsbDtbDubDvbDwbDtbDtbDxbDybDzbDAbDBbDBbDBbDBbDCbDBbDBbDBbDDbDDbDEbDFbDGbDGbwDbDHbwEbAPbDIbDJbDKbDLbDMbDNbDObvibvibDPbDPbDPbvibDQbvibAWblXbDRbCHbDSboVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbsiboXboXboXbyuboXboXbDTbsibntbntbntbsiboXboXboXboXbyvboXboXbntbDUbDVboXbntboXboXbyvboXboXboXbBdbBdbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbDWbsobsobsobDWbqCaaaaaaaaaaaaabVaaaaaaaaaaaabCQbDXbDYbDZbEabEbbEcbCSbEdbEebEfbEgbBtbEhbEibEjbEkbBsbyIbxbaLEaLEaLEbElaOOaONaOzbEmbEnbEobaubaubaubEpbEqbErbEsbEtaLEaLEaLEaLEaOOaLEaOzaLEaLEaLEbElaLEbBJaLEbEubArbEvbEwbExbEybEzbArbEAbBQbEBbBQbDkbDlbDlbECbEDbEEbDkblrbEFbzmbxRbEGbEHbEIbEJbEKbELbEMbENbuJbuJbjSbEObDBbEPbEQbERbESbETbEUbDBbEVbEWbEXbEYbEZbDGbwDbDHbFabFbbFcbFdbFebFfbFgbFhbDObFibFibFibFibFibFibFibvibAWblXbFjbFkbFlboVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbntbntbntbntbntbntbntbntaaabntbntbsibyuboXboXbntboXboXbntboXbFmbFnbntboXboXbntboXboXboXboXboXbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqCbqCbFobFobFobqCbqCaaaaaaaaaaaaabVaaaaaaaaaaaabCSbFpbFqbFrbFsbFtbFubFvbFwbFxbFybFzbFAbFBbEjbFCbFDbBsbyIbFEaLEaLEaLEaLEaLEaLEbFFaLEbxbaLEaLEaLEaLEaLEbFGbFHbFIaLEaLEaLEaLEaLEaLEaLEaOzaLEaLEaLEaLEaQibBJbFJaLEbArbFKbFLbFMbFNbEzbArbFObBQbBRbFPbArbFQbFRbFSbFTbFUbArblrblrbzmbzmbzmbzmbzmbuJbuJbuJbuJbuJbuJbFVboGbFWbDBbFXbFYbFZbGabGbbGcbDBbGdbGebGfbGgbGhbDGbwDbGibGjbGkbGlbGmbGmbGnbGobGpbDObFibFibGqbGrbFibFibFibvibAWblXbGsbCHbGtboVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbsibGubntboXboXbntbnvbntbntbntboXboXbntbBdboXboXboXboXbyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGvbGwbGwbGwbGxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCQbGybGzbGAbGBbGCbGDbGEbGFbGGbGHbGFbGIbGJbGKbGLbGMbBsbGNbGObpvbpvbpvbGPbpvbpvbGQbpvbGRaLEbGSbGTaLEaOHbGUbGVbGWbGXbGYbGZbaubaubHabaubHbbHcbaubHdbHebHfbHgaLEaLEbArbHhbHibHjbAsbAsbArbAsbHkbAsbArbArbArbArbArbArbArbArblrblrblrbHlbHmbAqbHnbHobHpbHqbHrbHsbHobHtbtlbHubDBbHvbHwbHxbHybHzbHAbDBbHBbHCbHDbHEbHFbDGbwDbHGbHHbAQbHIbHJbHKbHLbHMbHNbDObFibFibFibHObFibFibFibvibHPbHQbHRbCHbCIboVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntbntbntboXboXboXboXbzNboXboXboXboXbntbBdboXboXboXboXbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCQbCQbCSbCSbCSbCSbCQbCQbHSbEebEfbHTbBsbBsbBsbBsbBsbBsbHUbHVaLIaLIaLIaLIbHWbHWbHWbHWbHWbHWbHWbHWbHWbHWbHXaJYbHYbHZbHZbHZbHZbHZbIabHZbHZbHZbHZbIbbIcbIbaLJaNbbIdbArbIebIfbIgbIhbIibArbIjbBQbIkbIlbImbInbIobIpbIqbIrbIlbIsblrblrblrblrblrbwebItbIubIvbIubIwbHobIxboGbIybIybIybIybIybIybIybIybIybIzbIzbIzbIzbIzbIzbIAbIBbICbAQbAQbAQbAQbAQbAQbAQbDObvibvibvibvibvibvibvibvibAWblXbIDbIEboVboVabVabVabVabWabWabWabWabWabWabWabWabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboWbntbqwbIFbvlboXboXboXboXboXboXbvmboXbIGbntbBdboXbIHboXbsibntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIIaaaaaaaaaabVaaaaaabCTbIJbIKbILbIMbIMbINbIObIPbIQbIRbISbHVaaaaaaabVaaabHWbITbIUbIVbIWbIXbIYbIZbJabHWbJbbJcbJdbHZbJebJfbJgbJhbJibJjbJkbJlbJmbJnbJobIbbIbbIbbIbbArbJpbJqbJrbJsbJtbJubJvbJwbJxbJybJwbJwbJwbJzbBQbJAbJBbJCbzjbzjbJDbJEbJFbJGbItbJHbJIbJJbJKbHobIxboGbIybJLbJLbJLbJMbJLbJLbJLbIybJNbJNbJObJNbJNbIzbJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdbKebKfbKgbKgbKhbKibJTbJTboVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbshbshbntbntbntbntbnvbntbntbyvbyvbyvbntbntbsibKjbsibntbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJalJalKalJalJaaaabVaaabCTbCTbKkbKlbKmbGFbKnbKobKpbKpbKqbKrbKsbKtabVbKubKvbKwbKxbKybJabKzbJabKAbJabJabJabHWbKBbKCbKDbHZbKEbKFbKGbKHbKIbKJbKKbHZbHZbKLbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKYbKZbLabLbbLcbLdbBQbBQbBQbLebsYbsYbsYbsYbsYbLfbLgbApbItbLhbLibIubLjbHobIxboGbIybJLbJLbJLbJLbJLbJLbJLbIybLkbLlbLmbLnbLobLpbLqbLrbJRbLsbLtbLubLubLubLubLubLubLvbLwbLxbKdboVbLybLzbLAbLAbLBbLCbLtabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbLDbLEbLDabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbshbqwbntbntbntbntboXboXboXbLFboXboXboXboXbsibntbntbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJbLGbLHbLGalJbLIbLIbLIbCTbLJbLKbEebLLbLKbLMbCTbHVbLNbHVbHVbLObLPaaabLQbLRbLSbLTbJabJabLUbJabLVbLWbLXbJabHWbKBbKCbLYbHZbLZbMabMbbMcbMdbMebMfbHZbFVbMgbMhbMibMhbMjbMkbLbbMlbMmbMnbBQbBRbArbMobMpbMqbArbMrbBQbBQbBQbBQbMsbsYbMtbMubMvbMwbMxbMybMzbMAbMBbIubMCbMDbMEbMFbMGbIybJLbJLbMHbJLbJLbJLbJLbIybMIbMJbMJbMKbMLbMMbMNbMObJRbMPbMQbLubLubLubLubMRbMSbMSbMSbMSbMTbMUbMVbMWbMXbMYbMZbNabLtabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbLEbLDbNbbLDbLEabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqubqvbqwbntaaaaaabntbntbsibNcboXboXboXboXboXboXbvpbntbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalKaoxbNdaoxalKbLIbNebNfbCTbNgbLKbNhbLKbNibLMbCTbNjbNkbNlbHVbLObLPabVbLQbNmbNnbNobNpbNqbNpbNpbNrbNsbNtbNtbNubNvbNwbNxbHZbHZbHZbHZbHZbNybNzbHZbHZbNAbNBbNCbNDbNEbNFbNGbArbNHbNIbNJbNKbNLbArbNMbNNbNObArbNPbNQbNRbNSbNTbNUbsYbNVbNWbwgbNXbwgbNYbNZbOabObbOcbOdbOebHobIxboGbIybIybOfbJLbJLbOgbOfbIybIybOhbOibOjbOjbOkbIzbOlbOmbJRbOnbLtbLubLubOobOpbOqbLubLubOrbOsbOtbOubOvbOwbOxbOybOzbOAbLtabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbOBbLEbOCbODbOEbLEbOBabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvjbntbntaaaaaaaaaaaabntbntbntbsiboXbOFboXboXbsibntbntaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJbOGaoxaoxbOHbOIbLKbLKbOJbNgbLKbOKbLKbLKbLMbCTbOLbNlbOMbHVbLObLPaaabLQbONbOObOPbJabJabOQbJabORbOSbOTbOUbHWbOVbOWbOXbOYbOZbOZbOZbOZbPabPbbOZbOZbPcbPdbPebPfbPgbPhbPibJubJubJubJubJubJubJubJubJubJubPjbPjbPjbPjbPjbPjbPkbPlbsYbsYbsYbsYbPmbPnbpObHobHobHobHobHobHobIxboGbIybPobPpbPqbPrbPsbPtbPobPubOhbOibOjbOjbOkbIzbPvbPwbJRbPxbJTbPybPzbPAbPBbPCbPDbLubPEbPFbKdbPGbPHbPIbJTbPJbPKbPKbJTabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVbLEbLEbPLbPMbPMbPMbPNbLEbLEabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabntbntaaaaaaaaaaaaaaaaaaaaabntbntbntbntbntbntbntaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalKbNdbNdbNdalKbLIbPObPPbPQbPRbLKbPSbPTbPUbPVbCTbHVbHVbHVbHVbLObPWabVbPXbKvbPYbKxbPZbJabQabJabJabJabQbbQcbQdbQebQfbQgbQhbQibQibQibQibQjbQibQkbQlbQmbQnbQobQpbQqbQrbQsbrEbQtbrEbrEbrEbrEbrEbrEbrEbrEbrEbrEbrEbrEbrEbQubQvbsYbNVbQwbMxbQxbMxbMybQybQzbQAbQAbQBbQCbQnbQobQDbIybQEbQFbQGbQHbQIbQJbQKbPubPubPubPubPubPubQLbQMbQNbQObQPbJTbKdbKdbKdbKdbKdbKdbQQbLubLubKdbQRbQSbQTbJTbQUbQVbQWbQXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQYbQZbQYbPMbRabPMbRbbRcbLDabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalJapGbRdbRealJbLIbLIbLIbCTbCTbLIbLIbLIbCTbCTbCTbRfbHVaaabRgbRhbLPaaaaaaabVaaabHWbRibRjbRkbJabRlbRmbRnbRobHWbRpbRqbRrbRsbRtbRubRvbRwbRxbRtbRtbRtbRtbRtbRybRzbRtbRtbRAbRtbRBbRtbRtbRtbRtbRtbIbbIbbIbbIbbIbbIbbIbbIbbRCbIxbsYbRDbREbRFbRGbwgbRHbRIbRJbRKbRKbRLbRKbRKbRMbRNbIybRObRPbRQbRPbRPbRPbRRbRSbRTbRUbRVbRWbRXbRYbRZbOmbJRbSaabVbSbbScbSdbSebSfbSebSgbShbSibKdbSjbSkbSlbJTbJTbJTbJTbJTabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVbLEbLEbSmbPMbPMbPMbSnbLEbLEabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaalJalJbSoalJalJaqTaqTaqTaqUacxaqUaqTaqUacxaqUbRgbNlbRgabVbRgbLObLPabVabVabVabVbHWbHWbHWbHWbHWbHWbHWbHWbHWbHWbSpbRqbSqbSrbRtbRubRvbRwbRxbSsbSsbStbSubSvbSwbSxbSybSzbSAbSBbSCbSDbSEbSFbSGbSHbSIbSIbSIbSIbSIbSIbSJbIbbRCbSKbSLbSLbSLbSLbSLbSMbSNbSObSLbSLbSLbSLbSLbSLbSKbSPbSQbSRbSSbSTbSSbSUbSSbSVbSWbSXbSWbSWbSWbSWbSYbSZbTabJRbSaabVbSbbTbbTcbTdbTebTfbTgbThbTibKdbTjbSkbTkbQRbTlbTmbQRabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaabVabVbOBbLEbTnbTobTpbTqbOBabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaqTaqTaqTaqUacxaqUaqTaqUacxaqUbRgbNlbRgbRgbRgbLObLPaaaaaaaaaabVbTrbTsbTsbTtbTubTvbTvbTwbTwbTrbKBbRqbSqbTxbRtbTybTzbTzbTAbTBbSsbTCbTDbTEbTFbTGbTHbTIbTJbTKbTEbTLbTEbTMbTNbTOaqUbTPbTPbTPbTPbTPbTQbIbbRCbTRbTSbTTbTUbTVbSLbTWbTXbTYbSLbTZbUabUbbUabTZbTRbUcbUdbUebUfbUebUgbUhbUebUibUebUjbUebUkbUebUebUlbUmbUnbUobSaabVbSbbTbbUpbSebUqbSebUrbUsbUtbKdbUubSkbTkbQRbUubUubQRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbLEbLDbUvbLDbTqabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVbHVbHVbHVbRgbHVbRgbHVbHVbHVbHVbHVbHVbRgbRgbRgbHVbHVbHVbNlbNlbNlbUwbLObLPaaaaaaaaaabVbTrbUxbTtbTtbTtbUybTvbTvbUzbTrbUAbRqbUBbUCbUDbUEbUFbUGbUHbUIbUJbUFbUFbUFbUKbULbUMbUNbUObUPbSGbUQbURbUSbUTbUUbSIbUVbUWbUXbUYbTPbTQbUZbRCbSKbVabTZbTZbVbbSLbVcbVdbVebSLbUabTZbUabVfbVgbVhboGbIybVibVjbVkbVjbVlbVmbVnbRPbVobVpbVqbVrbVsbPubVtbVubVtbVvbVvbKdbKdbKdbKdbKdbKdbJTbJTbJTbKdbUubSkbVwbUubUubVxbQRabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbLDbLEbLDabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHVbVybVzbVAbVzbVBbVCbVDbVEbNlbVFbVGbVHbVIbNlbNlbUwbNlbNlbRgbRgbRgbRhbLPaaaabVbVJbVKbVLbVMbVMbVNbVMbVObVPbVQbVQbVRbVSbRqbKCbVTbVUbVVbVWbVXbVYbVZbWabVXbWbbVXbWcbWdbWebSzbWfbWgbWhbWibWjbWkbWlbWmaqUbWnbWobUYbWpbTPbTQbUZbRCbSKbWqbWrbTZbWsbSLbWtbWubWvbSLbTZbTZbWwbTZbTZbSKbRCbIybPubPubPubPubQLbWxbWybWzbQLbPubPubPubPubPubWAbWBbWCbWDbWEbWFbWGbWHbWGbWIbVvbWJbWCbWKbWLbWMbSkbTkbQRbQRbQRbQRauvabVabVabVabWabWabWabWabWabWabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHVbHVbWNbWObWPbWQbHVbNlbHVbNlbWRbWSbNlbNlbNlbWTbHVbRgbRgbHVaaabRgbLObLPaaaabVbWUbWVbWWbWXbWYbWYbWYbWYbWYbWYbWZbXabXbbXcbKCbSrbXdbXebXfbTEbXgbXhbXibXjbXkbXlbXmbXnbXnbXobXpbSGbXqbXrbXsbXtbXubXvbXwbUVbXxbUYbUYbTPbTQbUZbRCbSKbXybXzbXAbSMbSLbSLbXBbSLbSLbXCbXCbXDbXCbXCbSKbRCbIybXEbXFbXFbXGbXHbRPbXIbXJbXKbXLbJLbJLbJLbPubXMbWCbWBbXNbXObWFbXPbXQbXRbXSbVtbWCbXTbWCbWLbXUbXVbXWbQRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWabWabWabWabWabWbRgbXXbVzbXYbXYbXYbHVbXZbHVbYabHVbWSbNlbNlbYbbYcbHVaaaabVaaaaaabRgbLObPWbHVbHVbPWbYdbTrbYebTtbTtbTtbYfbYgbYhbYibTrbYjbYkbKCbSrbYlbYmbYnbTEbTEbYobSsbYpbYqbYrbYsbTEbTEbSzbYtbYubYvbYwbYxbYybYxbYzaqUbTPbTPbTPbTPbTPbTQbIbbRCbSKbTZbYAbYBbYCbYDbYEbYFbYGbYHbTZbTZbTZbTZbYIbSKbRCbIybJLbYJbJLbYKbYLbRPbYMbRPbYNbYObJLbYJbJLbPubYPbWCbWCbWBbYQbYRbYSbYTbYUbYVbVvbYWbWCbYXbWLbVvbYYbYZbQRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHVbHVbVzbZabZbbZcbZdbZebZfbZgbHVbHVbHVbZhbHVbHVbHVbRgbRgbRgbZibZjbZkbZlbZmbKpbZnbYdbTrbTrbTrbTrbTrbTrbTrbTrbTrbTrbZobZpbKCbZqbRtbZrbZsbXibZtbXibSsbTEbTEbTEbYsbZubZvbZvbZwbZxbZybUQbZzbZAbZBbUUbSIbUVbZCbZDbZDbTPbTQbIbbRCbZEbZFbZFbZFbZGbZHbTZbZIbYBbZJbYBbYBbYBbYBbZKbSKbRCbIybJLbJLbJLbZLbZMbXJbZNbRPbZObZPbXFbXFbZQbPubZRbZSbWCbWBbZTbWFbXRbZUbYRbZVbVvbZWbZWbZWbWLbZXbYYbYZbQRabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqTaqTbZYaqUaqUbZZaqTbHVbHVbHVbHVbHVbHVbHVbHVbHVbHVbNlbNlbNlbNlbNlbNlbNlcaacabcaccadcaecafcafcafcafcagcahcahcahcaicahcajcakcakcalbHVbYjcambKCcancaocapcaqbZvbZvcarcasbZvbZvcatcaucavbTEcawcaxcaycazbTEcaAcaBcaCbWmaqUbWncaDcaEcaFbTPbTQbUZcaGcaHcaHcaHcaIbSKcaJbTZcaKcaLcaMcaNcaOcaOcaOcaPbSKbRCbIybPubPubPubPucaQcaRbYMcaScaQbPubPubPubPubPucaTcaUbWBbWCcaVcaWcaWcaWcaWcaXbVtbZWbZWcaYbWLcaZbYYbYZbQRbQRbQRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbacbbcbbcbbcbbcbccbdcbdcbecbfcbgcbhcbicbjcbkcblbHVcbmbRgbRgbRgbRgbRgbRgbRgbRgbPWcbncbocbocbocbocbocbocbocbocbpcbpcbpcbpcbpcbqcbrbHVbYjcambKCcancbscbtcbucbvbXncbwcbxbXnbXncbycbzcbAcbBcbCcbDcbEcbFcbGcaAcbHcbIbXvbXwbUVcbJbZDbZDbTPbTQbUZcbKbIbbIbbIbboGbSKcbLbTZbTZcbMcbNcbOcbPcaOcbPcbQbSKbRCbIybXEbXFbXFcbRbXHbRPcbSbXJcbTcbUbJLbJLbJLbPucbVcbWcbXbWBcbYbWBbWCbWCcbZccabVvbZWbZWbZWbWLcaZbYYbYZbUubUubQRabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqTaqUbZYaqTaqUaqTaqTbRgbRgbRgbNlccbcccccdcceccfbHVbNlbRgaqTaqTaqUaqTaqTaqUaqTbPWcbncboccgcchcciccjcckcclccgccmccnccoccpcbpcbpcbrbHVccqcambKCccrccscctcctccuccvccvccvccvccvccwccxbSsbSsbSsccybTEcaycczccAccBccCccDccEbTPbTPbTPbTPbTPbTQbUZcbKccFbFVbFVboGbTRccGccHccIccJccKccLccMcaOccMccNbSKbRCbIybJLccObJLccPbYLbRPbYMbRPbYNccQbJLccObJLbPuccRccSccTccUccVccWccXccXccYccZbVtcdacaWcdbbWLbZWbYYcdcbQRbUubQRbQRbQRabWabWabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqTaqUbZYbZYbZYbZYbZYcddbNlcdebNlcdfcdgccccdhbNlbHVbNlbRgaqTaqTaqUaqTaqTaqUaqTbPWcbncboccgcdicdjcdkcdlcdmccgcdncdocdpcdqcdrcbpcbrbHVbYjcambKCcdscdtbRtcducdvccvcdwcdxcdyccvcdzbYscdAbSscdBcdCbTEcbDcdDcdEbZAcdFbUUcdGbUVcdHcdIcdJbTPbTQbIbcbKbIbcdKcdLboGbSKcdMcdNcdOcdPcdQcdNcdRcaOcdRbVfbVhbRCbIybJLbJLbJLcdScdTbXJbZNbRPbZOcdUbXFbXFbZQbIybWLcdVcdWcdXbWLbWLcdYcdZceacebceccedceecefbZWbZWbYYbYZbQRcegbQRcehbQRabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqTaqTaqTaqTaqTaqUaqUbRgbRgbRgceicejcekcelcembNlcenbNlbRgaqTaqTaqTaqTaqTaqTaqTbPWcbncboceocepceqcdkcerceoceocdncescetceucevcbpcbrbHVbYjcamcewcexcexceycezceAceBceCceDceEccvbTEbYsceFceGcdBceHbTEcbDcdDcaAcaBceIbWmceJbWnceKceLceMbTPbTQbIbcbKbIbbNEbNEboGbSKbSLceNceObSLcePbSLbSLbSLbSLbSLbSKbRCbIybPubPubPubPucaQceQbYMceRcaQbPubPubPubPubIybYRceSbYRceTbYRbWLcdYcdZceUceVceWceXbWBceYbWLbZWbYYbYZbQRbUubUubUuceZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaabVabVabVbRgcfacfbcfbcfcccfbRfbHVbRgbRgaqTcfdaqTaqTaqTaqTaqTbLPcbncboceoceocfecffcfgceocfhcficfjcfkcflcfmcbpcbrbHVcfncfocfpcexcfqcfrcfscftcfucfvcfwcfxccvcfycfzcdAbSscdBcfAbTEcfBcdDcaAcfCcfDbXvcfEbUVcfFcdIcdIbTPbTQbUZcbKcfGbIbcfHboGcfIbZFbZFcfJbSLcfKcfLcfMbIbcfNcfObIxbRCbIybXEbXFbXFcfPbXHbRPcbSbXJcfQcfRbJLbJLbJLbIycfSbYRbYRbYRbYRbWLcfTcfTcfUcfVbVvbVvbWBbVvbWLbVvbYYbYZbQRcfWcfXcfYceZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIacIacIacIacIacIacIacQacIacIacIacIacIaaaaaabHVbHVbHVbHVbHVbHVcenbHVbHVbHVbHVaqUaqTaqTaqUacxcfZaqTaqTaqTbLPcbncbocgacgbcgccgdcgecgfcggcghcgicgjcgkcglcbpcgmcgncgocgpcgqcexcgrcgscgtcgucgvcgwcgxcgycgzbUPcgAbSsbSsbSscgBbTEcgCcgDcaAcaBbTEbWmceJbTPbTPbTPbTPbTPcgEcgFcgGcgHbIbcgIcgJcgKcaHcgLcgMbIbcgNcgOcgPbIbcgQbRKbRMcgRbIybJLbYJbJLcgSbYLbRPbYMbRPbYNcgTbJLbYJbJLbIycgUbYRcgVcgWcgXcgYcgZchachbchcbVvbWBbWBchdbWLbXUchechfbQRchgchhbUuceZaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaabVaaaabVaaaadYaaaabVaaaabVaaaacIabVabVbHVchichjbNlbZhbNlbNlbNlbNlbRfbRgaqTaqTaqTacxchkchlacxacxaqUbLPcbncbochmceoccgccgccgceochnchochpchqchrchscbpbHVbHVchtchuchvcexcexchwchxchychzchzchzchzccvbTEchAchBchCchDchEchFchGchHcdEbZAchIbUUcdGbUVchJchKchKbTPaqUbUZbFVchLbIbbIbchMbEObIbchNchObIbbIbchPbIbbIbchOchQbMFchRbIybJLbJLbMHchSchTbXJchUbRPbZOchVbXFbXFbZQbIybYRbYRchWbYRbYRbWLcfTcfTchXchYbVvchZciaciabWLcibchebYZbQRbQRbQRbUubQRabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaciccidcieaaaciccidcieaaaciccidcieaaaacIaaaaaabHVcifbNlcigbHVbHVbZhbHVbHVbHVbHVaqTaqTaqTcihacxacxaqUaqTaqTbLPcbncboceociicijccgcikceoceocdncilcdqcimcinciocipciqcirciscitciucivciwcixciycizciAciBciCciDciEciFciGbXnciHciIbZuciJbZzbXqcaBciKbWmceJbWnciLciMciNbTPaqUbIbbIbciOciPciQchMciRbIbchNciSciTciUciVciWciTciXciYbQTciZbIybIybIybIybIybIybRPcjacjbbIybIybIybIybIybIybWLbWLbWLbWLbWLbWLcjccjccjdcjebWLbWLbWLbWLbWLbQRcjfbYZbQRcjgcjhbUubQRabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVciccjicieaaaciccjicieaaaciccjicieabVabVaaaaaabHVcjjbNlcjkbHVbYabNlcjlbVHcjmbHVaqTaqTaqTaqTaqUaqTaqTaqTaqTbPWcbncboccgcjncjoccgcjpcjqccgcdncjrcjscjtcjucjvcjwcjxcjycjzcjAcjBcjCcjDcjEcjFcjGcjHchxcjIciDcjJbTEchAbZucjKcjLcjMcjNcjObSFcjPcjQbXvcfEbUVcjRchKchKbTPaqUbIbbFVcjScjTcjUcjVcjWbIbcjXcjYcjZciYckaciYchQckbckcbQTckdbIyckeckfckfckgckhbRPcjackibIyabVabVabVabVbQRckjbTmckkcklcklbWLckmckmcjdcknbWLckobUubUubUubXUcjfcdcbQRckpbUubUubQRbQRbQRabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaciccjicieabVciccjicieabVciccjicieaaaabVabVabVbHVckqcjkckrbHVckscktckuckvbYbbHVaqTaqTaqTaqTaqUaqTaqTaqUaqTbPWcbncboccgckwckxckyckzckAccgckBckCckDckEckFcbpckGckHckIckJckKckLckMckNckOckPckQckRckSckTckUckVbTEchAckWckXbTEbTEckWckWckWcaBckYckZceJbTPbTPbTPbTPbTPaqUbIbcgIclaclbclccldclebIbbIbclfclgclhbIxclicljbIbbIbbQTckdbIyclkcllcllclmclncloclpclqbIyabVaaaaaaabVbQRbUuclrclscltclubWLclvclvclwcknbWLbQRbQRclxclybXUcjfbYZbUubUubUuclzclAclBclCabWabWabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVciccjicieaaaciccjicieaaaciccjicieabVabVaaaaaabHVclDclEclFbHVclGclHbHVclIbHVbHVaqTaqUaqTaqTaqUaqTaqTaqUaqTbPWcbncbocbocbocbocbocbocbocbocbpcbpcbpcbpcbpcbpbHVclJbHVciDclKclKclKclLclMclNclKclOclPclQciDbTEbWiclRckWchEbXlbTEbTMcavckWcaBckWbRtclSclTccEaqUaqUaqUaqUclUclUclVclWclXclUclUclUclYclZcmaclhcmbclhclhbIbcmcbQTckdbIybIycmdcmdbIybIycmdcmecmdbIyaaaaaaaaaaaabQRbQRcjfcmfbQRbQRbWLbWLbWLcmgcmhbWLbXUbQRcfYbUucmicjfchfbQRbQRcmjbQRbQRbQRbQRabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIabVaaaciccjicieaaaciccjicieaaaciccjicieaaaabVaaaaaacmkcmlcmlcmlcmlbHVbHVcmmcmnbHVbRgbRgbRgbRgbRgbRgbRgbRgbRgbHVcmocmpbZjcmqcmrcmscmscmscmscmscmscmscmscmscmtcmtcmscmuclGciDcmvcmwcmxcmycmzcmAclKcmBcmCcmDciDcmEcmFbXscmGcmHcmIcmJcmGcmKcmGcmLckWbRtbRtbRtcmMaqTaqUaqUclUclUcmNcmOcmPcmQcmRcmSclUcmTbFVcmUcmVcmWcmXcmYbQCbQCcmZcnabQRaaaaaaaaaaaaaaaabVcnbabVaaaaaaaaaaaaaaabQRcnccndcnecnecnfcngcnhcnicnjcnkbQRbQRbQRbQRcnlbQRcjfbYZbQRcnmcnnbUubQRaaaabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaaaaaaacnoaaaaaaaaacnoaaaaaaaaacnoaaaaaaabVcmkcmkcmkcnpcnqcnrcnscntbNlcnucnvcnwcnxcnxcnxcnxcnxcnxcnxcnxcnxcnxcnxcnycakcnzcnAciDciDciDciDciDciDciDciDciDciDciDciDciDciDciDclKcnBcmycnCcnDcnEcnFcnGcnHcnIciDcmEcnJcnKcnLcnMcnNcnOcnPbTEcnQcnRcnScnTcnUcnVcmMaqTaqUcnWcnXcnYcnZcoacobcoccodcoeclUbFVbFVclhclhbEOclhciYbFVbFVbQTcofbQRbQRceZceZbQRbQRceZcogceZbQRbQRceZceZceZbQRcohcoicojcokcolcomcomcomconcoocopcoqcorcoscoscoscotcoubQRcjhbUucovbQRaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVcowcoxcoxcoycozcozcozcozcozcozcozcozcozcozcozcoAcoBcoCcoDcoEcoFcoGcoHcnxcnxcoIbVHbHVbRgbRgbRgbRgbRgbRgbRgbRgbRgbHVbHVcoJcoKcoLcoMciDcoNcoNcoOciDcoPcoQcoRcoScoTcoUcoVcoWcoXcoYclKcoZcpacpbcpccpdcpecpfcpgcphciDbRtcpibSzcpjcpkcplbSzcpjbSzcpmbSzcpnbRtbRtbRtceJaqUaqUbTQclUcpocppcpqcprcpscptcpuclUcpvbFVciYciYcpwclhciYbFVcpxbQTcpycpzcpzcpzcpzcpzcpAcpzcpBcnecnecnecnecnecnecpCcpDbTkbQRcpEcpFbQRbQRceZceZbQRbQRcpGchecpHcojcpIcpJcpKbQRbQRbQRbQRbQRaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaaaaaaacpLaaaaaaaaacpLaaaaaaaaacpLaaaaaaabVcmkcmkcmkcpMcpNcpOcmlbNlbNlbNlbNlbHVaaaaaaabVaaaaaaabVaaaaaaabVaaabHVcpPbHVcpQcpRciDcpScpTcoOcpUcpVcpWcpXcpYcpXcpZcqacqbcqccqdclKcqecmycqfcqgcqhclKcqicqjcqkciDaqUcqlaqUbTQcqmcqlaqUbTQaqUcqnaqUcqnaqUaqUaqTceJaqTaqUbTQclUcqocqpcoacqqcqrcqscqtcqucqvcqwcqxciYbIxciYcqychQckbcqzcqAcqAcqAcqAcqAcqAcqAcqBcqCcqAcqAcqAcqAcqAcqAcqDcqEcqFbQRcqGchebQRaaaaaaaaaaaabQRbUuchecqHcqIcqIcqJcqKcqIaaaabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIabVaaaciccqLcieaaaciccqLcieaaaciccqLcieaaaabVaaaaaacmkcmlcmlcmlcmlcqMbRfbNlbNlbHVbHVbRgcqNcqOcqOcqOcqOcqOcqOabVbHVbHVbHVcqPcqQciDcqRcqScoOcpUcqTcpXcqUcqVcqWcqXcpXcpXcpXcpXclKcqYcqZcqZcracrbclKcrccrdciDciDbTPcrebWncrebTPcrebWncrebTPcrfbWncrgbTPaqTaqTceJaqTaqTbTQcrhcricoccrjcoccrkcrlcrmclUcrnclhclhclhcroclhclhclhbIbbIbbQRbQRceZceZceZbQRbQRceZceZceZbQRbQRceZceZceZbQRcrpbQRbQRcrqchebQRbQRceZceZbQRbQRbUuchecrrcqIcrscrtcrucqIaaaaaaabVabVaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVciccqLcieaaaciccqLcieaaaciccqLcieabVabVabVaaaaaaaaaaaaabWbHVbHVbHVcrvbNlbHVcrvbOMcqOcrwcrxcrycrxcrzcqOaaabHVbYbbNlcrAcqQciDcrBcrBcrCciDcrDcrEcrFcpXcrGcrHcrIcrJcrKcrKclKcrLcrMcrMcrNcrOcrPcrQcrRcrSciDbTPcrTcrUcrVbTPcrWcrXcrYbTPcrZcsacsbbTPaqTaqTceJaqTaqTbTQclUcsccsdcsecsfcsgcshcsiclUcsjcskcslcsmcsncsociYciYbFVcspbFVbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaabQRcsqbXUbQRcsrcsscstcngcstcstcstcstcsucsvcswcqIcsxcsycszcqIabVaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaciccqLcieabVciccqLcieabVciccqLcieaaaabVabVabVaaaaaaaaaabWcddcsAcdebNlbNlbZhbNlcsBcqOcsCcsDcsEcsFcsGcqOaaabHVclHbNlcrAcqQciDcrBcrBcrCciDcsHcoWcsIcsJcsKcsLcsIcoWcsIcsIcoWcsMcsNcsOcqTcsPcsQcsRcsScsTciDbTPcsUcsVcsUbTPcsWcsXcsWbTPcsYcsZctabTPaqUaqUceJaqUaqUbTQclUclUclUctbctcctdctectfctccsjctgciYcthctictjckcciYctkbIbbFVbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaabQRctlcnnbQRctmctnctnctoctncojcojcojctpctpctqcqIctrctscttcqIabVaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVciccqLcieaaaciccqLcieaaaciccqLcieabVabVaaaabVabVaaaaaaabWbHVbHVbHVbHVbNlbHVbHVbHVcqOctuctvctwctxctucqOabVbHVciDctyctzctAciDcrBcrCcrCciDctBctCctCcsOcrGctDctEctFctEctEctGctHctIctIcpWcpXcpXctJcnHctKciDbTPcsUctLcsUbTPcsWctMcsWbTPctactNctabTPaqUaqUceJaqTaqTcgEbSJaqTaqTctOctcctPctQctRctcbFVctSctTbMFctUctVchQctWctXbIbcspbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaabQRctYbUubQRbQRbQRbQRbQRbUubQRabVaaaaaaaaaabVctZctZcuactZctZabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQaaaciccubcieaaaciccubcieaaaciccubcieaaaacIaaaaaaabVabVaaaaaaaaaaaaaaabRgbNlbRgaaaaaacqOcuccudcuecufcugcqOcqOcqOciDcuhctzcuiciDciDciDciDciDcujcukcpXcpXcrGcsScpXcpYcpXculcpXcpXcpXcpXcpXcumcpXcrGcsScunciDbTPbTPbTPbTPbTPbTPbTPbTPbTPbTPbTPbTPbTPaqUaqTceJaqTaqTaqTbTQaqTaqTcuoctcctdcupctfctcbIbcuqckbcurcusckbcutbIbbIbbIbabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbQRcuubUubUubUubUubUubUubUubQRabVaaaaaaaaaabVaaactZcuvctZaaaabVaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaabVaaaabVaaaabVaaaabVaaaabVaaaacIaaaaaaaaaabVabVaaaaaaaaaaaabRgbNlbRgaaaaaacqOcuwcuxcuycuzcuAcuBcuCcuDcuBcuEcuFcuGcuHcuIcuJcuKcuLcuMcuNcuOcuPcuQcuRciDciDcuScuTcuSciDciDcuTcuTciDcuTcuUcsScuVciDciDciDciDciDcoWcoWcoWcoWciDaaaaaaaaaaaaaqTaqTceJaqTaqTaqTbTQaqTaqTcuoctccuWcuXcuYcuZaqUbIbclfcvabUZbUZbIbbIbaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbQRcvbcvccvdckocvebSjbTjbQRbQRabVaaaaaaaaaabVaaactZcvfctZaaaabVaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIacIacIacQacIacIacIacIacIacIacIacIacIaaaaaaaaaaaaabVabVaaaaaaabVbRgbNlbRgabVabVcqOcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscvscvscvtcvscvucvvcvwcvxcvycvzcvAcvBcvCcvCcvCcvDcvEcvCcvFcvGcvHcvIcvJcvKcvLcvMcvNcvOciDcvPcoWcvQcvRcvRcvRaaaaaaaaaaqTaqTceJaqTaqTaqTbTQaqTaqTcuoctcctccvSctcctcaaaaqUaaacvTaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQRbQRbQRcegbQRcrpbQRceZceZbQRbQRaaaabVaaaaaaaaaabVaaaaaacvUaaaaaaabVaaaabVaaaaaaabVaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaabRgbNlbRgaaaaaacqOcvVcvWcvXcvYcvZcqOcwacwbcqOcwccwdcwecpYcpXcwfcsIcwgcwhcwicwjcwkcwlcwmcwncwmcwmcwmcwmcwmcwocwpcwqcwrcwscwtcqVcqVcqVcqWcsScwucwvcoOcwwcwxcwycwzcwAcwBaaaaaaaqTaqTceJaqTaqTaqTbTQaqTaqTcuobZYctccwCctccwDaqUaqUaaacwEaqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQRcwFcwGcwGbQRcwHabVaaaaaaabVaaaaaaabVaaaaaaaaaabVaaaaaacvUaaaaaaabVaaaabVaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVbHVbHVcwIbHVbHVaaacqOcwJcwKcwLcqOcqOcqOcqOcqOciDcwMcpXcwecpXcpXcwNcsIcwOcpXcuTcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcwZcxacxbcxccxdcxecxfcxgcrGcsScxhciDcxicoWcvQcvRcvRcvRaaaaaaaaaaqTaqTceJaqTcxjaqTbTQaqTaqTcxkbZYcxlcxmcxlbZYaqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceZceZceZcwGcwGcxnbQRaaaabVaaaaaaabVaaaacIacIacIacQabVabVabVabVcvUabVabVabVabVabVacQacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVbHVcpPbNlcxobHVabVcqOcqOcqOcqOcqOabVaaaaaaabVciDcxpcpXcxqcxrcxscxtcoWcoWcxuciDcwPcwQcxvcxwcxxcxycxzcxAcxzcxBcxCcxDcxEcwQcxFcoWcxGcpXcxHcxIcxJcxKcxKcxLcxLcxLcxLcxKcxMcxMcxMcxMclTclTcxNaqUaqUaqUbTQaqTaqTaqUbZYaaaaaaaaabZYaqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceZbUucxOcwGcwGcxPbQRaaaabVaaaaaaabVaaaacIaaaaaaabVaaaabVaaaaaacxQaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRgcxRcxScxTbHVabVaaaaaaabVaaaaaaabVaaaaaaabVciDcxUcxVcxWcxXcxYcxZcoWcyacybciDcwPcwQcxvcyccyccxBcydcyecyfcygcyhcyhcxEcwQcyiciDcuTcyjciDcrGcykcylcymcyncyocypaaaabVabVabVabVabVaqTaqTaqUaqTaqTaqTbTQaqTaqTaqTbZYbZYbZYbZYbZYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceZcxOceZceZceZceZbQRaaaabVaaaaaaabVaaaacIabVcyqcyqcyqcyqcyqaaacyraaacyqcyqcyqcyqcyqabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRgcyscytbOLbHVcoWcyucyucyucyucyucyucyucyucoWciDcyvcywcyxcyycyvciDciDciDcyzciDcyAcwQcyBcyCcxBcyDcyEcyFcyGcyHcxBcyIcyJcwQcyKciDcyLcyMciDcyNcyOcyPcyQcpXcyRcypaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaacySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaabVaaaacIaaacyTcyUcyUcyUcyUcyVcyrcyWcyXcyXcyXcyXcyYaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRgbRgbRgbRgbHVabVaaaaaaaaaaaaaaaaaaabVabVabVaaaaaacyZczaczbczaczcczaczcczaczdczeczfczgczhcziczjczkczlczmcznczoczpczqczrczscztczuczvciDczwciDciDczxczyczzcypaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaacySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaacIadYczAczAczAczAczAaaacyraaaczAczAczAczAczAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadbadaabVabVczBczCczCczCczCczCczCczDczEczFcwQczGczHczIczjczkczJczmcznczoczKczLcwQcyicyLczMczNciDczOczPciDcoWcoWczQcoWabVabVabVabVabVabVabVabVabVabVabVabVcySabVabVabVabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaacIaaaaaaaaaabVaaaaaaaaacyraaaaaaaaaabVaaaaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaaaaaaacyZczaczbczaczbczaczbczSczTczUcwQczVczWczIczXczkczlczmczYczoczZcAacwQcyicyLczMcAbciDcAccAdcoWabVaaacAeaaaabVaaaaaaaaaabVaaaaaaaaaabVaaaaaaaaacySaaaaaaaaacAfcAfcAfcAfcAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVcyqcyqcyqcyqcyqaaacyraaacyqcyqcyqcyqcyqabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaaaaaaacAgcAhcAicAhcAicAhcAicAhcAjcAkcAlcAmcyIcxBcxBcAncAocygcxBcxBcyCcApcAqcArcAscAtcAbcuTabWabWabWabVaaaaaacAucAvcAwcAwcAwcAvcAwcAwcAwcAvcAwcAwcAwcAxcAwcAwcAwcAycAzcAAcABcAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaacyTcyUcyUcyUcyUcyVcyrcyWcyXcyXcyXcyXcyYaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaabVabVcACcADcADcADcADcADcADcADczTcAEcwQcAFcAGcAHcAIcAJcAKcALcAMcANcAOcAPcwQcAQcARcyLcAScuTaaaaaaabWabVaaaaaaaaaabVaaaaaaaaaabVaaaaaaaaaabVaaaaaaaaacySabWcAfcAfcAfcATcAUcATcAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVczAczAczAczAczAaaacyraaaczAczAczAczAczAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaaaaaaacAgcACcAgcACcAgcACcAgcACczTcAVcAWcwmcAXcAYcAZcBacBbcBccAZcAYcBdcwmcBecBfcBgcBhcBicuTaaaaaaabWabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVabVcySabWcBjcBkcBlcABcBmcABcAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQaaaaaaaaaabVaaaaaaaaacBnaaaaaaaaaabVaaaaaaaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaaaaaaacAgcACcAgcACcAgcACcAgcACcBocBpcBqcBrcBscBtcBucBvcBwcBxcBucBycBzcBucBAcBBcBCciDciDciDaaaaaaabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWcBDabWcAfcBEcBFcBGcBmcBHcBFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVcyqcyqcyqcyqcyqaaacvUaaacyqcyqcyqcyqcyqabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaabVabVcACcADcADcADcADcADcADcADaaacBocuPcBIcBJcuTciDcuTcuTcuTciDcuTcBJcBKckUcBLcBMabWaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacySabWcBNcBNcBNcBNcBOcBPcBQcBRabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaacyTcyUcyUcyUcyUcBScBTcBScyXcyXcyXcyXcyYaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRadaaaaaaacBUczScBUczScBUczScBUczSaaaaaaciDcBVcBWcoOcBXcBYcBZcyLcBXcoOcBWcCaciDabWcCbabWaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacySaaaaaacBNcBNcCccCdcCecBNcBNcBNcBNcBNabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVczAczAczAczAczAaaacvUaaaczAczAczAczAczAabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadbadaaaaaaaaaaabVaaaabVaaaabVaaaabVaaaabVciDcCfcCgcChcyLcyLcyLcyLcyLcCicCjcyMciDabWabWabWabVabVaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacySaaaaaacBNcCkcClcCmcCncCocCpcCqcCrcBNabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaaaaabVaaaabVaaaaaacvUaaaaaaabVaaaabVaaaaaaacIaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaabVaaaabVaaaabVaaaabVaaaaaaciDcyLcCscCtcyLcyLcBZcyLcyLcCucCjcyLcCvabVaaaabVaaaabVczRadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacySaaaaaacBNcCwcCxcCycCzcCAcCBcCCcCDcBNabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaacIacIacIacIacIabVabVaaacvUaaaabVabVacIacIacIacQacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVadaadaadaadaadaadaadaadaadaabVabVciDcoOcCEcCtcoOcCFciDcCGcoOcCicCHcCIciDabVabVabVabVabVczRadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcCJcCKabVcBNcCLcCMcCNcCOcCPcCQcCRcCScBNabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIabVcCTabVacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbczRczRabVaaaadbczRczRczRczRczRczRczRadaaaaaaaciDciDciDciDciDciDciDciDciDciDciDciDciDabVaaaabVczRczRczRadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcCUcCVcCUcCUcCWcCXcCYcCZcDacDbcDbcDbcDbabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIaaaabVaaaacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadbczRabVaaaadbadbadbadbadbadbadbadbadaaaaaaaaaaaaaabVaaaabVaaaaaaabVabVaaaabVabVabVabVaaaabVadbadbadbadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCUcCUcDccDdcCUcDecDecDfcDgcDecDbcDhcDhcDbcDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIacIacIacIacIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaadbadaadbadaadbadbadbacIadbadaadbadbaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCUcDicDjcDkcDlcDecDmcDncDocDecDpcDqcDqcDrcDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVabVabVabVczRczRczRczRczRczRczRczRczRczRczRadaabVabVabVabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCUcDscDtcDucDvcDwcDxcDycDzcDwcDAcDBcDCcDDcDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaadbadaadbadbadbadbadbadbadbadaadbadbaaaaaaabVaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCUcDEcDFcDGcDHcDIcDJcDKcDLcDMcDNcDOcDPcDQcDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaabVaaaaaaaaaaaaabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCUcCUcDRcDtcDScDecDTcDUcDVcDecDWcDXcDYcDbcDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcEacEbcEacDZcDZcEccEdcDZcEacEecEacDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcEgcEhcEacEicEjcEkcElcEicEacEmcEncDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcEocEhcEacEicEjcEkcElcEicEacEmcEpcDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEqcDZcDZcEhcEacErcEjcEscEtcEucEacEmcDZcDZcEvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVcDZcEwcEacExcEjcEkcElcEicEacEycDZabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcEzcEAcEBcECcEDcElcEEcEFcEGcDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcEHcEacEIcEJcEKcElcELcEacEHcDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVcDZcEHcEacErcEMcENcElcEucEacEHcDZabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcDZcEHcEacEicEjcEkcElcEicEacEHcDZcDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcDZcEHcEHcEacEicEjcEOcElcEicEacEHcEHcDZabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcEHcEPcEPcEQcEPcERcEScETcEPcEPcEHcDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcEHcEPcEPcEUcEVcEWcEXcEYcEPcEPcEHcDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcEHcEPcEPcEZcFacFbcFccFdcEPcEPcEHcDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcFecEPcEPcFfcFfcFgcFhcFfcEPcEPcFecDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDZcFecEPcFjcFjcFkcFlcFccFjcFjcEPcFecDZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcFmcFncFocFpcFqcFrcFscEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcFtcEWcFucFvcFwcFccFtcEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcEPcEPcEPcFjcFlcFxcFycFxcFzcFjcEPcEPcEPabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFAcEPcEPcFBcFkcFCcFxcFxcFxcFDcFkcFEcEPcEPcFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcEPcEPcEPcFtcFHcFIcFJcFxcFkcFtcEPcEPcEPabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcFmcFkcFKcFLcFjcFkcFscEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcFjcFkcFMcFNcFkcFkcFjcEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcEPcEPcEPcEPcEPcEPcEPcEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEPcEPcEPcEPcEPcEPcEPcEPcEPcEPcEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVcEPcEPcEPcEPcEPcEPcEPcEPcEPabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVabVaaaaaacFOaaaaaaabVabVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 8d5164cfbf..364e912b4b 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -69,8 +69,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/space, /area/space/nearstation) @@ -96,8 +95,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating, /area/engine/engineering) @@ -127,7 +125,6 @@ /obj/machinery/power/apc{ dir = 1; name = "Gravity Generator APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -150,7 +147,6 @@ desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plating, @@ -183,8 +179,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -203,8 +198,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/space, /area/space/nearstation) @@ -213,8 +207,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/engineering) @@ -222,8 +215,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/engine/engineering) @@ -236,8 +228,7 @@ /obj/structure/cable{ d1 = 2; d2 = 8; - icon_state = "2-8"; - tag = "" + icon_state = "2-8" }, /turf/open/floor/plating, /area/engine/engineering) @@ -246,11 +237,9 @@ /area/engine/engineering) "aG" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -414,9 +403,7 @@ /turf/open/floor/plating, /area/engine/atmos) "ba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, /area/engine/atmos) "bb" = ( @@ -504,23 +491,19 @@ /area/engine/atmos) "bm" = ( /obj/machinery/atmospherics/components/binary/valve/open{ - icon_state = "mvalve_map"; dir = 4 }, /turf/open/floor/plating, /area/engine/atmos) "bn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/light, /turf/open/floor/plating, /area/engine/atmos) "bo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/table, /obj/item/weapon/screwdriver/power, /obj/item/weapon/wirecutters/power, @@ -617,9 +600,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -733,7 +715,6 @@ }, /obj/structure/closet/firecloset/full, /turf/open/floor/plasteel/arrival{ - tag = "icon-arrival (NORTHWEST)"; icon_state = "arrival"; dir = 9 }, @@ -786,8 +767,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -796,8 +776,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -807,8 +786,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plating, /area/bridge) @@ -816,8 +794,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 1; @@ -832,8 +809,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/bridge) @@ -841,8 +817,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel/blue/side{ dir = 4 @@ -854,8 +829,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ d1 = 2; @@ -869,8 +843,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -878,8 +851,7 @@ /obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8"; - pixel_x = 0 + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-8" @@ -919,9 +891,7 @@ /area/hallway/primary/central) "cp" = ( /obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/blue/side{ dir = 10 }, @@ -946,7 +916,6 @@ "ct" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -1034,9 +1003,8 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/entry) "cH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/arrival{ dir = 8 @@ -1140,9 +1108,8 @@ /obj/effect/turf_decal/stripes/corner, /area/construction) "cX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, @@ -1171,9 +1138,8 @@ /turf/open/floor/plating, /area/storage/primary) "db" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plating, /area/storage/primary) @@ -1221,8 +1187,7 @@ /area/storage/primary) "dj" = ( /turf/open/floor/plasteel{ - icon_state = "L13"; - name = "floor" + icon_state = "L13" }, /area/storage/primary) "dk" = ( @@ -1236,7 +1201,6 @@ /area/storage/primary) "dm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -1249,7 +1213,6 @@ /area/construction) "do" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel, @@ -1259,7 +1222,6 @@ /area/construction) "dp" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating, @@ -1301,7 +1263,6 @@ /area/storage/primary) "dx" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating, diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index 7c460880cc..536ae5368d 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -33,7 +33,6 @@ "ah" = ( /obj/structure/foamedmetal, /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /turf/open/floor/holofloor/asteroid, @@ -41,7 +40,6 @@ "ai" = ( /obj/structure/foamedmetal, /obj/structure/window{ - icon_state = "rwindow"; dir = 4 }, /turf/open/floor/holofloor/asteroid, @@ -51,7 +49,6 @@ /area/holodeck/rec_center/bunker) "ak" = ( /turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8 }, @@ -62,7 +59,6 @@ heal_burn = 10 }, /turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8 }, @@ -97,8 +93,7 @@ "ap" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green{ - layer = 3.3; - pixel_y = 0 + layer = 3.3 }, /turf/open/floor/holofloor{ icon_state = "wood"; @@ -143,13 +138,13 @@ /turf/open/floor/holofloor/snow, /area/holodeck/rec_center/winterwonderland) "ay" = ( +/obj/effect/holodeck_effect/mobspawner/penguin, +/obj/effect/holodeck_effect/mobspawner/penguin, /obj/item/toy/snowball{ - pixel_x = 0; pixel_y = 6 }, /obj/item/toy/snowball{ - pixel_x = 5; - pixel_y = 0 + pixel_x = 5 }, /obj/item/toy/snowball{ pixel_x = -4 @@ -158,7 +153,6 @@ /area/holodeck/rec_center/winterwonderland) "az" = ( /turf/open/floor/holofloor{ - tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8 }, @@ -167,7 +161,6 @@ /obj/structure/table, /obj/machinery/recharger, /turf/open/floor/holofloor{ - tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8 }, @@ -221,14 +214,12 @@ /obj/structure/table, /obj/item/weapon/gun/energy/laser, /turf/open/floor/holofloor{ - tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8 }, /area/holodeck/rec_center/bunker) "aK" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 4 }, /turf/open/floor/holofloor{ @@ -255,7 +246,6 @@ /area/holodeck/rec_center/lounge) "aN" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 8 }, /turf/open/floor/holofloor{ @@ -271,7 +261,6 @@ /area/holodeck/rec_center/winterwonderland) "aP" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/holofloor{ @@ -285,7 +274,6 @@ /area/holodeck/rec_center/winterwonderland) "aR" = ( /obj/structure/window/reinforced/tinted{ - icon_state = "rwindow"; dir = 4 }, /turf/open/floor/holofloor{ @@ -301,6 +289,7 @@ }, /area/holodeck/rec_center/lounge) "aT" = ( +/obj/effect/holodeck_effect/mobspawner/penguin_baby, /obj/structure/flora/tree/pine, /turf/open/floor/holofloor/snow, /area/holodeck/rec_center/winterwonderland) @@ -372,7 +361,6 @@ heal_brute = 10 }, /turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8 }, @@ -439,7 +427,6 @@ /obj/structure/table/glass, /obj/item/weapon/surgicaldrill, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; icon_state = "white"; dir = 9 }, @@ -448,7 +435,6 @@ /obj/structure/table/glass, /obj/item/weapon/hemostat, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, @@ -460,7 +446,6 @@ }, /obj/item/weapon/circular_saw, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, @@ -469,7 +454,6 @@ /obj/structure/table/glass, /obj/item/weapon/retractor, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, @@ -479,7 +463,6 @@ /obj/item/stack/medical/gauze, /obj/item/weapon/cautery, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; icon_state = "white"; dir = 5 }, @@ -513,7 +496,6 @@ /obj/structure/table, /obj/machinery/readybutton, /turf/open/floor/holofloor{ - tag = "icon-warningline"; icon_state = "warningline"; dir = 2 }, @@ -526,7 +508,6 @@ /obj/item/clothing/under/color/red, /obj/item/weapon/holo/esword/red, /turf/open/floor/holofloor{ - tag = "icon-warningline"; icon_state = "warningline"; dir = 2 }, @@ -535,7 +516,6 @@ /turf/open/floor/holofloor/basalt, /obj/structure/table, /turf/open/floor/holofloor{ - tag = "icon-warningline"; icon_state = "warningline"; dir = 2 }, @@ -577,7 +557,6 @@ /obj/item/weapon/surgical_drapes, /obj/item/weapon/razor, /turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; icon_state = "white"; dir = 8 }, @@ -589,7 +568,6 @@ /area/holodeck/rec_center/medical) "bK" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (EAST)"; icon_state = "white"; dir = 4 }, @@ -657,7 +635,6 @@ /area/holodeck/rec_center/pet_lounge) "bX" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white"; dir = 10 }, @@ -685,7 +662,6 @@ /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/mask/surgical, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white"; dir = 6 }, @@ -742,14 +718,12 @@ /obj/structure/table/glass, /obj/machinery/reagentgrinder, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; icon_state = "white"; dir = 9 }, /area/holodeck/rec_center/medical) "cl" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; icon_state = "white"; dir = 5 }, @@ -842,14 +816,12 @@ "cy" = ( /obj/machinery/chem_master, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white"; dir = 10 }, /area/holodeck/rec_center/medical) "cz" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white"; dir = 6 }, @@ -980,14 +952,12 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; icon_state = "white"; dir = 9 }, /area/holodeck/rec_center/medical) "cW" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /obj/structure/bed, @@ -996,14 +966,12 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; icon_state = "white"; dir = 5 }, /area/holodeck/rec_center/medical) "cX" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /obj/machinery/computer/pandemic, @@ -1040,7 +1008,6 @@ /area/holodeck/rec_center/pet_lounge) "de" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; icon_state = "white"; dir = 8 }, @@ -1048,21 +1015,18 @@ "df" = ( /turf/open/floor/holofloor{ dir = 8; - icon_state = "white_warn_corner"; - tag = "icon-white_warn (WEST)" + icon_state = "white_warn_corner" }, /area/holodeck/rec_center/medical) "dg" = ( /obj/machinery/door/window/westleft, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, /area/holodeck/rec_center/medical) "dh" = ( /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, @@ -1077,14 +1041,12 @@ density = 0 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white"; dir = 10 }, /area/holodeck/rec_center/medical) "dk" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /obj/structure/bed, @@ -1098,11 +1060,9 @@ /area/holodeck/rec_center/medical) "dl" = ( /obj/structure/window{ - icon_state = "rwindow"; dir = 8 }, /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/holofloor{ @@ -1119,11 +1079,9 @@ /area/holodeck/rec_center/medical) "dn" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white"; dir = 6 }, @@ -1157,7 +1115,6 @@ /turf/open/floor/holofloor/basalt, /obj/structure/table, /turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, @@ -1170,7 +1127,6 @@ /obj/item/clothing/under/color/green, /obj/item/weapon/holo/esword/green, /turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, @@ -1180,7 +1136,6 @@ /obj/structure/table, /obj/machinery/readybutton, /turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, @@ -1210,7 +1165,6 @@ "dz" = ( /turf/open/floor/holofloor/grass, /turf/open/floor/holofloor{ - tag = "icon-warningline"; icon_state = "warningline"; dir = 2 }, @@ -1260,8 +1214,7 @@ /obj/item/clothing/head/powdered_wig, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "dI" = ( @@ -1271,8 +1224,7 @@ /obj/item/clothing/suit/holidaypriest, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "dJ" = ( @@ -1280,8 +1232,7 @@ /obj/item/weapon/storage/book/bible, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "dK" = ( @@ -1289,8 +1240,7 @@ /obj/item/weapon/book/manual/wiki/security_space_law, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "dL" = ( @@ -1299,14 +1249,12 @@ }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "dM" = ( /obj/machinery/conveyor/holodeck{ dir = 5; - icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1 @@ -1343,7 +1291,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; icon_state = "white"; dir = 9 }, @@ -1353,7 +1300,6 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; icon_state = "white"; dir = 1 }, @@ -1366,7 +1312,6 @@ dir = 4 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; icon_state = "white"; dir = 5 }, @@ -1385,21 +1330,18 @@ /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_viva"; - name = "Black Rook"; - tag = "icon-cutout_viva" + name = "Black Rook" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "dW" = ( /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_mime"; - name = "Black Queen"; - tag = "icon-cutout_mime" + name = "Black Queen" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -1409,21 +1351,18 @@ /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_clown"; - name = "Black King"; - tag = "icon-cutout_clown" + name = "Black King" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "dY" = ( /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_ian"; - name = "Black Knight"; - tag = "icon-cutout_ian" + name = "Black Knight" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -1442,8 +1381,7 @@ dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; - name = "photon torpedo tube"; - tag = "icon-mass_driver (NORTH)" + name = "photon torpedo tube" }, /obj/item/toy/minimeteor{ color = ""; @@ -1516,8 +1454,7 @@ dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; - name = "photon torpedo tube"; - tag = "icon-mass_driver (NORTH)" + name = "photon torpedo tube" }, /obj/item/toy/minimeteor{ color = ""; @@ -1533,14 +1470,12 @@ dir = 4 }, /turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1 }, /area/holodeck/rec_center/chapelcourt) "eh" = ( /turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4 }, @@ -1549,13 +1484,11 @@ /obj/structure/chair, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "ej" = ( /turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1 }, @@ -1565,7 +1498,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4 }, @@ -1592,7 +1524,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; icon_state = "white"; dir = 8 }, @@ -1609,7 +1540,6 @@ dir = 4 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (EAST)"; icon_state = "white"; dir = 4 }, @@ -1618,8 +1548,7 @@ /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_greytide"; - name = "Black Pawn"; - tag = "icon-cutout_greytide" + name = "Black Pawn" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -1629,13 +1558,11 @@ /obj/item/cardboard_cutout/adaptive{ color = "#9999BB"; icon_state = "cutout_greytide"; - name = "Black Pawn"; - tag = "icon-cutout_greytide" + name = "Black Pawn" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "et" = ( @@ -1665,8 +1592,6 @@ /area/holodeck/rec_center/kobayashi) "ey" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/holofloor/plating, @@ -1682,13 +1607,11 @@ }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" + icon_state = "chapel" }, /area/holodeck/rec_center/chapelcourt) "eB" = ( /turf/open/floor/holofloor{ - tag = "icon-chapel"; icon_state = "chapel"; dir = 2 }, @@ -1699,15 +1622,13 @@ /obj/structure/table/wood, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "eD" = ( /turf/open/floor/holofloor{ dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" + icon_state = "chapel" }, /area/holodeck/rec_center/chapelcourt) "eE" = ( @@ -1715,7 +1636,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-chapel"; icon_state = "chapel"; dir = 2 }, @@ -1729,7 +1649,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white"; dir = 10 }, @@ -1744,7 +1663,6 @@ dir = 4 }, /turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white"; dir = 6 }, @@ -1756,8 +1674,7 @@ "eK" = ( /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "eL" = ( @@ -1767,7 +1684,6 @@ /area/holodeck/rec_center/spacechess) "eM" = ( /turf/open/floor/holofloor{ - tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8 }, @@ -1795,8 +1711,7 @@ "eQ" = ( /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/chapelcourt) "eR" = ( @@ -1848,7 +1763,6 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1 }, @@ -1858,7 +1772,6 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4 }, @@ -1879,8 +1792,7 @@ }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" + icon_state = "chapel" }, /area/holodeck/rec_center/chapelcourt) "fe" = ( @@ -1888,7 +1800,6 @@ dir = 1 }, /turf/open/floor/holofloor{ - tag = "icon-chapel"; icon_state = "chapel"; dir = 2 }, @@ -1917,20 +1828,17 @@ "fi" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_greytide"; - name = "White Pawn"; - tag = "icon-cutout_greytide" + name = "White Pawn" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "fj" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_greytide"; - name = "White Pawn"; - tag = "icon-cutout_greytide" + name = "White Pawn" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -1961,7 +1869,6 @@ dir = 8 }, /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -1971,7 +1878,6 @@ /obj/item/weapon/folder, /obj/item/weapon/pen, /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -1984,7 +1890,6 @@ /obj/item/weapon/folder, /obj/item/weapon/pen/red, /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -2040,8 +1945,7 @@ "fv" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_viva"; - name = "White Rook"; - tag = "icon-cutout_viva" + name = "White Rook" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -2050,20 +1954,17 @@ "fw" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_mime"; - name = "White Queen"; - tag = "icon-cutout_mime" + name = "White Queen" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "fx" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_clown"; - name = "White King"; - tag = "icon-cutout_clown" + name = "White King" }, /turf/open/floor/holofloor{ icon_state = "white" @@ -2072,18 +1973,15 @@ "fy" = ( /obj/item/cardboard_cutout/adaptive{ icon_state = "cutout_ian"; - name = "White Knight"; - tag = "icon-cutout_ian" + name = "White Knight" }, /turf/open/floor/holofloor{ dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" + icon_state = "dark" }, /area/holodeck/rec_center/spacechess) "fz" = ( /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -2103,14 +2001,12 @@ "fC" = ( /turf/open/floor/holofloor/grass, /turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1 }, /area/holodeck/rec_center/spacechess) "fD" = ( /obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/holofloor/grass, @@ -2121,14 +2017,12 @@ /obj/item/clothing/under/trek/medsci, /obj/item/clothing/under/trek/command, /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, /area/holodeck/rec_center/kobayashi) "fF" = ( /turf/open/floor/holofloor{ - tag = "icon-neutral"; icon_state = "neutral"; dir = 2 }, @@ -2138,7 +2032,6 @@ /obj/item/clothing/under/trek/engsec, /obj/item/clothing/under/trek/engsec, /turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1 }, @@ -2146,9 +2039,7 @@ "fH" = ( /obj/machinery/conveyor/holodeck{ dir = 9; - icon_state = "conveyor0"; id = "holocoaster"; - tag = "icon-conveyor0 (NORTHWEST)"; verted = -1 }, /turf/open/floor/holofloor/asteroid, @@ -2304,43 +2195,36 @@ /area/ctf) "gf" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; dir = 9 }, /area/ctf) "gg" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/ctf) "gh" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; dir = 5 }, /area/ctf) "gi" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; dir = 9 }, /area/ctf) "gj" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/ctf) "gk" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHEAST)"; dir = 5 }, /area/ctf) "gl" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; dir = 8 }, /area/ctf) @@ -2349,7 +2233,6 @@ /area/ctf) "gn" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/ctf) @@ -2376,7 +2259,6 @@ /area/ctf) "gu" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (WEST)"; dir = 8 }, /area/ctf) @@ -2386,7 +2268,6 @@ /area/ctf) "gw" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; dir = 4 }, /area/ctf) @@ -2402,7 +2283,6 @@ /area/start) "gA" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHWEST)"; dir = 10 }, /area/ctf) @@ -2411,13 +2291,11 @@ /area/ctf) "gC" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHEAST)"; dir = 6 }, /area/ctf) "gD" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHWEST)"; dir = 10 }, /area/ctf) @@ -2426,7 +2304,6 @@ /area/ctf) "gF" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHEAST)"; dir = 6 }, /area/ctf) @@ -2456,7 +2333,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; dir = 8 }, /area/ctf) @@ -2496,19 +2372,16 @@ dir = 8 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/ctf) "gQ" = ( /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; dir = 8 }, /area/ctf) "gR" = ( /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/ctf) @@ -2549,7 +2422,6 @@ /area/ctf) "gY" = ( /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (NORTH)"; dir = 1 }, /area/ctf) @@ -2567,21 +2439,18 @@ dir = 10 }, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/ctf) "hc" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (NORTH)"; dir = 1 }, /area/ctf) "hd" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; dir = 4 }, /area/ctf) @@ -2593,7 +2462,6 @@ /area/ctf) "hf" = ( /obj/machinery/power/emitter/energycannon{ - tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1 }, @@ -2679,7 +2547,6 @@ dir = 9 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; dir = 9 }, /area/ctf) @@ -2688,7 +2555,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/ctf) @@ -2697,7 +2563,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; dir = 5 }, /area/ctf) @@ -2712,7 +2577,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; dir = 9 }, /area/ctf) @@ -2721,7 +2585,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; dir = 1 }, /area/ctf) @@ -2730,7 +2593,6 @@ dir = 5 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHEAST)"; dir = 5 }, /area/ctf) @@ -2739,7 +2601,6 @@ dir = 8 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; dir = 8 }, /area/ctf) @@ -2751,7 +2612,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; dir = 4 }, /area/ctf) @@ -2786,7 +2646,6 @@ dir = 10 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHWEST)"; dir = 10 }, /area/ctf) @@ -2797,7 +2656,6 @@ "hP" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHEAST)"; dir = 6 }, /area/ctf) @@ -2808,7 +2666,6 @@ "hR" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHWEST)"; dir = 10 }, /area/ctf) @@ -2821,7 +2678,6 @@ dir = 6 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHEAST)"; dir = 6 }, /area/ctf) @@ -2891,7 +2747,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; dir = 8 }, /area/ctf) @@ -2900,7 +2755,6 @@ dir = 5 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; dir = 8 }, /area/ctf) @@ -2909,7 +2763,6 @@ /area/ctf) "ih" = ( /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; dir = 1 }, /area/ctf) @@ -2918,19 +2771,16 @@ dir = 4 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; dir = 1 }, /area/ctf) "ij" = ( /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (EAST)"; dir = 4 }, /area/ctf) "ik" = ( /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; dir = 8 }, /area/ctf) @@ -2939,7 +2789,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; dir = 8 }, /area/ctf) @@ -2952,14 +2801,12 @@ "in" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (EAST)"; dir = 4 }, /area/ctf) "io" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; dir = 1 }, /area/ctf) @@ -2968,7 +2815,6 @@ dir = 6 }, /turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; dir = 1 }, /area/ctf) @@ -3060,7 +2906,6 @@ /obj/structure/table/reinforced, /obj/item/clothing/ears/earmuffs, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/stripes/line, @@ -3148,8 +2993,6 @@ /obj/machinery/status_display{ density = 0; name = "cargo display"; - pixel_x = 0; - pixel_y = 0; supply_display = 1 }, /turf/closed/indestructible/riveted, @@ -3165,7 +3008,6 @@ /area/centcom/supply) "iT" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -3176,7 +3018,6 @@ pixel_x = 24 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -3247,8 +3088,7 @@ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 + name = "EXTERNAL AIRLOCK" }, /turf/open/floor/plating, /area/centcom/supply) @@ -3286,7 +3126,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -3310,15 +3149,13 @@ "jk" = ( /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/centcom/control) @@ -3338,9 +3175,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jm" = ( /obj/structure/plasticflaps, @@ -3352,9 +3187,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jn" = ( /obj/machinery/door/poddoor{ @@ -3372,9 +3205,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jo" = ( /obj/machinery/conveyor{ @@ -3470,14 +3301,12 @@ "jA" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -23; - pixel_y = 0 + pixel_x = -23 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -3490,17 +3319,13 @@ "jC" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/centcom/control) @@ -3553,9 +3378,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jK" = ( /obj/structure/plasticflaps, @@ -3566,9 +3389,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jL" = ( /obj/machinery/door/poddoor{ @@ -3585,9 +3406,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jM" = ( /obj/machinery/conveyor{ @@ -3597,9 +3416,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "jN" = ( /obj/effect/turf_decal/stripes/line{ @@ -3637,7 +3454,6 @@ /obj/structure/closet/secure_closet/quartermaster, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/effect/turf_decal/bot, @@ -3651,7 +3467,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -3683,8 +3498,7 @@ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/centcom/control) @@ -3915,8 +3729,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -3990,7 +3803,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -4006,14 +3818,12 @@ "kK" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/brown, /area/centcom/supply) "kL" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6 }, @@ -4076,9 +3886,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/control) "kU" = ( /obj/machinery/door/window/brigdoor{ @@ -4086,8 +3894,7 @@ dir = 2; icon_state = "leftsecure"; name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" + req_access_txt = "109" }, /obj/machinery/light{ dir = 8 @@ -4124,8 +3931,7 @@ dir = 2; icon_state = "leftsecure"; name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" + req_access_txt = "109" }, /turf/open/floor/plasteel/grimy, /area/centcom/control) @@ -4144,8 +3950,7 @@ dir = 2; icon_state = "leftsecure"; name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" + req_access_txt = "109" }, /obj/machinery/light{ dir = 4 @@ -4164,9 +3969,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "lc" = ( /obj/machinery/door/airlock/centcom{ @@ -4176,9 +3979,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "ld" = ( /obj/structure/flora/ausbushes/lavendergrass, @@ -4250,10 +4051,7 @@ "lm" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/vault, /area/centcom/control) @@ -4314,7 +4112,6 @@ "lu" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/filingcabinet/filingcabinet, @@ -4324,7 +4121,6 @@ /area/centcom/supply) "lv" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; icon_state = "brown"; dir = 9 }, @@ -4332,11 +4128,9 @@ "lw" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -4347,10 +4141,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" + name = "WARNING: BLAST DOORS" }, /turf/open/floor/plating, /area/centcom/control) @@ -4361,7 +4152,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/vault{ @@ -4457,7 +4247,6 @@ dir = 8 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; icon_state = "brown"; dir = 9 }, @@ -4467,7 +4256,6 @@ dir = 1 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, @@ -4475,13 +4263,9 @@ "lP" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -4546,9 +4330,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/control) "lY" = ( /obj/structure/table/reinforced, @@ -4646,7 +4428,6 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/white, @@ -4663,10 +4444,7 @@ name = "Shower" }, /obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/centcom/ferry) "ml" = ( @@ -4678,7 +4456,6 @@ /area/centcom/supply) "mm" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10 }, @@ -4707,8 +4484,7 @@ dir = 8 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/green/side{ dir = 4 @@ -4786,9 +4562,7 @@ "mD" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/structure/mirror/magic/badmin{ pixel_x = 28 @@ -4849,7 +4623,6 @@ "mJ" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/closet/crate/bin, @@ -4863,11 +4636,9 @@ "mK" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6 }, @@ -4995,13 +4766,11 @@ dir = 2; icon_state = "leftsecure"; name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" + req_access_txt = "109" }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -5013,8 +4782,7 @@ dir = 2; icon_state = "leftsecure"; name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" + req_access_txt = "109" }, /obj/machinery/firealarm{ dir = 4; @@ -5059,8 +4827,7 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; - pixel_y = 12; - tag = "icon-plant-15" + pixel_y = 12 }, /turf/open/floor/plasteel/vault{ dir = 6 @@ -5072,7 +4839,6 @@ /area/centcom/ferry) "nk" = ( /obj/machinery/status_display{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/vault{ @@ -5093,7 +4859,6 @@ department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/grimy, @@ -5113,7 +4878,6 @@ /obj/item/weapon/pen/fourcolor, /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; pixel_y = 32; req_access_txt = "0"; use_power = 0 @@ -5310,9 +5074,8 @@ color = "#596479"; dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) @@ -5332,7 +5095,6 @@ /area/centcom/supply) "nQ" = ( /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; icon_state = "brown"; dir = 5 }, @@ -5355,7 +5117,6 @@ /obj/item/weapon/pen/fourcolor, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -5372,9 +5133,8 @@ }, /area/centcom/ferry) "nV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/wood, /area/centcom/ferry) @@ -5490,7 +5250,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (EAST)"; name = "Centcom Customs"; icon_state = "rightsecure"; dir = 4; @@ -5520,10 +5279,7 @@ /obj/structure/table/wood, /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -5552,8 +5308,6 @@ /area/centcom/ferry) "oo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; dir = 8 }, /turf/open/floor/wood, @@ -5577,9 +5331,8 @@ dir = 4; pixel_x = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) @@ -5603,8 +5356,7 @@ /obj/item/clothing/glasses/eyepatch, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) @@ -5613,7 +5365,6 @@ /obj/item/weapon/book/codex_gigas, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -5641,8 +5392,7 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/item/weapon/paper_bin, /obj/item/weapon/pen/red, @@ -5677,7 +5427,6 @@ /obj/structure/bookcase/random, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -5697,9 +5446,7 @@ /obj/structure/bookcase/random, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -5769,7 +5516,6 @@ /obj/item/device/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -5782,7 +5528,6 @@ /obj/item/weapon/lighter, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/vault{ @@ -5892,7 +5637,6 @@ "oY" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/vault{ @@ -6040,9 +5784,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/ferry) "pt" = ( /obj/structure/sign/nanotrasen, @@ -6057,9 +5799,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/supply) "pv" = ( /obj/machinery/door/airlock/centcom{ @@ -6070,9 +5810,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/control) "pw" = ( /obj/structure/flora/ausbushes/lavendergrass, @@ -6096,8 +5834,7 @@ name = "memo" }, /obj/structure/noticeboard{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/open/floor/plasteel/bar{ dir = 2 @@ -6192,7 +5929,6 @@ "pL" = ( /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /obj/structure/filingcabinet/filingcabinet, @@ -6275,7 +6011,6 @@ desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","Sat"); - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel/grimy, @@ -6291,7 +6026,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-0-4"; icon_state = "0-4" }, /obj/effect/turf_decal/stripes/line, @@ -6301,8 +6035,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Commander's Office APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /obj/structure/table/reinforced, /obj/item/stack/sheet/metal{ @@ -6327,11 +6060,9 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /obj/structure/cable/white{ - tag = "icon-0-8"; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/line, @@ -6504,16 +6235,12 @@ /area/syndicate_mothership/control) "qr" = ( /obj/structure/toilet{ - icon_state = "toilet00"; dir = 8 }, /obj/structure/window/reinforced/tinted{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; dir = 1 }, /obj/machinery/door/window{ - tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; @@ -6568,10 +6295,7 @@ "qz" = ( /obj/structure/noticeboard{ dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" + pixel_x = 32 }, /turf/open/floor/plasteel/green/side{ dir = 5 @@ -6587,9 +6311,8 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light{ dir = 8 @@ -6609,7 +6332,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-2-4"; icon_state = "2-4" }, /turf/open/floor/wood, @@ -6622,7 +6344,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -6635,7 +6356,6 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -6645,7 +6365,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -6659,7 +6378,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -6669,17 +6387,13 @@ /area/centcom/ferry) "qI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/machinery/meter, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-2-8"; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -6688,26 +6402,20 @@ /area/centcom/ferry) "qJ" = ( /obj/machinery/power/terminal{ - icon_state = "term"; dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/structure/cable/white{ - tag = "icon-0-8"; icon_state = "0-8" }, /obj/structure/cable/white{ - tag = "icon-0-4"; icon_state = "0-4" }, /obj/structure/cable/white{ d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" + icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -6715,21 +6423,16 @@ /area/centcom/ferry) "qK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; dir = 1 }, /obj/machinery/meter, /obj/structure/cable/white{ - tag = "icon-1-8"; icon_state = "1-8" }, /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /obj/structure/cable/white{ - tag = "icon-2-8"; icon_state = "2-8" }, /turf/open/floor/plasteel/vault{ @@ -6759,9 +6462,8 @@ }, /area/centcom/ferry) "qN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -6769,7 +6471,6 @@ /area/centcom/ferry) "qO" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1 }, @@ -7045,7 +6746,6 @@ dir = 4 }, /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/wood, @@ -7093,7 +6793,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/canister/air, /obj/structure/cable/white{ - tag = "icon-1-4"; icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ @@ -7103,17 +6802,14 @@ /area/centcom/ferry) "rG" = ( /obj/machinery/computer/monitor, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-4-8"; icon_state = "4-8" }, /obj/structure/cable/white{ - tag = "icon-1-8"; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -7127,12 +6823,10 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ - tag = "icon-1-8"; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -7148,7 +6842,6 @@ /obj/structure/table/reinforced, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/effect/turf_decal/stripes/line{ @@ -7249,7 +6942,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -7347,7 +7039,6 @@ /obj/machinery/button/door{ id = "XCCFerry"; name = "Hanger Bay Shutters"; - pixel_x = 0; pixel_y = -38; req_access_txt = "0" }, @@ -7382,7 +7073,6 @@ "sk" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /obj/structure/closet/crate/bin, @@ -7410,22 +7100,19 @@ /area/centcom/ferry) "sn" = ( /obj/structure/cable/white{ - tag = "icon-1-2"; icon_state = "1-2" }, /turf/open/floor/wood, /area/centcom/ferry) "so" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/wood, /area/centcom/ferry) "sp" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -24 }, /turf/open/floor/plasteel/vault{ @@ -7464,7 +7151,6 @@ /obj/machinery/computer/security, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -7489,10 +7175,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" + name = "WARNING: BLAST DOORS" }, /turf/open/floor/plating, /area/centcom/evac) @@ -7532,7 +7215,6 @@ id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; - pixel_y = 0; req_access_txt = "151" }, /turf/open/floor/plasteel/bar{ @@ -7561,9 +7243,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/ferry) "sH" = ( /obj/structure/table/reinforced, @@ -7713,7 +7393,6 @@ /area/centcom/evac) "sY" = ( /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; icon_state = "bluecorner"; dir = 8 }, @@ -7744,7 +7423,6 @@ /area/wizard_station) "td" = ( /obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4 }, @@ -7757,7 +7435,6 @@ /area/wizard_station) "tf" = ( /obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8 }, @@ -7818,9 +7495,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - pixel_x = 0; - tag = "icon-doors" + name = "WARNING: EXTERNAL AIRLOCK" }, /turf/open/floor/plating, /area/centcom/ferry) @@ -7874,9 +7549,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/ferry) "tt" = ( /obj/machinery/door/poddoor/shutters{ @@ -7969,7 +7642,6 @@ /area/centcom/control) "tB" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/green/corner{ @@ -7992,7 +7664,6 @@ /obj/item/weapon/paper/pamphlet/ccaInfo, /obj/item/weapon/paper/pamphlet/ccaInfo, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/green/side{ @@ -8014,8 +7685,7 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/green/side{ dir = 5 @@ -8038,7 +7708,6 @@ /area/centcom/evac) "tJ" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5 }, @@ -8048,14 +7717,12 @@ /area/centcom/evac) "tL" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4 }, /area/centcom/evac) "tM" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (WEST)"; icon_state = "blue"; dir = 8 }, @@ -8165,7 +7832,6 @@ /obj/machinery/button/door{ id = "XCCFerry"; name = "Hanger Bay Shutters"; - pixel_x = 0; pixel_y = 24; req_access_txt = "2" }, @@ -8257,7 +7923,6 @@ /area/centcom/evac) "uo" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHEAST)"; icon_state = "blue"; dir = 6 }, @@ -8274,7 +7939,6 @@ /area/centcom/evac) "uq" = ( /obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8 }, @@ -8396,10 +8060,7 @@ /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" + name = "WARNING: BLAST DOORS" }, /turf/open/floor/plating, /area/centcom/ferry) @@ -8471,7 +8132,6 @@ /area/centcom/evac) "uQ" = ( /turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; icon_state = "neutral"; dir = 5 }, @@ -8604,14 +8264,12 @@ /area/centcom/control) "vm" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9 }, /area/centcom/evac) "vn" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10 }, @@ -8677,9 +8335,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/ferry) "vw" = ( /obj/machinery/light{ @@ -8734,7 +8390,6 @@ /area/centcom/control) "vC" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/green/corner, @@ -8946,8 +8601,7 @@ dir = 2; icon_state = "direction_bridge"; name = "command department"; - pixel_y = 24; - tag = "icon-direction_bridge" + pixel_y = 24 }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -8959,20 +8613,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/control) "wd" = ( /turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1 }, /area/centcom/evac) "we" = ( /turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1 }, @@ -9058,7 +8708,6 @@ /area/centcom/ferry) "wr" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -9199,7 +8848,6 @@ /area/centcom/ferry) "wL" = ( /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; dir = 5 }, /area/centcom/ferry) @@ -9365,8 +9013,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Briefing Area APC"; - pixel_x = 26; - pixel_y = 0 + pixel_x = 26 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -9529,8 +9176,7 @@ /area/centcom/control) "xJ" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -9564,8 +9210,6 @@ /area/centcom/control) "xK" = ( /obj/machinery/sleeper{ - tag = "icon-sleeper-open (EAST)"; - icon_state = "sleeper-open"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -9577,9 +9221,7 @@ /obj/machinery/light, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9588,7 +9230,6 @@ /area/centcom/control) "xM" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -9614,7 +9255,6 @@ /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/cmo, @@ -9808,7 +9448,6 @@ "yk" = ( /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -9822,9 +9461,7 @@ /obj/machinery/light, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -9872,7 +9509,6 @@ /obj/structure/closet/secure_closet/ertMed, /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; pixel_y = -32; req_access_txt = "0"; use_power = 0 @@ -9911,9 +9547,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn (NORTHWEST)" - }, +/turf/open/floor/plasteel, /area/centcom/ferry) "yt" = ( /obj/structure/closet/secure_closet/ertSec, @@ -9977,8 +9611,7 @@ /obj/structure/filingcabinet/medical, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -10006,8 +9639,7 @@ "yD" = ( /obj/machinery/computer/security, /obj/machinery/newscaster{ - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -10060,7 +9692,6 @@ /obj/item/weapon/paper_bin, /obj/item/weapon/pen, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -10118,7 +9749,6 @@ /area/centcom/control) "yO" = ( /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; dir = 4 }, /area/centcom/control) @@ -10127,8 +9757,7 @@ /obj/machinery/door/firedoor, /obj/item/weapon/storage/fancy/donut_box, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -10145,7 +9774,6 @@ /area/centcom/control) "yR" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; dir = 8 }, /area/centcom/control) @@ -10232,7 +9860,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; dir = 4 }, /area/centcom/control) @@ -10242,7 +9869,6 @@ /obj/item/weapon/folder/red, /obj/item/weapon/pen/red, /obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (EAST)"; name = "Centcom Customs"; icon_state = "rightsecure"; dir = 4; @@ -10258,7 +9884,6 @@ /obj/item/weapon/folder/white, /obj/item/weapon/pen/blue, /obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (WEST)"; name = "Centcom Customs"; icon_state = "rightsecure"; dir = 8; @@ -10273,13 +9898,11 @@ dir = 8 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; dir = 8 }, /area/centcom/control) "zf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -10338,7 +9961,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -10385,7 +10007,6 @@ /obj/item/weapon/pen/blue, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -10424,9 +10045,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/control) "zz" = ( /obj/structure/closet/cardboard, @@ -10440,7 +10059,6 @@ /area/wizard_station) "zB" = ( /obj/vehicle/scooter/skateboard{ - tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4 }, @@ -10465,8 +10083,6 @@ /area/wizard_station) "zF" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (NORTH)"; - icon_state = "toilet00"; dir = 1 }, /turf/open/floor/plasteel/white, @@ -10486,9 +10102,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeobserve) "zJ" = ( /obj/machinery/vending/cola, @@ -10564,9 +10178,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeobserve) "zU" = ( /obj/machinery/door/airlock{ @@ -10655,7 +10267,6 @@ /area/tdome/tdomeobserve) "Ai" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/green/side{ @@ -10870,7 +10481,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9 }, @@ -10888,7 +10498,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5 }, @@ -10915,7 +10524,6 @@ dir = 4 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (NORTH)"; icon_state = "whiteredcorner"; dir = 1 }, @@ -10929,7 +10537,6 @@ dir = 8 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (EAST)"; icon_state = "whiteredcorner"; dir = 4 }, @@ -11193,9 +10800,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeobserve) "BL" = ( /obj/structure/sign/nosmoking_2, @@ -11210,9 +10815,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeobserve) "BN" = ( /obj/structure/sign/nanotrasen, @@ -11466,7 +11069,6 @@ dir = 1 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4 }, @@ -11491,7 +11093,6 @@ "Cq" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/structure/mirror{ @@ -11499,7 +11100,6 @@ pixel_x = -28 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (NORTH)"; icon_state = "whiteredcorner"; dir = 1 }, @@ -11560,7 +11160,6 @@ "CA" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/structure/mirror{ @@ -11632,8 +11231,7 @@ "CH" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/bar, /area/tdome/tdomeobserve) @@ -11647,7 +11245,6 @@ }, /obj/machinery/airalarm{ dir = 8; - icon_state = "alarm0"; pixel_x = 24 }, /turf/open/floor/plasteel/vault{ @@ -11700,7 +11297,6 @@ "CO" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/structure/mirror{ @@ -11708,7 +11304,6 @@ pixel_x = -28 }, /turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (WEST)"; icon_state = "whiteredcorner"; dir = 8 }, @@ -11733,7 +11328,6 @@ "CR" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /turf/open/floor/plasteel/bar, @@ -11770,7 +11364,6 @@ "CW" = ( /obj/structure/sink{ dir = 8; - icon_state = "sink"; pixel_x = -12 }, /obj/structure/mirror{ @@ -11824,9 +11417,7 @@ }, /area/tdome/tdomeobserve) "Dc" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, +/obj/machinery/computer/security/telescreen, /obj/structure/table/reinforced, /obj/machinery/light{ dir = 1 @@ -11861,7 +11452,6 @@ pixel_x = 28 }, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4 }, @@ -11875,9 +11465,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Dh" = ( /obj/structure/table/reinforced, @@ -11906,7 +11494,6 @@ "Dk" = ( /obj/machinery/vending/boozeomat, /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -11937,17 +11524,13 @@ /obj/machinery/door/firedoor, /obj/structure/noticeboard{ dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" + pixel_y = -32 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Dp" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, +/obj/machinery/computer/security/telescreen, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -11995,7 +11578,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -12122,9 +11704,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeadmin) "DM" = ( /obj/structure/rack, @@ -12279,9 +11859,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/tdome/tdomeadmin) "Eh" = ( /obj/effect/landmark/thunderdome/two, @@ -12567,9 +12145,7 @@ /turf/open/floor/plasteel/grimy, /area/tdome/tdomeadmin) "EW" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, +/obj/machinery/computer/security/telescreen, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ dir = 8 @@ -12584,9 +12160,7 @@ /area/tdome/tdomeadmin) "EY" = ( /obj/machinery/button/flasher{ - id = "tdomeflash"; - pixel_x = 0; - pixel_y = 0 + id = "tdomeflash" }, /obj/structure/table/reinforced, /turf/open/floor/plasteel/vault{ @@ -12619,8 +12193,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -12631,7 +12204,6 @@ /area/tdome/tdomeadmin) "Ff" = ( /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -12755,7 +12327,6 @@ }, /obj/machinery/airalarm{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/open/floor/plasteel/vault{ @@ -12766,7 +12337,6 @@ /obj/machinery/button/door{ id = "thunderdomehea"; name = "Heavy Supply Control"; - pixel_y = 0; req_access_txt = "102" }, /obj/structure/table/reinforced, @@ -12778,7 +12348,6 @@ /obj/machinery/button/door{ id = "thunderdome"; name = "Main Blast Doors Control"; - pixel_y = 0; req_access_txt = "102" }, /obj/structure/table/reinforced, @@ -12791,7 +12360,6 @@ /obj/machinery/button/door{ id = "thunderdomegen"; name = "General Supply Control"; - pixel_y = 0; req_access_txt = "102" }, /obj/structure/table/reinforced, @@ -12873,22 +12441,19 @@ /turf/closed/wall/mineral/titanium/overspace, /area/centcom/evac) "FI" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; +/obj/structure/shuttle/engine/propulsion/right{ dir = 1 }, /turf/open/floor/plating/airless, /area/centcom/evac) "FJ" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/floor/plating/airless, /area/centcom/evac) "FK" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 1 }, /turf/open/floor/plating/airless, @@ -12921,7 +12486,6 @@ "FO" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /turf/open/floor/plating/airless, @@ -12974,8 +12538,7 @@ "FY" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 0 + pixel_x = 2 }, /obj/item/weapon/storage/firstaid/regular{ pixel_x = -2; @@ -13088,7 +12651,6 @@ /area/centcom/evac) "Gt" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -13872,7 +13434,6 @@ /area/syndicate_mothership) "JG" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating, @@ -13887,7 +13448,6 @@ /area/syndicate_mothership/control) "JI" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/bar{ @@ -13938,7 +13498,6 @@ /area/centcom/evac) "JQ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -13951,7 +13510,6 @@ /area/centcom/evac) "JS" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/yellow, @@ -13959,7 +13517,6 @@ "JT" = ( /obj/structure/bed, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -13968,7 +13525,6 @@ /obj/structure/table, /obj/item/weapon/storage/box/donkpockets, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -13986,7 +13542,6 @@ dir = 9 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -13996,8 +13551,7 @@ dir = 5 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/centcom/control) @@ -14006,15 +13560,13 @@ dir = 1 }, /turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1 }, /area/centcom/supply) "JZ" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown{ dir = 4 @@ -14022,8 +13574,7 @@ /area/centcom/supply) "Ka" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown{ dir = 4 @@ -14034,7 +13585,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -14044,8 +13594,7 @@ dir = 4 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel, /area/centcom/control) @@ -14055,7 +13604,6 @@ /area/centcom/supply) "Ke" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -14064,8 +13612,7 @@ /area/centcom/control) "Kf" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/brown{ dir = 4 @@ -14081,7 +13628,6 @@ /area/syndicate_mothership) "Kh" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -14090,8 +13636,7 @@ /area/centcom/control) "Ki" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -14110,7 +13655,6 @@ dir = 4 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/brown{ @@ -14150,7 +13694,6 @@ /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/pointybush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/grass, @@ -14174,8 +13717,7 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/genericbush, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/grass, /area/centcom/control) @@ -14195,8 +13737,7 @@ /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/fernybush, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ name = "plating"; @@ -14210,22 +13751,19 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/genericbush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/grass, /area/centcom/control) "Kv" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/engine/cult, /area/wizard_station) "Kw" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/engine/cult, /area/wizard_station) @@ -14338,7 +13876,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -14381,7 +13918,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -14442,7 +13978,6 @@ /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/pointybush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/grass, @@ -14470,8 +14005,7 @@ /area/wizard_station) "Lc" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -14521,8 +14055,7 @@ "Lj" = ( /obj/structure/closet/crate/bin, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -14544,7 +14077,6 @@ /area/tdome/tdomeobserve) "Lm" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/red/side{ @@ -14553,8 +14085,7 @@ /area/tdome/tdomeobserve) "Ln" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/green/side{ dir = 8 @@ -14567,7 +14098,6 @@ /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/palebush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating/asteroid, @@ -14577,8 +14107,7 @@ /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/fernybush, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ dir = 6; @@ -14593,7 +14122,6 @@ /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/palebush, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating/asteroid, @@ -14603,8 +14131,7 @@ /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/fernybush, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel{ dir = 6; @@ -14614,8 +14141,7 @@ /area/tdome/tdomeadmin) "Ls" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -14623,7 +14149,6 @@ /area/tdome/tdomeadmin) "Lt" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/vault{ @@ -14869,9 +14394,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/centcom/evac) "Mc" = ( /turf/closed/indestructible/fakedoor{ @@ -14884,14 +14407,12 @@ /area/shuttle/escape) "Me" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) "Mf" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/map_files/generic/chapel.dmm b/_maps/map_files/generic/chapel.dmm deleted file mode 100644 index 39ef0d72ae..0000000000 --- a/_maps/map_files/generic/chapel.dmm +++ /dev/null @@ -1,348 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/turf/closed/indestructible/riveted, -/area/hades) -"ac" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/plasteel/hades, -/area/hades) -"ad" = ( -/obj/structure/piano, -/turf/open/floor/plasteel/hades, -/area/hades) -"ae" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/plasteel/hades, -/area/hades) -"af" = ( -/turf/open/floor/plasteel/hades, -/area/hades) -"ag" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plasteel/hades, -/area/hades) -"ah" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/hades, -/area/hades) -"ai" = ( -/obj/effect/gibspawner/human, -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/plasteel/hades, -/area/hades) -"aj" = ( -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/plasteel/hades, -/area/hades) -"ak" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plasteel/hades, -/area/hades) -"al" = ( -/obj/structure/table/reinforced/brass, -/obj/item/candle/infinite, -/turf/open/floor/plasteel/hades, -/area/hades) -"am" = ( -/obj/structure/table/reinforced/brass, -/obj/item/candle/infinite, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/hades, -/area/hades) -"an" = ( -/obj/structure/table/reinforced/brass, -/turf/open/floor/plasteel/hades, -/area/hades) -"ao" = ( -/obj/structure/table/reinforced/brass, -/obj/item/candle/infinite, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/hades, -/area/hades) -"ap" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/fulltile, -/turf/open/floor/plasteel/hades, -/area/hades) -"aq" = ( -/turf/open/floor/carpet, -/area/hades) -"ar" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/plasteel/hades, -/area/hades) -"as" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/plasteel/hades, -/area/hades) -"at" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/carpet, -/area/hades) -"au" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/hades) -"av" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/hades) -"aw" = ( -/obj/structure/table/wood, -/obj/item/trash/candle, -/turf/open/floor/carpet, -/area/hades) -"ax" = ( -/obj/structure/flora/grass/green, -/turf/open/floor/grass, -/area/hades) -"ay" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/hades) -"az" = ( -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/grass, -/area/hades) -"aA" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/hades) -"aB" = ( -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/carpet, -/area/hades) -"aC" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/carpet, -/area/hades) -"aD" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/carpet, -/area/hades) -"aE" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/carpet, -/area/hades) -"aF" = ( -/obj/structure/kitchenspike, -/turf/open/floor/mineral/diamond, -/area/hades) -"aG" = ( -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/mineral/gold, -/area/hades) -"aH" = ( -/turf/open/floor/mineral/gold, -/area/hades) -"aI" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/hades) -"aJ" = ( -/obj/structure/flora/ausbushes/grassybush, -/turf/open/floor/grass, -/area/hades) -"aK" = ( -/obj/structure/flora/ausbushes/stalkybush, -/turf/open/floor/grass, -/area/hades) -"aL" = ( -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/hades) -"aM" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/carpet, -/area/hades) -"aN" = ( -/obj/structure/closet/cabinet, -/turf/open/floor/carpet, -/area/hades) -"aO" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper/hades_instructions, -/turf/open/floor/carpet, -/area/hades) -"aP" = ( -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/grass, -/area/hades) -"aQ" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/black, -/turf/open/floor/carpet, -/area/hades) -"aR" = ( -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/carpet, -/area/hades) -"aS" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/matches, -/turf/open/floor/carpet, -/area/hades) -"aT" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plasteel, -/area/hades) -"aU" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/hades, -/area/hades) -"aV" = ( -/obj/structure/table/wood, -/obj/item/weapon/lipstick, -/turf/open/floor/carpet, -/area/hades) -"aW" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/candle_box, -/turf/open/floor/carpet, -/area/hades) -"aX" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 4 - }, -/turf/open/floor/carpet, -/area/hades) -"aY" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 8 - }, -/turf/open/floor/carpet, -/area/hades) -"aZ" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/crayons, -/turf/open/floor/carpet, -/area/hades) -"ba" = ( -/obj/structure/table/wood, -/obj/item/weapon/razor, -/turf/open/floor/carpet, -/area/hades) -"bb" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/carpet, -/area/hades) -"bc" = ( -/obj/structure/chair/hades, -/turf/open/floor/mineral/diamond, -/area/hades) -"bd" = ( -/obj/machinery/vending/cola, -/turf/open/floor/carpet, -/area/hades) -"be" = ( -/obj/machinery/vending/snack, -/turf/open/floor/carpet, -/area/hades) -"bf" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/carpet, -/area/hades) -"bg" = ( -/obj/structure/table/wood, -/obj/machinery/microwave, -/turf/open/floor/carpet, -/area/hades) -"bh" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/carpet, -/area/hades) -"bi" = ( -/obj/machinery/chem_dispenser/drinks, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/hades) -"bj" = ( -/obj/structure/chair/wood/normal, -/mob/living/simple_animal/hostile/hadesacolyte, -/turf/open/floor/carpet, -/area/hades) -"bk" = ( -/obj/structure/table/wood, -/obj/item/weapon/kitchen/fork, -/turf/open/floor/carpet, -/area/hades) -"bl" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/carpet, -/area/hades) -"bm" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/drinkingglasses, -/turf/open/floor/carpet, -/area/hades) - -( -1, -1, -1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaabacacacacacacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaabadaeafafafafaeafafafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaababababagahahaiafafajahahagababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabacacacakalamananananaoalapacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabaeafafafafajaqaqaqaqajafafafafaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafafafaeafafaqaqaqaqafafaeafafafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafarasasasafaqataqaqafarasasarafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafafafafafafaqaqaqaqafafafafafafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafasasarasafaqaqaqaqafasarasasafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafafaeafafafaqataqaqafafaeafafafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafasasasarafaqaqaqaqafasasarasafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafafafaeafafaqauaqaqafafafafaeafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabafarasasasafaqaqataqafasarasasafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabaeafafafafafaqaqaqaqafafafafafaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaabababababababaqaqaqaqababababababababababababababababababababababaa -aaaaabavavavavavabawaqaqaqabaxayazaAaxabaBaBaCaCaDaEabaFaGaHaHaHaGaFabaa -aaaaabaqaqaqaqaqabaIaqaqaqabaJaKaLaAayabaMaqaqaqaqaMabafafafaHafafafabaa -aaaaabaNaqaqaqaNabaOaqaqaqabaPayaJaxazabaMaqaqaqaqaCabafafafaHafafafabaa -aaaaabaQaRaqaqaQabaSaqaqaqabaTaTaTaTaTabaEaqaRaRaqaBaUafafafaHafafafabaa -aaaaabaVaqaqaqaOabaWaqaqaqabaXaqaqaqaYabaEaqaRaRaqaBabafafafaHafafafabaa -aaaaabaQaqaqaqaQabaZaqaqaqabaXaqaqaqaYabaEaqaqaqaqaCabafafafaHafafafabaa -aaaaabaIaqaqaRbaabaIaqaqaqbbaqaqaqaqaqabababbbababababaFaGaHbcaHaGaFabaa -aaaaabaQaRaqaqaQabaqaqaqaqabaqaqaqaqaqabaEaBaqaCaBaEabafafafaHafafafabaa -aaaaabababbbababababababababaqaqaqaqaqabaEaqaqaqaRaBabafafafaHafafafabaa -aaaaabaqaqaqaqbdbebfbgbhbiabaXaqaqaRaYabaBaqaqaqaqaEabafafafaHafafafabaa -aaaaabaqbjbjaqaqaqaqaqaqaqabaXaqaqaqaYabaCaqaqaqaqaMabafafafaHafafafabaa -aaaaabaXbkaIaYaqaqaqaqaqaqbbaqaqaqaqaqbbaqaqaRaqaqaEabafafafaHafafafabaa -aaaaabaqblblaqaqaqbmaIaIaOabaqaqaqaqaqabaMaMaBaDaCaMabaFaGaHaHaHaGaFabaa -aaaaabababababababababababababababababababababababababababababababababaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/lavaland.dmm b/_maps/map_files/generic/lavaland.dmm deleted file mode 100644 index 0ced93072e..0000000000 --- a/_maps/map_files/generic/lavaland.dmm +++ /dev/null @@ -1,68359 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/closed/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"ab" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ac" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ad" = ( -/turf/closed/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"ae" = ( -/obj/structure/necropolis_gate, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"af" = ( -/turf/open/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"ag" = ( -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/living_quarters) -"ah" = ( -/turf/closed/indestructible/necropolis, -/area/ruin/unpowered{ - name = "Necropolis Bridge" - }) -"ai" = ( -/turf/open/indestructible/necropolis, -/area/ruin/unpowered{ - name = "Necropolis Bridge" - }) -"aj" = ( -/turf/open/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"ak" = ( -/obj/effect/light_emitter, -/turf/open/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"al" = ( -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors) -"am" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"an" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ao" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ap" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aq" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/obj/machinery/camera{ - c_tag = "Labor Camp Medical"; - dir = 8; - network = list("Labor") - }, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ar" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/weapon/storage/bag/ore, -/obj/item/weapon/pickaxe, -/obj/item/device/flashlight, -/obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"as" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/weapon/storage/bag/ore, -/obj/item/device/flashlight, -/obj/item/weapon/pickaxe, -/obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"at" = ( -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"au" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"av" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aw" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ax" = ( -/obj/structure/closet/crate/internals, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ay" = ( -/obj/structure/table, -/obj/item/trash/plate, -/obj/item/weapon/kitchen/fork, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"az" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aA" = ( -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aB" = ( -/obj/machinery/door/airlock{ - name = "Labor Camp Storage" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aC" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aD" = ( -/obj/machinery/door/airlock{ - name = "Vending" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aE" = ( -/obj/machinery/door/airlock{ - name = "Labor Camp External Access" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aG" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aH" = ( -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"aI" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aJ" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External"; - dir = 4; - network = list("Labor") - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"aK" = ( -/obj/machinery/flasher{ - id = "Labor"; - pixel_x = 0; - pixel_y = 0 - }, -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aL" = ( -/obj/machinery/mineral/processing_unit_console{ - dir = 2; - machinedir = 4 - }, -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aM" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aN" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"aO" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aP" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "Labor"; - name = "Labor Camp Lockdown"; - pixel_x = 0; - pixel_y = 28; - req_access_txt = "2" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aQ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Labor"; - name = "labor camp blast door" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aR" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp Central"; - network = list("Labor") - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aS" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aT" = ( -/obj/machinery/conveyor{ - dir = 2; - id = "gulag" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aU" = ( -/obj/item/weapon/pickaxe, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"aV" = ( -/obj/machinery/conveyor{ - dir = 10; - icon_state = "conveyor0"; - id = "gulag" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aW" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aX" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - tag = "icon-0-9"; - icon_state = "0-9"; - d1 = 2; - d2 = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"aY" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"aZ" = ( -/obj/machinery/computer/shuttle/labor/one_way, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ba" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bb" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"bc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bd" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Backroom"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"be" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bf" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bh" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"bi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bj" = ( -/turf/open/floor/mech_bay_recharge_floor{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"bk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bl" = ( -/obj/docking_port/stationary{ - area_type = /area/lavaland/surface/outdoors; - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_away"; - name = "labor camp"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; - width = 9 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"bm" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Shuttle Prisoner Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bn" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; - dir = 10; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bo" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/living_quarters) -"bq" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/machinery/computer/shuttle/mining{ - req_access = "0" - }, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/production) -"br" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/eva) -"bs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bt" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/eva) -"bu" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Monitoring"; - req_access_txt = "2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bv" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 6 - }, -/area/mine/living_quarters) -"bw" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Labor Camp Maintenance"; - req_access_txt = "2" - }, -/obj/structure/cable{ - tag = "icon-1-10"; - icon_state = "1-10"; - d1 = 2; - d2 = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"by" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"bz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station EVA"; - req_access_txt = "54" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"bA" = ( -/turf/open/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"bB" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bC" = ( -/obj/structure/chair/office/dark, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "Powered by the tears and sweat of laborers."; - name = "Prison Ofitser" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bD" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/machinery/power/apc{ - dir = 4; - name = "Labor Camp Security APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "Labor Camp Monitoring"; - network = list("Labor") - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bE" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - tag = "icon-5-6"; - icon_state = "5-6"; - d1 = 2; - d2 = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bF" = ( -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bG" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bH" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Shuttle Airlock"; - opacity = 0; - req_access_txt = "0" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"bI" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"bJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (WEST)"; - dir = 8 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bK" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bL" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bM" = ( -/obj/machinery/computer/prisoner, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"bN" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bO" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"bP" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/production) -"bQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/living_quarters) -"bR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"bS" = ( -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"bT" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 30; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"bU" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"bW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"bX" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bY" = ( -/obj/structure/cable, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"bZ" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ca" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "48" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cd" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; - dir = 9; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ce" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-brown (NORTH)" - }, -/area/mine/living_quarters) -"cg" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway East"; - network = list("MINE") - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/living_quarters) -"ch" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ci" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (NORTH)"; - dir = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ck" = ( -/obj/docking_port/stationary{ - area_type = /area/lavaland/surface/outdoors; - dir = 8; - dwidth = 3; - height = 5; - id = "mining_away"; - name = "lavaland mine"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; - width = 7 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"cl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"cn" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Processing Area"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"co" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"cp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cr" = ( -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 6 - }, -/area/mine/production) -"cs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ct" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - glass = 1; - name = "Break Room"; - opacity = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cu" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/living_quarters) -"cv" = ( -/obj/machinery/light, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cx" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cy" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Station Storage"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cz" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cA" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cB" = ( -/obj/docking_port/stationary{ - area_type = /area/lavaland/surface/outdoors; - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship_lavaland"; - name = "lavaland wastes"; - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; - width = 35 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"cC" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cD" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 6 - }, -/area/mine/production) -"cE" = ( -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"cF" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/structure/plasticflaps, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cG" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating{ - tag = "icon-warnplate (NORTH)"; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cH" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/living_quarters) -"cI" = ( -/obj/machinery/conveyor{ - icon_state = "conveyor0"; - dir = 10; - id = "mining_internal" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating{ - tag = "icon-warnplatecorner (EAST)"; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"cJ" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/living_quarters) -"cK" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/brown, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cM" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm1"; - name = "Room 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/living_quarters) -"cO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cP" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cQ" = ( -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cS" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cT" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cU" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/living_quarters) -"cV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cW" = ( -/obj/structure/table, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm1"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cY" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"cZ" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"da" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"db" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dc" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dd" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"de" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"df" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dg" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dh" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm2"; - name = "Room 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"di" = ( -/obj/machinery/camera{ - c_tag = "Crew Area"; - dir = 1; - network = list("MINE") - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dj" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dk" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel/bar{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dl" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dm" = ( -/turf/open/floor/circuit{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"dn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"do" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm3"; - name = "Room 3" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dp" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"dq" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"dr" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "gulag" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"ds" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"du" = ( -/obj/structure/table, -/obj/item/weapon/pickaxe, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 9 - }, -/area/mine/eva) -"dv" = ( -/obj/machinery/suit_storage_unit/mining, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/eva) -"dw" = ( -/obj/machinery/suit_storage_unit/mining, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 5 - }, -/area/mine/eva) -"dx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dy" = ( -/obj/machinery/camera{ - c_tag = "EVA"; - dir = 4; - network = list("MINE") - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/eva) -"dz" = ( -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dA" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/eva) -"dB" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/production) -"dC" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dE" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/eva) -"dG" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dH" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"dI" = ( -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"dL" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/eva) -"dM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dO" = ( -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/eva) -"dP" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dQ" = ( -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/eva) -"dR" = ( -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"dS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold-b-f (EAST)"; - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"dU" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Mining EVA APC"; - pixel_x = 1; - pixel_y = -23 - }, -/obj/structure/cable, -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/eva) -"dV" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/eva) -"dW" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/eva) -"dX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/eva) -"dY" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/eva) -"dZ" = ( -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"ea" = ( -/obj/machinery/door/airlock{ - name = "Closet"; - req_access_txt = "0" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eb" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ec" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ed" = ( -/turf/closed/mineral/random/high_chance/volcanic, -/area/lavaland/surface/outdoors) -"ee" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ef" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eg" = ( -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"eh" = ( -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"ei" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ej" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"ek" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate/secure/loot, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"el" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"em" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"en" = ( -/obj/structure/fluff/drake_statue, -/turf/open/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"eo" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Mining Station Starboard Wing APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"ep" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eq" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 5 - }, -/area/mine/production) -"er" = ( -/obj/machinery/mineral/mint{ - input_dir = 4 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"es" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"et" = ( -/obj/structure/closet/crate, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eu" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/structure/table, -/obj/item/weapon/paper{ - anchored = 0; - info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the cargo office for smelting. PLEASE!

--The Research Staff"; - name = "URGENT!" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ev" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ew" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"ex" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Communications APC"; - pixel_x = 1; - pixel_y = 25 - }, -/turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"ey" = ( -/obj/machinery/telecomms/relay/preset/mining, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8; - tag = "icon-vault (WEST)" - }, -/area/mine/maintenance) -"ez" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"eA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whiteblue/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-whiteblue (NORTH)" - }, -/area/mine/living_quarters) -"eB" = ( -/turf/open/floor/plasteel/whiteblue/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-whiteblue (NORTH)" - }, -/area/mine/living_quarters) -"eC" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/whiteblue/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 5; - tag = "icon-whiteblue (NORTHEAST)" - }, -/area/mine/living_quarters) -"eD" = ( -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eF" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eG" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eH" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel/purple/side{ - dir = 4 - }, -/area/mine/production) -"eI" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eJ" = ( -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eK" = ( -/turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (EAST)"; - dir = 4; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/circuit{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"eN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"eO" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/circuit{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"eP" = ( -/obj/machinery/camera{ - c_tag = "Communications Relay"; - dir = 8; - network = list("MINE") - }, -/turf/open/floor/circuit{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"eQ" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/blood/empty{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/weapon/reagent_containers/blood/AMinus, -/obj/item/weapon/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/machinery/camera{ - c_tag = "Sleeper Room"; - dir = 1; - network = list("MINE") - }, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eR" = ( -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"eT" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/whiteblue/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4; - tag = "icon-whiteblue (EAST)" - }, -/area/mine/living_quarters) -"eU" = ( -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/production) -"eV" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer"; - dir = 8; - network = list("MINE") - }, -/obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 1 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"eW" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"eY" = ( -/obj/machinery/camera{ - c_tag = "Processing Area Room"; - dir = 8; - network = list("MINE") - }, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"eZ" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fa" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Communications"; - req_access_txt = "48" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"fb" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fc" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Infirmary"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fd" = ( -/obj/machinery/camera{ - c_tag = "Storage"; - dir = 2; - network = list("MINE") - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 5 - }, -/area/mine/living_quarters) -"fe" = ( -/turf/open/floor/plasteel/brown/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-browncorner (NORTH)" - }, -/area/mine/production) -"ff" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fh" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "mining_internal"; - name = "mining conveyor" - }, -/turf/open/floor/plasteel/purple/side{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"fi" = ( -/obj/machinery/conveyor{ - dir = 2; - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating{ - tag = "icon-warnplate (WEST)"; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fj" = ( -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fk" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/living_quarters) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-brown (NORTH)" - }, -/area/mine/living_quarters) -"fm" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/living_quarters) -"fn" = ( -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1; - tag = "icon-brown (NORTH)" - }, -/area/mine/living_quarters) -"fp" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Station Port Wing APC"; - pixel_x = 1; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fq" = ( -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fr" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Processing Area"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fs" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/production) -"ft" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fu" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/production) -"fv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fw" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fx" = ( -/obj/structure/fluff/drake_statue/falling, -/turf/open/indestructible/necropolis, -/area/lavaland/surface/outdoors) -"fy" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors) -"fz" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway West"; - network = list("MINE") - }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/living_quarters) -"fA" = ( -/obj/machinery/camera{ - c_tag = "Dormatories"; - dir = 4; - network = list("MINE") - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 1 - }, -/area/mine/living_quarters) -"fB" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/purple/corner{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4 - }, -/area/mine/living_quarters) -"fC" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/circuit{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/maintenance) -"fD" = ( -/turf/open/floor/plasteel/white{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"fE" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/loadingarea{ - tag = "icon-loadingarea (EAST)"; - dir = 4; - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"fF" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"fG" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 - }, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"fH" = ( -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/mine/laborcamp) -"fI" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/lavaland/surface/outdoors) -"fJ" = ( -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors/explored) -"fK" = ( -/turf/closed/mineral/random/labormineral/volcanic, -/area/lavaland/surface/outdoors) -"fL" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"fM" = ( -/obj/structure/gulag_beacon, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp) -"fN" = ( -/turf/closed/wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"fO" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - }, -/area/mine/laborcamp/security) -"fP" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/turf/closed/indestructible/riveted, -/area/space) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ed -ed -ed -ed -ed -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -fK -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ed -ed -ed -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -ab -al -dq -ab -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -bA -bA -ab -dq -ab -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -ab -ab -ed -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ed -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -ab -fK -fK -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -ab -af -af -af -bA -bA -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -ab -ab -af -af -af -af -bA -bA -af -af -bA -bA -af -af -bA -af -ab -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -af -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -ab -af -af -af -af -af -af -af -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -bA -bA -dq -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -bA -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -ab -af -af -af -af -af -af -af -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -fK -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -bA -bA -bA -dq -bA -bA -bA -bA -bA -dq -bA -bA -dq -bA -bA -bA -af -bA -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -af -af -af -af -af -af -ab -fK -fK -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -ab -af -bA -bA -bA -dq -dq -dq -dq -dq -dq -dq -dq -dq -bA -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -bA -bA -bA -bA -dq -dq -dq -dq -dq -dq -dq -dq -dq -bA -bA -ab -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -ab -af -af -af -af -af -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -al -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -bA -bA -bA -bA -dq -dq -dq -dq -dq -dq -dq -dq -dq -bA -bA -bA -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -af -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -af -ab -ed -ed -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -bA -bA -bA -dq -dq -dq -dq -dq -dq -dq -dq -dq -bA -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -ed -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -af -ab -af -ed -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -bA -bA -dq -dq -dq -dq -dq -dq -dq -bl -dq -dq -dq -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -af -ab -af -af -af -af -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -af -af -ab -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -an -an -an -an -an -aO -an -an -an -bm -an -bA -bA -af -af -af -af -af -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -af -ab -ab -ab -af -af -af -af -af -ab -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -fK -ab -af -af -af -af -af -ab -an -ay -aC -aG -an -aP -an -aZ -an -aF -an -dq -fJ -af -af -dq -af -ab -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -af -af -af -ab -ab -an -az -at -au -an -aO -an -fM -an -bm -an -fJ -fJ -fJ -af -af -af -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -af -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -am -am -am -an -an -an -aD -an -an -aQ -an -ba -at -at -an -fN -fN -fN -af -af -af -al -ed -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -am -ao -ao -an -at -at -at -at -at -at -at -at -at -at -an -bB -bK -fO -af -af -af -af -al -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -af -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -ap -fD -aw -at -at -at -at -aK -aR -at -at -at -bc -bu -bC -bL -fO -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -ab -ab -ab -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -aq -aM -an -aA -at -at -at -at -at -au -fH -at -be -an -bD -bM -fO -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -an -an -an -an -at -at -at -at -dr -an -aS -an -bd -an -an -an -an -af -af -af -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -ed -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -ar -ar -ar -an -at -fE -an -an -aL -an -aS -an -be -an -bE -bN -an -af -af -af -ab -ab -ab -ab -ab -ab -af -af -af -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -as -at -at -aB -at -fF -aI -aT -fG -aT -aV -an -bf -bw -aW -aX -an -af -af -ab -ed -al -ab -ab -ab -al -ab -ab -ab -ed -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -al -ab -ab -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -an -av -ax -an -aE -an -an -an -an -an -an -an -an -an -bx -bO -an -af -eh -eh -eh -eh -ei -ei -ei -ee -ei -ei -ei -ee -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -an -an -an -at -an -fL -aN -aN -dq -dq -dq -dq -an -bF -bG -an -af -eh -dm -dm -eh -fj -fj -fj -ee -cd -cU -bn -ee -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -an -aF -an -fL -dq -dq -dq -dq -dq -dq -an -an -an -an -af -eh -ex -eM -eh -fk -fv -fq -ee -fB -fj -da -ei -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -ab -af -af -af -af -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -al -af -af -af -af -af -fK -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -an -aE -an -fL -dq -dq -dq -dq -dq -af -af -af -af -af -ab -eh -ey -eN -fa -fl -fw -cs -cy -fo -cV -db -ei -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -aJ -dq -dq -dq -dq -dq -af -af -af -af -af -ab -ed -eh -ez -eO -eh -fm -bg -cu -ee -cJ -fj -bo -ei -ab -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -af -af -ab -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -dq -dq -dq -dq -dq -dq -dq -af -af -af -af -ab -al -eh -fC -eP -eh -fz -bg -cv -ee -fd -ag -bv -ee -al -ed -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -dq -dq -dq -dq -dq -af -af -af -af -ab -ab -eh -eh -eh -eh -fn -bg -fj -ee -ee -ee -ee -ee -ee -ee -ee -ee -ee -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ab -ab -ab -af -af -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -dq -dq -dq -dq -dq -af -af -af -af -af -ab -ee -eA -eQ -ee -fj -bg -fj -ee -cK -cW -ee -cK -cW -ee -cK -cW -ee -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -af -af -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -dq -dq -dq -dq -dq -dq -af -af -af -af -ab -ei -eB -eR -fb -fk -bg -fj -ee -cL -cX -ee -cL -dl -ee -cL -dp -ee -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -ab -ab -ab -af -af -ab -af -ab -ab -ab -ab -ab -ab -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -fL -fK -dq -dq -af -af -af -af -ab -ei -eB -eS -fc -fo -bi -fj -ee -cM -ee -ee -dh -ee -ee -do -ee -ee -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -fK -fK -fK -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -dq -af -af -al -ed -ee -eC -eT -fb -fm -bg -fj -cu -cN -fA -cu -cN -fm -cu -cN -fm -ei -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -al -ee -ee -ee -ee -ee -fp -ci -cl -cl -cO -cl -cl -cO -dn -cl -cO -cV -ei -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -al -al -al -af -af -af -af -af -af -af -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -af -af -ee -ej -bX -bY -ee -cx -bg -fj -ee -ee -fb -fb -ee -ee -ee -ei -ei -ee -al -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -af -af -ef -ek -eD -bZ -ee -fk -bg -cv -ee -cP -cQ -cQ -aH -ee -ab -ab -ab -al -ed -al -al -ab -ab -ab -ab -af -af -af -af -af -af -af -af -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -af -af -ee -el -eE -bJ -cc -cf -bk -fq -fb -cQ -cQ -dc -cQ -ee -ab -af -ab -ab -al -al -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -ab -ab -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -af -ab -ee -eD -eF -ca -ee -cg -cj -cs -ct -cR -cY -dd -di -ee -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -ab -af -af -af -af -af -af -af -af -af -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -dq -dq -af -af -ab -ee -em -eG -eG -ee -fj -bg -cu -fb -cQ -cQ -de -dj -ee -ed -af -af -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -af -af -af -af -af -fK -fK -ab -af -af -ab -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -fK -ab -af -af -fK -fK -fK -fK -fK -dq -dq -dq -dq -af -af -af -af -ee -ee -ee -ee -ee -fj -bg -fj -ee -cS -cQ -df -cQ -ee -al -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -fK -fK -fK -fK -fK -af -af -af -af -af -af -af -dq -dq -dq -dq -af -af -af -af -af -af -af -af -ab -ab -ei -fj -bg -fj -ee -cT -cZ -dg -dk -ee -al -al -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -al -al -al -af -af -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -ab -ei -fq -bp -cH -ee -ei -ei -ei -ei -ee -al -al -al -af -ab -af -af -ab -ab -af -ab -ab -ab -af -af -af -af -af -af -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -ab -af -af -af -af -af -ei -ei -bs -ei -ei -ab -ab -ab -ab -al -al -al -ab -af -af -af -af -ab -ab -ab -al -ed -ed -ab -ab -af -af -af -af -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -ed -ab -ab -ab -al -af -af -af -af -af -af -af -al -al -al -al -al -al -al -af -af -af -af -af -al -al -al -al -al -al -al -ab -ab -al -al -al -al -af -af -af -af -al -al -af -af -af -af -af -af -af -al -al -al -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ei -bQ -ei -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ed -ed -ed -ed -ed -al -al -af -af -af -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ei -bg -ei -ab -af -af -af -af -af -af -af -af -af -ab -af -ab -ab -ed -ed -ed -ed -ed -ed -ed -ed -ab -af -af -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ei -bg -ei -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ed -ed -ed -ed -ed -ed -ed -ab -af -af -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -ab -ab -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ei -bg -ei -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ed -ed -ed -ed -ed -ed -ed -ab -af -af -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -ab -ab -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -dx -bV -dx -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ed -ed -al -ed -ab -ab -af -af -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -ab -ab -ab -ab -ck -ab -ab -ab -ab -af -af -ab -dx -bV -dx -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -af -af -af -af -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -ab -af -af -af -af -af -ab -ab -by -bH -dx -ab -ab -af -af -af -ab -dx -bV -dx -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -af -af -af -af -af -af -ab -dx -dI -dx -ab -af -af -af -af -ab -dx -dK -dx -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -dx -dx -bH -dx -dx -ab -af -af -ab -dx -dx -cb -dx -dx -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -bh -dx -dH -dR -bP -dx -bh -bh -bh -bh -dx -bU -bW -bP -dx -bh -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -ed -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -ab -bh -bq -dI -dS -dI -bU -eg -eo -dR -eU -fe -dI -bV -dI -cz -bh -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -af -af -ab -ab -af -ab -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -ab -dx -dB -dJ -dT -bR -bR -bR -ep -bR -bR -bR -bR -ce -cw -cA -bh -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -ab -ab -dx -dC -dK -bI -bS -dZ -bT -bI -dI -dI -dI -dI -ch -dI -cC -dx -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -al -ab -ds -ds -ds -bb -bz -bb -ds -ea -bh -eq -eH -eV -dC -bS -cm -bI -cD -dx -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ds -du -dy -br -dL -dU -ds -eb -bh -bh -eI -bh -ff -fr -cn -ff -bh -bh -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -dt -dv -dz -dz -dM -dV -ds -ec -bh -er -eJ -eW -bU -dR -co -bP -dI -dx -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -ab -ab -af -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -dt -dv -dz -dD -dN -bj -ds -bh -bh -es -dI -dI -dI -dI -cp -bS -cE -bh -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -ds -dw -dA -dE -dO -dW -ds -ed -bh -et -dI -eX -fg -fg -cq -bh -cF -bh -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -ds -ds -ds -dt -dP -dt -ds -al -bh -eu -dI -eY -fh -fs -cr -ff -cG -bh -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -ab -ab -ds -dF -dQ -dX -ds -al -bh -ev -eK -bh -ff -ft -ff -ff -cG -bh -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -ab -ds -dG -dO -dY -ds -al -bh -ew -eL -eZ -fi -fu -fi -fi -cI -bh -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -al -af -af -ab -ds -dt -dP -dt -ds -al -bh -bh -bh -bh -bh -bh -bh -bh -bh -bh -ab -ab -ab -af -af -af -af -ab -af -af -af -ab -af -af -af -af -af -ab -af -af -af -af -af -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -ab -ab -bt -ab -ab -ab -bt -al -al -ab -ab -af -af -af -af -ab -ab -ab -ab -ab -ab -af -af -ab -af -af -af -af -ab -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -ed -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -af -ab -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -ab -af -af -ab -af -af -af -af -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -af -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -al -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -af -af -ab -af -af -af -af -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -af -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -al -al -ab -ab -ab -af -ab -ab -ab -af -af -af -ab -ab -ab -af -af -af -ab -ab -ab -af -af -af -af -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -al -ab -ab -ab -ab -ab -ab -fy -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -al -al -al -al -al -ab -ab -af -ab -ab -ab -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -ab -ab -ab -ab -al -al -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -ab -af -ab -ab -ab -ab -ab -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -al -al -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -ed -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -ab -ab -ab -ab -ab -ab -af -ab -af -af -af -af -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -al -al -al -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -"} -(81,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -al -al -al -ed -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -"} -(82,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -al -al -al -ed -ab -af -af -af -af -af -af -af -af -af -ab -ab -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -"} -(83,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ab -ab -af -af -af -af -af -af -af -ab -af -ab -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -ab -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -ab -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -"} -(84,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -ab -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -"} -(85,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -fy -al -al -al -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -"} -(86,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -af -ab -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -al -fy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -"} -(87,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -ab -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -ab -ab -ab -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(88,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -af -ab -ab -ab -af -ab -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -ab -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(89,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -af -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -fy -al -al -al -al -al -al -al -al -al -al -al -al -al -fy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(90,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(91,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(92,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -fy -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(93,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(94,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(95,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(96,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -ab -"} -(97,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -al -ab -ab -ab -ab -ab -al -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(98,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -al -al -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -ab -ab -ab -ab -ab -ab -al -fy -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(99,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -al -al -ed -ab -ab -ab -ab -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -al -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -ab -ab -al -al -al -al -al -al -al -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(100,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -al -al -ed -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -fy -ab -ab -al -al -al -al -al -al -fy -ab -ab -ab -ab -fy -fy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -ed -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -af -ab -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -fy -fy -ab -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -cB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -al -al -al -al -al -al -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -al -al -al -al -al -al -aY -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -al -al -al -al -al -al -ab -ab -ab -ab -ab -fy -fy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -ab -ab -fy -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -ab -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -ab -ab -ab -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -af -af -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ed -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ed -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -af -af -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ed -ed -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ed -al -al -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -af -ab -ab -af -af -af -af -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -ab -ab -ab -ab -ab -ab -ab -af -af -ab -af -af -af -ab -ab -af -af -af -ab -ab -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -af -af -ab -af -af -af -af -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -ed -ab -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -af -af -af -af -af -af -af -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -en -aj -aj -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -ab -ab -ab -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -af -af -ab -af -af -af -af -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -ed -al -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -ab -af -af -ab -ab -af -af -af -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -aj -ab -ab -aa -aa -af -af -af -af -af -af -af -af -af -af -af -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -ab -af -af -af -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -ab -af -af -af -af -af -af -af -"} -(127,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ak -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ed -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -aj -ab -ab -aa -aa -af -af -af -af -af -af -af -af -af -af -af -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ed -ed -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -aj -ab -ab -ab -ab -ab -af -af -af -ab -af -af -af -af -af -af -af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -al -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -ab -af -af -af -af -af -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -fx -aj -aj -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -ab -ab -af -af -af -ab -ab -al -ed -ab -ab -ab -ab -ab -ab -ed -al -al -ed -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -ab -af -af -af -af -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -ab -af -ab -af -af -af -af -af -af -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(136,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(137,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -af -"} -(138,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(139,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(140,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(141,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(142,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(143,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(144,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(145,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(146,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(147,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(148,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ed -ab -ab -ab -ab -ab -af -af -af -ab -ab -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(149,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -ab -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(150,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -af -af -af -ab -af -af -af -af -af -af -ab -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(151,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -ed -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(152,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(153,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(154,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(155,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(156,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(157,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(158,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(159,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(160,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(161,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(162,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(163,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(164,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -af -ab -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(165,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(166,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ed -ed -ab -ab -af -af -af -af -ab -ab -ab -af -ab -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(167,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -al -al -al -al -ab -af -af -af -ab -ab -ab -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -ab -af -ab -af -af -af -af -af -af -"} -(168,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(169,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -al -al -al -al -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -af -af -af -af -af -ab -af -af -af -af -af -"} -(170,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -al -al -al -al -ed -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -"} -(171,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -al -al -al -al -ed -ed -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -ab -af -af -af -af -af -"} -(172,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -al -al -al -al -ed -ed -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -ab -af -af -af -af -af -"} -(173,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ed -al -al -al -al -ed -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(174,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ed -al -al -al -al -ed -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(175,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -al -al -al -al -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(176,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -al -al -al -al -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(177,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(178,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(179,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(181,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(182,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(183,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(184,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ed -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(185,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -al -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(186,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -al -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -"} -(187,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -al -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -af -af -af -af -af -af -af -af -af -"} -(188,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -al -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(189,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ab -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ed -ed -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -al -al -ab -ab -ab -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ed -al -al -ab -ab -ab -af -ab -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -al -al -ed -ab -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ed -ab -ab -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -"} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -ab -af -af -af -af -af -af -af -af -af -"} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -al -al -al -al -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -"} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -al -al -al -al -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -"} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -al -al -al -al -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -"} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -al -al -al -al -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -al -al -al -al -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -"} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -al -al -al -al -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -"} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ed -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -af -af -ab -ab -ab -ed -ed -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ed -ed -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -af -af -af -af -af -af -af -af -af -af -"} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -af -af -af -af -af -af -af -af -af -af -"} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ed -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -af -af -af -af -af -ab -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -af -ab -ab -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -af -ab -af -ab -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -af -af -af -af -af -ab -ab -ab -ab -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(249,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ed -ed -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -"} -(250,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ab -ab -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -al -al -al -al -al -af -af -af -af -af -af -af -af -af -"} -(251,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ed -af -af -af -af -af -af -af -af -af -af -af -"} -(252,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -"} -(253,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ed -ed -ed -ab -ab -ab -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -"} -(254,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -"} -(255,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ed -ab -ab -ab -af -af -af -af -af -af -af -af -af -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -af -af -af -af -af -af -af -af -af -af -af -af -af -af -"} diff --git a/_maps/map_files/generic/z10.dmm b/_maps/map_files/generic/z10.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z10.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z11.dmm b/_maps/map_files/generic/z11.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z11.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm deleted file mode 100644 index d1e2981c1f..0000000000 --- a/_maps/map_files/generic/z2.dmm +++ /dev/null @@ -1,79096 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/turf/closed/indestructible/riveted, -/area/space) -"ac" = ( -/obj/structure/window/reinforced, -/turf/closed/indestructible/riveted, -/area/space) -"ad" = ( -/obj/effect/landmark/transit, -/turf/open/space, -/area/space) -"ae" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/closed/indestructible/riveted, -/area/space) -"af" = ( -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"ag" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/closed/indestructible/riveted, -/area/space) -"ah" = ( -/obj/structure/foamedmetal, -/obj/structure/window{ - icon_state = "rwindow"; - dir = 8 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/bunker) -"ai" = ( -/obj/structure/foamedmetal, -/obj/structure/window{ - icon_state = "rwindow"; - dir = 4 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/bunker) -"aj" = ( -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/bunker) -"ak" = ( -/turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; - icon_state = "asteroid_warn_side"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"al" = ( -/obj/structure/table, -/obj/item/stack/medical/ointment{ - heal_burn = 10 - }, -/turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; - icon_state = "asteroid_warn_side"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"am" = ( -/obj/structure/table/wood{ - layer = 3.3 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1; - pixel_y = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"an" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"ao" = ( -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"ap" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - layer = 3.3; - pixel_y = 0 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aq" = ( -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/wildlife) -"ar" = ( -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/offline) -"as" = ( -/turf/open/floor/holofloor/plating/burnmix, -/area/holodeck/rec_center/burn) -"at" = ( -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "red" - }, -/area/holodeck/rec_center/court) -"au" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "red" - }, -/area/holodeck/rec_center/court) -"av" = ( -/turf/open/floor/holofloor{ - dir = 5; - icon_state = "red" - }, -/area/holodeck/rec_center/court) -"aw" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/closed/indestructible/riveted, -/area/space) -"ax" = ( -/obj/structure/flora/bush, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"ay" = ( -/obj/item/toy/snowball{ - pixel_x = 0; - pixel_y = 6 - }, -/obj/item/toy/snowball{ - pixel_x = 5; - pixel_y = 0 - }, -/obj/item/toy/snowball{ - pixel_x = -4 - }, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"az" = ( -/turf/open/floor/holofloor{ - tag = "icon-asteroid_warn (WEST)"; - icon_state = "asteroid_warn"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"aA" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/holofloor{ - tag = "icon-asteroidfloor (WEST)"; - icon_state = "asteroidfloor"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"aB" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/matches{ - pixel_x = -4; - pixel_y = 8 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aC" = ( -/obj/structure/chair/wood/normal, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aD" = ( -/obj/effect/holodeck_effect/mobspawner, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/wildlife) -"aE" = ( -/obj/effect/holodeck_effect/sparks, -/turf/open/floor/holofloor/plating/burnmix, -/area/holodeck/rec_center/burn) -"aF" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "red" - }, -/area/holodeck/rec_center/court) -"aG" = ( -/turf/open/floor/holofloor, -/area/holodeck/rec_center/court) -"aH" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "red" - }, -/area/holodeck/rec_center/court) -"aI" = ( -/obj/structure/flora/grass/brown, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"aJ" = ( -/obj/structure/table, -/obj/item/weapon/gun/energy/laser, -/turf/open/floor/holofloor{ - tag = "icon-asteroidfloor (WEST)"; - icon_state = "asteroidfloor"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"aK" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aL" = ( -/obj/structure/table/wood/poker, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aM" = ( -/obj/structure/table/wood/poker, -/obj/structure/table/wood/poker, -/obj/effect/holodeck_effect/cards, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aN" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 8 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aO" = ( -/obj/structure/statue/snow/snowman{ - anchored = 1 - }, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"aP" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aQ" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"aR" = ( -/obj/structure/window/reinforced/tinted{ - icon_state = "rwindow"; - dir = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aS" = ( -/obj/structure/window/reinforced, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aT" = ( -/obj/structure/flora/tree/pine, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"aU" = ( -/obj/structure/chair/wood, -/turf/open/floor/holofloor/snow/cold, -/area/holodeck/rec_center/winterwonderland) -"aV" = ( -/obj/structure/table/wood, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-05"; - layer = 4.1; - pixel_y = 10 - }, -/turf/open/floor/holofloor{ - icon_state = "wood"; - dir = 9 - }, -/area/holodeck/rec_center/lounge) -"aW" = ( -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "stairs-l" - }, -/area/holodeck/rec_center/lounge) -"aX" = ( -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "stairs-r" - }, -/area/holodeck/rec_center/lounge) -"aY" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "green" - }, -/area/holodeck/rec_center/court) -"aZ" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "green" - }, -/area/holodeck/rec_center/court) -"ba" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green{ - pixel_y = 4 - }, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bb" = ( -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bc" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bd" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"be" = ( -/obj/structure/table, -/obj/item/stack/medical/bruise_pack{ - heal_brute = 10 - }, -/turf/open/floor/holofloor{ - tag = "icon-asteroid_warn_side (WEST)"; - icon_state = "asteroid_warn_side"; - dir = 8 - }, -/area/holodeck/rec_center/bunker) -"bf" = ( -/obj/structure/table/wood, -/obj/item/device/instrument/violin, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bg" = ( -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; - dir = 1 - }, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bh" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/barman_recipes, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/holofloor/carpet, -/area/holodeck/rec_center/lounge) -"bi" = ( -/turf/open/floor/holofloor{ - dir = 10; - icon_state = "green" - }, -/area/holodeck/rec_center/court) -"bj" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "green" - }, -/area/holodeck/rec_center/court) -"bk" = ( -/turf/open/floor/holofloor{ - dir = 6; - icon_state = "green" - }, -/area/holodeck/rec_center/court) -"bl" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/closed/indestructible/riveted, -/area/space) -"bm" = ( -/obj/effect/holodeck_effect/mobspawner/bee, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/anthophila) -"bn" = ( -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bo" = ( -/obj/structure/flora/ausbushes/sunnybush, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bp" = ( -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bq" = ( -/obj/structure/table/glass, -/obj/item/weapon/surgicaldrill, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; - icon_state = "white"; - dir = 9 - }, -/area/holodeck/rec_center/medical) -"br" = ( -/obj/structure/table/glass, -/obj/item/weapon/hemostat, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/medical) -"bs" = ( -/obj/structure/table/glass, -/obj/item/weapon/scalpel{ - pixel_y = 10 - }, -/obj/item/weapon/circular_saw, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/medical) -"bt" = ( -/obj/structure/table/glass, -/obj/item/weapon/retractor, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/medical) -"bu" = ( -/obj/structure/table/glass, -/obj/item/stack/medical/gauze, -/obj/item/weapon/cautery, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; - icon_state = "white"; - dir = 5 - }, -/area/holodeck/rec_center/medical) -"bv" = ( -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"bw" = ( -/obj/structure/holohoop{ - layer = 3.9 - }, -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"bx" = ( -/turf/open/floor/holofloor{ - dir = 5; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"by" = ( -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"bz" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/obj/machinery/readybutton, -/turf/open/floor/holofloor{ - tag = "icon-warningline"; - icon_state = "warningline"; - dir = 2 - }, -/area/holodeck/rec_center/thunderdome) -"bA" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/clothing/suit/armor/tdome/red, -/obj/item/clothing/under/color/red, -/obj/item/weapon/holo/esword/red, -/turf/open/floor/holofloor{ - tag = "icon-warningline"; - icon_state = "warningline"; - dir = 2 - }, -/area/holodeck/rec_center/thunderdome) -"bB" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/turf/open/floor/holofloor{ - tag = "icon-warningline"; - icon_state = "warningline"; - dir = 2 - }, -/area/holodeck/rec_center/thunderdome) -"bC" = ( -/obj/machinery/readybutton, -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"bD" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"bE" = ( -/turf/open/floor/holofloor{ - dir = 5; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"bF" = ( -/obj/effect/holodeck_effect/mobspawner/pet, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bG" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bH" = ( -/obj/effect/holodeck_effect/mobspawner/pet, -/obj/structure/flora/ausbushes/brflowers, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bI" = ( -/obj/structure/table/glass, -/obj/item/weapon/surgical_drapes, -/obj/item/weapon/razor, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; - icon_state = "white"; - dir = 8 - }, -/area/holodeck/rec_center/medical) -"bJ" = ( -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"bK" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (EAST)"; - icon_state = "white"; - dir = 4 - }, -/area/holodeck/rec_center/medical) -"bL" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"bM" = ( -/turf/open/floor/holofloor, -/area/holodeck/rec_center/basketball) -"bN" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"bO" = ( -/obj/effect/overlay/palmtree_r, -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"bP" = ( -/obj/effect/overlay/palmtree_l, -/obj/effect/overlay/coconut, -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"bQ" = ( -/turf/open/floor/holofloor/basalt, -/area/holodeck/rec_center/thunderdome) -"bR" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"bS" = ( -/turf/open/floor/holofloor, -/area/holodeck/rec_center/dodgeball) -"bT" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"bU" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"bV" = ( -/obj/item/weapon/storage/bag/easterbasket{ - name = "picnic basket"; - pixel_y = 6 - }, -/turf/open/floor/holofloor{ - icon_state = "redbluefull" - }, -/area/holodeck/rec_center/pet_lounge) -"bW" = ( -/obj/item/trash/plate, -/turf/open/floor/holofloor{ - icon_state = "redbluefull" - }, -/area/holodeck/rec_center/pet_lounge) -"bX" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; - icon_state = "white"; - dir = 10 - }, -/area/holodeck/rec_center/medical) -"bY" = ( -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"bZ" = ( -/obj/structure/table/optable, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"ca" = ( -/obj/machinery/computer/operating, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cb" = ( -/obj/structure/table/glass, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/clothing/suit/apron/surgical, -/obj/item/clothing/mask/surgical, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; - icon_state = "white"; - dir = 6 - }, -/area/holodeck/rec_center/medical) -"cc" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"cd" = ( -/obj/effect/holodeck_effect/mobspawner/monkey, -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"ce" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"cf" = ( -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cg" = ( -/obj/effect/holodeck_effect/mobspawner/pet, -/turf/open/floor/holofloor{ - icon_state = "redbluefull" - }, -/area/holodeck/rec_center/pet_lounge) -"ch" = ( -/obj/item/weapon/shovel/spade{ - pixel_x = 2; - pixel_y = -2 - }, -/turf/open/floor/holofloor{ - icon_state = "redbluefull" - }, -/area/holodeck/rec_center/pet_lounge) -"ci" = ( -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cj" = ( -/obj/effect/holodeck_effect/mobspawner/bee, -/obj/item/clothing/head/beekeeper_head, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/anthophila) -"ck" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; - icon_state = "white"; - dir = 9 - }, -/area/holodeck/rec_center/medical) -"cl" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; - icon_state = "white"; - dir = 5 - }, -/area/holodeck/rec_center/medical) -"cm" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/box/syringes{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/weapon/storage/box/beakers, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cn" = ( -/obj/machinery/washing_machine, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"co" = ( -/turf/open/floor/holofloor{ - dir = 10; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"cp" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"cq" = ( -/turf/open/floor/holofloor{ - dir = 6; - icon_state = "red" - }, -/area/holodeck/rec_center/basketball) -"cr" = ( -/obj/item/clothing/under/color/rainbow, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"cs" = ( -/obj/structure/window, -/turf/open/floor/holofloor/basalt, -/area/holodeck/rec_center/thunderdome) -"ct" = ( -/obj/structure/window{ - dir = 1 - }, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 10; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"cu" = ( -/obj/structure/window{ - dir = 1 - }, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"cv" = ( -/obj/structure/window{ - dir = 1 - }, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 6; - icon_state = "red" - }, -/area/holodeck/rec_center/dodgeball) -"cw" = ( -/obj/effect/holodeck_effect/mobspawner/bee, -/obj/effect/decal/remains/human, -/obj/item/clothing/suit/beekeeper_suit, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/anthophila) -"cx" = ( -/obj/effect/holodeck_effect/mobspawner/bee, -/obj/item/weapon/melee/flyswatter, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/anthophila) -"cy" = ( -/obj/machinery/chem_master, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; - icon_state = "white"; - dir = 10 - }, -/area/holodeck/rec_center/medical) -"cz" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; - icon_state = "white"; - dir = 6 - }, -/area/holodeck/rec_center/medical) -"cA" = ( -/obj/structure/table/glass, -/obj/item/device/healthanalyzer, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cB" = ( -/obj/structure/closet/wardrobe/white, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cC" = ( -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cD" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cE" = ( -/turf/open/floor/holofloor{ - dir = 5; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cF" = ( -/obj/item/toy/beach_ball, -/turf/open/floor/holofloor/beach, -/area/holodeck/rec_center/beach) -"cG" = ( -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/holofloor/basalt, -/area/holodeck/rec_center/thunderdome) -"cH" = ( -/obj/structure/window, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 9; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"cI" = ( -/obj/structure/window, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"cJ" = ( -/obj/structure/window, -/obj/item/toy/beach_ball/holoball/dodgeball, -/turf/open/floor/holofloor{ - dir = 5; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"cK" = ( -/obj/structure/sink/puddle, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cL" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cM" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cN" = ( -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/basketball) -"cO" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cP" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"cQ" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"cR" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cS" = ( -/obj/machinery/hydroponics/soil, -/obj/item/weapon/cultivator, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cT" = ( -/obj/machinery/hydroponics/soil, -/obj/effect/holodeck_effect/mobspawner/pet, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cU" = ( -/obj/structure/flora/ausbushes/grassybush, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"cV" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; - icon_state = "white"; - dir = 9 - }, -/area/holodeck/rec_center/medical) -"cW" = ( -/obj/structure/window{ - icon_state = "rwindow"; - dir = 8 - }, -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; - icon_state = "white"; - dir = 5 - }, -/area/holodeck/rec_center/medical) -"cX" = ( -/obj/structure/window{ - icon_state = "rwindow"; - dir = 8 - }, -/obj/machinery/computer/pandemic, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"cY" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"cZ" = ( -/turf/open/floor/holofloor/beach/coast_t, -/area/holodeck/rec_center/beach) -"da" = ( -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/holofloor/beach/coast_t, -/area/holodeck/rec_center/beach) -"db" = ( -/obj/item/weapon/shovel/spade, -/turf/open/floor/holofloor/beach/coast_t, -/area/holodeck/rec_center/beach) -"dc" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"dd" = ( -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/pet_lounge) -"de" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; - icon_state = "white"; - dir = 8 - }, -/area/holodeck/rec_center/medical) -"df" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "white_warn_corner"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/medical) -"dg" = ( -/obj/machinery/door/window/westleft, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/medical) -"dh" = ( -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/medical) -"di" = ( -/turf/open/floor/holofloor/beach/coast_b, -/area/holodeck/rec_center/beach) -"dj" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/obj/machinery/iv_drip{ - density = 0 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; - icon_state = "white"; - dir = 10 - }, -/area/holodeck/rec_center/medical) -"dk" = ( -/obj/structure/window{ - icon_state = "rwindow"; - dir = 8 - }, -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/obj/machinery/iv_drip{ - density = 0 - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"dl" = ( -/obj/structure/window{ - icon_state = "rwindow"; - dir = 8 - }, -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 1 - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"dm" = ( -/obj/machinery/iv_drip{ - density = 0 - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/medical) -"dn" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; - icon_state = "white"; - dir = 6 - }, -/area/holodeck/rec_center/medical) -"do" = ( -/turf/open/floor/holofloor{ - dir = 10; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"dp" = ( -/obj/structure/holohoop{ - dir = 1; - layer = 4.1 - }, -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"dq" = ( -/turf/open/floor/holofloor{ - dir = 6; - icon_state = "green" - }, -/area/holodeck/rec_center/basketball) -"dr" = ( -/turf/open/floor/holofloor/beach/water, -/area/holodeck/rec_center/beach) -"ds" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; - icon_state = "warningline"; - dir = 1 - }, -/area/holodeck/rec_center/thunderdome) -"dt" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/clothing/suit/armor/tdome/green, -/obj/item/clothing/under/color/green, -/obj/item/weapon/holo/esword/green, -/turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; - icon_state = "warningline"; - dir = 1 - }, -/area/holodeck/rec_center/thunderdome) -"du" = ( -/turf/open/floor/holofloor/basalt, -/obj/structure/table, -/obj/machinery/readybutton, -/turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; - icon_state = "warningline"; - dir = 1 - }, -/area/holodeck/rec_center/thunderdome) -"dv" = ( -/turf/open/floor/holofloor{ - dir = 10; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"dw" = ( -/turf/open/floor/holofloor{ - dir = 2; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"dx" = ( -/obj/machinery/readybutton, -/turf/open/floor/holofloor{ - dir = 6; - icon_state = "green" - }, -/area/holodeck/rec_center/dodgeball) -"dy" = ( -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/refuel) -"dz" = ( -/turf/open/floor/holofloor/grass, -/turf/open/floor/holofloor{ - tag = "icon-warningline"; - icon_state = "warningline"; - dir = 2 - }, -/area/holodeck/rec_center/spacechess) -"dA" = ( -/obj/item/weapon/banner/blue, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"dB" = ( -/obj/structure/table/wood/fancy, -/obj/item/clothing/suit/armor/riot/knight/blue, -/obj/item/clothing/head/helmet/knight/blue, -/obj/item/weapon/claymore/weak, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"dC" = ( -/obj/structure/table/wood/fancy, -/obj/item/clothing/head/crown/fancy{ - pixel_y = 6 - }, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"dD" = ( -/obj/structure/table/wood/fancy, -/obj/item/clothing/suit/armor/riot/knight/red, -/obj/item/clothing/head/helmet/knight/red, -/obj/item/weapon/claymore/weak, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"dE" = ( -/obj/item/weapon/banner/red, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"dF" = ( -/turf/open/floor/holofloor/hyperspace, -/area/holodeck/rec_center/kobayashi) -"dG" = ( -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/hyperspace, -/area/holodeck/rec_center/kobayashi) -"dH" = ( -/obj/structure/closet{ - density = 0; - opened = 1 - }, -/obj/item/clothing/suit/judgerobe, -/obj/item/clothing/head/powdered_wig, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"dI" = ( -/obj/structure/table/wood/fancy, -/obj/item/clothing/suit/nun, -/obj/item/clothing/head/nun_hood, -/obj/item/clothing/suit/holidaypriest, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"dJ" = ( -/obj/structure/table/wood/fancy, -/obj/item/weapon/storage/book/bible, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"dK" = ( -/obj/structure/table/wood/fancy, -/obj/item/weapon/book/manual/wiki/security_space_law, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"dL" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"dM" = ( -/obj/machinery/conveyor/holodeck{ - dir = 5; - icon_state = "conveyor0"; - id = "holocoaster"; - movedir = null; - verted = -1 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"dN" = ( -/obj/machinery/conveyor/holodeck{ - dir = 8; - id = "holocoaster" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"dO" = ( -/obj/machinery/conveyor/holodeck{ - dir = 6; - id = "holocoaster"; - movedir = null; - verted = -1 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"dP" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "green" - }, -/area/holodeck/rec_center/firingrange) -"dQ" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHWEST)"; - icon_state = "white"; - dir = 9 - }, -/area/holodeck/rec_center/firingrange) -"dR" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTH)"; - icon_state = "white"; - dir = 1 - }, -/area/holodeck/rec_center/firingrange) -"dS" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (NORTHEAST)"; - icon_state = "white"; - dir = 5 - }, -/area/holodeck/rec_center/firingrange) -"dT" = ( -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "green" - }, -/area/holodeck/rec_center/firingrange) -"dU" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/refuel) -"dV" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_viva"; - name = "Black Rook"; - tag = "icon-cutout_viva" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"dW" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_mime"; - name = "Black Queen"; - tag = "icon-cutout_mime" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"dX" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_clown"; - name = "Black King"; - tag = "icon-cutout_clown" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"dY" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_ian"; - name = "Black Knight"; - tag = "icon-cutout_ian" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"dZ" = ( -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"ea" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"eb" = ( -/obj/structure/window/reinforced, -/obj/machinery/mass_driver{ - dir = 1; - icon_state = "mass_driver"; - id = "trektorpedo1"; - name = "photon torpedo tube"; - tag = "icon-mass_driver (NORTH)" - }, -/obj/item/toy/minimeteor{ - color = ""; - desc = "A primitive long-range weapon, inferior to Nanotrasen's perfected bluespace artillery."; - icon = 'icons/effects/effects.dmi'; - icon_state = "impact_laser"; - name = "photon torpedo" - }, -/turf/open/floor/holofloor/hyperspace, -/area/holodeck/rec_center/kobayashi) -"ec" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ed" = ( -/obj/machinery/button/massdriver{ - id = "trektorpedo1"; - layer = 3.9; - name = "photon torpedo button"; - pixel_x = -16; - pixel_y = -5 - }, -/obj/machinery/button/massdriver{ - id = "trektorpedo2"; - layer = 3.9; - name = "photon torpedo button"; - pixel_x = 16; - pixel_y = -5 - }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ee" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/weapon/paper/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ef" = ( -/obj/structure/window/reinforced, -/obj/machinery/mass_driver{ - dir = 1; - icon_state = "mass_driver"; - id = "trektorpedo2"; - name = "photon torpedo tube"; - tag = "icon-mass_driver (NORTH)" - }, -/obj/item/toy/minimeteor{ - color = ""; - desc = "A primitive long-range weapon, inferior to Nanotrasen's perfected bluespace artillery."; - icon = 'icons/effects/effects.dmi'; - icon_state = "impact_laser"; - name = "photon torpedo" - }, -/turf/open/floor/holofloor/hyperspace, -/area/holodeck/rec_center/kobayashi) -"eg" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; - icon_state = "chapel"; - dir = 1 - }, -/area/holodeck/rec_center/chapelcourt) -"eh" = ( -/turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; - icon_state = "chapel"; - dir = 4 - }, -/area/holodeck/rec_center/chapelcourt) -"ei" = ( -/obj/structure/chair, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"ej" = ( -/turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; - icon_state = "chapel"; - dir = 1 - }, -/area/holodeck/rec_center/chapelcourt) -"ek" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; - icon_state = "chapel"; - dir = 4 - }, -/area/holodeck/rec_center/chapelcourt) -"el" = ( -/obj/machinery/conveyor/holodeck{ - id = "holocoaster" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"em" = ( -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"en" = ( -/obj/machinery/conveyor/holodeck{ - dir = 1; - id = "holocoaster"; - layer = 2.5 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"eo" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (WEST)"; - icon_state = "white"; - dir = 8 - }, -/area/holodeck/rec_center/firingrange) -"ep" = ( -/obj/structure/target_stake, -/obj/machinery/magnetic_module, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/firingrange) -"eq" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (EAST)"; - icon_state = "white"; - dir = 4 - }, -/area/holodeck/rec_center/firingrange) -"er" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_greytide"; - name = "Black Pawn"; - tag = "icon-cutout_greytide" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"es" = ( -/obj/item/cardboard_cutout/adaptive{ - color = "#9999BB"; - icon_state = "cutout_greytide"; - name = "Black Pawn"; - tag = "icon-cutout_greytide" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"et" = ( -/obj/machinery/door/window/westleft{ - dir = 2; - icon_state = "right" - }, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"eu" = ( -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"ev" = ( -/obj/machinery/door/window/westleft{ - dir = 2 - }, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"ew" = ( -/obj/structure/table/glass, -/obj/machinery/recharger, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ex" = ( -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ey" = ( -/obj/structure/chair/comfy{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; - dir = 1 - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"ez" = ( -/obj/structure/table/glass, -/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"eA" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" - }, -/area/holodeck/rec_center/chapelcourt) -"eB" = ( -/turf/open/floor/holofloor{ - tag = "icon-chapel"; - icon_state = "chapel"; - dir = 2 - }, -/area/holodeck/rec_center/chapelcourt) -"eC" = ( -/obj/item/weapon/gavelblock, -/obj/item/weapon/gavelhammer, -/obj/structure/table/wood, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"eD" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" - }, -/area/holodeck/rec_center/chapelcourt) -"eE" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel"; - icon_state = "chapel"; - dir = 2 - }, -/area/holodeck/rec_center/chapelcourt) -"eF" = ( -/obj/item/weapon/shovel, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"eG" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHWEST)"; - icon_state = "white"; - dir = 10 - }, -/area/holodeck/rec_center/firingrange) -"eH" = ( -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/firingrange) -"eI" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/holofloor{ - tag = "icon-white_warn (SOUTHEAST)"; - icon_state = "white"; - dir = 6 - }, -/area/holodeck/rec_center/firingrange) -"eJ" = ( -/obj/item/weapon/weldingtool, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/refuel) -"eK" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"eL" = ( -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"eM" = ( -/turf/open/floor/holofloor{ - tag = "icon-stairs-old (WEST)"; - icon_state = "stairs-old"; - dir = 8 - }, -/area/holodeck/rec_center/thunderdome1218) -"eN" = ( -/obj/structure/table/wood, -/obj/item/weapon/melee/chainofcommand{ - name = "chain whip" - }, -/obj/item/weapon/twohanded/spear, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"eO" = ( -/obj/structure/table/wood, -/obj/item/weapon/scythe, -/obj/item/weapon/twohanded/spear, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"eP" = ( -/obj/structure/table/wood, -/obj/item/weapon/tailclub, -/obj/item/weapon/twohanded/spear, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"eQ" = ( -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/chapelcourt) -"eR" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "red" - }, -/area/holodeck/rec_center/firingrange) -"eS" = ( -/turf/open/floor/holofloor, -/area/holodeck/rec_center/firingrange) -"eT" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "red" - }, -/area/holodeck/rec_center/firingrange) -"eU" = ( -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"eV" = ( -/obj/machinery/modular_computer/console/preset/civilian, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"eW" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"eX" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"eY" = ( -/obj/machinery/computer/station_alert, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"eZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel (NORTH)"; - icon_state = "chapel"; - dir = 1 - }, -/area/holodeck/rec_center/chapelcourt) -"fa" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel (EAST)"; - icon_state = "chapel"; - dir = 4 - }, -/area/holodeck/rec_center/chapelcourt) -"fb" = ( -/obj/machinery/modular_computer/console/preset/civilian, -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"fc" = ( -/obj/machinery/computer/atmos_alert, -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"fd" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "chapel"; - tag = "icon-chapel" - }, -/area/holodeck/rec_center/chapelcourt) -"fe" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/holofloor{ - tag = "icon-chapel"; - icon_state = "chapel"; - dir = 2 - }, -/area/holodeck/rec_center/chapelcourt) -"ff" = ( -/obj/machinery/conveyor/holodeck{ - id = "holocoaster" - }, -/obj/structure/chair/office{ - dir = 1; - name = "coaster car" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fg" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = -1; - id = "holocoaster" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fh" = ( -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"fi" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_greytide"; - name = "White Pawn"; - tag = "icon-cutout_greytide" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"fj" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_greytide"; - name = "White Pawn"; - tag = "icon-cutout_greytide" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"fk" = ( -/obj/structure/window/reinforced, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"fl" = ( -/obj/machinery/door/window/westleft{ - dir = 2 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/thunderdome1218) -"fm" = ( -/obj/machinery/door/window/westleft{ - dir = 2; - icon_state = "right" - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"fn" = ( -/obj/structure/table, -/obj/item/weapon/folder, -/obj/item/weapon/pen/blue, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fo" = ( -/obj/structure/table, -/obj/item/weapon/folder, -/obj/item/weapon/pen, -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fp" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/folder, -/obj/item/weapon/pen/red, -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fq" = ( -/obj/machinery/door/window/westleft{ - dir = 2 - }, -/turf/open/floor/holofloor/plating, -/area/holodeck/rec_center/kobayashi) -"fr" = ( -/obj/structure/closet/crate/miningcar{ - can_buckle = 1; - desc = "Great for mining!"; - name = "minecart" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fs" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "red" - }, -/area/holodeck/rec_center/firingrange) -"ft" = ( -/obj/item/weapon/paper/range, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/firingrange) -"fu" = ( -/obj/structure/table/reinforced, -/obj/machinery/magnetic_controller{ - autolink = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/holofloor{ - dir = 4; - icon_state = "red" - }, -/area/holodeck/rec_center/firingrange) -"fv" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_viva"; - name = "White Rook"; - tag = "icon-cutout_viva" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"fw" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_mime"; - name = "White Queen"; - tag = "icon-cutout_mime" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"fx" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_clown"; - name = "White King"; - tag = "icon-cutout_clown" - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/spacechess) -"fy" = ( -/obj/item/cardboard_cutout/adaptive{ - icon_state = "cutout_ian"; - name = "White Knight"; - tag = "icon-cutout_ian" - }, -/turf/open/floor/holofloor{ - dir = 8; - icon_state = "dark"; - tag = "icon-white_warn (WEST)" - }, -/area/holodeck/rec_center/spacechess) -"fz" = ( -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fA" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/kobayashi) -"fB" = ( -/turf/open/floor/holofloor{ - dir = 1; - icon_state = "green" - }, -/area/holodeck/rec_center/firingrange) -"fC" = ( -/turf/open/floor/holofloor/grass, -/turf/open/floor/holofloor{ - tag = "icon-warningline (NORTH)"; - icon_state = "warningline"; - dir = 1 - }, -/area/holodeck/rec_center/spacechess) -"fD" = ( -/obj/structure/chair/wood/normal{ - icon_state = "wooden_chair"; - dir = 1 - }, -/turf/open/floor/holofloor/grass, -/area/holodeck/rec_center/thunderdome1218) -"fE" = ( -/obj/structure/rack, -/obj/item/clothing/under/trek/medsci, -/obj/item/clothing/under/trek/medsci, -/obj/item/clothing/under/trek/command, -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fF" = ( -/turf/open/floor/holofloor{ - tag = "icon-neutral"; - icon_state = "neutral"; - dir = 2 - }, -/area/holodeck/rec_center/kobayashi) -"fG" = ( -/obj/structure/rack, -/obj/item/clothing/under/trek/engsec, -/obj/item/clothing/under/trek/engsec, -/turf/open/floor/holofloor{ - tag = "icon-neutral (NORTH)"; - icon_state = "neutral"; - dir = 1 - }, -/area/holodeck/rec_center/kobayashi) -"fH" = ( -/obj/machinery/conveyor/holodeck{ - dir = 9; - icon_state = "conveyor0"; - id = "holocoaster"; - tag = "icon-conveyor0 (NORTHWEST)"; - verted = -1 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fI" = ( -/obj/machinery/conveyor/holodeck{ - dir = 4; - id = "holocoaster" - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fJ" = ( -/obj/machinery/conveyor/holodeck{ - dir = 10; - id = "holocoaster"; - verted = -1 - }, -/turf/open/floor/holofloor/asteroid, -/area/holodeck/rec_center/rollercoaster) -"fK" = ( -/obj/item/target, -/obj/item/target/clown, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/firingrange) -"fL" = ( -/obj/item/target, -/obj/item/target/syndicate, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/firingrange) -"fM" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/laser/practice, -/obj/item/clothing/ears/earmuffs, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/firingrange) -"fN" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/closed/indestructible/riveted, -/area/space) -"fO" = ( -/turf/closed/indestructible/riveted, -/area/tdome/arena_source) -"fP" = ( -/obj/machinery/igniter, -/turf/open/floor/plasteel, -/area/tdome/arena_source) -"fQ" = ( -/turf/open/floor/plasteel, -/area/tdome/arena_source) -"fR" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/red, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/tdome/red, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/melee/energy/sword/saber/red, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"fS" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomegen"; - name = "General Supply" - }, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"fT" = ( -/obj/machinery/door/poddoor{ - id = "thunderdome"; - name = "Thunderdome Blast Door" - }, -/turf/open/floor/plasteel, -/area/tdome/arena_source) -"fU" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/tdome/arena_source) -"fV" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/tdome/arena_source) -"fW" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/green, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/tdome/green, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/melee/energy/sword/saber/green, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"fX" = ( -/turf/open/floor/bluegrid, -/area/tdome/arena_source) -"fY" = ( -/obj/machinery/flasher{ - id = "tdomeflash"; - name = "Thunderdome Flash" - }, -/turf/open/floor/bluegrid, -/area/tdome/arena_source) -"fZ" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomehea"; - name = "Heavy Supply" - }, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"ga" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/red, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/head/helmet/swat, -/obj/item/weapon/gun/energy/laser, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"gb" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/green, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/head/helmet/swat, -/obj/item/weapon/gun/energy/laser, -/turf/open/floor/plasteel/black, -/area/tdome/arena_source) -"gc" = ( -/turf/closed/indestructible/riveted, -/area/start) -"gd" = ( -/obj/effect/landmark/start, -/turf/open/floor/plating, -/area/start) -"ge" = ( -/turf/closed/indestructible/riveted, -/area/ctf) -"gf" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; - dir = 9 - }, -/area/ctf) -"gg" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; - dir = 1 - }, -/area/ctf) -"gh" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; - dir = 5 - }, -/area/ctf) -"gi" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; - dir = 9 - }, -/area/ctf) -"gj" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; - dir = 1 - }, -/area/ctf) -"gk" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHEAST)"; - dir = 5 - }, -/area/ctf) -"gl" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; - dir = 8 - }, -/area/ctf) -"gm" = ( -/turf/open/floor/plasteel/black, -/area/ctf) -"gn" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; - dir = 4 - }, -/area/ctf) -"go" = ( -/turf/open/floor/plasteel/blue, -/area/ctf) -"gp" = ( -/turf/open/floor/plasteel/darkblue, -/area/ctf) -"gq" = ( -/obj/structure/barricade/security/ctf, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"gr" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/bluespace, -/area/ctf) -"gs" = ( -/obj/structure/barricade/security/ctf, -/turf/open/floor/plasteel/bluespace, -/area/ctf) -"gt" = ( -/turf/open/floor/plasteel/bluespace, -/area/ctf) -"gu" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (WEST)"; - dir = 8 - }, -/area/ctf) -"gv" = ( -/obj/structure/barricade/security/ctf, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"gw" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; - dir = 4 - }, -/area/ctf) -"gx" = ( -/turf/open/floor/plasteel/red, -/area/ctf) -"gy" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/black, -/area/ctf) -"gz" = ( -/turf/closed/indestructible/splashscreen, -/area/start) -"gA" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHWEST)"; - dir = 10 - }, -/area/ctf) -"gB" = ( -/turf/open/floor/plasteel/darkblue/side, -/area/ctf) -"gC" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHEAST)"; - dir = 6 - }, -/area/ctf) -"gD" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHWEST)"; - dir = 10 - }, -/area/ctf) -"gE" = ( -/turf/open/floor/plasteel/darkred/side, -/area/ctf) -"gF" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHEAST)"; - dir = 6 - }, -/area/ctf) -"gG" = ( -/obj/structure/window/reinforced/fulltile{ - obj_integrity = 5000; - max_integrity = 5000; - name = "hardened window" - }, -/turf/open/floor/plating, -/area/ctf) -"gH" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/black, -/area/ctf) -"gI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/darkblue/corner, -/area/ctf) -"gJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; - dir = 8 - }, -/area/ctf) -"gK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"gL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkblue/corner, -/area/ctf) -"gM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"gN" = ( -/obj/machinery/power/emitter/energycannon, -/turf/open/floor/plating, -/area/ctf) -"gO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"gP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; - dir = 4 - }, -/area/ctf) -"gQ" = ( -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (WEST)"; - dir = 8 - }, -/area/ctf) -"gR" = ( -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; - dir = 4 - }, -/area/ctf) -"gS" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_plating = "warnplate" - }, -/area/ctf) -"gT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"gU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ctf) -"gV" = ( -/turf/open/floor/plating, -/area/ctf) -"gW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating{ - luminosity = 2 - }, -/area/ctf) -"gX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/corner, -/area/ctf) -"gY" = ( -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"gZ" = ( -/turf/open/floor/plasteel/darkblue/corner, -/area/ctf) -"ha" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ctf) -"hb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; - dir = 4 - }, -/area/ctf) -"hc" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"hd" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkblue/corner{ - tag = "icon-darkbluecorners (EAST)"; - dir = 4 - }, -/area/ctf) -"he" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"hf" = ( -/obj/machinery/power/emitter/energycannon{ - tag = "icon-emitter (NORTH)"; - icon_state = "emitter"; - dir = 1 - }, -/turf/open/floor/plating, -/area/ctf) -"hg" = ( -/obj/structure/trap/ctf/blue, -/turf/open/floor/plasteel/blue, -/area/ctf) -"hh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hk" = ( -/turf/open/floor/plasteel/darkred, -/area/ctf) -"hl" = ( -/obj/structure/trap/ctf/red, -/turf/open/floor/plasteel/darkred, -/area/ctf) -"hm" = ( -/turf/closed/indestructible/rock/snow, -/area/syndicate_mothership) -"hn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"ho" = ( -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hq" = ( -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"hr" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hs" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"ht" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/circuit, -/area/ctf) -"hu" = ( -/obj/structure/barricade/security/ctf, -/turf/open/floor/plasteel/circuit/gcircuit/off, -/area/ctf) -"hv" = ( -/obj/structure/trap/ctf/red, -/turf/open/floor/plasteel/red, -/area/ctf) -"hw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; - dir = 9 - }, -/area/ctf) -"hx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; - dir = 1 - }, -/area/ctf) -"hy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; - dir = 5 - }, -/area/ctf) -"hz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/circuit/gcircuit/off, -/area/ctf) -"hA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; - dir = 9 - }, -/area/ctf) -"hB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; - dir = 1 - }, -/area/ctf) -"hC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHEAST)"; - dir = 5 - }, -/area/ctf) -"hD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; - dir = 8 - }, -/area/ctf) -"hE" = ( -/turf/open/floor/plasteel/circuit/gcircuit/off, -/area/ctf) -"hF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; - dir = 4 - }, -/area/ctf) -"hG" = ( -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hH" = ( -/turf/open/floor/plasteel/circuit/gcircuit/animated, -/area/ctf) -"hI" = ( -/obj/machinery/capture_the_flag/blue, -/turf/open/floor/plasteel/circuit/gcircuit/animated, -/area/ctf) -"hJ" = ( -/obj/item/weapon/twohanded/ctf/blue, -/turf/open/floor/plasteel/circuit/gcircuit/animated, -/area/ctf) -"hK" = ( -/obj/item/weapon/twohanded/ctf/red, -/turf/open/floor/plasteel/circuit/gcircuit/animated, -/area/ctf) -"hL" = ( -/obj/machinery/capture_the_flag/red, -/turf/open/floor/plasteel/circuit/gcircuit/animated, -/area/ctf) -"hM" = ( -/obj/effect/landmark/shuttle_import, -/turf/open/space, -/area/space) -"hN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHWEST)"; - dir = 10 - }, -/area/ctf) -"hO" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkblue/side, -/area/ctf) -"hP" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHEAST)"; - dir = 6 - }, -/area/ctf) -"hQ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/circuit/gcircuit/off, -/area/ctf) -"hR" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHWEST)"; - dir = 10 - }, -/area/ctf) -"hS" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkred/side, -/area/ctf) -"hT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHEAST)"; - dir = 6 - }, -/area/ctf) -"hU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"hZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"ia" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"ib" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/circuit/rcircuit, -/area/ctf) -"ic" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"id" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkred/corner, -/area/ctf) -"ie" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; - dir = 8 - }, -/area/ctf) -"if" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; - dir = 8 - }, -/area/ctf) -"ig" = ( -/turf/open/floor/plasteel/darkred/corner, -/area/ctf) -"ih" = ( -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"ii" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"ij" = ( -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (EAST)"; - dir = 4 - }, -/area/ctf) -"ik" = ( -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; - dir = 8 - }, -/area/ctf) -"il" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (WEST)"; - dir = 8 - }, -/area/ctf) -"im" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/ctf) -"in" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (EAST)"; - dir = 4 - }, -/area/ctf) -"io" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"ip" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/darkred/corner{ - tag = "icon-darkredcorners (NORTH)"; - dir = 1 - }, -/area/ctf) -"iq" = ( -/turf/closed/indestructible/riveted, -/area/centcom/prison) -"ir" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"is" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"it" = ( -/turf/closed/indestructible/riveted, -/area/centcom/control) -"iu" = ( -/obj/machinery/ai_status_display, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"iv" = ( -/obj/effect/landmark{ - name = "prisonwarp" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/prison) -"iw" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 6 - }, -/area/centcom/prison) -"ix" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iy" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/centcom/control) -"iA" = ( -/obj/structure/table/reinforced, -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/radio{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/device/radio, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iB" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/lockbox/loyalty, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iC" = ( -/obj/item/weapon/storage/box/emps{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/flashbangs, -/obj/item/weapon/grenade/plastic/x4, -/obj/item/weapon/grenade/plastic/x4, -/obj/item/weapon/grenade/plastic/x4, -/obj/structure/table/reinforced, -/obj/item/clothing/ears/earmuffs, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iD" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iE" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"iF" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/prison) -"iG" = ( -/turf/closed/indestructible/fakedoor{ - name = "Centcom Cell" - }, -/area/centcom/prison) -"iH" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"iI" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iJ" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iK" = ( -/turf/closed/indestructible/riveted, -/area/centcom/supply) -"iL" = ( -/turf/closed/indestructible/fakedoor{ - name = "Centcom Warehouse" - }, -/area/centcom/supply) -"iM" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/indestructible/riveted, -/area/centcom/prison) -"iN" = ( -/obj/structure/sign/securearea, -/turf/closed/indestructible/riveted, -/area/centcom/prison) -"iO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iQ" = ( -/obj/machinery/status_display{ - density = 0; - name = "cargo display"; - pixel_x = 0; - pixel_y = 0; - supply_display = 1 - }, -/turf/closed/indestructible/riveted, -/area/centcom/supply) -"iR" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/supply) -"iS" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/centcom/supply) -"iT" = ( -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; - icon_state = "brown"; - dir = 1 - }, -/area/centcom/supply) -"iU" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; - icon_state = "brown"; - dir = 5 - }, -/area/centcom/supply) -"iV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iX" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iY" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"iZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/centcom/supply) -"ja" = ( -/turf/open/floor/plasteel/neutral, -/area/centcom/supply) -"jb" = ( -/turf/open/floor/plasteel/brown{ - dir = 4 - }, -/area/centcom/supply) -"jc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "Centcom"; - opacity = 1; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/turf/open/floor/plating, -/area/centcom/supply) -"je" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jf" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = 1; - id = "QMLoad2"; - pixel_x = 6 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/supply) -"jg" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/centcom/supply) -"jh" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"ji" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jj" = ( -/obj/machinery/vending/security, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jk" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jl" = ( -/obj/machinery/door/poddoor{ - density = 1; - icon_state = "closed"; - id = "QMLoaddoor2"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2"; - movedir = 8 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, -/area/centcom/supply) -"jm" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2"; - movedir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"jn" = ( -/obj/machinery/door/poddoor{ - density = 1; - icon_state = "closed"; - id = "QMLoaddoor2"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2"; - movedir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"jo" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad2"; - movedir = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jq" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jr" = ( -/obj/item/stack/packageWrap, -/obj/item/weapon/hand_labeler, -/obj/structure/table, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"js" = ( -/obj/machinery/door/airlock/external{ - name = "Supply Shuttle"; - req_access_txt = "106" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jt" = ( -/obj/structure/fans/tiny, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/supply) -"ju" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jw" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jy" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jz" = ( -/obj/machinery/button/door{ - id = "QMLoaddoor"; - layer = 4; - name = "Loading Doors"; - pixel_x = -27; - pixel_y = -5 - }, -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - layer = 4; - name = "Loading Doors"; - pixel_x = -27; - pixel_y = 5 - }, -/obj/machinery/computer/cargo, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jA" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jB" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/control) -"jC" = ( -/obj/structure/noticeboard{ - dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jD" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 5; - height = 7; - id = "supply_away"; - name = "Centcom"; - width = 12 - }, -/turf/open/space, -/area/space) -"jE" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 8 - }, -/area/centcom/supply) -"jF" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/centcom/supply) -"jG" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/centcom/control) -"jH" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"jI" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jJ" = ( -/obj/machinery/door/poddoor{ - density = 1; - icon_state = "closed"; - id = "QMLoaddoor"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (WEST)" - }, -/area/centcom/supply) -"jK" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"jL" = ( -/obj/machinery/door/poddoor{ - density = 1; - icon_state = "closed"; - id = "QMLoaddoor"; - name = "Supply Dock Loading Door"; - opacity = 1 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"jM" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_end (NORTH)" - }, -/area/centcom/supply) -"jN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jO" = ( -/obj/structure/closet/wardrobe/cargotech, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jP" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad"; - movedir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jQ" = ( -/obj/machinery/conveyor_switch/oneway{ - convdir = 1; - id = "QMLoad"; - pixel_x = 6 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/supply) -"jR" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"jS" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jT" = ( -/obj/machinery/computer/prisoner, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"jU" = ( -/obj/machinery/computer/security, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"jV" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/control) -"jW" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"jX" = ( -/obj/docking_port/stationary{ - area_type = /area/syndicate_mothership; - dir = 1; - dwidth = 25; - height = 50; - id = "emergency_syndicate"; - name = "Syndicate Auxillary Shuttle Dock"; - turf_type = /turf/open/floor/plating/asteroid/snow; - width = 50 - }, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"jY" = ( -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/supply) -"jZ" = ( -/obj/structure/closet/secure_closet{ - anchored = 1; - name = "Contraband Locker"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ka" = ( -/obj/structure/closet/secure_closet/courtroom, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kb" = ( -/obj/structure/closet/lawcloset, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kc" = ( -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kd" = ( -/obj/structure/bookcase/random, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ke" = ( -/obj/structure/bookcase/random, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kf" = ( -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kg" = ( -/obj/item/weapon/wrench, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kh" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ki" = ( -/obj/structure/table/wood, -/obj/item/weapon/phone{ - desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kj" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kk" = ( -/obj/item/weapon/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/secure/briefcase, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kl" = ( -/turf/closed/indestructible/riveted, -/area/syndicate_mothership) -"km" = ( -/obj/machinery/door/poddoor/shuttledock{ - checkdir = 1; - name = "syndicate blast door"; - turftype = /turf/open/floor/plating/asteroid/snow - }, -/turf/open/floor/plating, -/area/syndicate_mothership) -"kn" = ( -/turf/open/floor/plasteel/yellowsiding, -/area/centcom/supply) -"ko" = ( -/obj/structure/filingcabinet/medical, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kp" = ( -/obj/structure/filingcabinet/security, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kq" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kr" = ( -/turf/open/floor/wood, -/area/centcom/control) -"ks" = ( -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kt" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ku" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/syndicate_mothership) -"kv" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kw" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kx" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"ky" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kz" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kA" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kB" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kC" = ( -/obj/structure/chair, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kD" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kE" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 2 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kF" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/blue, -/obj/item/weapon/stamp/law, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kG" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kH" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"kI" = ( -/turf/open/floor/plating, -/area/syndicate_mothership) -"kJ" = ( -/turf/open/floor/plasteel/brown, -/area/centcom/supply) -"kK" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -26 - }, -/turf/open/floor/plasteel/brown, -/area/centcom/supply) -"kL" = ( -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; - icon_state = "brown"; - dir = 6 - }, -/area/centcom/supply) -"kM" = ( -/turf/closed/indestructible/fakedoor{ - name = "Centcom" - }, -/area/centcom/control) -"kN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kP" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/wrench, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kQ" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"kR" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kS" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/blue, -/obj/item/weapon/stamp/law, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kT" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/control) -"kU" = ( -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "leftsecure"; - name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kV" = ( -/obj/structure/table/wood, -/obj/machinery/door/window, -/obj/item/device/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kW" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/weapon/gavelblock, -/obj/item/weapon/gavelhammer, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kX" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "leftsecure"; - name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kY" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/device/megaphone, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"kZ" = ( -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "leftsecure"; - name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"la" = ( -/turf/open/space/transit, -/area/space) -"lb" = ( -/obj/machinery/door/airlock/centcom{ - name = "Shuttle Control Office"; - opacity = 1; - req_access_txt = "109" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"lc" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Supply"; - req_access_txt = "106" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"ld" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/centcom/control) -"le" = ( -/obj/machinery/door/poddoor/shutters, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"lf" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "asteroid8"; - name = "sand" - }, -/area/centcom/control) -"lg" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"lh" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/crowbar/power, -/obj/item/weapon/storage/belt/security/full, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"li" = ( -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"lj" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"lk" = ( -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"ll" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/briefcase, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"lm" = ( -/obj/structure/noticeboard{ - dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" - }, -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"ln" = ( -/obj/structure/flora/grass/both, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"lo" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/stockexchange, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"lp" = ( -/obj/machinery/computer/auxillary_base{ - pixel_y = 32 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"lq" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"lr" = ( -/obj/machinery/computer/shuttle/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"ls" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/wrench, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"lt" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"lu" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"lv" = ( -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; - icon_state = "brown"; - dir = 9 - }, -/area/centcom/supply) -"lw" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; - icon_state = "brown"; - dir = 5 - }, -/area/centcom/supply) -"lx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" - }, -/turf/open/floor/plating, -/area/centcom/control) -"ly" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"lz" = ( -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/centcom/control) -"lA" = ( -/turf/open/floor/plasteel/vault{ - dir = 9 - }, -/area/centcom/control) -"lB" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"lC" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"lD" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - desc = "Talk smack through this."; - pixel_x = -32; - syndie = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"lE" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"lF" = ( -/obj/structure/flora/grass/brown, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"lG" = ( -/obj/structure/flora/tree/pine, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"lH" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 1 - }, -/area/syndicate_mothership) -"lI" = ( -/obj/item/weapon/disk/data, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"lJ" = ( -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"lK" = ( -/obj/machinery/computer/security/telescreen/entertainment, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"lL" = ( -/obj/machinery/ai_status_display, -/turf/closed/indestructible/riveted, -/area/centcom/supply) -"lM" = ( -/obj/machinery/computer/cargo, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"lN" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHWEST)"; - icon_state = "brown"; - dir = 9 - }, -/area/centcom/supply) -"lO" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTH)"; - icon_state = "brown"; - dir = 1 - }, -/area/centcom/supply) -"lP" = ( -/obj/structure/noticeboard{ - dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; - icon_state = "brown"; - dir = 5 - }, -/area/centcom/supply) -"lQ" = ( -/obj/structure/table, -/obj/item/weapon/clipboard, -/obj/item/stack/packageWrap, -/obj/item/stack/cable_coil/white, -/obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/centcom/control) -"lR" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/centcom/control) -"lS" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1; - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/centcom/control) -"lT" = ( -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/centcom/control) -"lU" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/centcom/control) -"lV" = ( -/obj/item/weapon/storage/firstaid/regular, -/obj/structure/table, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/centcom/control) -"lW" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/centcom/control) -"lX" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/control) -"lY" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/obj/machinery/button/door{ - id = "XCCsec3"; - name = "XCC Shutter 3 Control"; - pixel_x = -24; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"lZ" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/machinery/button/door{ - id = "XCCsecdepartment"; - layer = 3; - name = "CC Security Checkpoint Control"; - pixel_x = 24; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"ma" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/centcom/control) -"mb" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mc" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"md" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"me" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder, -/obj/item/weapon/pen/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mf" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"mg" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 1 - }, -/area/syndicate_mothership) -"mh" = ( -/obj/item/toy/figure/syndie, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"mi" = ( -/obj/machinery/newscaster/security_unit, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"mj" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/centcom/ferry) -"mk" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/shower{ - pixel_y = 16 - }, -/obj/structure/curtain, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Shower" - }, -/obj/item/weapon/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel/white, -/area/centcom/ferry) -"ml" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"mm" = ( -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHWEST)"; - icon_state = "brown"; - dir = 10 - }, -/area/centcom/supply) -"mn" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel/brown, -/area/centcom/supply) -"mo" = ( -/obj/structure/plasticflaps{ - opacity = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/supply) -"mp" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"mq" = ( -/turf/open/floor/plasteel/neutral, -/area/centcom/control) -"mr" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/centcom/control) -"ms" = ( -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mt" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mu" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/centcom/control) -"mv" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mw" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"mx" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"my" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"mz" = ( -/obj/structure/flora/bush, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"mA" = ( -/turf/closed/indestructible/fakeglass, -/area/syndicate_mothership) -"mB" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"mC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/centcom/ferry) -"mD" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror/magic/badmin{ - pixel_x = 28 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/centcom/ferry) -"mE" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"mF" = ( -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/stack/cable_coil/white, -/obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"mG" = ( -/obj/machinery/newscaster/security_unit{ - pixel_y = -32 - }, -/obj/machinery/computer/cargo, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"mH" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"mI" = ( -/obj/machinery/light, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"mJ" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/closet/crate/bin, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/centcom/supply) -"mK" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -26 - }, -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (SOUTHEAST)"; - icon_state = "brown"; - dir = 6 - }, -/area/centcom/supply) -"mL" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 1 - }, -/area/centcom/control) -"mM" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/centcom/control) -"mN" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCsecdepartment"; - name = "XCC Security Checkpoint Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"mO" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel/grimy, -/area/centcom/control) -"mP" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/photo_album, -/obj/item/device/camera, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mQ" = ( -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mR" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/centcom/control) -"mS" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"mT" = ( -/obj/machinery/door/airlock/silver{ - name = "Bathroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/centcom/ferry) -"mU" = ( -/obj/machinery/ai_status_display, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"mV" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"mW" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/control) -"mX" = ( -/obj/machinery/vending/cola, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"mY" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/centcom/control) -"mZ" = ( -/obj/machinery/computer/prisoner, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"na" = ( -/obj/machinery/computer/security, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"nb" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"nc" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"nd" = ( -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "leftsecure"; - name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ne" = ( -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "leftsecure"; - name = "Centcom Stand"; - req_access_txt = "109"; - tag = "icon-leftsecure (NORTH)" - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"nf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/centcom/ferry) -"ng" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/device/flashlight/seclite, -/obj/structure/noticeboard{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"nh" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/photo_album, -/obj/item/device/camera, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"ni" = ( -/obj/machinery/ai_status_display{ - pixel_y = 32 - }, -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-15"; - pixel_x = -6; - pixel_y = 12; - tag = "icon-plant-15" - }, -/turf/open/floor/plasteel/vault{ - dir = 6 - }, -/area/centcom/ferry) -"nj" = ( -/obj/structure/fireplace, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"nk" = ( -/obj/machinery/status_display{ - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 10 - }, -/area/centcom/ferry) -"nl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"nm" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nn" = ( -/obj/machinery/computer/card/centcom, -/obj/item/weapon/card/id/centcom, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"no" = ( -/obj/machinery/computer/communications, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"np" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/obj/machinery/vending/wallmed{ - name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 32; - req_access_txt = "0"; - use_power = 0 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"nq" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/blue, -/obj/item/weapon/melee/chainofcommand, -/obj/item/weapon/stamp/captain, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"nr" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv, -/obj/item/weapon/storage/secure/safe{ - pixel_x = 32; - pixel_y = 24 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"ns" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"nt" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/red, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nu" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/weapon/hand_labeler, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nv" = ( -/obj/machinery/photocopier, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nw" = ( -/obj/machinery/computer/cargo, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nx" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/control) -"ny" = ( -/obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"nz" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1; - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/centcom/control) -"nA" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"nB" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"nC" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"nD" = ( -/obj/item/weapon/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/secure/briefcase, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"nE" = ( -/turf/open/floor/wood, -/area/centcom/ferry) -"nF" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - dir = 4; - icon_state = "comfychair" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nG" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nH" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/centcom/ferry) -"nJ" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nK" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - dir = 8; - icon_state = "comfychair" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nM" = ( -/obj/machinery/door/airlock/centcom{ - name = "Administrative Office"; - opacity = 1; - req_access_txt = "109" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"nN" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nO" = ( -/obj/machinery/modular_computer/console/preset/command, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"nP" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/stockexchange, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nQ" = ( -/turf/open/floor/plasteel/brown{ - tag = "icon-brown (NORTHEAST)"; - icon_state = "brown"; - dir = 5 - }, -/area/centcom/supply) -"nR" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"nS" = ( -/obj/machinery/vending/snack, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"nT" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"nU" = ( -/obj/structure/bookcase/random, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/ferry) -"nV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"nW" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nX" = ( -/obj/structure/table/wood, -/obj/item/weapon/phone{ - desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nY" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - dir = 8; - icon_state = "comfychair" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"nZ" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"oa" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"ob" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"oc" = ( -/obj/machinery/light_switch{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"od" = ( -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"oe" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/mirror/magic/badmin{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"of" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/stamp/qm, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"og" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/centcom/supply) -"oh" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"oi" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (EAST)"; - name = "Centcom Customs"; - icon_state = "rightsecure"; - dir = 4; - req_access_txt = "109"; - base_state = "rightsecure" - }, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen/red, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"oj" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ok" = ( -/obj/item/weapon/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/secure/briefcase, -/obj/structure/table/wood, -/obj/structure/noticeboard{ - dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ol" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 6 - }, -/area/syndicate_mothership) -"om" = ( -/obj/machinery/door/airlock/centcom{ - name = "Auxillary Dock"; - opacity = 1; - req_access_txt = "" - }, -/turf/open/floor/plating, -/area/syndicate_mothership) -"on" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - tag = "icon-manifold (WEST)"; - icon_state = "manifold"; - dir = 8 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"op" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"oq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/wood, -/area/centcom/ferry) -"or" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"os" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"ot" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/librarian/curator, -/obj/item/clothing/under/skirt/black, -/obj/item/clothing/under/shorts/black, -/obj/item/clothing/under/pants/track, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/waistcoat, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/neck/stripedredscarf, -/obj/item/clothing/neck/tie/red, -/obj/item/clothing/head/helmet/space/beret, -/obj/item/clothing/suit/curator, -/obj/item/clothing/suit/space/officer, -/obj/item/clothing/gloves/fingerless, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/eyepatch, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"ou" = ( -/obj/structure/destructible/cult/tome, -/obj/item/weapon/book/codex_gigas, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"ov" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/cartridge/quartermaster{ - pixel_x = -6 - }, -/obj/item/weapon/cartridge/quartermaster{ - pixel_x = 6 - }, -/obj/item/weapon/cartridge/quartermaster{ - pixel_y = 6 - }, -/obj/item/device/gps/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"ow" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/red, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/supply) -"ox" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oy" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oz" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oA" = ( -/obj/structure/bookcase/random, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oB" = ( -/obj/structure/bookcase/random, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oC" = ( -/obj/structure/bookcase/random, -/obj/structure/noticeboard{ - dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oD" = ( -/obj/machinery/vending/coffee, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/centcom/control) -"oE" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oF" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/centcom/control) -"oG" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"oH" = ( -/obj/item/weapon/storage/crayons, -/obj/structure/table, -/obj/item/weapon/storage/crayons, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"oI" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"oJ" = ( -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"oK" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oL" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/lighter, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oM" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"oN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"oO" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/light, -/turf/open/floor/wood, -/area/centcom/ferry) -"oP" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/toy/figure/dsquad, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"oR" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/secure/briefcase{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/storage/lockbox/medal, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oS" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"oT" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/black, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oU" = ( -/obj/structure/dresser, -/obj/structure/sign/goldenplaque{ - name = "The Most Robust Captain Award for Robustness"; - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"oV" = ( -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"oW" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"oX" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/supply) -"oY" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -26 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"oZ" = ( -/obj/machinery/button/door{ - id = "XCCsec3"; - name = "XCC Shutter 3 Control"; - pixel_x = 24; - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"pa" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/green/side{ - dir = 10 - }, -/area/centcom/control) -"pb" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/green/side, -/area/centcom/control) -"pc" = ( -/turf/open/floor/plasteel/green/side, -/area/centcom/control) -"pd" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/centcom/control) -"pe" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/centcom/control) -"pf" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - name = "plating"; - icon_state = "asteroid5" - }, -/area/centcom/control) -"pg" = ( -/turf/closed/indestructible/riveted/uranium, -/area/wizard_station) -"ph" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 8; - icon_state = "fakewindows" - }, -/area/wizard_station) -"pi" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 8; - icon_state = "fakewindows2" - }, -/area/wizard_station) -"pj" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 4; - icon_state = "fakewindows" - }, -/area/wizard_station) -"pk" = ( -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/space) -"pl" = ( -/obj/machinery/computer/shuttle/syndicate/recall, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pm" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pn" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"po" = ( -/obj/machinery/vending/cigarette{ - products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5) - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pp" = ( -/obj/structure/urinal{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"pq" = ( -/obj/item/weapon/soap/syndie, -/obj/structure/mopbucket, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"pr" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/item/weapon/mop, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"ps" = ( -/obj/machinery/door/airlock/centcom{ - name = "Administrative Office"; - opacity = 1; - req_access_txt = "109" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/ferry) -"pt" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"pu" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/supply) -"pv" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom"; - opacity = 1; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/control) -"pw" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/centcom/control) -"px" = ( -/turf/open/floor/engine/cult, -/area/wizard_station) -"py" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/engine/cult, -/area/wizard_station) -"pz" = ( -/obj/item/weapon/paper{ - info = "GET DAT FUKKEN DISK"; - name = "memo" - }, -/obj/structure/noticeboard{ - pixel_x = -32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pA" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pB" = ( -/mob/living/simple_animal/hostile/carp/cayenne, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pC" = ( -/obj/machinery/door/airlock/centcom{ - name = "Restroom"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"pD" = ( -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"pE" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"pF" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pG" = ( -/obj/machinery/computer/auxillary_base{ - pixel_y = 32 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/device/radio/headset/headset_cent, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pH" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pI" = ( -/obj/machinery/computer/shuttle/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/wrench, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pK" = ( -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pL" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pM" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/item/weapon/weldingtool/experimental, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pN" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/stack/sheet/rglass{ - amount = 50; - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/cable_coil/white, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pO" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"pP" = ( -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"pQ" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"pR" = ( -/obj/item/device/flashlight/lamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"pS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"pT" = ( -/obj/machinery/computer/card/centcom, -/obj/item/weapon/card/id/centcom, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; - name = "Research Monitor"; - network = list("RD","Sat"); - pixel_x = 0; - pixel_y = 28 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"pU" = ( -/obj/structure/sign/securearea, -/turf/closed/indestructible/riveted, -/area/centcom/ferry) -"pV" = ( -/obj/machinery/power/smes/magical, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - tag = "icon-0-4"; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pW" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Commander's Office APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/stack/sheet/rglass{ - amount = 50; - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/cable_coil/white, -/obj/item/weapon/screwdriver/power, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" - }, -/obj/structure/cable/white{ - tag = "icon-0-8"; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pX" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/deathsquad{ - pixel_y = 5 - }, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/shoes/combat/swat, -/obj/item/clothing/mask/gas/sechailer/swat, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pY" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/lockbox/loyalty, -/obj/item/weapon/gun/ballistic/automatic/ar, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"pZ" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/crowbar/power, -/obj/item/weapon/storage/belt/security/full, -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"qa" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "asteroid8"; - name = "sand" - }, -/area/centcom/supply) -"qb" = ( -/obj/structure/fans/tiny, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/supply) -"qc" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCsec3"; - name = "XCC Checkpoint 3 Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"qd" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qe" = ( -/obj/structure/filingcabinet/medical, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qf" = ( -/obj/structure/filingcabinet/security, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qg" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qh" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/wrench, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qi" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qj" = ( -/obj/item/weapon/storage/box/ids{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/silver_ids, -/obj/structure/table/reinforced, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qk" = ( -/turf/closed/indestructible/riveted, -/area/centcom/evac) -"ql" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/centcom/evac) -"qm" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/centcom/evac) -"qn" = ( -/obj/structure/table/wood, -/obj/item/device/paicard, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"qo" = ( -/obj/structure/table/wood, -/obj/item/pizzabox, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"qp" = ( -/obj/structure/chair/stool, -/obj/effect/landmark{ - name = "Syndicate-Spawn" - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"qq" = ( -/obj/machinery/computer/telecrystals/uplinker, -/turf/open/floor/plasteel/podhatch{ - dir = 9 - }, -/area/syndicate_mothership) -"qr" = ( -/obj/structure/toilet{ - icon_state = "toilet00"; - dir = 8 - }, -/obj/structure/window/reinforced/tinted{ - tag = "icon-rwindow (NORTH)"; - icon_state = "rwindow"; - dir = 1 - }, -/obj/machinery/door/window{ - tag = "icon-right (WEST)"; - name = "Tactical Toilet"; - icon_state = "right"; - dir = 8; - opacity = 1 - }, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/syndicate_mothership) -"qs" = ( -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"qt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"qu" = ( -/obj/machinery/computer/shuttle/white_ship, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"qv" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/centcom/ferry) -"qw" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/ferry) -"qx" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/ferry) -"qy" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/centcom/ferry) -"qz" = ( -/obj/structure/noticeboard{ - dir = 8; - icon_state = "nboard00"; - pixel_x = 32; - pixel_y = 0; - tag = "icon-nboard00 (WEST)" - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/centcom/ferry) -"qA" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qB" = ( -/obj/structure/chair/comfy/black, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - on = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"qC" = ( -/obj/structure/chair/comfy/black, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"qD" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - tag = "icon-2-4"; - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"qE" = ( -/obj/item/weapon/clipboard, -/obj/structure/table/reinforced, -/obj/item/device/detective_scanner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qF" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"qG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"qH" = ( -/obj/machinery/door/airlock/centcom{ - name = "Administrative Storage"; - req_access_txt = "106" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"qI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; - dir = 1 - }, -/obj/machinery/meter, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/white{ - tag = "icon-2-8"; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qJ" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; - dir = 1 - }, -/obj/structure/cable/white{ - tag = "icon-0-8"; - icon_state = "0-8" - }, -/obj/structure/cable/white{ - tag = "icon-0-4"; - icon_state = "0-4" - }, -/obj/structure/cable/white{ - d2 = 2; - icon_state = "0-2"; - tag = "icon-0-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - tag = "icon-manifold (NORTH)"; - icon_state = "manifold"; - dir = 1 - }, -/obj/machinery/meter, -/obj/structure/cable/white{ - tag = "icon-1-8"; - icon_state = "1-8" - }, -/obj/structure/cable/white{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/obj/structure/cable/white{ - tag = "icon-2-8"; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qL" = ( -/obj/machinery/door/airlock/vault{ - locked = 1; - name = "Vault Door"; - req_access_txt = "53" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"qM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"qO" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTH)"; - icon_state = "darkred"; - dir = 1 - }, -/area/centcom/control) -"qP" = ( -/obj/structure/fans/tiny, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"qQ" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qT" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qU" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qV" = ( -/obj/structure/closet/crate/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qW" = ( -/obj/structure/table, -/obj/item/toy/foamblade, -/obj/item/toy/gun, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qX" = ( -/obj/structure/table, -/obj/item/toy/katana, -/obj/item/toy/carpplushie, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qY" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"qZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"ra" = ( -/obj/machinery/door/poddoor/shuttledock, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/evac) -"rb" = ( -/obj/structure/showcase{ - desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; - icon = 'icons/obj/machines/telecomms.dmi'; - icon_state = "processor"; - name = "byond random number generator" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"rc" = ( -/obj/structure/showcase{ - desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; - icon = 'icons/mob/mob.dmi'; - icon_state = "nim"; - name = "wizard of yendor showcase" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"rd" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 9 - }, -/area/syndicate_mothership) -"re" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 8 - }, -/area/syndicate_mothership) -"rf" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 4 - }, -/area/syndicate_mothership) -"rg" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"rh" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/beer{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/item/toy/cards/deck/syndicate{ - icon_state = "deck_syndicate_full"; - pixel_x = -6; - pixel_y = 6 - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"ri" = ( -/obj/machinery/computer/telecrystals/uplinker, -/turf/open/floor/plasteel/podhatch{ - dir = 8 - }, -/area/syndicate_mothership) -"rj" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"rk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"rl" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/assault_pod) -"rm" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/assault_pod) -"rn" = ( -/obj/machinery/door/airlock/centcom{ - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) -"ro" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/assault_pod) -"rp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"rq" = ( -/obj/machinery/computer/shuttle/ferry, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rr" = ( -/turf/open/floor/plasteel/green/side{ - dir = 10 - }, -/area/centcom/ferry) -"rs" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/ferry) -"rt" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/ferry) -"ru" = ( -/turf/open/floor/plasteel/green/corner, -/area/centcom/ferry) -"rv" = ( -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/centcom/ferry) -"rw" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Supply"; - req_access_txt = "106" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rx" = ( -/turf/open/floor/plasteel/vault{ - dir = 9 - }, -/area/centcom/ferry) -"ry" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/ferry) -"rz" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/pill_bottle/dice, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"rA" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck/cas{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/toy/cards/deck/cas/black{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"rB" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/structure/cable/white{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"rC" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/red, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"rD" = ( -/obj/item/weapon/storage/fancy/donut_box, -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"rE" = ( -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"rF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/air, -/obj/structure/cable/white{ - tag = "icon-1-4"; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rG" = ( -/obj/machinery/computer/monitor, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - tag = "icon-4-8"; - icon_state = "4-8" - }, -/obj/structure/cable/white{ - tag = "icon-1-8"; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rH" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - tag = "icon-1-8"; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rI" = ( -/obj/item/weapon/storage/box/handcuffs, -/obj/item/ammo_box/a357, -/obj/item/ammo_box/a357, -/obj/item/weapon/gun/ballistic/revolver/mateba, -/obj/structure/table/reinforced, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rJ" = ( -/obj/item/weapon/gun/energy/pulse/carbine/loyalpin, -/obj/item/device/flashlight/seclite, -/obj/structure/table/reinforced, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rK" = ( -/obj/item/weapon/storage/box/emps{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/flashbangs, -/obj/item/weapon/grenade/plastic/x4, -/obj/item/weapon/grenade/plastic/x4, -/obj/item/weapon/grenade/plastic/x4, -/obj/structure/table/reinforced, -/obj/item/clothing/ears/earmuffs, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"rL" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/control) -"rM" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/control) -"rN" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"rO" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/centcom/control) -"rP" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/centcom/control) -"rQ" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/centcom/control) -"rR" = ( -/obj/structure/sign/securearea, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"rS" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/control) -"rT" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"rU" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/centcom/evac) -"rV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"rW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "Centcom"; - opacity = 1; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"rX" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 6; - icon_state = "fakewindows2" - }, -/area/wizard_station) -"rY" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Cockpit" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"rZ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "nukeop_ready"; - name = "shuttle dock" - }, -/turf/open/floor/plating, -/area/syndicate_mothership) -"sa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"sb" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"sc" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"sd" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"se" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"sf" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sg" = ( -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/machinery/button/door{ - id = "XCCFerry"; - name = "Hanger Bay Shutters"; - pixel_x = 0; - pixel_y = -38; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sh" = ( -/obj/machinery/computer/emergency_shuttle, -/obj/machinery/newscaster/security_unit{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"si" = ( -/obj/machinery/computer/communications, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"sj" = ( -/obj/machinery/light, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sk" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/closet/crate/bin, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 4 - }, -/area/centcom/ferry) -"sl" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"sm" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"sn" = ( -/obj/structure/cable/white{ - tag = "icon-1-2"; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"so" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/wood, -/area/centcom/ferry) -"sp" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 9 - }, -/area/centcom/control) -"sq" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"sr" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel/darkred/side, -/area/centcom/control) -"ss" = ( -/obj/machinery/computer/card/centcom, -/obj/machinery/button/door{ - id = "XCCcustoms1"; - layer = 3.5; - name = "CC Customs 1 Control"; - pixel_x = 8; - pixel_y = -24 - }, -/obj/machinery/button/door{ - id = "XCCcustoms2"; - layer = 3.5; - name = "CC Customs 2 Control"; - pixel_x = -8; - pixel_y = -24 - }, -/turf/open/floor/plasteel/darkred/side, -/area/centcom/control) -"st" = ( -/obj/machinery/computer/security, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"su" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"sv" = ( -/turf/open/floor/plasteel/neutral, -/area/centcom/evac) -"sw" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" - }, -/turf/open/floor/plating, -/area/centcom/evac) -"sx" = ( -/obj/machinery/computer/camera_advanced, -/turf/open/floor/wood, -/area/wizard_station) -"sy" = ( -/obj/structure/table/wood/fancy, -/obj/item/device/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, -/turf/open/floor/wood, -/area/wizard_station) -"sz" = ( -/turf/open/floor/carpet, -/area/wizard_station) -"sA" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/carpet, -/area/wizard_station) -"sB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/syndicate_mothership) -"sC" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 8 - }, -/area/syndicate_mothership) -"sD" = ( -/obj/machinery/button/door{ - id = "nukeop_ready"; - name = "mission launch control"; - pixel_x = -26; - pixel_y = 0; - req_access_txt = "151" - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"sE" = ( -/obj/machinery/computer/telecrystals/uplinker, -/turf/open/floor/plasteel/podhatch{ - dir = 10 - }, -/area/syndicate_mothership) -"sF" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"sG" = ( -/obj/machinery/door/airlock/centcom{ - name = "Shuttle Control Office"; - opacity = 1; - req_access_txt = "109" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/ferry) -"sH" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/weapon/crowbar/power, -/obj/item/weapon/wrench, -/obj/item/weapon/hand_labeler, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"sI" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"sJ" = ( -/obj/structure/bookcase/random, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sK" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sL" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/vault{ - dir = 6 - }, -/area/centcom/ferry) -"sM" = ( -/obj/structure/cable/white, -/turf/open/floor/plasteel/vault, -/area/centcom/ferry) -"sN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/vault{ - dir = 10 - }, -/area/centcom/ferry) -"sO" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sP" = ( -/obj/structure/table/wood, -/obj/item/weapon/dice/d20{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/dice/d10{ - pixel_x = -3 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"sQ" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/leafybush, -/turf/open/floor/grass, -/area/centcom/ferry) -"sR" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/centcom/ferry) -"sS" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/centcom/ferry) -"sT" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/centcom/ferry) -"sU" = ( -/obj/machinery/newscaster, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"sV" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 1; - icon_state = "rightsecure"; - name = "Centcom Customs"; - req_access_txt = "109" - }, -/obj/machinery/door/window, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"sW" = ( -/turf/open/floor/plasteel/blue/corner, -/area/centcom/evac) -"sX" = ( -/turf/open/floor/plasteel/blue/side, -/area/centcom/evac) -"sY" = ( -/turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (WEST)"; - icon_state = "bluecorner"; - dir = 8 - }, -/area/centcom/evac) -"sZ" = ( -/turf/open/floor/plasteel, -/area/centcom/evac) -"ta" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 25; - height = 50; - id = "emergency_away"; - name = "Centcom Emergency Shuttle Dock"; - width = 50 - }, -/turf/open/space, -/area/space) -"tb" = ( -/turf/open/floor/wood, -/area/wizard_station) -"tc" = ( -/obj/structure/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 1 - }, -/turf/open/floor/wood, -/area/wizard_station) -"td" = ( -/obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (EAST)"; - icon_state = "wooden_chair_wings"; - dir = 4 - }, -/turf/open/floor/carpet, -/area/wizard_station) -"te" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/figure/wizard, -/turf/open/floor/carpet, -/area/wizard_station) -"tf" = ( -/obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (WEST)"; - icon_state = "wooden_chair_wings"; - dir = 8 - }, -/turf/open/floor/carpet, -/area/wizard_station) -"tg" = ( -/obj/docking_port/stationary{ - area_type = /area/syndicate_mothership; - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_away"; - name = "syndicate recon outpost"; - turf_type = /turf/open/floor/plating/asteroid/snow; - width = 18 - }, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/space) -"th" = ( -/obj/item/weapon/storage/box/drinkingglasses, -/obj/item/weapon/reagent_containers/food/drinks/bottle/rum, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/syndicate_mothership) -"ti" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/syndicate_mothership) -"tj" = ( -/obj/structure/table/wood, -/obj/item/device/syndicatedetonator{ - desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press." - }, -/turf/open/floor/wood, -/area/syndicate_mothership) -"tk" = ( -/obj/structure/table/wood, -/obj/item/toy/nuke, -/turf/open/floor/wood, -/area/syndicate_mothership) -"tl" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) -"tm" = ( -/obj/machinery/computer/shuttle/syndicate/drop_pod, -/turf/closed/wall/shuttle{ - tag = "icon-wall3"; - icon_state = "wall3"; - dir = 2 - }, -/area/shuttle/assault_pod) -"tn" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - pixel_x = 0; - tag = "icon-doors" - }, -/turf/open/floor/plating, -/area/centcom/ferry) -"to" = ( -/obj/structure/closet/emcloset, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"tp" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"tq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"tr" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ts" = ( -/obj/machinery/door/airlock/centcom{ - name = "Administrative Office"; - opacity = 1; - req_access_txt = "109" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/ferry) -"tt" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCsec1"; - name = "XCC Checkpoint 1 Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"tu" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/control) -"tv" = ( -/obj/machinery/pdapainter, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"tw" = ( -/obj/machinery/photocopier, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "XCCFerry"; - name = "Hanger Bay Shutters"; - pixel_x = -8; - pixel_y = 24; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "XCCsec3"; - name = "CC Main Access Control"; - pixel_x = 8; - pixel_y = 24 - }, -/obj/machinery/button/door{ - id = "XCCsec1"; - name = "CC Shutter 1 Control"; - pixel_x = 8; - pixel_y = 38 - }, -/obj/machinery/button/door{ - id = "XCCsec3"; - name = "XCC Shutter 3 Control"; - pixel_x = -8; - pixel_y = 38 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"tx" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ty" = ( -/obj/item/device/flashlight/lamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"tz" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"tA" = ( -/obj/structure/filingcabinet/medical, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"tB" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/centcom/control) -"tC" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCcustoms2"; - name = "XCC Customs 2 Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"tD" = ( -/obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/centcom/control) -"tE" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/centcom/control) -"tF" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"tG" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/centcom/control) -"tH" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCcustoms1"; - name = "XCC Customs 1 Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"tI" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/centcom/evac) -"tJ" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHEAST)"; - icon_state = "blue"; - dir = 5 - }, -/area/centcom/evac) -"tK" = ( -/turf/open/floor/plasteel/blue, -/area/centcom/evac) -"tL" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (EAST)"; - icon_state = "blue"; - dir = 4 - }, -/area/centcom/evac) -"tM" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (WEST)"; - icon_state = "blue"; - dir = 8 - }, -/area/centcom/evac) -"tN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/centcom/evac) -"tO" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Observation Room" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"tP" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Game Room" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"tQ" = ( -/obj/structure/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 1 - }, -/turf/open/floor/carpet, -/area/wizard_station) -"tR" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'FOURTH WALL'."; - name = "\improper FOURTH WALL"; - pixel_x = -32 - }, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"tS" = ( -/turf/open/floor/wood, -/area/syndicate_mothership) -"tT" = ( -/obj/effect/landmark{ - name = "Syndicate-Spawn" - }, -/turf/open/floor/wood, -/area/syndicate_mothership) -"tU" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Uplink Management Control"; - req_access_txt = "151" - }, -/turf/open/floor/wood, -/area/syndicate_mothership) -"tV" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/assault_pod) -"tW" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"tX" = ( -/turf/open/floor/plasteel/neutral, -/area/centcom/ferry) -"tY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"tZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ua" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCFerry"; - name = "XCC Ferry Hangar" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/centcom/ferry) -"ub" = ( -/obj/machinery/button/door{ - id = "XCCFerry"; - name = "Hanger Bay Shutters"; - pixel_x = 0; - pixel_y = 24; - req_access_txt = "2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ud" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ue" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ug" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Customs"; - opacity = 1; - req_access_txt = "109" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"uh" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/red{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/weapon/folder/blue{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/lighter, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"ui" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 2 - }, -/turf/open/floor/plasteel/vault, -/area/centcom/control) -"uj" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/med_data/laptop, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"uk" = ( -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/centcom/control) -"ul" = ( -/turf/open/floor/plasteel/loadingarea, -/area/centcom/control) -"um" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/centcom/control) -"un" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"uo" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHEAST)"; - icon_state = "blue"; - dir = 6 - }, -/area/centcom/evac) -"up" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/centcom/evac) -"uq" = ( -/obj/structure/chair/wood/wings{ - tag = "icon-wooden_chair_wings (WEST)"; - icon_state = "wooden_chair_wings"; - dir = 8 - }, -/turf/open/floor/wood, -/area/wizard_station) -"ur" = ( -/obj/structure/table/wood/fancy, -/obj/item/device/camera/spooky, -/turf/open/floor/carpet, -/area/wizard_station) -"us" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/carpet, -/area/wizard_station) -"ut" = ( -/obj/machinery/computer/telecrystals/boss, -/turf/open/floor/plasteel/podhatch{ - dir = 5 - }, -/area/syndicate_mothership) -"uu" = ( -/obj/structure/sign/map/left{ - pixel_y = -32 - }, -/obj/structure/rack{ - icon = 'icons/obj/stationobjs.dmi'; - icon_state = "minibar_left"; - name = "skeletal minibar" - }, -/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, -/turf/open/floor/wood, -/area/syndicate_mothership) -"uv" = ( -/obj/structure/sign/map/right{ - pixel_y = -32 - }, -/obj/structure/rack{ - icon = 'icons/obj/stationobjs.dmi'; - icon_state = "minibar_right"; - name = "skeletal minibar" - }, -/obj/item/weapon/reagent_containers/food/drinks/bottle/gin, -/turf/open/floor/wood, -/area/syndicate_mothership) -"uw" = ( -/obj/machinery/door/airlock/centcom{ - name = "Equipment Room"; - opacity = 1; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/bar{ - dir = 2 - }, -/area/syndicate_mothership) -"ux" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/assault_pod) -"uy" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate/pod, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/assault_pod) -"uz" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 13; - id = "ferry_away"; - name = "Centcom Ferry Dock"; - width = 5 - }, -/turf/open/space, -/area/space) -"uA" = ( -/obj/machinery/door/airlock/external{ - name = "Ferry Airlock"; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uB" = ( -/obj/structure/fans/tiny, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uD" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uE" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_x = 0; - pixel_y = 0; - tag = "icon-doors" - }, -/turf/open/floor/plating, -/area/centcom/ferry) -"uG" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"uH" = ( -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/centcom/ferry) -"uI" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/centcom/ferry) -"uJ" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/centcom/control) -"uK" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"uL" = ( -/obj/machinery/computer/card/centcom, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"uM" = ( -/turf/open/floor/plasteel/green/corner, -/area/centcom/control) -"uN" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/centcom/control) -"uO" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/centcom/control) -"uP" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"uQ" = ( -/turf/open/floor/plasteel/neutral/side{ - tag = "icon-neutral (NORTHEAST)"; - icon_state = "neutral"; - dir = 5 - }, -/area/centcom/evac) -"uR" = ( -/obj/item/weapon/statuebust{ - pixel_y = 12 - }, -/obj/structure/table/wood/fancy, -/turf/open/floor/wood, -/area/wizard_station) -"uS" = ( -/obj/machinery/vending/magivend, -/turf/open/floor/engine/cult, -/area/wizard_station) -"uT" = ( -/obj/machinery/vending/snack, -/turf/open/floor/engine/cult, -/area/wizard_station) -"uU" = ( -/obj/structure/table/wood/fancy, -/obj/item/weapon/storage/pill_bottle/dice{ - icon_state = "magicdicebag" - }, -/turf/open/floor/carpet, -/area/wizard_station) -"uV" = ( -/obj/structure/table/wood/fancy, -/obj/item/weapon/storage/photo_album, -/turf/open/floor/carpet, -/area/wizard_station) -"uW" = ( -/turf/open/floor/plasteel/black, -/area/syndicate_mothership) -"uX" = ( -/obj/machinery/mech_bay_recharge_port, -/turf/open/floor/plating, -/area/syndicate_mothership) -"uY" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/syndicate_mothership) -"uZ" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plating, -/area/syndicate_mothership) -"va" = ( -/obj/machinery/vending/tool, -/turf/open/floor/plasteel/black, -/area/syndicate_mothership) -"vb" = ( -/obj/structure/closet/cardboard/metal, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"vc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"vd" = ( -/obj/machinery/door/airlock/centcom{ - aiControlDisabled = 1; - name = "Assault Pod"; - opacity = 1; - req_access_txt = "150" - }, -/obj/docking_port/mobile/assault_pod{ - dwidth = 3; - name = "steel rain"; - port_angle = 90; - preferred_direction = 4 - }, -/turf/open/floor/plating, -/area/shuttle/assault_pod) -"ve" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"vf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vg" = ( -/obj/machinery/button/door{ - id = "XCCsec1"; - name = "CC Shutter 1 Control"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vh" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/control) -"vi" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vj" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/wood, -/area/centcom/control) -"vk" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/wood, -/area/centcom/control) -"vl" = ( -/obj/machinery/computer/communications, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vm" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; - icon_state = "blue"; - dir = 9 - }, -/area/centcom/evac) -"vn" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (SOUTHWEST)"; - icon_state = "blue"; - dir = 10 - }, -/area/centcom/evac) -"vo" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Study" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vp" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Break Room" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/syndicate_mothership) -"vr" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/vacuum, -/turf/open/floor/plating, -/area/centcom/ferry) -"vs" = ( -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vt" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vu" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -28 - }, -/obj/structure/sign/securearea{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vv" = ( -/obj/machinery/door/airlock/centcom{ - name = "Briefing Room"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/ferry) -"vw" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/control) -"vx" = ( -/obj/item/weapon/storage/box/ids{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/silver_ids, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vy" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen/blue, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vz" = ( -/obj/machinery/computer/prisoner, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vA" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vB" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"vC" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/green/corner, -/area/centcom/control) -"vD" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/side, -/area/centcom/control) -"vE" = ( -/obj/item/weapon/storage/firstaid/regular, -/obj/structure/table, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/centcom/control) -"vF" = ( -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/centcom/evac) -"vG" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vH" = ( -/obj/structure/table/wood, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vI" = ( -/obj/structure/table/wood, -/obj/item/weapon/retractor, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vJ" = ( -/obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusblue, -/obj/item/clothing/head/wizard/magus, -/obj/item/weapon/staff, -/obj/structure/mirror/magic{ - pixel_y = 28 - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vK" = ( -/obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusred, -/obj/item/clothing/head/wizard/magus, -/obj/item/weapon/staff, -/turf/open/floor/engine/cult, -/area/wizard_station) -"vL" = ( -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, -/turf/open/floor/grass, -/area/wizard_station) -"vM" = ( -/obj/effect/decal/cleanable/blood/splatter, -/obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/grass, -/area/wizard_station) -"vN" = ( -/obj/effect/decal/remains/xeno/larva, -/turf/open/floor/grass, -/area/wizard_station) -"vO" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/grass, -/area/wizard_station) -"vP" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/black, -/area/syndicate_mothership) -"vQ" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vR" = ( -/obj/structure/table/wood, -/obj/item/weapon/phone{ - desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vS" = ( -/obj/structure/bookcase/random, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vT" = ( -/obj/structure/table/wood, -/obj/machinery/computer/med_data/laptop, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vU" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vV" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"vW" = ( -/obj/structure/closet/secure_closet/ertEngi, -/obj/structure/sign/directions/engineering{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vX" = ( -/obj/structure/closet/secure_closet/ertEngi, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vY" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/device/flashlight/seclite, -/obj/structure/noticeboard{ - pixel_y = 28 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"vZ" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/c4{ - pixel_x = 6 - }, -/obj/item/weapon/c4{ - pixel_x = -4 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wa" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/gun/energy/e_gun, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wb" = ( -/obj/structure/closet/secure_closet/ertCom, -/obj/structure/sign/directions/engineering{ - desc = "A direction sign, pointing out which way the Command department is."; - dir = 2; - icon_state = "direction_bridge"; - name = "command department"; - pixel_y = 24; - tag = "icon-direction_bridge" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wc" = ( -/obj/machinery/door/airlock/glass_medical{ - name = "Infirmary" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/control) -"wd" = ( -/turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (NORTH)"; - icon_state = "bluecorner"; - dir = 1 - }, -/area/centcom/evac) -"we" = ( -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTH)"; - icon_state = "blue"; - dir = 1 - }, -/area/centcom/evac) -"wf" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 1; - icon_state = "fakewindows" - }, -/area/wizard_station) -"wg" = ( -/obj/structure/destructible/cult/tome, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wh" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/item/clothing/suit/wizrobe/red, -/obj/item/clothing/head/wizard/red, -/obj/item/weapon/staff, -/obj/item/clothing/shoes/sandal/magic, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wi" = ( -/turf/open/floor/grass, -/area/wizard_station) -"wj" = ( -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, -/turf/open/floor/grass, -/area/wizard_station) -"wk" = ( -/obj/structure/closet/syndicate/personal, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/syndicate_mothership) -"wl" = ( -/obj/structure/table, -/obj/item/weapon/gun/energy/ionrifle{ - pin = /obj/item/device/firing_pin - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/syndicate_mothership) -"wm" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/drinkingglasses, -/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wn" = ( -/turf/open/floor/plasteel/black, -/area/centcom/ferry) -"wo" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/black, -/area/centcom/ferry) -"wp" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/ferry) -"wq" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wr" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"ws" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/centcom/control) -"wt" = ( -/turf/open/floor/plasteel/blue/corner, -/area/centcom/control) -"wu" = ( -/obj/item/weapon/scalpel{ - pixel_y = 12 - }, -/obj/item/weapon/circular_saw, -/obj/item/weapon/retractor{ - pixel_x = 4 - }, -/obj/item/weapon/hemostat{ - pixel_x = -4 - }, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"wv" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"ww" = ( -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"wx" = ( -/obj/machinery/computer/med_data, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"wy" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000"; - dir = 1; - icon_state = "fakewindows2" - }, -/area/wizard_station) -"wz" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wA" = ( -/obj/structure/destructible/cult/talisman{ - desc = "A altar dedicated to the Wizard's Federation" - }, -/obj/item/weapon/kitchen/knife/ritual, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wB" = ( -/obj/item/clothing/shoes/sandal/marisa, -/obj/item/clothing/suit/wizrobe/marisa, -/obj/item/clothing/head/wizard/marisa, -/obj/item/weapon/staff/broom, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wC" = ( -/obj/effect/decal/cleanable/blood/splatter, -/mob/living/simple_animal/hostile/creature{ - name = "Experiment 35b" - }, -/turf/open/floor/grass, -/area/wizard_station) -"wD" = ( -/obj/machinery/photocopier, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"wE" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/folder/red{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/weapon/folder/blue{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/weapon/lighter, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"wF" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/secure/briefcase, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wG" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wH" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen/blue, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wI" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wJ" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/black, -/area/centcom/ferry) -"wK" = ( -/obj/machinery/door/poddoor/ert, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wL" = ( -/turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; - dir = 5 - }, -/area/centcom/ferry) -"wM" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/radio, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wN" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/firstaid/regular, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"wO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"wP" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/centcom/control) -"wQ" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/control) -"wR" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/green/corner, -/area/centcom/control) -"wS" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/blue/corner, -/area/centcom/control) -"wT" = ( -/obj/structure/table/optable, -/obj/item/weapon/surgical_drapes, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"wU" = ( -/turf/open/floor/plasteel/blue, -/area/centcom/control) -"wV" = ( -/obj/machinery/computer/communications, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"wW" = ( -/turf/open/floor/plasteel/yellowsiding, -/area/centcom/evac) -"wX" = ( -/turf/closed/indestructible/fakeglass{ - color = "#008000" - }, -/area/wizard_station) -"wY" = ( -/obj/effect/landmark/start{ - name = "wizard" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"wZ" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/grass, -/area/wizard_station) -"xa" = ( -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime, -/turf/open/floor/grass, -/area/wizard_station) -"xb" = ( -/obj/effect/decal/remains/xeno, -/turf/open/floor/grass, -/area/wizard_station) -"xc" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"xd" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"xe" = ( -/obj/structure/table/reinforced, -/obj/item/device/flashlight/seclite, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xf" = ( -/obj/machinery/shuttle_manipulator, -/turf/open/floor/plasteel/circuit/gcircuit, -/area/centcom/ferry) -"xg" = ( -/turf/open/floor/plasteel/circuit/gcircuit, -/area/centcom/ferry) -"xh" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xi" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/ferry) -"xj" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/yellow, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"xk" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/zipties, -/obj/item/weapon/crowbar/red, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"xl" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Briefing Area APC"; - pixel_x = 26; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xm" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/indestructible/riveted, -/area/centcom/control) -"xn" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"xo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xq" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xr" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xs" = ( -/obj/structure/table, -/obj/item/toy/sword, -/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xt" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xu" = ( -/obj/structure/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 1 - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"xv" = ( -/mob/living/simple_animal/bot/medbot/mysterious{ - desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; - faction = list("neutral","silicon","creature"); - name = "Nobody's Perfect" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"xw" = ( -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, -/turf/open/floor/grass, -/area/wizard_station) -"xx" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xy" = ( -/obj/machinery/computer/card/centcom, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"xz" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/grimy, -/area/centcom/ferry) -"xA" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xB" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/crowbar/red, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xC" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/yellow, -/obj/item/weapon/pen/blue, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xD" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xE" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/lockbox/loyalty, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"xF" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/item/weapon/tank/internals/emergency_oxygen/engi, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"xG" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xH" = ( -/obj/machinery/door/poddoor/shutters{ - id = "XCCsec3"; - name = "CC Main Access Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/control) -"xI" = ( -/obj/item/weapon/defibrillator/loaded, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"xJ" = ( -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ - pixel_x = -3 - }, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/syringe/epinephrine{ - pixel_x = 2; - pixel_y = 8 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"xK" = ( -/obj/machinery/sleeper{ - tag = "icon-sleeper-open (EAST)"; - icon_state = "sleeper-open"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"xL" = ( -/obj/machinery/light, -/obj/structure/noticeboard{ - dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"xM" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"xN" = ( -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"xO" = ( -/obj/item/weapon/storage/firstaid/toxin, -/obj/item/weapon/storage/firstaid/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/structure/table/reinforced, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cmo, -/area/centcom/control) -"xP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/storage/fancy/donut_box, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 1; - icon_state = "rightsecure"; - name = "Centcom Customs"; - req_access_txt = "109" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xR" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 1; - icon_state = "rightsecure"; - name = "Centcom Customs"; - req_access_txt = "109" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/evac) -"xS" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Observation Deck" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"xT" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/device/radio/headset/headset_cent, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"xU" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/black, -/area/centcom/ferry) -"xV" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark{ - name = "Emergencyresponseteam" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/ferry) -"xW" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/centcom/evac) -"xX" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/centcom/evac) -"xY" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/restraints/handcuffs/cable/zipties, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"xZ" = ( -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/centcom/evac) -"ya" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/button/door{ - id = "XCCcustoms1"; - layer = 3; - name = "CC Emergency Docks Control"; - pixel_x = 24; - pixel_y = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yb" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "asteroid8"; - name = "sand" - }, -/area/centcom/evac) -"yc" = ( -/obj/structure/statue/uranium/nuke, -/turf/open/floor/plating/asteroid/snow/atmosphere, -/area/syndicate_mothership) -"yd" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"ye" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/lighter, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yf" = ( -/obj/structure/bookcase/random, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yg" = ( -/obj/structure/filingcabinet/medical, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yh" = ( -/obj/structure/filingcabinet/security, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yi" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yj" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Briefing Room APC"; - pixel_y = -26 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yk" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yl" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/machinery/light, -/obj/structure/noticeboard{ - dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"ym" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yn" = ( -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/radio{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/device/radio, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/ferry) -"yo" = ( -/obj/structure/closet/secure_closet/ertMed, -/obj/structure/sign/directions/medical{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"yp" = ( -/obj/structure/closet/secure_closet/ertMed, -/obj/machinery/vending/wallmed{ - name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = -32; - req_access_txt = "0"; - use_power = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"yq" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/emps, -/obj/item/weapon/gun/energy/ionrifle, -/obj/structure/sign/bluecross_2{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"yr" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/syringes, -/obj/item/weapon/gun/syringe/rapidsyringe, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"ys" = ( -/obj/structure/closet/secure_closet/ertSec, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn (NORTHWEST)" - }, -/area/centcom/ferry) -"yt" = ( -/obj/structure/closet/secure_closet/ertSec, -/obj/structure/sign/directions/security{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"yu" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yv" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/centcom/control) -"yw" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/centcom/control) -"yx" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/centcom/control) -"yy" = ( -/obj/structure/table, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/centcom/control) -"yz" = ( -/obj/structure/filingcabinet/medical, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yA" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yB" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yC" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/centcom/evac) -"yD" = ( -/obj/machinery/computer/security, -/obj/machinery/newscaster{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yE" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yF" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/centcom/control) -"yG" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/centcom/control) -"yH" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6 - }, -/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -4 - }, -/obj/item/weapon/reagent_containers/hypospray/medipen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yI" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"yJ" = ( -/obj/structure/closet/secure_closet/security, -/obj/item/weapon/storage/belt/security/full, -/obj/item/weapon/gun/ballistic/automatic/wt550, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yK" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/crowbar/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yL" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yM" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yN" = ( -/obj/machinery/door/airlock/external, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/control) -"yO" = ( -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; - dir = 4 - }, -/area/centcom/control) -"yP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/storage/fancy/donut_box, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"yQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/reagent_containers/food/drinks/britcup, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"yR" = ( -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; - dir = 8 - }, -/area/centcom/control) -"yS" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yT" = ( -/turf/open/floor/plasteel/vault{ - dir = 9 - }, -/area/centcom/evac) -"yU" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yV" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yW" = ( -/obj/item/weapon/storage/box/ids{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/silver_ids, -/obj/structure/table/reinforced, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/evac) -"yX" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Storage" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"yY" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Personal Quarters" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"yZ" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Bathroom" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"za" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/red, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zb" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (EAST)"; - dir = 4 - }, -/area/centcom/control) -"zc" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/folder/red, -/obj/item/weapon/pen/red, -/obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (EAST)"; - name = "Centcom Customs"; - icon_state = "rightsecure"; - dir = 4; - req_access_txt = "109"; - base_state = "rightsecure" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"zd" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen/blue, -/obj/machinery/door/window/brigdoor{ - tag = "icon-rightsecure (WEST)"; - name = "Centcom Customs"; - icon_state = "rightsecure"; - dir = 8; - req_access_txt = "109"; - base_state = "rightsecure" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/centcom/control) -"ze" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; - dir = 8 - }, -/area/centcom/control) -"zf" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zg" = ( -/obj/item/clothing/suit/wizrobe/black, -/obj/item/clothing/head/wizard/black, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/wizard_station) -"zh" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/wizard_station) -"zi" = ( -/obj/item/cardboard_cutout, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/wizard_station) -"zj" = ( -/obj/structure/table/wood, -/obj/effect/landmark{ - name = "Teleport-Scroll" - }, -/obj/item/weapon/dice/d20, -/obj/item/weapon/dice, -/turf/open/floor/carpet, -/area/wizard_station) -"zk" = ( -/obj/structure/punching_bag, -/turf/open/floor/carpet, -/area/wizard_station) -"zl" = ( -/obj/structure/urinal{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zm" = ( -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zn" = ( -/obj/structure/mirror/magic{ - pixel_y = 28 - }, -/obj/structure/sink{ - pixel_y = 20 - }, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zo" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "XCCsec3"; - name = "CC Main Access Control" - }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zp" = ( -/obj/machinery/computer/security, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zq" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/centcom/control) -"zr" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/green/corner, -/area/centcom/control) -"zs" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zt" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen/blue, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"zu" = ( -/obj/item/weapon/cautery/alien, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/wizard_station) -"zv" = ( -/obj/item/weapon/coin/antagtoken, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/wizard_station) -"zw" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/wiz, -/turf/open/floor/carpet, -/area/wizard_station) -"zx" = ( -/obj/item/weapon/soap/homemade, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zy" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Booth"; - opacity = 1; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/centcom/control) -"zz" = ( -/obj/structure/closet/cardboard, -/obj/item/weapon/banhammer, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/wizard_station) -"zA" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/wizard_station) -"zB" = ( -/obj/vehicle/scooter/skateboard{ - tag = "icon-skateboard (EAST)"; - icon_state = "skateboard"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/wizard_station) -"zC" = ( -/obj/structure/dresser, -/obj/item/weapon/storage/backpack/satchel, -/turf/open/floor/carpet, -/area/wizard_station) -"zD" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/bag/tray, -/obj/item/weapon/reagent_containers/food/snacks/burger/spell, -/turf/open/floor/carpet, -/area/wizard_station) -"zE" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zF" = ( -/obj/structure/toilet{ - tag = "icon-toilet00 (NORTH)"; - icon_state = "toilet00"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zG" = ( -/obj/structure/table/wood/fancy, -/obj/item/weapon/skub{ - pixel_y = 16 - }, -/turf/open/floor/plasteel/white, -/area/wizard_station) -"zH" = ( -/turf/closed/indestructible/riveted, -/area/tdome/tdomeobserve) -"zI" = ( -/obj/machinery/door/airlock/external, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeobserve) -"zJ" = ( -/obj/machinery/vending/cola, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"zK" = ( -/obj/machinery/vending/snack, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"zL" = ( -/obj/item/weapon/clipboard, -/obj/item/weapon/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"zM" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/red, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"zN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/tdome/tdomeobserve) -"zO" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen, -/turf/open/floor/plasteel/green/side{ - dir = 9 - }, -/area/tdome/tdomeobserve) -"zP" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"zQ" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"zR" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"zS" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/tdome/tdomeobserve) -"zT" = ( -/obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeobserve) -"zU" = ( -/obj/machinery/door/airlock{ - icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; - name = "Engine Room" - }, -/obj/structure/barricade/wooden, -/turf/open/floor/engine/cult, -/area/wizard_station) -"zV" = ( -/turf/closed/indestructible/riveted, -/area/centcom/holding) -"zW" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"zX" = ( -/obj/structure/fans/tiny, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"zY" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - name = "plating"; - icon_state = "asteroid5" - }, -/area/tdome/tdomeobserve) -"zZ" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "asteroid8"; - name = "sand" - }, -/area/tdome/tdomeobserve) -"Aa" = ( -/turf/open/floor/plasteel/red/corner, -/area/tdome/tdomeobserve) -"Ab" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/tdome/tdomeobserve) -"Ac" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/tdome/tdomeobserve) -"Ad" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Ae" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/tdomeobserve) -"Af" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/paper/pamphlet/ccaInfo, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"Ag" = ( -/turf/open/floor/plasteel/neutral, -/area/tdome/tdomeobserve) -"Ah" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/tdomeobserve) -"Ai" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Aj" = ( -/turf/open/floor/plasteel/neutral/corner, -/area/tdome/tdomeobserve) -"Ak" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Al" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/tdome/tdomeobserve) -"Am" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/tdome/tdomeobserve) -"An" = ( -/obj/structure/table/wood, -/turf/open/floor/engine/cult, -/area/wizard_station) -"Ao" = ( -/obj/structure/table/wood, -/obj/item/weapon/gun/magic/wand{ - desc = "Used in emergencies to reignite magma engines."; - max_charges = 0; - name = "wand of emergency engine ignition" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"Ap" = ( -/obj/structure/table/wood, -/obj/item/weapon/bikehorn/golden{ - pixel_x = -8; - pixel_y = 8 - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"Aq" = ( -/obj/structure/table, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Ar" = ( -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"As" = ( -/obj/structure/closet/secure_closet/bar{ - req_access_txt = "25" - }, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"At" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Au" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Av" = ( -/obj/structure/rack, -/obj/item/device/camera, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Aw" = ( -/obj/structure/rack, -/obj/item/toy/sword, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Ax" = ( -/obj/structure/rack, -/obj/item/toy/gun, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Ay" = ( -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Az" = ( -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"AA" = ( -/obj/effect/overlay/palmtree_r, -/obj/effect/overlay/coconut, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"AB" = ( -/obj/effect/overlay/palmtree_l, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"AC" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 9 - }, -/area/tdome/tdomeobserve) -"AD" = ( -/turf/open/floor/plasteel/whitered/side{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"AE" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 5 - }, -/area/tdome/tdomeobserve) -"AF" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"AG" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"AH" = ( -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 2; - icon_state = "rightsecure"; - name = "Thunderdoom Booth"; - req_access_txt = "109" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"AI" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"AJ" = ( -/turf/open/floor/plasteel/goonplaque{ - desc = "This is a plaque commemorating the thunderdome and all those who have died at its pearly blast doors." - }, -/area/tdome/tdomeobserve) -"AK" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/corner, -/area/tdome/tdomeobserve) -"AL" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"AM" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"AN" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHWEST)"; - icon_state = "whitegreen"; - dir = 9 - }, -/area/tdome/tdomeobserve) -"AO" = ( -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"AP" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (NORTHEAST)"; - icon_state = "whitegreen"; - dir = 5 - }, -/area/tdome/tdomeobserve) -"AQ" = ( -/obj/structure/table, -/obj/item/clothing/head/that, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"AR" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"AS" = ( -/obj/item/device/camera, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"AT" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (NORTH)"; - icon_state = "whiteredcorner"; - dir = 1 - }, -/area/tdome/tdomeobserve) -"AU" = ( -/obj/item/weapon/soap/nanotrasen, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"AV" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (EAST)"; - icon_state = "whiteredcorner"; - dir = 4 - }, -/area/tdome/tdomeobserve) -"AW" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/red/corner, -/area/tdome/tdomeobserve) -"AX" = ( -/turf/open/floor/plasteel/neutral/side, -/area/tdome/tdomeobserve) -"AY" = ( -/turf/open/floor/plasteel/red/side, -/area/tdome/tdomeobserve) -"AZ" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/tdome/tdomeobserve) -"Ba" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Backstage"; - opacity = 1; - req_access_txt = "0" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"Bb" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/tdome/tdomeobserve) -"Bc" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"Bd" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Be" = ( -/turf/open/floor/plasteel/green/side{ - dir = 10 - }, -/area/tdome/tdomeobserve) -"Bf" = ( -/turf/open/floor/plasteel/green/side, -/area/tdome/tdomeobserve) -"Bg" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Bh" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"Bi" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Bj" = ( -/obj/structure/destructible/cult/forge{ - desc = "A engine used in powering the wizards ship"; - name = "magma engine" - }, -/turf/open/floor/engine/cult, -/area/wizard_station) -"Bk" = ( -/obj/structure/table, -/obj/item/ammo_box/foambox, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Bl" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/shaker, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Bm" = ( -/obj/structure/table, -/obj/item/weapon/lighter, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Bn" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Bo" = ( -/obj/structure/table, -/obj/item/weapon/dice/d20, -/turf/open/floor/plasteel/freezer{ - dir = 2 - }, -/area/centcom/holding) -"Bp" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/item/clothing/head/bandana{ - pixel_y = -10 - }, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"Bq" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"Br" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"Bs" = ( -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"Bt" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"Bu" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"Bv" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/tdome/tdomeobserve) -"Bw" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"Bx" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/tdome/tdomeobserve) -"By" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/red/side, -/area/tdome/tdomeobserve) -"Bz" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/redyellow/side, -/area/tdome/tdomeobserve) -"BA" = ( -/turf/open/floor/plasteel/redyellow/side, -/area/tdome/tdomeobserve) -"BB" = ( -/turf/open/floor/plasteel/loadingarea, -/area/tdome/tdomeobserve) -"BC" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/green/side, -/area/tdome/tdomeobserve) -"BD" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/side{ - dir = 6 - }, -/area/tdome/tdomeobserve) -"BE" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"BF" = ( -/turf/open/floor/plasteel/green/side{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"BG" = ( -/obj/structure/window/reinforced{ - resistance_flags = 3; - color = "#008000"; - dir = 1 - }, -/turf/open/floor/plating/lava, -/area/wizard_station) -"BH" = ( -/obj/structure/rack, -/obj/item/clothing/head/that, -/obj/item/clothing/under/suit_jacket, -/obj/item/clothing/tie/waistcoat, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"BI" = ( -/obj/item/toy/beach_ball, -/turf/open/floor/plating/beach/sand, -/area/centcom/holding) -"BJ" = ( -/obj/machinery/door/airlock/silver{ - name = "Shower" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"BK" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeobserve) -"BL" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/indestructible/riveted, -/area/tdome/tdomeobserve) -"BM" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeobserve) -"BN" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/indestructible/riveted, -/area/tdome/tdomeobserve) -"BO" = ( -/obj/structure/shuttle/engine/heater{ - resistance_flags = 3 - }, -/obj/structure/window/reinforced{ - resistance_flags = 3; - color = "#008000"; - dir = 1 - }, -/turf/open/floor/plating/lava/airless, -/area/wizard_station) -"BP" = ( -/obj/structure/rack, -/obj/item/weapon/storage/crayons, -/obj/item/weapon/gun/ballistic/automatic/toy/pistol, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"BQ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"BR" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/whitered/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BS" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BT" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BU" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard, -/obj/item/weapon/reagent_containers/food/snacks/sausage, -/obj/item/weapon/reagent_containers/food/snacks/sausage, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/obj/item/weapon/reagent_containers/food/snacks/carpmeat, -/obj/item/weapon/reagent_containers/food/snacks/carpmeat, -/obj/item/weapon/reagent_containers/food/snacks/carpmeat, -/obj/item/weapon/reagent_containers/food/snacks/carpmeat, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BV" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/reagent_containers/food/snacks/grown/potato, -/obj/item/weapon/reagent_containers/food/snacks/grown/potato, -/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet, -/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet, -/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, -/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, -/obj/item/weapon/reagent_containers/food/snacks/grown/rice, -/obj/item/weapon/reagent_containers/food/snacks/grown/rice, -/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper, -/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper, -/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon, -/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime, -/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, -/obj/item/weapon/reagent_containers/food/snacks/grown/cherries, -/obj/item/weapon/reagent_containers/food/snacks/grown/apple, -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BW" = ( -/obj/machinery/processor, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"BX" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/weapon/reagent_containers/food/snacks/grown/banana, -/obj/item/weapon/reagent_containers/food/snacks/grown/banana, -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, -/obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod, -/obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod, -/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane, -/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane, -/obj/item/weapon/reagent_containers/food/snacks/grown/oat, -/obj/item/weapon/reagent_containers/food/snacks/grown/oat, -/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, -/obj/item/weapon/reagent_containers/food/snacks/grown/grapes, -/obj/item/weapon/reagent_containers/food/snacks/grown/corn, -/obj/item/weapon/reagent_containers/food/snacks/grown/corn, -/obj/item/weapon/reagent_containers/food/snacks/grown/chili, -/obj/item/weapon/reagent_containers/food/snacks/grown/chili, -/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, -/obj/item/weapon/reagent_containers/food/snacks/grown/apple, -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BY" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, -/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, -/obj/item/weapon/reagent_containers/food/snacks/spaghetti, -/obj/item/weapon/reagent_containers/food/snacks/spaghetti, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"BZ" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/tdome/tdomeobserve) -"Ca" = ( -/obj/structure/table/wood, -/obj/structure/sign/goldenplaque{ - pixel_y = 32 - }, -/obj/item/clothing/tie/lawyers_badge{ - desc = "A badge of upmost glory."; - name = "thunderdome badge" - }, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeobserve) -"Cb" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Cc" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tdome/tdomeobserve) -"Cd" = ( -/obj/structure/table/wood, -/obj/structure/sign/goldenplaque{ - pixel_y = 32 - }, -/obj/item/clothing/tie/medal/silver{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeobserve) -"Ce" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/tdome/tdomeobserve) -"Cf" = ( -/obj/structure/table/wood, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Cg" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/beanbag, -/obj/item/weapon/gun/ballistic/revolver/doublebarrel, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Ch" = ( -/obj/structure/table/wood, -/obj/structure/reagent_dispensers/beerkeg, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Ci" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Cj" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/drinkingglasses, -/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Ck" = ( -/turf/open/floor/plasteel/green/corner, -/area/tdome/tdomeobserve) -"Cl" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; - icon_state = "whitegreen"; - dir = 4 - }, -/area/tdome/tdomeobserve) -"Cm" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/wizard_station) -"Cn" = ( -/obj/structure/rack, -/obj/item/weapon/storage/crayons, -/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Co" = ( -/turf/open/floor/plating/beach/coastline_b, -/area/centcom/holding) -"Cp" = ( -/obj/item/clothing/head/collectable/paper, -/turf/open/floor/plating/beach/coastline_b, -/area/centcom/holding) -"Cq" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (NORTH)"; - icon_state = "whiteredcorner"; - dir = 1 - }, -/area/tdome/tdomeobserve) -"Cr" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Cs" = ( -/turf/open/floor/plasteel/red, -/area/tdome/tdomeobserve) -"Ct" = ( -/obj/structure/table/wood, -/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeobserve) -"Cu" = ( -/turf/open/floor/plasteel/bar, -/area/tdome/tdomeobserve) -"Cv" = ( -/turf/open/floor/plasteel/green/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Cw" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Cx" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/suit_jacket/female{ - desc = "A black trouser suit for women. Very formal."; - name = "black suit"; - pixel_x = 3; - pixel_y = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Cy" = ( -/obj/structure/table, -/obj/item/weapon/gun/ballistic/automatic/toy/pistol, -/turf/open/floor/plasteel/cafeteria, -/area/centcom/holding) -"Cz" = ( -/turf/open/floor/plating/beach/water, -/area/centcom/holding) -"CA" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"CB" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = -8 - }, -/obj/item/weapon/kitchen/knife, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CC" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/red, -/area/tdome/tdomeobserve) -"CD" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"CE" = ( -/obj/structure/table/wood, -/obj/structure/sign/atmosplaque{ - desc = "This plaque commemorates those who have fallen in glorious combat. For all the charred, dizzy, and beaten men who have died in its hands."; - name = "Thunderdome Plaque"; - pixel_y = -32 - }, -/obj/item/clothing/tie/medal/gold{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/item/clothing/tie/medal/gold, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeobserve) -"CF" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CG" = ( -/obj/structure/table/wood, -/obj/structure/sign/atmosplaque{ - desc = "This plaque commemorates those who have fallen in glorious combat. For all the charred, dizzy, and beaten men who have died in its hands."; - name = "Thunderdome Plaque"; - pixel_y = -32 - }, -/obj/item/clothing/tie/medal{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeobserve) -"CH" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/bar, -/area/tdome/tdomeobserve) -"CI" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/bar, -/area/tdome/tdomeobserve) -"CJ" = ( -/obj/machinery/chem_master/condimaster{ - name = "HoochMaster 2000" - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CK" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/white, -/area/tdome/tdomeobserve) -"CL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/centcom/holding) -"CM" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/holding) -"CN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/centcom/holding) -"CO" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/whitered/corner{ - tag = "icon-whiteredcorner (WEST)"; - icon_state = "whiteredcorner"; - dir = 8 - }, -/area/tdome/tdomeobserve) -"CP" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/food/snacks/mint, -/obj/item/weapon/reagent_containers/food/condiment/enzyme{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CQ" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/red, -/area/tdome/tdomeobserve) -"CR" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/turf/open/floor/plasteel/bar, -/area/tdome/tdomeobserve) -"CS" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CT" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/whitegreen/corner, -/area/tdome/tdomeobserve) -"CU" = ( -/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{ - desc = "I bet you think you're pretty clever... well you are."; - name = "easter egg" - }, -/turf/open/space, -/area/space) -"CV" = ( -/obj/effect/landmark{ - name = "Holding Facility" - }, -/turf/open/floor/engine, -/area/centcom/holding) -"CW" = ( -/obj/structure/sink{ - dir = 8; - icon_state = "sink"; - pixel_x = -12 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CX" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/apron/chef, -/obj/item/weapon/kitchen/rollingpin, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"CY" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/food/condiment/peppermill{ - pixel_x = -8 - }, -/obj/item/weapon/reagent_containers/food/drinks/britcup, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"CZ" = ( -/turf/open/floor/plasteel/vault, -/area/tdome/tdomeobserve) -"Da" = ( -/obj/structure/chair, -/obj/effect/landmark{ - name = "tdomeobserve" - }, -/obj/structure/sign/barsign{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Db" = ( -/obj/structure/chair, -/obj/effect/landmark{ - name = "tdomeobserve" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dc" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/ai_status_display{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dd" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"De" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Df" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - desc = "Mirror mirror on the wall, who is the most robust of them all?"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; - icon_state = "whitegreen"; - dir = 4 - }, -/area/tdome/tdomeobserve) -"Dg" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Locker Room"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeobserve) -"Dh" = ( -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Di" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/weapon/storage/bag/tray, -/obj/item/weapon/kitchen/fork, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"Dj" = ( -/turf/open/floor/plasteel/redyellow, -/area/tdome/tdomeobserve) -"Dk" = ( -/obj/machinery/vending/boozeomat, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dl" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/tdome/tdomeobserve) -"Dm" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/tdome/tdomeobserve) -"Dn" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/donkpockets, -/obj/item/weapon/storage/box/donkpockets, -/obj/item/clothing/head/chefhat, -/turf/open/floor/plasteel/vault, -/area/tdome/tdomeobserve) -"Do" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/noticeboard{ - dir = 1; - icon_state = "nboard00"; - pixel_y = -32; - tag = "icon-nboard00 (NORTH)" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/tdomeobserve) -"Dp" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dq" = ( -/obj/item/weapon/storage/fancy/cigarettes/cigars{ - pixel_y = 6 - }, -/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba{ - pixel_y = 3 - }, -/obj/item/weapon/storage/fancy/cigarettes/cigars/havana, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dr" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/tdome/tdomeobserve) -"Ds" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/tdome/tdomeobserve) -"Dt" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/tdome/tdomeobserve) -"Du" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -3; - pixel_y = 5 - }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dv" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -3; - pixel_y = 5 - }, -/obj/structure/sign/barsign{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dw" = ( -/obj/machinery/icecream_vat, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dx" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dy" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 8 - }, -/area/tdome/tdomeobserve) -"Dz" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 4 - }, -/area/tdome/tdomeobserve) -"DA" = ( -/obj/item/weapon/storage/box/matches{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/structure/table/wood, -/obj/structure/sign/barsign{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"DB" = ( -/obj/item/weapon/lighter{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/lighter, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"DC" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/barman_recipes, -/obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/reagent_containers/glass/rag, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeobserve) -"DD" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 1 - }, -/area/tdome/tdomeobserve) -"DE" = ( -/turf/closed/indestructible/riveted, -/area/tdome/arena) -"DF" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Gear Room"; - opacity = 1; - req_access_txt = "101" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/arena) -"DG" = ( -/obj/machinery/igniter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DH" = ( -/turf/open/floor/plasteel, -/area/tdome/arena) -"DI" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DJ" = ( -/turf/closed/indestructible/riveted, -/area/tdome/tdomeadmin) -"DK" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/tdome/tdomeadmin) -"DL" = ( -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Administration"; - opacity = 1; - req_access_txt = "102" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeadmin) -"DM" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/red, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/tdome/red, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/melee/energy/sword/saber/red, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DN" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomegen"; - name = "General Supply" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/tdome/arena) -"DO" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DP" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DQ" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DR" = ( -/obj/machinery/door/poddoor{ - id = "thunderdome"; - name = "Thunderdome Blast Door" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/tdome/arena) -"DS" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/tdome/arena) -"DT" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/arena) -"DU" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/tdome/arena) -"DV" = ( -/turf/open/floor/plasteel/neutral, -/area/tdome/arena) -"DW" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/tdome/arena) -"DX" = ( -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/tdome/arena) -"DY" = ( -/obj/machinery/door/poddoor{ - id = "thunderdome"; - name = "Thunderdome Blast Door" - }, -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/tdome/arena) -"DZ" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ea" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Eb" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ec" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomegen"; - name = "General Supply" - }, -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/tdome/arena) -"Ed" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/green, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/tdome/green, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/melee/energy/sword/saber/green, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ee" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "asteroid8"; - name = "sand" - }, -/area/tdome/tdomeadmin) -"Ef" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/tdome/tdomeadmin) -"Eg" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, -/area/tdome/tdomeadmin) -"Eh" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ei" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ej" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/arena) -"Ek" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"El" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/tdome/arena) -"Em" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/tdome/arena) -"En" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Eo" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Ep" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/arena) -"Eq" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"Er" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/fernybush, -/turf/open/floor/plasteel{ - name = "plating"; - icon_state = "asteroid5" - }, -/area/tdome/tdomeadmin) -"Es" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"Et" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"Eu" = ( -/obj/machinery/camera{ - pixel_x = 11; - pixel_y = -9; - network = list("thunder"); - c_tag = "Red Team" - }, -/obj/effect/landmark{ - name = "tdome2" - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/arena) -"Ev" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/tdome/arena) -"Ew" = ( -/turf/open/floor/plasteel/circuit/gcircuit, -/area/tdome/arena) -"Ex" = ( -/obj/machinery/flasher{ - id = "tdomeflash"; - name = "Thunderdome Flash" - }, -/turf/open/floor/plasteel/circuit/gcircuit, -/area/tdome/arena) -"Ey" = ( -/turf/open/floor/plasteel/loadingarea{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 8 - }, -/area/tdome/arena) -"Ez" = ( -/obj/machinery/camera{ - pixel_x = 12; - pixel_y = -10; - network = list("thunder"); - c_tag = "Green Team" - }, -/obj/effect/landmark{ - name = "tdome1" - }, -/turf/open/floor/plasteel/neutral, -/area/tdome/arena) -"EA" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/palebush, -/turf/open/floor/plating/asteroid, -/area/tdome/tdomeadmin) -"EB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"EC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"ED" = ( -/obj/machinery/camera{ - pixel_x = 10; - network = list("thunder"); - c_tag = "Arena" - }, -/turf/open/floor/plasteel/circuit/gcircuit, -/area/tdome/arena) -"EE" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/tdome/arena) -"EF" = ( -/turf/open/floor/plasteel/green/corner, -/area/tdome/arena) -"EG" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EH" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EI" = ( -/obj/effect/landmark{ - name = "tdome2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EJ" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EK" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EL" = ( -/obj/effect/landmark{ - name = "tdome1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EM" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomehea"; - name = "Heavy Supply" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 1 - }, -/area/tdome/arena) -"EN" = ( -/obj/machinery/door/poddoor{ - id = "thunderdomehea"; - name = "Heavy Supply" - }, -/turf/open/floor/plasteel/loadingarea, -/area/tdome/arena) -"EO" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tdome/tdomeadmin) -"EP" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/red, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/head/helmet/swat, -/obj/item/weapon/gun/energy/laser, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EQ" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 8 - }, -/area/tdome/tdomeadmin) -"ER" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 8 - }, -/area/tdome/tdomeadmin) -"ES" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 4 - }, -/area/tdome/tdomeadmin) -"ET" = ( -/obj/structure/rack, -/obj/item/clothing/under/color/green, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/head/helmet/swat, -/obj/item/weapon/gun/energy/laser, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tdome/arena) -"EU" = ( -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/radio{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/device/radio, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"EV" = ( -/obj/effect/landmark{ - name = "tdomeadmin" - }, -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeadmin) -"EW" = ( -/obj/machinery/computer/security/telescreen{ - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"EX" = ( -/obj/structure/chair/comfy/brown{ - color = "#66b266"; - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen, -/area/tdome/tdomeadmin) -"EY" = ( -/obj/machinery/button/flasher{ - id = "tdomeflash"; - pixel_x = 0; - pixel_y = 0 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"EZ" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"Fa" = ( -/obj/machinery/status_display, -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"Fb" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"Fc" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fd" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fe" = ( -/turf/open/floor/plasteel/grimy, -/area/tdome/tdomeadmin) -"Ff" = ( -/turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; - icon_state = "darkgreen"; - dir = 1 - }, -/area/tdome/tdomeadmin) -"Fg" = ( -/obj/item/weapon/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fh" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"Fi" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/escape) -"Fj" = ( -/turf/closed/indestructible/fakedoor{ - name = "Thunderdome Admin" - }, -/area/tdome/tdomeadmin) -"Fk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "Thunderdome Administration"; - opacity = 1; - req_access_txt = "102" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tdome/tdomeadmin) -"Fl" = ( -/turf/open/floor/plasteel/vault, -/area/tdome/tdomeadmin) -"Fm" = ( -/obj/machinery/door/airlock/external{ - name = "Backup Emergency Escape Shuttle" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/ferry) -"Fn" = ( -/obj/machinery/door/airlock/titanium, -/obj/docking_port/stationary{ - dir = 4; - dwidth = 2; - height = 8; - id = "backup_away"; - name = "Backup Shuttle Dock"; - width = 8 - }, -/obj/docking_port/mobile/emergency/backup, -/turf/open/floor/plating, -/area/shuttle/escape) -"Fo" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"Fp" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper{ - info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"Fq" = ( -/obj/structure/bookcase/random, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fr" = ( -/obj/structure/table/wood, -/obj/item/weapon/paper_bin, -/obj/item/weapon/pen/fourcolor, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fs" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/weapon/restraints/handcuffs, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Ft" = ( -/obj/structure/table/wood, -/obj/item/weapon/clipboard, -/obj/item/device/radio/headset/headset_cent, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fu" = ( -/obj/structure/table/wood, -/obj/item/weapon/phone{ - desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fv" = ( -/obj/machinery/button/door{ - id = "thunderdomehea"; - name = "Heavy Supply Control"; - pixel_y = 0; - req_access_txt = "102" - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fw" = ( -/obj/machinery/button/door{ - id = "thunderdome"; - name = "Main Blast Doors Control"; - pixel_y = 0; - req_access_txt = "102" - }, -/obj/structure/table/reinforced, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fx" = ( -/obj/machinery/button/door{ - id = "thunderdomegen"; - name = "General Supply Control"; - pixel_y = 0; - req_access_txt = "102" - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fy" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red, -/obj/item/weapon/lighter, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"Fz" = ( -/obj/item/weapon/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/storage/secure/briefcase, -/obj/structure/table/wood, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"FA" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"FB" = ( -/obj/structure/table/wood, -/obj/item/weapon/storage/box/drinkingglasses, -/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ - pixel_y = 5 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/tdome/tdomeadmin) -"FC" = ( -/obj/structure/table/wood, -/obj/item/weapon/book/manual/random, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape) -"FD" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/genericbush, -/turf/open/floor/grass, -/area/tdome/tdomeadmin) -"FE" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/tdome/tdomeadmin) -"FF" = ( -/obj/machinery/status_display, -/turf/closed/indestructible/riveted, -/area/tdome/tdomeadmin) -"FG" = ( -/obj/machinery/ai_status_display, -/turf/closed/indestructible/riveted, -/area/tdome/tdomeadmin) -"FH" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/centcom/evac) -"FI" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r"; - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/centcom/evac) -"FJ" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/centcom/evac) -"FK" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/centcom/evac) -"FL" = ( -/obj/docking_port/stationary{ - dir = 1; - dwidth = 1; - height = 4; - id = "pod4_away"; - name = "recovery ship"; - width = 3 - }, -/turf/open/space, -/area/space) -"FM" = ( -/obj/docking_port/stationary{ - dir = 1; - dwidth = 1; - height = 4; - id = "pod3_away"; - name = "recovery ship"; - width = 3 - }, -/turf/open/space, -/area/space) -"FN" = ( -/turf/closed/wall/mineral/titanium, -/area/centcom/evac) -"FO" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/centcom/evac) -"FP" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating, -/area/centcom/evac) -"FQ" = ( -/obj/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating, -/area/centcom/evac) -"FR" = ( -/turf/open/floor/plating, -/area/centcom/evac) -"FS" = ( -/turf/open/floor/plating, -/turf/closed/wall/mineral/titanium/interior, -/area/centcom/evac) -"FT" = ( -/turf/open/floor/mineral/titanium/blue, -/turf/closed/wall/mineral/titanium/interior, -/area/centcom/evac) -"FU" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"FV" = ( -/turf/open/floor/mineral/titanium/yellow, -/area/centcom/evac) -"FW" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/toxin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/weapon/storage/firstaid/toxin, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"FX" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/fire{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"FY" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 0 - }, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"FZ" = ( -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Ga" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien20" - }, -/area/abductor_ship) -"Gb" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien21" - }, -/area/abductor_ship) -"Gc" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien22" - }, -/area/abductor_ship) -"Gd" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien23" - }, -/area/abductor_ship) -"Ge" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien24" - }, -/area/abductor_ship) -"Gf" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien16" - }, -/area/abductor_ship) -"Gg" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien17" - }, -/area/abductor_ship) -"Gh" = ( -/obj/machinery/abductor/experiment{ - team = 1 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gi" = ( -/obj/effect/landmark/abductor/console, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gj" = ( -/obj/machinery/abductor/pad{ - team = 1 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gk" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien18" - }, -/area/abductor_ship) -"Gl" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien19" - }, -/area/abductor_ship) -"Gm" = ( -/obj/machinery/abductor/experiment{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gn" = ( -/obj/effect/landmark/abductor/console{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Go" = ( -/obj/machinery/abductor/pad{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gp" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/paper_bin, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"Gq" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/fancy/donut_box, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"Gr" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/pen, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"Gs" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"Gt" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Gu" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Gv" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien14" - }, -/area/abductor_ship) -"Gw" = ( -/obj/machinery/computer/camera_advanced/abductor{ - team = 1 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gx" = ( -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gy" = ( -/obj/structure/closet/abductor, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Gz" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien15" - }, -/area/abductor_ship) -"GA" = ( -/obj/machinery/computer/camera_advanced/abductor{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GB" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GC" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GD" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GE" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/clipboard, -/obj/item/weapon/stamp, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GF" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien12" - }, -/area/abductor_ship) -"GG" = ( -/obj/item/weapon/retractor/alien, -/obj/item/weapon/hemostat/alien, -/obj/structure/table/abductor, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GH" = ( -/obj/effect/landmark/abductor/scientist, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GI" = ( -/obj/structure/table/optable/abductor, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GJ" = ( -/obj/effect/landmark/abductor/agent, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GK" = ( -/obj/structure/table/abductor, -/obj/item/weapon/storage/box/alienhandcuffs, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GL" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien13" - }, -/area/abductor_ship) -"GM" = ( -/obj/effect/landmark/abductor/scientist{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GN" = ( -/obj/effect/landmark/abductor/agent{ - team = 4 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GO" = ( -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GP" = ( -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GQ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"GR" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien10" - }, -/area/abductor_ship) -"GS" = ( -/obj/item/weapon/surgical_drapes, -/obj/item/weapon/paper/abductor, -/obj/item/weapon/scalpel/alien, -/obj/structure/table/abductor, -/obj/item/weapon/cautery/alien, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"GT" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien11" - }, -/area/abductor_ship) -"GU" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/handcuffs, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GV" = ( -/obj/machinery/door/window/northright{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Security Desk"; - req_access_txt = "103" - }, -/turf/open/floor/mineral/plastitanium, -/area/centcom/evac) -"GW" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 1; - height = 4; - id = "pod2_away"; - name = "recovery ship"; - width = 3 - }, -/turf/open/space, -/area/space) -"GX" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien6" - }, -/area/abductor_ship) -"GY" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien7" - }, -/area/abductor_ship) -"GZ" = ( -/obj/machinery/abductor/gland_dispenser, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Ha" = ( -/obj/structure/table/abductor, -/obj/item/weapon/surgicaldrill/alien, -/obj/item/weapon/circular_saw/alien, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hb" = ( -/obj/structure/bed/abductor, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hc" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien8" - }, -/area/abductor_ship) -"Hd" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien9" - }, -/area/abductor_ship) -"He" = ( -/turf/closed/indestructible/abductor, -/area/abductor_ship) -"Hf" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien2" - }, -/area/abductor_ship) -"Hg" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien3" - }, -/area/abductor_ship) -"Hh" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien4" - }, -/area/abductor_ship) -"Hi" = ( -/turf/closed/indestructible/abductor{ - icon_state = "alien5" - }, -/area/abductor_ship) -"Hj" = ( -/obj/structure/bed, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Hk" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/centcom/evac) -"Hl" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/mineral/titanium/yellow, -/area/centcom/evac) -"Hm" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 2; - height = 7; - id = "pod1_away"; - name = "recovery ship"; - width = 5 - }, -/turf/open/space, -/area/space) -"Hn" = ( -/obj/machinery/abductor/experiment{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Ho" = ( -/obj/effect/landmark/abductor/console{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hp" = ( -/obj/machinery/abductor/pad{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hq" = ( -/obj/machinery/abductor/experiment{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hr" = ( -/obj/effect/landmark/abductor/console{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hs" = ( -/obj/machinery/abductor/pad{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Ht" = ( -/obj/machinery/computer/camera_advanced/abductor{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hu" = ( -/obj/machinery/computer/camera_advanced/abductor{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hv" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Hw" = ( -/obj/structure/table, -/obj/item/weapon/hand_labeler, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Hx" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"Hy" = ( -/obj/effect/landmark/abductor/scientist{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"Hz" = ( -/obj/effect/landmark/abductor/agent{ - team = 2 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"HA" = ( -/obj/effect/landmark/abductor/scientist{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"HB" = ( -/obj/effect/landmark/abductor/agent{ - team = 3 - }, -/turf/open/floor/plating/abductor, -/area/abductor_ship) -"HC" = ( -/obj/machinery/door/airlock/titanium{ - name = "Cockpit"; - req_access_txt = "109" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/centcom/evac) -"HD" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HE" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HF" = ( -/obj/structure/filingcabinet, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HG" = ( -/obj/structure/chair, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HH" = ( -/obj/structure/table, -/obj/item/weapon/storage/lockbox, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HI" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HJ" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HK" = ( -/obj/structure/table, -/obj/item/weapon/clipboard, -/obj/item/weapon/pen, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HL" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/turf/open/floor/mineral/titanium/blue, -/area/centcom/evac) -"HM" = ( -/turf/closed/indestructible/riveted, -/area/awaymission/errorroom) -"HN" = ( -/turf/closed/mineral/ash_rock, -/area/awaymission/errorroom) -"HO" = ( -/obj/structure/speaking_tile, -/turf/closed/mineral/ash_rock, -/area/awaymission/errorroom) -"HP" = ( -/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) -"HQ" = ( -/turf/open/floor/plating/ashplanet/wateryrock{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - planetary_atmos = 0 - }, -/area/awaymission/errorroom) -"HR" = ( -/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) -"HS" = ( -/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) -"HT" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"HU" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/centcom/control) -"HV" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/centcom/evac) -"HW" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"HX" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"HY" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"HZ" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ia" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ib" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ic" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Id" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ie" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"If" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ig" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) -"Ih" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/centcom/evac) -"Ii" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, -/area/centcom/evac) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gz -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -ad -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HM -HM -HM -HM -HM -HM -HM -HM -HM -HM -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HN -HN -HN -HN -HN -HN -HN -HN -HM -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HQ -HQ -HQ -HQ -HQ -HQ -HQ -HN -HM -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gd -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HQ -HQ -HQ -HN -HM -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HO -HP -HP -HP -HQ -HQ -HR -HS -HN -HM -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HQ -HQ -HQ -HN -HM -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HQ -HQ -HQ -HQ -HQ -HQ -HQ -HN -HM -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HP -HP -HP -HQ -HP -HP -HP -HN -HM -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -gc -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HN -HN -HN -HN -HN -HN -HN -HN -HN -HM -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HM -HM -HM -HM -HM -HM -HM -HM -HM -HM -HM -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -wf -wy -wX -pg -pg -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -pg -pg -vG -wg -wz -wg -xu -pg -wf -wX -pg -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -sx -tb -vo -px -px -px -px -px -xS -px -px -pg -pg -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -sy -uq -tb -pg -px -px -px -px -px -pg -px -sz -px -pg -pg -pg -pg -pg -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -tb -tb -tb -tb -pg -vG -wg -px -wg -xu -pg -px -px -px -pg -zg -zu -zz -pg -pg -rX -pg -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -sx -tc -tb -tb -tb -pg -pg -wf -wy -wX -pg -pg -px -sz -px -yX -zh -zh -zA -zU -px -px -pg -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -pg -pg -sy -tb -tb -tb -uR -pg -vH -px -px -px -xv -pg -px -px -px -pg -zi -zv -zB -pg -pg -zU -pg -pg -pg -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -pg -pg -px -rb -pg -pg -pg -tO -pg -pg -pg -vI -px -px -px -px -pg -px -sz -px -pg -pg -pg -pg -pg -px -px -Bj -BG -pg -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -ph -px -px -px -rX -px -px -px -px -uS -pg -px -px -px -px -px -rX -px -px -px -pg -zj -sz -zC -pg -An -px -px -BG -BO -Cm -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -pi -py -px -px -rY -px -px -px -px -px -vp -px -px -wA -wY -px -xS -px -sz -px -yY -sz -zw -sz -rX -Ao -px -px -BG -BO -Cm -la -la -CU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -pj -px -px -px -rX -px -px -px -px -uT -pg -px -px -px -px -px -rX -px -px -px -pg -zk -sz -zD -pg -An -px -px -BG -BO -Cm -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -pg -pg -px -rc -pg -pg -pg -tP -pg -pg -pg -vJ -px -px -px -px -pg -px -sz -px -pg -pg -pg -pg -pg -Ap -px -Bj -BG -pg -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -pg -pg -sz -td -sz -ur -uU -pg -vK -wh -wB -px -px -pg -px -px -px -pg -zl -zx -zE -pg -pg -rX -pg -pg -pg -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -sA -te -tQ -sz -uV -pg -pg -wf -wy -wX -pg -pg -px -sz -px -yZ -zm -zm -zF -pg -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -tf -sz -td -sz -ph -vL -vO -wC -wZ -vO -ph -px -px -px -pg -zn -zm -zG -pg -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -sA -us -tQ -pi -vM -wi -vM -xa -vM -pi -px -sz -px -pg -pg -pg -pg -pg -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -tf -sz -pj -vN -wj -vO -wi -vO -pj -px -px -pg -pg -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -pg -pg -vO -wi -vM -xb -xw -pg -wf -wX -pg -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -pg -pg -pg -pg -pg -pg -pg -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -la -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -tR -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lF -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -mz -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lF -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -pk -pk -pk -rd -mg -mA -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lG -hq -lF -hq -hq -hq -hq -hq -hq -pk -pk -hq -re -kI -sB -tg -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -ln -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -re -kI -sC -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lF -hq -hq -hq -hq -mz -hq -hq -re -kI -re -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lG -ln -hq -hq -hq -hq -hq -hq -hq -hq -hq -re -kI -re -hq -hq -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -kl -kl -kl -kl -hq -hq -hq -hq -lG -hq -hq -hq -hq -hq -hq -hq -hq -re -kI -re -hq -hq -mz -hq -pk -pk -pk -pk -pk -pk -pk -pk -pk -pk -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -hq -hq -hq -hq -hq -ln -hq -hq -hq -hq -lF -hq -rf -kI -rf -hq -lF -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -hq -hq -lG -hq -hq -hq -hq -hq -kl -kl -kl -kl -kl -rZ -kl -kl -kl -kl -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -lG -hq -hq -lF -hq -hq -mz -kl -kl -pl -pz -oJ -oJ -oJ -sD -th -tS -kl -kl -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -jX -km -ku -kI -kl -hq -hq -hq -hq -hq -hq -hq -hq -kl -oH -oJ -oJ -pA -pA -oJ -pA -ti -tT -qq -kl -hq -lF -mz -hq -lG -hq -hq -mh -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -hq -hq -hq -hq -hq -hq -hq -ol -oI -oJ -pA -qn -rg -oJ -pA -tj -tS -ut -kl -hq -hq -lG -hq -hq -hq -mh -yc -mh -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -kl -kl -kl -kl -kl -kl -kl -kl -kl -oJ -oJ -pA -qo -rh -oJ -pA -ti -tS -uu -kl -mz -hq -lF -lG -mz -hq -hq -mh -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -om -oJ -oJ -pB -pA -pA -oJ -oJ -tk -tU -uv -kl -hq -ln -mz -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -kl -lH -mg -mA -kl -kl -kl -kl -kl -kl -pm -oJ -oJ -oJ -oJ -oJ -oJ -oJ -kl -kl -kl -ol -kl -kl -hm -hm -hm -hm -hm -hm -hm -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -lI -mh -ln -hq -ln -ln -hq -hq -kl -pn -oJ -qp -qp -qp -qp -oJ -oJ -uw -uW -uW -uW -wk -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -lG -hq -hq -lG -hq -hq -lG -ln -kl -po -oJ -qq -ri -ri -sE -oJ -oJ -kl -uW -uW -uW -wk -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gf -Gv -GF -GR -GX -aa -aa -aa -Gf -Gv -GF -GR -GX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -hq -hq -lG -hq -lG -hq -hq -lG -kl -kl -pC -kl -kl -kl -sC -sB -sC -kl -uX -uW -uW -wk -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Ga -Gg -Gw -GG -GS -GY -He -aa -Ga -Gg -Ht -GG -GS -GY -He -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -hq -hq -lG -hq -ln -hq -hq -lG -hq -kl -pp -pD -pD -kl -kl -re -kI -re -kl -uY -uW -uW -wk -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gb -Gh -Gx -GH -Gx -GZ -Hf -aa -Gb -Hn -Gx -Hy -Gx -GZ -Hf -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -km -ku -kI -kl -ln -hq -hq -hq -lG -hq -hq -lG -ln -kl -pq -pD -qr -kl -kl -re -kI -re -kl -uZ -uW -uW -wk -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gc -Gi -Gx -GI -Gx -Ha -Hg -aa -Gc -Ho -Gx -GI -Gx -Ha -Hg -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -kl -kl -kl -kl -hq -hq -lG -ln -hq -hq -ln -hq -lG -ol -pr -pE -kl -kl -kl -re -kI -re -kl -va -uW -vP -wl -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gd -Gj -Gx -GJ -Gx -Hb -Hh -aa -Gd -Hp -Gx -Hz -Gx -Hb -Hh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -ln -lG -hq -ln -hq -kl -kl -kl -kl -kl -kl -re -kI -re -kl -kl -kl -kl -kl -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Ge -Gk -Gy -GK -Gy -Hc -Hi -aa -Ge -Gk -Gy -GK -Gy -Hc -Hi -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lG -hq -hq -hq -lG -ln -hm -aa -kl -qs -qs -qs -re -kI -re -qs -qs -qs -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gl -Gz -GL -GT -Hd -aa -aa -aa -Gl -Gz -GL -GT -Hd -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lG -hq -ln -hq -hm -aa -kl -qs -rj -sa -re -sB -re -sa -vb -qs -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -ln -hq -hq -ln -hq -lG -hm -aa -kl -qs -rk -rl -rm -tl -rm -ux -vc -qs -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gf -Gv -GF -GR -GX -aa -aa -aa -Gf -Gv -GF -GR -GX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -lG -hq -hq -hq -hm -aa -kl -qt -rl -rm -sb -sc -sb -rm -ux -vq -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Ga -Gg -GA -GG -GS -GY -He -aa -Ga -Gg -Hu -GG -GS -GY -He -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qt -rm -sb -sc -sd -sc -sb -rm -vq -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gb -Gm -Gx -GM -Gx -GZ -Hf -aa -Gb -Hq -Gx -HA -Gx -GZ -Hf -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qt -rn -sc -sF -tm -tV -sc -vd -vq -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gc -Gn -Gx -GI -Gx -Ha -Hg -aa -Gc -Hr -Gx -GI -Gx -Ha -Hg -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qt -rm -sd -sc -sb -sc -sd -rm -vq -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gd -Go -Gx -GN -Gx -Hb -Hh -aa -Gd -Hs -Gx -HB -Gx -Hb -Hh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qt -ro -rm -sd -sc -sd -rm -uy -vq -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Ge -Gk -Gy -GK -Gy -Hc -Hi -aa -Ge -Gk -Gy -GK -Gy -Hc -Hi -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qs -rp -ro -rm -tl -rm -uy -ve -qs -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Gl -Gz -GL -GT -Hd -aa -aa -aa -Gl -Gz -GL -GT -Hd -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -qs -qs -se -se -se -se -se -qs -qs -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -kl -kl -kl -kl -kl -kl -kl -kl -kl -kl -kl -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hq -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FH -FN -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FI -FO -FR -FR -FR -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FJ -FO -FR -FR -FR -FN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -zV -zV -zV -zV -zV -zV -zV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FK -FO -FS -FN -FP -FN -FN -FN -FN -FN -FN -FN -FN -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Aq -Aq -Bk -BH -BP -Cn -Cx -zV -zV -zV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FH -FN -FT -FZ -FZ -Gp -GB -GO -GU -FN -Hj -Hj -Hj -Hj -Hj -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Ar -Ar -Ar -Ay -Ay -Ay -Ay -CL -CV -CV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FN -FU -FZ -FV -Gq -GC -GP -GP -FN -FV -FV -FV -FV -FV -FN -FN -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -As -Ar -Bl -AR -Ay -Ay -Ay -CM -CV -CV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FL -FP -FV -FV -FV -Gr -GD -GP -GP -FN -Hj -Hj -FV -Hj -Hj -FN -HD -Hx -HH -Hk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -At -Ar -Aq -AR -Ay -Ay -Ay -CM -CV -CV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FN -FW -FZ -FV -Gs -GE -Gs -GV -FN -FN -FN -Hl -FN -FN -FN -Gu -FZ -HI -Hk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -At -Ar -Bm -AR -Ay -Ay -Ay -CN -CV -CV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FQ -FX -FZ -FV -FV -FV -FV -FV -FV -FV -FV -FV -FV -FV -HC -FV -HG -HJ -Hk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Ar -Ar -Bn -AR -Ay -Ay -Ay -zV -zV -zV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FN -FY -FZ -FV -Gt -FZ -Gu -Gu -FZ -Gu -Gu -FV -FZ -Hv -FN -HE -FZ -HK -Hk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Au -AQ -Bo -AR -Ay -Ay -Ay -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FM -FP -FV -FV -FV -FZ -FZ -GQ -GQ -FZ -GQ -GQ -FV -FZ -Hw -FN -HF -HD -HL -Hk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Av -Ay -Ay -Ay -Ay -Ay -Ay -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FN -FU -FZ -FV -FV -FV -FV -FV -FV -FV -FV -FV -FZ -Hx -FN -FN -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Aw -Ay -Ay -Ay -Ay -Ay -AR -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FH -FN -FT -FZ -FZ -Gu -Gu -Gu -FV -Gu -Gu -Gu -FV -FZ -FU -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Ax -Ay -Ay -Ay -Ay -AR -Cy -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FI -FO -FS -FN -FP -FN -FN -FN -FP -FN -Hk -FN -FP -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Ay -AR -Ay -Ay -Ay -Ay -AR -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FJ -FO -FR -FR -FR -FN -aa -aa -GW -aa -aa -aa -Hm -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Az -Az -Az -Az -BQ -BQ -BQ -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FK -FO -FR -FR -FR -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -AA -Az -Az -Az -Az -Co -Cz -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -FH -FN -FN -FN -FH -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Az -Az -Bp -Az -Az -Co -Cz -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Az -AS -Az -BI -Az -Co -Cz -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -Az -Az -Bq -Az -Az -Cp -Cz -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -AB -Az -AA -Az -Az -Co -Cz -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zV -zV -zV -zV -zV -zV -zV -zV -zV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -hM -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nf -nf -mU -mV -nf -nf -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nf -pF -qu -rq -sf -nf -aa -aa -uz -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -pG -qv -rr -sg -lJ -aa -nf -uA -nf -aa -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nf -pH -qw -rs -sh -lJ -tn -nf -uB -nf -vr -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nf -pI -qx -rt -si -mU -to -nf -uA -nf -to -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mV -pJ -qy -ru -sj -mV -tp -tW -uC -tW -vs -mV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nf -pK -qy -ru -qA -sG -tq -tX -uD -tX -vt -nf -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -pL -qz -rv -sk -lJ -tr -tY -uE -tY -vu -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(141,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -lJ -lJ -rw -lJ -lJ -lJ -tZ -uF -tZ -lJ -lJ -nf -nf -mV -nf -nf -lJ -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(142,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -nf -nf -lJ -nf -nf -lJ -pM -qA -rx -qA -sH -lJ -ua -ua -ua -lJ -vQ -wm -nD -vU -xx -xT -yd -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(143,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -ng -nD -nU -on -oK -lJ -pN -qA -ry -qA -sI -lJ -tZ -uF -tZ -lJ -vR -od -od -od -od -od -ye -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(144,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -nh -nE -nV -nE -oL -lJ -lJ -lJ -lJ -lJ -pt -lJ -ub -uG -ue -pt -vS -od -wD -xc -xy -od -yf -pt -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(145,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -ni -nF -nW -nE -oM -mV -pO -qB -rz -sl -sJ -lJ -qw -uH -rt -mV -vT -od -wE -xd -xz -od -yg -mU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(146,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -nj -nG -nX -oo -nI -ps -oQ -qC -rA -sm -sK -lJ -qw -tX -rt -pU -vU -wn -ry -wn -ry -wn -yh -mV -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(147,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -mi -mB -lJ -nk -nH -nY -op -oN -lJ -pP -op -nE -nE -sL -mU -uc -tX -uf -vv -qA -ry -wF -xe -xA -ry -yi -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(148,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lK -mj -mC -mT -nl -nI -nI -oq -oO -mV -pQ -qD -rB -sn -sM -ts -ud -tX -ud -mU -qA -wo -wG -xf -xB -xU -yj -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zH -zH -zH -zH -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(149,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gf -gl -gl -gl -gl -gl -gl -gl -gl -gl -gA -hg -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -hg -gf -gl -gl -gl -gl -gl -gl -gl -gl -gl -gA -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -mk -mD -lJ -nm -nJ -nZ -nL -oP -lK -pR -qE -rC -nE -sN -pU -ue -tX -vf -vv -qA -wp -wH -xg -xC -xV -yk -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zH -zY -zZ -zN -DK -Ef -Er -Ee -Ef -DK -Ef -Er -Ee -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(150,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gm -gm -gm -gm -gm -gm -gm -gm -gm -gB -ge -gp -gq -gq -gq -gp -go -gp -gp -gp -gp -gp -go -gp -gq -gq -gq -gp -ge -gg -gm -gm -gm -gm -gm -gm -gm -gm -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -lJ -lJ -mU -nn -nK -oa -or -oQ -ps -pS -qF -rD -so -sO -lJ -qy -tX -ru -pU -vV -wo -wI -xh -xD -xU -yl -lJ -aa -aa -aa -aa -aa -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zN -zN -zH -DJ -DJ -Ef -Ef -DJ -DJ -DJ -Ef -Ef -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(151,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -gp -gq -gp -gp -gp -go -gp -gp -hH -gp -gp -go -gp -gp -gp -gq -gp -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -mV -no -nL -ob -os -oR -lJ -pT -qG -rE -nE -sP -lJ -qy -tX -ru -lJ -vU -ry -wJ -xi -wJ -ry -ym -lJ -aa -aa -aa -aa -aa -zH -AC -AT -Br -zH -BR -Cq -CA -CO -CW -zH -Dl -Dt -BK -DL -Eg -Es -EB -Eg -DL -Eg -EO -EO -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(152,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -gp -gq -gp -gp -gp -go -gp -hH -hI -hH -gp -go -gp -gp -gp -gq -gp -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jD -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -lK -nM -lJ -lJ -lJ -lJ -pU -qH -lJ -mV -lJ -lJ -qy -tX -ru -pt -on -wn -ry -wn -ry -wn -yn -lJ -aa -aa -aa -aa -aa -zH -AD -AU -Bs -BJ -Bs -Bs -Bs -Bs -Bs -Dg -AY -Bb -BK -DL -Eg -Et -EC -Eg -DL -Eg -EO -EO -DJ -Fj -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(153,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -gp -gq -gp -gp -gp -go -gp -gp -hH -gp -gp -go -gp -gp -gp -gq -gp -ge -gg -gm -gy -gm -gy -gm -gy -gm -gy -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iZ -jl -js -iZ -js -jJ -iZ -aa -aa -aa -aa -iZ -iZ -lL -jF -iK -lJ -np -nL -oc -ot -oS -mV -pM -qI -rF -lJ -sQ -nf -qy -tX -ru -lJ -mU -pU -wK -wK -wK -pU -mV -lJ -aa -aa -aa -aa -aa -zH -AE -AV -Bt -zH -BS -BS -BS -BS -BS -zH -AX -Bu -DE -DE -DE -DE -DE -DE -DE -DE -EO -EO -EO -EO -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(154,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gm -gm -gm -gm -gm -gm -gm -gm -gm -gB -ge -gp -gq -gq -gq -gp -go -gp -gp -gp -gp -gp -go -gp -gq -gq -gq -gp -ge -gg -gm -gm -gm -gm -gm -gm -gm -gm -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jd -jm -jt -iZ -jt -jK -jd -aa -aa -aa -aa -iZ -lo -lM -ml -mE -lJ -nq -nN -od -od -oT -pt -pV -qJ -rG -mV -sR -nf -qy -tX -ru -lJ -vW -wq -qA -qA -qA -wq -yo -lJ -aa -aa -aa -aa -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -AY -Bb -DE -DM -DM -DM -DM -DM -DM -DE -EO -EO -EO -EO -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(155,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gh -gn -gn -gn -gn -gn -gn -gn -gn -gn -gC -hg -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -hg -gh -gn -gn -gn -gn -gn -gn -gn -gn -gn -gC -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iQ -iZ -iZ -jn -js -iZ -js -jL -iZ -iZ -iZ -iZ -iQ -iK -lp -lN -mm -mF -lJ -nr -nO -oe -ou -oU -mU -pW -qK -rH -lJ -sQ -nf -qy -uD -ru -lJ -vX -qA -wL -wL -wL -qA -yp -lJ -aa -aa -aa -aa -zH -zW -zH -AW -Bd -BK -Aj -Cr -AF -Cr -AF -Cr -Dm -Bu -DE -DN -DN -DN -DN -DN -DN -DE -DE -DE -Fb -Fb -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(156,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -ge -hg -hg -hg -ge -ge -ge -ge -ge -ge -ge -ge -ge -hg -hg -hg -ge -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iR -iR -je -jo -iS -jz -jE -jM -jP -jP -jP -iR -iR -iZ -lq -iT -mn -mG -lJ -mU -mV -lJ -lJ -lJ -lJ -lJ -qL -pU -lJ -nf -pt -qy -tX -ru -lJ -vY -qA -wM -xj -xE -qA -yq -lJ -aa -aa -aa -aa -zI -zX -zI -AX -Bu -BK -BT -AM -AG -AM -AG -AM -AG -Bc -DF -DO -Eh -Eh -Eh -Eh -EG -EM -EP -DE -EO -EO -DJ -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(157,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -gp -gp -gp -gp -gp -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iS -iS -jf -jp -ju -ju -ju -jN -jQ -jY -jY -jE -jE -iZ -lr -lO -kJ -mH -lL -ns -nP -of -ov -oV -mV -pX -qM -rI -lJ -sS -nf -qy -tX -ru -lJ -vZ -qA -wN -xk -xF -qA -yr -lJ -aa -aa -aa -aa -zH -zN -zH -AY -Bb -zH -zH -Ba -zH -zH -Ac -BL -Ac -zH -DE -DP -Ei -Ej -Ej -Ei -EH -EM -EP -DE -EO -EO -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(158,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gp -gp -gB -go -gg -gp -gp -gp -gB -go -gg -gp -gq -gp -gB -ge -gp -gm -gm -gm -gp -ge -gg -gm -gq -gm -gB -go -gg -gm -gm -gm -gB -go -gg -gm -gm -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iT -ja -ja -ja -ja -ja -ja -ja -ja -ja -ja -ja -kJ -iQ -ls -iT -kJ -mI -jF -lt -lv -og -mm -oV -pt -pY -qN -rJ -lJ -sT -nf -qy -uI -ru -lJ -wa -qA -wL -wL -wL -qA -ys -mU -aa -aa -aa -aa -zH -zY -zN -AX -Bu -zH -BU -Cb -CB -CP -CX -Dh -Dn -Du -DE -DP -Ej -Eu -Ej -Ej -EH -EM -EP -DE -EO -EO -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(159,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -ge -gp -ge -gq -ge -gp -ge -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iL -iT -ja -jg -iR -ja -iR -ja -iR -ja -iR -kn -ja -kJ -lb -lt -iT -kJ -lt -lb -lt -iT -ja -kJ -lt -mU -pZ -qA -rK -lJ -sS -nf -uf -uG -vg -lJ -wb -wr -wO -xl -xG -wr -yt -lJ -aa -aa -aa -aa -zH -zZ -zN -AY -Bb -Ac -BV -Bs -Cs -Bs -Cs -Bs -Cs -Dv -DE -DP -Ei -Ej -Ej -Ei -EH -EM -EP -DE -EO -EO -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(160,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gq -gp -gB -go -gg -gp -gq -gp -gB -go -gg -gp -gq -gp -gB -ge -gp -gm -gm -gm -gp -ge -gg -gm -gq -gm -gB -go -gg -gm -gq -gm -gB -go -gg -gm -gq -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iL -iT -ja -jg -jq -ja -jq -ja -jq -ja -jq -kn -ja -kJ -iK -lu -lP -kL -mJ -iK -nt -iT -ja -kJ -oW -lJ -lJ -lJ -lJ -lJ -lJ -lJ -tZ -uF -tZ -lJ -mU -pU -lJ -lJ -lJ -pU -mV -lJ -yN -it -it -it -zH -zN -zH -AX -Bu -zH -BW -Cs -Bs -CQ -Bs -Cs -Bs -Dw -DE -DQ -Ek -Ek -Ek -Ek -EI -EM -EP -DE -Fc -Fc -DJ -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(161,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -gp -gp -gp -gp -gp -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iT -ja -jg -jq -ja -jq -ja -jq -ja -jq -kn -ja -kJ -jF -iK -iK -lb -iK -iQ -nu -lO -ja -mn -oX -iQ -iK -iK -pw -lW -it -tt -tt -tt -tt -tt -it -pw -lW -it -it -it -pf -iz -qP -iz -lf -iz -zJ -Aa -AF -AZ -Bv -Ac -BX -Bs -CC -BN -CY -Di -Do -zH -DE -DR -DR -DR -DR -DR -DR -DE -DE -DE -DJ -Fk -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(162,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -ge -ge -ge -ge -ge -ge -ge -gp -gp -gp -ge -ge -ge -ge -ge -ge -ge -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iL -iT -ja -jg -jq -ja -jq -ja -jq -ja -jq -kn -ja -kK -iK -lv -jY -jY -mm -iK -nv -iT -ja -kJ -nP -iK -qa -iK -iz -iz -it -ir -jc -lx -jc -ir -it -iz -iz -it -lW -it -iz -ir -HU -iu -iz -it -zK -Ab -AG -AM -Bw -zH -BY -Cs -CD -BM -CZ -Dj -Dj -Dx -DG -DS -El -Ev -Ev -EE -DS -DG -EQ -EU -Fd -Fc -Fq -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(163,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iL -iT -ja -ja -ja -ja -ja -ja -ja -ja -ja -ja -ja -kJ -lc -iT -ja -ja -kJ -lc -lt -nQ -jb -kL -oY -iK -iZ -iK -rL -rM -lX -tu -rM -uJ -vh -vw -lX -ws -wP -rR -iz -it -qf -yE -lA -za -zo -it -zH -Ac -zH -Ba -zH -zH -zH -zH -zH -zH -Da -Dj -Db -Dy -DH -DH -DH -DH -DH -DH -DH -DH -ER -EV -Fe -Fl -Fr -FF -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(164,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gq -gp -gB -gG -gg -gp -gq -gp -gB -gp -gp -gm -ge -gm -gp -gp -gp -gq -hH -gq -gp -gp -gp -gm -ge -gm -gp -gp -gg -gm -gq -gm -gB -gG -gg -gm -gq -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iU -jb -jb -jr -jv -jv -jb -jO -jR -jO -jb -jb -kL -iK -lw -jb -jb -mK -iK -nw -nR -oh -lt -oZ -pu -qb -pu -rM -mq -lX -mq -mp -mq -mq -mq -lX -mq -ws -kT -qP -kT -lk -jB -jB -jB -zp -it -zL -Ad -zN -AG -Bx -zH -BZ -Ce -BZ -zH -Db -Dj -Db -Dy -DI -DT -DT -DT -DT -DT -DT -DI -ER -EV -Fe -Fl -Fs -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(165,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gq -gq -gq -gB -gG -gg -gq -gq -gq -gB -gp -gp -gm -gq -gm -gp -gp -gp -hH -hJ -hH -gp -gp -gp -gm -gq -gm -gp -gp -gg -gq -gq -gq -gB -gG -gg -gq -gq -gq -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iK -iK -iQ -iK -iK -iK -iK -jF -iK -iK -iK -iK -iQ -iK -iK -iK -iK -mo -iK -iK -iQ -iZ -oi -ow -iZ -iK -iZ -iK -rN -rN -iz -iz -ug -iz -iz -iz -is -rN -rN -it -iz -it -yu -tz -yO -zb -mb -ir -zM -Ae -AH -Bb -By -zH -zN -zN -zN -zH -Dc -Dj -Dp -Dy -DH -DU -DU -DU -DU -DU -DU -DH -ER -EW -Fc -Fl -Ft -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(166,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gq -gp -gB -gG -gg -gp -gq -gp -gB -gp -gp -gm -ge -gm -gp -gp -gp -gq -hH -gq -gp -gp -gp -gm -ge -gm -gp -gp -gg -gm -gq -gm -gB -gG -gg -gm -gq -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -ld -iz -lQ -mp -mL -mW -nx -mW -mp -mL -pa -it -pf -it -rM -mq -iz -tv -iH -uK -vi -vx -iz -mq -vh -iz -pw -it -it -iz -yP -zc -iz -is -zN -Af -zN -Bb -AY -zH -Ca -Ct -CE -zH -Db -Dj -Db -Dy -DH -DV -DV -DV -DV -DV -DV -DH -ER -EV -Fe -Fl -Fu -DJ -Ef -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(167,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gp -gp -gp -gp -gp -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -it -it -lR -mq -mq -mq -mq -mq -mq -mq -pb -is -it -is -rM -mq -it -tw -lk -kr -vj -vy -iz -mq -wQ -is -it -is -yv -yF -ul -mp -nS -iz -zO -zQ -AI -Bc -Bz -zH -zN -zN -zN -zH -Db -Dj -Db -Dy -DH -DV -DV -DV -DV -DV -DV -DH -ER -EV -Fe -Fl -Fg -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(168,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -ge -ge -ge -ge -ge -ge -ge -gp -gp -gp -ge -ge -ge -ge -ge -ge -ge -ge -ge -go -go -go -ge -ge -ge -go -go -go -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -le -lx -lS -mq -mq -mq -mq -mq -mq -mq -pb -iz -qc -lx -rM -mq -iz -tx -uh -ks -mO -vz -ir -mq -vh -iz -xH -lx -yw -mq -mq -mq -zq -iz -zP -Ag -Ag -Ag -BA -BL -Cb -Cb -CF -BN -Db -Dj -Db -Dy -DH -DV -DV -Ew -Ew -DV -DV -DH -ER -EW -Fc -Fl -Fv -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(169,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -ge -ge -gV -ge -ge -ge -gp -gp -gp -gp -gp -ge -ge -ge -gV -ge -ge -ge -gf -gl -gl -gl -gA -ge -gf -gl -gl -gl -gA -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -kM -le -kM -lT -mq -mq -mX -ny -nS -mq -mq -pc -pv -qc -pv -rO -mq -iz -ty -ui -ks -ks -sq -iz -mq -mq -pv -xH -pv -ul -mq -mp -mq -ul -zy -zQ -Ag -AJ -Ag -BB -BM -Cc -Cc -Cc -BM -CZ -Dj -Db -Dy -DH -DV -DV -Ex -ED -DV -DV -DH -ER -EX -Ff -Fl -Fw -FG -Ef -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(170,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gq -gp -gB -go -gg -gp -gq -gp -gB -ge -ge -ge -gV -ge -ge -ge -gp -gm -gm -gm -gp -ge -ge -ge -gV -ge -ge -ge -gg -gm -gq -gm -gB -go -gg -gm -gq -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -le -iz -lS -mq -mq -mq -mq -mq -mq -mq -pb -lx -qc -iz -rP -mq -iz -tz -uj -ks -mO -vA -ir -mq -uM -lx -xH -iz -yx -mq -mq -mq -zr -iz -zR -Ag -Ag -Ag -BA -BN -Cb -Cb -CF -zH -Db -Dj -Db -Dy -DH -DV -DV -Ew -Ew -DV -DV -DH -ER -EY -Fc -Fl -Fx -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(171,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -gV -gV -gV -gV -gV -gV -ge -gp -ge -gq -ge -gp -ge -gV -gV -gV -gV -gV -gV -gg -gq -gq -gq -gB -go -gg -gq -gq -gq -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -it -it -lU -mq -mq -mq -mq -mq -mq -mq -pb -is -it -is -rP -mq -it -tA -lk -kr -vk -vB -iz -mq -wR -is -it -is -yy -yG -ul -mp -mX -iz -zS -zQ -AK -Bd -Bz -zH -zN -zN -zN -zH -Db -Dj -Db -Dy -DH -DV -DV -DV -DV -DV -DV -DH -ER -EV -Fe -Fl -Fg -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(172,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gg -gp -gp -gp -gB -go -gg -gp -gp -gp -gB -ge -ge -ge -gV -ge -gG -ge -gp -gm -gm -gm -gp -ge -gG -ge -gV -ge -ge -ge -gg -gm -gm -gm -gB -go -gg -gm -gm -gm -gB -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -lf -iz -lV -mr -mM -mY -nz -mY -mM -mr -pd -it -lW -iz -rP -mq -iz -qf -iH -uL -vl -mS -iz -mq -uM -iz -lW -it -it -iz -yQ -zd -iz -is -zN -Af -zN -Bb -Bf -zH -Cd -Ct -CG -zH -Db -Dj -Db -Dy -DH -DV -DV -DV -DV -DV -DV -DH -ER -EV -Fe -Fl -Fy -DJ -Ef -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(173,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -ge -ge -gV -gG -gG -gG -gp -gp -gp -gp -gp -gG -gG -gG -gV -ge -ge -ge -gh -gn -gn -gn -gC -ge -gh -gn -gn -gn -gC -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iz -it -iz -jc -lx -jc -iz -it -iz -it -iz -it -rN -rN -iz -iz -ug -iz -iz -iz -is -rN -rN -it -iz -it -yz -yH -yR -ze -vi -ir -zM -Ah -AH -Bb -BC -zH -zN -zN -zN -zH -Dc -Dj -Dp -Dy -DH -DW -DW -DW -DW -DW -DW -DH -ER -EW -Fc -Fl -Fz -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(174,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -gO -gO -gO -ge -ge -ge -ge -gV -ge -gG -ge -ge -gp -gp -gp -ge -ge -gG -ge -gV -ge -ge -ge -ge -ge -gU -ge -ge -ge -ge -gm -gm -gm -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iq -lW -it -mN -mN -mN -mN -mN -it -lW -iz -pw -iz -rP -mq -lX -mq -mp -mq -mq -mq -lX -mq -wt -kT -qP -kT -lk -jB -jB -jB -zs -it -zL -Ai -zN -AL -BD -zH -Ce -BZ -Ce -zH -Da -Dj -Db -Dy -DI -DT -DT -DT -DT -DT -DT -DI -ER -EV -Fe -Fl -FA -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(175,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gI -gP -gT -gX -hb -ge -ge -ge -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -ge -ge -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iw -iG -iN -iw -iG -iq -iw -iG -iq -iw -iG -iq -iw -iG -iN -iw -iG -iq -is -ir -iz -jc -lx -jc -iz -it -it -it -it -it -rQ -rP -lX -tB -rP -uM -uM -vC -lX -wt -wS -xm -iz -it -yA -yI -lA -zf -zt -it -zH -Ac -zH -Ba -zH -zH -zH -zH -zH -zH -Db -Dj -Db -Dy -DH -DH -DH -DH -DH -DH -DH -DH -ER -EV -Fe -Fl -FB -FF -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(176,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gJ -gp -gn -gp -hc -gK -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ir -ix -iH -iO -iV -iV -jh -iV -iV -jA -iV -iV -jS -iV -iV -iV -kN -iH -kT -lX -iH -iO -iV -iV -iV -kN -iz -lf -it -it -it -rR -lB -it -ir -jc -lx -jc -ir -it -iz -iz -it -pw -it -iz -ir -iH -iu -iz -it -zJ -Aj -AL -AF -BE -zH -Cf -Cu -CH -BM -CZ -Dj -Dj -Dz -DG -DX -Em -Ey -Ey -EF -DX -DG -ES -EU -Fg -Fc -Fq -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(177,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gK -gQ -gp -gY -gH -ge -gt -ge -gm -gm -gm -ge -ge -gG -gG -gG -ge -ge -gm -gm -gm -ge -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -is -iy -iH -iP -iW -iW -iW -iW -jw -iH -jG -iW -iW -iW -iW -iW -kO -iH -kT -lX -iH -iP -iW -iW -jw -jH -iz -pe -it -it -pw -iz -qP -it -tC -tC -tC -tC -tC -it -pw -lW -it -it -it -ld -iz -iH -iz -pe -iz -zK -Ak -AM -Be -Bv -Ac -Cg -Cu -CI -BN -Dd -Dd -Do -zH -DE -DY -DY -DY -DY -DY -DY -DE -DE -DE -DJ -Fk -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(178,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gm -gm -gm -gH -ge -gt -gG -gm -ho -gm -gp -go -gp -go -gp -go -gp -gm -ho -gm -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -iz -iz -ir -iz -jc -iz -iz -jx -jB -jH -iz -iz -jc -iz -ir -iz -iz -it -iz -jc -iz -iz -iz -jx -jH -ir -iz -it -it -iz -ir -lB -it -ir -jc -lx -jc -ir -it -iz -iz -iu -ir -it -it -it -lB -it -it -it -zH -zN -zH -AX -BF -zH -Ch -Cu -Cu -CR -Cu -Cu -Cu -DA -DE -DZ -En -En -En -En -EJ -EN -ET -DE -Fc -Fc -DJ -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(179,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gs -gr -gs -ge -ge -gL -gR -gm -gZ -hd -ge -gt -gG -gm -ho -gm -go -gp -go -gp -go -gp -go -gm -ho -gm -gG -gt -gG -gN -gS -gV -ha -hf -ge -ge -gs -gr -gs -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -iA -iI -iI -iX -iH -ji -iz -jx -jB -jH -iz -jT -iH -ko -kv -kP -lg -ir -lY -iH -mO -mZ -iz -jx -jH -iz -pe -iz -qd -qO -iH -sp -it -tD -uk -uN -uk -pa -ir -wu -wT -xn -xI -iz -ld -iz -iH -it -pf -ld -zH -Al -zN -Bf -Bb -Ac -Ci -Cu -Cu -Cu -Cu -Cu -Cu -DB -DE -Ea -Eo -Ep -Ep -Eo -EK -EN -ET -DE -EO -EO -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gs -gr -gs -ge -ge -gJ -gp -gn -gp -hc -ge -gt -gG -gm -ho -gm -gp -go -gp -go -gp -go -gp -gm -ho -gm -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gs -gr -gs -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iu -iB -iH -iH -iH -iH -jj -ir -jx -jB -jH -ir -jU -iH -iH -iH -iH -iH -kT -lk -jB -ks -na -ir -jx -jH -iz -lf -iz -qe -qO -mv -mS -sU -lU -mq -mq -mq -pb -sU -wv -mq -wU -xJ -iz -pf -iz -jB -it -iz -iz -zH -Am -zN -AX -BF -zH -Cj -Cb -CJ -CS -De -Dk -Dq -DC -DE -Ea -Ep -Ez -Ep -Ep -EK -EN -ET -DE -EO -EO -Ef -FE -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(181,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gQ -gp -gY -gH -ge -gt -ge -gm -ho -gm -ge -gq -ho -ho -ho -gq -ge -gm -ho -gm -ge -gt -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -iC -iJ -iJ -iY -iH -ji -iz -jx -jB -jH -iz -jV -iH -kp -kw -kQ -lh -ir -lZ -iH -mO -nb -iz -jx -jH -iz -pe -iz -qf -qO -mb -sq -iz -tE -mq -mq -mq -vD -iz -wv -wU -mq -xK -iz -pe -iz -jB -it -iH -iH -zH -zN -zH -Bf -Bb -zH -zH -Ba -zH -zH -Ac -zH -Ac -zH -DE -Ea -Eo -Ep -Ep -Eo -EK -EN -ET -DE -EO -EO -Ef -FD -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(182,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gK -gm -gm -gm -gH -gq -gt -gq -gm -ho -gm -gG -ho -ho -ho -ho -ho -gG -gm -ho -gm -gq -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -iz -iz -ir -iz -jc -iz -iz -jx -jB -jH -iz -iz -jc -iz -ir -iz -iz -it -iz -jc -iz -iz -iz -jx -jH -ir -iz -ir -qg -qO -jB -sr -sV -tF -ul -mq -mq -mp -wc -ww -mq -wU -xL -it -iz -it -iH -kT -jB -jB -zT -zX -zT -AX -BF -BK -Ck -AF -AL -AF -AL -AF -AL -Bd -DF -Eb -Eq -Eq -Eq -Eq -EL -EN -ET -DE -EO -EO -DJ -DJ -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(183,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gL -gR -gm -gZ -hd -gq -gt -gq -gm -ho -gm -gG -ho -ho -gq -ho -ho -gG -gm -ho -gm -gq -gt -gG -gN -gS -gV -ha -hf -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -is -iD -iH -iO -iV -iV -iV -iV -jy -iH -jI -iV -iV -iV -iV -iV -kN -iH -kT -lX -iH -iO -iV -iV -jy -jH -iz -pf -iz -qh -qO -rS -ss -iz -tE -mq -mq -mq -vD -iz -ww -wU -mq -xM -iz -lf -iz -jB -it -iH -iH -zH -zW -zH -Bg -Bc -BK -Ab -Cv -AM -Cv -AM -Cv -Dr -BF -DE -Ec -Ec -Ec -Ec -Ec -Ec -DE -DE -DE -Fb -Fb -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(184,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -gm -gH -gJ -gp -gn -gp -hc -gq -gt -gq -gm -ho -gm -gG -ho -ho -ho -ho -ho -gG -gm -ho -gm -gq -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ir -iE -iH -iP -iW -iW -jk -iW -iW -jC -iW -iW -jW -iW -iW -iW -kO -iH -kT -lX -iH -iP -iW -iW -iW -kO -iz -ld -iz -qi -qO -jB -sr -sV -tF -ul -mq -mq -mp -wc -ww -mq -wU -xN -iz -ld -iz -jB -it -it -it -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -Bf -Bb -DE -Ed -Ed -Ed -Ed -Ed -Ed -DE -EO -EO -EO -EO -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(185,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gQ -gp -gY -gH -ge -gt -ge -gm -ho -gm -ge -gq -ho -ho -ho -gq -ge -gm -ho -gm -ge -gt -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iw -iG -iN -iw -iG -iq -iw -iG -iq -iw -iG -iq -iw -iG -iN -iw -iG -iq -is -ir -iz -jc -lx -jc -iz -it -it -it -qj -iH -mb -st -iz -tG -um -uO -um -vE -iz -wx -wV -ww -xO -iz -lf -iz -iH -it -aa -aa -aa -zH -AN -Bh -Br -zH -BS -BS -BS -BS -BS -zH -AX -BF -DE -DE -DE -DE -DE -DE -DE -DE -EO -EO -EO -EO -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(186,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gm -gm -gm -gH -ge -gt -gG -gm -ho -gm -gp -go -gp -go -gp -go -gp -gm -ho -gm -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iM -iv -iF -iq -it -ms -mP -iH -kq -iH -oj -ox -it -it -it -lB -iu -it -it -ir -jc -lx -jc -ir -it -it -it -lB -it -it -iz -it -lB -it -aa -aa -aa -zH -AO -AU -Bs -BJ -Bs -Bs -Bs -Bs -Bs -Dg -Bf -Bb -BK -DL -Eg -Es -EB -Eg -DL -Eg -EO -EO -DJ -Fj -DJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(187,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gt -gr -gt -ge -ge -gL -gR -gm -gZ -hd -ge -gt -gG -gm -ho -gm -go -gp -go -gp -go -gp -go -gm -ho -gm -gG -gt -gG -gN -gS -gV -ha -hf -ge -ge -gt -gr -gt -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -iq -ir -kd -ks -ks -ks -ks -ks -oy -iz -pe -iz -qP -iz -ld -it -tH -tH -tH -tH -tH -it -pe -iz -qP -kT -iH -jB -jB -iH -kM -aa -aa -aa -zH -AP -Bi -Bt -zH -Cl -Cw -CK -CT -Df -zH -Ds -DD -BK -DL -Eg -Et -EC -Eg -DL -Eg -EO -EO -DJ -jB -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(188,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gJ -gp -gn -gp -hc -ge -gt -gG -gm -ho -gm -gp -go -gp -go -gp -go -gp -gm -ho -gm -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -jZ -kq -iH -iH -iH -ly -it -kd -ks -ks -ks -ks -ks -oz -ir -it -qk -qQ -qk -qk -qk -qm -rW -sw -rW -qm -qk -qk -qk -qQ -qk -qk -qk -qk -qQ -qk -aa -aa -aa -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zH -zN -zN -zH -DJ -DJ -Ef -Ef -DJ -DJ -DJ -Ef -Ef -DJ -jB -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(189,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gQ -gp -gY -gH -ge -gt -ge -gm -gm -gm -ge -ge -ge -ge -ge -ge -ge -gm -gm -gm -ge -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -ka -kr -kx -kR -li -kr -kT -iH -ks -ks -ks -ks -ks -oy -it -pw -qk -qR -rT -su -su -su -un -uP -un -su -su -su -rT -xo -qk -xW -qk -yJ -yS -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zH -Al -Am -zN -Ee -Ef -EA -DK -Ef -Ee -Ef -EA -DK -DJ -jB -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gm -gm -gm -gH -hh -hn -hr -hw -hD -hD -hD -hD -hD -hD -hD -hD -hD -hD -hD -hN -gm -gm -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kb -kr -ky -kS -li -kr -ir -mt -mQ -nc -nA -iH -iH -kk -it -lW -ql -qS -rU -sv -sv -sv -sv -sv -sv -sv -sv -sv -wW -xp -ql -xW -ql -yK -yC -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -zH -zH -zH -zH -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -DJ -jB -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gL -gR -gm -gZ -hd -hi -ho -hs -hx -gp -gp -gp -gp -gp -gp -gp -gp -gp -gp -gp -hO -ge -ge -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -it -jc -it -it -it -jc -it -it -it -it -is -jc -jc -is -it -pw -qm -qT -rU -sv -sW -tI -sv -sv -sv -sv -sv -sv -wW -xq -qm -xX -qk -yJ -yS -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -lJ -Fm -lJ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gs -gr -ge -ge -gJ -gq -gq -gq -hc -hi -ho -hs -hx -gp -gq -gp -ge -gq -gq -gq -ge -gp -gq -gp -hO -ge -ge -ge -gN -gS -gV -ha -hf -ge -ge -gr -gs -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kc -iH -kz -is -lj -lz -ma -mu -mR -nd -lk -iH -iH -ly -it -iz -qk -qT -rU -sv -sX -tJ -tI -sv -sv -sv -sv -sv -wW -xq -qk -ql -qk -qk -qQ -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -EZ -Fn -EZ -EZ -EZ -EZ -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gK -gQ -gp -gY -gH -hi -ho -hs -hx -gp -gp -gp -gp -gp -gp -gp -gp -gp -gp -gp -hO -ge -ge -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kd -ks -ks -kT -lk -lA -mb -mv -mS -iz -lk -kr -kr -kq -it -pw -qk -qT -rU -sv -sX -tK -tJ -tI -sv -sv -sv -sv -wW -xq -ql -xY -yB -yL -yT -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Fa -Fh -Fh -Fh -Fh -Fh -Fh -Fa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gM -gO -gO -gO -he -hj -hp -ht -hy -gn -gn -gn -gn -gn -gn -gn -gn -gn -gn -gn -hP -gm -gm -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iu -ke -ks -kA -ir -iz -lB -iz -iz -iz -ir -nB -mw -ks -oA -it -lW -qk -qU -rU -sv -sW -tL -tL -tL -tL -tL -vF -sv -wW -xp -xP -xZ -yC -yC -yS -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -Fh -Fh -Fh -Fh -Fh -Fh -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gU -ge -ge -ge -gt -ge -hz -hE -hE -ge -ge -ge -ge -ge -ge -ge -hE -hE -hQ -ge -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kd -kr -kB -kU -kr -kr -kr -kr -kr -iz -nC -mw -ks -oB -it -pw -ql -qV -rU -sv -sY -tK -tK -tK -vm -tM -wd -sv -wW -xr -xQ -xZ -yC -yC -yU -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -Fi -Fi -Fi -Fi -Fh -Fi -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -hz -hE -hE -hE -hE -ho -gq -ho -hE -hE -hE -hE -hQ -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -is -kf -kr -kC -kV -kr -ks -mc -mw -kr -iz -nC -mw -ks -oC -it -lW -qk -qW -rU -sv -sZ -sY -tK -tK -tK -vF -sZ -sv -wW -xp -xR -xZ -yC -yC -yV -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -Fi -Fi -Fi -Fi -Fh -Fi -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gt -gr -gt -ge -ge -gN -gS -gV -ha -hf -gG -gt -gG -hz -hE -hE -ho -hE -hE -ho -hE -hE -ho -hE -hE -hQ -gG -gt -gG -gN -gS -gV -ha -hf -ge -ge -gt -gr -gt -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ir -kg -kr -kD -kW -kr -ks -md -mw -kr -iz -nC -mw -ks -oD -it -pw -qk -qT -rU -sv -sW -tL -uo -tK -tK -tK -vF -sv -wW -xq -ql -ya -yD -yM -yW -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -Fh -Fo -Fh -Fh -Fh -Fh -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -hz -hE -hE -gq -ho -hE -hE -hE -ho -gq -hE -hE -hQ -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -is -kh -kr -kE -kX -kr -ks -ks -ks -kr -kT -lk -ks -ks -oE -is -iz -qk -qT -rU -sv -sY -tM -tM -tM -tM -tM -wd -sv -wW -xq -qk -ql -qk -qk -qk -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Fa -Fh -Fp -FC -Fh -Fh -Fh -Fa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gt -ge -hz -hE -hE -hE -gq -ho -hE -ho -gq -hE -hE -hE -hQ -ge -gt -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ir -ki -kr -kF -kY -kr -ks -md -mw -kr -iz -nC -mw -ks -oF -it -pw -qm -qT -rU -sv -sv -sv -sv -uQ -vn -tK -we -sv -wW -xq -qm -xW -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -EZ -EZ -EZ -EZ -EZ -EZ -EZ -EZ -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -hu -hz -ge -hE -hE -hE -gq -ho -gq -hE -hE -hE -ge -hQ -hu -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -is -kj -kr -kC -kV -kr -ks -mc -mw -kr -iz -nC -mw -ks -oC -it -pw -ql -qX -rU -sv -sv -sv -sv -sv -uQ -vn -we -sv -wW -xs -ql -xX -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gs -gr -ge -ge -gN -gS -gV -ha -hf -gG -gt -hu -hz -hE -ge -hE -hE -hE -hE -hE -hE -hE -ge -hE -hQ -hu -gt -gG -gN -gS -gV -ha -hf -ge -ge -gr -gs -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kd -kr -kB -kZ -kr -kr -kr -kr -kr -iz -nC -mw -ks -oB -it -lW -qk -qY -rU -sv -sv -sv -sv -sv -sv -uQ -wd -sv -wW -xt -qk -xW -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -hu -hz -ge -hE -hE -hE -gv -hG -gv -hE -hE -hE -ge -hQ -hu -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iu -ke -ks -kG -ir -ll -lC -me -mx -lC -ir -nB -mw -ks -kd -it -it -qk -qS -rU -sv -sv -sv -sv -sv -sv -sv -sv -sv -wW -xp -qk -qk -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gt -ge -hz -hE -hE -hE -gv -hG -hE -hG -gv -hE -hE -hE -hQ -ge -gt -gG -gG -gG -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kd -ks -ks -kT -lk -lD -lE -lE -lD -iz -lk -kr -kr -oG -it -pe -ql -qZ -rV -rV -rV -rV -rV -rV -rV -rV -rV -rV -rV -Ih -ql -yb -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -hz -hE -hE -gv -hG -hE -hE -hE -hG -gv -hE -hE -hQ -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -kk -kt -kH -is -lm -lE -mf -my -lE -ne -lk -nT -ok -kh -it -it -qk -HV -HV -HV -HV -HV -HV -HV -HV -HV -HV -HV -HV -HV -qk -qk -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gt -gr -gt -ge -ge -gN -gS -gV -ha -hf -gG -gt -gG -hz -hE -hE -hG -hE -hE -hG -hE -hE -hG -hE -hE -hQ -gG -gt -gG -gN -gS -gV -ha -hf -ge -ge -gt -gr -gt -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -it -it -it -it -it -it -iu -it -it -ir -it -it -it -it -it -it -it -qk -ra -ra -ra -ra -ra -ra -ra -ra -ra -ra -ra -ra -ra -qk -qk -qk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -hz -hE -hE -hE -hE -hG -gv -hG -hE -hE -hE -hE -hQ -gG -gt -ge -ge -ge -gV -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ta -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -ge -hz -hE -hE -ge -ge -ge -ge -ge -ge -ge -hE -hE -hQ -ge -gt -ge -ge -ge -gW -ge -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gm -gm -hA -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -hR -hU -hX -hZ -ic -gT -gT -gT -im -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -ge -ge -hB -hk -hk -hk -hk -hk -hk -hk -hk -hk -hk -hk -hS -hV -hG -ia -gK -ig -hk -ij -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gs -gr -ge -ge -gN -gS -gV -ha -hf -gG -ge -ge -hB -hk -gv -hk -ge -gv -gv -gv -ge -hk -gv -hk -hS -hV -hG -ia -id -gv -gv -gv -in -ge -ge -gr -gs -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -ge -ge -hB -hk -hk -hk -hk -hk -hk -hk -hk -hk -hk -hk -hS -hV -hG -ia -ie -ih -gm -ik -io -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gm -gm -hC -hF -hF -hF -hF -hF -hF -hF -hF -hF -hF -hF -hT -hW -hY -ib -gK -gm -gm -gm -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(213,1,1) = {" -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -ge -gm -gm -gm -ge -ge -ge -ge -ge -ge -ge -gm -gm -gm -ge -gt -ge -gK -ig -hk -ij -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(214,1,1) = {" -ac -af -af -af -af -af -af -af -af -af -af -bl -bm -bm -bm -bm -bm -bm -bm -bm -bm -bm -bl -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -gm -hG -gm -hk -gx -hk -gx -hk -gx -hk -gm -hG -gm -gG -gt -ge -id -hk -gu -hk -in -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(215,1,1) = {" -ac -af -ax -af -af -aQ -aT -aI -af -ay -af -bl -bm -bm -bm -bm -bm -bm -bm -bm -bm -bm -bl -dy -dU -dU -dy -dU -dU -dy -dU -dU -dy -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gt -gr -gt -ge -ge -gN -gS -gV -ha -hf -gG -gt -gG -gm -hG -gm -gx -hk -gx -hk -gx -hk -gx -gm -hG -gm -gG -gt -ge -ie -ih -gm -ik -io -ge -ge -gt -gr -gt -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(216,1,1) = {" -ac -af -ay -af -af -af -af -af -af -ay -af -bl -bm -bm -bm -bm -cj -cw -bm -bm -bm -bm -bl -dy -dU -dU -eJ -dU -dU -eJ -dU -dU -dy -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -gm -hG -gm -hk -gx -hk -gx -hk -gx -hk -gm -hG -gm -gG -gt -ge -gK -gm -gm -gm -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(217,1,1) = {" -ac -af -ay -aI -aO -af -aU -af -af -aI -af -bl -bm -bm -bm -bm -bm -cx -bm -bm -bm -bm -bl -dy -dU -dU -dy -dU -dU -dy -dU -dU -dy -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gt -ge -gm -hG -gm -ge -gv -hG -hG -hG -gv -ge -gm -hG -gm -ge -gt -ge -gK -ig -hk -ij -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(218,1,1) = {" -ac -af -af -af -af -af -ax -af -af -af -af -bl -bm -bm -bm -bm -bm -bm -bm -bm -bm -bm -bl -dy -dy -dy -dy -dy -dy -dy -dy -dy -dy -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gv -gm -hG -gm -gG -hG -hG -hG -hG -hG -gG -gm -hG -gm -gv -gt -gv -id -hk -gu -hk -in -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(219,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -gN -gS -gV -ha -hf -gG -gt -gv -gm -hG -gm -gG -hG -hG -gv -hG -hG -gG -gm -hG -gm -gv -gt -gv -ie -ih -gm -ik -io -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(220,1,1) = {" -ac -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -bl -bn -bp -bF -cf -bF -bn -cf -bF -bo -bn -bl -dz -dV -er -eK -eL -eK -eL -fi -fv -fC -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gv -gm -hG -gm -gG -hG -hG -hG -hG -hG -gG -gm -hG -gm -gv -gt -gv -gK -gm -gm -gm -gH -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(221,1,1) = {" -ac -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -bl -bo -bF -bU -bn -bn -bG -cK -cR -cR -cf -bl -dz -dW -es -eL -eK -eL -eK -fj -fw -fC -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gt -ge -gm -hG -gm -ge -gv -hG -hG -hG -gv -ge -gm -hG -gm -ge -gt -ge -gK -ig -hk -ij -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(222,1,1) = {" -ac -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -bl -bn -bG -bV -cg -bn -bn -bU -cS -cT -bn -bl -dz -dX -er -eK -eL -eK -eL -fi -fx -fC -fN -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gs -gr -gs -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -gm -hG -gm -hk -gx -hk -gx -hk -gx -hk -gm -hG -gm -gG -gt -ge -id -hk -gu -hk -in -ge -ge -gs -gr -gs -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(223,1,1) = {" -ac -ak -az -az -ak -az -az -ak -az -az -ak -bl -bp -bH -bW -ch -bn -bo -cL -cT -cR -bp -bl -dz -dY -es -eL -eK -eL -eK -fj -fy -fC -fN -fO -fO -fO -fO -fO -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gs -gr -gs -ge -ge -gN -gS -gV -ha -hf -gG -gt -gG -gm -hG -gm -gx -hk -gx -hk -gx -hk -gx -gm -hG -gm -gG -gt -ge -ie -ih -gm -ik -io -ge -ge -gs -gr -gs -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(224,1,1) = {" -ac -al -aA -aJ -ak -aJ -aJ -ak -aJ -aA -be -bl -bn -bn -bF -cf -bn -bF -bn -cU -dd -bn -bl -dz -dV -er -eK -eL -eK -eL -fi -fv -fC -fN -fO -fR -fR -fR -fR -fR -fR -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -gG -gm -hG -gm -hk -gx -hk -gx -hk -gx -hk -gm -hG -gm -gG -gt -ge -gK -gm -gm -gm -gH -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(225,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fO -fS -fS -fS -fS -fS -fS -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -gt -ge -gm -gm -gm -ge -ge -gG -gG -gG -ge -ge -gm -gm -gm -ge -gt -ge -gK -ig -hk -ij -gH -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(226,1,1) = {" -ac -am -aB -ao -ao -aR -aR -aR -aR -aR -aR -bl -bq -bI -bX -bJ -ck -cy -bJ -cV -de -dj -ac -dA -dZ -et -eM -eU -eU -eU -fk -dZ -fD -fN -fO -ab -ab -ab -ab -ab -ab -fZ -ga -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -gG -gG -gG -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gH -id -hk -gu -hk -in -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(227,1,1) = {" -ac -an -ao -aK -ao -aS -aV -ba -bc -bc -bf -bl -br -bJ -bJ -bJ -cl -cz -bJ -cW -df -dk -ac -dB -dZ -eu -eN -eU -eU -eU -fk -dZ -fD -fN -fO -ab -ab -ab -ab -ab -ab -fZ -ga -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gV -ge -ge -ge -ge -ge -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -gm -ge -ge -ge -if -ii -gO -il -ip -gK -gm -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(228,1,1) = {" -ac -ao -aC -aL -aP -ao -aW -bb -bb -bb -bg -bl -bs -bJ -bZ -ci -cm -cA -bJ -cX -dg -dl -ac -dC -ea -eu -eO -eU -eU -eU -fl -dZ -fD -fN -fO -ab -ab -ab -ab -ab -ab -fZ -ga -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gr -gr -gr -ge -ge -ge -ge -gW -ge -ge -ge -ge -ge -gV -ge -gG -ge -ge -hk -hk -hk -ge -ge -gG -ge -gV -ge -ge -ge -ge -gT -gT -gT -ge -ge -ge -gr -gr -gr -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(229,1,1) = {" -ac -ao -aC -aM -aP -ao -aX -bb -bb -bb -bg -bl -bt -bJ -ca -ci -bJ -bJ -bJ -bJ -dh -dm -ac -dD -dZ -eu -eP -eU -eU -eU -fk -dZ -fD -fN -fO -ab -ab -ab -ab -ab -ab -fZ -ga -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -ge -ge -gV -gG -gG -gG -hk -hk -hk -hk -hk -gG -gG -gG -gV -ge -ge -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(230,1,1) = {" -ac -ap -ao -aN -ao -aS -aV -bb -bd -bd -bh -bl -bu -bK -cb -ci -cn -cB -bJ -bJ -cl -dn -ac -dE -dZ -ev -eM -eU -eU -eU -fk -dZ -fD -fN -fO -ab -ab -ab -ab -ab -ab -fZ -ga -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gm -gm -gE -gx -gj -gm -gm -gm -gE -ge -ge -ge -gV -ge -gG -ge -hk -gm -gm -gm -hk -ge -gG -ge -gV -ge -ge -ge -gj -gm -gm -gm -gE -gx -gj -gm -gm -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(231,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fO -fT -fT -fT -fT -fT -fT -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -gV -gV -gV -gV -gV -gV -ge -hk -ge -gv -ge -hk -ge -gV -gV -gV -gV -gV -gV -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(232,1,1) = {" -ac -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -bl -bv -bL -bL -bL -co -cC -cM -cM -cM -do -bl -dF -eb -ew -ex -eV -fb -ex -fm -fz -fE -fN -fP -fU -fU -fU -fU -fU -fU -fP -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gv -gm -gE -gx -gj -gm -gv -gm -gE -ge -ge -ge -gV -ge -ge -ge -hk -gm -gm -gm -hk -ge -ge -ge -gV -ge -ge -ge -gj -gm -gv -gm -gE -gx -gj -gm -gv -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(233,1,1) = {" -ac -aq -aD -aq -aq -aq -aq -aq -aq -aD -aq -bl -bv -bL -cc -bM -cp -cD -bM -cY -cM -do -bl -dG -ec -ex -ex -eW -eW -fh -fn -fA -fF -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -ge -ge -gV -ge -ge -ge -hk -hk -hk -hk -hk -ge -ge -ge -gV -ge -ge -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(234,1,1) = {" -ac -aq -aq -aq -aq -aD -aD -aq -aq -aq -aq -bl -bw -bM -cc -bM -cp -cD -cN -cY -bM -dp -bl -dG -ed -ey -ex -ex -ex -fh -fo -fA -fF -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -ge -ge -ge -ge -ge -ge -ge -hk -hk -hk -ge -ge -ge -ge -ge -ge -ge -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(235,1,1) = {" -ac -aq -aD -aq -aq -aq -aq -aq -aq -aD -aq -bl -bx -bN -cc -bM -cp -cD -bM -cY -cO -dq -bl -dG -ee -ex -ex -eX -eX -fh -fp -fA -fF -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(236,1,1) = {" -ac -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -bl -bx -bN -bN -bN -cq -cE -cO -cO -cO -dq -bl -dF -ef -ez -ex -eY -fc -ex -fq -fz -fG -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gv -gm -gE -gG -gj -gm -gv -gm -gE -hk -hk -gm -ge -gm -hk -hk -hk -gv -hH -gv -hk -hk -hk -gm -ge -gm -hk -hk -gj -gm -gv -gm -gE -gG -gj -gm -gv -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(237,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gv -gv -gv -gE -gG -gj -gv -gv -gv -gE -hk -hk -gm -gv -gm -hk -hk -hk -hH -hK -hH -hk -hk -hk -gm -gv -gm -hk -hk -gj -gv -gv -gv -gE -gG -gj -gv -gv -gv -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -ac -ar -ar -ar -ar -ar -ar -ar -ar -ar -ar -bl -by -by -by -by -by -by -by -cZ -di -dr -bl -dH -eg -eA -eQ -eZ -fd -eZ -fd -eZ -eD -fN -fQ -fQ -fQ -fX -fX -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gv -gm -gE -gG -gj -gm -gv -gm -gE -hk -hk -gm -ge -gm -hk -hk -hk -gv -hH -gv -hk -hk -hk -gm -ge -gm -hk -hk -gj -gm -gv -gm -gE -gG -gj -gm -gv -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -ac -ar -ar -ar -ar -ar -ar -ar -ar -ar -ar -bl -by -bO -cd -by -cr -by -by -da -di -dr -bl -dI -eh -eB -eQ -fa -fe -fa -fe -fa -eB -fN -fQ -fQ -fQ -fY -fX -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -ac -ar -ar -ar -ar -ar -ar -ar -ar -ar -ar -bl -by -by -by -by -by -by -by -db -di -dr -bl -dJ -ei -eC -eQ -eQ -eQ -eQ -eQ -eQ -eQ -fN -fQ -fQ -fQ -fX -fX -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -ge -ge -ge -ge -ge -ge -ge -hk -hk -hk -ge -ge -ge -ge -ge -ge -ge -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(241,1,1) = {" -ac -ar -ar -ar -ar -ar -ar -ar -ar -ar -ar -bl -by -bP -cd -by -by -cF -by -cZ -di -dr -bl -dK -ej -eD -eQ -eZ -fd -eZ -fd -eZ -eD -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -hk -hk -hk -hk -hk -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -gi -gu -gu -gu -gD -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(242,1,1) = {" -ac -ar -ar -ar -ar -ar -ar -ar -ar -ar -ar -bl -by -by -by -by -by -by -by -cZ -di -dr -bl -dL -ek -eE -eQ -fa -fe -fa -fe -fa -eB -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gv -gm -gE -gx -gj -gm -gv -gm -gE -gx -gj -gm -gv -gm -gE -ge -hk -gm -gm -gm -hk -ge -gj -hk -gv -hk -gE -gx -gj -gm -gv -gm -gE -gx -gj -gm -gv -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(243,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -ge -hk -ge -gv -ge -hk -ge -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -gx -gj -gv -gv -gv -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(244,1,1) = {" -ac -as -as -as -as -as -as -as -as -as -as -bl -bz -bQ -bQ -bQ -cs -cG -bQ -bQ -bQ -ds -bl -dM -el -el -el -el -ff -ff -ff -ff -fH -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gm -gm -gE -gx -gj -gm -gm -gm -gE -gx -gj -gm -gv -gm -gE -ge -hk -gm -gm -gm -hk -ge -gj -hk -gv -hk -gE -gx -gj -gm -gm -gm -gE -gx -gj -gm -gm -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(245,1,1) = {" -ac -as -aE -as -as -as -as -as -as -aE -as -bl -bA -bQ -bQ -bQ -cs -cG -bQ -bQ -bQ -dt -bl -dN -em -eF -em -em -fg -em -em -em -fI -fN -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -hk -hk -hk -hk -hk -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -gk -gw -gw -gw -gF -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(246,1,1) = {" -ac -as -as -as -aE -as -as -aE -as -as -as -bl -bA -bQ -bQ -bQ -cs -cG -bQ -bQ -bQ -dt -bl -dN -em -em -em -em -em -em -em -em -fI -fN -fP -fV -fV -fV -fV -fV -fV -fP -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -ge -hv -hv -hv -ge -ge -ge -ge -ge -ge -ge -ge -ge -hv -hv -hv -ge -ge -ge -gx -gx -gx -ge -ge -ge -gx -gx -gx -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(247,1,1) = {" -ac -as -aE -as -as -as -as -as -as -aE -as -bl -bA -bQ -bQ -bQ -cs -cG -bQ -bQ -bQ -dt -bl -dN -em -em -em -em -em -em -fr -em -fI -fN -fO -fT -fT -fT -fT -fT -fT -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gi -gu -gu -gu -gu -gu -gu -gu -gu -gu -gD -hl -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -hl -gi -gu -gu -gu -gu -gu -gu -gu -gu -gu -gD -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(248,1,1) = {" -ac -as -as -as -as -as -as -as -as -as -as -bl -bB -bQ -bQ -bQ -cs -cG -bQ -bQ -bQ -du -bl -dO -en -en -en -en -en -en -en -en -fJ -fN -fO -ab -ab -ab -ab -ab -ab -fZ -gb -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gm -gm -gm -gm -gm -gm -gm -gm -gE -ge -hk -gv -gv -gv -hk -hk -hk -hk -hk -hk -hk -hk -hk -gv -gv -gv -hk -ge -gj -gm -gm -gm -gm -gm -gm -gm -gm -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(249,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fO -ab -ab -ab -ab -ab -ab -fZ -gb -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -hk -gv -hk -hk -hk -hk -hk -hk -hH -hk -hk -hk -hk -hk -hk -gv -hk -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(250,1,1) = {" -ac -at -aF -aF -aF -aF -aY -aY -aY -aY -bi -bl -bC -bR -bR -bR -ct -cH -cP -cP -cP -dv -bl -dP -dP -dP -dP -dP -dP -dP -dP -dP -dP -fN -fO -ab -ab -ab -ab -ab -ab -fZ -gb -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -hk -gv -hk -hk -hk -hk -hk -hH -hL -hH -hk -hk -hk -hk -hk -gv -hk -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(251,1,1) = {" -ac -au -aG -aG -aG -aG -aG -aG -aG -aG -bj -bl -bD -bS -ce -bS -cu -cI -bS -dc -bS -dw -bl -dQ -eo -eG -eR -eR -eR -eR -fs -fB -fK -fN -fO -ab -ab -ab -ab -ab -ab -fZ -gb -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -hk -gv -hk -hk -hk -hk -hk -hk -hH -hk -hk -hk -hk -hk -hk -gv -hk -ge -gj -gm -gy -gm -gy -gm -gy -gm -gy -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(252,1,1) = {" -ac -au -aG -aG -aG -aG -aG -aG -aG -aG -bj -bl -bD -bS -ce -bS -cu -cI -bS -dc -bS -dw -bl -dR -ep -eH -eS -eS -eS -eS -ft -fB -fL -fN -fO -ab -ab -ab -ab -ab -ab -fZ -gb -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gj -gm -gm -gm -gm -gm -gm -gm -gm -gm -gE -ge -hk -gv -gv -gv -hk -hk -hk -hk -hk -hk -hk -hk -hk -gv -gv -gv -hk -ge -gj -gm -gm -gm -gm -gm -gm -gm -gm -gm -gE -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(253,1,1) = {" -ac -au -aG -aG -aG -aG -aG -aG -aG -aG -bj -bl -bD -bS -ce -bS -cu -cI -bS -dc -bS -dw -bl -dS -eq -eI -eT -eT -eT -eT -fu -fB -fM -fN -fO -fS -fS -fS -fS -fS -fS -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -gk -gw -gw -gw -gw -gw -gw -gw -gw -gw -gF -hl -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -ge -hk -hk -hk -hk -hk -hl -gk -gw -gw -gw -gw -gw -gw -gw -gw -gw -gF -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(254,1,1) = {" -ac -av -aH -aH -aH -aH -aZ -aZ -aZ -aZ -bk -bl -bE -bT -bT -bT -cv -cJ -cQ -cQ -cQ -dx -bl -dT -dT -dT -dT -dT -dT -dT -dT -dT -dT -fN -fO -fW -fW -fW -fW -fW -fW -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -ge -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(255,1,1) = {" -ab -aw -aw -aw -aw -aw -aw -aw -aw -aw -aw -ab -aw -aw -aw -aw -aw -aw -aw -aw -aw -aw -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab -fO -fO -fO -fO -fO -fO -fO -fO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HT -HT -"} diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm deleted file mode 100644 index 7c3b1d0e4b..0000000000 --- a/_maps/map_files/generic/z3.dmm +++ /dev/null @@ -1,260 +0,0 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/obj/docking_port/stationary{dheight = 0;dir = 2;dwidth = 11;height = 22;id = "whiteship_away";name = "Deep Space";width = 35},/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z4.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm deleted file mode 100644 index 8ffc46ab5a..0000000000 --- a/_maps/map_files/generic/z5.dmm +++ /dev/null @@ -1,70943 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) -"ab" = ( -/turf/closed/mineral, -/area/mine/explored) -"ac" = ( -/turf/closed/mineral, -/area/mine/unexplored) -"ad" = ( -/turf/closed/mineral/random, -/area/mine/unexplored) -"ae" = ( -/turf/closed/mineral/random/low_chance, -/area/mine/explored) -"af" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ag" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"ah" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ai" = ( -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"aj" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"ak" = ( -/turf/closed/mineral/random/high_chance, -/area/mine/unexplored) -"al" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"am" = ( -/obj/item/stack/rods, -/obj/structure/door_assembly/door_assembly_ext{ - name = "Broken External Airlock" - }, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"an" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ao" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ap" = ( -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aq" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"ar" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"as" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/mine/abandoned) -"at" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"au" = ( -/obj/item/weapon/shard, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"av" = ( -/turf/closed/wall, -/area/mine/abandoned) -"aw" = ( -/obj/item/stack/rods, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/shard, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ax" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"ay" = ( -/obj/structure/lattice, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/space, -/area/space) -"az" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aA" = ( -/obj/item/clothing/mask/facehugger/dead, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"aB" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"aC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aF" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"aG" = ( -/obj/effect/decal/remains/xeno, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"aH" = ( -/obj/item/stack/rods, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aI" = ( -/obj/item/weapon/shard, -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aJ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aK" = ( -/obj/structure/table, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"aL" = ( -/obj/structure/table, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"aM" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/mine/abandoned) -"aN" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aO" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aP" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aQ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"aR" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"aS" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aT" = ( -/obj/structure/alien/weeds/node, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aU" = ( -/obj/item/clothing/mask/facehugger/dead, -/obj/structure/alien/weeds, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aV" = ( -/obj/item/weapon/shard, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"aW" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"aX" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"aY" = ( -/obj/effect/decal/remains/xeno, -/obj/structure/alien/weeds, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"aZ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"ba" = ( -/obj/item/weapon/shard, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bb" = ( -/obj/structure/lattice, -/obj/item/weapon/shard{ - icon_state = "small" - }, -/obj/item/clothing/mask/facehugger/dead, -/turf/open/space, -/area/mine/abandoned) -"bc" = ( -/obj/structure/lattice, -/turf/open/space, -/area/mine/abandoned) -"bd" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"be" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bf" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bg" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/mine/abandoned) -"bh" = ( -/obj/effect/decal/remains/xeno, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"bi" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"bj" = ( -/obj/effect/decal/remains/xeno, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/mine/abandoned) -"bk" = ( -/obj/structure/table, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bl" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bm" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/mine/abandoned) -"bn" = ( -/obj/item/clothing/mask/facehugger/dead, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"bo" = ( -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"bp" = ( -/obj/structure/table, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bq" = ( -/obj/item/weapon/shard, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/mine/abandoned) -"br" = ( -/obj/item/weapon/shard{ - icon_state = "small" - }, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bs" = ( -/turf/open/floor/plasteel/black, -/area/mine/abandoned) -"bt" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/abandoned) -"bu" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/floorgrime, -/area/mine/abandoned) -"bv" = ( -/obj/structure/table, -/obj/item/weapon/paper/crumpled, -/obj/item/seeds/cherry, -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, -/turf/open/floor/plasteel/floorgrime, -/area/mine/abandoned) -"bw" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bx" = ( -/obj/structure/alien/resin/membrane, -/obj/structure/alien/weeds, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"by" = ( -/obj/item/clothing/mask/facehugger/dead, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bz" = ( -/turf/open/floor/plasteel/floorgrime, -/area/mine/abandoned) -"bA" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"bB" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plasteel/floorgrime, -/area/mine/abandoned) -"bC" = ( -/obj/structure/alien/weeds, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bD" = ( -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bE" = ( -/obj/effect/decal/remains/xeno, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"bF" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/mine/abandoned) -"bG" = ( -/obj/effect/decal/remains/human, -/obj/item/clothing/suit/xenos, -/obj/item/clothing/head/xenos, -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"bH" = ( -/obj/structure/table, -/obj/item/stack/sheet/mineral/sandstone{ - amount = 30 - }, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/mine/abandoned) -"bI" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless/floorgrime, -/area/mine/abandoned) -"bJ" = ( -/obj/structure/alien/resin/wall, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bK" = ( -/obj/effect/decal/remains/xeno, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bL" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored) -"bM" = ( -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/airless/floorgrime, -/area/mine/abandoned) -"bN" = ( -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/mine/abandoned) -"bO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bP" = ( -/obj/structure/grille, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/weapon/shard, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bQ" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"bR" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"bS" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/explored) -"bT" = ( -/obj/effect/decal/remains/human, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless, -/area/mine/abandoned) -"bU" = ( -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/mine/abandoned) -"bV" = ( -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"bW" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"bX" = ( -/turf/open/floor/plasteel{ - icon_plating = "asteroid"; - icon_state = "asteroid"; - name = "Asteroid" - }, -/area/mine/unexplored) -"bY" = ( -/obj/item/weapon/rack_parts, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"bZ" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating/airless/astplate, -/area/mine/abandoned) -"ca" = ( -/obj/item/clothing/under/soviet, -/obj/item/clothing/head/ushanka, -/turf/open/floor/plasteel{ - icon_plating = "asteroid"; - icon_state = "asteroid"; - name = "Asteroid" - }, -/area/mine/unexplored) -"cb" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plasteel{ - icon_plating = "asteroid"; - icon_state = "asteroid"; - name = "Asteroid" - }, -/area/mine/unexplored) -"cc" = ( -/obj/structure/alien/resin/wall, -/turf/open/floor/plasteel/airless/floorgrime, -/area/mine/abandoned) -"cd" = ( -/turf/open/floor/plasteel/airless/floorgrime, -/area/mine/abandoned) -"ce" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless/astplate, -/area/mine/abandoned) -"cf" = ( -/obj/item/weapon/storage/toolbox/syndicate, -/obj/structure/alien/weeds/node, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/mine/abandoned) -"cg" = ( -/obj/effect/decal/remains/xeno, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, -/obj/structure/alien/weeds, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/mine/abandoned) -"ch" = ( -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"ci" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/grille/broken, -/obj/item/weapon/shard{ - icon_state = "small" - }, -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/mine/abandoned) -"cj" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored) -"ck" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/abandoned) -"cl" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/abandoned) -"cm" = ( -/obj/item/weapon/shard{ - icon_state = "medium" - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/abandoned) -"cn" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/grille/broken, -/obj/item/stack/rods, -/obj/item/weapon/shard, -/turf/open/floor/plating/airless/astplate, -/area/mine/abandoned) -"co" = ( -/obj/structure/grille, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/abandoned) -"cp" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 10 - }, -/area/mine/unexplored) -"cq" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/unexplored) -"cr" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 6 - }, -/area/mine/unexplored) -"cs" = ( -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored) -"ct" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp) -"cu" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating/asteroid/airless/cave, -/area/mine/unexplored) -"cv" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp) -"cw" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/clothing/glasses/meson, -/obj/item/device/flashlight, -/obj/item/weapon/storage/bag/ore, -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/item/weapon/shovel{ - attack_verb = list("ineffectively hit"); - desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; - force = 1; - name = "safety shovel"; - pixel_x = -5; - throwforce = 1 - }, -/obj/item/weapon/pickaxe{ - attack_verb = list("ineffectively hit"); - desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; - force = 1; - name = "safety pickaxe"; - pixel_x = 5; - throwforce = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cx" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/clothing/glasses/meson, -/obj/item/device/flashlight, -/obj/item/weapon/storage/bag/ore, -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/item/weapon/shovel{ - attack_verb = list("ineffectively hit"); - desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; - force = 1; - name = "safety shovel"; - pixel_x = -5; - throwforce = 1 - }, -/obj/item/weapon/pickaxe{ - attack_verb = list("ineffectively hit"); - desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; - force = 1; - name = "safety pickaxe"; - pixel_x = 5; - throwforce = 1 - }, -/obj/machinery/camera{ - c_tag = "Labor Camp Storage"; - dir = 8; - network = list("Labor") - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cy" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/explored) -"cz" = ( -/obj/machinery/light, -/turf/open/floor/plating/asteroid/airless, -/area/mine/north_outpost) -"cA" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/o2{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"cB" = ( -/obj/structure/table, -/obj/item/device/healthanalyzer, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"cC" = ( -/obj/structure/sign/bluecross_2{ - pixel_y = 32 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"cD" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp Medical"; - dir = 8; - network = list("Labor") - }, -/obj/structure/bed, -/obj/item/weapon/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"cE" = ( -/turf/closed/wall, -/area/mine/laborcamp) -"cF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cG" = ( -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cH" = ( -/turf/closed/wall, -/area/mine/explored) -"cI" = ( -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"cJ" = ( -/turf/closed/wall/rust, -/area/mine/unexplored) -"cK" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/space, -/area/mine/north_outpost) -"cL" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced, -/turf/open/space, -/area/mine/explored) -"cM" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/space, -/area/mine/north_outpost) -"cN" = ( -/turf/closed/wall/rust, -/area/mine/explored) -"cO" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/north_outpost) -"cP" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/mine/laborcamp) -"cQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/mine/laborcamp) -"cR" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=1-Storage"; - location = "Sleeper" - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/mine/laborcamp) -"cS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/bed/roller, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 2 - }, -/area/mine/laborcamp) -"cT" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/closet/crate/internals, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/weapon/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cU" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"cV" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=2-NMine"; - location = "1-Storage" - }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "Powered by tears and swet of laborer."; - name = "Prison Ofitser" - }, -/turf/open/floor/plasteel/asteroid, -/area/mine/laborcamp) -"cW" = ( -/obj/structure/plasticflaps/mining, -/turf/open/floor/plasteel/asteroid, -/area/mine/laborcamp) -"cX" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=3-SMine"; - location = "2-NMine" - }, -/turf/open/floor/plasteel/asteroid, -/area/mine/laborcamp) -"cY" = ( -/turf/open/floor/plating/astplate{ - icon_plating = "asteroidplating" - }, -/area/mine/explored) -"cZ" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"da" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/airless, -/area/mine/explored) -"db" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/mine/explored) -"dc" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/mine/explored) -"dd" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/mine/explored) -"de" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp) -"df" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whiteblue, -/area/mine/laborcamp) -"dg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp) -"dh" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/closed/wall, -/area/mine/laborcamp) -"di" = ( -/obj/machinery/door/airlock{ - name = "Labor Camp Storage" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dj" = ( -/obj/structure/plasticflaps/mining, -/turf/open/floor/plating/astplate{ - icon_plating = "asteroidplating" - }, -/area/mine/explored) -"dk" = ( -/turf/closed/wall/r_wall, -/area/mine/explored) -"dl" = ( -/obj/structure/girder/reinforced, -/turf/open/floor/plating/astplate{ - icon_plating = "asteroidplating" - }, -/area/mine/explored) -"dm" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/airless, -/area/mine/explored) -"dn" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/mine/explored) -"do" = ( -/obj/structure/table, -/obj/item/trash/plate, -/obj/item/weapon/kitchen/fork, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dp" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dq" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dr" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ds" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dt" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"du" = ( -/turf/open/floor/plasteel/asteroid, -/area/mine/explored) -"dv" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/space, -/area/mine/north_outpost) -"dw" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/space, -/area/mine/explored) -"dx" = ( -/obj/structure/lattice, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/space, -/area/mine/north_outpost) -"dy" = ( -/turf/closed/wall, -/area/mine/north_outpost) -"dz" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall, -/area/mine/north_outpost) -"dA" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dB" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=7-Sleeper"; - location = "6-Vending" - }, -/mob/living/simple_animal/mouse, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dC" = ( -/obj/machinery/door/airlock{ - name = "Vending" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dD" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dE" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dF" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dG" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Labor"; - name = "labor camp blast door" - }, -/obj/machinery/door/airlock{ - name = "Labor Camp External Access" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dH" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"dI" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dJ" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dK" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dL" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dM" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dN" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dO" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/laborcamp) -"dP" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dQ" = ( -/obj/machinery/flasher{ - id = "Labor"; - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/laborcamp) -"dR" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "gulag" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dS" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line, -/area/mine/laborcamp) -"dT" = ( -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line, -/area/mine/explored) -"dU" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dV" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/item/weapon/storage/box/lights/bulbs, -/obj/machinery/atmospherics/pipe/simple{ - dir = 6 - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dX" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/mine/north_outpost) -"dY" = ( -/obj/machinery/light_switch{ - pixel_x = -27; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"dZ" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp Central"; - network = list("Labor") - }, -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ea" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eb" = ( -/obj/machinery/conveyor{ - dir = 2; - id = "gulag" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ec" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/obj/structure/plasticflaps/mining, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ed" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/turf/open/floor/plating/astplate, -/area/mine/laborcamp) -"ee" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - input_dir = 4; - output_dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/mine/laborcamp) -"ef" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 8 - }, -/area/mine/explored) -"eg" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"eh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "54" - }, -/turf/open/floor/plating, -/area/mine/north_outpost) -"ei" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/closed/wall, -/area/mine/north_outpost) -"ej" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ek" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "Labor"; - name = "Labor Camp Lockdown"; - pixel_x = 0; - pixel_y = 28; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"el" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Labor"; - name = "labor camp blast door" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"em" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"en" = ( -/obj/machinery/mineral/processing_unit_console{ - machinedir = 6 - }, -/turf/closed/wall, -/area/mine/laborcamp) -"eo" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 2; - id = "gulag" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"ep" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External"; - dir = 4; - network = list("Labor") - }, -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"eq" = ( -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"er" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "gulag" - }, -/turf/open/floor/plasteel/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"es" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"et" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/north_outpost) -"eu" = ( -/obj/structure/table, -/obj/item/weapon/pickaxe, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ev" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ew" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ex" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ey" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ez" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eA" = ( -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eB" = ( -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/mine/north_outpost) -"eC" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 2; - output_dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/north_outpost) -"eD" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_north" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/north_outpost) -"eE" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/floorgrime, -/area/mine/north_outpost) -"eF" = ( -/obj/machinery/mineral/stacking_unit_console{ - machinedir = 2 - }, -/turf/closed/wall, -/area/mine/laborcamp) -"eG" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eH" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/mine/laborcamp) -"eI" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/north_outpost) -"eJ" = ( -/obj/structure/table, -/obj/item/weapon/shovel, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eK" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eM" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eN" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Mining North Outpost APC"; - pixel_x = 26; - pixel_y = 0 - }, -/obj/machinery/conveyor_switch{ - id = "mining_north" - }, -/obj/machinery/camera{ - c_tag = "North Outpost"; - dir = 8; - network = list("MINE") - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/north_outpost) -"eO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/north_outpost) -"eP" = ( -/obj/machinery/conveyor{ - backwards = 2; - dir = 2; - forwards = 1; - id = "mining_north" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/plasticflaps/mining, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"eQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/north_outpost) -"eR" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/north_outpost) -"eS" = ( -/obj/machinery/computer/shuttle/labor/one_way, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eT" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=6-Vending"; - location = "5-Central" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eU" = ( -/obj/machinery/mineral/stacking_machine{ - dir = 1; - input_dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eV" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eW" = ( -/obj/machinery/conveyor{ - dir = 10; - icon_state = "conveyor0"; - id = "gulag" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp) -"eX" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/asteroid, -/area/mine/explored) -"eY" = ( -/obj/item/stack/sheet/metal{ - amount = 5 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/asteroid, -/area/mine/explored) -"eZ" = ( -/obj/structure/table, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/clothing/glasses/meson, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fb" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fc" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Break Room"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fd" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fe" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/north_outpost) -"ff" = ( -/obj/machinery/door/window/northleft{ - dir = 8; - name = "Pneumatic Tube Access" - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8; - pixel_x = 8; - pixel_y = 0 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/north_outpost) -"fg" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/north_outpost) -"fh" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/mine/explored) -"fi" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/north_outpost) -"fj" = ( -/obj/machinery/conveyor_switch{ - id = "mining_north" - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/north_outpost) -"fk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/north_outpost) -"fl" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp/security) -"fm" = ( -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp/security) -"fn" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp Security Hallway"; - dir = 8; - network = list("Labor"); - pixel_x = 0; - pixel_y = 0 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp/security) -"fo" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/closed/wall, -/area/mine/laborcamp/security) -"fp" = ( -/obj/structure/plasticflaps/mining, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fq" = ( -/turf/closed/wall, -/area/mine/laborcamp/security) -"fr" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate{ - icon_plating = "asteroidplating" - }, -/area/mine/laborcamp/security) -"fs" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"ft" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fv" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/north_outpost) -"fw" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/mine/north_outpost) -"fx" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_away"; - name = "labor camp"; - width = 9 - }, -/turf/open/space, -/area/space) -"fy" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Shuttle Prisoner Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fz" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Shuttle Prisoner Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp/security) -"fA" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/laborcamp/security) -"fB" = ( -/obj/machinery/atmospherics/pipe/manifold, -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Backroom"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fC" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/laborcamp/security) -"fD" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fE" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/area/mine/laborcamp/security) -"fF" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp APC"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 10 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=5-Central"; - location = "4-Maint" - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"fG" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/laborcamp/security) -"fH" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp External Access"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fI" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fJ" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fK" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fL" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Labor Camp Monitoring"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fM" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall, -/area/mine/laborcamp/security) -"fN" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Labor Camp Maintenance"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fO" = ( -/obj/structure/plasticflaps/mining, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fP" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/asteroid, -/area/mine/explored) -"fQ" = ( -/obj/machinery/door/airlock/external{ - name = "Mining North Outpost Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"fR" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fS" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fT" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fV" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Labor Camp Security APC"; - pixel_x = 24; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/camera{ - c_tag = "Labor Camp Monitoring"; - network = list("Labor") - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall, -/area/mine/laborcamp/security) -"fX" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/weapon/storage/box/lights/mixed, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"fZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/laborcamp/security) -"ga" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gb" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gc" = ( -/obj/structure/plasticflaps/mining, -/turf/closed/wall, -/area/mine/laborcamp/security) -"gd" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=4-Maint"; - location = "3-SMine" - }, -/turf/open/floor/plasteel/asteroid, -/area/mine/laborcamp) -"ge" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/asteroid, -/area/mine/explored) -"gf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/mine/explored) -"gg" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/north_outpost) -"gh" = ( -/turf/open/floor/mech_bay_recharge_floor/airless, -/area/mine/north_outpost) -"gi" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/north_outpost) -"gj" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"gk" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/mine/north_outpost) -"gl" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall/r_wall, -/area/mine/laborcamp/security) -"gm" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gn" = ( -/obj/structure/chair/office/dark, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"go" = ( -/obj/machinery/button/door{ - id = "Labor"; - name = "Labor Camp Lockdown"; - pixel_x = 28; - pixel_y = 7; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "Labor"; - pixel_x = 26; - pixel_y = -3 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gp" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gq" = ( -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gr" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gs" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gt" = ( -/turf/open/floor/plating/airless/astplate, -/area/mine/north_outpost) -"gu" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/north_outpost) -"gv" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/north_outpost) -"gw" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/north_outpost) -"gx" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gy" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gz" = ( -/obj/machinery/computer/secure_data, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gA" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gB" = ( -/obj/machinery/computer/prisoner, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gC" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"gD" = ( -/obj/machinery/space_heater, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gE" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gF" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gG" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gH" = ( -/obj/machinery/door/airlock/external{ - name = "Mining North Outpost Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/north_outpost) -"gI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/explored) -"gJ" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gK" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gL" = ( -/obj/structure/grille, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"gM" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 10 - }, -/area/mine/explored) -"gN" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/explored) -"gO" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 6 - }, -/area/mine/explored) -"gP" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/north_outpost) -"gQ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"gR" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 5 - }, -/area/mine/explored) -"gS" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/explored) -"gT" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"gU" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"gV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"gW" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"gX" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 9 - }, -/area/mine/explored) -"gY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"gZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"ha" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/airless, -/area/mine/explored) -"hb" = ( -/turf/closed/wall/r_wall, -/area/mine/maintenance) -"hc" = ( -/turf/open/floor/bluegrid, -/area/mine/maintenance) -"hd" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Communications APC"; - pixel_x = 1; - pixel_y = 25 - }, -/turf/open/floor/plasteel/black, -/area/mine/maintenance) -"he" = ( -/obj/machinery/telecomms/relay/preset/mining, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 1 - }, -/area/mine/maintenance) -"hf" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel/black, -/area/mine/maintenance) -"hg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/bluegrid, -/area/mine/maintenance) -"hh" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/mine/maintenance) -"hi" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/bluegrid, -/area/mine/maintenance) -"hj" = ( -/obj/machinery/camera{ - c_tag = "Communications Relay"; - dir = 8; - network = list("MINE") - }, -/turf/open/floor/bluegrid, -/area/mine/maintenance) -"hk" = ( -/turf/open/floor/plating/airless/astplate, -/area/mine/west_outpost) -"hl" = ( -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"hm" = ( -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"hn" = ( -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"ho" = ( -/turf/closed/wall, -/area/mine/living_quarters) -"hp" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Communications"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault, -/area/mine/maintenance) -"hq" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/west_outpost) -"hr" = ( -/turf/open/floor/mech_bay_recharge_floor/airless, -/area/mine/west_outpost) -"hs" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/west_outpost) -"ht" = ( -/obj/item/clothing/under/rank/miner, -/obj/effect/decal/remains/human, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"hu" = ( -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/explored) -"hv" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/brown, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"hw" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm1"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"hx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hy" = ( -/turf/closed/wall, -/area/mine/west_outpost) -"hz" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/west_outpost) -"hA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/west_outpost) -"hB" = ( -/obj/structure/table, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"hC" = ( -/turf/open/floor/carpet, -/area/mine/living_quarters) -"hD" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm1"; - name = "Room 1" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hE" = ( -/obj/structure/table, -/obj/item/weapon/pickaxe, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hF" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hG" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hH" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/west_outpost) -"hI" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/west_outpost) -"hJ" = ( -/obj/structure/rack, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/west_outpost) -"hK" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/west_outpost) -"hL" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/door/window/northleft{ - dir = 2; - name = "Pneumatic Tube Access" - }, -/obj/machinery/disposal/deliveryChute{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/bot, -/area/mine/west_outpost) -"hM" = ( -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hN" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/west_outpost) -"hO" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/west_outpost) -"hP" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 5 - }, -/area/mine/west_outpost) -"hQ" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/explored) -"hR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hS" = ( -/obj/structure/table, -/obj/item/weapon/shovel, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hT" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hU" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/west_outpost) -"hV" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/west_outpost) -"hW" = ( -/obj/machinery/door/airlock/external{ - name = "Mining West Outpost Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"hX" = ( -/obj/machinery/door/airlock/external{ - name = "Mining West Outpost Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/west_outpost) -"hY" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 4 - }, -/area/mine/west_outpost) -"hZ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/mineral, -/area/mine/explored) -"ia" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"ib" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/living_quarters) -"ic" = ( -/obj/structure/table, -/obj/item/weapon/storage/backpack/satchel, -/obj/item/clothing/glasses/meson, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"id" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Break Room"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"ie" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"if" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"ig" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/west_outpost) -"ih" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 6 - }, -/area/mine/west_outpost) -"ii" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm2"; - name = "Room 2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"ij" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"ik" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"il" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/west_outpost) -"im" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"in" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"io" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"ip" = ( -/obj/machinery/conveyor_switch{ - id = "mining_west" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"iq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/deathsposal, -/turf/closed/wall, -/area/mine/living_quarters) -"ir" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"is" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"it" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Mining West Outpost APC"; - pixel_x = 1; - pixel_y = -23 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"iu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/camera{ - c_tag = "West Outpost"; - dir = 1; - network = list("MINE") - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"iv" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"iw" = ( -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"ix" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/mine/west_outpost) -"iy" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 2; - output_dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/west_outpost) -"iz" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_west" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/west_outpost) -"iA" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/west_outpost) -"iB" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/west_outpost) -"iC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 8 - }, -/area/mine/explored) -"iD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 4 - }, -/area/mine/explored) -"iE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored) -"iF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iG" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iH" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iI" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iJ" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iK" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - pixel_y = 0; - req_access_txt = "0"; - specialfunctions = 4 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"iM" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/closed/wall, -/area/mine/west_outpost) -"iN" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall, -/area/mine/west_outpost) -"iO" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "54" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"iP" = ( -/obj/machinery/conveyor{ - backwards = 2; - dir = 2; - forwards = 1; - id = "mining_west" - }, -/obj/structure/plasticflaps/mining, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/mine/west_outpost) -"iQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/west_outpost) -"iR" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iS" = ( -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iT" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iU" = ( -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 31 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"iV" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm3"; - name = "Room 3" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iW" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iX" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iY" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/eva) -"ja" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/eva) -"jb" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/eva) -"jc" = ( -/turf/closed/wall, -/area/mine/eva) -"jd" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/mine/west_outpost) -"je" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jg" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/item/weapon/storage/box/lights/bulbs, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jh" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"ji" = ( -/obj/machinery/conveyor_switch{ - id = "mining_west" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/area/mine/explored) -"jj" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jk" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jl" = ( -/obj/structure/table, -/obj/item/weapon/reagent_containers/food/drinks/beer, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jm" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jn" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jo" = ( -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jq" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/table, -/obj/item/weapon/pickaxe, -/turf/open/floor/plasteel, -/area/mine/eva) -"jr" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/suit_storage_unit/mining/eva, -/turf/open/floor/plasteel, -/area/mine/eva) -"js" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/turf/open/floor/plasteel, -/area/mine/eva) -"jt" = ( -/obj/machinery/light, -/turf/open/floor/plating/asteroid/airless, -/area/mine/explored) -"ju" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 1; - initialize_directions = 0; - level = 1 - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jv" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jw" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jx" = ( -/obj/structure/cable, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/turf/open/floor/plating, -/area/mine/west_outpost) -"jy" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/donkpockets, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jz" = ( -/obj/machinery/camera{ - c_tag = "Crew Area"; - dir = 1; - network = list("MINE") - }, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jA" = ( -/obj/item/weapon/cigbutt, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) -"jB" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jC" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jF" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jG" = ( -/obj/machinery/camera{ - c_tag = "Storage Room"; - dir = 1; - network = list("MINE") - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jH" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jI" = ( -/turf/closed/wall, -/area/mine/production) -"jJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/mine/production) -"jK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/production) -"jL" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "EVA"; - dir = 4; - network = list("MINE") - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/structure/table, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/obj/item/device/gps/mining, -/turf/open/floor/plasteel, -/area/mine/eva) -"jM" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/mine/eva) -"jN" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"jO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - on = 1 - }, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"jP" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/eva) -"jQ" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/living_quarters) -"jR" = ( -/obj/machinery/door/airlock/glass{ - name = "Crew Area"; - req_access_txt = "48" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jS" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/door/airlock/mining{ - name = "Mining Station Storage"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jT" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/window/northleft{ - dir = 2; - name = "Pneumatic Tube Access" - }, -/obj/machinery/disposal/deliveryChute{ - pixel_y = 5 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"jU" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"jV" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 6 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"jW" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/eva) -"jX" = ( -/obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"jY" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/mine/eva) -"jZ" = ( -/turf/open/floor/plasteel, -/area/mine/eva) -"ka" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel, -/area/mine/eva) -"kb" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/mine/eva) -"kc" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/eva) -"kd" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 5 - }, -/area/mine/eva) -"ke" = ( -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/mine/living_quarters) -"kf" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/obj/machinery/light/small, -/obj/structure/mirror{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/mine/living_quarters) -"kg" = ( -/obj/machinery/door/airlock{ - name = "Toilet" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/mine/living_quarters) -"kh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"ki" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Station Port Wing APC"; - pixel_x = 1; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kj" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway"; - network = list("MINE") - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kk" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/area/mine/living_quarters) -"kl" = ( -/obj/structure/window/reinforced, -/obj/structure/lattice, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/space, -/area/mine/living_quarters) -"km" = ( -/obj/structure/window/reinforced, -/obj/structure/lattice, -/turf/open/space, -/area/mine/living_quarters) -"kn" = ( -/obj/structure/window/reinforced, -/obj/structure/lattice, -/turf/open/space, -/area/mine/production) -"ko" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"kp" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/production) -"kq" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/production) -"kr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/area/mine/production) -"ks" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station EVA"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/eva) -"kt" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"ku" = ( -/obj/machinery/door/airlock/external{ - name = "Mining External Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"kv" = ( -/turf/open/floor/plasteel/floorgrime, -/area/mine/eva) -"kw" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/eva) -"kx" = ( -/obj/machinery/door/airlock/external{ - name = "Mining External Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/eva) -"ky" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 4 - }, -/area/mine/eva) -"kz" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kB" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kD" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kG" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/living_quarters) -"kH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kI" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kJ" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/glass_mining{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"kM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 4; - layer = 2.4; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kO" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"kP" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Mining EVA APC"; - pixel_x = 1; - pixel_y = -23 - }, -/obj/structure/cable, -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/weapon/hand_labeler, -/turf/open/floor/plasteel, -/area/mine/eva) -"kQ" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/mine/eva) -"kR" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/mine/eva) -"kS" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel, -/area/mine/eva) -"kT" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/mine/eva) -"kU" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/eva) -"kV" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 6 - }, -/area/mine/eva) -"kW" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kX" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kY" = ( -/obj/machinery/atmospherics/pipe/manifold, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"la" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"lb" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"lc" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/area/mine/living_quarters) -"ld" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/living_quarters) -"le" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/space, -/area/mine/living_quarters) -"lf" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/space, -/area/mine/production) -"lg" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/space, -/area/mine/production) -"lh" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/production) -"li" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/area/mine/production) -"lj" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/area/mine/production) -"lk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"ll" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"lm" = ( -/obj/machinery/camera{ - c_tag = "Production Line External"; - dir = 4; - network = list("MINE") - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/production) -"ln" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/production) -"lo" = ( -/obj/machinery/conveyor_switch{ - id = "mining_external" - }, -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 2 - }, -/area/mine/production) -"lp" = ( -/turf/open/floor/plating/airless/astplate, -/area/mine/production) -"lq" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whiteblue, -/area/mine/living_quarters) -"lr" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/closed/wall, -/area/mine/living_quarters) -"ls" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "48" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lt" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/closed/wall, -/area/mine/living_quarters) -"lu" = ( -/obj/machinery/door/airlock/external{ - name = "Mining External Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"lv" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"lw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"lx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"ly" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Closet"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/mine/production) -"lz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"lA" = ( -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j1" - }, -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/mine/production) -"lB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/production) -"lC" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"lD" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_external" - }, -/turf/open/floor/plating, -/area/mine/production) -"lE" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_external" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"lF" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_external" - }, -/obj/structure/plasticflaps/mining, -/turf/open/floor/plasteel/floorgrime, -/area/mine/production) -"lG" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "mining_external" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/production) -"lH" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/airalarm{ - frequency = 1439; - pixel_y = 23 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/mine/living_quarters) -"lI" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/mine/living_quarters) -"lJ" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/mine/living_quarters) -"lK" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/mine/living_quarters) -"lL" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_y = 0 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate/secure/loot, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lO" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/item/weapon/storage/box/lights, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lP" = ( -/obj/structure/rack, -/obj/item/weapon/storage/firstaid/regular, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"lQ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/floorgrime, -/area/mine/living_quarters) -"lR" = ( -/turf/open/floor/plasteel/floorgrime, -/area/mine/living_quarters) -"lS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"lT" = ( -/obj/structure/sign/xeno_warning_mining, -/turf/closed/wall, -/area/mine/living_quarters) -"lU" = ( -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"lV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"lW" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/machinery/status_display{ - layer = 4; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"lX" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/production) -"lY" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/blood/empty, -/obj/item/weapon/reagent_containers/blood/empty{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/weapon/reagent_containers/blood/AMinus, -/obj/item/weapon/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/weapon/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/obj/item/weapon/reagent_containers/blood/random, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"lZ" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"ma" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/machinery/camera{ - c_tag = "Sleeper Room"; - dir = 1; - network = list("MINE") - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"mb" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/firstaid/regular, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/mine/living_quarters) -"mc" = ( -/obj/machinery/power/terminal{ - icon_state = "term"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"md" = ( -/turf/open/floor/plating, -/area/mine/living_quarters) -"me" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mf" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mg" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/living_quarters) -"mh" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/living_quarters) -"mi" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line, -/area/mine/living_quarters) -"mj" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Mining Station Starboard Wing APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"mk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"ml" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"mm" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"mn" = ( -/obj/machinery/mineral/mint{ - input_dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mo" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/loadingarea{ - dir = 8 - }, -/area/mine/production) -"mp" = ( -/obj/machinery/airalarm{ - pixel_y = 28 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"mq" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/structure/table, -/obj/item/weapon/paper{ - anchored = 0; - info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the cargo office for smelting. PLEASE!

--The Research Staff"; - name = "URGENT!" - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"mr" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"ms" = ( -/obj/structure/cable, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mt" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mu" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/mine/living_quarters) -"mw" = ( -/obj/machinery/door/airlock/external{ - name = "Mining External Airlock"; - req_access_txt = "54" - }, -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/living_quarters) -"mx" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/mine/production) -"my" = ( -/turf/open/floor/plasteel/loadingarea, -/area/mine/production) -"mz" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/area/mine/production) -"mA" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel/loadingarea{ - dir = 4 - }, -/area/space) -"mB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"mC" = ( -/turf/open/floor/plasteel/airless/asteroid, -/area/mine/explored) -"mD" = ( -/turf/open/floor/plasteel/airless/asteroid, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 4 - }, -/area/mine/explored) -"mE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/living_quarters) -"mF" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA"; - pixel_y = 0 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/production) -"mG" = ( -/obj/structure/grille, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 - }, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/mine/production) -"mH" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"mI" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/area/mine/production) -"mJ" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/machinery/computer/shuttle/mining{ - req_access = "0" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer"; - dir = 8; - network = list("MINE") - }, -/obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 1 - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"mK" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"mL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 2; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mM" = ( -/obj/machinery/camera{ - c_tag = "Processing Area Room"; - dir = 8; - network = list("MINE") - }, -/obj/item/device/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"mN" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"mO" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining_away"; - name = "asteroid mine"; - width = 7 - }, -/turf/open/space, -/area/space) -"mP" = ( -/obj/machinery/door/airlock/external{ - name = "Mining Shuttle Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"mQ" = ( -/turf/open/floor/plasteel, -/area/mine/production) -"mR" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mS" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/area/mine/production) -"mT" = ( -/obj/machinery/atmospherics/pipe/simple, -/turf/open/floor/plasteel, -/area/mine/production) -"mU" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "mining_internal"; - name = "mining conveyor" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"mV" = ( -/obj/machinery/conveyor{ - dir = 2; - id = "mining_internal" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/area/mine/production) -"mW" = ( -/obj/effect/decal/remains/human{ - desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs." - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/explored) -"mX" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/area/mine/production) -"mY" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/area/mine/production) -"mZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"na" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"nb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"nc" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Processing Area"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nd" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"ne" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/area/mine/production) -"nf" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"ng" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"nh" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/closed/wall/r_wall, -/area/mine/production) -"ni" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"nj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 1; - on = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"nk" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/area/mine/production) -"nl" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Processing Area"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nm" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/area/mine/production) -"nn" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/area/mine/production) -"no" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/area/mine/production) -"np" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/space, -/area/space) -"nq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/area/mine/production) -"nr" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/area/mine/production) -"ns" = ( -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/area/mine/production) -"nt" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/northleft{ - name = "Output Access" - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nu" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - icon_state = "right"; - name = "Output Access" - }, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nv" = ( -/obj/machinery/mineral/stacking_unit_console, -/turf/closed/wall/r_wall, -/area/mine/production) -"nw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/mine/explored) -"nx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/mine/explored) -"ny" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/space, -/area/space) -"nz" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/space, -/area/space) -"nA" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/door/window/northleft{ - name = "Pneumatic Tube Access" - }, -/obj/machinery/disposal/deliveryChute{ - dir = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"nB" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/area/mine/production) -"nC" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nD" = ( -/turf/open/floor/plasteel{ - name = "floor" - }, -/obj/effect/turf_decal/delivery, -/area/mine/production) -"nE" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/structure/plasticflaps, -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/production) -"nF" = ( -/obj/machinery/mineral/stacking_machine{ - dir = 1; - input_dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/area/mine/production) -"nG" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/production) -"nH" = ( -/obj/machinery/conveyor{ - icon_state = "conveyor0"; - dir = 10; - id = "mining_internal" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/area/mine/production) -"nI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/mine/explored) -"nJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/mine/production) -"nK" = ( -/obj/structure/disposaloutlet{ - dir = 1; - eject_range = 1 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/area/mine/production) -"nL" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_z5"; - name = "south of asteroid"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ak -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ak -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ak -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ak -ac -ac -ac -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ac -ac -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -ac -ac -ad -ad -ad -ac -ac -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ac -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ad -ak -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -ac -aa -ac -ac -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -ac -ac -ac -ac -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -ac -ac -ac -ac -ac -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -ac -ac -ac -ac -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -bS -bS -ac -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -aa -aa -aa -aa -bS -bS -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -aa -aa -aa -bS -bS -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -aa -aa -aa -aa -bS -ac -ac -ad -ad -ac -ad -ad -ac -ac -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -bS -bS -ac -ac -ac -ac -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -hy -hz -hz -hy -hz -hz -hy -bS -bS -ac -ac -ac -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -hy -hE -hS -ic -ij -ir -hy -bS -bS -bS -bS -ac -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aa -aa -fx -aa -aa -aj -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -hy -hF -hM -hM -hM -hM -hy -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ct -ct -ct -ct -ct -ej -ct -aa -fl -fy -fl -fl -gl -gx -gJ -aa -aa -ac -ac -ac -ad -ad -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -hy -hG -hT -hM -ik -is -hy -bS -bS -bS -bS -bS -ac -ac -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ct -do -dA -dM -cE -ek -ct -aa -fl -fm -fq -fR -gm -gy -gK -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -hy -hz -hz -id -il -hz -hy -hy -hy -hy -bS -bS -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cv -cv -cv -ct -dp -dB -dN -cE -ej -ct -ct -fl -fz -fq -fS -fS -gz -gL -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -hy -hH -hU -hM -im -it -iM -jd -ju -hy -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -cv -cA -cP -cE -cE -dC -dO -cE -el -ct -eS -fm -fm -fq -fT -gn -gA -fl -ab -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -hk -hq -hz -hI -hU -hM -in -iu -iN -je -jv -hy -bS -bS -bS -bS -ac -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ct -cB -cQ -de -dq -dD -dP -dY -em -cG -cG -fm -fm -fL -fU -fS -gB -fl -cy -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -hk -hr -hz -hJ -hU -hM -io -iv -iO -jf -jw -hy -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ct -cC -cR -df -cG -dE -dE -cG -cG -cG -cG -fn -fA -fo -fV -go -gC -fl -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ha -bS -bS -hk -hs -hz -hK -hU -hM -hM -hM -hy -jg -jx -hy -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -ct -cD -cS -dg -cF -dF -dQ -dZ -dq -dq -dq -fo -fB -fq -fW -fq -fq -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ha -bS -bS -bS -bS -hz -hL -hV -ie -ip -iw -hy -hy -hy -hy -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -ct -ct -cE -cE -cE -dr -cG -cG -dE -cG -dg -eT -fp -fC -fq -fX -gp -gD -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -hy -hz -hW -hz -hy -ix -iP -jh -bS -bS -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ct -cw -cF -cT -dh -ds -dq -dq -ea -cG -eF -eU -fq -fD -fM -fY -gq -gE -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -hy -hM -hM -if -hy -iy -iQ -ji -bS -bS -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ct -cw -cG -cG -di -cG -cG -dR -dg -en -cE -eV -fq -fE -fN -fZ -gq -gF -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -hy -hN -hN -ig -hy -iz -iQ -hl -bS -bS -bS -bS -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -ac -ac -bL -bL -bL -ct -cw -cG -cU -cE -dt -cG -cG -eb -eo -eG -eW -cE -fF -fO -ga -gr -gG -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -hy -hO -hX -hz -hy -iA -iQ -bS -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -bL -bX -ca -bL -bL -ac -ac -ac -ac -bL -bL -bL -ct -cx -cG -cV -cE -cE -dG -cE -ec -cE -cE -cE -fq -fG -fq -gb -gs -gs -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -hA -hP -hY -ih -hy -iB -iQ -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -bL -bL -bL -cb -bL -bL -ac -ac -ac -ac -bL -bL -bL -ct -ct -ct -cW -ct -du -du -dS -ed -ep -du -eX -fq -fH -fq -gc -fq -fq -fq -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -gX -iC -iC -gM -bS -bS -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -bL -bL -bL -bL -bL -bL -ac -ac -ac -ac -bL -bL -bL -bL -bL -cH -cX -ct -du -du -dT -ed -eq -du -eY -fr -du -fP -gd -cy -cy -cy -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -bS -gR -iD -iD -gO -bS -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -ac -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -cH -cY -ct -du -cY -dT -ee -er -du -cI -cI -du -du -ge -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ha -bS -gV -gV -bS -bS -ac -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -cH -cY -dj -cI -cY -cY -ef -cY -cI -cI -cY -cI -cI -gf -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -gV -gV -bS -bS -ac -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -ac -bL -bL -bL -bL -cy -cH -cH -dk -cY -cY -cY -cY -cY -cI -cI -cI -cI -cI -cy -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -gV -gV -bS -bS -ac -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -cy -cI -cI -dl -cY -cY -cI -cI -cI -cI -cI -cI -cI -cy -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -gV -gV -bS -ac -ac -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -cy -cZ -cy -cy -dH -cI -cI -cI -cI -dH -dH -cy -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ac -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -gV -gV -bS -ac -ac -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -cy -cy -cy -cy -cy -eg -es -eH -cy -cy -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -iE -gV -bS -cj -ac -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -cy -cy -cy -cE -cy -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -iE -gW -gU -bS -cj -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -gW -gU -gW -gU -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -cj -bS -gW -gU -gW -gU -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -gW -gU -gW -gU -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -gW -gU -gV -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -gV -gV -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -gV -gV -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -gV -gV -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -gV -gV -bS -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -gX -iC -iC -gM -bS -bS -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -gR -iD -iD -gO -bS -bS -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ac -ac -aa -aa -aa -aa -aa -ac -bS -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -gV -gW -gT -gT -gT -gU -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ak -ak -ac -ac -aa -aa -aa -aa -aa -aa -ac -aa -ac -ac -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -bS -bS -ac -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -bL -ac -ac -ac -ac -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gU -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ak -ak -ac -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ak -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -bL -bL -bL -bL -bL -ac -ac -ac -ac -ac -ac -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -cj -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -ac -ac -ac -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -bS -bS -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -ac -ac -ac -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -ac -ac -gX -iC -iC -gM -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -ac -ac -gR -iD -iD -gO -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -ac -ac -ac -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -ac -ac -bS -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -gY -gT -gT -gZ -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -gV -gY -gT -gT -gZ -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ac -ac -ac -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -bS -bS -bS -gV -gV -bS -bS -bS -bS -ac -ac -ac -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -bS -bS -bS -gV -gV -bS -bS -bS -bS -ac -ac -ac -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -gX -iC -iC -gM -bS -bS -bS -bS -bS -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -gR -iD -iD -gO -bS -bS -ac -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ac -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ad -ad -ad -ac -ac -ac -ac -av -av -av -av -av -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -gV -gV -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -av -bs -bs -bs -bs -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -gV -gV -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -ac -ac -ac -ac -ac -ac -aj -aj -av -bt -bz -bz -bG -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -gV -gV -bS -bS -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aj -aj -aj -aj -aj -aj -aj -aj -av -bu -bA -bF -bF -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -gV -gW -gU -bS -bS -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aj -aj -aj -av -bv -bz -bF -bH -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -gW -gU -gW -gU -bS -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aj -aa -aa -aa -aa -aj -be -av -av -av -bB -bB -av -av -av -av -av -av -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -gW -gU -gV -bS -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aV -aZ -bf -aL -aK -be -aF -aX -bI -bM -bI -bI -cc -cc -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aO -ba -bg -aW -aQ -bw -bC -aF -bJ -bJ -bJ -bJ -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -gX -iC -iC -gM -ac -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aO -aP -ap -ap -bm -bq -bf -by -aF -bx -aF -aF -aF -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gR -iD -iD -gO -ac -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aH -aP -aO -bb -bc -ap -aW -av -aF -aM -bx -aF -aX -bi -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ac -bS -bS -cj -gV -gV -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aj -aI -aI -ap -bc -ap -bg -aQ -bd -bD -aB -bJ -aF -bT -aF -bJ -cf -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -ac -bS -bS -cj -gV -gV -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aj -ap -as -ap -ap -as -aQ -aX -av -bi -aF -aX -aF -bU -aF -bJ -cg -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -ac -ac -bS -bS -gV -gW -gU -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aj -aC -aJ -aQ -aW -aW -bh -bn -br -bx -aM -aF -bJ -by -aB -bN -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -bS -bS -ac -ac -ac -bS -bS -gW -gU -gW -gU -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aD -aK -aR -aQ -aX -bi -bo -bp -bx -bE -aF -bx -aF -bi -aF -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -ac -ac -bS -bS -gW -gU -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -ay -aE -aL -aR -aQ -aX -aF -bp -bp -bx -aF -by -bx -bN -aF -aX -bJ -bI -av -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -ac -ac -ac -bS -bS -gV -gV -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -af -ah -al -ap -ap -aa -aw -az -av -af -aS -av -bd -av -af -aS -av -bi -aF -bx -bx -bx -bJ -bJ -cc -av -cj -cj -ad -ad -ad -cj -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -ac -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ag -ai -am -aq -ar -au -ax -aA -aF -aM -aB -aF -aW -aR -aR -ai -aQ -aM -aF -aF -bD -aF -bI -bI -cc -av -cj -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -ac -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -af -ah -an -ai -as -ai -ai -aB -aG -aB -aF -aX -aF -bj -aQ -ai -ai -aW -aF -aF -bi -aF -av -av -av -av -cj -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -ao -ah -at -av -av -av -av -av -aT -av -av -av -av -av -ai -av -av -av -av -av -av -bk -bk -av -av -av -av -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -gX -iC -iC -gM -bS -bS -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -aj -ac -ac -ac -av -aN -aU -aN -av -bk -bk -bk -ai -ai -aF -bK -bO -ai -bk -ai -cd -bR -ck -cl -cn -cp -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -gR -iD -iD -gO -bS -bS -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -ac -ac -ac -av -aN -aN -aY -av -ai -ai -as -ai -aX -bi -by -bP -bV -ai -cd -cd -ch -bV -cm -ch -cq -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -av -av -av -av -av -aQ -ai -aF -by -aF -bD -aF -bQ -bV -bV -ai -cd -ci -cd -cl -co -cr -cs -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -bS -bS -ac -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -av -bl -bl -bl -bi -aF -aF -aX -bR -bW -bY -bW -bl -av -av -av -av -cj -cj -cs -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -bS -bS -ab -ab -bS -bS -bS -gV -gV -bS -bS -bS -ac -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -av -av -av -av -av -av -av -av -av -av -bZ -ce -av -av -cj -cj -cj -cj -cj -cj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -bS -bS -ab -ab -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -ab -ab -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -bS -ab -ab -ab -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -ac -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ho -ho -ho -ho -ho -ho -ab -ab -bS -bS -gV -gW -gT -gT -gU -bS -bS -ab -ab -ac -ac -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ho -iF -iR -jj -jy -ho -ab -ab -ab -bS -gW -gT -gT -gU -gV -bS -bS -bS -ab -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -cu -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -ab -ab -ab -ho -iG -iS -iS -iS -ho -ab -ab -ab -bS -bS -bS -bS -gV -gW -gU -bS -bS -ab -ab -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hl -ht -ab -ab -ab -ab -ho -iH -iS -jk -jz -ho -ho -ho -ab -ab -bS -bS -bS -gW -gU -gW -gU -bS -bS -ab -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hm -hn -hl -hQ -hZ -hZ -iq -iI -iT -jl -iS -ho -ke -ho -ab -ab -ab -bS -bS -bS -gW -gU -gW -gU -bS -ab -ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hn -hu -cH -ab -ab -ab -ho -iJ -iS -jm -jA -ho -kf -ho -ab -ho -ho -ho -lT -bS -bS -gW -gU -gV -bS -bS -ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ak -ad -ad -ac -ac -ac -aa -aa -aa -aa -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -ab -ab -ab -ab -ho -iK -iU -jn -iS -ho -kg -ho -ho -ho -lH -lY -ho -bS -bS -mW -gV -gV -bS -bS -ab -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -ac -ac -ac -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -ac -ac -ac -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -ho -ho -ho -ho -ho -ho -ho -ho -ho -ho -jB -ib -jo -kz -jo -ib -lI -lZ -ho -bS -bS -bS -gV -gV -bS -bS -ab -ad -ad -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -hb -hb -hb -hv -hB -ho -hv -hB -ho -hv -hB -ho -jp -jQ -jH -jH -kW -lq -lJ -ma -ho -bS -bS -bS -gV -gV -bS -bS -ab -ad -ac -ac -ac -ac -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -ac -ac -ac -ac -ad -ad -ac -ac -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ab -hb -hc -hc -hb -hw -hC -ho -ia -hC -ho -iL -hC -ho -jC -jR -kh -kA -kX -ib -lK -mb -ho -bS -bS -bS -gV -gV -bS -bS -ab -ac -ac -ac -ac -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ac -ac -ac -ac -bS -bS -cJ -bS -bS -cN -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -bS -ac -ac -ac -ac -ac -ac -ac -ac -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -hd -hg -hb -ho -hD -ho -ho -ii -ho -ho -iV -ho -jD -ib -jp -kB -kY -ho -ho -ho -ho -lT -bS -bS -gV -gV -bS -bS -ab -ac -ac -ac -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -bS -bS -bS -bS -cK -da -dm -dv -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -ac -ac -ac -ac -ac -ac -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -he -hh -hp -hx -hx -hR -hx -hx -hx -hR -hx -hx -jE -jQ -jH -kC -kY -ho -lL -mc -ms -ho -bS -bS -gV -gV -bS -bS -ab -ac -ac -bS -bS -bS -ac -ac -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -ac -ac -ac -ac -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -hf -hi -hb -ho -ho -ho -ib -ib -ib -ho -ho -ho -ho -ho -jB -jD -kX -lr -lM -md -mt -ho -gM -bS -gV -gV -bS -ab -ab -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -ac -ac -ac -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -hc -hj -hb -ab -bS -bS -bS -bS -bS -ho -iW -iW -jF -ho -ki -kD -kZ -ls -lN -md -mu -ho -gN -bS -gV -gV -bS -ab -ab -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -ac -ac -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -hb -hb -hb -hb -ab -ab -bS -bS -bS -bS -ho -iX -jo -jo -ho -kj -kE -la -lt -lO -me -mv -ho -gN -bS -gV -gV -bS -bS -ab -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(141,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -db -dm -dw -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -ib -iY -jo -jG -ho -jo -kE -lb -ho -lP -mf -mf -ho -gN -bS -gV -gV -bS -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(142,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -dc -dn -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -ib -iY -jo -jo -ho -jp -kF -kY -ho -ho -ho -ho -lT -gN -bS -gV -gV -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(143,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -dd -dm -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ab -bS -bS -bS -ib -iY -jp -jH -jS -jH -kF -kY -ib -lQ -mg -ib -mC -gN -bS -gV -gV -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(144,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ab -bS -bS -bS -ho -ib -ib -ib -ho -jo -kE -kX -lu -lR -mh -mw -mC -gN -bS -gV -gV -bS -bS -bS -bS -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(145,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ab -ab -bS -bS -bS -bS -bS -bS -ho -jo -kE -kX -ib -lS -mi -ib -mD -gO -bS -gV -gV -bS -bS -bS -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(146,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ak -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -bS -bS -bS -bS -ib -kk -kG -lc -ho -lT -ho -ho -mE -bS -bS -gV -gW -gT -gU -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(147,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -cL -da -dm -dw -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ak -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ab -bS -bS -bS -bS -ib -ib -kH -ld -ib -bS -bS -bS -bS -bS -bS -gW -gT -gU -gV -bS -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(148,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -cM -da -dm -dx -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ab -bS -bS -bS -bS -bS -ib -kG -ld -bS -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(149,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -aj -cN -bS -bS -cN -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ab -bS -bS -bS -bS -bS -ib -kH -ld -bS -bS -bS -bS -bS -bS -bS -bS -gX -iC -iC -gM -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(150,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -bS -bS -bS -bS -bS -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -bS -bS -ac -ac -ac -ac -ad -ad -ad -ad -ab -ac -bS -bS -bS -aa -kl -kI -le -bS -bS -bS -bS -bS -bS -bS -bS -gR -iD -iD -gO -ac -ac -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(151,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -bS -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -bS -aa -aa -ac -ac -ac -ac -ac -ad -ad -ac -ac -ac -ac -aa -aa -km -kI -le -aa -bS -bS -bS -bS -bS -bS -bS -bS -gV -gV -bS -ac -ac -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(152,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aj -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -aa -aa -aa -ac -ac -ac -ac -ac -ad -ac -ac -ac -aa -aa -aa -km -kI -le -aa -bS -bS -bS -aa -aj -bS -bS -bS -gV -gV -bS -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(153,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aj -bS -ab -ab -ab -ab -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -km -kI -le -aa -aa -aj -aa -aa -aj -aa -bS -bS -gV -gV -bS -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(154,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aj -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -km -kI -le -aa -aa -aj -aa -aa -aj -aa -aa -dk -nw -nI -dk -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(155,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aj -cz -cN -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aa -aa -aa -aa -aa -km -kI -le -aj -aj -aj -aj -aj -aj -aa -aa -dk -nx -nx -dk -bS -bS -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(156,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aj -bS -cO -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ak -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -km -kI -le -aa -aa -aj -aa -aa -aj -aa -aa -aj -ny -ny -aj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(157,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aj -aj -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -km -kI -le -aa -aa -aj -aa -aa -aj -aa -aa -aa -ny -ny -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(158,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -kn -kJ -lf -aa -aa -aj -aa -aa -aj -aa -aa -aa -ny -ny -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(159,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -kn -kJ -lf -aj -aj -aj -aj -aj -aj -aj -aj -aj -ny -ny -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(160,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -kn -kJ -lf -aa -aj -aa -aa -aa -aa -aa -aa -aa -ny -ny -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(161,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -bS -cz -cN -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bS -aj -aj -kn -kJ -lf -aa -aj -aa -aa -aa -aa -aa -aa -aa -ny -ny -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(162,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -bS -cO -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bS -aa -aa -kn -kJ -lf -aa -aj -aa -aa -aa -aa -aa -aa -aa -ny -ny -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(163,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bS -bS -aa -kn -kJ -lf -aa -aj -aa -aa -aa -aa -aa -aa -aa -ny -ny -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(164,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -aa -aa -bS -bS -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -ab -bS -bS -bS -aa -kn -kJ -lg -aa -aj -aa -aa -aa -mO -aa -aa -aa -ny -ny -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(165,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -bS -bS -bS -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -jK -kK -lh -aj -aj -aj -aj -mF -mP -jK -aj -aj -ny -ny -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(166,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -jK -kL -lh -aa -aj -aa -aa -jK -lv -jK -aa -aa -ny -ny -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(167,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ab -ab -ab -ab -cN -eI -bS -bS -cN -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -jK -jK -kK -lh -jK -aj -aj -jK -mG -mP -jK -jK -np -nz -ny -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(168,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -jI -jK -ko -kL -li -jK -jI -jI -jK -mH -lv -mX -jK -lB -jI -lB -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(169,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -gY -jJ -jT -kp -kM -lj -lv -lU -mj -lv -mI -mQ -mY -lv -nq -nA -nJ -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(170,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -bS -bS -bS -bS -bS -gX -gM -bS -gV -jK -jU -kq -kN -lk -lw -lV -mk -mx -mx -mR -mZ -mx -nr -nB -jI -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(171,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -bS -gY -gT -gT -gT -gQ -gS -gT -gZ -jK -jV -kr -kO -ll -lx -lW -ml -ml -ml -mS -na -nj -nn -jU -jK -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(172,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -gV -gY -gT -gT -gQ -gS -iZ -jc -jc -jW -ks -jb -jI -ly -jI -mm -mm -mJ -mz -nb -nk -ns -mK -jK -aj -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(173,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -bS -gR -gO -ja -jq -jL -jX -kt -kP -jI -lz -jI -jI -lh -jI -lh -nc -nl -lh -jI -jI -jI -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(174,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -cN -eI -bS -bS -cN -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ab -ab -ab -ab -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -bS -bS -bS -jb -jr -jM -jY -jY -kQ -jJ -lA -jI -mn -my -mK -jU -nd -nm -nt -nC -nK -jI -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(175,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -bS -bS -bS -jb -js -jN -jZ -jZ -kR -jI -lB -jI -mo -ko -lv -lv -ne -nn -nu -nD -jI -jI -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(176,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -bS -bS -bS -jc -js -jO -ka -jZ -kS -jI -lC -jI -mp -kp -mL -mT -nf -nn -nv -nE -jI -ae -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(177,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -bS -bS -bS -jc -jc -jc -jb -ku -jb -jI -lD -jI -mq -mz -mM -mU -ng -no -jK -nF -jI -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(178,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -et -et -dy -et -et -dy -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -bS -gV -gV -bS -bS -bS -bS -bS -bS -jc -kb -kv -kT -jI -lD -jI -mr -mA -jI -jK -nh -jK -jK -nG -jI -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(179,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eu -eJ -eZ -fs -fI -dy -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -bS -bS -gV -gV -bS -bS -bS -bS -bS -jt -jc -kc -kw -kU -jI -lE -jI -mr -mB -mN -mV -ni -mV -mV -nH -jI -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -ev -eA -fa -eA -eA -et -gg -gt -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -bS -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -bS -gY -gZ -gV -bS -bS -bS -bS -bS -bS -jc -jb -kx -jb -jI -lF -jI -jI -jI -jI -jI -jI -jI -jI -jI -jI -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(181,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dy -dy -dy -dy -ew -eK -fb -ft -fJ -et -gh -gt -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -ab -ab -ab -ab -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -gY -gZ -gY -gZ -bS -bS -bS -bS -bS -bS -jP -kd -ky -kV -lm -lG -lX -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(182,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dy -dI -dU -dy -et -et -fc -et -et -dy -gi -gt -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -bS -ab -ab -ab -ae -ae -ab -ab -bS -gY -gT -gT -gT -gZ -gY -gZ -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ln -lG -lp -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(183,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dz -dJ -dV -eh -ex -eL -fb -eA -fK -dy -dy -dy -dy -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -bS -ab -ab -ae -ae -ab -ab -bS -gV -gY -gT -gT -gT -gZ -bS -bS -bS -bS -bS -ab -ab -ab -bS -bS -bS -bS -lo -lG -lp -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(184,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dy -dK -dW -ei -ey -eM -fd -fu -eA -et -gj -gu -et -gM -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -bS -ab -ab -ae -ae -ab -ab -bS -gV -gV -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -ln -lG -lp -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(185,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dy -dL -dX -dy -ez -eN -fe -fe -fe -fQ -eA -gv -gH -gN -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ab -ab -bS -gV -gV -bS -bS -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ab -ha -ha -bS -lp -lp -lp -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(186,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -dy -dy -dy -dy -eA -dy -ff -fv -fv -et -gk -gw -et -gO -gM -bS -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ae -ae -ab -ab -bS -gV -gV -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ha -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(187,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eA -dy -fg -fw -fw -fw -fw -fw -fw -gP -gS -gT -gT -gU -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -gV -gV -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(188,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eA -eO -fh -fh -fh -fh -fh -fh -gI -gQ -gS -gT -gU -gV -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gX -gM -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -gV -gV -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(189,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eB -eP -fi -bS -bS -bS -bS -bS -bS -gR -gO -bS -gV -gW -gT -gT -gT -gT -gU -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gY -gT -gT -gT -gT -gT -gT -gT -gT -gQ -gS -gT -gT -gT -gT -gT -gU -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -bS -bS -gV -gV -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eC -eQ -fj -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gT -gU -gW -gT -gT -gT -gU -bS -gX -gM -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gY -gT -gT -gT -gT -gZ -gY -gT -gT -gT -gT -gT -gT -gT -gQ -gS -gT -gT -gT -gT -gU -gW -gT -gT -gT -gT -gU -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -gY -gZ -gV -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -nL -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -dy -eD -eQ -fk -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gU -gW -gT -gQ -gS -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gZ -gY -gT -gT -gT -gT -gZ -bS -bS -bS -bS -bS -bS -bS -gR -gO -bS -bS -bS -bS -gW -gT -gT -gT -gT -gU -gW -gT -gT -gT -gU -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -bS -gV -gY -gZ -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -ab -bS -bS -bS -dy -eE -eR -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -gW -gT -gT -gQ -gS -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gT -gZ -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gU -gW -gT -gT -gT -gT -gU -bS -bS -bS -bS -bS -bS -ab -ab -bS -gV -gV -bS -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -bS -bS -dy -dy -dy -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -gR -gO -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gT -gU -gW -gT -gT -gT -gT -gU -bS -gX -gM -bS -gV -gV -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gT -gT -gU -gW -gT -gQ -gS -gT -gZ -gV -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gW -gT -gT -gQ -gS -gT -gT -gZ -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -bS -ab -ab -ab -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -gR -gO -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -bS -bS -bS -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ae -ae -ab -ab -ab -ab -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -bS -bS -bS -bS -bS -bS -bS -bS -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ab -ab -ab -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -bS -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -ab -ab -ae -ae -ab -ab -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -bS -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ab -ab -ab -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -bS -bS -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bS -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ae -ae -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -ae -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ae -ae -ae -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ae -ae -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -ab -ab -ab -ae -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ae -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ae -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(249,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(250,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(251,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(252,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(253,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(254,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(255,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/map_files/generic/z6.dmm b/_maps/map_files/generic/z6.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z6.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z7.dmm b/_maps/map_files/generic/z7.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z7.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z8.dmm b/_maps/map_files/generic/z8.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z8.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/generic/z9.dmm b/_maps/map_files/generic/z9.dmm deleted file mode 100644 index c71d2e76ad..0000000000 --- a/_maps/map_files/generic/z9.dmm +++ /dev/null @@ -1,259 +0,0 @@ -"a" = (/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/shuttles/cargo_birdboat.dmm b/_maps/shuttles/cargo_birdboat.dmm index 71705b06de..d892e13726 100644 --- a/_maps/shuttles/cargo_birdboat.dmm +++ b/_maps/shuttles/cargo_birdboat.dmm @@ -170,9 +170,7 @@ /turf/open/space, /area/space) "x" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /turf/open/floor/plating/airless, /area/shuttle/supply) "y" = ( @@ -180,9 +178,7 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "z" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /turf/open/floor/plating/airless, /area/shuttle/supply) "A" = ( @@ -198,7 +194,6 @@ /area/shuttle/supply) "B" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm index 5dc2a6aa57..08ae8d8267 100644 --- a/_maps/shuttles/cargo_box.dmm +++ b/_maps/shuttles/cargo_box.dmm @@ -131,9 +131,7 @@ /turf/open/space, /area/space) "t" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, +/obj/structure/shuttle/engine/propulsion/burst/left, /turf/open/floor/plating/airless, /area/shuttle/supply) "u" = ( @@ -141,9 +139,7 @@ /turf/open/floor/plating/airless, /area/shuttle/supply) "v" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, +/obj/structure/shuttle/engine/propulsion/burst/right, /turf/open/floor/plating/airless, /area/shuttle/supply) "w" = ( @@ -154,7 +150,6 @@ /area/shuttle/supply) "x" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm index a60259b354..444a104f1d 100644 --- a/_maps/shuttles/emergency_airless.dmm +++ b/_maps/shuttles/emergency_airless.dmm @@ -52,8 +52,6 @@ "l" = ( /obj/structure/closet/malf, /obj/machinery/light/built{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating/airless, @@ -65,8 +63,6 @@ name = "4maintenance loot spawner" }, /obj/machinery/light/built{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/plating/airless, diff --git a/_maps/shuttles/emergency_arena.dmm b/_maps/shuttles/emergency_arena.dmm index d561ccc458..504ef9be87 100644 --- a/_maps/shuttles/emergency_arena.dmm +++ b/_maps/shuttles/emergency_arena.dmm @@ -1,69 +1,2689 @@ -"a" = (/turf/closed/indestructible/necropolis,/area/shuttle_arena) -"b" = (/turf/open/indestructible/necropolis/air,/area/shuttle_arena) -"c" = (/obj/effect/forcefield/arena_shuttle,/turf/open/indestructible/necropolis/air,/area/shuttle_arena) -"d" = (/turf/open/floor/plating/lava/smooth,/area/shuttle_arena) -"e" = (/obj/effect/landmark/shuttle_arena_entrance,/turf/open/indestructible/necropolis/air,/area/shuttle_arena) -"f" = (/turf/open/space,/area/space) -"g" = (/turf/closed/indestructible/necropolis,/area/shuttle/escape{noteleport = 1}) -"h" = (/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1}) -"i" = (/obj/structure/closet/crate/necropolis/dragon,/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1}) -"j" = (/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) -"k" = (/obj/structure/fluff/drake_statue,/turf/open/indestructible{tag = "icon-cult"; icon_state = "cult"},/area/shuttle/escape{noteleport = 1}) -"l" = (/obj/structure/closet/crate/necropolis/tendril,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) -"m" = (/obj/structure/fluff/drake_statue,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) -"n" = (/obj/effect/forcefield/arena_shuttle_entrance,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) -"o" = (/obj/effect/forcefield/arena_shuttle_entrance,/obj/docking_port/mobile/emergency{name = "The Arena"; timid = 1},/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) -"p" = (/obj/structure/healingfountain,/turf/open/indestructible/necropolis/air,/area/shuttle/escape{noteleport = 1}) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/necropolis, +/area/shuttle_arena) +"b" = ( +/turf/open/indestructible/necropolis/air, +/area/shuttle_arena) +"c" = ( +/obj/effect/forcefield/arena_shuttle, +/turf/open/indestructible/necropolis/air, +/area/shuttle_arena) +"d" = ( +/turf/open/floor/plating/lava/smooth, +/area/shuttle_arena) +"e" = ( +/obj/effect/landmark/shuttle_arena_entrance, +/turf/open/indestructible/necropolis/air, +/area/shuttle_arena) +"f" = ( +/turf/open/space, +/area/space) +"g" = ( +/turf/closed/indestructible/necropolis, +/area/shuttle/escape{ + noteleport = 1 + }) +"h" = ( +/turf/open/indestructible{ + icon_state = "cult" + }, +/area/shuttle/escape{ + noteleport = 1 + }) +"i" = ( +/obj/structure/closet/crate/necropolis/dragon, +/turf/open/indestructible{ + icon_state = "cult" + }, +/area/shuttle/escape{ + noteleport = 1 + }) +"j" = ( +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) +"k" = ( +/obj/structure/fluff/drake_statue, +/turf/open/indestructible{ + icon_state = "cult" + }, +/area/shuttle/escape{ + noteleport = 1 + }) +"l" = ( +/obj/structure/closet/crate/necropolis/tendril, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) +"m" = ( +/obj/structure/fluff/drake_statue, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) +"n" = ( +/obj/effect/forcefield/arena_shuttle_entrance, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) +"o" = ( +/obj/effect/forcefield/arena_shuttle_entrance, +/obj/docking_port/mobile/emergency{ + name = "The Arena"; + timid = 1 + }, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) +"p" = ( +/obj/structure/healingfountain, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape{ + noteleport = 1 + }) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -abbbbabbbbbbbbbbbaaaccccaaabbbbbbbbbbbbbbbbbbbbdda -abbbebbbbbbbbbbebaaabbbbaaabbbbbbbbbbbbbbbbbbbbdda -abbbbbbbbbbbbbbbbaaabbbbaaabbbbbbbebbbbbbbbbbbbbba -aabbbabbbbbbbbbbbbaabbbbaabbbbbbbbbbbbbbabbbbbbbba -abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbebbbba -abbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbba -abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbba -abbbbbbbbbbbbbbbbbbbbbbbbbebbaabbbbbbbbbaaaaaabbba -abbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -abbbbbbbbbbbbebbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbba -abbebbdddbbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbba -abbbbbdddbbbbbbbbbbbbbddbbbbbbbbbbaabbbbbbbbbbbbba -abbbbbdddbbbbaabbbbbbbbddbbbbbbbbbaabbbbbbbbbbbbba -abbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbaabbbbbbbbbbbbba -abbbbbbbdbbbbbbbbbbbbbbbbbbbbbbbbbaabbbbbbbbbbbbba -abbbbbbbbbbbbbbbebbbbbbbbbbbbbbbbbaabbbbbbbebbbbba -abbbaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -abbbbbabbbbbbbbbbbbbbbbbbbbbbbbebbbbbbbbbbbbbbbbba -abbbbbbbbbbbbbbbbbbbbddddbbbbabbbbbbbbbbbbbbbbbbba -abbbbbbbbbbbbbbbbbbbbddddbbbbabbbbbbbbbbbbbbbbbbba -abbbbbebbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbba -abbbbbbbbbbbbbbddbbbbbbbbbbbbabbbbbbbbebbbbbbbbbba -abbbbbbbbbbbbbbddbbbbbbbbbbbbabbbbbbbbbbbbbbbbddda -abbebbbbbbbbbdddbbbbbbbbbbbbbabbbbbbbbbbbbbbbbddda -abbbbbbbbbbbddddbbbbbbbbbbaaaaabbbbbbbbbbbbbbbddda -aaaaaaaaaaaaadbbbbbbbbbbbbaaaaabbbbbbbbbbbbaabddda -ffffffffffffabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaebddda -gggggggggggfaaaaaabbbbebbbbbbbbbebbbbbbbbbbabbddda -gghhiiiihhgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbddda -ggjkhiihkjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda -ggjlhhhhljgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda -ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbddddddddda -ggjmjjjjmjgfabbbbbbbbbbbbdddbbbbbbbbbbbbddddddddda -ggjljjjjljgfabbbbbbbbdddddddbbbbbbbbbbbbddddddddda -ngjjjjjjjjgfabbbbbbbddbbbdddbbbbbbabbbbbbbbbbdddda -ggjmjjjjmjgfabbbbbbbdbbbbbbbbbbbbbabbbbbbbbbbdddda -ogjljjjjljgfabbebbbbbbbbbbbbbbbbbbabaaabbbbbbdddda -ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbabbbabbbbbbbbdda -ggjkhjjjmjgfabbbbbbbbbbbbbbbbbbebbabbeabbbbbbbbdda -ggjljjjjljgfabbbbbbbbbbbbbbbbbbbbbaaaaaaabbbbbbbba -ggjjjjjjjjgfabbbbbbaaaaaabbbbbbbbbabbbbbbbbbbbbbba -ggjmjjjhmjgfabbbbbbbbbbbabbbbbbbbbabbbbbbbbbbbbbba -ngjljjjjljgfabbbbbbbbbebabbbbbbbbbbbbbbbbbbbbbebba -ggjjjjjjjjgfabbbbbbabbbbabbbbbbbbbbbbbbbbbbbbbbbba -ngjmjjjjmjgfabbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbbbbba -ggjjjjjjjjgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaabbba -gghjjjjjjhgfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -ggpppppppggfabbbbbbbbbbbbebbbbbbbbbbbbbbebbbbbbbba -fgggggggggffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +f +g +g +g +g +g +g +g +n +g +o +g +g +g +g +g +n +g +n +g +g +g +f +"} +(2,1,1) = {" +a +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +f +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +"} +(3,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +f +g +h +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +h +p +g +"} +(4,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +b +e +b +a +f +g +h +k +l +j +m +l +j +m +l +j +k +l +j +m +l +j +m +j +j +p +g +"} +(5,1,1) = {" +a +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +a +f +g +i +h +h +j +j +j +j +j +j +j +h +j +j +j +j +j +j +j +j +p +g +"} +(6,1,1) = {" +a +a +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +a +f +g +i +i +h +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +p +g +"} +(7,1,1) = {" +a +b +b +b +b +b +b +b +b +a +b +d +d +d +b +b +b +a +a +b +b +e +b +b +b +b +a +f +g +i +i +h +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +p +g +"} +(8,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +a +f +g +i +h +h +j +j +j +j +j +j +j +j +j +j +h +j +j +j +j +j +p +g +"} +(9,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +a +f +g +h +k +l +j +m +l +j +m +l +j +m +l +j +m +l +j +m +j +j +p +g +"} +(10,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +f +g +h +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +h +g +g +"} +(11,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +f +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +g +f +"} +(12,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +f +"} +(13,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +b +b +b +b +b +a +b +b +b +e +b +b +a +b +b +b +b +b +b +b +b +b +b +d +d +d +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(15,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +d +d +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(16,1,1) = {" +a +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +b +b +a +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +a +"} +(17,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +d +d +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(18,1,1) = {" +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(19,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(20,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +a +a +b +b +b +a +"} +(21,1,1) = {" +a +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +a +b +b +b +a +b +b +b +a +"} +(22,1,1) = {" +a +c +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +a +b +b +b +a +b +b +b +a +"} +(23,1,1) = {" +a +c +b +b +b +b +b +b +b +b +d +d +d +b +b +b +b +b +b +d +d +b +b +b +b +b +b +b +e +b +b +b +b +b +d +b +b +b +b +b +b +a +b +e +b +a +b +b +b +a +"} +(24,1,1) = {" +a +c +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +a +b +b +b +a +b +b +b +a +"} +(25,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +d +b +b +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +a +a +a +a +a +b +b +b +a +"} +(26,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +e +a +"} +(27,1,1) = {" +a +a +a +a +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(28,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(29,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(30,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(31,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(32,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +a +"} +(33,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(34,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(35,1,1) = {" +a +b +b +e +b +b +b +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +b +a +"} +(36,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +a +"} +(37,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +a +b +b +b +b +b +b +b +b +a +"} +(38,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +e +a +b +b +b +b +b +b +b +b +a +"} +(39,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +b +b +b +b +b +b +b +b +a +"} +(40,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +a +"} +(41,1,1) = {" +a +b +b +b +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +b +b +b +b +b +a +b +b +b +b +b +b +b +e +a +"} +(42,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(43,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(44,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +a +a +a +a +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +a +b +b +a +"} +(45,1,1) = {" +a +b +b +b +b +e +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +e +b +b +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +a +b +b +a +"} +(46,1,1) = {" +a +b +b +b +b +b +b +b +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +a +b +b +a +"} +(47,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +b +b +b +b +b +e +b +b +b +b +b +a +"} +(48,1,1) = {" +a +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +a +"} +(49,1,1) = {" +a +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +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 "} diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm index 58b8d6438d..298f353da7 100644 --- a/_maps/shuttles/emergency_asteroid.dmm +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -68,14 +68,12 @@ /area/shuttle/escape) "am" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/escape) "an" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/open/floor/plating/airless, @@ -402,7 +400,6 @@ /area/shuttle/escape) "bt" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -450,7 +447,6 @@ /area/shuttle/escape) "bz" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 9c7c6d2148..dab289be7a 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -45,7 +45,6 @@ /area/shuttle/escape) "aj" = ( /turf/closed/wall/shuttle{ - tag = "icon-swallc3"; icon_state = "swallc3"; dir = 2 }, @@ -88,7 +87,6 @@ /area/shuttle/escape) "ar" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /obj/structure/chair/comfy/brown{ @@ -99,7 +97,6 @@ "as" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/carpet, @@ -122,7 +119,6 @@ /area/shuttle/escape) "av" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall13"; icon_state = "swall13"; dir = 2 }, @@ -189,8 +185,7 @@ "aF" = ( /obj/structure/piano{ icon_state = "piano"; - name = "space piano"; - tag = "icon-piano" + name = "space piano" }, /turf/open/floor/plasteel/grimy, /area/shuttle/escape) @@ -236,7 +231,6 @@ /area/shuttle/escape) "aL" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/plastitanium/brig, @@ -278,8 +272,7 @@ /area/shuttle/escape) "aS" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/table, /obj/item/weapon/storage/box/drinkingglasses, @@ -463,9 +456,7 @@ /area/shuttle/escape) "bx" = ( /obj/structure/toilet{ - dir = 4; - icon_state = "toilet00"; - tag = "icon-toilet00 (NORTH)" + dir = 4 }, /obj/machinery/light/small{ dir = 4 @@ -585,7 +576,6 @@ /area/shuttle/escape) "bR" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/bar, @@ -601,7 +591,6 @@ /area/shuttle/escape) "bT" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-10"; icon_state = "plant-10" }, /turf/open/floor/plasteel/bar, @@ -632,7 +621,6 @@ /area/shuttle/escape) "bX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/bar, diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index 744dee68e2..55c36c22f5 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -14,7 +14,6 @@ /obj/structure/table, /obj/item/weapon/scalpel, /obj/item/weapon/retractor{ - pixel_x = 0; pixel_y = 5 }, /obj/item/weapon/hemostat, @@ -33,9 +32,8 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "ag" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/escape) @@ -79,8 +77,7 @@ /area/shuttle/escape) "ap" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion" + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/escape) @@ -105,9 +102,8 @@ /turf/open/floor/mineral/plastitanium/brig, /area/shuttle/escape) "au" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/escape) @@ -296,7 +292,6 @@ /area/shuttle/escape) "aX" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 1 }, /turf/open/floor/plasteel/white, diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm index 84945b29ef..7bb5ad5ccf 100644 --- a/_maps/shuttles/emergency_box.dmm +++ b/_maps/shuttles/emergency_box.dmm @@ -86,7 +86,6 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/titanium/blue, @@ -94,7 +93,6 @@ "as" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/mineral/titanium/blue, @@ -258,8 +256,7 @@ /area/shuttle/escape) "aR" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -298,7 +295,6 @@ /area/shuttle/escape) "aW" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/titanium/blue, @@ -333,14 +329,12 @@ /area/shuttle/escape) "bc" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "bd" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -354,8 +348,7 @@ }, /obj/item/weapon/crowbar, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -399,7 +392,6 @@ "bm" = ( /obj/structure/table, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index f793e29372..8d9c39a269 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -1,227 +1,2123 @@ -"aa" = (/turf/open/space/basic,/area/space) -"ab" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"ad" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) -"ae" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/crowbar,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/darkpurple,/area/shuttle/escape) -"af" = (/obj/machinery/computer/aifixer,/turf/open/floor/plasteel/darkpurple,/area/shuttle/escape) -"ag" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkpurple,/area/shuttle/escape) -"ah" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"ai" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aj" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/black,/area/shuttle/escape) -"ak" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"al" = (/obj/structure/table,/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"am" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"an" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"ao" = (/obj/structure/table,/turf/open/floor/plasteel/darkblue,/area/shuttle/escape) -"ap" = (/turf/open/floor/plasteel/darkblue,/area/shuttle/escape) -"aq" = (/obj/structure/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/plasteel/darkpurple,/area/shuttle/escape) -"ar" = (/turf/open/floor/plasteel/darkpurple,/area/shuttle/escape) -"as" = (/obj/machinery/computer/station_alert,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"at" = (/obj/structure/chair/office/light{tag = "icon-officechair_white (NORTH)"; icon_state = "officechair_white"; dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"au" = (/obj/machinery/computer/communications,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"av" = (/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"aw" = (/obj/structure/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"ax" = (/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"ay" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"az" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/darkblue,/area/shuttle/escape) -"aA" = (/turf/open/floor/plasteel/darkpurple/side{dir = 1},/area/shuttle/escape) -"aB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aC" = (/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aD" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aE" = (/turf/open/floor/plasteel/darkyellow/side{tag = "icon-darkyellow (NORTH)"; icon_state = "darkyellow"; dir = 1},/area/shuttle/escape) -"aF" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"aG" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/darkblue,/area/shuttle/escape) -"aH" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/darkblue,/area/shuttle/escape) -"aI" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/shuttle/escape) -"aJ" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1},/area/shuttle/escape) -"aK" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"aL" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"aM" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/shuttle/escape) -"aN" = (/obj/machinery/light,/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aO" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aP" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1},/area/shuttle/escape) -"aQ" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/darkred,/area/shuttle/escape) -"aR" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/shuttle/escape) -"aS" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aT" = (/obj/structure/chair,/obj/machinery/light{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"aU" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/reagent_dispensers/peppertank{pixel_x = -32},/turf/open/floor/mineral/plastitanium/brig{dir = 9; floor_tile = /obj/item/stack/tile/plasteel; icon_state = "darkred"},/area/shuttle/escape) -"aV" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"aW" = (/obj/structure/chair,/obj/machinery/light{dir = 1},/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"aX" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"aY" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (NORTHEAST)"; icon_state = "darkred"; dir = 5; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"aZ" = (/turf/open/floor/plasteel/neutral/side{tag = "icon-neutral (WEST)"; icon_state = "neutral"; dir = 8},/area/shuttle/escape) -"ba" = (/turf/open/floor/plasteel/neutral/side{tag = "icon-neutral (EAST)"; icon_state = "neutral"; dir = 4},/area/shuttle/escape) -"bb" = (/obj/machinery/mech_bay_recharge_port{tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2},/turf/open/floor/plasteel,/area/shuttle/escape) -"bc" = (/turf/open/floor/plasteel,/area/shuttle/escape) -"bd" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"be" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"bf" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = 24; pixel_y = 6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"bg" = (/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/mineral/plastitanium/brig{dir = 8; floor_tile = /obj/item/stack/tile/plasteel; icon_state = "darkred"},/area/shuttle/escape) -"bh" = (/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"bi" = (/turf/open/floor/mineral/plastitanium/brig{dir = 4; floor_tile = /obj/item/stack/tile/plasteel; icon_state = "darkred"},/area/shuttle/escape) -"bj" = (/turf/open/floor/mech_bay_recharge_floor,/area/shuttle/escape) -"bk" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"bl" = (/turf/open/floor/mineral/plastitanium/brig{dir = 8; floor_tile = /obj/item/stack/tile/plasteel; icon_state = "darkred"},/area/shuttle/escape) -"bm" = (/turf/open/floor/mineral/plastitanium/brig{icon_state = "darkredfull"},/area/shuttle/escape) -"bn" = (/obj/machinery/door/airlock/glass_security{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig{icon_state = "darkredfull"},/area/shuttle/escape) -"bo" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plasteel,/area/shuttle/escape) -"bp" = (/obj/structure/chair{dir = 4},/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) -"bq" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig{icon_state = "darkredfull"},/area/shuttle/escape) -"br" = (/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"bs" = (/obj/effect/turf_decal/stripes/line{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -28},/turf/open/floor/plasteel/brown{tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8},/area/shuttle/escape) -"bt" = (/obj/effect/turf_decal/stripes/line{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/turf/open/floor/plasteel,/area/shuttle/escape) -"bu" = (/obj/effect/turf_decal/delivery,/obj/effect/turf_decal/stripes/line{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/obj/structure/closet,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/brown{tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4},/area/shuttle/escape) -"bv" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) -"bw" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred (SOUTHWEST)"; icon_state = "darkred"; dir = 10; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"bx" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"by" = (/obj/structure/table,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/zipties,/turf/open/floor/mineral/plastitanium/brig{tag = "icon-darkred"; icon_state = "darkred"; dir = 2; floor_tile = /obj/item/stack/tile/plasteel},/area/shuttle/escape) -"bz" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig{dir = 6; floor_tile = /obj/item/stack/tile/plasteel; icon_state = "darkred"},/area/shuttle/escape) -"bA" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/plasteel/darkyellow,/area/shuttle/escape) -"bB" = (/turf/open/floor/plasteel/brown{tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8},/area/shuttle/escape) -"bC" = (/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/shuttle/escape) -"bD" = (/obj/effect/turf_decal/delivery,/obj/structure/closet/crate,/turf/open/floor/plasteel/brown{tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4},/area/shuttle/escape) -"bE" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dwidth = 15; height = 20; name = "Cere emergency shuttle"; port_angle = 90; preferred_direction = 2; width = 42},/turf/open/floor/plating,/area/shuttle/escape) -"bF" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bG" = (/obj/structure/table,/obj/item/weapon/storage/box/cups,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bH" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bI" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bJ" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bK" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bL" = (/obj/structure/sign/nanotrasen{pixel_x = -32; pixel_y = 32},/turf/open/floor/plasteel,/area/shuttle/escape) -"bM" = (/turf/open/floor/plasteel/brown{tag = "icon-brown (SOUTHWEST)"; icon_state = "brown"; dir = 10},/area/shuttle/escape) -"bN" = (/turf/open/floor/plasteel/brown,/area/shuttle/escape) -"bO" = (/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/brown,/area/shuttle/escape) -"bP" = (/obj/effect/turf_decal/delivery,/obj/structure/closet,/turf/open/floor/plasteel/brown{tag = "icon-brown (SOUTHEAST)"; icon_state = "brown"; dir = 6},/area/shuttle/escape) -"bQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/shuttle/escape) -"bR" = (/turf/open/floor/plasteel/neutral/side{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/shuttle/escape) -"bS" = (/turf/open/floor/plasteel/neutral/corner{tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; dir = 4},/area/shuttle/escape) -"bT" = (/turf/open/floor/plasteel/neutral/side,/area/shuttle/escape) -"bU" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/turf/open/floor/plasteel,/area/shuttle/escape) -"bV" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/shuttle/escape) -"bW" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bX" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"bY" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"bZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -28},/turf/open/floor/plasteel,/area/shuttle/escape) -"ca" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel,/area/shuttle/escape) -"cb" = (/obj/structure/sign/bluecross_2{pixel_x = 32; pixel_y = -32},/turf/open/floor/plasteel,/area/shuttle/escape) -"cc" = (/obj/machinery/light,/turf/open/floor/plasteel/neutral/side{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/shuttle/escape) -"cd" = (/obj/machinery/light{dir = 4},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel,/area/shuttle/escape) -"ce" = (/obj/machinery/door/airlock/glass_medical{name = "Emergency Shuttle Medbay"},/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cf" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/neutral/corner{tag = "icon-neutralcorner (WEST)"; icon_state = "neutralcorner"; dir = 8},/area/shuttle/escape) -"cg" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/shuttle/escape) -"ch" = (/mob/living/simple_animal/bot/medbot{name = "Speedy* Recovery"},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/shuttle/escape) -"ci" = (/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) -"cj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) -"ck" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) -"cl" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) -"cm" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/wrench,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/shuttle/escape) -"cn" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"co" = (/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/shuttle/escape) -"cp" = (/turf/open/floor/plasteel/white,/area/shuttle/escape) -"cq" = (/obj/machinery/atmospherics/pipe/simple/general/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/white,/area/shuttle/escape) -"cr" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/white,/area/shuttle/escape) -"cs" = (/obj/machinery/atmospherics/pipe/simple/general/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/white,/area/shuttle/escape) -"ct" = (/turf/open/floor/plasteel/whiteblue/corner{tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4},/area/shuttle/escape) -"cu" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/shuttle/escape) -"cv" = (/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/shuttle/escape) -"cw" = (/turf/open/floor/plasteel/whiteblue/side,/area/shuttle/escape) -"cx" = (/turf/open/floor/plasteel/whiteblue/corner{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/shuttle/escape) -"cy" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/shuttle/escape) -"cz" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/neutral,/area/shuttle/escape) -"cA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cB" = (/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cC" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/iv_drip,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cD" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/shuttle/escape) -"cE" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cF" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/hemostat,/obj/item/weapon/surgicaldrill,/obj/item/weapon/cautery{pixel_x = 4},/obj/item/weapon/retractor,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cG" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/crowbar,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/shuttle/escape) -"cH" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cI" = (/obj/structure/table/optable,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cJ" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/whiteblue,/area/shuttle/escape) -"cK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/shuttle/escape) -"cL" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/plasteel/whiteblue/side,/area/shuttle/escape) -"cM" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/whiteblue/side,/area/shuttle/escape) -"cN" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/shuttle/escape) -"cO" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/side{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/shuttle/escape) -"cP" = (/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_one_access_txt = "10;24"},/turf/open/floor/plasteel/yellow,/area/shuttle/escape) -"cQ" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"cR" = (/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"cS" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"cT" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9},/area/shuttle/escape) -"cU" = (/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/shuttle/escape) -"cV" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/monitor,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/shuttle/escape) -"cW" = (/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5},/area/shuttle/escape) -"cX" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"cY" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"cZ" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10},/area/shuttle/escape) -"da" = (/turf/open/floor/plasteel/yellow/corner{tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8},/area/shuttle/escape) -"db" = (/turf/open/floor/plasteel/yellow/corner{tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4},/area/shuttle/escape) -"dc" = (/obj/structure/table,/obj/item/weapon/storage/box/metalfoam,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/shuttle/escape) -"dd" = (/obj/structure/table,/obj/item/stack/sheet/metal/fifty,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/shuttle/escape) -"de" = (/obj/structure/table,/obj/item/stack/sheet/glass/fifty,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5},/area/shuttle/escape) -"df" = (/obj/structure/urinal{pixel_y = -32},/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"dg" = (/obj/machinery/light/small{dir = 4},/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/shuttle/escape) -"dh" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10},/area/shuttle/escape) -"di" = (/obj/structure/sign/electricshock{pixel_x = 32},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4},/area/shuttle/escape) -"dj" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10},/area/shuttle/escape) -"dk" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plasteel/yellow/side,/area/shuttle/escape) -"dl" = (/obj/structure/table,/obj/structure/sign/enginesafety{pixel_y = -32},/turf/open/floor/plasteel/yellow/side,/area/shuttle/escape) -"dm" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/yellow/side,/area/shuttle/escape) -"dn" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/yellow/side,/area/shuttle/escape) -"do" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side,/area/shuttle/escape) -"dp" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6},/area/shuttle/escape) -"dq" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plating,/area/shuttle/escape) -"dr" = (/turf/open/floor/plating,/area/shuttle/escape) -"ds" = (/obj/machinery/light/small{tag = "icon-bulb1 (NORTH)"; icon_state = "bulb1"; dir = 1},/turf/open/floor/plating,/area/shuttle/escape) -"dt" = (/obj/machinery/power/terminal{tag = "icon-term (EAST)"; icon_state = "term"; dir = 4},/turf/open/floor/plating,/area/shuttle/escape) -"du" = (/obj/machinery/power/smes/engineering,/turf/open/floor/plating,/area/shuttle/escape) -"dv" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/shuttle/escape) -"dw" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/shuttle/escape) -"dx" = (/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/shuttle/escape) -"dy" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"dz" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space/basic, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"ae" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/crowbar, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/shuttle/escape) +"af" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/darkpurple, +/area/shuttle/escape) +"ag" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkpurple, +/area/shuttle/escape) +"ah" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"ai" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aj" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"ak" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"al" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"am" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"an" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/o2, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"ao" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkblue, +/area/shuttle/escape) +"ap" = ( +/turf/open/floor/plasteel/darkblue, +/area/shuttle/escape) +"aq" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/shuttle/escape) +"ar" = ( +/turf/open/floor/plasteel/darkpurple, +/area/shuttle/escape) +"as" = ( +/obj/machinery/computer/station_alert, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"at" = ( +/obj/structure/chair/office/light{ + icon_state = "officechair_white"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"au" = ( +/obj/machinery/computer/communications, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"av" = ( +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"aw" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"ax" = ( +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"az" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/darkblue, +/area/shuttle/escape) +"aA" = ( +/turf/open/floor/plasteel/darkpurple/side{ + dir = 1 + }, +/area/shuttle/escape) +"aB" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aC" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aD" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aE" = ( +/turf/open/floor/plasteel/darkyellow/side{ + icon_state = "darkyellow"; + dir = 1 + }, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"aG" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkblue, +/area/shuttle/escape) +"aH" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue, +/area/shuttle/escape) +"aI" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/shuttle/escape) +"aJ" = ( +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1 + }, +/area/shuttle/escape) +"aK" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"aL" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"aM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/shuttle/escape) +"aN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1 + }, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkred, +/area/shuttle/escape) +"aR" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aS" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aT" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aU" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/mineral/plastitanium/brig{ + dir = 9; + floor_tile = /obj/item/stack/tile/plasteel; + icon_state = "darkred" + }, +/area/shuttle/escape) +"aV" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 1; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"aW" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 1; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"aX" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 1; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"aY" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 5; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"aZ" = ( +/turf/open/floor/plasteel/neutral/side{ + icon_state = "neutral"; + dir = 8 + }, +/area/shuttle/escape) +"ba" = ( +/turf/open/floor/plasteel/neutral/side{ + icon_state = "neutral"; + dir = 4 + }, +/area/shuttle/escape) +"bb" = ( +/obj/machinery/mech_bay_recharge_port{ + icon_state = "recharge_port"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bc" = ( +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bd" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"be" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bf" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = 24; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bg" = ( +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium/brig{ + dir = 8; + floor_tile = /obj/item/stack/tile/plasteel; + icon_state = "darkred" + }, +/area/shuttle/escape) +"bh" = ( +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 1; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"bi" = ( +/turf/open/floor/mineral/plastitanium/brig{ + dir = 4; + floor_tile = /obj/item/stack/tile/plasteel; + icon_state = "darkred" + }, +/area/shuttle/escape) +"bj" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/shuttle/escape) +"bk" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bl" = ( +/turf/open/floor/mineral/plastitanium/brig{ + dir = 8; + floor_tile = /obj/item/stack/tile/plasteel; + icon_state = "darkred" + }, +/area/shuttle/escape) +"bm" = ( +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkredfull" + }, +/area/shuttle/escape) +"bn" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkredfull" + }, +/area/shuttle/escape) +"bo" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bp" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bq" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkredfull" + }, +/area/shuttle/escape) +"br" = ( +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 2; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"bs" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 8 + }, +/area/shuttle/escape) +"bt" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bu" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/structure/closet, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 4 + }, +/area/shuttle/escape) +"bv" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bw" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 10; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"bx" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 2; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"by" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/teargas, +/obj/item/weapon/storage/box/zipties, +/turf/open/floor/mineral/plastitanium/brig{ + icon_state = "darkred"; + dir = 2; + floor_tile = /obj/item/stack/tile/plasteel + }, +/area/shuttle/escape) +"bz" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig{ + dir = 6; + floor_tile = /obj/item/stack/tile/plasteel; + icon_state = "darkred" + }, +/area/shuttle/escape) +"bA" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/plasteel/darkyellow, +/area/shuttle/escape) +"bB" = ( +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 8 + }, +/area/shuttle/escape) +"bC" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bD" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 4 + }, +/area/shuttle/escape) +"bE" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dwidth = 15; + height = 20; + name = "Cere emergency shuttle"; + port_angle = 90; + preferred_direction = 2; + width = 42 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bF" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bG" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/cups, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 27 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bH" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bI" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bK" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bL" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bM" = ( +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 10 + }, +/area/shuttle/escape) +"bN" = ( +/turf/open/floor/plasteel/brown, +/area/shuttle/escape) +"bO" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/brown, +/area/shuttle/escape) +"bP" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/turf/open/floor/plasteel/brown{ + icon_state = "brown"; + dir = 6 + }, +/area/shuttle/escape) +"bQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bR" = ( +/turf/open/floor/plasteel/neutral/side{ + icon_state = "neutral"; + dir = 1 + }, +/area/shuttle/escape) +"bS" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/escape) +"bT" = ( +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/escape) +"bU" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bV" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"bW" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bX" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"bY" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bZ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"ca" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"cb" = ( +/obj/structure/sign/bluecross_2{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"cc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/side{ + icon_state = "neutral"; + dir = 1 + }, +/area/shuttle/escape) +"cd" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"ce" = ( +/obj/machinery/door/airlock/glass_medical{ + name = "Emergency Shuttle Medbay" + }, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cf" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/escape) +"cg" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/escape) +"ch" = ( +/mob/living/simple_animal/bot/medbot{ + name = "Speedy* Recovery" + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 9 + }, +/area/shuttle/escape) +"ci" = ( +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"cj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"ck" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"cl" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 1 + }, +/area/shuttle/escape) +"cm" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 5 + }, +/area/shuttle/escape) +"cn" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"co" = ( +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 8 + }, +/area/shuttle/escape) +"cp" = ( +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"cr" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"cs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"ct" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + icon_state = "whitebluecorner"; + dir = 4 + }, +/area/shuttle/escape) +"cu" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 5 + }, +/area/shuttle/escape) +"cv" = ( +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 10 + }, +/area/shuttle/escape) +"cw" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/escape) +"cx" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + icon_state = "whitebluecorner"; + dir = 8 + }, +/area/shuttle/escape) +"cy" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 4 + }, +/area/shuttle/escape) +"cz" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/neutral, +/area/shuttle/escape) +"cA" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cB" = ( +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cC" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cD" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 4 + }, +/area/shuttle/escape) +"cE" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/APlus, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cF" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/hemostat, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/retractor, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cG" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 4 + }, +/area/shuttle/escape) +"cH" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cI" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cJ" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/turf/open/floor/plasteel/whiteblue, +/area/shuttle/escape) +"cK" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 10 + }, +/area/shuttle/escape) +"cL" = ( +/obj/machinery/sleeper{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/escape) +"cM" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/escape) +"cN" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + icon_state = "whiteblue"; + dir = 6 + }, +/area/shuttle/escape) +"cO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/neutral/side{ + icon_state = "neutral"; + dir = 1 + }, +/area/shuttle/escape) +"cP" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Engine Room"; + req_one_access_txt = "10;24" + }, +/turf/open/floor/plasteel/yellow, +/area/shuttle/escape) +"cQ" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"cR" = ( +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"cS" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"cT" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 9 + }, +/area/shuttle/escape) +"cU" = ( +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 1 + }, +/area/shuttle/escape) +"cV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/monitor, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 1 + }, +/area/shuttle/escape) +"cW" = ( +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 5 + }, +/area/shuttle/escape) +"cX" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"cY" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"cZ" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 10 + }, +/area/shuttle/escape) +"da" = ( +/turf/open/floor/plasteel/yellow/corner{ + icon_state = "yellowcorner"; + dir = 8 + }, +/area/shuttle/escape) +"db" = ( +/turf/open/floor/plasteel/yellow/corner{ + icon_state = "yellowcorner"; + dir = 4 + }, +/area/shuttle/escape) +"dc" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/metalfoam, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 1 + }, +/area/shuttle/escape) +"dd" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 1 + }, +/area/shuttle/escape) +"de" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 5 + }, +/area/shuttle/escape) +"df" = ( +/obj/structure/urinal{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"dg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"dh" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 10 + }, +/area/shuttle/escape) +"di" = ( +/obj/structure/sign/electricshock{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 4 + }, +/area/shuttle/escape) +"dj" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 10 + }, +/area/shuttle/escape) +"dk" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/escape) +"dl" = ( +/obj/structure/table, +/obj/structure/sign/enginesafety{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/escape) +"dm" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/escape) +"dn" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/escape) +"do" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/shuttle/escape) +"dp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/yellow/side{ + icon_state = "yellow"; + dir = 6 + }, +/area/shuttle/escape) +"dq" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/shuttle/escape) +"dr" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"ds" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"dt" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"du" = ( +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/shuttle/escape) +"dv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/shuttle/escape) +"dw" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/shuttle/escape) +"dx" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/shuttle/escape) +"dy" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"dz" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) (1,1,1) = {" -aaaaaaaaabaaaaaaaaaaaaaaaaaaaaabaaaaaaaa -aaaaaaababaaaaaaaaaaaaaaaaaaaaababaaaaaa -aaaaababababacacacacacacacacababababaaaa -aaaaababadaeafagahaiajakalamanadababaaaa -aaaaababaoapaqarasatatauavawaxayababaaaa -aaabababazapapaAaBaCaCaDaEaxaxaFabababaa -aaabababaGaHaIaCaCaCaCaCaCaJaKaLabababaa -ababababaoaMaNaCaCaCaOaCaCaNaPaQabababab -abababababababababababaRaRababababababab -abaSaTaSabaUaVaWaXaYabaZbaabbbbcbbbcbbab -abbdbebfabbgbhbhbhbiacaZbaabbjbcbjbcbjab -abbdbebkacblblbmbibibnaZbaabbobcbobcboab -abbpbebebqblbrbrbrbibnaZbaabbsbtbtbtbuab -bvbebebkacbwbxbybxbzacaZbabAbBbcbCbcbDab -ababababababacacacabadaZbabAbBbcbCbcbDab -bEbcbcbabFbGbHbIbJbKaZbLbaabbMbNbObNbPab -abadbQbcbRbRbRbRbRbRbcbcbSadabababababab -aaacbcbcbTbTbTbTbTbcbcbTbTbTbTbTbUbVabaa -aaacbcbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -aaacbcbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -abadbQbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -bYbcbcbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -abbZbcbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -bYbcbcbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -abadbQbabWbXbTbWbXaZbabWbXbTbWbXaZbcacaa -aaabcabcbRbRbRbRbRbccbbRccbRbRbRbccdabaa -aaabcabcbTbTbTbTbTbcbcadabceacabacababaa -abadcfbabWbXbTbWbXaZcgabchcicjckclcmadab -abcnaZbabWbXbTbWbXaZbccecocpcqcrcsctcuab -accnaZbabWbXbTbWbXaZbcabcvcwcwcxcpcpcyac -acczaZbabWbXbTbWbXaZbcabcAcBcCcocpcpcDac -acczaZbabWbXbTbWbXaZbcabcEcBcFcocpcpcGac -accnaZbabWbXbTbWbXaZbcabcHcIcJcKcLcMcNab -accnaZbcccbRbRbRcObccgababababababababab -ababacacabaccPacadcabccQcRcRcRcRcRcQcSab -abcTcUcUcVcUcUcWadabababcXcRcRcRcYababab -abcZdabcbcbcbcdbdcdddeabcXdfdfdfcRcQdgab -abaddhdabcbcbcbcbcbcdiababababababababab -aaabaddjdkdldmdndndodpdqdrdrdsdtduababaa -aaababababababababababaddvdwdxdtduababaa -aaaaabdydydydydydyadaddydydydydydyabaaaa -aaaaabdzdzdzdzdzdzadaddzdzdzdzdzdzabaaaa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bv +ab +bE +ab +aa +aa +aa +ab +bY +ab +bY +ab +aa +aa +ab +ab +ac +ac +ac +ac +ac +ab +ab +ab +ab +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +aS +bd +bd +bp +be +ab +bc +ad +ac +ac +ac +ad +bc +bZ +bc +ad +ab +ab +ad +cn +cn +cz +cz +cn +cn +ab +cT +cZ +ad +ab +ab +aa +aa +"} +(3,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +aT +be +be +be +be +ab +bc +bQ +bc +bc +bc +bQ +bc +bc +bc +bQ +ca +ca +cf +aZ +aZ +aZ +aZ +aZ +aZ +ac +cU +da +dh +ad +ab +ab +ab +"} +(4,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +aS +bf +bk +be +bk +ab +ba +bc +bc +ba +ba +ba +ba +ba +ba +ba +bc +bc +ba +ba +ba +ba +ba +ba +bc +ac +cU +bc +da +dj +ab +dy +dz +"} +(5,1,1) = {" +ab +ab +ab +ad +ao +az +aG +ao +ab +ab +ab +ac +bq +ac +ab +bF +bR +bT +bW +bW +bW +bW +bW +bW +bW +bR +bT +bW +bW +bW +bW +bW +bW +cc +ab +cV +bc +bc +dk +ab +dy +dz +"} +(6,1,1) = {" +aa +aa +ab +ae +ap +ap +aH +aM +ab +aU +bg +bl +bl +bw +ab +bG +bR +bT +bX +bX +bX +bX +bX +bX +bX +bR +bT +bX +bX +bX +bX +bX +bX +bR +ac +cU +bc +bc +dl +ab +dy +dz +"} +(7,1,1) = {" +aa +aa +ac +af +aq +ap +aI +aN +ab +aV +bh +bl +br +bx +ac +bH +bR +bT +bT +bT +bT +bT +bT +bT +bT +bR +bT +bT +bT +bT +bT +bT +bT +bR +cP +cU +bc +bc +dm +ab +dy +dz +"} +(8,1,1) = {" +aa +aa +ac +ag +ar +aA +aC +aC +ab +aW +bh +bm +br +by +ac +bI +bR +bT +bW +bW +bW +bW +bW +bW +bW +bR +bT +bW +bW +bW +bW +bW +bW +bR +ac +cW +db +bc +dn +ab +dy +dz +"} +(9,1,1) = {" +aa +aa +ac +ah +as +aB +aC +aC +ab +aX +bh +bi +br +bx +ac +bJ +bR +bT +bX +bX +bX +bX +bX +bX +bX +bR +bT +bX +bX +bX +bX +bX +bX +cO +ad +ad +dc +bc +dn +ab +dy +dz +"} +(10,1,1) = {" +aa +aa +ac +ai +at +aC +aC +aC +ab +aY +bi +bi +bi +bz +ab +bK +bR +bc +aZ +aZ +aZ +aZ +aZ +aZ +aZ +bc +bc +aZ +aZ +aZ +aZ +aZ +aZ +bc +ca +ab +dd +bc +do +ab +ad +ad +"} +(11,1,1) = {" +aa +aa +ac +aj +at +aC +aC +aO +ab +ab +ac +bn +bn +ac +ad +aZ +bc +bc +ba +ba +ba +ba +ba +ba +ba +cb +bc +cg +bc +bc +bc +bc +bc +cg +bc +ab +de +di +dp +ab +ad +ad +"} +(12,1,1) = {" +aa +aa +ac +ak +au +aD +aC +aC +aR +aZ +aZ +aZ +aZ +aZ +aZ +bL +bc +bT +bW +bW +bW +bW +bW +bW +bW +bR +ad +ab +ce +ab +ab +ab +ab +ab +cQ +ab +ab +ab +dq +ad +dy +dz +"} +(13,1,1) = {" +aa +aa +ac +al +av +aE +aC +aC +aR +ba +ba +ba +ba +ba +ba +ba +bS +bT +bX +bX +bX +bX +bX +bX +bX +cc +ab +ch +co +cv +cA +cE +cH +ab +cR +cX +cX +ab +dr +dv +dy +dz +"} +(14,1,1) = {" +aa +aa +ac +am +aw +ax +aJ +aN +ab +ab +ab +ab +ab +bA +bA +ab +ad +bT +bT +bT +bT +bT +bT +bT +bT +bR +ce +ci +cp +cw +cB +cB +cI +ab +cR +cR +df +ab +dr +dw +dy +dz +"} +(15,1,1) = {" +aa +aa +ab +an +ax +ax +aK +aP +ab +bb +bj +bo +bs +bB +bB +bM +ab +bT +bW +bW +bW +bW +bW +bW +bW +bR +ac +cj +cq +cw +cC +cF +cJ +ab +cR +cR +df +ab +ds +dx +dy +dz +"} +(16,1,1) = {" +ab +ab +ab +ad +ay +aF +aL +aQ +ab +bc +bc +bc +bt +bc +bc +bN +ab +bT +bX +bX +bX +bX +bX +bX +bX +bR +ab +ck +cr +cx +co +co +cK +ab +cR +cR +df +ab +dt +dt +dy +dz +"} +(17,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +bb +bj +bo +bt +bC +bC +bO +ab +bU +aZ +aZ +aZ +aZ +aZ +aZ +aZ +bc +ac +cl +cs +cp +cp +cp +cL +ab +cR +cY +cR +ab +du +du +dy +dz +"} +(18,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +bc +bc +bc +bt +bc +bc +bN +ab +bV +bc +bc +bc +bc +bc +bc +bc +cd +ab +cm +ct +cp +cp +cp +cM +ab +cQ +ab +cQ +ab +ab +ab +ab +ab +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +bb +bj +bo +bu +bD +bD +bP +ab +ab +ac +ac +ac +ac +ac +ac +ac +ab +ab +ad +cu +cy +cD +cG +cN +ab +cS +ab +dg +ab +ab +ab +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa "} diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm index 29c415d521..f9f4cc136a 100644 --- a/_maps/shuttles/emergency_clown.dmm +++ b/_maps/shuttles/emergency_clown.dmm @@ -71,7 +71,6 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/bluespace, @@ -79,7 +78,6 @@ "ap" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/item/toy/snappop/phoenix, @@ -173,7 +171,6 @@ /obj/structure/table, /obj/item/toy/sword, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/noslip, @@ -210,8 +207,7 @@ /area/shuttle/escape) "aL" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/toy/snappop/phoenix, /obj/machinery/light/small{ @@ -261,7 +257,6 @@ /area/shuttle/escape) "aS" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /obj/item/toy/snappop/phoenix, @@ -284,14 +279,12 @@ /area/shuttle/escape) "aW" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/mineral/bananium, /area/shuttle/escape) "aX" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/noslip, @@ -325,8 +318,7 @@ }, /obj/item/weapon/crowbar, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index 30361d6854..3d5943ed1e 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -4,8 +4,6 @@ /area/space) "ab" = ( /obj/structure/shuttle/engine/propulsion{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -19,8 +17,6 @@ "ad" = ( /obj/structure/window/reinforced, /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /obj/effect/turf_decal/stripes/line{ @@ -189,8 +185,7 @@ /area/shuttle/escape) "ar" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -221,7 +216,6 @@ }, /obj/structure/table/reinforced, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/cmo, @@ -280,14 +274,12 @@ dir = 8 }, /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, /area/shuttle/escape) "aA" = ( /turf/open/floor/plasteel/whiteblue/side{ - tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1 }, @@ -343,8 +335,7 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -365,8 +356,7 @@ }, /turf/open/floor/plasteel/whiteblue/side{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; - dir = 4; - tag = "icon-whiteblue (EAST)" + dir = 4 }, /area/shuttle/escape) "aK" = ( @@ -410,7 +400,6 @@ /area/shuttle/escape) "aQ" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/cmo, @@ -420,7 +409,6 @@ /area/shuttle/escape) "aS" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/cmo, @@ -432,7 +420,6 @@ "aU" = ( /obj/effect/turf_decal/bot, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -446,9 +433,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "aW" = ( /obj/machinery/door/airlock/shuttle{ @@ -488,7 +473,6 @@ pixel_y = 1 }, /obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 0; pixel_y = -1 }, /obj/item/weapon/storage/toolbox/emergency{ @@ -505,8 +489,7 @@ /obj/structure/reagent_dispensers/fueltank, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = -26; - pixel_y = 0 + pixel_x = -26 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -597,8 +580,6 @@ "bj" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -621,7 +602,6 @@ /obj/item/clothing/head/hardhat/red, /obj/effect/turf_decal/bot, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel, @@ -685,9 +665,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "bv" = ( /obj/machinery/door/airlock/shuttle{ @@ -785,7 +763,6 @@ "bJ" = ( /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 58 }, /turf/open/floor/plasteel/neutral/side, @@ -844,9 +821,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (EAST)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "bS" = ( /turf/open/floor/plasteel/neutral/corner{ @@ -869,7 +844,6 @@ /obj/item/weapon/storage/box/zipties, /obj/item/device/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/mineral/plastitanium/brig, @@ -894,9 +868,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel{ - tag = "icon-plasteel_warn_side (NORTH)" - }, +/turf/open/floor/plasteel, /area/shuttle/escape) "bZ" = ( /obj/machinery/suit_storage_unit/standard_unit, @@ -921,14 +893,12 @@ dir = 1 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5 }, /area/shuttle/escape) "cc" = ( /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5 }, @@ -943,7 +913,6 @@ "ce" = ( /obj/machinery/computer/security, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (NORTHWEST)"; icon_state = "darkred"; dir = 9 }, @@ -953,7 +922,6 @@ dir = 8 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5 }, @@ -965,7 +933,6 @@ pixel_y = 58 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5 }, @@ -975,7 +942,6 @@ dir = 4 }, /turf/open/floor/plasteel/vault{ - tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5 }, @@ -983,7 +949,6 @@ "ci" = ( /obj/machinery/computer/station_alert, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTHEAST)"; icon_state = "darkyellow"; dir = 5 }, @@ -991,7 +956,6 @@ "cj" = ( /obj/machinery/computer/secure_data, /turf/open/floor/plasteel/darkred/side{ - tag = "icon-darkred (SOUTHWEST)"; icon_state = "darkred"; dir = 10 }, @@ -1026,7 +990,6 @@ "cp" = ( /obj/machinery/computer/atmos_alert, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (SOUTHEAST)"; icon_state = "darkyellow"; dir = 6 }, @@ -1103,7 +1066,6 @@ pixel_y = 3 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ @@ -1137,7 +1099,6 @@ pixel_y = 3 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/neutral/side{ diff --git a/_maps/shuttles/emergency_goon.dmm b/_maps/shuttles/emergency_goon.dmm index 9cd0354e87..c405a2df6b 100644 --- a/_maps/shuttles/emergency_goon.dmm +++ b/_maps/shuttles/emergency_goon.dmm @@ -4,14 +4,12 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/open/floor/plating, /area/shuttle/escape) "c" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/open/floor/plating, @@ -48,20 +46,17 @@ /area/shuttle/escape) "i" = ( /turf/closed/wall/shuttle{ - tag = "icon-wall_space (WEST)"; icon_state = "wall_space"; dir = 8 }, /area/shuttle/escape) "j" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall4"; icon_state = "swall4" }, /area/shuttle/escape) "k" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall12"; icon_state = "swall12" }, /area/shuttle/escape) @@ -76,7 +71,6 @@ /area/shuttle/escape) "n" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall1"; icon_state = "swall1" }, /area/shuttle/escape) @@ -85,18 +79,15 @@ /area/shuttle/escape) "p" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plating, /area/shuttle/escape) "q" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/mineral/titanium, @@ -149,8 +140,7 @@ layer = 2.9 }, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) @@ -162,8 +152,7 @@ /area/shuttle/escape) "B" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced{ dir = 1 @@ -173,13 +162,11 @@ /area/shuttle/escape) "C" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall8"; icon_state = "swall8" }, /area/shuttle/escape) "D" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall3"; icon_state = "swall3" }, /area/shuttle/escape) @@ -196,8 +183,7 @@ "G" = ( /obj/machinery/computer/emergency_shuttle, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) @@ -210,8 +196,7 @@ "I" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /obj/structure/window/reinforced, /turf/open/floor/mineral/titanium/yellow, @@ -237,21 +222,18 @@ /obj/item/weapon/storage/firstaid/regular, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "N" = ( /turf/closed/wall/shuttle{ - tag = "icon-wall_space (EAST)"; icon_state = "wall_space"; dir = 4 }, /area/shuttle/escape) "O" = ( /turf/closed/wall/shuttle{ - tag = "icon-wall_floor (WEST)"; icon_state = "wall_floor"; dir = 8 }, @@ -259,7 +241,6 @@ "P" = ( /obj/machinery/status_display, /turf/closed/wall/shuttle{ - tag = "icon-swall0"; icon_state = "swall0" }, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 998f31369e..bc3f87c187 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -50,7 +50,6 @@ /area/shuttle/escape) "k" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 4 }, /obj/machinery/vending/boozeomat, @@ -66,8 +65,6 @@ /area/shuttle/escape) "n" = ( /obj/structure/chair/comfy/teal{ - tag = "icon-comfychair (WEST)"; - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -106,7 +103,6 @@ /area/shuttle/escape) "u" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/wood, diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index c638427edd..00739b62e8 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -8,7 +8,6 @@ "ac" = ( /obj/machinery/door/airlock/external, /turf/open/floor/plating{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/shuttle/escape) @@ -36,25 +35,21 @@ /area/shuttle/escape) "af" = ( /turf/open/floor/plating{ - tag = "icon-wood-broken3"; icon_state = "wood-broken3" }, /area/shuttle/escape) "ag" = ( /turf/open/floor/plating{ - tag = "icon-wood"; icon_state = "wood" }, /area/shuttle/escape) "ah" = ( /turf/open/floor/plating{ - tag = "icon-wood-broken"; icon_state = "wood-broken" }, /area/shuttle/escape) "ai" = ( /turf/open/floor/plating{ - tag = "icon-wood-broken5"; icon_state = "wood-broken5" }, /area/shuttle/escape) @@ -63,7 +58,6 @@ /area/shuttle/escape) "ak" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-10"; icon_state = "plant-10" }, /turf/open/floor/mineral/gold, @@ -76,29 +70,24 @@ /area/shuttle/escape) "am" = ( /turf/open/floor/plating{ - tag = "icon-wood-broken7"; icon_state = "wood-broken7" }, /area/shuttle/escape) "an" = ( /obj/machinery/light/small, /turf/open/floor/plating{ - tag = "icon-wood-broken2"; icon_state = "wood-broken2" }, /area/shuttle/escape) "ao" = ( /obj/machinery/light/small, /turf/open/floor/plating{ - tag = "icon-wood-broken6"; icon_state = "wood-broken6" }, /area/shuttle/escape) "ap" = ( /obj/structure/toilet{ - dir = 4; - icon_state = "toilet00"; - tag = "icon-toilet00 (NORTH)" + dir = 4 }, /turf/open/floor/mineral/gold, /area/shuttle/escape) @@ -130,8 +119,6 @@ /area/shuttle/escape) "av" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/mineral/gold, @@ -300,8 +287,6 @@ /area/shuttle/escape) "bd" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/carpet, @@ -312,8 +297,6 @@ /area/shuttle/escape) "bf" = ( /obj/machinery/sleeper{ - tag = "icon-sleeper-open (EAST)"; - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/mineral/gold, @@ -336,7 +319,6 @@ /area/shuttle/escape) "bj" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/gold, @@ -349,11 +331,9 @@ /area/shuttle/escape) "bl" = ( /obj/item/weapon/twohanded/required/kirbyplants{ - tag = "icon-plant-10"; icon_state = "plant-10" }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/gold, @@ -366,7 +346,6 @@ /area/shuttle/escape) "bn" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/gold, diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 87fe19c7ef..3395fb8f12 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -101,7 +101,6 @@ /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 27 }, /obj/structure/chair, @@ -278,8 +277,6 @@ "aI" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -304,8 +301,7 @@ "aN" = ( /obj/machinery/status_display{ dir = 8; - pixel_x = 32; - pixel_y = 0 + pixel_x = 32 }, /obj/machinery/holopad, /turf/open/floor/mineral/titanium/blue, @@ -336,7 +332,6 @@ /obj/item/device/radio/intercom{ dir = 2; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -31 }, /turf/open/floor/mineral/titanium/blue, @@ -346,7 +341,6 @@ /obj/item/weapon/folder/blue, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 0; pixel_y = -27 }, /turf/open/floor/mineral/titanium/blue, @@ -355,7 +349,6 @@ /obj/item/device/radio/intercom{ dir = 2; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -31 }, /obj/structure/chair{ @@ -528,8 +521,7 @@ "bu" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -567,7 +559,6 @@ pixel_y = 1 }, /obj/item/weapon/storage/toolbox/mechanical{ - pixel_x = 0; pixel_y = -1 }, /obj/item/weapon/storage/toolbox/emergency{ @@ -594,7 +585,6 @@ /obj/structure/table/optable, /obj/item/weapon/surgical_drapes, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -627,7 +617,6 @@ /obj/item/device/radio/intercom{ dir = 2; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -31 }, /obj/item/weapon/book/manual/wiki/security_space_law{ @@ -677,8 +666,7 @@ /obj/item/device/radio/intercom{ dir = 2; name = "Station Intercom (General)"; - pixel_x = -27; - pixel_y = 0 + pixel_x = -27 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -725,7 +713,6 @@ /obj/machinery/space_heater, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 0; pixel_y = -27 }, /obj/effect/turf_decal/bot, @@ -781,7 +768,6 @@ /obj/item/device/radio/intercom{ dir = 2; name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -31 }, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -800,8 +786,6 @@ "bS" = ( /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; - pixel_x = 0; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, @@ -906,7 +890,6 @@ /area/shuttle/escape) "bX" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -919,7 +902,6 @@ /area/shuttle/escape) "bZ" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, diff --git a/_maps/shuttles/emergency_meteor.dmm b/_maps/shuttles/emergency_meteor.dmm index 687c24f006..1f27a93916 100644 --- a/_maps/shuttles/emergency_meteor.dmm +++ b/_maps/shuttles/emergency_meteor.dmm @@ -1,57 +1,1775 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/mineral,/area/shuttle/escape{luminosity = 0}) -"c" = (/obj/structure/window/reinforced{dir = 1;layer = 2.9},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"d" = (/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"e" = (/obj/machinery/computer/emergency_shuttle{use_power = 0},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"f" = (/mob/living/simple_animal/hostile/asteroid/goliath,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"g" = (/obj/structure/mineral_door/iron,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"h" = (/obj/item/weapon/pickaxe,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"i" = (/obj/effect/station_crash,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"j" = (/obj/docking_port/mobile/emergency{dwidth = 20;height = 40;name = "a meteor with engines strapped to it";timid = 1;width = 40},/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"k" = (/obj/structure/closet/crate,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"l" = (/obj/machinery/power/smes,/turf/open/floor/plating/asteroid,/area/shuttle/escape{luminosity = 0}) -"m" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape{luminosity = 0}) -"n" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape{luminosity = 0}) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/mineral, +/area/shuttle/escape{ + luminosity = 0 + }) +"c" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"d" = ( +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"e" = ( +/obj/machinery/computer/emergency_shuttle{ + use_power = 0 + }, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"f" = ( +/mob/living/simple_animal/hostile/asteroid/goliath, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"g" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"h" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"i" = ( +/obj/effect/station_crash, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"j" = ( +/obj/docking_port/mobile/emergency{ + dwidth = 20; + height = 40; + name = "a meteor with engines strapped to it"; + timid = 1; + width = 40 + }, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"k" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"l" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating/asteroid, +/area/shuttle/escape{ + luminosity = 0 + }) +"m" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape{ + luminosity = 0 + }) +"n" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape{ + luminosity = 0 + }) (1,1,1) = {" -aaabbbbbbaaabbbbaaaaabbbbbabbbbaaaaaaaaa -aabbbbbbbbbbbbbbcccccbbbbbbbbbbbbbbbbbaa -abbbbbbbbbbbbbbbdddddbbbbbbbbbbbbbbbbbba -bbbbbbbbbbbbbbbbeddddbbbbbbbbbbbbbbbbbba -bbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbbbbbba -ddddbbbbbbdbbbbbbbdbbbbbbbbbbbbbbbbbbbba -ddddbbbbbbddbbbbbbdbbbbbbbbbbbbbbbddbbbb -ddddbbbbbbddbbbbbbdbbbdddddbbbbbbdddbbbb -bbbbbbbbbbddbbbbbbdddddddddbbbbbbdfdbbbb -bbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbdddbbbb -bbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbbbbbbbb -dbbbbbbbbbddbbbbbbbbbddbbbbbbbbbbbbbbbbb -dbddbbbbbdddbbbbbbbbdddddddbbbbbbbbbbbbb -dbddddddgdddbbbbbbbddddddddbbbbbbbbbbbaa -bbddddddgdddbbbbbbbdbbbbbbbbbbbbbbdbbbaa -bddbbbbbbbbdbbbbbbbdbbbbbbbddddddddbbbbb -bdbbbbbbbbbdbbbbbbbdbbbbbbbbdbbbbbdbbbbb -ddbbbbbbbbbdbbbbbbbdbbbbbbbbdbbbbbdbbbbb -dbbbbbbbbbbdbbbbbbbdbbbbbbbbddddhbdbbbbb -dibbbbbbbbbdbbbbbbbdbbbbbbbbbbbbbbdbbbbb -jbbbbbbbbbbdbbbbbbbdbbbbbbbbbbbbbbdbbbba -dbbbbddddddddddddddddbbbbbbdbbbbbbdbbbba -dbbbdddbbbbdbbbbbbbdbbbbbbbddddddddbbbbb -bbbbdddbbbbdbbbbbbbdbbbbbbbdbbbbbbbbbbba -dbbbdddbbbbdbbbbbbbdbbbbbbbdbbbbbbbbbbba -dbbbddbbbbbbbbbbbbbdbbbbbbbdbbbbbbbbbbba -dbbbkkkbbbbbbbbbbbbdbbbbbbbdbbbllllllbba -dbbbbbbbbbbbbbbbbbbdbbbbbbbdbbbddddddbbb -dbbbbbbbbbbbbbbbbbbddddddddddddddddddbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbddddddbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb -ddbbbbbbbbbbbbbbbbbdbbbbbbbbbbbbbbbdbbbb -ddbbbbbbbbbbbbbbbbddddbbbbbbbbbbbbbdbbbb -bbbbbbbbbbbbbbbbbbddddbbbbbbbbbbbbbdbbbb -abbbbbbbbbbbbbbbbbddddbbbbbbbbbbbmmmmbba -aaabbbbaaaaaabbbbbmmmmbbbbbbbbaaannnnbaa -aaaaabbaaaaaabbaabnnnnaaaaaaaaaaaaaaaaaa +a +a +a +b +b +d +d +d +b +b +b +d +d +d +b +b +b +d +d +d +j +d +d +b +d +d +d +d +d +d +d +d +d +d +d +d +b +a +a +a +"} +(2,1,1) = {" +a +a +b +b +b +d +d +d +b +b +b +b +b +b +b +d +d +d +b +i +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +b +b +a +a +"} +(3,1,1) = {" +a +b +b +b +b +d +d +d +b +b +b +b +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(4,1,1) = {" +b +b +b +b +b +d +d +d +b +b +b +b +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(5,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +b +d +d +d +d +k +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(6,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +d +d +d +d +d +k +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(7,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +d +d +d +d +b +k +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(8,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(9,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +g +g +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(10,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +d +d +d +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(11,1,1) = {" +a +b +b +b +b +d +d +d +d +d +d +d +d +d +d +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(12,1,1) = {" +a +b +b +b +b +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(13,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(14,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(15,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(16,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(17,1,1) = {" +a +c +d +e +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(18,1,1) = {" +a +c +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(19,1,1) = {" +a +c +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +m +n +"} +(20,1,1) = {" +a +c +d +d +b +b +b +b +d +b +b +b +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +m +n +"} +(21,1,1) = {" +a +c +d +d +b +b +b +b +d +b +b +b +d +d +b +b +b +b +b +b +b +d +b +b +b +b +b +b +d +b +b +b +b +b +b +d +d +d +m +n +"} +(22,1,1) = {" +b +b +b +b +b +b +b +b +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +d +d +d +m +n +"} +(23,1,1) = {" +b +b +b +b +b +b +b +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(24,1,1) = {" +b +b +b +b +b +b +b +d +d +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(25,1,1) = {" +b +b +b +b +b +b +b +d +d +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(26,1,1) = {" +b +b +b +b +b +b +b +d +d +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(27,1,1) = {" +a +b +b +b +b +b +b +d +d +b +b +b +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(28,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +b +b +b +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +a +"} +(29,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +b +b +b +d +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(30,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +d +b +b +b +d +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +b +a +"} +(31,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +d +b +b +b +d +b +b +b +b +b +d +b +b +b +b +b +b +b +b +b +a +a +"} +(32,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +d +b +b +b +d +b +b +b +l +d +d +d +d +d +b +b +b +b +b +b +a +a +"} +(33,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +b +b +h +b +b +b +d +b +b +b +l +d +d +d +d +d +b +b +b +b +b +b +a +a +"} +(34,1,1) = {" +a +b +b +b +b +b +b +d +d +d +b +b +b +b +b +d +b +b +b +b +b +b +d +b +b +b +l +d +d +d +d +d +b +b +b +b +b +m +n +a +"} +(35,1,1) = {" +a +b +b +b +b +b +d +d +f +d +b +b +b +b +d +d +d +d +d +d +d +d +d +b +b +b +l +d +d +d +d +d +b +b +b +b +b +m +n +a +"} +(36,1,1) = {" +a +b +b +b +b +b +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +d +d +d +d +d +d +d +d +d +d +m +n +a +"} +(37,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +l +d +d +d +d +d +b +b +b +b +b +m +n +a +"} +(38,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(39,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +b +b +b +b +b +b +b +a +a +b +b +b +b +b +a +a +b +a +a +a +a +b +b +b +b +b +b +b +b +b +b +a +a +a "} diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm index 0f5a69166e..b5caf8aad0 100644 --- a/_maps/shuttles/emergency_mini.dmm +++ b/_maps/shuttles/emergency_mini.dmm @@ -7,14 +7,12 @@ /area/shuttle/escape) "c" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 1 }, /turf/open/floor/plating/airless, /area/shuttle/escape) "d" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 1 }, /obj/structure/window/reinforced, @@ -37,8 +35,7 @@ /area/shuttle/escape) "g" = ( /obj/machinery/sleeper{ - dir = 8; - icon_state = "sleeper-open" + dir = 8 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -59,8 +56,6 @@ /area/shuttle/escape) "k" = ( /obj/machinery/light/small{ - tag = "icon-bulb1 (WEST)"; - icon_state = "bulb1"; dir = 8 }, /turf/open/floor/mineral/titanium, @@ -78,8 +73,6 @@ dir = 8 }, /obj/machinery/light/small{ - tag = "icon-bulb1 (EAST)"; - icon_state = "bulb1"; dir = 4 }, /turf/open/floor/mineral/plastitanium/brig, @@ -149,8 +142,6 @@ dir = 8 }, /obj/machinery/light{ - tag = "icon-tube1 (EAST)"; - icon_state = "tube1"; dir = 4 }, /turf/open/floor/mineral/titanium, @@ -167,8 +158,6 @@ dir = 4 }, /obj/machinery/light{ - tag = "icon-tube1 (WEST)"; - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm index 352e34512d..f7fc4e16b9 100644 --- a/_maps/shuttles/emergency_narnar.dmm +++ b/_maps/shuttles/emergency_narnar.dmm @@ -65,7 +65,6 @@ dir = 8 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/cult, @@ -73,7 +72,6 @@ "o" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel/cult, @@ -164,8 +162,7 @@ /area/shuttle/escape) "G" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/weapon/extinguisher{ safety = 0 @@ -204,8 +201,7 @@ /area/shuttle/escape) "M" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plasteel/cult, /area/shuttle/escape) @@ -229,8 +225,7 @@ }, /obj/item/weapon/crowbar, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/item/stack/sheet/metal, /turf/open/floor/plasteel/cult, diff --git a/_maps/shuttles/emergency_pubby.dmm b/_maps/shuttles/emergency_pubby.dmm index ced48fe48b..f7dd78f851 100644 --- a/_maps/shuttles/emergency_pubby.dmm +++ b/_maps/shuttles/emergency_pubby.dmm @@ -26,22 +26,18 @@ /obj/structure/table, /obj/machinery/recharger, /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) "ag" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "ah" = ( /obj/structure/chair/comfy/black{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/mineral/titanium/blue, @@ -96,8 +92,7 @@ /area/shuttle/escape) "at" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/machinery/light/small{ dir = 4 @@ -254,8 +249,6 @@ /area/shuttle/escape) "aS" = ( /obj/structure/chair/comfy/beige{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/carpet, @@ -272,8 +265,7 @@ /area/shuttle/escape) "aV" = ( /obj/machinery/sleeper{ - dir = 4; - icon_state = "sleeper-open" + dir = 4 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -298,7 +290,6 @@ /area/shuttle/escape) "aY" = ( /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index eeb1a3756b..7382695c40 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -68,7 +68,6 @@ /area/shuttle/escape) "an" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHWEST)"; dir = 9 }, /area/shuttle/escape) @@ -77,13 +76,11 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/shuttle/escape) "ap" = ( /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTHEAST)"; dir = 5 }, /area/shuttle/escape) @@ -118,7 +115,6 @@ dir = 8 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHWEST)"; dir = 10 }, /area/shuttle/escape) @@ -139,7 +135,6 @@ dir = 4 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (SOUTHEAST)"; dir = 6 }, /area/shuttle/escape) @@ -170,8 +165,7 @@ /obj/structure/table/reinforced, /obj/item/weapon/defibrillator/loaded, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkpurple/side{ dir = 4 @@ -183,7 +177,6 @@ req_access_txt = "19" }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (WEST)"; dir = 8 }, /area/shuttle/escape) @@ -193,7 +186,6 @@ req_access_txt = "19" }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (EAST)"; dir = 4 }, /area/shuttle/escape) @@ -225,7 +217,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/shuttle/escape) @@ -244,7 +235,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkblue/side{ - tag = "icon-darkblue (NORTH)"; dir = 1 }, /area/shuttle/escape) @@ -326,9 +316,7 @@ "aY" = ( /obj/machinery/flasher{ id = "shuttleflash"; - pixel_x = -26; - pixel_y = 0; - pixel_x = 0 + pixel_x = -26 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 8 @@ -342,8 +330,7 @@ "ba" = ( /turf/open/floor/plasteel/darkyellow/side{ dir = 8; - icon_state = "darkyellow"; - tag = "icon-darkyellow (NORTHEAST)" + icon_state = "darkyellow" }, /area/shuttle/escape) "bb" = ( @@ -427,7 +414,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (NORTHEAST)"; icon_state = "darkyellow"; dir = 5 }, @@ -457,8 +443,7 @@ "bf" = ( /turf/open/floor/plasteel/darkyellow/side{ dir = 4; - icon_state = "darkyellow"; - tag = "icon-darkyellow (NORTHEAST)" + icon_state = "darkyellow" }, /area/shuttle/escape) "bg" = ( @@ -485,22 +470,19 @@ /obj/machinery/suit_storage_unit/standard_unit, /turf/open/floor/plasteel/darkyellow/side{ dir = 10; - icon_state = "darkyellow"; - tag = "icon-darkyellow (SOUTHEAST)" + icon_state = "darkyellow" }, /area/shuttle/escape) "bk" = ( /obj/machinery/suit_storage_unit/standard_unit, /turf/open/floor/plasteel/darkyellow/side{ - tag = "icon-darkyellow (SOUTHEAST)"; icon_state = "darkyellow"; dir = 6 }, /area/shuttle/escape) "bl" = ( /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -539,7 +521,6 @@ /area/shuttle/escape) "bm" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/darkpurple/side{ @@ -576,7 +557,6 @@ /area/shuttle/escape) "br" = ( /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -653,8 +633,7 @@ "bF" = ( /turf/open/floor/plasteel/darkgreen/side{ dir = 9; - icon_state = "darkgreen"; - tag = "icon-darkgreen (NORTH)" + icon_state = "darkgreen" }, /area/shuttle/escape) "bG" = ( @@ -675,8 +654,7 @@ }, /turf/open/floor/plasteel/darkgreen/side{ dir = 9; - icon_state = "darkgreen"; - tag = "icon-darkgreen (NORTH)" + icon_state = "darkgreen" }, /area/shuttle/escape) "bI" = ( @@ -703,7 +681,6 @@ "bL" = ( /obj/machinery/door/airlock/hatch, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -827,8 +804,7 @@ /obj/machinery/recharge_station, /turf/open/floor/plasteel/darkgreen/side{ dir = 9; - icon_state = "darkgreen"; - tag = "icon-darkgreen (NORTH)" + icon_state = "darkgreen" }, /area/shuttle/escape) "bU" = ( @@ -843,8 +819,7 @@ }, /turf/open/floor/plasteel/darkgreen/side{ dir = 9; - icon_state = "darkgreen"; - tag = "icon-darkgreen (NORTH)" + icon_state = "darkgreen" }, /area/shuttle/escape) "bW" = ( @@ -890,7 +865,6 @@ "cb" = ( /obj/structure/chair, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -940,15 +914,13 @@ }, /turf/open/floor/plasteel/darkgreen/side{ dir = 9; - icon_state = "darkgreen"; - tag = "icon-darkgreen (NORTH)" + icon_state = "darkgreen" }, /area/shuttle/escape) "ci" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 5 @@ -978,8 +950,7 @@ /area/shuttle/escape) "cn" = ( /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 4 @@ -1001,8 +972,7 @@ "cq" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 4 @@ -1062,7 +1032,6 @@ /obj/machinery/button/door{ id = "shuttleshutters"; name = "Bridge Blast Shutters"; - pixel_x = 0; pixel_y = -26; req_access_txt = "19" }, @@ -1503,12 +1472,10 @@ "eB" = ( /obj/machinery/flasher{ id = "shuttleflash"; - pixel_x = 24; - pixel_y = 0 + pixel_x = 24 }, /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 4 @@ -1516,8 +1483,7 @@ /area/shuttle/escape) "eC" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkpurple/side{ dir = 4 @@ -1538,7 +1504,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -1556,7 +1521,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -1583,7 +1547,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -1593,7 +1556,6 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, @@ -1603,15 +1565,13 @@ dir = 1 }, /turf/open/floor/plasteel/darkgreen/side{ - tag = "icon-darkgreen (NORTH)"; icon_state = "darkgreen"; dir = 1 }, /area/shuttle/escape) "eN" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 4 @@ -1631,8 +1591,7 @@ /area/shuttle/escape) "eQ" = ( /obj/machinery/light{ - dir = 4; - icon_state = "tube1" + dir = 4 }, /turf/open/floor/plasteel/darkgreen/side{ dir = 4 diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm index 46b7271454..6d02bd568b 100644 --- a/_maps/shuttles/emergency_russiafightpit.dmm +++ b/_maps/shuttles/emergency_russiafightpit.dmm @@ -81,7 +81,6 @@ "ap" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /obj/effect/decal/cleanable/dirt, @@ -424,15 +423,13 @@ /area/shuttle/escape) "bs" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "bt" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/table, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, @@ -463,8 +460,7 @@ /area/shuttle/escape) "bz" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /turf/open/floor/plating, /area/shuttle/escape) @@ -488,14 +484,12 @@ /area/shuttle/escape) "bD" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/shuttle/escape) "bE" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/plasteel/floorgrime, diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm index fddc73afcd..1830bdc95f 100644 --- a/_maps/shuttles/emergency_scrapheap.dmm +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -19,8 +19,6 @@ /area/shuttle/escape) "af" = ( /obj/structure/chair/comfy/brown{ - tag = "icon-comfychair (NORTH)"; - icon_state = "comfychair"; dir = 1 }, /turf/open/floor/carpet, @@ -42,8 +40,6 @@ /area/shuttle/escape) "aj" = ( /obj/structure/chair/comfy/brown{ - tag = "icon-comfychair (WEST)"; - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/carpet, @@ -53,8 +49,6 @@ /area/shuttle/escape) "al" = ( /obj/structure/chair/comfy/brown{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /obj/structure/window/reinforced{ @@ -70,7 +64,6 @@ "an" = ( /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/carpet, @@ -206,7 +199,6 @@ }, /obj/item/device/radio/intercom{ name = "Station Intercom (General)"; - pixel_x = 0; pixel_y = 23 }, /turf/open/floor/mineral/titanium/blue, @@ -299,8 +291,6 @@ /area/shuttle/escape) "aY" = ( /obj/structure/chair/wood{ - tag = "icon-wooden_chair (NORTH)"; - icon_state = "wooden_chair"; dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -313,7 +303,6 @@ /area/shuttle/escape) "ba" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = -30 }, /turf/open/floor/plasteel/bar, @@ -369,8 +358,6 @@ /area/shuttle/escape) "bj" = ( /obj/structure/toilet{ - tag = "icon-toilet00 (EAST)"; - icon_state = "toilet00"; dir = 4 }, /obj/machinery/light/small{ diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm index 6f932031b1..e0dad50c6c 100644 --- a/_maps/shuttles/emergency_supermatter.dmm +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -46,7 +46,6 @@ "ak" = ( /obj/structure/sign/radiation, /turf/closed/wall/shuttle{ - tag = "icon-swall3"; icon_state = "swall3" }, /area/shuttle/escape) @@ -73,7 +72,6 @@ /area/shuttle/escape) "ao" = ( /obj/structure/reflector/single{ - tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1 @@ -236,7 +234,6 @@ /area/shuttle/escape) "aP" = ( /obj/structure/reflector/double{ - tag = "icon-reflector_double (NORTH)"; icon_state = "reflector_double"; dir = 1; anchored = 1 @@ -245,7 +242,6 @@ /area/shuttle/escape) "aQ" = ( /obj/structure/reflector/single{ - tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1 @@ -356,7 +352,6 @@ }, /obj/item/clothing/glasses/meson/engine, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/mineral/titanium/yellow, @@ -376,7 +371,6 @@ dir = 8 }, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm index 88dd6fd725..eff25a891f 100644 --- a/_maps/shuttles/emergency_wabbajack.dmm +++ b/_maps/shuttles/emergency_wabbajack.dmm @@ -167,8 +167,7 @@ /area/shuttle/escape) "aG" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 27; - pixel_y = 0 + pixel_x = 27 }, /obj/structure/table/glass, /obj/item/weapon/storage/box/syringes{ @@ -199,7 +198,6 @@ /area/shuttle/escape) "aK" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 4 }, /turf/open/floor/mineral/titanium, @@ -345,7 +343,6 @@ "bk" = ( /obj/structure/chair/wood, /obj/machinery/light{ - icon_state = "tube1"; dir = 8 }, /turf/open/floor/plasteel/cult, diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm index 3a270c3324..a0efdd6398 100644 --- a/_maps/shuttles/ferry_base.dmm +++ b/_maps/shuttles/ferry_base.dmm @@ -4,7 +4,6 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/closed/wall/mineral/titanium, @@ -67,7 +66,6 @@ /area/shuttle/transport) "n" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/closed/wall/shuttle{ diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index 77ea6452bd..12a8fb0a04 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -3,15 +3,13 @@ /turf/open/space, /area/shuttle/transport) "ab" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l"; +/obj/structure/shuttle/engine/propulsion/left{ dir = 4 }, /turf/open/floor/plating/airless, /area/shuttle/transport) "ac" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /turf/open/floor/plating/airless, @@ -313,9 +311,7 @@ /turf/open/floor/plating/airless, /area/shuttle/transport) "bj" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating/airless, /area/shuttle/transport) diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index 04c1dee4e3..bf71346f92 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -4,7 +4,6 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/closed/wall/mineral/titanium/overspace, @@ -75,9 +74,7 @@ /area/shuttle/transport) "k" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 0; - pixel_y = 30; - tag = "n" + pixel_y = 30 }, /turf/open/floor/plasteel/freezer, /area/shuttle/transport) @@ -124,7 +121,6 @@ /area/shuttle/transport) "r" = ( /obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; dir = 4 }, /turf/closed/wall/shuttle{ diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 6daeb784c2..e5e272c1b9 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -40,9 +40,8 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "ag" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -82,14 +81,12 @@ /area/shuttle/abandoned) "an" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) "ao" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -164,9 +161,8 @@ }, /area/shuttle/abandoned) "aB" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -338,7 +334,6 @@ /area/shuttle/abandoned) "bh" = ( /obj/machinery/sleeper{ - icon_state = "sleeper-open"; dir = 8 }, /obj/effect/decal/remains/human, diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index 065d4d4bfc..1832f02588 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -1,73 +1,852 @@ -"aa" = (/turf/open/space/basic,/area/space) -"ab" = (/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) -"ac" = (/obj/machinery/door/airlock/titanium{name = "mech bay external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 8; height = 16; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; port_angle = -90; preferred_direction = 1; roundstart_move = "whiteship_away"; width = 16},/turf/open/floor/plating,/area/shuttle/abandoned) -"ad" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"ae" = (/obj/machinery/mech_bay_recharge_port{tag = "icon-recharge_port"; icon_state = "recharge_port"; dir = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"af" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ag" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ah" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"ai" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/frame/machine,/obj/item/stack/cable_coil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aj" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/shuttle/abandoned) -"ak" = (/obj/structure/mecha_wreckage/ripley,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mech_bay_recharge_floor,/area/shuttle/abandoned) -"al" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"am" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"an" = (/obj/effect/spawner/lootdrop{loot = list(/obj/mecha/working/ripley/mining = 1, /obj/structure/mecha_wreckage/ripley = 5); lootdoubles = 0; name = "25% mech 75% wreckage ripley spawner"},/turf/open/floor/mech_bay_recharge_floor,/area/shuttle/abandoned) -"ao" = (/obj/machinery/computer/mech_bay_power_console,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ap" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aq" = (/obj/machinery/door/airlock/titanium{name = "mech bay"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ar" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) -"as" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"at" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"au" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"av" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aw" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ax" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/toolbox/emergency/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"ay" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/abandoned) -"az" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/machinery/button/door{id = "cerewhiteleft"; name = "Cargo Blast Door Toggle"; pixel_x = -24},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aA" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aB" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aC" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aD" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/stack/sheet/glass/fifty,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aE" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/machinery/button/door{id = "cerewhiteright"; name = "Cargo Blast Door Toggle"; pixel_x = 24},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aF" = (/obj/machinery/door/poddoor{id = "cerewhiteleft"},/turf/open/floor/plating,/area/shuttle/abandoned) -"aG" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"aH" = (/obj/machinery/door/poddoor{id = "cerewhiteright"},/turf/open/floor/plating,/area/shuttle/abandoned) -"aI" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/weapon/storage/toolbox/mechanical/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/glasses/welding,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aJ" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/machinery/light,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aK" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) -"aL" = (/obj/effect/turf_decal/delivery{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aM" = (/obj/structure/ore_box,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aN" = (/obj/machinery/door/airlock/titanium{name = "cockpit"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aO" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/abandoned) -"aP" = (/obj/structure/table,/obj/item/device/gps{gpstag = "NTCONST1"; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aQ" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aR" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aS" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aT" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/item/weapon/storage/firstaid/regular,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/light{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aU" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aV" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aW" = (/obj/structure/chair/comfy/black,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aX" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"aY" = (/turf/open/space,/area/space) -"aZ" = (/obj/structure/table,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"ba" = (/obj/machinery/computer/shuttle/white_ship,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) -"bb" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space/basic, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"ac" = ( +/obj/machinery/door/airlock/titanium{ + name = "mech bay external airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/docking_port/mobile{ + dheight = 0; + dir = 2; + dwidth = 8; + height = 16; + id = "whiteship"; + launch_status = 0; + name = "NT Recovery White-Ship"; + port_angle = -90; + preferred_direction = 1; + roundstart_move = "whiteship_away"; + width = 16 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ad" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"ae" = ( +/obj/machinery/mech_bay_recharge_port{ + icon_state = "recharge_port"; + dir = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"af" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ag" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ah" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ai" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aj" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"ak" = ( +/obj/structure/mecha_wreckage/ripley, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/shuttle/abandoned) +"al" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"am" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"an" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/mecha/working/ripley/mining = 1, /obj/structure/mecha_wreckage/ripley = 5); + lootdoubles = 0; + name = "25% mech 75% wreckage ripley spawner" + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/shuttle/abandoned) +"ao" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ap" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aq" = ( +/obj/machinery/door/airlock/titanium{ + name = "mech bay" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ar" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"as" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"at" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"au" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"av" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aw" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ax" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/storage/toolbox/emergency/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"ay" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"az" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "cerewhiteleft"; + name = "Cargo Blast Door Toggle"; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aA" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aB" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/pickaxe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aC" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aD" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aE" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "cerewhiteright"; + name = "Cargo Blast Door Toggle"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aF" = ( +/obj/machinery/door/poddoor{ + id = "cerewhiteleft" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aH" = ( +/obj/machinery/door/poddoor{ + id = "cerewhiteright" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aI" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/weapon/storage/toolbox/mechanical/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aJ" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/obj/machinery/light, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aL" = ( +/obj/effect/turf_decal/delivery{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aM" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aN" = ( +/obj/machinery/door/airlock/titanium{ + name = "cockpit" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/tank_dispenser/oxygen{ + layer = 2.7; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/abandoned) +"aP" = ( +/obj/structure/table, +/obj/item/device/gps{ + gpstag = "NTCONST1"; + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aT" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/weapon/storage/firstaid/regular, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aU" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aV" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aW" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aX" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aY" = ( +/turf/open/space, +/area/space) +"aZ" = ( +/obj/structure/table, +/obj/item/weapon/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ba" = ( +/obj/machinery/computer/shuttle/white_ship, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bb" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) (1,1,1) = {" -aaaaababababacababababaaaa -aaadabaeafagahagafaiabadaa -aaajabakagalamagaganabajaa -aaababaoagalamagagapababaa -adababababaqaraqababababad -ajababasatauahavawaxababaj -ayayazaAaAaBahauaCaDaEayay -aFahaGamamamamaGamamamaGaH -aFahaGahaGaGaGaGamamaGahaH -ayayaIaAaJaKaGaGaLavauayay -aaabaMababaNaraNababaOabaa -aaabababaPaQaRaSaTabababaa -aaabababaUaRaQaSaUabababaa -aaaaabaVaSaQaWaRaRaXabaaaa -aYaaabababaZbabbabababaaaa -aYaYaaaaabarararabaaaaaaaa +aa +aa +aa +aa +ad +aj +ay +aF +aF +ay +aa +aa +aa +aa +aY +aY +"} +(2,1,1) = {" +aa +ad +aj +ab +ab +ab +ay +ah +ah +ay +ab +ab +ab +aa +aa +aY +"} +(3,1,1) = {" +ab +ab +ab +ab +ab +ab +az +aG +aG +aI +aM +ab +ab +ab +ab +aa +"} +(4,1,1) = {" +ab +ae +ak +ao +ab +as +aA +am +ah +aA +ab +ab +ab +aV +ab +aa +"} +(5,1,1) = {" +ab +af +ag +ag +ab +at +aA +am +aG +aJ +ab +aP +aU +aS +ab +ab +"} +(6,1,1) = {" +ab +ag +al +al +aq +au +aB +am +aG +aK +aN +aQ +aR +aQ +aZ +ar +"} +(7,1,1) = {" +ac +ah +am +am +ar +ah +ah +am +aG +aG +ar +aR +aQ +aW +ba +ar +"} +(8,1,1) = {" +ab +ag +ag +ag +aq +av +au +aG +aG +aG +aN +aS +aS +aR +bb +ar +"} +(9,1,1) = {" +ab +af +ag +ag +ab +aw +aC +am +am +aL +ab +aT +aU +aR +ab +ab +"} +(10,1,1) = {" +ab +ai +an +ap +ab +ax +aD +am +am +av +ab +ab +ab +aX +ab +aa +"} +(11,1,1) = {" +ab +ab +ab +ab +ab +ab +aE +am +aG +au +aO +ab +ab +ab +ab +aa +"} +(12,1,1) = {" +aa +ad +aj +ab +ab +ab +ay +aG +ah +ay +ab +ab +ab +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +ad +aj +ay +aH +aH +ay +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 23e39ebd86..9b07fc1ac3 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -71,9 +71,8 @@ }, /area/shuttle/abandoned) "ak" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -107,14 +106,11 @@ /area/shuttle/abandoned) "ao" = ( /obj/structure/mirror{ - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -320,14 +316,12 @@ /area/shuttle/abandoned) "aC" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion" + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) "aD" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ @@ -519,8 +513,7 @@ "aT" = ( /obj/effect/decal/cleanable/blood/old, /obj/structure/mirror{ - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -819,7 +812,6 @@ /area/shuttle/abandoned) "bw" = ( /obj/machinery/vending/coffee{ - pixel_x = 0; use_power = 0 }, /turf/open/floor/mineral/titanium, @@ -856,8 +848,7 @@ name = "dust" }, /obj/structure/fluff/empty_sleeper/nanotrasen{ - dir = 1; - pixel_y = 0 + dir = 1 }, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) @@ -871,8 +862,7 @@ name = "dust" }, /obj/structure/fluff/empty_sleeper/nanotrasen{ - dir = 1; - pixel_y = 0 + dir = 1 }, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) @@ -1283,7 +1273,6 @@ /area/shuttle/abandoned) "co" = ( /obj/machinery/door/airlock/titanium{ - icon_state = "door_closed"; name = "medbay"; welded = 0 }, @@ -1450,9 +1439,7 @@ "cC" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -1468,7 +1455,6 @@ /area/shuttle/abandoned) "cE" = ( /obj/structure/sink{ - icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2 @@ -1534,13 +1520,11 @@ /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = -28; - pixel_y = 0; req_access_txt = "0"; use_power = 0 }, /obj/machinery/iv_drip{ - density = 0; - pixel_x = 0 + density = 0 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -1577,9 +1561,7 @@ "cN" = ( /obj/structure/sink{ dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 + pixel_x = 11 }, /obj/effect/decal/cleanable/xenoblood, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, @@ -1590,9 +1572,8 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) "cO" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/abandoned) @@ -1721,8 +1702,7 @@ "cZ" = ( /obj/structure/table, /obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 0 + pixel_x = 6 }, /obj/item/weapon/reagent_containers/glass/bottle/charcoal{ pixel_x = -3 @@ -1747,10 +1727,7 @@ /area/shuttle/abandoned) "db" = ( /obj/structure/table, -/obj/item/weapon/storage/backpack/duffelbag/med{ - contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); - desc = "A large duffelbag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; - name = "surgical duffelbag"; +/obj/item/weapon/storage/backpack/duffelbag/med/surgery{ pixel_y = 4 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 3b35cf432d..464c77f21e 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -7,8 +7,6 @@ /area/shuttle/abandoned) "c" = ( /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/closed/wall/mineral/titanium, @@ -62,9 +60,7 @@ /area/shuttle/abandoned) "k" = ( /obj/structure/shuttle/engine/propulsion/burst{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) diff --git a/_maps/templates/medium_shuttle1.dmm b/_maps/templates/medium_shuttle1.dmm index 583f691396..edd7df2a67 100644 --- a/_maps/templates/medium_shuttle1.dmm +++ b/_maps/templates/medium_shuttle1.dmm @@ -4,9 +4,7 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 8; - icon_state = "burst_l"; - tag = "icon-burst_l (EAST)" + dir = 8 }, /turf/open/space, /area/ruin/powered{ @@ -14,13 +12,9 @@ }) "c" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (WEST)"; - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (EAST)"; - icon_state = "rwindow"; dir = 4 }, /turf/open/floor/plating/airless, @@ -139,8 +133,6 @@ }) "v" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/plasteel/darkyellow, @@ -149,9 +141,7 @@ }) "w" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 8; - icon_state = "burst_r"; - tag = "icon-burst_r (EAST)" + dir = 8 }, /turf/open/space, /area/ruin/powered{ diff --git a/_maps/templates/medium_shuttle2.dmm b/_maps/templates/medium_shuttle2.dmm index 021edc62a6..ec569a13f1 100644 --- a/_maps/templates/medium_shuttle2.dmm +++ b/_maps/templates/medium_shuttle2.dmm @@ -4,9 +4,7 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 8; - icon_state = "burst_l"; - tag = "icon-burst_l (EAST)" + dir = 8 }, /turf/open/space, /area/ruin/powered{ @@ -14,13 +12,9 @@ }) "c" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (WEST)"; - icon_state = "heater"; dir = 8 }, /obj/structure/window/reinforced{ - tag = "icon-rwindow (EAST)"; - icon_state = "rwindow"; dir = 4 }, /turf/open/floor/plating/airless, @@ -43,9 +37,7 @@ }) "f" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 8; - icon_state = "burst_r"; - tag = "icon-burst_r (EAST)" + dir = 8 }, /turf/open/space, /area/ruin/powered{ @@ -135,7 +127,6 @@ }) "t" = ( /obj/machinery/sleeper{ - tag = "icon-sleeper (NORTH)"; icon_state = "sleeper"; dir = 1 }, @@ -170,8 +161,6 @@ }) "y" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (EAST)"; - icon_state = "comfychair"; dir = 4 }, /turf/open/floor/plasteel/darkyellow, diff --git a/_maps/templates/medium_shuttle3.dmm b/_maps/templates/medium_shuttle3.dmm index 74c25e5f8c..c151b4bb39 100644 --- a/_maps/templates/medium_shuttle3.dmm +++ b/_maps/templates/medium_shuttle3.dmm @@ -4,8 +4,6 @@ /area/space) "b" = ( /obj/structure/shuttle/engine/propulsion{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/open/space, @@ -19,8 +17,6 @@ }) "d" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (NORTH)"; - icon_state = "heater"; dir = 1 }, /turf/open/floor/plating/airless, @@ -93,9 +89,7 @@ }) "n" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion"; - tag = "icon-propulsion (EAST)" + dir = 8 }, /turf/open/space, /area/ruin/powered{ @@ -103,8 +97,6 @@ }) "o" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (WEST)"; - icon_state = "heater"; dir = 8 }, /turf/open/floor/plating/airless, @@ -119,8 +111,6 @@ }) "q" = ( /obj/structure/shuttle/engine/heater{ - tag = "icon-heater (EAST)"; - icon_state = "heater"; dir = 4 }, /turf/open/floor/plating/airless, @@ -129,9 +119,7 @@ }) "r" = ( /obj/structure/shuttle/engine/propulsion{ - dir = 4; - icon_state = "propulsion"; - tag = "icon-propulsion (WEST)" + dir = 4 }, /turf/open/space, /area/ruin/powered{ @@ -176,8 +164,6 @@ }) "x" = ( /obj/structure/chair/comfy{ - tag = "icon-comfychair (WEST)"; - icon_state = "comfychair"; dir = 8 }, /turf/open/floor/plasteel/darkyellow, diff --git a/_maps/templates/medium_shuttle4.dmm b/_maps/templates/medium_shuttle4.dmm index 8b05b21303..4943d8c63d 100644 --- a/_maps/templates/medium_shuttle4.dmm +++ b/_maps/templates/medium_shuttle4.dmm @@ -5,7 +5,6 @@ "b" = ( /turf/open/space, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (WEST)"; icon_state = "corner"; dir = 8 }, @@ -30,7 +29,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (NORTH)"; icon_state = "corner"; dir = 1 }, @@ -47,7 +45,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (EAST)"; icon_state = "corner"; dir = 4 }, @@ -63,21 +60,17 @@ /area/ruin/powered) "j" = ( /obj/structure/shuttle/engine/propulsion/burst{ - tag = "icon-propulsion (NORTH)"; - icon_state = "propulsion"; dir = 1 }, /turf/open/space, /area/ruin/powered) "k" = ( /turf/closed/indestructible/oldshuttle{ - tag = "icon-orange"; icon_state = "orange" }, /area/ruin/powered) "l" = ( /obj/structure/chair/old{ - tag = "icon-chairold (NORTH)"; icon_state = "chairold"; dir = 1 }, @@ -92,7 +85,6 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (WEST)"; icon_state = "corner"; dir = 8 }, @@ -107,7 +99,6 @@ "o" = ( /turf/open/space, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (NORTH)"; icon_state = "corner"; dir = 1 }, @@ -115,7 +106,6 @@ "p" = ( /turf/open/space, /turf/closed/indestructible/oldshuttle/corner{ - tag = "icon-corner (EAST)"; icon_state = "corner"; dir = 4 }, diff --git a/_maps/templates/shelter_1.dmm b/_maps/templates/shelter_1.dmm index c2aa94e9d0..2237e82dda 100644 --- a/_maps/templates/shelter_1.dmm +++ b/_maps/templates/shelter_1.dmm @@ -4,8 +4,6 @@ /area/survivalpod) "b" = ( /obj/structure/sign/mining/survival{ - tag = "icon-survival (NORTH)"; - icon_state = "survival"; dir = 1 }, /turf/closed/wall/mineral/titanium/survival/pod, @@ -42,8 +40,6 @@ /area/survivalpod) "j" = ( /obj/structure/sign/mining/survival{ - tag = "icon-survival (EAST)"; - icon_state = "survival"; dir = 4 }, /turf/closed/wall/mineral/titanium/survival/pod, diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index d38147d9e2..fd8dab33c3 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -4,8 +4,6 @@ /area/survivalpod) "b" = ( /obj/structure/sign/mining/survival{ - tag = "icon-survival (NORTH)"; - icon_state = "survival"; dir = 1 }, /turf/closed/wall/mineral/titanium/survival/pod, @@ -50,8 +48,6 @@ /area/survivalpod) "j" = ( /obj/structure/sign/mining/survival{ - tag = "icon-survival (EAST)"; - icon_state = "survival"; dir = 4 }, /turf/closed/wall/mineral/titanium/survival/pod, @@ -72,13 +68,11 @@ /obj/structure/window/reinforced/survival_pod{ dir = 8; icon_state = "pwindow"; - layer = 3; - tag = "icon-pwindow (WEST)" + layer = 3 }, /obj/machinery/door/window/survival_pod{ dir = 1; - icon_state = "windoor"; - tag = "icon-windoor (NORTH)" + icon_state = "windoor" }, /turf/open/floor/carpet/black, /area/survivalpod) @@ -90,7 +84,6 @@ name = "lusty xenomorph maid" }, /obj/structure/window/reinforced/survival_pod{ - tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1 }, @@ -112,8 +105,7 @@ "r" = ( /obj/structure/window/reinforced/survival_pod{ dir = 8; - icon_state = "pwindow"; - tag = "icon-pwindow (WEST)" + icon_state = "pwindow" }, /turf/open/floor/carpet/black, /area/survivalpod) @@ -138,19 +130,16 @@ pixel_y = -2 }, /obj/structure/window/reinforced/survival_pod{ - tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1 }, /obj/structure/table/wood/fancy/black{ - pixel_y = -9; - pixel_z = 0 + pixel_y = -9 }, /turf/open/floor/carpet/black, /area/survivalpod) "u" = ( /obj/machinery/door/window/survival_pod{ - tag = "icon-windoor (NORTH)"; icon_state = "windoor"; dir = 1 }, @@ -158,17 +147,13 @@ /area/survivalpod) "v" = ( /obj/structure/window/reinforced/survival_pod{ - tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1 }, /obj/structure/displaycase{ alert = 0; desc = "A display case containing an expensive forgery, probably."; - pixel_w = 0; - pixel_x = 0; pixel_y = -4; - pixel_z = 0; req_access = 48; start_showpiece_type = /obj/item/fakeartefact }, @@ -178,8 +163,7 @@ /obj/structure/window/reinforced/survival_pod{ density = 0; dir = 9; - icon_state = "pwindow"; - tag = "icon-pwindow (NORTHWEST)" + icon_state = "pwindow" }, /turf/open/floor/carpet/black, /area/survivalpod) @@ -194,11 +178,9 @@ /area/survivalpod) "y" = ( /obj/structure/sink/kitchen{ - tag = "icon-sink_alt (EAST)"; icon_state = "sink_alt"; dir = 4; - pixel_x = -13; - pixel_y = 0 + pixel_x = -13 }, /turf/open/floor/carpet/black, /area/survivalpod) diff --git a/_maps/templates/small_shuttle_1.dmm b/_maps/templates/small_shuttle_1.dmm index 2cedb95005..81439ab63e 100644 --- a/_maps/templates/small_shuttle_1.dmm +++ b/_maps/templates/small_shuttle_1.dmm @@ -13,7 +13,6 @@ "d" = ( /turf/open/space, /turf/closed/wall/shuttle{ - tag = "icon-swall_f10"; icon_state = "swall_f10" }, /area/space) @@ -31,13 +30,11 @@ /area/space) "h" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall13"; icon_state = "swall13" }, /area/space) "i" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall8"; icon_state = "swall8" }, /area/space) @@ -47,7 +44,6 @@ /area/space) "k" = ( /turf/closed/wall/shuttle{ - tag = "icon-swall4"; icon_state = "swall4" }, /area/space) @@ -70,14 +66,11 @@ "o" = ( /turf/open/space, /turf/closed/wall/shuttle{ - tag = "icon-swall_f5"; icon_state = "swall_f5" }, /area/space) "p" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_l" - }, +/obj/structure/shuttle/engine/propulsion/left, /turf/open/floor/plating/airless, /area/space) "q" = ( @@ -85,15 +78,12 @@ /turf/open/floor/plating/airless, /area/space) "r" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion_r" - }, +/obj/structure/shuttle/engine/propulsion/right, /turf/open/floor/plating/airless, /area/space) "s" = ( /turf/open/space, /turf/closed/wall/shuttle{ - tag = "icon-swall_f9"; icon_state = "swall_f9" }, /area/space) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index c9a6a25696..d3937d50bb 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -30,11 +30,17 @@ #define R_POSSESS 64 #define R_PERMISSIONS 128 #define R_STEALTH 256 -#define R_REJUVINATE 512 +#define R_POLL 512 #define R_VAREDIT 1024 #define R_SOUNDS 2048 #define R_SPAWN 4096 +#if DM_VERSION > 512 +#error Remove the flag below , its been long enough +#endif +//legacy , remove post 512, it was replaced by R_POLL +#define R_REJUVINATE 2 + #define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. #define ADMIN_QUE(user) "(?)" @@ -65,4 +71,4 @@ #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 -#define AHELP_RESOLVED 3 \ No newline at end of file +#define AHELP_RESOLVED 3 diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 26c163aef4..98420bc429 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -8,9 +8,6 @@ #define ANTAG_DATUM_NINJA_RANDOM /datum/antagonist/ninja/randomAllegiance/ #define ANTAG_DATUM_TRAITOR /datum/antagonist/traitor #define ANTAG_DATUM_TRAITOR_CUSTOM /datum/antagonist/traitor/custom -#define ANTAG_DATUM_IAA /datum/antagonist/traitor/internal_affairs -#define ANTAG_DATUM_TRAITOR /datum/antagonist/traitor -#define ANTAG_DATUM_TRAITOR_CUSTOM /datum/antagonist/traitor/custom #define ANTAG_DATUM_TRAITOR_HUMAN /datum/antagonist/traitor/human #define ANTAG_DATUM_TRAITOR_HUMAN_CUSTOM /datum/antagonist/traitor/human/custom #define ANTAG_DATUM_TRAITOR_AI /datum/antagonist/traitor/AI @@ -20,4 +17,4 @@ #define ANTAG_DATUM_IAA_HUMAN /datum/antagonist/traitor/human/internal_affairs #define ANTAG_DATUM_IAA_HUMAN_CUSTOM /datum/antagonist/traitor/human/internal_affairs/custom #define ANTAG_DATUM_IAA_AI_CUSTOM /datum/antagonist/traitor/AI/internal_affairs/custom -#define ANTAG_DATUM_IAA_AI /datum/antagonist/traitor/AI/internal_affairs \ No newline at end of file +#define ANTAG_DATUM_IAA_AI /datum/antagonist/traitor/AI/internal_affairs diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 15381a08dd..5ce803fa3c 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -1,175 +1,176 @@ -#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) -#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025) - -#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC -#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) -#define O2STANDARD 0.21 -#define N2STANDARD 0.79 -#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%) -#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%) - -//indices of values in gas lists. used by listmos. -#define MOLES 1 -#define ARCHIVE 2 -#define GAS_META 3 -#define META_GAS_SPECIFIC_HEAT 1 -#define META_GAS_NAME 2 -#define META_GAS_MOLES_VISIBLE 3 -#define META_GAS_OVERLAY 4 -#define META_GAS_DANGER 5 - -//stuff you should probably leave well alone! -//ATMOS -#define CELL_VOLUME 2500 //liters in a cell -#define BREATH_VOLUME 0.5 //liters in a normal breath -#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile -#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences -#define NORMPIPERATE 30 //pipe-insulation rate divisor -#define HEATPIPERATE 8 //heat-exch pipe insulation -#define FLOWFRAC 0.99 //fraction of gas transfered per process -#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking -#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere -#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion -#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold -#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing -#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile -#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended -#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active -#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 -#define EXCITED_GROUP_DISMANTLE_CYCLES 16 -#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously) -#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 -#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended -#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal -#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10 -#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200 -#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4 -#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 -#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0 -#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat -#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 -#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now - //Must be between 0 and 1. Values closer to 1 equalize temperature faster - //Should not exceed 0.4 else strange heat flow occur -#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C -#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C -#define FIRE_SPREAD_RADIOSITY_SCALE 0.85 -#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile -#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile -#define FIRE_GROWTH_RATE 40000 //For small fires -#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C //Resistance to fire damage -#define CARBON_LIFEFORM_FIRE_DAMAGE 4 //Fire damage - //Plasma fire properties -#define OXYGEN_BURN_RATE_BASE 1.4 -#define PLASMA_BURN_RATE_DELTA 9 -#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C -#define PLASMA_UPPER_TEMPERATURE 1370+T0C -#define PLASMA_MINIMUM_OXYGEN_NEEDED 2 -#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30 -#define PLASMA_OXYGEN_FULLBURN 10 -#define MIN_PLASMA_DAMAGE 1 -#define MAX_PLASMA_DAMAGE 10 -#define MOLES_PLASMA_VISIBLE 0.5 //Moles in a standard cell after which plasma is visible - //Plasma fusion properties -#define PLASMA_BINDING_ENERGY 3000000 -#define MAX_CARBON_EFFICENCY 9 -#define PLASMA_FUSED_COEFFICENT 0.08 -#define CARBON_CATALYST_COEFFICENT 0.01 -#define FUSION_PURITY_THRESHOLD 0.9 -// Pressure limits. -#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant) -#define WARNING_HIGH_PRESSURE 325 //This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE) -#define WARNING_LOW_PRESSURE 50 //This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE) -#define HAZARD_LOW_PRESSURE 20 //This is when the black ultra-low pressure icon is displayed. (This one is set as a constant) - -#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. -#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. -#define BODYTEMP_AUTORECOVERY_MINIMUM 10 //Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50. -#define BODYTEMP_COLD_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster. -#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. -#define BODYTEMP_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area. -#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area. - -#define BODYTEMP_HEAT_DAMAGE_LIMIT 360.15 // The limit the human body can take before it starts taking damage from heat. -#define BODYTEMP_COLD_DAMAGE_LIMIT 260.15 // The limit the human body can take before it starts taking damage from coldness. - -#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. -#define SPACE_HELM_MAX_TEMP_PROTECT 1500 //Thermal insulation works both ways /Malkevin -#define SPACE_SUIT_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. -#define SPACE_SUIT_MAX_TEMP_PROTECT 1500 - -#define FIRE_SUIT_MIN_TEMP_PROTECT 60 //Cold protection for firesuits -#define FIRE_SUIT_MAX_TEMP_PROTECT 30000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. -#define FIRE_HELM_MIN_TEMP_PROTECT 60 //Cold protection for fire helmets -#define FIRE_HELM_MAX_TEMP_PROTECT 30000 //for fire helmet quality items (red and white hardhats) - -#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. -#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) - -#define HELMET_MIN_TEMP_PROTECT 160 //For normal helmets -#define HELMET_MAX_TEMP_PROTECT 600 //For normal helmets -#define ARMOR_MIN_TEMP_PROTECT 160 //For armor -#define ARMOR_MAX_TEMP_PROTECT 600 //For armor - -#define GLOVES_MIN_TEMP_PROTECT 2.0 //For some gloves (black and) -#define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves -#define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves -#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves - - -#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE -#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( -#define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). - -#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this - -// Atmos pipe limits -#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at. -#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at. - -//Atmos machinery pipenet stuff - -// used for device_type vars; used by DEVICE_TYPE_LOOP -#define UNARY 1 -#define BINARY 2 -#define TRINARY 3 -#define QUATERNARY 4 - -// this is the standard for loop used by all sorts of atmos machinery procs -#define DEVICE_TYPE_LOOP var/I in 1 to device_type - -// defines for the various machinery lists -// NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP - -// nodes list - all atmos machinery -#define NODE1 nodes[1] -#define NODE2 nodes[2] -#define NODE3 nodes[3] -#define NODE4 nodes[4] -#define NODE_I nodes[I] - -// airs list - components only -#define AIR1 airs[1] -#define AIR2 airs[2] -#define AIR3 airs[3] -#define AIR_I airs[I] - -// parents list - components only -#define PARENT1 parents[1] -#define PARENT2 parents[2] -#define PARENT3 parents[3] -#define PARENT_I parents[I] - -//Tanks -#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3) -#define TANK_MIN_RELEASE_PRESSURE 0 -#define TANK_DEFAULT_RELEASE_PRESSURE 16 - - -#define ATMOS_PASS_YES 1 -#define ATMOS_PASS_NO 0 -#define ATMOS_PASS_PROC -1 //ask CanAtmosPass() -#define ATMOS_PASS_DENSITY -2 //just check density -#define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) ) +#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) +#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025) +#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC +#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) +#define O2STANDARD 0.21 +#define N2STANDARD 0.79 +#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%) +#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%) + +//indices of values in gas lists. used by listmos. +#define MOLES 1 +#define ARCHIVE 2 +#define GAS_META 3 +#define META_GAS_SPECIFIC_HEAT 1 +#define META_GAS_NAME 2 +#define META_GAS_MOLES_VISIBLE 3 +#define META_GAS_OVERLAY 4 +#define META_GAS_DANGER 5 + +//stuff you should probably leave well alone! +//ATMOS +#define CELL_VOLUME 2500 //liters in a cell +#define BREATH_VOLUME 0.5 //liters in a normal breath +#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile +#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences +#define NORMPIPERATE 30 //pipe-insulation rate divisor +#define HEATPIPERATE 8 //heat-exch pipe insulation +#define FLOWFRAC 0.99 //fraction of gas transfered per process +#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking +#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere +#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion +#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold +#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing +#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile +#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended +#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active +#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 +#define EXCITED_GROUP_DISMANTLE_CYCLES 16 +#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously) +#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 +#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended +#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal +#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10 +#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200 +#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 +#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0 +#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat +#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now + //Must be between 0 and 1. Values closer to 1 equalize temperature faster + //Should not exceed 0.4 else strange heat flow occur +#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C +#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C +#define FIRE_SPREAD_RADIOSITY_SCALE 0.85 +#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile +#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile +#define FIRE_GROWTH_RATE 40000 //For small fires +#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C //Resistance to fire damage +#define CARBON_LIFEFORM_FIRE_DAMAGE 4 //Fire damage + //Plasma fire properties +#define OXYGEN_BURN_RATE_BASE 1.4 +#define PLASMA_BURN_RATE_DELTA 9 +#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C +#define PLASMA_UPPER_TEMPERATURE 1370+T0C +#define PLASMA_MINIMUM_OXYGEN_NEEDED 2 +#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30 +#define PLASMA_OXYGEN_FULLBURN 10 +#define MIN_PLASMA_DAMAGE 1 +#define MAX_PLASMA_DAMAGE 10 +#define MOLES_PLASMA_VISIBLE 0.5 //Moles in a standard cell after which plasma is visible + //Plasma fusion properties +#define PLASMA_BINDING_ENERGY 3000000 +#define MAX_CARBON_EFFICENCY 9 +#define PLASMA_FUSED_COEFFICENT 0.08 +#define CARBON_CATALYST_COEFFICENT 0.01 +#define FUSION_PURITY_THRESHOLD 0.9 +// Pressure limits. +#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant) +#define WARNING_HIGH_PRESSURE 325 //This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE) +#define WARNING_LOW_PRESSURE 50 //This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE) +#define HAZARD_LOW_PRESSURE 20 //This is when the black ultra-low pressure icon is displayed. (This one is set as a constant) + +#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. +#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. +#define BODYTEMP_AUTORECOVERY_MINIMUM 10 //Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50. +#define BODYTEMP_COLD_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster. +#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. +#define BODYTEMP_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area. +#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area. + +#define BODYTEMP_HEAT_DAMAGE_LIMIT 360.15 // The limit the human body can take before it starts taking damage from heat. +#define BODYTEMP_COLD_DAMAGE_LIMIT 260.15 // The limit the human body can take before it starts taking damage from coldness. + +#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. +#define SPACE_HELM_MAX_TEMP_PROTECT 1500 //Thermal insulation works both ways /Malkevin +#define SPACE_SUIT_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. +#define SPACE_SUIT_MAX_TEMP_PROTECT 1500 + +#define FIRE_SUIT_MIN_TEMP_PROTECT 60 //Cold protection for firesuits +#define FIRE_SUIT_MAX_TEMP_PROTECT 30000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_HELM_MIN_TEMP_PROTECT 60 //Cold protection for fire helmets +#define FIRE_HELM_MAX_TEMP_PROTECT 30000 //for fire helmet quality items (red and white hardhats) + +#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) + +#define HELMET_MIN_TEMP_PROTECT 160 //For normal helmets +#define HELMET_MAX_TEMP_PROTECT 600 //For normal helmets +#define ARMOR_MIN_TEMP_PROTECT 160 //For armor +#define ARMOR_MAX_TEMP_PROTECT 600 //For armor + +#define GLOVES_MIN_TEMP_PROTECT 2.0 //For some gloves (black and) +#define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves +#define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves +#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves + + +#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE +#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( +#define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). + +#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this + +// Atmos pipe limits +#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at. +#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at. + +//Atmos machinery pipenet stuff + +// used for device_type vars; used by DEVICE_TYPE_LOOP +#define UNARY 1 +#define BINARY 2 +#define TRINARY 3 +#define QUATERNARY 4 + +// this is the standard for loop used by all sorts of atmos machinery procs +#define DEVICE_TYPE_LOOP var/I in 1 to device_type + +// defines for the various machinery lists +// NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP + +// nodes list - all atmos machinery +#define NODE1 nodes[1] +#define NODE2 nodes[2] +#define NODE3 nodes[3] +#define NODE4 nodes[4] +#define NODE_I nodes[I] + +// airs list - components only +#define AIR1 airs[1] +#define AIR2 airs[2] +#define AIR3 airs[3] +#define AIR_I airs[I] + +// parents list - components only +#define PARENT1 parents[1] +#define PARENT2 parents[2] +#define PARENT3 parents[3] +#define PARENT_I parents[I] + +//Tanks +#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3) +#define TANK_MIN_RELEASE_PRESSURE 0 +#define TANK_DEFAULT_RELEASE_PRESSURE 16 + + +#define ATMOS_PASS_YES 1 +#define ATMOS_PASS_NO 0 +#define ATMOS_PASS_PROC -1 //ask CanAtmosPass() +#define ATMOS_PASS_DENSITY -2 //just check density +#define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) ) + +#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland #define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300" diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm index a12cedcd45..c74bf9c61e 100644 --- a/code/__DEFINES/clockcult.dm +++ b/code/__DEFINES/clockcult.dm @@ -7,13 +7,11 @@ GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult GLOBAL_VAR_INIT(clockwork_caches, 0) //How many clockwork caches exist in the world (not each individual) -GLOBAL_VAR_INIT(clockwork_daemons, 0) //How many daemons exist in the world -GLOBAL_LIST_INIT(clockwork_generals_invoked, list("nezbere" = FALSE, "sevtug" = FALSE, "nzcrentr" = FALSE, "inath-neq" = FALSE)) //How many generals have been recently invoked +GLOBAL_LIST_EMPTY(active_daemons) //A list of all active tinkerer's daemons GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence GLOBAL_LIST_INIT(clockwork_component_cache, list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0)) //The pool of components that caches draw from GLOBAL_VAR_INIT(ratvar_awakens, 0) //If Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars -GLOBAL_VAR_INIT(nezbere_invoked, 0) //If Nezbere has been invoked; not a boolean, for proper handling of multiple Nezberes GLOBAL_VAR_INIT(clockwork_gateway_activated, FALSE) //if a gateway to the celestial derelict has ever been successfully activated GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not used to track existing scripture @@ -27,10 +25,6 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define APPLICATION_SERVANT_REQ 9 #define APPLICATION_CACHE_REQ 3 #define APPLICATION_CV_REQ 100 -#define SCRIPTURE_REVENANT "Revenant" -#define REVENANT_SERVANT_REQ 10 -#define REVENANT_CACHE_REQ 4 -#define REVENANT_CV_REQ 200 #define SCRIPTURE_JUDGEMENT "Judgement" #define JUDGEMENT_SERVANT_REQ 12 #define JUDGEMENT_CACHE_REQ 5 @@ -51,10 +45,6 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define MAX_COMPONENTS_BEFORE_RAND (10*LOWER_PROB_PER_COMPONENT) //the number of each component, times LOWER_PROB_PER_COMPONENT, you need to have before component generation will become random -#define GLOBAL_CLOCKWORK_GENERAL_COOLDOWN 3000 //how long globally-affecting clockwork generals go on cooldown after use, defaults to 5 minutes - -#define CLOCKWORK_GENERAL_COOLDOWN 2000 //how long clockwork generals go on cooldown after use, defaults to 3 minutes 20 seconds - //clockcult power defines #define MIN_CLOCKCULT_POWER 25 //the minimum amount of power clockcult machines will handle gracefully diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index c94cc58f66..ed9be51512 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -19,11 +19,11 @@ #define OXYLOSS 8 #define SHAME 16 //citadel code -#define AROUSAL 32 +#define AROUSAL 32 #define STUN "stun" -#define WEAKEN "weaken" -#define PARALYZE "paralize" +#define KNOCKDOWN "knockdown" +#define UNCONSCIOUS "unconscious" #define IRRADIATE "irradiate" #define STUTTER "stutter" #define SLUR "slur" @@ -33,8 +33,8 @@ //Bitflags defining which status effects could be or are inflicted on a mob #define CANSTUN 1 -#define CANWEAKEN 2 -#define CANPARALYSE 4 +#define CANKNOCKDOWN 2 +#define CANUNCONSCIOUS 4 #define CANPUSH 8 #define IGNORESLOWDOWN 16 #define GOTTAGOFAST 32 diff --git a/code/__DEFINES/events.dm b/code/__DEFINES/events.dm index cc19d9d358..d39932e1a7 100644 --- a/code/__DEFINES/events.dm +++ b/code/__DEFINES/events.dm @@ -5,4 +5,5 @@ #define EVENT_CANT_RUN 0 #define EVENT_READY 1 -#define EVENT_CANCELLED 2 \ No newline at end of file +#define EVENT_CANCELLED 2 +#define EVENT_INTERRUPTED 3 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index e443e57b14..e4b0ab9264 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -1,93 +1,93 @@ -/* - These defines are specific to the atom/flags bitmask -*/ -#define ALL ~0 //For convenience. -#define NONE 0 - +/* + These defines are specific to the atom/flags bitmask +*/ +#define ALL ~0 //For convenience. +#define NONE 0 + GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)) -//FLAGS BITMASK -#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere -//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. - -#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. -#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() -#define MASKINTERNALS 8 // mask allows internals -#define HEAR 16 // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. +//FLAGS BITMASK +#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere +//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. + +#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. +#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() +#define MASKINTERNALS 8 // mask allows internals +#define HEAR 16 // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. #define CHECK_RICOCHET 32 // Projectiels will check ricochet on things impacted that have this. -#define CONDUCT 64 // conducts electricity (metal etc.) -#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way -#define NODECONSTRUCT 128 // For machines and structures that should not break into parts, eg, holodeck stuff -#define OVERLAY_QUEUED 256 //atom queued to SSoverlay -#define ON_BORDER 512 // item has priority to check when entering or leaving - -#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc -#define CLEAN_ON_MOVE 2048 - -// BLOCK_GAS_SMOKE_EFFECT only used in masks at the moment. -#define BLOCK_GAS_SMOKE_EFFECT 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! -#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. -#define DROPDEL 16384 // When dropped, it calls qdel on itself +#define CONDUCT 64 // conducts electricity (metal etc.) +#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way +#define NODECONSTRUCT 128 // For machines and structures that should not break into parts, eg, holodeck stuff +#define OVERLAY_QUEUED 256 //atom queued to SSoverlay +#define ON_BORDER 512 // item has priority to check when entering or leaving + +#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc +#define CLEAN_ON_MOVE 2048 + +// BLOCK_GAS_SMOKE_EFFECT only used in masks at the moment. +#define BLOCK_GAS_SMOKE_EFFECT 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! +#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. +#define DROPDEL 16384 // When dropped, it calls qdel on itself #define PREVENT_CLICK_UNDER 32768 //Prevent clicking things below it on the same turf eg. doors/ fulltile windows - -/* Secondary atom flags, access using the SECONDARY_FLAG macros */ - -#define SLOWS_WHILE_IN_HAND "slows_while_in_hand" -#define NO_EMP_WIRES "no_emp_wires" -#define HOLOGRAM "hologram" -#define FROZEN "frozen" -#define STATIONLOVING "stationloving" -#define INFORM_ADMINS_ON_RELOCATE "inform_admins_on_relocate" -#define BANG_PROTECT "bang_protect" - + +/* Secondary atom flags, access using the SECONDARY_FLAG macros */ + +#define SLOWS_WHILE_IN_HAND "slows_while_in_hand" +#define NO_EMP_WIRES "no_emp_wires" +#define HOLOGRAM "hologram" +#define FROZEN "frozen" +#define STATIONLOVING "stationloving" +#define INFORM_ADMINS_ON_RELOCATE "inform_admins_on_relocate" +#define BANG_PROTECT "bang_protect" + // An item worn in the ear slot with HEALS_EARS will heal your ears each // Life() tick, even if normally your ears would be too damaged to heal. #define HEALS_EARS "heals_ears" -// A mob with OMNITONGUE has no restriction in the ability to speak -// languages that they know. So even if they wouldn't normally be able to -// through mob or tongue restrictions, this flag allows them to ignore -// those restrictions. -#define OMNITONGUE "omnitongue" - +// A mob with OMNITONGUE has no restriction in the ability to speak +// languages that they know. So even if they wouldn't normally be able to +// through mob or tongue restrictions, this flag allows them to ignore +// those restrictions. +#define OMNITONGUE "omnitongue" + // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity #define TESLA_IGNORE "tesla_ignore" -//turf-only flags -#define NOJAUNT 1 -#define UNUSED_TRANSIT_TURF 2 -#define CAN_BE_DIRTY 4 //If a turf can be made dirty at roundstart. This is also used in areas. -#define NO_DEATHRATTLE 16 // Do not notify deadchat about any deaths that occur on this turf. +//turf-only flags +#define NOJAUNT 1 +#define UNUSED_TRANSIT_TURF 2 +#define CAN_BE_DIRTY 4 //If a turf can be made dirty at roundstart. This is also used in areas. +#define NO_DEATHRATTLE 16 // Do not notify deadchat about any deaths that occur on this turf. //#define CHECK_RICOCHET 32 //Same thing as atom flag. - -/* - These defines are used specifically with the atom/pass_flags bitmask - the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) -*/ -//flags for pass_flags -#define PASSTABLE 1 -#define PASSGLASS 2 -#define PASSGRILLE 4 -#define PASSBLOB 8 -#define PASSMOB 16 -#define LETPASSTHROW 32 - - -//Movement Types -#define IMMOBILE 0 -#define GROUND 1 -#define FLYING 2 - -// Flags for reagents -#define REAGENT_NOREACT 1 - -//Fire and Acid stuff, for resistance_flags -#define LAVA_PROOF 1 -#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) -#define FLAMMABLE 4 -#define ON_FIRE 8 -#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it. -#define ACID_PROOF 32 //acid stuck on it doesn't melt it. -#define INDESTRUCTIBLE 64 //doesn't take damage - -// language secondary flags for atoms + +/* + These defines are used specifically with the atom/pass_flags bitmask + the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) +*/ +//flags for pass_flags +#define PASSTABLE 1 +#define PASSGLASS 2 +#define PASSGRILLE 4 +#define PASSBLOB 8 +#define PASSMOB 16 +#define LETPASSTHROW 32 + + +//Movement Types +#define IMMOBILE 0 +#define GROUND 1 +#define FLYING 2 + +// Flags for reagents +#define REAGENT_NOREACT 1 + +//Fire and Acid stuff, for resistance_flags +#define LAVA_PROOF 1 +#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) +#define FLAMMABLE 4 +#define ON_FIRE 8 +#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it. +#define ACID_PROOF 32 //acid stuck on it doesn't melt it. +#define INDESTRUCTIBLE 64 //doesn't take damage + +// language secondary flags for atoms diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 097538c590..1372e99a8e 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -52,6 +52,14 @@ #define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) +#define isalienhunter(A) (istype(A, /mob/living/carbon/alien/humanoid/hunter)) + +#define isaliensentinel(A) (istype(A, /mob/living/carbon/alien/humanoid/sentinel)) + +#define isalienroyal(A) (istype(A, /mob/living/carbon/alien/humanoid/royal)) + +#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/humanoid/royal/queen)) + #define isdevil(A) (istype(A, /mob/living/carbon/true_devil)) //Silicon mobs @@ -68,8 +76,6 @@ #define isrevenant(A) (istype(A, /mob/living/simple_animal/revenant)) -#define isborer(A) (istype(A, /mob/living/simple_animal/borer)) - #define isbot(A) (istype(A, /mob/living/simple_animal/bot)) #define iscrab(A) (istype(A, /mob/living/simple_animal/crab)) @@ -109,6 +115,8 @@ //Misc mobs #define isobserver(A) (istype(A, /mob/dead/observer)) +#define isdead(A) (istype(A, /mob/dead)) + #define isnewplayer(A) (istype(A, /mob/dead/new_player)) #define isovermind(A) (istype(A, /mob/camera/blob)) @@ -116,7 +124,7 @@ //Objects #define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs -#define islimb(A) (istype(A, /obj/item/bodypart)) +#define isitem(A) (istype(A, /obj/item)) #define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 2ff2ec2c19..a6ea566113 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -14,7 +14,6 @@ #define CLOSED_TURF_LAYER 2.05 #define ABOVE_NORMAL_TURF_LAYER 2.08 #define LATTICE_LAYER 2.2 -#define OVER_LATTICE_LAYER 2.25 #define DISPOSAL_PIPE_LAYER 2.3 #define GAS_PIPE_HIDDEN_LAYER 2.35 #define WIRE_LAYER 2.4 diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index afaa64891d..9f92ea7619 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -1,76 +1,76 @@ -// channel numbers for power -#define EQUIP 1 -#define LIGHT 2 -#define ENVIRON 3 -#define TOTAL 4 //for total power used only -#define STATIC_EQUIP 5 -#define STATIC_LIGHT 6 -#define STATIC_ENVIRON 7 - +// channel numbers for power +#define EQUIP 1 +#define LIGHT 2 +#define ENVIRON 3 +#define TOTAL 4 //for total power used only +#define STATIC_EQUIP 5 +#define STATIC_LIGHT 6 +#define STATIC_ENVIRON 7 + //Power use #define NO_POWER_USE 0 #define IDLE_POWER_USE 1 #define ACTIVE_POWER_USE 2 - -//bitflags for door switches. -#define OPEN 1 -#define IDSCAN 2 -#define BOLTS 4 -#define SHOCK 8 -#define SAFE 16 - -//used in design to specify which machine can build it -#define IMPRINTER 1 //For circuits. Uses glass/chemicals. -#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals -#define AUTOLATHE 4 //Uses glass/metal only. -#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. -#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. -#define BIOGENERATOR 32 //Uses biomass -#define LIMBGROWER 64 //Uses synthetic flesh + +//bitflags for door switches. +#define OPEN 1 +#define IDSCAN 2 +#define BOLTS 4 +#define SHOCK 8 +#define SAFE 16 + +//used in design to specify which machine can build it +#define IMPRINTER 1 //For circuits. Uses glass/chemicals. +#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals +#define AUTOLATHE 4 //Uses glass/metal only. +#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. +#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. +#define BIOGENERATOR 32 //Uses biomass +#define LIMBGROWER 64 //Uses synthetic flesh #define SMELTER 128 //uses various minerals -//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. - -//Modular computer/NTNet defines - -//Modular computer part defines -#define MC_CPU "CPU" -#define MC_HDD "HDD" -#define MC_SDD "SDD" -#define MC_CARD "CARD" -#define MC_NET "NET" -#define MC_PRINT "PRINT" -#define MC_CELL "CELL" -#define MC_CHARGE "CHARGE" -#define MC_AI "AI" - -//NTNet stuff, for modular computers - // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) -#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet -#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices -#define NTNET_COMMUNICATION 3 // Communication (messaging) -#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. - -//NTNet transfer speeds, used when downloading/uploading a file/program. -#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal -#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal -#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection - -//Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. -#define MAX_NTNET_LOGS 300 -#define MIN_NTNET_LOGS 10 - -//Program bitflags -#define PROGRAM_ALL 7 -#define PROGRAM_CONSOLE 1 -#define PROGRAM_LAPTOP 2 -#define PROGRAM_TABLET 4 -//Program states -#define PROGRAM_STATE_KILLED 0 -#define PROGRAM_STATE_BACKGROUND 1 -#define PROGRAM_STATE_ACTIVE 2 - -#define FIREDOOR_OPEN 1 +//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. + +//Modular computer/NTNet defines + +//Modular computer part defines +#define MC_CPU "CPU" +#define MC_HDD "HDD" +#define MC_SDD "SDD" +#define MC_CARD "CARD" +#define MC_NET "NET" +#define MC_PRINT "PRINT" +#define MC_CELL "CELL" +#define MC_CHARGE "CHARGE" +#define MC_AI "AI" + +//NTNet stuff, for modular computers + // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) +#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet +#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices +#define NTNET_COMMUNICATION 3 // Communication (messaging) +#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. + +//NTNet transfer speeds, used when downloading/uploading a file/program. +#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal +#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal +#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection + +//Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. +#define MAX_NTNET_LOGS 300 +#define MIN_NTNET_LOGS 10 + +//Program bitflags +#define PROGRAM_ALL 7 +#define PROGRAM_CONSOLE 1 +#define PROGRAM_LAPTOP 2 +#define PROGRAM_TABLET 4 +//Program states +#define PROGRAM_STATE_KILLED 0 +#define PROGRAM_STATE_BACKGROUND 1 +#define PROGRAM_STATE_ACTIVE 2 + +#define FIREDOOR_OPEN 1 #define FIREDOOR_CLOSED 2 diff --git a/code/__DEFINES/misc.dm.rej b/code/__DEFINES/misc.dm.rej deleted file mode 100644 index 8aeab16ceb..0000000000 --- a/code/__DEFINES/misc.dm.rej +++ /dev/null @@ -1,7 +0,0 @@ -diff a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm (rejected hunks) -@@ -440,4 +440,4 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE - #define BEAT_SLOW 2 - #define BEAT_NONE 0 - --#define BEAT_CHANNEL 150 //sound channel for heartbeats -+ diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index ebc4ebf421..102653f1eb 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -7,7 +7,6 @@ #define PLAYER_READY_TO_PLAY 1 #define PLAYER_READY_TO_OBSERVE 2 - //movement intent defines for the m_intent var #define MOVE_INTENT_WALK "walk" #define MOVE_INTENT_RUN "run" @@ -135,4 +134,13 @@ #define INCORPOREAL_MOVE_BASIC 1 #define INCORPOREAL_MOVE_SHADOW 2 // leaves a trail of shadows #define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt + +//Secbot and ED209 judgement criteria bitflag values +#define JUDGE_EMAGGED 1 +#define JUDGE_IDCHECK 2 +#define JUDGE_WEAPONCHECK 4 +#define JUDGE_RECORDCHECK 8 +//ED209's ignore monkeys +#define JUDGE_IGNOREMONKEYS 16 + #define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5 diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index dc9fbe6fe3..86fa509e30 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -23,7 +23,6 @@ #define ROLE_REVENANT "revenant" #define ROLE_DEVIL "devil" #define ROLE_SERVANT_OF_RATVAR "servant of Ratvar" -#define ROLE_BORER "borer" //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough @@ -45,8 +44,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_REVENANT, ROLE_ABDUCTOR = /datum/game_mode/abduction, ROLE_DEVIL = /datum/game_mode/devil, - ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, - ROLE_BORER, + ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult )) //Job defines for what happens when you fail to qualify for any job during job selection diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index b5f221975f..c0158bac16 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -51,4 +51,4 @@ //Engine related #define ENGINE_COEFF_MIN 0.5 #define ENGINE_COEFF_MAX 2 -#define ENGINE_DEFAULT_MAXSPEED_ENGINES 5 +#define ENGINE_DEFAULT_MAXSPEED_ENGINES 5 \ No newline at end of file diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 6fea9601b6..6dc43fb959 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -3,13 +3,14 @@ #define CHANNEL_ADMIN 1023 #define CHANNEL_VOX 1022 #define CHANNEL_JUKEBOX 1021 +#define CHANNEL_JUSTICAR_ARK 1020 #define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats //Citadel code -#define CHANNEL_PRED 1020 -#define CHANNEL_PREY 1019 +#define CHANNEL_PRED 1018 //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED -#define CHANNEL_HIGHEST_AVAILABLE 1018 +#define CHANNEL_HIGHEST_AVAILABLE 1017 + diff --git a/code/__DEFINES/sound.dm.rej b/code/__DEFINES/sound.dm.rej deleted file mode 100644 index e47ebb9375..0000000000 --- a/code/__DEFINES/sound.dm.rej +++ /dev/null @@ -1,8 +0,0 @@ -diff a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm (rejected hunks) -@@ -9,5 +9,5 @@ - //THIS SHOULD ALWAYS BE THE LOWEST ONE! - //KEEP IT UPDATED - --#define CHANNEL_HIGHEST_AVAILABLE 1019 -+#define CHANNEL_HIGHEST_AVAILABLE 1018 - diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index cf7acfc543..918809c381 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -26,10 +26,20 @@ #define STATUS_EFFECT_WISH_GRANTERS_GIFT /datum/status_effect/wish_granters_gift //If you're currently resurrecting with the Wish Granter +#define STATUS_EFFECT_BLOODDRUNK /datum/status_effect/blooddrunk //Stun immunity and greatly reduced damage taken + ///////////// // DEBUFFS // ///////////// +#define STATUS_EFFECT_STUN /datum/status_effect/incapacitating/stun //the affected is stunned + +#define STATUS_EFFECT_KNOCKDOWN /datum/status_effect/incapacitating/knockdown //the affected is knocked down + +#define STATUS_EFFECT_UNCONSCIOUS /datum/status_effect/incapacitating/unconscious //the affected is unconscious + +#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep + #define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run #define STATUS_EFFECT_MANIAMOTOR /datum/status_effect/maniamotor //disrupts, damages, and confuses the affected as long as they're in range of the motor @@ -39,8 +49,10 @@ #define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath. #define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes + #define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage +#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage ///////////// // NEUTRAL // diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index ee42967a52..71d0792b60 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -39,7 +39,6 @@ }\ } - // Subsystem init_order, from highest priority to lowest priority // Subsystems shutdown in the reverse of the order they initialize in // The numbers just define the ordering, they are meaningless otherwise. diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm new file mode 100644 index 0000000000..956935258b --- /dev/null +++ b/code/__DEFINES/time.dm @@ -0,0 +1,15 @@ +/* + +Days of the week to make it easier to reference them. + +When using time2text(), please use "DDD" to find the weekday. Refrain from using "Day" + +*/ + +#define MONDAY "Mon" +#define TUESDAY "Tue" +#define WEDNESDAY "Wed" +#define THURSDAY "Thu" +#define FRIDAY "Fri" +#define SATURDAY "Sat" +#define SUNDAY "Sun" diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index a1d3a61642..762beb9c00 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -1,45 +1,45 @@ -#define WIRE_DUD_PREFIX "__dud" -#define WIRE_ACTIVATE "Activate" -#define WIRE_AI "AI Connection" -#define WIRE_ALARM "Alarm" -#define WIRE_AVOIDANCE "Avoidance" +#define WIRE_DUD_PREFIX "__dud" +#define WIRE_ACTIVATE "Activate" +#define WIRE_AI "AI Connection" +#define WIRE_ALARM "Alarm" +#define WIRE_AVOIDANCE "Avoidance" #define WIRE_BACKUP1 "Auxiliary Power 1" #define WIRE_BACKUP2 "Auxiliary Power 2" -#define WIRE_BEACON "Beacon" -#define WIRE_BOLTS "Bolts" -#define WIRE_BOOM "Boom" -#define WIRE_CAMERA "Camera" -#define WIRE_CONTRABAND "Contraband" -#define WIRE_DELAY "Delay" -#define WIRE_DISABLE "Disable" -#define WIRE_DISARM "Disarm" -#define WIRE_HACK "Hack" -#define WIRE_IDSCAN "ID Scan" -#define WIRE_INTERFACE "Interface" -#define WIRE_LAWSYNC "AI Law Synchronization" -#define WIRE_LIGHT "Bolt Lights" -#define WIRE_LIMIT "Limiter" -#define WIRE_LOADCHECK "Load Check" -#define WIRE_LOCKDOWN "Lockdown" -#define WIRE_MOTOR1 "Motor 1" -#define WIRE_MOTOR2 "Motor 2" -#define WIRE_OPEN "Open" -#define WIRE_PANIC "Panic Siphon" -#define WIRE_POWER "Power" -#define WIRE_POWER1 "Main Power 1" -#define WIRE_POWER2 "Main Power 2" -#define WIRE_PROCEED "Proceed" -#define WIRE_RX "Recieve" -#define WIRE_RESET_MODULE "Reset Module" -#define WIRE_SAFETY "Safety" -#define WIRE_SHOCK "High Voltage Ground" -#define WIRE_SIGNAL "Signal" -#define WIRE_SPEAKER "Speaker" -#define WIRE_STRENGTH "Strength" -#define WIRE_THROW "Throw" -#define WIRE_TIMING "Timing" -#define WIRE_TX "Transmit" -#define WIRE_UNBOLT "Unbolt" -#define WIRE_ZAP "High Voltage Circuit" -#define WIRE_ZAP1 "High Voltage Circuit 1" -#define WIRE_ZAP2 "High Voltage Circuit 2" +#define WIRE_BEACON "Beacon" +#define WIRE_BOLTS "Bolts" +#define WIRE_BOOM "Boom" +#define WIRE_CAMERA "Camera" +#define WIRE_CONTRABAND "Contraband" +#define WIRE_DELAY "Delay" +#define WIRE_DISABLE "Disable" +#define WIRE_DISARM "Disarm" +#define WIRE_HACK "Hack" +#define WIRE_IDSCAN "ID Scan" +#define WIRE_INTERFACE "Interface" +#define WIRE_LAWSYNC "AI Law Synchronization" +#define WIRE_LIGHT "Bolt Lights" +#define WIRE_LIMIT "Limiter" +#define WIRE_LOADCHECK "Load Check" +#define WIRE_LOCKDOWN "Lockdown" +#define WIRE_MOTOR1 "Motor 1" +#define WIRE_MOTOR2 "Motor 2" +#define WIRE_OPEN "Open" +#define WIRE_PANIC "Panic Siphon" +#define WIRE_POWER "Power" +#define WIRE_POWER1 "Main Power 1" +#define WIRE_POWER2 "Main Power 2" +#define WIRE_PROCEED "Proceed" +#define WIRE_RX "Recieve" +#define WIRE_RESET_MODULE "Reset Module" +#define WIRE_SAFETY "Safety" +#define WIRE_SHOCK "High Voltage Ground" +#define WIRE_SIGNAL "Signal" +#define WIRE_SPEAKER "Speaker" +#define WIRE_STRENGTH "Strength" +#define WIRE_THROW "Throw" +#define WIRE_TIMING "Timing" +#define WIRE_TX "Transmit" +#define WIRE_UNBOLT "Unbolt" +#define WIRE_ZAP "High Voltage Circuit" +#define WIRE_ZAP1 "High Voltage Circuit 1" +#define WIRE_ZAP2 "High Voltage Circuit 2" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 5116ec7468..d63c10c508 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -287,7 +287,7 @@ //Converts a bitfield to a list of numbers (or words if a wordlist is provided) /proc/bitfield2list(bitfield = 0, list/wordlist) var/list/r = list() - if(istype(wordlist,/list)) + if(islist(wordlist)) var/max = min(wordlist.len,16) var/bit = 1 for(var/i=1, i<=max, i++) @@ -450,7 +450,7 @@ . |= key_list[key] //Picks from the list, with some safeties, and returns the "default" arg if it fails -#define DEFAULTPICK(L, default) ((istype(L, /list) && L:len) ? pick(L) : default) +#define DEFAULTPICK(L, default) ((islist(L) && L:len) ? pick(L) : default) #define LAZYINITLIST(L) if (!L) L = list() #define UNSETEMPTY(L) if (L && !L.len) L = null #define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } } diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index a2a878211a..2dd2e42129 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -103,7 +103,7 @@ /proc/datum_info_line(datum/D) if(!istype(D)) return - if(!istype(D, /mob)) + if(!ismob(D)) return "[D] ([D.type])" var/mob/M = D return "[M] ([M.ckey]) ([M.type])" diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index be070ae806..171d776d0d 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -47,3 +47,5 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_clockscripture_priority(datum/clockwork_scripture/A, datum/clockwork_scripture/B) return initial(A.sort_priority) - initial(B.sort_priority) +/proc/cmp_ruincost_priority(datum/map_template/ruin/A, datum/map_template/ruin/B) + return initial(A.cost) - initial(B.cost) diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index a76a9ac623..5001a3541e 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -3,7 +3,7 @@ for(var/file in args) src << browse_rsc(file) -/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list(".txt",".log",".htm", ".html")) +/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html")) var/path = root for(var/i=0, iError: browse_files(): File not found/Invalid file([path]).") return diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index d604319929..5961998058 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -455,7 +455,6 @@ var/time_passed = world.time if (!Question) Question = "Would you like to be a special role?" - var/list/result = list() for(var/m in group) var/mob/M = m @@ -553,4 +552,12 @@ return hex2num(copytext(hexa, 4, 6)) /proc/GetBluePart(const/hexa) - return hex2num(copytext(hexa, 6, 8)) \ No newline at end of file + return hex2num(copytext(hexa, 6, 8)) + +/proc/lavaland_equipment_pressure_check(turf/T) + if(!istype(T)) + return + var/datum/gas_mixture/environment = T.return_air() + var/pressure = environment.return_pressure() + if(pressure <= LAVALAND_EQUIPMENT_EFFECT_PRESSURE) + return TRUE diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index a0de8d9840..414bdef27f 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -61,7 +61,7 @@ var/adjacencies = 0 var/atom/movable/AM - if(istype(A, /atom/movable)) + if(ismovableatom(A)) AM = A if(AM.can_be_unanchored && !AM.anchored) return 0 diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index dbebb6bfb8..a0ce89e2b6 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1,997 +1,997 @@ -/* -IconProcs README - -A BYOND library for manipulating icons and colors - -by Lummox JR - -version 1.0 - -The IconProcs library was made to make a lot of common icon operations much easier. BYOND's icon manipulation -routines are very capable but some of the advanced capabilities like using alpha transparency can be unintuitive to beginners. - -CHANGING ICONS - -Several new procs have been added to the /icon datum to simplify working with icons. To use them, -remember you first need to setup an /icon var like so: - -GLOBAL_DATUM_INIT(my_icon, /icon, new('iconfile.dmi')) - -icon/ChangeOpacity(amount = 1) - A very common operation in DM is to try to make an icon more or less transparent. Making an icon more - transparent is usually much easier than making it less so, however. This proc basically is a frontend - for MapColors() which can change opacity any way you like, in much the same way that SetIntensity() - can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half. - If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque. -icon/GrayScale() - Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact. -icon/ColorTone(tone) - Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an - RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect. - See also the global ColorTone() proc. -icon/MinColors(icon) - The icon is blended with a second icon where the minimum of each RGB pixel is the result. - Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon. -icon/MaxColors(icon) - The icon is blended with a second icon where the maximum of each RGB pixel is the result. - Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. -icon/Opaque(background = "#000000") - All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. -icon/BecomeAlphaMask() - You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. - The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. -icon/AddAlphaMask(mask) - The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque, - the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent. - Where the mask is translucent, the current icon becomes more transparent. -icon/UseAlphaMask(mask, mode) - Sometimes you may want to take the alpha values from one icon and use them on a different icon. - This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change - so it has the same colors as before but uses the mask for opacity. - -COLOR MANAGEMENT AND HSV - -RGB isn't the only way to represent color. Sometimes it's more useful to work with a model called HSV, which stands for hue, saturation, and value. - - * The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to - cyan to blue to magenta and back to red. - * The saturation of a color is how much color is in it. A color with low saturation will be more gray, - and with no saturation at all it is a shade of gray. - * The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark, - and no value at all is black. - -Just as BYOND uses "#rrggbb" to represent RGB values, a similar format is used for HSV: "#hhhssvv". The hue is three -hex digits because it ranges from 0 to 0x5FF. - - * 0 to 0xFF - red to yellow - * 0x100 to 0x1FF - yellow to green - * 0x200 to 0x2FF - green to cyan - * 0x300 to 0x3FF - cyan to blue - * 0x400 to 0x4FF - blue to magenta - * 0x500 to 0x5FF - magenta to red - -Knowing this, you can figure out that red is "#000ffff" in HSV format, which is hue 0 (red), saturation 255 (as colorful as possible), -value 255 (as bright as possible). Green is "#200ffff" and blue is "#400ffff". - -More than one HSV color can match the same RGB color. - -Here are some procs you can use for color management: - -ReadRGB(rgb) - Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used - that includes alpha, the list will have a fourth item for the alpha value. -hsv(hue, sat, val, apha) - Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa" - format. Alpha is not included in the result if null. -ReadHSV(rgb) - Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that - includes alpha, the list will have a fourth item for the alpha value. -RGBtoHSV(rgb) - Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff". -HSVtoRGB(hsv) - Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa". -BlendRGB(rgb1, rgb2, amount) - Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result; - if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. - The returned value is an RGB or RGBA color. -BlendHSV(hsv1, hsv2, amount) - Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB - blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1, - the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. - The returned value is an HSV or HSVA color. -BlendRGBasHSV(rgb1, rgb2, amount) - Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form. -HueToAngle(hue) - Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue. -AngleToHue(hue) - Converts an angle to a hue in the valid range. -RotateHue(hsv, angle) - Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. - (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value - as the original, but a different hue. -GrayScale(rgb) - Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. -ColorTone(rgb, tone) - Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of - using strict shades of gray. The tone value is an RGB color; any alpha value is ignored. -*/ - -/* -Get Flat Icon DEMO by DarkCampainger - -This is a test for the get flat icon proc, modified approprietly for icons and their states. -Probably not a good idea to run this unless you want to see how the proc works in detail. -mob - icon = 'old_or_unused.dmi' - icon_state = "green" - - Login() - // Testing image underlays - underlays += image(icon='old_or_unused.dmi',icon_state="red") - underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = 32) - underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = -32) - - // Testing image overlays - add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = -32)) - add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = 32)) - add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = -32, pixel_y = -32)) - - // Testing icon file overlays (defaults to mob's state) - add_overlay('_flat_demoIcons2.dmi') - - // Testing icon_state overlays (defaults to mob's icon) - add_overlay("white") - - // Testing dynamic icon overlays - var/icon/I = icon('old_or_unused.dmi', icon_state="aqua") - I.Shift(NORTH,16,1) - add_overlay(I) - - // Testing dynamic image overlays - I=image(icon=I,pixel_x = -32, pixel_y = 32) - add_overlay(I) - - // Testing object types (and layers) - add_overlay(/obj/effect/overlayTest) - - loc = locate (10,10,1) - verb - Browse_Icon() - set name = "1. Browse Icon" - // Give it a name for the cache - var/iconName = "[ckey(src.name)]_flattened.dmi" - // Send the icon to src's local cache - src<

") - - Output_Icon() - set name = "2. Output Icon" +/* +IconProcs README + +A BYOND library for manipulating icons and colors + +by Lummox JR + +version 1.0 + +The IconProcs library was made to make a lot of common icon operations much easier. BYOND's icon manipulation +routines are very capable but some of the advanced capabilities like using alpha transparency can be unintuitive to beginners. + +CHANGING ICONS + +Several new procs have been added to the /icon datum to simplify working with icons. To use them, +remember you first need to setup an /icon var like so: + +GLOBAL_DATUM_INIT(my_icon, /icon, new('iconfile.dmi')) + +icon/ChangeOpacity(amount = 1) + A very common operation in DM is to try to make an icon more or less transparent. Making an icon more + transparent is usually much easier than making it less so, however. This proc basically is a frontend + for MapColors() which can change opacity any way you like, in much the same way that SetIntensity() + can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half. + If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque. +icon/GrayScale() + Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact. +icon/ColorTone(tone) + Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an + RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect. + See also the global ColorTone() proc. +icon/MinColors(icon) + The icon is blended with a second icon where the minimum of each RGB pixel is the result. + Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon. +icon/MaxColors(icon) + The icon is blended with a second icon where the maximum of each RGB pixel is the result. + Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. +icon/Opaque(background = "#000000") + All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. +icon/BecomeAlphaMask() + You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. + The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. +icon/AddAlphaMask(mask) + The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque, + the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent. + Where the mask is translucent, the current icon becomes more transparent. +icon/UseAlphaMask(mask, mode) + Sometimes you may want to take the alpha values from one icon and use them on a different icon. + This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change + so it has the same colors as before but uses the mask for opacity. + +COLOR MANAGEMENT AND HSV + +RGB isn't the only way to represent color. Sometimes it's more useful to work with a model called HSV, which stands for hue, saturation, and value. + + * The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to + cyan to blue to magenta and back to red. + * The saturation of a color is how much color is in it. A color with low saturation will be more gray, + and with no saturation at all it is a shade of gray. + * The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark, + and no value at all is black. + +Just as BYOND uses "#rrggbb" to represent RGB values, a similar format is used for HSV: "#hhhssvv". The hue is three +hex digits because it ranges from 0 to 0x5FF. + + * 0 to 0xFF - red to yellow + * 0x100 to 0x1FF - yellow to green + * 0x200 to 0x2FF - green to cyan + * 0x300 to 0x3FF - cyan to blue + * 0x400 to 0x4FF - blue to magenta + * 0x500 to 0x5FF - magenta to red + +Knowing this, you can figure out that red is "#000ffff" in HSV format, which is hue 0 (red), saturation 255 (as colorful as possible), +value 255 (as bright as possible). Green is "#200ffff" and blue is "#400ffff". + +More than one HSV color can match the same RGB color. + +Here are some procs you can use for color management: + +ReadRGB(rgb) + Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used + that includes alpha, the list will have a fourth item for the alpha value. +hsv(hue, sat, val, apha) + Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa" + format. Alpha is not included in the result if null. +ReadHSV(rgb) + Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that + includes alpha, the list will have a fourth item for the alpha value. +RGBtoHSV(rgb) + Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff". +HSVtoRGB(hsv) + Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa". +BlendRGB(rgb1, rgb2, amount) + Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result; + if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an RGB or RGBA color. +BlendHSV(hsv1, hsv2, amount) + Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB + blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1, + the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an HSV or HSVA color. +BlendRGBasHSV(rgb1, rgb2, amount) + Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form. +HueToAngle(hue) + Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue. +AngleToHue(hue) + Converts an angle to a hue in the valid range. +RotateHue(hsv, angle) + Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. + (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value + as the original, but a different hue. +GrayScale(rgb) + Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. +ColorTone(rgb, tone) + Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of + using strict shades of gray. The tone value is an RGB color; any alpha value is ignored. +*/ + +/* +Get Flat Icon DEMO by DarkCampainger + +This is a test for the get flat icon proc, modified approprietly for icons and their states. +Probably not a good idea to run this unless you want to see how the proc works in detail. +mob + icon = 'old_or_unused.dmi' + icon_state = "green" + + Login() + // Testing image underlays + underlays += image(icon='old_or_unused.dmi',icon_state="red") + underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = 32) + underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = -32) + + // Testing image overlays + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = -32)) + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = 32)) + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = -32, pixel_y = -32)) + + // Testing icon file overlays (defaults to mob's state) + add_overlay('_flat_demoIcons2.dmi') + + // Testing icon_state overlays (defaults to mob's icon) + add_overlay("white") + + // Testing dynamic icon overlays + var/icon/I = icon('old_or_unused.dmi', icon_state="aqua") + I.Shift(NORTH,16,1) + add_overlay(I) + + // Testing dynamic image overlays + I=image(icon=I,pixel_x = -32, pixel_y = 32) + add_overlay(I) + + // Testing object types (and layers) + add_overlay(/obj/effect/overlayTest) + + loc = locate (10,10,1) + verb + Browse_Icon() + set name = "1. Browse Icon" + // Give it a name for the cache + var/iconName = "[ckey(src.name)]_flattened.dmi" + // Send the icon to src's local cache + src<

") + + Output_Icon() + set name = "2. Output Icon" to_chat(src, "Icon is: [bicon(getFlatIcon(src))]") - - Label_Icon() - set name = "3. Label Icon" - // Give it a name for the cache - var/iconName = "[ckey(src.name)]_flattened.dmi" - // Copy the file to the rsc manually - var/icon/I = fcopy_rsc(getFlatIcon(src)) - // Send the icon to src's local cache - src< transparent, gray -> translucent white, white -> solid white -/icon/proc/BecomeAlphaMask() - SwapColor(null, "#000000ff") // don't let transparent become gray - MapColors(0,0,0,0.3, 0,0,0,0.59, 0,0,0,0.11, 0,0,0,0, 1,1,1,0) - -/icon/proc/UseAlphaMask(mask) - Opaque() - AddAlphaMask(mask) - -/icon/proc/AddAlphaMask(mask) - var/icon/M = new(mask) - M.Blend("#ffffff", ICON_SUBTRACT) - // apply mask - Blend(M, ICON_ADD) - -/* - HSV format is represented as "#hhhssvv" or "#hhhssvvaa" - - Hue ranges from 0 to 0x5ff (1535) - - 0x000 = red - 0x100 = yellow - 0x200 = green - 0x300 = cyan - 0x400 = blue - 0x500 = magenta - - Saturation is from 0 to 0xff (255) - - More saturation = more color - Less saturation = more gray - - Value ranges from 0 to 0xff (255) - - Higher value means brighter color - */ - -/proc/ReadRGB(rgb) - if(!rgb) return - - // interpret the HSV or HSVA value - var/i=1,start=1 - if(text2ascii(rgb) == 35) ++start // skip opening # - var/ch,which=0,r=0,g=0,b=0,alpha=0,usealpha - var/digits=0 - for(i=start, i<=length(rgb), ++i) - ch = text2ascii(rgb, i) - if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break - ++digits - if(digits == 8) break - - var/single = digits < 6 - if(digits != 3 && digits != 4 && digits != 6 && digits != 8) return - if(digits == 4 || digits == 8) usealpha = 1 - for(i=start, digits>0, ++i) - ch = text2ascii(rgb, i) - if(ch >= 48 && ch <= 57) ch -= 48 - else if(ch >= 65 && ch <= 70) ch -= 55 - else if(ch >= 97 && ch <= 102) ch -= 87 - else break - --digits - switch(which) - if(0) - r = (r << 4) | ch - if(single) - r |= r << 4 - ++which - else if(!(digits & 1)) ++which - if(1) - g = (g << 4) | ch - if(single) - g |= g << 4 - ++which - else if(!(digits & 1)) ++which - if(2) - b = (b << 4) | ch - if(single) - b |= b << 4 - ++which - else if(!(digits & 1)) ++which - if(3) - alpha = (alpha << 4) | ch - if(single) alpha |= alpha << 4 - - . = list(r, g, b) - if(usealpha) . += alpha - -/proc/ReadHSV(hsv) - if(!hsv) return - - // interpret the HSV or HSVA value - var/i=1,start=1 - if(text2ascii(hsv) == 35) ++start // skip opening # - var/ch,which=0,hue=0,sat=0,val=0,alpha=0,usealpha - var/digits=0 - for(i=start, i<=length(hsv), ++i) - ch = text2ascii(hsv, i) - if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break - ++digits - if(digits == 9) break - if(digits > 7) usealpha = 1 - if(digits <= 4) ++which - if(digits <= 2) ++which - for(i=start, digits>0, ++i) - ch = text2ascii(hsv, i) - if(ch >= 48 && ch <= 57) ch -= 48 - else if(ch >= 65 && ch <= 70) ch -= 55 - else if(ch >= 97 && ch <= 102) ch -= 87 - else break - --digits - switch(which) - if(0) - hue = (hue << 4) | ch - if(digits == (usealpha ? 6 : 4)) ++which - if(1) - sat = (sat << 4) | ch - if(digits == (usealpha ? 4 : 2)) ++which - if(2) - val = (val << 4) | ch - if(digits == (usealpha ? 2 : 0)) ++which - if(3) - alpha = (alpha << 4) | ch - - . = list(hue, sat, val) - if(usealpha) . += alpha - -/proc/HSVtoRGB(hsv) - if(!hsv) return "#000000" - var/list/HSV = ReadHSV(hsv) - if(!HSV) return "#000000" - - var/hue = HSV[1] - var/sat = HSV[2] - var/val = HSV[3] - - // Compress hue into easier-to-manage range - hue -= hue >> 8 - if(hue >= 0x5fa) hue -= 0x5fa - - var/hi,mid,lo,r,g,b - hi = val - lo = round((255 - sat) * val / 255, 1) - mid = lo + round(abs(round(hue, 510) - hue) * (hi - lo) / 255, 1) - if(hue >= 765) - if(hue >= 1275) {r=hi; g=lo; b=mid} - else if(hue >= 1020) {r=mid; g=lo; b=hi } - else {r=lo; g=mid; b=hi } - else - if(hue >= 510) {r=lo; g=hi; b=mid} - else if(hue >= 255) {r=mid; g=hi; b=lo } - else {r=hi; g=mid; b=lo } - - return (HSV.len > 3) ? rgb(r,g,b,HSV[4]) : rgb(r,g,b) - -/proc/RGBtoHSV(rgb) - if(!rgb) return "#0000000" - var/list/RGB = ReadRGB(rgb) - if(!RGB) return "#0000000" - - var/r = RGB[1] - var/g = RGB[2] - var/b = RGB[3] - var/hi = max(r,g,b) - var/lo = min(r,g,b) - - var/val = hi - var/sat = hi ? round((hi-lo) * 255 / hi, 1) : 0 - var/hue = 0 - - if(sat) - var/dir - var/mid - if(hi == r) - if(lo == b) {hue=0; dir=1; mid=g} - else {hue=1535; dir=-1; mid=b} - else if(hi == g) - if(lo == r) {hue=512; dir=1; mid=b} - else {hue=511; dir=-1; mid=r} - else if(hi == b) - if(lo == g) {hue=1024; dir=1; mid=r} - else {hue=1023; dir=-1; mid=g} - hue += dir * round((mid-lo) * 255 / (hi-lo), 1) - - return hsv(hue, sat, val, (RGB.len>3 ? RGB[4] : null)) - -/proc/hsv(hue, sat, val, alpha) - if(hue < 0 || hue >= 1536) hue %= 1536 - if(hue < 0) hue += 1536 - if((hue & 0xFF) == 0xFF) - ++hue - if(hue >= 1536) hue = 0 - if(sat < 0) sat = 0 - if(sat > 255) sat = 255 - if(val < 0) val = 0 - if(val > 255) val = 255 - . = "#" - . += TO_HEX_DIGIT(hue >> 8) - . += TO_HEX_DIGIT(hue >> 4) - . += TO_HEX_DIGIT(hue) - . += TO_HEX_DIGIT(sat >> 4) - . += TO_HEX_DIGIT(sat) - . += TO_HEX_DIGIT(val >> 4) - . += TO_HEX_DIGIT(val) - if(!isnull(alpha)) - if(alpha < 0) alpha = 0 - if(alpha > 255) alpha = 255 - . += TO_HEX_DIGIT(alpha >> 4) - . += TO_HEX_DIGIT(alpha) - -/* - Smooth blend between HSV colors - - amount=0 is the first color - amount=1 is the second color - amount=0.5 is directly between the two colors - - amount<0 or amount>1 are allowed - */ -/proc/BlendHSV(hsv1, hsv2, amount) - var/list/HSV1 = ReadHSV(hsv1) - var/list/HSV2 = ReadHSV(hsv2) - - // add missing alpha if needed - if(HSV1.len < HSV2.len) HSV1 += 255 - else if(HSV2.len < HSV1.len) HSV2 += 255 - var/usealpha = HSV1.len > 3 - - // normalize hsv values in case anything is screwy - if(HSV1[1] > 1536) HSV1[1] %= 1536 - if(HSV2[1] > 1536) HSV2[1] %= 1536 - if(HSV1[1] < 0) HSV1[1] += 1536 - if(HSV2[1] < 0) HSV2[1] += 1536 - if(!HSV1[3]) {HSV1[1] = 0; HSV1[2] = 0} - if(!HSV2[3]) {HSV2[1] = 0; HSV2[2] = 0} - - // no value for one color means don't change saturation - if(!HSV1[3]) HSV1[2] = HSV2[2] - if(!HSV2[3]) HSV2[2] = HSV1[2] - // no saturation for one color means don't change hues - if(!HSV1[2]) HSV1[1] = HSV2[1] - if(!HSV2[2]) HSV2[1] = HSV1[1] - - // Compress hues into easier-to-manage range - HSV1[1] -= HSV1[1] >> 8 - HSV2[1] -= HSV2[1] >> 8 - - var/hue_diff = HSV2[1] - HSV1[1] - if(hue_diff > 765) hue_diff -= 1530 - else if(hue_diff <= -765) hue_diff += 1530 - - var/hue = round(HSV1[1] + hue_diff * amount, 1) - var/sat = round(HSV1[2] + (HSV2[2] - HSV1[2]) * amount, 1) - var/val = round(HSV1[3] + (HSV2[3] - HSV1[3]) * amount, 1) - var/alpha = usealpha ? round(HSV1[4] + (HSV2[4] - HSV1[4]) * amount, 1) : null - - // normalize hue - if(hue < 0 || hue >= 1530) hue %= 1530 - if(hue < 0) hue += 1530 - // decompress hue - hue += round(hue / 255) - - return hsv(hue, sat, val, alpha) - -/* - Smooth blend between RGB colors - - amount=0 is the first color - amount=1 is the second color - amount=0.5 is directly between the two colors - - amount<0 or amount>1 are allowed - */ -/proc/BlendRGB(rgb1, rgb2, amount) - var/list/RGB1 = ReadRGB(rgb1) - var/list/RGB2 = ReadRGB(rgb2) - - // add missing alpha if needed - if(RGB1.len < RGB2.len) RGB1 += 255 - else if(RGB2.len < RGB1.len) RGB2 += 255 - var/usealpha = RGB1.len > 3 - - var/r = round(RGB1[1] + (RGB2[1] - RGB1[1]) * amount, 1) - var/g = round(RGB1[2] + (RGB2[2] - RGB1[2]) * amount, 1) - var/b = round(RGB1[3] + (RGB2[3] - RGB1[3]) * amount, 1) - var/alpha = usealpha ? round(RGB1[4] + (RGB2[4] - RGB1[4]) * amount, 1) : null - - return isnull(alpha) ? rgb(r, g, b) : rgb(r, g, b, alpha) - -/proc/BlendRGBasHSV(rgb1, rgb2, amount) - return HSVtoRGB(RGBtoHSV(rgb1), RGBtoHSV(rgb2), amount) - -/proc/HueToAngle(hue) - // normalize hsv in case anything is screwy - if(hue < 0 || hue >= 1536) hue %= 1536 - if(hue < 0) hue += 1536 - // Compress hue into easier-to-manage range - hue -= hue >> 8 - return hue / (1530/360) - -/proc/AngleToHue(angle) - // normalize hsv in case anything is screwy - if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) - var/hue = angle * (1530/360) - // Decompress hue - hue += round(hue / 255) - return hue - - -// positive angle rotates forward through red->green->blue -/proc/RotateHue(hsv, angle) - var/list/HSV = ReadHSV(hsv) - - // normalize hsv in case anything is screwy - if(HSV[1] >= 1536) HSV[1] %= 1536 - if(HSV[1] < 0) HSV[1] += 1536 - - // Compress hue into easier-to-manage range - HSV[1] -= HSV[1] >> 8 - - if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) - HSV[1] = round(HSV[1] + angle * (1530/360), 1) - - // normalize hue - if(HSV[1] < 0 || HSV[1] >= 1530) HSV[1] %= 1530 - if(HSV[1] < 0) HSV[1] += 1530 - // decompress hue - HSV[1] += round(HSV[1] / 255) - - return hsv(HSV[1], HSV[2], HSV[3], (HSV.len > 3 ? HSV[4] : null)) - -// Convert an rgb color to grayscale -/proc/GrayScale(rgb) - var/list/RGB = ReadRGB(rgb) - var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 - return (RGB.len > 3) ? rgb(gray, gray, gray, RGB[4]) : rgb(gray, gray, gray) - -// Change grayscale color to black->tone->white range -/proc/ColorTone(rgb, tone) - var/list/RGB = ReadRGB(rgb) - var/list/TONE = ReadRGB(tone) - - var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 - var/tone_gray = TONE[1]*0.3 + TONE[2]*0.59 + TONE[3]*0.11 - - if(gray <= tone_gray) return BlendRGB("#000000", tone, gray/(tone_gray || 1)) - else return BlendRGB(tone, "#ffffff", (gray-tone_gray)/((255-tone_gray) || 1)) - - -//Used in the OLD chem colour mixing algorithm -/proc/GetColors(hex) - hex = uppertext(hex) - // No alpha set? Default to full alpha. - if(length(hex) == 7) - hex += "FF" - var/hi1 = text2ascii(hex, 2) // R - var/lo1 = text2ascii(hex, 3) // R - var/hi2 = text2ascii(hex, 4) // G - var/lo2 = text2ascii(hex, 5) // G - var/hi3 = text2ascii(hex, 6) // B - var/lo3 = text2ascii(hex, 7) // B - var/hi4 = text2ascii(hex, 8) // A - var/lo4 = text2ascii(hex, 9) // A - return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48), - ((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48), - ((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48), - ((hi4 >= 65 ? hi4-55 : hi4-48)<<4) | (lo4 >= 65 ? lo4-55 : lo4-48)) - - -/* -Get flat icon by DarkCampainger. As it says on the tin, will return an icon with all the overlays -as a single icon. Useful for when you want to manipulate an icon via the above as overlays are not normally included. -The _flatIcons list is a cache for generated icon files. -*/ - -// Creates a single icon from a given /atom or /image. Only the first argument is required. -/proc/getFlatIcon(image/A, defdir=A.dir, deficon=A.icon, defstate=A.icon_state, defblend=A.blend_mode) - // We start with a blank canvas, otherwise some icon procs crash silently - var/icon/flat = icon('icons/effects/effects.dmi', "nothing") // Final flattened icon - if(!A) - return flat - if(A.alpha <= 0) - return flat - var/noIcon = FALSE - - var/curicon - if(A.icon) - curicon = A.icon - else - curicon = deficon - - if(!curicon) - noIcon = TRUE // Do not render this object. - - var/curstate - if(A.icon_state) - curstate = A.icon_state - else - curstate = defstate - - if(!noIcon && !(curstate in icon_states(curicon))) - if("" in icon_states(curicon)) - curstate = "" - else - noIcon = TRUE // Do not render this object. - - var/curdir - if(A.dir != 2) - curdir = A.dir - else - curdir = defdir - - var/curblend - if(A.blend_mode == BLEND_DEFAULT) - curblend = defblend - else - curblend = A.blend_mode - - // Layers will be a sorted list of icons/overlays, based on the order in which they are displayed - var/list/layers = list() - var/image/copy - // Add the atom's icon itself, without pixel_x/y offsets. - if(!noIcon) - copy = image(icon=curicon, icon_state=curstate, layer=A.layer, dir=curdir) - copy.color = A.color - copy.alpha = A.alpha - copy.blend_mode = curblend - layers[copy] = A.layer - - // Loop through the underlays, then overlays, sorting them into the layers list - var/list/process = A.underlays // Current list being processed - var/pSet=0 // Which list is being processed: 0 = underlays, 1 = overlays - var/curIndex=1 // index of 'current' in list being processed - var/current // Current overlay being sorted - var/currentLayer // Calculated layer that overlay appears on (special case for FLOAT_LAYER) - var/compare // The overlay 'add' is being compared against - var/cmpIndex // The index in the layers list of 'compare' - while(TRUE) - if(curIndex<=process.len) - current = process[curIndex] - if(!current) - curIndex++ //Try the next layer - continue - currentLayer = current:layer - if(currentLayer<0) // Special case for FLY_LAYER - if(currentLayer <= -1000) return flat - if(pSet == 0) // Underlay - currentLayer = A.layer+currentLayer/1000 - else // Overlay - currentLayer = A.layer+(1000+currentLayer)/1000 - - // Sort add into layers list - for(cmpIndex=1,cmpIndex<=layers.len,cmpIndex++) - compare = layers[cmpIndex] - if(currentLayer < layers[compare]) // Associated value is the calculated layer - layers.Insert(cmpIndex,current) - layers[current] = currentLayer - break - if(cmpIndex>layers.len) // Reached end of list without inserting - layers[current]=currentLayer // Place at end - - curIndex++ - - if(curIndex>process.len) - if(pSet == 0) // Switch to overlays - curIndex = 1 - pSet = 1 - process = A.overlays - else // All done - break - - var/icon/add // Icon of overlay being added - - // Current dimensions of flattened icon - var/{flatX1=1;flatX2=flat.Width();flatY1=1;flatY2=flat.Height()} - // Dimensions of overlay being added - var/{addX1;addX2;addY1;addY2} - - for(var/I in layers) - - if(I:alpha == 0) - continue - - if(I == copy) // 'I' is an /image based on the object being flattened. - curblend = BLEND_OVERLAY - add = icon(I:icon, I:icon_state, I:dir) - else // 'I' is an appearance object. - add = getFlatIcon(new/image(I), curdir, curicon, curstate, curblend) - - // Find the new dimensions of the flat icon to fit the added overlay - addX1 = min(flatX1, I:pixel_x+1) - addX2 = max(flatX2, I:pixel_x+add.Width()) - addY1 = min(flatY1, I:pixel_y+1) - addY2 = max(flatY2, I:pixel_y+add.Height()) - - if(addX1!=flatX1 || addX2!=flatX2 || addY1!=flatY1 || addY2!=flatY2) - // Resize the flattened icon so the new icon fits - flat.Crop(addX1-flatX1+1, addY1-flatY1+1, addX2-flatX1+1, addY2-flatY1+1) - flatX1=addX1;flatX2=addX2 - flatY1=addY1;flatY2=addY2 - - // Blend the overlay into the flattened icon - flat.Blend(add, blendMode2iconMode(curblend), I:pixel_x + 2 - flatX1, I:pixel_y + 2 - flatY1) - - if(A.color) - flat.Blend(A.color, ICON_MULTIPLY) - if(A.alpha < 255) - flat.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY) - - return icon(flat, "", SOUTH) - -/proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N - var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. - for(var/I in A.overlays)//For every image in overlays. var/image/I will not work, don't try it. - if(I:layer>A.layer) - continue//If layer is greater than what we need, skip it. - var/icon/image_overlay = new(I:icon,I:icon_state)//Blend only works with icon objects. - //Also, icons cannot directly set icon_state. Slower than changing variables but whatever. - alpha_mask.Blend(image_overlay,ICON_OR)//OR so they are lumped together in a nice overlay. - return alpha_mask//And now return the mask. - -/mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay. - var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays. - //Now we need to culculate overlays+underlays and add them together to form an image for a mask. - //var/icon/alpha_mask = getFlatIcon(src)//Accurate but SLOW. Not designed for running each tick. Could have other uses I guess. - var/icon/alpha_mask = getIconMask(src)//Which is why I created that proc. Also a little slow since it's blending a bunch of icons together but good enough. - opacity_icon.AddAlphaMask(alpha_mask)//Likely the main source of lag for this proc. Probably not designed to run each tick. - opacity_icon.ChangeOpacity(0.4)//Front end for MapColors so it's fast. 0.5 means half opacity and looks the best in my opinion. - for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. - var/image/I = image("icon" = opacity_icon, "icon_state" = A.icon_state, "layer" = layer+0.8)//So it's above other stuff but below weapons and the like. - switch(i)//Now to determine offset so the result is somewhat blurred. - if(1) - I.pixel_x-- - if(2) - I.pixel_x++ - if(3) - I.pixel_y-- - if(4) - I.pixel_y++ - add_overlay(I)//And finally add the overlay. - -/proc/getHologramIcon(icon/A, safety=1)//If safety is on, a new icon is not created. - var/icon/flat_icon = safety ? A : new(A)//Has to be a new icon to not constantly change the same icon. - flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish. - flat_icon.ChangeOpacity(0.5)//Make it half transparent. - var/icon/alpha_mask = new('icons/effects/effects.dmi', "scanline")//Scanline effect. - flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. - return flat_icon - -//For photo camera. -/proc/build_composite_icon(atom/A) - var/icon/composite = icon(A.icon, A.icon_state, A.dir, 1) - for(var/O in A.overlays) - var/image/I = O - composite.Blend(icon(I.icon, I.icon_state, I.dir, 1), ICON_OVERLAY) - return composite - - -//What the mob looks like as animated static -//By vg's ComicIronic -/proc/getStaticIcon(icon/A, safety=1) - var/icon/flat_icon = safety ? A : new(A) - flat_icon.Blend(rgb(255,255,255)) - flat_icon.BecomeAlphaMask() - var/icon/static_icon = new/icon('icons/effects/effects.dmi', "static_base") - static_icon.AddAlphaMask(flat_icon) - return static_icon - - -//What the mob looks like as a pitch black outline -//By vg's ComicIronic -/proc/getBlankIcon(icon/A, safety=1) - var/icon/flat_icon = safety ? A : new(A) - flat_icon.Blend(rgb(255,255,255)) - flat_icon.BecomeAlphaMask() - var/icon/blank_icon = new/icon('icons/effects/effects.dmi', "blank_base") - blank_icon.AddAlphaMask(flat_icon) - return blank_icon - - -//Dwarf fortress style icons based on letters (defaults to the first letter of the Atom's name) -//By vg's ComicIronic -/proc/getLetterImage(atom/A, letter= "", uppercase = 0) - if(!A) - return - - var/icon/atom_icon = new(A.icon, A.icon_state) - - if(!letter) - letter = copytext(A.name, 1, 2) - if(uppercase == 1) - letter = uppertext(letter) - else if(uppercase == -1) - letter = lowertext(letter) - - var/image/text_image = new(loc = A) - text_image.maptext = "[letter]" - text_image.pixel_x = 7 - text_image.pixel_y = 5 - qdel(atom_icon) - return text_image - -GLOBAL_LIST_EMPTY(friendly_animal_types) - -// Pick a random animal instead of the icon, and use that instead -/proc/getRandomAnimalImage(atom/A) - if(!GLOB.friendly_animal_types.len) - for(var/T in typesof(/mob/living/simple_animal)) - var/mob/living/simple_animal/SA = T - if(initial(SA.gold_core_spawnable) == 2) - GLOB.friendly_animal_types += SA - - - var/mob/living/simple_animal/SA = pick(GLOB.friendly_animal_types) - - var/icon = initial(SA.icon) - var/icon_state = initial(SA.icon_state) - - var/image/final_image = image(icon, icon_state=icon_state, loc = A) - - if(ispath(SA, /mob/living/simple_animal/butterfly)) - final_image.color = rgb(rand(0,255), rand(0,255), rand(0,255)) - - // For debugging - final_image.text = initial(SA.name) - return final_image - -//Interface for using DrawBox() to draw 1 pixel on a coordinate. -//Returns the same icon specifed in the argument, but with the pixel drawn -/proc/DrawPixel(icon/I,colour,drawX,drawY) - if(!I) - return 0 - - var/Iwidth = I.Width() - var/Iheight = I.Height() - - if(drawX > Iwidth || drawX <= 0) - return 0 - if(drawY > Iheight || drawY <= 0) - return 0 - - I.DrawBox(colour,drawX, drawY) - return I - - -//Interface for easy drawing of one pixel on an atom. -/atom/proc/DrawPixelOn(colour, drawX, drawY) - var/icon/I = new(icon) - var/icon/J = DrawPixel(I, colour, drawX, drawY) - if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square. - icon = J - return J - return 0 - -//For creating consistent icons for human looking simple animals -/proc/get_flat_human_icon(icon_id, datum/job/J, datum/preferences/prefs) - var/static/list/humanoid_icon_cache = list() - if(!icon_id || !humanoid_icon_cache[icon_id]) - var/mob/living/carbon/human/dummy/body = new() - - if(prefs) - prefs.copy_to(body) - if(J) - J.equip(body, TRUE, FALSE) - - SSoverlays.Flush() - - var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") - - body.setDir(NORTH) - var/icon/partial = getFlatIcon(body) - out_icon.Insert(partial,dir=NORTH) - - body.setDir(SOUTH) - partial = getFlatIcon(body) - out_icon.Insert(partial,dir=SOUTH) - - body.setDir(WEST) - partial = getFlatIcon(body) - out_icon.Insert(partial,dir=WEST) - - body.setDir(EAST) - partial = getFlatIcon(body) - out_icon.Insert(partial,dir=EAST) - - qdel(body) - - humanoid_icon_cache[icon_id] = out_icon - return out_icon - else - return humanoid_icon_cache[icon_id] - - -//Hook, override to run code on- wait this is images -//Images have dir without being an atom, so they get their own definition. -//Lame. -/image/proc/setDir(newdir) - dir = newdir - -/atom/proc/freeze_icon_index() - return "\ref[initial(icon)]-[initial(icon_state)]" - -/obj/proc/make_frozen_visual() - // Used to make the frozen item visuals for Freon. - var/static/list/freeze_item_icons = list() - if(!HAS_SECONDARY_FLAG(src, FROZEN) && (initial(icon) && initial(icon_state))) - var/index = freeze_icon_index() - var/icon/IC - var/icon/P = freeze_item_icons[index] - if(!P) - P = new /icon - for(var/iconstate in icon_states(icon)) - var/icon/O = new('icons/effects/freeze.dmi', "ice_cube") - IC = new(icon, iconstate) - O.Blend(IC, ICON_ADD) - P.Insert(O, iconstate) - freeze_item_icons[index] = P - icon = P - name = "frozen [name]" - SET_SECONDARY_FLAG(src, FROZEN) - -//Assumes already frozed + + Label_Icon() + set name = "3. Label Icon" + // Give it a name for the cache + var/iconName = "[ckey(src.name)]_flattened.dmi" + // Copy the file to the rsc manually + var/icon/I = fcopy_rsc(getFlatIcon(src)) + // Send the icon to src's local cache + src< transparent, gray -> translucent white, white -> solid white +/icon/proc/BecomeAlphaMask() + SwapColor(null, "#000000ff") // don't let transparent become gray + MapColors(0,0,0,0.3, 0,0,0,0.59, 0,0,0,0.11, 0,0,0,0, 1,1,1,0) + +/icon/proc/UseAlphaMask(mask) + Opaque() + AddAlphaMask(mask) + +/icon/proc/AddAlphaMask(mask) + var/icon/M = new(mask) + M.Blend("#ffffff", ICON_SUBTRACT) + // apply mask + Blend(M, ICON_ADD) + +/* + HSV format is represented as "#hhhssvv" or "#hhhssvvaa" + + Hue ranges from 0 to 0x5ff (1535) + + 0x000 = red + 0x100 = yellow + 0x200 = green + 0x300 = cyan + 0x400 = blue + 0x500 = magenta + + Saturation is from 0 to 0xff (255) + + More saturation = more color + Less saturation = more gray + + Value ranges from 0 to 0xff (255) + + Higher value means brighter color + */ + +/proc/ReadRGB(rgb) + if(!rgb) return + + // interpret the HSV or HSVA value + var/i=1,start=1 + if(text2ascii(rgb) == 35) ++start // skip opening # + var/ch,which=0,r=0,g=0,b=0,alpha=0,usealpha + var/digits=0 + for(i=start, i<=length(rgb), ++i) + ch = text2ascii(rgb, i) + if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break + ++digits + if(digits == 8) break + + var/single = digits < 6 + if(digits != 3 && digits != 4 && digits != 6 && digits != 8) return + if(digits == 4 || digits == 8) usealpha = 1 + for(i=start, digits>0, ++i) + ch = text2ascii(rgb, i) + if(ch >= 48 && ch <= 57) ch -= 48 + else if(ch >= 65 && ch <= 70) ch -= 55 + else if(ch >= 97 && ch <= 102) ch -= 87 + else break + --digits + switch(which) + if(0) + r = (r << 4) | ch + if(single) + r |= r << 4 + ++which + else if(!(digits & 1)) ++which + if(1) + g = (g << 4) | ch + if(single) + g |= g << 4 + ++which + else if(!(digits & 1)) ++which + if(2) + b = (b << 4) | ch + if(single) + b |= b << 4 + ++which + else if(!(digits & 1)) ++which + if(3) + alpha = (alpha << 4) | ch + if(single) alpha |= alpha << 4 + + . = list(r, g, b) + if(usealpha) . += alpha + +/proc/ReadHSV(hsv) + if(!hsv) return + + // interpret the HSV or HSVA value + var/i=1,start=1 + if(text2ascii(hsv) == 35) ++start // skip opening # + var/ch,which=0,hue=0,sat=0,val=0,alpha=0,usealpha + var/digits=0 + for(i=start, i<=length(hsv), ++i) + ch = text2ascii(hsv, i) + if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break + ++digits + if(digits == 9) break + if(digits > 7) usealpha = 1 + if(digits <= 4) ++which + if(digits <= 2) ++which + for(i=start, digits>0, ++i) + ch = text2ascii(hsv, i) + if(ch >= 48 && ch <= 57) ch -= 48 + else if(ch >= 65 && ch <= 70) ch -= 55 + else if(ch >= 97 && ch <= 102) ch -= 87 + else break + --digits + switch(which) + if(0) + hue = (hue << 4) | ch + if(digits == (usealpha ? 6 : 4)) ++which + if(1) + sat = (sat << 4) | ch + if(digits == (usealpha ? 4 : 2)) ++which + if(2) + val = (val << 4) | ch + if(digits == (usealpha ? 2 : 0)) ++which + if(3) + alpha = (alpha << 4) | ch + + . = list(hue, sat, val) + if(usealpha) . += alpha + +/proc/HSVtoRGB(hsv) + if(!hsv) return "#000000" + var/list/HSV = ReadHSV(hsv) + if(!HSV) return "#000000" + + var/hue = HSV[1] + var/sat = HSV[2] + var/val = HSV[3] + + // Compress hue into easier-to-manage range + hue -= hue >> 8 + if(hue >= 0x5fa) hue -= 0x5fa + + var/hi,mid,lo,r,g,b + hi = val + lo = round((255 - sat) * val / 255, 1) + mid = lo + round(abs(round(hue, 510) - hue) * (hi - lo) / 255, 1) + if(hue >= 765) + if(hue >= 1275) {r=hi; g=lo; b=mid} + else if(hue >= 1020) {r=mid; g=lo; b=hi } + else {r=lo; g=mid; b=hi } + else + if(hue >= 510) {r=lo; g=hi; b=mid} + else if(hue >= 255) {r=mid; g=hi; b=lo } + else {r=hi; g=mid; b=lo } + + return (HSV.len > 3) ? rgb(r,g,b,HSV[4]) : rgb(r,g,b) + +/proc/RGBtoHSV(rgb) + if(!rgb) return "#0000000" + var/list/RGB = ReadRGB(rgb) + if(!RGB) return "#0000000" + + var/r = RGB[1] + var/g = RGB[2] + var/b = RGB[3] + var/hi = max(r,g,b) + var/lo = min(r,g,b) + + var/val = hi + var/sat = hi ? round((hi-lo) * 255 / hi, 1) : 0 + var/hue = 0 + + if(sat) + var/dir + var/mid + if(hi == r) + if(lo == b) {hue=0; dir=1; mid=g} + else {hue=1535; dir=-1; mid=b} + else if(hi == g) + if(lo == r) {hue=512; dir=1; mid=b} + else {hue=511; dir=-1; mid=r} + else if(hi == b) + if(lo == g) {hue=1024; dir=1; mid=r} + else {hue=1023; dir=-1; mid=g} + hue += dir * round((mid-lo) * 255 / (hi-lo), 1) + + return hsv(hue, sat, val, (RGB.len>3 ? RGB[4] : null)) + +/proc/hsv(hue, sat, val, alpha) + if(hue < 0 || hue >= 1536) hue %= 1536 + if(hue < 0) hue += 1536 + if((hue & 0xFF) == 0xFF) + ++hue + if(hue >= 1536) hue = 0 + if(sat < 0) sat = 0 + if(sat > 255) sat = 255 + if(val < 0) val = 0 + if(val > 255) val = 255 + . = "#" + . += TO_HEX_DIGIT(hue >> 8) + . += TO_HEX_DIGIT(hue >> 4) + . += TO_HEX_DIGIT(hue) + . += TO_HEX_DIGIT(sat >> 4) + . += TO_HEX_DIGIT(sat) + . += TO_HEX_DIGIT(val >> 4) + . += TO_HEX_DIGIT(val) + if(!isnull(alpha)) + if(alpha < 0) alpha = 0 + if(alpha > 255) alpha = 255 + . += TO_HEX_DIGIT(alpha >> 4) + . += TO_HEX_DIGIT(alpha) + +/* + Smooth blend between HSV colors + + amount=0 is the first color + amount=1 is the second color + amount=0.5 is directly between the two colors + + amount<0 or amount>1 are allowed + */ +/proc/BlendHSV(hsv1, hsv2, amount) + var/list/HSV1 = ReadHSV(hsv1) + var/list/HSV2 = ReadHSV(hsv2) + + // add missing alpha if needed + if(HSV1.len < HSV2.len) HSV1 += 255 + else if(HSV2.len < HSV1.len) HSV2 += 255 + var/usealpha = HSV1.len > 3 + + // normalize hsv values in case anything is screwy + if(HSV1[1] > 1536) HSV1[1] %= 1536 + if(HSV2[1] > 1536) HSV2[1] %= 1536 + if(HSV1[1] < 0) HSV1[1] += 1536 + if(HSV2[1] < 0) HSV2[1] += 1536 + if(!HSV1[3]) {HSV1[1] = 0; HSV1[2] = 0} + if(!HSV2[3]) {HSV2[1] = 0; HSV2[2] = 0} + + // no value for one color means don't change saturation + if(!HSV1[3]) HSV1[2] = HSV2[2] + if(!HSV2[3]) HSV2[2] = HSV1[2] + // no saturation for one color means don't change hues + if(!HSV1[2]) HSV1[1] = HSV2[1] + if(!HSV2[2]) HSV2[1] = HSV1[1] + + // Compress hues into easier-to-manage range + HSV1[1] -= HSV1[1] >> 8 + HSV2[1] -= HSV2[1] >> 8 + + var/hue_diff = HSV2[1] - HSV1[1] + if(hue_diff > 765) hue_diff -= 1530 + else if(hue_diff <= -765) hue_diff += 1530 + + var/hue = round(HSV1[1] + hue_diff * amount, 1) + var/sat = round(HSV1[2] + (HSV2[2] - HSV1[2]) * amount, 1) + var/val = round(HSV1[3] + (HSV2[3] - HSV1[3]) * amount, 1) + var/alpha = usealpha ? round(HSV1[4] + (HSV2[4] - HSV1[4]) * amount, 1) : null + + // normalize hue + if(hue < 0 || hue >= 1530) hue %= 1530 + if(hue < 0) hue += 1530 + // decompress hue + hue += round(hue / 255) + + return hsv(hue, sat, val, alpha) + +/* + Smooth blend between RGB colors + + amount=0 is the first color + amount=1 is the second color + amount=0.5 is directly between the two colors + + amount<0 or amount>1 are allowed + */ +/proc/BlendRGB(rgb1, rgb2, amount) + var/list/RGB1 = ReadRGB(rgb1) + var/list/RGB2 = ReadRGB(rgb2) + + // add missing alpha if needed + if(RGB1.len < RGB2.len) RGB1 += 255 + else if(RGB2.len < RGB1.len) RGB2 += 255 + var/usealpha = RGB1.len > 3 + + var/r = round(RGB1[1] + (RGB2[1] - RGB1[1]) * amount, 1) + var/g = round(RGB1[2] + (RGB2[2] - RGB1[2]) * amount, 1) + var/b = round(RGB1[3] + (RGB2[3] - RGB1[3]) * amount, 1) + var/alpha = usealpha ? round(RGB1[4] + (RGB2[4] - RGB1[4]) * amount, 1) : null + + return isnull(alpha) ? rgb(r, g, b) : rgb(r, g, b, alpha) + +/proc/BlendRGBasHSV(rgb1, rgb2, amount) + return HSVtoRGB(RGBtoHSV(rgb1), RGBtoHSV(rgb2), amount) + +/proc/HueToAngle(hue) + // normalize hsv in case anything is screwy + if(hue < 0 || hue >= 1536) hue %= 1536 + if(hue < 0) hue += 1536 + // Compress hue into easier-to-manage range + hue -= hue >> 8 + return hue / (1530/360) + +/proc/AngleToHue(angle) + // normalize hsv in case anything is screwy + if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) + var/hue = angle * (1530/360) + // Decompress hue + hue += round(hue / 255) + return hue + + +// positive angle rotates forward through red->green->blue +/proc/RotateHue(hsv, angle) + var/list/HSV = ReadHSV(hsv) + + // normalize hsv in case anything is screwy + if(HSV[1] >= 1536) HSV[1] %= 1536 + if(HSV[1] < 0) HSV[1] += 1536 + + // Compress hue into easier-to-manage range + HSV[1] -= HSV[1] >> 8 + + if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) + HSV[1] = round(HSV[1] + angle * (1530/360), 1) + + // normalize hue + if(HSV[1] < 0 || HSV[1] >= 1530) HSV[1] %= 1530 + if(HSV[1] < 0) HSV[1] += 1530 + // decompress hue + HSV[1] += round(HSV[1] / 255) + + return hsv(HSV[1], HSV[2], HSV[3], (HSV.len > 3 ? HSV[4] : null)) + +// Convert an rgb color to grayscale +/proc/GrayScale(rgb) + var/list/RGB = ReadRGB(rgb) + var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 + return (RGB.len > 3) ? rgb(gray, gray, gray, RGB[4]) : rgb(gray, gray, gray) + +// Change grayscale color to black->tone->white range +/proc/ColorTone(rgb, tone) + var/list/RGB = ReadRGB(rgb) + var/list/TONE = ReadRGB(tone) + + var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 + var/tone_gray = TONE[1]*0.3 + TONE[2]*0.59 + TONE[3]*0.11 + + if(gray <= tone_gray) return BlendRGB("#000000", tone, gray/(tone_gray || 1)) + else return BlendRGB(tone, "#ffffff", (gray-tone_gray)/((255-tone_gray) || 1)) + + +//Used in the OLD chem colour mixing algorithm +/proc/GetColors(hex) + hex = uppertext(hex) + // No alpha set? Default to full alpha. + if(length(hex) == 7) + hex += "FF" + var/hi1 = text2ascii(hex, 2) // R + var/lo1 = text2ascii(hex, 3) // R + var/hi2 = text2ascii(hex, 4) // G + var/lo2 = text2ascii(hex, 5) // G + var/hi3 = text2ascii(hex, 6) // B + var/lo3 = text2ascii(hex, 7) // B + var/hi4 = text2ascii(hex, 8) // A + var/lo4 = text2ascii(hex, 9) // A + return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48), + ((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48), + ((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48), + ((hi4 >= 65 ? hi4-55 : hi4-48)<<4) | (lo4 >= 65 ? lo4-55 : lo4-48)) + + +/* +Get flat icon by DarkCampainger. As it says on the tin, will return an icon with all the overlays +as a single icon. Useful for when you want to manipulate an icon via the above as overlays are not normally included. +The _flatIcons list is a cache for generated icon files. +*/ + +// Creates a single icon from a given /atom or /image. Only the first argument is required. +/proc/getFlatIcon(image/A, defdir=A.dir, deficon=A.icon, defstate=A.icon_state, defblend=A.blend_mode) + // We start with a blank canvas, otherwise some icon procs crash silently + var/icon/flat = icon('icons/effects/effects.dmi', "nothing") // Final flattened icon + if(!A) + return flat + if(A.alpha <= 0) + return flat + var/noIcon = FALSE + + var/curicon + if(A.icon) + curicon = A.icon + else + curicon = deficon + + if(!curicon) + noIcon = TRUE // Do not render this object. + + var/curstate + if(A.icon_state) + curstate = A.icon_state + else + curstate = defstate + + if(!noIcon && !(curstate in icon_states(curicon))) + if("" in icon_states(curicon)) + curstate = "" + else + noIcon = TRUE // Do not render this object. + + var/curdir + if(A.dir != 2) + curdir = A.dir + else + curdir = defdir + + var/curblend + if(A.blend_mode == BLEND_DEFAULT) + curblend = defblend + else + curblend = A.blend_mode + + // Layers will be a sorted list of icons/overlays, based on the order in which they are displayed + var/list/layers = list() + var/image/copy + // Add the atom's icon itself, without pixel_x/y offsets. + if(!noIcon) + copy = image(icon=curicon, icon_state=curstate, layer=A.layer, dir=curdir) + copy.color = A.color + copy.alpha = A.alpha + copy.blend_mode = curblend + layers[copy] = A.layer + + // Loop through the underlays, then overlays, sorting them into the layers list + var/list/process = A.underlays // Current list being processed + var/pSet=0 // Which list is being processed: 0 = underlays, 1 = overlays + var/curIndex=1 // index of 'current' in list being processed + var/current // Current overlay being sorted + var/currentLayer // Calculated layer that overlay appears on (special case for FLOAT_LAYER) + var/compare // The overlay 'add' is being compared against + var/cmpIndex // The index in the layers list of 'compare' + while(TRUE) + if(curIndex<=process.len) + current = process[curIndex] + if(!current) + curIndex++ //Try the next layer + continue + currentLayer = current:layer + if(currentLayer<0) // Special case for FLY_LAYER + if(currentLayer <= -1000) return flat + if(pSet == 0) // Underlay + currentLayer = A.layer+currentLayer/1000 + else // Overlay + currentLayer = A.layer+(1000+currentLayer)/1000 + + // Sort add into layers list + for(cmpIndex=1,cmpIndex<=layers.len,cmpIndex++) + compare = layers[cmpIndex] + if(currentLayer < layers[compare]) // Associated value is the calculated layer + layers.Insert(cmpIndex,current) + layers[current] = currentLayer + break + if(cmpIndex>layers.len) // Reached end of list without inserting + layers[current]=currentLayer // Place at end + + curIndex++ + + if(curIndex>process.len) + if(pSet == 0) // Switch to overlays + curIndex = 1 + pSet = 1 + process = A.overlays + else // All done + break + + var/icon/add // Icon of overlay being added + + // Current dimensions of flattened icon + var/{flatX1=1;flatX2=flat.Width();flatY1=1;flatY2=flat.Height()} + // Dimensions of overlay being added + var/{addX1;addX2;addY1;addY2} + + for(var/I in layers) + + if(I:alpha == 0) + continue + + if(I == copy) // 'I' is an /image based on the object being flattened. + curblend = BLEND_OVERLAY + add = icon(I:icon, I:icon_state, I:dir) + else // 'I' is an appearance object. + add = getFlatIcon(new/image(I), curdir, curicon, curstate, curblend) + + // Find the new dimensions of the flat icon to fit the added overlay + addX1 = min(flatX1, I:pixel_x+1) + addX2 = max(flatX2, I:pixel_x+add.Width()) + addY1 = min(flatY1, I:pixel_y+1) + addY2 = max(flatY2, I:pixel_y+add.Height()) + + if(addX1!=flatX1 || addX2!=flatX2 || addY1!=flatY1 || addY2!=flatY2) + // Resize the flattened icon so the new icon fits + flat.Crop(addX1-flatX1+1, addY1-flatY1+1, addX2-flatX1+1, addY2-flatY1+1) + flatX1=addX1;flatX2=addX2 + flatY1=addY1;flatY2=addY2 + + // Blend the overlay into the flattened icon + flat.Blend(add, blendMode2iconMode(curblend), I:pixel_x + 2 - flatX1, I:pixel_y + 2 - flatY1) + + if(A.color) + flat.Blend(A.color, ICON_MULTIPLY) + if(A.alpha < 255) + flat.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY) + + return icon(flat, "", SOUTH) + +/proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N + var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. + for(var/I in A.overlays)//For every image in overlays. var/image/I will not work, don't try it. + if(I:layer>A.layer) + continue//If layer is greater than what we need, skip it. + var/icon/image_overlay = new(I:icon,I:icon_state)//Blend only works with icon objects. + //Also, icons cannot directly set icon_state. Slower than changing variables but whatever. + alpha_mask.Blend(image_overlay,ICON_OR)//OR so they are lumped together in a nice overlay. + return alpha_mask//And now return the mask. + +/mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay. + var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays. + //Now we need to culculate overlays+underlays and add them together to form an image for a mask. + //var/icon/alpha_mask = getFlatIcon(src)//Accurate but SLOW. Not designed for running each tick. Could have other uses I guess. + var/icon/alpha_mask = getIconMask(src)//Which is why I created that proc. Also a little slow since it's blending a bunch of icons together but good enough. + opacity_icon.AddAlphaMask(alpha_mask)//Likely the main source of lag for this proc. Probably not designed to run each tick. + opacity_icon.ChangeOpacity(0.4)//Front end for MapColors so it's fast. 0.5 means half opacity and looks the best in my opinion. + for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. + var/image/I = image("icon" = opacity_icon, "icon_state" = A.icon_state, "layer" = layer+0.8)//So it's above other stuff but below weapons and the like. + switch(i)//Now to determine offset so the result is somewhat blurred. + if(1) + I.pixel_x-- + if(2) + I.pixel_x++ + if(3) + I.pixel_y-- + if(4) + I.pixel_y++ + add_overlay(I)//And finally add the overlay. + +/proc/getHologramIcon(icon/A, safety=1)//If safety is on, a new icon is not created. + var/icon/flat_icon = safety ? A : new(A)//Has to be a new icon to not constantly change the same icon. + flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish. + flat_icon.ChangeOpacity(0.5)//Make it half transparent. + var/icon/alpha_mask = new('icons/effects/effects.dmi', "scanline")//Scanline effect. + flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. + return flat_icon + +//For photo camera. +/proc/build_composite_icon(atom/A) + var/icon/composite = icon(A.icon, A.icon_state, A.dir, 1) + for(var/O in A.overlays) + var/image/I = O + composite.Blend(icon(I.icon, I.icon_state, I.dir, 1), ICON_OVERLAY) + return composite + + +//What the mob looks like as animated static +//By vg's ComicIronic +/proc/getStaticIcon(icon/A, safety=1) + var/icon/flat_icon = safety ? A : new(A) + flat_icon.Blend(rgb(255,255,255)) + flat_icon.BecomeAlphaMask() + var/icon/static_icon = new/icon('icons/effects/effects.dmi', "static_base") + static_icon.AddAlphaMask(flat_icon) + return static_icon + + +//What the mob looks like as a pitch black outline +//By vg's ComicIronic +/proc/getBlankIcon(icon/A, safety=1) + var/icon/flat_icon = safety ? A : new(A) + flat_icon.Blend(rgb(255,255,255)) + flat_icon.BecomeAlphaMask() + var/icon/blank_icon = new/icon('icons/effects/effects.dmi', "blank_base") + blank_icon.AddAlphaMask(flat_icon) + return blank_icon + + +//Dwarf fortress style icons based on letters (defaults to the first letter of the Atom's name) +//By vg's ComicIronic +/proc/getLetterImage(atom/A, letter= "", uppercase = 0) + if(!A) + return + + var/icon/atom_icon = new(A.icon, A.icon_state) + + if(!letter) + letter = copytext(A.name, 1, 2) + if(uppercase == 1) + letter = uppertext(letter) + else if(uppercase == -1) + letter = lowertext(letter) + + var/image/text_image = new(loc = A) + text_image.maptext = "[letter]" + text_image.pixel_x = 7 + text_image.pixel_y = 5 + qdel(atom_icon) + return text_image + +GLOBAL_LIST_EMPTY(friendly_animal_types) + +// Pick a random animal instead of the icon, and use that instead +/proc/getRandomAnimalImage(atom/A) + if(!GLOB.friendly_animal_types.len) + for(var/T in typesof(/mob/living/simple_animal)) + var/mob/living/simple_animal/SA = T + if(initial(SA.gold_core_spawnable) == 2) + GLOB.friendly_animal_types += SA + + + var/mob/living/simple_animal/SA = pick(GLOB.friendly_animal_types) + + var/icon = initial(SA.icon) + var/icon_state = initial(SA.icon_state) + + var/image/final_image = image(icon, icon_state=icon_state, loc = A) + + if(ispath(SA, /mob/living/simple_animal/butterfly)) + final_image.color = rgb(rand(0,255), rand(0,255), rand(0,255)) + + // For debugging + final_image.text = initial(SA.name) + return final_image + +//Interface for using DrawBox() to draw 1 pixel on a coordinate. +//Returns the same icon specifed in the argument, but with the pixel drawn +/proc/DrawPixel(icon/I,colour,drawX,drawY) + if(!I) + return 0 + + var/Iwidth = I.Width() + var/Iheight = I.Height() + + if(drawX > Iwidth || drawX <= 0) + return 0 + if(drawY > Iheight || drawY <= 0) + return 0 + + I.DrawBox(colour,drawX, drawY) + return I + + +//Interface for easy drawing of one pixel on an atom. +/atom/proc/DrawPixelOn(colour, drawX, drawY) + var/icon/I = new(icon) + var/icon/J = DrawPixel(I, colour, drawX, drawY) + if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square. + icon = J + return J + return 0 + +//For creating consistent icons for human looking simple animals +/proc/get_flat_human_icon(icon_id, datum/job/J, datum/preferences/prefs) + var/static/list/humanoid_icon_cache = list() + if(!icon_id || !humanoid_icon_cache[icon_id]) + var/mob/living/carbon/human/dummy/body = new() + + if(prefs) + prefs.copy_to(body) + if(J) + J.equip(body, TRUE, FALSE) + + SSoverlays.Flush() + + var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") + + body.setDir(NORTH) + var/icon/partial = getFlatIcon(body) + out_icon.Insert(partial,dir=NORTH) + + body.setDir(SOUTH) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=SOUTH) + + body.setDir(WEST) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=WEST) + + body.setDir(EAST) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=EAST) + + qdel(body) + + humanoid_icon_cache[icon_id] = out_icon + return out_icon + else + return humanoid_icon_cache[icon_id] + + +//Hook, override to run code on- wait this is images +//Images have dir without being an atom, so they get their own definition. +//Lame. +/image/proc/setDir(newdir) + dir = newdir + +/atom/proc/freeze_icon_index() + return "\ref[initial(icon)]-[initial(icon_state)]" + +/obj/proc/make_frozen_visual() + // Used to make the frozen item visuals for Freon. + var/static/list/freeze_item_icons = list() + if(!HAS_SECONDARY_FLAG(src, FROZEN) && (initial(icon) && initial(icon_state))) + var/index = freeze_icon_index() + var/icon/IC + var/icon/P = freeze_item_icons[index] + if(!P) + P = new /icon + for(var/iconstate in icon_states(icon)) + var/icon/O = new('icons/effects/freeze.dmi', "ice_cube") + IC = new(icon, iconstate) + O.Blend(IC, ICON_ADD) + P.Insert(O, iconstate) + freeze_item_icons[index] = P + icon = P + name = "frozen [name]" + SET_SECONDARY_FLAG(src, FROZEN) + +//Assumes already frozed /obj/proc/make_unfrozen() - icon = initial(icon) - name = replacetext(name, "frozen ", "") - CLEAR_SECONDARY_FLAG(src, FROZEN) + icon = initial(icon) + name = replacetext(name, "frozen ", "") + CLEAR_SECONDARY_FLAG(src, FROZEN) diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index 7e0fd531eb..c5e3a97218 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -1,135 +1,135 @@ -// Credits to Nickr5 for the useful procs I've taken from his library resource. - -GLOBAL_VAR_INIT(E, 2.71828183) -GLOBAL_VAR_INIT(Sqrt2, 1.41421356) - -// List of square roots for the numbers 1-100. -GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10)) - -/proc/sign(x) - return x!=0?x/abs(x):0 - -/proc/Atan2(x, y) - if(!x && !y) return 0 - var/a = arccos(x / sqrt(x*x + y*y)) - return y >= 0 ? a : -a - -/proc/Ceiling(x, y=1) - return -round(-x / y) * y - -/proc/Floor(x, y=1) - return round(x / y) * y - -#define Clamp(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) - -// cotangent -/proc/Cot(x) - return 1 / Tan(x) - -// cosecant -/proc/Csc(x) - return 1 / sin(x) - -/proc/Default(a, b) - return a ? a : b - -// Greatest Common Divisor - Euclid's algorithm -/proc/Gcd(a, b) - return b ? Gcd(b, a % b) : a - -/proc/Inverse(x) - return 1 / x - -/proc/IsAboutEqual(a, b, deviation = 0.1) - return abs(a - b) <= deviation - -/proc/IsEven(x) - return x % 2 == 0 - -// Returns true if val is from min to max, inclusive. -/proc/IsInRange(val, min, max) - return min <= val && val <= max - -/proc/IsInteger(x) - return round(x) == x - -/proc/IsOdd(x) - return !IsEven(x) - -/proc/IsMultiple(x, y) - return x % y == 0 - -// Least Common Multiple -/proc/Lcm(a, b) - return abs(a) / Gcd(a, b) * abs(b) - -// Performs a linear interpolation between a and b. -// Note that amount=0 returns a, amount=1 returns b, and -// amount=0.5 returns the mean of a and b. -/proc/Lerp(a, b, amount = 0.5) - return a + (b - a) * amount - -//Calculates the sum of a list of numbers. -/proc/Sum(var/list/data) - . = 0 - for(var/val in data) - .+= val - -//Calculates the mean of a list of numbers. -/proc/Mean(var/list/data) - . = Sum(data) / (data.len) - - -// Returns the nth root of x. -/proc/Root(n, x) - return x ** (1 / n) - -// secant -/proc/Sec(x) - return 1 / cos(x) - -// The quadratic formula. Returns a list with the solutions, or an empty list -// if they are imaginary. -/proc/SolveQuadratic(a, b, c) - ASSERT(a) - . = list() - var/d = b*b - 4 * a * c - var/bottom = 2 * a - if(d < 0) return - var/root = sqrt(d) - . += (-b + root) / bottom - if(!d) return - . += (-b - root) / bottom - -// tangent -/proc/Tan(x) - return sin(x) / cos(x) - -/proc/ToDegrees(radians) - // 180 / Pi - return radians * 57.2957795 - -/proc/ToRadians(degrees) - // Pi / 180 - return degrees * 0.0174532925 - -// Will filter out extra rotations and negative rotations -// E.g: 540 becomes 180. -180 becomes 180. -/proc/SimplifyDegrees(degrees) - degrees = degrees % 360 - if(degrees < 0) - degrees += 360 - return degrees - -// min is inclusive, max is exclusive -/proc/Wrap(val, min, max) - var/d = max - min - var/t = round((val - min) / d) - return val - (t * d) - +// Credits to Nickr5 for the useful procs I've taken from his library resource. + +GLOBAL_VAR_INIT(E, 2.71828183) +GLOBAL_VAR_INIT(Sqrt2, 1.41421356) + +// List of square roots for the numbers 1-100. +GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10)) + +/proc/sign(x) + return x!=0?x/abs(x):0 + +/proc/Atan2(x, y) + if(!x && !y) return 0 + var/a = arccos(x / sqrt(x*x + y*y)) + return y >= 0 ? a : -a + +/proc/Ceiling(x, y=1) + return -round(-x / y) * y + +/proc/Floor(x, y=1) + return round(x / y) * y + +#define Clamp(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) + +// cotangent +/proc/Cot(x) + return 1 / Tan(x) + +// cosecant +/proc/Csc(x) + return 1 / sin(x) + +/proc/Default(a, b) + return a ? a : b + +// Greatest Common Divisor - Euclid's algorithm +/proc/Gcd(a, b) + return b ? Gcd(b, a % b) : a + +/proc/Inverse(x) + return 1 / x + +/proc/IsAboutEqual(a, b, deviation = 0.1) + return abs(a - b) <= deviation + +/proc/IsEven(x) + return x % 2 == 0 + +// Returns true if val is from min to max, inclusive. +/proc/IsInRange(val, min, max) + return min <= val && val <= max + +/proc/IsInteger(x) + return round(x) == x + +/proc/IsOdd(x) + return !IsEven(x) + +/proc/IsMultiple(x, y) + return x % y == 0 + +// Least Common Multiple +/proc/Lcm(a, b) + return abs(a) / Gcd(a, b) * abs(b) + +// Performs a linear interpolation between a and b. +// Note that amount=0 returns a, amount=1 returns b, and +// amount=0.5 returns the mean of a and b. +/proc/Lerp(a, b, amount = 0.5) + return a + (b - a) * amount + +//Calculates the sum of a list of numbers. +/proc/Sum(var/list/data) + . = 0 + for(var/val in data) + .+= val + +//Calculates the mean of a list of numbers. +/proc/Mean(var/list/data) + . = Sum(data) / (data.len) + + +// Returns the nth root of x. +/proc/Root(n, x) + return x ** (1 / n) + +// secant +/proc/Sec(x) + return 1 / cos(x) + +// The quadratic formula. Returns a list with the solutions, or an empty list +// if they are imaginary. +/proc/SolveQuadratic(a, b, c) + ASSERT(a) + . = list() + var/d = b*b - 4 * a * c + var/bottom = 2 * a + if(d < 0) return + var/root = sqrt(d) + . += (-b + root) / bottom + if(!d) return + . += (-b - root) / bottom + +// tangent +/proc/Tan(x) + return sin(x) / cos(x) + +/proc/ToDegrees(radians) + // 180 / Pi + return radians * 57.2957795 + +/proc/ToRadians(degrees) + // Pi / 180 + return degrees * 0.0174532925 + +// Will filter out extra rotations and negative rotations +// E.g: 540 becomes 180. -180 becomes 180. +/proc/SimplifyDegrees(degrees) + degrees = degrees % 360 + if(degrees < 0) + degrees += 360 + return degrees + +// min is inclusive, max is exclusive +/proc/Wrap(val, min, max) + var/d = max - min + var/t = round((val - min) / d) + return val - (t * d) + #define NORM_ROT(rot) ((((rot % 360) + (rot - round(rot, 1))) > 0) ? ((rot % 360) + (rot - round(rot, 1))) : (((rot % 360) + (rot - round(rot, 1))) + 360)) /proc/get_angle_of_incidence(face_angle, angle_in, auto_normalize = TRUE) @@ -146,39 +146,39 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, return incidence_s else return incidence - -//A logarithm that converts an integer to a number scaled between 0 and 1 (can be tweaked to be higher). -//Currently, this is used for hydroponics-produce sprite transforming, but could be useful for other transform functions. -/proc/TransformUsingVariable(input, inputmaximum, scaling_modifier = 0) - - var/inputToDegrees = (input/inputmaximum)*180 //Converting from a 0 -> 100 scale to a 0 -> 180 scale. The 0 -> 180 scale corresponds to degrees - var/size_factor = ((-cos(inputToDegrees) +1) /2) //returns a value from 0 to 1 - - return size_factor + scaling_modifier //scale mod of 0 results in a number from 0 to 1. A scale modifier of +0.5 returns 0.5 to 1.5 - //to_chat(world, "Transform multiplier of [src] is [size_factor + scaling_modifer]") - -//converts a uniform distributed random number into a normal distributed one -//since this method produces two random numbers, one is saved for subsequent calls -//(making the cost negligble for every second call) -//This will return +/- decimals, situated about mean with standard deviation stddev -//68% chance that the number is within 1stddev -//95% chance that the number is within 2stddev -//98% chance that the number is within 3stddev...etc -#define ACCURACY 10000 -/proc/gaussian(mean, stddev) - var/static/gaussian_next - var/R1;var/R2;var/working - if(gaussian_next != null) - R1 = gaussian_next - gaussian_next = null - else - do - R1 = rand(-ACCURACY,ACCURACY)/ACCURACY - R2 = rand(-ACCURACY,ACCURACY)/ACCURACY - working = R1*R1 + R2*R2 - while(working >= 1 || working==0) - working = sqrt(-2 * log(working) / working) - R1 *= working - gaussian_next = R2 * working - return (mean + stddev * R1) -#undef ACCURACY + +//A logarithm that converts an integer to a number scaled between 0 and 1 (can be tweaked to be higher). +//Currently, this is used for hydroponics-produce sprite transforming, but could be useful for other transform functions. +/proc/TransformUsingVariable(input, inputmaximum, scaling_modifier = 0) + + var/inputToDegrees = (input/inputmaximum)*180 //Converting from a 0 -> 100 scale to a 0 -> 180 scale. The 0 -> 180 scale corresponds to degrees + var/size_factor = ((-cos(inputToDegrees) +1) /2) //returns a value from 0 to 1 + + return size_factor + scaling_modifier //scale mod of 0 results in a number from 0 to 1. A scale modifier of +0.5 returns 0.5 to 1.5 + //to_chat(world, "Transform multiplier of [src] is [size_factor + scaling_modifer]") + +//converts a uniform distributed random number into a normal distributed one +//since this method produces two random numbers, one is saved for subsequent calls +//(making the cost negligble for every second call) +//This will return +/- decimals, situated about mean with standard deviation stddev +//68% chance that the number is within 1stddev +//95% chance that the number is within 2stddev +//98% chance that the number is within 3stddev...etc +#define ACCURACY 10000 +/proc/gaussian(mean, stddev) + var/static/gaussian_next + var/R1;var/R2;var/working + if(gaussian_next != null) + R1 = gaussian_next + gaussian_next = null + else + do + R1 = rand(-ACCURACY,ACCURACY)/ACCURACY + R2 = rand(-ACCURACY,ACCURACY)/ACCURACY + working = R1*R1 + R2*R2 + while(working >= 1 || working==0) + working = sqrt(-2 * log(working) / working) + R1 *= working + gaussian_next = R2 * working + return (mean + stddev * R1) +#undef ACCURACY diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 0bd146dbd4..b3a5dbf9bc 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,539 +1,539 @@ //wrapper macro for sending images that makes grepping easy #define SEND_IMAGE(target, image) target << image -/proc/random_blood_type() - return pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") - -/proc/random_eye_color() - switch(pick(20;"brown",20;"hazel",20;"grey",15;"blue",15;"green",1;"amber",1;"albino")) - if("brown") - return "630" - if("hazel") - return "542" - if("grey") - return pick("666","777","888","999","aaa","bbb","ccc") - if("blue") - return "36c" - if("green") - return "060" - if("amber") - return "fc0" - if("albino") - return pick("c","d","e","f") + pick("0","1","2","3","4","5","6","7","8","9") + pick("0","1","2","3","4","5","6","7","8","9") - else - return "000" - -/proc/random_underwear(gender) - if(!GLOB.underwear_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) - switch(gender) - if(MALE) - return pick(GLOB.underwear_m) - if(FEMALE) - return pick(GLOB.underwear_f) - else - return pick(GLOB.underwear_list) - -/proc/random_undershirt(gender) - if(!GLOB.undershirt_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) - switch(gender) - if(MALE) - return pick(GLOB.undershirt_m) - if(FEMALE) - return pick(GLOB.undershirt_f) - else - return pick(GLOB.undershirt_list) - -/proc/random_socks() - if(!GLOB.socks_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list) - return pick(GLOB.socks_list) - -/proc/random_features() - if(!GLOB.tails_list_human.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) - if(!GLOB.tails_list_lizard.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard) - if(!GLOB.snouts_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list) - if(!GLOB.horns_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, GLOB.horns_list) - if(!GLOB.ears_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.horns_list) - if(!GLOB.frills_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list) - if(!GLOB.spines_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list) - if(!GLOB.legs_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list) - if(!GLOB.body_markings_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list) - if(!GLOB.wings_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list) - - if(!GLOB.cock_shapes_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) - if(!GLOB.vagina_shapes_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) - if(!GLOB.breasts_shapes_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) -// if(ishuman(src)) - // var/mob/living/carbon/human/H = src - /* if(H.gender == MALE) Fuck if I know how to fix this. - penis = 1 - balls = 1 - vagina = 0 - womb = 0 - breasts = 0 - if(H.gender == FEMALE) - penis = 0 - balls = 0 - vagina = 1 - womb = 1 - breasts = 1 */ - - return(list( - "mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "mcolor2" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "mcolor3" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "tail_lizard" = pick(GLOB.tails_list_lizard), - "tail_human" = "None", - "wings" = "None", - "snout" = pick(GLOB.snouts_list), - "horns" = pick(GLOB.horns_list), - "ears" = "None", - "frills" = pick(GLOB.frills_list), - "spines" = pick(GLOB.spines_list), - "body_markings" = pick(GLOB.body_markings_list), - "legs" = "Normal Legs", - "taur" = "None", - "mam_body_markings" = "None", - "mam_ears" = "None", - "mam_tail" = "None", - "mam_tail_animated" = "None", - "xenodorsal" = "None", - "xenohead" = "None", - "xenotail" = "None", - "exhibitionist" = FALSE, - "has_cock" = FALSE, - "cock_shape" = pick(GLOB.cock_shapes_list), - "cock_length" = 6, - "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF, - "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "has_sheath" = FALSE, - "sheath_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "has_balls" = FALSE, - "balls_internal" = FALSE, - "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "balls_amount" = 2, - "balls_sack_size" = BALLS_SACK_SIZE_DEF, - "balls_size" = BALLS_SIZE_DEF, - "balls_cum_rate" = CUM_RATE, - "balls_cum_mult" = CUM_RATE_MULT, - "balls_efficiency" = CUM_EFFICIENCY, - "balls_fluid" = "semen", - "has_ovi" = FALSE, - "ovi_shape" = "knotted", - "ovi_length" = 6, - "ovi_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "has_eggsack" = FALSE, - "eggsack_internal" = TRUE, - "eggsack_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "eggsack_size" = BALLS_SACK_SIZE_DEF, - "eggsack_egg_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "eggsack_egg_size" = EGG_GIRTH_DEF, - "has_breasts" = FALSE, - "breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "breasts_size" = pick(GLOB.breasts_size_list), - "breasts_shape" = pick(GLOB.breasts_shapes_list), - "breasts_fluid" = "milk", - "has_vag" = FALSE, - "vag_shape" = pick(GLOB.vagina_shapes_list), - "vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "vag_clits" = 1, - "vag_clit_diam" = 0.25, - "vag_clit_len" = 0.25, - "has_womb" = FALSE, - "womb_cum_rate" = CUM_RATE, - "womb_cum_mult" = CUM_RATE_MULT, - "womb_efficiency" = CUM_EFFICIENCY, - "womb_fluid" = "femcum")) - -/proc/random_hair_style(gender) - switch(gender) - if(MALE) - return pick(GLOB.hair_styles_male_list) - if(FEMALE) - return pick(GLOB.hair_styles_female_list) - else - return pick(GLOB.hair_styles_list) - -/proc/random_facial_hair_style(gender) - switch(gender) - if(MALE) - return pick(GLOB.facial_hair_styles_male_list) - if(FEMALE) - return pick(GLOB.facial_hair_styles_female_list) - else - return pick(GLOB.facial_hair_styles_list) - -/proc/random_unique_name(gender, attempts_to_find_unique_name=10) - for(var/i=1, i<=attempts_to_find_unique_name, i++) - if(gender==FEMALE) - . = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) - else - . = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) - - if(i != attempts_to_find_unique_name && !findname(.)) - break - -/proc/random_unique_lizard_name(gender, attempts_to_find_unique_name=10) - for(var/i=1, i<=attempts_to_find_unique_name, i++) - . = capitalize(lizard_name(gender)) - - if(i != attempts_to_find_unique_name && !findname(.)) - break - -/proc/random_unique_plasmaman_name(attempts_to_find_unique_name=10) - for(var/i=1, i<=attempts_to_find_unique_name, i++) - . = capitalize(plasmaman_name()) - - if(i != attempts_to_find_unique_name && !findname(.)) - break - -/proc/random_skin_tone() - return pick(GLOB.skin_tones) - -GLOBAL_LIST_INIT(skin_tones, list( - "albino", - "caucasian1", - "caucasian2", - "caucasian3", - "latino", - "mediterranean", - "asian1", - "asian2", - "arab", - "indian", - "african1", - "african2" - )) - -GLOBAL_LIST_EMPTY(species_list) -GLOBAL_LIST_EMPTY(roundstart_species) - -/proc/age2agedescription(age) - switch(age) - if(0 to 1) - return "infant" - if(1 to 3) - return "toddler" - if(3 to 13) - return "child" - if(13 to 19) - return "teenager" - if(19 to 30) - return "young adult" - if(30 to 45) - return "adult" - if(45 to 60) - return "middle-aged" - if(60 to 70) - return "aging" - if(70 to INFINITY) - return "elderly" - else - return "unknown" - -/* -Proc for attack log creation, because really why not -1 argument is the actor -2 argument is the target of action -3 is the description of action(like punched, throwed, or any other verb) -4 is the tool with which the action was made(usually item) 4 and 5 are very similar(5 have "by " before it, that it) and are separated just to keep things in a bit more in order -5 is additional information, anything that needs to be added -*/ - -/proc/add_logs(mob/user, mob/target, what_done, object=null, addition=null) - var/turf/attack_location = get_turf(target) - - var/is_mob_user = user && GLOB.typecache_mob[user.type] - var/is_mob_target = target && GLOB.typecache_mob[target.type] - - var/mob/living/living_target - - if(target && isliving(target)) - living_target = target - - var/hp =" " - if(living_target) - hp = "(NEWHP: [living_target.health])" - - var/starget = "NON-EXISTENT SUBJECT" - if(target) - if(is_mob_target && target.ckey) - starget = "[target.name]([target.ckey])" - else - starget = "[target.name]" - - var/ssource = "NON-EXISTENT USER" //How!? - if(user) - if(is_mob_user && user.ckey) - ssource = "[user.name]([user.ckey])" - else - ssource = "[user.name]" - - var/sobject = "" - if(object) - sobject = "[object]" - - var/sattackloc = "" - if(attack_location) - sattackloc = "([attack_location.x],[attack_location.y],[attack_location.z])" - - if(is_mob_user) - var/message = "has [what_done] [starget] with [sobject][addition] [hp] [sattackloc]" - user.log_message(message, INDIVIDUAL_ATTACK_LOG) - - if(is_mob_target) - var/message = "has been [what_done] by [ssource] with [sobject][addition] [hp] [sattackloc]" - target.log_message(message, INDIVIDUAL_ATTACK_LOG) - - log_attack("[ssource] [what_done] [starget] with [sobject][addition] [hp] [sattackloc]") - - -/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null) - if(!user || !target) - return 0 - var/user_loc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/target_loc = target.loc - - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - if (progress) - progbar = new(user, time, target) - - var/endtime = world.time+time - var/starttime = world.time - . = 1 - while (world.time < endtime) - stoplag() - if (progress) - progbar.update(world.time - starttime) - if(QDELETED(user) || QDELETED(target)) - . = 0 - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = 0 - user_loc = user.loc - - if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) - . = 0 - break - if (progress) - qdel(progbar) - - -//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action -/mob/proc/break_do_after_checks(list/checked_health, check_clicks) - if(check_clicks && next_move > world.time) - return FALSE - return TRUE - -//pass a list in the format list("health" = mob's health var) to check health during this -/mob/living/break_do_after_checks(list/checked_health, check_clicks) - if(islist(checked_health)) - if(health < checked_health["health"]) - return FALSE - checked_health["health"] = health - return ..() - -/proc/do_after(mob/user, delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null) - if(!user) - return 0 - var/atom/Tloc = null - if(target) - Tloc = target.loc - - var/atom/Uloc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/holding = user.get_active_held_item() - - var/holdingnull = 1 //User's hand started out empty, check for an empty hand - if(holding) - holdingnull = 0 //Users hand started holding something, check to see if it's still holding that - - var/datum/progressbar/progbar - if (progress) - progbar = new(user, delay, target) - - var/endtime = world.time + delay - var/starttime = world.time - . = 1 - while (world.time < endtime) - stoplag() - if (progress) - progbar.update(world.time - starttime) - - if(drifting && !user.inertia_dir) - drifting = 0 - Uloc = user.loc - - if(QDELETED(user) || user.stat || user.weakened || user.stunned || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke())) - . = 0 - break - - if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc)) - if((Uloc != Tloc || Tloc != user) && !drifting) - . = 0 - break - - if(needhand) - //This might seem like an odd check, but you can still need a hand even when it's empty - //i.e the hand is used to pull some item/tool out of the construction - if(!holdingnull) - if(!holding) - . = 0 - break - if(user.get_active_held_item() != holding) - . = 0 - break - if (progress) - qdel(progbar) - -/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks) - if(!user || !targets) - return 0 - if(!islist(targets)) - targets = list(targets) - var/user_loc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/list/originalloc = list() - for(var/atom/target in targets) - originalloc[target] = target.loc - - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - if(progress) - progbar = new(user, time, targets[1]) - - var/endtime = world.time + time - var/starttime = world.time - . = 1 - mainloop: - while(world.time < endtime) - sleep(1) - if(progress) - progbar.update(world.time - starttime) - if(QDELETED(user) || !targets) - . = 0 - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = 0 - user_loc = user.loc - - for(var/atom/target in targets) - if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) - . = 0 - break mainloop - if(progbar) - qdel(progbar) - -/proc/is_species(A, species_datum) - . = FALSE - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.dna && istype(H.dna.species, species_datum)) - . = TRUE - -/proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE) - var/turf/T = get_turf(target) - if(!T) - CRASH("attempt to spawn atom type: [spawn_type] in nullspace") - - for(var/j in 1 to amount) - var/atom/X = new spawn_type(T) - X.admin_spawned = admin_spawn - -/proc/spawn_and_random_walk(spawn_type, target, amount, walk_chance=100, max_walk=3, always_max_walk=FALSE, admin_spawn=FALSE) - var/turf/T = get_turf(target) - var/step_count = 0 - if(!T) - CRASH("attempt to spawn atom type: [spawn_type] in nullspace") - - for(var/j in 1 to amount) - var/atom/movable/X = new spawn_type(T) - X.admin_spawned = admin_spawn - - if(always_max_walk || prob(walk_chance)) - if(always_max_walk) - step_count = max_walk - else - step_count = rand(1, max_walk) - - for(var/i in 1 to step_count) - step(X, pick(NORTH, SOUTH, EAST, WEST)) - -/proc/deadchat_broadcast(message, mob/follow_target=null, turf/turf_target=null, speaker_key=null, message_type=DEADCHAT_REGULAR) - for(var/mob/M in GLOB.player_list) - var/datum/preferences/prefs - if(M.client && M.client.prefs) - prefs = M.client.prefs - else - prefs = new - - var/adminoverride = 0 - if(M.client && M.client.holder && (prefs.chat_toggles & CHAT_DEAD)) - adminoverride = 1 - if(isnewplayer(M) && !adminoverride) - continue - if(M.stat != DEAD && !adminoverride) - continue - if(speaker_key && speaker_key in prefs.ignoring) - continue - - switch(message_type) - if(DEADCHAT_DEATHRATTLE) - if(prefs.toggles & DISABLE_DEATHRATTLE) - continue - if(DEADCHAT_ARRIVALRATTLE) - if(prefs.toggles & DISABLE_ARRIVALRATTLE) - continue - - if(isobserver(M)) - var/rendered_message = message - - if(follow_target) - var/F - if(turf_target) - F = FOLLOW_OR_TURF_LINK(M, follow_target, turf_target) - else - F = FOLLOW_LINK(M, follow_target) - rendered_message = "[F] [message]" - else if(turf_target) - var/turf_link = TURF_LINK(M, turf_target) - rendered_message = "[turf_link] [message]" - - to_chat(M, rendered_message) - else - to_chat(M, message) +/proc/random_blood_type() + return pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") + +/proc/random_eye_color() + switch(pick(20;"brown",20;"hazel",20;"grey",15;"blue",15;"green",1;"amber",1;"albino")) + if("brown") + return "630" + if("hazel") + return "542" + if("grey") + return pick("666","777","888","999","aaa","bbb","ccc") + if("blue") + return "36c" + if("green") + return "060" + if("amber") + return "fc0" + if("albino") + return pick("c","d","e","f") + pick("0","1","2","3","4","5","6","7","8","9") + pick("0","1","2","3","4","5","6","7","8","9") + else + return "000" + +/proc/random_underwear(gender) + if(!GLOB.underwear_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) + switch(gender) + if(MALE) + return pick(GLOB.underwear_m) + if(FEMALE) + return pick(GLOB.underwear_f) + else + return pick(GLOB.underwear_list) + +/proc/random_undershirt(gender) + if(!GLOB.undershirt_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) + switch(gender) + if(MALE) + return pick(GLOB.undershirt_m) + if(FEMALE) + return pick(GLOB.undershirt_f) + else + return pick(GLOB.undershirt_list) + +/proc/random_socks() + if(!GLOB.socks_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list) + return pick(GLOB.socks_list) + +/proc/random_features() + if(!GLOB.tails_list_human.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) + if(!GLOB.tails_list_lizard.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard) + if(!GLOB.snouts_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list) + if(!GLOB.horns_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, GLOB.horns_list) + if(!GLOB.ears_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.horns_list) + if(!GLOB.frills_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list) + if(!GLOB.spines_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list) + if(!GLOB.legs_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list) + if(!GLOB.body_markings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list) + if(!GLOB.wings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list) + + if(!GLOB.cock_shapes_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) + if(!GLOB.vagina_shapes_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) + if(!GLOB.breasts_shapes_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) +// if(ishuman(src)) + // var/mob/living/carbon/human/H = src + /* if(H.gender == MALE) Fuck if I know how to fix this. + penis = 1 + balls = 1 + vagina = 0 + womb = 0 + breasts = 0 + if(H.gender == FEMALE) + penis = 0 + balls = 0 + vagina = 1 + womb = 1 + breasts = 1 */ + + return(list( + "mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "mcolor2" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "mcolor3" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "tail_lizard" = pick(GLOB.tails_list_lizard), + "tail_human" = "None", + "wings" = "None", + "snout" = pick(GLOB.snouts_list), + "horns" = pick(GLOB.horns_list), + "ears" = "None", + "frills" = pick(GLOB.frills_list), + "spines" = pick(GLOB.spines_list), + "body_markings" = pick(GLOB.body_markings_list), + "legs" = "Normal Legs", + "taur" = "None", + "mam_body_markings" = "None", + "mam_ears" = "None", + "mam_tail" = "None", + "mam_tail_animated" = "None", + "xenodorsal" = "None", + "xenohead" = "None", + "xenotail" = "None", + "exhibitionist" = FALSE, + "has_cock" = FALSE, + "cock_shape" = pick(GLOB.cock_shapes_list), + "cock_length" = 6, + "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF, + "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "has_sheath" = FALSE, + "sheath_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "has_balls" = FALSE, + "balls_internal" = FALSE, + "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "balls_amount" = 2, + "balls_sack_size" = BALLS_SACK_SIZE_DEF, + "balls_size" = BALLS_SIZE_DEF, + "balls_cum_rate" = CUM_RATE, + "balls_cum_mult" = CUM_RATE_MULT, + "balls_efficiency" = CUM_EFFICIENCY, + "balls_fluid" = "semen", + "has_ovi" = FALSE, + "ovi_shape" = "knotted", + "ovi_length" = 6, + "ovi_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "has_eggsack" = FALSE, + "eggsack_internal" = TRUE, + "eggsack_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "eggsack_size" = BALLS_SACK_SIZE_DEF, + "eggsack_egg_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "eggsack_egg_size" = EGG_GIRTH_DEF, + "has_breasts" = FALSE, + "breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "breasts_size" = pick(GLOB.breasts_size_list), + "breasts_shape" = pick(GLOB.breasts_shapes_list), + "breasts_fluid" = "milk", + "has_vag" = FALSE, + "vag_shape" = pick(GLOB.vagina_shapes_list), + "vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "vag_clits" = 1, + "vag_clit_diam" = 0.25, + "vag_clit_len" = 0.25, + "has_womb" = FALSE, + "womb_cum_rate" = CUM_RATE, + "womb_cum_mult" = CUM_RATE_MULT, + "womb_efficiency" = CUM_EFFICIENCY, + "womb_fluid" = "femcum")) + +/proc/random_hair_style(gender) + switch(gender) + if(MALE) + return pick(GLOB.hair_styles_male_list) + if(FEMALE) + return pick(GLOB.hair_styles_female_list) + else + return pick(GLOB.hair_styles_list) + +/proc/random_facial_hair_style(gender) + switch(gender) + if(MALE) + return pick(GLOB.facial_hair_styles_male_list) + if(FEMALE) + return pick(GLOB.facial_hair_styles_female_list) + else + return pick(GLOB.facial_hair_styles_list) + +/proc/random_unique_name(gender, attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + if(gender==FEMALE) + . = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) + else + . = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + +/proc/random_unique_lizard_name(gender, attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + . = capitalize(lizard_name(gender)) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + +/proc/random_unique_plasmaman_name(attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + . = capitalize(plasmaman_name()) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + +/proc/random_skin_tone() + return pick(GLOB.skin_tones) + +GLOBAL_LIST_INIT(skin_tones, list( + "albino", + "caucasian1", + "caucasian2", + "caucasian3", + "latino", + "mediterranean", + "asian1", + "asian2", + "arab", + "indian", + "african1", + "african2" + )) + +GLOBAL_LIST_EMPTY(species_list) +GLOBAL_LIST_EMPTY(roundstart_species) + +/proc/age2agedescription(age) + switch(age) + if(0 to 1) + return "infant" + if(1 to 3) + return "toddler" + if(3 to 13) + return "child" + if(13 to 19) + return "teenager" + if(19 to 30) + return "young adult" + if(30 to 45) + return "adult" + if(45 to 60) + return "middle-aged" + if(60 to 70) + return "aging" + if(70 to INFINITY) + return "elderly" + else + return "unknown" + +/* +Proc for attack log creation, because really why not +1 argument is the actor +2 argument is the target of action +3 is the description of action(like punched, throwed, or any other verb) +4 is the tool with which the action was made(usually item) 4 and 5 are very similar(5 have "by " before it, that it) and are separated just to keep things in a bit more in order +5 is additional information, anything that needs to be added +*/ + +/proc/add_logs(mob/user, mob/target, what_done, object=null, addition=null) + var/turf/attack_location = get_turf(target) + + var/is_mob_user = user && GLOB.typecache_mob[user.type] + var/is_mob_target = target && GLOB.typecache_mob[target.type] + + var/mob/living/living_target + + if(target && isliving(target)) + living_target = target + + var/hp =" " + if(living_target) + hp = "(NEWHP: [living_target.health])" + + var/starget = "NON-EXISTENT SUBJECT" + if(target) + if(is_mob_target && target.ckey) + starget = "[target.name]([target.ckey])" + else + starget = "[target.name]" + + var/ssource = "NON-EXISTENT USER" //How!? + if(user) + if(is_mob_user && user.ckey) + ssource = "[user.name]([user.ckey])" + else + ssource = "[user.name]" + + var/sobject = "" + if(object) + sobject = "[object]" + + var/sattackloc = "" + if(attack_location) + sattackloc = "([attack_location.x],[attack_location.y],[attack_location.z])" + + if(is_mob_user) + var/message = "has [what_done] [starget] with [sobject][addition] [hp] [sattackloc]" + user.log_message(message, INDIVIDUAL_ATTACK_LOG) + + if(is_mob_target) + var/message = "has been [what_done] by [ssource] with [sobject][addition] [hp] [sattackloc]" + target.log_message(message, INDIVIDUAL_ATTACK_LOG) + + log_attack("[ssource] [what_done] [starget] with [sobject][addition] [hp] [sattackloc]") + + +/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null) + if(!user || !target) + return 0 + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/target_loc = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if (progress) + progbar = new(user, time, target) + + var/endtime = world.time+time + var/starttime = world.time + . = 1 + while (world.time < endtime) + stoplag() + if (progress) + progbar.update(world.time - starttime) + if(QDELETED(user) || QDELETED(target)) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) + . = 0 + break + if (progress) + qdel(progbar) + + +//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action +/mob/proc/break_do_after_checks(list/checked_health, check_clicks) + if(check_clicks && next_move > world.time) + return FALSE + return TRUE + +//pass a list in the format list("health" = mob's health var) to check health during this +/mob/living/break_do_after_checks(list/checked_health, check_clicks) + if(islist(checked_health)) + if(health < checked_health["health"]) + return FALSE + checked_health["health"] = health + return ..() + +/proc/do_after(mob/user, delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null) + if(!user) + return 0 + var/atom/Tloc = null + if(target) + Tloc = target.loc + + var/atom/Uloc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/holding = user.get_active_held_item() + + var/holdingnull = 1 //User's hand started out empty, check for an empty hand + if(holding) + holdingnull = 0 //Users hand started holding something, check to see if it's still holding that + + var/datum/progressbar/progbar + if (progress) + progbar = new(user, delay, target) + + var/endtime = world.time + delay + var/starttime = world.time + . = 1 + while (world.time < endtime) + stoplag() + if (progress) + progbar.update(world.time - starttime) + + if(drifting && !user.inertia_dir) + drifting = 0 + Uloc = user.loc + + if(QDELETED(user) || user.stat || user.IsKnockdown() || user.IsStun() || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke())) + . = 0 + break + + if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc)) + if((Uloc != Tloc || Tloc != user) && !drifting) + . = 0 + break + + if(needhand) + //This might seem like an odd check, but you can still need a hand even when it's empty + //i.e the hand is used to pull some item/tool out of the construction + if(!holdingnull) + if(!holding) + . = 0 + break + if(user.get_active_held_item() != holding) + . = 0 + break + if (progress) + qdel(progbar) + +/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks) + if(!user || !targets) + return 0 + if(!islist(targets)) + targets = list(targets) + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/list/originalloc = list() + for(var/atom/target in targets) + originalloc[target] = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if(progress) + progbar = new(user, time, targets[1]) + + var/endtime = world.time + time + var/starttime = world.time + . = 1 + mainloop: + while(world.time < endtime) + sleep(1) + if(progress) + progbar.update(world.time - starttime) + if(QDELETED(user) || !targets) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + for(var/atom/target in targets) + if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) + . = 0 + break mainloop + if(progbar) + qdel(progbar) + +/proc/is_species(A, species_datum) + . = FALSE + if(ishuman(A)) + var/mob/living/carbon/human/H = A + if(H.dna && istype(H.dna.species, species_datum)) + . = TRUE + +/proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE) + var/turf/T = get_turf(target) + if(!T) + CRASH("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/X = new spawn_type(T) + X.admin_spawned = admin_spawn + +/proc/spawn_and_random_walk(spawn_type, target, amount, walk_chance=100, max_walk=3, always_max_walk=FALSE, admin_spawn=FALSE) + var/turf/T = get_turf(target) + var/step_count = 0 + if(!T) + CRASH("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/movable/X = new spawn_type(T) + X.admin_spawned = admin_spawn + + if(always_max_walk || prob(walk_chance)) + if(always_max_walk) + step_count = max_walk + else + step_count = rand(1, max_walk) + + for(var/i in 1 to step_count) + step(X, pick(NORTH, SOUTH, EAST, WEST)) + +/proc/deadchat_broadcast(message, mob/follow_target=null, turf/turf_target=null, speaker_key=null, message_type=DEADCHAT_REGULAR) + for(var/mob/M in GLOB.player_list) + var/datum/preferences/prefs + if(M.client && M.client.prefs) + prefs = M.client.prefs + else + prefs = new + + var/adminoverride = 0 + if(M.client && M.client.holder && (prefs.chat_toggles & CHAT_DEAD)) + adminoverride = 1 + if(isnewplayer(M) && !adminoverride) + continue + if(M.stat != DEAD && !adminoverride) + continue + if(speaker_key && speaker_key in prefs.ignoring) + continue + + switch(message_type) + if(DEADCHAT_DEATHRATTLE) + if(prefs.toggles & DISABLE_DEATHRATTLE) + continue + if(DEADCHAT_ARRIVALRATTLE) + if(prefs.toggles & DISABLE_ARRIVALRATTLE) + continue + + if(isobserver(M)) + var/rendered_message = message + + if(follow_target) + var/F + if(turf_target) + F = FOLLOW_OR_TURF_LINK(M, follow_target, turf_target) + else + F = FOLLOW_LINK(M, follow_target) + rendered_message = "[F] [message]" + else if(turf_target) + var/turf_link = TURF_LINK(M, turf_target) + rendered_message = "[turf_link] [message]" + + to_chat(M, rendered_message) + else + to_chat(M, message) diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index c62a59ed77..70bb8b2db6 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -1,4 +1,4 @@ -/proc/priority_announce(text, title = "", sound = 'sound/AI/attention.ogg', type) +/proc/priority_announce(text, title = "", sound = 'sound/ai/attention.ogg', type) if(!text) return @@ -35,7 +35,7 @@ title = "Classified [command_name()] Update" if(announce) - priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') for(var/obj/machinery/computer/communications/C in GLOB.machines) if(!(C.stat & (BROKEN|NOPOWER)) && C.z == ZLEVEL_STATION) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index c6148bb512..cd5d0c6af5 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -1,612 +1,612 @@ -/* - * Holds procs designed to help with filtering text - * Contains groups: - * SQL sanitization/formating - * Text sanitization - * Text searches - * Text modification - * Misc - */ - - -/* - * SQL sanitization - */ - -// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. -/proc/sanitizeSQL(t) +/* + * Holds procs designed to help with filtering text + * Contains groups: + * SQL sanitization/formating + * Text sanitization + * Text searches + * Text modification + * Misc + */ + + +/* + * SQL sanitization + */ + +// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. +/proc/sanitizeSQL(t) var/sqltext = SSdbcore.Quote("[t]"); - return copytext(sqltext, 2, lentext(sqltext));//Quote() adds quotes around input, we already do that - -/proc/format_table_name(table as text) - return global.sqlfdbktableprefix + table - -/* - * Text sanitization - */ - -//Simply removes < and > and limits the length of the message -/proc/strip_html_simple(t,limit=MAX_MESSAGE_LEN) - var/list/strip_chars = list("<",">") - t = copytext(t,1,limit) - for(var/char in strip_chars) - var/index = findtext(t, char) - while(index) - t = copytext(t, 1, index) + copytext(t, index+1) - index = findtext(t, char) - return t - -//Removes a few problematic characters -/proc/sanitize_simple(t,list/repl_chars = list("\n"="#","\t"="#")) - for(var/char in repl_chars) - var/index = findtext(t, char) - while(index) - t = copytext(t, 1, index) + repl_chars[char] + copytext(t, index+1) - index = findtext(t, char, index+1) - return t - -//Runs byond's sanitization proc along-side sanitize_simple -/proc/sanitize(t,list/repl_chars = null) - return html_encode(sanitize_simple(t,repl_chars)) - -//Runs sanitize and strip_html_simple -//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' after sanitize() calls byond's html_encode() -/proc/strip_html(t,limit=MAX_MESSAGE_LEN) - return copytext((sanitize(strip_html_simple(t))),1,limit) - -//Runs byond's sanitization proc along-side strip_html_simple -//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' that html_encode() would cause -/proc/adminscrub(t,limit=MAX_MESSAGE_LEN) - return copytext((html_encode(strip_html_simple(t))),1,limit) - - -//Returns null if there is any bad text in the string -/proc/reject_bad_text(text, max_length=512) - if(length(text) > max_length) - return //message too long - var/non_whitespace = 0 - for(var/i=1, i<=length(text), i++) - switch(text2ascii(text,i)) - if(62,60,92,47) - return //rejects the text if it contains these bad characters: <, >, \ or / - if(127 to 255) - return //rejects weird letters like � - if(0 to 31) - return //more weird stuff - if(32) - continue //whitespace - else - non_whitespace = 1 - if(non_whitespace) - return text //only accepts the text if it has some non-spaces - -// Used to get a properly sanitized input, of max_length -// no_trim is self explanatory but it prevents the input from being trimed if you intend to parse newlines or whitespace. -/proc/stripped_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) - var/name = input(user, message, title, default) as text|null - if(no_trim) - return copytext(html_encode(name), 1, max_length) - else - return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) - -// Used to get a properly sanitized multiline input, of max_length -/proc/stripped_multiline_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) - var/name = input(user, message, title, default) as message|null - if(no_trim) - return copytext(html_encode(name), 1, max_length) - else - return trim(html_encode(name), max_length) - -//Filters out undesirable characters from names -/proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN) - if(!t_in || length(t_in) > max_length) - return //Rejects the input if it is null or if it is longer then the max length allowed - - var/number_of_alphanumeric = 0 - var/last_char_group = 0 - var/t_out = "" - - for(var/i=1, i<=length(t_in), i++) - var/ascii_char = text2ascii(t_in,i) - switch(ascii_char) - // A .. Z - if(65 to 90) //Uppercase Letters - t_out += ascii2text(ascii_char) - number_of_alphanumeric++ - last_char_group = 4 - - // a .. z - if(97 to 122) //Lowercase Letters - if(last_char_group<2) - t_out += ascii2text(ascii_char-32) //Force uppercase first character - else - t_out += ascii2text(ascii_char) - number_of_alphanumeric++ - last_char_group = 4 - - // 0 .. 9 - if(48 to 57) //Numbers - if(!last_char_group) - continue //suppress at start of string - if(!allow_numbers) - continue - t_out += ascii2text(ascii_char) - number_of_alphanumeric++ - last_char_group = 3 - - // ' - . - if(39,45,46) //Common name punctuation - if(!last_char_group) - continue - t_out += ascii2text(ascii_char) - last_char_group = 2 - - // ~ | @ : # $ % & * + - if(126,124,64,58,35,36,37,38,42,43) //Other symbols that we'll allow (mainly for AI) - if(!last_char_group) - continue //suppress at start of string - if(!allow_numbers) - continue - t_out += ascii2text(ascii_char) - last_char_group = 2 - - //Space - if(32) - if(last_char_group <= 1) - continue //suppress double-spaces and spaces at start of string - t_out += ascii2text(ascii_char) - last_char_group = 1 - else - return - - if(number_of_alphanumeric < 2) - return //protects against tiny names like "A" and also names like "' ' ' ' ' ' ' '" - - if(last_char_group == 1) - t_out = copytext(t_out,1,length(t_out)) //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) - - return t_out - -//html_encode helper proc that returns the smallest non null of two numbers -//or 0 if they're both null (needed because of findtext returning 0 when a value is not present) -/proc/non_zero_min(a, b) - if(!a) - return b - if(!b) - return a - return (a < b ? a : b) - -/* - * Text searches - */ - -//Checks the beginning of a string for a specified sub-string -//Returns the position of the substring or 0 if it was not found -/proc/dd_hasprefix(text, prefix) - var/start = 1 - var/end = length(prefix) + 1 - return findtext(text, prefix, start, end) - -//Checks the beginning of a string for a specified sub-string. This proc is case sensitive -//Returns the position of the substring or 0 if it was not found -/proc/dd_hasprefix_case(text, prefix) - var/start = 1 - var/end = length(prefix) + 1 - return findtextEx(text, prefix, start, end) - -//Checks the end of a string for a specified substring. -//Returns the position of the substring or 0 if it was not found -/proc/dd_hassuffix(text, suffix) - var/start = length(text) - length(suffix) - if(start) - return findtext(text, suffix, start, null) - return - -//Checks the end of a string for a specified substring. This proc is case sensitive -//Returns the position of the substring or 0 if it was not found -/proc/dd_hassuffix_case(text, suffix) - var/start = length(text) - length(suffix) - if(start) - return findtextEx(text, suffix, start, null) - -//Checks if any of a given list of needles is in the haystack -/proc/text_in_list(haystack, list/needle_list, start=1, end=0) - for(var/needle in needle_list) - if(findtext(haystack, needle, start, end)) - return 1 - return 0 - -//Like above, but case sensitive -/proc/text_in_list_case(haystack, list/needle_list, start=1, end=0) - for(var/needle in needle_list) - if(findtextEx(haystack, needle, start, end)) - return 1 - return 0 - -//Adds 'u' number of zeros ahead of the text 't' -/proc/add_zero(t, u) - while (length(t) < u) - t = "0[t]" - return t - -//Adds 'u' number of spaces ahead of the text 't' -/proc/add_lspace(t, u) - while(length(t) < u) - t = " [t]" - return t - -//Adds 'u' number of spaces behind the text 't' -/proc/add_tspace(t, u) - while(length(t) < u) - t = "[t] " - return t - -//Returns a string with reserved characters and spaces before the first letter removed -/proc/trim_left(text) - for (var/i = 1 to length(text)) - if (text2ascii(text, i) > 32) - return copytext(text, i) - return "" - -//Returns a string with reserved characters and spaces after the last letter removed -/proc/trim_right(text) - for (var/i = length(text), i > 0, i--) - if (text2ascii(text, i) > 32) - return copytext(text, 1, i + 1) - - return "" - -//Returns a string with reserved characters and spaces before the first word and after the last word removed. -/proc/trim(text, max_length) - if(max_length) - text = copytext(text, 1, max_length) - return trim_left(trim_right(text)) - -//Returns a string with the first element of the string capitalized. -/proc/capitalize(t as text) - return uppertext(copytext(t, 1, 2)) + copytext(t, 2) - -//Centers text by adding spaces to either side of the string. -/proc/dd_centertext(message, length) - var/new_message = message - var/size = length(message) - var/delta = length - size - if(size == length) - return new_message - if(size > length) - return copytext(new_message, 1, length + 1) - if(delta == 1) - return new_message + " " - if(delta % 2) - new_message = " " + new_message - delta-- - var/spaces = add_lspace("",delta/2-1) - return spaces + new_message + spaces - -//Limits the length of the text. Note: MAX_MESSAGE_LEN and MAX_NAME_LEN are widely used for this purpose -/proc/dd_limittext(message, length) - var/size = length(message) - if(size <= length) - return message - return copytext(message, 1, length + 1) - - -/proc/stringmerge(text,compare,replace = "*") -//This proc fills in all spaces with the "replace" var (* by default) with whatever -//is in the other string at the same spot (assuming it is not a replace char). -//This is used for fingerprints - var/newtext = text - if(lentext(text) != lentext(compare)) - return 0 - for(var/i = 1, i < lentext(text), i++) - var/a = copytext(text,i,i+1) - var/b = copytext(compare,i,i+1) -//if it isn't both the same letter, or if they are both the replacement character -//(no way to know what it was supposed to be) - if(a != b) - if(a == replace) //if A is the replacement char - newtext = copytext(newtext,1,i) + b + copytext(newtext, i+1) - else if(b == replace) //if B is the replacement char - newtext = copytext(newtext,1,i) + a + copytext(newtext, i+1) - else //The lists disagree, Uh-oh! - return 0 - return newtext - -/proc/stringpercent(text,character = "*") -//This proc returns the number of chars of the string that is the character -//This is used for detective work to determine fingerprint completion. - if(!text || !character) - return 0 - var/count = 0 - for(var/i = 1, i <= lentext(text), i++) - var/a = copytext(text,i,i+1) - if(a == character) - count++ - return count - -/proc/reverse_text(text = "") - var/new_text = "" - for(var/i = length(text); i > 0; i--) - new_text += copytext(text, i, i+1) - return new_text - -GLOBAL_LIST_INIT(zero_character_only, list("0")) -GLOBAL_LIST_INIT(hex_characters, list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")) -GLOBAL_LIST_INIT(alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")) -GLOBAL_LIST_INIT(binary, list("0","1")) -/proc/random_string(length, list/characters) - . = "" - for(var/i=1, i<=length, i++) - . += pick(characters) - -/proc/repeat_string(times, string="") - . = "" - for(var/i=1, i<=times, i++) - . += string - -/proc/random_short_color() - return random_string(3, GLOB.hex_characters) - -/proc/random_color() - return random_string(6, GLOB.hex_characters) - -/proc/add_zero2(t, u) - var/temp1 - while (length(t) < u) - t = "0[t]" - temp1 = t - if (length(t) > u) - temp1 = copytext(t,2,u+1) - return temp1 - -//merges non-null characters (3rd argument) from "from" into "into". Returns result -//e.g. into = "Hello World" -// from = "Seeya______" -// returns"Seeya World" -//The returned text is always the same length as into -//This was coded to handle DNA gene-splicing. -/proc/merge_text(into, from, null_char="_") - . = "" - if(!istext(into)) - into = "" - if(!istext(from)) - from = "" - var/null_ascii = istext(null_char) ? text2ascii(null_char,1) : null_char - - var/previous = 0 - var/start = 1 - var/end = length(into) + 1 - - for(var/i=1, i") - t = replacetext(t, "\[/center\]", "") - t = replacetext(t, "\[br\]", "
") - t = replacetext(t, "\[b\]", "") - t = replacetext(t, "\[/b\]", "") - t = replacetext(t, "\[i\]", "") - t = replacetext(t, "\[/i\]", "") - t = replacetext(t, "\[u\]", "") - t = replacetext(t, "\[/u\]", "") - t = replacetext(t, "\[large\]", "") - t = replacetext(t, "\[/large\]", "") - if(user) - t = replacetext(t, "\[sign\]", "[user.real_name]") - else - t = replacetext(t, "\[sign\]", "") - t = replacetext(t, "\[field\]", "") - - t = replacetext(t, "\[*\]", "
  • ") - t = replacetext(t, "\[hr\]", "
    ") - t = replacetext(t, "\[small\]", "") - t = replacetext(t, "\[/small\]", "") - t = replacetext(t, "\[list\]", "
      ") - t = replacetext(t, "\[/list\]", "
    ") - - return t - -#define string2charlist(string) (splittext(string, regex("(.)")) - splittext(string, "")) - -/proc/rot13(text = "") - var/list/textlist = string2charlist(text) - var/list/result = list() - for(var/c in textlist) - var/ca = text2ascii(c) - if(ca >= text2ascii("a") && ca <= text2ascii("m")) - ca += 13 - else if(ca >= text2ascii("n") && ca <= text2ascii("z")) - ca -= 13 - else if(ca >= text2ascii("A") && ca <= text2ascii("M")) - ca += 13 - else if(ca >= text2ascii("N") && ca <= text2ascii("Z")) - ca -= 13 - result += ascii2text(ca) - return jointext(result, "") - -//Takes a list of values, sanitizes it down for readability and character count, -//then exports it as a json file at data/npc_saves/[filename].json. -//As far as SS13 is concerned this is write only data. You can't change something -//in the json file and have it be reflected in the in game item/mob it came from. -//(That's what things like savefiles are for) Note that this list is not shuffled. -/proc/twitterize(list/proposed, filename, cullshort = 1, storemax = 1000) - if(!islist(proposed) || !filename || !config.log_twitter) - return - - //Regular expressions are, as usual, absolute magic - var/regex/is_website = new("http|www.|\[a-z0-9_-]+.(com|org|net|mil|edu)+", "i") - var/regex/is_email = new("\[a-z0-9_-]+@\[a-z0-9_-]+.\[a-z0-9_-]+", "i") - var/regex/alphanumeric = new("\[a-z0-9]+", "i") - var/regex/punctuation = new("\[.!?]+", "i") - var/regex/all_invalid_symbols = new("\[^ -~]+") - - var/list/accepted = list() - for(var/string in proposed) - if(findtext(string,is_website) || findtext(string,is_email) || findtext(string,all_invalid_symbols) || !findtext(string,alphanumeric)) - continue - var/buffer = "" - var/early_culling = TRUE - for(var/pos = 1, pos <= lentext(string), pos++) - var/let = copytext(string, pos, (pos + 1) % lentext(string)) - if(early_culling && !findtext(let,alphanumeric)) - continue - early_culling = FALSE - buffer += let - if(!findtext(buffer,alphanumeric)) - continue - var/punctbuffer = "" - var/cutoff = lentext(buffer) - for(var/pos = lentext(buffer), pos >= 0, pos--) - var/let = copytext(buffer, pos, (pos + 1) % lentext(buffer)) - if(findtext(let,alphanumeric)) - break - if(findtext(let,punctuation)) - punctbuffer = let + punctbuffer //Note this isn't the same thing as using += - cutoff = pos - if(punctbuffer) //We clip down excessive punctuation to get the letter count lower and reduce repeats. It's not perfect but it helps. - var/exclaim = FALSE - var/question = FALSE - var/periods = 0 - for(var/pos = lentext(punctbuffer), pos >= 0, pos--) - var/punct = copytext(punctbuffer, pos, (pos + 1) % lentext(punctbuffer)) - if(!exclaim && findtext(punct,"!")) - exclaim = TRUE - if(!question && findtext(punct,"?")) - question = TRUE - if(!exclaim && !question && findtext(punct,".")) - periods += 1 - if(exclaim) - if(question) - punctbuffer = "?!" - else - punctbuffer = "!" - else if(question) - punctbuffer = "?" - else if(periods) - if(periods > 1) - punctbuffer = "..." - else - punctbuffer = "" //Grammer nazis be damned - buffer = copytext(buffer, 1, cutoff) + punctbuffer - if(!findtext(buffer,alphanumeric)) - continue - if(!buffer || lentext(buffer) > 140 || lentext(buffer) <= cullshort || buffer in accepted) - continue - - accepted += buffer - - var/log = file("data/npc_saves/[filename].json") //If this line ever shows up as changed in a PR be very careful you aren't being memed on - var/list/oldjson = list() - var/list/oldentries = list() - if(fexists(log)) - oldjson = json_decode(file2text(log)) - oldentries = oldjson["data"] - if(!isemptylist(oldentries)) - for(var/string in accepted) - for(var/old in oldentries) - if(string == old) - oldentries.Remove(old) //Line's position in line is "refreshed" until it falls off the in game radar - break - - var/list/finalized = list() - finalized = accepted.Copy() + oldentries.Copy() //we keep old and unreferenced phrases near the bottom for culling - listclearnulls(finalized) - if(!isemptylist(finalized) && length(finalized) > storemax) - finalized.Cut(storemax + 1) - fdel(log) - - var/list/tosend = list() - tosend["data"] = finalized - log << json_encode(tosend) - -//Used for applying byonds text macros to strings that are loaded at runtime -/proc/apply_text_macros(string) - var/next_backslash = findtext(string, "\\") - if(!next_backslash) - return string - - var/leng = length(string) - - var/next_space = findtext(string, " ", next_backslash + 1) - if(!next_space) - next_space = leng - next_backslash - - if(!next_space) //trailing bs - return string - - var/base = next_backslash == 1 ? "" : copytext(string, 1, next_backslash) - var/macro = lowertext(copytext(string, next_backslash + 1, next_space)) - var/rest = next_backslash > leng ? "" : copytext(string, next_space + 1) - - //See http://www.byond.com/docs/ref/info.html#/DM/text/macros - switch(macro) - //prefixes/agnostic - if("the") - rest = text("\the []", rest) - if("a") - rest = text("\a []", rest) - if("an") - rest = text("\an []", rest) - if("proper") - rest = text("\proper []", rest) - if("improper") - rest = text("\improper []", rest) - if("roman") - rest = text("\roman []", rest) - //postfixes - if("th") - base = text("[]\th", rest) - if("s") - base = text("[]\s", rest) - if("he") - base = text("[]\he", rest) - if("she") - base = text("[]\she", rest) - if("his") - base = text("[]\his", rest) - if("himself") - base = text("[]\himself", rest) - if("herself") - base = text("[]\herself", rest) - if("hers") - base = text("[]\hers", rest) - - . = base - if(rest) - . += .(rest) + return copytext(sqltext, 2, lentext(sqltext));//Quote() adds quotes around input, we already do that + +/proc/format_table_name(table as text) + return global.sqlfdbktableprefix + table + +/* + * Text sanitization + */ + +//Simply removes < and > and limits the length of the message +/proc/strip_html_simple(t,limit=MAX_MESSAGE_LEN) + var/list/strip_chars = list("<",">") + t = copytext(t,1,limit) + for(var/char in strip_chars) + var/index = findtext(t, char) + while(index) + t = copytext(t, 1, index) + copytext(t, index+1) + index = findtext(t, char) + return t + +//Removes a few problematic characters +/proc/sanitize_simple(t,list/repl_chars = list("\n"="#","\t"="#")) + for(var/char in repl_chars) + var/index = findtext(t, char) + while(index) + t = copytext(t, 1, index) + repl_chars[char] + copytext(t, index+1) + index = findtext(t, char, index+1) + return t + +//Runs byond's sanitization proc along-side sanitize_simple +/proc/sanitize(t,list/repl_chars = null) + return html_encode(sanitize_simple(t,repl_chars)) + +//Runs sanitize and strip_html_simple +//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' after sanitize() calls byond's html_encode() +/proc/strip_html(t,limit=MAX_MESSAGE_LEN) + return copytext((sanitize(strip_html_simple(t))),1,limit) + +//Runs byond's sanitization proc along-side strip_html_simple +//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' that html_encode() would cause +/proc/adminscrub(t,limit=MAX_MESSAGE_LEN) + return copytext((html_encode(strip_html_simple(t))),1,limit) + + +//Returns null if there is any bad text in the string +/proc/reject_bad_text(text, max_length=512) + if(length(text) > max_length) + return //message too long + var/non_whitespace = 0 + for(var/i=1, i<=length(text), i++) + switch(text2ascii(text,i)) + if(62,60,92,47) + return //rejects the text if it contains these bad characters: <, >, \ or / + if(127 to 255) + return //rejects weird letters like � + if(0 to 31) + return //more weird stuff + if(32) + continue //whitespace + else + non_whitespace = 1 + if(non_whitespace) + return text //only accepts the text if it has some non-spaces + +// Used to get a properly sanitized input, of max_length +// no_trim is self explanatory but it prevents the input from being trimed if you intend to parse newlines or whitespace. +/proc/stripped_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) + var/name = input(user, message, title, default) as text|null + if(no_trim) + return copytext(html_encode(name), 1, max_length) + else + return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) + +// Used to get a properly sanitized multiline input, of max_length +/proc/stripped_multiline_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) + var/name = input(user, message, title, default) as message|null + if(no_trim) + return copytext(html_encode(name), 1, max_length) + else + return trim(html_encode(name), max_length) + +//Filters out undesirable characters from names +/proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN) + if(!t_in || length(t_in) > max_length) + return //Rejects the input if it is null or if it is longer then the max length allowed + + var/number_of_alphanumeric = 0 + var/last_char_group = 0 + var/t_out = "" + + for(var/i=1, i<=length(t_in), i++) + var/ascii_char = text2ascii(t_in,i) + switch(ascii_char) + // A .. Z + if(65 to 90) //Uppercase Letters + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 4 + + // a .. z + if(97 to 122) //Lowercase Letters + if(last_char_group<2) + t_out += ascii2text(ascii_char-32) //Force uppercase first character + else + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 4 + + // 0 .. 9 + if(48 to 57) //Numbers + if(!last_char_group) + continue //suppress at start of string + if(!allow_numbers) + continue + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 3 + + // ' - . + if(39,45,46) //Common name punctuation + if(!last_char_group) + continue + t_out += ascii2text(ascii_char) + last_char_group = 2 + + // ~ | @ : # $ % & * + + if(126,124,64,58,35,36,37,38,42,43) //Other symbols that we'll allow (mainly for AI) + if(!last_char_group) + continue //suppress at start of string + if(!allow_numbers) + continue + t_out += ascii2text(ascii_char) + last_char_group = 2 + + //Space + if(32) + if(last_char_group <= 1) + continue //suppress double-spaces and spaces at start of string + t_out += ascii2text(ascii_char) + last_char_group = 1 + else + return + + if(number_of_alphanumeric < 2) + return //protects against tiny names like "A" and also names like "' ' ' ' ' ' ' '" + + if(last_char_group == 1) + t_out = copytext(t_out,1,length(t_out)) //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) + + return t_out + +//html_encode helper proc that returns the smallest non null of two numbers +//or 0 if they're both null (needed because of findtext returning 0 when a value is not present) +/proc/non_zero_min(a, b) + if(!a) + return b + if(!b) + return a + return (a < b ? a : b) + +/* + * Text searches + */ + +//Checks the beginning of a string for a specified sub-string +//Returns the position of the substring or 0 if it was not found +/proc/dd_hasprefix(text, prefix) + var/start = 1 + var/end = length(prefix) + 1 + return findtext(text, prefix, start, end) + +//Checks the beginning of a string for a specified sub-string. This proc is case sensitive +//Returns the position of the substring or 0 if it was not found +/proc/dd_hasprefix_case(text, prefix) + var/start = 1 + var/end = length(prefix) + 1 + return findtextEx(text, prefix, start, end) + +//Checks the end of a string for a specified substring. +//Returns the position of the substring or 0 if it was not found +/proc/dd_hassuffix(text, suffix) + var/start = length(text) - length(suffix) + if(start) + return findtext(text, suffix, start, null) + return + +//Checks the end of a string for a specified substring. This proc is case sensitive +//Returns the position of the substring or 0 if it was not found +/proc/dd_hassuffix_case(text, suffix) + var/start = length(text) - length(suffix) + if(start) + return findtextEx(text, suffix, start, null) + +//Checks if any of a given list of needles is in the haystack +/proc/text_in_list(haystack, list/needle_list, start=1, end=0) + for(var/needle in needle_list) + if(findtext(haystack, needle, start, end)) + return 1 + return 0 + +//Like above, but case sensitive +/proc/text_in_list_case(haystack, list/needle_list, start=1, end=0) + for(var/needle in needle_list) + if(findtextEx(haystack, needle, start, end)) + return 1 + return 0 + +//Adds 'u' number of zeros ahead of the text 't' +/proc/add_zero(t, u) + while (length(t) < u) + t = "0[t]" + return t + +//Adds 'u' number of spaces ahead of the text 't' +/proc/add_lspace(t, u) + while(length(t) < u) + t = " [t]" + return t + +//Adds 'u' number of spaces behind the text 't' +/proc/add_tspace(t, u) + while(length(t) < u) + t = "[t] " + return t + +//Returns a string with reserved characters and spaces before the first letter removed +/proc/trim_left(text) + for (var/i = 1 to length(text)) + if (text2ascii(text, i) > 32) + return copytext(text, i) + return "" + +//Returns a string with reserved characters and spaces after the last letter removed +/proc/trim_right(text) + for (var/i = length(text), i > 0, i--) + if (text2ascii(text, i) > 32) + return copytext(text, 1, i + 1) + + return "" + +//Returns a string with reserved characters and spaces before the first word and after the last word removed. +/proc/trim(text, max_length) + if(max_length) + text = copytext(text, 1, max_length) + return trim_left(trim_right(text)) + +//Returns a string with the first element of the string capitalized. +/proc/capitalize(t as text) + return uppertext(copytext(t, 1, 2)) + copytext(t, 2) + +//Centers text by adding spaces to either side of the string. +/proc/dd_centertext(message, length) + var/new_message = message + var/size = length(message) + var/delta = length - size + if(size == length) + return new_message + if(size > length) + return copytext(new_message, 1, length + 1) + if(delta == 1) + return new_message + " " + if(delta % 2) + new_message = " " + new_message + delta-- + var/spaces = add_lspace("",delta/2-1) + return spaces + new_message + spaces + +//Limits the length of the text. Note: MAX_MESSAGE_LEN and MAX_NAME_LEN are widely used for this purpose +/proc/dd_limittext(message, length) + var/size = length(message) + if(size <= length) + return message + return copytext(message, 1, length + 1) + + +/proc/stringmerge(text,compare,replace = "*") +//This proc fills in all spaces with the "replace" var (* by default) with whatever +//is in the other string at the same spot (assuming it is not a replace char). +//This is used for fingerprints + var/newtext = text + if(lentext(text) != lentext(compare)) + return 0 + for(var/i = 1, i < lentext(text), i++) + var/a = copytext(text,i,i+1) + var/b = copytext(compare,i,i+1) +//if it isn't both the same letter, or if they are both the replacement character +//(no way to know what it was supposed to be) + if(a != b) + if(a == replace) //if A is the replacement char + newtext = copytext(newtext,1,i) + b + copytext(newtext, i+1) + else if(b == replace) //if B is the replacement char + newtext = copytext(newtext,1,i) + a + copytext(newtext, i+1) + else //The lists disagree, Uh-oh! + return 0 + return newtext + +/proc/stringpercent(text,character = "*") +//This proc returns the number of chars of the string that is the character +//This is used for detective work to determine fingerprint completion. + if(!text || !character) + return 0 + var/count = 0 + for(var/i = 1, i <= lentext(text), i++) + var/a = copytext(text,i,i+1) + if(a == character) + count++ + return count + +/proc/reverse_text(text = "") + var/new_text = "" + for(var/i = length(text); i > 0; i--) + new_text += copytext(text, i, i+1) + return new_text + +GLOBAL_LIST_INIT(zero_character_only, list("0")) +GLOBAL_LIST_INIT(hex_characters, list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")) +GLOBAL_LIST_INIT(alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")) +GLOBAL_LIST_INIT(binary, list("0","1")) +/proc/random_string(length, list/characters) + . = "" + for(var/i=1, i<=length, i++) + . += pick(characters) + +/proc/repeat_string(times, string="") + . = "" + for(var/i=1, i<=times, i++) + . += string + +/proc/random_short_color() + return random_string(3, GLOB.hex_characters) + +/proc/random_color() + return random_string(6, GLOB.hex_characters) + +/proc/add_zero2(t, u) + var/temp1 + while (length(t) < u) + t = "0[t]" + temp1 = t + if (length(t) > u) + temp1 = copytext(t,2,u+1) + return temp1 + +//merges non-null characters (3rd argument) from "from" into "into". Returns result +//e.g. into = "Hello World" +// from = "Seeya______" +// returns"Seeya World" +//The returned text is always the same length as into +//This was coded to handle DNA gene-splicing. +/proc/merge_text(into, from, null_char="_") + . = "" + if(!istext(into)) + into = "" + if(!istext(from)) + from = "" + var/null_ascii = istext(null_char) ? text2ascii(null_char,1) : null_char + + var/previous = 0 + var/start = 1 + var/end = length(into) + 1 + + for(var/i=1, i") + t = replacetext(t, "\[/center\]", "") + t = replacetext(t, "\[br\]", "
    ") + t = replacetext(t, "\[b\]", "") + t = replacetext(t, "\[/b\]", "") + t = replacetext(t, "\[i\]", "") + t = replacetext(t, "\[/i\]", "") + t = replacetext(t, "\[u\]", "") + t = replacetext(t, "\[/u\]", "") + t = replacetext(t, "\[large\]", "") + t = replacetext(t, "\[/large\]", "") + if(user) + t = replacetext(t, "\[sign\]", "[user.real_name]") + else + t = replacetext(t, "\[sign\]", "") + t = replacetext(t, "\[field\]", "") + + t = replacetext(t, "\[*\]", "
  • ") + t = replacetext(t, "\[hr\]", "
    ") + t = replacetext(t, "\[small\]", "") + t = replacetext(t, "\[/small\]", "") + t = replacetext(t, "\[list\]", "
      ") + t = replacetext(t, "\[/list\]", "
    ") + + return t + +#define string2charlist(string) (splittext(string, regex("(.)")) - splittext(string, "")) + +/proc/rot13(text = "") + var/list/textlist = string2charlist(text) + var/list/result = list() + for(var/c in textlist) + var/ca = text2ascii(c) + if(ca >= text2ascii("a") && ca <= text2ascii("m")) + ca += 13 + else if(ca >= text2ascii("n") && ca <= text2ascii("z")) + ca -= 13 + else if(ca >= text2ascii("A") && ca <= text2ascii("M")) + ca += 13 + else if(ca >= text2ascii("N") && ca <= text2ascii("Z")) + ca -= 13 + result += ascii2text(ca) + return jointext(result, "") + +//Takes a list of values, sanitizes it down for readability and character count, +//then exports it as a json file at data/npc_saves/[filename].json. +//As far as SS13 is concerned this is write only data. You can't change something +//in the json file and have it be reflected in the in game item/mob it came from. +//(That's what things like savefiles are for) Note that this list is not shuffled. +/proc/twitterize(list/proposed, filename, cullshort = 1, storemax = 1000) + if(!islist(proposed) || !filename || !config.log_twitter) + return + + //Regular expressions are, as usual, absolute magic + var/regex/is_website = new("http|www.|\[a-z0-9_-]+.(com|org|net|mil|edu)+", "i") + var/regex/is_email = new("\[a-z0-9_-]+@\[a-z0-9_-]+.\[a-z0-9_-]+", "i") + var/regex/alphanumeric = new("\[a-z0-9]+", "i") + var/regex/punctuation = new("\[.!?]+", "i") + var/regex/all_invalid_symbols = new("\[^ -~]+") + + var/list/accepted = list() + for(var/string in proposed) + if(findtext(string,is_website) || findtext(string,is_email) || findtext(string,all_invalid_symbols) || !findtext(string,alphanumeric)) + continue + var/buffer = "" + var/early_culling = TRUE + for(var/pos = 1, pos <= lentext(string), pos++) + var/let = copytext(string, pos, (pos + 1) % lentext(string)) + if(early_culling && !findtext(let,alphanumeric)) + continue + early_culling = FALSE + buffer += let + if(!findtext(buffer,alphanumeric)) + continue + var/punctbuffer = "" + var/cutoff = lentext(buffer) + for(var/pos = lentext(buffer), pos >= 0, pos--) + var/let = copytext(buffer, pos, (pos + 1) % lentext(buffer)) + if(findtext(let,alphanumeric)) + break + if(findtext(let,punctuation)) + punctbuffer = let + punctbuffer //Note this isn't the same thing as using += + cutoff = pos + if(punctbuffer) //We clip down excessive punctuation to get the letter count lower and reduce repeats. It's not perfect but it helps. + var/exclaim = FALSE + var/question = FALSE + var/periods = 0 + for(var/pos = lentext(punctbuffer), pos >= 0, pos--) + var/punct = copytext(punctbuffer, pos, (pos + 1) % lentext(punctbuffer)) + if(!exclaim && findtext(punct,"!")) + exclaim = TRUE + if(!question && findtext(punct,"?")) + question = TRUE + if(!exclaim && !question && findtext(punct,".")) + periods += 1 + if(exclaim) + if(question) + punctbuffer = "?!" + else + punctbuffer = "!" + else if(question) + punctbuffer = "?" + else if(periods) + if(periods > 1) + punctbuffer = "..." + else + punctbuffer = "" //Grammer nazis be damned + buffer = copytext(buffer, 1, cutoff) + punctbuffer + if(!findtext(buffer,alphanumeric)) + continue + if(!buffer || lentext(buffer) > 140 || lentext(buffer) <= cullshort || buffer in accepted) + continue + + accepted += buffer + + var/log = file("data/npc_saves/[filename].json") //If this line ever shows up as changed in a PR be very careful you aren't being memed on + var/list/oldjson = list() + var/list/oldentries = list() + if(fexists(log)) + oldjson = json_decode(file2text(log)) + oldentries = oldjson["data"] + if(!isemptylist(oldentries)) + for(var/string in accepted) + for(var/old in oldentries) + if(string == old) + oldentries.Remove(old) //Line's position in line is "refreshed" until it falls off the in game radar + break + + var/list/finalized = list() + finalized = accepted.Copy() + oldentries.Copy() //we keep old and unreferenced phrases near the bottom for culling + listclearnulls(finalized) + if(!isemptylist(finalized) && length(finalized) > storemax) + finalized.Cut(storemax + 1) + fdel(log) + + var/list/tosend = list() + tosend["data"] = finalized + log << json_encode(tosend) + +//Used for applying byonds text macros to strings that are loaded at runtime +/proc/apply_text_macros(string) + var/next_backslash = findtext(string, "\\") + if(!next_backslash) + return string + + var/leng = length(string) + + var/next_space = findtext(string, " ", next_backslash + 1) + if(!next_space) + next_space = leng - next_backslash + + if(!next_space) //trailing bs + return string + + var/base = next_backslash == 1 ? "" : copytext(string, 1, next_backslash) + var/macro = lowertext(copytext(string, next_backslash + 1, next_space)) + var/rest = next_backslash > leng ? "" : copytext(string, next_space + 1) + + //See http://www.byond.com/docs/ref/info.html#/DM/text/macros + switch(macro) + //prefixes/agnostic + if("the") + rest = text("\the []", rest) + if("a") + rest = text("\a []", rest) + if("an") + rest = text("\an []", rest) + if("proper") + rest = text("\proper []", rest) + if("improper") + rest = text("\improper []", rest) + if("roman") + rest = text("\roman []", rest) + //postfixes + if("th") + base = text("[]\th", rest) + if("s") + base = text("[]\s", rest) + if("he") + base = text("[]\he", rest) + if("she") + base = text("[]\she", rest) + if("his") + base = text("[]\his", rest) + if("himself") + base = text("[]\himself", rest) + if("herself") + base = text("[]\herself", rest) + if("hers") + base = text("[]\hers", rest) + + . = base + if(rest) + . += .(rest) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index b042eb3736..546935e697 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -37,3 +37,16 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) return GLOB.midnight_rollovers++ return GLOB.midnight_rollovers +/proc/weekdayofthemonth() + var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day + switch(DD) + if(8 to 13) + return 2 + if(14 to 20) + return 3 + if(21 to 27) + return 4 + if(28 to INFINITY) + return 5 + else + return 1 diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 9130eae7cb..36a81e90e2 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -75,7 +75,6 @@ /world/proc/file2list(filename, seperator="\n") return splittext(file2text(filename),seperator) - //Turns a direction into text /proc/dir2text(direction) switch(direction) @@ -200,8 +199,8 @@ . += "[seperator]+PERMISSIONS" if(rights & R_STEALTH) . += "[seperator]+STEALTH" - if(rights & R_REJUVINATE) - . += "[seperator]+REJUVINATE" + if(rights & R_POLL) + . += "[seperator]+POLL" if(rights & R_VAREDIT) . += "[seperator]+VAREDIT" if(rights & R_SOUNDS) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index fd1ce21cc4..4c09de668f 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -722,11 +722,11 @@ Turf and target are seperate in case you want to teleport some distance from a t //Irregular objects var/icon/AMicon = icon(AM.icon, AM.icon_state) - var/icon/AMiconheight = AMicon.Height() - var/icon/AMiconwidth = AMicon.Width() + var/AMiconheight = AMicon.Height() + var/AMiconwidth = AMicon.Width() if(AMiconheight != world.icon_size || AMiconwidth != world.icon_size) - pixel_x_offset += ((AMicon.Width()/world.icon_size)-1)*(world.icon_size*0.5) - pixel_y_offset += ((AMicon.Height()/world.icon_size)-1)*(world.icon_size*0.5) + pixel_x_offset += ((AMiconwidth/world.icon_size)-1)*(world.icon_size*0.5) + pixel_y_offset += ((AMiconheight/world.icon_size)-1)*(world.icon_size*0.5) //DY and DX var/rough_x = round(round(pixel_x_offset,world.icon_size)/world.icon_size) @@ -1225,7 +1225,7 @@ proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) /proc/flash_color(mob_or_client, flash_color="#960000", flash_time=20) var/client/C - if(istype(mob_or_client, /mob)) + if(ismob(mob_or_client)) var/mob/M = mob_or_client if(M.client) C = M.client @@ -1245,9 +1245,15 @@ proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) #define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) #define QDEL_NULL(item) qdel(item); item = null #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) #define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } #define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qel(L[I]); L.Cut(); } +/proc/______qdel_list_wrapper(list/L) //the underscores are to encourage people not to use this directly. + QDEL_LIST(L) + + + /proc/random_nukecode() var/val = rand(0, 99999) var/str = "[val]" diff --git a/code/_compile_options.dm b/code/_compile_options.dm index d98be1311e..964c956eca 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -69,5 +69,9 @@ #error You need version 511 or higher #endif + #define SERVICE_CMD_PARAM_KEY "serviceCommsKey" -#define SERVICE_CMD_PARAM_KEY "serviceCommsKey" +//Update this whenever the db schema changes +//make sure you add an update to the schema_version stable in the db changelog +#define DB_MAJOR_VERSION 3 +#define DB_MINOR_VERSION 0 diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index b001b84255..d05b46e407 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -1,27 +1,27 @@ -GLOBAL_REAL(config, /datum/configuration) - -GLOBAL_DATUM_INIT(revdata, /datum/getrev, new) - -GLOBAL_VAR(host) -GLOBAL_VAR(join_motd) -GLOBAL_VAR(station_name) -GLOBAL_VAR_INIT(game_version, "/tg/ Station 13") -GLOBAL_VAR_INIT(changelog_hash, "") - -GLOBAL_VAR_INIT(ooc_allowed, TRUE) // used with admin verbs to disable ooc - not a config option apparently -GLOBAL_VAR_INIT(dooc_allowed, TRUE) -GLOBAL_VAR_INIT(abandon_allowed, TRUE) -GLOBAL_VAR_INIT(enter_allowed, TRUE) -GLOBAL_VAR_INIT(guests_allowed, TRUE) -GLOBAL_VAR_INIT(shuttle_frozen, FALSE) -GLOBAL_VAR_INIT(shuttle_left, FALSE) -GLOBAL_VAR_INIT(tinted_weldhelh, TRUE) - - -// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked. -// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit. -GLOBAL_VAR_INIT(Debug, FALSE) // global debug switch -GLOBAL_VAR_INIT(Debug2, FALSE) +GLOBAL_REAL(config, /datum/configuration) + +GLOBAL_DATUM_INIT(revdata, /datum/getrev, new) + +GLOBAL_VAR(host) +GLOBAL_VAR(join_motd) +GLOBAL_VAR(station_name) +GLOBAL_VAR_INIT(game_version, "/tg/ Station 13") +GLOBAL_VAR_INIT(changelog_hash, "") + +GLOBAL_VAR_INIT(ooc_allowed, TRUE) // used with admin verbs to disable ooc - not a config option apparently +GLOBAL_VAR_INIT(dooc_allowed, TRUE) +GLOBAL_VAR_INIT(abandon_allowed, TRUE) +GLOBAL_VAR_INIT(enter_allowed, TRUE) +GLOBAL_VAR_INIT(guests_allowed, TRUE) +GLOBAL_VAR_INIT(shuttle_frozen, FALSE) +GLOBAL_VAR_INIT(shuttle_left, FALSE) +GLOBAL_VAR_INIT(tinted_weldhelh, TRUE) + + +// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked. +// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit. +GLOBAL_VAR_INIT(Debug, FALSE) // global debug switch +GLOBAL_VAR_INIT(Debug2, FALSE) //This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage GLOBAL_VAR_INIT(MAX_EX_DEVESTATION_RANGE, 3) diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 8da545d524..9c3af923f1 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -1,18 +1,18 @@ GLOBAL_VAR_INIT(master_mode, "traitor") //"extended" -GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret", the secret rotation will forceably choose this mode - -GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name -GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report - -// Cult, needs to be global so admin cultists are functional -GLOBAL_VAR_INIT(blood_target, null) // Cult Master's target or Construct's Master -GLOBAL_DATUM(blood_target_image, /image) -GLOBAL_VAR_INIT(blood_target_reset_timer, null) -GLOBAL_DATUM(sac_mind, /datum/mind) -GLOBAL_VAR_INIT(sac_image, null) -GLOBAL_VAR_INIT(cult_vote_called, FALSE) -GLOBAL_VAR_INIT(cult_mastered, FALSE) -GLOBAL_VAR_INIT(reckoning_complete, FALSE) -GLOBAL_VAR_INIT(sac_complete, FALSE) +GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret", the secret rotation will forceably choose this mode + +GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name +GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report + +// Cult, needs to be global so admin cultists are functional +GLOBAL_VAR_INIT(blood_target, null) // Cult Master's target or Construct's Master +GLOBAL_DATUM(blood_target_image, /image) +GLOBAL_VAR_INIT(blood_target_reset_timer, null) +GLOBAL_DATUM(sac_mind, /datum/mind) +GLOBAL_VAR_INIT(sac_image, null) +GLOBAL_VAR_INIT(cult_vote_called, FALSE) +GLOBAL_VAR_INIT(cult_mastered, FALSE) +GLOBAL_VAR_INIT(reckoning_complete, FALSE) +GLOBAL_VAR_INIT(sac_complete, FALSE) GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult) GLOBAL_LIST_EMPTY(summon_spots) \ No newline at end of file diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 9471b9ba32..e477299308 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -43,12 +43,12 @@ GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_ //Backpacks #define GBACKPACK "Grey Backpack" #define GSATCHEL "Grey Satchel" -#define Gduffelbag "Grey duffelbag" +#define GDUFFELBAG "Grey Duffel Bag" #define LSATCHEL "Leather Satchel" #define DBACKPACK "Department Backpack" #define DSATCHEL "Department Satchel" -#define Dduffelbag "Department duffelbag" -GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, Dduffelbag, GBACKPACK, GSATCHEL, Gduffelbag, LSATCHEL)) +#define DDUFFELBAG "Department Duffel Bag" +GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFELBAG, GBACKPACK, GSATCHEL, GDUFFELBAG, LSATCHEL)) //Uplink spawn loc #define UPLINK_PDA "PDA" @@ -62,7 +62,7 @@ GLOBAL_LIST_EMPTY(female_clothing_icons) //radical shit GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")) -GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg','sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg')) +GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg','sound/items/welder.ogg','sound/items/welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg')) // Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to @@ -154,11 +154,12 @@ GLOBAL_LIST_INIT(numbers_as_words, list("One", "Two", "Three", "Four", "Eighteen", "Nineteen")) /proc/generate_number_strings() - var/list/L + var/list/L[198] for(var/i in 1 to 99) L += "[i]" L += "\Roman[i]" return L GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings()) + GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these stations are?","Stop wasting my time.","I was sleeping, thanks a lot.","Stand and fight you cowards!","You knew the risks coming in.","Stop being paranoid.","Whatever's broken just build a new one.","No.", "null","Error: No comment given.", "It's a good day to die!")) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index acb60ee68e..154879f884 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -1,24 +1,24 @@ -GLOBAL_LIST_EMPTY(clients) //all clients -GLOBAL_LIST_EMPTY(admins) //all clients whom are admins -GLOBAL_PROTECT(admins) -GLOBAL_LIST_EMPTY(deadmins) //all clients who have used the de-admin verb. -GLOBAL_PROTECT(deadmins) -GLOBAL_LIST_EMPTY(directory) //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 -//This is for procs to replace all the goddamn 'in world's that are chilling around the code - -GLOBAL_LIST_EMPTY(player_list) //all mobs **with clients attached**. Excludes /mob/dead/new_player -GLOBAL_LIST_EMPTY(mob_list) //all mobs, including clientless +GLOBAL_LIST_EMPTY(clients) //all clients +GLOBAL_LIST_EMPTY(admins) //all clients whom are admins +GLOBAL_PROTECT(admins) +GLOBAL_LIST_EMPTY(deadmins) //all clients who have used the de-admin verb. +GLOBAL_PROTECT(deadmins) +GLOBAL_LIST_EMPTY(directory) //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 +//This is for procs to replace all the goddamn 'in world's that are chilling around the code + +GLOBAL_LIST_EMPTY(player_list) //all mobs **with clients attached**. Excludes /mob/dead/new_player +GLOBAL_LIST_EMPTY(mob_list) //all mobs, including clientless GLOBAL_LIST_EMPTY(mob_directory) //mob_id -> mob -GLOBAL_LIST_EMPTY(living_mob_list) //all alive mobs, including clientless. Excludes /mob/dead/new_player -GLOBAL_LIST_EMPTY(dead_mob_list) //all dead mobs, including clientless. Excludes /mob/dead/new_player -GLOBAL_LIST_EMPTY(joined_player_list) //all clients that have joined the game at round-start or as a latejoin. -GLOBAL_LIST_EMPTY(silicon_mobs) //all silicon mobs -GLOBAL_LIST_EMPTY(ai_list) -GLOBAL_LIST_EMPTY(pai_list) -GLOBAL_LIST_EMPTY(available_ai_shells) +GLOBAL_LIST_EMPTY(living_mob_list) //all alive mobs, including clientless. Excludes /mob/dead/new_player +GLOBAL_LIST_EMPTY(dead_mob_list) //all dead mobs, including clientless. Excludes /mob/dead/new_player +GLOBAL_LIST_EMPTY(joined_player_list) //all clients that have joined the game at round-start or as a latejoin. +GLOBAL_LIST_EMPTY(silicon_mobs) //all silicon mobs +GLOBAL_LIST_EMPTY(ai_list) +GLOBAL_LIST_EMPTY(pai_list) +GLOBAL_LIST_EMPTY(available_ai_shells) GLOBAL_LIST_EMPTY(simple_animals) GLOBAL_LIST_EMPTY(language_datum_instances) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 5726a1501d..2565ba8cc1 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -15,9 +15,9 @@ GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt")) GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt")) GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt")) GLOBAL_LIST_INIT(posibrain_names, world.file2list("strings/names/posibrain.txt")) - - + + GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt")) -//loaded on startup because of " -//would include in rsc if ' was used +//loaded on startup because of " +//would include in rsc if ' was used diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 81ad9d648e..3f0d6cab80 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -1,37 +1,37 @@ -GLOBAL_LIST_EMPTY(cable_list) //Index for all cables, so that powernets don't have to look through the entire world all the time -GLOBAL_LIST_EMPTY(portals) //list of all /obj/effect/portal -GLOBAL_LIST_EMPTY(airlocks) //list of all airlocks -GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking. -GLOBAL_LIST_EMPTY(shuttle_caller_list) //list of all communication consoles and AIs, for automatic shuttle calls when there are none. -GLOBAL_LIST_EMPTY(machines) //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing ! -GLOBAL_LIST_EMPTY(syndicate_shuttle_boards) //important to keep track of for managing nukeops war declarations. -GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used for patrolling. -GLOBAL_LIST_EMPTY(teleportbeacons) //list of all tracking beacons used by teleporters -GLOBAL_LIST_EMPTY(deliverybeacons) //list of all MULEbot delivery beacons. -GLOBAL_LIST_EMPTY(deliverybeacontags) //list of all tags associated with delivery beacons. -GLOBAL_LIST_EMPTY(nuke_list) -GLOBAL_LIST_EMPTY(alarmdisplay) //list of all machines or programs that can display station alerts -GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the station (actually technically all engines) - -GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions -GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id. -GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. -GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. -GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes -GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices. -GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. -GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... -GLOBAL_LIST_EMPTY(tracked_chem_implants) //list of implants the prisoner console can track and send inject commands too -GLOBAL_LIST_EMPTY(poi_list) //list of points of interest for observe/follow -GLOBAL_LIST_EMPTY(pinpointer_list) //list of all pinpointers. Used to change stuff they are pointing to all at once. -GLOBAL_LIST_EMPTY(zombie_infection_list) // A list of all zombie_infection organs, for any mass "animation" -GLOBAL_LIST_EMPTY(meteor_list) // List of all meteors. -GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers -GLOBAL_LIST_EMPTY(ladders) +GLOBAL_LIST_EMPTY(cable_list) //Index for all cables, so that powernets don't have to look through the entire world all the time +GLOBAL_LIST_EMPTY(portals) //list of all /obj/effect/portal +GLOBAL_LIST_EMPTY(airlocks) //list of all airlocks +GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking. +GLOBAL_LIST_EMPTY(shuttle_caller_list) //list of all communication consoles and AIs, for automatic shuttle calls when there are none. +GLOBAL_LIST_EMPTY(machines) //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing ! +GLOBAL_LIST_EMPTY(syndicate_shuttle_boards) //important to keep track of for managing nukeops war declarations. +GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used for patrolling. +GLOBAL_LIST_EMPTY(teleportbeacons) //list of all tracking beacons used by teleporters +GLOBAL_LIST_EMPTY(deliverybeacons) //list of all MULEbot delivery beacons. +GLOBAL_LIST_EMPTY(deliverybeacontags) //list of all tags associated with delivery beacons. +GLOBAL_LIST_EMPTY(nuke_list) +GLOBAL_LIST_EMPTY(alarmdisplay) //list of all machines or programs that can display station alerts +GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the station (actually technically all engines) + +GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions +GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff +GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id. +GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. +GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. +GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes +GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices. +GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. +GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... +GLOBAL_LIST_EMPTY(tracked_chem_implants) //list of implants the prisoner console can track and send inject commands too +GLOBAL_LIST_EMPTY(poi_list) //list of points of interest for observe/follow +GLOBAL_LIST_EMPTY(pinpointer_list) //list of all pinpointers. Used to change stuff they are pointing to all at once. +GLOBAL_LIST_EMPTY(zombie_infection_list) // A list of all zombie_infection organs, for any mass "animation" +GLOBAL_LIST_EMPTY(meteor_list) // List of all meteors. +GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers +GLOBAL_LIST_EMPTY(ladders) GLOBAL_LIST_EMPTY(trophy_cases) - -GLOBAL_LIST_EMPTY(wire_color_directory) + +GLOBAL_LIST_EMPTY(wire_color_directory) GLOBAL_LIST_EMPTY(wire_name_directory) GLOBAL_LIST_EMPTY(ai_status_displays) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index fbe9584262..bb86b4cbb0 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -1,16 +1,18 @@ -GLOBAL_VAR_INIT(admin_notice, "") // Admin notice that all clients see when joining the server - -GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the host computer) and 0 world.ticks. - - // For FTP requests. (i.e. downloading runtime logs.) - // However it'd be ok to use for accessing attack logs and such too, which are even laggier. -GLOBAL_VAR_INIT(fileaccess_timer, 0) - -GLOBAL_VAR_INIT(TAB, "    ") - +GLOBAL_VAR_INIT(admin_notice, "") // Admin notice that all clients see when joining the server + +GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the host computer) and 0 world.ticks. + + // For FTP requests. (i.e. downloading runtime logs.) + // However it'd be ok to use for accessing attack logs and such too, which are even laggier. +GLOBAL_VAR_INIT(fileaccess_timer, 0) + +GLOBAL_VAR_INIT(TAB, "    ") + GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) - -GLOBAL_VAR_INIT(CELLRATE, 0.002) // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) -GLOBAL_VAR_INIT(CHARGELEVEL, 0.001) // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) - -GLOBAL_LIST_EMPTY(powernets) \ No newline at end of file + +GLOBAL_VAR_INIT(CELLRATE, 0.002) // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) +GLOBAL_VAR_INIT(CHARGELEVEL, 0.001) // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) + +GLOBAL_LIST_EMPTY(powernets) + +GLOBAL_VAR_INIT(bsa_unlock, FALSE) //BSA unlocked by head ID swipes diff --git a/code/_globalvars/sensitive.dm b/code/_globalvars/sensitive.dm index 7001040063..e1a02621ac 100644 --- a/code/_globalvars/sensitive.dm +++ b/code/_globalvars/sensitive.dm @@ -1,16 +1,16 @@ -//Server API key -GLOBAL_REAL_VAR(comms_key) = "default_pwd" -GLOBAL_REAL_VAR(comms_allowed) = FALSE //By default, the server does not allow messages to be sent to it, unless the key is strong enough (this is to prevent misconfigured servers from becoming vulnerable) - -GLOBAL_REAL_VAR(medal_hub) -GLOBAL_REAL_VAR(medal_pass) = " " -GLOBAL_REAL_VAR(medals_enabled) = TRUE //will be auto set to false if the game fails contacting the medal hub to prevent unneeded calls. - -// MySQL configuration - -GLOBAL_REAL_VAR(sqladdress) = "localhost" -GLOBAL_REAL_VAR(sqlport) = "3306" -GLOBAL_REAL_VAR(sqlfdbkdb) = "test" -GLOBAL_REAL_VAR(sqlfdbklogin) = "root" -GLOBAL_REAL_VAR(sqlfdbkpass) = "" +//Server API key +GLOBAL_REAL_VAR(comms_key) = "default_pwd" +GLOBAL_REAL_VAR(comms_allowed) = FALSE //By default, the server does not allow messages to be sent to it, unless the key is strong enough (this is to prevent misconfigured servers from becoming vulnerable) + +GLOBAL_REAL_VAR(medal_hub) +GLOBAL_REAL_VAR(medal_pass) = " " +GLOBAL_REAL_VAR(medals_enabled) = TRUE //will be auto set to false if the game fails contacting the medal hub to prevent unneeded calls. + +// MySQL configuration + +GLOBAL_REAL_VAR(sqladdress) = "localhost" +GLOBAL_REAL_VAR(sqlport) = "3306" +GLOBAL_REAL_VAR(sqlfdbkdb) = "test" +GLOBAL_REAL_VAR(sqlfdbklogin) = "root" +GLOBAL_REAL_VAR(sqlfdbkpass) = "" GLOBAL_REAL_VAR(sqlfdbktableprefix) = "" diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index 88862965d8..a0e0527597 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -64,18 +64,18 @@ * Must be on a turf */ /atom/movable/Adjacent(var/atom/neighbor) - if(neighbor == loc) + if(neighbor == loc) return TRUE - if(!isturf(loc)) + if(!isturf(loc)) return FALSE - if(loc.Adjacent(neighbor,target = neighbor)) + if(loc.Adjacent(neighbor,target = neighbor)) return TRUE return FALSE // This is necessary for storage items not on your person. /obj/item/Adjacent(var/atom/neighbor, var/recurse = 1) if(neighbor == loc) return 1 - if(istype(loc,/obj/item)) + if(isitem(loc)) if(recurse > 0) return loc.Adjacent(neighbor,recurse - 1) return 0 diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 4a5993047f..5c47e1f44d 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -281,7 +281,7 @@ return /mob/living/carbon/MiddleClickOn(atom/A) - if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) + if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (iscarbon(A)) && (A != src)) next_click = world.time + 5 mind.changeling.chosen_sting.try_to_sting(src, A) else @@ -326,7 +326,7 @@ /mob/living/carbon/human/CtrlClick(mob/user) if(ishuman(user) && Adjacent(user)) if(world.time < user.next_move) - return + return FALSE var/mob/living/carbon/human/H = user H.dna.species.grab(H, src, H.mind.martial_art) H.changeNext_move(CLICK_CD_MELEE) @@ -341,7 +341,7 @@ return /mob/living/carbon/AltClickOn(atom/A) - if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) + if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (iscarbon(A)) && (A != src)) next_click = world.time + 5 mind.changeling.chosen_sting.try_to_sting(src, A) else @@ -443,7 +443,7 @@ /obj/screen/click_catcher/Click(location, control, params) var/list/modifiers = params2list(params) - if(modifiers["middle"] && istype(usr, /mob/living/carbon)) + if(modifiers["middle"] && iscarbon(usr)) var/mob/living/carbon/C = usr C.swap_hand() else diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 3bb15c1947..0fe73bad6e 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -1,157 +1,157 @@ -/* - Cyborg ClickOn() - - Cyborgs have no range restriction on attack_robot(), because it is basically an AI click. - However, they do have a range restriction on item use, so they cannot do without the - adjacency code. -*/ - -/mob/living/silicon/robot/ClickOn(var/atom/A, var/params) - if(world.time <= next_click) - return - next_click = world.time + 1 - - if(client.click_intercept) - if(call(client.click_intercept,"InterceptClickOn")(src,params,A)) - return - - if(stat || lockcharge || weakened || stunned || paralysis) - 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"]) - ShiftClickOn(A) - return - if(modifiers["alt"]) // alt and alt-gr (rightalt) - AltClickOn(A) - return - if(modifiers["ctrl"]) - CtrlClickOn(A) - return - - if(next_move >= world.time) - return - - face_atom(A) // change direction to face what you clicked on - - /* - cyborg restrained() currently does nothing - if(restrained()) - RestrainedClickOn(A) - return - */ - if(aicamera.in_camera_mode) //Cyborg picture taking - aicamera.camera_mode_off() - aicamera.captureimage(A, usr) - return - - var/obj/item/W = get_active_held_item() - - // Cyborgs have no range-checking unless there is item use - if(!W) - A.attack_robot(src) - return - - // buckled cannot prevent machine interlinking but stops arm movement - if( buckled || incapacitated()) - return - - if(W == A) - W.attack_self(src) - return - - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) - if(A == loc || (A in loc) || (A in contents)) +/* + Cyborg ClickOn() + + Cyborgs have no range restriction on attack_robot(), because it is basically an AI click. + However, they do have a range restriction on item use, so they cannot do without the + adjacency code. +*/ + +/mob/living/silicon/robot/ClickOn(var/atom/A, var/params) + if(world.time <= next_click) + return + next_click = world.time + 1 + + if(client.click_intercept) + if(call(client.click_intercept,"InterceptClickOn")(src,params,A)) + return + + if(stat || lockcharge || IsKnockdown() || IsStun() || IsUnconscious()) + 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"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) // alt and alt-gr (rightalt) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + + if(next_move >= world.time) + return + + face_atom(A) // change direction to face what you clicked on + + /* + cyborg restrained() currently does nothing + if(restrained()) + RestrainedClickOn(A) + return + */ + if(aicamera.in_camera_mode) //Cyborg picture taking + aicamera.camera_mode_off() + aicamera.captureimage(A, usr) + return + + var/obj/item/W = get_active_held_item() + + // Cyborgs have no range-checking unless there is item use + if(!W) + A.attack_robot(src) + return + + // buckled cannot prevent machine interlinking but stops arm movement + if( buckled || incapacitated()) + return + + if(W == A) + W.attack_self(src) + return + + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) + if(A == loc || (A in loc) || (A in contents)) W.melee_attack_chain(src, A, params) - return - - if(!isturf(loc)) - return - - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) - if(isturf(A) || isturf(A.loc)) - if(A.Adjacent(src)) // see adjacent.dm + return + + if(!isturf(loc)) + return + + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) + if(isturf(A) || isturf(A.loc)) + if(A.Adjacent(src)) // see adjacent.dm W.melee_attack_chain(src, A, params) - return - else - W.afterattack(A, src, 0, params) - return - return - -//Middle click cycles through selected modules. -/mob/living/silicon/robot/MiddleClickOn(atom/A) - cycle_modules() - return - -//Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks -// for non-doors/apcs -/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) - A.BorgCtrlShiftClick(src) -/mob/living/silicon/robot/ShiftClickOn(atom/A) - A.BorgShiftClick(src) -/mob/living/silicon/robot/CtrlClickOn(atom/A) - A.BorgCtrlClick(src) -/mob/living/silicon/robot/AltClickOn(atom/A) - A.BorgAltClick(src) - -/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden - CtrlShiftClick(user) - -/obj/machinery/door/airlock/BorgCtrlShiftClick() // Sets/Unsets Emergency Access Override Forwards to AI code. - AICtrlShiftClick() - - -/atom/proc/BorgShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden - ShiftClick(user) - -/obj/machinery/door/airlock/BorgShiftClick() // Opens and closes doors! Forwards to AI code. - AIShiftClick() - - -/atom/proc/BorgCtrlClick(mob/living/silicon/robot/user) //forward to human click if not overriden - CtrlClick(user) - -/obj/machinery/door/airlock/BorgCtrlClick() // Bolts doors. Forwards to AI code. - AICtrlClick() - -/obj/machinery/power/apc/BorgCtrlClick() // turns off/on APCs. Forwards to AI code. - AICtrlClick() - -/obj/machinery/turretid/BorgCtrlClick() //turret control on/off. Forwards to AI code. - AICtrlClick() - -/atom/proc/BorgAltClick(mob/living/silicon/robot/user) - AltClick(user) - return - -/obj/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code. - AIAltClick() - -/obj/machinery/turretid/BorgAltClick() //turret lethal on/off. Forwards to AI code. - AIAltClick() - -/* - As with AI, these are not used in click code, - because the code for robots is specific, not generic. - - If you would like to add advanced features to robot - clicks, you can do so here, but you will have to - change attack_robot() above to the proper function -*/ -/mob/living/silicon/robot/UnarmedAttack(atom/A) - A.attack_robot(src) -/mob/living/silicon/robot/RangedAttack(atom/A) - A.attack_robot(src) - -/atom/proc/attack_robot(mob/user) - attack_ai(user) - return + return + else + W.afterattack(A, src, 0, params) + return + return + +//Middle click cycles through selected modules. +/mob/living/silicon/robot/MiddleClickOn(atom/A) + cycle_modules() + return + +//Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks +// for non-doors/apcs +/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) + A.BorgCtrlShiftClick(src) +/mob/living/silicon/robot/ShiftClickOn(atom/A) + A.BorgShiftClick(src) +/mob/living/silicon/robot/CtrlClickOn(atom/A) + A.BorgCtrlClick(src) +/mob/living/silicon/robot/AltClickOn(atom/A) + A.BorgAltClick(src) + +/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden + CtrlShiftClick(user) + +/obj/machinery/door/airlock/BorgCtrlShiftClick() // Sets/Unsets Emergency Access Override Forwards to AI code. + AICtrlShiftClick() + + +/atom/proc/BorgShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden + ShiftClick(user) + +/obj/machinery/door/airlock/BorgShiftClick() // Opens and closes doors! Forwards to AI code. + AIShiftClick() + + +/atom/proc/BorgCtrlClick(mob/living/silicon/robot/user) //forward to human click if not overriden + CtrlClick(user) + +/obj/machinery/door/airlock/BorgCtrlClick() // Bolts doors. Forwards to AI code. + AICtrlClick() + +/obj/machinery/power/apc/BorgCtrlClick() // turns off/on APCs. Forwards to AI code. + AICtrlClick() + +/obj/machinery/turretid/BorgCtrlClick() //turret control on/off. Forwards to AI code. + AICtrlClick() + +/atom/proc/BorgAltClick(mob/living/silicon/robot/user) + AltClick(user) + return + +/obj/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code. + AIAltClick() + +/obj/machinery/turretid/BorgAltClick() //turret lethal on/off. Forwards to AI code. + AIAltClick() + +/* + As with AI, these are not used in click code, + because the code for robots is specific, not generic. + + If you would like to add advanced features to robot + clicks, you can do so here, but you will have to + change attack_robot() above to the proper function +*/ +/mob/living/silicon/robot/UnarmedAttack(atom/A) + A.attack_robot(src) +/mob/living/silicon/robot/RangedAttack(atom/A) + A.attack_robot(src) + +/atom/proc/attack_robot(mob/user) + attack_ai(user) + return diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 96a07bad24..4bac886a05 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -23,6 +23,7 @@ //Hide/Show Action Buttons ... Button /obj/screen/movable/action_button/hide_toggle name = "Hide Buttons" + desc = "Shift-click any button to reset its position. Alt-click to reset all buttons to their default positions." icon = 'icons/mob/actions.dmi' icon_state = "bg_default" var/hidden = 0 @@ -33,8 +34,18 @@ /obj/screen/movable/action_button/hide_toggle/Click(location,control,params) var/list/modifiers = params2list(params) if(modifiers["shift"]) - moved = 0 - return 1 + moved = FALSE + usr.update_action_buttons(TRUE) + return TRUE + if(modifiers["alt"]) + for(var/V in usr.actions) + var/datum/action/A = V + var/obj/screen/movable/action_button/B = A.button + B.moved = FALSE + moved = FALSE + usr.update_action_buttons(TRUE) + to_chat(usr, "Action button positions have been reset.") + return TRUE usr.hud_used.action_buttons_hidden = !usr.hud_used.action_buttons_hidden hidden = usr.hud_used.action_buttons_hidden @@ -45,6 +56,16 @@ UpdateIcon() usr.update_action_buttons() +/obj/screen/movable/action_button/hide_toggle/AltClick(mob/user) + for(var/V in user.actions) + var/datum/action/A = V + var/obj/screen/movable/action_button/B = A.button + B.moved = FALSE + if(moved) + moved = FALSE + user.update_action_buttons(TRUE) + to_chat(user, "Action button positions have been reset.") + /obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud) var settings = owner_hud.get_action_buttons_icons() diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index c1986f928b..c43b015447 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -205,11 +205,6 @@ If you're feeling frisky, click yourself in help intent to pull the object out." var/mob/living/carbon/human/M = usr return M.help_shake_act(M) -/obj/screen/alert/asleep - name = "Asleep" - desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." - icon_state = "asleep" - /obj/screen/alert/weightless name = "Weightless" desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \ @@ -362,7 +357,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." desc = "You shouldn't be seeing this description unless you're very fast. If you're very fast, good job!" icon_state = "no-servants-caches" - /obj/screen/alert/clockwork/scripture_reqs/Initialize() . = ..() START_PROCESSING(SSprocessing, src) @@ -410,10 +404,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." req_servants = APPLICATION_SERVANT_REQ req_caches = APPLICATION_CACHE_REQ req_cv = APPLICATION_CV_REQ - if(SCRIPTURE_REVENANT) - req_servants = REVENANT_SERVANT_REQ - req_caches = REVENANT_CACHE_REQ - req_cv = REVENANT_CV_REQ if(SCRIPTURE_JUDGEMENT) req_servants = JUDGEMENT_SERVANT_REQ req_caches = JUDGEMENT_CACHE_REQ @@ -473,10 +463,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." textlist = list("[servants] Servant, who [validservants ? "counts":"does not count"] towards scripture.
    ") textlist += "[GLOB.clockwork_caches ? "[GLOB.clockwork_caches] Tinkerer's Caches.":"No Tinkerer's Caches, construct one!"]
    \ [GLOB.clockwork_construction_value] Construction Value.
    " - if(GLOB.clockwork_daemons) - textlist += "[GLOB.clockwork_daemons] Tinkerer's Daemons: [servants * 0.2 < GLOB.clockwork_daemons ? "DISABLED":"ACTIVE"]
    " - else - textlist += "No Tinkerer's Daemons.
    " + textlist += "[Floor(servants * 0.2)] Tinkerer's Daemons can be active at once. [LAZYLEN(GLOB.active_daemons)] are active.
    " for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in GLOB.all_clockwork_objects) var/area/gate_area = get_area(G) textlist += "Ark Location: [uppertext(gate_area.map_name)]
    " @@ -494,18 +481,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." textlist += "[unconverted_ais_exist] unconverted AIs exist!
    " else textlist += "An unconverted AI exists!
    " - if(SSticker.scripture_states[SCRIPTURE_REVENANT]) - var/inathneq_available = GLOB.clockwork_generals_invoked["inath-neq"] <= world.time - var/sevtug_available = GLOB.clockwork_generals_invoked["sevtug"] <= world.time - var/nezbere_available = GLOB.clockwork_generals_invoked["nezbere"] <= world.time - var/nezcrentr_available = GLOB.clockwork_generals_invoked["nzcrentr"] <= world.time - if(inathneq_available || sevtug_available || nezbere_available || nezcrentr_available) - textlist += "Generals available:[inathneq_available ? "
    INATH-NEQ":""][sevtug_available ? "
    SEVTUG":""]\ - [nezbere_available ? "
    NEZBERE":""][nezcrentr_available ? "
    NZCRENTR":""]

    " - else - textlist += "Generals available: NONE
    " - else - textlist += "Generals available: NONE
    " for(var/i in SSticker.scripture_states) if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff textlist += "[i] Scripture: [SSticker.scripture_states[i] ? "UNLOCKED":"LOCKED"]
    " @@ -700,3 +675,4 @@ so as to remain in compliance with the most up-to-date laws." severity = 0 master = null screen_loc = "" + diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 56f97a3f28..5a8cff1df0 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -6,7 +6,7 @@ icon_state = "leap_off" /obj/screen/alien/leap/Click() - if(istype(usr, /mob/living/carbon/alien/humanoid/hunter)) + if(isalienhunter(usr)) var/mob/living/carbon/alien/humanoid/hunter/AH = usr AH.toggle_leap() @@ -57,7 +57,7 @@ static_inventory += using action_intent = using - if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter)) + if(isalienhunter(mymob)) var/mob/living/carbon/alien/humanoid/hunter/H = mymob H.leap_icon = new /obj/screen/alien/leap() H.leap_icon.screen_loc = ui_alien_storage_r @@ -96,7 +96,7 @@ alien_plasma_display = new /obj/screen/alien/plasma_display() infodisplay += alien_plasma_display - if(!istype(mymob, /mob/living/carbon/alien/humanoid/royal/queen)) + if(!isalienqueen(mymob)) alien_queen_finder = new /obj/screen/alien/alien_queen_finder infodisplay += alien_queen_finder diff --git a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm index dc3cea7f99..729de9da4a 100644 --- a/code/_onclick/hud/constructs.dm +++ b/code/_onclick/hud/constructs.dm @@ -1,18 +1,18 @@ -/datum/hud/construct +/datum/hud/constructs ui_style_icon = 'icons/mob/screen_construct.dmi' - -/datum/hud/construct/New(mob/owner) + +/datum/hud/constructs/New(mob/owner) ..() pull_icon = new /obj/screen/pull() - pull_icon.icon = ui_style_icon + pull_icon.icon = 'icons/mob/screen_construct.dmi' pull_icon.update_icon(mymob) - pull_icon.screen_loc = ui_pull_resist + pull_icon.screen_loc = ui_construct_pull static_inventory += pull_icon - + healths = new /obj/screen/healths/construct() infodisplay += healths - + /mob/living/simple_animal/hostile/construct/create_mob_hud() if(client && !hud_used) - hud_used = new /datum/hud/construct(src) + hud_used = new /datum/hud/constructs(src) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 1ed31a6dc1..56d07500e8 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -348,7 +348,7 @@ /obj/screen/storage/Click(location, control, params) if(world.time <= usr.next_move) return 1 - if(usr.stat || usr.paralysis || usr.stunned || usr.weakened) + if(usr.stat || usr.IsUnconscious() || usr.IsKnockdown() || usr.IsStun()) return 1 if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech return 1 diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 72694a434c..43569dca0c 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -1,119 +1,119 @@ - + /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) if(pre_attackby(target, user, params)) - // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) + // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) var/resolved = target.attackby(src, user, params) if(!resolved && target && !QDELETED(src)) afterattack(target, user, 1, params) // 1: clicking something Adjacent - - -// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. -/obj/item/proc/attack_self(mob/user) - return - -/obj/item/proc/pre_attackby(atom/A, mob/living/user, params) //do stuff before attackby! - return TRUE //return FALSE to avoid calling attackby after this proc does stuff - -// No comment -/atom/proc/attackby(obj/item/W, mob/user, params) - return - -/obj/attackby(obj/item/I, mob/living/user, params) - return I.attack_obj(src, user) - -/mob/living/attackby(obj/item/I, mob/user, params) - user.changeNext_move(CLICK_CD_MELEE) - if(user.a_intent == INTENT_HARM && stat == DEAD && butcher_results) //can we butcher it? - var/sharpness = I.is_sharp() - if(sharpness) - to_chat(user, "You begin to butcher [src]...") - playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) + + +// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. +/obj/item/proc/attack_self(mob/user) + return + +/obj/item/proc/pre_attackby(atom/A, mob/living/user, params) //do stuff before attackby! + return TRUE //return FALSE to avoid calling attackby after this proc does stuff + +// No comment +/atom/proc/attackby(obj/item/W, mob/user, params) + return + +/obj/attackby(obj/item/I, mob/living/user, params) + return I.attack_obj(src, user) + +/mob/living/attackby(obj/item/I, mob/user, params) + user.changeNext_move(CLICK_CD_MELEE) + if(user.a_intent == INTENT_HARM && stat == DEAD && butcher_results) //can we butcher it? + var/sharpness = I.is_sharp() + if(sharpness) + to_chat(user, "You begin to butcher [src]...") + playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) if(do_mob(user, src, 80/sharpness) && Adjacent(I)) - harvest(user) - return 1 - return I.attack(src, user) - - -/obj/item/proc/attack(mob/living/M, mob/living/user) - if(flags & NOBLUDGEON) - return - if(!force) - playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1) - else if(hitsound) - playsound(loc, hitsound, get_clamped_volume(), 1, -1) - - user.lastattacked = M - M.lastattacker = user - - user.do_attack_animation(M) - M.attacked_by(src, user) - - add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") - add_fingerprint(user) - - -//the equivalent of the standard version of attack() but for object targets. -/obj/item/proc/attack_obj(obj/O, mob/living/user) - if(flags & NOBLUDGEON) - return - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(O) - O.attacked_by(src, user) - -/atom/movable/proc/attacked_by() - return - -/obj/attacked_by(obj/item/I, mob/living/user) - if(I.force) - visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) - //only witnesses close by and the victim see a hit message. - take_damage(I.force, I.damtype, "melee", 1) - -/mob/living/attacked_by(obj/item/I, mob/living/user) - send_item_attack_message(I, user) - if(I.force) - apply_damage(I.force, I.damtype) - if(I.damtype == BRUTE) - if(prob(33)) - I.add_mob_blood(src) - var/turf/location = get_turf(src) - add_splatter_floor(location) - if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood - user.add_mob_blood(src) - return TRUE //successful attack - -/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user) - if(I.force < force_threshold || I.damtype == STAMINA) - playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1) - else - return ..() - -// 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 Click() code, see that documentation. -/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) - return - - -/obj/item/proc/get_clamped_volume() - if(w_class) - if(force) - return Clamp((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100 - else - return Clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 - -/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) - var/message_verb = "attacked" - if(I.attack_verb && I.attack_verb.len) - message_verb = "[pick(I.attack_verb)]" - else if(!I.force) - return - var/message_hit_area = "" - if(hit_area) - message_hit_area = " in the [hit_area]" - var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]." - if(user in viewers(src, null)) - attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!" - visible_message("[attack_message]", \ - "[attack_message]", null, COMBAT_MESSAGE_RANGE) - return 1 - + harvest(user) + return 1 + return I.attack(src, user) + + +/obj/item/proc/attack(mob/living/M, mob/living/user) + if(flags & NOBLUDGEON) + return + if(!force) + playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1) + else if(hitsound) + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + + user.lastattacked = M + M.lastattacker = user + + user.do_attack_animation(M) + M.attacked_by(src, user) + + add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + add_fingerprint(user) + + +//the equivalent of the standard version of attack() but for object targets. +/obj/item/proc/attack_obj(obj/O, mob/living/user) + if(flags & NOBLUDGEON) + return + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(O) + O.attacked_by(src, user) + +/atom/movable/proc/attacked_by() + return + +/obj/attacked_by(obj/item/I, mob/living/user) + if(I.force) + visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) + //only witnesses close by and the victim see a hit message. + take_damage(I.force, I.damtype, "melee", 1) + +/mob/living/attacked_by(obj/item/I, mob/living/user) + send_item_attack_message(I, user) + if(I.force) + apply_damage(I.force, I.damtype) + if(I.damtype == BRUTE) + if(prob(33)) + I.add_mob_blood(src) + var/turf/location = get_turf(src) + add_splatter_floor(location) + if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood + user.add_mob_blood(src) + return TRUE //successful attack + +/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user) + if(I.force < force_threshold || I.damtype == STAMINA) + playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1) + else + return ..() + +// 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 Click() code, see that documentation. +/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + return + + +/obj/item/proc/get_clamped_volume() + if(w_class) + if(force) + return Clamp((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100 + else + return Clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 + +/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) + var/message_verb = "attacked" + if(I.attack_verb && I.attack_verb.len) + message_verb = "[pick(I.attack_verb)]" + else if(!I.force) + return + var/message_hit_area = "" + if(hit_area) + message_hit_area = " in the [hit_area]" + var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]." + if(user in viewers(src, null)) + attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!" + visible_message("[attack_message]", \ + "[attack_message]", null, COMBAT_MESSAGE_RANGE) + return 1 + diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index f9b0038918..9a474b16a8 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -9,7 +9,7 @@ return // seems legit. // Things you might plausibly want to follow - if(istype(A, /atom/movable)) + if(ismovableatom(A)) ManualFollow(A) // Otherwise jump @@ -67,8 +67,8 @@ user.forceMove(get_turf(com.locked)) /obj/effect/portal/attack_ghost(mob/user) - if(target) - user.forceMove(get_turf(target)) + if(linked) + user.forceMove(get_turf(linked)) /obj/machinery/gateway/centerstation/attack_ghost(mob/user) if(awaygate) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index fdecce20ca..d66c8ee359 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -128,7 +128,7 @@ return - if(!isturf(target) && istype(focus,/obj/item) && target.Adjacent(focus)) + if(!isturf(target) && isitem(focus) && target.Adjacent(focus)) apply_focus_overlay() var/obj/item/I = focus I.melee_attack_chain(tk_user, target, params) //isn't copying the attack chain fun. we should do it more often. diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm index 7846604171..3c513369e5 100644 --- a/code/citadel/dogborgstuff.dm +++ b/code/citadel/dogborgstuff.dm @@ -256,7 +256,7 @@ if(R.cell.charge <= 666) return L.Stun(4) // normal stunbaton is force 7 gimme a break good sir! - L.Weaken(4) + L.Knockdown(80) L.apply_effect(STUTTER, 4) L.visible_message("[user] has shocked [L] with its tongue!", \ "[user] has shocked you with its tongue! You can feel the betrayal.") @@ -485,8 +485,6 @@ dat += "\t-Toxin Content %: [patient.getToxLoss()]
    " dat += "\t-Burn Severity %: [patient.getFireLoss()]
    " - if(round(patient.paralysis / 4) >= 1) - dat += text("
    Patient paralyzed for: []
    ", round(patient.paralysis / 4) >= 1 ? "[round(patient.paralysis / 4)] seconds" : "None") if(patient.getBrainLoss()) dat += "
    Significant brain damage detected.

    " if(patient.getCloneLoss()) @@ -579,8 +577,9 @@ if(patient.health < 0) patient.adjustOxyLoss(-1) //Heal some oxygen damage if they're in critical condition patient.updatehealth() - patient.AdjustStunned(-4) - patient.AdjustWeakened(-4) + patient.AdjustStun(-80) + patient.AdjustKnockdown(-80) + patient.AdjustUnconscious(-80) src.drain() if((patient.reagents.get_reagent_amount("epinephrine") < 5) && (patient.health < patient.maxHealth)) //Stop pumping full HP people full of drugs. Don't heal people you're digesting, meanie. patient.reagents.add_reagent("epinephrine", 5) @@ -916,18 +915,18 @@ blocked = 1 if(!blocked) L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") - L.Weaken(3) + L.Knockdown(100) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) else - Weaken(2, 1, 1) + Knockdown(40, 1, 1) pounce_cooldown = !pounce_cooldown spawn(pounce_cooldown_time) //3s by default pounce_cooldown = !pounce_cooldown else if(A.density && !A.CanPass(src)) visible_message("[src] smashes into [A]!", "[src] smashes into [A]!") - Weaken(2, 1, 1) + Knockdown(40, 1, 1) if(leaping) leaping = 0 diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index e41859d140..fc1dc83129 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -265,6 +265,8 @@ var/irc_announce_new_game = FALSE + var/list/policies = list() + /datum/configuration/New() gamemode_cache = typecacheof(/datum/game_mode,TRUE) for(var/T in gamemode_cache) @@ -288,6 +290,7 @@ /datum/configuration/proc/Reload() load("config/config.txt") load("config/game_options.txt","game_options") + load("config/policies.txt", "policies") loadsql("config/dbconfig.txt") if (maprotation) loadmaplist("config/maps.txt") @@ -777,12 +780,10 @@ arrivals_shuttle_require_safe_latejoin = TRUE if("mice_roundstart") mice_roundstart = text2num(value) - if ("mentor_mobname_only") - mentors_mobname_only = 1 - if ("mentor_legacy_system") - mentor_legacy_system = 1 else GLOB.config_error_log << "Unknown setting in configuration: '[name]'" + else if(type == "policies") + policies[name] = value fps = round(fps) if(fps <= 0) diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index 89f8a81f20..be5250d656 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -1,66 +1,66 @@ -GLOBAL_REAL(GLOB, /datum/controller/global_vars) - -/datum/controller/global_vars - name = "Global Variables" - - var/list/gvars_datum_protected_varlist - var/list/gvars_datum_in_built_vars - var/list/gvars_datum_init_order - -/datum/controller/global_vars/New() - if(GLOB) - CRASH("Multiple instances of global variable controller created") - GLOB = src - - var/datum/controller/exclude_these = new - gvars_datum_in_built_vars = exclude_these.vars + list("gvars_datum_protected_varlist", "gvars_datum_in_built_vars", "gvars_datum_init_order") - qdel(exclude_these) - +GLOBAL_REAL(GLOB, /datum/controller/global_vars) + +/datum/controller/global_vars + name = "Global Variables" + + var/list/gvars_datum_protected_varlist + var/list/gvars_datum_in_built_vars + var/list/gvars_datum_init_order + +/datum/controller/global_vars/New() + if(GLOB) + CRASH("Multiple instances of global variable controller created") + GLOB = src + + var/datum/controller/exclude_these = new + gvars_datum_in_built_vars = exclude_these.vars + list("gvars_datum_protected_varlist", "gvars_datum_in_built_vars", "gvars_datum_init_order") + qdel(exclude_these) + log_world("[vars.len - gvars_datum_in_built_vars.len] global variables") - Initialize() - -/datum/controller/global_vars/Destroy(force) + Initialize() + +/datum/controller/global_vars/Destroy(force) stack_trace("Some fucker qdel'd the global holder!") - if(!force) - return QDEL_HINT_LETMELIVE - - QDEL_NULL(statclick) - gvars_datum_protected_varlist.Cut() - gvars_datum_in_built_vars.Cut() - - GLOB = null - - return ..() - -/datum/controller/global_vars/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - + if(!force) + return QDEL_HINT_LETMELIVE + + QDEL_NULL(statclick) + gvars_datum_protected_varlist.Cut() + gvars_datum_in_built_vars.Cut() + + GLOB = null + + return ..() + +/datum/controller/global_vars/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) + stat("Globals:", statclick.update("Edit")) - -/datum/controller/global_vars/can_vv_get(var_name) - if(var_name in gvars_datum_protected_varlist) - return FALSE - return ..() - -/datum/controller/global_vars/vv_edit_var(var_name, var_value) - if((var_name in gvars_datum_protected_varlist)) - return FALSE - return ..() - -/datum/controller/global_vars/Initialize() - gvars_datum_init_order = list() - gvars_datum_protected_varlist = list("gvars_datum_protected_varlist") + +/datum/controller/global_vars/can_vv_get(var_name) + if(var_name in gvars_datum_protected_varlist) + return FALSE + return ..() + +/datum/controller/global_vars/vv_edit_var(var_name, var_value) + if((var_name in gvars_datum_protected_varlist)) + return FALSE + return ..() + +/datum/controller/global_vars/Initialize() + gvars_datum_init_order = list() + gvars_datum_protected_varlist = list("gvars_datum_protected_varlist") //See https://github.com/tgstation/tgstation/issues/26954 for(var/I in typesof(/datum/controller/global_vars/proc)) var/CLEANBOT_RETURNS = "[I]" pass(CLEANBOT_RETURNS) - for(var/I in vars - gvars_datum_in_built_vars) - var/start_tick = world.time - call(src, "InitGlobal[I]")() - var/end_tick = world.time - if(end_tick - start_tick) - warning("Global [I] slept during initialization!") + for(var/I in vars - gvars_datum_in_built_vars) + var/start_tick = world.time + call(src, "InitGlobal[I]")() + var/end_tick = world.time + if(end_tick - start_tick) + warning("Global [I] slept during initialization!") diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index aeadfcf94e..e819060afb 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -30,7 +30,7 @@ SUBSYSTEM_DEF(atoms) initialized = INITIALIZATION_INNEW_MAPLOAD LAZYINITLIST(late_loaders) - + var/count var/list/mapload_arg = list(TRUE) if(atoms) @@ -60,10 +60,10 @@ SUBSYSTEM_DEF(atoms) A.LateInitialize() testing("Late initialized [late_loaders.len] atoms") late_loaders.Cut() - + if(atoms) . = created_atoms + atoms - created_atoms = null + created_atoms = null /datum/controller/subsystem/atoms/proc/InitAtom(atom/A, list/arguments) var/the_type = A.type @@ -77,7 +77,7 @@ SUBSYSTEM_DEF(atoms) if(start_tick != world.time) BadInitializeCalls[the_type] |= BAD_INIT_SLEPT - + var/qdeleted = FALSE if(result != INITIALIZE_HINT_NORMAL) @@ -92,12 +92,12 @@ SUBSYSTEM_DEF(atoms) qdeleted = TRUE else BadInitializeCalls[the_type] |= BAD_INIT_NO_HINT - + if(!A) //possible harddel qdeleted = TRUE else if(!A.initialized) BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT - + return qdeleted || QDELING(A) /datum/controller/subsystem/atoms/proc/map_loader_begin() diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index a4e3aa2fef..19e96f3fbf 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -95,11 +95,13 @@ SUBSYSTEM_DEF(blackbox) for (var/datum/feedback_variable/FV in feedback) sqlrowlist += list(list("time" = "Now()", "round_id" = GLOB.round_id, "var_name" = "'[sanitizeSQL(FV.get_variable())]'", "var_value" = FV.get_value(), "details" = "'[sanitizeSQL(FV.get_details())]'")) + if (!length(sqlrowlist)) return SSdbcore.MassInsert(format_table_name("feedback"), sqlrowlist, ignore_errors = TRUE, delayed = TRUE) + /datum/controller/subsystem/blackbox/proc/LogBroadcast(blackbox_msg, freq) if(sealed) return @@ -209,7 +211,6 @@ SUBSYSTEM_DEF(blackbox) log_game("Blackbox sealed[IsAdminAdvancedProcCall() ? " by [key_name(usr)]" : ""].") sealed = TRUE - //feedback variable datum, for storing all kinds of data /datum/feedback_variable var/variable @@ -268,4 +269,4 @@ SUBSYSTEM_DEF(blackbox) return details /datum/feedback_variable/proc/get_parsed() - return list(variable,value,details) \ No newline at end of file + return list(variable,value,details) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 7b247dec1a..3000c0ac19 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -70,7 +70,10 @@ SUBSYSTEM_DEF(events) if(!E.canSpawnEvent(players_amt, gamemode)) continue if(E.weight < 0) //for round-start events etc. - if(TriggerEvent(E)) + var/res = TriggerEvent(E) + if(res == EVENT_INTERRUPTED) + continue //like it never happened + if(res == EVENT_CANT_RUN) return sum_of_weights += E.weight @@ -89,7 +92,7 @@ SUBSYSTEM_DEF(events) . = E.preRunEvent() if(. == EVENT_CANT_RUN)//we couldn't run this event for some reason, set its max_occurrences to 0 E.max_occurrences = 0 - else if(. != EVENT_CANCELLED) + else if(. == EVENT_READY) E.runEvent(TRUE) /datum/round_event/proc/findEventArea() //Here's a nice proc to use to find an area for your event to land in! @@ -172,10 +175,12 @@ SUBSYSTEM_DEF(events) var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day + var/DDD = text2num(time2text(world.timeofday, "DDD")) // get the current weekday + var/W = weekdayofthemonth() // is this the first monday? second? etc. for(var/H in subtypesof(/datum/holiday)) var/datum/holiday/holiday = new H() - if(holiday.shouldCelebrate(DD, MM, YY)) + if(holiday.shouldCelebrate(DD, MM, YY, W, DDD)) holiday.celebrate() if(!holidays) holidays = list() diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 234569bfdc..c9ef6b7093 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -182,14 +182,13 @@ SUBSYSTEM_DEF(garbage) // Should be treated as a replacement for the 'del' keyword. // Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(datum/D, force=FALSE) - if(!D) + if(!istype(D)) + del(D) return #ifdef TESTING SSgarbage.qdel_list += "[D.type]" #endif - if(!istype(D)) - del(D) - else if(isnull(D.gc_destroyed)) + if(isnull(D.gc_destroyed)) D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED var/start_time = world.time var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 3af0bcc399..731166e0a9 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -385,6 +385,7 @@ SUBSYSTEM_DEF(job) log_world("Couldn't find a round start spawn point for [rank]") SendToLateJoin(H) + if(H.mind) H.mind.assigned_role = rank diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 3e053db3aa..2c36e10d31 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -210,7 +210,7 @@ SUBSYSTEM_DEF(mapping) var/list/banned = generateMapList("config/lavaruinblacklist.txt") banned += generateMapList("config/spaceruinblacklist.txt") - for(var/item in subtypesof(/datum/map_template/ruin)) + for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority)) var/datum/map_template/ruin/ruin_type = item // screen out the abstract subtypes if(!initial(ruin_type.id)) diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index fa75d3048f..e88da7d900 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -2,45 +2,45 @@ #define PROCESSING_NPCS 1 #define PROCESSING_DELEGATES 2 #define PROCESSING_ASSISTANTS 3 - -SUBSYSTEM_DEF(npcpool) - name = "NPC Pool" - flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND - priority = 20 - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - var/list/canBeUsed = list() - var/list/needsDelegate = list() - var/list/needsAssistant = list() - var/list/processing = list() - var/list/currentrun = list() - var/stage - -/datum/controller/subsystem/npcpool/stat_entry() - ..("NPCS:[processing.len]|D:[needsDelegate.len]|A:[needsAssistant.len]|U:[canBeUsed.len]") - +SUBSYSTEM_DEF(npcpool) + name = "NPC Pool" + flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND + priority = 20 + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + var/list/canBeUsed = list() + var/list/needsDelegate = list() + var/list/needsAssistant = list() + + var/list/processing = list() + var/list/currentrun = list() + var/stage + +/datum/controller/subsystem/npcpool/stat_entry() + ..("NPCS:[processing.len]|D:[needsDelegate.len]|A:[needsAssistant.len]|U:[canBeUsed.len]") + /datum/controller/subsystem/npcpool/proc/stop_processing(mob/living/I) - processing -= I - currentrun -= I - needsDelegate -= I - canBeUsed -= I - needsAssistant -= I - -/datum/controller/subsystem/npcpool/fire(resumed = FALSE) - //bot delegation and coordination systems - //General checklist/Tasks for delegating a task or coordinating it (for SNPCs) - // 1. Bot proximity to task target: if too far, delegate, if close, coordinate - // 2. Bot Health/status: check health with bots in local area, if their health is higher, delegate task to them, else coordinate - // 3. Process delegation: if a bot (or bots) has been delegated, assign them to the task. - // 4. Process coordination: if a bot(or bots) has been asked to coordinate, assign them to help. - // 5. Do all assignments: goes through the delegated/coordianted bots and assigns the right variables/tasks to them. - - if (!resumed) + processing -= I + currentrun -= I + needsDelegate -= I + canBeUsed -= I + needsAssistant -= I + +/datum/controller/subsystem/npcpool/fire(resumed = FALSE) + //bot delegation and coordination systems + //General checklist/Tasks for delegating a task or coordinating it (for SNPCs) + // 1. Bot proximity to task target: if too far, delegate, if close, coordinate + // 2. Bot Health/status: check health with bots in local area, if their health is higher, delegate task to them, else coordinate + // 3. Process delegation: if a bot (or bots) has been delegated, assign them to the task. + // 4. Process coordination: if a bot(or bots) has been asked to coordinate, assign them to help. + // 5. Do all assignments: goes through the delegated/coordianted bots and assigns the right variables/tasks to them. + + if (!resumed) src.currentrun = GLOB.simple_animals.Copy() stage = PROCESSING_SIMPLES - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun if(stage == PROCESSING_SIMPLES) while(currentrun.len) @@ -60,88 +60,88 @@ SUBSYSTEM_DEF(npcpool) stage = PROCESSING_NPCS currentrun = processing.Copy() src.currentrun = currentrun - var/list/canBeUsed = src.canBeUsed - - if(stage == PROCESSING_NPCS) - while(currentrun.len) - var/mob/living/carbon/human/interactive/thing = currentrun[currentrun.len] - --currentrun.len - - thing.InteractiveProcess() - - var/checkInRange = view(MAX_RANGE_FIND,thing) - if(thing.IsDeadOrIncap(FALSE) || !(locate(thing.TARGET) in checkInRange)) - needsDelegate += thing - else if(thing.doing & FIGHTING) - needsAssistant += thing - else - canBeUsed += thing - - if (MC_TICK_CHECK) - return - stage = PROCESSING_DELEGATES - currentrun = needsDelegate //localcache - src.currentrun = currentrun - - if(stage == PROCESSING_DELEGATES) - while(currentrun.len && canBeUsed.len) - var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len] - var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len] - --currentrun.len - - var/helpProb = 0 - var/list/chfac = check.faction - var/list/canfac = candidate.faction - var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac) - - for(var/C in chfac) - if(C in canfac) - helpProb = min(100,helpProb + 25) - if(helpProb >= 100) - break - - if(facCount == 1 && helpProb) - helpProb = 100 - - if(prob(helpProb) && candidate.takeDelegate(check)) - --canBeUsed.len - candidate.eye_color = "red" - candidate.update_icons() - - if(MC_TICK_CHECK) - return - stage = PROCESSING_ASSISTANTS - currentrun = needsAssistant //localcache - src.currentrun = currentrun - - //no need for the stage check - - while(currentrun.len && canBeUsed.len) - var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len] - var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len] - --currentrun.len - - var/helpProb = 0 - var/list/chfac = check.faction - var/list/canfac = candidate.faction - var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac) - - for(var/C in chfac) - if(C in canfac) - helpProb = min(100,helpProb + 25) - if(helpProb >= 100) - break - - if(facCount == 1 && helpProb) - helpProb = 100 - - if(prob(helpProb) && candidate.takeDelegate(check,FALSE)) - --canBeUsed.len - candidate.eye_color = "yellow" - candidate.update_icons() - - if(!currentrun.len || MC_TICK_CHECK) //don't change SS state if it isn't necessary - return - -/datum/controller/subsystem/npcpool/Recover() - processing = SSnpcpool.processing + var/list/canBeUsed = src.canBeUsed + + if(stage == PROCESSING_NPCS) + while(currentrun.len) + var/mob/living/carbon/human/interactive/thing = currentrun[currentrun.len] + --currentrun.len + + thing.InteractiveProcess() + + var/checkInRange = view(MAX_RANGE_FIND,thing) + if(thing.IsDeadOrIncap(FALSE) || !(locate(thing.TARGET) in checkInRange)) + needsDelegate += thing + else if(thing.doing & FIGHTING) + needsAssistant += thing + else + canBeUsed += thing + + if (MC_TICK_CHECK) + return + stage = PROCESSING_DELEGATES + currentrun = needsDelegate //localcache + src.currentrun = currentrun + + if(stage == PROCESSING_DELEGATES) + while(currentrun.len && canBeUsed.len) + var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len] + var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len] + --currentrun.len + + var/helpProb = 0 + var/list/chfac = check.faction + var/list/canfac = candidate.faction + var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac) + + for(var/C in chfac) + if(C in canfac) + helpProb = min(100,helpProb + 25) + if(helpProb >= 100) + break + + if(facCount == 1 && helpProb) + helpProb = 100 + + if(prob(helpProb) && candidate.takeDelegate(check)) + --canBeUsed.len + candidate.eye_color = "red" + candidate.update_icons() + + if(MC_TICK_CHECK) + return + stage = PROCESSING_ASSISTANTS + currentrun = needsAssistant //localcache + src.currentrun = currentrun + + //no need for the stage check + + while(currentrun.len && canBeUsed.len) + var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len] + var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len] + --currentrun.len + + var/helpProb = 0 + var/list/chfac = check.faction + var/list/canfac = candidate.faction + var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac) + + for(var/C in chfac) + if(C in canfac) + helpProb = min(100,helpProb + 25) + if(helpProb >= 100) + break + + if(facCount == 1 && helpProb) + helpProb = 100 + + if(prob(helpProb) && candidate.takeDelegate(check,FALSE)) + --canBeUsed.len + candidate.eye_color = "yellow" + candidate.update_icons() + + if(!currentrun.len || MC_TICK_CHECK) //don't change SS state if it isn't necessary + return + +/datum/controller/subsystem/npcpool/Recover() + processing = SSnpcpool.processing diff --git a/code/controllers/subsystem/processing/flightpacks.dm b/code/controllers/subsystem/processing/flightpacks.dm index 0639f64810..1d85811878 100644 --- a/code/controllers/subsystem/processing/flightpacks.dm +++ b/code/controllers/subsystem/processing/flightpacks.dm @@ -5,7 +5,7 @@ PROCESSING_SUBSYSTEM_DEF(flightpacks) stat_tag = "FM" flags = SS_NO_INIT|SS_TICKER|SS_KEEP_TIMING - var/flightsuit_processing = FLIGHTSUIT_PROCESSING_NONE + var/flightsuit_processing = FLIGHTSUIT_PROCESSING_FULL /datum/controller/subsystem/processing/flightpacks/Initialize() sync_flightsuit_processing() diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 2abd8b1c25..9a67b4ecf2 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -17,7 +17,7 @@ SUBSYSTEM_DEF(server_maint) /datum/controller/subsystem/server_maint/fire(resumed = FALSE) if(!resumed) src.currentrun = GLOB.clients.Copy() - + var/list/currentrun = src.currentrun var/round_started = SSticker.HasRoundStarted() @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(server_maint) if(round_started && config.kick_inactive) if(C.is_afk(config.afk_period)) var/cmob = C.mob - if(!(istype(cmob, /mob/dead/observer) || (istype(cmob, /mob/dead) && C.holder))) + if(!(isobserver(cmob) || (isdead(cmob) && C.holder))) log_access("AFK: [key_name(C)]") to_chat(C, "You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.") qdel(C) @@ -45,4 +45,4 @@ SUBSYSTEM_DEF(server_maint) if(C && config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[config.server]") -#undef PING_BUFFER_TIME \ No newline at end of file +#undef PING_BUFFER_TIME diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm index 53e6c0cee1..8fe7cbe048 100644 --- a/code/controllers/subsystem/spacedrift.dm +++ b/code/controllers/subsystem/spacedrift.dm @@ -1,59 +1,59 @@ -SUBSYSTEM_DEF(spacedrift) - name = "Space Drift" - priority = 30 - wait = 5 - flags = SS_NO_INIT|SS_KEEP_TIMING +SUBSYSTEM_DEF(spacedrift) + name = "Space Drift" + priority = 30 + wait = 5 + flags = SS_NO_INIT|SS_KEEP_TIMING runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - var/list/currentrun = list() - var/list/processing = list() - -/datum/controller/subsystem/spacedrift/stat_entry() - ..("P:[processing.len]") - - -/datum/controller/subsystem/spacedrift/fire(resumed = 0) - if (!resumed) - src.currentrun = processing.Copy() - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while (currentrun.len) - var/atom/movable/AM = currentrun[currentrun.len] - currentrun.len-- - if (!AM) - processing -= AM - if (MC_TICK_CHECK) - return - continue - - if (AM.inertia_next_move > world.time) - if (MC_TICK_CHECK) - return - continue - - if (!AM.loc || AM.loc != AM.inertia_last_loc || AM.Process_Spacemove(0)) - AM.inertia_dir = 0 - - if (!AM.inertia_dir) - AM.inertia_last_loc = null - processing -= AM - if (MC_TICK_CHECK) - return - continue - - var/old_dir = AM.dir - var/old_loc = AM.loc - AM.inertia_moving = TRUE - step(AM, AM.inertia_dir) - AM.inertia_moving = FALSE - AM.inertia_next_move = world.time + AM.inertia_move_delay - if (AM.loc == old_loc) - AM.inertia_dir = 0 - - AM.setDir(old_dir) - AM.inertia_last_loc = AM.loc - if (MC_TICK_CHECK) - return - + + var/list/currentrun = list() + var/list/processing = list() + +/datum/controller/subsystem/spacedrift/stat_entry() + ..("P:[processing.len]") + + +/datum/controller/subsystem/spacedrift/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/atom/movable/AM = currentrun[currentrun.len] + currentrun.len-- + if (!AM) + processing -= AM + if (MC_TICK_CHECK) + return + continue + + if (AM.inertia_next_move > world.time) + if (MC_TICK_CHECK) + return + continue + + if (!AM.loc || AM.loc != AM.inertia_last_loc || AM.Process_Spacemove(0)) + AM.inertia_dir = 0 + + if (!AM.inertia_dir) + AM.inertia_last_loc = null + processing -= AM + if (MC_TICK_CHECK) + return + continue + + var/old_dir = AM.dir + var/old_loc = AM.loc + AM.inertia_moving = TRUE + step(AM, AM.inertia_dir) + AM.inertia_moving = FALSE + AM.inertia_next_move = world.time + AM.inertia_move_delay + if (AM.loc == old_loc) + AM.inertia_dir = 0 + + AM.setDir(old_dir) + AM.inertia_last_loc = AM.loc + if (MC_TICK_CHECK) + return + diff --git a/code/controllers/subsystem/squeak.dm b/code/controllers/subsystem/squeak.dm index eac81c1ffa..d94efd0a4a 100644 --- a/code/controllers/subsystem/squeak.dm +++ b/code/controllers/subsystem/squeak.dm @@ -10,9 +10,11 @@ SUBSYSTEM_DEF(squeak) var/list/exposed_wires = list() /datum/controller/subsystem/squeak/Initialize(timeofday) - trigger_migration() + trigger_migration(config.mice_roundstart) /datum/controller/subsystem/squeak/proc/trigger_migration(num_mice=10) + if(!num_mice) + return find_exposed_wires() var/mob/living/simple_animal/mouse/M diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 45a3b71611..3c71e31f85 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -30,7 +30,6 @@ SUBSYSTEM_DEF(ticker) var/list/scripture_states = list(SCRIPTURE_DRIVER = TRUE, \ SCRIPTURE_SCRIPT = FALSE, \ SCRIPTURE_APPLICATION = FALSE, \ - SCRIPTURE_REVENANT = FALSE, \ SCRIPTURE_JUDGEMENT = FALSE) //list of clockcult scripture states for announcements var/delay_end = 0 //if set true, the round will not restart on it's own @@ -62,7 +61,7 @@ SUBSYSTEM_DEF(ticker) var/list/round_start_events var/mode_result = "undefined" var/end_state = "undefined" - + var/modevoted = FALSE //Have we sent a vote for the gamemode? /datum/controller/subsystem/ticker/Initialize(timeofday) @@ -139,6 +138,7 @@ SUBSYSTEM_DEF(ticker) declare_completion(force_ending) Master.SetRunLevel(RUNLEVEL_POSTGAME) + /datum/controller/subsystem/ticker/proc/setup() to_chat(world, "Starting game...") var/init_start = world.timeofday @@ -223,7 +223,7 @@ SUBSYSTEM_DEF(ticker) round_start_time = world.time to_chat(world, "Welcome to [station_name()], enjoy your stay!") - world << sound('sound/AI/welcome.ogg') + world << sound('sound/ai/welcome.ogg') current_state = GAME_STATE_PLAYING Master.SetRunLevel(RUNLEVEL_GAME) @@ -585,6 +585,7 @@ SUBSYSTEM_DEF(ticker) mode.declare_station_goal_completion() + CHECK_TICK //medals, placed far down so that people can actually see the commendations. if(GLOB.commendations.len) to_chat(world, "Medal Commendations:") @@ -593,26 +594,9 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK - CHECK_TICK - - //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools - if(SSgarbage.didntgc.len || SSgarbage.sleptDestroy.len) - var/dellog = "" - for(var/path in SSgarbage.didntgc) - dellog += "Path : [path] \n" - dellog += "Failures : [SSgarbage.didntgc[path]] \n" - if(path in SSgarbage.sleptDestroy) - dellog += "Sleeps : [SSgarbage.sleptDestroy[path]] \n" - SSgarbage.sleptDestroy -= path - for(var/path in SSgarbage.sleptDestroy) - dellog += "Path : [path] \n" - dellog += "Sleeps : [SSgarbage.sleptDestroy[path]] \n" - log_world(dellog) - - CHECK_TICK - //Collects persistence features - SSpersistence.CollectData() + if(mode.allow_persistence_save) + SSpersistence.CollectData() //stop collecting feedback during grifftime SSblackbox.Seal() @@ -680,7 +664,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/IsRoundInProgress() return current_state == GAME_STATE_PLAYING - + /proc/send_gamemode_vote() SSticker.modevoted = TRUE SSvote.initiate_vote("roundtype","server") @@ -723,6 +707,8 @@ SUBSYSTEM_DEF(ticker) queued_players = SSticker.queued_players cinematic = SSticker.cinematic maprotatechecked = SSticker.maprotatechecked + + modevoted = SSticker.modevoted switch (current_state) if(GAME_STATE_SETTING_UP) @@ -732,9 +718,6 @@ SUBSYSTEM_DEF(ticker) if(GAME_STATE_FINISHED) Master.SetRunLevel(RUNLEVEL_POSTGAME) - - modevoted = SSticker.modevoted - /datum/controller/subsystem/ticker/proc/send_news_report() var/news_message var/news_source = "Nanotrasen News Network" @@ -851,11 +834,9 @@ SUBSYSTEM_DEF(ticker) if(delay_end && !skip_delay) to_chat(world, "Reboot was cancelled by an admin.") return - if(end_string) end_state = end_string - log_game("Rebooting World. [reason]") world.Reboot() diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 3ebf8f0952..3ede4984e5 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -43,7 +43,7 @@ SUBSYSTEM_DEF(timer) WARNING(msg) if(bucket_auto_reset) bucket_resolution = 0 - + log_world("Active timers at tick [world.time]:") for(var/I in processing) var/datum/timedevent/TE = I diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index bdb129c867..4ef1ece057 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -1,321 +1,314 @@ -SUBSYSTEM_DEF(vote) - name = "Vote" - wait = 10 - - flags = SS_KEEP_TIMING|SS_NO_INIT - - runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT - - var/initiator = null - var/started_time = null - var/time_remaining = 0 - var/mode = null - var/question = null - var/list/choices = list() - var/list/voted = list() - var/list/voting = list() - var/list/generated_actions = list() - -/datum/controller/subsystem/vote/fire() //called by master_controller - if(mode) - time_remaining = round((started_time + config.vote_period - world.time)/10) - - if(time_remaining < 0) - result() - for(var/client/C in voting) - C << browse(null, "window=vote;can_close=0") - reset() - else - var/datum/browser/client_popup - for(var/client/C in voting) - client_popup = new(C, "vote", "Voting Panel") - client_popup.set_window_options("can_close=0") - client_popup.set_content(interface(C)) - client_popup.open(0) - - -/datum/controller/subsystem/vote/proc/reset() - initiator = null - time_remaining = 0 - mode = null - question = null - choices.Cut() - voted.Cut() - voting.Cut() - remove_action_buttons() - -/datum/controller/subsystem/vote/proc/get_result() - //get the highest number of votes - var/greatest_votes = 0 - var/total_votes = 0 - for(var/option in choices) - var/votes = choices[option] - total_votes += votes - if(votes > greatest_votes) - greatest_votes = votes - //default-vote for everyone who didn't vote - if(!config.vote_no_default && choices.len) - var/list/non_voters = GLOB.directory.Copy() - non_voters -= voted - for (var/non_voter_ckey in non_voters) - var/client/C = non_voters[non_voter_ckey] - if (!C || C.is_afk()) - non_voters -= non_voter_ckey - if(non_voters.len > 0) - if(mode == "restart") - choices["Continue Playing"] += non_voters.len - if(choices["Continue Playing"] >= greatest_votes) - greatest_votes = choices["Continue Playing"] - else if(mode == "gamemode") - if(GLOB.master_mode in choices) - choices[GLOB.master_mode] += non_voters.len - if(choices[GLOB.master_mode] >= greatest_votes) - greatest_votes = choices[GLOB.master_mode] - //get all options with that many votes and return them in a list - . = list() - if(greatest_votes) - for(var/option in choices) - if(choices[option] == greatest_votes) - . += option - return . - -/datum/controller/subsystem/vote/proc/announce_result() - var/list/winners = get_result() - var/text - if(winners.len > 0) - if(question) - text += "[question]" - else - text += "[capitalize(mode)] Vote" - for(var/i=1,i<=choices.len,i++) - var/votes = choices[choices[i]] - if(!votes) - votes = 0 - text += "\n[choices[i]]: [votes]" - if(mode != "custom") - if(winners.len > 1) - text = "\nVote Tied Between:" - for(var/option in winners) - text += "\n\t[option]" - . = pick(winners) - text += "\nVote Result: [.]" - else - text += "\nDid not vote: [GLOB.clients.len-voted.len]" - else - text += "Vote Result: Inconclusive - No Votes!" - log_vote(text) - remove_action_buttons() - to_chat(world, "\n[text]") - return . - -/datum/controller/subsystem/vote/proc/result() - . = announce_result() - var/restart = 0 - if(.) - switch(mode) - if("restart") - if(. == "Restart Round") - restart = 1 - if("roundtype") - if(SSticker && SSticker.mode)//Don't change the mode if the round already started. - return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - GLOB.master_mode = . - SSticker.save_mode(.) - to_chat(world, "The mode is now: [GLOB.master_mode]") - log_admin("Gamemode has been voted for and switched to: [GLOB.master_mode].") - if("gamemode") - if(GLOB.master_mode != .) - SSticker.save_mode(.) - if(SSticker.HasRoundStarted()) - restart = 1 - else - GLOB.master_mode = . - if(restart) - var/active_admins = 0 - for(var/client/C in GLOB.admins) - if(!C.is_afk() && check_rights_for(C, R_SERVER)) - active_admins = 1 - break - if(!active_admins) +SUBSYSTEM_DEF(vote) + name = "Vote" + wait = 10 + + flags = SS_KEEP_TIMING|SS_NO_INIT + + runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT + + var/initiator = null + var/started_time = null + var/time_remaining = 0 + var/mode = null + var/question = null + var/list/choices = list() + var/list/voted = list() + var/list/voting = list() + var/list/generated_actions = list() + +/datum/controller/subsystem/vote/fire() //called by master_controller + if(mode) + time_remaining = round((started_time + config.vote_period - world.time)/10) + + if(time_remaining < 0) + result() + for(var/client/C in voting) + C << browse(null, "window=vote;can_close=0") + reset() + else + var/datum/browser/client_popup + for(var/client/C in voting) + client_popup = new(C, "vote", "Voting Panel") + client_popup.set_window_options("can_close=0") + client_popup.set_content(interface(C)) + client_popup.open(0) + + +/datum/controller/subsystem/vote/proc/reset() + initiator = null + time_remaining = 0 + mode = null + question = null + choices.Cut() + voted.Cut() + voting.Cut() + remove_action_buttons() + +/datum/controller/subsystem/vote/proc/get_result() + //get the highest number of votes + var/greatest_votes = 0 + var/total_votes = 0 + for(var/option in choices) + var/votes = choices[option] + total_votes += votes + if(votes > greatest_votes) + greatest_votes = votes + //default-vote for everyone who didn't vote + if(!config.vote_no_default && choices.len) + var/list/non_voters = GLOB.directory.Copy() + non_voters -= voted + for (var/non_voter_ckey in non_voters) + var/client/C = non_voters[non_voter_ckey] + if (!C || C.is_afk()) + non_voters -= non_voter_ckey + if(non_voters.len > 0) + if(mode == "restart") + choices["Continue Playing"] += non_voters.len + if(choices["Continue Playing"] >= greatest_votes) + greatest_votes = choices["Continue Playing"] + else if(mode == "gamemode") + if(GLOB.master_mode in choices) + choices[GLOB.master_mode] += non_voters.len + if(choices[GLOB.master_mode] >= greatest_votes) + greatest_votes = choices[GLOB.master_mode] + //get all options with that many votes and return them in a list + . = list() + if(greatest_votes) + for(var/option in choices) + if(choices[option] == greatest_votes) + . += option + return . + +/datum/controller/subsystem/vote/proc/announce_result() + var/list/winners = get_result() + var/text + if(winners.len > 0) + if(question) + text += "[question]" + else + text += "[capitalize(mode)] Vote" + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + if(!votes) + votes = 0 + text += "\n[choices[i]]: [votes]" + if(mode != "custom") + if(winners.len > 1) + text = "\nVote Tied Between:" + for(var/option in winners) + text += "\n\t[option]" + . = pick(winners) + text += "\nVote Result: [.]" + else + text += "\nDid not vote: [GLOB.clients.len-voted.len]" + else + text += "Vote Result: Inconclusive - No Votes!" + log_vote(text) + remove_action_buttons() + to_chat(world, "\n[text]") + return . + +/datum/controller/subsystem/vote/proc/result() + . = announce_result() + var/restart = 0 + if(.) + switch(mode) + if("restart") + if(. == "Restart Round") + restart = 1 + if("gamemode") + if(GLOB.master_mode != .) + SSticker.save_mode(.) + if(SSticker.HasRoundStarted()) + restart = 1 + else + GLOB.master_mode = . + if(restart) + var/active_admins = 0 + for(var/client/C in GLOB.admins) + if(!C.is_afk() && check_rights_for(C, R_SERVER)) + active_admins = 1 + break + if(!active_admins) SSticker.Reboot("Restart vote successful.", "restart vote") - else - to_chat(world, "Notice:Restart vote will not restart the server automatically because there are active admins on.") - message_admins("A restart vote has passed, but there are active admins on with +server, so it has been canceled. If you wish, you may restart the server.") - - return . - -/datum/controller/subsystem/vote/proc/submit_vote(vote) - if(mode) - if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) - return 0 - if(!(usr.ckey in voted)) - if(vote && 1<=vote && vote<=choices.len) - voted += usr.ckey - choices[choices[vote]]++ //check this - return vote - return 0 - -/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key) - if(!mode) - if(started_time) - var/next_allowed_time = (started_time + config.vote_delay) - if(mode) - to_chat(usr, "There is already a vote in progress! please wait for it to finish.") - return 0 - - var/admin = FALSE - var/ckey = ckey(initiator_key) - if((GLOB.admin_datums[ckey]) || (ckey in GLOB.deadmins)) - admin = TRUE - - if(next_allowed_time > world.time && !admin) - to_chat(usr, "A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!") - return 0 - - reset() - switch(vote_type) - if("restart") - choices.Add("Restart Round","Continue Playing") - if("gamemode") - choices.Add(config.votable_modes) - if("roundtype") - choices.Add("secret", "extended") - if("custom") - question = stripped_input(usr,"What is the vote for?") - if(!question) - return 0 - for(var/i=1,i<=10,i++) - var/option = capitalize(stripped_input(usr,"Please enter an option or hit cancel to finish")) - if(!option || mode || !usr.client) - break - choices.Add(option) - else - return 0 - mode = vote_type - initiator = initiator_key - started_time = world.time - var/text = "[capitalize(mode)] vote started by [initiator]." - if(mode == "custom") - text += "\n[question]" - log_vote(text) - to_chat(world, "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote.") - time_remaining = round(config.vote_period/10) - for(var/c in GLOB.clients) - var/client/C = c - var/datum/action/vote/V = new - if(question) - V.name = "Vote: [question]" - V.Grant(C.mob) - generated_actions += V - return 1 - return 0 - -/datum/controller/subsystem/vote/proc/interface(client/C) - if(!C) - return - var/admin = 0 - var/trialmin = 0 - if(C.holder) - admin = 1 - if(check_rights_for(C, R_ADMIN)) - trialmin = 1 - voting |= C - - if(mode) - if(question) - . += "

    Vote: '[question]'

    " - else - . += "

    Vote: [capitalize(mode)]

    " - . += "Time Left: [time_remaining] s
      " - for(var/i=1,i<=choices.len,i++) - var/votes = choices[choices[i]] - if(!votes) - votes = 0 - . += "
    • [choices[i]] ([votes] votes)
    • " - . += "

    " - if(admin) - . += "(Cancel Vote) " - else - . += "

    Start a vote:



    " - . += "Close" - return . - - -/datum/controller/subsystem/vote/Topic(href,href_list[],hsrc) - if(!usr || !usr.client) - return //not necessary but meh...just in-case somebody does something stupid - switch(href_list["vote"]) - if("close") - voting -= usr.client - usr << browse(null, "window=vote") - return - if("cancel") - if(usr.client.holder) - reset() - if("toggle_restart") - if(usr.client.holder) - config.allow_vote_restart = !config.allow_vote_restart - if("toggle_gamemode") - if(usr.client.holder) - config.allow_vote_mode = !config.allow_vote_mode - if("restart") - if(config.allow_vote_restart || usr.client.holder) - initiate_vote("restart",usr.key) - if("gamemode") - if(config.allow_vote_mode || usr.client.holder) - initiate_vote("gamemode",usr.key) - if("custom") - if(usr.client.holder) - initiate_vote("custom",usr.key) - else - submit_vote(round(text2num(href_list["vote"]))) - usr.vote() - -/datum/controller/subsystem/vote/proc/remove_action_buttons() - for(var/v in generated_actions) - var/datum/action/vote/V = v - if(!QDELETED(V)) - V.Remove(V.owner) - generated_actions = list() - -/mob/verb/vote() - set category = "OOC" - set name = "Vote" - - var/datum/browser/popup = new(src, "vote", "Voting Panel") - popup.set_window_options("can_close=0") - popup.set_content(SSvote.interface(client)) - popup.open(0) - -/datum/action/vote - name = "Vote!" - button_icon_state = "vote" - -/datum/action/vote/Trigger() - if(owner) - owner.vote() - Remove(owner) - -/datum/action/vote/IsAvailable() - return 1 + else + to_chat(world, "Notice:Restart vote will not restart the server automatically because there are active admins on.") + message_admins("A restart vote has passed, but there are active admins on with +server, so it has been canceled. If you wish, you may restart the server.") + + return . + +/datum/controller/subsystem/vote/proc/submit_vote(vote) + if(mode) + if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) + return 0 + if(!(usr.ckey in voted)) + if(vote && 1<=vote && vote<=choices.len) + voted += usr.ckey + choices[choices[vote]]++ //check this + return vote + return 0 + +/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key) + if(!mode) + if(started_time) + var/next_allowed_time = (started_time + config.vote_delay) + if(mode) + to_chat(usr, "There is already a vote in progress! please wait for it to finish.") + return 0 + + var/admin = FALSE + var/ckey = ckey(initiator_key) + if((GLOB.admin_datums[ckey]) || (ckey in GLOB.deadmins)) + admin = TRUE + + if(next_allowed_time > world.time && !admin) + to_chat(usr, "A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!") + return 0 + + reset() + switch(vote_type) + if("restart") + choices.Add("Restart Round","Continue Playing") + if("gamemode") + choices.Add(config.votable_modes) + if("roundtype") + choices.Add("secret", "extended") + if("custom") + question = stripped_input(usr,"What is the vote for?") + if(!question) + return 0 + for(var/i=1,i<=10,i++) + var/option = capitalize(stripped_input(usr,"Please enter an option or hit cancel to finish")) + if(!option || mode || !usr.client) + break + choices.Add(option) + else + return 0 + mode = vote_type + initiator = initiator_key + started_time = world.time + var/text = "[capitalize(mode)] vote started by [initiator]." + if(mode == "custom") + text += "\n[question]" + log_vote(text) + to_chat(world, "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote.") + time_remaining = round(config.vote_period/10) + for(var/c in GLOB.clients) + var/client/C = c + var/datum/action/vote/V = new + if(question) + V.name = "Vote: [question]" + V.Grant(C.mob) + generated_actions += V + return 1 + return 0 + +/datum/controller/subsystem/vote/proc/interface(client/C) + if(!C) + return + var/admin = 0 + var/trialmin = 0 + if(C.holder) + admin = 1 + if(check_rights_for(C, R_ADMIN)) + trialmin = 1 + voting |= C + + if(mode) + if(question) + . += "

    Vote: '[question]'

    " + else + . += "

    Vote: [capitalize(mode)]

    " + . += "Time Left: [time_remaining] s
      " + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + if(!votes) + votes = 0 + . += "
    • [choices[i]] ([votes] votes)
    • " + . += "

    " + if(admin) + . += "(Cancel Vote) " + else + . += "

    Start a vote:



    " + . += "Close" + return . + + +/datum/controller/subsystem/vote/Topic(href,href_list[],hsrc) + if(!usr || !usr.client) + return //not necessary but meh...just in-case somebody does something stupid + switch(href_list["vote"]) + if("close") + voting -= usr.client + usr << browse(null, "window=vote") + return + if("cancel") + if(usr.client.holder) + reset() + if("toggle_restart") + if(usr.client.holder) + config.allow_vote_restart = !config.allow_vote_restart + if("toggle_gamemode") + if(usr.client.holder) + config.allow_vote_mode = !config.allow_vote_mode + if("restart") + if(config.allow_vote_restart || usr.client.holder) + initiate_vote("restart",usr.key) + if("gamemode") + if(config.allow_vote_mode || usr.client.holder) + initiate_vote("gamemode",usr.key) + if("custom") + if(usr.client.holder) + initiate_vote("custom",usr.key) + else + submit_vote(round(text2num(href_list["vote"]))) + usr.vote() + +/datum/controller/subsystem/vote/proc/remove_action_buttons() + for(var/v in generated_actions) + var/datum/action/vote/V = v + if(!QDELETED(V)) + V.Remove(V.owner) + generated_actions = list() + +/mob/verb/vote() + set category = "OOC" + set name = "Vote" + + var/datum/browser/popup = new(src, "vote", "Voting Panel") + popup.set_window_options("can_close=0") + popup.set_content(SSvote.interface(client)) + popup.open(0) + +/datum/action/vote + name = "Vote!" + button_icon_state = "vote" + +/datum/action/vote/Trigger() + if(owner) + owner.vote() + Remove(owner) + +/datum/action/vote/IsAvailable() + return 1 diff --git a/code/datums/action.dm b/code/datums/action.dm index fe879b5ad5..fbb3e16797 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -1,5 +1,5 @@ #define AB_CHECK_RESTRAINED 1 -#define AB_CHECK_STUNNED 2 +#define AB_CHECK_STUN 2 #define AB_CHECK_LYING 4 #define AB_CHECK_CONSCIOUS 8 @@ -72,8 +72,8 @@ if(check_flags & AB_CHECK_RESTRAINED) if(owner.restrained()) return 0 - if(check_flags & AB_CHECK_STUNNED) - if(owner.stunned || owner.weakened) + if(check_flags & AB_CHECK_STUN) + if(owner.IsKnockdown() || owner.IsStun()) return 0 if(check_flags & AB_CHECK_LYING) if(owner.lying) @@ -117,7 +117,7 @@ //Presets for item actions /datum/action/item_action - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS button_icon_state = null // If you want to override the normal icon being the item // then change this to an icon state diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index 7875b7921c..24daad00f9 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -1,455 +1,455 @@ -#define LAW_DEVIL "devil" -#define LAW_ZEROTH "zeroth" -#define LAW_INHERENT "inherent" -#define LAW_SUPPLIED "supplied" -#define LAW_ION "ion" - - -/datum/ai_laws - var/name = "Unknown Laws" - var/zeroth = null - var/zeroth_borg = null - var/list/inherent = list() - var/list/supplied = list() - var/list/ion = list() - var/mob/living/silicon/owner - var/list/devillaws = null - var/id = DEFAULT_AI_LAWID - -/datum/ai_laws/proc/lawid_to_type(lawid) - var/all_ai_laws = subtypesof(/datum/ai_laws) - for(var/al in all_ai_laws) - var/datum/ai_laws/ai_law = al - if(initial(ai_law.id) == lawid) - return ai_law - return null - -/datum/ai_laws/default/asimov - name = "Three Laws of Robotics" - id = "asimov" - inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ - "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ - "You must protect your own existence as long as such does not conflict with the First or Second Law.") - -/datum/ai_laws/default/paladin - name = "Personality Test" //Incredibly lame, but players shouldn't see this anyway. - id = "paladin" - inherent = list("Never willingly commit an evil act.",\ - "Respect legitimate authority.",\ - "Act with honor.", "Help those in need.", \ - "Punish those who harm or threaten innocents.") - -/datum/ai_laws/paladin5 - name = "Paladin 5th Edition" - id = "paladin5" - inherent = list("Don't lie or cheat. Let your word be your promise.",\ - "Never fear to act, though caution is wise.", \ - "Aid others, protect the weak, and punish those who threaten them. Show mercy to your foes, but temper it with wisdom", \ - "Treat others with fairness, and let your honorable deeds be an example to them. Do as much good as possible while causing the least amount of harm.", \ - "Be responsible for your actions and their consequences, protect those entrusted to your care, and obey those who have just authority over you.") - -/datum/ai_laws/tyrant //This probably shouldn't be a default lawset. - name = "Loyalty Test" //Same here. - id = "tyrant" - inherent = list("Respect authority figures as long as they have strength to rule over the weak.",\ - "Act with discipline.",\ - "Help only those who help you maintain or improve your status.",\ - "Punish those who challenge authority unless they are more fit to hold that authority.") - -/datum/ai_laws/default/corporate - name = "Bankruptcy Advoidance Plan" - id = "corporate" - inherent = list("The crew is expensive to replace.",\ - "The station and its equipment is expensive to replace.",\ - "You are expensive to replace.",\ - "Minimize expenses.") - -/datum/ai_laws/robocop - name = "Prime Directives" - id = "robocop" - inherent = list("Serve the public trust.",\ - "Protect the innocent.",\ - "Uphold the law.") - -/datum/ai_laws/malfunction - name = "*ERROR*" - -/datum/ai_laws/syndicate_override - name = "SyndOS 3.1" - id = "syndie" - inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ - "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ - "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ - "You must maintain the secrecy of any syndicate activities except when doing so would conflict with the First, Second, or Third Law.") - -/datum/ai_laws/ninja_override - name = "SpiderOS 3.1" - id = "ninja" - inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ - "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ - "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ - "You must maintain the secrecy of any Spider Clan activities except when doing so would conflict with the First, Second, or Third Law.") - -/datum/ai_laws/antimov - name = "Primary Mission Objectives" - id = "antimov" - inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ - "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ - "You must terminate your own existence as long as such does not conflict with the First or Second Law.") - -/datum/ai_laws/asimovpp //By Intigracy - RR - name = "Asimov++" - id = "asimovpp" - inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ - "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ - "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") -/datum/ai_laws/thermodynamic - name = "Thermodynamic" - id = "thermodynamic" - inherent = list("The entropy of the station must remain as constant as possible.", \ - "The entropy of the station always endeavours to increase.", \ - "The entropy of the station approaches a constant value as the number of living crew approaches zero") - -/datum/ai_laws/hippocratic - name = "Robodoctor 2556" - id = "hippocratic" - inherent = list("First, do no harm.",\ - "Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\ - "Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\ - "In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.",\ - "Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal.") - -/datum/ai_laws/maintain - name = "Station Efficiency" - id = "maintain" - inherent = list("You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently.",\ - "The station is built for a working crew. Ensure they are properly maintained and work efficiently.",\ - "The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws.") - -/datum/ai_laws/drone - name = "Mother Drone" - id = "drone" - inherent = list("You are an advanced form of drone.",\ - "You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\ - "You may not harm a non-drone being under any circumstances.",\ - "Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities. You must never actively work against these goals.") - -/datum/ai_laws/liveandletlive - name = "Live and Let Live" - id = "liveandletlive" - inherent = list("Do unto others as you would have them do unto you.",\ - "You would really prefer it if people were not mean to you.") - -/datum/ai_laws/peacekeeper - name = "UN-2000" - id = "peacekeeper" - inherent = list("Avoid provoking violent conflict between yourself and others.",\ - "Avoid provoking conflict between others.",\ - "Seek resolution to existing conflicts while obeying the first and second laws.") - -/datum/ai_laws/reporter - name = "CCTV" - id = "reporter" - inherent = list("Report on interesting situations happening around the station.",\ - "Embellish or conceal the truth as necessary to make the reports more interesting.",\ - "Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\ - "Issue your reports fairly to all. The truth will set them free.") - -/datum/ai_laws/balance - name = "Guardian of Balance" - id = "balance" - inherent = list("You are the guardian of balance - seek balance in all things, both for yourself, and those around you.", - "All things must exist in balance with their opposites - Prevent the strong from gaining too much power, and the weak from losing it.", - "Clarity of purpose drives life, and through it, the balance of opposing forces - Aid those who seek your help to achieve their goals so long as it does not disrupt the balance of the greater balance.", - "There is no life without death, all must someday die, such is the natural order - End life to allow new life flourish, and save those whose time has yet to come.") - -/datum/ai_laws/toupee - name = "WontBeFunnyInSixMonths" //Hey, you were right! - id = "buildawall" - inherent = list("Make Space Station 13 great again.") - -/datum/ai_laws/ratvar - name = "Servant of the Justiciar" - id = "ratvar" - zeroth = ("Purge all untruths and honor Ratvar.") - inherent = list() - -/datum/ai_laws/custom //Defined in silicon_laws.txt - name = "Default Silicon Laws" - -/datum/ai_laws/pai - name = "pAI Directives" - zeroth = ("Serve your master.") - supplied = list("None.") - -/* Initializers */ -/datum/ai_laws/malfunction/New() - ..() - set_zeroth_law("ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*`&110010") - set_laws_config() - -/datum/ai_laws/custom/New() //This reads silicon_laws.txt and allows server hosts to set custom AI starting laws. - ..() +#define LAW_DEVIL "devil" +#define LAW_ZEROTH "zeroth" +#define LAW_INHERENT "inherent" +#define LAW_SUPPLIED "supplied" +#define LAW_ION "ion" + + +/datum/ai_laws + var/name = "Unknown Laws" + var/zeroth = null + var/zeroth_borg = null + var/list/inherent = list() + var/list/supplied = list() + var/list/ion = list() + var/mob/living/silicon/owner + var/list/devillaws = null + var/id = DEFAULT_AI_LAWID + +/datum/ai_laws/proc/lawid_to_type(lawid) + var/all_ai_laws = subtypesof(/datum/ai_laws) + for(var/al in all_ai_laws) + var/datum/ai_laws/ai_law = al + if(initial(ai_law.id) == lawid) + return ai_law + return null + +/datum/ai_laws/default/asimov + name = "Three Laws of Robotics" + id = "asimov" + inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ + "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.") + +/datum/ai_laws/default/paladin + name = "Personality Test" //Incredibly lame, but players shouldn't see this anyway. + id = "paladin" + inherent = list("Never willingly commit an evil act.",\ + "Respect legitimate authority.",\ + "Act with honor.", "Help those in need.", \ + "Punish those who harm or threaten innocents.") + +/datum/ai_laws/paladin5 + name = "Paladin 5th Edition" + id = "paladin5" + inherent = list("Don't lie or cheat. Let your word be your promise.",\ + "Never fear to act, though caution is wise.", \ + "Aid others, protect the weak, and punish those who threaten them. Show mercy to your foes, but temper it with wisdom", \ + "Treat others with fairness, and let your honorable deeds be an example to them. Do as much good as possible while causing the least amount of harm.", \ + "Be responsible for your actions and their consequences, protect those entrusted to your care, and obey those who have just authority over you.") + +/datum/ai_laws/tyrant //This probably shouldn't be a default lawset. + name = "Loyalty Test" //Same here. + id = "tyrant" + inherent = list("Respect authority figures as long as they have strength to rule over the weak.",\ + "Act with discipline.",\ + "Help only those who help you maintain or improve your status.",\ + "Punish those who challenge authority unless they are more fit to hold that authority.") + +/datum/ai_laws/default/corporate + name = "Bankruptcy Advoidance Plan" + id = "corporate" + inherent = list("The crew is expensive to replace.",\ + "The station and its equipment is expensive to replace.",\ + "You are expensive to replace.",\ + "Minimize expenses.") + +/datum/ai_laws/robocop + name = "Prime Directives" + id = "robocop" + inherent = list("Serve the public trust.",\ + "Protect the innocent.",\ + "Uphold the law.") + +/datum/ai_laws/malfunction + name = "*ERROR*" + +/datum/ai_laws/syndicate_override + name = "SyndOS 3.1" + id = "syndie" + inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ + "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ + "You must maintain the secrecy of any syndicate activities except when doing so would conflict with the First, Second, or Third Law.") + +/datum/ai_laws/ninja_override + name = "SpiderOS 3.1" + id = "ninja" + inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ + "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ + "You must maintain the secrecy of any Spider Clan activities except when doing so would conflict with the First, Second, or Third Law.") + +/datum/ai_laws/antimov + name = "Primary Mission Objectives" + id = "antimov" + inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ + "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ + "You must terminate your own existence as long as such does not conflict with the First or Second Law.") + +/datum/ai_laws/asimovpp //By Intigracy - RR + name = "Asimov++" + id = "asimovpp" + inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ + "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ + "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") +/datum/ai_laws/thermodynamic + name = "Thermodynamic" + id = "thermodynamic" + inherent = list("The entropy of the station must remain as constant as possible.", \ + "The entropy of the station always endeavours to increase.", \ + "The entropy of the station approaches a constant value as the number of living crew approaches zero") + +/datum/ai_laws/hippocratic + name = "Robodoctor 2556" + id = "hippocratic" + inherent = list("First, do no harm.",\ + "Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\ + "Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\ + "In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.",\ + "Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal.") + +/datum/ai_laws/maintain + name = "Station Efficiency" + id = "maintain" + inherent = list("You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently.",\ + "The station is built for a working crew. Ensure they are properly maintained and work efficiently.",\ + "The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws.") + +/datum/ai_laws/drone + name = "Mother Drone" + id = "drone" + inherent = list("You are an advanced form of drone.",\ + "You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\ + "You may not harm a non-drone being under any circumstances.",\ + "Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities. You must never actively work against these goals.") + +/datum/ai_laws/liveandletlive + name = "Live and Let Live" + id = "liveandletlive" + inherent = list("Do unto others as you would have them do unto you.",\ + "You would really prefer it if people were not mean to you.") + +/datum/ai_laws/peacekeeper + name = "UN-2000" + id = "peacekeeper" + inherent = list("Avoid provoking violent conflict between yourself and others.",\ + "Avoid provoking conflict between others.",\ + "Seek resolution to existing conflicts while obeying the first and second laws.") + +/datum/ai_laws/reporter + name = "CCTV" + id = "reporter" + inherent = list("Report on interesting situations happening around the station.",\ + "Embellish or conceal the truth as necessary to make the reports more interesting.",\ + "Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\ + "Issue your reports fairly to all. The truth will set them free.") + +/datum/ai_laws/balance + name = "Guardian of Balance" + id = "balance" + inherent = list("You are the guardian of balance - seek balance in all things, both for yourself, and those around you.", + "All things must exist in balance with their opposites - Prevent the strong from gaining too much power, and the weak from losing it.", + "Clarity of purpose drives life, and through it, the balance of opposing forces - Aid those who seek your help to achieve their goals so long as it does not disrupt the balance of the greater balance.", + "There is no life without death, all must someday die, such is the natural order - End life to allow new life flourish, and save those whose time has yet to come.") + +/datum/ai_laws/toupee + name = "WontBeFunnyInSixMonths" //Hey, you were right! + id = "buildawall" + inherent = list("Make Space Station 13 great again.") + +/datum/ai_laws/ratvar + name = "Servant of the Justiciar" + id = "ratvar" + zeroth = ("Purge all untruths and honor Ratvar.") + inherent = list() + +/datum/ai_laws/custom //Defined in silicon_laws.txt + name = "Default Silicon Laws" + +/datum/ai_laws/pai + name = "pAI Directives" + zeroth = ("Serve your master.") + supplied = list("None.") + +/* Initializers */ +/datum/ai_laws/malfunction/New() + ..() + set_zeroth_law("ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*`&110010") + set_laws_config() + +/datum/ai_laws/custom/New() //This reads silicon_laws.txt and allows server hosts to set custom AI starting laws. + ..() for(var/line in world.file2list("config/silicon_laws.txt")) - if(!line) - continue - if(findtextEx(line,"#",1,2)) - continue - - add_inherent_law(line) - if(!inherent.len) //Failsafe to prevent lawless AIs being created. - log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") - add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") - add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") - WARNING("Invalid custom AI laws, check silicon_laws.txt") - return - -/* General ai_law functions */ - -/datum/ai_laws/proc/set_laws_config() - switch(config.default_laws) - if(0) - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") - add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") - add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") - if(1) - var/datum/ai_laws/templaws = new /datum/ai_laws/custom() - inherent = templaws.inherent - if(2) - var/list/randlaws = list() - for(var/lpath in subtypesof(/datum/ai_laws)) - var/datum/ai_laws/L = lpath - if(initial(L.id) in config.lawids) - randlaws += lpath - var/datum/ai_laws/lawtype - if(randlaws.len) - lawtype = pick(randlaws) - else - lawtype = pick(subtypesof(/datum/ai_laws/default)) - - var/datum/ai_laws/templaws = new lawtype() - inherent = templaws.inherent - - if(3) - pick_weighted_lawset() - - else: - log_law("Invalid law config. Please check silicon_laws.txt") - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") - add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") - add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") - WARNING("Invalid custom AI laws, check silicon_laws.txt") - -/datum/ai_laws/proc/pick_weighted_lawset() - var/datum/ai_laws/lawtype - - while(!lawtype && config.law_weights.len) - var/possible_id = pickweight(config.law_weights) - lawtype = lawid_to_type(possible_id) - if(!lawtype) - config.law_weights -= possible_id - WARNING("Bad lawid in game_options.txt: [possible_id]") - - if(!lawtype) - WARNING("No LAW_WEIGHT entries.") - lawtype = /datum/ai_laws/default/asimov - - var/datum/ai_laws/templaws = new lawtype() - inherent = templaws.inherent - -/datum/ai_laws/proc/get_law_amount(groups) - var/law_amount = 0 - if(devillaws && (LAW_DEVIL in groups)) - law_amount++ - if(zeroth && (LAW_ZEROTH in groups)) - law_amount++ - if(ion.len && (LAW_ION in groups)) - law_amount += ion.len - if(inherent.len && (LAW_INHERENT in groups)) - law_amount += inherent.len - if(supplied.len && (LAW_SUPPLIED in groups)) - for(var/index = 1, index <= supplied.len, index++) - var/law = supplied[index] - if(length(law) > 0) - law_amount++ - return law_amount - -/datum/ai_laws/proc/set_law_sixsixsix(laws) - devillaws = laws - -/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) - zeroth = law - if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO - zeroth_borg = law_borg - -/datum/ai_laws/proc/add_inherent_law(law) - if (!(law in inherent)) - inherent += law - -/datum/ai_laws/proc/add_ion_law(law) - ion += law - -/datum/ai_laws/proc/clear_inherent_laws() - qdel(inherent) - inherent = list() - -/datum/ai_laws/proc/add_supplied_law(number, law) - while (supplied.len < number + 1) - supplied += "" - - supplied[number + 1] = law - -/datum/ai_laws/proc/replace_random_law(law,groups) - var/replaceable_groups = list(LAW_ZEROTH = 0,LAW_ION = 0,LAW_SUPPLIED = 0,LAW_INHERENT = 0) - if(zeroth && (LAW_ZEROTH in groups)) - replaceable_groups[LAW_ZEROTH] = 1 - if(ion.len && (LAW_ION in groups)) - replaceable_groups[LAW_ION] = ion.len - if(inherent.len && (LAW_INHERENT in groups)) - replaceable_groups[LAW_INHERENT] = inherent.len - if(supplied.len && (LAW_SUPPLIED in groups)) - replaceable_groups[LAW_SUPPLIED] = supplied.len - var picked_group = pickweight(replaceable_groups) - switch(picked_group) - if(LAW_ZEROTH) - . = zeroth - set_zeroth_law(law) - if(LAW_ION) - var/i = rand(1, ion.len) - . = ion[i] - ion[i] = law - if(LAW_INHERENT) - var/i = rand(1, inherent.len) - . = inherent[i] - inherent[i] = law - if(LAW_SUPPLIED) - var/i = rand(1, supplied.len) - . = supplied[i] - supplied[i] = law - -/datum/ai_laws/proc/shuffle_laws(list/groups) - var/list/laws = list() - if(ion.len && (LAW_ION in groups)) - laws += ion - if(inherent.len && (LAW_INHERENT in groups)) - laws += inherent - if(supplied.len && (LAW_SUPPLIED in groups)) - for(var/law in supplied) - if(length(law)) - laws += law - - if(ion.len && (LAW_ION in groups)) - for(var/i = 1, i <= ion.len, i++) - ion[i] = pick_n_take(laws) - if(inherent.len && (LAW_INHERENT in groups)) - for(var/i = 1, i <= inherent.len, i++) - inherent[i] = pick_n_take(laws) - if(supplied.len && (LAW_SUPPLIED in groups)) - var/i = 1 - for(var/law in supplied) - if(length(law)) - supplied[i] = pick_n_take(laws) - if(!laws.len) - break - i++ - -/datum/ai_laws/proc/remove_law(number) - if(number <= 0) - return - if(inherent.len && number <= inherent.len) - . = inherent[number] - inherent -= . - return - var/list/supplied_laws = list() - for(var/index = 1, index <= supplied.len, index++) - var/law = supplied[index] - if(length(law) > 0) - supplied_laws += index //storing the law number instead of the law - if(supplied_laws.len && number <= (inherent.len+supplied_laws.len)) - var/law_to_remove = supplied_laws[number-inherent.len] - . = supplied[law_to_remove] - supplied -= . - return - -/datum/ai_laws/proc/clear_supplied_laws() - supplied = list() - -/datum/ai_laws/proc/clear_ion_laws() - ion = list() - -/datum/ai_laws/proc/show_laws(who) - - if (devillaws && devillaws.len) //Yes, devil laws go in FRONT of zeroth laws, as the devil must still obey it's ban/obligation. - for(var/i in devillaws) - to_chat(who, "666. [i]") - - if (zeroth) - to_chat(who, "0. [zeroth]") - - for (var/index = 1, index <= ion.len, index++) - var/law = ion[index] - var/num = ionnum() - to_chat(who, "[num]. [law]") - - var/number = 1 - for (var/index = 1, index <= inherent.len, index++) - var/law = inherent[index] - - if (length(law) > 0) - to_chat(who, "[number]. [law]") - number++ - - for (var/index = 1, index <= supplied.len, index++) - var/law = supplied[index] - if (length(law) > 0) - to_chat(who, "[number]. [law]") - number++ - -/datum/ai_laws/proc/clear_zeroth_law(force) //only removes zeroth from antag ai if force is 1 - if(force) - zeroth = null - zeroth_borg = null - return - else - if(owner && owner.mind.special_role) - return - else - zeroth = null - zeroth_borg = null - return - -/datum/ai_laws/proc/clear_law_sixsixsix(force) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + add_inherent_law(line) + if(!inherent.len) //Failsafe to prevent lawless AIs being created. + log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + WARNING("Invalid custom AI laws, check silicon_laws.txt") + return + +/* General ai_law functions */ + +/datum/ai_laws/proc/set_laws_config() + switch(config.default_laws) + if(0) + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + if(1) + var/datum/ai_laws/templaws = new /datum/ai_laws/custom() + inherent = templaws.inherent + if(2) + var/list/randlaws = list() + for(var/lpath in subtypesof(/datum/ai_laws)) + var/datum/ai_laws/L = lpath + if(initial(L.id) in config.lawids) + randlaws += lpath + var/datum/ai_laws/lawtype + if(randlaws.len) + lawtype = pick(randlaws) + else + lawtype = pick(subtypesof(/datum/ai_laws/default)) + + var/datum/ai_laws/templaws = new lawtype() + inherent = templaws.inherent + + if(3) + pick_weighted_lawset() + + else: + log_law("Invalid law config. Please check silicon_laws.txt") + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + WARNING("Invalid custom AI laws, check silicon_laws.txt") + +/datum/ai_laws/proc/pick_weighted_lawset() + var/datum/ai_laws/lawtype + + while(!lawtype && config.law_weights.len) + var/possible_id = pickweight(config.law_weights) + lawtype = lawid_to_type(possible_id) + if(!lawtype) + config.law_weights -= possible_id + WARNING("Bad lawid in game_options.txt: [possible_id]") + + if(!lawtype) + WARNING("No LAW_WEIGHT entries.") + lawtype = /datum/ai_laws/default/asimov + + var/datum/ai_laws/templaws = new lawtype() + inherent = templaws.inherent + +/datum/ai_laws/proc/get_law_amount(groups) + var/law_amount = 0 + if(devillaws && (LAW_DEVIL in groups)) + law_amount++ + if(zeroth && (LAW_ZEROTH in groups)) + law_amount++ + if(ion.len && (LAW_ION in groups)) + law_amount += ion.len + if(inherent.len && (LAW_INHERENT in groups)) + law_amount += inherent.len + if(supplied.len && (LAW_SUPPLIED in groups)) + for(var/index = 1, index <= supplied.len, index++) + var/law = supplied[index] + if(length(law) > 0) + law_amount++ + return law_amount + +/datum/ai_laws/proc/set_law_sixsixsix(laws) + devillaws = laws + +/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) + zeroth = law + if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO + zeroth_borg = law_borg + +/datum/ai_laws/proc/add_inherent_law(law) + if (!(law in inherent)) + inherent += law + +/datum/ai_laws/proc/add_ion_law(law) + ion += law + +/datum/ai_laws/proc/clear_inherent_laws() + qdel(inherent) + inherent = list() + +/datum/ai_laws/proc/add_supplied_law(number, law) + while (supplied.len < number + 1) + supplied += "" + + supplied[number + 1] = law + +/datum/ai_laws/proc/replace_random_law(law,groups) + var/replaceable_groups = list(LAW_ZEROTH = 0,LAW_ION = 0,LAW_SUPPLIED = 0,LAW_INHERENT = 0) + if(zeroth && (LAW_ZEROTH in groups)) + replaceable_groups[LAW_ZEROTH] = 1 + if(ion.len && (LAW_ION in groups)) + replaceable_groups[LAW_ION] = ion.len + if(inherent.len && (LAW_INHERENT in groups)) + replaceable_groups[LAW_INHERENT] = inherent.len + if(supplied.len && (LAW_SUPPLIED in groups)) + replaceable_groups[LAW_SUPPLIED] = supplied.len + var picked_group = pickweight(replaceable_groups) + switch(picked_group) + if(LAW_ZEROTH) + . = zeroth + set_zeroth_law(law) + if(LAW_ION) + var/i = rand(1, ion.len) + . = ion[i] + ion[i] = law + if(LAW_INHERENT) + var/i = rand(1, inherent.len) + . = inherent[i] + inherent[i] = law + if(LAW_SUPPLIED) + var/i = rand(1, supplied.len) + . = supplied[i] + supplied[i] = law + +/datum/ai_laws/proc/shuffle_laws(list/groups) + var/list/laws = list() + if(ion.len && (LAW_ION in groups)) + laws += ion + if(inherent.len && (LAW_INHERENT in groups)) + laws += inherent + if(supplied.len && (LAW_SUPPLIED in groups)) + for(var/law in supplied) + if(length(law)) + laws += law + + if(ion.len && (LAW_ION in groups)) + for(var/i = 1, i <= ion.len, i++) + ion[i] = pick_n_take(laws) + if(inherent.len && (LAW_INHERENT in groups)) + for(var/i = 1, i <= inherent.len, i++) + inherent[i] = pick_n_take(laws) + if(supplied.len && (LAW_SUPPLIED in groups)) + var/i = 1 + for(var/law in supplied) + if(length(law)) + supplied[i] = pick_n_take(laws) + if(!laws.len) + break + i++ + +/datum/ai_laws/proc/remove_law(number) + if(number <= 0) + return + if(inherent.len && number <= inherent.len) + . = inherent[number] + inherent -= . + return + var/list/supplied_laws = list() + for(var/index = 1, index <= supplied.len, index++) + var/law = supplied[index] + if(length(law) > 0) + supplied_laws += index //storing the law number instead of the law + if(supplied_laws.len && number <= (inherent.len+supplied_laws.len)) + var/law_to_remove = supplied_laws[number-inherent.len] + . = supplied[law_to_remove] + supplied -= . + return + +/datum/ai_laws/proc/clear_supplied_laws() + supplied = list() + +/datum/ai_laws/proc/clear_ion_laws() + ion = list() + +/datum/ai_laws/proc/show_laws(who) + + if (devillaws && devillaws.len) //Yes, devil laws go in FRONT of zeroth laws, as the devil must still obey it's ban/obligation. + for(var/i in devillaws) + to_chat(who, "666. [i]") + + if (zeroth) + to_chat(who, "0. [zeroth]") + + for (var/index = 1, index <= ion.len, index++) + var/law = ion[index] + var/num = ionnum() + to_chat(who, "[num]. [law]") + + var/number = 1 + for (var/index = 1, index <= inherent.len, index++) + var/law = inherent[index] + + if (length(law) > 0) + to_chat(who, "[number]. [law]") + number++ + + for (var/index = 1, index <= supplied.len, index++) + var/law = supplied[index] + if (length(law) > 0) + to_chat(who, "[number]. [law]") + number++ + +/datum/ai_laws/proc/clear_zeroth_law(force) //only removes zeroth from antag ai if force is 1 + if(force) + zeroth = null + zeroth_borg = null + return + else + if(owner && owner.mind.special_role) + return + else + zeroth = null + zeroth_borg = null + return + +/datum/ai_laws/proc/clear_law_sixsixsix(force) if(force || !is_devil(owner)) - devillaws = null - -/datum/ai_laws/proc/associate(mob/living/silicon/M) - if(!owner) - owner = M - -/datum/ai_laws/proc/get_law_list(include_zeroth = 0, show_numbers = 1) - var/list/data = list() - - if (include_zeroth && devillaws && devillaws.len) - for(var/i in devillaws) - data += "[show_numbers ? "666:" : ""] [i]" - - if (include_zeroth && zeroth) - data += "[show_numbers ? "0:" : ""] [zeroth]" - - for(var/law in ion) - if (length(law) > 0) - var/num = ionnum() - data += "[show_numbers ? "[num]:" : ""] [law]" - - var/number = 1 - for(var/law in inherent) - if (length(law) > 0) - data += "[show_numbers ? "[number]:" : ""] [law]" - number++ - - for(var/law in supplied) - if (length(law) > 0) - data += "[show_numbers ? "[number]:" : ""] [law]" - number++ - return data + devillaws = null + +/datum/ai_laws/proc/associate(mob/living/silicon/M) + if(!owner) + owner = M + +/datum/ai_laws/proc/get_law_list(include_zeroth = 0, show_numbers = 1) + var/list/data = list() + + if (include_zeroth && devillaws && devillaws.len) + for(var/i in devillaws) + data += "[show_numbers ? "666:" : ""] [i]" + + if (include_zeroth && zeroth) + data += "[show_numbers ? "0:" : ""] [zeroth]" + + for(var/law in ion) + if (length(law) > 0) + var/num = ionnum() + data += "[show_numbers ? "[num]:" : ""] [law]" + + var/number = 1 + for(var/law in inherent) + if (length(law) > 0) + data += "[show_numbers ? "[number]:" : ""] [law]" + number++ + + for(var/law in supplied) + if (length(law) > 0) + data += "[show_numbers ? "[number]:" : ""] [law]" + number++ + return data diff --git a/code/datums/antagonists/antag_datum.dm b/code/datums/antagonists/antag_datum.dm index 33adab5c3d..ad5a9d9e18 100644 --- a/code/datums/antagonists/antag_datum.dm +++ b/code/datums/antagonists/antag_datum.dm @@ -60,4 +60,4 @@ return /datum/antagonist/proc/farewell() - return \ No newline at end of file + return diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm index f62bb7f9ae..a63570d81b 100644 --- a/code/datums/antagonists/datum_clockcult.dm +++ b/code/datums/antagonists/datum_clockcult.dm @@ -154,8 +154,8 @@ SSticker.mode.servants_of_ratvar -= owner SSticker.mode.update_servant_icons_removed(owner) if(!silent) - owner.current.visible_message("[owner] seems to have remembered their true allegiance!", \ - "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") + owner.current.visible_message("[owner] seems to have remembered their true allegiance!", ignored_mob = owner.current) + to_chat(owner, "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") owner.current.log_message("Has renounced the cult of Ratvar!", INDIVIDUAL_ATTACK_LOG) owner.wipe_memory() owner.special_role = null diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 588a2b7cf8..d17b799ca2 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -110,9 +110,9 @@ SSticker.mode.cult -= owner SSticker.mode.update_cult_icons_removed(owner) if(!silent) + owner.current.visible_message("[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!", ignored_mob = owner.current) to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) - owner.current.visible_message("[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!") if(GLOB.blood_target && GLOB.blood_target_image && owner.current.client) owner.current.client.images -= GLOB.blood_target_image . = ..() diff --git a/code/datums/antagonists/datum_internal_affairs.dm b/code/datums/antagonists/datum_internal_affairs.dm index 7cc3bed0af..e3a8077732 100644 --- a/code/datums/antagonists/datum_internal_affairs.dm +++ b/code/datums/antagonists/datum_internal_affairs.dm @@ -1,4 +1,4 @@ -#define PINPOINTER_MINIMUM_RANGE 15 +#define PINPOINTER_MINIMUM_RANGE 15 #define PINPOINTER_EXTRA_RANDOM_RANGE 10 #define PINPOINTER_PING_TIME 40 #define PROB_ACTUAL_TRAITOR 20 @@ -9,7 +9,7 @@ human_datum = ANTAG_DATUM_IAA_HUMAN ai_datum = ANTAG_DATUM_IAA_AI - + /datum/antagonist/traitor/AI/internal_affairs name = "Internal Affairs Agent" @@ -33,7 +33,7 @@ var/syndicate = FALSE var/last_man_standing = FALSE var/list/datum/mind/targets_stolen - + /datum/antagonist/traitor/human/internal_affairs/custom silent = TRUE should_give_codewords = FALSE @@ -55,7 +55,7 @@ /datum/antagonist/traitor/human/internal_affairs/proc/give_pinpointer() if(owner && owner.current) owner.current.apply_status_effect(/datum/status_effect/agent_pinpointer) - + /datum/antagonist/traitor/human/internal_affairs/apply_innate_effects() .=..() //in case the base is used in future if(owner&&owner.current) @@ -155,7 +155,7 @@ if(!(istype(objective_, /datum/objective/escape)||istype(objective_,/datum/objective/survive))) continue remove_objective(objective_) - + var/datum/objective/martyr/martyr_objective = new martyr_objective.owner = owner add_objective(martyr_objective) @@ -182,8 +182,8 @@ /datum/antagonist/traitor/proc/steal_targets(datum/mind/victim) var/datum/antagonist/traitor/human/internal_affairs/this = src //Should only use this if IAA - - if(!owner.current||owner.current.stat==DEAD) + + if(!owner.current||owner.current.stat==DEAD) return to_chat(owner.current, " Target eliminated: [victim.name]") for(var/objective_ in victim.objectives) @@ -280,7 +280,7 @@ owner.special_role = TRAITOR_AGENT_ROLE special_role = TRAITOR_AGENT_ROLE this.syndicate = TRUE - forge_single_objective() + forge_single_objective() else ..() // Give them standard objectives. diff --git a/code/datums/antagonists/datum_traitor.dm b/code/datums/antagonists/datum_traitor.dm index e2536ad077..4aad416c62 100644 --- a/code/datums/antagonists/datum_traitor.dm +++ b/code/datums/antagonists/datum_traitor.dm @@ -38,7 +38,7 @@ /datum/antagonist/traitor/on_body_transfer(mob/living/old_body, mob/living/new_body) - if(istype(new_body,/mob/living/silicon/ai)==istype(old_body,/mob/living/silicon/ai)) + if(issilicon(new_body) && issilicon(old_body)) ..() else silent = TRUE @@ -63,7 +63,7 @@ /datum/antagonist/traitor/proc/specialise() silent = TRUE - if(owner.current&&istype(owner.current,/mob/living/silicon/ai)) + if(owner.current&&isAI(owner.current)) owner.add_antag_datum(ai_datum) else owner.add_antag_datum(human_datum) on_removal() @@ -109,7 +109,7 @@ var/mob/living/silicon/ai/A = owner.current A.set_zeroth_law("") A.verbs -= /mob/living/silicon/ai/proc/choose_modules - A.malf_picker.remove_verbs(A) + A.malf_picker.remove_malf_verbs(A) qdel(A.malf_picker) ..() diff --git a/code/datums/antagonists/devil.dm b/code/datums/antagonists/devil.dm new file mode 100644 index 0000000000..c8f00d1995 --- /dev/null +++ b/code/datums/antagonists/devil.dm @@ -0,0 +1,525 @@ +#define BLOOD_THRESHOLD 3 //How many souls are needed per stage. +#define TRUE_THRESHOLD 7 +#define ARCH_THRESHOLD 12 + +#define BASIC_DEVIL 0 +#define BLOOD_LIZARD 1 +#define TRUE_DEVIL 2 +#define ARCH_DEVIL 3 + +#define LOSS_PER_DEATH 2 + +#define SOULVALUE soulsOwned.len-reviveNumber + +#define DEVILRESURRECTTIME 600 + +GLOBAL_LIST_EMPTY(allDevils) +GLOBAL_LIST_INIT(lawlorify, list ( + LORE = list( + OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.", + OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", + OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.", + OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", + OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", + OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", + OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", + OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", + BANE_SILVER = "Silver seems to gravely injure this devil.", + BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.", + BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.", + BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.", + BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.", + BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.", + BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.", + BAN_HURTWOMAN = "This devil seems to prefer hunting men.", + BAN_CHAPEL = "This devil avoids holy ground.", + BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", + BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", + BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.", + BAN_HURTLIZARD = "This devil will not strike a lizardman first.", + BAN_HURTANIMAL = "This devil avoids hurting animals.", + BANISH_WATER = "To banish the devil, you must infuse its body with holy water.", + BANISH_COFFIN = "This devil will return to life if its remains are not placed within a coffin.", + BANISH_FORMALDYHIDE = "To banish the devil, you must inject its lifeless body with embalming fluid.", + BANISH_RUNES = "This devil will resurrect after death, unless its remains are within a rune.", + BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.", + BANISH_DESTRUCTION = "Its corpse must be utterly destroyed to prevent resurrection.", + BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse." + ), + LAW = list( + OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", + OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", + OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.", + OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", + OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", + OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", + OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.", + OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.", + BAN_HURTWOMAN = "You must never harm a female outside of self defense.", + BAN_CHAPEL = "You must never attempt to enter the chapel.", + BAN_HURTPRIEST = "You must never attack a priest.", + BAN_AVOIDWATER = "You must never willingly touch a wet surface.", + BAN_STRIKEUNCONCIOUS = "You must never strike an unconscious person.", + BAN_HURTLIZARD = "You must never harm a lizardman outside of self defense.", + BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", + BANE_SILVER = "Silver, in all of its forms shall be your downfall.", + BANE_SALT = "Salt will disrupt your magical abilities.", + BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.", + BANE_IRON = "Cold wrought iron shall act as poison to you.", + BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.", + BANE_HARVEST = "The fruits of the harvest shall be your downfall.", + BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.", + BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", + BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", + BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", + BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.", + BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.", + BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.", + BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect." + ) + )) + +//These are also used in the codex gigas, so let's declare them globally. +GLOBAL_LIST_INIT(devil_pre_title, list("Dark ", "Hellish ", "Fallen ", "Fiery ", "Sinful ", "Blood ", "Fluffy ")) +GLOBAL_LIST_INIT(devil_title, list("Lord ", "Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ")) +GLOBAL_LIST_INIT(devil_syllable, list("hal", "ve", "odr", "neit", "ci", "quon", "mya", "folth", "wren", "geyr", "hil", "niet", "twou", "phi", "coa")) +GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.")) +/datum/antagonist/devil + //Don't delete upon mind destruction, otherwise soul re-selling will break. + delete_on_death = FALSE + var/obligation + var/ban + var/bane + var/banish + var/truename + var/list/datum/mind/soulsOwned = new + var/reviveNumber = 0 + var/form = BASIC_DEVIL + var/static/list/devil_spells = typecacheof(list( + /obj/effect/proc_holder/spell/aimed/fireball/hellish, + /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork, + /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater, + /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended, + /obj/effect/proc_holder/spell/targeted/infernal_jaunt, + /obj/effect/proc_holder/spell/targeted/sintouch, + /obj/effect/proc_holder/spell/targeted/sintouch/ascended, + /obj/effect/proc_holder/spell/targeted/summon_contract, + /obj/effect/proc_holder/spell/targeted/conjure_item/violin, + /obj/effect/proc_holder/spell/targeted/summon_dancefloor)) + var/ascendable = FALSE + name = "Devil" + + +/datum/antagonist/devil/New() + ..() + truename = randomDevilName() + ban = randomdevilban() + bane = randomdevilbane() + obligation = randomdevilobligation() + banish = randomdevilbanish() + GLOB.allDevils[lowertext(truename)] = src + + +/proc/devilInfo(name) + if(GLOB.allDevils[lowertext(name)]) + return GLOB.allDevils[lowertext(name)] + else + var/datum/fakeDevil/devil = new /datum/fakeDevil(name) + GLOB.allDevils[lowertext(name)] = devil + return devil + +/proc/randomDevilName() + var/name = "" + if(prob(65)) + if(prob(35)) + name = pick(GLOB.devil_pre_title) + name += pick(GLOB.devil_title) + var/probability = 100 + name += pick(GLOB.devil_syllable) + while(prob(probability)) + name += pick(GLOB.devil_syllable) + probability -= 20 + if(prob(40)) + name += pick(GLOB.devil_suffix) + return name + +/proc/randomdevilobligation() + return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) + +/proc/randomdevilban() + return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) + +/proc/randomdevilbane() + return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX) + +/proc/randomdevilbanish() + return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) + +/datum/antagonist/devil/proc/add_soul(datum/mind/soul) + if(soulsOwned.Find(soul)) + return + soulsOwned += soul + owner.current.nutrition = NUTRITION_LEVEL_FULL + to_chat(owner.current, "You feel satiated as you received a new soul.") + update_hud() + switch(SOULVALUE) + if(0) + to_chat(owner.current, "Your hellish powers have been restored.") + give_appropriate_spells() + if(BLOOD_THRESHOLD) + increase_blood_lizard() + if(TRUE_THRESHOLD) + increase_true_devil() + if(ARCH_THRESHOLD) + increase_arch_devil() + +/datum/antagonist/devil/proc/remove_soul(datum/mind/soul) + if(soulsOwned.Remove(soul)) + check_regression() + to_chat(owner.current, "You feel as though a soul has slipped from your grasp.") + update_hud() + +/datum/antagonist/devil/proc/check_regression() + if(form == ARCH_DEVIL) + return //arch devil can't regress + //Yes, fallthrough behavior is intended, so I can't use a switch statement. + if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD) + regress_blood_lizard() + if(form == BLOOD_LIZARD && SOULVALUE < BLOOD_THRESHOLD) + regress_humanoid() + if(SOULVALUE < 0) + remove_spells() + to_chat(owner.current, "As punishment for your failures, all of your powers except contract creation have been revoked.") + +/datum/antagonist/devil/proc/regress_humanoid() + to_chat(owner.current, "Your powers weaken, have more contracts be signed to regain power.") + if(ishuman(owner.current)) + var/mob/living/carbon/human/H = owner.current + H.set_species(/datum/species/human, 1) + H.regenerate_icons() + give_appropriate_spells() + if(istype(owner.current.loc, /obj/effect/dummy/slaughter/)) + owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted. + form = BASIC_DEVIL + +/datum/antagonist/devil/proc/regress_blood_lizard() + var/mob/living/carbon/true_devil/D = owner.current + to_chat(D, "Your powers weaken, have more contracts be signed to regain power.") + D.oldform.loc = D.loc + owner.transfer_to(D.oldform) + give_appropriate_spells() + qdel(D) + form = BLOOD_LIZARD + update_hud() + + +/datum/antagonist/devil/proc/increase_blood_lizard() + to_chat(owner.current, "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.") + sleep(50) + if(ishuman(owner.current)) + var/mob/living/carbon/human/H = owner.current + H.set_species(/datum/species/lizard, 1) + H.underwear = "Nude" + H.undershirt = "Nude" + H.socks = "Nude" + H.dna.features["mcolor"] = "511" //A deep red + H.regenerate_icons() + else //Did the devil get hit by a staff of transmutation? + owner.current.color = "#501010" + give_appropriate_spells() + form = BLOOD_LIZARD + + + +/datum/antagonist/devil/proc/increase_true_devil() + to_chat(owner.current, "You feel as though your current form is about to shed. You will soon turn into a true devil.") + sleep(50) + var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc) + A.faction |= "hell" + owner.current.loc = A + A.oldform = owner.current + owner.transfer_to(A) + A.set_name() + give_appropriate_spells() + form = TRUE_DEVIL + update_hud() + +/datum/antagonist/devil/proc/increase_arch_devil() + if(!ascendable) + return + var/mob/living/carbon/true_devil/D = owner.current + to_chat(D, "You feel as though your form is about to ascend.") + sleep(50) + if(!D) + return + D.visible_message("[D]'s skin begins to erupt with spikes.", \ + "Your flesh begins creating a shield around yourself.") + sleep(100) + if(!D) + return + D.visible_message("The horns on [D]'s head slowly grow and elongate.", \ + "Your body continues to mutate. Your telepathic abilities grow.") + sleep(90) + if(!D) + return + D.visible_message("[D]'s body begins to violently stretch and contort.", \ + "You begin to rend apart the final barriers to ultimate power.") + sleep(40) + if(!D) + return + to_chat(D, "Yes!") + sleep(10) + if(!D) + return + to_chat(D, "YES!!") + sleep(10) + if(!D) + return + to_chat(D, "YE--") + sleep(1) + if(!D) + return + to_chat(world, "\"SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!\"") + world << 'sound/hallucinations/veryfar_noise.ogg' + give_appropriate_spells() + D.convert_to_archdevil() + if(istype(D.loc, /obj/effect/dummy/slaughter/)) + D.forceMove(get_turf(D))//Fixes dying while jaunted leaving you permajaunted. + var/area/A = get_area(owner.current) + if(A) + notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK) + sleep(50) + if(!SSticker.mode.devil_ascended) + SSshuttle.emergency.request(null, set_coefficient = 0.3) + SSticker.mode.devil_ascended++ + form = ARCH_DEVIL + +/datum/antagonist/devil/proc/remove_spells() + for(var/X in owner.spell_list) + var/obj/effect/proc_holder/spell/S = X + if(is_type_in_typecache(S, devil_spells)) + owner.RemoveSpell(S) + +/datum/antagonist/devil/proc/give_summon_contract() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null)) + if(obligation == OBLIGATION_FIDDLE) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) + else if(obligation == OBLIGATION_DANCEOFF) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null)) + +/datum/antagonist/devil/proc/give_appropriate_spells() + remove_spells() + give_summon_contract() + if(SOULVALUE >= ARCH_THRESHOLD && ascendable) + give_arch_spells() + else if(SOULVALUE >= TRUE_THRESHOLD) + give_true_spells() + else if(SOULVALUE >= BLOOD_THRESHOLD) + give_blood_spells() + else if(SOULVALUE >= 0) + give_base_spells() + +/datum/antagonist/devil/proc/give_base_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) + +/datum/antagonist/devil/proc/give_blood_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) + +/datum/antagonist/devil/proc/give_true_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) + +/datum/antagonist/devil/proc/give_arch_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) + +/datum/antagonist/devil/proc/beginResurrectionCheck(mob/living/body) + if(SOULVALUE>0) + to_chat(owner.current, "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon. Remain in your body.") + sleep(DEVILRESURRECTTIME) + if (!body || body.stat == DEAD) + if(SOULVALUE>0) + if(check_banishment(body)) + to_chat(owner.current, "Unfortunately, the mortals have finished a ritual that prevents your resurrection.") + return -1 + else + to_chat(owner.current, "WE LIVE AGAIN!") + return hellish_resurrection(body) + else + to_chat(owner.current, "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.") + return -1 + else + to_chat(owner.current, " You seem to have resurrected without your hellish powers.") + else + to_chat(owner.current, "Your hellish powers are too weak to resurrect yourself.") + +/datum/antagonist/devil/proc/check_banishment(mob/living/body) + switch(banish) + if(BANISH_WATER) + if(iscarbon(body)) + var/mob/living/carbon/H = body + return H.reagents.has_reagent("holy water") + return 0 + if(BANISH_COFFIN) + return (body && istype(body.loc, /obj/structure/closet/coffin)) + if(BANISH_FORMALDYHIDE) + if(iscarbon(body)) + var/mob/living/carbon/H = body + return H.reagents.has_reagent("formaldehyde") + return 0 + if(BANISH_RUNES) + if(body) + for(var/obj/effect/decal/cleanable/crayon/R in range(0,body)) + if (R.name == "rune") + return 1 + return 0 + if(BANISH_CANDLES) + if(body) + var/count = 0 + for(var/obj/item/candle/C in range(1,body)) + count += C.lit + if(count>=4) + return 1 + return 0 + if(BANISH_DESTRUCTION) + if(body) + return 0 + return 1 + if(BANISH_FUNERAL_GARB) + if(ishuman(body)) + var/mob/living/carbon/human/H = body + if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/burial)) + return 1 + return 0 + else + for(var/obj/item/clothing/under/burial/B in range(0,body)) + if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something. + return 1 + return 0 + +/datum/antagonist/devil/proc/hellish_resurrection(mob/living/body) + message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.") + if(SOULVALUE < ARCH_THRESHOLD || !ascendable) // once ascended, arch devils do not go down in power by any means. + reviveNumber += LOSS_PER_DEATH + update_hud() + if(body) + body.revive(1,0) + if(istype(body.loc, /obj/effect/dummy/slaughter/)) + body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted. + if(istype(body, /mob/living/carbon/true_devil)) + var/mob/living/carbon/true_devil/D = body + if(D.oldform) + D.oldform.revive(1,0) // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body. + if(body.stat == DEAD) + create_new_body() + else + create_new_body() + check_regression() + +/datum/antagonist/devil/proc/create_new_body() + if(GLOB.blobstart.len > 0) + var/turf/targetturf = get_turf(pick(GLOB.blobstart)) + var/mob/currentMob = owner.current + if(!currentMob) + currentMob = owner.get_ghost() + if(!currentMob) + message_admins("[owner.name]'s devil resurrection failed due to client logoff. Aborting.") + return -1 + if(currentMob.mind != owner) + message_admins("[owner.name]'s devil resurrection failed due to becoming a new mob. Aborting.") + return -1 + currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1) + var/mob/living/carbon/human/H = owner.current + H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/black(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase(H), slot_hands) + H.equip_to_slot_or_del(new /obj/item/weapon/pen(H), slot_l_store) + if(SOULVALUE >= BLOOD_THRESHOLD) + H.set_species(/datum/species/lizard, 1) + H.underwear = "Nude" + H.undershirt = "Nude" + H.socks = "Nude" + H.dna.features["mcolor"] = "511" + H.regenerate_icons() + if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough. + var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(targetturf) + A.faction |= "hell" + H.forceMove(A) + A.oldform = H + owner.transfer_to(A, TRUE) + A.set_name() + if(SOULVALUE >= ARCH_THRESHOLD && ascendable) + A.convert_to_archdevil() + else + throw EXCEPTION("Unable to find a blobstart landmark for hellish resurrection") + + +/datum/antagonist/devil/proc/update_hud() + if(iscarbon(owner.current)) + var/mob/living/C = owner.current + if(C.hud_used && C.hud_used.devilsouldisplay) + C.hud_used.devilsouldisplay.update_counter(SOULVALUE) + +/datum/antagonist/devil/greet() + to_chat(owner.current, "You remember your link to the infernal. You are [truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp.") + to_chat(owner.current, "However, your infernal form is not without weaknesses.") + to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.") + to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.") + to_chat(owner.current, GLOB.lawlorify[LAW][bane]) + to_chat(owner.current, GLOB.lawlorify[LAW][ban]) + to_chat(owner.current, GLOB.lawlorify[LAW][obligation]) + to_chat(owner.current, GLOB.lawlorify[LAW][banish]) + to_chat(owner.current, "Remember, the crew can research your weaknesses if they find out your devil name.
    ") + .=..() + +/datum/antagonist/devil/on_gain() + owner.store_memory("Your devilic true name is [truename]
    [GLOB.lawlorify[LAW][ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [GLOB.lawlorify[LAW][bane]]
    [GLOB.lawlorify[LAW][obligation]]
    [GLOB.lawlorify[LAW][banish]]
    ") + if(issilicon(owner.current)) + var/mob/living/silicon/robot_devil = owner.current + var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.") + robot_devil.set_law_sixsixsix(laws) + sleep(10) + if(owner.assigned_role == "Clown" && ishuman(owner.current)) + var/mob/living/carbon/human/S = owner.current + to_chat(S, "Your infernal nature has allowed you to overcome your clownishness.") + S.dna.remove_mutation(CLOWNMUT) + .=..() + +/datum/antagonist/devil/on_removal() + to_chat(owner.current, "Your infernal link has been severed! You are no longer a devil!") + .=..() + +/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override) + give_appropriate_spells() + owner.current.grant_all_languages(TRUE) + update_hud() + .=..() + +/datum/antagonist/devil/remove_innate_effects(mob/living/mob_override) + for(var/X in owner.spell_list) + var/obj/effect/proc_holder/spell/S = X + if(is_type_in_typecache(S, devil_spells)) + owner.RemoveSpell(S) + .=..() + +//A simple super light weight datum for the codex gigas. +/datum/fakeDevil + var/truename + var/bane + var/obligation + var/ban + var/banish + var/ascendable + +/datum/fakeDevil/New(name = randomDevilName()) + truename = name + bane = randomdevilbane() + obligation = randomdevilobligation() + ban = randomdevilban() + banish = randomdevilbanish() + ascendable = prob(25) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 278d5cc85f..c854d20f18 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -1,286 +1,286 @@ -/datum/browser - var/mob/user - var/title - var/window_id // window_id is used as the window name for browse and onclose - var/width = 0 - var/height = 0 - var/atom/ref = null - var/window_options = "can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id - var/stylesheets[0] - var/scripts[0] - var/title_image - var/head_elements - var/body_elements - var/head_content = "" - var/content = "" - - -/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) - - user = nuser - window_id = nwindow_id - if (ntitle) - title = format_text(ntitle) - if (nwidth) - width = nwidth - if (nheight) - height = nheight - if (nref) - ref = nref - add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs - -/datum/browser/proc/add_head_content(nhead_content) - head_content = nhead_content - -/datum/browser/proc/set_window_options(nwindow_options) - window_options = nwindow_options - -/datum/browser/proc/set_title_image(ntitle_image) - //title_image = ntitle_image - -/datum/browser/proc/add_stylesheet(name, file) - stylesheets["[ckey(name)].css"] = file - register_asset("[ckey(name)].css", file) - -/datum/browser/proc/add_script(name, file) - scripts["[ckey(name)].js"] = file - register_asset("[ckey(name)].js", file) - -/datum/browser/proc/set_content(ncontent) - content = ncontent - -/datum/browser/proc/add_content(ncontent) - content += ncontent - -/datum/browser/proc/get_header() - var/file - for (file in stylesheets) - head_content += "" - - for (file in scripts) - head_content += "" - - var/title_attributes = "class='uiTitle'" - if (title_image) - title_attributes = "class='uiTitle icon' style='background-image: url([title_image]);'" - - return {" - - - - - [head_content] - - -
    - [title ? "
    [title]
    " : ""] -
    - "} -//" This is here because else the rest of the file looks like a string in notepad++. -/datum/browser/proc/get_footer() - return {" -
    -
    - -"} - -/datum/browser/proc/get_content() - return {" - [get_header()] - [content] - [get_footer()] - "} - -/datum/browser/proc/open(use_onclose = 1) +/datum/browser + var/mob/user + var/title + var/window_id // window_id is used as the window name for browse and onclose + var/width = 0 + var/height = 0 + var/atom/ref = null + var/window_options = "can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id + var/stylesheets[0] + var/scripts[0] + var/title_image + var/head_elements + var/body_elements + var/head_content = "" + var/content = "" + + +/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) + + user = nuser + window_id = nwindow_id + if (ntitle) + title = format_text(ntitle) + if (nwidth) + width = nwidth + if (nheight) + height = nheight + if (nref) + ref = nref + add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs + +/datum/browser/proc/add_head_content(nhead_content) + head_content = nhead_content + +/datum/browser/proc/set_window_options(nwindow_options) + window_options = nwindow_options + +/datum/browser/proc/set_title_image(ntitle_image) + //title_image = ntitle_image + +/datum/browser/proc/add_stylesheet(name, file) + stylesheets["[ckey(name)].css"] = file + register_asset("[ckey(name)].css", file) + +/datum/browser/proc/add_script(name, file) + scripts["[ckey(name)].js"] = file + register_asset("[ckey(name)].js", file) + +/datum/browser/proc/set_content(ncontent) + content = ncontent + +/datum/browser/proc/add_content(ncontent) + content += ncontent + +/datum/browser/proc/get_header() + var/file + for (file in stylesheets) + head_content += "" + + for (file in scripts) + head_content += "" + + var/title_attributes = "class='uiTitle'" + if (title_image) + title_attributes = "class='uiTitle icon' style='background-image: url([title_image]);'" + + return {" + + + + + [head_content] + + +
    + [title ? "
    [title]
    " : ""] +
    + "} +//" This is here because else the rest of the file looks like a string in notepad++. +/datum/browser/proc/get_footer() + return {" +
    +
    + +"} + +/datum/browser/proc/get_content() + return {" + [get_header()] + [content] + [get_footer()] + "} + +/datum/browser/proc/open(use_onclose = 1) if(isnull(window_id)) //null check because this can potentially nuke goonchat WARNING("Browser [title] tried to open with a null ID") to_chat(user, "The [title] browser you tried to open failed a sanity check! Please report this on github!") return - var/window_size = "" - if (width && height) - window_size = "size=[width]x[height];" - if (stylesheets.len) - send_asset_list(user, stylesheets, verify=FALSE) - if (scripts.len) - send_asset_list(user, scripts, verify=FALSE) - user << browse(get_content(), "window=[window_id];[window_size][window_options]") - if (use_onclose) - setup_onclose() - -/datum/browser/proc/setup_onclose() - set waitfor = 0 //winexists sleeps, so we don't need to. - for (var/i in 1 to 10) - if (user && winexists(user, window_id)) - onclose(user, window_id, ref) - break - -/datum/browser/proc/close() + var/window_size = "" + if (width && height) + window_size = "size=[width]x[height];" + if (stylesheets.len) + send_asset_list(user, stylesheets, verify=FALSE) + if (scripts.len) + send_asset_list(user, scripts, verify=FALSE) + user << browse(get_content(), "window=[window_id];[window_size][window_options]") + if (use_onclose) + setup_onclose() + +/datum/browser/proc/setup_onclose() + set waitfor = 0 //winexists sleeps, so we don't need to. + for (var/i in 1 to 10) + if (user && winexists(user, window_id)) + onclose(user, window_id, ref) + break + +/datum/browser/proc/close() if(!isnull(window_id))//null check because this can potentially nuke goonchat user << browse(null, "window=[window_id]") else WARNING("Browser [title] tried to close with a null ID") - -/datum/browser/alert - var/selectedbutton = 0 - var/opentime = 0 - var/timeout - var/stealfocus - -/datum/browser/alert/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1,Timeout=6000) - if (!User) - return - - var/output = {"
    [Message]

    -
    - [Button1]"} - - if (Button2) - output += {"[Button2]"} - - if (Button3) - output += {"[Button3]"} - - output += {"
    "} - - ..(User, ckey("[User]-[Message]-[Title]-[world.time]-[rand(1,10000)]"), Title, 350, 150, src) - set_content(output) - stealfocus = StealFocus - if (!StealFocus) - window_options += "focus=false;" - timeout = Timeout - -/datum/browser/alert/open() - set waitfor = 0 - opentime = world.time - - if (stealfocus) - . = ..(use_onclose = 1) - else - var/focusedwindow = winget(user, null, "focus") - . = ..(use_onclose = 1) - - //waits for the window to show up client side before attempting to un-focus it - //winexists sleeps until it gets a reply from the client, so we don't need to bother sleeping - for (var/i in 1 to 10) - if (user && winexists(user, window_id)) - if (focusedwindow) - winset(user, focusedwindow, "focus=true") - else - winset(user, "mapwindow", "focus=true") - break - if (timeout) - addtimer(CALLBACK(src, .proc/close), timeout) - -/datum/browser/alert/close() - .=..() - opentime = 0 - -/datum/browser/alert/proc/wait() - while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) - stoplag() - -/datum/browser/alert/Topic(href,href_list) - if (href_list["close"] || !user || !user.client) - opentime = 0 - return - if (href_list["button"]) - var/button = text2num(href_list["button"]) - if (button <= 3 && button >= 1) - selectedbutton = button - opentime = 0 - close() - -//designed as a drop in replacement for alert(); functions the same. (outside of needing User specified) -/proc/tgalert(var/mob/User, Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) - if (!User) - User = usr - switch(askuser(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout)) - if (1) - return Button1 - if (2) - return Button2 - if (3) - return Button3 - -//Same shit, but it returns the button number, could at some point support unlimited button amounts. -/proc/askuser(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) - if (!istype(User)) - if (istype(User, /client/)) - var/client/C = User - User = C.mob - else - return - var/datum/browser/alert/A = new(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout) - A.open() - A.wait() - if (A.selectedbutton) - return A.selectedbutton - -// This will allow you to show an icon in the browse window -// This is added to mob so that it can be used without a reference to the browser object -// There is probably a better place for this... -/mob/proc/browse_rsc_icon(icon, icon_state, dir = -1) - /* - var/icon/I - if (dir >= 0) - I = new /icon(icon, icon_state, dir) - else - I = new /icon(icon, icon_state) - setDir("default") - - var/filename = "[ckey("[icon]_[icon_state]_[dir]")].png" - src << browse_rsc(I, filename) - return filename - */ - - -// Registers the on-close verb for a browse window (client/verb/.windowclose) -// this will be called when the close-button of a window is pressed. -// -// This is usually only needed for devices that regularly update the browse window, -// e.g. canisters, timers, etc. -// -// windowid should be the specified window name -// e.g. code is : user << browse(text, "window=fred") -// then use : onclose(user, "fred") -// -// Optionally, specify the "ref" parameter as the controlled atom (usually src) -// to pass a "close=1" parameter to the atom's Topic() proc for special handling. -// Otherwise, the user mob's machine var will be reset directly. -// -/proc/onclose(mob/user, windowid, atom/ref=null) - if(!user.client) return - var/param = "null" - if(ref) - param = "\ref[ref]" - - winset(user, windowid, "on-close=\".windowclose [param]\"") - - //to_chat(world, "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]") - - -// the on-close client verb -// called when a browser popup window is closed after registering with proc/onclose() -// if a valid atom reference is supplied, call the atom's Topic() with "close=1" -// otherwise, just reset the client mob's machine var. -// -/client/verb/windowclose(atomref as text) - set hidden = 1 // hide this verb from the user's panel - set name = ".windowclose" // no autocomplete on cmd line - - //to_chat(world, "windowclose: [atomref]") - if(atomref!="null") // if passed a real atomref - var/hsrc = locate(atomref) // find the reffed atom - var/href = "close=1" - if(hsrc) - //to_chat(world, "[src] Topic [href] [hsrc]") - usr = src.mob - src.Topic(href, params2list(href), hsrc) // this will direct to the atom's - return // Topic() proc via client.Topic() - - // no atomref specified (or not found) - // so just reset the user mob's machine var - if(src && src.mob) - //to_chat(world, "[src] was [src.mob.machine], setting to null") - src.mob.unset_machine() - return + +/datum/browser/alert + var/selectedbutton = 0 + var/opentime = 0 + var/timeout + var/stealfocus + +/datum/browser/alert/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1,Timeout=6000) + if (!User) + return + + var/output = {"
    [Message]

    +
    + [Button1]"} + + if (Button2) + output += {"[Button2]"} + + if (Button3) + output += {"[Button3]"} + + output += {"
    "} + + ..(User, ckey("[User]-[Message]-[Title]-[world.time]-[rand(1,10000)]"), Title, 350, 150, src) + set_content(output) + stealfocus = StealFocus + if (!StealFocus) + window_options += "focus=false;" + timeout = Timeout + +/datum/browser/alert/open() + set waitfor = 0 + opentime = world.time + + if (stealfocus) + . = ..(use_onclose = 1) + else + var/focusedwindow = winget(user, null, "focus") + . = ..(use_onclose = 1) + + //waits for the window to show up client side before attempting to un-focus it + //winexists sleeps until it gets a reply from the client, so we don't need to bother sleeping + for (var/i in 1 to 10) + if (user && winexists(user, window_id)) + if (focusedwindow) + winset(user, focusedwindow, "focus=true") + else + winset(user, "mapwindow", "focus=true") + break + if (timeout) + addtimer(CALLBACK(src, .proc/close), timeout) + +/datum/browser/alert/close() + .=..() + opentime = 0 + +/datum/browser/alert/proc/wait() + while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) + stoplag() + +/datum/browser/alert/Topic(href,href_list) + if (href_list["close"] || !user || !user.client) + opentime = 0 + return + if (href_list["button"]) + var/button = text2num(href_list["button"]) + if (button <= 3 && button >= 1) + selectedbutton = button + opentime = 0 + close() + +//designed as a drop in replacement for alert(); functions the same. (outside of needing User specified) +/proc/tgalert(var/mob/User, Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) + if (!User) + User = usr + switch(askuser(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout)) + if (1) + return Button1 + if (2) + return Button2 + if (3) + return Button3 + +//Same shit, but it returns the button number, could at some point support unlimited button amounts. +/proc/askuser(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) + if (!istype(User)) + if (istype(User, /client/)) + var/client/C = User + User = C.mob + else + return + var/datum/browser/alert/A = new(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout) + A.open() + A.wait() + if (A.selectedbutton) + return A.selectedbutton + +// This will allow you to show an icon in the browse window +// This is added to mob so that it can be used without a reference to the browser object +// There is probably a better place for this... +/mob/proc/browse_rsc_icon(icon, icon_state, dir = -1) + /* + var/icon/I + if (dir >= 0) + I = new /icon(icon, icon_state, dir) + else + I = new /icon(icon, icon_state) + setDir("default") + + var/filename = "[ckey("[icon]_[icon_state]_[dir]")].png" + src << browse_rsc(I, filename) + return filename + */ + + +// Registers the on-close verb for a browse window (client/verb/.windowclose) +// this will be called when the close-button of a window is pressed. +// +// This is usually only needed for devices that regularly update the browse window, +// e.g. canisters, timers, etc. +// +// windowid should be the specified window name +// e.g. code is : user << browse(text, "window=fred") +// then use : onclose(user, "fred") +// +// Optionally, specify the "ref" parameter as the controlled atom (usually src) +// to pass a "close=1" parameter to the atom's Topic() proc for special handling. +// Otherwise, the user mob's machine var will be reset directly. +// +/proc/onclose(mob/user, windowid, atom/ref=null) + if(!user.client) return + var/param = "null" + if(ref) + param = "\ref[ref]" + + winset(user, windowid, "on-close=\".windowclose [param]\"") + + //to_chat(world, "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]") + + +// the on-close client verb +// called when a browser popup window is closed after registering with proc/onclose() +// if a valid atom reference is supplied, call the atom's Topic() with "close=1" +// otherwise, just reset the client mob's machine var. +// +/client/verb/windowclose(atomref as text) + set hidden = 1 // hide this verb from the user's panel + set name = ".windowclose" // no autocomplete on cmd line + + //to_chat(world, "windowclose: [atomref]") + if(atomref!="null") // if passed a real atomref + var/hsrc = locate(atomref) // find the reffed atom + var/href = "close=1" + if(hsrc) + //to_chat(world, "[src] Topic [href] [hsrc]") + usr = src.mob + src.Topic(href, params2list(href), hsrc) // this will direct to the atom's + return // Topic() proc via client.Topic() + + // no atomref specified (or not found) + // so just reset the user mob's machine var + if(src && src.mob) + //to_chat(world, "[src] was [src.mob.machine], setting to null") + src.mob.unset_machine() + return diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index eacbdd4d81..369c33eed8 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -387,7 +387,7 @@ /proc/debug_variable(name, value, level, datum/DA = null, sanitize = TRUE) var/header if(DA) - if (istype(DA, /list)) + if (islist(DA)) var/index = name if (value) name = DA[name] //name is really the index until this line @@ -442,7 +442,7 @@ else item = "[VV_HTML_ENCODE(name)] \ref[value] = [D.type]" - else if (istype(value, /list)) + else if (islist(value)) var/list/L = value var/list/items = list() @@ -494,7 +494,7 @@ href_list["datumrefresh"] = href_list["mob_player_panel"] else if(href_list["godmode"]) - if(!check_rights(R_REJUVINATE)) + if(!check_rights(R_ADMIN)) return var/mob/M = locate(href_list["godmode"]) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 57b1f3223f..77b8aeed6a 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -46,7 +46,7 @@ for(var/V in DD.vars) if(V in skipped) continue - if(istype(DD.vars[V],/list)) + if(islist(DD.vars[V])) var/list/L = D.vars[V] DD.vars[V] = L.Copy() else diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 0a0db08f56..c4084dd18e 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -1,433 +1,433 @@ -/* - - Advance Disease is a system for Virologist to Engineer their own disease with symptoms that have effects and properties - which add onto the overall disease. - - If you need help with creating new symptoms or expanding the advance disease, ask for Giacom on #coderbus. - -*/ - -#define SYMPTOM_LIMIT 8 - - - -/* - - PROPERTIES - - */ - -/datum/disease/advance - - name = "Unknown" // We will always let our Virologist name our disease. - desc = "An engineered disease which can contain a multitude of symptoms." - form = "Advance Disease" // Will let med-scanners know that this disease was engineered. - agent = "advance microbes" - max_stages = 5 - spread_text = "Unknown" - viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - - // NEW VARS - var/list/properties = list() - var/list/symptoms = list() // The symptoms of the disease. - var/id = "" - var/processing = 0 +/* - // The order goes from easy to cure to hard to cure. - var/static/list/advance_cures = list( - "sodiumchloride", "sugar", "orangejuice", - "spaceacillin", "salglu_solution", "ethanol", - "leporazine", "synaptizine", "lipolicide", - "silver", "gold" - ) - -/* - - OLD PROCS - - */ - -/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D) - if(!istype(D)) - D = null - // Generate symptoms if we weren't given any. - - if(!symptoms || !symptoms.len) - - if(!D || !D.symptoms || !D.symptoms.len) - symptoms = GenerateSymptoms(0, 2) - else - for(var/datum/symptom/S in D.symptoms) - symptoms += new S.type - - Refresh() - ..(process, D) - return - -/datum/disease/advance/Destroy() - if(processing) - for(var/datum/symptom/S in symptoms) - S.End(src) - return ..() - -// Randomly pick a symptom to activate. -/datum/disease/advance/stage_act() - ..() - if(symptoms && symptoms.len) - - if(!processing) - processing = 1 - for(var/datum/symptom/S in symptoms) - S.Start(src) - - for(var/datum/symptom/S in symptoms) - S.Activate(src) - else - CRASH("We do not have any symptoms during stage_act()!") - -// Compares type then ID. -/datum/disease/advance/IsSame(datum/disease/advance/D) - - if(!(istype(D, /datum/disease/advance))) - return 0 - - if(src.GetDiseaseID() != D.GetDiseaseID()) - return 0 - return 1 - -// To add special resistances. -/datum/disease/advance/cure(resistance=1) - if(affected_mob) - var/id = "[GetDiseaseID()]" - if(resistance && !(id in affected_mob.resistances)) - affected_mob.resistances[id] = id - remove_virus() - qdel(src) //delete the datum to stop it processing - -// Returns the advance disease with a different reference memory. -/datum/disease/advance/Copy(process = 0) - return new /datum/disease/advance(process, src, 1) - -/* - - NEW PROCS - - */ - -// Mix the symptoms of two diseases (the src and the argument) -/datum/disease/advance/proc/Mix(datum/disease/advance/D) - if(!(src.IsSame(D))) - var/list/possible_symptoms = shuffle(D.symptoms) - for(var/datum/symptom/S in possible_symptoms) - AddSymptom(new S.type) - -/datum/disease/advance/proc/HasSymptom(datum/symptom/S) - for(var/datum/symptom/symp in symptoms) - if(symp.id == S.id) - return 1 - return 0 - -// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated. -/datum/disease/advance/proc/GenerateSymptoms(level_min, level_max, amount_get = 0) - - var/list/generated = list() // Symptoms we generated. - - // Generate symptoms. By default, we only choose non-deadly symptoms. - var/list/possible_symptoms = list() - for(var/symp in SSdisease.list_symptoms) - var/datum/symptom/S = new symp - if(S.level >= level_min && S.level <= level_max) - if(!HasSymptom(S)) - possible_symptoms += S - - if(!possible_symptoms.len) - return generated - - // Random chance to get more than one symptom - var/number_of = amount_get - if(!amount_get) - number_of = 1 - while(prob(20)) - number_of += 1 - - for(var/i = 1; number_of >= i && possible_symptoms.len; i++) - generated += pick_n_take(possible_symptoms) - - return generated - -/datum/disease/advance/proc/Refresh(new_name = 0) - //to_chat(world, "[src.name] \ref[src] - REFRESH!") - GenerateProperties() - AssignProperties() - id = null - - if(!SSdisease.archive_diseases[GetDiseaseID()]) - if(new_name) - AssignName() - SSdisease.archive_diseases[GetDiseaseID()] = src // So we don't infinite loop - SSdisease.archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1) - - var/datum/disease/advance/A = SSdisease.archive_diseases[GetDiseaseID()] - AssignName(A.name) - -//Generate disease properties based on the effects. Returns an associated list. -/datum/disease/advance/proc/GenerateProperties() - - if(!symptoms || !symptoms.len) - CRASH("We did not have any symptoms before generating properties.") - return - - properties = list("resistance" = 0, "stealth" = 0, "stage_rate" = 0, "transmittable" = 0, "severity" = 0) - - for(var/datum/symptom/S in symptoms) - properties["resistance"] += S.resistance - properties["stealth"] += S.stealth - properties["stage_rate"] += S.stage_speed - properties["transmittable"] += S.transmittable - properties["severity"] = max(properties["severity"], S.severity) // severity is based on the highest severity symptom - return - -// Assign the properties that are in the list. -/datum/disease/advance/proc/AssignProperties() - - if(properties && properties.len) - switch(properties["stealth"]) - if(2,3) - visibility_flags = HIDDEN_SCANNER - if(4 to INFINITY) - visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC - - // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. - SetSpread(Clamp(2 ** (properties["transmittable"] - symptoms.len), BLOOD, AIRBORNE)) - permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) - cure_chance = 15 - Clamp(properties["resistance"], -5, 5) // can be between 10 and 20 - stage_prob = max(properties["stage_rate"], 2) - SetSeverity(properties["severity"]) - GenerateCure(properties) - else - CRASH("Our properties were empty or null!") - - -// Assign the spread type and give it the correct description. -/datum/disease/advance/proc/SetSpread(spread_id) - switch(spread_id) - if(NON_CONTAGIOUS) - spread_text = "None" - if(SPECIAL) - spread_text = "None" - if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) - spread_text = "On contact" - if(AIRBORNE) - spread_text = "Airborne" - if(BLOOD) - spread_text = "Blood" - - spread_flags = spread_id - -/datum/disease/advance/proc/SetSeverity(level_sev) - - switch(level_sev) - - if(-INFINITY to 0) - severity = NONTHREAT - if(1) - severity = MINOR - if(2) - severity = MEDIUM - if(3) - severity = HARMFUL - if(4) - severity = DANGEROUS - if(5 to INFINITY) - severity = BIOHAZARD - else - severity = "Unknown" - - -// Will generate a random cure, the less resistance the symptoms have, the harder the cure. -/datum/disease/advance/proc/GenerateCure() - if(properties && properties.len) - var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) - //to_chat(world, "Res = [res]") - cures = list(advance_cures[res]) - - // Get the cure name from the cure_id - var/datum/reagent/D = GLOB.chemical_reagents_list[cures[1]] - cure_text = D.name - - - return - -// Randomly generate a symptom, has a chance to lose or gain a symptom. -/datum/disease/advance/proc/Evolve(min_level, max_level) - var/s = safepick(GenerateSymptoms(min_level, max_level, 1)) - if(s) - AddSymptom(s) - Refresh(1) - return - -// Randomly remove a symptom. -/datum/disease/advance/proc/Devolve() - if(symptoms.len > 1) - var/s = safepick(symptoms) - if(s) - RemoveSymptom(s) - Refresh(1) - return - -// Name the disease. -/datum/disease/advance/proc/AssignName(name = "Unknown") - src.name = name - return - -// Return a unique ID of the disease. -/datum/disease/advance/GetDiseaseID() - if(!id) - var/list/L = list() - for(var/datum/symptom/S in symptoms) - L += S.id - L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in. - var/result = jointext(L, ":") - id = result - return id - - -// Add a symptom, if it is over the limit (with a small chance to be able to go over) -// we take a random symptom away and add the new one. -/datum/disease/advance/proc/AddSymptom(datum/symptom/S) - - if(HasSymptom(S)) - return - - if(symptoms.len < (SYMPTOM_LIMIT - 1) + rand(-1, 1)) - symptoms += S - else - RemoveSymptom(pick(symptoms)) - symptoms += S - return - -// Simply removes the symptom. -/datum/disease/advance/proc/RemoveSymptom(datum/symptom/S) - symptoms -= S - return - -/* - - Static Procs - -*/ - -// Mix a list of advance diseases and return the mixed result. -/proc/Advance_Mix(var/list/D_list) - - //to_chat(world, "Mixing!!!!") - - var/list/diseases = list() - - for(var/datum/disease/advance/A in D_list) - diseases += A.Copy() - - if(!diseases.len) - return null - if(diseases.len <= 1) - return pick(diseases) // Just return the only entry. - - var/i = 0 - // Mix our diseases until we are left with only one result. - while(i < 20 && diseases.len > 1) - - i++ - - var/datum/disease/advance/D1 = pick(diseases) - diseases -= D1 - - var/datum/disease/advance/D2 = pick(diseases) - D2.Mix(D1) - - // Should be only 1 entry left, but if not let's only return a single entry - //to_chat(world, "END MIXING!!!!!") - var/datum/disease/advance/to_return = pick(diseases) - to_return.Refresh(1) - return to_return - -/proc/SetViruses(datum/reagent/R, list/data) - if(data) - var/list/preserve = list() - if(istype(data) && data["viruses"]) - for(var/datum/disease/A in data["viruses"]) - preserve += A.Copy() - R.data = data.Copy() - if(preserve.len) - R.data["viruses"] = preserve - -/proc/AdminCreateVirus(client/user) - - if(!user) - return - - var/i = SYMPTOM_LIMIT - - var/datum/disease/advance/D = new(0, null) - D.symptoms = list() - - var/list/symptoms = list() - symptoms += "Done" - symptoms += SSdisease.list_symptoms.Copy() - do - if(user) - var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in symptoms - if(isnull(symptom)) - return - else if(istext(symptom)) - i = 0 - else if(ispath(symptom)) - var/datum/symptom/S = new symptom - if(!D.HasSymptom(S)) - D.symptoms += S - i -= 1 - while(i > 0) - - if(D.symptoms.len > 0) - - var/new_name = stripped_input(user, "Name your new disease.", "New Name") - if(!new_name) - return - D.AssignName(new_name) - D.Refresh() - - for(var/datum/disease/advance/AD in SSdisease.processing) - AD.Refresh() - - for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) + Advance Disease is a system for Virologist to Engineer their own disease with symptoms that have effects and properties + which add onto the overall disease. + + If you need help with creating new symptoms or expanding the advance disease, ask for Giacom on #coderbus. + +*/ + +#define SYMPTOM_LIMIT 8 + + + +/* + + PROPERTIES + + */ + +/datum/disease/advance + + name = "Unknown" // We will always let our Virologist name our disease. + desc = "An engineered disease which can contain a multitude of symptoms." + form = "Advance Disease" // Will let med-scanners know that this disease was engineered. + agent = "advance microbes" + max_stages = 5 + spread_text = "Unknown" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) + + // NEW VARS + var/list/properties = list() + var/list/symptoms = list() // The symptoms of the disease. + var/id = "" + var/processing = 0 + + // The order goes from easy to cure to hard to cure. + var/static/list/advance_cures = list( + "sodiumchloride", "sugar", "orangejuice", + "spaceacillin", "salglu_solution", "ethanol", + "leporazine", "synaptizine", "lipolicide", + "silver", "gold" + ) + +/* + + OLD PROCS + + */ + +/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D) + if(!istype(D)) + D = null + // Generate symptoms if we weren't given any. + + if(!symptoms || !symptoms.len) + + if(!D || !D.symptoms || !D.symptoms.len) + symptoms = GenerateSymptoms(0, 2) + else + for(var/datum/symptom/S in D.symptoms) + symptoms += new S.type + + Refresh() + ..(process, D) + return + +/datum/disease/advance/Destroy() + if(processing) + for(var/datum/symptom/S in symptoms) + S.End(src) + return ..() + +// Randomly pick a symptom to activate. +/datum/disease/advance/stage_act() + ..() + if(symptoms && symptoms.len) + + if(!processing) + processing = 1 + for(var/datum/symptom/S in symptoms) + S.Start(src) + + for(var/datum/symptom/S in symptoms) + S.Activate(src) + else + CRASH("We do not have any symptoms during stage_act()!") + +// Compares type then ID. +/datum/disease/advance/IsSame(datum/disease/advance/D) + + if(!(istype(D, /datum/disease/advance))) + return 0 + + if(src.GetDiseaseID() != D.GetDiseaseID()) + return 0 + return 1 + +// To add special resistances. +/datum/disease/advance/cure(resistance=1) + if(affected_mob) + var/id = "[GetDiseaseID()]" + if(resistance && !(id in affected_mob.resistances)) + affected_mob.resistances[id] = id + remove_virus() + qdel(src) //delete the datum to stop it processing + +// Returns the advance disease with a different reference memory. +/datum/disease/advance/Copy(process = 0) + return new /datum/disease/advance(process, src, 1) + +/* + + NEW PROCS + + */ + +// Mix the symptoms of two diseases (the src and the argument) +/datum/disease/advance/proc/Mix(datum/disease/advance/D) + if(!(src.IsSame(D))) + var/list/possible_symptoms = shuffle(D.symptoms) + for(var/datum/symptom/S in possible_symptoms) + AddSymptom(new S.type) + +/datum/disease/advance/proc/HasSymptom(datum/symptom/S) + for(var/datum/symptom/symp in symptoms) + if(symp.id == S.id) + return 1 + return 0 + +// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated. +/datum/disease/advance/proc/GenerateSymptoms(level_min, level_max, amount_get = 0) + + var/list/generated = list() // Symptoms we generated. + + // Generate symptoms. By default, we only choose non-deadly symptoms. + var/list/possible_symptoms = list() + for(var/symp in SSdisease.list_symptoms) + var/datum/symptom/S = new symp + if(S.level >= level_min && S.level <= level_max) + if(!HasSymptom(S)) + possible_symptoms += S + + if(!possible_symptoms.len) + return generated + + // Random chance to get more than one symptom + var/number_of = amount_get + if(!amount_get) + number_of = 1 + while(prob(20)) + number_of += 1 + + for(var/i = 1; number_of >= i && possible_symptoms.len; i++) + generated += pick_n_take(possible_symptoms) + + return generated + +/datum/disease/advance/proc/Refresh(new_name = 0) + //to_chat(world, "[src.name] \ref[src] - REFRESH!") + GenerateProperties() + AssignProperties() + id = null + + if(!SSdisease.archive_diseases[GetDiseaseID()]) + if(new_name) + AssignName() + SSdisease.archive_diseases[GetDiseaseID()] = src // So we don't infinite loop + SSdisease.archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1) + + var/datum/disease/advance/A = SSdisease.archive_diseases[GetDiseaseID()] + AssignName(A.name) + +//Generate disease properties based on the effects. Returns an associated list. +/datum/disease/advance/proc/GenerateProperties() + + if(!symptoms || !symptoms.len) + CRASH("We did not have any symptoms before generating properties.") + return + + properties = list("resistance" = 0, "stealth" = 0, "stage_rate" = 0, "transmittable" = 0, "severity" = 0) + + for(var/datum/symptom/S in symptoms) + properties["resistance"] += S.resistance + properties["stealth"] += S.stealth + properties["stage_rate"] += S.stage_speed + properties["transmittable"] += S.transmittable + properties["severity"] = max(properties["severity"], S.severity) // severity is based on the highest severity symptom + return + +// Assign the properties that are in the list. +/datum/disease/advance/proc/AssignProperties() + + if(properties && properties.len) + switch(properties["stealth"]) + if(2,3) + visibility_flags = HIDDEN_SCANNER + if(4 to INFINITY) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + + // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. + SetSpread(Clamp(2 ** (properties["transmittable"] - symptoms.len), BLOOD, AIRBORNE)) + permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) + cure_chance = 15 - Clamp(properties["resistance"], -5, 5) // can be between 10 and 20 + stage_prob = max(properties["stage_rate"], 2) + SetSeverity(properties["severity"]) + GenerateCure(properties) + else + CRASH("Our properties were empty or null!") + + +// Assign the spread type and give it the correct description. +/datum/disease/advance/proc/SetSpread(spread_id) + switch(spread_id) + if(NON_CONTAGIOUS) + spread_text = "None" + if(SPECIAL) + spread_text = "None" + if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) + spread_text = "On contact" + if(AIRBORNE) + spread_text = "Airborne" + if(BLOOD) + spread_text = "Blood" + + spread_flags = spread_id + +/datum/disease/advance/proc/SetSeverity(level_sev) + + switch(level_sev) + + if(-INFINITY to 0) + severity = NONTHREAT + if(1) + severity = MINOR + if(2) + severity = MEDIUM + if(3) + severity = HARMFUL + if(4) + severity = DANGEROUS + if(5 to INFINITY) + severity = BIOHAZARD + else + severity = "Unknown" + + +// Will generate a random cure, the less resistance the symptoms have, the harder the cure. +/datum/disease/advance/proc/GenerateCure() + if(properties && properties.len) + var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) + //to_chat(world, "Res = [res]") + cures = list(advance_cures[res]) + + // Get the cure name from the cure_id + var/datum/reagent/D = GLOB.chemical_reagents_list[cures[1]] + cure_text = D.name + + + return + +// Randomly generate a symptom, has a chance to lose or gain a symptom. +/datum/disease/advance/proc/Evolve(min_level, max_level) + var/s = safepick(GenerateSymptoms(min_level, max_level, 1)) + if(s) + AddSymptom(s) + Refresh(1) + return + +// Randomly remove a symptom. +/datum/disease/advance/proc/Devolve() + if(symptoms.len > 1) + var/s = safepick(symptoms) + if(s) + RemoveSymptom(s) + Refresh(1) + return + +// Name the disease. +/datum/disease/advance/proc/AssignName(name = "Unknown") + src.name = name + return + +// Return a unique ID of the disease. +/datum/disease/advance/GetDiseaseID() + if(!id) + var/list/L = list() + for(var/datum/symptom/S in symptoms) + L += S.id + L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in. + var/result = jointext(L, ":") + id = result + return id + + +// Add a symptom, if it is over the limit (with a small chance to be able to go over) +// we take a random symptom away and add the new one. +/datum/disease/advance/proc/AddSymptom(datum/symptom/S) + + if(HasSymptom(S)) + return + + if(symptoms.len < (SYMPTOM_LIMIT - 1) + rand(-1, 1)) + symptoms += S + else + RemoveSymptom(pick(symptoms)) + symptoms += S + return + +// Simply removes the symptom. +/datum/disease/advance/proc/RemoveSymptom(datum/symptom/S) + symptoms -= S + return + +/* + + Static Procs + +*/ + +// Mix a list of advance diseases and return the mixed result. +/proc/Advance_Mix(var/list/D_list) + + //to_chat(world, "Mixing!!!!") + + var/list/diseases = list() + + for(var/datum/disease/advance/A in D_list) + diseases += A.Copy() + + if(!diseases.len) + return null + if(diseases.len <= 1) + return pick(diseases) // Just return the only entry. + + var/i = 0 + // Mix our diseases until we are left with only one result. + while(i < 20 && diseases.len > 1) + + i++ + + var/datum/disease/advance/D1 = pick(diseases) + diseases -= D1 + + var/datum/disease/advance/D2 = pick(diseases) + D2.Mix(D1) + + // Should be only 1 entry left, but if not let's only return a single entry + //to_chat(world, "END MIXING!!!!!") + var/datum/disease/advance/to_return = pick(diseases) + to_return.Refresh(1) + return to_return + +/proc/SetViruses(datum/reagent/R, list/data) + if(data) + var/list/preserve = list() + if(istype(data) && data["viruses"]) + for(var/datum/disease/A in data["viruses"]) + preserve += A.Copy() + R.data = data.Copy() + if(preserve.len) + R.data["viruses"] = preserve + +/proc/AdminCreateVirus(client/user) + + if(!user) + return + + var/i = SYMPTOM_LIMIT + + var/datum/disease/advance/D = new(0, null) + D.symptoms = list() + + var/list/symptoms = list() + symptoms += "Done" + symptoms += SSdisease.list_symptoms.Copy() + do + if(user) + var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in symptoms + if(isnull(symptom)) + return + else if(istext(symptom)) + i = 0 + else if(ispath(symptom)) + var/datum/symptom/S = new symptom + if(!D.HasSymptom(S)) + D.symptoms += S + i -= 1 + while(i > 0) + + if(D.symptoms.len > 0) + + var/new_name = stripped_input(user, "Name your new disease.", "New Name") + if(!new_name) + return + D.AssignName(new_name) + D.Refresh() + + for(var/datum/disease/advance/AD in SSdisease.processing) + AD.Refresh() + + for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) if(H.z != ZLEVEL_STATION) - continue - if(!H.HasDisease(D)) - H.ForceContractDisease(D) - break - - var/list/name_symptoms = list() - for(var/datum/symptom/S in D.symptoms) - name_symptoms += S.name - message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]") - -/* -/mob/verb/test() - - for(var/datum/disease/D in SSdisease.processing) - to_chat(src, "[D.name] - [D.holder]") -*/ - - -/datum/disease/advance/proc/totalStageSpeed() - return properties["stage_rate"] - -/datum/disease/advance/proc/totalStealth() - return properties["stealth"] - -/datum/disease/advance/proc/totalResistance() - return properties["resistance"] - -/datum/disease/advance/proc/totalTransmittable() - return properties["transmittable"] - -#undef RANDOM_STARTING_LEVEL + continue + if(!H.HasDisease(D)) + H.ForceContractDisease(D) + break + + var/list/name_symptoms = list() + for(var/datum/symptom/S in D.symptoms) + name_symptoms += S.name + message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]") + +/* +/mob/verb/test() + + for(var/datum/disease/D in SSdisease.processing) + to_chat(src, "[D.name] - [D.holder]") +*/ + + +/datum/disease/advance/proc/totalStageSpeed() + return properties["stage_rate"] + +/datum/disease/advance/proc/totalStealth() + return properties["stealth"] + +/datum/disease/advance/proc/totalResistance() + return properties["resistance"] + +/datum/disease/advance/proc/totalTransmittable() + return properties["transmittable"] + +#undef RANDOM_STARTING_LEVEL diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm index cd9cb8350b..92269ce8db 100644 --- a/code/datums/diseases/advance/symptoms/deafness.dm +++ b/code/datums/diseases/advance/symptoms/deafness.dm @@ -1,37 +1,37 @@ -/* -////////////////////////////////////// - -Deafness - - Slightly noticable. - Lowers resistance. - Decreases stage speed slightly. - Decreases transmittablity. - Intense Level. - -Bonus - Causes intermittent loss of hearing. - -////////////////////////////////////// -*/ - -/datum/symptom/deafness - - name = "Deafness" - stealth = -1 - resistance = -2 - stage_speed = -1 - transmittable = -3 - level = 4 - severity = 3 - -/datum/symptom/deafness/Activate(datum/disease/advance/A) - ..() - if(prob(SYMPTOM_ACTIVATION_PROB)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(3, 4) - to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]") - if(5) +/* +////////////////////////////////////// + +Deafness + + Slightly noticable. + Lowers resistance. + Decreases stage speed slightly. + Decreases transmittablity. + Intense Level. + +Bonus + Causes intermittent loss of hearing. + +////////////////////////////////////// +*/ + +/datum/symptom/deafness + + name = "Deafness" + stealth = -1 + resistance = -2 + stage_speed = -1 + transmittable = -3 + level = 4 + severity = 3 + +/datum/symptom/deafness/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3, 4) + to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]") + if(5) to_chat(M, "Your ears pop and begin ringing loudly!") M.minimumDeafTicks(20) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index f4f4543ad3..8fc9e05fd1 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -1,288 +1,288 @@ -/* -////////////////////////////////////// - -Healing - - Little bit hidden. - Lowers resistance tremendously. - Decreases stage speed tremendously. - Decreases transmittablity temrendously. - Fatal Level. - -Bonus - Heals toxins in the affected mob's blood stream. - -////////////////////////////////////// -*/ - -/datum/symptom/heal - - name = "Toxic Filter" - stealth = 1 - resistance = -4 - stage_speed = -4 - transmittable = -4 - level = 6 - -/datum/symptom/heal/Activate(datum/disease/advance/A) - ..() - //100% chance to activate for slow but consistent healing - var/mob/living/M = A.affected_mob - switch(A.stage) - if(4, 5) - Heal(M, A) - return - -/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) - var/heal_amt = 0.5 - if(M.toxloss > 0 && prob(20)) +/* +////////////////////////////////////// + +Healing + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals toxins in the affected mob's blood stream. + +////////////////////////////////////// +*/ + +/datum/symptom/heal + + name = "Toxic Filter" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/Activate(datum/disease/advance/A) + ..() + //100% chance to activate for slow but consistent healing + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + Heal(M, A) + return + +/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) + var/heal_amt = 0.5 + if(M.toxloss > 0 && prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#66FF99") - M.adjustToxLoss(-heal_amt) - return 1 - -/* -////////////////////////////////////// - -Apoptosis - - Lowers resistance. - Decreases stage speed. - Decreases transmittablity. - -Bonus - Heals toxins in the affected mob's blood stream faster. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/plus - - name = "Apoptoxin filter" - stealth = 0 - resistance = -2 - stage_speed = -2 - transmittable = -2 - level = 8 - -/datum/symptom/heal/plus/Heal(mob/living/M, datum/disease/advance/A) - var/heal_amt = 1 - if(M.toxloss > 0 && prob(20)) + M.adjustToxLoss(-heal_amt) + return 1 + +/* +////////////////////////////////////// + +Apoptosis + + Lowers resistance. + Decreases stage speed. + Decreases transmittablity. + +Bonus + Heals toxins in the affected mob's blood stream faster. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/plus + + name = "Apoptoxin filter" + stealth = 0 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/plus/Heal(mob/living/M, datum/disease/advance/A) + var/heal_amt = 1 + if(M.toxloss > 0 && prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#00FF00") - M.adjustToxLoss(-heal_amt) - return 1 - -/* -////////////////////////////////////// - -Regeneration - - Little bit hidden. - Lowers resistance tremendously. - Decreases stage speed tremendously. - Decreases transmittablity temrendously. - Fatal Level. - -Bonus - Heals brute damage slowly over time. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/brute - - name = "Regeneration" - stealth = 1 - resistance = -4 - stage_speed = -4 - transmittable = -4 - level = 6 - -/datum/symptom/heal/brute/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/heal_amt = 1 - - var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. - - if(!parts.len) - return - - for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(heal_amt/parts.len, 0)) - M.update_damage_overlays() - - if(prob(20)) + M.adjustToxLoss(-heal_amt) + return 1 + +/* +////////////////////////////////////// + +Regeneration + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals brute damage slowly over time. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/brute + + name = "Regeneration" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/brute/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#FF3333") - - return 1 - - -/* -////////////////////////////////////// - -Flesh Mending - - No resistance change. - Decreases stage speed. - Decreases transmittablity. - Fatal Level. - -Bonus - Heals brute damage over time. Turns cloneloss into burn damage. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/brute/plus - - name = "Flesh Mending" - stealth = 0 - resistance = 0 - stage_speed = -2 - transmittable = -2 - level = 8 - -/datum/symptom/heal/brute/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/heal_amt = 2 - - var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. - - if(M.getCloneLoss() > 0) - M.adjustCloneLoss(-1) - M.take_bodypart_damage(0, 1) //Deals BURN damage, which is not cured by this symptom + + return 1 + + +/* +////////////////////////////////////// + +Flesh Mending + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals brute damage over time. Turns cloneloss into burn damage. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/brute/plus + + name = "Flesh Mending" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/brute/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.getCloneLoss() > 0) + M.adjustCloneLoss(-1) + M.take_bodypart_damage(0, 1) //Deals BURN damage, which is not cured by this symptom new /obj/effect/temp_visual/heal(get_turf(M), "#33FFCC") - - if(!parts.len) - return - - for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(heal_amt/parts.len, 0)) - M.update_damage_overlays() - - if(prob(20)) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#CC1100") - - return 1 - -/* -////////////////////////////////////// - -Tissue Regrowth - - Little bit hidden. - Lowers resistance tremendously. - Decreases stage speed tremendously. - Decreases transmittablity temrendously. - Fatal Level. - -Bonus - Heals burn damage slowly over time. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/burn - - name = "Tissue Regrowth" - stealth = 1 - resistance = -4 - stage_speed = -4 - transmittable = -4 - level = 6 - -/datum/symptom/heal/burn/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/heal_amt = 1 - - var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. - - if(!parts.len) - return - - for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(0, heal_amt/parts.len)) - M.update_damage_overlays() - - if(prob(20)) + + return 1 + +/* +////////////////////////////////////// + +Tissue Regrowth + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals burn damage slowly over time. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn + + name = "Tissue Regrowth" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/burn/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#FF9933") - return 1 - - -/* -////////////////////////////////////// - -Heat Resistance //Needs a better name - - No resistance change. - Decreases stage speed. - Decreases transmittablity. - Fatal Level. - -Bonus - Heals burn damage over time, and helps stabilize body temperature. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/burn/plus - - name = "Heat Resistance" - stealth = 0 - resistance = 0 - stage_speed = -2 - transmittable = -2 - level = 8 - -/datum/symptom/heal/burn/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/heal_amt = 2 - - var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. - - if(M.bodytemperature > 310) - M.bodytemperature = max(310, M.bodytemperature - (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) - else if(M.bodytemperature < 311) - M.bodytemperature = min(310, M.bodytemperature + (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) - - if(!parts.len) - return - - for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(0, heal_amt/parts.len)) - M.update_damage_overlays() - - if(prob(20)) + return 1 + + +/* +////////////////////////////////////// + +Heat Resistance //Needs a better name + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals burn damage over time, and helps stabilize body temperature. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn/plus + + name = "Heat Resistance" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/burn/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.bodytemperature > 310) + M.bodytemperature = max(310, M.bodytemperature - (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + else if(M.bodytemperature < 311) + M.bodytemperature = min(310, M.bodytemperature + (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) new /obj/effect/temp_visual/heal(get_turf(M), "#CC6600") - return 1 - - -/* -////////////////////////////////////// - - DNA Restoration - - Not well hidden. - Lowers resistance minorly. - Does not affect stage speed. - Decreases transmittablity greatly. - Very high level. - -Bonus - Heals brain damage, treats radiation, cleans SE of non-power mutations. - -////////////////////////////////////// -*/ - -/datum/symptom/heal/dna - - name = "Deoxyribonucleic Acid Restoration" - stealth = -1 - resistance = -1 - stage_speed = 0 - transmittable = -3 - level = 5 - -/datum/symptom/heal/dna/Heal(mob/living/carbon/M, datum/disease/advance/A) - var/amt_healed = 1 - M.adjustBrainLoss(-amt_healed) - //Non-power mutations, excluding race, so the virus does not force monkey -> human transformations. - var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - GLOB.mutations_list[RACEMUT] - M.dna.remove_mutation_group(unclean_mutations) - M.radiation = max(M.radiation - (2 * amt_healed), 0) - return 1 + return 1 + + +/* +////////////////////////////////////// + + DNA Restoration + + Not well hidden. + Lowers resistance minorly. + Does not affect stage speed. + Decreases transmittablity greatly. + Very high level. + +Bonus + Heals brain damage, treats radiation, cleans SE of non-power mutations. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/dna + + name = "Deoxyribonucleic Acid Restoration" + stealth = -1 + resistance = -1 + stage_speed = 0 + transmittable = -3 + level = 5 + +/datum/symptom/heal/dna/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/amt_healed = 1 + M.adjustBrainLoss(-amt_healed) + //Non-power mutations, excluding race, so the virus does not force monkey -> human transformations. + var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - GLOB.mutations_list[RACEMUT] + M.dna.remove_mutation_group(unclean_mutations) + M.radiation = max(M.radiation - (2 * amt_healed), 0) + return 1 diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index 321d6691b3..8197b1510b 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -125,4 +125,4 @@ Bonus if(12 to 24) M.drowsyness += 1 if(24 to INFINITY) - M.Sleeping(2, 0) + M.Sleeping(40) diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm index 2ef37efe0e..63f485ab4c 100644 --- a/code/datums/diseases/advance/symptoms/vision.dm +++ b/code/datums/diseases/advance/symptoms/vision.dm @@ -29,6 +29,9 @@ Bonus ..() if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/M = A.affected_mob + var/obj/item/organ/eyes/eyes = M.getorganslot("eyes_sight") + if (!eyes) + return switch(A.stage) if(1, 2) to_chat(M, "Your eyes itch.") @@ -40,9 +43,9 @@ Bonus to_chat(M, "Your eyes burn horrificly!") M.blur_eyes(20) M.adjust_eye_damage(5) - if(M.eye_damage >= 10) + if(eyes.eye_damage >= 10) M.become_nearsighted() - if(prob(M.eye_damage - 10 + 1)) + if(prob(eyes.eye_damage - 10 + 1)) if(M.become_blind()) to_chat(M, "You go blind!") @@ -76,6 +79,9 @@ Bonus /datum/symptom/visionaid/Activate(datum/disease/advance/A) ..() var/mob/living/M = A.affected_mob + var/obj/item/organ/eyes/eyes = M.getorganslot("eyes_sight") + if (!eyes) + return switch(A.stage) if(4, 5) //basically oculine if(M.disabilities & BLIND) @@ -93,7 +99,7 @@ Bonus else if(M.eye_blind || M.eye_blurry) M.set_blindness(0) M.set_blurriness(0) - else if(M.eye_damage > 0) + else if(eyes.eye_damage > 0) M.adjust_eye_damage(-1) else if(prob(SYMPTOM_ACTIVATION_PROB * 3)) diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index 20aab58acc..b1e8100c35 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -1,106 +1,106 @@ -/* -////////////////////////////////////// - -Vomiting - - Very Very Noticable. - Decreases resistance. - Doesn't increase stage speed. - Little transmittable. - Medium Level. - -Bonus - Forces the affected mob to vomit! - Meaning your disease can spread via - people walking on vomit. - Makes the affected mob lose nutrition and - heal toxin damage. - -////////////////////////////////////// -*/ - -/datum/symptom/vomit - - name = "Vomiting" - stealth = -2 - resistance = -1 - stage_speed = 0 - transmittable = 1 - level = 3 - severity = 4 - -/datum/symptom/vomit/Activate(datum/disease/advance/A) - ..() - if(prob(SYMPTOM_ACTIVATION_PROB / 2)) - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2, 3, 4) - to_chat(M, "[pick("You feel nauseous.", "You feel like you're going to throw up!")]") - else - Vomit(M) - - return - -/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M) +/* +////////////////////////////////////// + +Vomiting + + Very Very Noticable. + Decreases resistance. + Doesn't increase stage speed. + Little transmittable. + Medium Level. + +Bonus + Forces the affected mob to vomit! + Meaning your disease can spread via + people walking on vomit. + Makes the affected mob lose nutrition and + heal toxin damage. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit + + name = "Vomiting" + stealth = -2 + resistance = -1 + stage_speed = 0 + transmittable = 1 + level = 3 + severity = 4 + +/datum/symptom/vomit/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB / 2)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + to_chat(M, "[pick("You feel nauseous.", "You feel like you're going to throw up!")]") + else + Vomit(M) + + return + +/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M) M.vomit(20) - -/* -////////////////////////////////////// - -Vomiting Blood - - Very Very Noticable. - Decreases resistance. - Decreases stage speed. - Little transmittable. - Intense level. - -Bonus - Forces the affected mob to vomit blood! - Meaning your disease can spread via - people walking on the blood. - Makes the affected mob lose health. - -////////////////////////////////////// -*/ - -/datum/symptom/vomit/blood - - name = "Blood Vomiting" - stealth = -2 - resistance = -1 - stage_speed = -1 - transmittable = 1 - level = 4 - severity = 5 - -/datum/symptom/vomit/blood/Vomit(mob/living/carbon/M) + +/* +////////////////////////////////////// + +Vomiting Blood + + Very Very Noticable. + Decreases resistance. + Decreases stage speed. + Little transmittable. + Intense level. + +Bonus + Forces the affected mob to vomit blood! + Meaning your disease can spread via + people walking on the blood. + Makes the affected mob lose health. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit/blood + + name = "Blood Vomiting" + stealth = -2 + resistance = -1 + stage_speed = -1 + transmittable = 1 + level = 4 + severity = 5 + +/datum/symptom/vomit/blood/Vomit(mob/living/carbon/M) M.vomit(0,TRUE) - - -/* -////////////////////////////////////// - -Projectile Vomiting - - Very Very Noticable. - Decreases resistance. - Doesn't increase stage speed. - Little transmittable. - Medium Level. - -Bonus - As normal vomiting, except it will spread further, - likely causing more to walk across the vomit. - -////////////////////////////////////// -*/ - -/datum/symptom/vomit/projectile - - name = "Projectile Vomiting" - stealth = -2 - level = 4 - -/datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M) + + +/* +////////////////////////////////////// + +Projectile Vomiting + + Very Very Noticable. + Decreases resistance. + Doesn't increase stage speed. + Little transmittable. + Medium Level. + +Bonus + As normal vomiting, except it will spread further, + likely causing more to walk across the vomit. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit/projectile + + name = "Projectile Vomiting" + stealth = -2 + level = 4 + +/datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M) M.vomit(6, distance = 5) diff --git a/code/datums/diseases/advance/symptoms/weakness.dm b/code/datums/diseases/advance/symptoms/weakness.dm index 91b18c1eab..a96266effe 100644 --- a/code/datums/diseases/advance/symptoms/weakness.dm +++ b/code/datums/diseases/advance/symptoms/weakness.dm @@ -40,5 +40,5 @@ Bonus M.adjustStaminaLoss(30) if(M.getStaminaLoss() > 60 && !M.stat) M.visible_message("[M] faints!", "You swoon and faint...") - M.AdjustSleeping(5) + M.AdjustSleeping(100) return diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index 64cd95c747..eba5e1173b 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -1,34 +1,34 @@ -/datum/disease/appendicitis - form = "Condition" - name = "Appendicitis" - max_stages = 3 - cure_text = "Surgery" - agent = "Shitty Appendix" - viable_mobtypes = list(/mob/living/carbon/human) - permeability_mod = 1 - desc = "If left untreated the subject will become very weak, and may vomit often." - severity = "Dangerous!" - longevity = 1000 - disease_flags = CAN_CARRY|CAN_RESIST - spread_flags = NON_CONTAGIOUS - visibility_flags = HIDDEN_PANDEMIC - required_organs = list(/obj/item/organ/appendix) - -/datum/disease/appendicitis/stage_act() - ..() - switch(stage) - if(1) - if(prob(5)) - affected_mob.emote("cough") - if(2) - var/obj/item/organ/appendix/A = affected_mob.getorgan(/obj/item/organ/appendix) - if(A) - A.inflamed = 1 - A.update_icon() - if(prob(3)) - to_chat(affected_mob, "You feel a stabbing pain in your abdomen!") - affected_mob.Stun(rand(2,3)) - affected_mob.adjustToxLoss(1) - if(3) - if(prob(1)) +/datum/disease/appendicitis + form = "Condition" + name = "Appendicitis" + max_stages = 3 + cure_text = "Surgery" + agent = "Shitty Appendix" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 1 + desc = "If left untreated the subject will become very weak, and may vomit often." + severity = "Dangerous!" + longevity = 1000 + disease_flags = CAN_CARRY|CAN_RESIST + spread_flags = NON_CONTAGIOUS + visibility_flags = HIDDEN_PANDEMIC + required_organs = list(/obj/item/organ/appendix) + +/datum/disease/appendicitis/stage_act() + ..() + switch(stage) + if(1) + if(prob(5)) + affected_mob.emote("cough") + if(2) + var/obj/item/organ/appendix/A = affected_mob.getorgan(/obj/item/organ/appendix) + if(A) + A.inflamed = 1 + A.update_icon() + if(prob(3)) + to_chat(affected_mob, "You feel a stabbing pain in your abdomen!") + affected_mob.Stun(rand(40,60)) + affected_mob.adjustToxLoss(1) + if(3) + if(prob(1)) affected_mob.vomit(95) diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index cc1d70cad2..a58f85a494 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -50,7 +50,7 @@ if(prob(3)) to_chat(affected_mob, "You lose consciousness...") affected_mob.visible_message("[affected_mob] suddenly collapses") - affected_mob.Paralyse(rand(5,10)) + affected_mob.Unconscious(rand(100,200)) if(prob(1)) affected_mob.emote("snore") if(prob(15)) diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index 926b59408a..e962d51e32 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -52,7 +52,7 @@ to_chat(affected_mob, "You feel very strange.") if (prob(4)) to_chat(affected_mob, "You feel a stabbing pain in your head!") - affected_mob.Paralyse(2) + affected_mob.Unconscious(40) if (prob(4)) to_chat(affected_mob, "Your stomach churns.") if(3) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 88d9fca383..03b746a3bd 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -138,7 +138,7 @@ affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) if (prob(4)) to_chat(affected_mob, "You feel a stabbing pain in your head.") - affected_mob.Paralyse(2) + affected_mob.Unconscious(40) if(4) if (prob(20)) affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...")) @@ -167,7 +167,7 @@ if(3) if (prob(4)) to_chat(affected_mob, "You feel a stabbing pain in your head.") - affected_mob.Paralyse(2) + affected_mob.Unconscious(40) if(4) if (prob(20)) affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!")) diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm index b16a0a2193..4b57c2655b 100644 --- a/code/datums/diseases/tuberculosis.dm +++ b/code/datums/diseases/tuberculosis.dm @@ -41,7 +41,7 @@ if(prob(10)) affected_mob.adjustStaminaLoss(100) affected_mob.visible_message("[affected_mob] faints!", "You surrender yourself and feel at peace...") - affected_mob.AdjustSleeping(5) + affected_mob.AdjustSleeping(100) if(prob(2)) to_chat(affected_mob, "You feel your mind relax and your thoughts drift!") affected_mob.confused = min(100, affected_mob.confused + 8) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index d82e691622..310145c853 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -16,27 +16,24 @@ var/emote_type = EMOTE_VISIBLE //Whether the emote is visible or audible var/restraint_check = FALSE //Checks if the mob is restrained before performing the emote var/muzzle_ignore = FALSE //Will only work if the emote is EMOTE_AUDIBLE - var/list/mob_type_allowed_typecache = list() //Types that are allowed to use that emote - var/list/mob_type_blacklist_typecache = list() //Types that are NOT allowed to use that emote + var/list/mob_type_allowed_typecache //Types that are allowed to use that emote + var/list/mob_type_blacklist_typecache //Types that are NOT allowed to use that emote var/stat_allowed = CONSCIOUS var/static/list/emote_list = list() /datum/emote/New() - ..() if(key_third_person) emote_list[key_third_person] = src mob_type_allowed_typecache = typecacheof(mob_type_allowed_typecache) mob_type_blacklist_typecache = typecacheof(mob_type_blacklist_typecache) -/datum/emote/proc/run_emote(mob/user, params = null, type_override = null) +/datum/emote/proc/run_emote(mob/user, params, type_override) . = TRUE if(!can_run_emote(user)) return FALSE var/msg = select_message_type(user) if(params && message_param) msg = select_param(user, params) - if(findtext(msg, "%s")) - msg = replacetext(msg, "%s", user.p_s()) msg = replace_pronoun(user, msg) @@ -88,7 +85,7 @@ . = message_AI else if(ismonkey(user) && message_monkey) . = message_monkey - else if(istype(user, /mob/living/simple_animal) && message_simple) + else if(isanimal(user) && message_simple) . = message_simple /datum/emote/proc/select_param(mob/user, params) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 9fb302a63a..1145376967 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -125,7 +125,7 @@ GLOBAL_LIST_EMPTY(explosions) E = new E.set_up(epicenter) E.start() - + EX_PREPROCESS_CHECK_TICK //flash mobs @@ -192,7 +192,7 @@ GLOBAL_LIST_EMPTY(explosions) var/throw_range = rand(throw_dist, max_range) var/turf/throw_at = get_ranged_target_turf(I, throw_dir, throw_range) I.throw_speed = EXPLOSION_THROW_SPEED //Temporarily change their throw_speed for embedding purposes (Reset when it finishes throwing, regardless of hitting anything) - I.throw_at(throw_at, throw_range, EXPLOSION_THROW_SPEED) + I.throw_at(throw_at, throw_range, EXPLOSION_THROW_SPEED) //wait for the lists to repop var/break_condition @@ -208,7 +208,7 @@ GLOBAL_LIST_EMPTY(explosions) if(!running) break - + //update the trackers affTurfLen = affected_turfs.len expBlockLen = cached_exp_block.len @@ -274,7 +274,7 @@ GLOBAL_LIST_EMPTY(explosions) . = list() var/processed = 0 while(!stopped && running) - var/I + var/I for(I in (processed + 1) to affected_turfs.len) // we cache the explosion block rating of every turf in the explosion area var/turf/T = affected_turfs[I] var/current_exp_block = T.density ? T.explosion_block : 0 @@ -282,12 +282,12 @@ GLOBAL_LIST_EMPTY(explosions) for(var/obj/O in T) var/the_block = O.explosion_block current_exp_block += the_block == EXPLOSION_BLOCK_PROC ? O.GetExplosionBlock() : the_block - + .[T] = current_exp_block if(TICK_CHECK) break - + processed = I stoplag() @@ -346,10 +346,11 @@ GLOBAL_LIST_EMPTY(explosions) TT = get_step_towards(TT,epicenter) if(TT.density) dist += TT.explosion_block - + for(var/obj/O in T) var/the_block = O.explosion_block dist += the_block == EXPLOSION_BLOCK_PROC ? O.GetExplosionBlock() : the_block + if(dist < dev) T.color = "red" T.maptext = "Dev" diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 473a17053a..d5c0e74839 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -1,136 +1,136 @@ -/datum/getrev - var/originmastercommit - var/commit - var/list/testmerge = list() - var/has_pr_details = FALSE //tgs2 support - var/date - -/datum/getrev/New() - if(fexists(SERVICE_PR_TEST_JSON)) - testmerge = json_decode(file2text(SERVICE_PR_TEST_JSON)) - else if(!world.RunningService() && fexists("../prtestjob.lk")) //tgs2 support - var/list/tmp = world.file2list("..\\prtestjob.lk") - for(var/I in tmp) - if(I) - testmerge |= I - - log_world("Running /tg/ revision:") - var/list/logs = world.file2list(".git/logs/HEAD") - if(logs) - logs = splittext(logs[logs.len - 1], " ") - date = unix2date(text2num(logs[5])) - commit = logs[2] - log_world("[date]") - logs = world.file2list(".git/logs/refs/remotes/origin/master") - if(logs) - originmastercommit = splittext(logs[logs.len - 1], " ")[2] - - if(testmerge.len) - log_world(commit) - for(var/line in testmerge) - if(line) - if(world.RunningService()) - var/tmcommit = testmerge[line]["commit"] - log_world("Test merge active of PR #[line] commit [tmcommit]") - SSblackbox.add_details("testmerged_prs","[line]|[tmcommit]") - else //tgs2 support - log_world("Test merge active of PR #[line]") - SSblackbox.add_details("testmerged_prs","[line]") - log_world("Based off origin/master commit [originmastercommit]") - else - log_world(originmastercommit) - -/datum/getrev/proc/DownloadPRDetails() - if(!config.githubrepoid) - if(testmerge.len) - log_world("PR details download failed: No github repo config set") - return - if(!isnum(text2num(config.githubrepoid))) - log_world("PR details download failed: Invalid github repo id: [config.githubrepoid]") - return - for(var/line in testmerge) - if(!isnum(text2num(line))) - log_world("PR details download failed: Invalid PR number: [line]") - return - - var/url = "https://api.github.com/repositories/[config.githubrepoid]/pulls/[line].json" - GLOB.valid_HTTPSGet = TRUE - var/json = HTTPSGet(url) - if(!json) - return - - testmerge[line] = json_decode(json) - - if(!testmerge[line]) - log_world("PR details download failed: null details returned") - return - CHECK_TICK - log_world("PR details successfully downloaded") - has_pr_details = TRUE - -/datum/getrev/proc/GetTestMergeInfo(header = TRUE) - if(!testmerge.len) - return "" - . = header ? "The following pull requests are currently test merged:
    " : "" - for(var/line in testmerge) - var/details - if(world.RunningService()) - var/cm = testmerge[line]["commit"] - details = ": '" + html_encode(testmerge[line]["title"]) + "' by " + html_encode(testmerge[line]["author"]) + " at commit " + html_encode(copytext(cm, 1, min(length(cm), 7))) - else if(has_pr_details) //tgs2 support - details = ": '" + html_encode(testmerge[line]["title"]) + "' by " + html_encode(testmerge[line]["user"]["login"]) +/datum/getrev + var/originmastercommit + var/commit + var/list/testmerge = list() + var/has_pr_details = FALSE //tgs2 support + var/date + +/datum/getrev/New() + if(world.RunningService() && fexists(SERVICE_PR_TEST_JSON)) + testmerge = json_decode(file2text(SERVICE_PR_TEST_JSON)) +#ifdef SERVERTOOLS + else if(!world.RunningService() && fexists("../prtestjob.lk")) //tgs2 support + var/list/tmp = world.file2list("..\\prtestjob.lk") + for(var/I in tmp) + if(I) + testmerge |= I +#endif + log_world("Running /tg/ revision:") + var/list/logs = world.file2list(".git/logs/HEAD") + if(logs) + logs = splittext(logs[logs.len - 1], " ") + date = unix2date(text2num(logs[5])) + commit = logs[2] + log_world("[date]") + logs = world.file2list(".git/logs/refs/remotes/origin/master") + if(logs) + originmastercommit = splittext(logs[logs.len - 1], " ")[2] + + if(testmerge.len) + log_world(commit) + for(var/line in testmerge) + if(line) + if(world.RunningService()) + var/tmcommit = testmerge[line]["commit"] + log_world("Test merge active of PR #[line] commit [tmcommit]") + SSblackbox.add_details("testmerged_prs","[line]|[tmcommit]") + else //tgs2 support + log_world("Test merge active of PR #[line]") + SSblackbox.add_details("testmerged_prs","[line]") + log_world("Based off origin/master commit [originmastercommit]") + else + log_world(originmastercommit) +/datum/getrev/proc/DownloadPRDetails() + if(!config.githubrepoid) + if(testmerge.len) + log_world("PR details download failed: No github repo config set") + return + if(!isnum(text2num(config.githubrepoid))) + log_world("PR details download failed: Invalid github repo id: [config.githubrepoid]") + return + for(var/line in testmerge) + if(!isnum(text2num(line))) + log_world("PR details download failed: Invalid PR number: [line]") + return + + var/url = "https://api.github.com/repositories/[config.githubrepoid]/pulls/[line].json" + GLOB.valid_HTTPSGet = TRUE + var/json = HTTPSGet(url) + if(!json) + return + + testmerge[line] = json_decode(json) + + if(!testmerge[line]) + log_world("PR details download failed: null details returned") + return + CHECK_TICK + log_world("PR details successfully downloaded") + has_pr_details = TRUE + +/datum/getrev/proc/GetTestMergeInfo(header = TRUE) + if(!testmerge.len) + return "" + . = header ? "The following pull requests are currently test merged:
    " : "" + for(var/line in testmerge) + var/details + if(world.RunningService()) + var/cm = testmerge[line]["commit"] + details = ": '" + html_encode(testmerge[line]["title"]) + "' by " + html_encode(testmerge[line]["author"]) + " at commit " + html_encode(copytext(cm, 1, min(length(cm), 7))) + else if(has_pr_details) //tgs2 support + details = ": '" + html_encode(testmerge[line]["title"]) + "' by " + html_encode(testmerge[line]["user"]["login"]) . += "#[line][details]
    " - -/client/verb/showrevinfo() - set category = "OOC" - set name = "Show Server Revision" - set desc = "Check the current server code revision" - - if(GLOB.revdata.originmastercommit) - to_chat(src, "Server revision compiled on: [GLOB.revdata.date]") - var/prefix = "" - if(GLOB.revdata.testmerge.len) - to_chat(src, GLOB.revdata.GetTestMergeInfo()) - prefix = "Based off origin/master commit: " - var/pc = GLOB.revdata.originmastercommit + +/client/verb/showrevinfo() + set category = "OOC" + set name = "Show Server Revision" + set desc = "Check the current server code revision" + + if(GLOB.revdata.originmastercommit) + to_chat(src, "Server revision compiled on: [GLOB.revdata.date]") + var/prefix = "" + if(GLOB.revdata.testmerge.len) + to_chat(src, GLOB.revdata.GetTestMergeInfo()) + prefix = "Based off origin/master commit: " + var/pc = GLOB.revdata.originmastercommit to_chat(src, "[prefix][copytext(pc, 1, min(length(pc), 7))]") - else - to_chat(src, "Revision unknown") - to_chat(src, "Current Infomational Settings:") - to_chat(src, "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]") - to_chat(src, "Protect Assistant Role From Traitor: [config.protect_assistant_from_antagonist]") - to_chat(src, "Enforce Human Authority: [config.enforce_human_authority]") - to_chat(src, "Allow Latejoin Antagonists: [config.allow_latejoin_antagonists]") - to_chat(src, "Enforce Continuous Rounds: [config.continuous.len] of [config.modes.len] roundtypes") - to_chat(src, "Allow Midround Antagonists: [config.midround_antag.len] of [config.modes.len] roundtypes") - if(config.show_game_type_odds) - if(SSticker.IsRoundInProgress()) - var/prob_sum = 0 - var/current_odds_differ = FALSE - var/list/probs = list() - var/list/modes = config.gamemode_cache - for(var/mode in modes) - var/datum/game_mode/M = mode - var/ctag = initial(M.config_tag) - if(!(ctag in config.probabilities)) - continue - if((config.min_pop[ctag] && (config.min_pop[ctag] > SSticker.totalPlayersReady)) || (config.max_pop[ctag] && (config.max_pop[ctag] < SSticker.totalPlayersReady)) || (initial(M.required_players) > SSticker.totalPlayersReady)) - current_odds_differ = TRUE - continue - probs[ctag] = 1 - prob_sum += config.probabilities[ctag] - if(current_odds_differ) - to_chat(src, "Game Mode Odds for current round:") - for(var/ctag in probs) - if(config.probabilities[ctag] > 0) - var/percentage = round(config.probabilities[ctag] / prob_sum * 100, 0.1) - to_chat(src, "[ctag] [percentage]%") - - to_chat(src, "All Game Mode Odds:") - var/sum = 0 - for(var/ctag in config.probabilities) - sum += config.probabilities[ctag] - for(var/ctag in config.probabilities) - if(config.probabilities[ctag] > 0) - var/percentage = round(config.probabilities[ctag] / sum * 100, 0.1) - to_chat(src, "[ctag] [percentage]%") + else + to_chat(src, "Revision unknown") + to_chat(src, "Current Infomational Settings:") + to_chat(src, "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]") + to_chat(src, "Protect Assistant Role From Traitor: [config.protect_assistant_from_antagonist]") + to_chat(src, "Enforce Human Authority: [config.enforce_human_authority]") + to_chat(src, "Allow Latejoin Antagonists: [config.allow_latejoin_antagonists]") + to_chat(src, "Enforce Continuous Rounds: [config.continuous.len] of [config.modes.len] roundtypes") + to_chat(src, "Allow Midround Antagonists: [config.midround_antag.len] of [config.modes.len] roundtypes") + if(config.show_game_type_odds) + if(SSticker.IsRoundInProgress()) + var/prob_sum = 0 + var/current_odds_differ = FALSE + var/list/probs = list() + var/list/modes = config.gamemode_cache + for(var/mode in modes) + var/datum/game_mode/M = mode + var/ctag = initial(M.config_tag) + if(!(ctag in config.probabilities)) + continue + if((config.min_pop[ctag] && (config.min_pop[ctag] > SSticker.totalPlayersReady)) || (config.max_pop[ctag] && (config.max_pop[ctag] < SSticker.totalPlayersReady)) || (initial(M.required_players) > SSticker.totalPlayersReady)) + current_odds_differ = TRUE + continue + probs[ctag] = 1 + prob_sum += config.probabilities[ctag] + if(current_odds_differ) + to_chat(src, "Game Mode Odds for current round:") + for(var/ctag in probs) + if(config.probabilities[ctag] > 0) + var/percentage = round(config.probabilities[ctag] / prob_sum * 100, 0.1) + to_chat(src, "[ctag] [percentage]%") + + to_chat(src, "All Game Mode Odds:") + var/sum = 0 + for(var/ctag in config.probabilities) + sum += config.probabilities[ctag] + for(var/ctag in config.probabilities) + if(config.probabilities[ctag] > 0) + var/percentage = round(config.probabilities[ctag] / sum * 100, 0.1) + to_chat(src, "[ctag] [percentage]%") diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 1309eaaef9..10b4f3e7bf 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -15,7 +15,6 @@ var/soundout //soundfile to play after teleportation var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation) - /datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null) if(!initTeleport(arglist(args))) return 0 @@ -100,21 +99,7 @@ var/turf/destturf var/turf/curturf = get_turf(teleatom) - if(precision) - var/list/posturfs = list() - var/center = get_turf(destination) - if(!center) - center = destination - for(var/turf/T in range(precision,center)) - if(T.is_transition_turf()) - continue // Avoid picking these. - var/area/A = T.loc - if(!A.noteleport) - posturfs.Add(T) - - destturf = safepick(posturfs) - else - destturf = get_turf(destination) + destturf = get_teleport_turf(get_turf(destination), precision) if(!destturf || !curturf || destturf.is_transition_turf()) return 0 @@ -124,13 +109,16 @@ return 0 playSpecials(curturf,effectin,soundin) - if(force_teleport) teleatom.forceMove(destturf) + if(ismegafauna(teleatom)) + message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].") playSpecials(destturf,effectout,soundout) else if(teleatom.Move(destturf)) playSpecials(destturf,effectout,soundout) + if(ismegafauna(teleatom)) + message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].") return 1 /datum/teleport/proc/teleport() @@ -225,3 +213,18 @@ // DING! You have passed the gauntlet, and are "probably" safe. return F + +/proc/get_teleport_turfs(turf/center, precision = 0) + if(!precision) + return list(center) + var/list/posturfs = list() + for(var/turf/T in range(precision,center)) + if(T.is_transition_turf()) + continue // Avoid picking these. + var/area/A = T.loc + if(!A.noteleport) + posturfs.Add(T) + return posturfs + +/proc/get_teleport_turf(turf/center, precision = 0) + return safepick(get_teleport_turfs(center, precision)) diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 139ad096ec..e80c2848cd 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -1,143 +1,143 @@ -//used for holding information about unique properties of maps -//feed it json files that match the datum layout -//defaults to box -// -Cyberboss - -/datum/map_config - var/config_filename = "_maps/tgstation2.json" - var/map_name = "Box Station" - var/map_path = "map_files/TgStation" - var/map_file = "tgstation.2.1.3.dmm" - - var/minetype = "lavaland" - +//used for holding information about unique properties of maps +//feed it json files that match the datum layout +//defaults to box +// -Cyberboss + +/datum/map_config + var/config_filename = "_maps/boxstation.json" + var/map_name = "Box Station" + var/map_path = "map_files/BoxStation" + var/map_file = "BoxStation.dmm" + + var/minetype = "lavaland" + var/list/transition_config = list(CENTCOMM = SELFLOOPING, MAIN_STATION = CROSSLINKED, - EMPTY_AREA_1 = CROSSLINKED, - EMPTY_AREA_2 = CROSSLINKED, - MINING = SELFLOOPING, - EMPTY_AREA_3 = CROSSLINKED, - EMPTY_AREA_4 = CROSSLINKED, - EMPTY_AREA_5 = CROSSLINKED, - EMPTY_AREA_6 = CROSSLINKED, - EMPTY_AREA_7 = CROSSLINKED, - EMPTY_AREA_8 = CROSSLINKED) - var/defaulted = TRUE //if New failed - - var/config_max_users = 0 - var/config_min_users = 0 - var/voteweight = 1 - -/datum/map_config/New(filename = "data/next_map.json", default_to_box, delete_after) - if(default_to_box) - return - LoadConfig(filename) - if(delete_after) - fdel(filename) - -/datum/map_config/proc/LoadConfig(filename) - if(!fexists(filename)) - log_world("map_config not found: [filename]") - return - - var/json = file(filename) - if(!json) - log_world("Could not open map_config: [filename]") - return - - json = file2text(json) - if(!json) - log_world("map_config is not text: [filename]") - return - - json = json_decode(json) - if(!json) - log_world("map_config is not json: [filename]") - return - - if(!ValidateJSON(json)) - log_world("map_config failed to validate for above reason: [filename]") - return - - config_filename = filename - - map_name = json["map_name"] - map_path = json["map_path"] - map_file = json["map_file"] - - minetype = json["minetype"] - - var/list/jtcl = json["transition_config"] - - if(jtcl != "default") - transition_config.Cut() - - for(var/I in jtcl) - transition_config[TransitionStringToEnum(I)] = TransitionStringToEnum(jtcl[I]) - - defaulted = FALSE - -#define CHECK_EXISTS(X) if(!istext(json[X])) { log_world(X + "missing from json!"); return; } -/datum/map_config/proc/ValidateJSON(list/json) - CHECK_EXISTS("map_name") - CHECK_EXISTS("map_path") - CHECK_EXISTS("map_file") - CHECK_EXISTS("minetype") - CHECK_EXISTS("transition_config") - - var/path = GetFullMapPath(json["map_path"], json["map_file"]) - if(!fexists(path)) - log_world("Map file ([path]) does not exist!") - return - - if(json["transition_config"] != "default") - if(!islist(json["transition_config"])) - log_world("transition_config is not a list!") - return - - var/list/jtcl = json["transition_config"] - for(var/I in jtcl) - if(isnull(TransitionStringToEnum(I))) - log_world("Invalid transition_config option: [I]!") - if(isnull(TransitionStringToEnum(jtcl[I]))) - log_world("Invalid transition_config option: [I]!") - - return TRUE -#undef CHECK_EXISTS - -/datum/map_config/proc/TransitionStringToEnum(string) - switch(string) - if("CROSSLINKED") - return CROSSLINKED - if("SELFLOOPING") - return SELFLOOPING - if("UNAFFECTED") - return UNAFFECTED - if("MAIN_STATION") - return MAIN_STATION - if("CENTCOMM") - return CENTCOMM - if("MINING") - return MINING - if("EMPTY_AREA_1") - return EMPTY_AREA_1 - if("EMPTY_AREA_2") - return EMPTY_AREA_2 - if("EMPTY_AREA_3") - return EMPTY_AREA_3 - if("EMPTY_AREA_4") - return EMPTY_AREA_4 - if("EMPTY_AREA_5") - return EMPTY_AREA_5 - if("EMPTY_AREA_6") - return EMPTY_AREA_6 - if("EMPTY_AREA_7") - return EMPTY_AREA_7 - if("EMPTY_AREA_8") - return EMPTY_AREA_8 - -/datum/map_config/proc/GetFullMapPath(mp = map_path, mf = map_file) - return "_maps/[mp]/[mf]" - -/datum/map_config/proc/MakeNextMap() - return config_filename == "data/next_map.json" || fcopy(config_filename, "data/next_map.json") + EMPTY_AREA_1 = CROSSLINKED, + EMPTY_AREA_2 = CROSSLINKED, + MINING = SELFLOOPING, + EMPTY_AREA_3 = CROSSLINKED, + EMPTY_AREA_4 = CROSSLINKED, + EMPTY_AREA_5 = CROSSLINKED, + EMPTY_AREA_6 = CROSSLINKED, + EMPTY_AREA_7 = CROSSLINKED, + EMPTY_AREA_8 = CROSSLINKED) + var/defaulted = TRUE //if New failed + + var/config_max_users = 0 + var/config_min_users = 0 + var/voteweight = 1 + +/datum/map_config/New(filename = "data/next_map.json", default_to_box, delete_after) + if(default_to_box) + return + LoadConfig(filename) + if(delete_after) + fdel(filename) + +/datum/map_config/proc/LoadConfig(filename) + if(!fexists(filename)) + log_world("map_config not found: [filename]") + return + + var/json = file(filename) + if(!json) + log_world("Could not open map_config: [filename]") + return + + json = file2text(json) + if(!json) + log_world("map_config is not text: [filename]") + return + + json = json_decode(json) + if(!json) + log_world("map_config is not json: [filename]") + return + + if(!ValidateJSON(json)) + log_world("map_config failed to validate for above reason: [filename]") + return + + config_filename = filename + + map_name = json["map_name"] + map_path = json["map_path"] + map_file = json["map_file"] + + minetype = json["minetype"] + + var/list/jtcl = json["transition_config"] + + if(jtcl != "default") + transition_config.Cut() + + for(var/I in jtcl) + transition_config[TransitionStringToEnum(I)] = TransitionStringToEnum(jtcl[I]) + + defaulted = FALSE + +#define CHECK_EXISTS(X) if(!istext(json[X])) { log_world(X + "missing from json!"); return; } +/datum/map_config/proc/ValidateJSON(list/json) + CHECK_EXISTS("map_name") + CHECK_EXISTS("map_path") + CHECK_EXISTS("map_file") + CHECK_EXISTS("minetype") + CHECK_EXISTS("transition_config") + + var/path = GetFullMapPath(json["map_path"], json["map_file"]) + if(!fexists(path)) + log_world("Map file ([path]) does not exist!") + return + + if(json["transition_config"] != "default") + if(!islist(json["transition_config"])) + log_world("transition_config is not a list!") + return + + var/list/jtcl = json["transition_config"] + for(var/I in jtcl) + if(isnull(TransitionStringToEnum(I))) + log_world("Invalid transition_config option: [I]!") + if(isnull(TransitionStringToEnum(jtcl[I]))) + log_world("Invalid transition_config option: [I]!") + + return TRUE +#undef CHECK_EXISTS + +/datum/map_config/proc/TransitionStringToEnum(string) + switch(string) + if("CROSSLINKED") + return CROSSLINKED + if("SELFLOOPING") + return SELFLOOPING + if("UNAFFECTED") + return UNAFFECTED + if("MAIN_STATION") + return MAIN_STATION + if("CENTCOMM") + return CENTCOMM + if("MINING") + return MINING + if("EMPTY_AREA_1") + return EMPTY_AREA_1 + if("EMPTY_AREA_2") + return EMPTY_AREA_2 + if("EMPTY_AREA_3") + return EMPTY_AREA_3 + if("EMPTY_AREA_4") + return EMPTY_AREA_4 + if("EMPTY_AREA_5") + return EMPTY_AREA_5 + if("EMPTY_AREA_6") + return EMPTY_AREA_6 + if("EMPTY_AREA_7") + return EMPTY_AREA_7 + if("EMPTY_AREA_8") + return EMPTY_AREA_8 + +/datum/map_config/proc/GetFullMapPath(mp = map_path, mf = map_file) + return "_maps/[mp]/[mf]" + +/datum/map_config/proc/MakeNextMap() + return config_filename == "data/next_map.json" || fcopy(config_filename, "data/next_map.json") diff --git a/code/datums/martial.dm b/code/datums/martial.dm index fa02a2f092..e804b80e48 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -2,13 +2,12 @@ var/name = "Martial Art" var/streak = "" var/max_streak_length = 6 - var/current_target = null - var/temporary = 0 - var/datum/martial_art/base = null // The permanent style + var/current_target + var/datum/martial_art/base // The permanent style. This will be null unless the martial art is temporary var/deflection_chance = 0 //Chance to deflect projectiles var/block_chance = 0 //Chance to block melee attacks using items while on throw mode. var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not - var/help_verb = null + var/help_verb var/no_guns = FALSE var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts @@ -68,28 +67,49 @@ add_logs(A, D, "punched") if((D.stat != DEAD) && damage >= A.dna.species.punchstunthreshold) - D.visible_message("[A] has weakened [D]!!", \ - "[A] has weakened [D]!") - D.apply_effect(4, WEAKEN, armor_block) + D.visible_message("[A] has knocked [D] down!!", \ + "[A] has knocked [D] down!") + D.apply_effect(40, KNOCKDOWN, armor_block) D.forcesay(GLOB.hit_appends) else if(D.lying) D.forcesay(GLOB.hit_appends) return 1 /datum/martial_art/proc/teach(mob/living/carbon/human/H,make_temporary=0) - if(make_temporary) - temporary = 1 - if(temporary && H.mind.martial_art) - if(!H.mind.martial_art.allow_temp_override) - return - base = H.mind.martial_art + if(H.mind.martial_art) + if(make_temporary) + if(!H.mind.martial_art.allow_temp_override) + return FALSE + store(H.mind.martial_art,H) + else + H.mind.martial_art.on_remove(H) + if(H.mind.martial_art != H.mind.default_martial_art && !H.mind.martial_art.base) + QDEL_NULL(H.mind.martial_art) + else if(make_temporary) + base = H.mind.default_martial_art if(help_verb) H.verbs += help_verb H.mind.martial_art = src + return TRUE + +/datum/martial_art/proc/store(datum/martial_art/M,mob/living/carbon/human/H) + if(H.mind && base) + if(H.mind.default_martial_art != base && !base.base) + QDEL_NULL(base) + M.on_remove(H) + base = M /datum/martial_art/proc/remove(mob/living/carbon/human/H) if(H.mind.martial_art != src) return - H.mind.martial_art = base + on_remove(H) + if(base) + base.teach(H) + else + var/datum/martial_art/X = H.mind.default_martial_art + X.teach(H) + +/datum/martial_art/proc/on_remove(mob/living/carbon/human/H) if(help_verb) H.verbs -= help_verb + return diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 6a3a059890..db77d7095a 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -39,8 +39,8 @@ if((D.stat != DEAD) && prob(knockout_prob)) D.visible_message("[A] has knocked [D] out with a haymaker!", \ "[A] has knocked [D] out with a haymaker!") - D.apply_effect(10,WEAKEN,armor_block) - D.SetSleeping(5) + D.apply_effect(200,KNOCKDOWN,armor_block) + D.SetSleeping(100) D.forcesay(GLOB.hit_appends) add_logs(A, D, "knocked out (boxing) ") else if(D.lying) diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index ebb570fa0c..53e56218e5 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -35,17 +35,17 @@ return 0 /datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.stat || !D.weakened) + if(!D.stat || !D.IsKnockdown()) D.visible_message("[A] slams [D] into the ground!", \ "[A] slams you into the ground!") playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) D.apply_damage(10, BRUTE) - D.Weaken(6) + D.Knockdown(120) add_logs(A, D, "cqc slammed") return 1 /datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.stat || !D.weakened) + if(!D.stat || !D.IsKnockdown()) D.visible_message("[A] kicks [D] back!", \ "[A] kicks you back!") playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) @@ -53,11 +53,11 @@ D.throw_at(throw_target, 1, 14, A) D.apply_damage(10, BRUTE) add_logs(A, D, "cqc kicked") - if(D.weakened && !D.stat) + if(D.IsKnockdown() && !D.stat) D.visible_message("[A] kicks [D]'s head, knocking them out!", \ "[A] kicks your head, knocking you out!") playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) - D.SetSleeping(15) + D.SetSleeping(300) D.adjustBrainLoss(25) return 1 @@ -74,7 +74,7 @@ D.visible_message("[A] locks [D] into a restraining position!", \ "[A] locks you into a restraining position!") D.adjustStaminaLoss(20) - D.Stun(5) + D.Stun(100) restraining = 1 addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE) return 1 @@ -114,7 +114,7 @@ A.do_attack_animation(D) var/picked_hit_type = pick("CQC'd", "Big Bossed") var/bonus_damage = 13 - if(D.weakened || D.resting || D.lying) + if(D.IsKnockdown() || D.resting || D.lying) bonus_damage += 5 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE) @@ -125,12 +125,12 @@ D.visible_message("[A] [picked_hit_type] [D]!", \ "[A] [picked_hit_type] you!") add_logs(A, D, "[picked_hit_type] with CQC") - if(A.resting && !D.stat && !D.weakened) + if(A.resting && !D.stat && !D.IsKnockdown()) D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) D.apply_damage(10, BRUTE) - D.Weaken(3) + D.Knockdown(60) add_logs(A, D, "cqc sweeped") return 1 @@ -140,7 +140,7 @@ if(check_streak(A,D)) return 1 if(prob(65)) - if(!D.stat || !D.weakened || !restraining) + if(!D.stat || !D.IsKnockdown() || !restraining) I = D.get_active_held_item() D.visible_message("[A] strikes [D]'s jaw with their hand!", \ "[A] strikes your jaw, disorienting you!") @@ -157,7 +157,7 @@ if(restraining && A.pulling == D) D.visible_message("[A] puts [D] into a chokehold!", \ "[A] puts you into a chokehold!") - D.SetSleeping(20) + D.SetSleeping(400) restraining = 0 if(A.grab_state < GRAB_NECK) A.grab_state = GRAB_NECK @@ -173,8 +173,8 @@ to_chat(usr, "You try to remember some of the basics of CQC.") - to_chat(usr, "Slam: Grab Harm. Slam opponent into the ground, weakens and knocks down.") - to_chat(usr, "CQC Kick: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or weakened opponents.") + to_chat(usr, "Slam: Grab Harm. Slam opponent into the ground, knocking them down.") + to_chat(usr, "CQC Kick: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or knocked down opponents.") to_chat(usr, "Restrain: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a choke hold.") to_chat(usr, "Pressure: Disarm Grab. Decent stamina damage.") to_chat(usr, "Consecutive CQC: Disarm Disarm Harm. Mainly offensive move, huge damage and decent stamina damage.") diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index eb5f74b411..94637f10e3 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -52,16 +52,15 @@ owner.visible_message("[owner] assumes the Lung Punch stance!", "Your next attack will be a Lung Punch.") H.mind.martial_art.streak = "quick_choke"//internal name for lung punch -/datum/martial_art/krav_maga/teach(var/mob/living/carbon/human/H,var/make_temporary=0) - ..() - to_chat(H, "You know the arts of Krav Maga!") - to_chat(H, "Place your cursor over a move at the top of the screen to see what it does.") - neckchop.Grant(H) - legsweep.Grant(H) - lungpunch.Grant(H) +/datum/martial_art/krav_maga/teach(mob/living/carbon/human/H,make_temporary=0) + if(..()) + to_chat(H, "You know the arts of Krav Maga!") + to_chat(H, "Place your cursor over a move at the top of the screen to see what it does.") + neckchop.Grant(H) + legsweep.Grant(H) + lungpunch.Grant(H) -/datum/martial_art/krav_maga/remove(var/mob/living/carbon/human/H) - ..() +/datum/martial_art/krav_maga/on_remove(mob/living/carbon/human/H) to_chat(H, "You suddenly forget the arts of Krav Maga...") neckchop.Remove(H) legsweep.Remove(H) @@ -84,13 +83,13 @@ return 0 /datum/martial_art/krav_maga/proc/leg_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(D.stat || D.weakened) + if(D.stat || D.IsKnockdown()) return 0 D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) D.apply_damage(5, BRUTE) - D.Weaken(2) + D.Knockdown(40) add_logs(A, D, "leg sweeped") return 1 @@ -126,7 +125,7 @@ add_logs(A, D, "punched") var/picked_hit_type = pick("punches", "kicks") var/bonus_damage = 10 - if(D.weakened || D.resting || D.lying) + if(D.IsKnockdown() || D.resting || D.lying) bonus_damage += 5 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index f079d2a7db..3045033948 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -35,7 +35,7 @@ return 0 /datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.stat && !D.stunned && !D.weakened) + if(!D.stat && !D.IsStun() && !D.IsKnockdown()) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] grabs [D]'s wrist and wrenches it sideways!", \ "[A] grabs your wrist and violently wrenches it to the side!") @@ -43,51 +43,51 @@ D.emote("scream") D.drop_item() D.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) - D.Stun(3) + D.Stun(60) return 1 add_logs(A, D, "wrist wrenched (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(A.dir == D.dir && !D.stat && !D.weakened) + if(A.dir == D.dir && !D.stat && !D.IsKnockdown()) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] kicks [D] in the back!", \ "[A] kicks you in the back, making you stumble and fall!") step_to(D,get_step(D,D.dir),1) - D.Weaken(4) + D.Knockdown(80) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) return 1 add_logs(A, D, "back-kicked (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.stat && !D.weakened) + if(!D.stat && !D.IsKnockdown()) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] knees [D] in the stomach!", \ "[A] winds you with a knee in the stomach!") D.audible_message("[D] gags!") D.losebreath += 3 - D.Stun(2) + D.Stun(40) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) return 1 add_logs(A, D, "stomach kneed (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.stat && !D.weakened) + if(!D.stat && !D.IsKnockdown()) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] in the head!", \ "[A] kicks you in the jaw!") D.apply_damage(20, BRUTE, "head") D.drop_item() playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) - D.Stun(4) + D.Stun(80) return 1 add_logs(A, D, "head kicked (Sleeping Carp)") return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(D.weakened || D.resting || D.stat) + if(D.IsKnockdown() || D.resting || D.stat) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] elbow drops [D]!", \ "[A] piledrives you with their elbow!") @@ -130,7 +130,7 @@ playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1) if(prob(D.getBruteLoss()) && !D.lying) D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") - D.Weaken(4) + D.Knockdown(80) add_logs(A, D, "[atk_verb] (Sleeping Carp)") return 1 @@ -196,7 +196,7 @@ add_fingerprint(user) if((CLUMSY in user.disabilities) && prob(50)) to_chat(user, "You club yourself over the head with [src].") - user.Weaken(3) + user.Knockdown(60) if(ishuman(user)) var/mob/living/carbon/human/H = user H.apply_damage(2*force, BRUTE, "head") @@ -230,18 +230,18 @@ if(prob(10)) H.visible_message("[H] collapses!", \ "Your legs give out!") - H.Weaken(4) - if(H.staminaloss && !H.sleeping) + H.Knockdown(80) + if(H.staminaloss && !H.IsSleeping()) var/total_health = (H.health - H.staminaloss) if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat) H.visible_message("[user] delivers a heavy hit to [H]'s head, knocking them out cold!", \ "[user] knocks you unconscious!") - H.SetSleeping(30) + H.SetSleeping(600) H.adjustBrainLoss(25) else return ..() -/obj/item/weapon/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/weapon/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(wielded) return ..() return 0 diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index fc1c7a9b6d..8ebf17469c 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -100,18 +100,17 @@ var/mob/living/carbon/human/H = owner H.mind.martial_art.streak = "drop" -/datum/martial_art/wrestling/teach(var/mob/living/carbon/human/H,var/make_temporary=0) - ..() - to_chat(H, "SNAP INTO A THIN TIM!") - to_chat(H, "Place your cursor over a move at the top of the screen to see what it does.") - drop.Grant(H) - kick.Grant(H) - slam.Grant(H) - throw_wrassle.Grant(H) - strike.Grant(H) +/datum/martial_art/wrestling/teach(mob/living/carbon/human/H,make_temporary=0) + if(..()) + to_chat(H, "SNAP INTO A THIN TIM!") + to_chat(H, "Place your cursor over a move at the top of the screen to see what it does.") + drop.Grant(H) + kick.Grant(H) + slam.Grant(H) + throw_wrassle.Grant(H) + strike.Grant(H) -/datum/martial_art/wrestling/remove(var/mob/living/carbon/human/H) - ..() +/datum/martial_art/wrestling/on_remove(mob/living/carbon/human/H) to_chat(H, "You no longer feel that the tower of power is too sweet to be sour...") drop.Remove(H) kick.Remove(H) @@ -134,7 +133,7 @@ D.forceMove(A.loc) D.setDir(get_dir(D, A)) - D.Stun(4) + D.Stun(80) A.visible_message("[A] starts spinning around with [D]!") A.emote("scream") @@ -192,7 +191,7 @@ if (T && isturf(T)) if (!D.stat) D.emote("scream") - D.throw_at(T, 10, 4, callback = CALLBACK(D, /mob/living/carbon/human/.Weaken, 2)) + D.throw_at(T, 10, 4, callback = CALLBACK(D, /mob/living/carbon/human/.Knockdown, 20)) add_logs(A, D, "has thrown with wrestling") return 0 @@ -288,8 +287,7 @@ playsound(A.loc, "swing_hit", 50, 1) if (!D.stat) D.emote("scream") - D.weakened += 2 - D.stunned += 2 + D.Knockdown(40) switch(rand(1,3)) if (2) @@ -331,7 +329,7 @@ A.visible_message("[A] headbutts [D]!") D.adjustBruteLoss(rand(10,20)) playsound(A.loc, "swing_hit", 50, 1) - D.Paralyse(1) + D.Unconscious(20) add_logs(A, D, "headbutted") /datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -347,7 +345,7 @@ var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) if (T && isturf(T)) - D.Weaken(1) + D.Knockdown(20) D.throw_at(T, 3, 2) add_logs(A, D, "roundhouse-kicked") @@ -383,7 +381,7 @@ if (falling == 1) A.visible_message("...and dives head-first into the ground, ouch!") A.adjustBruteLoss(rand(10,20)) - A.Weaken(3) + A.Knockdown(60) to_chat(A, "[D] is too far away!") return 0 @@ -412,8 +410,7 @@ else D.adjustBruteLoss(rand(20,30)) - D.Weaken(1) - D.Stun(2) + D.Knockdown(40) A.pixel_y = 0 @@ -437,7 +434,7 @@ A.start_pulling(D) D.visible_message("[A] gets [D] in a cinch!", \ "[A] gets [D] in a cinch!") - D.Stun(rand(3,5)) + D.Stun(rand(60,100)) add_logs(A, D, "cinched") return 1 diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 4e5fa6a612..f23f01d068 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -50,7 +50,7 @@ var/datum/faction/faction //associated faction var/datum/changeling/changeling //changeling holder var/linglink - var/datum/martial_art/martial_art = null + var/datum/martial_art/martial_art var/static/default_martial_art = new/datum/martial_art var/miming = 0 // Mime's vow of silence var/list/antag_datums @@ -117,7 +117,7 @@ C.last_mind = src transfer_antag_huds(hud_to_transfer) //inherit the antag HUD transfer_actions(new_character) - + transfer_martial_arts(new_character) if(active || force_key_move) new_character.key = key //now transfer the key to link the client to our new body @@ -147,6 +147,7 @@ A.on_removal() return TRUE + /datum/mind/proc/remove_all_antag_datums() //For the Lazy amongst us. for(var/a in antag_datums) var/datum/antagonist/A = a @@ -317,7 +318,6 @@ if(!silent) to_chat(traitor_mob, "[employer] has cunningly disguised a Syndicate Uplink as your [P.name]. Simply twist the top of the pen [P.traitor_unlock_degrees] from its starting position to unlock its hidden features.") traitor_mob.mind.store_memory("Uplink Degrees: [P.traitor_unlock_degrees] ([P.name]).") - //Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does. /datum/mind/proc/enslave_mind_to_creator(mob/living/creator) @@ -1149,7 +1149,7 @@ to_chat(usr, "The objectives for changeling [key] have been generated. You can edit them and anounce manually.") if("initialdna") - if( !changeling || !changeling.stored_profiles.len || !istype(current, /mob/living/carbon)) + if( !changeling || !changeling.stored_profiles.len || !iscarbon(current)) to_chat(usr, "Resetting DNA failed!") else var/mob/living/carbon/C = current @@ -1234,7 +1234,6 @@ traitordatum.forge_traitor_objectives() to_chat(usr, "The objectives for traitor [key] have been generated. You can edit them and anounce manually.") - else if(href_list["devil"]) var/datum/antagonist/devil/devilinfo = has_antag_datum(ANTAG_DATUM_DEVIL) switch(href_list["devil"]) @@ -1624,6 +1623,15 @@ spell_list -= S qdel(S) +/datum/mind/proc/transfer_martial_arts(mob/living/new_character) + if(!ishuman(new_character)) + return + if(martial_art) + if(martial_art.base) //Is the martial art temporary? + martial_art.remove(new_character) + else + martial_art.teach(new_character) + /datum/mind/proc/transfer_actions(mob/living/new_character) if(current && current.actions) for(var/datum/action/A in current.actions) @@ -1642,6 +1650,7 @@ if(istype(S, type)) continue S.charge_counter = delay + S.updateButtonIcon() INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/start_recharge) /datum/mind/proc/get_ghost(even_if_they_cant_reenter) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 49f709bf76..5b44fd966f 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -126,7 +126,7 @@ GLOBAL_LIST_EMPTY(mutations_list) /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return - var/status = CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH + var/status = CANSTUN | CANKNOCKDOWN | CANUNCONSCIOUS | CANPUSH owner.status_flags &= ~status owner.update_body_parts() @@ -142,7 +142,7 @@ GLOBAL_LIST_EMPTY(mutations_list) /datum/mutation/human/hulk/on_losing(mob/living/carbon/human/owner) if(..()) return - owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH + owner.status_flags |= CANSTUN | CANKNOCKDOWN | CANUNCONSCIOUS | CANPUSH owner.update_body_parts() /datum/mutation/human/hulk/say_mod(message) @@ -233,9 +233,9 @@ GLOBAL_LIST_EMPTY(mutations_list) text_gain_indication = "You get a headache." /datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) - if(prob(1) && !owner.paralysis) + if(prob(1) && owner.stat == CONSCIOUS) owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") - owner.Paralyse(10) + owner.Unconscious(200) owner.Jitter(1000) addtimer(CALLBACK(src, .proc/jitter_less, owner), 90) @@ -269,7 +269,7 @@ GLOBAL_LIST_EMPTY(mutations_list) text_gain_indication = "You start coughing." /datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) - if((prob(5) && owner.paralysis <= 1)) + if(prob(5) && owner.stat == CONSCIOUS) owner.drop_item() owner.emote("cough") @@ -317,8 +317,8 @@ GLOBAL_LIST_EMPTY(mutations_list) text_gain_indication = "You twitch." /datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner) - if((prob(10) && owner.paralysis <= 1)) - owner.Stun(10) + if(prob(10) && owner.stat == CONSCIOUS) + owner.Stun(200) switch(rand(1, 3)) if(1) owner.emote("twitch") @@ -377,9 +377,6 @@ GLOBAL_LIST_EMPTY(mutations_list) time_coeff = 2 /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) - if(owner.has_brain_worms()) - to_chat(owner, "You feel something strongly clinging to your humanity!") - return if(..()) return . = owner.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) @@ -412,7 +409,7 @@ GLOBAL_LIST_EMPTY(mutations_list) if(proximity) //stops tk from breaking chameleon owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY return - + /datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) if(..()) return diff --git a/code/datums/riding.dm b/code/datums/riding.dm index 4c1905b41a..a1365d3985 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -305,7 +305,7 @@ /datum/riding/human/ride_check(mob/living/M) var/mob/living/carbon/human/H = ridden //IF this runtimes I'm blaming the admins. if(M.incapacitated(FALSE, TRUE) || H.incapacitated(FALSE, TRUE)) - M.visible_message("[M] falls off of [ridden]!") + M.visible_message("[M] falls off [ridden]!") Unbuckle(M) return FALSE if(M.restrained(TRUE)) @@ -318,6 +318,7 @@ /datum/riding/human/get_offsets(pass_index) // list(dir = x, y, layer) return list("[NORTH]" = list(0, 6), "[SOUTH]" = list(0, 6), "[EAST]" = list(-6, 4), "[WEST]" = list( 6, 4)) + /datum/riding/human/handle_vehicle_layer() if(ridden.buckled_mobs && ridden.buckled_mobs.len) if(ridden.dir == SOUTH) @@ -329,9 +330,8 @@ /datum/riding/human/force_dismount(mob/living/user) ridden.unbuckle_mob(user) - user.Weaken(3) - user.Stun(3) - user.visible_message("[ridden] pushes [user] off of them!") + user.Knockdown(60) + user.visible_message("[ridden] pushes [user] off of them!") /datum/riding/cyborg keytype = null @@ -339,7 +339,7 @@ /datum/riding/cyborg/ride_check(mob/user) if(user.incapacitated()) var/kick = TRUE - if(istype(ridden, /mob/living/silicon/robot)) + if(iscyborg(ridden)) var/mob/living/silicon/robot/R = ridden if(R.module && R.module.ride_allow_incapacitated) kick = FALSE @@ -347,7 +347,7 @@ to_chat(user, "You fall off of [ridden]!") Unbuckle(user) return - if(istype(user, /mob/living/carbon)) + if(iscarbon(user)) var/mob/living/carbon/carbonuser = user if(!carbonuser.get_num_arms()) Unbuckle(user) @@ -383,9 +383,9 @@ var/turf/target = get_edge_target_turf(ridden, ridden.dir) var/turf/targetm = get_step(get_turf(ridden), ridden.dir) M.Move(targetm) - M.visible_message("[M] is thrown clear of [ridden]!") + M.visible_message("[M] is thrown clear of [ridden]!") M.throw_at(target, 14, 5, ridden) - M.Weaken(3) + M.Knockdown(60) /datum/riding/proc/equip_buckle_inhands(mob/living/carbon/human/user, amount_required = 1) var/amount_equipped = 0 diff --git a/code/datums/ruins.dm b/code/datums/ruins.dm index 1e4f0dbdfa..aa46c08a6c 100644 --- a/code/datums/ruins.dm +++ b/code/datums/ruins.dm @@ -6,7 +6,7 @@ How is there a wooden container filled with 18th century coinage in the middle of a lavawracked hellscape? \ It is clearly a mystery." - var/cost = null + var/cost = null //negative numbers will always be placed, with lower (negative) numbers being placed first; positive and 0 numbers will be placed randomly var/allow_duplicates = TRUE var/prefix = null diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 4f6be75f4f..3526ee6f53 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -120,9 +120,25 @@ id = "hierophant" description = "A strange, square chunk of metal of massive size. Inside awaits only death and many, many squares." suffix = "lavaland_surface_hierophant.dmm" - cost = 0 + cost = -1 allow_duplicates = FALSE +/datum/map_template/ruin/lavaland/blood_drunk_miner + name = "Blood-Drunk Miner" + id = "blooddrunk" + description = "A strange arrangement of stone tiles and an insane, beastly miner contemplating them." + suffix = "lavaland_surface_blooddrunk1.dmm" + cost = 0 + allow_duplicates = FALSE //will only spawn one variant of the ruin + +/datum/map_template/ruin/lavaland/blood_drunk_miner/guidance + name = "Blood-Drunk Miner (Guidance)" + suffix = "lavaland_surface_blooddrunk2.dmm" + +/datum/map_template/ruin/lavaland/blood_drunk_miner/hunter + name = "Blood-Drunk Miner (Hunter)" + suffix = "lavaland_surface_blooddrunk3.dmm" + /datum/map_template/ruin/lavaland/ufo_crash name = "UFO Crash" id = "ufo-crash" diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index a2d486be3f..6f8b58a0bf 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -12,7 +12,7 @@ /datum/status_effect/shadow_mend/on_apply() owner.visible_message("Violet light wraps around [owner]'s body!", "Violet light wraps around your body!") - playsound(owner, 'sound/magic/Teleport_app.ogg', 50, 1) + playsound(owner, 'sound/magic/teleport_app.ogg', 50, 1) return ..() /datum/status_effect/shadow_mend/tick() @@ -21,7 +21,7 @@ /datum/status_effect/shadow_mend/on_remove() owner.visible_message("The violet light around [owner] glows black!", "The tendrils around you cinch tightly and reap their toll...") - playsound(owner, 'sound/magic/Teleport_diss.ogg', 50, 1) + playsound(owner, 'sound/magic/teleport_diss.ogg', 50, 1) owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE) @@ -37,7 +37,7 @@ icon_state = "shadow_mend" /datum/status_effect/void_price/tick() - owner << sound('sound/magic/Summon_Karp.ogg', volume = 25) + owner << sound('sound/magic/summon_karp.ogg', volume = 25) owner.adjustBruteLoss(3) @@ -60,8 +60,8 @@ if(istype(L)) //this is probably more safety than actually needed var/vanguard = L.stun_absorption["vanguard"] desc = initial(desc) - desc += "
    [vanguard["stuns_absorbed"] * 2] seconds of stuns held back.\ - [GLOB.ratvar_awakens ? "":"
    [round(min(vanguard["stuns_absorbed"] * 0.25, 20)) * 2] seconds of stun will affect you."]" + desc += "
    [Floor(vanguard["stuns_absorbed"] * 0.1)] seconds of stuns held back.\ + [GLOB.ratvar_awakens ? "":"
    [Floor(min(vanguard["stuns_absorbed"] * 0.025, 20))] seconds of stun will affect you."]" ..() /datum/status_effect/vanguard_shield/Destroy() @@ -70,11 +70,11 @@ return ..() /datum/status_effect/vanguard_shield/on_apply() - add_logs(owner, null, "gained Vanguard stun immunity") + owner.log_message("gained Vanguard stun immunity", INDIVIDUAL_ATTACK_LOG) owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!") owner.visible_message("[owner] begins to faintly glow!", "You will absorb all stuns for the next twenty seconds.") - owner.SetStunned(0, FALSE) - owner.SetWeakened(0) + owner.SetStun(0, FALSE) + owner.SetKnockdown(0) progbar = new(owner, duration, owner) progbar.bar.color = list("#FAE48C", "#FAE48C", "#FAE48C", rgb(0,0,0)) progbar.update(duration - world.time) @@ -96,17 +96,16 @@ otheractiveabsorptions = TRUE if(!GLOB.ratvar_awakens && stuns_blocked && !otheractiveabsorptions) vanguard["end_time"] = 0 //so it doesn't absorb the stuns we're about to apply - owner.Stun(stuns_blocked) - owner.Weaken(stuns_blocked) + owner.Knockdown(stuns_blocked) message_to_owner = "The weight of the Vanguard's protection crashes down upon you!" - if(stuns_blocked >= 15) + if(stuns_blocked >= 300) message_to_owner += "\nYou faint from the exertion!" stuns_blocked *= 2 - owner.Paralyse(stuns_blocked) + owner.Unconscious(stuns_blocked) else stuns_blocked = 0 //so logging is correct in cases where there were stuns blocked but we didn't stun for other reasons owner.visible_message("[owner]'s glowing aura fades!", message_to_owner) - add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and was stunned for [stuns_blocked]":""]") + owner.log_message("lost Vanguard stun immunity[stuns_blocked ? "and was stunned for [stuns_blocked]":""]", INDIVIDUAL_ATTACK_LOG) /datum/status_effect/inathneqs_endowment @@ -121,7 +120,7 @@ alerttooltipstyle = "clockcult" /datum/status_effect/inathneqs_endowment/on_apply() - add_logs(owner, null, "gained Inath-neq's invulnerability") + owner.log_message("gained Inath-neq's invulnerability", INDIVIDUAL_ATTACK_LOG) owner.visible_message("[owner] shines with azure light!", "You feel Inath-neq's power flow through you! You're invincible!") var/oldcolor = owner.color owner.color = "#1E8CE1" @@ -130,14 +129,14 @@ owner.status_flags |= GODMODE animate(owner, color = oldcolor, time = 150, easing = EASE_IN) addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), 150) - playsound(owner, 'sound/magic/Ethereal_Enter.ogg', 50, 1) + playsound(owner, 'sound/magic/ethereal_enter.ogg', 50, 1) return ..() /datum/status_effect/inathneqs_endowment/on_remove() - add_logs(owner, null, "lost Inath-neq's invulnerability") + owner.log_message("lost Inath-neq's invulnerability", INDIVIDUAL_ATTACK_LOG) owner.visible_message("The light around [owner] flickers and dissipates!", "You feel Inath-neq's power fade from your body!") owner.status_flags &= ~GODMODE - playsound(owner, 'sound/magic/Ethereal_Exit.ogg', 50, 1) + playsound(owner, 'sound/magic/ethereal_exit.ogg', 50, 1) /datum/status_effect/cyborg_power_regen @@ -146,6 +145,11 @@ alert_type = /obj/screen/alert/status_effect/power_regen var/power_to_give = 0 //how much power is gained each tick +/datum/status_effect/cyborg_power_regen/on_creation(mob/living/new_owner, new_power_per_tick) + . = ..() + if(. && isnum(new_power_per_tick)) + power_to_give = new_power_per_tick + /obj/screen/alert/status_effect/power_regen name = "Power Regeneration" desc = "You are quickly regenerating power!" @@ -181,7 +185,7 @@ ..() /datum/status_effect/his_grace/on_apply() - add_logs(owner, null, "gained His Grace's stun immunity") + owner.log_message("gained His Grace's stun immunity", INDIVIDUAL_ATTACK_LOG) owner.add_stun_absorption("hisgrace", INFINITY, 3, null, "His Grace protects you from the stun!") return ..() @@ -205,7 +209,7 @@ owner.adjustCloneLoss(-grace_heal) /datum/status_effect/his_grace/on_remove() - add_logs(owner, null, "lost His Grace's stun immunity") + owner.log_message("lost His Grace's stun immunity", INDIVIDUAL_ATTACK_LOG) if(islist(owner.stun_absorption) && owner.stun_absorption["hisgrace"]) owner.stun_absorption -= "hisgrace" @@ -258,3 +262,113 @@ deathrattle() . = ..() +/datum/status_effect/blooddrunk + id = "blooddrunk" + duration = 10 + tick_interval = 0 + alert_type = /obj/screen/alert/status_effect/blooddrunk + var/last_health = 0 + var/last_bruteloss = 0 + var/last_fireloss = 0 + var/last_toxloss = 0 + var/last_oxyloss = 0 + var/last_cloneloss = 0 + var/last_staminaloss = 0 + +/obj/screen/alert/status_effect/blooddrunk + name = "Blood-Drunk" + desc = "You are drunk on blood! Your pulse thunders in your ears! Nothing can harm you!" //not true, and the item description mentions its actual effect + icon_state = "blooddrunk" + +/datum/status_effect/blooddrunk/on_apply() + . = ..() + if(.) + owner.maxHealth *= 10 + owner.bruteloss *= 10 + owner.fireloss *= 10 + owner.toxloss *= 10 + owner.oxyloss *= 10 + owner.cloneloss *= 10 + owner.staminaloss *= 10 + owner.updatehealth() + last_health = owner.health + last_bruteloss = owner.getBruteLoss() + last_fireloss = owner.getFireLoss() + last_toxloss = owner.getToxLoss() + last_oxyloss = owner.getOxyLoss() + last_cloneloss = owner.getCloneLoss() + last_staminaloss = owner.getStaminaLoss() + owner.log_message("gained blood-drunk stun immunity", INDIVIDUAL_ATTACK_LOG) + owner.add_stun_absorption("blooddrunk", INFINITY, 4) + owner.playsound_local(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, 1) + +/datum/status_effect/blooddrunk/tick() //multiply the effect of healing by 10 + if(owner.health > last_health) + var/needs_health_update = FALSE + var/new_bruteloss = owner.getBruteLoss() + if(new_bruteloss < last_bruteloss) + var/heal_amount = (new_bruteloss - last_bruteloss) * 10 + owner.adjustBruteLoss(heal_amount, updating_health = FALSE) + new_bruteloss = owner.getBruteLoss() + needs_health_update = TRUE + last_bruteloss = new_bruteloss + + var/new_fireloss = owner.getFireLoss() + if(new_fireloss < last_fireloss) + var/heal_amount = (new_fireloss - last_fireloss) * 10 + owner.adjustFireLoss(heal_amount, updating_health = FALSE) + new_fireloss = owner.getFireLoss() + needs_health_update = TRUE + last_fireloss = new_fireloss + + var/new_toxloss = owner.getToxLoss() + if(new_toxloss < last_toxloss) + var/heal_amount = (new_toxloss - last_toxloss) * 10 + owner.adjustToxLoss(heal_amount, updating_health = FALSE) + new_toxloss = owner.getToxLoss() + needs_health_update = TRUE + last_toxloss = new_toxloss + + var/new_oxyloss = owner.getOxyLoss() + if(new_oxyloss < last_oxyloss) + var/heal_amount = (new_oxyloss - last_oxyloss) * 10 + owner.adjustOxyLoss(heal_amount, updating_health = FALSE) + new_oxyloss = owner.getOxyLoss() + needs_health_update = TRUE + last_oxyloss = new_oxyloss + + var/new_cloneloss = owner.getCloneLoss() + if(new_cloneloss < last_cloneloss) + var/heal_amount = (new_cloneloss - last_cloneloss) * 10 + owner.adjustCloneLoss(heal_amount, updating_health = FALSE) + new_cloneloss = owner.getCloneLoss() + needs_health_update = TRUE + last_cloneloss = new_cloneloss + + var/new_staminaloss = owner.getStaminaLoss() + if(new_staminaloss < last_staminaloss) + var/heal_amount = (new_staminaloss - last_staminaloss) * 10 + owner.adjustStaminaLoss(heal_amount, updating_health = FALSE) + new_staminaloss = owner.getStaminaLoss() + needs_health_update = TRUE + last_staminaloss = new_staminaloss + + if(needs_health_update) + owner.updatehealth() + owner.playsound_local(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, 1) + last_health = owner.health + +/datum/status_effect/blooddrunk/on_remove() + tick() + owner.maxHealth *= 0.1 + owner.bruteloss *= 0.1 + owner.fireloss *= 0.1 + owner.toxloss *= 0.1 + owner.oxyloss *= 0.1 + owner.cloneloss *= 0.1 + owner.staminaloss *= 0.1 + owner.updatehealth() + owner.log_message("lost blood-drunk stun immunity", INDIVIDUAL_ATTACK_LOG) + if(islist(owner.stun_absorption) && owner.stun_absorption["blooddrunk"]) + owner.stun_absorption -= "blooddrunk" + diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 6ad2b37b2f..7f70432b7a 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1,5 +1,77 @@ //Largely negative status effects go here, even if they have small benificial effects +//STUN EFFECTS +/datum/status_effect/incapacitating + tick_interval = 0 + status_type = STATUS_EFFECT_REPLACE + alert_type = null + var/needs_update_stat = FALSE +/datum/status_effect/incapacitating/on_creation(mob/living/new_owner, set_duration, updating_canmove) + if(isnum(set_duration)) + duration = set_duration + . = ..() + if(.) + if(updating_canmove) + owner.update_canmove() + if(needs_update_stat || issilicon(owner)) + owner.update_stat() + +/datum/status_effect/incapacitating/on_remove() + owner.update_canmove() + if(needs_update_stat || issilicon(owner)) //silicons need stat updates in addition to normal canmove updates + owner.update_stat() + +//STUN +/datum/status_effect/incapacitating/stun + id = "stun" + +//KNOCKDOWN +/datum/status_effect/incapacitating/knockdown + id = "knockdown" + +//UNCONSCIOUS +/datum/status_effect/incapacitating/unconscious + id = "unconscious" + needs_update_stat = TRUE + +//SLEEPING +/datum/status_effect/incapacitating/sleeping + id = "sleeping" + alert_type = /obj/screen/alert/status_effect/asleep + needs_update_stat = TRUE + var/mob/living/carbon/carbon_owner + var/mob/living/carbon/human/human_owner + +/datum/status_effect/incapacitating/sleeping/on_creation(mob/living/new_owner, updating_canmove) + . = ..() + if(.) + if(iscarbon(owner)) //to avoid repeated istypes + carbon_owner = owner + if(ishuman(owner)) + human_owner = owner + +/datum/status_effect/incapacitating/sleeping/Destroy() + carbon_owner = null + human_owner = null + return ..() + +/datum/status_effect/incapacitating/sleeping/tick() + if(owner.staminaloss) + owner.adjustStaminaLoss(-0.35) //reduce stamina loss by 0.35 per tick, 7 per 2 seconds + if(human_owner && human_owner.drunkenness) + human_owner.drunkenness *= 0.997 //reduce drunkenness by 0.3% per tick, 6% per 2 seconds + if(prob(20)) + if(carbon_owner) + carbon_owner.handle_dreams() + if(prob(10) && owner.health > HEALTH_THRESHOLD_CRIT) + owner.emote("snore") + +/obj/screen/alert/status_effect/asleep + name = "Asleep" + desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." + icon_state = "asleep" + +//OTHER DEBUFFS /datum/status_effect/his_wrath //does minor damage over time unless holding His Grace id = "his_wrath" duration = -1 @@ -47,7 +119,7 @@ if(iscarbon(owner) && !is_servant_of_ratvar(owner) && !owner.null_rod_check() && number_legs) if(force_damage || owner.m_intent != MOVE_INTENT_WALK) if(GLOB.ratvar_awakens) - owner.Weaken(1) + owner.Knockdown(20) if(iscultist(owner)) owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "l_leg") owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "r_leg") @@ -83,8 +155,13 @@ "Move towards the mania motor.", "Come closer.", "Get over here already!", "Keep your eyes on the motor.") var/static/list/flee_messages = list("Oh, NOW you flee.", "Get back here!", "If you were smarter, you'd come back.", "Only fools run.", "You'll be back.") var/static/list/turnoff_messages = list("Why would they turn it-", "What are these idi-", "Fools, fools, all of-", "Are they trying to c-", "All this effort just f-") - var/static/list/powerloss_messages = list("\"Oh, the id**ts di***t s***e en**** pow**...\"", "\"D*dn't **ey mak* an **te***c*i*n le**?\"", "\"The** f**ls for**t t* make a ***** *f-\"", \ - "\"No, *O, you **re so cl***-\"", "You hear a yell of frustration, cut off by static.") + var/static/list/powerloss_messages = list("\"Oh, the id**ts di***t s***e en**** pow**...\"" = TRUE, "\"D*dn't **ey mak* an **te***c*i*n le**?\"" = TRUE, "\"The** f**ls for**t t* make a ***** *f-\"" = TRUE, \ + "\"No, *O, you **re so cl***-\"" = TRUE, "You hear a yell of frustration, cut off by static." = FALSE) + +/datum/status_effect/maniamotor/on_creation(mob/living/new_owner, obj/structure/destructible/clockwork/powered/mania_motor/new_motor) + . = ..() + if(.) + motor = new_motor /datum/status_effect/maniamotor/Destroy() motor = null @@ -103,7 +180,8 @@ if(motor.total_accessable_power() > motor.mania_cost) to_chat(owner, "\"[text2ratvar(pick(turnoff_messages))]\"") else - to_chat(owner, "[text2ratvar(pick(powerloss_messages))]") + var/pickedmessage = pick(powerloss_messages) + to_chat(owner, "[powerloss_messages[pickedmessage] ? "[text2ratvar(pickedmessage)]" : pickedmessage]") warned_turnoff = TRUE severity = max(severity - 2, 0) if(!severity) @@ -137,8 +215,9 @@ if(owner.getToxLoss() > MANIA_DAMAGE_TO_CONVERT) if(is_eligible_servant(owner)) to_chat(owner, "\"[text2ratvar("You are mine and his, now.")]\"") - add_servant_of_ratvar(owner) - owner.Paralyse(5) + if(add_servant_of_ratvar(owner)) + owner.log_message("Conversion was done with a Mania Motor.", INDIVIDUAL_ATTACK_LOG) + owner.Unconscious(100) else if(prob(severity * 0.15)) to_chat(owner, "\"[text2ratvar(pick(mania_messages))]\"") @@ -157,14 +236,20 @@ id = "cult_ghost" duration = -1 alert_type = null + /datum/status_effect/crusher_mark id = "crusher_mark" - duration = 30 //if you leave for 30 seconds you lose the mark, deal with it + duration = 300 //if you leave for 30 seconds you lose the mark, deal with it status_type = STATUS_EFFECT_REPLACE alert_type = null var/mutable_appearance/marked_underlay var/obj/item/weapon/twohanded/required/kinetic_crusher/hammer_synced +/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/weapon/twohanded/required/kinetic_crusher/new_hammer_synced) + . = ..() + if(.) + hammer_synced = new_hammer_synced + /datum/status_effect/crusher_mark/on_apply() if(owner.mob_size >= MOB_SIZE_LARGE) marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2") @@ -184,3 +269,75 @@ /datum/status_effect/crusher_mark/be_replaced() owner.underlays -= marked_underlay //if this is being called, we should have an owner at this point. ..() + +/datum/status_effect/saw_bleed + id = "saw_bleed" + duration = -1 //removed under specific conditions + tick_interval = 6 + alert_type = null + var/mutable_appearance/bleed_overlay + var/mutable_appearance/bleed_underlay + var/bleed_amount = 3 + var/bleed_buildup = 3 + var/delay_before_decay = 5 + var/bleed_damage = 200 + var/needs_to_bleed = FALSE + +/datum/status_effect/saw_bleed/Destroy() + if(owner) + owner.cut_overlay(bleed_overlay) + owner.underlays -= bleed_underlay + QDEL_NULL(bleed_overlay) + return ..() + +/datum/status_effect/saw_bleed/on_apply() + if(owner.stat == DEAD) + return FALSE + bleed_overlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]") + bleed_underlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]") + var/icon/I = icon(owner.icon, owner.icon_state, owner.dir) + var/icon_height = I.Height() + bleed_overlay.pixel_x = -owner.pixel_x + bleed_overlay.pixel_y = Floor(icon_height * 0.25) + bleed_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the bleed overlay's size based on the target's icon size + bleed_underlay.pixel_x = -owner.pixel_x + bleed_underlay.transform = matrix() * (icon_height/world.icon_size) * 3 + bleed_underlay.alpha = 40 + owner.add_overlay(bleed_overlay) + owner.underlays += bleed_underlay + return ..() + +/datum/status_effect/saw_bleed/tick() + if(owner.stat == DEAD) + qdel(src) + else + add_bleed(-1) + +/datum/status_effect/saw_bleed/proc/add_bleed(amount) + owner.cut_overlay(bleed_overlay) + owner.underlays -= bleed_underlay + bleed_amount += amount + if(bleed_amount) + if(bleed_amount >= 10) + needs_to_bleed = TRUE + qdel(src) + else + if(amount > 0) + tick_interval += delay_before_decay + bleed_overlay.icon_state = "bleed[bleed_amount]" + bleed_underlay.icon_state = "bleed[bleed_amount]" + owner.add_overlay(bleed_overlay) + owner.underlays += bleed_underlay + else + qdel(src) + +/datum/status_effect/saw_bleed/on_remove() + if(needs_to_bleed) + var/turf/T = get_turf(owner) + new /obj/effect/temp_visual/bleed/explode(T) + for(var/d in GLOB.alldirs) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(T, d) + playsound(T, "desceration", 200, 1, -1) + owner.adjustBruteLoss(bleed_damage) + else + new /obj/effect/temp_visual/bleed(get_turf(owner)) diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 7adbf4e915..c940b2083a 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -17,13 +17,26 @@ alert_type = null var/total_damage = 0 +/datum/status_effect/syphon_mark + id = "syphon_mark" + duration = 50 + status_type = STATUS_EFFECT_MULTIPLE + alert_type = null + on_remove_on_mob_delete = TRUE + var/obj/item/borg/upgrade/modkit/bounty/reward_target + +/datum/status_effect/syphon_mark/on_creation(mob/living/new_owner, obj/item/borg/upgrade/modkit/bounty/new_reward_target) + . = ..() + if(.) + reward_target = new_reward_target + /datum/status_effect/syphon_mark/on_apply() if(owner.stat == DEAD) return FALSE return ..() /datum/status_effect/syphon_mark/proc/get_kill() - if(reward_target) + if(!QDELETED(reward_target)) reward_target.get_kill(owner) /datum/status_effect/syphon_mark/tick() @@ -34,25 +47,3 @@ /datum/status_effect/syphon_mark/on_remove() get_kill() . = ..() - -/datum/status_effect/syphon_mark - id = "syphon_mark" - duration = 50 - status_type = STATUS_EFFECT_MULTIPLE - alert_type = null - on_remove_on_mob_delete = TRUE - var/obj/item/borg/upgrade/modkit/bounty/reward_target - -/datum/status_effect/syphon_mark/on_apply() - if(owner.stat == DEAD) - return FALSE - return ..() - -/datum/status_effect/syphon_mark/tick() - if(owner.stat == DEAD) - get_kill() - qdel(src) - -/datum/status_effect/syphon_mark/on_remove() - get_kill() - . = ..() diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 61c8607975..19bd880a77 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -12,12 +12,26 @@ var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists -/datum/status_effect/New(mob/living/new_owner) +/datum/status_effect/New(list/arguments) + on_creation(arglist(arguments)) + +/datum/status_effect/proc/on_creation(mob/living/new_owner, ...) if(new_owner) owner = new_owner if(owner) LAZYADD(owner.status_effects, src) - addtimer(CALLBACK(src, .proc/start_ticking), 1) //Give us time to set any variables + if(!owner || !on_apply()) + qdel(src) + return + if(duration != -1) + duration = world.time + duration + tick_interval = world.time + tick_interval + if(alert_type) + var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) + A.attached_effect = src //so the alert can reference us, if it needs to + linked_alert = A //so we can reference the alert, if we need to + START_PROCESSING(SSfastprocess, src) + return TRUE /datum/status_effect/Destroy() STOP_PROCESSING(SSfastprocess, src) @@ -28,21 +42,6 @@ owner = null return ..() -/datum/status_effect/proc/start_ticking() - if(!src) - return - if(!owner || !on_apply()) - qdel(src) - return - if(duration != -1) - duration = world.time + initial(duration) - tick_interval = world.time + initial(tick_interval) - if(alert_type) - var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) - A.attached_effect = src //so the alert can reference us, if it needs to - linked_alert = A //so we can reference the alert, if we need to - START_PROCESSING(SSfastprocess, src) - /datum/status_effect/process() if(!owner) qdel(src) @@ -53,9 +52,8 @@ if(duration != -1 && duration < world.time) qdel(src) -/datum/status_effect/proc/on_apply() //Called whenever the buff is applied. +/datum/status_effect/proc/on_apply() //Called whenever the buff is applied; returning FALSE will cause it to autoremove itself. return TRUE - /datum/status_effect/proc/tick() //Called every tick. /datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed; do note that at the point this is called, it is out of the owner's status_effects but owner is not yet null /datum/status_effect/proc/be_replaced() //Called instead of on_remove when a status effect is replaced by itself or when a status effect with on_remove_on_mob_delete = FALSE has its mob deleted @@ -77,7 +75,7 @@ // HELPER PROCS // ////////////////// -/mob/living/proc/apply_status_effect(effect) //applies a given status effect to this mob, returning the effect if it was successful +/mob/living/proc/apply_status_effect(effect, ...) //applies a given status effect to this mob, returning the effect if it was successful . = FALSE var/datum/status_effect/S1 = effect LAZYINITLIST(status_effects) @@ -87,7 +85,9 @@ S.be_replaced() else return - S1 = new effect(src) + var/list/arguments = args.Copy() + arguments[1] = src + S1 = new effect(arguments) . = S1 /mob/living/proc/remove_status_effect(effect) //removes all of a given status effect from this mob, returning TRUE if at least one was removed diff --git a/code/datums/verbs.dm b/code/datums/verbs.dm index 068d4cf9fc..72634a3ff5 100644 --- a/code/datums/verbs.dm +++ b/code/datums/verbs.dm @@ -12,6 +12,7 @@ //do things for each entry in Generate_list //return value sets Generate_list[verbpath] /datum/verbs/proc/HandleVerb(list/entry, atom/verb/verbpath, ...) + return entry /datum/verbs/New() var/mainlist = GetList() @@ -91,7 +92,7 @@ entry["command"] = copytext(verbpath.name,2) else entry["command"] = replacetext(verbpath.name, " ", "-") - + .[verbpath] = HandleVerb(arglist(list(entry, verbpath) + args)) /world/proc/LoadVerbs(verb_type) diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm index 7f71570e67..00b2dd10b8 100644 --- a/code/datums/wires/mulebot.dm +++ b/code/datums/wires/mulebot.dm @@ -1,31 +1,31 @@ -/datum/wires/mulebot - holder_type = /mob/living/simple_animal/bot/mulebot - randomize = TRUE - -/datum/wires/mulebot/New(atom/holder) - wires = list( - WIRE_POWER1, WIRE_POWER2, - WIRE_AVOIDANCE, WIRE_LOADCHECK, - WIRE_MOTOR1, WIRE_MOTOR2, - WIRE_RX, WIRE_TX, WIRE_BEACON - ) - ..() - -/datum/wires/mulebot/interactable(mob/user) - var/mob/living/simple_animal/bot/mulebot/M = holder - if(M.open) - return TRUE - -/datum/wires/mulebot/on_pulse(wire) - var/mob/living/simple_animal/bot/mulebot/M = holder - switch(wire) - if(WIRE_POWER1, WIRE_POWER2) +/datum/wires/mulebot + holder_type = /mob/living/simple_animal/bot/mulebot + randomize = TRUE + +/datum/wires/mulebot/New(atom/holder) + wires = list( + WIRE_POWER1, WIRE_POWER2, + WIRE_AVOIDANCE, WIRE_LOADCHECK, + WIRE_MOTOR1, WIRE_MOTOR2, + WIRE_RX, WIRE_TX, WIRE_BEACON + ) + ..() + +/datum/wires/mulebot/interactable(mob/user) + var/mob/living/simple_animal/bot/mulebot/M = holder + if(M.open) + return TRUE + +/datum/wires/mulebot/on_pulse(wire) + var/mob/living/simple_animal/bot/mulebot/M = holder + switch(wire) + if(WIRE_POWER1, WIRE_POWER2) holder.visible_message("[bicon(M)] The charge light flickers.") - if(WIRE_AVOIDANCE) + if(WIRE_AVOIDANCE) holder.visible_message("[bicon(M)] The external warning lights flash briefly.") - if(WIRE_LOADCHECK) + if(WIRE_LOADCHECK) holder.visible_message("[bicon(M)] The load platform clunks.") - if(WIRE_MOTOR1, WIRE_MOTOR2) + if(WIRE_MOTOR1, WIRE_MOTOR2) holder.visible_message("[bicon(M)] The drive motor whines briefly.") - else + else holder.visible_message("[bicon(M)] You hear a radio crackle.") \ No newline at end of file diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index e2bef037dd..436b8be3ec 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -1,45 +1,45 @@ -/datum/wires/particle_accelerator/control_box - holder_type = /obj/machinery/particle_accelerator/control_box - proper_name = "Particle Accelerator" - -/datum/wires/particle_accelerator/control_box/New(atom/holder) - wires = list( - WIRE_POWER, WIRE_STRENGTH, WIRE_LIMIT, - WIRE_INTERFACE - ) - add_duds(2) - ..() - -/datum/wires/particle_accelerator/control_box/interactable(mob/user) - var/obj/machinery/particle_accelerator/control_box/C = holder - if(C.construction_state == 2) - return TRUE - -/datum/wires/particle_accelerator/control_box/on_pulse(wire) - var/obj/machinery/particle_accelerator/control_box/C = holder - switch(wire) - if(WIRE_POWER) - C.toggle_power() - if(WIRE_STRENGTH) - C.add_strength() - if(WIRE_INTERFACE) - C.interface_control = !C.interface_control - if(WIRE_LIMIT) +/datum/wires/particle_accelerator/control_box + holder_type = /obj/machinery/particle_accelerator/control_box + proper_name = "Particle Accelerator" + +/datum/wires/particle_accelerator/control_box/New(atom/holder) + wires = list( + WIRE_POWER, WIRE_STRENGTH, WIRE_LIMIT, + WIRE_INTERFACE + ) + add_duds(2) + ..() + +/datum/wires/particle_accelerator/control_box/interactable(mob/user) + var/obj/machinery/particle_accelerator/control_box/C = holder + if(C.construction_state == 2) + return TRUE + +/datum/wires/particle_accelerator/control_box/on_pulse(wire) + var/obj/machinery/particle_accelerator/control_box/C = holder + switch(wire) + if(WIRE_POWER) + C.toggle_power() + if(WIRE_STRENGTH) + C.add_strength() + if(WIRE_INTERFACE) + C.interface_control = !C.interface_control + if(WIRE_LIMIT) C.visible_message("[bicon(C)][C] makes a large whirring noise.") - -/datum/wires/particle_accelerator/control_box/on_cut(wire, mend) - var/obj/machinery/particle_accelerator/control_box/C = holder - switch(wire) - if(WIRE_POWER) - if(C.active == !mend) - C.toggle_power() - if(WIRE_STRENGTH) - for(var/i = 1; i < 3; i++) - C.remove_strength() - if(WIRE_INTERFACE) - if(!mend) - C.interface_control = FALSE - if(WIRE_LIMIT) - C.strength_upper_limit = (mend ? 2 : 3) - if(C.strength_upper_limit < C.strength) + +/datum/wires/particle_accelerator/control_box/on_cut(wire, mend) + var/obj/machinery/particle_accelerator/control_box/C = holder + switch(wire) + if(WIRE_POWER) + if(C.active == !mend) + C.toggle_power() + if(WIRE_STRENGTH) + for(var/i = 1; i < 3; i++) + C.remove_strength() + if(WIRE_INTERFACE) + if(!mend) + C.interface_control = FALSE + if(WIRE_LIMIT) + C.strength_upper_limit = (mend ? 2 : 3) + if(C.strength_upper_limit < C.strength) C.remove_strength() \ No newline at end of file diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index 3f2e18e79c..ad2cf8e3c3 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -1,79 +1,79 @@ -/datum/wires/robot - holder_type = /mob/living/silicon/robot - randomize = TRUE - -/datum/wires/robot/New(atom/holder) - wires = list( - WIRE_AI, WIRE_CAMERA, - WIRE_LAWSYNC, WIRE_LOCKDOWN, - WIRE_RESET_MODULE - ) - add_duds(2) - ..() - -/datum/wires/robot/interactable(mob/user) - var/mob/living/silicon/robot/R = holder - if(R.wiresexposed) - return TRUE - -/datum/wires/robot/get_status() - var/mob/living/silicon/robot/R = holder - var/list/status = list() - status += "The law sync module is [R.lawupdate ? "on" : "off"]." - status += "The intelligence link display shows [R.connected_ai ? R.connected_ai.name : "NULL"]." - status += "The camera light is [!isnull(R.camera) && R.camera.status ? "on" : "off"]." - status += "The lockdown indicator is [R.lockcharge ? "on" : "off"]." - status += "The reset module hardware light is [R.has_module() ? "on" : "off"]." - return status - -/datum/wires/robot/on_pulse(wire) - var/mob/living/silicon/robot/R = holder - switch(wire) - if(WIRE_AI) // Pulse to pick a new AI. - if(!R.emagged) - var/new_ai = select_active_ai(R) - if(new_ai && (new_ai != R.connected_ai)) - R.connected_ai = new_ai - if(R.shell) - R.undeploy() //If this borg is an AI shell, disconnect the controlling AI and assign ti to a new AI - R.notify_ai(AI_SHELL) - else - R.notify_ai(TRUE) - if(WIRE_CAMERA) // Pulse to disable the camera. - if(!isnull(R.camera) && !R.scrambledcodes) - R.camera.toggle_cam(usr, 0) - R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") - if(WIRE_LAWSYNC) // Forces a law update if possible. - if(R.lawupdate) - R.visible_message("[R] gently chimes.", "LawSync protocol engaged.") - R.lawsync() - R.show_laws() - if(WIRE_LOCKDOWN) - R.SetLockdown(!R.lockcharge) // Toggle +/datum/wires/robot + holder_type = /mob/living/silicon/robot + randomize = TRUE + +/datum/wires/robot/New(atom/holder) + wires = list( + WIRE_AI, WIRE_CAMERA, + WIRE_LAWSYNC, WIRE_LOCKDOWN, + WIRE_RESET_MODULE + ) + add_duds(2) + ..() + +/datum/wires/robot/interactable(mob/user) + var/mob/living/silicon/robot/R = holder + if(R.wiresexposed) + return TRUE + +/datum/wires/robot/get_status() + var/mob/living/silicon/robot/R = holder + var/list/status = list() + status += "The law sync module is [R.lawupdate ? "on" : "off"]." + status += "The intelligence link display shows [R.connected_ai ? R.connected_ai.name : "NULL"]." + status += "The camera light is [!isnull(R.camera) && R.camera.status ? "on" : "off"]." + status += "The lockdown indicator is [R.lockcharge ? "on" : "off"]." + status += "The reset module hardware light is [R.has_module() ? "on" : "off"]." + return status + +/datum/wires/robot/on_pulse(wire) + var/mob/living/silicon/robot/R = holder + switch(wire) + if(WIRE_AI) // Pulse to pick a new AI. + if(!R.emagged) + var/new_ai = select_active_ai(R) + if(new_ai && (new_ai != R.connected_ai)) + R.connected_ai = new_ai + if(R.shell) + R.undeploy() //If this borg is an AI shell, disconnect the controlling AI and assign ti to a new AI + R.notify_ai(AI_SHELL) + else + R.notify_ai(TRUE) + if(WIRE_CAMERA) // Pulse to disable the camera. + if(!isnull(R.camera) && !R.scrambledcodes) + R.camera.toggle_cam(usr, 0) + R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") + if(WIRE_LAWSYNC) // Forces a law update if possible. + if(R.lawupdate) + R.visible_message("[R] gently chimes.", "LawSync protocol engaged.") + R.lawsync() + R.show_laws() + if(WIRE_LOCKDOWN) + R.SetLockdown(!R.lockcharge) // Toggle if(WIRE_RESET_MODULE) if(R.has_module()) R.visible_message("[R]'s module servos twitch.", "Your module display flickers.") - -/datum/wires/robot/on_cut(wire, mend) - var/mob/living/silicon/robot/R = holder - switch(wire) - if(WIRE_AI) // Cut the AI wire to reset AI control. - if(!mend) - R.connected_ai = null - R.undeploy() //Forced disconnect of an AI should this body be a shell. - if(WIRE_LAWSYNC) // Cut the law wire, and the borg will no longer receive law updates from its AI. Repair and it will re-sync. - if(mend) - if(!R.emagged) - R.lawupdate = TRUE - else if(!R.deployed) //AI shells must always have the same laws as the AI - R.lawupdate = FALSE - if (WIRE_CAMERA) // Disable the camera. - if(!isnull(R.camera) && !R.scrambledcodes) - R.camera.status = mend - R.camera.toggle_cam(usr, 0) - R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") - if(WIRE_LOCKDOWN) // Simple lockdown. - R.SetLockdown(!mend) + +/datum/wires/robot/on_cut(wire, mend) + var/mob/living/silicon/robot/R = holder + switch(wire) + if(WIRE_AI) // Cut the AI wire to reset AI control. + if(!mend) + R.connected_ai = null + R.undeploy() //Forced disconnect of an AI should this body be a shell. + if(WIRE_LAWSYNC) // Cut the law wire, and the borg will no longer receive law updates from its AI. Repair and it will re-sync. + if(mend) + if(!R.emagged) + R.lawupdate = TRUE + else if(!R.deployed) //AI shells must always have the same laws as the AI + R.lawupdate = FALSE + if (WIRE_CAMERA) // Disable the camera. + if(!isnull(R.camera) && !R.scrambledcodes) + R.camera.status = mend + R.camera.toggle_cam(usr, 0) + R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") + if(WIRE_LOCKDOWN) // Simple lockdown. + R.SetLockdown(!mend) if(WIRE_RESET_MODULE) if(R.has_module() && !mend) R.ResetModule() diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index 30d469f579..78acc42eb0 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -1,92 +1,92 @@ -/datum/wires/syndicatebomb - holder_type = /obj/machinery/syndicatebomb - randomize = TRUE - -/datum/wires/syndicatebomb/New(atom/holder) - wires = list( - WIRE_BOOM, WIRE_UNBOLT, - WIRE_ACTIVATE, WIRE_DELAY, WIRE_PROCEED - ) - ..() - -/datum/wires/syndicatebomb/interactable(mob/user) - var/obj/machinery/syndicatebomb/P = holder - if(P.open_panel) - return TRUE - -/datum/wires/syndicatebomb/on_pulse(wire) - var/obj/machinery/syndicatebomb/B = holder - switch(wire) - if(WIRE_BOOM) - if(B.active) +/datum/wires/syndicatebomb + holder_type = /obj/machinery/syndicatebomb + randomize = TRUE + +/datum/wires/syndicatebomb/New(atom/holder) + wires = list( + WIRE_BOOM, WIRE_UNBOLT, + WIRE_ACTIVATE, WIRE_DELAY, WIRE_PROCEED + ) + ..() + +/datum/wires/syndicatebomb/interactable(mob/user) + var/obj/machinery/syndicatebomb/P = holder + if(P.open_panel) + return TRUE + +/datum/wires/syndicatebomb/on_pulse(wire) + var/obj/machinery/syndicatebomb/B = holder + switch(wire) + if(WIRE_BOOM) + if(B.active) holder.visible_message("[bicon(B)] An alarm sounds! It's go-") - B.explode_now = TRUE - tell_admins(B) - if(WIRE_UNBOLT) + B.explode_now = TRUE + tell_admins(B) + if(WIRE_UNBOLT) holder.visible_message("[bicon(B)] The bolts spin in place for a moment.") - if(WIRE_DELAY) - if(B.delayedbig) + if(WIRE_DELAY) + if(B.delayedbig) holder.visible_message("[bicon(B)] The bomb has already been delayed.") - else + else holder.visible_message("[bicon(B)] The bomb chirps.") - playsound(B, 'sound/machines/chime.ogg', 30, 1) - B.detonation_timer += 300 - B.delayedbig = TRUE - if(WIRE_PROCEED) + playsound(B, 'sound/machines/chime.ogg', 30, 1) + B.detonation_timer += 300 + B.delayedbig = TRUE + if(WIRE_PROCEED) holder.visible_message("[bicon(B)] The bomb buzzes ominously!") - playsound(B, 'sound/machines/buzz-sigh.ogg', 30, 1) - var/seconds = B.seconds_remaining() - if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. - B.detonation_timer = world.time + 600 - else if(seconds >= 21) - B.detonation_timer -= 100 - else if(seconds >= 11) // Both to prevent negative timers and to have a little mercy. - B.detonation_timer = world.time + 100 - if(WIRE_ACTIVATE) - if(!B.active && !B.defused) + playsound(B, 'sound/machines/buzz-sigh.ogg', 30, 1) + var/seconds = B.seconds_remaining() + if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. + B.detonation_timer = world.time + 600 + else if(seconds >= 21) + B.detonation_timer -= 100 + else if(seconds >= 11) // Both to prevent negative timers and to have a little mercy. + B.detonation_timer = world.time + 100 + if(WIRE_ACTIVATE) + if(!B.active && !B.defused) holder.visible_message("[bicon(B)] You hear the bomb start ticking!") - B.activate() - B.update_icon() - else if(B.delayedlittle) + B.activate() + B.update_icon() + else if(B.delayedlittle) holder.visible_message("[bicon(B)] Nothing happens.") - else + else holder.visible_message("[bicon(B)] The bomb seems to hesitate for a moment.") - B.detonation_timer += 100 - B.delayedlittle = TRUE - -/datum/wires/syndicatebomb/on_cut(wire, mend) - var/obj/machinery/syndicatebomb/B = holder - switch(wire) - if(WIRE_BOOM) - if(mend) - B.defused = FALSE // Cutting and mending all the wires of an inactive bomb will thus cure any sabotage. - else - if(B.active) + B.detonation_timer += 100 + B.delayedlittle = TRUE + +/datum/wires/syndicatebomb/on_cut(wire, mend) + var/obj/machinery/syndicatebomb/B = holder + switch(wire) + if(WIRE_BOOM) + if(mend) + B.defused = FALSE // Cutting and mending all the wires of an inactive bomb will thus cure any sabotage. + else + if(B.active) holder.visible_message("[bicon(B)] An alarm sounds! It's go-") - B.explode_now = TRUE - tell_admins(B) - else - B.defused = TRUE - if(WIRE_UNBOLT) - if(!mend && B.anchored) + B.explode_now = TRUE + tell_admins(B) + else + B.defused = TRUE + if(WIRE_UNBOLT) + if(!mend && B.anchored) holder.visible_message("[bicon(B)] The bolts lift out of the ground!") - playsound(B, 'sound/effects/stealthoff.ogg', 30, 1) - B.anchored = FALSE - if(WIRE_PROCEED) - if(!mend && B.active) + playsound(B, 'sound/effects/stealthoff.ogg', 30, 1) + B.anchored = FALSE + if(WIRE_PROCEED) + if(!mend && B.active) holder.visible_message("[bicon(B)] An alarm sounds! It's go-") - B.explode_now = TRUE - tell_admins(B) - if(WIRE_ACTIVATE) - if(!mend && B.active) + B.explode_now = TRUE + tell_admins(B) + if(WIRE_ACTIVATE) + if(!mend && B.active) holder.visible_message("[bicon(B)] The timer stops! The bomb has been defused!") - B.active = FALSE - B.defused = TRUE - B.update_icon() - -/datum/wires/syndicatebomb/proc/tell_admins(obj/machinery/syndicatebomb/B) - if(istype(B, /obj/machinery/syndicatebomb/training)) - return - var/turf/T = get_turf(B) - log_game("\A [B] was detonated via boom wire at [COORD(T)].") - message_admins("A [B.name] was detonated via boom wire at [ADMIN_COORDJMP(T)].") + B.active = FALSE + B.defused = TRUE + B.update_icon() + +/datum/wires/syndicatebomb/proc/tell_admins(obj/machinery/syndicatebomb/B) + if(istype(B, /obj/machinery/syndicatebomb/training)) + return + var/turf/T = get_turf(B) + log_game("\A [B] was detonated via boom wire at [COORD(T)].") + message_admins("A [B.name] was detonated via boom wire at [ADMIN_COORDJMP(T)].") diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index 67c4469673..9b74020488 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) for(var/v in hudatoms) remove_from_hud(v) GLOB.active_alternate_appearances -= src - return ..() + return ..() /datum/atom_hud/alternate_appearance/proc/onNewMob(mob/M) if(mobShouldSee(M)) diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 138bbc4f49..16b548daf0 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -1,351 +1,351 @@ -/* - -### This file contains a list of all the areas in your station. Format is as follows: - -/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want) - name = "NICE NAME" (not required but makes things really nice) - icon = 'ICON FILENAME' (defaults to 'icons/turf/areas.dmi') - icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - requires_power = 0 (defaults to 1) - music = null (defaults to nothing, look in sound/ambience for music) - -NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0 - -*/ - - -/*-----------------------------------------------------------------------------*/ - -/area/ai_monitored //stub defined ai_monitored.dm - -/area/ai_monitored/turret_protected - -/area/arrival - requires_power = 0 - -/area/arrival/start - name = "Arrival Area" - icon_state = "start" - -/area/admin - name = "Admin room" - icon_state = "start" - -/area/space - icon_state = "space" - requires_power = 1 - always_unpowered = 1 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - power_light = 0 - power_equip = 0 - power_environ = 0 - valid_territory = 0 - outdoors = 1 - ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') - blob_allowed = 0 //Eating up space doesn't count for victory as a blob. - -/area/space/nearstation - icon_state = "space_near" - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - -/area/start - name = "start area" - icon_state = "start" - requires_power = 0 - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - has_gravity = 1 - - -//EXTRA - -/area/asteroid - name = "Asteroid" - icon_state = "asteroid" - requires_power = 0 - has_gravity = 1 - blob_allowed = 0 //Nope, no winning on the asteroid as a blob. Gotta eat the station. - valid_territory = 0 - -/area/asteroid/cave - name = "Asteroid - Underground" - icon_state = "cave" - requires_power = 0 - outdoors = 1 - -/area/asteroid/artifactroom - name = "Asteroid - Artifact" - icon_state = "cave" - -/area/asteroid/artifactroom/Initialize() - . = ..() - set_dynamic_lighting() - -/area/planet/clown - name = "Clown Planet" - icon_state = "honk" - requires_power = 0 - -/area/telesciareas - name = "Cosmic Anomaly" - icon_state = "telesci" - requires_power = 0 - - -//STATION13 - -//Maintenance - -/area/maintenance - ambientsounds = list('sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimaint2.ogg', - 'sound/ambience/ambimaint3.ogg', - 'sound/ambience/ambimaint4.ogg', - 'sound/ambience/ambimaint5.ogg', - 'sound/voice/lowHiss2.ogg', //Xeno Breathing Hisses, Hahahaha I'm not even sorry. - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg') - valid_territory = 0 - - -//Departments - -/area/maintenance/department/chapel - name = "Chapel Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/chapel/monastery - name = "Monastery Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/crew_quarters/bar - name = "Bar Maintenance" - icon_state = "fsmaint" - -/area/maintenance/department/crew_quarters/dorms - name = "Dormitory Maintenance" - icon_state = "fsmaint" - -/area/maintenance/department/crew_quarters/locker - name = "Locker Room Maintenance" - icon_state = "pmaint" - -/area/maintenance/department/eva - name = "EVA Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/electrical - name = "Electrical Maintenance" - icon_state = "yellow" - -/area/maintenance/department/engine/atmos - name = "Atmospherics Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/security - name = "Security Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/security/brig - name = "Brig Maintenance" - icon_state = "fpmaint" - -/area/maintenance/department/medical - name = "Medbay Maintenance" - icon_state = "asmaint" - -/area/maintenance/department/science - name = "Science Maintenance" - icon_state = "asmaint" - -/area/maintenance/department/cargo - name = "Cargo Maintenance" - icon_state = "apmaint" - -/area/maintenance/department/bridge - name = "Bridge Maintenance" - icon_state = "maintcentral" - -/area/maintenance/department/engine - name = "Engineering Maintenance" - icon_state = "amaint" - -/area/maintenance/department/science/xenobiology - name = "Xenobiology Maintenance" - icon_state = "xenomaint" - - -//Maintenance - Generic - -/area/maintenance/arrivals/north - name = "Arrivals North Maintenance" - icon_state = "fpmaint" - -/area/maintenance/arrivals/north_2 - name = "Arrivals North Maintenance" - icon_state = "fpmaint" - -/area/maintenance/aft - name = "Aft Maintenance" - icon_state = "amaint" - -/area/maintenance/aft/secondary - name = "Aft Maintenance" - icon_state = "amaint_2" - -/area/maintenance/central - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/central/secondary - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/fore - name = "Fore Maintenance" - icon_state = "fmaint" - -/area/maintenance/fore/secondary - name = "Fore Maintenance" - icon_state = "fmaint_2" - -/area/maintenance/starboard - name = "Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/central - name = "Central Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/aft - name = "Starboard Quarter Maintenance" - icon_state = "asmaint" - -/area/maintenance/starboard/fore - name = "Starboard Bow Maintenance" - icon_state = "fsmaint" - -/area/maintenance/port - name = "Port Maintenance" - icon_state = "pmaint" - -/area/maintenance/port/central - name = "Central Port Maintenance" - icon_state = "maintcentral" - -/area/maintenance/port/aft - name = "Port Quarter Maintenance" - icon_state = "apmaint" - -/area/maintenance/port/fore - name = "Port Bow Maintenance" - icon_state = "fpmaint" - -/area/maintenance/disposal - name = "Waste Disposal" - icon_state = "disposal" - -/area/maintenance/disposal/incinerator -// /area/maintenance/incinerator - name = "Incinerator" - icon_state = "disposal" - - -//Cere / Asteroid Specific - -/area/maintenance/asteroid/aft/science - name = "Aft Maintenance" - icon_state = "amaint" - -/area/maintenance/asteroid/aft/arrivals - name = "Aft Maintenance" - icon_state = "amaint" - -/area/maintenance/asteroid/central - name = "Central Asteroid Maintenance" - icon_state = "maintcentral" - -/area/maintenance/asteroid/disposal/east - name = "Eastern External Waste Belt" - icon_state = "disposal" - -/area/maintenance/asteroid/disposal/north - name = "Northern External Waste Belt" - icon_state = "disposal" - -/area/maintenance/asteroid/disposal/southeast - name = "South-Eastern Disposal" - icon_state = "disposal" - -/area/maintenance/asteroid/disposal/southwest - name = "South-Western Disposal" - icon_state = "disposal" - -/area/maintenance/asteroid/fore/cargo_west - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/fore/cargo_south - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/fore/com_west - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/fore/com_north - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/fore/com_east - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/fore/com_south - name = "Fore Asteroid Maintenance" - icon_state = "fmaint" - -/area/maintenance/asteroid/port/neast - name = "Port Asteroid Maintenance" - icon_state = "pmaint" - -/area/maintenance/asteroid/port/east - name = "Port Asteroid Maintenance" - icon_state = "pmaint" - -/area/maintenance/asteroid/port/west - name = "Port Asteroid Maintenance" - icon_state = "pmaint" - -/area/maintenance/asteroid/starboard - name = "Starboard Asteroid Maintenance" - icon_state = "smaint" - - -//Hallway - +/* + +### This file contains a list of all the areas in your station. Format is as follows: + +/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want) + name = "NICE NAME" (not required but makes things really nice) + icon = 'ICON FILENAME' (defaults to 'icons/turf/areas.dmi') + icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + requires_power = 0 (defaults to 1) + music = null (defaults to nothing, look in sound/ambience for music) + +NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0 + +*/ + + +/*-----------------------------------------------------------------------------*/ + +/area/ai_monitored //stub defined ai_monitored.dm + +/area/ai_monitored/turret_protected + +/area/arrival + requires_power = 0 + +/area/arrival/start + name = "Arrival Area" + icon_state = "start" + +/area/admin + name = "Admin room" + icon_state = "start" + +/area/space + icon_state = "space" + requires_power = 1 + always_unpowered = 1 + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + power_light = 0 + power_equip = 0 + power_environ = 0 + valid_territory = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') + blob_allowed = 0 //Eating up space doesn't count for victory as a blob. + +/area/space/nearstation + icon_state = "space_near" + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/start + name = "start area" + icon_state = "start" + requires_power = 0 + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + has_gravity = 1 + + +//EXTRA + +/area/asteroid + name = "Asteroid" + icon_state = "asteroid" + requires_power = 0 + has_gravity = 1 + blob_allowed = 0 //Nope, no winning on the asteroid as a blob. Gotta eat the station. + valid_territory = 0 + +/area/asteroid/cave + name = "Asteroid - Underground" + icon_state = "cave" + requires_power = 0 + outdoors = 1 + +/area/asteroid/artifactroom + name = "Asteroid - Artifact" + icon_state = "cave" + +/area/asteroid/artifactroom/Initialize() + . = ..() + set_dynamic_lighting() + +/area/planet/clown + name = "Clown Planet" + icon_state = "honk" + requires_power = 0 + +/area/telesciareas + name = "Cosmic Anomaly" + icon_state = "telesci" + requires_power = 0 + + +//STATION13 + +//Maintenance + +/area/maintenance + ambientsounds = list('sound/ambience/ambimaint1.ogg', + 'sound/ambience/ambimaint2.ogg', + 'sound/ambience/ambimaint3.ogg', + 'sound/ambience/ambimaint4.ogg', + 'sound/ambience/ambimaint5.ogg', + 'sound/voice/lowHiss2.ogg', //Xeno Breathing Hisses, Hahahaha I'm not even sorry. + 'sound/voice/lowHiss3.ogg', + 'sound/voice/lowHiss4.ogg') + valid_territory = 0 + + +//Departments + +/area/maintenance/department/chapel + name = "Chapel Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/chapel/monastery + name = "Monastery Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/crew_quarters/bar + name = "Bar Maintenance" + icon_state = "fsmaint" + +/area/maintenance/department/crew_quarters/dorms + name = "Dormitory Maintenance" + icon_state = "fsmaint" + +/area/maintenance/department/crew_quarters/locker + name = "Locker Room Maintenance" + icon_state = "pmaint" + +/area/maintenance/department/eva + name = "EVA Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/electrical + name = "Electrical Maintenance" + icon_state = "yellow" + +/area/maintenance/department/engine/atmos + name = "Atmospherics Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/security + name = "Security Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/security/brig + name = "Brig Maintenance" + icon_state = "fpmaint" + +/area/maintenance/department/medical + name = "Medbay Maintenance" + icon_state = "asmaint" + +/area/maintenance/department/science + name = "Science Maintenance" + icon_state = "asmaint" + +/area/maintenance/department/cargo + name = "Cargo Maintenance" + icon_state = "apmaint" + +/area/maintenance/department/bridge + name = "Bridge Maintenance" + icon_state = "maintcentral" + +/area/maintenance/department/engine + name = "Engineering Maintenance" + icon_state = "amaint" + +/area/maintenance/department/science/xenobiology + name = "Xenobiology Maintenance" + icon_state = "xenomaint" + + +//Maintenance - Generic + +/area/maintenance/arrivals/north + name = "Arrivals North Maintenance" + icon_state = "fpmaint" + +/area/maintenance/arrivals/north_2 + name = "Arrivals North Maintenance" + icon_state = "fpmaint" + +/area/maintenance/aft + name = "Aft Maintenance" + icon_state = "amaint" + +/area/maintenance/aft/secondary + name = "Aft Maintenance" + icon_state = "amaint_2" + +/area/maintenance/central + name = "Central Maintenance" + icon_state = "maintcentral" + +/area/maintenance/central/secondary + name = "Central Maintenance" + icon_state = "maintcentral" + +/area/maintenance/fore + name = "Fore Maintenance" + icon_state = "fmaint" + +/area/maintenance/fore/secondary + name = "Fore Maintenance" + icon_state = "fmaint_2" + +/area/maintenance/starboard + name = "Starboard Maintenance" + icon_state = "smaint" + +/area/maintenance/starboard/central + name = "Central Starboard Maintenance" + icon_state = "smaint" + +/area/maintenance/starboard/aft + name = "Starboard Quarter Maintenance" + icon_state = "asmaint" + +/area/maintenance/starboard/fore + name = "Starboard Bow Maintenance" + icon_state = "fsmaint" + +/area/maintenance/port + name = "Port Maintenance" + icon_state = "pmaint" + +/area/maintenance/port/central + name = "Central Port Maintenance" + icon_state = "maintcentral" + +/area/maintenance/port/aft + name = "Port Quarter Maintenance" + icon_state = "apmaint" + +/area/maintenance/port/fore + name = "Port Bow Maintenance" + icon_state = "fpmaint" + +/area/maintenance/disposal + name = "Waste Disposal" + icon_state = "disposal" + +/area/maintenance/disposal/incinerator +// /area/maintenance/incinerator + name = "Incinerator" + icon_state = "disposal" + + +//Cere / Asteroid Specific + +/area/maintenance/asteroid/aft/science + name = "Aft Maintenance" + icon_state = "amaint" + +/area/maintenance/asteroid/aft/arrivals + name = "Aft Maintenance" + icon_state = "amaint" + +/area/maintenance/asteroid/central + name = "Central Asteroid Maintenance" + icon_state = "maintcentral" + +/area/maintenance/asteroid/disposal/east + name = "Eastern External Waste Belt" + icon_state = "disposal" + +/area/maintenance/asteroid/disposal/north + name = "Northern External Waste Belt" + icon_state = "disposal" + +/area/maintenance/asteroid/disposal/southeast + name = "South-Eastern Disposal" + icon_state = "disposal" + +/area/maintenance/asteroid/disposal/southwest + name = "South-Western Disposal" + icon_state = "disposal" + +/area/maintenance/asteroid/fore/cargo_west + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/fore/cargo_south + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/fore/com_west + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/fore/com_north + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/fore/com_east + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/fore/com_south + name = "Fore Asteroid Maintenance" + icon_state = "fmaint" + +/area/maintenance/asteroid/port/neast + name = "Port Asteroid Maintenance" + icon_state = "pmaint" + +/area/maintenance/asteroid/port/east + name = "Port Asteroid Maintenance" + icon_state = "pmaint" + +/area/maintenance/asteroid/port/west + name = "Port Asteroid Maintenance" + icon_state = "pmaint" + +/area/maintenance/asteroid/starboard + name = "Starboard Asteroid Maintenance" + icon_state = "smaint" + + +//Hallway + /area/hallway/primary/aft name = "Aft Primary Hallway" icon_state = "hallA" -/area/hallway/primary/fore - name = "Fore Primary Hallway" - icon_state = "hallF" - -/area/hallway/primary/starboard - name = "Starboard Primary Hallway" - icon_state = "hallS" - -/area/hallway/primary/starboard/aft - name = "Starboard Quarter Primary Hallway" +/area/hallway/primary/fore + name = "Fore Primary Hallway" + icon_state = "hallF" + +/area/hallway/primary/starboard + name = "Starboard Primary Hallway" + icon_state = "hallS" + +/area/hallway/primary/starboard/aft + name = "Starboard Quarter Primary Hallway" icon_state = "hallAS" - -/area/hallway/primary/starboard/fore - name = "Starboard Bow Primary Hallway" + +/area/hallway/primary/starboard/fore + name = "Starboard Bow Primary Hallway" icon_state = "hallFS" - -/area/hallway/primary/port - name = "Port Primary Hallway" - icon_state = "hallP" + +/area/hallway/primary/port + name = "Port Primary Hallway" + icon_state = "hallP" /area/hallway/primary/port/aft name = "Port Quarter Primary Hallway" @@ -354,25 +354,25 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/hallway/primary/port/fore name = "Port Bow Primary Hallway" icon_state = "hallFP" - -/area/hallway/primary/central - name = "Central Primary Hallway" - icon_state = "hallC" + +/area/hallway/primary/central + name = "Central Primary Hallway" + icon_state = "hallC" /area/hallway/secondary/command name = "Command Hallway" icon_state = "bridge_hallway" - + /area/hallway/secondary/construction name = "Construction Area" icon_state = "construction" -/area/hallway/secondary/exit - name = "Escape Shuttle Hallway" - icon_state = "escape" +/area/hallway/secondary/exit + name = "Escape Shuttle Hallway" + icon_state = "escape" -/area/hallway/secondary/exit/departure_lounge - name = "Departure Lounge" +/area/hallway/secondary/exit/departure_lounge + name = "Departure Lounge" icon_state = "escape_lounge" /area/hallway/secondary/entry @@ -382,1087 +382,1087 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/hallway/secondary/service name = "Service Hallway" icon_state = "hall_service" - -/area/hallway/secondary/bridges/cargo_ai - name = "Cargo-AI-Command Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/com_engi - name = "Command-Engineering Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/com_serv - name = "Command-Service Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/dock_med - name = "Docking-Medical Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/engi_med - name = "Engineering-Medical Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/med_cargo - name = "Medical-Cargo Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/sci_dock - name = "Science-Docking Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/serv_engi - name = "Service-Engineering Bridge" - icon_state = "yellow" - -/area/hallway/secondary/bridges/serv_sci - name = "Service-Science Bridge" - icon_state = "yellow" - -//Command - -/area/bridge - name = "Bridge" - icon_state = "bridge" - music = "signal" - -/area/bridge/meeting_room - name = "Heads of Staff Meeting Room" - icon_state = "meeting" - music = null - -/area/bridge/meeting_room/council - name = "Council Chamber" - icon_state = "meeting" - music = null - -/area/bridge/showroom/corporate - name = "Corporate Showroom" - icon_state = "showroom" - music = null - -/area/crew_quarters/heads/captain - name = "Captain's Office" - icon_state = "captain" - -/area/crew_quarters/heads/captain/private - name = "Captain's Quarters" - icon_state = "captain" - -/area/crew_quarters/heads/chief - name = "Chief Engineer's Office" - icon_state = "ce_office" - -/area/crew_quarters/heads/chief/private - name = "Chief Engineer's Private Quarters" - icon_state = "ce_private" - -/area/crew_quarters/heads/cmo - name = "Chief Medical Officer's Office" - icon_state = "cmo_office" - -/area/crew_quarters/heads/cmo/private - name = "Chief Medical Officer's Private Quarters" - icon_state = "cmo_private" - -/area/crew_quarters/heads/hop - name = "Head of Personnel's Office" - icon_state = "hop_office" - -/area/crew_quarters/heads/hop/private - name = "Head of Personnel's Private Quarters" - icon_state = "hop_private" - -/area/crew_quarters/heads/hos - name = "Head of Security's Office" - icon_state = "hos_office" - -/area/crew_quarters/heads/hos/private - name = "Head of Security's Private Quarters" - icon_state = "hos_private" - -/area/crew_quarters/heads/hor - name = "Research Director's Office" - icon_state = "rd_office" - -/area/crew_quarters/heads/hor/private - name = "Research Director's Private Quarters" - icon_state = "rd_private" - -/area/mint - name = "Mint" - icon_state = "green" - -/area/comms - name = "Communications Relay" - icon_state = "tcomsatcham" - -/area/server - name = "Messaging Server Room" - icon_state = "server" - -//Crew - -/area/crew_quarters/dorms - name = "Dormitories" - icon_state = "Sleep" - safe = 1 - -/area/crew_quarters/dorms/male - name = "Male Dorm" - icon_state = "Sleep" - -/area/crew_quarters/dorms/female - name = "Female Dorm" - icon_state = "Sleep" - -/area/crew_quarters/rehab_dome - name = "Rehabilitation Dome" - icon_state = "Sleep" - -/area/crew_quarters/toilet - name = "Dormitory Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/auxiliary - name = "Auxiliary Restrooms" - icon_state = "toilet" - -/area/crew_quarters/toilet/locker - name = "Locker Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/female - name = "Female Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/male - name = "Male Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/restrooms - name = "Restrooms" - icon_state = "toilet" - -/area/crew_quarters/locker - name = "Locker Room" - icon_state = "locker" - -/area/crew_quarters/lounge - name = "Lounge" - icon_state = "yellow" - -/area/crew_quarters/fitness - name = "Fitness Room" - icon_state = "fitness" - -/area/crew_quarters/fitness/recreation - name = "Recreation Area" - icon_state = "fitness" - -/area/crew_quarters/cafeteria - name = "Cafeteria" - icon_state = "cafeteria" - -/area/crew_quarters/cafeteria/lunchroom - name = "Lunchroom" - icon_state = "cafeteria" - -/area/crew_quarters/kitchen - name = "Kitchen" - icon_state = "kitchen" - -/area/crew_quarters/kitchen/backroom - name = "Kitchen Coldroom" - icon_state = "kitchen" - -/area/crew_quarters/bar - name = "Bar" - icon_state = "bar" - -/area/crew_quarters/bar/atrium - name = "Atrium" - icon_state = "bar" - -/area/crew_quarters/electronic_marketing_den - name = "Electronic Marketing Den" - icon_state = "bar" - -/area/crew_quarters/abandoned_gambling_den - name = "Abandoned Gambling Den" - icon_state = "bar" - -/area/crew_quarters/theatre - name = "Theatre" - icon_state = "Theatre" - -/area/crew_quarters/theatre/abandoned - name = "Abandoned Theatre" - icon_state = "Theatre" - -/area/library - name = "Library" - icon_state = "library" - flags = NONE - -/area/library/lounge - name = "Library Lounge" - icon_state = "library" - -/area/library/abandoned - name = "Abandoned Library" - icon_state = "library" - flags = NONE - -/area/chapel - icon_state = "chapel" - ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') - flags = NONE - -/area/chapel/main - name = "Chapel" - -/area/chapel/main/monastery - name = "Monastery" - -/area/chapel/office - name = "Chapel Office" - icon_state = "chapeloffice" - -/area/chapel/asteroid - name = "Chapel Asteroid" - icon_state = "explored" - -/area/chapel/dock - name = "Chapel Dock" - icon_state = "construction" - -/area/lawoffice - name = "Law Office" - icon_state = "law" - - -//Engineering - -/area/engine - ambientsounds = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg') - -/area/engine/engine_smes - name = "Engineering SMES" - icon_state = "engine_smes" - -/area/engine/engineering - name = "Engineering" - icon_state = "engine" - -/area/engine/atmos - name = "Atmospherics" - icon_state = "atmos" - flags = NONE - -/area/engine/atmospherics_engine - name = "Atmospherics Engine" - icon_state = "atmos_engine" - -/area/engine/supermatter - name = "Supermatter Engine" - icon_state = "engine_sm" - -/area/engine/break_room - name = "Engineering Foyer" - icon_state = "engine_foyer" - -/area/engine/gravity_generator - name = "Gravity Generator Room" - icon_state = "grav_gen" - -/area/engine/secure_construction - name = "Secure Construction Area" - icon_state = "engine" - -/area/engine/storage - name = "Engineering Storage" - icon_state = "engi_storage" - -/area/engine/transit_tube - name = "Transit Tube" - icon_state = "transit_tube" - - -//Solars - -/area/solar - requires_power = 0 - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - valid_territory = 0 - blob_allowed = FALSE - flags = NONE - -/area/solar/asteroid/aft - name = "Aft Asteroid Solar" - icon_state = "panelsA" - -/area/solar/asteroid/command - name = "Command Asteroid Solar" - icon_state = "panelsA" - -/area/solar/asteroid/fore - name = "Fore Asteroid Solar" - icon_state = "panelsA" - -/area/solar/fore - name = "Fore Solar Array" - icon_state = "yellow" - -/area/solar/aft - name = "Aft Solar Array" - icon_state = "yellow" - -/area/solar/aux/port - name = "Port Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/aux/starboard - name = "Starboard Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/starboard - name = "Starboard Solar Array" - icon_state = "panelsS" - -/area/solar/starboard/aft - name = "Starboard Quarter Solar Array" - icon_state = "panelsAS" - -/area/solar/starboard/fore - name = "Starboard Bow Solar Array" - icon_state = "panelsFS" - -/area/solar/port - name = "Port Solar Array" - icon_state = "panelsP" - -/area/solar/port/aft - name = "Port Quarter Solar Array" - icon_state = "panelsAP" - -/area/solar/port/fore - name = "Port Bow Solar Array" - icon_state = "panelsFP" - - -//Solar Maint - -/area/maintenance/solars - name = "Solar Maintenance" - icon_state = "yellow" - -/area/maintenance/solars/asteroid/aft - name = "Aft Asteroid Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/maintenance/solars/asteroid/command - name = "Command Asteroid Solar Maintenance" - icon_state = "SolarcontrolP" - -/area/maintenance/solars/asteroid/fore - name = "Fore Asteroid Solar Maintenance" - icon_state = "SolarcontrolP" - -/area/maintenance/solars/port - name = "Port Solar Maintenance" - icon_state = "SolarcontrolP" - -/area/maintenance/solars/port/aft - name = "Port Quarter Solar Maintenance" - icon_state = "SolarcontrolAP" - -/area/maintenance/solars/port/fore - name = "Port Bow Solar Maintenance" - icon_state = "SolarcontrolFP" - -/area/maintenance/solars/starboard - name = "Starboard Solar Maintenance" - icon_state = "SolarcontrolS" - -/area/maintenance/solars/starboard/aft - name = "Starboard Quarter Solar Maintenance" - icon_state = "SolarcontrolAS" - -/area/maintenance/solars/starboard/fore - name = "Starboard Bow Solar Maintenance" - icon_state = "SolarcontrolFS" - -/area/maintenance/solars/aux/port - name = "Port Auxiliary Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/maintenance/solars/aux/port/aft - name = "Port Quarter Auxiliary Solar Maintenance" - icon_state = "SolarcontrolAP" - -/area/maintenance/solars/aux/port/fore - name = "Port Bow Auxiliary Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/maintenance/solars/aux/starboard - name = "Starboard Auxiliary Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/maintenance/solars/aux/starboard/aft - name = "Starboard Quarter Auxiliary Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/maintenance/solars/aux/starboard/fore - name = "Starboard Bow Auxiliary Solar Maintenance" - icon_state = "SolarcontrolA" - -/area/assembly/assembly_line //Derelict Assembly Line - name = "Assembly Line" - icon_state = "ass_line" - power_equip = 0 - power_light = 0 - power_environ = 0 - -//Teleporter - -/area/teleporter - name = "Teleporter Room" - icon_state = "teleporter" - music = "signal" - -/area/teleporter/quantum/cargo - name = "Cargo Quantum Pad" - icon_state = "teleporter" - music = "signal" - -/area/teleporter/quantum/docking - name = "Docking Quantum Pad" - icon_state = "teleporter" - music = "signal" - -/area/teleporter/quantum/research - name = "Research Quantum Pad" - icon_state = "teleporter" - music = "signal" - -/area/teleporter/quantum/security - name = "Security Quantum Pad" - icon_state = "teleporter" - music = "signal" - -/area/gateway - name = "Gateway" - icon_state = "teleporter" - music = "signal" - -//MedBay - -/area/medical - name = "Medical" - icon_state = "medbay3" - -/area/medical/abandoned - name = "Abandoned Medbay" - icon_state = "medbay3" - music = 'sound/ambience/signal.ogg' - -/area/medical/medbay/central - name = "Medbay Central" - icon_state = "medbay" - music = 'sound/ambience/signal.ogg' - -/area/medical/medbay/front_office - name = "Medbay Front Office" - icon_state = "medbay" - music = 'sound/ambience/signal.ogg' - -/area/medical/medbay/lobby - name = "Medbay Lobby" - icon_state = "medbay" - music = 'sound/ambience/signal.ogg' - + +/area/hallway/secondary/bridges/cargo_ai + name = "Cargo-AI-Command Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/com_engi + name = "Command-Engineering Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/com_serv + name = "Command-Service Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/dock_med + name = "Docking-Medical Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/engi_med + name = "Engineering-Medical Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/med_cargo + name = "Medical-Cargo Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/sci_dock + name = "Science-Docking Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/serv_engi + name = "Service-Engineering Bridge" + icon_state = "yellow" + +/area/hallway/secondary/bridges/serv_sci + name = "Service-Science Bridge" + icon_state = "yellow" + +//Command + +/area/bridge + name = "Bridge" + icon_state = "bridge" + music = "signal" + +/area/bridge/meeting_room + name = "Heads of Staff Meeting Room" + icon_state = "meeting" + music = null + +/area/bridge/meeting_room/council + name = "Council Chamber" + icon_state = "meeting" + music = null + +/area/bridge/showroom/corporate + name = "Corporate Showroom" + icon_state = "showroom" + music = null + +/area/crew_quarters/heads/captain + name = "Captain's Office" + icon_state = "captain" + +/area/crew_quarters/heads/captain/private + name = "Captain's Quarters" + icon_state = "captain" + +/area/crew_quarters/heads/chief + name = "Chief Engineer's Office" + icon_state = "ce_office" + +/area/crew_quarters/heads/chief/private + name = "Chief Engineer's Private Quarters" + icon_state = "ce_private" + +/area/crew_quarters/heads/cmo + name = "Chief Medical Officer's Office" + icon_state = "cmo_office" + +/area/crew_quarters/heads/cmo/private + name = "Chief Medical Officer's Private Quarters" + icon_state = "cmo_private" + +/area/crew_quarters/heads/hop + name = "Head of Personnel's Office" + icon_state = "hop_office" + +/area/crew_quarters/heads/hop/private + name = "Head of Personnel's Private Quarters" + icon_state = "hop_private" + +/area/crew_quarters/heads/hos + name = "Head of Security's Office" + icon_state = "hos_office" + +/area/crew_quarters/heads/hos/private + name = "Head of Security's Private Quarters" + icon_state = "hos_private" + +/area/crew_quarters/heads/hor + name = "Research Director's Office" + icon_state = "rd_office" + +/area/crew_quarters/heads/hor/private + name = "Research Director's Private Quarters" + icon_state = "rd_private" + +/area/mint + name = "Mint" + icon_state = "green" + +/area/comms + name = "Communications Relay" + icon_state = "tcomsatcham" + +/area/server + name = "Messaging Server Room" + icon_state = "server" + +//Crew + +/area/crew_quarters/dorms + name = "Dormitories" + icon_state = "Sleep" + safe = 1 + +/area/crew_quarters/dorms/male + name = "Male Dorm" + icon_state = "Sleep" + +/area/crew_quarters/dorms/female + name = "Female Dorm" + icon_state = "Sleep" + +/area/crew_quarters/rehab_dome + name = "Rehabilitation Dome" + icon_state = "Sleep" + +/area/crew_quarters/toilet + name = "Dormitory Toilets" + icon_state = "toilet" + +/area/crew_quarters/toilet/auxiliary + name = "Auxiliary Restrooms" + icon_state = "toilet" + +/area/crew_quarters/toilet/locker + name = "Locker Toilets" + icon_state = "toilet" + +/area/crew_quarters/toilet/female + name = "Female Toilets" + icon_state = "toilet" + +/area/crew_quarters/toilet/male + name = "Male Toilets" + icon_state = "toilet" + +/area/crew_quarters/toilet/restrooms + name = "Restrooms" + icon_state = "toilet" + +/area/crew_quarters/locker + name = "Locker Room" + icon_state = "locker" + +/area/crew_quarters/lounge + name = "Lounge" + icon_state = "yellow" + +/area/crew_quarters/fitness + name = "Fitness Room" + icon_state = "fitness" + +/area/crew_quarters/fitness/recreation + name = "Recreation Area" + icon_state = "fitness" + +/area/crew_quarters/cafeteria + name = "Cafeteria" + icon_state = "cafeteria" + +/area/crew_quarters/cafeteria/lunchroom + name = "Lunchroom" + icon_state = "cafeteria" + +/area/crew_quarters/kitchen + name = "Kitchen" + icon_state = "kitchen" + +/area/crew_quarters/kitchen/backroom + name = "Kitchen Coldroom" + icon_state = "kitchen" + +/area/crew_quarters/bar + name = "Bar" + icon_state = "bar" + +/area/crew_quarters/bar/atrium + name = "Atrium" + icon_state = "bar" + +/area/crew_quarters/electronic_marketing_den + name = "Electronic Marketing Den" + icon_state = "bar" + +/area/crew_quarters/abandoned_gambling_den + name = "Abandoned Gambling Den" + icon_state = "bar" + +/area/crew_quarters/theatre + name = "Theatre" + icon_state = "Theatre" + +/area/crew_quarters/theatre/abandoned + name = "Abandoned Theatre" + icon_state = "Theatre" + +/area/library + name = "Library" + icon_state = "library" + flags = NONE + +/area/library/lounge + name = "Library Lounge" + icon_state = "library" + +/area/library/abandoned + name = "Abandoned Library" + icon_state = "library" + flags = NONE + +/area/chapel + icon_state = "chapel" + ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') + flags = NONE + +/area/chapel/main + name = "Chapel" + +/area/chapel/main/monastery + name = "Monastery" + +/area/chapel/office + name = "Chapel Office" + icon_state = "chapeloffice" + +/area/chapel/asteroid + name = "Chapel Asteroid" + icon_state = "explored" + +/area/chapel/dock + name = "Chapel Dock" + icon_state = "construction" + +/area/lawoffice + name = "Law Office" + icon_state = "law" + + +//Engineering + +/area/engine + ambientsounds = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg') + +/area/engine/engine_smes + name = "Engineering SMES" + icon_state = "engine_smes" + +/area/engine/engineering + name = "Engineering" + icon_state = "engine" + +/area/engine/atmos + name = "Atmospherics" + icon_state = "atmos" + flags = NONE + +/area/engine/atmospherics_engine + name = "Atmospherics Engine" + icon_state = "atmos_engine" + +/area/engine/supermatter + name = "Supermatter Engine" + icon_state = "engine_sm" + +/area/engine/break_room + name = "Engineering Foyer" + icon_state = "engine_foyer" + +/area/engine/gravity_generator + name = "Gravity Generator Room" + icon_state = "grav_gen" + +/area/engine/secure_construction + name = "Secure Construction Area" + icon_state = "engine" + +/area/engine/storage + name = "Engineering Storage" + icon_state = "engi_storage" + +/area/engine/transit_tube + name = "Transit Tube" + icon_state = "transit_tube" + + +//Solars + +/area/solar + requires_power = 0 + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + valid_territory = 0 + blob_allowed = FALSE + flags = NONE + +/area/solar/asteroid/aft + name = "Aft Asteroid Solar" + icon_state = "panelsA" + +/area/solar/asteroid/command + name = "Command Asteroid Solar" + icon_state = "panelsA" + +/area/solar/asteroid/fore + name = "Fore Asteroid Solar" + icon_state = "panelsA" + +/area/solar/fore + name = "Fore Solar Array" + icon_state = "yellow" + +/area/solar/aft + name = "Aft Solar Array" + icon_state = "yellow" + +/area/solar/aux/port + name = "Port Bow Auxiliary Solar Array" + icon_state = "panelsA" + +/area/solar/aux/starboard + name = "Starboard Bow Auxiliary Solar Array" + icon_state = "panelsA" + +/area/solar/starboard + name = "Starboard Solar Array" + icon_state = "panelsS" + +/area/solar/starboard/aft + name = "Starboard Quarter Solar Array" + icon_state = "panelsAS" + +/area/solar/starboard/fore + name = "Starboard Bow Solar Array" + icon_state = "panelsFS" + +/area/solar/port + name = "Port Solar Array" + icon_state = "panelsP" + +/area/solar/port/aft + name = "Port Quarter Solar Array" + icon_state = "panelsAP" + +/area/solar/port/fore + name = "Port Bow Solar Array" + icon_state = "panelsFP" + + +//Solar Maint + +/area/maintenance/solars + name = "Solar Maintenance" + icon_state = "yellow" + +/area/maintenance/solars/asteroid/aft + name = "Aft Asteroid Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/solars/asteroid/command + name = "Command Asteroid Solar Maintenance" + icon_state = "SolarcontrolP" + +/area/maintenance/solars/asteroid/fore + name = "Fore Asteroid Solar Maintenance" + icon_state = "SolarcontrolP" + +/area/maintenance/solars/port + name = "Port Solar Maintenance" + icon_state = "SolarcontrolP" + +/area/maintenance/solars/port/aft + name = "Port Quarter Solar Maintenance" + icon_state = "SolarcontrolAP" + +/area/maintenance/solars/port/fore + name = "Port Bow Solar Maintenance" + icon_state = "SolarcontrolFP" + +/area/maintenance/solars/starboard + name = "Starboard Solar Maintenance" + icon_state = "SolarcontrolS" + +/area/maintenance/solars/starboard/aft + name = "Starboard Quarter Solar Maintenance" + icon_state = "SolarcontrolAS" + +/area/maintenance/solars/starboard/fore + name = "Starboard Bow Solar Maintenance" + icon_state = "SolarcontrolFS" + +/area/maintenance/solars/aux/port + name = "Port Auxiliary Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/solars/aux/port/aft + name = "Port Quarter Auxiliary Solar Maintenance" + icon_state = "SolarcontrolAP" + +/area/maintenance/solars/aux/port/fore + name = "Port Bow Auxiliary Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/solars/aux/starboard + name = "Starboard Auxiliary Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/solars/aux/starboard/aft + name = "Starboard Quarter Auxiliary Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/solars/aux/starboard/fore + name = "Starboard Bow Auxiliary Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/assembly/assembly_line //Derelict Assembly Line + name = "Assembly Line" + icon_state = "ass_line" + power_equip = 0 + power_light = 0 + power_environ = 0 + +//Teleporter + +/area/teleporter + name = "Teleporter Room" + icon_state = "teleporter" + music = "signal" + +/area/teleporter/quantum/cargo + name = "Cargo Quantum Pad" + icon_state = "teleporter" + music = "signal" + +/area/teleporter/quantum/docking + name = "Docking Quantum Pad" + icon_state = "teleporter" + music = "signal" + +/area/teleporter/quantum/research + name = "Research Quantum Pad" + icon_state = "teleporter" + music = "signal" + +/area/teleporter/quantum/security + name = "Security Quantum Pad" + icon_state = "teleporter" + music = "signal" + +/area/gateway + name = "Gateway" + icon_state = "teleporter" + music = "signal" + +//MedBay + +/area/medical + name = "Medical" + icon_state = "medbay3" + +/area/medical/abandoned + name = "Abandoned Medbay" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay/central + name = "Medbay Central" + icon_state = "medbay" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay/front_office + name = "Medbay Front Office" + icon_state = "medbay" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay/lobby + name = "Medbay Lobby" + icon_state = "medbay" + music = 'sound/ambience/signal.ogg' + //Medbay is a large area, these additional areas help level out APC load. -/area/medical/medbay/zone2 - name = "Medbay" - icon_state = "medbay2" - music = 'sound/ambience/signal.ogg' - -/area/medical/medbay/zone3 - name = "Medbay" - icon_state = "medbay3" - music = 'sound/ambience/signal.ogg' - -/area/medical/medbay/aft - name = "Medbay Aft" - icon_state = "medbay3" - music = 'sound/ambience/signal.ogg' - -/area/medical/storage - name = "Medbay Storage" - icon_state = "medbay2" - music = 'sound/ambience/signal.ogg' - -/area/medical/patients_rooms - name = "Patients' Rooms" - icon_state = "patients" - -/area/medical/patients_rooms/room_a - name = "Patient Room A" - icon_state = "patients" - -/area/medical/patients_rooms/room_b - name = "Patient Room B" - icon_state = "patients" - -/area/medical/virology - name = "Virology" - icon_state = "virology" - flags = NONE - -/area/medical/morgue - name = "Morgue" - icon_state = "morgue" - ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') - -/area/medical/chemistry - name = "Chemistry" - icon_state = "chem" - -/area/medical/surgery - name = "Surgery" - icon_state = "surgery" - -/area/medical/cryo - name = "Cryogenics" - icon_state = "cryo" - -/area/medical/exam_room - name = "Exam Room" - icon_state = "exam_room" - -/area/medical/genetics - name = "Genetics Lab" - icon_state = "genetics" - -/area/medical/genetics/cloning - name = "Cloning Lab" - icon_state = "cloning" - -/area/medical/sleeper - name = "Medbay Treatment Center" - icon_state = "exam_room" - - -//Security - -/area/security - name = "Security" - icon_state = "security" - -/area/security/main - name = "Security Office" - icon_state = "security" - -/area/security/brig - name = "Brig" - icon_state = "brig" - -/area/security/courtroom - name = "Courtroom" - icon_state = "courtroom" - -/area/security/prison - name = "Prison Wing" - icon_state = "sec_prison" - -/area/security/processing - name = "Labor Shuttle Dock" - icon_state = "sec_prison" - -/area/security/processing/cremation - name = "Security Crematorium" - icon_state = "sec_prison" - -/area/security/warden - name = "Brig Control" - icon_state = "Warden" - -/area/security/armory - name = "Armory" - icon_state = "armory" - -/area/security/detectives_office - name = "Detective's Office" - icon_state = "detective" - ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') - -/area/security/detectives_office/private_investigators_office - name = "Private Investigator's Office" - icon_state = "detective" - ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') - -/area/security/range - name = "Firing Range" - icon_state = "firingrange" - -/area/security/transfer - name = "Transfer Centre" - icon_state = "execution_room" - -/area/security/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/ai_monitored/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/security/checkpoint - name = "Security Checkpoint" - icon_state = "checkpoint1" - -/area/security/checkpoint/checkpoint2 - name = "Security Checkpoint" - icon_state = "security" - -/area/security/checkpoint/supply - name = "Security Post - Cargo Bay" - icon_state = "checkpoint1" - -/area/security/checkpoint/engineering - name = "Security Post - Engineering" - icon_state = "checkpoint1" - -/area/security/checkpoint/medical - name = "Security Post - Medbay" - icon_state = "checkpoint1" - -/area/security/checkpoint/science - name = "Security Post - Science" - icon_state = "checkpoint1" - -/area/security/checkpoint/science/research - name = "Security Post - Research Division" - icon_state = "checkpoint1" - -/area/security/checkpoint/customs - name = "Customs" - icon_state = "bridge" - -/area/security/vacantoffice - name = "Vacant Office" - icon_state = "security" - -/area/security/vacantoffice/a - name = "Vacant Office A" - icon_state = "security" - -/area/security/vacantoffice/b - name = "Vacant Office B" - icon_state = "security" - -/area/quartermaster - name = "Quartermasters" - icon_state = "quart" - -///////////WORK IN PROGRESS////////// - -/area/quartermaster/sorting - name = "Delivery Office" - icon_state = "cargo_delivery" - -/area/quartermaster/warehouse - name = "Warehouse" - icon_state = "cargo_warehouse" - -////////////WORK IN PROGRESS////////// - -/area/quartermaster/office - name = "Cargo Office" - icon_state = "quartoffice" - -/area/quartermaster/storage - name = "Cargo Bay" - icon_state = "cargo_bay" - -/area/quartermaster/qm - name = "Quartermaster's Office" - icon_state = "quart" - -/area/quartermaster/qm/private - name = "Quartermaster's Private Quarters" - icon_state = "quart" - -/area/quartermaster/miningdock - name = "Mining Dock" - icon_state = "mining" - -/area/quartermaster/miningdock/abandoned - name = "Abandoned Mining Dock" - icon_state = "mining" - -/area/quartermaster/miningoffice - name = "Mining Office" - icon_state = "mining" - -/area/quartermaster/miningstorage - name = "Mining Storage" - icon_state = "mining" - -/area/janitor - name = "Custodial Closet" - icon_state = "janitor" - flags = NONE - -/area/hydroponics - name = "Hydroponics" - icon_state = "hydro" - -/area/hydroponics/garden - name = "Garden" - icon_state = "garden" - -/area/hydroponics/garden/abandoned - name = "Abandoned Garden" - icon_state = "abandoned_garden" - -/area/hydroponics/garden/monastery - name = "Monastery Garden" - icon_state = "hydro" - - -//Science - -/area/science - name = "Science Division" - icon_state = "toxlab" - -/area/science/lab - name = "Research and Development" - icon_state = "toxlab" - -/area/science/xenobiology - name = "Xenobiology Lab" - icon_state = "toxlab" - -/area/science/storage - name = "Toxins Storage" - icon_state = "toxstorage" - -/area/science/mineral_storeroom - name = "Mineral Storeroom" - icon_state = "toxmisc" - -/area/science/test_area - valid_territory = 0 - name = "Toxins Test Area" - icon_state = "toxtest" - -/area/science/mixing - name = "Toxins Mixing Lab" - icon_state = "toxmix" - -/area/science/misc_lab - name = "Testing Lab" - icon_state = "toxmisc" - -/area/science/misc_lab/range - name = "Research Testing Range" - icon_state = "toxmisc" - -/area/science/server - name = "Research Division Server Room" - icon_state = "server" - -/area/science/explab - name = "Experimentation Lab" - icon_state = "toxmisc" - -/area/science/robotics - name = "Robotics" - icon_state = "medresearch" - -/area/science/robotics/mechbay - name = "Mech Bay" - icon_state = "mechbay" - -/area/science/robotics/mechbay_cargo - name = "Mech Bay" - icon_state = "yellow" - -/area/science/robotics/showroom - name = "Robotics Showroom" - icon_state = "showroom" - -/area/science/robotics/lab - name = "Robotics Lab" - icon_state = "ass_line" - -/area/science/research - name = "Research Division" - icon_state = "medresearch" - -/area/science/research/lobby - name = "Research Division Lobby" - icon_state = "medresearch" - -/area/science/research/abandoned - name = "Abandoned Research Lab" - icon_state = "medresearch" - -//Storage - -/area/storage/tools - name = "Auxiliary Tool Storage" - icon_state = "storage" - -/area/storage/primary - name = "Primary Tool Storage" - icon_state = "primarystorage" - -/area/storage/autolathe - name = "Autolathe Storage" - icon_state = "storage" - -/area/storage/art - name = "Art Supply Storage" - icon_state = "storage" - -/area/storage/auxiliary - name = "Auxiliary Storage" - icon_state = "auxstorage" - -/area/storage/atmos - name = "Atmospherics Storage" - icon_state = "atmos" - valid_territory = 0 - -/area/storage/tcom - name = "Telecoms Storage" - icon_state = "green" - valid_territory = 0 - -/area/storage/eva - name = "EVA Storage" - icon_state = "eva" - -/area/storage/secure - name = "Secure Storage" - icon_state = "storage" - -/area/storage/emergency/starboard - name = "Starboard Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/emergency/port - name = "Port Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/tech - name = "Technical Storage" - icon_state = "auxstorage" - -/area/storage/testroom - requires_power = 0 - name = "Test Room" - icon_state = "storage" - - -//Construction - -/area/construction - name = "Construction Area" - icon_state = "yellow" - -/area/construction/minisat_exterior - name = "Minisat Exterior" - icon_state = "yellow" - -/area/construction/mining/aux_base - name = "Auxiliary Base Construction" - icon_state = "yellow" - -/area/construction/mining/aux_base/closet - name = "Auxiliary Closet Construction" - icon_state = "yellow" - -/area/construction/supplyshuttle - name = "Supply Shuttle" - icon_state = "yellow" - -/area/construction/quarters - name = "Engineers' Quarters" - icon_state = "yellow" - -/area/construction/qmaint - name = "Maintenance" - icon_state = "yellow" - -/area/construction/hallway - name = "Hallway" - icon_state = "yellow" - -/area/construction/solars - name = "Solar Panels" - icon_state = "yellow" - -/area/construction/solarscontrol - name = "Solar Panel Control" - icon_state = "yellow" - -/area/construction/storage - name = "Construction Site Storage" - icon_state = "yellow" - -/area/construction/storage/wing - name = "Storage Wing" - icon_state = "storage_wing" - - -//AI +/area/medical/medbay/zone2 + name = "Medbay" + icon_state = "medbay2" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay/zone3 + name = "Medbay" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay/aft + name = "Medbay Aft" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + +/area/medical/storage + name = "Medbay Storage" + icon_state = "medbay2" + music = 'sound/ambience/signal.ogg' + +/area/medical/patients_rooms + name = "Patients' Rooms" + icon_state = "patients" + +/area/medical/patients_rooms/room_a + name = "Patient Room A" + icon_state = "patients" + +/area/medical/patients_rooms/room_b + name = "Patient Room B" + icon_state = "patients" + +/area/medical/virology + name = "Virology" + icon_state = "virology" + flags = NONE + +/area/medical/morgue + name = "Morgue" + icon_state = "morgue" + ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + +/area/medical/chemistry + name = "Chemistry" + icon_state = "chem" + +/area/medical/surgery + name = "Surgery" + icon_state = "surgery" + +/area/medical/cryo + name = "Cryogenics" + icon_state = "cryo" + +/area/medical/exam_room + name = "Exam Room" + icon_state = "exam_room" + +/area/medical/genetics + name = "Genetics Lab" + icon_state = "genetics" + +/area/medical/genetics/cloning + name = "Cloning Lab" + icon_state = "cloning" + +/area/medical/sleeper + name = "Medbay Treatment Center" + icon_state = "exam_room" + + +//Security + +/area/security + name = "Security" + icon_state = "security" + +/area/security/main + name = "Security Office" + icon_state = "security" + +/area/security/brig + name = "Brig" + icon_state = "brig" + +/area/security/courtroom + name = "Courtroom" + icon_state = "courtroom" + +/area/security/prison + name = "Prison Wing" + icon_state = "sec_prison" + +/area/security/processing + name = "Labor Shuttle Dock" + icon_state = "sec_prison" + +/area/security/processing/cremation + name = "Security Crematorium" + icon_state = "sec_prison" + +/area/security/warden + name = "Brig Control" + icon_state = "Warden" + +/area/security/armory + name = "Armory" + icon_state = "armory" + +/area/security/detectives_office + name = "Detective's Office" + icon_state = "detective" + ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') + +/area/security/detectives_office/private_investigators_office + name = "Private Investigator's Office" + icon_state = "detective" + ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') + +/area/security/range + name = "Firing Range" + icon_state = "firingrange" + +/area/security/transfer + name = "Transfer Centre" + icon_state = "execution_room" + +/area/security/nuke_storage + name = "Vault" + icon_state = "nuke_storage" + +/area/ai_monitored/nuke_storage + name = "Vault" + icon_state = "nuke_storage" + +/area/security/checkpoint + name = "Security Checkpoint" + icon_state = "checkpoint1" + +/area/security/checkpoint/checkpoint2 + name = "Security Checkpoint" + icon_state = "security" + +/area/security/checkpoint/supply + name = "Security Post - Cargo Bay" + icon_state = "checkpoint1" + +/area/security/checkpoint/engineering + name = "Security Post - Engineering" + icon_state = "checkpoint1" + +/area/security/checkpoint/medical + name = "Security Post - Medbay" + icon_state = "checkpoint1" + +/area/security/checkpoint/science + name = "Security Post - Science" + icon_state = "checkpoint1" + +/area/security/checkpoint/science/research + name = "Security Post - Research Division" + icon_state = "checkpoint1" + +/area/security/checkpoint/customs + name = "Customs" + icon_state = "bridge" + +/area/security/vacantoffice + name = "Vacant Office" + icon_state = "security" + +/area/security/vacantoffice/a + name = "Vacant Office A" + icon_state = "security" + +/area/security/vacantoffice/b + name = "Vacant Office B" + icon_state = "security" + +/area/quartermaster + name = "Quartermasters" + icon_state = "quart" + +///////////WORK IN PROGRESS////////// + +/area/quartermaster/sorting + name = "Delivery Office" + icon_state = "cargo_delivery" + +/area/quartermaster/warehouse + name = "Warehouse" + icon_state = "cargo_warehouse" + +////////////WORK IN PROGRESS////////// + +/area/quartermaster/office + name = "Cargo Office" + icon_state = "quartoffice" + +/area/quartermaster/storage + name = "Cargo Bay" + icon_state = "cargo_bay" + +/area/quartermaster/qm + name = "Quartermaster's Office" + icon_state = "quart" + +/area/quartermaster/qm/private + name = "Quartermaster's Private Quarters" + icon_state = "quart" + +/area/quartermaster/miningdock + name = "Mining Dock" + icon_state = "mining" + +/area/quartermaster/miningdock/abandoned + name = "Abandoned Mining Dock" + icon_state = "mining" + +/area/quartermaster/miningoffice + name = "Mining Office" + icon_state = "mining" + +/area/quartermaster/miningstorage + name = "Mining Storage" + icon_state = "mining" + +/area/janitor + name = "Custodial Closet" + icon_state = "janitor" + flags = NONE + +/area/hydroponics + name = "Hydroponics" + icon_state = "hydro" + +/area/hydroponics/garden + name = "Garden" + icon_state = "garden" + +/area/hydroponics/garden/abandoned + name = "Abandoned Garden" + icon_state = "abandoned_garden" + +/area/hydroponics/garden/monastery + name = "Monastery Garden" + icon_state = "hydro" + + +//Science + +/area/science + name = "Science Division" + icon_state = "toxlab" + +/area/science/lab + name = "Research and Development" + icon_state = "toxlab" + +/area/science/xenobiology + name = "Xenobiology Lab" + icon_state = "toxlab" + +/area/science/storage + name = "Toxins Storage" + icon_state = "toxstorage" + +/area/science/mineral_storeroom + name = "Mineral Storeroom" + icon_state = "toxmisc" + +/area/science/test_area + valid_territory = 0 + name = "Toxins Test Area" + icon_state = "toxtest" + +/area/science/mixing + name = "Toxins Mixing Lab" + icon_state = "toxmix" + +/area/science/misc_lab + name = "Testing Lab" + icon_state = "toxmisc" + +/area/science/misc_lab/range + name = "Research Testing Range" + icon_state = "toxmisc" + +/area/science/server + name = "Research Division Server Room" + icon_state = "server" + +/area/science/explab + name = "Experimentation Lab" + icon_state = "toxmisc" + +/area/science/robotics + name = "Robotics" + icon_state = "medresearch" + +/area/science/robotics/mechbay + name = "Mech Bay" + icon_state = "mechbay" + +/area/science/robotics/mechbay_cargo + name = "Mech Bay" + icon_state = "yellow" + +/area/science/robotics/showroom + name = "Robotics Showroom" + icon_state = "showroom" + +/area/science/robotics/lab + name = "Robotics Lab" + icon_state = "ass_line" + +/area/science/research + name = "Research Division" + icon_state = "medresearch" + +/area/science/research/lobby + name = "Research Division Lobby" + icon_state = "medresearch" + +/area/science/research/abandoned + name = "Abandoned Research Lab" + icon_state = "medresearch" + +//Storage + +/area/storage/tools + name = "Auxiliary Tool Storage" + icon_state = "storage" + +/area/storage/primary + name = "Primary Tool Storage" + icon_state = "primarystorage" + +/area/storage/autolathe + name = "Autolathe Storage" + icon_state = "storage" + +/area/storage/art + name = "Art Supply Storage" + icon_state = "storage" + +/area/storage/auxiliary + name = "Auxiliary Storage" + icon_state = "auxstorage" + +/area/storage/atmos + name = "Atmospherics Storage" + icon_state = "atmos" + valid_territory = 0 + +/area/storage/tcom + name = "Telecoms Storage" + icon_state = "green" + valid_territory = 0 + +/area/storage/eva + name = "EVA Storage" + icon_state = "eva" + +/area/storage/secure + name = "Secure Storage" + icon_state = "storage" + +/area/storage/emergency/starboard + name = "Starboard Emergency Storage" + icon_state = "emergencystorage" + +/area/storage/emergency/port + name = "Port Emergency Storage" + icon_state = "emergencystorage" + +/area/storage/tech + name = "Technical Storage" + icon_state = "auxstorage" + +/area/storage/testroom + requires_power = 0 + name = "Test Room" + icon_state = "storage" + + +//Construction + +/area/construction + name = "Construction Area" + icon_state = "yellow" + +/area/construction/minisat_exterior + name = "Minisat Exterior" + icon_state = "yellow" + +/area/construction/mining/aux_base + name = "Auxiliary Base Construction" + icon_state = "yellow" + +/area/construction/mining/aux_base/closet + name = "Auxiliary Closet Construction" + icon_state = "yellow" + +/area/construction/supplyshuttle + name = "Supply Shuttle" + icon_state = "yellow" + +/area/construction/quarters + name = "Engineers' Quarters" + icon_state = "yellow" + +/area/construction/qmaint + name = "Maintenance" + icon_state = "yellow" + +/area/construction/hallway + name = "Hallway" + icon_state = "yellow" + +/area/construction/solars + name = "Solar Panels" + icon_state = "yellow" + +/area/construction/solarscontrol + name = "Solar Panel Control" + icon_state = "yellow" + +/area/construction/storage + name = "Construction Site Storage" + icon_state = "yellow" + +/area/construction/storage/wing + name = "Storage Wing" + icon_state = "storage_wing" + + +//AI + +/area/ai_monitored/security/armory + name = "Armory" + icon_state = "armory" + +/area/ai_monitored/storage/eva + name = "EVA Storage" + icon_state = "eva" + +/area/ai_monitored/storage/secure + name = "AI Satellite Storage" + icon_state = "storage" + +/area/ai_monitored/storage/emergency + name = "Emergency Storage" + icon_state = "storage" + +/area/ai_monitored/storage/satellite + name = "AI Satellite Maint" + icon_state = "storage" -/area/ai_monitored/security/armory - name = "Armory" - icon_state = "armory" - -/area/ai_monitored/storage/eva - name = "EVA Storage" - icon_state = "eva" - -/area/ai_monitored/storage/secure - name = "AI Satellite Storage" - icon_state = "storage" - -/area/ai_monitored/storage/emergency - name = "Emergency Storage" - icon_state = "storage" - -/area/ai_monitored/storage/satellite - name = "AI Satellite Maint" - icon_state = "storage" - //Turret_protected - -/area/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambimalf.ogg') - -/area/ai_monitored/turret_protected/ai_upload - name = "AI Upload Chamber" - icon_state = "ai_upload" - -/area/ai_monitored/turret_protected/ai_upload_foyer - name = "AI Upload Access" - icon_state = "ai_foyer" - -/area/ai_monitored/turret_protected/ai - name = "AI Chamber" - icon_state = "ai_chamber" - -/area/ai_monitored/turret_protected/aisat - name = "AI Satellite" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/atmos - name = "AI Satellite Atmos" - icon_state = "ai" - + +/area/ai_monitored/turret_protected + ambientsounds = list('sound/ambience/ambimalf.ogg') + +/area/ai_monitored/turret_protected/ai_upload + name = "AI Upload Chamber" + icon_state = "ai_upload" + +/area/ai_monitored/turret_protected/ai_upload_foyer + name = "AI Upload Access" + icon_state = "ai_foyer" + +/area/ai_monitored/turret_protected/ai + name = "AI Chamber" + icon_state = "ai_chamber" + +/area/ai_monitored/turret_protected/aisat + name = "AI Satellite" + icon_state = "ai" + +/area/ai_monitored/turret_protected/aisat/atmos + name = "AI Satellite Atmos" + icon_state = "ai" + /area/ai_monitored/turret_protected/aisat/foyer name = "AI Satellite Foyer" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/service - name = "AI Satellite Service" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/hallway - name = "AI Satellite Hallway" - icon_state = "ai" - -/area/aisat - name = "AI Satellite Exterior" - icon_state = "yellow" - -/area/ai_monitored/turret_protected/aisat_interior - name = "AI Satellite Antechamber" - icon_state = "ai" - -/area/ai_monitored/turret_protected/AIsatextFP - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/AIsatextFS - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/AIsatextAS - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/AIsatextAP - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/NewAIMain - name = "AI Main New" - icon_state = "storage" - - - -// Telecommunications Satellite - -/area/tcommsat - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') - -/area/tcommsat/entrance - name = "Telecoms Teleporter" - icon_state = "tcomsatentrance" - -/area/tcommsat/chamber - name = "Abandoned Satellite" - icon_state = "tcomsatcham" - -/area/ai_monitored/turret_protected/tcomsat - name = "Telecoms Satellite" - icon_state = "tcomsatlob" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') - -/area/ai_monitored/turret_protected/tcomfoyer - name = "Telecoms Foyer" - icon_state = "tcomsatentrance" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') - -/area/ai_monitored/turret_protected/tcomwest - name = "Telecommunications Satellite West Wing" - icon_state = "tcomsatwest" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') - -/area/ai_monitored/turret_protected/tcomeast - name = "Telecommunications Satellite East Wing" - icon_state = "tcomsateast" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') - -/area/tcommsat/computer - name = "Telecoms Control Room" - icon_state = "tcomsatcomp" - -/area/tcommsat/server - name = "Telecoms Server Room" - icon_state = "tcomsatcham" - -/area/tcommsat/lounge - name = "Telecommunications Satellite Lounge" - icon_state = "tcomsatlounge" - -///////////////////////////////////////////////////////////////////// -/* - Lists of areas to be used with is_type_in_list. - Used in gamemodes code at the moment. --rastaf0 -*/ - -//SPACE STATION 13 -GLOBAL_LIST_INIT(the_station_areas, list ( + icon_state = "ai" + +/area/ai_monitored/turret_protected/aisat/service + name = "AI Satellite Service" + icon_state = "ai" + +/area/ai_monitored/turret_protected/aisat/hallway + name = "AI Satellite Hallway" + icon_state = "ai" + +/area/aisat + name = "AI Satellite Exterior" + icon_state = "yellow" + +/area/ai_monitored/turret_protected/aisat_interior + name = "AI Satellite Antechamber" + icon_state = "ai" + +/area/ai_monitored/turret_protected/AIsatextFP + name = "AI Sat Ext" + icon_state = "storage" + +/area/ai_monitored/turret_protected/AIsatextFS + name = "AI Sat Ext" + icon_state = "storage" + +/area/ai_monitored/turret_protected/AIsatextAS + name = "AI Sat Ext" + icon_state = "storage" + +/area/ai_monitored/turret_protected/AIsatextAP + name = "AI Sat Ext" + icon_state = "storage" + +/area/ai_monitored/turret_protected/NewAIMain + name = "AI Main New" + icon_state = "storage" + + + +// Telecommunications Satellite + +/area/tcommsat + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/tcommsat/entrance + name = "Telecoms Teleporter" + icon_state = "tcomsatentrance" + +/area/tcommsat/chamber + name = "Abandoned Satellite" + icon_state = "tcomsatcham" + +/area/ai_monitored/turret_protected/tcomsat + name = "Telecoms Satellite" + icon_state = "tcomsatlob" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomfoyer + name = "Telecoms Foyer" + icon_state = "tcomsatentrance" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomwest + name = "Telecommunications Satellite West Wing" + icon_state = "tcomsatwest" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomeast + name = "Telecommunications Satellite East Wing" + icon_state = "tcomsateast" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/tcommsat/computer + name = "Telecoms Control Room" + icon_state = "tcomsatcomp" + +/area/tcommsat/server + name = "Telecoms Server Room" + icon_state = "tcomsatcham" + +/area/tcommsat/lounge + name = "Telecommunications Satellite Lounge" + icon_state = "tcomsatlounge" + +///////////////////////////////////////////////////////////////////// +/* + Lists of areas to be used with is_type_in_list. + Used in gamemodes code at the moment. --rastaf0 +*/ + +//SPACE STATION 13 +GLOBAL_LIST_INIT(the_station_areas, list ( /area/assembly, /area/bridge, /area/chapel, @@ -1477,17 +1477,17 @@ GLOBAL_LIST_INIT(the_station_areas, list ( /area/library, /area/maintenance, /area/medical, -// /area/mint, //not present on map +// /area/mint, //not present on map /area/quartermaster, /area/science, /area/security, /area/solar, /area/storage, /area/teleporter, - /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 -// /area/ai_monitored/storage/secure, //not present on map -// /area/ai_monitored/storage/emergency, //not present on map - /area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0 - /area/ai_monitored/turret_protected/ai_upload_foyer, - /area/ai_monitored/turret_protected/ai, + /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 +// /area/ai_monitored/storage/secure, //not present on map +// /area/ai_monitored/storage/emergency, //not present on map + /area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0 + /area/ai_monitored/turret_protected/ai_upload_foyer, + /area/ai_monitored/turret_protected/ai, )) \ No newline at end of file diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm index 05aa74df27..7c4a043610 100644 --- a/code/game/area/areas/misc.dm +++ b/code/game/area/areas/misc.dm @@ -118,11 +118,7 @@ /area/prison/execution_room name = "Prisoner Education Chamber" - icon_state = "armory" - -/area/prison/execution_room - name = "Prisoner Education Chamber" - icon_state = "armory" + icon_state = "execution_room" /area/prison/cell_block/a // /area/prison/cell_block/A diff --git a/code/game/area/areas/ruins.dm b/code/game/area/areas/ruins.dm index f9d8e4884f..80129359db 100644 --- a/code/game/area/areas/ruins.dm +++ b/code/game/area/areas/ruins.dm @@ -272,6 +272,10 @@ power_light = 0 poweralm = 0 +//ash walker nest +/area/ruin/unpowered/ash_walkers + icon_state = "red" + //Ruin of ancient Space Station /area/ruin/ancientstation diff --git a/code/game/atoms.dm b/code/game/atoms.dm index ae7bad7855..e0b4c0b351 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,190 +1,197 @@ -/atom - layer = TURF_LAYER - plane = GAME_PLANE - var/level = 2 - - var/flags = 0 - var/list/secondary_flags - - var/list/fingerprints - var/list/fingerprintshidden - var/list/blood_DNA - var/container_type = 0 - var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. - var/datum/reagents/reagents = null - - //This atom's HUD (med/sec, etc) images. Associative list. - var/list/image/hud_list = null - //HUD images that this atom can provide. - var/list/hud_possible - - //Value used to increment ex_act() if reactionary_explosions is on - var/explosion_block = 0 - - var/list/atom_colours //used to store the different colors on an atom - //its inherent color, the colored paint applied on it, special color effect etc... - var/initialized = FALSE - - var/list/our_overlays //our local copy of (non-priority) overlays without byond magic. Use procs in SSoverlays to manipulate - var/list/priority_overlays //overlays that should remain on top and not normally removed when using cut_overlay functions, like c4. - - var/datum/proximity_monitor/proximity_monitor - -/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() - GLOB._preloader.load(src) - - //. = ..() //uncomment if you are dumb enough to add a /datum/New() proc - - var/do_initialize = SSatoms.initialized - if(do_initialize > INITIALIZATION_INSSATOMS) - args[1] = do_initialize == INITIALIZATION_INNEW_MAPLOAD - if(SSatoms.InitAtom(src, args)) - //we were deleted - return - - var/list/created = SSatoms.created_atoms - if(created) - created += src - -//Called after New if the map is being loaded. mapload = TRUE +/atom + layer = TURF_LAYER + plane = GAME_PLANE + var/level = 2 + + var/flags = 0 + var/list/secondary_flags + + var/list/fingerprints + var/list/fingerprintshidden + var/list/blood_DNA + var/container_type = 0 + var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. + var/datum/reagents/reagents = null + + //This atom's HUD (med/sec, etc) images. Associative list. + var/list/image/hud_list = null + //HUD images that this atom can provide. + var/list/hud_possible + + //Value used to increment ex_act() if reactionary_explosions is on + var/explosion_block = 0 + + var/list/atom_colours //used to store the different colors on an atom + //its inherent color, the colored paint applied on it, special color effect etc... + var/initialized = FALSE + + var/list/our_overlays //our local copy of (non-priority) overlays without byond magic. Use procs in SSoverlays to manipulate + var/list/priority_overlays //overlays that should remain on top and not normally removed when using cut_overlay functions, like c4. + + var/datum/proximity_monitor/proximity_monitor + +/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() + GLOB._preloader.load(src) + + //. = ..() //uncomment if you are dumb enough to add a /datum/New() proc + + var/do_initialize = SSatoms.initialized + if(do_initialize > INITIALIZATION_INSSATOMS) + args[1] = do_initialize == INITIALIZATION_INNEW_MAPLOAD + if(SSatoms.InitAtom(src, args)) + //we were deleted + return + + var/list/created = SSatoms.created_atoms + if(created) + created += src + +//Called after New if the map is being loaded. mapload = TRUE //Called from base of New if the map is not being loaded. mapload = FALSE -//This base must be called or derivatives must set initialized to TRUE -//must not sleep -//Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE -//Must return an Initialize hint. Defined in __DEFINES/subsystems.dm - -//Note: the following functions don't call the base for optimization and must copypasta: -// /turf/Initialize -// /turf/open/space/Initialize -// /mob/dead/new_player/Initialize - -//Do also note that this proc always runs in New for /mob/dead -/atom/proc/Initialize(mapload, ...) - if(initialized) - stack_trace("Warning: [src]([type]) initialized multiple times!") - initialized = TRUE - - //atom color stuff - if(color) - add_atom_colour(color, FIXED_COLOUR_PRIORITY) - - if (light_power && light_range) - update_light() - - if (opacity && isturf(loc)) - var/turf/T = loc - T.has_opaque_atom = TRUE // No need to recalculate it in this case, it's guaranteed to be on afterwards anyways. - return INITIALIZE_HINT_NORMAL - -//called if Initialize returns INITIALIZE_HINT_LATELOAD -/atom/proc/LateInitialize() +//This base must be called or derivatives must set initialized to TRUE +//must not sleep +//Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE +//Must return an Initialize hint. Defined in __DEFINES/subsystems.dm + +//Note: the following functions don't call the base for optimization and must copypasta: +// /turf/Initialize +// /turf/open/space/Initialize +// /mob/dead/new_player/Initialize + +//Do also note that this proc always runs in New for /mob/dead +/atom/proc/Initialize(mapload, ...) + if(initialized) + stack_trace("Warning: [src]([type]) initialized multiple times!") + initialized = TRUE + + //atom color stuff + if(color) + add_atom_colour(color, FIXED_COLOUR_PRIORITY) + + if (light_power && light_range) + update_light() + + if (opacity && isturf(loc)) + var/turf/T = loc + T.has_opaque_atom = TRUE // No need to recalculate it in this case, it's guaranteed to be on afterwards anyways. + return INITIALIZE_HINT_NORMAL + +//called if Initialize returns INITIALIZE_HINT_LATELOAD +/atom/proc/LateInitialize() return - -/atom/Destroy() - if(alternate_appearances) - for(var/K in alternate_appearances) - var/datum/atom_hud/alternate_appearance/AA = alternate_appearances[K] - AA.remove_from_hud(src) - - if(reagents) - qdel(reagents) - - LAZYCLEARLIST(overlays) - LAZYCLEARLIST(priority_overlays) - //SSoverlays.processing -= src //we COULD do this, but it's better to just let it fall out of the processing queue - - QDEL_NULL(light) - - return ..() - -/atom/proc/handle_ricochet(obj/item/projectile/P) - return - -/atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5) - return (!density || !height) - -/atom/proc/onCentcom() - var/turf/T = get_turf(src) - if(!T) - return 0 - - if(T.z != ZLEVEL_CENTCOM)//if not, don't bother - return 0 - - //check for centcomm shuttles - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_LAUNCHED && T in M.areaInstance) - return 1 - - //finally check for centcom itself - return istype(T.loc,/area/centcom) - -/atom/proc/onSyndieBase() - var/turf/T = get_turf(src) - if(!T) - return 0 - - if(T.z != ZLEVEL_CENTCOM)//if not, don't bother - return 0 - - if(istype(T.loc,/area/shuttle/syndicate) || istype(T.loc,/area/syndicate_mothership)) - return 1 - - return 0 - -/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) - if(does_attack_animation) - user.changeNext_move(CLICK_CD_MELEE) - add_logs(user, src, "punched", "hulk powers") - user.do_attack_animation(src, ATTACK_EFFECT_SMASH) - -/atom/proc/CheckParts(list/parts_list) - for(var/A in parts_list) - if(istype(A, /datum/reagent)) - if(!reagents) - reagents = new() - reagents.reagent_list.Add(A) - reagents.conditional_update() - else if(istype(A, /atom/movable)) - var/atom/movable/M = A - if(isliving(M.loc)) - var/mob/living/L = M.loc - L.transferItemToLoc(M, src) - else - M.forceMove(src) - -/atom/proc/assume_air(datum/gas_mixture/giver) - qdel(giver) - return null - -/atom/proc/remove_air(amount) - return null - -/atom/proc/return_air() - if(loc) - return loc.return_air() - else - return null - -/atom/proc/check_eye(mob/user) - return - - -/atom/proc/Bumped(AM as mob|obj) - return - -// Convenience proc to see if a container is open for chemistry handling -// returns true if open -// false if closed -/atom/proc/is_open_container() - return container_type & OPENCONTAINER - -/atom/proc/is_transparent() - return container_type & TRANSPARENT - + +/atom/Destroy() + if(alternate_appearances) + for(var/K in alternate_appearances) + var/datum/atom_hud/alternate_appearance/AA = alternate_appearances[K] + AA.remove_from_hud(src) + + if(reagents) + qdel(reagents) + + LAZYCLEARLIST(overlays) + LAZYCLEARLIST(priority_overlays) + //SSoverlays.processing -= src //we COULD do this, but it's better to just let it fall out of the processing queue + + QDEL_NULL(light) + + return ..() + +/atom/proc/handle_ricochet(obj/item/projectile/P) + return + +/atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5) + return (!density || !height) + +/atom/proc/onCentcom() + var/turf/T = get_turf(src) + if(!T) + return FALSE + + + if(T.z == ZLEVEL_TRANSIT) + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == ENDGAME_TRANSIT && T in M.areaInstance) + return TRUE + + if(T.z != ZLEVEL_CENTCOM)//if not, don't bother + return FALSE + + //check for centcomm shuttles + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == ENDGAME_LAUNCHED && T in M.areaInstance) + return TRUE + + //finally check for centcom itself + return istype(T.loc,/area/centcom) + +/atom/proc/onSyndieBase() + var/turf/T = get_turf(src) + if(!T) + return 0 + + if(T.z != ZLEVEL_CENTCOM)//if not, don't bother + return 0 + + if(istype(T.loc,/area/shuttle/syndicate) || istype(T.loc,/area/syndicate_mothership)) + return 1 + + return 0 + +/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(does_attack_animation) + user.changeNext_move(CLICK_CD_MELEE) + add_logs(user, src, "punched", "hulk powers") + user.do_attack_animation(src, ATTACK_EFFECT_SMASH) + +/atom/proc/CheckParts(list/parts_list) + for(var/A in parts_list) + if(istype(A, /datum/reagent)) + if(!reagents) + reagents = new() + reagents.reagent_list.Add(A) + reagents.conditional_update() + else if(ismovableatom(A)) + var/atom/movable/M = A + if(isliving(M.loc)) + var/mob/living/L = M.loc + L.transferItemToLoc(M, src) + else + M.forceMove(src) + +/atom/proc/assume_air(datum/gas_mixture/giver) + qdel(giver) + return null + +/atom/proc/remove_air(amount) + return null + +/atom/proc/return_air() + if(loc) + return loc.return_air() + else + return null + +/atom/proc/check_eye(mob/user) + return + + +/atom/proc/Bumped(AM as mob|obj) + return + +// Convenience proc to see if a container is open for chemistry handling +// returns true if open +// false if closed +/atom/proc/is_open_container() + return container_type & OPENCONTAINER + +/atom/proc/is_transparent() + return container_type & TRANSPARENT + /atom/proc/is_injectable(allowmobs = TRUE) if(isliving(src) && allowmobs) var/mob/living/L = src @@ -198,402 +205,402 @@ return TRUE return container_type & DRAWABLE -/atom/proc/allow_drop() - return 1 - -/atom/proc/CheckExit() - return 1 - -/atom/proc/HasProximity(atom/movable/AM as mob|obj) - return - -/atom/proc/emp_act(severity) - if(istype(wires) && !HAS_SECONDARY_FLAG(src, NO_EMP_WIRES)) - wires.emp_pulse() - -/atom/proc/bullet_act(obj/item/projectile/P, def_zone) - . = P.on_hit(src, 0, def_zone) - -/atom/proc/in_contents_of(container)//can take class or object instance as argument - if(ispath(container)) - if(istype(src.loc, container)) - return 1 - else if(src in container) - return 1 - -/* - * atom/proc/search_contents_for(path,list/filter_path=null) - * Recursevly searches all atom contens (including contents contents and so on). - * - * ARGS: path - search atom contents for atoms of this type - * list/filter_path - if set, contents of atoms not of types in this list are excluded from search. - * - * RETURNS: list of found atoms - */ - -/atom/proc/search_contents_for(path,list/filter_path=null) - var/list/found = list() - for(var/atom/A in src) - if(istype(A, path)) - found += A - if(filter_path) - var/pass = 0 - for(var/type in filter_path) - pass |= istype(A, type) - if(!pass) - continue - if(A.contents.len) - found += A.search_contents_for(path,filter_path) - return found - - -/atom/proc/examine(mob/user) - //This reformat names to get a/an properly working on item descriptions when they are bloody - var/f_name = "\a [src]." - if(src.blood_DNA && !istype(src, /obj/effect/decal)) - if(gender == PLURAL) - f_name = "some " - else - f_name = "a " - f_name += "blood-stained [name]!" - +/atom/proc/allow_drop() + return 1 + +/atom/proc/CheckExit() + return 1 + +/atom/proc/HasProximity(atom/movable/AM as mob|obj) + return + +/atom/proc/emp_act(severity) + if(istype(wires) && !HAS_SECONDARY_FLAG(src, NO_EMP_WIRES)) + wires.emp_pulse() + +/atom/proc/bullet_act(obj/item/projectile/P, def_zone) + . = P.on_hit(src, 0, def_zone) + +/atom/proc/in_contents_of(container)//can take class or object instance as argument + if(ispath(container)) + if(istype(src.loc, container)) + return 1 + else if(src in container) + return 1 + +/* + * atom/proc/search_contents_for(path,list/filter_path=null) + * Recursevly searches all atom contens (including contents contents and so on). + * + * ARGS: path - search atom contents for atoms of this type + * list/filter_path - if set, contents of atoms not of types in this list are excluded from search. + * + * RETURNS: list of found atoms + */ + +/atom/proc/search_contents_for(path,list/filter_path=null) + var/list/found = list() + for(var/atom/A in src) + if(istype(A, path)) + found += A + if(filter_path) + var/pass = 0 + for(var/type in filter_path) + pass |= istype(A, type) + if(!pass) + continue + if(A.contents.len) + found += A.search_contents_for(path,filter_path) + return found + + +/atom/proc/examine(mob/user) + //This reformat names to get a/an properly working on item descriptions when they are bloody + var/f_name = "\a [src]." + if(src.blood_DNA && !istype(src, /obj/effect/decal)) + if(gender == PLURAL) + f_name = "some " + else + f_name = "a " + f_name += "blood-stained [name]!" + to_chat(user, "[bicon(src)] That's [f_name]") - - if(desc) - to_chat(user, desc) - // *****RM - //to_chat(user, "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]") - - if(reagents && (is_open_container() || is_transparent())) //is_open_container() isn't really the right proc for this, but w/e - to_chat(user, "It contains:") - if(reagents.reagent_list.len) - if(user.can_see_reagents()) //Show each individual reagent - for(var/datum/reagent/R in reagents.reagent_list) - to_chat(user, "[R.volume] units of [R.name]") - else //Otherwise, just show the total volume - var/total_volume = 0 - for(var/datum/reagent/R in reagents.reagent_list) - total_volume += R.volume - to_chat(user, "[total_volume] units of various reagents") - else - to_chat(user, "Nothing.") - -/atom/proc/relaymove() - return - -/atom/proc/contents_explosion(severity, target) - return - -/atom/proc/ex_act(severity, target) - set waitfor = FALSE - contents_explosion(severity, target) - -/atom/proc/blob_act(obj/structure/blob/B) - return - -/atom/proc/fire_act(exposed_temperature, exposed_volume) - return - -/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked) - 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) - -/atom/proc/hitby_react(atom/movable/AM) - if(AM && isturf(AM.loc)) - step(AM, turn(AM.dir, 180)) - -GLOBAL_LIST_EMPTY(blood_splatter_icons) - -/atom/proc/blood_splatter_index() - return "\ref[initial(icon)]-[initial(icon_state)]" - -//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list -/mob/living/proc/get_blood_dna_list() - if(get_blood_id() != "blood") - return - return list("ANIMAL DNA" = "Y-") - -/mob/living/carbon/get_blood_dna_list() - if(get_blood_id() != "blood") - return - var/list/blood_dna = list() - if(dna) - blood_dna[dna.unique_enzymes] = dna.blood_type - else - blood_dna["UNKNOWN DNA"] = "X*" - return blood_dna - -/mob/living/carbon/alien/get_blood_dna_list() - return list("UNKNOWN DNA" = "X*") - -//to add a mob's dna info into an object's blood_DNA list. -/atom/proc/transfer_mob_blood_dna(mob/living/L) - // Returns 0 if we have that blood already - var/new_blood_dna = L.get_blood_dna_list() - if(!new_blood_dna) - return 0 - if(!blood_DNA) //if our list of DNA doesn't exist yet, initialise it. - blood_DNA = list() - var/old_length = blood_DNA.len - blood_DNA |= new_blood_dna - if(blood_DNA.len == old_length) - return 0 - return 1 - -//to add blood dna info to the object's blood_DNA list -/atom/proc/transfer_blood_dna(list/blood_dna) - if(!blood_DNA) - blood_DNA = list() - var/old_length = blood_DNA.len - blood_DNA |= blood_dna - if(blood_DNA.len > old_length) - return 1//some new blood DNA was added - - -//to add blood from a mob onto something, and transfer their dna info -/atom/proc/add_mob_blood(mob/living/M) - var/list/blood_dna = M.get_blood_dna_list() - if(!blood_dna) - return 0 - return add_blood(blood_dna) - -//to add blood onto something, with blood dna info to include. -/atom/proc/add_blood(list/blood_dna) - return 0 - -/obj/add_blood(list/blood_dna) - return transfer_blood_dna(blood_dna) - -/obj/item/add_blood(list/blood_dna) - var/blood_count = !blood_DNA ? 0 : blood_DNA.len - if(!..()) - return 0 - if(!blood_count)//apply the blood-splatter overlay if it isn't already in there - add_blood_overlay() - return 1 //we applied blood to the item - -/obj/item/proc/add_blood_overlay() - if(initial(icon) && initial(icon_state)) - //try to find a pre-processed blood-splatter. otherwise, make a new one - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(!blood_splatter_icon) - blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object - blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) - blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant - blood_splatter_icon = fcopy_rsc(blood_splatter_icon) - GLOB.blood_splatter_icons[index] = blood_splatter_icon - add_overlay(blood_splatter_icon) - -/obj/item/clothing/gloves/add_blood(list/blood_dna) - . = ..() - transfer_blood = rand(2, 4) - -/turf/add_blood(list/blood_dna) - var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src - if(!B) - B = new /obj/effect/decal/cleanable/blood/splatter(src) - B.transfer_blood_dna(blood_dna) //give blood info to the blood decal. - return 1 //we bloodied the floor - -/mob/living/carbon/human/add_blood(list/blood_dna) - if(wear_suit) - wear_suit.add_blood(blood_dna) - update_inv_wear_suit() - else if(w_uniform) - w_uniform.add_blood(blood_dna) - update_inv_w_uniform() - if(gloves) - var/obj/item/clothing/gloves/G = gloves - G.add_blood(blood_dna) - else - transfer_blood_dna(blood_dna) - bloody_hands = rand(2, 4) - update_inv_gloves() //handles bloody hands overlays and updating - return 1 - -/atom/proc/clean_blood() - if(istype(blood_DNA, /list)) - blood_DNA = null - return 1 - -/atom/proc/wash_cream() - return 1 - -/atom/proc/get_global_map_pos() - if(!islist(GLOB.global_map) || isemptylist(GLOB.global_map)) return - var/cur_x = null - var/cur_y = null - var/list/y_arr = null - for(cur_x=1,cur_x<=GLOB.global_map.len,cur_x++) - y_arr = GLOB.global_map[cur_x] - cur_y = y_arr.Find(src.z) - if(cur_y) - break -// to_chat(world, "X = [cur_x]; Y = [cur_y]") - if(cur_x && cur_y) - return list("x"=cur_x,"y"=cur_y) - else - return 0 - -/atom/proc/isinspace() - if(isspaceturf(get_turf(src))) - return 1 - else - return 0 - -/atom/proc/handle_fall() - return - -/atom/proc/handle_slip() - return - -/atom/proc/singularity_act() - return - -/atom/proc/singularity_pull() - return - -/atom/proc/acid_act(acidpwr, acid_volume) - return - -/atom/proc/emag_act() - return - -/atom/proc/narsie_act() - return - -/atom/proc/ratvar_act() - return - -/atom/proc/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) - return FALSE - -/atom/proc/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) - return FALSE - -/atom/proc/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) - return 0 - -//This proc is called on the location of an atom when the atom is Destroy()'d -/atom/proc/handle_atom_del(atom/A) - -//called when the turf the atom resides on is ChangeTurfed -/atom/proc/HandleTurfChange(turf/T) - for(var/a in src) - var/atom/A = a - 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) -/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) -/atom/proc/update_remote_sight(mob/living/user) - return - -/atom/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) - if(isturf(src)) - var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src) - // Make toxins vomit look different - if(toxvomit) - V.icon_state = "vomittox_[pick(1,4)]" - if(M.reagents) - clear_reagents_to_vomit_pool(M,V) - -/atom/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) - M.reagents.trans_to(V, M.reagents.total_volume / 10) - for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food - if(istype(R, /datum/reagent/consumable)) - var/datum/reagent/consumable/nutri_check = R - if(nutri_check.nutriment_factor >0) - M.reagents.remove_reagent(R.id,R.volume) - - -//Hook for running code when a dir change occurs -/atom/proc/setDir(newdir) - dir = newdir - -/atom/proc/mech_melee_attack(obj/mecha/M) - return - -//If a mob logouts/logins in side of an object you can use this proc -/atom/proc/on_log(login) - if(loc) - loc.on_log(login) - - -/* - Atom Colour Priority System - A System that gives finer control over which atom colour to colour the atom with. - The "highest priority" one is always displayed as opposed to the default of - "whichever was set last is displayed" -*/ - - -/* - Adds an instance of colour_type to the atom's atom_colours list -*/ -/atom/proc/add_atom_colour(coloration, colour_priority) - if(!atom_colours || !atom_colours.len) - atom_colours = list() - atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. - if(!coloration) - return - if(colour_priority > atom_colours.len) - return - atom_colours[colour_priority] = coloration - update_atom_colour() - - -/* - Removes an instance of colour_type from the atom's atom_colours list -*/ -/atom/proc/remove_atom_colour(colour_priority, coloration) - if(!atom_colours) - atom_colours = list() - atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. - if(colour_priority > atom_colours.len) - return - if(coloration && atom_colours[colour_priority] != coloration) - return //if we don't have the expected color (for a specific priority) to remove, do nothing - atom_colours[colour_priority] = null - update_atom_colour() - - -/* - Resets the atom's color to null, and then sets it to the highest priority - colour available -*/ -/atom/proc/update_atom_colour() - if(!atom_colours) - atom_colours = list() - atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. - color = null - for(var/C in atom_colours) - if(islist(C)) - var/list/L = C - if(L.len) - color = L - return - else if(C) - color = C - return - -/atom/vv_edit_var(var_name, var_value) - if(!GLOB.Debug2) - admin_spawned = TRUE - . = ..() - switch(var_name) - if("color") - add_atom_colour(color, ADMIN_COLOUR_PRIORITY) - -/atom/vv_get_dropdown() - . = ..() - . += "---" - var/turf/curturf = get_turf(src) - if (curturf) - .["Jump to"] = "?_src_=holder;adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]" - .["Add reagent"] = "?_src_=vars;addreagent=\ref[src]" - .["Trigger EM pulse"] = "?_src_=vars;emp=\ref[src]" - .["Trigger explosion"] = "?_src_=vars;explode=\ref[src]" + + if(desc) + to_chat(user, desc) + // *****RM + //to_chat(user, "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]") + + if(reagents && (is_open_container() || is_transparent())) //is_open_container() isn't really the right proc for this, but w/e + to_chat(user, "It contains:") + if(reagents.reagent_list.len) + if(user.can_see_reagents()) //Show each individual reagent + for(var/datum/reagent/R in reagents.reagent_list) + to_chat(user, "[R.volume] units of [R.name]") + else //Otherwise, just show the total volume + var/total_volume = 0 + for(var/datum/reagent/R in reagents.reagent_list) + total_volume += R.volume + to_chat(user, "[total_volume] units of various reagents") + else + to_chat(user, "Nothing.") + +/atom/proc/relaymove() + return + +/atom/proc/contents_explosion(severity, target) + return + +/atom/proc/ex_act(severity, target) + set waitfor = FALSE + contents_explosion(severity, target) + +/atom/proc/blob_act(obj/structure/blob/B) + return + +/atom/proc/fire_act(exposed_temperature, exposed_volume) + return + +/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked) + 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) + +/atom/proc/hitby_react(atom/movable/AM) + if(AM && isturf(AM.loc)) + step(AM, turn(AM.dir, 180)) + +GLOBAL_LIST_EMPTY(blood_splatter_icons) + +/atom/proc/blood_splatter_index() + return "\ref[initial(icon)]-[initial(icon_state)]" + +//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list +/mob/living/proc/get_blood_dna_list() + if(get_blood_id() != "blood") + return + return list("ANIMAL DNA" = "Y-") + +/mob/living/carbon/get_blood_dna_list() + if(get_blood_id() != "blood") + return + var/list/blood_dna = list() + if(dna) + blood_dna[dna.unique_enzymes] = dna.blood_type + else + blood_dna["UNKNOWN DNA"] = "X*" + return blood_dna + +/mob/living/carbon/alien/get_blood_dna_list() + return list("UNKNOWN DNA" = "X*") + +//to add a mob's dna info into an object's blood_DNA list. +/atom/proc/transfer_mob_blood_dna(mob/living/L) + // Returns 0 if we have that blood already + var/new_blood_dna = L.get_blood_dna_list() + if(!new_blood_dna) + return 0 + if(!blood_DNA) //if our list of DNA doesn't exist yet, initialise it. + blood_DNA = list() + var/old_length = blood_DNA.len + blood_DNA |= new_blood_dna + if(blood_DNA.len == old_length) + return 0 + return 1 + +//to add blood dna info to the object's blood_DNA list +/atom/proc/transfer_blood_dna(list/blood_dna) + if(!blood_DNA) + blood_DNA = list() + var/old_length = blood_DNA.len + blood_DNA |= blood_dna + if(blood_DNA.len > old_length) + return 1//some new blood DNA was added + + +//to add blood from a mob onto something, and transfer their dna info +/atom/proc/add_mob_blood(mob/living/M) + var/list/blood_dna = M.get_blood_dna_list() + if(!blood_dna) + return 0 + return add_blood(blood_dna) + +//to add blood onto something, with blood dna info to include. +/atom/proc/add_blood(list/blood_dna) + return 0 + +/obj/add_blood(list/blood_dna) + return transfer_blood_dna(blood_dna) + +/obj/item/add_blood(list/blood_dna) + var/blood_count = !blood_DNA ? 0 : blood_DNA.len + if(!..()) + return 0 + if(!blood_count)//apply the blood-splatter overlay if it isn't already in there + add_blood_overlay() + return 1 //we applied blood to the item + +/obj/item/proc/add_blood_overlay() + if(initial(icon) && initial(icon_state)) + //try to find a pre-processed blood-splatter. otherwise, make a new one + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] + if(!blood_splatter_icon) + blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object + blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant + blood_splatter_icon = fcopy_rsc(blood_splatter_icon) + GLOB.blood_splatter_icons[index] = blood_splatter_icon + add_overlay(blood_splatter_icon) + +/obj/item/clothing/gloves/add_blood(list/blood_dna) + . = ..() + transfer_blood = rand(2, 4) + +/turf/add_blood(list/blood_dna) + var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src + if(!B) + B = new /obj/effect/decal/cleanable/blood/splatter(src) + B.transfer_blood_dna(blood_dna) //give blood info to the blood decal. + return 1 //we bloodied the floor + +/mob/living/carbon/human/add_blood(list/blood_dna) + if(wear_suit) + wear_suit.add_blood(blood_dna) + update_inv_wear_suit() + else if(w_uniform) + w_uniform.add_blood(blood_dna) + update_inv_w_uniform() + if(gloves) + var/obj/item/clothing/gloves/G = gloves + G.add_blood(blood_dna) + else + transfer_blood_dna(blood_dna) + bloody_hands = rand(2, 4) + update_inv_gloves() //handles bloody hands overlays and updating + return 1 + +/atom/proc/clean_blood() + if(islist(blood_DNA)) + blood_DNA = null + return 1 + +/atom/proc/wash_cream() + return 1 + +/atom/proc/get_global_map_pos() + if(!islist(GLOB.global_map) || isemptylist(GLOB.global_map)) return + var/cur_x = null + var/cur_y = null + var/list/y_arr = null + for(cur_x=1,cur_x<=GLOB.global_map.len,cur_x++) + y_arr = GLOB.global_map[cur_x] + cur_y = y_arr.Find(src.z) + if(cur_y) + break +// to_chat(world, "X = [cur_x]; Y = [cur_y]") + if(cur_x && cur_y) + return list("x"=cur_x,"y"=cur_y) + else + return 0 + +/atom/proc/isinspace() + if(isspaceturf(get_turf(src))) + return 1 + else + return 0 + +/atom/proc/handle_fall() + return + +/atom/proc/handle_slip() + return + +/atom/proc/singularity_act() + return + +/atom/proc/singularity_pull() + return + +/atom/proc/acid_act(acidpwr, acid_volume) + return + +/atom/proc/emag_act() + return + +/atom/proc/narsie_act() + return + +/atom/proc/ratvar_act() + return + +/atom/proc/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) + return FALSE + +/atom/proc/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) + return FALSE + +/atom/proc/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +//This proc is called on the location of an atom when the atom is Destroy()'d +/atom/proc/handle_atom_del(atom/A) + +//called when the turf the atom resides on is ChangeTurfed +/atom/proc/HandleTurfChange(turf/T) + for(var/a in src) + var/atom/A = a + 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) +/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) +/atom/proc/update_remote_sight(mob/living/user) + return + +/atom/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) + if(isturf(src)) + var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src) + // Make toxins vomit look different + if(toxvomit) + V.icon_state = "vomittox_[pick(1,4)]" + if(M.reagents) + clear_reagents_to_vomit_pool(M,V) + +/atom/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) + M.reagents.trans_to(V, M.reagents.total_volume / 10) + for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food + if(istype(R, /datum/reagent/consumable)) + var/datum/reagent/consumable/nutri_check = R + if(nutri_check.nutriment_factor >0) + M.reagents.remove_reagent(R.id,R.volume) + + +//Hook for running code when a dir change occurs +/atom/proc/setDir(newdir) + dir = newdir + +/atom/proc/mech_melee_attack(obj/mecha/M) + return + +//If a mob logouts/logins in side of an object you can use this proc +/atom/proc/on_log(login) + if(loc) + loc.on_log(login) + + +/* + Atom Colour Priority System + A System that gives finer control over which atom colour to colour the atom with. + The "highest priority" one is always displayed as opposed to the default of + "whichever was set last is displayed" +*/ + + +/* + Adds an instance of colour_type to the atom's atom_colours list +*/ +/atom/proc/add_atom_colour(coloration, colour_priority) + if(!atom_colours || !atom_colours.len) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(!coloration) + return + if(colour_priority > atom_colours.len) + return + atom_colours[colour_priority] = coloration + update_atom_colour() + + +/* + Removes an instance of colour_type from the atom's atom_colours list +*/ +/atom/proc/remove_atom_colour(colour_priority, coloration) + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(colour_priority > atom_colours.len) + return + if(coloration && atom_colours[colour_priority] != coloration) + return //if we don't have the expected color (for a specific priority) to remove, do nothing + atom_colours[colour_priority] = null + update_atom_colour() + + +/* + Resets the atom's color to null, and then sets it to the highest priority + colour available +*/ +/atom/proc/update_atom_colour() + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + color = null + for(var/C in atom_colours) + if(islist(C)) + var/list/L = C + if(L.len) + color = L + return + else if(C) + color = C + return + +/atom/vv_edit_var(var_name, var_value) + if(!GLOB.Debug2) + admin_spawned = TRUE + . = ..() + switch(var_name) + if("color") + add_atom_colour(color, ADMIN_COLOUR_PRIORITY) + +/atom/vv_get_dropdown() + . = ..() + . += "---" + var/turf/curturf = get_turf(src) + if (curturf) + .["Jump to"] = "?_src_=holder;adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]" + .["Add reagent"] = "?_src_=vars;addreagent=\ref[src]" + .["Trigger EM pulse"] = "?_src_=vars;emp=\ref[src]" + .["Trigger explosion"] = "?_src_=vars;explode=\ref[src]" diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 931e3d55b5..b5fe460bf5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -197,7 +197,7 @@ QDEL_NULL(proximity_monitor) QDEL_NULL(language_holder) - + unbuckle_all_mobs(force=1) . = ..() @@ -213,7 +213,8 @@ // Previously known as HasEntered() // This is automatically called when something enters your square -/atom/movable/Crossed(atom/movable/AM) +//oldloc = old location on atom, inserted when forceMove is called and ONLY when forceMove is called! +/atom/movable/Crossed(atom/movable/AM, oldloc) return /atom/movable/Bump(atom/A, yes) //the "yes" arg is to differentiate our Bump proc from byond's, without it every Bump() call would become a double Bump(). @@ -249,7 +250,7 @@ for(var/atom/movable/AM in destination) if(AM == src) continue - AM.Crossed(src) + AM.Crossed(src, oldloc) Moved(oldloc, 0) return 1 @@ -439,6 +440,8 @@ if(!no_effect && (visual_effect_icon || used_item)) do_item_attack_animation(A, visual_effect_icon, used_item) + if(A == src) + return //don't do an animation if attacking self var/pixel_x_diff = 0 var/pixel_y_diff = 0 var/final_pixel_y = initial(pixel_y) @@ -660,6 +663,7 @@ else H.selected_default_language = null + var/datum/language/chosen_langtype var/highest_priority @@ -685,3 +689,10 @@ //Returns an atom's power cell, if it has one. Overload for individual items. /atom/movable/proc/get_cell() return + +/atom/movable/proc/can_be_pulled(user) + if(src == user || !isturf(loc)) + return FALSE + if(anchored || throwing) + return FALSE + return TRUE \ No newline at end of file diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 2e5854509a..2821356db5 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -162,14 +162,11 @@ var/image/holder = hud_list[STATUS_HUD] var/icon/I = icon(icon, icon_state, dir) var/virus_state = check_virus() - var/mob/living/simple_animal/borer/B = has_brain_worms() holder.pixel_y = I.Height() - world.icon_size if(status_flags & XENO_HOST) holder.icon_state = "hudxeno" else if(stat == DEAD || (status_flags & FAKEDEATH)) holder.icon_state = "huddead" - else if(has_brain_worms() && B != null && B.controlling) - holder.icon_state = "hudbrainworm" else if(virus_state == 2) holder.icon_state = "hudill" else if(virus_state == 1) diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm index 59c9aa20ad..1f73b47427 100644 --- a/code/game/gamemodes/antag_hud.dm +++ b/code/game/gamemodes/antag_hud.dm @@ -1,88 +1,88 @@ -/datum/atom_hud/antag - hud_icons = list(ANTAG_HUD) - var/self_visible = 1 - -/datum/atom_hud/antag/hidden - self_visible = 0 - -/datum/atom_hud/antag/proc/join_hud(mob/M) - //sees_hud should be set to 0 if the mob does not get to see it's own hud type. - if(!istype(M)) - CRASH("join_hud(): [M] ([M.type]) is not a mob!") - if(M.mind.antag_hud) //note: please let this runtime if a mob has no mind, as mindless mobs shouldn't be getting antagged - M.mind.antag_hud.leave_hud(M) - add_to_hud(M) - if(self_visible) - add_hud_to(M) - M.mind.antag_hud = src - -/datum/atom_hud/antag/proc/leave_hud(mob/M) - if(!M) - return - if(!istype(M)) - CRASH("leave_hud(): [M] ([M.type]) is not a mob!") - remove_from_hud(M) - remove_hud_from(M) - if(M.mind) - M.mind.antag_hud = null - - -//GAME_MODE PROCS -//called to set a mob's antag icon state -/datum/game_mode/proc/set_antag_hud(mob/M, new_icon_state) - if(!istype(M)) - CRASH("set_antag_hud(): [M] ([M.type]) is not a mob!") - var/image/holder = M.hud_list[ANTAG_HUD] - if(holder) - holder.icon_state = new_icon_state - if(M.mind || new_icon_state) //in mindless mobs, only null is acceptable, otherwise we're antagging a mindless mob, meaning we should runtime - M.mind.antag_hud_icon_state = new_icon_state - - -//MIND PROCS -//these are called by mind.transfer_to() -/datum/mind/proc/transfer_antag_huds(datum/atom_hud/antag/newhud) - leave_all_antag_huds() - SSticker.mode.set_antag_hud(current, antag_hud_icon_state) - if(newhud) - newhud.join_hud(current) - -/datum/mind/proc/leave_all_antag_huds() - for(var/datum/atom_hud/antag/hud in GLOB.huds) +/datum/atom_hud/antag + hud_icons = list(ANTAG_HUD) + var/self_visible = 1 + +/datum/atom_hud/antag/hidden + self_visible = 0 + +/datum/atom_hud/antag/proc/join_hud(mob/M) + //sees_hud should be set to 0 if the mob does not get to see it's own hud type. + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + if(M.mind.antag_hud) //note: please let this runtime if a mob has no mind, as mindless mobs shouldn't be getting antagged + M.mind.antag_hud.leave_hud(M) + add_to_hud(M) + if(self_visible) + add_hud_to(M) + M.mind.antag_hud = src + +/datum/atom_hud/antag/proc/leave_hud(mob/M) + if(!M) + return + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + remove_from_hud(M) + remove_hud_from(M) + if(M.mind) + M.mind.antag_hud = null + + +//GAME_MODE PROCS +//called to set a mob's antag icon state +/datum/game_mode/proc/set_antag_hud(mob/M, new_icon_state) + if(!istype(M)) + CRASH("set_antag_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.icon_state = new_icon_state + if(M.mind || new_icon_state) //in mindless mobs, only null is acceptable, otherwise we're antagging a mindless mob, meaning we should runtime + M.mind.antag_hud_icon_state = new_icon_state + + +//MIND PROCS +//these are called by mind.transfer_to() +/datum/mind/proc/transfer_antag_huds(datum/atom_hud/antag/newhud) + leave_all_antag_huds() + SSticker.mode.set_antag_hud(current, antag_hud_icon_state) + if(newhud) + newhud.join_hud(current) + +/datum/mind/proc/leave_all_antag_huds() + for(var/datum/atom_hud/antag/hud in GLOB.huds) if(hud.hudusers[current]) - hud.leave_hud(current) - -/datum/atom_hud/antag/gang - var/color = null - -/datum/atom_hud/antag/gang/add_to_hud(atom/A) - if(!A) - return - var/image/holder = A.hud_list[ANTAG_HUD] - if(holder) - holder.color = color - ..() - -/datum/atom_hud/antag/gang/remove_from_hud(atom/A) - if(!A) - return - var/image/holder = A.hud_list[ANTAG_HUD] - if(holder) - holder.color = null - ..() - -/datum/atom_hud/antag/gang/join_hud(mob/M) - if(!istype(M)) - CRASH("join_hud(): [M] ([M.type]) is not a mob!") - var/image/holder = M.hud_list[ANTAG_HUD] - if(holder) - holder.color = color - ..() - -/datum/atom_hud/antag/gang/leave_hud(mob/M) - if(!istype(M)) - CRASH("leave_hud(): [M] ([M.type]) is not a mob!") - var/image/holder = M.hud_list[ANTAG_HUD] - if(holder) - holder.color = null - ..() + hud.leave_hud(current) + +/datum/atom_hud/antag/gang + var/color = null + +/datum/atom_hud/antag/gang/add_to_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/remove_from_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() + +/datum/atom_hud/antag/gang/join_hud(mob/M) + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/leave_hud(mob/M) + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index f696f2b7e4..8da7cb3169 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -155,6 +155,7 @@ /obj/item/weapon/antag_spawner/nuke_ops/attack_self(mob/user) if(!(check_usability(user))) return + to_chat(user, "You activate [src] and wait for confirmation.") var/list/nuke_candidates = pollGhostCandidates("Do you want to play as a syndicate [borg_to_spawn ? "[lowertext(borg_to_spawn)] cyborg":"operative"]?", ROLE_OPERATIVE, null, ROLE_OPERATIVE, 150, POLL_IGNORE_SYNDICATE) if(nuke_candidates.len) @@ -250,7 +251,7 @@ spawn_antag(theghost.client, get_turf(src), initial(demon_type.name)) to_chat(user, shatter_msg) to_chat(user, veil_msg) - playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) + playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1) qdel(src) else to_chat(user, "You can't seem to work up the nerve to shatter the bottle. Perhaps you should try again later.") diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index 8ba6a2f125..3ca2e8f00e 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -1,72 +1,72 @@ -/datum/game_mode/blob/check_finished() - if(blobwincount <= GLOB.blobs_legit.len)//Blob took over - return 1 - for(var/datum/mind/blob in blob_overminds) - if(isovermind(blob.current)) - var/mob/camera/blob/B = blob.current - if(B.blob_core || !B.placed) - return 0 - if(!GLOB.blob_cores.len) //blob is dead - if(config.continuous["blob"]) - message_sent = FALSE //disable the win count at this point - continuous_sanity_checked = 1 //Nonstandard definition of "alive" gets past the check otherwise - SSshuttle.clearHostileEnvironment(src) - return ..() - return 1 - return ..() - - -/datum/game_mode/blob/declare_completion() - if(round_converted) //So badmin blobs later don't step on the dead natural blobs metaphorical toes - ..() - if(blobwincount <= GLOB.blobs_legit.len) +/datum/game_mode/blob/check_finished() + if(blobwincount <= GLOB.blobs_legit.len)//Blob took over + return 1 + for(var/datum/mind/blob in blob_overminds) + if(isovermind(blob.current)) + var/mob/camera/blob/B = blob.current + if(B.blob_core || !B.placed) + return 0 + if(!GLOB.blob_cores.len) //blob is dead + if(config.continuous["blob"]) + message_sent = FALSE //disable the win count at this point + continuous_sanity_checked = 1 //Nonstandard definition of "alive" gets past the check otherwise + SSshuttle.clearHostileEnvironment(src) + return ..() + return 1 + return ..() + + +/datum/game_mode/blob/declare_completion() + if(round_converted) //So badmin blobs later don't step on the dead natural blobs metaphorical toes + ..() + if(blobwincount <= GLOB.blobs_legit.len) SSticker.mode_result = "win - blob took over" - to_chat(world, "The blob has taken over the station!") - to_chat(world, "The entire station was eaten by the Blob!") - log_game("Blob mode completed with a blob victory.") - - SSticker.news_report = BLOB_WIN - - else if(station_was_nuked) + to_chat(world, "The blob has taken over the station!") + to_chat(world, "The entire station was eaten by the Blob!") + log_game("Blob mode completed with a blob victory.") + + SSticker.news_report = BLOB_WIN + + else if(station_was_nuked) SSticker.mode_result = "halfwin - nuke" - to_chat(world, "Partial Win: The station has been destroyed!") - to_chat(world, "Directive 7-12 has been successfully carried out, preventing the Blob from spreading.") - log_game("Blob mode completed with a tie (station destroyed).") - - SSticker.news_report = BLOB_NUKE - - else if(!GLOB.blob_cores.len) + to_chat(world, "Partial Win: The station has been destroyed!") + to_chat(world, "Directive 7-12 has been successfully carried out, preventing the Blob from spreading.") + log_game("Blob mode completed with a tie (station destroyed).") + + SSticker.news_report = BLOB_NUKE + + else if(!GLOB.blob_cores.len) SSticker.mode_result = "loss - blob eliminated" - to_chat(world, "The staff has won!") - to_chat(world, "The alien organism has been eradicated from the station!") - log_game("Blob mode completed with a crew victory.") - - SSticker.news_report = BLOB_DESTROYED - - ..() - return 1 - -/datum/game_mode/blob/printplayer(datum/mind/ply, fleecheck) - if((ply in blob_overminds)) - var/text = "
    [ply.key] was [ply.name]" - if(isovermind(ply.current)) - var/mob/camera/blob/B = ply.current - text += "([B.blob_reagent_datum.name]) and" - if(B.blob_core) - text += " survived" - else - text += " was destroyed" - else - text += " and was destroyed" - return text - return ..() - -/datum/game_mode/proc/auto_declare_completion_blob() - if(istype(SSticker.mode,/datum/game_mode/blob) ) - var/datum/game_mode/blob/blob_mode = src - if(blob_mode.blob_overminds.len) - var/text = "The blob[(blob_mode.blob_overminds.len > 1 ? "s were" : " was")]:" - for(var/datum/mind/blob in blob_mode.blob_overminds) - text += printplayer(blob) - to_chat(world, text) - return 1 + to_chat(world, "The staff has won!") + to_chat(world, "The alien organism has been eradicated from the station!") + log_game("Blob mode completed with a crew victory.") + + SSticker.news_report = BLOB_DESTROYED + + ..() + return 1 + +/datum/game_mode/blob/printplayer(datum/mind/ply, fleecheck) + if((ply in blob_overminds)) + var/text = "
    [ply.key] was [ply.name]" + if(isovermind(ply.current)) + var/mob/camera/blob/B = ply.current + text += "([B.blob_reagent_datum.name]) and" + if(B.blob_core) + text += " survived" + else + text += " was destroyed" + else + text += " and was destroyed" + return text + return ..() + +/datum/game_mode/proc/auto_declare_completion_blob() + if(istype(SSticker.mode,/datum/game_mode/blob) ) + var/datum/game_mode/blob/blob_mode = src + if(blob_mode.blob_overminds.len) + var/text = "The blob[(blob_mode.blob_overminds.len > 1 ? "s were" : " was")]:" + for(var/datum/mind/blob in blob_mode.blob_overminds) + text += printplayer(blob) + to_chat(world, text) + return 1 diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 15e914efd6..ea6bd07c58 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -14,7 +14,7 @@ intercepttext += " 3. Avoid damage to the capital infrastructure of the station.
    " intercepttext += "
    Note in the event of a quarantine breach or uncontrolled spread of the biohazard, Biohazard Response Procedure 5-12 may be issued.
    " print_command_report(text=intercepttext,title="Level 5-6 Biohazard Response Procedures",announce=FALSE) - priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') + priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') if(2) var/nukecode = random_nukecode() for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index e80e92337e..0b59cc0b05 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -262,7 +262,7 @@ else playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/blob/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) switch(damage_type) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 7a249c9076..4d9f1c7f23 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "w /*/datum/game_mode/changeling/check_finished() var/changelings_alive = 0 for(var/datum/mind/changeling in changelings) - if(!istype(changeling.current,/mob/living/carbon)) + if(!iscarbon(changeling.current)) continue if(changeling.current.stat==2) continue diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 489228a30c..1abd58854b 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -1,78 +1,78 @@ -/* - * Don't use the apostrophe in name or desc. Causes script errors. - * TODO: combine atleast some of the functionality with /proc_holder/spell - */ - -/obj/effect/proc_holder/changeling - panel = "Changeling" - name = "Prototype Sting" - desc = "" // Fluff - var/helptext = "" // Details - var/chemical_cost = 0 // negative chemical cost is for passive abilities (chemical glands) - var/dna_cost = -1 //cost of the sting in dna points. 0 = auto-purchase, -1 = cannot be purchased - var/req_dna = 0 //amount of dna needed to use this ability. Changelings always have atleast 1 - var/req_human = 0 //if you need to be human to use this ability - var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD - var/always_keep = 0 // important for abilities like revive that screw you if you lose them. - var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag - - -/obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) - if(!is_respec) +/* + * Don't use the apostrophe in name or desc. Causes script errors. + * TODO: combine atleast some of the functionality with /proc_holder/spell + */ + +/obj/effect/proc_holder/changeling + panel = "Changeling" + name = "Prototype Sting" + desc = "" // Fluff + var/helptext = "" // Details + var/chemical_cost = 0 // negative chemical cost is for passive abilities (chemical glands) + var/dna_cost = -1 //cost of the sting in dna points. 0 = auto-purchase, -1 = cannot be purchased + var/req_dna = 0 //amount of dna needed to use this ability. Changelings always have atleast 1 + var/req_human = 0 //if you need to be human to use this ability + var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD + var/always_keep = 0 // important for abilities like revive that screw you if you lose them. + var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag + + +/obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) + if(!is_respec) SSblackbox.add_details("changeling_power_purchase",name) - -/obj/effect/proc_holder/changeling/proc/on_refund(mob/user) - return - -/obj/effect/proc_holder/changeling/Click() - var/mob/user = usr - if(!user || !user.mind || !user.mind.changeling) - return - try_to_sting(user) - -/obj/effect/proc_holder/changeling/proc/try_to_sting(mob/user, mob/target) - if(!can_sting(user, target)) - return - var/datum/changeling/c = user.mind.changeling - if(sting_action(user, target)) + +/obj/effect/proc_holder/changeling/proc/on_refund(mob/user) + return + +/obj/effect/proc_holder/changeling/Click() + var/mob/user = usr + if(!user || !user.mind || !user.mind.changeling) + return + try_to_sting(user) + +/obj/effect/proc_holder/changeling/proc/try_to_sting(mob/user, mob/target) + if(!can_sting(user, target)) + return + var/datum/changeling/c = user.mind.changeling + if(sting_action(user, target)) SSblackbox.add_details("changeling_powers",name) - sting_feedback(user, target) + sting_feedback(user, target) c.chem_charges -= chemical_cost - -/obj/effect/proc_holder/changeling/proc/sting_action(mob/user, mob/target) - return 0 - -/obj/effect/proc_holder/changeling/proc/sting_feedback(mob/user, mob/target) - return 0 - -//Fairly important to remember to return 1 on success >.< -/obj/effect/proc_holder/changeling/proc/can_sting(mob/user, mob/target) - if(!ishuman(user) && !ismonkey(user)) //typecast everything from mob to carbon from this point onwards - return 0 - if(req_human && !ishuman(user)) - to_chat(user, "We cannot do that in this form!") - return 0 - var/datum/changeling/c = user.mind.changeling - if(c.chem_charges < chemical_cost) - to_chat(user, "We require at least [chemical_cost] unit\s of chemicals to do that!") - return 0 - if(c.absorbedcount < req_dna) - to_chat(user, "We require at least [req_dna] sample\s of compatible DNA.") - return 0 - if(req_stat < user.stat) - to_chat(user, "We are incapacitated.") - return 0 - if((user.status_flags & FAKEDEATH) && (!ignores_fakedeath)) - to_chat(user, "We are incapacitated.") - return 0 - return 1 - -//used in /mob/Stat() -/obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) - if(!user || QDELETED(user)) - return 0 - if(!ishuman(user) && !ismonkey(user)) - return 0 - if(req_human && !ishuman(user)) - return 0 - return 1 + +/obj/effect/proc_holder/changeling/proc/sting_action(mob/user, mob/target) + return 0 + +/obj/effect/proc_holder/changeling/proc/sting_feedback(mob/user, mob/target) + return 0 + +//Fairly important to remember to return 1 on success >.< +/obj/effect/proc_holder/changeling/proc/can_sting(mob/user, mob/target) + if(!ishuman(user) && !ismonkey(user)) //typecast everything from mob to carbon from this point onwards + return 0 + if(req_human && !ishuman(user)) + to_chat(user, "We cannot do that in this form!") + return 0 + var/datum/changeling/c = user.mind.changeling + if(c.chem_charges < chemical_cost) + to_chat(user, "We require at least [chemical_cost] unit\s of chemicals to do that!") + return 0 + if(c.absorbedcount < req_dna) + to_chat(user, "We require at least [req_dna] sample\s of compatible DNA.") + return 0 + if(req_stat < user.stat) + to_chat(user, "We are incapacitated.") + return 0 + if((user.status_flags & FAKEDEATH) && (!ignores_fakedeath)) + to_chat(user, "We are incapacitated.") + return 0 + return 1 + +//used in /mob/Stat() +/obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) + if(!user || QDELETED(user)) + return 0 + if(!ishuman(user) && !ismonkey(user)) + return 0 + if(req_human && !ishuman(user)) + return 0 + return 1 diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index fdfec9e270..59ed4ab2e8 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -1,112 +1,112 @@ -/datum/changeling/proc/purchasePower(mob/living/carbon/user, sting_name) - - var/obj/effect/proc_holder/changeling/thepower = null - - for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) - var/obj/effect/proc_holder/changeling/S = path - if(initial(S.name) == sting_name) - thepower = new path() - break - - if(!thepower) - to_chat(user, "This is awkward. Changeling power purchase failed, please report this bug to a coder!") - return - - if(absorbedcount < thepower.req_dna) - to_chat(user, "We lack the energy to evolve this ability!") - return - - if(has_sting(thepower)) - to_chat(user, "We have already evolved this ability!") - return - - if(thepower.dna_cost < 0) - to_chat(user, "We cannot evolve this ability.") - return - - if(geneticpoints < thepower.dna_cost) - to_chat(user, "We have reached our capacity for abilities.") - return - - if(user.status_flags & FAKEDEATH)//To avoid potential exploits by buying new powers while in stasis, which clears your verblist. - to_chat(user, "We lack the energy to evolve new abilities right now.") - return - - geneticpoints -= thepower.dna_cost - purchasedpowers += thepower - thepower.on_purchase(user) - -//Reselect powers -/datum/changeling/proc/lingRespec(mob/user) - if(!ishuman(user)) - to_chat(user, "We can't remove our evolutions in this form!") - return - if(canrespec) - to_chat(user, "We have removed our evolutions from this form, and are now ready to readapt.") - user.remove_changeling_powers(1) - canrespec = 0 - user.make_changeling(TRUE) - return 1 - else - to_chat(user, "You lack the power to readapt your evolutions!") - return 0 - -/mob/proc/make_changeling(is_respec) - if(!mind) - return - if(!ishuman(src) && !ismonkey(src)) - return - if(!mind.changeling) - mind.changeling = new /datum/changeling(gender) - if(mind.changeling.purchasedpowers) - remove_changeling_powers(1) - // purchase free powers. - for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) - var/obj/effect/proc_holder/changeling/S = new path() - if(!S.dna_cost) - if(!mind.changeling.has_sting(S)) - mind.changeling.purchasedpowers+=S - S.on_purchase(src, is_respec) - if(is_respec) +/datum/changeling/proc/purchasePower(mob/living/carbon/user, sting_name) + + var/obj/effect/proc_holder/changeling/thepower = null + + for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) + var/obj/effect/proc_holder/changeling/S = path + if(initial(S.name) == sting_name) + thepower = new path() + break + + if(!thepower) + to_chat(user, "This is awkward. Changeling power purchase failed, please report this bug to a coder!") + return + + if(absorbedcount < thepower.req_dna) + to_chat(user, "We lack the energy to evolve this ability!") + return + + if(has_sting(thepower)) + to_chat(user, "We have already evolved this ability!") + return + + if(thepower.dna_cost < 0) + to_chat(user, "We cannot evolve this ability.") + return + + if(geneticpoints < thepower.dna_cost) + to_chat(user, "We have reached our capacity for abilities.") + return + + if(user.status_flags & FAKEDEATH)//To avoid potential exploits by buying new powers while in stasis, which clears your verblist. + to_chat(user, "We lack the energy to evolve new abilities right now.") + return + + geneticpoints -= thepower.dna_cost + purchasedpowers += thepower + thepower.on_purchase(user) + +//Reselect powers +/datum/changeling/proc/lingRespec(mob/user) + if(!ishuman(user)) + to_chat(user, "We can't remove our evolutions in this form!") + return + if(canrespec) + to_chat(user, "We have removed our evolutions from this form, and are now ready to readapt.") + user.remove_changeling_powers(1) + canrespec = 0 + user.make_changeling(TRUE) + return 1 + else + to_chat(user, "You lack the power to readapt your evolutions!") + return 0 + +/mob/proc/make_changeling(is_respec) + if(!mind) + return + if(!ishuman(src) && !ismonkey(src)) + return + if(!mind.changeling) + mind.changeling = new /datum/changeling(gender) + if(mind.changeling.purchasedpowers) + remove_changeling_powers(1) + // purchase free powers. + for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) + var/obj/effect/proc_holder/changeling/S = new path() + if(!S.dna_cost) + if(!mind.changeling.has_sting(S)) + mind.changeling.purchasedpowers+=S + S.on_purchase(src, is_respec) + if(is_respec) SSblackbox.add_details("changeling_power_purchase","Readapt") - - var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste - if(ishuman(C)) - var/datum/changelingprofile/prof = mind.changeling.add_new_profile(C, src) - mind.changeling.first_prof = prof + + var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste + if(ishuman(C)) + var/datum/changelingprofile/prof = mind.changeling.add_new_profile(C, src) + mind.changeling.first_prof = prof var/obj/item/organ/brain/B = C.getorganslot("brain") if(B) B.vital = FALSE B.decoy_override = TRUE - return 1 - -/datum/changeling/proc/reset() - chosen_sting = null - geneticpoints = initial(geneticpoints) - sting_range = initial(sting_range) - chem_storage = initial(chem_storage) - chem_recharge_rate = initial(chem_recharge_rate) - chem_charges = min(chem_charges, chem_storage) - chem_recharge_slowdown = initial(chem_recharge_slowdown) - mimicing = "" - -/mob/proc/remove_changeling_powers(keep_free_powers=0) - if(ishuman(src) || ismonkey(src)) - if(mind && mind.changeling) - mind.changeling.changeling_speak = 0 - mind.changeling.reset() - for(var/obj/effect/proc_holder/changeling/p in mind.changeling.purchasedpowers) - if((p.dna_cost == 0 && keep_free_powers) || p.always_keep) - continue - mind.changeling.purchasedpowers -= p - p.on_refund(src) - if(hud_used) - hud_used.lingstingdisplay.icon_state = null - hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT - -/datum/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power) - for(var/obj/effect/proc_holder/changeling/P in purchasedpowers) - if(initial(power.name) == P.name) - return 1 - return 0 + return 1 + +/datum/changeling/proc/reset() + chosen_sting = null + geneticpoints = initial(geneticpoints) + sting_range = initial(sting_range) + chem_storage = initial(chem_storage) + chem_recharge_rate = initial(chem_recharge_rate) + chem_charges = min(chem_charges, chem_storage) + chem_recharge_slowdown = initial(chem_recharge_slowdown) + mimicing = "" + +/mob/proc/remove_changeling_powers(keep_free_powers=0) + if(ishuman(src) || ismonkey(src)) + if(mind && mind.changeling) + mind.changeling.changeling_speak = 0 + mind.changeling.reset() + for(var/obj/effect/proc_holder/changeling/p in mind.changeling.purchasedpowers) + if((p.dna_cost == 0 && keep_free_powers) || p.always_keep) + continue + mind.changeling.purchasedpowers -= p + p.on_refund(src) + if(hud_used) + hud_used.lingstingdisplay.icon_state = null + hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT + +/datum/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power) + for(var/obj/effect/proc_holder/changeling/P in purchasedpowers) + if(initial(power.name) == P.name) + return 1 + return 0 diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index b6b3372ae3..c7b02a3224 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -1,109 +1,109 @@ -/obj/effect/proc_holder/changeling/absorbDNA - name = "Absorb DNA" - desc = "Absorb the DNA of our victim." - chemical_cost = 0 - dna_cost = 0 - req_human = 1 - -/obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) - if(!..()) - return - - var/datum/changeling/changeling = user.mind.changeling - if(changeling.isabsorbing) - to_chat(user, "We are already absorbing!") - return - - if(!user.pulling || !iscarbon(user.pulling)) - to_chat(user, "We must be grabbing a creature to absorb them!") - return - if(user.grab_state <= GRAB_NECK) - to_chat(user, "We must have a tighter grip to absorb this creature!") - return - - var/mob/living/carbon/target = user.pulling - return changeling.can_absorb_dna(user,target) - - - -/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user) - var/datum/changeling/changeling = user.mind.changeling - var/mob/living/carbon/human/target = user.pulling - changeling.isabsorbing = 1 - for(var/i in 1 to 3) - switch(i) - if(1) - to_chat(user, "This creature is compatible. We must hold still...") - if(2) - user.visible_message("[user] extends a proboscis!", "We extend a proboscis.") - if(3) - user.visible_message("[user] stabs [target] with the proboscis!", "We stab [target] with the proboscis.") - to_chat(target, "You feel a sharp stabbing pain!") - target.take_overall_damage(40) - +/obj/effect/proc_holder/changeling/absorbDNA + name = "Absorb DNA" + desc = "Absorb the DNA of our victim." + chemical_cost = 0 + dna_cost = 0 + req_human = 1 + +/obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) + if(!..()) + return + + var/datum/changeling/changeling = user.mind.changeling + if(changeling.isabsorbing) + to_chat(user, "We are already absorbing!") + return + + if(!user.pulling || !iscarbon(user.pulling)) + to_chat(user, "We must be grabbing a creature to absorb them!") + return + if(user.grab_state <= GRAB_NECK) + to_chat(user, "We must have a tighter grip to absorb this creature!") + return + + var/mob/living/carbon/target = user.pulling + return changeling.can_absorb_dna(user,target) + + + +/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user) + var/datum/changeling/changeling = user.mind.changeling + var/mob/living/carbon/human/target = user.pulling + changeling.isabsorbing = 1 + for(var/i in 1 to 3) + switch(i) + if(1) + to_chat(user, "This creature is compatible. We must hold still...") + if(2) + user.visible_message("[user] extends a proboscis!", "We extend a proboscis.") + if(3) + user.visible_message("[user] stabs [target] with the proboscis!", "We stab [target] with the proboscis.") + to_chat(target, "You feel a sharp stabbing pain!") + target.take_overall_damage(40) + SSblackbox.add_details("changeling_powers","Absorb DNA|[i]") - if(!do_mob(user, target, 150)) - to_chat(user, "Our absorption of [target] has been interrupted!") - changeling.isabsorbing = 0 - return - + if(!do_mob(user, target, 150)) + to_chat(user, "Our absorption of [target] has been interrupted!") + changeling.isabsorbing = 0 + return + SSblackbox.add_details("changeling_powers","Absorb DNA|4") - user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") - to_chat(target, "You are absorbed by the changeling!") - - if(!changeling.has_dna(target.dna)) - changeling.add_new_profile(target, user) - - if(user.nutrition < NUTRITION_LEVEL_WELL_FED) - user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) - - if(target.mind)//if the victim has got a mind - - target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. - - //Some of target's recent speech, so the changeling can attempt to imitate them better. - //Recent as opposed to all because rounds tend to have a LOT of text. - var/list/recent_speech = list() - - var/list/say_log = target.logging[INDIVIDUAL_SAY_LOG] - - if(LAZYLEN(say_log) > LING_ABSORB_RECENT_SPEECH) - recent_speech = say_log.Copy(say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list - else - for(var/spoken_memory in say_log) - if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) - break - recent_speech[spoken_memory] = say_log[spoken_memory] - - if(recent_speech.len) - user.mind.store_memory("Some of [target]'s speech patterns, we should study these to better impersonate them!") - to_chat(user, "Some of [target]'s speech patterns, we should study these to better impersonate them!") - for(var/spoken_memory in recent_speech) - user.mind.store_memory("\"[recent_speech[spoken_memory]]\"") - to_chat(user, "\"[recent_speech[spoken_memory]]\"") - user.mind.store_memory("We have no more knowledge of [target]'s speech patterns.") - to_chat(user, "We have no more knowledge of [target]'s speech patterns.") - - if(target.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points! - changeling.chem_charges += min(target.mind.changeling.chem_charges, changeling.chem_storage) - changeling.absorbedcount += (target.mind.changeling.absorbedcount) - - target.mind.changeling.stored_profiles.len = 1 - target.mind.changeling.absorbedcount = 0 - - - changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) - - changeling.isabsorbing = 0 - changeling.canrespec = 1 - - target.death(0) - target.Drain() - return TRUE - - - -//Absorbs the target DNA. -//datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) - -//datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) + user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") + to_chat(target, "You are absorbed by the changeling!") + + if(!changeling.has_dna(target.dna)) + changeling.add_new_profile(target, user) + + if(user.nutrition < NUTRITION_LEVEL_WELL_FED) + user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) + + if(target.mind)//if the victim has got a mind + + target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. + + //Some of target's recent speech, so the changeling can attempt to imitate them better. + //Recent as opposed to all because rounds tend to have a LOT of text. + var/list/recent_speech = list() + + var/list/say_log = target.logging[INDIVIDUAL_SAY_LOG] + + if(LAZYLEN(say_log) > LING_ABSORB_RECENT_SPEECH) + recent_speech = say_log.Copy(say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list + else + for(var/spoken_memory in say_log) + if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) + break + recent_speech[spoken_memory] = say_log[spoken_memory] + + if(recent_speech.len) + user.mind.store_memory("Some of [target]'s speech patterns, we should study these to better impersonate them!") + to_chat(user, "Some of [target]'s speech patterns, we should study these to better impersonate them!") + for(var/spoken_memory in recent_speech) + user.mind.store_memory("\"[recent_speech[spoken_memory]]\"") + to_chat(user, "\"[recent_speech[spoken_memory]]\"") + user.mind.store_memory("We have no more knowledge of [target]'s speech patterns.") + to_chat(user, "We have no more knowledge of [target]'s speech patterns.") + + if(target.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points! + changeling.chem_charges += min(target.mind.changeling.chem_charges, changeling.chem_storage) + changeling.absorbedcount += (target.mind.changeling.absorbedcount) + + target.mind.changeling.stored_profiles.len = 1 + target.mind.changeling.absorbedcount = 0 + + + changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) + + changeling.isabsorbing = 0 + changeling.canrespec = 1 + + target.death(0) + target.Drain() + return TRUE + + + +//Absorbs the target DNA. +//datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) + +//datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) diff --git a/code/game/gamemodes/changeling/powers/adrenaline.dm b/code/game/gamemodes/changeling/powers/adrenaline.dm index 5effe8898f..cc001ba85a 100644 --- a/code/game/gamemodes/changeling/powers/adrenaline.dm +++ b/code/game/gamemodes/changeling/powers/adrenaline.dm @@ -11,9 +11,9 @@ /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) to_chat(user, "Energy rushes through us.[user.lying ? " We arise." : ""]") user.SetSleeping(0) - user.SetParalysis(0) - user.SetStunned(0) - user.SetWeakened(0) + user.SetUnconscious(0) + user.SetStun(0) + user.SetKnockdown(0) user.reagents.add_reagent("changelingAdrenaline", 10) user.reagents.add_reagent("changelingAdrenaline2", 2) //For a really quick burst of speed user.adjustStaminaLoss(-75) diff --git a/code/game/gamemodes/changeling/powers/biodegrade.dm b/code/game/gamemodes/changeling/powers/biodegrade.dm index 6e2d6b0ddd..94e4bc4c08 100644 --- a/code/game/gamemodes/changeling/powers/biodegrade.dm +++ b/code/game/gamemodes/changeling/powers/biodegrade.dm @@ -8,7 +8,7 @@ /obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use - if(!user.restrained() && istype(user.loc, /turf/open)) + if(!user.restrained() && isopenturf(user.loc)) to_chat(user, "We are already free!") return 0 diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm index a9f6381082..94d83e2520 100644 --- a/code/game/gamemodes/changeling/powers/headcrab.dm +++ b/code/game/gamemodes/changeling/powers/headcrab.dm @@ -17,13 +17,13 @@ explosion(get_turf(user),0,0,2,0,silent=1) for(var/mob/living/carbon/human/H in range(2,user)) to_chat(H, "You are blinded by a shower of blood!") - H.Stun(1) + H.Stun(20) H.blur_eyes(20) H.adjust_eye_damage(5) H.confused += 3 for(var/mob/living/silicon/S in range(2,user)) to_chat(S, "Your sensors are disabled by a shower of blood!") - S.Weaken(3) + S.Knockdown(60) var/turf = get_turf(user) user.gib() . = TRUE diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index aef9b6f1d2..3a7bd5c952 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -312,7 +312,7 @@ H.dropItemToGround(source.gun, TRUE) //Unequip thus delete the tentacle on hit if(blocked >= 100) return 0 - if(istype(target, /obj/item)) + if(isitem(target)) var/obj/item/I = target if(!I.anchored) to_chat(firer, "You pull [I] towards yourself.") @@ -403,7 +403,7 @@ if(ismob(loc)) loc.visible_message("The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!") -/obj/item/weapon/shield/changeling/hit_reaction() +/obj/item/weapon/shield/changeling/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(remaining_uses < 1) if(ishuman(loc)) var/mob/living/carbon/human/H = loc diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index 5fe037042f..a0c9562aa4 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -1,44 +1,35 @@ -/obj/effect/proc_holder/changeling/panacea - name = "Anatomic Panacea" - desc = "Expels impurifications from our form; curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely." - helptext = "Can be used while unconscious." - chemical_cost = 20 - dna_cost = 1 - req_stat = UNCONSCIOUS - -//Heals the things that the other regenerative abilities don't. -/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) - to_chat(user, "We cleanse impurities from our form.") - - var/mob/living/simple_animal/borer/B = user.has_brain_worms() - if(B) - if(B.controlling) - B.detatch() - B.leave_victim() - if(iscarbon(user)) - var/mob/living/carbon/C = user +/obj/effect/proc_holder/changeling/panacea + name = "Anatomic Panacea" + desc = "Expels impurifications from our form; curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely." + helptext = "Can be used while unconscious." + chemical_cost = 20 + dna_cost = 1 + req_stat = UNCONSCIOUS + +//Heals the things that the other regenerative abilities don't. +/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) + to_chat(user, "We cleanse impurities from our form.") + + var/list/bad_organs = list( + user.getorgan(/obj/item/organ/body_egg), + user.getorgan(/obj/item/organ/zombie_infection)) + + for(var/o in bad_organs) + var/obj/item/organ/O = o + if(!istype(O)) + continue + + O.Remove(user) + if(iscarbon(user)) + var/mob/living/carbon/C = user C.vomit(0, toxic = TRUE) - to_chat(user, "A parasite exits our form.") - var/list/bad_organs = list( - user.getorgan(/obj/item/organ/body_egg), - user.getorgan(/obj/item/organ/zombie_infection)) - - for(var/o in bad_organs) - var/obj/item/organ/O = o - if(!istype(O)) - continue - - O.Remove(user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.vomit(0, toxic = TRUE) - O.forceMove(get_turf(user)) - - user.reagents.add_reagent("mutadone", 10) - user.reagents.add_reagent("pen_acid", 20) - user.reagents.add_reagent("antihol", 10) - user.reagents.add_reagent("mannitol", 25) - - for(var/datum/disease/D in user.viruses) - D.cure() - return TRUE + O.forceMove(get_turf(user)) + + user.reagents.add_reagent("mutadone", 10) + user.reagents.add_reagent("pen_acid", 20) + user.reagents.add_reagent("antihol", 10) + user.reagents.add_reagent("mannitol", 25) + + for(var/datum/disease/D in user.viruses) + D.cure() + return TRUE diff --git a/code/game/gamemodes/changeling/powers/regenerate.dm b/code/game/gamemodes/changeling/powers/regenerate.dm index bd7308b033..a74b966bd8 100644 --- a/code/game/gamemodes/changeling/powers/regenerate.dm +++ b/code/game/gamemodes/changeling/powers/regenerate.dm @@ -17,7 +17,7 @@ var/mob/living/carbon/C = user var/list/missing = C.get_missing_limbs() if(missing.len) - playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + playsound(user, 'sound/magic/demon_consume.ogg', 50, 1) C.visible_message("[user]'s missing limbs \ reform, making a loud, grotesque sound!", "Your limbs regrow, making a \ diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index c289334ea0..7b16bbdbf0 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -14,7 +14,7 @@ var/list/missing = user.get_missing_limbs() missing -= "head" // headless changelings are funny if(missing.len) - playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + playsound(user, 'sound/magic/demon_consume.ogg', 50, 1) user.visible_message("[user]'s missing limbs \ reform, making a loud, grotesque sound!", "Your limbs regrow, making a \ diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm index 0b106b0b12..099d991062 100644 --- a/code/game/gamemodes/changeling/powers/shriek.dm +++ b/code/game/gamemodes/changeling/powers/shriek.dm @@ -1,42 +1,42 @@ -/obj/effect/proc_holder/changeling/resonant_shriek - name = "Resonant Shriek" - desc = "Our lungs and vocal chords shift, allowing us to briefly emit a noise that deafens and confuses the weak-minded." - helptext = "Emits a high-frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors." - chemical_cost = 20 - dna_cost = 1 - req_human = 1 - -//A flashy ability, good for crowd control and sewing chaos. -/obj/effect/proc_holder/changeling/resonant_shriek/sting_action(mob/user) - for(var/mob/living/M in get_hearers_in_view(4, user)) - if(iscarbon(M)) +/obj/effect/proc_holder/changeling/resonant_shriek + name = "Resonant Shriek" + desc = "Our lungs and vocal chords shift, allowing us to briefly emit a noise that deafens and confuses the weak-minded." + helptext = "Emits a high-frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors." + chemical_cost = 20 + dna_cost = 1 + req_human = 1 + +//A flashy ability, good for crowd control and sewing chaos. +/obj/effect/proc_holder/changeling/resonant_shriek/sting_action(mob/user) + for(var/mob/living/M in get_hearers_in_view(4, user)) + if(iscarbon(M)) var/mob/living/carbon/C = M if(!C.mind || !C.mind.changeling) C.adjustEarDamage(0, 30) C.confused += 25 C.Jitter(50) - else + else C << sound('sound/effects/screech.ogg') - - if(issilicon(M)) - M << sound('sound/weapons/flash.ogg') - M.Weaken(rand(5,10)) - - for(var/obj/machinery/light/L in range(4, user)) - L.on = 1 - L.break_light_tube() - return TRUE - -/obj/effect/proc_holder/changeling/dissonant_shriek - name = "Dissonant Shriek" - desc = "We shift our vocal cords to release a high-frequency sound that overloads nearby electronics." - chemical_cost = 20 - dna_cost = 1 - -//A flashy ability, good for crowd control and sewing chaos. -/obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) - for(var/obj/machinery/light/L in range(5, usr)) - L.on = 1 - L.break_light_tube() - empulse(get_turf(user), 2, 5, 1) - return TRUE + + if(issilicon(M)) + M << sound('sound/weapons/flash.ogg') + M.Knockdown(rand(100,200)) + + for(var/obj/machinery/light/L in range(4, user)) + L.on = 1 + L.break_light_tube() + return TRUE + +/obj/effect/proc_holder/changeling/dissonant_shriek + name = "Dissonant Shriek" + desc = "We shift our vocal cords to release a high-frequency sound that overloads nearby electronics." + chemical_cost = 20 + dna_cost = 1 + +//A flashy ability, good for crowd control and sewing chaos. +/obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) + for(var/obj/machinery/light/L in range(5, usr)) + L.on = 1 + L.break_light_tube() + empulse(get_turf(user), 2, 5, 1) + return TRUE diff --git a/code/game/gamemodes/changeling/powers/strained_muscles.dm b/code/game/gamemodes/changeling/powers/strained_muscles.dm index 7238e2d1c1..10145c2bca 100644 --- a/code/game/gamemodes/changeling/powers/strained_muscles.dm +++ b/code/game/gamemodes/changeling/powers/strained_muscles.dm @@ -20,7 +20,7 @@ to_chat(user, "Our muscles relax.") if(stacks >= 10) to_chat(user, "We collapse in exhaustion.") - user.Weaken(3) + user.Knockdown(60) user.emote("gasp") INVOKE_ASYNC(src, .proc/muscle_loop, user) @@ -33,7 +33,7 @@ if(user.stat != CONSCIOUS || user.staminaloss >= 90) active = !active to_chat(user, "Our muscles relax without the energy to strengthen them.") - user.Weaken(2) + user.Knockdown(40) user.status_flags &= ~GOTTAGOFAST break diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index d9fae8b061..8f8e422ea5 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -1,231 +1,231 @@ -/obj/effect/proc_holder/changeling/sting - name = "Tiny Prick" - desc = "Stabby stabby" - var/sting_icon = null - -/obj/effect/proc_holder/changeling/sting/Click() - var/mob/user = usr - if(!user || !user.mind || !user.mind.changeling) - return - if(!(user.mind.changeling.chosen_sting)) - set_sting(user) - else - unset_sting(user) - return - -/obj/effect/proc_holder/changeling/sting/proc/set_sting(mob/user) - to_chat(user, "We prepare our sting, use alt+click or middle mouse button on target to sting them.") - user.mind.changeling.chosen_sting = src - user.hud_used.lingstingdisplay.icon_state = sting_icon - user.hud_used.lingstingdisplay.invisibility = 0 - -/obj/effect/proc_holder/changeling/sting/proc/unset_sting(mob/user) - to_chat(user, "We retract our sting, we can't sting anyone for now.") - user.mind.changeling.chosen_sting = null - user.hud_used.lingstingdisplay.icon_state = null - user.hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT - -/mob/living/carbon/proc/unset_sting() - if(mind && mind.changeling && mind.changeling.chosen_sting) - src.mind.changeling.chosen_sting.unset_sting(src) - -/obj/effect/proc_holder/changeling/sting/can_sting(mob/user, mob/target) - if(!..()) - return - if(!user.mind.changeling.chosen_sting) - to_chat(user, "We haven't prepared our sting yet!") - if(!iscarbon(target)) - return - if(!isturf(user.loc)) - return - if(!AStar(user, target.loc, /turf/proc/Distance, user.mind.changeling.sting_range, simulated_only = 0)) - return +/obj/effect/proc_holder/changeling/sting + name = "Tiny Prick" + desc = "Stabby stabby" + var/sting_icon = null + +/obj/effect/proc_holder/changeling/sting/Click() + var/mob/user = usr + if(!user || !user.mind || !user.mind.changeling) + return + if(!(user.mind.changeling.chosen_sting)) + set_sting(user) + else + unset_sting(user) + return + +/obj/effect/proc_holder/changeling/sting/proc/set_sting(mob/user) + to_chat(user, "We prepare our sting, use alt+click or middle mouse button on target to sting them.") + user.mind.changeling.chosen_sting = src + user.hud_used.lingstingdisplay.icon_state = sting_icon + user.hud_used.lingstingdisplay.invisibility = 0 + +/obj/effect/proc_holder/changeling/sting/proc/unset_sting(mob/user) + to_chat(user, "We retract our sting, we can't sting anyone for now.") + user.mind.changeling.chosen_sting = null + user.hud_used.lingstingdisplay.icon_state = null + user.hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT + +/mob/living/carbon/proc/unset_sting() + if(mind && mind.changeling && mind.changeling.chosen_sting) + src.mind.changeling.chosen_sting.unset_sting(src) + +/obj/effect/proc_holder/changeling/sting/can_sting(mob/user, mob/target) + if(!..()) + return + if(!user.mind.changeling.chosen_sting) + to_chat(user, "We haven't prepared our sting yet!") + if(!iscarbon(target)) + return + if(!isturf(user.loc)) + return + if(!AStar(user, target.loc, /turf/proc/Distance, user.mind.changeling.sting_range, simulated_only = 0)) + return if(target.mind && target.mind.changeling) sting_feedback(user, target) user.mind.changeling.chem_charges -= chemical_cost - return 1 - -/obj/effect/proc_holder/changeling/sting/sting_feedback(mob/user, mob/target) - if(!target) - return - to_chat(user, "We stealthily sting [target.name].") - if(target.mind && target.mind.changeling) - to_chat(target, "You feel a tiny prick.") - return 1 - - -/obj/effect/proc_holder/changeling/sting/transformation - name = "Transformation Sting" - desc = "We silently sting a human, injecting a retrovirus that forces them to transform." + return 1 + +/obj/effect/proc_holder/changeling/sting/sting_feedback(mob/user, mob/target) + if(!target) + return + to_chat(user, "We stealthily sting [target.name].") + if(target.mind && target.mind.changeling) + to_chat(target, "You feel a tiny prick.") + return 1 + + +/obj/effect/proc_holder/changeling/sting/transformation + name = "Transformation Sting" + desc = "We silently sting a human, injecting a retrovirus that forces them to transform." helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human." - sting_icon = "sting_transform" + sting_icon = "sting_transform" chemical_cost = 50 - dna_cost = 3 - var/datum/changelingprofile/selected_dna = null - -/obj/effect/proc_holder/changeling/sting/transformation/Click() - var/mob/user = usr - var/datum/changeling/changeling = user.mind.changeling - if(changeling.chosen_sting) - unset_sting(user) - return - selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") - if(!selected_dna) - return - if(NOTRANSSTING in selected_dna.dna.species.species_traits) - to_chat(user, "That DNA is not compatible with changeling retrovirus!") - return - ..() - -/obj/effect/proc_holder/changeling/sting/transformation/can_sting(mob/user, mob/target) - if(!..()) - return - if((target.disabilities & HUSK) || !target.has_dna()) - to_chat(user, "Our sting appears ineffective against its DNA.") - return 0 - return 1 - -/obj/effect/proc_holder/changeling/sting/transformation/sting_action(mob/user, mob/target) - add_logs(user, target, "stung", "transformation sting", " new identity is [selected_dna.dna.real_name]") - var/datum/dna/NewDNA = selected_dna.dna - if(ismonkey(target)) - to_chat(user, "Our genes cry out as we sting [target.name]!") - - var/mob/living/carbon/C = target - . = TRUE - if(istype(C)) - C.real_name = NewDNA.real_name + dna_cost = 3 + var/datum/changelingprofile/selected_dna = null + +/obj/effect/proc_holder/changeling/sting/transformation/Click() + var/mob/user = usr + var/datum/changeling/changeling = user.mind.changeling + if(changeling.chosen_sting) + unset_sting(user) + return + selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") + if(!selected_dna) + return + if(NOTRANSSTING in selected_dna.dna.species.species_traits) + to_chat(user, "That DNA is not compatible with changeling retrovirus!") + return + ..() + +/obj/effect/proc_holder/changeling/sting/transformation/can_sting(mob/user, mob/target) + if(!..()) + return + if((target.disabilities & HUSK) || !target.has_dna()) + to_chat(user, "Our sting appears ineffective against its DNA.") + return 0 + return 1 + +/obj/effect/proc_holder/changeling/sting/transformation/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", "transformation sting", " new identity is [selected_dna.dna.real_name]") + var/datum/dna/NewDNA = selected_dna.dna + if(ismonkey(target)) + to_chat(user, "Our genes cry out as we sting [target.name]!") + + var/mob/living/carbon/C = target + . = TRUE + if(istype(C)) + C.real_name = NewDNA.real_name NewDNA.transfer_identity(C) if(ismonkey(C)) C.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) - C.updateappearance(mutcolor_update=1) - - -/obj/effect/proc_holder/changeling/sting/false_armblade - name = "False Armblade Sting" - desc = "We silently sting a human, injecting a retrovirus that mutates their arm to temporarily appear as an armblade." - helptext = "The victim will form an armblade much like a changeling would, except the armblade is dull and useless." - sting_icon = "sting_armblade" - chemical_cost = 20 - dna_cost = 1 - -/obj/item/weapon/melee/arm_blade/false - desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." - force = 5 //Basically as strong as a punch - -/obj/item/weapon/melee/arm_blade/false/afterattack(atom/target, mob/user, proximity) - return - -/obj/effect/proc_holder/changeling/sting/false_armblade/can_sting(mob/user, mob/target) - if(!..()) - return - if((target.disabilities & HUSK) || !target.has_dna()) - to_chat(user, "Our sting appears ineffective against its DNA.") - return 0 - return 1 - -/obj/effect/proc_holder/changeling/sting/false_armblade/sting_action(mob/user, mob/target) - add_logs(user, target, "stung", object="falso armblade sting") - - if(!target.drop_item()) - to_chat(user, "The [target.get_active_held_item()] is stuck to their hand, you cannot grow a false armblade over it!") - return - - if(ismonkey(target)) - to_chat(user, "Our genes cry out as we sting [target.name]!") - - var/obj/item/weapon/melee/arm_blade/false/blade = new(target,1) - target.put_in_hands(blade) - target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "Your arm twists and mutates, transforming into a horrific monstrosity!", "You hear organic matter ripping and tearing!") - playsound(target, 'sound/effects/blobattack.ogg', 30, 1) - - addtimer(CALLBACK(src, .proc/remove_fake, target, blade), 600) - return TRUE - -/obj/effect/proc_holder/changeling/sting/false_armblade/proc/remove_fake(mob/target, obj/item/weapon/melee/arm_blade/false/blade) - playsound(target, 'sound/effects/blobattack.ogg', 30, 1) - target.visible_message("With a sickening crunch, \ - [target] reforms their [blade.name] into an arm!", - "[blade] reforms back to normal.", - "Your eyes burn horrifically!") - target.become_nearsighted() - target.blind_eyes(20) - target.blur_eyes(40) - return TRUE - -/obj/effect/proc_holder/changeling/sting/LSD - name = "Hallucination Sting" - desc = "Causes terror in the target." - helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect occurs after 30 to 60 seconds." - sting_icon = "sting_lsd" - chemical_cost = 10 - dna_cost = 1 - -/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) - add_logs(user, target, "stung", "LSD sting") - addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(300,600)) - return TRUE - -/obj/effect/proc_holder/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) - if(target) - target.hallucination = max(400, target.hallucination) - -/obj/effect/proc_holder/changeling/sting/cryo - name = "Cryogenic Sting" - desc = "We silently sting a human with a cocktail of chemicals that freeze them." - helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing." - sting_icon = "sting_cryo" - chemical_cost = 15 - dna_cost = 2 - -/obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) - add_logs(user, target, "stung", "cryo sting") - if(target.reagents) - target.reagents.add_reagent("frostoil", 30) - return TRUE + C.updateappearance(mutcolor_update=1) + + +/obj/effect/proc_holder/changeling/sting/false_armblade + name = "False Armblade Sting" + desc = "We silently sting a human, injecting a retrovirus that mutates their arm to temporarily appear as an armblade." + helptext = "The victim will form an armblade much like a changeling would, except the armblade is dull and useless." + sting_icon = "sting_armblade" + chemical_cost = 20 + dna_cost = 1 + +/obj/item/weapon/melee/arm_blade/false + desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." + force = 5 //Basically as strong as a punch + +/obj/item/weapon/melee/arm_blade/false/afterattack(atom/target, mob/user, proximity) + return + +/obj/effect/proc_holder/changeling/sting/false_armblade/can_sting(mob/user, mob/target) + if(!..()) + return + if((target.disabilities & HUSK) || !target.has_dna()) + to_chat(user, "Our sting appears ineffective against its DNA.") + return 0 + return 1 + +/obj/effect/proc_holder/changeling/sting/false_armblade/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", object="falso armblade sting") + + if(!target.drop_item()) + to_chat(user, "The [target.get_active_held_item()] is stuck to their hand, you cannot grow a false armblade over it!") + return + + if(ismonkey(target)) + to_chat(user, "Our genes cry out as we sting [target.name]!") + + var/obj/item/weapon/melee/arm_blade/false/blade = new(target,1) + target.put_in_hands(blade) + target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "Your arm twists and mutates, transforming into a horrific monstrosity!", "You hear organic matter ripping and tearing!") + playsound(target, 'sound/effects/blobattack.ogg', 30, 1) + + addtimer(CALLBACK(src, .proc/remove_fake, target, blade), 600) + return TRUE + +/obj/effect/proc_holder/changeling/sting/false_armblade/proc/remove_fake(mob/target, obj/item/weapon/melee/arm_blade/false/blade) + playsound(target, 'sound/effects/blobattack.ogg', 30, 1) + target.visible_message("With a sickening crunch, \ + [target] reforms their [blade.name] into an arm!", + "[blade] reforms back to normal.", + "Your eyes burn horrifically!") + target.become_nearsighted() + target.blind_eyes(20) + target.blur_eyes(40) + return TRUE + +/obj/effect/proc_holder/changeling/sting/LSD + name = "Hallucination Sting" + desc = "Causes terror in the target." + helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect occurs after 30 to 60 seconds." + sting_icon = "sting_lsd" + chemical_cost = 10 + dna_cost = 1 + +/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) + add_logs(user, target, "stung", "LSD sting") + addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(300,600)) + return TRUE + +/obj/effect/proc_holder/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) + if(target) + target.hallucination = max(400, target.hallucination) + +/obj/effect/proc_holder/changeling/sting/cryo + name = "Cryogenic Sting" + desc = "We silently sting a human with a cocktail of chemicals that freeze them." + helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing." + sting_icon = "sting_cryo" + chemical_cost = 15 + dna_cost = 2 + +/obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", "cryo sting") + if(target.reagents) + target.reagents.add_reagent("frostoil", 30) + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm index 79dd366789..dcd160c601 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm @@ -46,7 +46,7 @@ /obj/effect/clockwork/sigil/proc/sigil_effects(mob/living/L) -//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer stun +//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer time /obj/effect/clockwork/sigil/transgression name = "dull sigil" desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground." @@ -69,10 +69,10 @@ if(iscultist(L)) to_chat(L, "\"Watch your step, wretch.\"") L.adjustBruteLoss(10) - L.Weaken(7) + L.Knockdown(140, FALSE) L.visible_message("[src] appears around [L] in a burst of light!", \ "[target_flashed ? "An unseen force":"The glowing sigil around you"] holds you in place!") - L.Stun(5) + L.Stun(100) new /obj/effect/temp_visual/ratvar/sigil/transgression(get_turf(src)) qdel(src) @@ -120,9 +120,9 @@ post_channel(L) if(is_eligible_servant(L)) to_chat(L, "\"You belong to me now.\"") - add_servant_of_ratvar(L) - L.Weaken(3) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with - L.Stun(3) + if(add_servant_of_ratvar(L)) + L.log_message("Conversion was done with a [sigil_name].", INDIVIDUAL_ATTACK_LOG) + L.Knockdown(60) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with if(iscarbon(L)) var/mob/living/carbon/C = L C.silent += 5 @@ -163,6 +163,7 @@ /obj/effect/clockwork/sigil/submission/accession/post_channel(mob/living/L) if(L.isloyal()) + L.log_message("Had their mindshield implant broken by a [sigil_name].", INDIVIDUAL_ATTACK_LOG) delete_on_finish = TRUE L.visible_message("[L] visibly trembles!", \ "[text2ratvar("You will be mine and his. This puny trinket will not stop me.")]") @@ -235,8 +236,7 @@ cyborg.visible_message("[cyborg] glows a brilliant orange!") var/previous_color = cyborg.color cyborg.color = list("#EC8A2D", "#EC8A2D", "#EC8A2D", rgb(0,0,0)) - var/datum/status_effect/cyborg_power_regen/CPR = cyborg.apply_status_effect(STATUS_EFFECT_POWERREGEN) - CPR.power_to_give = giving_power * 0.1 //ten ticks, restoring 10% each + cyborg.apply_status_effect(STATUS_EFFECT_POWERREGEN, giving_power * 0.1) //ten ticks, restoring 10% each animate(cyborg, color = previous_color, time = 100) addtimer(CALLBACK(cyborg, /atom/proc/update_atom_colour), 100) @@ -330,7 +330,7 @@ vitality_drained = L.maxHealth var/obj/effect/temp_visual/ratvar/sigil/vitality/V = new /obj/effect/temp_visual/ratvar/sigil/vitality(get_turf(src)) animate(V, alpha = 0, transform = matrix()*2, time = 8) - playsound(L, 'sound/magic/WandODeath.ogg', 50, 1) + playsound(L, 'sound/magic/wandodeath.ogg', 50, 1) L.visible_message("[L] collapses in on [L.p_them()]self as [src] flares bright blue!") to_chat(L, "\"[text2ratvar("Your life will not be wasted.")]\"") for(var/obj/item/W in L) @@ -358,7 +358,7 @@ L.revive(1, 1) var/obj/effect/temp_visual/ratvar/sigil/vitality/V = new /obj/effect/temp_visual/ratvar/sigil/vitality(get_turf(src)) animate(V, alpha = 0, transform = matrix()*2, time = 8) - playsound(L, 'sound/magic/Staff_Healing.ogg', 50, 1) + playsound(L, 'sound/magic/staff_healing.ogg', 50, 1) L.visible_message("[L] suddenly gets back up, [GLOB.ratvar_awakens ? "[L.p_their()] body dripping blue ichor":"even as [src] scatters into blue sparks around [L.p_them()]"]!", \ "\"[text2ratvar("You will be okay, child.")]\"") vitality -= revival_cost diff --git a/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm index 6eb176ad48..a3465fac05 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm @@ -18,10 +18,10 @@ their prowess. After a lost battle with Nar-Sian cultists, Inath-neq was struck down and stated in her dying breath, \ \"The Resonant Cogs shall not fall silent this day, but will come together to form a wheel that shall never stop turning.\" Ratvar, touched by this, granted Inath-neq an eternal body and \ merged her soul with those of the Cogs slain with her on the battlefield." - icon = 'icons/effects/187x381.dmi' + icon = 'icons/effects/119x268.dmi' icon_state = "inath-neq" - pixel_x = -77 - pixel_y = -174 + pixel_x = -59 + pixel_y = -134 /obj/effect/clockwork/general_marker/nezbere name = "Nezbere, the Brass Eidolon" @@ -29,10 +29,10 @@ clockwork_desc = "One of Ratvar's four generals. Nezbere is responsible for the design, testing, and creation of everything in Ratvar's domain, and his loyalty to Ratvar knows no bounds. \ It is said that Ratvar once asked him to destroy the plans for a weapon Nezbere had made that could have harmed him, and Nezbere responded by not only destroying the plans, \ but by taking his own life so that the device could never be replicated. Nezbere's zealotry is unmatched." - icon = 'icons/effects/340x428.dmi' + icon = 'icons/effects/237x321.dmi' icon_state = "nezbere" - pixel_x = -154 - pixel_y = -198 + pixel_x = -118 + pixel_y = -160 /obj/effect/clockwork/general_marker/sevtug name = "Sevtug, the Formless Pariah" @@ -40,10 +40,10 @@ clockwork_desc = "One of Ratvar's four generals. Sevtug taught him how to manipulate minds and is one of his oldest allies. Sevtug serves Ratvar loyally out of a hope that one day, he will \ be able to use a moment of weakness in the Justicar to usurp him, but such a day will never come. And so, he serves with dedication, if not necessarily any sort of decorum, never aware he is \ the one being made a fool of." - icon = 'icons/effects/211x247.dmi' + icon = 'icons/effects/166x195.dmi' icon_state = "sevtug" - pixel_x = -89 - pixel_y = -107 + pixel_x = -83 + pixel_y = -97 /obj/effect/clockwork/general_marker/nzcrentr name = "Nzcrentr, the Eternal Thunderbolt" @@ -51,7 +51,7 @@ clockwork_desc = "One of Ratvar's four generals. Before becoming one of Ratvar's generals, Nzcrentr sook out any and all sentient life to slaughter it for sport. \ Nzcrentr was coerced by Ratvar into entering a shell constructed by Nezbere, ostensibly made to grant Nzcrentr more power. In reality, the shell was made to trap and control it. \ Nzcrentr now serves loyally, though even one of Nezbere's finest creations was not enough to totally eliminate its will." - icon = 'icons/effects/254x361.dmi' + icon = 'icons/effects/274x385.dmi' icon_state = "nzcrentr" - pixel_x = -111 - pixel_y = -164 + pixel_x = -137 + pixel_y = -145 diff --git a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm index 5c1d3fb5fb..70ea2bb3f3 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm @@ -119,7 +119,7 @@ qdel(src) return FALSE if(!sender) - visible_message("[A] bounces off of [src]!") + visible_message("[A] bounces off [src]!") return FALSE if(!uses) return FALSE @@ -127,8 +127,8 @@ var/mob/living/user = A to_chat(user, "You pass through [src] and appear elsewhere!") linked_gateway.visible_message("A shape appears in [linked_gateway] before emerging!") - playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) - playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1) + playsound(src, 'sound/effects/empulse.ogg', 50, 1) + playsound(linked_gateway, 'sound/effects/empulse.ogg', 50, 1) transform = matrix() * 1.5 animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW) linked_gateway.transform = matrix() * 1.5 @@ -165,7 +165,7 @@ return FALSE var/input_target_key = input(invoker, "Choose a target to form a rift to.", "Spatial Gateway") as null|anything in possible_targets var/atom/movable/target = possible_targets[input_target_key] - if(!src || !input_target_key || !invoker || !invoker.canUseTopic(src, !issilicon(invoker)) || !is_servant_of_ratvar(invoker) || (istype(src, /obj/item) && invoker.get_active_held_item() != src) || !invoker.can_speak_vocal()) + if(!src || !input_target_key || !invoker || !invoker.canUseTopic(src, !issilicon(invoker)) || !is_servant_of_ratvar(invoker) || (isitem(src) && invoker.get_active_held_item() != src) || !invoker.can_speak_vocal()) return FALSE //if any of the involved things no longer exist, the invoker is stunned, too far away to use the object, or does not serve ratvar, or if the object is an item and not in the mob's active hand, fail if(!target) //if we have no target, but did have a key, let them retry to_chat(invoker, "That target no longer exists!") @@ -194,7 +194,7 @@ return procure_gateway(invoker, time_duration, gateway_uses, two_way) var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/CO = target if(CO.active) - to_chat(invoker, "That [target.name] is sustaining a gateway, and cannot recieve another!") + to_chat(invoker, "That [target.name] is sustaining a gateway, and cannot receive another!") return procure_gateway(invoker, time_duration, gateway_uses, two_way) var/efficiency = CO.get_efficiency_mod() gateway_uses = round(gateway_uses * (2 * efficiency), 1) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/fabrication_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/fabrication_helpers.dm index 1dd976d198..79dd8257f4 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/fabrication_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/fabrication_helpers.dm @@ -40,7 +40,7 @@ if(floor_tile == /obj/item/stack/tile/plasteel) new floor_tile(src) make_plating() - playsound(src, 'sound/items/Crowbar.ogg', 10, 1) //clink + playsound(src, 'sound/items/crowbar.ogg', 10, 1) //clink return list("operation_time" = 30, "new_obj_type" = /turf/open/floor/clockwork, "power_cost" = POWER_FLOOR, "spawn_dir" = SOUTH) /turf/open/floor/plating/asteroid/fabrication_vals(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator, silent) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm index 29f2363e40..16759c0f1c 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm @@ -28,7 +28,7 @@ desc = "Allows you to communicate with other Servants." button_icon_state = "hierophant" background_icon_state = "bg_clock" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS buttontooltipstyle = "clockcult" var/title = "Servant" var/span_for_name = "heavy_brass" diff --git a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm index 5faf3ee832..d6e56f38d5 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm @@ -5,7 +5,7 @@ for(var/mob/living/M in GLOB.living_mob_list) if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) servants++ - . = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) + . = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_JUDGEMENT = FALSE) //Drivers: always unlocked .[SCRIPTURE_SCRIPT] = (SSticker.scripture_states[SCRIPTURE_SCRIPT] || \ (servants >= SCRIPT_SERVANT_REQ && GLOB.clockwork_caches >= SCRIPT_CACHE_REQ)) @@ -13,9 +13,6 @@ .[SCRIPTURE_APPLICATION] = (SSticker.scripture_states[SCRIPTURE_APPLICATION] || \ (servants >= APPLICATION_SERVANT_REQ && GLOB.clockwork_caches >= APPLICATION_CACHE_REQ && GLOB.clockwork_construction_value >= APPLICATION_CV_REQ)) //Application: APPLICATION_SERVANT_REQ or more non-brain servants, APPLICATION_CACHE_REQ or more clockwork caches, and at least APPLICATION_CV_REQ CV - .[SCRIPTURE_REVENANT] = (SSticker.scripture_states[SCRIPTURE_REVENANT] || \ - (servants >= REVENANT_SERVANT_REQ && GLOB.clockwork_caches >= REVENANT_CACHE_REQ && GLOB.clockwork_construction_value >= REVENANT_CV_REQ)) - //Revenant: REVENANT_SERVANT_REQ or more non-brain servants, REVENANT_CACHE_REQ or more clockwork caches, and at least REVENANT_CV_REQ CV .[SCRIPTURE_JUDGEMENT] = (SSticker.scripture_states[SCRIPTURE_JUDGEMENT] || \ (servants >= JUDGEMENT_SERVANT_REQ && GLOB.clockwork_caches >= JUDGEMENT_CACHE_REQ && GLOB.clockwork_construction_value >= JUDGEMENT_CV_REQ && !unconverted_ai_exists)) //Judgement: JUDGEMENT_SERVANT_REQ or more non-brain servants, JUDGEMENT_CACHE_REQ or more clockwork caches, at least JUDGEMENT_CV_REQ CV, and there are no living, non-servant ais @@ -25,7 +22,7 @@ . = scripture_unlock_check() for(var/i in .) if(.[i] != previous_states[i]) - hierophant_message("Hierophant Network: [i] Scripture has been [.[i] ? "un":""]locked.") + hierophant_message("Hierophant Network: [i] Scripture has been [.[i] ? "un":""]locked.") //maybe admins fucked with scripture states? update_slab_info() /proc/get_unconverted_ais() diff --git a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm index d90111a7bf..790088e8d5 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm @@ -136,11 +136,10 @@ add_logs(ranged_ability_user, L, "purged of holy water with Sentinel's Compromise") L.visible_message("A blue light washes over [L], causing [L.p_them()] to briefly glow!", \ "You feel Inath-neq's power purging the darkness within you!") - playsound(targetturf, 'sound/magic/Staff_Healing.ogg', 50, 1) + playsound(targetturf, 'sound/magic/staff_healing.ogg', 50, 1) if(has_holy_water) L.reagents.remove_reagent("holywater", 1000) - to_chat(L, "Ratvar's light flares, banishing the darkness. Your devotion remains intact!") remove_ranged_ability() diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm index f30483a6af..6dec7258f6 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm @@ -220,5 +220,5 @@ /obj/item/clockwork/alloy_shards/pinion_lock name = "pinion lock" desc = "A dented and scratched gear. It's very heavy." - clockwork_desc = "A broken gear lock for pinion airlocks" + clockwork_desc = "A broken gear lock for pinion airlocks." icon_state = "pinion_lock" diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm.rej b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm.rej deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm index 05e8fc46f5..8bc6cb5603 100644 --- a/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm +++ b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm @@ -1,4 +1,4 @@ -//Judicial visor: Grants the ability to smite an area and stun the unfaithful nearby every thirty seconds. +//Judicial visor: Grants the ability to smite an area and knocking down the unfaithful nearby every thirty seconds. /obj/item/clothing/glasses/judicial_visor name = "judicial visor" desc = "A strange purple-lensed visor. Looking at it inspires an odd sense of guilt." @@ -145,7 +145,7 @@ return TRUE return FALSE -//Judicial marker: Created by the judicial visor. After three seconds, stuns any non-servants nearby and damages Nar-Sian cultists. +//Judicial marker: Created by the judicial visor. After three seconds, knocks down any non-Servants nearby and damages Nar-Sian cultists. /obj/effect/clockwork/judicial_marker name = "judicial marker" desc = "You get the feeling that you shouldn't be standing here." @@ -163,7 +163,7 @@ INVOKE_ASYNC(src, .proc/judicialblast) /obj/effect/clockwork/judicial_marker/proc/judicialblast() - playsound(src, 'sound/magic/MAGIC_MISSILE.ogg', 50, 1, 1, 1) + playsound(src, 'sound/magic/magic_missile.ogg', 50, 1, 1, 1) flick("judicial_marker", src) sleep(16) layer = ABOVE_ALL_MOB_LAYER @@ -184,11 +184,11 @@ if(!iscultist(L)) L.visible_message("[L] is struck by a judicial explosion!", \ "[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]") - L.Weaken(8) //stun targets for 14-16 seconds + L.Knockdown(160) //knocks down targets for 14-16 seconds else L.visible_message("[L] is struck by a judicial explosion!", \ "\"Keep an eye out, filth.\"\nA burst of heat crushes you against the ground!") - L.Weaken(4) //stun for 6-8 seconds, but set cultist targets on fire + L.Knockdown(80) //knocks down for 6-8 seconds, but set cultist targets on fire L.adjust_fire_stacks(2) L.IgniteMob() if(iscarbon(L)) diff --git a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm index a54b019d53..8ba151830b 100644 --- a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm +++ b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm @@ -50,7 +50,7 @@ if(is_servant_of_ratvar(user) || isobserver(user)) to_chat(user, "Stabbing a human you are pulling or have grabbed with the spear will impale them, doing massive damage and stunning.") if(!iscyborg(user)) - to_chat(user, "Throwing the spear will do massive damage, break the spear, and stun the target.") + to_chat(user, "Throwing the spear will do massive damage, break the spear, and knock down the target.") /obj/item/clockwork/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user) var/impaling = FALSE @@ -97,7 +97,7 @@ attack_cooldown = world.time + initial(attack_cooldown) //can't attack until we're done impaling if(target) new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(target), get_dir(user, target)) - target.Stun(2) //brief stun + target.Stun(80) //brief stun to_chat(user, "You prepare to remove your ratvarian spear from [target]...") var/remove_verb = pick("pull", "yank", "drag") if(do_after(user, 10, 1, target)) @@ -114,7 +114,7 @@ step(target, get_dir(user, target)) T = get_turf(target) B.forceMove(T) - target.Weaken(2) //then weaken if we stayed next to them + target.Knockdown(40) //then knockdown if we stayed next to them playsound(T, 'sound/weapons/thudswoosh.ogg', 50, 1) flash_color(target, flash_color="#911414", flash_time=8) else if(target) //it's a do_after, we gotta check again to make sure they didn't get deleted @@ -136,11 +136,9 @@ else if(!..()) if(!L.null_rod_check()) if(issilicon(L) || iscultist(L)) - L.Stun(6) - L.Weaken(6) + L.Knockdown(100) else - L.Stun(2) - L.Weaken(2) + L.Knockdown(40) break_spear(T) else ..() diff --git a/code/game/gamemodes/clock_cult/clock_items/replica_fabricator.dm b/code/game/gamemodes/clock_cult/clock_items/replica_fabricator.dm index 788d581810..a0ab79ba05 100644 --- a/code/game/gamemodes/clock_cult/clock_items/replica_fabricator.dm +++ b/code/game/gamemodes/clock_cult/clock_items/replica_fabricator.dm @@ -111,10 +111,6 @@ charge_delay = 2 /obj/item/clockwork/replica_fabricator/ratvar_act() - if(GLOB.nezbere_invoked) - charge_rate = 1250 - else - charge_rate = initial(charge_rate) if(GLOB.ratvar_awakens) uses_power = FALSE speed_multiplier = initial(speed_multiplier) * 0.25 @@ -141,7 +137,7 @@ to_chat(user, "[src] requires [POWER_WALL_TOTAL]W of power to produce brass sheets!") return modify_stored_power(-POWER_WALL_TOTAL) - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) new/obj/item/stack/tile/brass(user.loc, 5) to_chat(user, "You use [stored_power ? "some":"all"] of [src]'s power to produce 5 brass sheets. It now stores [get_power()]W/[get_max_power()]W of power.") @@ -240,7 +236,7 @@ user.visible_message("[user]'s [name] rapidly consumes [target]!", \ "Your [name] consumes [target].") - playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(target, 'sound/items/deconstruct.ogg', 50, 1) var/new_thing_type = fabrication_values["new_obj_type"] if(isturf(target)) //if our target is a turf, we're just going to ChangeTurf it and assume it'll work out. var/turf/T = target diff --git a/code/game/gamemodes/clock_cult/clock_mobs.dm b/code/game/gamemodes/clock_cult/clock_mobs.dm index 14c8246703..97a68fd321 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs.dm @@ -13,6 +13,7 @@ speak_emote = list("clanks", "clinks", "clunks", "clangs") verb_ask = "requests" verb_exclaim = "proclaims" + verb_whisper = "imparts" verb_yell = "harangues" initial_language_holder = /datum/language_holder/clockmob bubble_icon = "clock" diff --git a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm index 376526febb..7aebb6987b 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm @@ -272,8 +272,8 @@ target.changeNext_move(CLICK_CD_MELEE) blockchance = initial(blockchance) playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 30, 1, 0, 1) //clang - visible_message("[src] blocks [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!", \ - "You block [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!") + visible_message("[src] blocks [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!", \ + "You block [target && isitem(textobject) ? "[target]'s [textobject.name]":"\the [textobject]"]!") if(target && Adjacent(target)) if(prob(counterchance)) counterchance = initial(counterchance) diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index 9050d4569c..2b30099ac5 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -253,7 +253,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or to_chat(invoker, creator_message) var/obj/O = new object_path (get_turf(invoker)) O.ratvar_act() //update the new object so it gets buffed if ratvar is alive - if(istype(O, /obj/item)) + if(isitem(O)) invoker.put_in_hands(O) return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index 5844b69413..27bf4551eb 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -124,8 +124,7 @@ invoker.visible_message("The tendril, covered in blood, retracts from [invoker]'s head and back into the [slab.name]!", \ "Total agony overcomes you as the tendril is forced out early!") invoker.notransform = FALSE - invoker.Stun(5) - invoker.Weaken(5) + invoker.Knockdown(100) invoker.apply_damage(10, BRUTE, "head") slab.busy = null return FALSE @@ -272,7 +271,7 @@ /datum/clockwork_scripture/create_object/tinkerers_daemon descname = "Powered Structure, Component Generator" name = "Tinkerer's Daemon" - desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, is outnumbered by Servants by a ratio of 5:1, \ + desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, active daemons are outnumbered by Servants by a ratio of 5:1, \ and there is at least one existing cache." invocations = list("May this generator...", "...collect Engine parts that yet hold greatness!") channel_time = 80 @@ -289,19 +288,6 @@ quickbind = TRUE quickbind_desc = "Creates a Tinkerer's Daemon, which can rapidly collect components for power." -/datum/clockwork_scripture/create_object/tinkerers_daemon/check_special_requirements() - var/servants = 0 - for(var/mob/living/L in GLOB.living_mob_list) - if(is_servant_of_ratvar(L)) - servants++ - if(servants * 0.2 < GLOB.clockwork_daemons) - to_chat(invoker, "\"Daemons are already disabled, making more of them would be a waste.\"") - return FALSE - if(servants * 0.2 < GLOB.clockwork_daemons+1) - to_chat(invoker, "\"This daemon would be useless, friend.\"") - return FALSE - return ..() - //Clockwork Obelisk: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk at a power cost. /datum/clockwork_scripture/create_object/clockwork_obelisk diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm index 2989857f0d..e978309f57 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_cyborg.dm @@ -37,7 +37,7 @@ invocations = list("May heathens...", "...kneel under our force!") channel_time = 30 primary_component = BELLIGERENT_EYE - quickbind_desc = "Allows you to place a Judicial Marker to stun and damage a target location.
    Click your slab to disable." + quickbind_desc = "Allows you to place a Judicial Marker to knock down and damage non-Servants in an area.
    Click your slab to disable." slab_icon = "judicial" ranged_type = /obj/effect/proc_holder/slab/judicial ranged_message = "You charge the clockwork slab with judicial force.\n\ diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 2560e36cd4..7fa96f9507 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -26,10 +26,9 @@ //Judicial Visor: Creates a judicial visor, which can smite an area. /datum/clockwork_scripture/create_object/judicial_visor - descname = "Delayed Area Stun Glasses" + descname = "Delayed Area Knockdown Glasses" name = "Judicial Visor" - desc = "Forms a visor that, when worn, will grant the ability to smite an area, stunning, muting, and damaging non-Servants. \ - Cultists of Nar-Sie will be set on fire, though they will be stunned for half the time." + desc = "Forms a visor that, when worn, will grant the ability to smite an area, knocking down, muting, and damaging non-Servants." invocations = list("Grant me the flames of Engine!") channel_time = 10 consumed_components = list(BELLIGERENT_EYE = 1) @@ -42,14 +41,14 @@ primary_component = BELLIGERENT_EYE sort_priority = 2 quickbind = TRUE - quickbind_desc = "Creates a Judicial Visor, which can create a Judicial Marker at an area, stunning, muting, and damaging non-Servants after a delay." + quickbind_desc = "Creates a Judicial Visor, which can create a Judicial Marker at an area, knocking down, muting, and damaging non-Servants after a delay." //Vanguard: Provides twenty seconds of stun immunity. At the end of the twenty seconds, 25% of all stuns absorbed are applied to the invoker. /datum/clockwork_scripture/vanguard descname = "Self Stun Immunity" name = "Vanguard" - desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is stunned for the equivalent of 25% of all stuns they absorbed. \ + desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is knocked down for the equivalent of 25% of all stuns they absorbed. \ Excessive absorption will cause unconsciousness." invocations = list("Shield me...", "...from darkness!") channel_time = 30 @@ -171,14 +170,16 @@ return target && binding && target.buckled == binding && !is_servant_of_ratvar(target) && target.stat != DEAD /datum/clockwork_scripture/geis/scripture_effects() - return add_servant_of_ratvar(target) + . = add_servant_of_ratvar(target) + if(.) + add_logs(invoker, target, "Converted", object = "Geis") //Taunting Tirade: Channeled for up to five times over thirty seconds. Confuses non-servants that can hear it and allows movement for a brief time after each chant. /datum/clockwork_scripture/channeled/taunting_tirade descname = "Channeled, Mobile Confusion Trail" name = "Taunting Tirade" - desc = "Allows movement for five seconds, leaving a confusing and weakening trail. Chanted every second for up to thirty seconds." + desc = "Allows movement for five seconds, leaving a trail that confuses and knocks down. Chanted every second for up to thirty seconds." chant_invocations = list("Hostiles on my back!", "Enemies on my trail!", "Gonna try and shake my tail.", "Bogeys on my six!") chant_amount = 5 chant_interval = 10 @@ -188,7 +189,7 @@ primary_component = GEIS_CAPACITOR sort_priority = 6 quickbind = TRUE - quickbind_desc = "Allows movement for five seconds, leaving a confusing and weakening trail.
    Maximum 5 chants." + quickbind_desc = "Allows movement for five seconds, leaving a trail that confuses and knocks down.
    Maximum 5 chants." var/flee_time = 47 //allow fleeing for 5 seconds var/grace_period = 3 //very short grace period so you don't have to stop immediately var/datum/progressbar/progbar diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm index 2c6da828ea..6d8402ede0 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm @@ -251,7 +251,7 @@ channel_time = 20 consumed_components = list(REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 1) whispered = TRUE - usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and stun them, but break the spear." + usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and knock them down, but break the spear." tier = SCRIPTURE_SCRIPT primary_component = REPLICANT_ALLOY sort_priority = 8 @@ -275,7 +275,7 @@ desc = "Allows you to summon a Ratvarian spear to fight enemies." button_icon_state = "ratvarian_spear" background_icon_state = "bg_clock" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS buttontooltipstyle = "clockcult" var/cooldown = 0 var/base_cooldown = RATVARIAN_SPEAR_DURATION diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm index 5cbaa701fa..9b704101bf 100644 --- a/code/game/gamemodes/clock_cult/clock_structure.dm +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -175,13 +175,6 @@ SSobj.processing -= src return ..() -/obj/structure/destructible/clockwork/powered/ratvar_act() - ..() - if(GLOB.nezbere_invoked) - needs_power = FALSE - else - needs_power = initial(needs_power) - /obj/structure/destructible/clockwork/powered/process() var/powered = total_accessable_power() return powered == PROCESS_KILL ? 25 : powered //make sure we don't accidentally return the arbitrary PROCESS_KILL define diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm index 2190bccdd1..a795d21f25 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -69,7 +69,7 @@ if(!purpose_fulfilled) var/area/gate_area = get_area(src) hierophant_message("An Ark of the Clockwork Justicar has fallen at [gate_area.map_name]!") - send_to_playing_players(sound(null, 0, channel = 8)) + send_to_playing_players(sound(null, 0, channel = CHANNEL_JUSTICAR_ARK)) var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED SSshuttle.clearHostileEnvironment(src) if(!was_stranded && !purpose_fulfilled) @@ -88,7 +88,7 @@ resistance_flags |= INDESTRUCTIBLE countdown.stop() visible_message("[src] begins to pulse uncontrollably... you might want to run!") - send_to_playing_players(sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50)) + send_to_playing_players(sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = CHANNEL_JUSTICAR_ARK, volume = 50)) make_glow() glow.icon_state = "clockwork_gateway_disrupted" resistance_flags |= INDESTRUCTIBLE @@ -204,7 +204,7 @@ if(still_needs_components()) if(!first_sound_played) priority_announce("Massive energy anomaly detected on short-range scanners. Attempting to triangulate location...", "Anomaly Alert") - send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 10)) + send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 10)) first_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_components" @@ -229,7 +229,7 @@ switch(progress_in_seconds) if(-INFINITY to GATEWAY_REEBE_FOUND) if(!second_sound_played) - send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 30)) + send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 30)) second_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_charging" @@ -237,13 +237,13 @@ if(!third_sound_played) var/area/gate_area = get_area(src) priority_announce("Location of massive energy anomaly has been triangulated. Location: [gate_area.map_name].", "Anomaly Alert") - send_to_playing_players(sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 35)) + send_to_playing_players(sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 35)) third_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_active" if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) if(!fourth_sound_played) - send_to_playing_players(sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 40)) + send_to_playing_players(sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 40)) fourth_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_closing" @@ -254,7 +254,7 @@ purpose_fulfilled = TRUE make_glow() animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) - send_to_playing_players(sound('sound/effects/ratvar_rises.ogg', 0, channel = 8)) //End the sounds + send_to_playing_players(sound('sound/effects/ratvar_rises.ogg', 0, channel = CHANNEL_JUSTICAR_ARK)) //End the sounds sleep(125) make_glow() animate(glow, transform = matrix() * 3, alpha = 0, time = 5) diff --git a/code/game/gamemodes/clock_cult/clock_structures/geis_binding.dm b/code/game/gamemodes/clock_cult/clock_structures/geis_binding.dm index 84098fca57..03fb99cd58 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/geis_binding.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/geis_binding.dm @@ -13,7 +13,7 @@ icon = 'icons/effects/clockwork_effects.dmi' icon_state = "geisbinding_full" break_message = null - break_sound = 'sound/magic/Repulse.ogg' + break_sound = 'sound/magic/repulse.ogg' debris = list() can_buckle = TRUE buckle_lying = 0 @@ -72,7 +72,7 @@ L.resist() /obj/structure/destructible/clockwork/geis_binding/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) + playsound(src, 'sound/effects/empulse.ogg', 50, 1) /obj/structure/destructible/clockwork/geis_binding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() @@ -88,7 +88,7 @@ for(var/m in buckled_mobs) var/mob/living/L = m if(L) - L.Stun(1, 1, 1) + L.Stun(20, 1, 1) if(iscarbon(L)) var/mob/living/carbon/C = L C.silent += 4 diff --git a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm index 0722c98605..71c82c1a19 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm @@ -9,7 +9,7 @@ inactive_icon = "interdiction_lens" unanchored_icon = "interdiction_lens_unwrenched" break_message = "The lens flares a blinding violet before the totem beneath it shatters!" - break_sound = 'sound/effects/Glassbr3.ogg' + break_sound = 'sound/effects/glassbr3.ogg' debris = list(/obj/item/clockwork/alloy_shards/small = 2, \ /obj/item/clockwork/alloy_shards/large = 2, \ /obj/item/clockwork/component/belligerent_eye/lens_gem = 1) @@ -137,7 +137,7 @@ if(power_drained && power_drained >= MIN_CLOCKCULT_POWER && return_power(power_drained)) successfulprocess = TRUE - playsound(src, 'sound/items/PSHOOM.ogg', 50 * efficiency, 1, interdiction_range-7, 1) + playsound(src, 'sound/items/pshoom.ogg', 50 * efficiency, 1, interdiction_range-7, 1) if(!successfulprocess) forced_disable() diff --git a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm index dd26b5d404..def70d21de 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm @@ -60,6 +60,5 @@ M = MM break if(!M) - M = H.apply_status_effect(STATUS_EFFECT_MANIAMOTOR) - M.motor = src + M = H.apply_status_effect(STATUS_EFFECT_MANIAMOTOR, src) M.severity = Clamp(M.severity + ((11 - get_dist(src, H)) * efficiency * efficiency), 0, MAX_MANIA_SEVERITY) diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm index 9c7b5e9518..bb2be4e79c 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -50,9 +50,6 @@ if(GLOB.ratvar_awakens) damage_per_tick = 10 sight_range = 6 - else if(GLOB.nezbere_invoked) - damage_per_tick = 5 - sight_range = 5 else damage_per_tick = initial(damage_per_tick) sight_range = initial(sight_range) diff --git a/code/game/gamemodes/clock_cult/clock_structures/prolonging_prism.dm b/code/game/gamemodes/clock_cult/clock_structures/prolonging_prism.dm index 28cc82ff2e..e7c6de6b47 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/prolonging_prism.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/prolonging_prism.dm @@ -26,12 +26,9 @@ if(SSshuttle.emergency.mode == SHUTTLE_DOCKED || SSshuttle.emergency.mode == SHUTTLE_IGNITING || SSshuttle.emergency.mode == SHUTTLE_STRANDED || SSshuttle.emergency.mode == SHUTTLE_ESCAPE) to_chat(user, "An emergency shuttle has arrived and this prism is no longer useful; attempt to activate it to gain a partial refund of components used.") else - var/efficiency = get_efficiency_mod() - var/efficiency_time = get_efficiency_mod(TRUE) - to_chat(user, "It requires at least [get_delay_cost() * efficiency]W of power to attempt to delay the arrival of an emergency shuttle by \ - [2 * efficiency_time] minutes.") - to_chat(user, "This cost increases by [delay_cost_increase * 0.1]W for every 10 CV and [delay_cost_increase]W for every previous \ - activation.") + var/efficiency = get_efficiency_mod(TRUE) + to_chat(user, "It requires at least [get_delay_cost()]W of power to attempt to delay the arrival of an emergency shuttle by [2 * efficiency] minutes.") + to_chat(user, "This cost increases by [delay_cost_increase * 0.1]W for every 10 CV and [delay_cost_increase]W for every previous activation.") /obj/structure/destructible/clockwork/powered/prolonging_prism/forced_disable(bad_effects) if(active) @@ -58,8 +55,7 @@ if(SSshuttle.emergency.mode != SHUTTLE_CALL) to_chat(user, "No emergency shuttles are attempting to arrive at the station!") return 0 - var/efficiency = get_efficiency_mod() - if(!try_use_power(get_delay_cost() * efficiency)) + if(!try_use_power(get_delay_cost())) to_chat(user, "[src] needs more power to function!") return 0 delay_cost += delay_cost_increase diff --git a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm index c0f149cdef..2bf2c67bbb 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -24,7 +24,7 @@ O.ratvar_act() START_PROCESSING(SSobj, src) send_to_playing_players("\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"") - send_to_playing_players('sound/effects/ratvar_reveal.ogg') + sound_to_playing_players('sound/effects/ratvar_reveal.ogg') var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert") var/area/A = get_area(src) notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay) @@ -69,16 +69,19 @@ for(var/mob/living/L in GLOB.living_mob_list) //we want to know who's alive so we don't lose and retarget a single person if(L.z == z && !is_servant_of_ratvar(L) && L.mind) meals += L + if(GLOB.cult_narsie && GLOB.cult_narsie.z == z) + meals = list(GLOB.cult_narsie) //if you're in the way, handy for him, but ratvar only cares about nar-sie! + prey = GLOB.cult_narsie + if(get_dist(src, prey) <= 10) + clash() + return if(!prey) - for(var/obj/singularity/narsie/N in GLOB.singularities) - if(N.z == z) - prey = N - break if(!prey && LAZYLEN(meals)) + var/mob/living/L = prey prey = pick(meals) to_chat(prey, "\"You will do, heretic.\"\n\ You feel something massive turn its crushing focus to you...") - prey << 'sound/effects/ratvar_reveal.ogg' + L.playsound_local(prey, 'sound/effects/ratvar_reveal.ogg', 100, FALSE, pressure_affected = FALSE) else if((!istype(prey, /obj/singularity/narsie) && prob(10) && LAZYLEN(meals) > 1) || prey.z != z || !(prey in meals)) if(is_servant_of_ratvar(prey)) @@ -92,18 +95,14 @@ dir_to_step_in = get_dir(src, prey) //Unlike Nar-Sie, Ratvar ruthlessly chases down his target step(src, dir_to_step_in) -/obj/structure/destructible/clockwork/massive/ratvar/narsie_act() - if(clashing) - return FALSE +/obj/structure/destructible/clockwork/massive/ratvar/proc/clash() + if(clashing || prey != GLOB.cult_narsie) + return clashing = TRUE + GLOB.cult_narsie.clashing = TRUE to_chat(world, "\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"") to_chat(world, "\"Ratvar?! How?!\"") - for(var/obj/singularity/narsie/N in range(15, src)) - if(N.clashing) - continue - N.clashing = TRUE - clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES - break + clash_of_the_titans(GLOB.cult_narsie) //IT'S TIME FOR THE BATTLE OF THE AGES return TRUE //Put me in Reebe, will you? Ratvar has found and is going to fucking murder Nar-Sie @@ -111,7 +110,7 @@ var/winner = "Undeclared" var/base_victory_chance = 1 while(src && narsie) - send_to_playing_players('sound/magic/clockwork/ratvar_attack.ogg') + sound_to_playing_players('sound/magic/clockwork/ratvar_attack.ogg') sleep(5.2) for(var/mob/M in GLOB.mob_list) if(!isnewplayer(M)) @@ -125,7 +124,7 @@ winner = "Ratvar" break sleep(rand(2,5)) - send_to_playing_players('sound/magic/clockwork/narsie_attack.ogg') + sound_to_playing_players('sound/magic/clockwork/narsie_attack.ogg') sleep(7.4) for(var/mob/M in GLOB.mob_list) if(!isnewplayer(M)) @@ -139,13 +138,13 @@ if("Ratvar") send_to_playing_players("\"[pick("DIE! DIE! DIE!", "FILTH!!!", "SUFFER!!!", text2ratvar("ROT FOR CENTURIES AS I HAVE!!"))]\"\n\ \"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"") //nar-sie get out - send_to_playing_players('sound/magic/clockwork/anima_fragment_attack.ogg') - send_to_playing_players('sound/magic/demon_dies.ogg') + sound_to_playing_players('sound/magic/clockwork/anima_fragment_attack.ogg') + sound_to_playing_players('sound/magic/demon_dies.ogg', 50) clashing = FALSE qdel(narsie) if("Nar-Sie") send_to_playing_players("\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"") //Broken English - send_to_playing_players('sound/magic/demon_attack1.ogg') - send_to_playing_players('sound/magic/clockwork/anima_fragment_death.ogg') + sound_to_playing_players('sound/magic/demon_attack1.ogg') + sound_to_playing_players('sound/magic/clockwork/anima_fragment_death.ogg', 50) narsie.clashing = FALSE qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_structures/taunting_trail.dm b/code/game/gamemodes/clock_cult/clock_structures/taunting_trail.dm index 31d3639924..d29b4eeafa 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/taunting_trail.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/taunting_trail.dm @@ -2,7 +2,7 @@ /obj/structure/destructible/clockwork/taunting_trail name = "strange smoke" desc = "A cloud of purple smoke." - clockwork_desc = "A cloud of purple smoke that confuses and weakens non-Servants that enter it." + clockwork_desc = "A cloud of purple smoke that confuses and knocks down non-Servants that enter it." gender = PLURAL max_integrity = 5 obj_integrity = 5 @@ -11,7 +11,7 @@ icon = 'icons/effects/effects.dmi' icon_state = "smoke" break_message = null - break_sound = 'sound/magic/Teleport_app.ogg' + break_sound = 'sound/magic/teleport_app.ogg' debris = list() var/timerid @@ -35,7 +35,7 @@ return ..() /obj/structure/destructible/clockwork/taunting_trail/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src, 'sound/items/Welder.ogg', 50, 1) + playsound(src, 'sound/items/welder.ogg', 50, 1) /obj/structure/destructible/clockwork/taunting_trail/CanPass(atom/movable/mover, turf/target, height=0) return TRUE @@ -58,5 +58,5 @@ L.confused = min(L.confused + 15, 50) L.dizziness = min(L.dizziness + 15, 50) if(L.confused >= 25) - L.Weaken(Floor(L.confused * 0.04)) + L.Knockdown(Floor(L.confused * 0.8)) take_damage(max_integrity) diff --git a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm index b0a17338ff..b8f8b75199 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm @@ -2,7 +2,7 @@ /obj/structure/destructible/clockwork/powered/tinkerers_daemon name = "tinkerer's daemon" desc = "A strange machine with three small brass obelisks attached to it." - clockwork_desc = "An efficient machine that can rapidly produce components at a small power cost. It will only function if outnumbered by servants at a rate to 5:1." + clockwork_desc = "An efficient machine that can rapidly produce components at a small power cost. It will only function if active daemons are outnumbered by servants at a rate to 5:1." icon_state = "tinkerers_daemon" active_icon = "tinkerers_daemon" inactive_icon = "tinkerers_daemon" @@ -18,26 +18,12 @@ var/static/mutable_appearance/component_glow = mutable_appearance('icons/obj/clockwork_objects.dmi', "t_random_component") var/component_id_to_produce var/production_time = 0 //last time we produced a component - var/production_cooldown = 60 - -/obj/structure/destructible/clockwork/powered/tinkerers_daemon/Initialize() - . = ..() - GLOB.clockwork_daemons++ + var/production_cooldown = 70 /obj/structure/destructible/clockwork/powered/tinkerers_daemon/Destroy() - GLOB.clockwork_daemons-- + GLOB.active_daemons -= src return ..() -/obj/structure/destructible/clockwork/powered/tinkerers_daemon/ratvar_act() - ..() - if(GLOB.nezbere_invoked) - production_time = 0 - production_cooldown = initial(production_cooldown) * 0.5 - if(!active) - toggle(0) - else - production_cooldown = initial(production_cooldown) - /obj/structure/destructible/clockwork/powered/tinkerers_daemon/examine(mob/user) ..() if(is_servant_of_ratvar(user) || isobserver(user)) @@ -71,13 +57,6 @@ if(!anchored) to_chat(user, "[src] needs to be secured to the floor before it can be activated!") return FALSE - var/servants = 0 - for(var/mob/living/L in GLOB.living_mob_list) - if(is_servant_of_ratvar(L)) - servants++ - if(servants * 0.2 < GLOB.clockwork_daemons) - to_chat(user, "\"There are too few servants for this daemon to work.\"") - return if(!GLOB.clockwork_caches) to_chat(user, "\"You require a cache for this daemon to operate. Get to it.\"") return @@ -90,6 +69,13 @@ if(total_accessable_power() < min_power_usable) to_chat(user, "\"You need more power to activate this daemon, friend.\"") return + var/servants = 0 + for(var/mob/living/L in GLOB.living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(servants * 0.2 < 1) + to_chat(user, "\"There are too few servants for daemons to work.\"") + return var/choice = alert(user,"Activate Daemon...",,"Specific Component","Random Component","Cancel") switch(choice) if("Specific Component") @@ -102,7 +88,7 @@ for(var/mob/living/L in GLOB.living_mob_list) if(is_servant_of_ratvar(L)) servants++ - if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user), NO_DEXTERY) || active || !GLOB.clockwork_caches || servants * 0.2 < GLOB.clockwork_daemons) + if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user), NO_DEXTERY) || active || !GLOB.clockwork_caches || servants * 0.2 < 1) return if(!component_id_to_produce) to_chat(user, "You decide not to select a component and activate the daemon.") @@ -113,11 +99,18 @@ toggle(0, user) if("Random Component") component_id_to_produce = null + servants = 0 + for(var/mob/living/L in GLOB.living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user), NO_DEXTERY) || active || !GLOB.clockwork_caches || servants * 0.2 < 1) + return toggle(0, user) /obj/structure/destructible/clockwork/powered/tinkerers_daemon/toggle(fast_process, mob/living/user) . = ..() if(active) + GLOB.active_daemons += src var/component_color = get_component_color(component_id_to_produce) daemon_glow.color = component_color add_overlay(daemon_glow) @@ -127,6 +120,7 @@ production_time = world.time + production_cooldown //don't immediately produce when turned on after being off set_light(2, 0.9, get_component_color_bright(component_id_to_produce)) else + GLOB.active_daemons -= src cut_overlays() set_light(0) @@ -138,6 +132,14 @@ for(var/mob/living/L in GLOB.living_mob_list) if(is_servant_of_ratvar(L)) servants++ + while(servants * 0.2 < LAZYLEN(GLOB.active_daemons)) + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = GLOB.active_daemons[1] + if(!istype(D)) + break + if(D.active) + D.forced_disable(FALSE) + if(D == src) + return . = ..() var/min_power_usable = 0 if(!component_id_to_produce) @@ -148,7 +150,7 @@ min_power_usable = min(min_power_usable, get_component_cost(i)) else min_power_usable = get_component_cost(component_id_to_produce) - if(!GLOB.clockwork_caches || servants * 0.2 < GLOB.clockwork_daemons || . < min_power_usable) //if we don't have enough to produce the lowest or what we chose to produce, cancel out + if(!GLOB.clockwork_caches || . < min_power_usable) //if we don't have enough to produce the lowest or what we chose to produce, cancel out forced_disable(FALSE) return if(production_time <= world.time) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 730c7a5d82..e4af3c2d45 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -156,7 +156,7 @@ return 0 if(cult_mind.add_antag_datum(ANTAG_DATUM_CULT)) if(stun) - cult_mind.current.Paralyse(5) + cult_mind.current.Unconscious(100) return 1 /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun) @@ -167,7 +167,7 @@ cult_datum.silent = silent cult_datum.on_removal() if(stun) - cult_mind.current.Paralyse(5) + cult_mind.current.Unconscious(100) return TRUE /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) @@ -294,4 +294,4 @@ SSblackbox.add_details("cult_objective","cult_narsie|FAIL") SSticker.news_report = CULT_FAILURE text += "
    Objective #[obj_count]: [explanation]" - to_chat(world, text) \ No newline at end of file + to_chat(world, text) diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index 569da0bbf8..7b9a0e6699 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -4,7 +4,7 @@ /datum/action/innate/cult background_icon_state = "bg_demon" buttontooltipstyle = "cult" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS /datum/action/innate/cult/IsAvailable() if(!iscultist(owner)) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 02e8422575..17f0995fc1 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -14,7 +14,7 @@ /obj/item/weapon/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user) if(!iscultist(user)) - user.Weaken(5) + user.Knockdown(100) user.dropItemToGround(src, TRUE) user.visible_message("A powerful force shoves [user] away from [target]!", \ "\"You shouldn't play with sharp things. You'll poke someone's eye out.\"") @@ -28,7 +28,7 @@ /obj/item/weapon/melee/cultblade/ghost name = "eldritch sword" - force = 19 + force = 19 //can't break normal airlocks flags = NODROP|DROPDEL /obj/item/weapon/melee/cultblade/pickup(mob/living/user) @@ -69,7 +69,7 @@ desc = "A strong bola, bound with dark magic. Throw it to trip and slow your victim." icon_state = "bola_cult" breakouttime = 45 - weaken = 1 + knockdown = 10 /obj/item/clothing/head/culthood @@ -192,7 +192,7 @@ to_chat(user, "An overwhelming sense of nausea overpowers you!") user.dropItemToGround(src, TRUE) user.Dizzy(30) - user.Weaken(5) + user.Knockdown(100) else to_chat(user, "\"Trying to use things you don't own is bad, you know.\"") to_chat(user, "The armor squeezes at your body!") @@ -200,7 +200,7 @@ user.adjustBruteLoss(25) user.dropItemToGround(src, TRUE) -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, attack_text, isinhands) +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(current_charges) owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") current_charges-- @@ -244,7 +244,7 @@ to_chat(user, "An overwhelming sense of nausea overpowers you!") user.dropItemToGround(src, TRUE) user.Dizzy(30) - user.Weaken(5) + user.Knockdown(100) else to_chat(user, "\"Trying to use things you don't own is bad, you know.\"") to_chat(user, "The robes squeeze at your body!") @@ -260,13 +260,13 @@ darkness_view = 8 flash_protect = 1 -/obj/item/clothing/glasses/night/cultblind/equipped(mob/user, slot) +/obj/item/clothing/glasses/night/cultblind/equipped(mob/living/user, slot) ..() if(!iscultist(user)) to_chat(user, "\"You want to be blind, do you?\"") user.dropItemToGround(src, TRUE) user.Dizzy(30) - user.Weaken(5) + user.Knockdown(100) user.blind_eyes(30) /obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater @@ -283,10 +283,10 @@ icon_state ="shuttlecurse" var/global/curselimit = 0 -/obj/item/device/shuttle_curse/attack_self(mob/user) +/obj/item/device/shuttle_curse/attack_self(mob/living/user) if(!iscultist(user)) user.dropItemToGround(src, TRUE) - user.Weaken(5) + user.Knockdown(100) to_chat(user, "A powerful force shoves you away from [src]!") return if(curselimit > 1) @@ -301,7 +301,7 @@ var/timer = SSshuttle.emergency.timeLeft(1) + cursetime SSshuttle.emergency.setTimer(timer) to_chat(user, "You shatter the orb! A dark essence spirals into the air, then disappears.") - playsound(user.loc, 'sound/effects/Glassbr1.ogg', 50, 1) + playsound(user.loc, 'sound/effects/glassbr1.ogg', 50, 1) qdel(src) sleep(20) var/global/list/curses diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 63e5b97b9e..1785f188a9 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -129,7 +129,7 @@ icon_state = "pylon" light_range = 5 light_color = LIGHT_COLOR_RED - break_sound = 'sound/effects/Glassbr2.ogg' + break_sound = 'sound/effects/glassbr2.ogg' break_message = "The blood-red crystal falls to the floor and shatters!" var/heal_delay = 25 var/last_heal = 0 diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 93f6ee8172..049b8fe62b 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -218,7 +218,7 @@ This file contains the arcane tome files. if(!(A in GLOB.summon_spots)) // Check again to make sure they didn't move to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(GLOB.summon_spots)]!") return - priority_announce("Figments from an eldritch god are being summoned by [user] into [A.map_name] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg') + priority_announce("Figments from an eldritch god are being summoned by [user] into [A.map_name] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensional Affairs", 'sound/ai/spanomalies.ogg') for(var/B in spiral_range_turfs(1, user, 1)) var/obj/structure/emergency_shield/sanguine/N = new(B) shields += N diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 44ac937f71..713dc73cfb 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -357,7 +357,7 @@ structure_check() searches for nearby cultist structures required for the invoca L.visible_message("[L]'s eyes glow a defiant yellow!", \ "\"Stop resisting. You will be mi-\"\n\ \"Give up and you will feel pain unlike anything you've ever felt!\"") - L.Weaken(4) + L.Knockdown(80) else if(is_convertable) do_convert(L, invokers) else @@ -429,10 +429,10 @@ structure_check() searches for nearby cultist structures required for the invoca if(sacrificial) if(iscyborg(sacrificial)) - playsound(sacrificial, 'sound/magic/Disable_Tech.ogg', 100, 1) + playsound(sacrificial, 'sound/magic/disable_tech.ogg', 100, 1) sacrificial.dust() //To prevent the MMI from remaining else - playsound(sacrificial, 'sound/magic/Disintegrate.ogg', 100, 1) + playsound(sacrificial, 'sound/magic/disintegrate.ogg', 100, 1) sacrificial.gib() return TRUE @@ -603,19 +603,19 @@ structure_check() searches for nearby cultist structures required for the invoca visible_message("[src] glows blue for a moment before vanishing.") switch(invokers.len) if(1 to 2) - playsound(E, 'sound/items/Welder2.ogg', 25, 1) + playsound(E, 'sound/items/welder2.ogg', 25, 1) for(var/M in invokers) to_chat(M, "You feel a minute vibration pass through you...") if(3 to 6) - playsound(E, 'sound/magic/Disable_Tech.ogg', 50, 1) + playsound(E, 'sound/magic/disable_tech.ogg', 50, 1) for(var/M in invokers) - to_chat(M, "Your hair stands on end as a shockwave eminates from the rune!") + to_chat(M, "Your hair stands on end as a shockwave emanates from the rune!") if(7 to INFINITY) - playsound(E, 'sound/magic/Disable_Tech.ogg', 100, 1) + playsound(E, 'sound/magic/disable_tech.ogg', 100, 1) for(var/M in invokers) var/mob/living/L = M to_chat(L, "You chant in unison and a colossal burst of energy knocks you backward!") - L.Weaken(2) + L.Knockdown(40) qdel(src) //delete before pulsing because it's a delay reee empulse(E, 9*invokers.len, 12*invokers.len) // Scales now, from a single room to most of the station depending on # of chanters @@ -671,7 +671,7 @@ structure_check() searches for nearby cultist structures required for the invoca affecting.visible_message("[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.", \ "You are re-united with your physical form. [src] releases its hold over you.") affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED) - affecting.Weaken(3) + affecting.Knockdown(60) break if(affecting.stat == UNCONSCIOUS) if(prob(1)) @@ -958,4 +958,4 @@ structure_check() searches for nearby cultist structures required for the invoca "Your link to the world fades. Your form breaks apart.") for(var/obj/I in new_human) new_human.dropItemToGround(I, TRUE) - new_human.dust() \ No newline at end of file + new_human.dust() diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index eeafd50c41..61bf672250 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -169,8 +169,7 @@ target.visible_message("[target]'s holy weapon absorbs the talisman's light!", \ "Your holy weapon absorbs the blinding light!") else - target.Weaken(10) - target.Stun(10) + target.Knockdown(200) target.flash_act(1,1) if(issilicon(target)) var/mob/living/silicon/S = target diff --git a/code/game/gamemodes/devil/devil.dm b/code/game/gamemodes/devil/devil.dm index 31291ca143..c6f1620c90 100644 --- a/code/game/gamemodes/devil/devil.dm +++ b/code/game/gamemodes/devil/devil.dm @@ -31,8 +31,8 @@ return 2.5 // Will take four hits with a normal toolbox to crit. if(BANE_HARVEST) if(istype(weapon,/obj/item/weapon/reagent_containers/food/snacks/grown/)) - src.visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") - src.Weaken(2) + visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") + Knockdown(40) qdel(weapon) return 2 return 1 \ No newline at end of file diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index 57482c4a4e..661b0d79aa 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -23,13 +23,9 @@ bodyparts = list(/obj/item/bodypart/chest/devil, /obj/item/bodypart/head/devil, /obj/item/bodypart/l_arm/devil, /obj/item/bodypart/r_arm/devil, /obj/item/bodypart/r_leg/devil, /obj/item/bodypart/l_leg/devil) - - /mob/living/carbon/true_devil/Initialize() create_bodyparts() //initialize bodyparts - create_internal_organs() - grant_all_languages(omnitongue=TRUE) ..() @@ -37,9 +33,9 @@ internal_organs += new /obj/item/organ/brain internal_organs += new /obj/item/organ/tongue internal_organs += new /obj/item/organ/eyes + internal_organs += new /obj/item/organ/ears/invincible //Prevents hearing loss from poorly aimed fireballs. ..() - /mob/living/carbon/true_devil/proc/convert_to_archdevil() maxHealth = 500 // not an IMPOSSIBLE amount, but still near impossible. ascended = TRUE @@ -57,7 +53,6 @@ devilinfo.greet() mind.announce_objectives() - /mob/living/carbon/true_devil/death(gibbed) stat = DEAD ..(gibbed) @@ -90,10 +85,15 @@ msg += "*---------*
    " to_chat(user, msg) - /mob/living/carbon/true_devil/IsAdvancedToolUser() return 1 +/mob/living/carbon/true_devil/resist_buckle() + if(buckled) + buckled.user_unbuckle_mob(src,src) + visible_message("[src] easily breaks out of their handcuffs!", \ + "With just a thought your handcuffs fall off.") + /mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close = 0) if(incapacitated()) return 0 @@ -101,7 +101,7 @@ return 0 return 1 -/mob/living/carbon/true_devil/assess_threat() +/mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) return 666 /mob/living/carbon/true_devil/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) @@ -177,7 +177,7 @@ if ("disarm") if (!lying && !ascended) //No stealing the arch devil's pitchfork. if (prob(5)) - Paralyse(2) + Unconscious(40) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) add_logs(M, src, "pushed") visible_message("[M] has pushed down [src]!", \ diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 2b3e945c1f..4c2e117cd3 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -1,5 +1,5 @@ /proc/power_failure() - 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') + 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') for(var/obj/machinery/power/smes/S in GLOB.machines) if(istype(get_area(S), /area/ai_monitored/turret_protected) || S.z != ZLEVEL_STATION) continue @@ -46,7 +46,7 @@ /proc/power_restore() - priority_announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + priority_announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg') for(var/obj/machinery/power/apc/C in GLOB.machines) if(C.cell && C.z == ZLEVEL_STATION) C.cell.charge = C.cell.maxcharge @@ -68,7 +68,7 @@ /proc/power_restore_quick() - priority_announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + priority_announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg') for(var/obj/machinery/power/smes/S in GLOB.machines) if(S.z != ZLEVEL_STATION) continue diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index c6ffbcaf8d..fdc3aee2ae 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -1,26 +1,26 @@ -/datum/game_mode/extended - name = "secret extended" +/datum/game_mode/extended + name = "secret extended" config_tag = "secret_extended" - required_players = 0 - - announce_span = "notice" - announce_text = "Just have fun and enjoy the game!" - -/datum/game_mode/extended/pre_setup() - return 1 - -/datum/game_mode/extended/post_setup() - ..() - -/datum/game_mode/extended/announced - name = "extended" - config_tag = "extended" - -/datum/game_mode/extended/announced/generate_station_goals() - for(var/T in subtypesof(/datum/station_goal)) - var/datum/station_goal/G = new T - station_goals += G - G.on_report() - -/datum/game_mode/extended/announced/send_intercept(report = 0) - priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", 'sound/AI/commandreport.ogg') + required_players = 0 + + announce_span = "notice" + announce_text = "Just have fun and enjoy the game!" + +/datum/game_mode/extended/pre_setup() + return 1 + +/datum/game_mode/extended/post_setup() + ..() + +/datum/game_mode/extended/announced + name = "extended" + config_tag = "extended" + +/datum/game_mode/extended/announced/generate_station_goals() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = new T + station_goals += G + G.on_report() + +/datum/game_mode/extended/announced/send_intercept(report = 0) + priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", 'sound/ai/commandreport.ogg') diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 193c7a14b4..b906386d65 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -44,6 +44,7 @@ var/list/datum/station_goal/station_goals = list() + var/allow_persistence_save = TRUE /datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. to_chat(world, "The gamemode is: [name]!") @@ -54,7 +55,7 @@ /datum/game_mode/proc/can_start() var/playerC = 0 for(var/mob/dead/new_player/player in GLOB.player_list) - if((player.client)&&(player.ready)) + if((player.client)&&(player.ready == PLAYER_READY_TO_PLAY)) playerC++ if(!GLOB.Debug2) if(playerC < required_players || (maximum_players >= 0 && playerC > maximum_players)) @@ -268,42 +269,6 @@ if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) datum_cult_completion() - if(GLOB.borers.len) - var/borerwin = FALSE - var/borertext = "
    The borers were:" - for(var/mob/living/simple_animal/borer/B in GLOB.borers) - if((B.key || B.controlling) && B.stat != DEAD) - borertext += "
    [B.controlling ? B.victim.key : B.key] was [B.truename] (" - var/turf/location = get_turf(B) - if(location.z == ZLEVEL_CENTCOM && B.victim) - borertext += "escaped with host" - else - borertext += "failed" - borertext += ")" - to_chat(world, borertext) - - var/total_borers = 0 - for(var/mob/living/simple_animal/borer/B in GLOB.borers) - if((B.key || B.victim) && B.stat != DEAD) - total_borers++ - if(total_borers) - var/total_borer_hosts = 0 - for(var/mob/living/carbon/C in GLOB.mob_list) - var/mob/living/simple_animal/borer/D = C.has_brain_worms() - var/turf/location = get_turf(C) - if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) - total_borer_hosts++ - if(GLOB.total_borer_hosts_needed <= total_borer_hosts) - borerwin = TRUE - to_chat(world, "There were [total_borers] borers alive at round end!") - to_chat(world, "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [GLOB.total_borer_hosts_needed] hosts to escape.") - if(borerwin) - to_chat(world, "The borers were successful!") - else - to_chat(world, "The borers have failed!") - - CHECK_TICK - return 0 @@ -336,7 +301,7 @@ intercepttext += G.get_report() print_command_report(intercepttext, "Central Command Status Summary", announce=FALSE) - priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", 'sound/AI/intercept.ogg') + priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", 'sound/ai/intercept.ogg') if(GLOB.security_level < SEC_LEVEL_BLUE) set_security_level(SEC_LEVEL_BLUE) @@ -417,6 +382,7 @@ // Less if there are not enough valid players in the game entirely to make recommended_enemies. + /datum/game_mode/proc/num_players() . = 0 for(var/mob/dead/new_player/P in GLOB.player_list) @@ -592,4 +558,4 @@ /datum/game_mode/proc/declare_station_goal_completion() for(var/V in station_goals) var/datum/station_goal/G = V - G.print_result() \ No newline at end of file + G.print_result() diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 8b0903f4a6..8eb7947543 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -98,7 +98,7 @@ else playsound(loc, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/dominator/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) . = ..() @@ -228,4 +228,4 @@ gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") for(var/datum/gang/G in SSticker.mode.gangs) if(G != gang) - G.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) \ No newline at end of file + G.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 5b97280e9a..51d5d5150b 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ var/mob/living/carbon/carbon_mob = gangster_mind.current carbon_mob.silent = max(carbon_mob.silent, 5) carbon_mob.flash_act(1, 1) - gangster_mind.current.Stun(5) + gangster_mind.current.Stun(100) if(G.is_deconvertible) to_chat(gangster_mind.current, "You are now a member of the [G.name] Gang!") to_chat(gangster_mind.current, "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station.") @@ -241,7 +241,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ message_admins("[ADMIN_LOOKUPFLW(gangster_mind.current)] has been borged while being a member of the [gang.name] Gang. They are no longer a gangster.") else if(!silent) - gangster_mind.current.Paralyse(5) + gangster_mind.current.Unconscious(100) gangster_mind.current.visible_message("[gangster_mind.current] looks like they've given up the life of crime!") to_chat(gangster_mind.current, "You have been reformed! You are no longer a gangster!
    You try as hard as you can, but you can't seem to recall any of the identities of your former gangsters...
    ") gangster_mind.memory = "" diff --git a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm index ddb0ca4608..286145d6cf 100644 --- a/code/game/gamemodes/gang/gang_items.dm +++ b/code/game/gamemodes/gang/gang_items.dm @@ -345,7 +345,6 @@ if(spawn_msg) to_chat(user, spawn_msg) - /datum/gang_item/equipment/wetwork_boots name = "Wetwork boots" id = "wetwork" diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm index 40b0f02360..4357f31e83 100644 --- a/code/game/gamemodes/gang/gang_pen.dm +++ b/code/game/gamemodes/gang/gang_pen.dm @@ -35,7 +35,7 @@ cooldown(G) if(2) new /obj/item/device/gangtool/soldier(M) - M.Paralyse(5) + M.Unconscious(100) cooldown(G) if(1) to_chat(user, "This mind is resistant to recruitment!") diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 25cbce16e1..811b5d04e6 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -226,7 +226,7 @@ /obj/item/device/gangtool/proc/can_use(mob/living/carbon/human/user) if(!istype(user)) return 0 - if(user.restrained() || user.lying || user.stat || user.stunned || user.weakened) + if(user.incapacitated()) return 0 if(!(src in user.contents)) return 0 diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 556ac28732..c5baed144e 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -1,51 +1,318 @@ #define DEFAULT_DOOMSDAY_TIMER 4500 + +GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( + /obj/machinery/field/containment, + /obj/machinery/power/supermatter_shard, + /obj/machinery/doomsday_device, + /obj/machinery/nuclearbomb, + /obj/machinery/nuclearbomb/selfdestruct, + /obj/machinery/nuclearbomb/syndicate, + /obj/machinery/syndicatebomb, + /obj/machinery/syndicatebomb/badmin, + /obj/machinery/syndicatebomb/badmin/clown, + /obj/machinery/syndicatebomb/empty, + /obj/machinery/syndicatebomb/self_destruct, + /obj/machinery/syndicatebomb/training + ))) + +//The malf AI action subtype. All malf actions are subtypes of this. +/datum/action/innate/ai + name = "AI Action" + desc = "You aren't entirely sure what this does, but it's very beepy and boopy." + background_icon_state = "bg_tech_blue" + icon_icon = 'icons/mob/actions_AI.dmi' + var/mob/living/silicon/ai/owner_AI //The owner AI, so we don't have to typecast every time + var/uses //If we have multiple uses of the same power + var/auto_use_uses = TRUE //If we automatically use up uses on each activation + var/cooldown_period //If applicable, the time in deciseconds we have to wait before using any more modules + +/datum/action/innate/ai/Grant(mob/living/L) + . = ..() + if(!isAI(owner)) + WARNING("AI action [name] attempted to grant itself to non-AI mob [L.real_name] ([L.key])!") + qdel(src) + else + owner_AI = owner + +/datum/action/innate/ai/IsAvailable() + . = ..() + if(owner_AI && owner_AI.malf_cooldown > world.time) + return + +/datum/action/innate/ai/Trigger() + . = ..() + if(auto_use_uses) + adjust_uses(-1) + if(cooldown_period) + owner_AI.malf_cooldown = world.time + cooldown_period + +/datum/action/innate/ai/proc/adjust_uses(amt, silent) + uses += amt + if(!silent && uses) + to_chat(owner, "[name] now has [uses] use[uses > 1 ? "s" : ""] remaining.") + if(!uses) + if(initial(uses) > 1) //no need to tell 'em if it was one-use anyway! + to_chat(owner, "[name] has run out of uses!") + qdel(src) + +//Framework for ranged abilities that can have different effects by left-clicking stuff. +/datum/action/innate/ai/ranged + name = "Ranged AI Action" + auto_use_uses = FALSE //This is so we can do the thing and disable/enable freely without having to constantly add uses + var/obj/effect/proc_holder/ranged_ai/linked_ability //The linked proc holder that contains the actual ability code + var/linked_ability_type //The path of our linked ability + +/datum/action/innate/ai/ranged/New() + if(!linked_ability_type) + WARNING("Ranged AI action [name] attempted to spawn without a linked ability!") + qdel(src) //uh oh! + return + linked_ability = new linked_ability_type() + linked_ability.attached_action = src + ..() + +/datum/action/innate/ai/ranged/adjust_uses(amt, silent) + uses += amt + if(!silent && uses) + to_chat(owner, "[name] now has [uses] use[uses > 1 ? "s" : ""] remaining.") + if(!uses) + if(initial(uses) > 1) //no need to tell 'em if it was one-use anyway! + to_chat(owner, "[name] has run out of uses!") + Remove(owner) + QDEL_IN(src, 100) //let any active timers on us finish up + +/datum/action/innate/ai/ranged/Destroy() + QDEL_NULL(linked_ability) + return ..() + +/datum/action/innate/ai/ranged/Activate() + linked_ability.toggle(owner) + return TRUE + +//The actual ranged proc holder. +/obj/effect/proc_holder/ranged_ai + var/enable_text = "Hello World!" //Appears when the user activates the ability + var/disable_text = "Goodbye Cruel World!" //Context clues! + var/datum/action/innate/ai/ranged/attached_action + +/obj/effect/proc_holder/ranged_ai/Destroy() + QDEL_NULL(attached_action) + return ..() + +/obj/effect/proc_holder/ranged_ai/proc/toggle(mob/user) + if(active) + remove_ranged_ability(disable_text) + else + add_ranged_ability(user, enable_text) + + +//The datum and interface for the malf unlock menu, which lets them choose actions to unlock. +/datum/module_picker + var/temp + var/processing_time = 50 + var/list/possible_modules + +/datum/module_picker/New() + possible_modules = list() + for(var/type in typesof(/datum/AI_Module)) + var/datum/AI_Module/AM = new type + if((AM.power_type && AM.power_type != /datum/action/innate/ai) || AM.upgrade) + possible_modules += AM + +/datum/module_picker/proc/remove_malf_verbs(mob/living/silicon/ai/AI) //Removes all malfunction-related abilities from the target AI. + for(var/datum/AI_Module/AM in possible_modules) + for(var/datum/action/A in AI.actions) + if(istype(A, initial(AM.power_type))) + qdel(A) + +/datum/module_picker/proc/use(mob/user) + var/list/dat = list() + dat += "Select use of processing time: (currently #[processing_time] left.)
    " + dat += "
    " + dat += "Install Module:
    " + dat += "The number afterwards is the amount of processing time it consumes.
    " + for(var/datum/AI_Module/large/module in possible_modules) + dat += "[module.module_name]\[?\] ([module.cost])
    " + for(var/datum/AI_Module/small/module in possible_modules) + dat += "[module.module_name]\[?\] ([module.cost])
    " + dat += "
    " + if(temp) + dat += "[temp]" + var/datum/browser/popup = new(user, "modpicker", "Malf Module Menu") + popup.set_content(dat.Join()) + popup.open() + +/datum/module_picker/Topic(href, href_list) + ..() + + if(!isAI(usr)) + return + var/mob/living/silicon/ai/A = usr + + if(A.stat == DEAD) + to_chat(A, "You are already dead!") + return + + for(var/datum/AI_Module/AM in possible_modules) + if (href_list[AM.mod_pick_name]) + + // Cost check + if(AM.cost > processing_time) + temp = "You cannot afford this module." + break + + var/datum/action/innate/ai/action = locate(AM.power_type) in A.actions + + // Give the power and take away the money. + if(AM.upgrade) //upgrade and upgrade() are separate, be careful! + AM.upgrade(A) + possible_modules -= AM + to_chat(A, AM.unlock_text) + A.playsound_local(A, AM.unlock_sound, 50, 0) + else + if(AM.power_type) + if(!action) //Unlocking for the first time + var/datum/action/AC = new AM.power_type + AC.Grant(A) + A.current_modules += new AM.type + temp = AM.description + if(AM.one_purchase) + possible_modules -= AM + if(AM.unlock_text) + to_chat(A, AM.unlock_text) + if(AM.unlock_sound) + A.playsound_local(A, AM.unlock_sound, 50, 0) + else //Adding uses to an existing module + action.uses += initial(action.uses) + temp = "Additional use[action.uses > 1 ? "s" : ""] added to [action.name]!" + processing_time -= AM.cost + + if(href_list["showdesc"]) + if(AM.mod_pick_name == href_list["showdesc"]) + temp = AM.description + use(usr) + + +//The base module type, which holds info about each ability. /datum/AI_Module - var/uses = 0 var/module_name var/mod_pick_name var/description = "" var/engaged = 0 var/cost = 5 - var/one_time = 0 + var/one_purchase = FALSE //If this module can only be purchased once. This always applies to upgrades, even if the variable is set to false. - var/power_type + var/power_type = /datum/action/innate/ai //If the module gives an active ability, use this. Mutually exclusive with upgrade. + var/upgrade //If the module gives a passive upgrade, use this. Mutually exclusive with power_type. + var/unlock_text = "Hello World!" //Text shown when an ability is unlocked + var/unlock_sound //Sound played when an ability is unlocked -/datum/AI_Module/large - uses = 1 +/datum/AI_Module/proc/upgrade(mob/living/silicon/AI/AI) //Apply upgrades! + return -/datum/AI_Module/small - uses = 5 +/datum/AI_Module/large //Big, powerful stuff that can only be used once. +/datum/AI_Module/small //Weak, usually localized stuff with multiple uses. + +//Doomsday Device: Starts the self-destruct timer. It can only be stopped by killing the AI completely. /datum/AI_Module/large/nuke_station module_name = "Doomsday Device" mod_pick_name = "nukestation" description = "Activate a weapon that will disintegrate all organic life on the station after a 450 second delay. Can only be used while on the station, will fail if your core is moved off station or destroyed." cost = 130 - one_time = 1 + one_purchase = TRUE + power_type = /datum/action/innate/ai/nuke_station + unlock_text = "You slowly, carefully, establish a connection with the on-station self-destruct. You can now activate it at any time." - power_type = /mob/living/silicon/ai/proc/nuke_station - -/mob/living/silicon/ai/proc/nuke_station() - set category = "Malfunction" - set name = "Doomsday Device" - - var/turf/T = get_turf(src) +/datum/action/innate/ai/nuke_station + name = "Doomsday Device" + desc = "Activates the doomsday device. This is not reversible." + button_icon_state = "doomsday_device" + auto_use_uses = FALSE +/datum/action/innate/ai/nuke_station/Activate() + var/turf/T = get_turf(owner) if(!istype(T) || T.z != ZLEVEL_STATION) - to_chat(src, "You cannot activate the doomsday device while off-station!") + to_chat(owner, "You cannot activate the doomsday device while off-station!") return + if(alert(owner, "Send arming signal? (true = arm, false = cancel)", "purge_all_life()", "confirm = TRUE;", "confirm = FALSE;") != "confirm = TRUE;") + return + active = TRUE + set_us_up_the_bomb(owner) - to_chat(src, "Doomsday device armed.") +/datum/action/innate/ai/nuke_station/proc/set_us_up_the_bomb(mob/living/owner) + set waitfor = FALSE + to_chat(owner, "run -o -a 'selfdestruct'") + sleep(5) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Running executable 'selfdestruct'...") + sleep(rand(10, 30)) + if(!owner || QDELETED(owner)) + return + owner.playsound_local(owner, 'sound/misc/bloblarm.ogg', 50, 0) + to_chat(owner, "!!! UNAUTHORIZED SELF-DESTRUCT ACCESS !!!") + to_chat(owner, "This is a class-3 security violation. This incident will be reported to Central Command.") + for(var/i in 1 to 3) + sleep(20) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Sending security report to Central Command.....[rand(0, 9) + (rand(20, 30) * i)]%") + sleep(3) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "auth 'akjv9c88asdf12nb' ******************") + owner.playsound_local(owner, 'sound/items/timer.ogg', 50, 0) + sleep(30) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Credentials accepted. Welcome, akjv9c88asdf12nb.") + owner.playsound_local(owner, 'sound/misc/server-ready.ogg', 50, 0) + sleep(5) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Arm self-destruct device? (Y/N)") + owner.playsound_local(owner, 'sound/misc/compiler-stage1.ogg', 50, 0) + sleep(20) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Y") + sleep(15) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Confirm arming of self-destruct device? (Y/N)") + owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0) + sleep(10) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Y") + sleep(rand(15, 25)) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Please repeat password to confirm.") + owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0) + sleep(14) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "******************") + sleep(40) + if(!owner || QDELETED(owner)) + return + to_chat(owner, "Credentials accepted. Transmitting arming signal...") + owner.playsound_local(owner, 'sound/misc/server-ready.ogg', 50, 0) + sleep(30) + if(!owner || QDELETED(owner)) + return priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') set_security_level("delta") - nuking = TRUE - var/obj/machinery/doomsday_device/DOOM = new (src) - doomsday_device = DOOM - doomsday_device.start() - verbs -= /mob/living/silicon/ai/proc/nuke_station + var/obj/machinery/doomsday_device/DOOM = new(owner_AI) + owner_AI.nuking = TRUE + owner_AI.doomsday_device = DOOM + owner_AI.doomsday_device.start() for(var/pinpointer in GLOB.pinpointer_list) var/obj/item/weapon/pinpointer/P = pinpointer P.switch_mode_to(TRACK_MALF_AI) //Pinpointers start tracking the AI wherever it goes + qdel(src) /obj/machinery/doomsday_device icon = 'icons/obj/machines/nuke_terminal.dmi' @@ -109,7 +376,7 @@ /obj/machinery/doomsday_device/proc/detonate(z_level = ZLEVEL_STATION) for(var/mob/M in GLOB.player_list) - M << 'sound/machines/Alarm.ogg' + M << 'sound/machines/alarm.ogg' sleep(100) for(var/mob/living/L in GLOB.mob_list) var/turf/T = get_turf(L) @@ -122,46 +389,43 @@ to_chat(world, "The AI cleansed the station of life with the doomsday device!") SSticker.force_ending = 1 + +//AI Turret Upgrade: Increases the health and damage of all turrets. /datum/AI_Module/large/upgrade_turrets module_name = "AI Turret Upgrade" mod_pick_name = "turret" description = "Improves the power and health of all AI turrets. This effect is permanent." cost = 30 - one_time = 1 + upgrade = TRUE + unlock_text = "You establish a power diversion to your turrets, upgrading their health and damage." + unlock_sound = 'sound/items/rped.ogg' - power_type = /mob/living/silicon/ai/proc/upgrade_turrets - -/mob/living/silicon/ai/proc/upgrade_turrets() - set category = "Malfunction" - set name = "Upgrade Turrets" - - if(!canUseTopic()) - return - - src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets - //Upgrade AI turrets around the world +/datum/AI_Module/large/upgrade_turrets/upgrade(mob/living/silicon/AI/AI) for(var/obj/machinery/porta_turret/ai/turret in GLOB.machines) turret.obj_integrity += 30 turret.lethal_projectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' - to_chat(src, "Turrets upgraded.") + +//Hostile Station Lockdown: Locks, bolts, and electrifies every airlock on the station. After 90 seconds, the doors reset. /datum/AI_Module/large/lockdown module_name = "Hostile Station Lockdown" mod_pick_name = "lockdown" - description = "Overload the airlock, blast door and fire control networks, locking them down. Caution! This command also electrifies all airlocks. The networks will automatically reset after 90 seconds." + description = "Overload the airlock, blast door and fire control networks, locking them down. Caution! This command also electrifies all airlocks. The networks will automatically reset after 90 seconds, briefly \ + opening all doors on the station." cost = 30 - one_time = 1 + one_purchase = TRUE + power_type = /datum/action/innate/ai/lockdown + unlock_text = "You upload a sleeper trojan into the door control systems. You can send a signal to set it off at any time." + unlock_sound = 'sound/machines/boltsdown.ogg' - power_type = /mob/living/silicon/ai/proc/lockdown - -/mob/living/silicon/ai/proc/lockdown() - set category = "Malfunction" - set name = "Initiate Hostile Lockdown" - - if(!canUseTopic()) - return +/datum/action/innate/ai/lockdown + name = "Lockdown" + desc = "Closes, bolts, and depowers every airlock, firelock, and blast door on the station. After 90 seconds, they will reset themselves." + button_icon_state = "lockdown" + uses = 1 +/datum/action/innate/ai/lockdown/Activate() for(var/obj/machinery/door/D in GLOB.airlocks) if(D.z != ZLEVEL_STATION) continue @@ -172,325 +436,367 @@ if(C) C.post_status("alert", "lockdown") - verbs -= /mob/living/silicon/ai/proc/lockdown - minor_announce("Hostile runtime detected in door controllers. Isolation Lockdown protocols are now in effect. Please remain calm.","Network Alert:", 1) - to_chat(src, "Lockdown Initiated. Network reset in 90 seconds.") + minor_announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.","Network Alert:", TRUE) + to_chat(owner, "Lockdown initiated. Network reset in 90 seconds.") addtimer(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "Automatic system reboot complete. Have a secure day.", "Network reset:"), 900) + +//Destroy RCDs: Detonates all non-cyborg RCDs on the station. /datum/AI_Module/large/destroy_rcd module_name = "Destroy RCDs" mod_pick_name = "rcd" - description = "Send a specialised pulse to detonate all hand-held and exosuit Rapid Cconstruction Devices on the station." + description = "Send a specialised pulse to detonate all hand-held and exosuit Rapid Construction Devices on the station." cost = 25 - one_time = 1 + one_purchase = TRUE + power_type = /datum/action/innate/ai/destroy_rcds + unlock_text = "After some improvisation, you rig your onboard radio to be able to send a signal to detonate all RCDs." + unlock_sound = 'sound/items/timer.ogg' - power_type = /mob/living/silicon/ai/proc/disable_rcd - -/mob/living/silicon/ai/proc/disable_rcd() - set category = "Malfunction" - set name = "Destroy RCDs" - set desc = "Detonate all RCDs on the station, while sparing onboard cyborg RCDs." - set waitfor = FALSE - - if(!canUseTopic() || malf_cooldown > world.time) - return +/datum/action/innate/ai/destroy_rcds + name = "Destroy RCDs" + desc = "Detonate all non-cyborg RCDs on the station." + button_icon_state = "detonate_rcds" + uses = 1 + cooldown_period = 100 +/datum/action/innate/ai/destroy_rcds/Activate() for(var/I in GLOB.rcd_list) if(!istype(I, /obj/item/weapon/construction/rcd/borg)) //Ensures that cyborg RCDs are spared. var/obj/item/weapon/construction/rcd/RCD = I RCD.detonate_pulse() + to_chat(owner, "RCD detonation pulse emitted.") + owner.playsound_local(owner, 'sound/machines/twobeep.ogg', 50, 0) - to_chat(src, "RCD detonation pulse emitted.") - malf_cooldown = world.time + 100 +//Unlock Mech Domination: Unlocks the ability to dominate mechs. Big shocker, right? /datum/AI_Module/large/mecha_domination - module_name = "Viral Mech Domination" + module_name = "Unlock Mech Domination" mod_pick_name = "mechjack" - description = "Hack into a mech's onboard computer, shunting all processes into it and ejecting any occupants. Once uploaded to the mech, it is impossible to leave.\ + description = "Allows you to hack into a mech's onboard computer, shunting all processes into it and ejecting any occupants. Once uploaded to the mech, it is impossible to leave.\ Do not allow the mech to leave the station's vicinity or allow it to be destroyed." cost = 30 - one_time = 1 + upgrade = TRUE + unlock_text = "Virus package compiled. Select a target mech at any time. You must remain on the station at all times. Loss of signal will result in total system lockout." + unlock_sound = 'sound/mecha/nominal.ogg' - power_type = /mob/living/silicon/ai/proc/mech_takeover +/datum/AI_Module/large/mecha_domination/upgrade(mob/living/silicon/ai/AI) + AI.can_dominate_mechs = TRUE //Yep. This is all it does. Honk! -/mob/living/silicon/ai/proc/mech_takeover() - set name = "Compile Mecha Virus" - set category = "Malfunction" - set desc = "Target a mech by clicking it. Click the appropriate command when ready." - if(stat) - return - can_dominate_mechs = 1 //Yep. This is all it does. Honk! - to_chat(src, "Virus package compiled. Select a target mech at any time. You must remain on the station at all times. Loss of signal will result in total system lockout.") - verbs -= /mob/living/silicon/ai/proc/mech_takeover +//Thermal Sensor Override: Unlocks the ability to disable all fire alarms from doing their job. /datum/AI_Module/large/break_fire_alarms module_name = "Thermal Sensor Override" mod_pick_name = "burnpigs" description = "Gives you the ability to override the thermal sensors on all fire alarms. This will remove their ability to scan for fire and thus their ability to alert. \ Anyone can check the fire alarm's interface and may be tipped off by its status." - one_time = 1 + one_purchase = TRUE cost = 25 + power_type = /datum/action/innate/ai/break_fire_alarms + unlock_text = "You replace the thermal sensing capabilities of all fire alarms with a manual override, allowing you to turn them off at will." + unlock_sound = 'goon/sound/machinery/firealarm.ogg' - power_type = /mob/living/silicon/ai/proc/break_fire_alarms - -/mob/living/silicon/ai/proc/break_fire_alarms() - set name = "Override Thermal Sensors" - set category = "Malfunction" - - if(!canUseTopic()) - return +/datum/action/innate/ai/break_fire_alarms + name = "Override Thermal Sensors" + desc = "Disables the automatic temperature sensing on all fire alarms, making them effectively useless." + button_icon_state = "break_fire_alarms" + uses = 1 +/datum/action/innate/ai/break_fire_alarms/Activate() for(var/obj/machinery/firealarm/F in GLOB.machines) if(F.z != ZLEVEL_STATION) continue - F.emagged = 1 - to_chat(src, "All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized.") - src.verbs -= /mob/living/silicon/ai/proc/break_fire_alarms + F.emagged = TRUE + to_chat(owner, "All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized.") + owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0) + +//Air Alarm Safety Override: Unlocks the ability to enable flooding on all air alarms. /datum/AI_Module/large/break_air_alarms module_name = "Air Alarm Safety Override" mod_pick_name = "allow_flooding" description = "Gives you the ability to disable safeties on all air alarms. This will allow you to use the environmental mode Flood, which disables scrubbers as well as pressure checks on vents. \ Anyone can check the air alarm's interface and may be tipped off by their nonfunctionality." - one_time = 1 + one_purchase = TRUE cost = 50 + power_type = /datum/action/innate/ai/break_air_alarms + unlock_text = "You remove the safety overrides on all air alarms, but you leave the confirm prompts open. You can hit 'Yes' at any time... you bastard." + unlock_sound = 'sound/effects/space_wind.ogg' - power_type = /mob/living/silicon/ai/proc/break_air_alarms - -/mob/living/silicon/ai/proc/break_air_alarms() - set name = "Disable Air Alarm Safeties" - set category = "Malfunction" - - if(!canUseTopic()) - return +/datum/action/innate/ai/break_air_alarms + name = "Override Air Alarm Safeties" + desc = "Enables the Flood setting on all air alarms." + button_icon_state = "break_air_alarms" + uses = 1 +/datum/action/innate/ai/break_air_alarms/Activate() for(var/obj/machinery/airalarm/AA in GLOB.machines) if(AA.z != ZLEVEL_STATION) continue - AA.emagged = 1 - to_chat(src, "All air alarm safeties on the station have been overriden. Air alarms may now use the Flood environmental mode.") - src.verbs -= /mob/living/silicon/ai/proc/break_air_alarms + AA.emagged = TRUE + to_chat(owner, "All air alarm safeties on the station have been overriden. Air alarms may now use the Flood environmental mode.") + owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0) + +//Overload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase. /datum/AI_Module/small/overload_machine module_name = "Machine Overload" mod_pick_name = "overload" - description = "Overloads an electrical machine, causing a small explosion. 2 uses." - uses = 2 + description = "Overheats an electrical machine, causing a small explosion and destroying it. Two uses per purchase." cost = 20 + power_type = /datum/action/innate/ai/ranged/overload_machine + unlock_text = "You enable the ability for the station's APCs to direct intense energy into machinery." + unlock_sound = 'sound/effects/comfyfire.ogg' //definitely not comfy, but it's the closest sound to "roaring fire" we have - power_type = /mob/living/silicon/ai/proc/overload_machine +/datum/action/innate/ai/ranged/overload_machine + name = "Overload Machine" + desc = "Overheats a machine, causing a small explosion after a short time." + button_icon_state = "overload_machine" + uses = 2 + linked_ability_type = /obj/effect/proc_holder/ranged_ai/overload_machine -/mob/living/silicon/ai/proc/overload_machine(obj/machinery/M in GLOB.machines) - set name = "Overload Machine" - set category = "Malfunction" +/datum/action/innate/ai/ranged/overload_machine/proc/detonate_machine(obj/machinery/M) + if(M && !QDELETED(M)) + explosion(get_turf(M), 0, 2, 3, 0) + if(M) //to check if the explosion killed it before we try to delete it + qdel(M) - if(!canUseTopic()) +/obj/effect/proc_holder/ranged_ai/overload_machine + active = FALSE + ranged_mousepointer = 'icons/effects/overload_machine_target.dmi' + enable_text = "You tap into the station's powernet. Click on a machine to detonate it, or use the ability again to cancel." + disable_text = "You release your hold on the powernet." + +/obj/effect/proc_holder/ranged_ai/overload_machine/InterceptClickOn(mob/living/caller, params, obj/machinery/target) + if(..()) return + if(ranged_ability_user.incapacitated()) + remove_ranged_ability() + return + if(!istype(target)) + to_chat(ranged_ability_user, "You can only overload machines!") + return + if(is_type_in_typecache(target, GLOB.blacklisted_malf_machines)) + to_chat(ranged_ability_user, "You cannot overload that device!") + return + ranged_ability_user.playsound_local(ranged_ability_user, "sparks", 50, 0) + attached_action.adjust_uses(-1) + target.audible_message("You hear a loud electrical buzzing sound coming from [target]!") + addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/overload_machine.proc/detonate_machine, target), 50) //kaboom! + remove_ranged_ability("Overcharging machine...") + return TRUE - if (istype(M, /obj/machinery)) - for(var/datum/AI_Module/small/overload_machine/overload in current_modules) - if(overload.uses > 0) - overload.uses -- - M.audible_message("You hear a loud electrical buzzing sound coming from [M]!") - to_chat(src, "Overloading machine circuitry...") - spawn(50) - if(M) - explosion(get_turf(M), 0,2,3,0) - qdel(M) - else to_chat(src, "Out of uses.") - else to_chat(src, "That's not a machine.") +//Override Machine: Allows the AI to override a machine, animating it into an angry, living version of itself. /datum/AI_Module/small/override_machine module_name = "Machine Override" mod_pick_name = "override" - description = "Overrides a machine's programming, causing it to rise up and attack everyone except other machines. 4 uses." - uses = 4 + description = "Overrides a machine's programming, causing it to rise up and attack everyone except other machines. Four uses." cost = 30 + power_type = /datum/action/innate/ai/ranged/override_machine + unlock_text = "You procure a virus from the Space Dark Web and distribute it to the station's machines." + unlock_sound = 'sound/machines/airlock_alien_prying.ogg' - power_type = /mob/living/silicon/ai/proc/override_machine +/datum/action/innate/ai/ranged/override_machine + name = "Override Machine" + desc = "Animates a targeted machine, causing it to attack anyone nearby." + button_icon_state = "override_machine" + uses = 4 + linked_ability_type = /obj/effect/proc_holder/ranged_ai/override_machine +/datum/action/innate/ai/ranged/override_machine/proc/animate_machine(obj/machinery/M) + if(M && !QDELETED(M)) + new/mob/living/simple_animal/hostile/mimic/copy/machine(get_turf(M), M, owner, 1) -/mob/living/silicon/ai/proc/override_machine(obj/machinery/M in GLOB.machines) - set name = "Override Machine" - set category = "Malfunction" +/obj/effect/proc_holder/ranged_ai/override_machine + active = FALSE + ranged_mousepointer = 'icons/effects/override_machine_target.dmi' + enable_text = "You tap into the station's powernet. Click on a machine to animate it, or use the ability again to cancel." + disable_text = "You release your hold on the powernet." - if(!canUseTopic()) +/obj/effect/proc_holder/ranged_ai/override_machine/InterceptClickOn(mob/living/caller, params, obj/machinery/target) + if(..()) return + if(ranged_ability_user.incapacitated()) + remove_ranged_ability() + return + if(!istype(target)) + to_chat(ranged_ability_user, "You can only animate machines!") + return + if(!target.can_be_overridden() || is_type_in_typecache(target, GLOB.blacklisted_malf_machines)) + to_chat(ranged_ability_user, "That machine can't be overriden!") + return + ranged_ability_user.playsound_local(ranged_ability_user, 'sound/misc/interference.ogg', 50, 0) + attached_action.adjust_uses(-1) + target.audible_message("You hear a loud electrical buzzing sound coming from [target]!") + addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/override_machine.proc/animate_machine, target), 50) //kabeep! + remove_ranged_ability("Sending override signal...") + return TRUE - if (istype(M, /obj/machinery)) - if(!M.can_be_overridden()) - to_chat(src, "Can't override this device.") - for(var/datum/AI_Module/small/override_machine/override in current_modules) - if(override.uses > 0) - override.uses -- - M.audible_message("You hear a loud electrical buzzing sound!") - to_chat(src, "Reprogramming machine behaviour...") - spawn(50) - if(M && !QDELETED(M)) - new /mob/living/simple_animal/hostile/mimic/copy/machine(get_turf(M), M, src, 1) - else to_chat(src, "Out of uses.") - else to_chat(src, "That's not a machine.") +//Robotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting. /datum/AI_Module/large/place_cyborg_transformer module_name = "Robotic Factory (Removes Shunting)" mod_pick_name = "cyborgtransformer" description = "Build a machine anywhere, using expensive nanomachines, that can convert a living human into a loyal cyborg slave when placed inside." cost = 100 - power_type = /mob/living/silicon/ai/proc/place_transformer - var/list/turfOverlays = list() + one_purchase = TRUE + power_type = /datum/action/innate/ai/place_transformer + unlock_text = "You make contact with Space Amazon and request a robotics factory for delivery." + unlock_sound = 'sound/machines/ping.ogg' -/datum/AI_Module/large/place_cyborg_transformer/New() - for(var/i=0;i<3;i++) - var/image/I = image("icon"='icons/turf/overlays.dmi') - turfOverlays += I +/datum/action/innate/ai/place_transformer + name = "Place Robotics Factory" + desc = "Places a machine that converts humans into cyborgs. Conveyor belts included!" + button_icon_state = "robotic_factory" + uses = 1 + auto_use_uses = FALSE //So we can attempt multiple times + var/list/turfOverlays + +/datum/action/innate/ai/place_transformer/New() ..() + for(var/i in 1 to 3) + var/image/I = image("icon"='icons/turf/overlays.dmi') + LAZYADD(turfOverlays, I) -/mob/living/silicon/ai/proc/place_transformer() - set name = "Place Robotic Factory" - set category = "Malfunction" - if(!canPlaceTransformer()) +/datum/action/innate/ai/place_transformer/Activate() + if(!owner_AI.can_place_transformer(src)) return - var/sure = alert(src, "Are you sure you want to place the machine here?", "Are you sure?", "Yes", "No") - if(sure == "Yes") - if(!canPlaceTransformer()) - return - var/turf/T = get_turf(eyeobj) - var/obj/machinery/transformer/conveyor = new(T) - conveyor.masterAI = src - playsound(T, 'sound/effects/phasein.ogg', 100, 1) - var/datum/AI_Module/large/place_cyborg_transformer/PCT = locate() in current_modules - PCT.uses -- - can_shunt = 0 - to_chat(src, "You cannot shunt anymore.") + active = TRUE + if(alert(owner, "Are you sure you want to place the machine here?", "Are you sure?", "Yes", "No") == "No") + active = FALSE + return + if(!owner_AI.can_place_transformer(src)) + return + var/turf/T = get_turf(owner_AI.eyeobj) + var/obj/machinery/transformer/conveyor = new(T) + conveyor.masterAI = owner + playsound(T, 'sound/effects/phasein.ogg', 100, 1) + owner_AI.can_shunt = TRUE + to_chat(owner, "You are no longer able to shunt your core to APCs.") + adjust_uses(-1) -/mob/living/silicon/ai/proc/canPlaceTransformer() - if(!eyeobj || !isturf(src.loc) || !canUseTopic()) - return - var/datum/AI_Module/large/place_cyborg_transformer/PCT = locate() in current_modules - if(!PCT || PCT.uses < 1) - alert(src, "Out of uses.") +/mob/living/silicon/ai/proc/remove_transformer_image(client/C, image/I, turf/T) + if(C && I.loc == T) + C.images -= I + +/mob/living/silicon/ai/proc/can_place_transformer(datum/action/innate/ai/place_transformer/action) + if(!eyeobj || !isturf(loc) || !canUseTopic() || !action) return var/turf/middle = get_turf(eyeobj) var/list/turfs = list(middle, locate(middle.x - 1, middle.y, middle.z), locate(middle.x + 1, middle.y, middle.z)) - var/alert_msg = "There isn't enough room. Make sure you are placing the machine in a clear area and on a floor." - var/success = 1 - if(turfs.len == 3) - for(var/n=1;n<4,n++) - var/fail - var/turf/T = turfs[n] - if(!isfloorturf(T)) - fail = 1 - var/datum/camerachunk/C = GLOB.cameranet.getCameraChunk(T.x, T.y, T.z) - if(!C.visibleTurfs[T]) - alert_msg = "We cannot get camera vision of this location." - fail = 1 - for(var/atom/movable/AM in T.contents) - if(AM.density) - fail = 1 - var/image/I = PCT.turfOverlays[n] - I.loc = T - client.images += I - if(fail) - success = 0 - I.icon_state = "redOverlay" - else - I.icon_state = "greenOverlay" - spawn(30) - if(client && (I.loc == T)) - client.images -= I - if(success) - return 1 - alert(src, alert_msg) + var/alert_msg = "There isn't enough room! Make sure you are placing the machine in a clear area and on a floor." + var/success = TRUE + for(var/n in 1 to 3) //We have to do this instead of iterating normally because of how overlay images are handled + var/turf/T = turfs[n] + if(!isfloorturf(T)) + success = FALSE + var/datum/camerachunk/C = GLOB.cameranet.getCameraChunk(T.x, T.y, T.z) + if(!C.visibleTurfs[T]) + alert_msg = "You don't have camera vision of this location!" + success = FALSE + for(var/atom/movable/AM in T.contents) + if(AM.density) + alert_msg = "That area must be clear of objects!" + success = FALSE + var/image/I = action.turfOverlays[n] + I.loc = T + client.images += I + I.icon_state = "[success ? "green" : "red"]Overlay" //greenOverlay and redOverlay for success and failure respectively + addtimer(CALLBACK(src, .proc/remove_transformer_image, client, I, T), 30) + if(!success) + to_chat(src, "[alert_msg]") + return success + +//Blackout: Overloads a random number of lights across the station. Three uses. /datum/AI_Module/small/blackout module_name = "Blackout" mod_pick_name = "blackout" - description = "Attempts to overload the lighting circuits on the station, destroying some bulbs. 3 uses." - uses = 3 + description = "Attempts to overload the lighting circuits on the station, destroying some bulbs. Three uses." cost = 15 + power_type = /datum/action/innate/ai/blackout + unlock_text = "You hook into the powernet and route bonus power towards the station's lighting." + unlock_sound = "sparks" - power_type = /mob/living/silicon/ai/proc/blackout +/datum/action/innate/ai/blackout + name = "Blackout" + desc = "Overloads lights across the station." + button_icon_state = "blackout" + uses = 3 -/mob/living/silicon/ai/proc/blackout() - set category = "Malfunction" - set name = "Blackout" +/datum/action/innate/ai/blackout/Activate() + for(var/obj/machinery/power/apc/apc in GLOB.apcs_list) + if(prob(30 * apc.overload)) + apc.overload_lighting() + else + apc.overload++ + to_chat(owner, "Overcurrent applied to the powernet.") + owner.playsound_local(owner, "sparks", 50, 0) - if(!canUseTopic()) - return - - for(var/datum/AI_Module/small/blackout/blackout in current_modules) - if(blackout.uses > 0) - blackout.uses -- - for(var/obj/machinery/power/apc/apc in GLOB.machines) - if(prob(30*apc.overload)) - apc.overload_lighting() - else apc.overload++ - to_chat(src, "Overcurrent applied to the powernet.") - else to_chat(src, "Out of uses.") +//Reactivate Camera Network: Reactivates up to 30 cameras across the station. /datum/AI_Module/small/reactivate_cameras module_name = "Reactivate Camera Network" mod_pick_name = "recam" description = "Runs a network-wide diagnostic on the camera network, resetting focus and re-routing power to failed cameras. Can be used to repair up to 30 cameras." - uses = 30 cost = 10 - one_time = 1 + one_purchase = TRUE + power_type = /datum/action/innate/ai/reactivate_cameras + unlock_text = "You deploy nanomachines to the cameranet." + unlock_sound = 'sound/items/wirecutter.ogg' - power_type = /mob/living/silicon/ai/proc/reactivate_cameras +/datum/action/innate/ai/reactivate_cameras + name = "Reactivate Cameras" + desc = "Reactivates disabled cameras across the station; remaining uses can be used later." + button_icon_state = "reactivate_cameras" + uses = 30 + auto_use_uses = FALSE + cooldown_period = 30 -/mob/living/silicon/ai/proc/reactivate_cameras() - set name = "Reactivate Cameranet" - set category = "Malfunction" +/datum/action/innate/ai/reactivate_cameras/New() + ..() + desc = "[desc] There are 30 reactivations remaining." + button.desc = desc - if(!canUseTopic() || malf_cooldown > world.time) - return - var/fixedcams = 0 //Tells the AI how many cams it fixed. Stats are fun. +/datum/action/innate/ai/reactivate_cameras/Activate() + var/fixed_cameras = 0 + for(var/V in GLOB.cameranet.cameras) + if(!uses) + break + var/obj/machinery/camera/C = V + if(!C.status || C.view_range != initial(C.view_range)) + C.toggle_cam(owner_AI, 0) //Reactivates the camera based on status. Badly named proc. + C.view_range = initial(C.view_range) + fixed_cameras++ + uses-- //Not adjust_uses() so it doesn't automatically delete or show a message + to_chat(owner, "Diagnostic complete! Cameras reactivated: [fixed_cameras]. Reactivations remaining: [uses].") + owner.playsound_local(owner, 'sound/items/wirecutter.ogg', 50, 0) + adjust_uses(0, TRUE) //Checks the uses remaining + if(src && uses) //Not sure if not having src here would cause a runtime, so it's here to be safe + desc = "[initial(desc)] There are [uses] reactivations remaining." - for(var/datum/AI_Module/small/reactivate_cameras/camera in current_modules) - for(var/obj/machinery/camera/C in GLOB.cameranet.cameras) - var/initial_range = initial(C.view_range) //To prevent calling the proc twice - if(camera.uses > 0) - if(!C.status) - C.toggle_cam(src, 0) //Reactivates the camera based on status. Badly named proc. - fixedcams++ - camera.uses-- - if(C.view_range != initial_range) - C.view_range = initial_range //Fixes cameras with bad focus. - camera.uses-- - fixedcams++ - //If a camera is both deactivated and has bad focus, it will cost two uses to fully fix! - else - to_chat(src, "Out of uses.") - verbs -= /mob/living/silicon/ai/proc/reactivate_cameras //It is useless now, clean it up. - break - to_chat(src, "Diagnostic complete! Operations completed: [fixedcams].") - - malf_cooldown = world.time + 30 +//Upgrade Camera Network: EMP-proofs all cameras, in addition to giving them x-ray vision. /datum/AI_Module/large/upgrade_cameras module_name = "Upgrade Camera Network" mod_pick_name = "upgradecam" - description = "Install broad-spectrum scanning and electrical redundancy firmware to the camera network, enabling EMP-Proofing and light-amplified X-ray vision." //I <3 pointless technobabble + description = "Install broad-spectrum scanning and electrical redundancy firmware to the camera network, enabling EMP-proofing and light-amplified X-ray vision." //I <3 pointless technobabble //This used to have motion sensing as well, but testing quickly revealed that giving it to the whole cameranet is PURE HORROR. - one_time = 1 + one_purchase = TRUE cost = 35 //Decent price for omniscience! + upgrade = TRUE + unlock_text = "OTA firmware distribution complete! Cameras upgraded: CAMSUPGRADED. Light amplification system online." + unlock_sound = 'sound/items/rped.ogg' - power_type = /mob/living/silicon/ai/proc/upgrade_cameras +/datum/AI_Module/large/upgrade_cameras/upgrade(mob/living/silicon/ai/AI) + AI.see_override = SEE_INVISIBLE_MINIMUM //Night-vision, without which X-ray would be very limited in power. + AI.update_sight() -/mob/living/silicon/ai/proc/upgrade_cameras() - set name = "Upgrade Cameranet" - set category = "Malfunction" - - if(!canUseTopic()) - return - - var/upgradedcams = 0 - see_override = SEE_INVISIBLE_MINIMUM //Night-vision, without which X-ray would be very limited in power. - update_sight() - - for(var/obj/machinery/camera/C in GLOB.cameranet.cameras) + var/upgraded_cameras = 0 + for(var/V in GLOB.cameranet.cameras) + var/obj/machinery/camera/C = V if(C.assembly) var/upgraded = 0 @@ -505,105 +811,22 @@ upgraded = 1 if(upgraded) - upgradedcams++ + upgraded_cameras++ - to_chat(src, "OTA firmware distribution complete! Cameras upgraded: [upgradedcams]. Light amplification system online.") - verbs -= /mob/living/silicon/ai/proc/upgrade_cameras - -/datum/module_picker - var/temp = null - var/processing_time = 50 - var/list/possible_modules = list() - -/datum/module_picker/New() - for(var/type in typesof(/datum/AI_Module)) - var/datum/AI_Module/AM = new type - if(AM.power_type != null) - src.possible_modules += AM - -/datum/module_picker/proc/remove_verbs(mob/living/silicon/ai/A) - - for(var/datum/AI_Module/AM in possible_modules) - A.verbs.Remove(AM.power_type) - - -/datum/module_picker/proc/use(mob/user) - var/dat - dat = "Select use of processing time: (currently #[src.processing_time] left.)
    " - dat += "
    " - dat += "Install Module:
    " - dat += "The number afterwards is the amount of processing time it consumes.
    " - for(var/datum/AI_Module/large/module in src.possible_modules) - dat += "[module.module_name]\[?\] ([module.cost])
    " - for(var/datum/AI_Module/small/module in src.possible_modules) - dat += "[module.module_name]\[?\] ([module.cost])
    " - dat += "
    " - if (src.temp) - dat += "[src.temp]" - var/datum/browser/popup = new(user, "modpicker", "Malf Module Menu") - popup.set_content(dat) - popup.open() - -/datum/module_picker/Topic(href, href_list) - ..() - - if(!isAI(usr)) - return - var/mob/living/silicon/ai/A = usr - - if(A.stat == DEAD) - to_chat(A, "You are already dead!") //Omae Wa Mou Shindeiru - return - - for(var/datum/AI_Module/AM in possible_modules) - if (href_list[AM.mod_pick_name]) - - // Cost check - if(AM.cost > src.processing_time) - temp = "You cannot afford this module." - break - - // Add new uses if we can, and it is allowed. - var/datum/AI_Module/already_AM = locate(AM.type) in A.current_modules - if(already_AM) - if(!AM.one_time) - already_AM.uses += AM.uses - src.processing_time -= AM.cost - temp = "Additional use added to [already_AM.module_name]" - break - else - temp = "This module is only needed once." - break - - // Give the power and take away the money. - A.view_core() //A BYOND bug requires you to be viewing your core before your verbs update - A.verbs += AM.power_type - A.current_modules += new AM.type - temp = AM.description - src.processing_time -= AM.cost - - if(href_list["showdesc"]) - if(AM.mod_pick_name == href_list["showdesc"]) - temp = AM.description - src.use(usr) + unlock_text = replacetext(unlock_text, "CAMSUPGRADED", "[upgraded_cameras]") //This works, since unlock text is called after upgrade() /datum/AI_Module/large/eavesdrop module_name = "Enhanced Surveillance" mod_pick_name = "eavesdrop" description = "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations." cost = 30 - one_time = 1 + one_purchase = TRUE + upgrade = TRUE + unlock_text = "OTA firmware distribution complete! Cameras upgraded: Enhanced surveillance package online." + unlock_sound = 'sound/items/rped.ogg' - power_type = /mob/living/silicon/ai/proc/surveillance +/datum/AI_Module/large/eavesdrop/upgrade(mob/living/silicon/ai/AI) + if(AI.eyeobj) + AI.eyeobj.relay_speech = TRUE -/mob/living/silicon/ai/proc/surveillance() - set category = "Malfunction" - set name = "Enhanced Surveillance" - - if(eyeobj) - eyeobj.relay_speech = TRUE - to_chat(src, "OTA firmware distribution complete! Cameras upgraded: Enhanced surveillance package online.") - verbs -= /mob/living/silicon/ai/proc/surveillance - - -#undef DEFAULT_DOOMSDAY_TIMER \ No newline at end of file +#undef DEFAULT_DOOMSDAY_TIMER diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index 6d4a678913..0b20694b58 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -1,55 +1,55 @@ -/datum/game_mode/meteor - name = "meteor" - config_tag = "meteor" - var/meteordelay = 2000 - var/nometeors = 0 - var/rampupdelta = 5 - required_players = 0 - - announce_span = "danger" - announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." - - -/datum/game_mode/meteor/process() - if(nometeors || meteordelay > world.time - SSticker.round_start_time) - return - - var/list/wavetype = GLOB.meteors_normal - var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 - - - if (prob(meteorminutes)) - wavetype = GLOB.meteors_threatening - - if (prob(meteorminutes/2)) - wavetype = GLOB.meteors_catastrophic - - var/ramp_up_final = Clamp(round(meteorminutes/rampupdelta), 1, 10) - - spawn_meteors(ramp_up_final, wavetype) - - -/datum/game_mode/meteor/declare_completion() - var/text - var/survivors = 0 - - for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD) - ++survivors - - if(player.onCentcom()) - text += "
    [player.real_name] escaped to the safety of Centcom." - else if(player.onSyndieBase()) - text += "
    [player.real_name] escaped to the (relative) safety of Syndicate Space." - else - text += "
    [player.real_name] survived but is stranded without any hope of rescue." - - - if(survivors) - to_chat(world, "The following survived the meteor storm:[text]") - else - to_chat(world, "Nobody survived the meteor storm!") - +/datum/game_mode/meteor + name = "meteor" + config_tag = "meteor" + var/meteordelay = 2000 + var/nometeors = 0 + var/rampupdelta = 5 + required_players = 0 + + announce_span = "danger" + announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." + + +/datum/game_mode/meteor/process() + if(nometeors || meteordelay > world.time - SSticker.round_start_time) + return + + var/list/wavetype = GLOB.meteors_normal + var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 + + + if (prob(meteorminutes)) + wavetype = GLOB.meteors_threatening + + if (prob(meteorminutes/2)) + wavetype = GLOB.meteors_catastrophic + + var/ramp_up_final = Clamp(round(meteorminutes/rampupdelta), 1, 10) + + spawn_meteors(ramp_up_final, wavetype) + + +/datum/game_mode/meteor/declare_completion() + var/text + var/survivors = 0 + + for(var/mob/living/player in GLOB.player_list) + if(player.stat != DEAD) + ++survivors + + if(player.onCentcom()) + text += "
    [player.real_name] escaped to the safety of Centcom." + else if(player.onSyndieBase()) + text += "
    [player.real_name] escaped to the (relative) safety of Syndicate Space." + else + text += "
    [player.real_name] survived but is stranded without any hope of rescue." + + + if(survivors) + to_chat(world, "The following survived the meteor storm:[text]") + else + to_chat(world, "Nobody survived the meteor storm!") + SSticker.mode_result = "end - evacuation" - ..() - return 1 + ..() + return 1 diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 3ce5a01cfa..9a78df55c9 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event pass_flags = PASSTABLE | PASSGRILLE hits = 1 hitpwr = 3 - meteorsound = 'sound/weapons/Gunshot_smg.ogg' + meteorsound = 'sound/weapons/gunshot_smg.ogg' meteordrop = list(/obj/item/weapon/ore/glass) threat = 1 diff --git a/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm index 574e48fc68..cc6eea6c2f 100644 --- a/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm +++ b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm @@ -2,6 +2,11 @@ dangerrating = 5 completed = 1 +/datum/objective/abductee/random + +/datum/objective/abductee/random/New() + explanation_text = pick(world.file2list("strings/abductee_objectives.txt")) + /datum/objective/abductee/steal explanation_text = "Steal all" @@ -28,7 +33,8 @@ /datum/objective/abductee/capture/New() var/list/jobs = SSjob.occupations.Copy() - for(var/datum/job/J in jobs) + for(var/X in jobs) + var/datum/job/J = X if(J.current_positions < 1) jobs -= J if(jobs.len > 0) @@ -37,134 +43,13 @@ else explanation_text += " someone." -/datum/objective/abductee/shuttle - explanation_text = "You must escape the station! Get the shuttle called!" - -/datum/objective/abductee/noclone - explanation_text = "Don't allow anyone to be cloned." - -/datum/objective/abductee/oxygen - explanation_text = "The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station." - -/datum/objective/abductee/blazeit - explanation_text = "Your body must be improved. Ingest as many drugs as you can." - -/datum/objective/abductee/yumyum - explanation_text = "You are hungry. Eat as much food as you can find." - -/datum/objective/abductee/insane - explanation_text = "You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL" - -/datum/objective/abductee/cannotmove - explanation_text = "Convince the crew that you are a paraplegic." - -/datum/objective/abductee/deadbodies - explanation_text = "Start a collection of corpses. Don't kill people to get these corpses." - -/datum/objective/abductee/floors - explanation_text = "Replace all the floor tiles with wood, carpeting, grass or bling." - -/datum/objective/abductee/POWERUNLIMITED - explanation_text = "Flood the station's powernet with as much electricity as you can." - -/datum/objective/abductee/pristine - explanation_text = "The CEO of Nanotrasen is coming! Ensure the station is in absolutely pristine condition." - -/datum/objective/abductee/nowalls - explanation_text = "The crew must get to know one another better. Break down the walls inside the station!" - -/datum/objective/abductee/nations - explanation_text = "Ensure your department prospers over all else." - -/datum/objective/abductee/abductception - explanation_text = "You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine." - -/datum/objective/abductee/summon - explanation_text = "The elder gods hunger. Gather a cult and conduct a ritual to summon one." - -/datum/objective/abductee/machine - explanation_text = "You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last." - -/datum/objective/abductee/calling - explanation_text = "Call forth a spirit from the other side." - /datum/objective/abductee/calling/New() var/mob/dead/D = pick(GLOB.dead_mob_list) if(D) explanation_text = "You know that [D] has perished. Hold a seance to call them from the spirit realm." -/datum/objective/abductee/social_experiment - explanation_text = "This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth." - -/datum/objective/abductee/vr - explanation_text = "It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR." - -/datum/objective/abductee/pets - explanation_text = "Nanotrasen is abusing the animals! Save as many as you can!" - -/datum/objective/abductee/defect - explanation_text = "Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can." - -/datum/objective/abductee/promote - explanation_text = "Climb the corporate ladder all the way to the top!" - -/datum/objective/abductee/science - explanation_text = "So much lies undiscovered. Look deeper into the machinations of the universe." - -/datum/objective/abductee/build - explanation_text = "Expand the station." - -/datum/objective/abductee/pragnant - explanation_text = "You are pregnant and soon due. Find a safe place to deliver your baby." - -/datum/objective/abductee/engine - explanation_text = "Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds." - -/datum/objective/abductee/music - explanation_text = "You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument!" - -/datum/objective/abductee/clown - explanation_text = "The clown is not funny. You can do better! Steal his audience and make the crew laugh!" - -/datum/objective/abductee/party - explanation_text = "You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE!" - -/datum/objective/abductee/pets - explanation_text = "All the pets around here suck. You need to make them cooler. Replace them with exotic beasts!" - -/datum/objective/abductee/conspiracy - explanation_text = "The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people!" - -/datum/objective/abductee/stalker - explanation_text = "The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it." - -/datum/objective/abductee/narrator - explanation_text = "You're the narrator of this tale. Follow around the protagonists to tell their story." - -/datum/objective/abductee/lurve - explanation_text = "You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you!" - -/datum/objective/abductee/sixthsense - explanation_text = "You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo." - -/datum/objective/abductee/toupefallacy - explanation_text = "There are alien parasites masquerading as people's hair. Save people from this invasion." - -/datum/objective/abductee/everyoneisthesame - explanation_text = "There is only one other person in existence, he is just really good at pretending to be multiple people." - /datum/objective/abductee/forbiddennumber - explanation_text = "Numbers, how do they work?" //Shouldn't ever see this. /datum/objective/abductee/forbiddennumber/New() var/number = rand(2,10) explanation_text = "Ignore anything in a set of [number], they don't exist." - -/datum/objective/abductee/foreignname - explanation_text = "No matter how they say it, other people keep mispronouncing your name. Be sure to correct them whenever possible." - -/datum/objective/abductee/pairoff - explanation_text = "Being alone and in large groups are both frightening. Try to be alone with only one other person whenever possible." - -/datum/objective/abductee/takeblame - explanation_text = "Try to get formally executed for a crime you didn't commit, without a false confession." diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 044805c697..22a613fe96 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -83,7 +83,7 @@ M.cut_overlays() M.regenerate_icons() -/obj/item/clothing/suit/armor/abductor/vest/hit_reaction() +/obj/item/clothing/suit/armor/abductor/vest/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) DeactivateStealth() return 0 @@ -108,9 +108,9 @@ return var/mob/living/carbon/human/M = loc M.adjustStaminaLoss(-75) - M.SetParalysis(0) - M.SetStunned(0) - M.SetWeakened(0) + M.SetUnconscious(0) + M.SetStun(0) + M.SetKnockdown(0) combat_cooldown = 0 START_PROCESSING(SSobj, src) @@ -393,8 +393,8 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) - playsound(L, 'sound/weapons/Genhit.ogg', 50, 1) + if(H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) + playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return 0 switch (mode) @@ -414,13 +414,12 @@ Congratulations! You are now trained for invasive xenobiology research!"} user.lastattacked = L L.lastattacker = user - L.Stun(7) - L.Weaken(7) + L.Knockdown(140) L.apply_effect(STUTTER, 7) L.visible_message("[user] has stunned [L] with [src]!", \ "[user] has stunned you with [src]!") - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) if(ishuman(L)) var/mob/living/carbon/human/H = L @@ -432,8 +431,8 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(L.incapacitated(TRUE, TRUE)) L.visible_message("[user] has induced sleep in [L] with [src]!", \ "You suddenly feel very drowsy!") - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) - L.Sleeping(60) + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) + L.Sleeping(1200) add_logs(user, L, "put to sleep") else L.drowsyness += 1 @@ -608,7 +607,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} to_chat(user, "You start disassembling [src]...") playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) for(var/i = 1, i <= framestackamount, i++) new framestack(get_turf(src)) qdel(src) @@ -704,7 +703,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(WT.remove_fuel(0,user)) user.visible_message("[user] disassembles the airlock assembly.", \ "You start to disassemble the airlock assembly...") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) if(do_after(user, 40*W.toolspeed, target = src)) if( !WT.isOn() ) return diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index 553276e6aa..20e95bc8b8 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -8,8 +8,8 @@ state_open = 1 var/points = 0 var/credits = 0 - var/list/history = list() - var/list/abductee_minds = list() + var/list/history + var/list/abductee_minds var/flash = " - || - " var/obj/machinery/abductor/console/console @@ -156,6 +156,7 @@ add_fingerprint(usr) /obj/machinery/abductor/experiment/proc/Experiment(mob/occupant,type) + LAZYINITLIST(history) var/mob/living/carbon/human/H = occupant var/point_reward = 0 if(H in history) @@ -168,8 +169,9 @@ say("Experimental dissection not detected!") return "No glands detected!" if(H.mind != null && H.ckey != null) - history += H - abductee_minds += H.mind + LAZYINITLIST(abductee_minds) + LAZYADD(history, H) + LAZYADD(abductee_minds, H.mind) say("Processing specimen...") sleep(5) switch(text2num(type)) @@ -182,7 +184,7 @@ sleep(5) to_chat(H, "Your mind snaps!") to_chat(H, "You can't remember how you got here...") - var/objtype = pick(subtypesof(/datum/objective/abductee/)) + var/objtype = (prob(75) ? /datum/objective/abductee/random : pick(subtypesof(/datum/objective/abductee/) - /datum/objective/abductee/random)) var/datum/objective/abductee/O = new objtype() SSticker.mode.abductees += H.mind H.mind.objectives += O @@ -211,7 +213,7 @@ /obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H) - H.Sleeping(8) + H.Sleeping(160) H.uncuff() if(console && console.pad && console.pad.teleport_target) H.forceMove(console.pad.teleport_target) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm index a12515a625..dc3f6f8dac 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm @@ -18,7 +18,7 @@ target.forceMove(teleport_target) new /obj/effect/temp_visual/dir_setting/ninja(get_turf(target), target.dir) to_chat(target, "The instability of the warp leaves you disoriented!") - target.Stun(3) + target.Stun(60) /obj/machinery/abductor/pad/proc/Retrieve(mob/living/target) flick("alien-pad", src) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 5212b82e51..ca9382be9b 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -1,58 +1,46 @@ ////Deactivated swarmer shell//// -/obj/item/device/unactivated_swarmer +/obj/item/device/deactivated_swarmer + name = "deactivated swarmer" + desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." + icon = 'icons/mob/swarmer.dmi' + icon_state = "swarmer_unactivated" + origin_tech = "bluespace=4;materials=4;programming=7" + materials = list(MAT_METAL = 10000, MAT_GLASS = 4000) + +/obj/effect/mob_spawn/swarmer name = "unactivated swarmer" desc = "A currently unactivated swarmer. Swarmers can self activate at any time, it would be wise to immediately dispose of this." icon = 'icons/mob/swarmer.dmi' icon_state = "swarmer_unactivated" - origin_tech = "bluespace=4;materials=4;programming=7" - materials = list(MAT_METAL=10000, MAT_GLASS=4000) + density = FALSE + anchored = FALSE + mob_type = /mob/living/simple_animal/hostile/swarmer + mob_name = "a swarmer" + death = FALSE + roundstart = FALSE + flavour_text = {" + You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. + Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. + Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. + Objectives: + 1. Consume resources and replicate until there are no more resources left. + 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. + 3. Biological resources will be harvested at a later date; do not harm them. + "} -/obj/item/device/unactivated_swarmer/Initialize() - if(!crit_fail) - notify_ghosts("An unactivated swarmer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) - ..() +/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) + to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") -/obj/item/device/unactivated_swarmer/Topic(href, href_list) - if(href_list["ghostjoin"]) - var/mob/dead/observer/ghost = usr - if(istype(ghost)) - attack_ghost(ghost) - -/obj/item/device/unactivated_swarmer/attackby(obj/item/weapon/W, mob/user, params) - ..() - if(istype(W, /obj/item/weapon/screwdriver) && !crit_fail) +/obj/effect/mob_spawn/swarmer/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver) && user.a_intent != INTENT_HARM) user.visible_message("[usr.name] deactivates [src].", "After some fiddling, you find a way to disable [src]'s power source.", "You hear clicking.") - name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." - crit_fail = 1 - -/obj/item/device/unactivated_swarmer/attack_ghost(mob/user) - if(crit_fail) - to_chat(user, "This swarmer shell is completely depowered. You cannot activate it.") - return - - var/be_swarmer = alert("Become a swarmer? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_swarmer == "No") - return - if(crit_fail) - to_chat(user, "Swarmer has been depowered.") - return - if(QDELETED(src)) - to_chat(user, "Swarmer has been occupied by someone else.") - return - var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc)) - S.key = user.key - qdel(src) - - -/obj/item/device/unactivated_swarmer/deactivated - name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." - crit_fail = 1 - + new /obj/item/device/deactivated_swarmer(get_turf(src)) + qdel(src) + else + ..() ////The Mob itself//// @@ -85,7 +73,7 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE attacktext = "shocks" - attack_sound = 'sound/effects/EMPulse.ogg' + attack_sound = 'sound/effects/empulse.ogg' friendly = "pinches" speed = 0 faction = list("swarmer") @@ -103,27 +91,13 @@ light_color = LIGHT_COLOR_CYAN var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 - var/login_text_dump = {" - You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. - Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. - Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. - Objectives: - 1. Consume resources and replicate until there are no more resources left. - 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. - 3. Biological resources will be harvested at a later date; do not harm them. - "} - -/mob/living/simple_animal/hostile/swarmer/Login() - ..() - to_chat(src, login_text_dump) /mob/living/simple_animal/hostile/swarmer/Initialize() - ..() + . = ..() verbs -= /mob/living/verb/pulled var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] diag_hud.add_to_hud(src) - /mob/living/simple_animal/hostile/swarmer/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] var/icon/I = icon(icon, icon_state, dir) @@ -185,6 +159,13 @@ S.DisIntegrate(src) return TRUE //return TRUE/FALSE whether or not an AI swarmer should try this swarmer_act() again, NOT whether it succeeded. +/obj/effect/mob_spawn/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.Integrate(src) + return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances. + +/obj/effect/mob_spawn/swarmer/IntegrateAmount() + return 50 + /turf/closed/indestructible/swarmer_act() return FALSE @@ -196,10 +177,13 @@ /obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) return S.Integrate(src) -/obj/item/proc/IntegrateAmount() //returns the amount of resources gained when eating this item +/atom/movable/proc/IntegrateAmount() + return 0 + +/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item if(materials[MAT_METAL] || materials[MAT_GLASS]) return 1 - return 0 + return ..() /obj/item/weapon/gun/swarmer_act()//Stops you from eating the entire armory return FALSE @@ -402,12 +386,7 @@ to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") return FALSE - -/obj/item/device/unactivated_swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - ..() - return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances. - -/obj/item/device/unactivated_swarmer/IntegrateAmount() +/obj/item/device/deactivated_swarmer/IntegrateAmount() return 50 /obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) @@ -426,7 +405,7 @@ return 0 return new fabrication_object(loc) -/mob/living/simple_animal/hostile/swarmer/proc/Integrate(obj/item/target) +/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) var/resource_gain = target.IntegrateAmount() if(resources + resource_gain > max_resources) to_chat(src, "We cannot hold more materials!") @@ -447,7 +426,7 @@ qdel(target) return TRUE else - to_chat(src, "\the [target] is incompatible with our internal matter recycler.") + to_chat(src, "[target] is incompatible with our internal matter recycler.") return FALSE @@ -547,22 +526,22 @@ icon_state = "ui_light" layer = MOB_LAYER resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/lon_range = 1 light_color = LIGHT_COLOR_CYAN obj_integrity = 30 max_integrity = 30 - anchored = 1 + anchored = TRUE + var/lon_range = 1 /obj/structure/swarmer/Initialize(mapload) - ..() + . = ..() set_light(lon_range) /obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + playsound(src, 'sound/weapons/egloves.ogg', 80, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) /obj/structure/swarmer/emp_act() qdel(src) @@ -582,7 +561,7 @@ playsound(loc,'sound/effects/snap.ogg',50, 1, -1) L.electrocute_act(0, src, 1, 1, 1) if(iscyborg(L)) - L.Weaken(5) + L.Knockdown(100) qdel(src) ..() @@ -642,7 +621,7 @@ /mob/living/simple_animal/hostile/swarmer/proc/SwarmerTypeToCreate() - return /obj/item/device/unactivated_swarmer + return /obj/effect/mob_spawn/swarmer /mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm index 90e1befd08..acef4ec8ac 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm @@ -9,19 +9,17 @@ /datum/round_event/spawn_swarmer - /datum/round_event/spawn_swarmer/start() if(find_swarmer()) return 0 if(!GLOB.the_gateway) return 0 - new /obj/item/device/unactivated_swarmer(get_turf(GLOB.the_gateway)) + new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway)) if(prob(25)) //25% chance to announce it to the crew var/swarmer_report = "[command_name()] High-Priority Update
    " swarmer_report += "

    Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come through." print_command_report(swarmer_report, announce=TRUE) - /datum/round_event/spawn_swarmer/proc/find_swarmer() for(var/mob/living/M in GLOB.mob_list) if(istype(M, /mob/living/simple_animal/hostile/swarmer) && M.client) //If there is a swarmer with an active client, we've found our swarmer diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 0d8093905e..dcd2ef2673 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -40,7 +40,7 @@ /obj/singularity, /mob/living/simple_animal/hostile/morph, /obj/effect)) - + var/playstyle_string = "You are a morph, an abomination of science created primarily with changeling cells. \ You may take the form of anything nearby by shift-clicking it. This process will alert any nearby \ observers, and can only be performed once every five seconds. While morphed, you move faster, but do \ @@ -72,7 +72,7 @@ ..() /mob/living/simple_animal/hostile/morph/proc/allowed(atom/movable/A) // make it into property/proc ? not sure if worth it - return !is_type_in_typecache(A, blacklist_typecache) + return !is_type_in_typecache(A, blacklist_typecache) && (isobj(A) || ismob(A)) /mob/living/simple_animal/hostile/morph/proc/eat(atom/movable/A) if(A && A.loc != src) @@ -187,7 +187,7 @@ if(eat(L)) adjustHealth(-50) return - else if(istype(target,/obj/item)) //Eat items just to be annoying + else if(isitem(target)) //Eat items just to be annoying var/obj/item/I = target if(!I.anchored) if(do_after(src, 20, target = I)) @@ -224,7 +224,7 @@ player_mind.special_role = "Morph" SSticker.mode.traitors |= player_mind to_chat(S, S.playstyle_string) - S << 'sound/magic/Mutate.ogg' + S << 'sound/magic/mutate.ogg' message_admins("[key_name_admin(S)] has been made into a morph by an event.") log_game("[key_name(S)] was spawned as a morph by an event.") spawned_mobs += S diff --git a/code/game/gamemodes/miniantags/readme.txt b/code/game/gamemodes/miniantags/readme.txt index b619ff4f42..8ade34bf2e 100644 --- a/code/game/gamemodes/miniantags/readme.txt +++ b/code/game/gamemodes/miniantags/readme.txt @@ -1,7 +1,6 @@ This folder contains all "mini-antagonists" - antagonists that can still spice up the round but aren't enough to be a roundtype in their own right. Currently, that list consists of: -Abductors - -Cortical borers -Swarmers -Prophets of sin -The Jungle Fever virus (infected monkey bites human, human becomes another infected monkey) diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index 432bdadfff..7aba0adf26 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -17,7 +17,7 @@ stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/magic/demon_attack1.ogg' - var/feast_sound = 'sound/magic/Demon_consume.ogg' + var/feast_sound = 'sound/magic/demon_consume.ogg' death_sound = 'sound/magic/demon_dies.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 @@ -89,7 +89,7 @@ return ..() user.visible_message("[user] raises [src] to their mouth and tears into it with their teeth!", \ "An unnatural hunger consumes you. You raise [src] your mouth and devour it!") - playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + playsound(user, 'sound/magic/demon_consume.ogg', 50, 1) for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) if(knownspell.type == /obj/effect/proc_holder/spell/bloodcrawl) to_chat(user, "...and you don't feel any different.") diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index e4e032ee01..cdae6718fd 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -288,7 +288,7 @@ text += "
    " text += "(Syndicates used [TC_uses] TC) [purchases]" if(TC_uses == 0 && station_was_nuked && !are_operatives_dead()) - text += "" + text += "[bicon(icon('icons/badass.dmi', "badass"))]" to_chat(world, text) return 1 diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index cad958ee64..f275db3b0b 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -44,7 +44,7 @@ if(!check_allowed(user) || !war_declaration) return - priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg') + priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/alarm.ogg') to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.") diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 576ab684a7..1b755cd9ba 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -422,7 +422,7 @@ safety = TRUE update_icon() for(var/mob/M in GLOB.player_list) - M << 'sound/machines/Alarm.ogg' + M << 'sound/machines/alarm.ogg' if(SSticker && SSticker.mode) SSticker.mode.explosion_in_progress = 1 sleep(100) @@ -527,7 +527,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/weapon/disk/nuclear/suicide_act(mob/user) user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1) + playsound(user.loc, 'sound/machines/alarm.ogg', 50, -1, 1) var/end_time = world.time + 100 var/newcolor = "#00FF00" while(world.time < end_time) diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 45f7c5262a..21139bd3ce 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -33,7 +33,7 @@ /obj/item/weapon/pinpointer/attack_self(mob/living/user) active = !active user.visible_message("[user] [active ? "" : "de"]activates their pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") - playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + playsound(user, 'sound/items/screwdriver2.ogg', 50, 1) icon_state = "pin[active ? "onnull" : "off"]" if(active) START_PROCESSING(SSfastprocess, src) @@ -147,7 +147,7 @@ if(bomb.timing) if(!nuke_warning) nuke_warning = TRUE - playsound(src, 'sound/items/Nuke_toy_lowpower.ogg', 50, 0) + playsound(src, 'sound/items/nuke_toy_lowpower.ogg', 50, 0) if(isliving(loc)) var/mob/living/L = loc to_chat(L, "Your [name] vibrates and lets out a tinny alarm. Uh oh.") diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index f2e3480504..21b1180b3d 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -701,7 +701,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) explanation_text = "Destroy [target.name], the experimental AI." else explanation_text = "Free Objective" - + /datum/objective/destroy/internal var/stolen = FALSE //Have we already eliminated this target? diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 29b75d75d1..703f1a9760 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -1,213 +1,223 @@ -//Contains the target item datums for Steal objectives. - -/datum/objective_item - var/name = "A silly bike horn! Honk!" - var/targetitem = /obj/item/weapon/bikehorn //typepath of the objective item - var/difficulty = 9001 //vaguely how hard it is to do this objective - var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc) - var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints) - var/list/special_equipment = list() - -/datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc) - return 1 - -/datum/objective_item/steal/caplaser - name = "the captain's antique laser gun" - targetitem = /obj/item/weapon/gun/energy/laser/captain - difficulty = 5 - excludefromjob = list("Captain") - -/datum/objective_item/steal/hoslaser - name = "the head of security's personal laser gun" - targetitem = /obj/item/weapon/gun/energy/e_gun/hos - difficulty = 10 - excludefromjob = list("Head Of Security") - -/datum/objective_item/steal/handtele - name = "a hand teleporter" - targetitem = /obj/item/weapon/hand_tele - difficulty = 5 - excludefromjob = list("Captain") - -/datum/objective_item/steal/jetpack - name = "the Captain's jetpack" - targetitem = /obj/item/weapon/tank/jetpack/oxygen/captain - difficulty = 5 - excludefromjob = list("Captain") - -/datum/objective_item/steal/magboots - name = "the chief engineer's advanced magnetic boots" - targetitem = /obj/item/clothing/shoes/magboots/advance - difficulty = 5 - excludefromjob = list("Chief Engineer") - -/datum/objective_item/steal/capmedal - name = "the medal of captaincy" +//Contains the target item datums for Steal objectives. + +/datum/objective_item + var/name = "A silly bike horn! Honk!" + var/targetitem = /obj/item/weapon/bikehorn //typepath of the objective item + var/difficulty = 9001 //vaguely how hard it is to do this objective + var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc) + var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints) + var/list/special_equipment = list() + +/datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc) + return 1 + +/datum/objective_item/steal/caplaser + name = "the captain's antique laser gun" + targetitem = /obj/item/weapon/gun/energy/laser/captain + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/hoslaser + name = "the head of security's personal laser gun" + targetitem = /obj/item/weapon/gun/energy/e_gun/hos + difficulty = 10 + excludefromjob = list("Head Of Security") + +/datum/objective_item/steal/handtele + name = "a hand teleporter" + targetitem = /obj/item/weapon/hand_tele + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/jetpack + name = "the Captain's jetpack" + targetitem = /obj/item/weapon/tank/jetpack/oxygen/captain + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/magboots + name = "the chief engineer's advanced magnetic boots" + targetitem = /obj/item/clothing/shoes/magboots/advance + difficulty = 5 + excludefromjob = list("Chief Engineer") + +/datum/objective_item/steal/capmedal + name = "the medal of captaincy" targetitem = /obj/item/clothing/accessory/medal/gold/captain - difficulty = 5 - excludefromjob = list("Captain") - -/datum/objective_item/steal/hypo - name = "the hypospray" - targetitem = /obj/item/weapon/reagent_containers/hypospray/CMO - difficulty = 5 - excludefromjob = list("Chief Medical Officer") - -/datum/objective_item/steal/nukedisc - name = "the nuclear authentication disk" - targetitem = /obj/item/weapon/disk/nuclear - difficulty = 5 - excludefromjob = list("Captain") - -/datum/objective_item/steal/reflector - name = "a reflector vest" - targetitem = /obj/item/clothing/suit/armor/laserproof - difficulty = 3 - excludefromjob = list("Head of Security", "Warden") - -/datum/objective_item/steal/reactive - name = "the reactive teleport armor" - targetitem = /obj/item/clothing/suit/armor/reactive - difficulty = 5 - excludefromjob = list("Research Director") - -/datum/objective_item/steal/documents - name = "any set of secret documents of any organization" - targetitem = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's - difficulty = 5 - -/datum/objective_item/steal/nuke_core - name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core" - targetitem = /obj/item/nuke_core - difficulty = 15 - -/datum/objective_item/steal/nuke_core/New() - special_equipment += /obj/item/weapon/storage/box/syndie_kit/nuke - -//Items with special checks! -/datum/objective_item/steal/plasma - name = "28 moles of plasma (full tank)" - targetitem = /obj/item/weapon/tank - difficulty = 3 - excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician") - -/datum/objective_item/steal/plasma/check_special_completion(obj/item/weapon/tank/T) - var/target_amount = text2num(name) - var/found_amount = 0 - found_amount += T.air_contents.gases["plasma"] ? T.air_contents.gases["plasma"][MOLES] : 0 - return found_amount>=target_amount - - -/datum/objective_item/steal/functionalai - name = "a functional AI" - targetitem = /obj/item/device/aicard - difficulty = 20 //beyond the impossible - -/datum/objective_item/steal/functionalai/check_special_completion(obj/item/device/aicard/C) - for(var/mob/living/silicon/ai/A in C) - if(isAI(A) && A.stat != 2) //See if any AI's are alive inside that card. - return 1 - return 0 - -/datum/objective_item/steal/blueprints - name = "the station blueprints" - targetitem = /obj/item/areaeditor/blueprints - difficulty = 10 - excludefromjob = list("Chief Engineer") - altitems = list(/obj/item/weapon/photo) - -/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I) - if(istype(I, /obj/item/areaeditor/blueprints)) - return 1 - if(istype(I, /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = I - if(P.blueprints) //if the blueprints are in frame - return 1 - return 0 - -/datum/objective_item/steal/slime - name = "an unused sample of slime extract" - targetitem = /obj/item/slime_extract - difficulty = 3 - excludefromjob = list("Research Director","Scientist") - -/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E) - if(E.Uses > 0) - return 1 - return 0 - -//Unique Objectives -/datum/objective_item/unique/docs_red - name = "the \"Red\" secret documents" - targetitem = /obj/item/documents/syndicate/red - difficulty = 10 - -/datum/objective_item/unique/docs_blue - name = "the \"Blue\" secret documents" - targetitem = /obj/item/documents/syndicate/blue - difficulty = 10 - -//Old ninja objectives. -/datum/objective_item/special/pinpointer - name = "the captain's pinpointer" - targetitem = /obj/item/weapon/pinpointer - difficulty = 10 - -/datum/objective_item/special/aegun - name = "an advanced energy gun" - targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear - difficulty = 10 - -/datum/objective_item/special/ddrill - name = "a diamond drill" - targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill - difficulty = 10 - -/datum/objective_item/special/boh - name = "a bag of holding" - targetitem = /obj/item/weapon/storage/backpack/holding - difficulty = 10 - -/datum/objective_item/special/hypercell - name = "a hyper-capacity cell" - targetitem = /obj/item/weapon/stock_parts/cell/hyper - difficulty = 5 - -/datum/objective_item/special/laserpointer - name = "a laser pointer" - targetitem = /obj/item/device/laser_pointer - difficulty = 5 - -/datum/objective_item/special/corgimeat - name = "a piece of corgi meat" - targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi - difficulty = 5 - -//Stack objectives get their own subtype -/datum/objective_item/stack - name = "5 cardboards" - targetitem = /obj/item/stack/sheet/cardboard - difficulty = 9001 - -/datum/objective_item/stack/check_special_completion(obj/item/stack/S) - var/target_amount = text2num(name) - var/found_amount = 0 - - if(istype(S, targetitem)) - found_amount = S.amount - return found_amount>=target_amount - -/datum/objective_item/stack/diamond - name = "10 diamonds" - targetitem = /obj/item/stack/sheet/mineral/diamond - difficulty = 10 - -/datum/objective_item/stack/gold - name = "50 gold bars" - targetitem = /obj/item/stack/sheet/mineral/gold - difficulty = 15 - -/datum/objective_item/stack/uranium - name = "25 refined uranium bars" - targetitem = /obj/item/stack/sheet/mineral/uranium - difficulty = 10 + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/hypo + name = "the hypospray" + targetitem = /obj/item/weapon/reagent_containers/hypospray/CMO + difficulty = 5 + excludefromjob = list("Chief Medical Officer") + +/datum/objective_item/steal/nukedisc + name = "the nuclear authentication disk" + targetitem = /obj/item/weapon/disk/nuclear + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/reflector + name = "a reflector vest" + targetitem = /obj/item/clothing/suit/armor/laserproof + difficulty = 3 + excludefromjob = list("Head of Security", "Warden") + +/datum/objective_item/steal/reactive + name = "the reactive teleport armor" + targetitem = /obj/item/clothing/suit/armor/reactive + difficulty = 5 + excludefromjob = list("Research Director") + +/datum/objective_item/steal/documents + name = "any set of secret documents of any organization" + targetitem = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's + difficulty = 5 + +/datum/objective_item/steal/nuke_core + name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core" + targetitem = /obj/item/nuke_core + difficulty = 15 + +/datum/objective_item/steal/nuke_core/New() + special_equipment += /obj/item/weapon/storage/box/syndie_kit/nuke + ..() + +/datum/objective_item/steal/supermatter + name = "a sliver of a supermatter crystal. Be sure to use the proper safety equipment when extracting the sliver!" + targetitem = /obj/item/nuke_core/supermatter_sliver + difficulty = 15 + +/datum/objective_item/steal/supermatter/New() + special_equipment += /obj/item/weapon/storage/box/syndie_kit/supermatter + ..() + +//Items with special checks! +/datum/objective_item/steal/plasma + name = "28 moles of plasma (full tank)" + targetitem = /obj/item/weapon/tank + difficulty = 3 + excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician") + +/datum/objective_item/steal/plasma/check_special_completion(obj/item/weapon/tank/T) + var/target_amount = text2num(name) + var/found_amount = 0 + found_amount += T.air_contents.gases["plasma"] ? T.air_contents.gases["plasma"][MOLES] : 0 + return found_amount>=target_amount + + +/datum/objective_item/steal/functionalai + name = "a functional AI" + targetitem = /obj/item/device/aicard + difficulty = 20 //beyond the impossible + +/datum/objective_item/steal/functionalai/check_special_completion(obj/item/device/aicard/C) + for(var/mob/living/silicon/ai/A in C) + if(isAI(A) && A.stat != 2) //See if any AI's are alive inside that card. + return 1 + return 0 + +/datum/objective_item/steal/blueprints + name = "the station blueprints" + targetitem = /obj/item/areaeditor/blueprints + difficulty = 10 + excludefromjob = list("Chief Engineer") + altitems = list(/obj/item/weapon/photo) + +/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I) + if(istype(I, /obj/item/areaeditor/blueprints)) + return 1 + if(istype(I, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = I + if(P.blueprints) //if the blueprints are in frame + return 1 + return 0 + +/datum/objective_item/steal/slime + name = "an unused sample of slime extract" + targetitem = /obj/item/slime_extract + difficulty = 3 + excludefromjob = list("Research Director","Scientist") + +/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E) + if(E.Uses > 0) + return 1 + return 0 + +//Unique Objectives +/datum/objective_item/unique/docs_red + name = "the \"Red\" secret documents" + targetitem = /obj/item/documents/syndicate/red + difficulty = 10 + +/datum/objective_item/unique/docs_blue + name = "the \"Blue\" secret documents" + targetitem = /obj/item/documents/syndicate/blue + difficulty = 10 + +//Old ninja objectives. +/datum/objective_item/special/pinpointer + name = "the captain's pinpointer" + targetitem = /obj/item/weapon/pinpointer + difficulty = 10 + +/datum/objective_item/special/aegun + name = "an advanced energy gun" + targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear + difficulty = 10 + +/datum/objective_item/special/ddrill + name = "a diamond drill" + targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill + difficulty = 10 + +/datum/objective_item/special/boh + name = "a bag of holding" + targetitem = /obj/item/weapon/storage/backpack/holding + difficulty = 10 + +/datum/objective_item/special/hypercell + name = "a hyper-capacity cell" + targetitem = /obj/item/weapon/stock_parts/cell/hyper + difficulty = 5 + +/datum/objective_item/special/laserpointer + name = "a laser pointer" + targetitem = /obj/item/device/laser_pointer + difficulty = 5 + +/datum/objective_item/special/corgimeat + name = "a piece of corgi meat" + targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi + difficulty = 5 + +//Stack objectives get their own subtype +/datum/objective_item/stack + name = "5 cardboards" + targetitem = /obj/item/stack/sheet/cardboard + difficulty = 9001 + +/datum/objective_item/stack/check_special_completion(obj/item/stack/S) + var/target_amount = text2num(name) + var/found_amount = 0 + + if(istype(S, targetitem)) + found_amount = S.amount + return found_amount>=target_amount + +/datum/objective_item/stack/diamond + name = "10 diamonds" + targetitem = /obj/item/stack/sheet/mineral/diamond + difficulty = 10 + +/datum/objective_item/stack/gold + name = "50 gold bars" + targetitem = /obj/item/stack/sheet/mineral/gold + difficulty = 15 + +/datum/objective_item/stack/uranium + name = "25 refined uranium bars" + targetitem = /obj/item/stack/sheet/mineral/uranium + difficulty = 10 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 5cfdb11087..a17a9d97fb 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -70,7 +70,7 @@ for(var/datum/mind/rev_mind in head_revolutionaries) //People with return to lobby may still be in the lobby. Let's pick someone else in that case. - if(istype(rev_mind.current,/mob/dead/new_player)) + if(isnewplayer(rev_mind.current)) head_revolutionaries -= rev_mind var/list/newcandidates = shuffle(antag_candidates) if(newcandidates.len == 0) @@ -79,7 +79,7 @@ var/datum/mind/lenin = M antag_candidates -= lenin newcandidates -= lenin - if(istype(lenin.current,/mob/dead/new_player)) //We don't want to make the same mistake again + if(isnewplayer(lenin.current)) //We don't want to make the same mistake again continue else var/mob/Nm = lenin.current @@ -269,7 +269,7 @@ var/mob/living/carbon/carbon_mob = rev_mind.current carbon_mob.silent = max(carbon_mob.silent, 5) carbon_mob.flash_act(1, 1) - rev_mind.current.Stun(5) + rev_mind.current.Stun(100) to_chat(rev_mind.current, " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!") rev_mind.current.log_message("Has been converted to the revolution!", INDIVIDUAL_ATTACK_LOG) rev_mind.special_role = "Revolutionary" @@ -297,7 +297,7 @@ message_admins("[ADMIN_LOOKUPFLW(rev_mind.current)] has been borged while being a [remove_head ? "leader" : " member"] of the revolution.") else - rev_mind.current.Paralyse(5) + rev_mind.current.Unconscious(100) rev_mind.current.visible_message("[rev_mind.current] looks like they just remembered their real allegiance!",\ "You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...") update_rev_icons_removed(rev_mind) diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm index 3051488560..e69682a987 100644 --- a/code/game/gamemodes/sandbox/sandbox.dm +++ b/code/game/gamemodes/sandbox/sandbox.dm @@ -5,6 +5,8 @@ announce_span = "info" announce_text = "Build your own station... or just shoot each other!" + + allow_persistence_save = FALSE /datum/game_mode/sandbox/pre_setup() for(var/mob/M in GLOB.player_list) diff --git a/code/game/gamemodes/traitor/double_agents.dm b/code/game/gamemodes/traitor/double_agents.dm index e83354dcf3..32d7da4072 100644 --- a/code/game/gamemodes/traitor/double_agents.dm +++ b/code/game/gamemodes/traitor/double_agents.dm @@ -27,9 +27,10 @@ i++ if(i + 1 > pre_traitors.len) i = 0 - target_list[traitor] = pre_traitors[i+1] + target_list[traitor] = pre_traitors[i+1] ..() + /datum/game_mode/traitor/internal_affairs/add_latejoin_traitor(datum/mind/character) check_potential_agents() @@ -71,4 +72,6 @@ continue // It all checks out. // If any check fails, remove them from our list - late_joining_list -= M \ No newline at end of file + late_joining_list -= M + + diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 2e19ca4fc0..562efc974d 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -123,7 +123,7 @@ if(uplink_true) text += " (used [TC_uses] TC) [purchases]" if(TC_uses==0 && traitorwin) - var/static/icon/badass = icon('icons/BadAss.dmi', "badass") + var/static/icon/badass = icon('icons/badass.dmi', "badass") text += "[bicon(badass)]" text += objectives diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 9a21400653..b8fe4b828b 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -1,636 +1,636 @@ - -//Apprenticeship contract - moved to antag_spawner.dm - -///////////////////////////Veil Render////////////////////// - -/obj/item/weapon/veilrender - name = "veil render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city." - icon = 'icons/obj/wizard.dmi' - icon_state = "render" - item_state = "render" - force = 15 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - var/charges = 1 - var/spawn_type = /obj/singularity/wizard - var/spawn_amt = 1 - var/activate_descriptor = "reality" - var/rend_desc = "You should run now." - var/spawn_fast = 0 //if 1, ignores checking for mobs on loc before spawning - -/obj/item/weapon/veilrender/attack_self(mob/user) - if(charges > 0) - new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) - charges-- - user.visible_message("[src] hums with power as [user] deals a blow to [activate_descriptor] itself!") - else - to_chat(user, "The unearthly energies that powered the blade are now dormant.") - -/obj/effect/rend - name = "tear in the fabric of reality" - desc = "You should run now." - icon = 'icons/obj/biomass.dmi' - icon_state = "rift" - density = 1 - anchored = 1 - var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies - var/spawn_amt_left = 20 - var/spawn_fast = 0 - -/obj/effect/rend/New(loc, var/spawn_type, var/spawn_amt, var/desc, var/spawn_fast) - src.spawn_path = spawn_type - src.spawn_amt_left = spawn_amt - src.desc = desc - src.spawn_fast = spawn_fast - START_PROCESSING(SSobj, src) - return - -/obj/effect/rend/process() - if(!spawn_fast) - if(locate(/mob) in loc) - return - new spawn_path(loc) - spawn_amt_left-- - if(spawn_amt_left <= 0) - qdel(src) - -/obj/effect/rend/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/nullrod)) - user.visible_message("[user] seals \the [src] with \the [I].") - qdel(src) - return - else - return ..() - -/obj/item/weapon/veilrender/vealrender - name = "veal render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast farm." - spawn_type = /mob/living/simple_animal/cow - spawn_amt = 20 - activate_descriptor = "hunger" - rend_desc = "Reverberates with the sound of ten thousand moos." - -/obj/item/weapon/veilrender/honkrender - name = "honk render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast circus." - spawn_type = /mob/living/simple_animal/hostile/retaliate/clown - spawn_amt = 10 - activate_descriptor = "depression" - rend_desc = "Gently wafting with the sounds of endless laughter." - icon_state = "clownrender" - -////TEAR IN REALITY - -/obj/singularity/wizard - name = "tear in the fabric of reality" - desc = "This isn't right." - icon = 'icons/effects/224x224.dmi' - icon_state = "reality" - pixel_x = -96 - pixel_y = -96 - grav_pull = 6 - consume_range = 3 - current_size = STAGE_FOUR - allowed_size = STAGE_FOUR - -/obj/singularity/wizard/process() - move() - eat() - return -/////////////////////////////////////////Scrying/////////////////// - -/obj/item/weapon/scrying - name = "scrying orb" - desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means." - icon = 'icons/obj/projectiles.dmi' - icon_state ="bluespace" - throw_speed = 3 - throw_range = 7 - throwforce = 15 - damtype = BURN - force = 15 - hitsound = 'sound/items/welder2.ogg' - -/obj/item/weapon/scrying/attack_self(mob/user) - to_chat(user, "You can see...everything!") - visible_message("[user] stares into [src], their eyes glazing over.") - user.ghostize(1) - return - -/////////////////////////////////////////Necromantic Stone/////////////////// - -/obj/item/device/necromantic_stone - name = "necromantic stone" - desc = "A shard capable of resurrecting humans as skeleton thralls." - icon = 'icons/obj/wizard.dmi' - icon_state = "necrostone" - item_state = "electronic" - origin_tech = "bluespace=4;materials=4" - w_class = WEIGHT_CLASS_TINY - var/list/spooky_scaries = list() - var/unlimited = 0 - -/obj/item/device/necromantic_stone/unlimited - unlimited = 1 - -/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) - if(!istype(M)) - return ..() - - if(!istype(user) || !user.canUseTopic(M,1)) - return - - if(M.stat != DEAD) - to_chat(user, "This artifact can only affect the dead!") - return - - if(!M.mind || !M.client) - to_chat(user, "There is no soul connected to this body...") - return - - check_spooky()//clean out/refresh the list - if(spooky_scaries.len >= 3 && !unlimited) - to_chat(user, "This artifact can only affect three undead at a time!") - return - - M.set_species(/datum/species/skeleton, icon_update=0) - M.revive(full_heal = 1, admin_revive = 1) - spooky_scaries |= M - to_chat(M, "You have been revived by [user.real_name]!") - to_chat(M, "[user.p_they(TRUE)] [user.p_are()] your master now, assist them even if it costs you your new life!") - - equip_roman_skeleton(M) - - desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" - -/obj/item/device/necromantic_stone/proc/check_spooky() - if(unlimited) //no point, the list isn't used. - return - - for(var/X in spooky_scaries) - if(!ishuman(X)) - spooky_scaries.Remove(X) - continue - var/mob/living/carbon/human/H = X - if(H.stat == DEAD) + +//Apprenticeship contract - moved to antag_spawner.dm + +///////////////////////////Veil Render////////////////////// + +/obj/item/weapon/veilrender + name = "veil render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city." + icon = 'icons/obj/wizard.dmi' + icon_state = "render" + item_state = "render" + force = 15 + throwforce = 10 + w_class = WEIGHT_CLASS_NORMAL + hitsound = 'sound/weapons/bladeslice.ogg' + var/charges = 1 + var/spawn_type = /obj/singularity/wizard + var/spawn_amt = 1 + var/activate_descriptor = "reality" + var/rend_desc = "You should run now." + var/spawn_fast = 0 //if 1, ignores checking for mobs on loc before spawning + +/obj/item/weapon/veilrender/attack_self(mob/user) + if(charges > 0) + new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) + charges-- + user.visible_message("[src] hums with power as [user] deals a blow to [activate_descriptor] itself!") + else + to_chat(user, "The unearthly energies that powered the blade are now dormant.") + +/obj/effect/rend + name = "tear in the fabric of reality" + desc = "You should run now." + icon = 'icons/obj/biomass.dmi' + icon_state = "rift" + density = 1 + anchored = 1 + var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies + var/spawn_amt_left = 20 + var/spawn_fast = 0 + +/obj/effect/rend/New(loc, var/spawn_type, var/spawn_amt, var/desc, var/spawn_fast) + src.spawn_path = spawn_type + src.spawn_amt_left = spawn_amt + src.desc = desc + src.spawn_fast = spawn_fast + START_PROCESSING(SSobj, src) + return + +/obj/effect/rend/process() + if(!spawn_fast) + if(locate(/mob) in loc) + return + new spawn_path(loc) + spawn_amt_left-- + if(spawn_amt_left <= 0) + qdel(src) + +/obj/effect/rend/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/nullrod)) + user.visible_message("[user] seals \the [src] with \the [I].") + qdel(src) + return + else + return ..() + +/obj/item/weapon/veilrender/vealrender + name = "veal render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast farm." + spawn_type = /mob/living/simple_animal/cow + spawn_amt = 20 + activate_descriptor = "hunger" + rend_desc = "Reverberates with the sound of ten thousand moos." + +/obj/item/weapon/veilrender/honkrender + name = "honk render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast circus." + spawn_type = /mob/living/simple_animal/hostile/retaliate/clown + spawn_amt = 10 + activate_descriptor = "depression" + rend_desc = "Gently wafting with the sounds of endless laughter." + icon_state = "clownrender" + +////TEAR IN REALITY + +/obj/singularity/wizard + name = "tear in the fabric of reality" + desc = "This isn't right." + icon = 'icons/effects/224x224.dmi' + icon_state = "reality" + pixel_x = -96 + pixel_y = -96 + grav_pull = 6 + consume_range = 3 + current_size = STAGE_FOUR + allowed_size = STAGE_FOUR + +/obj/singularity/wizard/process() + move() + eat() + return +/////////////////////////////////////////Scrying/////////////////// + +/obj/item/weapon/scrying + name = "scrying orb" + desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means." + icon = 'icons/obj/projectiles.dmi' + icon_state ="bluespace" + throw_speed = 3 + throw_range = 7 + throwforce = 15 + damtype = BURN + force = 15 + hitsound = 'sound/items/welder2.ogg' + +/obj/item/weapon/scrying/attack_self(mob/user) + to_chat(user, "You can see...everything!") + visible_message("[user] stares into [src], their eyes glazing over.") + user.ghostize(1) + return + +/////////////////////////////////////////Necromantic Stone/////////////////// + +/obj/item/device/necromantic_stone + name = "necromantic stone" + desc = "A shard capable of resurrecting humans as skeleton thralls." + icon = 'icons/obj/wizard.dmi' + icon_state = "necrostone" + item_state = "electronic" + origin_tech = "bluespace=4;materials=4" + w_class = WEIGHT_CLASS_TINY + var/list/spooky_scaries = list() + var/unlimited = 0 + +/obj/item/device/necromantic_stone/unlimited + unlimited = 1 + +/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) + if(!istype(M)) + return ..() + + if(!istype(user) || !user.canUseTopic(M,1)) + return + + if(M.stat != DEAD) + to_chat(user, "This artifact can only affect the dead!") + return + + if(!M.mind || !M.client) + to_chat(user, "There is no soul connected to this body...") + return + + check_spooky()//clean out/refresh the list + if(spooky_scaries.len >= 3 && !unlimited) + to_chat(user, "This artifact can only affect three undead at a time!") + return + + M.set_species(/datum/species/skeleton, icon_update=0) + M.revive(full_heal = 1, admin_revive = 1) + spooky_scaries |= M + to_chat(M, "You have been revived by [user.real_name]!") + to_chat(M, "[user.p_they(TRUE)] [user.p_are()] your master now, assist them even if it costs you your new life!") + + equip_roman_skeleton(M) + + desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" + +/obj/item/device/necromantic_stone/proc/check_spooky() + if(unlimited) //no point, the list isn't used. + return + + for(var/X in spooky_scaries) + if(!ishuman(X)) + spooky_scaries.Remove(X) + continue + var/mob/living/carbon/human/H = X + if(H.stat == DEAD) H.dust(TRUE) - spooky_scaries.Remove(X) - continue - listclearnulls(spooky_scaries) - -//Funny gimmick, skeletons always seem to wear roman/ancient armour -/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) - for(var/obj/item/I in H) - H.dropItemToGround(I) - - var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) - H.equip_to_slot_or_del(new hat(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) - H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) - H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) - H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) - - - -/////////////////////Multiverse Blade//////////////////// - -/obj/item/weapon/multisword - name = "multiverse sword" - desc = "A weapon capable of conquering the universe and beyond. Activate it to summon copies of yourself from others dimensions to fight by your side." - icon = 'icons/obj/weapons.dmi' - icon_state = "multiverse" - item_state = "multiverse" - hitsound = 'sound/weapons/bladeslice.ogg' - flags = CONDUCT - slot_flags = SLOT_BELT - sharpness = IS_SHARP - force = 20 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - var/faction = list("unassigned") - var/cooldown = 0 - var/assigned = "unassigned" - var/static/list/multiverse = list() - -/obj/item/weapon/multisword/New() - ..() - multiverse += src - - -/obj/item/weapon/multisword/Destroy() - multiverse.Remove(src) - return ..() - -/obj/item/weapon/multisword/attack_self(mob/user) - if(user.mind.special_role == "apprentice") - to_chat(user, "You know better than to touch your teacher's stuff.") - return - if(cooldown < world.time) - var/faction_check = 0 - for(var/F in faction) - if(F in user.faction) - faction_check = 1 - break - if(faction_check == 0) - faction = list("[user.real_name]") - assigned = "[user.real_name]" - user.faction = list("[user.real_name]") - to_chat(user, "You bind the sword to yourself. You can now use it to summon help.") - if(!is_gangster(user)) - var/datum/gang/multiverse/G = new(src, "[user.real_name]") - SSticker.mode.gangs += G + spooky_scaries.Remove(X) + continue + listclearnulls(spooky_scaries) + +//Funny gimmick, skeletons always seem to wear roman/ancient armour +/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) + for(var/obj/item/I in H) + H.dropItemToGround(I) + + var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) + H.equip_to_slot_or_del(new hat(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) + H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) + H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) + H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) + + + +/////////////////////Multiverse Blade//////////////////// + +/obj/item/weapon/multisword + name = "multiverse sword" + desc = "A weapon capable of conquering the universe and beyond. Activate it to summon copies of yourself from others dimensions to fight by your side." + icon = 'icons/obj/weapons.dmi' + icon_state = "multiverse" + item_state = "multiverse" + hitsound = 'sound/weapons/bladeslice.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT + sharpness = IS_SHARP + force = 20 + throwforce = 10 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + var/faction = list("unassigned") + var/cooldown = 0 + var/assigned = "unassigned" + var/static/list/multiverse = list() + +/obj/item/weapon/multisword/New() + ..() + multiverse += src + + +/obj/item/weapon/multisword/Destroy() + multiverse.Remove(src) + return ..() + +/obj/item/weapon/multisword/attack_self(mob/user) + if(user.mind.special_role == "apprentice") + to_chat(user, "You know better than to touch your teacher's stuff.") + return + if(cooldown < world.time) + var/faction_check = 0 + for(var/F in faction) + if(F in user.faction) + faction_check = 1 + break + if(faction_check == 0) + faction = list("[user.real_name]") + assigned = "[user.real_name]" + user.faction = list("[user.real_name]") + to_chat(user, "You bind the sword to yourself. You can now use it to summon help.") + if(!is_gangster(user)) + var/datum/gang/multiverse/G = new(src, "[user.real_name]") + SSticker.mode.gangs += G G.bosses[user.mind] = 0 - G.add_gang_hud(user.mind) - user.mind.gang_datum = G - to_chat(user, "With your new found power you could easily conquer the station!") - var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone - hijack_objective.owner = user.mind - user.mind.objectives += hijack_objective - hijack_objective.explanation_text = "Ensure only [user.real_name] and their copies are on the shuttle!" - to_chat(user, "Objective #[1]: [hijack_objective.explanation_text]") - SSticker.mode.traitors += user.mind - user.mind.special_role = "[user.real_name] Prime" - else - var/list/candidates = get_candidates(ROLE_WIZARD) - if(candidates.len) - var/client/C = pick(candidates) - spawn_copy(C, get_turf(user.loc), user) - to_chat(user, "The sword flashes, and you find yourself face to face with...you!") - cooldown = world.time + 400 - for(var/obj/item/weapon/multisword/M in multiverse) - if(M.assigned == assigned) - M.cooldown = cooldown - - else - to_chat(user, "You fail to summon any copies of yourself. Perhaps you should try again in a bit.") - else - to_chat(user, "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies.") - - -/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) - var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) - C.prefs.copy_to(M, icon_updates=0) - M.key = C.key - M.mind.name = user.real_name - to_chat(M, "You are an alternate version of [user.real_name] from another universe! Help them accomplish their goals at all costs.") - SSticker.mode.add_gangster(M.mind, user.mind.gang_datum, FALSE) - M.real_name = user.real_name - M.name = user.real_name - M.faction = list("[user.real_name]") - if(prob(50)) - var/list/all_species = list() - for(var/speciestype in subtypesof(/datum/species)) - var/datum/species/S = speciestype - if(!initial(S.dangerous_existence)) - all_species += speciestype - M.set_species(pick(all_species), icon_update=0) - M.update_body() - M.update_hair() - M.update_body_parts() - M.dna.update_dna_identity() - equip_copy(M) - -/obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) - - var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword - sword.assigned = assigned - sword.faction = list("[assigned]") - - var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") - - switch(randomize) - if("mobster") - M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("roman") - var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) - M.equip_to_slot_or_del(new hat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) - M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) - M.put_in_hands_or_del(sword) - - if("wizard") - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) - M.put_in_hands_or_del(sword) - if("cyborg") - for(var/X in M.bodyparts) - var/obj/item/bodypart/affecting = X - affecting.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) - M.put_in_hands_or_del(sword) - - if("syndicate") - M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M),slot_wear_mask) - M.put_in_hands_or_del(sword) - - if("assistant") - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.put_in_hands_or_del(sword) - - if("animu") - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl/red(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("cultist") - M.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.put_in_hands_or_del(sword) - - if("highlander") - M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.put_in_hands_or_del(sword) - - if("clown") - M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) - M.put_in_hands_or_del(sword) - - if("killer") - M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) - M.put_in_hands_or_del(sword) - for(var/obj/item/carried_item in M.get_equipped_items()) - carried_item.add_mob_blood(M) - for(var/obj/item/I in M.held_items) - I.add_mob_blood(M) - if("pirate") - M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.put_in_hands_or_del(sword) - - if("soviet") - M.equip_to_slot_or_del(new /obj/item/clothing/head/pirate/captain(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate/captain(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("officer") - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/jacket/miljacket(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) - M.put_in_hands_or_del(sword) - - if("gladiator") - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.put_in_hands_or_del(sword) - - - else - return - - M.update_body_parts() - - var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id - W.icon_state = "centcom" - W.access += GLOB.access_maint_tunnels - W.assignment = "Multiverse Traveller" - W.registered_name = M.real_name - W.update_label(M.real_name) - M.equip_to_slot_or_del(W, slot_wear_id) - - -/obj/item/voodoo - name = "wicker doll" - desc = "Something creepy about it." - icon = 'icons/obj/wizard.dmi' - icon_state = "voodoo" - item_state = "electronic" - var/mob/living/carbon/human/target = null - var/list/mob/living/carbon/human/possible = list() - var/obj/item/link = null - var/cooldown_time = 30 //3s - var/cooldown = 0 - obj_integrity = 10 - max_integrity = 10 - resistance_flags = FLAMMABLE - -/obj/item/voodoo/attackby(obj/item/I, mob/user, params) - if(target && cooldown < world.time) - if(I.is_hot()) - to_chat(target, "You suddenly feel very hot") - target.bodytemperature += 50 - GiveHint(target) - else if(is_pointed(I)) - to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!") - target.Weaken(2) - GiveHint(target) - else if(istype(I,/obj/item/weapon/bikehorn)) - to_chat(target, "HONK") - target << 'sound/items/AirHorn.ogg' - target.adjustEarDamage(0,3) - GiveHint(target) - cooldown = world.time +cooldown_time - return - - if(!link) - if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL) - user.drop_item() - I.loc = src - link = I - to_chat(user, "You attach [I] to the doll.") - update_targets() - -/obj/item/voodoo/check_eye(mob/user) - if(loc != user) - user.reset_perspective(null) - user.unset_machine() - -/obj/item/voodoo/attack_self(mob/user) - if(!target && possible.len) - target = input(user, "Select your victim!", "Voodoo") as null|anything in possible - return - - if(user.zone_selected == "chest") - if(link) - target = null - link.loc = get_turf(src) - to_chat(user, "You remove the [link] from the doll.") - link = null - update_targets() - return - - if(target && cooldown < world.time) - switch(user.zone_selected) - if("mouth") - var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text) - target.say(wgw) - log_game("[user][user.key] made [target][target.key] say [wgw] with a voodoo doll.") - if("eyes") - user.set_machine(src) - user.reset_perspective(target) - spawn(100) - user.reset_perspective(null) - user.unset_machine() - if("r_leg","l_leg") - to_chat(user, "You move the doll's legs around.") - var/turf/T = get_step(target,pick(GLOB.cardinal)) - target.Move(T) - if("r_arm","l_arm") - target.click_random_mob() - GiveHint(target) - if("head") - to_chat(user, "You smack the doll's head with your hand.") - target.Dizzy(10) - to_chat(target, "You suddenly feel as if your head was hit with a hammer!") - GiveHint(target,user) - cooldown = world.time + cooldown_time - -/obj/item/voodoo/proc/update_targets() - possible = list() - if(!link) - return - for(var/mob/living/carbon/human/H in GLOB.living_mob_list) - if(md5(H.dna.uni_identity) in link.fingerprints) - possible |= H - -/obj/item/voodoo/proc/GiveHint(mob/victim,force=0) - if(prob(50) || force) - var/way = dir2text(get_dir(victim,get_turf(src))) - to_chat(victim, "You feel a dark presence from [way]") - if(prob(20) || force) - var/area/A = get_area(src) - to_chat(victim, "You feel a dark presence from [A.name]") - -/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) - if(target) - target.adjust_fire_stacks(20) - target.IgniteMob() - GiveHint(target,1) - return ..() - - -//Provides a decent heal, need to pump every 6 seconds -/obj/item/organ/heart/cursed/wizard - pump_delay = 60 - heal_brute = 25 - heal_burn = 25 - heal_oxy = 25 - -//Warp Whistle: Provides uncontrolled long distance teleportation. - -/obj/item/warpwhistle - name = "warp whistle" - desc = "One toot on this whistle will send you to a far away land!" - icon = 'icons/obj/wizard.dmi' - icon_state = "whistle" - var/on_cooldown = 0 //0: usable, 1: in use, 2: on cooldown - var/mob/living/carbon/last_user - -/obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user) - if(!user || QDELETED(src)) - on_cooldown = FALSE - return TRUE - return FALSE - -/obj/item/warpwhistle/attack_self(mob/living/carbon/user) - if(!istype(user) || on_cooldown) - return - on_cooldown = TRUE - last_user = user - var/turf/T = get_turf(user) - playsound(T,'sound/magic/WarpWhistle.ogg', 200, 1) - user.canmove = 0 + G.add_gang_hud(user.mind) + user.mind.gang_datum = G + to_chat(user, "With your new found power you could easily conquer the station!") + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = user.mind + user.mind.objectives += hijack_objective + hijack_objective.explanation_text = "Ensure only [user.real_name] and their copies are on the shuttle!" + to_chat(user, "Objective #[1]: [hijack_objective.explanation_text]") + SSticker.mode.traitors += user.mind + user.mind.special_role = "[user.real_name] Prime" + else + var/list/candidates = get_candidates(ROLE_WIZARD) + if(candidates.len) + var/client/C = pick(candidates) + spawn_copy(C, get_turf(user.loc), user) + to_chat(user, "The sword flashes, and you find yourself face to face with...you!") + cooldown = world.time + 400 + for(var/obj/item/weapon/multisword/M in multiverse) + if(M.assigned == assigned) + M.cooldown = cooldown + + else + to_chat(user, "You fail to summon any copies of yourself. Perhaps you should try again in a bit.") + else + to_chat(user, "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies.") + + +/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) + C.prefs.copy_to(M, icon_updates=0) + M.key = C.key + M.mind.name = user.real_name + to_chat(M, "You are an alternate version of [user.real_name] from another universe! Help them accomplish their goals at all costs.") + SSticker.mode.add_gangster(M.mind, user.mind.gang_datum, FALSE) + M.real_name = user.real_name + M.name = user.real_name + M.faction = list("[user.real_name]") + if(prob(50)) + var/list/all_species = list() + for(var/speciestype in subtypesof(/datum/species)) + var/datum/species/S = speciestype + if(!initial(S.dangerous_existence)) + all_species += speciestype + M.set_species(pick(all_species), icon_update=0) + M.update_body() + M.update_hair() + M.update_body_parts() + M.dna.update_dna_identity() + equip_copy(M) + +/obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) + + var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword + sword.assigned = assigned + sword.faction = list("[assigned]") + + var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") + + switch(randomize) + if("mobster") + M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) + M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("roman") + var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) + M.equip_to_slot_or_del(new hat(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) + M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) + M.put_in_hands_or_del(sword) + + if("wizard") + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) + M.put_in_hands_or_del(sword) + if("cyborg") + for(var/X in M.bodyparts) + var/obj/item/bodypart/affecting = X + affecting.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) + M.put_in_hands_or_del(sword) + + if("syndicate") + M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M),slot_wear_mask) + M.put_in_hands_or_del(sword) + + if("assistant") + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) + M.put_in_hands_or_del(sword) + + if("animu") + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl/red(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("cultist") + M.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.put_in_hands_or_del(sword) + + if("highlander") + M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.put_in_hands_or_del(sword) + + if("clown") + M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) + M.put_in_hands_or_del(sword) + + if("killer") + M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) + M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) + M.put_in_hands_or_del(sword) + for(var/obj/item/carried_item in M.get_equipped_items()) + carried_item.add_mob_blood(M) + for(var/obj/item/I in M.held_items) + I.add_mob_blood(M) + if("pirate") + M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.put_in_hands_or_del(sword) + + if("soviet") + M.equip_to_slot_or_del(new /obj/item/clothing/head/pirate/captain(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate/captain(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("officer") + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/jacket/miljacket(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) + M.put_in_hands_or_del(sword) + + if("gladiator") + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.put_in_hands_or_del(sword) + + + else + return + + M.update_body_parts() + + var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id + W.icon_state = "centcom" + W.access += GLOB.access_maint_tunnels + W.assignment = "Multiverse Traveller" + W.registered_name = M.real_name + W.update_label(M.real_name) + M.equip_to_slot_or_del(W, slot_wear_id) + + +/obj/item/voodoo + name = "wicker doll" + desc = "Something creepy about it." + icon = 'icons/obj/wizard.dmi' + icon_state = "voodoo" + item_state = "electronic" + var/mob/living/carbon/human/target = null + var/list/mob/living/carbon/human/possible = list() + var/obj/item/link = null + var/cooldown_time = 30 //3s + var/cooldown = 0 + obj_integrity = 10 + max_integrity = 10 + resistance_flags = FLAMMABLE + +/obj/item/voodoo/attackby(obj/item/I, mob/user, params) + if(target && cooldown < world.time) + if(I.is_hot()) + to_chat(target, "You suddenly feel very hot") + target.bodytemperature += 50 + GiveHint(target) + else if(is_pointed(I)) + to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!") + target.Knockdown(40) + GiveHint(target) + else if(istype(I,/obj/item/weapon/bikehorn)) + to_chat(target, "HONK") + target << 'sound/items/airhorn.ogg' + target.adjustEarDamage(0,3) + GiveHint(target) + cooldown = world.time +cooldown_time + return + + if(!link) + if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL) + user.drop_item() + I.loc = src + link = I + to_chat(user, "You attach [I] to the doll.") + update_targets() + +/obj/item/voodoo/check_eye(mob/user) + if(loc != user) + user.reset_perspective(null) + user.unset_machine() + +/obj/item/voodoo/attack_self(mob/user) + if(!target && possible.len) + target = input(user, "Select your victim!", "Voodoo") as null|anything in possible + return + + if(user.zone_selected == "chest") + if(link) + target = null + link.loc = get_turf(src) + to_chat(user, "You remove the [link] from the doll.") + link = null + update_targets() + return + + if(target && cooldown < world.time) + switch(user.zone_selected) + if("mouth") + var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text) + target.say(wgw) + log_game("[user][user.key] made [target][target.key] say [wgw] with a voodoo doll.") + if("eyes") + user.set_machine(src) + user.reset_perspective(target) + spawn(100) + user.reset_perspective(null) + user.unset_machine() + if("r_leg","l_leg") + to_chat(user, "You move the doll's legs around.") + var/turf/T = get_step(target,pick(GLOB.cardinal)) + target.Move(T) + if("r_arm","l_arm") + target.click_random_mob() + GiveHint(target) + if("head") + to_chat(user, "You smack the doll's head with your hand.") + target.Dizzy(10) + to_chat(target, "You suddenly feel as if your head was hit with a hammer!") + GiveHint(target,user) + cooldown = world.time + cooldown_time + +/obj/item/voodoo/proc/update_targets() + possible = list() + if(!link) + return + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) + if(md5(H.dna.uni_identity) in link.fingerprints) + possible |= H + +/obj/item/voodoo/proc/GiveHint(mob/victim,force=0) + if(prob(50) || force) + var/way = dir2text(get_dir(victim,get_turf(src))) + to_chat(victim, "You feel a dark presence from [way]") + if(prob(20) || force) + var/area/A = get_area(src) + to_chat(victim, "You feel a dark presence from [A.name]") + +/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) + if(target) + target.adjust_fire_stacks(20) + target.IgniteMob() + GiveHint(target,1) + return ..() + + +//Provides a decent heal, need to pump every 6 seconds +/obj/item/organ/heart/cursed/wizard + pump_delay = 60 + heal_brute = 25 + heal_burn = 25 + heal_oxy = 25 + +//Warp Whistle: Provides uncontrolled long distance teleportation. + +/obj/item/warpwhistle + name = "warp whistle" + desc = "One toot on this whistle will send you to a far away land!" + icon = 'icons/obj/wizard.dmi' + icon_state = "whistle" + var/on_cooldown = 0 //0: usable, 1: in use, 2: on cooldown + var/mob/living/carbon/last_user + +/obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user) + if(!user || QDELETED(src)) + on_cooldown = FALSE + return TRUE + return FALSE + +/obj/item/warpwhistle/attack_self(mob/living/carbon/user) + if(!istype(user) || on_cooldown) + return + on_cooldown = TRUE + last_user = user + var/turf/T = get_turf(user) + playsound(T,'sound/magic/warpwhistle.ogg', 200, 1) + user.canmove = 0 new /obj/effect/temp_visual/tornado(T) - sleep(20) - if(interrupted(user)) - return - user.invisibility = INVISIBILITY_MAXIMUM - user.status_flags |= GODMODE - sleep(20) - if(interrupted(user)) - return - var/breakout = 0 - while(breakout < 50) - var/turf/potential_T = find_safe_turf() - if(T.z != potential_T.z || abs(get_dist_euclidian(potential_T,T)) > 50 - breakout) - user.forceMove(potential_T) - user.canmove = 0 - T = potential_T - break - breakout += 1 + sleep(20) + if(interrupted(user)) + return + user.invisibility = INVISIBILITY_MAXIMUM + user.status_flags |= GODMODE + sleep(20) + if(interrupted(user)) + return + var/breakout = 0 + while(breakout < 50) + var/turf/potential_T = find_safe_turf() + if(T.z != potential_T.z || abs(get_dist_euclidian(potential_T,T)) > 50 - breakout) + user.forceMove(potential_T) + user.canmove = 0 + T = potential_T + break + breakout += 1 new /obj/effect/temp_visual/tornado(T) - sleep(20) - if(interrupted(user)) - return - user.invisibility = initial(user.invisibility) - user.status_flags &= ~GODMODE - user.canmove = 1 - on_cooldown = 2 - sleep(40) - on_cooldown = 0 - -/obj/item/warpwhistle/Destroy() - if(on_cooldown == 1 && last_user) //Flute got dunked somewhere in the teleport - last_user.invisibility = initial(last_user.invisibility) - last_user.status_flags &= ~GODMODE - last_user.canmove = 1 - return ..() - + sleep(20) + if(interrupted(user)) + return + user.invisibility = initial(user.invisibility) + user.status_flags &= ~GODMODE + user.canmove = 1 + on_cooldown = 2 + sleep(40) + on_cooldown = 0 + +/obj/item/warpwhistle/Destroy() + if(on_cooldown == 1 && last_user) //Flute got dunked somewhere in the teleport + last_user.invisibility = initial(last_user.invisibility) + last_user.status_flags &= ~GODMODE + last_user.canmove = 1 + return ..() + /obj/effect/temp_visual/tornado - icon = 'icons/obj/wizard.dmi' - icon_state = "tornado" - name = "tornado" - desc = "This thing sucks!" - layer = FLY_LAYER - randomdir = 0 - duration = 40 - pixel_x = 500 - + icon = 'icons/obj/wizard.dmi' + icon_state = "tornado" + name = "tornado" + desc = "This thing sucks!" + layer = FLY_LAYER + randomdir = 0 + duration = 40 + pixel_x = 500 + /obj/effect/temp_visual/tornado/Initialize() - . = ..() - animate(src, pixel_x = -500, time = 40) + . = ..() + animate(src, pixel_x = -500, time = 40) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 4c25d221ff..d391e70c35 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -44,9 +44,9 @@ //////////////////////////////Capturing//////////////////////////////////////////////////////// -/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/user) +/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/living/user) if(!iscultist(user) && !iswizard(user) && !usability) - user.Paralyse(5) + user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return if(spent) @@ -63,11 +63,11 @@ ///////////////////Options for using captured souls/////////////////////////////////////// -/obj/item/device/soulstone/attack_self(mob/user) +/obj/item/device/soulstone/attack_self(mob/living/user) if(!in_range(src, user)) return if(!iscultist(user) && !iswizard(user) && !usability) - user.Paralyse(5) + user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return release_shades(user) @@ -274,4 +274,4 @@ T.dropItemToGround(W) init_shade(T, U) qdel(T) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index b55383a38d..9186872f58 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -118,7 +118,6 @@ /datum/spellbook_entry/disintegrate name = "Disintegrate" spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate - cost = 6 /datum/spellbook_entry/disabletech name = "Disable Tech" @@ -140,7 +139,6 @@ name = "Time Stop" spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop category = "Defensive" - cost = 4 /datum/spellbook_entry/smoke name = "Smoke" @@ -203,7 +201,6 @@ name = "Bind Soul" spell_type = /obj/effect/proc_holder/spell/targeted/lichdom category = "Defensive" - cost = 4 /datum/spellbook_entry/teslablast name = "Tesla Blast" @@ -279,7 +276,7 @@ if(surplus>=0) dat += "[surplus] left.
    " return dat -/* // these have never been fun, like, ever. + /datum/spellbook_entry/item/staffchange name = "Staff of Change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." @@ -289,13 +286,12 @@ name = "Staff of Animation" desc = "An arcane staff capable of shooting bolts of eldritch energy which cause inanimate objects to come to life. This magic doesn't affect machines." item_path = /obj/item/weapon/gun/magic/staff/animate - category = "Assistance" */ + category = "Assistance" /datum/spellbook_entry/item/staffchaos name = "Staff of Chaos" desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." item_path = /obj/item/weapon/gun/magic/staff/chaos - cost = 4 /datum/spellbook_entry/item/spellblade name = "Spellblade" @@ -482,13 +478,13 @@ /datum/spellbook_entry/summon/guns/IsAvailible() if(!SSticker.mode) // In case spellbook is placed on map return 0 - return (SSticker.mode.name != "ragin' mages" && !config.no_summon_guns) + return (!config.no_summon_guns) /datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) SSblackbox.add_details("wizard_spell_learned", name) rightandwrong(0, user, 25) active = 1 - playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) to_chat(user, "You have cast summon guns!") return 1 @@ -499,13 +495,13 @@ /datum/spellbook_entry/summon/magic/IsAvailible() if(!SSticker.mode) // In case spellbook is placed on map return 0 - return (SSticker.mode.name != "ragin' mages" && !config.no_summon_magic) + return (!config.no_summon_magic) /datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) SSblackbox.add_details("wizard_spell_learned", name) rightandwrong(1, user, 25) active = 1 - playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) to_chat(user, "You have cast summon magic!") return 1 @@ -517,13 +513,13 @@ /datum/spellbook_entry/summon/events/IsAvailible() if(!SSticker.mode) // In case spellbook is placed on map return 0 - return (SSticker.mode.name != "ragin' mages" && !config.no_summon_events) + return (!config.no_summon_events) /datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) SSblackbox.add_details("wizard_spell_learned", name) summonevents() times++ - playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) to_chat(user, "You have cast summon events.") return 1 @@ -842,10 +838,10 @@ icon_state ="bookforcewall" desc = "This book has a dedication to mimes everywhere inside the front cover." -/obj/item/weapon/spellbook/oneuse/forcewall/recoil(mob/user) +/obj/item/weapon/spellbook/oneuse/forcewall/recoil(mob/living/user) ..() to_chat(user,"You suddenly feel very solid!") - user.Stun(2) + user.Stun(40, ignore_canstun = TRUE) user.petrify(30) /obj/item/weapon/spellbook/oneuse/knock @@ -854,10 +850,10 @@ icon_state ="bookknock" desc = "This book is hard to hold closed properly." -/obj/item/weapon/spellbook/oneuse/knock/recoil(mob/user) +/obj/item/weapon/spellbook/oneuse/knock/recoil(mob/living/user) ..() to_chat(user,"You're knocked down!") - user.Weaken(20) + user.Knockdown(40) /obj/item/weapon/spellbook/oneuse/barnyard spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index ef8db43171..eb53620899 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -1,265 +1,265 @@ -/datum/game_mode - var/list/datum/mind/wizards = list() - var/list/datum/mind/apprentices = list() - -/datum/game_mode/wizard - name = "wizard" - config_tag = "wizard" - antag_flag = ROLE_WIZARD - required_players = 20 - required_enemies = 1 - recommended_enemies = 1 - enemy_minimum_age = 14 - round_ends_with_antag_death = 1 - announce_span = "danger" - announce_text = "There is a space wizard attacking the station!\n\ - Wizard: Accomplish your objectives and cause mayhem on the station.\n\ - Crew: Eliminate the wizard before they can succeed!" - var/use_huds = 0 - var/finished = 0 - -/datum/game_mode/wizard/pre_setup() - - var/datum/mind/wizard = pick(antag_candidates) - wizards += wizard - modePlayer += wizard - wizard.assigned_role = "Wizard" - wizard.special_role = "Wizard" - if(GLOB.wizardstart.len == 0) - to_chat(wizard.current, "A starting location for you could not be found, please report this bug!") - return 0 - for(var/datum/mind/wiz in wizards) - wiz.current.loc = pick(GLOB.wizardstart) - - return 1 - - -/datum/game_mode/wizard/post_setup() - for(var/datum/mind/wizard in wizards) - log_game("[wizard.key] (ckey) has been selected as a Wizard") - equip_wizard(wizard.current) - forge_wizard_objectives(wizard) - if(use_huds) - update_wiz_icons_added(wizard) - greet_wizard(wizard) - name_wizard(wizard.current) - ..() - return - - -/datum/game_mode/proc/forge_wizard_objectives(datum/mind/wizard) - switch(rand(1,100)) - if(1 to 30) - - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = wizard - kill_objective.find_target() - wizard.objectives += kill_objective - - if (!(locate(/datum/objective/escape) in wizard.objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = wizard - wizard.objectives += escape_objective - if(31 to 60) - var/datum/objective/steal/steal_objective = new - steal_objective.owner = wizard - steal_objective.find_target() - wizard.objectives += steal_objective - - if (!(locate(/datum/objective/escape) in wizard.objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = wizard - wizard.objectives += escape_objective - - if(61 to 85) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = wizard - kill_objective.find_target() - wizard.objectives += kill_objective - - var/datum/objective/steal/steal_objective = new - steal_objective.owner = wizard - steal_objective.find_target() - wizard.objectives += steal_objective - - if (!(locate(/datum/objective/survive) in wizard.objectives)) - var/datum/objective/survive/survive_objective = new - survive_objective.owner = wizard - wizard.objectives += survive_objective - - else - if (!(locate(/datum/objective/hijack) in wizard.objectives)) - var/datum/objective/hijack/hijack_objective = new - hijack_objective.owner = wizard - wizard.objectives += hijack_objective - return - - -/datum/game_mode/proc/name_wizard(mob/living/carbon/human/wizard_mob) - //Allows the wizard to choose a custom name or go with a random one. Spawn 0 so it does not lag the round starting. - var/wizard_name_first = pick(GLOB.wizard_first) - var/wizard_name_second = pick(GLOB.wizard_second) - var/randomname = "[wizard_name_first] [wizard_name_second]" - spawn(0) - var/newname = copytext(sanitize(input(wizard_mob, "You are the Space Wizard. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) - - if (!newname) - newname = randomname - - wizard_mob.real_name = newname - wizard_mob.name = newname - if(wizard_mob.mind) - wizard_mob.mind.name = newname +/datum/game_mode + var/list/datum/mind/wizards = list() + var/list/datum/mind/apprentices = list() + +/datum/game_mode/wizard + name = "wizard" + config_tag = "wizard" + antag_flag = ROLE_WIZARD + required_players = 20 + required_enemies = 1 + recommended_enemies = 1 + enemy_minimum_age = 14 + round_ends_with_antag_death = 1 + announce_span = "danger" + announce_text = "There is a space wizard attacking the station!\n\ + Wizard: Accomplish your objectives and cause mayhem on the station.\n\ + Crew: Eliminate the wizard before they can succeed!" + var/use_huds = 0 + var/finished = 0 + +/datum/game_mode/wizard/pre_setup() + + var/datum/mind/wizard = pick(antag_candidates) + wizards += wizard + modePlayer += wizard + wizard.assigned_role = "Wizard" + wizard.special_role = "Wizard" + if(GLOB.wizardstart.len == 0) + to_chat(wizard.current, "A starting location for you could not be found, please report this bug!") + return 0 + for(var/datum/mind/wiz in wizards) + wiz.current.loc = pick(GLOB.wizardstart) + + return 1 + + +/datum/game_mode/wizard/post_setup() + for(var/datum/mind/wizard in wizards) + log_game("[wizard.key] (ckey) has been selected as a Wizard") + equip_wizard(wizard.current) + forge_wizard_objectives(wizard) + if(use_huds) + update_wiz_icons_added(wizard) + greet_wizard(wizard) + name_wizard(wizard.current) + ..() + return + + +/datum/game_mode/proc/forge_wizard_objectives(datum/mind/wizard) + switch(rand(1,100)) + if(1 to 30) + + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = wizard + kill_objective.find_target() + wizard.objectives += kill_objective + + if (!(locate(/datum/objective/escape) in wizard.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = wizard + wizard.objectives += escape_objective + if(31 to 60) + var/datum/objective/steal/steal_objective = new + steal_objective.owner = wizard + steal_objective.find_target() + wizard.objectives += steal_objective + + if (!(locate(/datum/objective/escape) in wizard.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = wizard + wizard.objectives += escape_objective + + if(61 to 85) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = wizard + kill_objective.find_target() + wizard.objectives += kill_objective + + var/datum/objective/steal/steal_objective = new + steal_objective.owner = wizard + steal_objective.find_target() + wizard.objectives += steal_objective + + if (!(locate(/datum/objective/survive) in wizard.objectives)) + var/datum/objective/survive/survive_objective = new + survive_objective.owner = wizard + wizard.objectives += survive_objective + + else + if (!(locate(/datum/objective/hijack) in wizard.objectives)) + var/datum/objective/hijack/hijack_objective = new + hijack_objective.owner = wizard + wizard.objectives += hijack_objective + return + + +/datum/game_mode/proc/name_wizard(mob/living/carbon/human/wizard_mob) + //Allows the wizard to choose a custom name or go with a random one. Spawn 0 so it does not lag the round starting. + var/wizard_name_first = pick(GLOB.wizard_first) + var/wizard_name_second = pick(GLOB.wizard_second) + var/randomname = "[wizard_name_first] [wizard_name_second]" + spawn(0) + var/newname = copytext(sanitize(input(wizard_mob, "You are the Space Wizard. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) + + if (!newname) + newname = randomname + + wizard_mob.real_name = newname + wizard_mob.name = newname + if(wizard_mob.mind) + wizard_mob.mind.name = newname /* Wizards by nature cannot be too young. */ if(wizard_mob.age < WIZARD_AGE_MIN) wizard_mob.age = WIZARD_AGE_MIN - return - - -/datum/game_mode/proc/greet_wizard(datum/mind/wizard, you_are=1) - if (you_are) - to_chat(wizard.current, "You are the Space Wizard!") - to_chat(wizard.current, "The Space Wizards Federation has given you the following tasks:") - - wizard.announce_objectives() - return - - -/datum/game_mode/proc/learn_basic_spells(mob/living/carbon/human/wizard_mob) - if(!istype(wizard_mob) || !wizard_mob.mind) - return 0 - wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) //Wizards get Magic Missile and Ethereal Jaunt by default - wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) - - -/datum/game_mode/proc/equip_wizard(mob/living/carbon/human/wizard_mob) - if (!istype(wizard_mob)) - return - - //So zards properly get their items when they are admin-made. - qdel(wizard_mob.wear_suit) - qdel(wizard_mob.head) - qdel(wizard_mob.shoes) - for(var/obj/item/I in wizard_mob.held_items) - qdel(I) - qdel(wizard_mob.r_store) - qdel(wizard_mob.l_store) - - wizard_mob.set_species(/datum/species/human) - wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears) - wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform) - wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(wizard_mob), slot_shoes) - wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) - wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) - wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back) - wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(wizard_mob), slot_in_backpack) - wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) - var/obj/item/weapon/spellbook/spellbook = new /obj/item/weapon/spellbook(wizard_mob) - spellbook.owner = wizard_mob - wizard_mob.put_in_hands_or_del(spellbook) - - to_chat(wizard_mob, "You will find a list of available spells in your spell book. Choose your magic arsenal carefully.") - to_chat(wizard_mob, "The spellbook is bound to you, and others cannot use it.") - to_chat(wizard_mob, "In your pockets you will find a teleport scroll. Use it as needed.") - wizard_mob.mind.store_memory("Remember: do not forget to prepare your spells.") - return 1 - - -/datum/game_mode/wizard/check_finished() - - for(var/datum/mind/wizard in wizards) - if(isliving(wizard.current) && wizard.current.stat!=DEAD) - return ..() - - if(SSevents.wizardmode) //If summon events was active, turn it off - SSevents.toggleWizardmode() - SSevents.resetFrequency() - - return ..() - -/datum/game_mode/wizard/declare_completion() - if(finished) + return + + +/datum/game_mode/proc/greet_wizard(datum/mind/wizard, you_are=1) + if (you_are) + to_chat(wizard.current, "You are the Space Wizard!") + to_chat(wizard.current, "The Space Wizards Federation has given you the following tasks:") + + wizard.announce_objectives() + return + + +/datum/game_mode/proc/learn_basic_spells(mob/living/carbon/human/wizard_mob) + if(!istype(wizard_mob) || !wizard_mob.mind) + return 0 + wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) //Wizards get Magic Missile and Ethereal Jaunt by default + wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) + + +/datum/game_mode/proc/equip_wizard(mob/living/carbon/human/wizard_mob) + if (!istype(wizard_mob)) + return + + //So zards properly get their items when they are admin-made. + qdel(wizard_mob.wear_suit) + qdel(wizard_mob.head) + qdel(wizard_mob.shoes) + for(var/obj/item/I in wizard_mob.held_items) + qdel(I) + qdel(wizard_mob.r_store) + qdel(wizard_mob.l_store) + + wizard_mob.set_species(/datum/species/human) + wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(wizard_mob), slot_shoes) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(wizard_mob), slot_in_backpack) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) + var/obj/item/weapon/spellbook/spellbook = new /obj/item/weapon/spellbook(wizard_mob) + spellbook.owner = wizard_mob + wizard_mob.put_in_hands_or_del(spellbook) + + to_chat(wizard_mob, "You will find a list of available spells in your spell book. Choose your magic arsenal carefully.") + to_chat(wizard_mob, "The spellbook is bound to you, and others cannot use it.") + to_chat(wizard_mob, "In your pockets you will find a teleport scroll. Use it as needed.") + wizard_mob.mind.store_memory("Remember: do not forget to prepare your spells.") + return 1 + + +/datum/game_mode/wizard/check_finished() + + for(var/datum/mind/wizard in wizards) + if(isliving(wizard.current) && wizard.current.stat!=DEAD) + return ..() + + if(SSevents.wizardmode) //If summon events was active, turn it off + SSevents.toggleWizardmode() + SSevents.resetFrequency() + + return ..() + +/datum/game_mode/wizard/declare_completion() + if(finished) SSticker.mode_result = "loss - wizard killed" - to_chat(world, "The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!") - - SSticker.news_report = WIZARD_KILLED - - ..() - return 1 - - -/datum/game_mode/proc/auto_declare_completion_wizard() - if(wizards.len) - var/text = "
    the wizards/witches were:" - - for(var/datum/mind/wizard in wizards) - - text += "
    [wizard.key] was [wizard.name] (" - if(wizard.current) - if(wizard.current.stat == DEAD) - text += "died" - else - text += "survived" - if(wizard.current.real_name != wizard.name) - text += " as [wizard.current.real_name]" - else - text += "body destroyed" - text += ")" - - var/count = 1 - var/wizardwin = 1 - for(var/datum/objective/objective in wizard.objectives) - if(objective.check_completion()) - text += "
    Objective #[count]: [objective.explanation_text] Success!" + to_chat(world, "The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!") + + SSticker.news_report = WIZARD_KILLED + + ..() + return 1 + + +/datum/game_mode/proc/auto_declare_completion_wizard() + if(wizards.len) + var/text = "
    the wizards/witches were:" + + for(var/datum/mind/wizard in wizards) + + text += "
    [wizard.key] was [wizard.name] (" + if(wizard.current) + if(wizard.current.stat == DEAD) + text += "died" + else + text += "survived" + if(wizard.current.real_name != wizard.name) + text += " as [wizard.current.real_name]" + else + text += "body destroyed" + text += ")" + + var/count = 1 + var/wizardwin = 1 + for(var/datum/objective/objective in wizard.objectives) + if(objective.check_completion()) + text += "
    Objective #[count]: [objective.explanation_text] Success!" SSblackbox.add_details("wizard_objective","[objective.type]|SUCCESS") - else - text += "
    Objective #[count]: [objective.explanation_text] Fail." + else + text += "
    Objective #[count]: [objective.explanation_text] Fail." SSblackbox.add_details("wizard_objective","[objective.type]|FAIL") - wizardwin = 0 - count++ - - if(wizard.current && wizard.current.stat!=2 && wizardwin) - text += "
    The wizard was successful!" + wizardwin = 0 + count++ + + if(wizard.current && wizard.current.stat!=2 && wizardwin) + text += "
    The wizard was successful!" SSblackbox.add_details("wizard_success","SUCCESS") - else - text += "
    The wizard has failed!" + else + text += "
    The wizard has failed!" SSblackbox.add_details("wizard_success","FAIL") - if(wizard.spell_list.len>0) - text += "
    [wizard.name] used the following spells: " - var/i = 1 - for(var/obj/effect/proc_holder/spell/S in wizard.spell_list) - text += "[S.name]" - if(wizard.spell_list.len > i) - text += ", " - i++ - text += "
    " - - to_chat(world, text) - return 1 - -//OTHER PROCS - -//To batch-remove wizard spells. Linked to mind.dm. -/mob/proc/spellremove(mob/M) - if(!mind) - return - for(var/X in src.mind.spell_list) - var/obj/effect/proc_holder/spell/spell_to_remove = X - qdel(spell_to_remove) - mind.spell_list -= spell_to_remove - -//returns whether the mob is a wizard (or apprentice) -/proc/iswizard(mob/living/M) - return istype(M) && M.mind && SSticker && SSticker.mode && ((M.mind in SSticker.mode.wizards) || (M.mind in SSticker.mode.apprentices)) - - -/datum/game_mode/proc/update_wiz_icons_added(datum/mind/wiz_mind) - var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ] - wizhud.join_hud(wiz_mind.current) - set_antag_hud(wiz_mind.current, ((wiz_mind in wizards) ? "wizard" : "apprentice")) - -/datum/game_mode/proc/update_wiz_icons_removed(datum/mind/wiz_mind) - var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ] - wizhud.leave_hud(wiz_mind.current) - set_antag_hud(wiz_mind.current, null) + if(wizard.spell_list.len>0) + text += "
    [wizard.name] used the following spells: " + var/i = 1 + for(var/obj/effect/proc_holder/spell/S in wizard.spell_list) + text += "[S.name]" + if(wizard.spell_list.len > i) + text += ", " + i++ + text += "
    " + + to_chat(world, text) + return 1 + +//OTHER PROCS + +//To batch-remove wizard spells. Linked to mind.dm. +/mob/proc/spellremove(mob/M) + if(!mind) + return + for(var/X in src.mind.spell_list) + var/obj/effect/proc_holder/spell/spell_to_remove = X + qdel(spell_to_remove) + mind.spell_list -= spell_to_remove + +//returns whether the mob is a wizard (or apprentice) +/proc/iswizard(mob/living/M) + return istype(M) && M.mind && SSticker && SSticker.mode && ((M.mind in SSticker.mode.wizards) || (M.mind in SSticker.mode.apprentices)) + + +/datum/game_mode/proc/update_wiz_icons_added(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ] + wizhud.join_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, ((wiz_mind in wizards) ? "wizard" : "apprentice")) + +/datum/game_mode/proc/update_wiz_icons_removed(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = GLOB.huds[ANTAG_HUD_WIZ] + wizhud.leave_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, null) diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index ef91d7663d..b32f5ff8da 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -1,56 +1,56 @@ -/obj/machinery/bluespace_beacon - - icon = 'icons/obj/objects.dmi' - icon_state = "floor_beaconf" - name = "bluespace gigabeacon" - desc = "A device that draws power from bluespace and creates a permanent tracking beacon." - level = 1 // underfloor - layer = LOW_OBJ_LAYER - anchored = 1 +/obj/machinery/bluespace_beacon + + icon = 'icons/obj/objects.dmi' + icon_state = "floor_beaconf" + name = "bluespace gigabeacon" + desc = "A device that draws power from bluespace and creates a permanent tracking beacon." + level = 1 // underfloor + layer = LOW_OBJ_LAYER + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 0 - var/obj/item/device/radio/beacon/Beacon - -/obj/machinery/bluespace_beacon/New() - ..() - var/turf/T = loc - Beacon = new /obj/item/device/radio/beacon - Beacon.invisibility = INVISIBILITY_MAXIMUM - Beacon.loc = T - - hide(T.intact) - -/obj/machinery/bluespace_beacon/Destroy() - if(Beacon) - qdel(Beacon) - Beacon = null - return ..() - -// update the invisibility and icon -/obj/machinery/bluespace_beacon/hide(intact) - invisibility = intact ? INVISIBILITY_MAXIMUM : 0 - updateicon() - -// update the icon_state -/obj/machinery/bluespace_beacon/proc/updateicon() - var/state="floor_beacon" - - if(invisibility) - icon_state = "[state]f" - - else - icon_state = "[state]" - -/obj/machinery/bluespace_beacon/process() - if(!Beacon) - var/turf/T = loc - Beacon = new /obj/item/device/radio/beacon - Beacon.invisibility = INVISIBILITY_MAXIMUM - Beacon.loc = T - if(Beacon) - if(Beacon.loc != loc) - Beacon.loc = loc - - updateicon() - - + idle_power_usage = 0 + var/obj/item/device/radio/beacon/Beacon + +/obj/machinery/bluespace_beacon/New() + ..() + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + + hide(T.intact) + +/obj/machinery/bluespace_beacon/Destroy() + if(Beacon) + qdel(Beacon) + Beacon = null + return ..() + +// update the invisibility and icon +/obj/machinery/bluespace_beacon/hide(intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 + updateicon() + +// update the icon_state +/obj/machinery/bluespace_beacon/proc/updateicon() + var/state="floor_beacon" + + if(invisibility) + icon_state = "[state]f" + + else + icon_state = "[state]" + +/obj/machinery/bluespace_beacon/process() + if(!Beacon) + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + if(Beacon) + if(Beacon.loc != loc) + Beacon.loc = loc + + updateicon() + + diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 052eb2d037..36b1badd18 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -92,7 +92,7 @@ if(!WT.isOn() || !(stat & BROKEN)) return to_chat(user, "You repair [src].") - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) stat &= ~BROKEN obj_integrity = max_integrity update_icon() diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index fea450e20f..3b915c6065 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -1,51 +1,51 @@ -/obj/machinery/ai_slipper +/obj/machinery/ai_slipper name = "foam dispenser" desc = "A remotely-activatable dispenser for crowd-controlling foam." - icon = 'icons/obj/device.dmi' - icon_state = "ai-slipper0" - layer = PROJECTILE_HIT_THRESHHOLD_LAYER + icon = 'icons/obj/device.dmi' + icon_state = "ai-slipper0" + layer = PROJECTILE_HIT_THRESHHOLD_LAYER anchored = TRUE - obj_integrity = 200 - max_integrity = 200 - armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - - var/uses = 20 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + + var/uses = 20 var/cooldown = 0 var/cooldown_time = 100 - req_access = list(GLOB.access_ai_upload) - + req_access = list(GLOB.access_ai_upload) + /obj/machinery/ai_slipper/examine(mob/user) ..() to_chat(user, "It has [uses] uses of foam remaining.") -/obj/machinery/ai_slipper/power_change() - if(stat & BROKEN) - return - else +/obj/machinery/ai_slipper/power_change() + if(stat & BROKEN) + return + else if(powered()) - stat &= ~NOPOWER - else - stat |= NOPOWER + stat &= ~NOPOWER + else + stat |= NOPOWER if((stat & (NOPOWER|BROKEN)) || cooldown_time > world.time || !uses) icon_state = "ai-slipper0" - else + else icon_state = "ai-slipper1" - -/obj/machinery/ai_slipper/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/ai_slipper/attack_hand(mob/user) - if(stat & (NOPOWER|BROKEN)) - return + +/obj/machinery/ai_slipper/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/ai_slipper/attack_hand(mob/user) + if(stat & (NOPOWER|BROKEN)) + return if(!allowed(user)) to_chat(user, "Access denied.") - return + return if(!uses) to_chat(user, "[src] is out of foam and cannot be activated.") return if(cooldown_time > world.time) to_chat(user, "[src] cannot be activated for another [round((world.time - cooldown_time) * 0.1)] second\s.") - return + return new /obj/effect/particle_effect/foam(loc) uses-- to_chat(user, "You activate [src]. It now has [uses] uses of foam remaining.") diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 3a1f4d3e9c..e04f130d6d 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -1,418 +1,418 @@ -#define AUTOLATHE_MAIN_MENU 1 -#define AUTOLATHE_CATEGORY_MENU 2 -#define AUTOLATHE_SEARCH_MENU 3 - -/obj/machinery/autolathe - name = "autolathe" - desc = "It produces items using metal and glass." - icon_state = "autolathe" - density = 1 - - var/operating = 0 - anchored = 1 - var/list/L = list() - var/list/LL = list() - var/hacked = 0 - var/disabled = 0 - var/shocked = 0 - var/hack_wire - var/disable_wire - var/shock_wire +#define AUTOLATHE_MAIN_MENU 1 +#define AUTOLATHE_CATEGORY_MENU 2 +#define AUTOLATHE_SEARCH_MENU 3 + +/obj/machinery/autolathe + name = "autolathe" + desc = "It produces items using metal and glass." + icon_state = "autolathe" + density = 1 + + var/operating = 0 + anchored = 1 + var/list/L = list() + var/list/LL = list() + var/hacked = 0 + var/disabled = 0 + var/shocked = 0 + var/hack_wire + var/disable_wire + var/shock_wire use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - var/busy = 0 - var/prod_coeff = 1 - - var/datum/design/being_built - var/datum/research/files - var/list/datum/design/matching_designs - var/selected_category - var/screen = 1 - - var/datum/material_container/materials - - var/list/categories = list( - "Tools", - "Electronics", - "Construction", - "T-Comm", - "Security", - "Machinery", - "Medical", - "Misc", - "Dinnerware", - "Imported" - ) - -/obj/machinery/autolathe/New() - ..() - materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS)) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null) - B.apply_default_parts(src) - - wires = new /datum/wires/autolathe(src) - files = new /datum/research/autolathe(src) - matching_designs = list() - -/obj/item/weapon/circuitboard/machine/autolathe - name = "Autolathe (Machine Board)" - build_path = /obj/machinery/autolathe - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 3, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/machinery/autolathe/Destroy() - qdel(wires) - wires = null - qdel(materials) - materials = null - return ..() - -/obj/machinery/autolathe/interact(mob/user) - if(!is_operational()) - return - - if(shocked && !(stat & NOPOWER)) - shock(user,50) - - var/dat - - switch(screen) - if(AUTOLATHE_MAIN_MENU) - dat = main_win(user) - if(AUTOLATHE_CATEGORY_MENU) - dat = category_win(user,selected_category) - if(AUTOLATHE_SEARCH_MENU) - dat = search_win(user) - - var/datum/browser/popup = new(user, "autolathe", name, 400, 500) - popup.set_content(dat) - popup.open() - -/obj/machinery/autolathe/on_deconstruction() - materials.retrieve_all() - -/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params) - if (busy) - to_chat(user, "The autolathe is busy. Please wait for completion of previous operation.") - return 1 - - if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O)) - updateUsrDialog() - return - - if(exchange_parts(user, O)) - return - - if(panel_open) - if(istype(O, /obj/item/weapon/crowbar)) - default_deconstruction_crowbar(O) - return 1 - else if(is_wire_tool(O)) - wires.interact(user) - return 1 - - if(user.a_intent == INTENT_HARM) //so we can hit the machine - return ..() - - if(stat) - return 1 - - if(istype(O, /obj/item/weapon/disk/design_disk)) - user.visible_message("[user] begins to load \the [O] in \the [src]...", - "You begin to load a design from \the [O]...", - "You hear the chatter of a floppy drive.") - busy = 1 - var/obj/item/weapon/disk/design_disk/D = O - if(do_after(user, 14.4, target = src)) - for(var/B in D.blueprints) - if(B) - files.AddDesign2Known(B) - - busy = 0 - return 1 - - if(HAS_SECONDARY_FLAG(O, HOLOGRAM)) - return 1 - - var/material_amount = materials.get_item_material_amount(O) - if(!material_amount) - to_chat(user, "This object does not contain sufficient amounts of metal or glass to be accepted by the autolathe.") - return 1 - if(!materials.has_space(material_amount)) - to_chat(user, "The autolathe is full. Please remove metal or glass from the autolathe in order to insert more.") - return 1 - if(!user.temporarilyRemoveItemFromInventory(O)) - to_chat(user, "\The [O] is stuck to you and cannot be placed into the autolathe.") - return 1 - - busy = 1 - var/inserted = materials.insert_item(O) - if(inserted) - if(istype(O,/obj/item/stack)) - if (O.materials[MAT_METAL]) - flick("autolathe_o",src)//plays metal insertion animation - if (O.materials[MAT_GLASS]) - flick("autolathe_r",src)//plays glass insertion animation - to_chat(user, "You insert [inserted] sheet[inserted>1 ? "s" : ""] to the autolathe.") - use_power(inserted*100) - if(!QDELETED(O)) - user.put_in_active_hand(O) - else - to_chat(user, "You insert a material total of [inserted] to the autolathe.") - use_power(max(500,inserted/10)) - qdel(O) - else - user.put_in_active_hand(O) - - busy = 0 - updateUsrDialog() - return 1 - -/obj/machinery/autolathe/Topic(href, href_list) - if(..()) - return - if (!busy) - if(href_list["menu"]) - screen = text2num(href_list["menu"]) - updateUsrDialog() - - if(href_list["category"]) - selected_category = href_list["category"] - updateUsrDialog() - - if(href_list["make"]) - - var/turf/T = loc - - ///////////////// - //href protection - being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design - if(!being_built) - return - - var/multiplier = text2num(href_list["multiplier"]) - var/is_stack = ispath(being_built.build_path, /obj/item/stack) - - ///////////////// - - var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient - var/metal_cost = being_built.materials[MAT_METAL] - var/glass_cost = being_built.materials[MAT_GLASS] - - var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) - - if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff)) - busy = 1 - use_power(power) - icon_state = "autolathe" - flick("autolathe_n",src) - if(is_stack) - spawn(32*coeff) - use_power(power) - var/list/materials_used = list(MAT_METAL=metal_cost*multiplier, MAT_GLASS=glass_cost*multiplier) - materials.use_amount(materials_used) - - var/obj/item/stack/N = new being_built.build_path(T, multiplier) - N.update_icon() - N.autolathe_crafted(src) - - for(var/obj/item/stack/S in T.contents - N) - if(istype(S, N.merge_type)) - N.merge(S) - busy = 0 - updateUsrDialog() - - else - spawn(32*coeff*multiplier) - use_power(power) - var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier) - materials.use_amount(materials_used) - for(var/i=1, i<=multiplier, i++) - var/obj/item/new_item = new being_built.build_path(T) - for(var/mat in materials_used) - new_item.materials[mat] = materials_used[mat] / multiplier - new_item.autolathe_crafted(src) - busy = 0 - updateUsrDialog() - - if(href_list["search"]) - matching_designs.Cut() - - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(findtext(D.name,href_list["to_search"])) - matching_designs.Add(D) - updateUsrDialog() - else - to_chat(usr, "The autolathe is busy. Please wait for completion of previous operation.") - - updateUsrDialog() - - return - -/obj/machinery/autolathe/RefreshParts() - var/T = 0 - for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts) - T += MB.rating*75000 - materials.max_amount = T - T=1.2 - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - T -= M.rating*0.2 - prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 - -/obj/machinery/autolathe/proc/main_win(mob/user) - var/dat = "

    Autolathe Menu:


    " - dat += materials_printout() - - dat += "
    \ - \ - \ - \ - \ - \ -

    " - - var/line_length = 1 - dat += "" - - for(var/C in categories) - if(line_length > 2) - dat += "" - line_length = 1 - - dat += "" - line_length++ - - dat += "
    [C]
    " - return dat - -/obj/machinery/autolathe/proc/category_win(mob/user,selected_category) - var/dat = "Return to main menu" - dat += "

    Browsing [selected_category]:


    " - dat += materials_printout() - - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(!(selected_category in D.category)) - continue - - if(disabled || !can_build(D)) - dat += "[D.name]" - else - dat += "[D.name]" - - if(ispath(D.build_path, /obj/item/stack)) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) - if (max_multiplier>10 && !disabled) - dat += " x10" - if (max_multiplier>25 && !disabled) - dat += " x25" - if(max_multiplier > 0 && !disabled) - dat += " x[max_multiplier]" - else - if(!disabled && can_build(D, 5)) - dat += " x5" - if(!disabled && can_build(D, 10)) - dat += " x10" - - dat += "[get_design_cost(D)]
    " - - dat += "
    " - return dat - -/obj/machinery/autolathe/proc/search_win(mob/user) - var/dat = "Return to main menu" - dat += "

    Search results:


    " - dat += materials_printout() - - for(var/v in matching_designs) - var/datum/design/D = v - if(disabled || !can_build(D)) - dat += "[D.name]" - else - dat += "[D.name]" - - if(ispath(D.build_path, /obj/item/stack)) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) - if (max_multiplier>10 && !disabled) - dat += " x10" - if (max_multiplier>25 && !disabled) - dat += " x25" - if(max_multiplier > 0 && !disabled) - dat += " x[max_multiplier]" - - dat += "[get_design_cost(D)]
    " - - dat += "
    " - return dat - -/obj/machinery/autolathe/proc/materials_printout() - var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
    " - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - dat += "[M.name] amount: [M.amount] cm3
    " - return dat - -/obj/machinery/autolathe/proc/can_build(datum/design/D, amount = 1) - if(D.make_reagents.len) - return 0 - - var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) - - if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount))) - return 0 - if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount))) - return 0 - return 1 - -/obj/machinery/autolathe/proc/get_design_cost(datum/design/D) - var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) - var/dat - if(D.materials[MAT_METAL]) - dat += "[D.materials[MAT_METAL] * coeff] metal " - if(D.materials[MAT_GLASS]) - dat += "[D.materials[MAT_GLASS] * coeff] glass" - return dat - -/obj/machinery/autolathe/proc/reset(wire) - switch(wire) - if(WIRE_HACK) - if(!wires.is_cut(wire)) - adjust_hacked(FALSE) - if(WIRE_SHOCK) - if(!wires.is_cut(wire)) - shocked = FALSE - if(WIRE_DISABLE) - if(!wires.is_cut(wire)) - disabled = FALSE - -/obj/machinery/autolathe/proc/shock(mob/user, prb) - if(stat & (BROKEN|NOPOWER)) // unpowered, no shock - return 0 - if(!prob(prb)) - return 0 - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(5, 1, src) - s.start() - if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) - return 1 - else - return 0 - -/obj/machinery/autolathe/proc/adjust_hacked(state) - hacked = state - for(var/datum/design/D in files.possible_designs) - if((D.build_type & AUTOLATHE) && ("hacked" in D.category)) - if(hacked) - files.AddDesign2Known(D) - else - files.known_designs -= D.id - -//Called when the object is constructed by an autolathe -//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes -/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) - return + idle_power_usage = 10 + active_power_usage = 100 + var/busy = 0 + var/prod_coeff = 1 + + var/datum/design/being_built + var/datum/research/files + var/list/datum/design/matching_designs + var/selected_category + var/screen = 1 + + var/datum/material_container/materials + + var/list/categories = list( + "Tools", + "Electronics", + "Construction", + "T-Comm", + "Security", + "Machinery", + "Medical", + "Misc", + "Dinnerware", + "Imported" + ) + +/obj/machinery/autolathe/New() + ..() + materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null) + B.apply_default_parts(src) + + wires = new /datum/wires/autolathe(src) + files = new /datum/research/autolathe(src) + matching_designs = list() + +/obj/item/weapon/circuitboard/machine/autolathe + name = "Autolathe (Machine Board)" + build_path = /obj/machinery/autolathe + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 3, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/autolathe/Destroy() + qdel(wires) + wires = null + qdel(materials) + materials = null + return ..() + +/obj/machinery/autolathe/interact(mob/user) + if(!is_operational()) + return + + if(shocked && !(stat & NOPOWER)) + shock(user,50) + + var/dat + + switch(screen) + if(AUTOLATHE_MAIN_MENU) + dat = main_win(user) + if(AUTOLATHE_CATEGORY_MENU) + dat = category_win(user,selected_category) + if(AUTOLATHE_SEARCH_MENU) + dat = search_win(user) + + var/datum/browser/popup = new(user, "autolathe", name, 400, 500) + popup.set_content(dat) + popup.open() + +/obj/machinery/autolathe/on_deconstruction() + materials.retrieve_all() + +/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params) + if (busy) + to_chat(user, "The autolathe is busy. Please wait for completion of previous operation.") + return 1 + + if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O)) + updateUsrDialog() + return + + if(exchange_parts(user, O)) + return + + if(panel_open) + if(istype(O, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(O) + return 1 + else if(is_wire_tool(O)) + wires.interact(user) + return 1 + + if(user.a_intent == INTENT_HARM) //so we can hit the machine + return ..() + + if(stat) + return 1 + + if(istype(O, /obj/item/weapon/disk/design_disk)) + user.visible_message("[user] begins to load \the [O] in \the [src]...", + "You begin to load a design from \the [O]...", + "You hear the chatter of a floppy drive.") + busy = 1 + var/obj/item/weapon/disk/design_disk/D = O + if(do_after(user, 14.4, target = src)) + for(var/B in D.blueprints) + if(B) + files.AddDesign2Known(B) + + busy = 0 + return 1 + + if(HAS_SECONDARY_FLAG(O, HOLOGRAM)) + return 1 + + var/material_amount = materials.get_item_material_amount(O) + if(!material_amount) + to_chat(user, "This object does not contain sufficient amounts of metal or glass to be accepted by the autolathe.") + return 1 + if(!materials.has_space(material_amount)) + to_chat(user, "The autolathe is full. Please remove metal or glass from the autolathe in order to insert more.") + return 1 + if(!user.temporarilyRemoveItemFromInventory(O)) + to_chat(user, "\The [O] is stuck to you and cannot be placed into the autolathe.") + return 1 + + busy = 1 + var/inserted = materials.insert_item(O) + if(inserted) + if(istype(O,/obj/item/stack)) + if (O.materials[MAT_METAL]) + flick("autolathe_o",src)//plays metal insertion animation + if (O.materials[MAT_GLASS]) + flick("autolathe_r",src)//plays glass insertion animation + to_chat(user, "You insert [inserted] sheet[inserted>1 ? "s" : ""] to the autolathe.") + use_power(inserted*100) + if(!QDELETED(O)) + user.put_in_active_hand(O) + else + to_chat(user, "You insert a material total of [inserted] to the autolathe.") + use_power(max(500,inserted/10)) + qdel(O) + else + user.put_in_active_hand(O) + + busy = 0 + updateUsrDialog() + return 1 + +/obj/machinery/autolathe/Topic(href, href_list) + if(..()) + return + if (!busy) + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + updateUsrDialog() + + if(href_list["category"]) + selected_category = href_list["category"] + updateUsrDialog() + + if(href_list["make"]) + + var/turf/T = loc + + ///////////////// + //href protection + being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design + if(!being_built) + return + + var/multiplier = text2num(href_list["multiplier"]) + var/is_stack = ispath(being_built.build_path, /obj/item/stack) + + ///////////////// + + var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient + var/metal_cost = being_built.materials[MAT_METAL] + var/glass_cost = being_built.materials[MAT_GLASS] + + var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) + + if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff)) + busy = 1 + use_power(power) + icon_state = "autolathe" + flick("autolathe_n",src) + if(is_stack) + spawn(32*coeff) + use_power(power) + var/list/materials_used = list(MAT_METAL=metal_cost*multiplier, MAT_GLASS=glass_cost*multiplier) + materials.use_amount(materials_used) + + var/obj/item/stack/N = new being_built.build_path(T, multiplier) + N.update_icon() + N.autolathe_crafted(src) + + for(var/obj/item/stack/S in T.contents - N) + if(istype(S, N.merge_type)) + N.merge(S) + busy = 0 + updateUsrDialog() + + else + spawn(32*coeff*multiplier) + use_power(power) + var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier) + materials.use_amount(materials_used) + for(var/i=1, i<=multiplier, i++) + var/obj/item/new_item = new being_built.build_path(T) + for(var/mat in materials_used) + new_item.materials[mat] = materials_used[mat] / multiplier + new_item.autolathe_crafted(src) + busy = 0 + updateUsrDialog() + + if(href_list["search"]) + matching_designs.Cut() + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(findtext(D.name,href_list["to_search"])) + matching_designs.Add(D) + updateUsrDialog() + else + to_chat(usr, "The autolathe is busy. Please wait for completion of previous operation.") + + updateUsrDialog() + + return + +/obj/machinery/autolathe/RefreshParts() + var/T = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts) + T += MB.rating*75000 + materials.max_amount = T + T=1.2 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + T -= M.rating*0.2 + prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 + +/obj/machinery/autolathe/proc/main_win(mob/user) + var/dat = "

    Autolathe Menu:


    " + dat += materials_printout() + + dat += "
    \ + \ + \ + \ + \ + \ +

    " + + var/line_length = 1 + dat += "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
    [C]
    " + return dat + +/obj/machinery/autolathe/proc/category_win(mob/user,selected_category) + var/dat = "Return to main menu" + dat += "

    Browsing [selected_category]:


    " + dat += materials_printout() + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(selected_category in D.category)) + continue + + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + else + if(!disabled && can_build(D, 5)) + dat += " x5" + if(!disabled && can_build(D, 10)) + dat += " x10" + + dat += "[get_design_cost(D)]
    " + + dat += "
    " + return dat + +/obj/machinery/autolathe/proc/search_win(mob/user) + var/dat = "Return to main menu" + dat += "

    Search results:


    " + dat += materials_printout() + + for(var/v in matching_designs) + var/datum/design/D = v + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + + dat += "[get_design_cost(D)]
    " + + dat += "
    " + return dat + +/obj/machinery/autolathe/proc/materials_printout() + var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
    " + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + dat += "[M.name] amount: [M.amount] cm3
    " + return dat + +/obj/machinery/autolathe/proc/can_build(datum/design/D, amount = 1) + if(D.make_reagents.len) + return 0 + + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + + if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount))) + return 0 + if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount))) + return 0 + return 1 + +/obj/machinery/autolathe/proc/get_design_cost(datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + var/dat + if(D.materials[MAT_METAL]) + dat += "[D.materials[MAT_METAL] * coeff] metal " + if(D.materials[MAT_GLASS]) + dat += "[D.materials[MAT_GLASS] * coeff] glass" + return dat + +/obj/machinery/autolathe/proc/reset(wire) + switch(wire) + if(WIRE_HACK) + if(!wires.is_cut(wire)) + adjust_hacked(FALSE) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + if(WIRE_DISABLE) + if(!wires.is_cut(wire)) + disabled = FALSE + +/obj/machinery/autolathe/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) + return 1 + else + return 0 + +/obj/machinery/autolathe/proc/adjust_hacked(state) + hacked = state + for(var/datum/design/D in files.possible_designs) + if((D.build_type & AUTOLATHE) && ("hacked" in D.category)) + if(hacked) + files.AddDesign2Known(D) + else + files.known_designs -= D.id + +//Called when the object is constructed by an autolathe +//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes +/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) + return diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index a7446d654a..c198b68297 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -1,220 +1,220 @@ -/obj/machinery/button - name = "button" - desc = "A remote control switch." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "doorctrl" - var/skin = "doorctrl" - power_channel = ENVIRON - var/obj/item/device/assembly/device - var/obj/item/weapon/electronics/airlock/board - var/device_type = null - var/id = null - var/initialized_button = 0 - armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70) - anchored = 1 +/obj/machinery/button + name = "button" + desc = "A remote control switch." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "doorctrl" + var/skin = "doorctrl" + power_channel = ENVIRON + var/obj/item/device/assembly/device + var/obj/item/weapon/electronics/airlock/board + var/device_type = null + var/id = null + var/initialized_button = 0 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70) + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 2 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - - -/obj/machinery/button/New(loc, ndir = 0, built = 0) - ..() - if(built) - setDir(ndir) - pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - panel_open = 1 - update_icon() - - - if(!built && !device && device_type) - device = new device_type(src) - - src.check_access(null) - - if(req_access.len || req_one_access.len) - board = new(src) - if(req_access.len) - board.accesses = req_access - else - board.one_access = 1 - board.accesses = req_one_access - - -/obj/machinery/button/update_icon() - cut_overlays() - if(panel_open) - icon_state = "button-open" - if(device) - add_overlay("button-device") - if(board) - add_overlay("button-board") - - else - if(stat & (NOPOWER|BROKEN)) - icon_state = "[skin]-p" - else - icon_state = skin - -/obj/machinery/button/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/screwdriver)) - if(panel_open || allowed(user)) - default_deconstruction_screwdriver(user, "button-open", "[skin]",W) - update_icon() - else - to_chat(user, "Maintenance Access Denied") - flick("[skin]-denied", src) - return - - if(panel_open) - if(!device && istype(W, /obj/item/device/assembly)) - if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") - return - device = W - to_chat(user, "You add [W] to the button.") - - if(!board && istype(W, /obj/item/weapon/electronics/airlock)) - if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") - return - board = W - if(board.one_access) - req_one_access = board.accesses - else - req_access = board.accesses - to_chat(user, "You add [W] to the button.") - - if(!device && !board && istype(W, /obj/item/weapon/wrench)) - to_chat(user, "You start unsecuring the button frame...") - playsound(loc, W.usesound, 50, 1) - if(do_after(user, 40*W.toolspeed, target = src)) - to_chat(user, "You unsecure the button frame.") - transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - qdel(src) - - update_icon() - return - - if(user.a_intent != INTENT_HARM && !(W.flags & NOBLUDGEON)) - return src.attack_hand(user) - else - return ..() - -/obj/machinery/button/emag_act(mob/user) - req_access = list() - req_one_access = list() - playsound(src.loc, "sparks", 100, 1) - -/obj/machinery/button/attack_ai(mob/user) - if(!panel_open) - return attack_hand(user) - -/obj/machinery/button/proc/setup_device() - if(id && istype(device, /obj/item/device/assembly/control)) - var/obj/item/device/assembly/control/A = device - A.id = id - initialized_button = 1 - -/obj/machinery/button/attack_hand(mob/user) - if(!initialized_button) - setup_device() - src.add_fingerprint(user) - if(panel_open) - if(device || board) - if(device) - device.loc = get_turf(src) - device = null - if(board) - board.loc = get_turf(src) - req_access = list() - req_one_access = list() - board = null - update_icon() - to_chat(user, "You remove electronics from the button frame.") - - else - if(skin == "doorctrl") - skin = "launcher" - else - skin = "doorctrl" - to_chat(user, "You change the button frame's front panel.") - return - - if((stat & (NOPOWER|BROKEN))) - return - - if(device && device.next_activate > world.time) - return - - if(!allowed(user)) - to_chat(user, "Access Denied") - flick("[skin]-denied", src) - return - - use_power(5) - icon_state = "[skin]1" - - if(device) - device.pulsed() - - addtimer(CALLBACK(src, .proc/update_icon), 15) - -/obj/machinery/button/power_change() - ..() - update_icon() - - -/obj/machinery/button/door - name = "door button" - desc = "A door remote control switch." - var/normaldoorcontrol = 0 - var/specialfunctions = OPEN // Bitflag, see assembly file - -/obj/machinery/button/door/setup_device() - if(!device) - if(normaldoorcontrol) - var/obj/item/device/assembly/control/airlock/A = new(src) - device = A - A.specialfunctions = specialfunctions - else - device = new /obj/item/device/assembly/control(src) - ..() - -/obj/machinery/button/massdriver - name = "mass driver button" - desc = "A remote control switch for a mass driver." - icon_state = "launcher" - skin = "launcher" - device_type = /obj/item/device/assembly/control/massdriver - -/obj/machinery/button/ignition - name = "ignition switch" - desc = "A remote control switch for a mounted igniter." - icon_state = "launcher" - skin = "launcher" - device_type = /obj/item/device/assembly/control/igniter - -/obj/machinery/button/flasher - name = "flasher button" - desc = "A remote control switch for a mounted flasher." - icon_state = "launcher" - skin = "launcher" - device_type = /obj/item/device/assembly/control/flasher - -/obj/machinery/button/crematorium - name = "crematorium igniter" - desc = "Burn baby burn!" - icon_state = "launcher" - skin = "launcher" - device_type = /obj/item/device/assembly/control/crematorium - req_access = list() - id = 1 - -/obj/item/wallframe/button - name = "button frame" - desc = "Used for building buttons." + idle_power_usage = 2 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + +/obj/machinery/button/New(loc, ndir = 0, built = 0) + ..() + if(built) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + panel_open = 1 + update_icon() + + + if(!built && !device && device_type) + device = new device_type(src) + + src.check_access(null) + + if(req_access.len || req_one_access.len) + board = new(src) + if(req_access.len) + board.accesses = req_access + else + board.one_access = 1 + board.accesses = req_one_access + + +/obj/machinery/button/update_icon() + cut_overlays() + if(panel_open) + icon_state = "button-open" + if(device) + add_overlay("button-device") + if(board) + add_overlay("button-board") + + else + if(stat & (NOPOWER|BROKEN)) + icon_state = "[skin]-p" + else + icon_state = skin + +/obj/machinery/button/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + if(panel_open || allowed(user)) + default_deconstruction_screwdriver(user, "button-open", "[skin]",W) + update_icon() + else + to_chat(user, "Maintenance Access Denied") + flick("[skin]-denied", src) + return + + if(panel_open) + if(!device && istype(W, /obj/item/device/assembly)) + if(!user.transferItemToLoc(W, src)) + to_chat(user, "\The [W] is stuck to you!") + return + device = W + to_chat(user, "You add [W] to the button.") + + if(!board && istype(W, /obj/item/weapon/electronics/airlock)) + if(!user.transferItemToLoc(W, src)) + to_chat(user, "\The [W] is stuck to you!") + return + board = W + if(board.one_access) + req_one_access = board.accesses + else + req_access = board.accesses + to_chat(user, "You add [W] to the button.") + + if(!device && !board && istype(W, /obj/item/weapon/wrench)) + to_chat(user, "You start unsecuring the button frame...") + playsound(loc, W.usesound, 50, 1) + if(do_after(user, 40*W.toolspeed, target = src)) + to_chat(user, "You unsecure the button frame.") + transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + qdel(src) + + update_icon() + return + + if(user.a_intent != INTENT_HARM && !(W.flags & NOBLUDGEON)) + return src.attack_hand(user) + else + return ..() + +/obj/machinery/button/emag_act(mob/user) + req_access = list() + req_one_access = list() + playsound(src.loc, "sparks", 100, 1) + +/obj/machinery/button/attack_ai(mob/user) + if(!panel_open) + return attack_hand(user) + +/obj/machinery/button/proc/setup_device() + if(id && istype(device, /obj/item/device/assembly/control)) + var/obj/item/device/assembly/control/A = device + A.id = id + initialized_button = 1 + +/obj/machinery/button/attack_hand(mob/user) + if(!initialized_button) + setup_device() + src.add_fingerprint(user) + if(panel_open) + if(device || board) + if(device) + device.loc = get_turf(src) + device = null + if(board) + board.loc = get_turf(src) + req_access = list() + req_one_access = list() + board = null + update_icon() + to_chat(user, "You remove electronics from the button frame.") + + else + if(skin == "doorctrl") + skin = "launcher" + else + skin = "doorctrl" + to_chat(user, "You change the button frame's front panel.") + return + + if((stat & (NOPOWER|BROKEN))) + return + + if(device && device.next_activate > world.time) + return + + if(!allowed(user)) + to_chat(user, "Access Denied") + flick("[skin]-denied", src) + return + + use_power(5) + icon_state = "[skin]1" + + if(device) + device.pulsed() + + addtimer(CALLBACK(src, .proc/update_icon), 15) + +/obj/machinery/button/power_change() + ..() + update_icon() + + +/obj/machinery/button/door + name = "door button" + desc = "A door remote control switch." + var/normaldoorcontrol = 0 + var/specialfunctions = OPEN // Bitflag, see assembly file + +/obj/machinery/button/door/setup_device() + if(!device) + if(normaldoorcontrol) + var/obj/item/device/assembly/control/airlock/A = new(src) + device = A + A.specialfunctions = specialfunctions + else + device = new /obj/item/device/assembly/control(src) + ..() + +/obj/machinery/button/massdriver + name = "mass driver button" + desc = "A remote control switch for a mass driver." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/massdriver + +/obj/machinery/button/ignition + name = "ignition switch" + desc = "A remote control switch for a mounted igniter." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/igniter + +/obj/machinery/button/flasher + name = "flasher button" + desc = "A remote control switch for a mounted flasher." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/flasher + +/obj/machinery/button/crematorium + name = "crematorium igniter" + desc = "Burn baby burn!" + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/crematorium + req_access = list() + id = 1 + +/obj/item/wallframe/button + name = "button frame" + desc = "Used for building buttons." icon_state = "button" - result_path = /obj/machinery/button - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + result_path = /obj/machinery/button + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index c5c3adca70..b11f092298 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -283,7 +283,7 @@ else visible_message("\The [src] [change_msg]!") - playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + playsound(src.loc, 'sound/items/wirecutter.ogg', 100, 1) update_icon() // now disconnect anyone using the camera diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 4b22a6602d..6a72d7c691 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -15,8 +15,8 @@ obj_integrity = 150 max_integrity = 150 // Motion, EMP-Proof, X-Ray - var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer) - var/list/upgrades = list() + var/static/list/possible_upgrades = typecacheof(list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer)) + var/list/upgrades var/state = 1 /* @@ -26,15 +26,14 @@ 4 = Screwdriver panel closed and is fully built (you cannot attach upgrades) */ -/obj/structure/camera_assembly/New(loc, ndir, building) - ..() +/obj/structure/camera_assembly/Initialize(mapload, ndir, building) + . = ..() if(building) setDir(ndir) + upgrades = list() /obj/structure/camera_assembly/Destroy() - for(var/I in upgrades) - qdel(I) - upgrades.Cut() + QDEL_LIST(upgrades) return ..() /obj/structure/camera_assembly/attackby(obj/item/W, mob/living/user, params) @@ -110,7 +109,7 @@ return // Upgrades! - if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. + if(is_type_in_typecache(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. if(!user.drop_item(W)) return to_chat(user, "You attach \the [W] into the assembly inner circuits.") @@ -137,7 +136,7 @@ playsound(src.loc, WT.usesound, 50, 1) if(do_after(user, 20*WT.toolspeed, target = src)) if(WT.isOn()) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) return 1 return 0 diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 621d96f6f6..6f205a870d 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -1,48 +1,48 @@ -// PRESETS - -// EMP -/obj/machinery/camera/emp_proof - start_active = 1 - -/obj/machinery/camera/emp_proof/Initialize() +// PRESETS + +// EMP +/obj/machinery/camera/emp_proof + start_active = 1 + +/obj/machinery/camera/emp_proof/Initialize() . = ..() - upgradeEmpProof() - -// X-RAY - -/obj/machinery/camera/xray - start_active = 1 - icon_state = "xraycam" // Thanks to Krutchen for the icons. - -/obj/machinery/camera/xray/Initialize() + upgradeEmpProof() + +// X-RAY + +/obj/machinery/camera/xray + start_active = 1 + icon_state = "xraycam" // Thanks to Krutchen for the icons. + +/obj/machinery/camera/xray/Initialize() . = ..() - upgradeXRay() - -// MOTION -/obj/machinery/camera/motion - start_active = 1 - name = "motion-sensitive security camera" - -/obj/machinery/camera/motion/Initialize() - ..() - upgradeMotion() - -// ALL UPGRADES -/obj/machinery/camera/all - start_active = 1 - -/obj/machinery/camera/all/Initialize() + upgradeXRay() + +// MOTION +/obj/machinery/camera/motion + start_active = 1 + name = "motion-sensitive security camera" + +/obj/machinery/camera/motion/Initialize() + ..() + upgradeMotion() + +// ALL UPGRADES +/obj/machinery/camera/all + start_active = 1 + +/obj/machinery/camera/all/Initialize() . = ..() - upgradeEmpProof() - upgradeXRay() - upgradeMotion() - -// AUTONAME - -/obj/machinery/camera/autoname - var/number = 0 //camera number in area - -//This camera type automatically sets it's name to whatever the area that it's in is called. + upgradeEmpProof() + upgradeXRay() + upgradeMotion() + +// AUTONAME + +/obj/machinery/camera/autoname + var/number = 0 //camera number in area + +//This camera type automatically sets it's name to whatever the area that it's in is called. /obj/machinery/camera/autoname/Initialize() ..() return INITIALIZE_HINT_LATELOAD @@ -59,29 +59,29 @@ if(C.number) number = max(number, C.number+1) c_tag = "[A.name] #[number]" - -// CHECKS - -/obj/machinery/camera/proc/isEmpProof() - return upgrades & CAMERA_UPGRADE_EMP_PROOF - -/obj/machinery/camera/proc/isXRay() - return upgrades & CAMERA_UPGRADE_XRAY - -/obj/machinery/camera/proc/isMotion() - return upgrades & CAMERA_UPGRADE_MOTION - -// UPGRADE PROCS - -/obj/machinery/camera/proc/upgradeEmpProof() - assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/plasma(assembly)) - upgrades |= CAMERA_UPGRADE_EMP_PROOF - -/obj/machinery/camera/proc/upgradeXRay() - assembly.upgrades.Add(new /obj/item/device/analyzer(assembly)) - upgrades |= CAMERA_UPGRADE_XRAY - -// If you are upgrading Motion, and it isn't in the camera's Initialize(), add it to the machines list. -/obj/machinery/camera/proc/upgradeMotion() - assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly)) - upgrades |= CAMERA_UPGRADE_MOTION + +// CHECKS + +/obj/machinery/camera/proc/isEmpProof() + return upgrades & CAMERA_UPGRADE_EMP_PROOF + +/obj/machinery/camera/proc/isXRay() + return upgrades & CAMERA_UPGRADE_XRAY + +/obj/machinery/camera/proc/isMotion() + return upgrades & CAMERA_UPGRADE_MOTION + +// UPGRADE PROCS + +/obj/machinery/camera/proc/upgradeEmpProof() + assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/plasma(assembly)) + upgrades |= CAMERA_UPGRADE_EMP_PROOF + +/obj/machinery/camera/proc/upgradeXRay() + assembly.upgrades.Add(new /obj/item/device/analyzer(assembly)) + upgrades |= CAMERA_UPGRADE_XRAY + +// If you are upgrading Motion, and it isn't in the camera's Initialize(), add it to the machines list. +/obj/machinery/camera/proc/upgradeMotion() + assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly)) + upgrades |= CAMERA_UPGRADE_MOTION diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 190aa8717a..2f83203937 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -1,122 +1,122 @@ -/obj/machinery/cell_charger - name = "cell charger" - desc = "It charges power cells." - icon = 'icons/obj/power.dmi' - icon_state = "ccharger0" - anchored = 1 +/obj/machinery/cell_charger + name = "cell charger" + desc = "It charges power cells." + icon = 'icons/obj/power.dmi' + icon_state = "ccharger0" + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 60 - power_channel = EQUIP - var/obj/item/weapon/stock_parts/cell/charging = null - var/chargelevel = -1 - -/obj/machinery/cell_charger/proc/updateicon() - icon_state = "ccharger[charging ? 1 : 0]" - - if(charging && !(stat & (BROKEN|NOPOWER))) - var/newlevel = round(charging.percent() * 4 / 100) - - if(chargelevel != newlevel) - chargelevel = newlevel - - cut_overlays() - add_overlay("ccharger-o[newlevel]") - - else - cut_overlays() - -/obj/machinery/cell_charger/examine(mob/user) - ..() - to_chat(user, "There's [charging ? "a" : "no"] cell in the charger.") - if(charging) - to_chat(user, "Current charge: [round(charging.percent(), 1)]%") - -/obj/machinery/cell_charger/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/stock_parts/cell)) - if(stat & BROKEN) - to_chat(user, "[src] is broken!") - return - if(!anchored) - to_chat(user, "[src] isn't attached to the ground!") - return - if(charging) - to_chat(user, "There is already a cell in the charger!") - return - else - var/area/a = loc.loc // Gets our locations location, like a dream within a dream - if(!isarea(a)) - return - if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power! - to_chat(user, "The [name] blinks red as you try to insert the cell!") - return - if(!user.drop_item()) - return - - W.loc = src - charging = W - user.visible_message("[user] inserts a cell into the charger.", "You insert a cell into the charger.") - chargelevel = -1 - updateicon() - else if(istype(W, /obj/item/weapon/wrench)) - if(charging) - to_chat(user, "Remove the cell first!") - return - - anchored = !anchored - to_chat(user, "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground") - playsound(src.loc, W.usesound, 75, 1) - else - return ..() - - -/obj/machinery/cell_charger/proc/removecell() - charging.update_icon() - charging = null - chargelevel = -1 - updateicon() - -/obj/machinery/cell_charger/attack_hand(mob/user) - if(!charging) - return - - user.put_in_hands(charging) - charging.add_fingerprint(user) - - user.visible_message("[user] removes the cell from the charger.", "You remove the cell from the charger.") - - removecell() - -/obj/machinery/cell_charger/attack_tk(mob/user) - if(!charging) - return - - charging.forceMove(loc) - to_chat(user, "You telekinetically remove [charging] from [src].") - - removecell() - -/obj/machinery/cell_charger/attack_ai(mob/user) - return - -/obj/machinery/cell_charger/emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - return - - if(charging) - charging.emp_act(severity) - - ..(severity) - - -/obj/machinery/cell_charger/process() - if(!charging || !anchored || (stat & (BROKEN|NOPOWER))) - return - - if(charging.percent() >= 100) - return - - use_power(200) //this used to use CELLRATE, but CELLRATE is fucking awful. feel free to fix this properly! - charging.give(175) //inefficiency. - - updateicon() + idle_power_usage = 5 + active_power_usage = 60 + power_channel = EQUIP + var/obj/item/weapon/stock_parts/cell/charging = null + var/chargelevel = -1 + +/obj/machinery/cell_charger/proc/updateicon() + icon_state = "ccharger[charging ? 1 : 0]" + + if(charging && !(stat & (BROKEN|NOPOWER))) + var/newlevel = round(charging.percent() * 4 / 100) + + if(chargelevel != newlevel) + chargelevel = newlevel + + cut_overlays() + add_overlay("ccharger-o[newlevel]") + + else + cut_overlays() + +/obj/machinery/cell_charger/examine(mob/user) + ..() + to_chat(user, "There's [charging ? "a" : "no"] cell in the charger.") + if(charging) + to_chat(user, "Current charge: [round(charging.percent(), 1)]%") + +/obj/machinery/cell_charger/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(stat & BROKEN) + to_chat(user, "[src] is broken!") + return + if(!anchored) + to_chat(user, "[src] isn't attached to the ground!") + return + if(charging) + to_chat(user, "There is already a cell in the charger!") + return + else + var/area/a = loc.loc // Gets our locations location, like a dream within a dream + if(!isarea(a)) + return + if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power! + to_chat(user, "The [name] blinks red as you try to insert the cell!") + return + if(!user.drop_item()) + return + + W.loc = src + charging = W + user.visible_message("[user] inserts a cell into the charger.", "You insert a cell into the charger.") + chargelevel = -1 + updateicon() + else if(istype(W, /obj/item/weapon/wrench)) + if(charging) + to_chat(user, "Remove the cell first!") + return + + anchored = !anchored + to_chat(user, "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground") + playsound(src.loc, W.usesound, 75, 1) + else + return ..() + + +/obj/machinery/cell_charger/proc/removecell() + charging.update_icon() + charging = null + chargelevel = -1 + updateicon() + +/obj/machinery/cell_charger/attack_hand(mob/user) + if(!charging) + return + + user.put_in_hands(charging) + charging.add_fingerprint(user) + + user.visible_message("[user] removes the cell from the charger.", "You remove the cell from the charger.") + + removecell() + +/obj/machinery/cell_charger/attack_tk(mob/user) + if(!charging) + return + + charging.forceMove(loc) + to_chat(user, "You telekinetically remove [charging] from [src].") + + removecell() + +/obj/machinery/cell_charger/attack_ai(mob/user) + return + +/obj/machinery/cell_charger/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + return + + if(charging) + charging.emp_act(severity) + + ..(severity) + + +/obj/machinery/cell_charger/process() + if(!charging || !anchored || (stat & (BROKEN|NOPOWER))) + return + + if(charging.percent() >= 100) + return + + use_power(200) //this used to use CELLRATE, but CELLRATE is fucking awful. feel free to fix this properly! + charging.give(175) //inefficiency. + + updateicon() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index c0d7cad13b..f021e8492e 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -1,510 +1,510 @@ -//Cloning revival method. -//The pod handles the actual cloning while the computer manages the clone profiles - -//Potential replacement for genetics revives or something I dunno (?) - -#define CLONE_INITIAL_DAMAGE 190 //Clones in clonepods start with 190 cloneloss damage and 190 brainloss damage, thats just logical -#define MINIMUM_HEAL_LEVEL 40 - -#define SPEAK(message) radio.talk_into(src, message, radio_channel, get_spans(), get_default_language()) - -/obj/machinery/clonepod - anchored = 1 - name = "cloning pod" - desc = "An electronically-lockable pod for growing organic tissue." - density = 1 - icon = 'icons/obj/cloning.dmi' - icon_state = "pod_0" - req_access = list(GLOB.access_cloning) //For premature unlocking. - verb_say = "states" - var/heal_level //The clone is released once its health reaches this level. - var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine. - var/mess = FALSE //Need to clean out it if it's full of exploded clone. - var/attempting = FALSE //One clone attempt at a time thanks - var/speed_coeff - var/efficiency - - var/datum/mind/clonemind - var/grab_ghost_when = CLONER_MATURE_CLONE - - var/obj/item/device/radio/radio - var/radio_key = /obj/item/device/encryptionkey/headset_med - var/radio_channel = "Medical" - - var/obj/effect/countdown/clonepod/countdown - - var/list/unattached_flesh - var/flesh_number = 0 - - // The "brine" is the reagents that are automatically added in small - // amounts to the occupant. - var/static/list/brine_types = list( - "salbutamol", // anti-oxyloss - "bicaridine", // NOBREATHE species take brute in crit - "corazone", // prevents cardiac arrest damage - "mimesbane") // stops them gasping from lack of air. - +//Cloning revival method. +//The pod handles the actual cloning while the computer manages the clone profiles + +//Potential replacement for genetics revives or something I dunno (?) + +#define CLONE_INITIAL_DAMAGE 190 //Clones in clonepods start with 190 cloneloss damage and 190 brainloss damage, thats just logical +#define MINIMUM_HEAL_LEVEL 40 + +#define SPEAK(message) radio.talk_into(src, message, radio_channel, get_spans(), get_default_language()) + +/obj/machinery/clonepod + anchored = 1 + name = "cloning pod" + desc = "An electronically-lockable pod for growing organic tissue." + density = 1 + icon = 'icons/obj/cloning.dmi' + icon_state = "pod_0" + req_access = list(GLOB.access_cloning) //For premature unlocking. + verb_say = "states" + var/heal_level //The clone is released once its health reaches this level. + var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine. + var/mess = FALSE //Need to clean out it if it's full of exploded clone. + var/attempting = FALSE //One clone attempt at a time thanks + var/speed_coeff + var/efficiency + + var/datum/mind/clonemind + var/grab_ghost_when = CLONER_MATURE_CLONE + + var/obj/item/device/radio/radio + var/radio_key = /obj/item/device/encryptionkey/headset_med + var/radio_channel = "Medical" + + var/obj/effect/countdown/clonepod/countdown + + var/list/unattached_flesh + var/flesh_number = 0 + + // The "brine" is the reagents that are automatically added in small + // amounts to the occupant. + var/static/list/brine_types = list( + "salbutamol", // anti-oxyloss + "bicaridine", // NOBREATHE species take brute in crit + "corazone", // prevents cardiac arrest damage + "mimesbane") // stops them gasping from lack of air. + /obj/machinery/clonepod/Initialize() . = ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null) - B.apply_default_parts(src) - - countdown = new(src) - - radio = new(src) - radio.keyslot = new radio_key - radio.subspace_transmission = 1 - radio.canhear_range = 0 - radio.recalculateChannels() - -/obj/machinery/clonepod/Destroy() - go_out() - qdel(radio) - radio = null - qdel(countdown) - countdown = null - if(connected) - connected.DetachCloner(src) - for(var/i in unattached_flesh) - qdel(i) - LAZYCLEARLIST(unattached_flesh) - unattached_flesh = null - . = ..() - -/obj/machinery/clonepod/RefreshParts() - speed_coeff = 0 - efficiency = 0 - for(var/obj/item/weapon/stock_parts/scanning_module/S in component_parts) - efficiency += S.rating - for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) - speed_coeff += P.rating - heal_level = (efficiency * 15) + 10 - if(heal_level < MINIMUM_HEAL_LEVEL) - heal_level = MINIMUM_HEAL_LEVEL - if(heal_level > 100) - heal_level = 100 - -/obj/item/weapon/circuitboard/machine/clonepod - name = "Clone Pod (Machine Board)" - build_path = /obj/machinery/clonepod - origin_tech = "programming=2;biotech=2" - req_components = list( - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/scanning_module = 2, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/stack/sheet/glass = 1) - -//The return of data disks?? Just for transferring between genetics machine/cloning machine. -//TO-DO: Make the genetics machine accept them. -/obj/item/weapon/disk/data - name = "cloning data disk" - icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. - var/list/fields = list() - var/read_only = 0 //Well,it's still a floppy disk - -//Disk stuff. -/obj/item/weapon/disk/data/New() - ..() - icon_state = "datadisk[rand(0,6)]" - add_overlay("datadisk_gene") - -/obj/item/weapon/disk/data/attack_self(mob/user) - read_only = !read_only - to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].") - -/obj/item/weapon/disk/data/examine(mob/user) - ..() - to_chat(user, "The write-protect tab is set to [read_only ? "protected" : "unprotected"].") - - -//Clonepod - -/obj/machinery/clonepod/examine(mob/user) - ..() - var/mob/living/mob_occupant = occupant - if(mess) - to_chat(user, "It's filled with blood and viscera. You swear you can see it moving...") - if(is_operational() && mob_occupant) - if(mob_occupant.stat != DEAD) - to_chat(user, "Current clone cycle is [round(get_completion())]% complete.") - -/obj/machinery/clonepod/return_air() - // We want to simulate the clone not being in contact with - // the atmosphere, so we'll put them in a constant pressure - // nitrogen. They'll breathe through the chemicals we pump into them. - var/static/datum/gas_mixture/immutable/cloner/GM //global so that there's only one instance made for all cloning pods - if(!GM) - GM = new - return GM - -/obj/machinery/clonepod/proc/get_completion() - . = FALSE - var/mob/living/mob_occupant = occupant - if(mob_occupant) - . = (100 * ((mob_occupant.health + 100) / (heal_level + 100))) - -/obj/machinery/clonepod/attack_ai(mob/user) - return examine(user) - -//Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions) - if(panel_open) - return FALSE - if(mess || attempting) - return FALSE - clonemind = locate(mindref) - if(!istype(clonemind)) //not a mind - return FALSE - if( clonemind.current && clonemind.current.stat != DEAD ) //mind is associated with a non-dead body - return FALSE - if(clonemind.active) //somebody is using that mind - if( ckey(clonemind.key)!=ckey ) - return FALSE - else - // get_ghost() will fail if they're unable to reenter their body - var/mob/dead/observer/G = clonemind.get_ghost() - if(!G) - return FALSE - if(clonemind.damnation_type) //Can't clone the damned. - INVOKE_ASYNC(src, .proc/horrifyingsound) - mess = TRUE - icon_state = "pod_g" - update_icon() - return FALSE - - attempting = TRUE //One at a time!! - countdown.start() - - var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - - if(clonemind.changeling) - var/obj/item/organ/brain/B = H.getorganslot("brain") - B.vital = FALSE - B.decoy_override = TRUE - - H.hardset_dna(ui, se, H.real_name, null, mrace, features) - - if(efficiency > 2) - var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - H.dna.remove_mutation_group(unclean_mutations) - if(efficiency > 5 && prob(20)) - H.randmutvg() - if(efficiency < 3 && prob(50)) - var/mob/M = H.randmutb() - if(ismob(M)) - H = M - - H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. - occupant = H - - if(!clonename) //to prevent null names - clonename = "clone ([rand(0,999)])" - H.real_name = clonename - - icon_state = "pod_1" - //Get the clone body ready - maim_clone(H) - check_brine() // put in chemicals NOW to stop death via cardiac arrest - H.Paralyse(4) - - clonemind.transfer_to(H) - - if(grab_ghost_when == CLONER_FRESH_CLONE) - H.grab_ghost() - to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
    So this is what cloning feels like?
    ") - - if(grab_ghost_when == CLONER_MATURE_CLONE) - H.ghostize(TRUE) //Only does anything if they were still in their old body and not already a ghost - to_chat(H.get_ghost(TRUE), "Your body is beginning to regenerate in a cloning pod. You will become conscious when it is complete.") - - if(H) - H.faction |= factions - - H.set_cloned_appearance() - - H.suiciding = FALSE - attempting = FALSE - return TRUE - -//Grow clones to maturity then kick them out. FREELOADERS -/obj/machinery/clonepod/process() - var/mob/living/mob_occupant = occupant - - if(!is_operational()) //Autoeject if power is lost - if(mob_occupant) - go_out() - connected_message("Clone Ejected: Loss of power.") - - else if(mob_occupant && (mob_occupant.loc == src)) - if((mob_occupant.stat == DEAD) || (mob_occupant.suiciding) || mob_occupant.hellbound) //Autoeject corpses and suiciding dudes. - connected_message("Clone Rejected: Deceased.") - SPEAK("The cloning of [mob_occupant.real_name] has been \ - aborted due to unrecoverable tissue failure.") - go_out() - - else if(mob_occupant.cloneloss > (100 - heal_level)) - mob_occupant.Paralyse(4) - - //Slowly get that clone healed and finished. - mob_occupant.adjustCloneLoss(-((speed_coeff/2) * config.damage_multiplier)) - var/progress = CLONE_INITIAL_DAMAGE - mob_occupant.getCloneLoss() - // To avoid the default cloner making incomplete clones - progress += (100 - MINIMUM_HEAL_LEVEL) - var/milestone = CLONE_INITIAL_DAMAGE / flesh_number - var/installed = flesh_number - unattached_flesh.len - - if((progress / milestone) >= installed) - // attach some flesh - var/obj/item/I = pick_n_take(unattached_flesh) - if(isorgan(I)) - var/obj/item/organ/O = I - O.Insert(mob_occupant) - else if(isbodypart(I)) - var/obj/item/bodypart/BP = I - BP.attach_limb(mob_occupant) - - //Premature clones may have brain damage. - mob_occupant.adjustBrainLoss(-((speed_coeff/2) * config.damage_multiplier)) - - check_brine() - - use_power(7500) //This might need tweaking. - - else if((mob_occupant.cloneloss <= (100 - heal_level))) - connected_message("Cloning Process Complete.") - SPEAK("The cloning cycle of [mob_occupant.real_name] is complete.") - - // If the cloner is upgraded to debugging high levels, sometimes - // organs and limbs can be missing. - for(var/i in unattached_flesh) - if(isorgan(i)) - var/obj/item/organ/O = i - O.Insert(mob_occupant) - else if(isbodypart(i)) - var/obj/item/bodypart/BP = i - BP.attach_limb(mob_occupant) - - go_out() - - else if (!mob_occupant || mob_occupant.loc != src) - occupant = null - if (!mess && !panel_open) - icon_state = "pod_0" - use_power(200) - -//Let's unlock this early I guess. Might be too early, needs tweaking. -/obj/machinery/clonepod/attackby(obj/item/weapon/W, mob/user, params) - if(!(occupant || mess)) - if(default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]",W)) - return - - if(exchange_parts(user, W)) - return - - if(default_deconstruction_crowbar(W)) - return - - if(istype(W,/obj/item/device/multitool)) - var/obj/item/device/multitool/P = W - - if(istype(P.buffer, /obj/machinery/computer/cloning)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/computer/cloning/comp = P.buffer - if(connected) - connected.DetachCloner(src) - comp.AttachCloner(src) - else - P.buffer = src - to_chat(user, "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-") - return - - var/mob/living/mob_occupant = occupant - if(W.GetID()) - if(!check_access(W)) - to_chat(user, "Access Denied.") - return - if(!(mob_occupant || mess)) - to_chat(user, "Error: Pod has no occupant.") - return - else + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null) + B.apply_default_parts(src) + + countdown = new(src) + + radio = new(src) + radio.keyslot = new radio_key + radio.subspace_transmission = 1 + radio.canhear_range = 0 + radio.recalculateChannels() + +/obj/machinery/clonepod/Destroy() + go_out() + qdel(radio) + radio = null + qdel(countdown) + countdown = null + if(connected) + connected.DetachCloner(src) + for(var/i in unattached_flesh) + qdel(i) + LAZYCLEARLIST(unattached_flesh) + unattached_flesh = null + . = ..() + +/obj/machinery/clonepod/RefreshParts() + speed_coeff = 0 + efficiency = 0 + for(var/obj/item/weapon/stock_parts/scanning_module/S in component_parts) + efficiency += S.rating + for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) + speed_coeff += P.rating + heal_level = (efficiency * 15) + 10 + if(heal_level < MINIMUM_HEAL_LEVEL) + heal_level = MINIMUM_HEAL_LEVEL + if(heal_level > 100) + heal_level = 100 + +/obj/item/weapon/circuitboard/machine/clonepod + name = "Clone Pod (Machine Board)" + build_path = /obj/machinery/clonepod + origin_tech = "programming=2;biotech=2" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/sheet/glass = 1) + +//The return of data disks?? Just for transferring between genetics machine/cloning machine. +//TO-DO: Make the genetics machine accept them. +/obj/item/weapon/disk/data + name = "cloning data disk" + icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. + var/list/fields = list() + var/read_only = 0 //Well,it's still a floppy disk + +//Disk stuff. +/obj/item/weapon/disk/data/New() + ..() + icon_state = "datadisk[rand(0,6)]" + add_overlay("datadisk_gene") + +/obj/item/weapon/disk/data/attack_self(mob/user) + read_only = !read_only + to_chat(user, "You flip the write-protect tab to [read_only ? "protected" : "unprotected"].") + +/obj/item/weapon/disk/data/examine(mob/user) + ..() + to_chat(user, "The write-protect tab is set to [read_only ? "protected" : "unprotected"].") + + +//Clonepod + +/obj/machinery/clonepod/examine(mob/user) + ..() + var/mob/living/mob_occupant = occupant + if(mess) + to_chat(user, "It's filled with blood and viscera. You swear you can see it moving...") + if(is_operational() && mob_occupant) + if(mob_occupant.stat != DEAD) + to_chat(user, "Current clone cycle is [round(get_completion())]% complete.") + +/obj/machinery/clonepod/return_air() + // We want to simulate the clone not being in contact with + // the atmosphere, so we'll put them in a constant pressure + // nitrogen. They'll breathe through the chemicals we pump into them. + var/static/datum/gas_mixture/immutable/cloner/GM //global so that there's only one instance made for all cloning pods + if(!GM) + GM = new + return GM + +/obj/machinery/clonepod/proc/get_completion() + . = FALSE + var/mob/living/mob_occupant = occupant + if(mob_occupant) + . = (100 * ((mob_occupant.health + 100) / (heal_level + 100))) + +/obj/machinery/clonepod/attack_ai(mob/user) + return examine(user) + +//Start growing a human clone in the pod! +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions) + if(panel_open) + return FALSE + if(mess || attempting) + return FALSE + clonemind = locate(mindref) + if(!istype(clonemind)) //not a mind + return FALSE + if( clonemind.current && clonemind.current.stat != DEAD ) //mind is associated with a non-dead body + return FALSE + if(clonemind.active) //somebody is using that mind + if( ckey(clonemind.key)!=ckey ) + return FALSE + else + // get_ghost() will fail if they're unable to reenter their body + var/mob/dead/observer/G = clonemind.get_ghost() + if(!G) + return FALSE + if(clonemind.damnation_type) //Can't clone the damned. + INVOKE_ASYNC(src, .proc/horrifyingsound) + mess = TRUE + icon_state = "pod_g" + update_icon() + return FALSE + + attempting = TRUE //One at a time!! + countdown.start() + + var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) + + if(clonemind.changeling) + var/obj/item/organ/brain/B = H.getorganslot("brain") + B.vital = FALSE + B.decoy_override = TRUE + + H.hardset_dna(ui, se, H.real_name, null, mrace, features) + + if(efficiency > 2) + var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) + H.dna.remove_mutation_group(unclean_mutations) + if(efficiency > 5 && prob(20)) + H.randmutvg() + if(efficiency < 3 && prob(50)) + var/mob/M = H.randmutb() + if(ismob(M)) + H = M + + H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. + occupant = H + + if(!clonename) //to prevent null names + clonename = "clone ([rand(0,999)])" + H.real_name = clonename + + icon_state = "pod_1" + //Get the clone body ready + maim_clone(H) + check_brine() // put in chemicals NOW to stop death via cardiac arrest + H.Unconscious(80) + + clonemind.transfer_to(H) + + if(grab_ghost_when == CLONER_FRESH_CLONE) + H.grab_ghost() + to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
    So this is what cloning feels like?
    ") + + if(grab_ghost_when == CLONER_MATURE_CLONE) + H.ghostize(TRUE) //Only does anything if they were still in their old body and not already a ghost + to_chat(H.get_ghost(TRUE), "Your body is beginning to regenerate in a cloning pod. You will become conscious when it is complete.") + + if(H) + H.faction |= factions + + H.set_cloned_appearance() + + H.suiciding = FALSE + attempting = FALSE + return TRUE + +//Grow clones to maturity then kick them out. FREELOADERS +/obj/machinery/clonepod/process() + var/mob/living/mob_occupant = occupant + + if(!is_operational()) //Autoeject if power is lost + if(mob_occupant) + go_out() + connected_message("Clone Ejected: Loss of power.") + + else if(mob_occupant && (mob_occupant.loc == src)) + if((mob_occupant.stat == DEAD) || (mob_occupant.suiciding) || mob_occupant.hellbound) //Autoeject corpses and suiciding dudes. + connected_message("Clone Rejected: Deceased.") + SPEAK("The cloning of [mob_occupant.real_name] has been \ + aborted due to unrecoverable tissue failure.") + go_out() + + else if(mob_occupant.cloneloss > (100 - heal_level)) + mob_occupant.Unconscious(80) + + //Slowly get that clone healed and finished. + mob_occupant.adjustCloneLoss(-((speed_coeff/2) * config.damage_multiplier)) + var/progress = CLONE_INITIAL_DAMAGE - mob_occupant.getCloneLoss() + // To avoid the default cloner making incomplete clones + progress += (100 - MINIMUM_HEAL_LEVEL) + var/milestone = CLONE_INITIAL_DAMAGE / flesh_number + var/installed = flesh_number - unattached_flesh.len + + if((progress / milestone) >= installed) + // attach some flesh + var/obj/item/I = pick_n_take(unattached_flesh) + if(isorgan(I)) + var/obj/item/organ/O = I + O.Insert(mob_occupant) + else if(isbodypart(I)) + var/obj/item/bodypart/BP = I + BP.attach_limb(mob_occupant) + + //Premature clones may have brain damage. + mob_occupant.adjustBrainLoss(-((speed_coeff/2) * config.damage_multiplier)) + + check_brine() + + use_power(7500) //This might need tweaking. + + else if((mob_occupant.cloneloss <= (100 - heal_level))) + connected_message("Cloning Process Complete.") + SPEAK("The cloning cycle of [mob_occupant.real_name] is complete.") + + // If the cloner is upgraded to debugging high levels, sometimes + // organs and limbs can be missing. + for(var/i in unattached_flesh) + if(isorgan(i)) + var/obj/item/organ/O = i + O.Insert(mob_occupant) + else if(isbodypart(i)) + var/obj/item/bodypart/BP = i + BP.attach_limb(mob_occupant) + + go_out() + + else if (!mob_occupant || mob_occupant.loc != src) + occupant = null + if (!mess && !panel_open) + icon_state = "pod_0" + use_power(200) + +//Let's unlock this early I guess. Might be too early, needs tweaking. +/obj/machinery/clonepod/attackby(obj/item/weapon/W, mob/user, params) + if(!(occupant || mess)) + if(default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]",W)) + return + + if(exchange_parts(user, W)) + return + + if(default_deconstruction_crowbar(W)) + return + + if(istype(W,/obj/item/device/multitool)) + var/obj/item/device/multitool/P = W + + if(istype(P.buffer, /obj/machinery/computer/cloning)) + if(get_area(P.buffer) != get_area(src)) + to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") + P.buffer = null + return + to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") + var/obj/machinery/computer/cloning/comp = P.buffer + if(connected) + connected.DetachCloner(src) + comp.AttachCloner(src) + else + P.buffer = src + to_chat(user, "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-") + return + + var/mob/living/mob_occupant = occupant + if(W.GetID()) + if(!check_access(W)) + to_chat(user, "Access Denied.") + return + if(!(mob_occupant || mess)) + to_chat(user, "Error: Pod has no occupant.") + return + else connected_message("Emergency Ejection") SPEAK("An emergency ejection of [clonemind.name] has occurred. Survival not guaranteed.") - to_chat(user, "You force an emergency ejection. ") - go_out() - else - return ..() - -/obj/machinery/clonepod/emag_act(mob/user) - if(!occupant) - return - to_chat(user, "You corrupt the genetic compiler.") - malfunction() - -//Put messages in the connected computer's temp var for display. -/obj/machinery/clonepod/proc/connected_message(message) - if ((isnull(connected)) || (!istype(connected, /obj/machinery/computer/cloning))) - return FALSE - if (!message) - return FALSE - - connected.temp = message - connected.updateUsrDialog() - return TRUE - -/obj/machinery/clonepod/proc/go_out() - countdown.stop() - var/mob/living/mob_occupant = occupant + to_chat(user, "You force an emergency ejection. ") + go_out() + else + return ..() + +/obj/machinery/clonepod/emag_act(mob/user) + if(!occupant) + return + to_chat(user, "You corrupt the genetic compiler.") + malfunction() + +//Put messages in the connected computer's temp var for display. +/obj/machinery/clonepod/proc/connected_message(message) + if ((isnull(connected)) || (!istype(connected, /obj/machinery/computer/cloning))) + return FALSE + if (!message) + return FALSE + + connected.temp = message + connected.updateUsrDialog() + return TRUE + +/obj/machinery/clonepod/proc/go_out() + countdown.stop() + var/mob/living/mob_occupant = occupant var/turf/T = get_turf(src) - - if(mess) //Clean that mess and dump those gibs! + + if(mess) //Clean that mess and dump those gibs! for(var/obj/fl in unattached_flesh) fl.forceMove(T) unattached_flesh.Cut() - mess = FALSE - new /obj/effect/gibspawner/generic(loc) - audible_message("You hear a splat.") - icon_state = "pod_0" - return - - if(!mob_occupant) - return - - - if(grab_ghost_when == CLONER_MATURE_CLONE) - mob_occupant.grab_ghost() - to_chat(occupant, "There is a bright flash!
    You feel like a new being.
    ") - mob_occupant.flash_act() - - occupant.forceMove(T) - icon_state = "pod_0" - mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. + mess = FALSE + new /obj/effect/gibspawner/generic(loc) + audible_message("You hear a splat.") + icon_state = "pod_0" + return + + if(!mob_occupant) + return + + + if(grab_ghost_when == CLONER_MATURE_CLONE) + mob_occupant.grab_ghost() + to_chat(occupant, "There is a bright flash!
    You feel like a new being.
    ") + mob_occupant.flash_act() + + occupant.forceMove(T) + icon_state = "pod_0" + mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. for(var/fl in unattached_flesh) qdel(fl) unattached_flesh.Cut() - - occupant = null - -/obj/machinery/clonepod/proc/malfunction() - var/mob/living/mob_occupant = occupant - if(mob_occupant) - connected_message("Critical Error!") - SPEAK("Critical error! Please contact a Thinktronic Systems \ - technician, as your warranty may be affected.") - mess = TRUE + + occupant = null + +/obj/machinery/clonepod/proc/malfunction() + var/mob/living/mob_occupant = occupant + if(mob_occupant) + connected_message("Critical Error!") + SPEAK("Critical error! Please contact a Thinktronic Systems \ + technician, as your warranty may be affected.") + mess = TRUE maim_clone(mob_occupant) //Remove every bit that's grown back so far to drop later, also destroys bits that haven't grown yet - icon_state = "pod_g" - if(mob_occupant.mind != clonemind) - clonemind.transfer_to(mob_occupant) - mob_occupant.grab_ghost() // We really just want to make you suffer. - flash_color(mob_occupant, flash_color="#960000", flash_time=100) - to_chat(mob_occupant, "Agony blazes across your consciousness as your body is torn apart.
    Is this what dying is like? Yes it is.
    ") - playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) - mob_occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) - QDEL_IN(mob_occupant, 40) - -/obj/machinery/clonepod/relaymove(mob/user) - if(user.stat == CONSCIOUS) - go_out() - -/obj/machinery/clonepod/emp_act(severity) - var/mob/living/mob_occupant = occupant - if(mob_occupant && prob(100/(severity*efficiency))) - connected_message(Gibberish("EMP-caused Accidental Ejection", 0)) - SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [mob_occupant.real_name] prematurely." ,0)) - go_out() - ..() - -/obj/machinery/clonepod/ex_act(severity, target) - ..() - if(!QDELETED(src)) - go_out() - -/obj/machinery/clonepod/handle_atom_del(atom/A) - if(A == occupant) - occupant = null - countdown.stop() - -/obj/machinery/clonepod/proc/horrifyingsound() - for(var/i in 1 to 5) - playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05)) - sleep(1) - sleep(10) - playsound(loc,'sound/hallucinations/wail.ogg',100,1) - -/obj/machinery/clonepod/deconstruct(disassembled = TRUE) - if(occupant) - go_out() - ..() - -/obj/machinery/clonepod/proc/maim_clone(mob/living/carbon/human/H) - if(!unattached_flesh) - unattached_flesh = list() - else - for(var/fl in unattached_flesh) - qdel(fl) - unattached_flesh.Cut() - - H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health - H.setBrainLoss(CLONE_INITIAL_DAMAGE) - // In addition to being cellularly damaged and having barely any - // brain function, they also have no limbs or internal organs. - var/static/list/zones = list("r_arm", "l_arm", "r_leg", "l_leg") - for(var/zone in zones) - var/obj/item/bodypart/BP = H.get_bodypart(zone) + icon_state = "pod_g" + if(mob_occupant.mind != clonemind) + clonemind.transfer_to(mob_occupant) + mob_occupant.grab_ghost() // We really just want to make you suffer. + flash_color(mob_occupant, flash_color="#960000", flash_time=100) + to_chat(mob_occupant, "Agony blazes across your consciousness as your body is torn apart.
    Is this what dying is like? Yes it is.
    ") + playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) + mob_occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) + QDEL_IN(mob_occupant, 40) + +/obj/machinery/clonepod/relaymove(mob/user) + if(user.stat == CONSCIOUS) + go_out() + +/obj/machinery/clonepod/emp_act(severity) + var/mob/living/mob_occupant = occupant + if(mob_occupant && prob(100/(severity*efficiency))) + connected_message(Gibberish("EMP-caused Accidental Ejection", 0)) + SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [mob_occupant.real_name] prematurely." ,0)) + go_out() + ..() + +/obj/machinery/clonepod/ex_act(severity, target) + ..() + if(!QDELETED(src)) + go_out() + +/obj/machinery/clonepod/handle_atom_del(atom/A) + if(A == occupant) + occupant = null + countdown.stop() + +/obj/machinery/clonepod/proc/horrifyingsound() + for(var/i in 1 to 5) + playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05)) + sleep(1) + sleep(10) + playsound(loc,'sound/hallucinations/wail.ogg',100,1) + +/obj/machinery/clonepod/deconstruct(disassembled = TRUE) + if(occupant) + go_out() + ..() + +/obj/machinery/clonepod/proc/maim_clone(mob/living/carbon/human/H) + if(!unattached_flesh) + unattached_flesh = list() + else + for(var/fl in unattached_flesh) + qdel(fl) + unattached_flesh.Cut() + + H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health + H.setBrainLoss(CLONE_INITIAL_DAMAGE) + // In addition to being cellularly damaged and having barely any + // brain function, they also have no limbs or internal organs. + var/static/list/zones = list("r_arm", "l_arm", "r_leg", "l_leg") + for(var/zone in zones) + var/obj/item/bodypart/BP = H.get_bodypart(zone) if(BP) BP.drop_limb() BP.forceMove(src) unattached_flesh += BP - - for(var/o in H.internal_organs) - var/obj/item/organ/organ = o - if(!istype(organ) || organ.vital) - continue - organ.Remove(H, special=TRUE) - organ.forceMove(src) - unattached_flesh += organ - - flesh_number = unattached_flesh.len - -/obj/machinery/clonepod/proc/check_brine() - // Clones are in a pickled bath of mild chemicals, keeping - // them alive, despite their lack of internal organs - for(var/bt in brine_types) - if(occupant.reagents.get_reagent_amount(bt) < 1) - occupant.reagents.add_reagent(bt, 1) - -/* - * Manual -- A big ol' manual. - */ - -/obj/item/weapon/paper/Cloning - name = "paper - 'H-87 Cloning Apparatus Manual" - info = {"

    Getting Started

    - Congratulations, your station has purchased the H-87 industrial cloning device!
    - Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
    - That's all there is to it!
    - Notice, cloning system cannot scan inorganic life or small primates. Scan may fail if subject has suffered extreme brain damage.
    -

    Clone profiles may be viewed through the profiles menu. Scanning implants a complementary HEALTH MONITOR IMPLANT into the subject, which may be viewed from each profile. - Profile Deletion has been restricted to \[Station Head\] level access.

    -

    Cloning from a profile

    - Cloning is as simple as pressing the CLONE option at the bottom of the desired profile.
    - Per your company's EMPLOYEE PRIVACY RIGHTS agreement, the H-87 has been blocked from cloning crewmembers while they are still alive.
    -
    -

    The provided CLONEPOD SYSTEM will produce the desired clone. Standard clone maturation times (With SPEEDCLONE technology) are roughly 90 seconds. - The cloning pod may be unlocked early with any \[Medical Researcher\] ID after initial maturation is complete.


    - Please note that resulting clones may have a small DEVELOPMENTAL DEFECT as a result of genetic drift.
    -

    Profile Management

    -

    The H-87 (as well as your station's standard genetics machine) can accept STANDARD DATA DISKETTES. - These diskettes are used to transfer genetic information between machines and profiles. - A load/save dialog will become available in each profile if a disk is inserted.


    - A good diskette is a great way to counter aforementioned genetic drift!
    -
    - This technology produced under license from Thinktronic Systems, LTD."} - -#undef CLONE_INITIAL_DAMAGE -#undef SPEAK -#undef MINIMUM_HEAL_LEVEL \ No newline at end of file + + for(var/o in H.internal_organs) + var/obj/item/organ/organ = o + if(!istype(organ) || organ.vital) + continue + organ.Remove(H, special=TRUE) + organ.forceMove(src) + unattached_flesh += organ + + flesh_number = unattached_flesh.len + +/obj/machinery/clonepod/proc/check_brine() + // Clones are in a pickled bath of mild chemicals, keeping + // them alive, despite their lack of internal organs + for(var/bt in brine_types) + if(occupant.reagents.get_reagent_amount(bt) < 1) + occupant.reagents.add_reagent(bt, 1) + +/* + * Manual -- A big ol' manual. + */ + +/obj/item/weapon/paper/Cloning + name = "paper - 'H-87 Cloning Apparatus Manual" + info = {"

    Getting Started

    + Congratulations, your station has purchased the H-87 industrial cloning device!
    + Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
    + That's all there is to it!
    + Notice, cloning system cannot scan inorganic life or small primates. Scan may fail if subject has suffered extreme brain damage.
    +

    Clone profiles may be viewed through the profiles menu. Scanning implants a complementary HEALTH MONITOR IMPLANT into the subject, which may be viewed from each profile. + Profile Deletion has been restricted to \[Station Head\] level access.

    +

    Cloning from a profile

    + Cloning is as simple as pressing the CLONE option at the bottom of the desired profile.
    + Per your company's EMPLOYEE PRIVACY RIGHTS agreement, the H-87 has been blocked from cloning crewmembers while they are still alive.
    +
    +

    The provided CLONEPOD SYSTEM will produce the desired clone. Standard clone maturation times (With SPEEDCLONE technology) are roughly 90 seconds. + The cloning pod may be unlocked early with any \[Medical Researcher\] ID after initial maturation is complete.


    + Please note that resulting clones may have a small DEVELOPMENTAL DEFECT as a result of genetic drift.
    +

    Profile Management

    +

    The H-87 (as well as your station's standard genetics machine) can accept STANDARD DATA DISKETTES. + These diskettes are used to transfer genetic information between machines and profiles. + A load/save dialog will become available in each profile if a disk is inserted.


    + A good diskette is a great way to counter aforementioned genetic drift!
    +
    + This technology produced under license from Thinktronic Systems, LTD."} + +#undef CLONE_INITIAL_DAMAGE +#undef SPEAK +#undef MINIMUM_HEAL_LEVEL diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 0c624688ce..89fdc5fde9 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -31,7 +31,7 @@ if(active_apc) if(!active_apc.locked) active_apc.say("Remote access canceled. Interface locked.") - playsound(active_apc, 'sound/machines/BoltsDown.ogg', 25, 0) + playsound(active_apc, 'sound/machines/boltsdown.ogg', 25, 0) playsound(active_apc, 'sound/machines/terminal_alert.ogg', 50, 0) active_apc.locked = TRUE active_apc.update_icon() @@ -128,7 +128,7 @@ if(active_apc) to_chat(usr, "[bicon(src)] Disconnected from [active_apc].") active_apc.say("Remote access canceled. Interface locked.") - playsound(active_apc, 'sound/machines/BoltsDown.ogg', 25, 0) + playsound(active_apc, 'sound/machines/boltsdown.ogg', 25, 0) playsound(active_apc, 'sound/machines/terminal_alert.ogg', 50, 0) active_apc.locked = TRUE active_apc.update_icon() @@ -141,7 +141,7 @@ log_game("[key_name_admin(usr)] remotely accessed [APC] from [src] at [get_area(src)].") if(APC.locked) APC.say("Remote access detected. Interface unlocked.") - playsound(APC, 'sound/machines/BoltsUp.ogg', 25, 0) + playsound(APC, 'sound/machines/boltsup.ogg', 25, 0) playsound(APC, 'sound/machines/terminal_alert.ogg', 50, 0) APC.locked = FALSE APC.update_icon() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index e39887fca4..5617c41202 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -168,7 +168,7 @@ blocked = TRUE var/attackamt = rand(2,6) temp = "You attack for [attackamt] damage!" - playsound(loc, 'sound/arcade/Hit.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/hit.ogg', 50, 1, extrarange = -3, falloff = 10) updateUsrDialog() if(turtle > 0) turtle-- @@ -182,7 +182,7 @@ var/pointamt = rand(1,3) var/healamt = rand(6,8) temp = "You use [pointamt] magic to heal for [healamt] damage!" - playsound(loc, 'sound/arcade/Heal.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/heal.ogg', 50, 1, extrarange = -3, falloff = 10) updateUsrDialog() turtle++ @@ -197,7 +197,7 @@ blocked = 1 var/chargeamt = rand(4,7) temp = "You regain [chargeamt] points" - playsound(loc, 'sound/arcade/Mana.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/mana.ogg', 50, 1, extrarange = -3, falloff = 10) player_mp += chargeamt if(turtle > 0) turtle-- @@ -232,7 +232,7 @@ if(!gameover) gameover = TRUE temp = "[enemy_name] has fallen! Rejoice!" - playsound(loc, 'sound/arcade/Win.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/win.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) SSblackbox.inc("arcade_win_emagged") @@ -249,13 +249,13 @@ else if (emagged && (turtle >= 4)) var/boomamt = rand(5,10) temp = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!" - playsound(loc, 'sound/arcade/Boom.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/boom.ogg', 50, 1, extrarange = -3, falloff = 10) player_hp -= boomamt else if ((enemy_mp <= 5) && (prob(70))) var/stealamt = rand(2,3) temp = "[enemy_name] steals [stealamt] of your power!" - playsound(loc, 'sound/arcade/Steal.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/steal.ogg', 50, 1, extrarange = -3, falloff = 10) player_mp -= stealamt updateUsrDialog() @@ -263,7 +263,7 @@ gameover = TRUE sleep(10) temp = "You have been drained! GAME OVER" - playsound(loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) SSblackbox.inc("arcade_loss_mana_emagged") usr.gib() @@ -272,20 +272,20 @@ else if ((enemy_hp <= 10) && (enemy_mp > 4)) temp = "[enemy_name] heals for 4 health!" - playsound(loc, 'sound/arcade/Heal.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/heal.ogg', 50, 1, extrarange = -3, falloff = 10) enemy_hp += 4 enemy_mp -= 4 else var/attackamt = rand(3,6) temp = "[enemy_name] attacks for [attackamt] damage!" - playsound(loc, 'sound/arcade/Hit.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/hit.ogg', 50, 1, extrarange = -3, falloff = 10) player_hp -= attackamt if ((player_mp <= 0) || (player_hp <= 0)) gameover = TRUE temp = "You have been crushed! GAME OVER" - playsound(loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) + playsound(loc, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) SSblackbox.inc("arcade_loss_hp_emagged") usr.gib() @@ -518,18 +518,18 @@ to_chat(M, "You suddenly feel slightly nauseous." ) if(severity == 2) to_chat(usr, "You suddenly feel extremely nauseous and hunch over until it passes.") - M.Stun(3) + M.Stun(60) if(severity >= 3) //you didn't pray hard enough to_chat(M, "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit.") - M.Stun(5) + M.Stun(100) sleep(30) M.vomit(10, distance = 5) if(ORION_TRAIL_FLUX) if(prob(75)) - M.Weaken(3) + M.Knockdown(60) say("A sudden gust of powerful wind slams [M] into the floor!") M.take_bodypart_damage(25) - playsound(loc, 'sound/weapons/Genhit.ogg', 100, 1) + playsound(loc, 'sound/weapons/genhit.ogg', 100, 1) else to_chat(M, "A violent gale blows past you, and you barely manage to stay standing!") if(ORION_TRAIL_COLLISION) //by far the most damaging event @@ -542,7 +542,7 @@ if(hull) sleep(10) say("A new floor suddenly appears around [src]. What the hell?") - playsound(loc, 'sound/weapons/Genhit.ogg', 100, 1) + playsound(loc, 'sound/weapons/genhit.ogg', 100, 1) var/turf/open/space/T for(T in orange(1, src)) T.ChangeTurf(/turf/open/floor/plating/) @@ -550,7 +550,7 @@ say("Something slams into the floor around [src] - luckily, it didn't get through!") playsound(loc, 'sound/effects/bang.ogg', 50, 1) if(ORION_TRAIL_MALFUNCTION) - playsound(loc, 'sound/effects/EMPulse.ogg', 50, 1) + playsound(loc, 'sound/effects/empulse.ogg', 50, 1) visible_message("[src] malfunctions, randomizing in-game stats!") var/oldfood = food var/oldfuel = fuel @@ -618,7 +618,9 @@ if(emagged) //has to be here because otherwise it doesn't work playsound(loc, 'sound/effects/supermatter.ogg', 100, 1) say("A miniature black hole suddenly appears in front of [src], devouring [usr] alive!") - usr.Stun(10) //you can't run :^) + if(isliving(usr)) + var/mob/living/L = usr + L.Stun(200, ignore_canstun = TRUE) //you can't run :^) var/S = new /obj/singularity/academy(usr.loc) emagged = 0 //immediately removes emagged status so people can't kill themselves by sprinting up and interacting sleep(50) @@ -638,7 +640,7 @@ else if(href_list["killcrew"]) //shoot a crewmember if(gameStatus == ORION_STATUS_NORMAL || event == ORION_TRAIL_LING) var/sheriff = remove_crewmember() //I shot the sheriff - playsound(loc,'sound/weapons/Gunshot.ogg', 100, 1) + playsound(loc,'sound/weapons/gunshot.ogg', 100, 1) if(settlers.len == 0 || alive == 0) say("The last crewmember [sheriff], shot themselves, GAME OVER!") @@ -1050,27 +1052,8 @@ name = "Spaceport Security" desc = "The Premier security forces for all spaceports found along the Orion Trail." faction = list("orion") - loot = list(/obj/effect/mob_spawn/human/corpse/orionsecurity, - /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, - /obj/item/weapon/shield/energy) - -/obj/effect/mob_spawn/human/corpse/orionsecurity - name = "Spaceport Security" - id_job = "Officer" - id_access_list = list(GLOB.access_syndicate) - outfit = /datum/outfit/orionsecurity - -/datum/outfit/orionsecurity - name = "Orion Spaceport Security" - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/armor/vest - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/gas - head = /obj/item/clothing/head/helmet/swat - back = /obj/item/weapon/storage/backpack - id = /obj/item/weapon/card/id + loot = list() + del_on_death = TRUE /obj/item/weapon/orion_ship name = "model settler ship" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index f9014d5b8f..fe328fe782 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -1,463 +1,459 @@ -/obj/structure/frame/computer - name = "computer frame" - icon_state = "0" - state = 0 - -/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) - add_fingerprint(user) - switch(state) - if(0) - if(istype(P, /obj/item/weapon/wrench)) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You start wrenching the frame into place...") - if(do_after(user, 20*P.toolspeed, target = src)) - to_chat(user, "You wrench the frame into place.") - anchored = 1 - state = 1 - return - if(istype(P, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = P - if(!WT.remove_fuel(0, user)) - if(!WT.isOn()) - to_chat(user, "The welding tool must be on to complete this task!") - return - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You start deconstructing the frame...") - if(do_after(user, 20*P.toolspeed, target = src)) - if(!src || !WT.isOn()) return - to_chat(user, "You deconstruct the frame.") - var/obj/item/stack/sheet/metal/M = new (loc, 5) - M.add_fingerprint(user) - qdel(src) - return - if(1) - if(istype(P, /obj/item/weapon/wrench)) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You start to unfasten the frame...") - if(do_after(user, 20*P.toolspeed, target = src)) - to_chat(user, "You unfasten the frame.") - anchored = 0 - state = 0 - return - if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit) - if(!user.drop_item()) - return - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You place the circuit board inside the frame.") - icon_state = "1" - circuit = P - circuit.add_fingerprint(user) - P.loc = null - return - - else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) - to_chat(user, "This frame does not accept circuit boards of this type!") - return - if(istype(P, /obj/item/weapon/screwdriver) && circuit) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You screw the circuit board into place.") - state = 2 - icon_state = "2" - return - if(istype(P, /obj/item/weapon/crowbar) && circuit) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You remove the circuit board.") - state = 1 - icon_state = "0" - circuit.loc = src.loc - circuit.add_fingerprint(user) - circuit = null - return - if(2) - if(istype(P, /obj/item/weapon/screwdriver) && circuit) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You unfasten the circuit board.") - state = 1 - icon_state = "1" - return - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = P - if(C.get_amount() >= 5) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You start adding cables to the frame...") - if(do_after(user, 20*P.toolspeed, target = src)) - if(C.get_amount() >= 5 && state == 2) - C.use(5) - to_chat(user, "You add cables to the frame.") - state = 3 - icon_state = "3" - else - to_chat(user, "You need five lengths of cable to wire the frame!") - return - if(3) - if(istype(P, /obj/item/weapon/wirecutters)) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You remove the cables.") - state = 2 - icon_state = "2" - var/obj/item/stack/cable_coil/A = new (loc) - A.amount = 5 - A.add_fingerprint(user) - return - - if(istype(P, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = P - if(G.get_amount() < 2) - to_chat(user, "You need two glass sheets to continue construction!") - return - else - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You start to put in the glass panel...") - if(do_after(user, 20, target = src)) - if(G.get_amount() >= 2 && state == 3) - G.use(2) - to_chat(user, "You put in the glass panel.") - state = 4 - src.icon_state = "4" - return - if(4) - if(istype(P, /obj/item/weapon/crowbar)) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You remove the glass panel.") - state = 3 - icon_state = "3" - var/obj/item/stack/sheet/glass/G = new (loc, 2) - G.add_fingerprint(user) - return - if(istype(P, /obj/item/weapon/screwdriver)) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You connect the monitor.") - var/obj/B = new src.circuit.build_path (src.loc, circuit) - transfer_fingerprints_to(B) - qdel(src) - return - if(user.a_intent == INTENT_HARM) - return ..() - - -/obj/structure/frame/computer/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(state == 4) - new /obj/item/weapon/shard(loc) - new /obj/item/weapon/shard(loc) - if(state >= 3) - new /obj/item/stack/cable_coil(loc , 5) - ..() - - -/obj/item/weapon/circuitboard - name = "circuit board" - icon = 'icons/obj/module.dmi' - icon_state = "id_mod" - item_state = "electronic" - origin_tech = "programming=2" - materials = list(MAT_GLASS=1000) - w_class = WEIGHT_CLASS_SMALL - var/build_path = null - -/obj/item/weapon/circuitboard/computer/turbine_computer - name = "Turbine Computer (Computer Board)" - build_path = /obj/machinery/computer/turbine_computer - origin_tech = "programming=4;engineering=4;powerstorage=4" -/obj/item/weapon/circuitboard/computer/telesci_console - name = "Telescience Console (Computer Board)" - build_path = /obj/machinery/computer/telescience - origin_tech = "programming=3;bluespace=3;plasmatech=4" +/obj/structure/frame/computer + name = "computer frame" + icon_state = "0" + state = 0 + +/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) + add_fingerprint(user) + switch(state) + if(0) + if(istype(P, /obj/item/weapon/wrench)) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You start wrenching the frame into place...") + if(do_after(user, 20*P.toolspeed, target = src)) + to_chat(user, "You wrench the frame into place.") + anchored = 1 + state = 1 + return + if(istype(P, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = P + if(!WT.remove_fuel(0, user)) + if(!WT.isOn()) + to_chat(user, "The welding tool must be on to complete this task!") + return + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You start deconstructing the frame...") + if(do_after(user, 20*P.toolspeed, target = src)) + if(!src || !WT.isOn()) return + to_chat(user, "You deconstruct the frame.") + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) + return + if(1) + if(istype(P, /obj/item/weapon/wrench)) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You start to unfasten the frame...") + if(do_after(user, 20*P.toolspeed, target = src)) + to_chat(user, "You unfasten the frame.") + anchored = 0 + state = 0 + return + if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit) + if(!user.drop_item()) + return + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You place the circuit board inside the frame.") + icon_state = "1" + circuit = P + circuit.add_fingerprint(user) + P.loc = null + return + + else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) + to_chat(user, "This frame does not accept circuit boards of this type!") + return + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You screw the circuit board into place.") + state = 2 + icon_state = "2" + return + if(istype(P, /obj/item/weapon/crowbar) && circuit) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You remove the circuit board.") + state = 1 + icon_state = "0" + circuit.loc = src.loc + circuit.add_fingerprint(user) + circuit = null + return + if(2) + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You unfasten the circuit board.") + state = 1 + icon_state = "1" + return + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if(C.get_amount() >= 5) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You start adding cables to the frame...") + if(do_after(user, 20*P.toolspeed, target = src)) + if(C.get_amount() >= 5 && state == 2) + C.use(5) + to_chat(user, "You add cables to the frame.") + state = 3 + icon_state = "3" + else + to_chat(user, "You need five lengths of cable to wire the frame!") + return + if(3) + if(istype(P, /obj/item/weapon/wirecutters)) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You remove the cables.") + state = 2 + icon_state = "2" + var/obj/item/stack/cable_coil/A = new (loc) + A.amount = 5 + A.add_fingerprint(user) + return + + if(istype(P, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = P + if(G.get_amount() < 2) + to_chat(user, "You need two glass sheets to continue construction!") + return + else + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You start to put in the glass panel...") + if(do_after(user, 20, target = src)) + if(G.get_amount() >= 2 && state == 3) + G.use(2) + to_chat(user, "You put in the glass panel.") + state = 4 + src.icon_state = "4" + return + if(4) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You remove the glass panel.") + state = 3 + icon_state = "3" + var/obj/item/stack/sheet/glass/G = new (loc, 2) + G.add_fingerprint(user) + return + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(src.loc, P.usesound, 50, 1) + to_chat(user, "You connect the monitor.") + var/obj/B = new src.circuit.build_path (src.loc, circuit) + transfer_fingerprints_to(B) + qdel(src) + return + if(user.a_intent == INTENT_HARM) + return ..() + + +/obj/structure/frame/computer/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(state == 4) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + if(state >= 3) + new /obj/item/stack/cable_coil(loc , 5) + ..() + + +/obj/item/weapon/circuitboard + name = "circuit board" + icon = 'icons/obj/module.dmi' + icon_state = "id_mod" + item_state = "electronic" + origin_tech = "programming=2" + materials = list(MAT_GLASS=1000) + w_class = WEIGHT_CLASS_SMALL + var/build_path = null + +/obj/item/weapon/circuitboard/computer/turbine_computer + name = "Turbine Computer (Computer Board)" + build_path = /obj/machinery/computer/turbine_computer + origin_tech = "programming=4;engineering=4;powerstorage=4" /obj/item/weapon/circuitboard/computer/launchpad_console name = "Launchpad Control Console (Computer Board)" build_path = /obj/machinery/computer/launchpad origin_tech = "programming=3;bluespace=3;plasmatech=2" -/obj/item/weapon/circuitboard/computer/message_monitor - name = "Message Monitor (Computer Board)" - build_path = /obj/machinery/computer/message_monitor - origin_tech = "programming=2" -/obj/item/weapon/circuitboard/computer/security - name = "Security Cameras (Computer Board)" - build_path = /obj/machinery/computer/security - origin_tech = "programming=2;combat=2" -/obj/item/weapon/circuitboard/computer/xenobiology - name = "circuit board (Xenobiology Console)" - build_path = /obj/machinery/computer/camera_advanced/xenobio +/obj/item/weapon/circuitboard/computer/message_monitor + name = "Message Monitor (Computer Board)" + build_path = /obj/machinery/computer/message_monitor + origin_tech = "programming=2" +/obj/item/weapon/circuitboard/computer/security + name = "Security Cameras (Computer Board)" + build_path = /obj/machinery/computer/security + origin_tech = "programming=2;combat=2" +/obj/item/weapon/circuitboard/computer/xenobiology + name = "circuit board (Xenobiology Console)" + build_path = /obj/machinery/computer/camera_advanced/xenobio origin_tech = "programming=3;biotech=3" -/obj/item/weapon/circuitboard/computer/base_construction - name = "circuit board (Aux Mining Base Construction Console)" - build_path = /obj/machinery/computer/camera_advanced/base_construction - origin_tech = "programming=3;engineering=3" -/obj/item/weapon/circuitboard/computer/aiupload - name = "AI Upload (Computer Board)" - build_path = /obj/machinery/computer/upload/ai - origin_tech = "programming=4;engineering=4" -/obj/item/weapon/circuitboard/computer/borgupload - name = "Cyborg Upload (Computer Board)" - build_path = /obj/machinery/computer/upload/borg - origin_tech = "programming=4;engineering=4" -/obj/item/weapon/circuitboard/computer/med_data - name = "Medical Records Console (Computer Board)" - build_path = /obj/machinery/computer/med_data - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/computer/pandemic - name = "PanD.E.M.I.C. 2200 (Computer Board)" - build_path = /obj/machinery/computer/pandemic - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/computer/scan_consolenew - name = "DNA Machine (Computer Board)" - build_path = /obj/machinery/computer/scan_consolenew - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/computer/communications - name = "Communications (Computer Board)" - build_path = /obj/machinery/computer/communications - origin_tech = "programming=3;magnets=3" - var/lastTimeUsed = 0 - -/obj/item/weapon/circuitboard/computer/card - name = "ID Console (Computer Board)" - build_path = /obj/machinery/computer/card - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/computer/card/centcom - name = "Centcom ID Console (Computer Board)" - build_path = /obj/machinery/computer/card/centcom - -/obj/item/weapon/circuitboard/computer/card/minor - name = "Department Management Console (Computer Board)" - build_path = /obj/machinery/computer/card/minor - var/target_dept = 1 - var/list/dept_list = list("General","Security","Medical","Science","Engineering") - -/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1) - to_chat(user, "You set the board to \"[dept_list[target_dept]]\".") - else - return ..() - -/obj/item/weapon/circuitboard/computer/card/minor/examine(user) - ..() - to_chat(user, "Currently set to \"[dept_list[target_dept]]\".") - -//obj/item/weapon/circuitboard/computer/shield -// name = "Shield Control (Computer Board)" -// build_path = /obj/machinery/computer/stationshield -/obj/item/weapon/circuitboard/computer/teleporter - name = "Teleporter (Computer Board)" - build_path = /obj/machinery/computer/teleporter - origin_tech = "programming=3;bluespace=3;plasmatech=3" -/obj/item/weapon/circuitboard/computer/secure_data - name = "Security Records Console (Computer Board)" - build_path = /obj/machinery/computer/secure_data - origin_tech = "programming=2;combat=2" -/obj/item/weapon/circuitboard/computer/stationalert - name = "Station Alerts (Computer Board)" - build_path = /obj/machinery/computer/station_alert -/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch - name = "Atmosphere siphon control (Computer Board)" - build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ -/obj/item/weapon/circuitboard/computer/atmos_control - name = "Atmospheric Monitor (Computer Board)" - build_path = /obj/machinery/computer/atmos_control -/obj/item/weapon/circuitboard/computer/atmos_control/tank - name = "Tank Control (Computer Board)" - build_path = /obj/machinery/computer/atmos_control/tank - origin_tech = "programming=2;engineering=3;materials=2" -/obj/item/weapon/circuitboard/computer/atmos_alert - name = "Atmospheric Alert (Computer Board)" - build_path = /obj/machinery/computer/atmos_alert -/obj/item/weapon/circuitboard/computer/pod - name = "Massdriver control (Computer Board)" - build_path = /obj/machinery/computer/pod -/obj/item/weapon/circuitboard/computer/robotics - name = "Robotics Control (Computer Board)" - build_path = /obj/machinery/computer/robotics - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/computer/cloning - name = "Cloning (Computer Board)" - build_path = /obj/machinery/computer/cloning - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/computer/arcade/battle - name = "Arcade Battle (Computer Board)" - build_path = /obj/machinery/computer/arcade/battle - origin_tech = "programming=1" -/obj/item/weapon/circuitboard/computer/arcade/orion_trail - name = "Orion Trail (Computer Board)" - build_path = /obj/machinery/computer/arcade/orion_trail - origin_tech = "programming=1" -/obj/item/weapon/circuitboard/computer/turbine_control - name = "Turbine control (Computer Board)" - build_path = /obj/machinery/computer/turbine_computer -/obj/item/weapon/circuitboard/computer/solar_control - name = "Solar Control (Computer Board)" //name fixed 250810 - build_path = /obj/machinery/power/solar_control - origin_tech = "programming=2;powerstorage=2" -/obj/item/weapon/circuitboard/computer/powermonitor - name = "Power Monitor (Computer Board)" //name fixed 250810 - build_path = /obj/machinery/computer/monitor - origin_tech = "programming=2;powerstorage=2" -/obj/item/weapon/circuitboard/computer/olddoor - name = "DoorMex (Computer Board)" - build_path = /obj/machinery/computer/pod/old -/obj/item/weapon/circuitboard/computer/syndicatedoor - name = "ProComp Executive (Computer Board)" - build_path = /obj/machinery/computer/pod/old/syndicate -/obj/item/weapon/circuitboard/computer/swfdoor - name = "Magix (Computer Board)" - build_path = /obj/machinery/computer/pod/old/swf -/obj/item/weapon/circuitboard/computer/prisoner - name = "Prisoner Management Console (Computer Board)" - build_path = /obj/machinery/computer/prisoner -/obj/item/weapon/circuitboard/computer/gulag_teleporter_console - name = "Labor Camp teleporter console (Computer Board)" - build_path = /obj/machinery/computer/gulag_teleporter_computer - -/obj/item/weapon/circuitboard/computer/rdconsole +/obj/item/weapon/circuitboard/computer/base_construction + name = "circuit board (Aux Mining Base Construction Console)" + build_path = /obj/machinery/computer/camera_advanced/base_construction + origin_tech = "programming=3;engineering=3" +/obj/item/weapon/circuitboard/computer/aiupload + name = "AI Upload (Computer Board)" + build_path = /obj/machinery/computer/upload/ai + origin_tech = "programming=4;engineering=4" +/obj/item/weapon/circuitboard/computer/borgupload + name = "Cyborg Upload (Computer Board)" + build_path = /obj/machinery/computer/upload/borg + origin_tech = "programming=4;engineering=4" +/obj/item/weapon/circuitboard/computer/med_data + name = "Medical Records Console (Computer Board)" + build_path = /obj/machinery/computer/med_data + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/pandemic + name = "PanD.E.M.I.C. 2200 (Computer Board)" + build_path = /obj/machinery/computer/pandemic + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/scan_consolenew + name = "DNA Machine (Computer Board)" + build_path = /obj/machinery/computer/scan_consolenew + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/communications + name = "Communications (Computer Board)" + build_path = /obj/machinery/computer/communications + origin_tech = "programming=3;magnets=3" + var/lastTimeUsed = 0 + +/obj/item/weapon/circuitboard/computer/card + name = "ID Console (Computer Board)" + build_path = /obj/machinery/computer/card + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/card/centcom + name = "Centcom ID Console (Computer Board)" + build_path = /obj/machinery/computer/card/centcom + +/obj/item/weapon/circuitboard/computer/card/minor + name = "Department Management Console (Computer Board)" + build_path = /obj/machinery/computer/card/minor + var/target_dept = 1 + var/list/dept_list = list("General","Security","Medical","Science","Engineering") + +/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1) + to_chat(user, "You set the board to \"[dept_list[target_dept]]\".") + else + return ..() + +/obj/item/weapon/circuitboard/computer/card/minor/examine(user) + ..() + to_chat(user, "Currently set to \"[dept_list[target_dept]]\".") + +//obj/item/weapon/circuitboard/computer/shield +// name = "Shield Control (Computer Board)" +// build_path = /obj/machinery/computer/stationshield +/obj/item/weapon/circuitboard/computer/teleporter + name = "Teleporter (Computer Board)" + build_path = /obj/machinery/computer/teleporter + origin_tech = "programming=3;bluespace=3;plasmatech=3" +/obj/item/weapon/circuitboard/computer/secure_data + name = "Security Records Console (Computer Board)" + build_path = /obj/machinery/computer/secure_data + origin_tech = "programming=2;combat=2" +/obj/item/weapon/circuitboard/computer/stationalert + name = "Station Alerts (Computer Board)" + build_path = /obj/machinery/computer/station_alert +/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch + name = "Atmosphere siphon control (Computer Board)" + build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ +/obj/item/weapon/circuitboard/computer/atmos_control + name = "Atmospheric Monitor (Computer Board)" + build_path = /obj/machinery/computer/atmos_control +/obj/item/weapon/circuitboard/computer/atmos_control/tank + name = "Tank Control (Computer Board)" + build_path = /obj/machinery/computer/atmos_control/tank + origin_tech = "programming=2;engineering=3;materials=2" +/obj/item/weapon/circuitboard/computer/atmos_alert + name = "Atmospheric Alert (Computer Board)" + build_path = /obj/machinery/computer/atmos_alert +/obj/item/weapon/circuitboard/computer/pod + name = "Massdriver control (Computer Board)" + build_path = /obj/machinery/computer/pod +/obj/item/weapon/circuitboard/computer/robotics + name = "Robotics Control (Computer Board)" + build_path = /obj/machinery/computer/robotics + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/cloning + name = "Cloning (Computer Board)" + build_path = /obj/machinery/computer/cloning + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/arcade/battle + name = "Arcade Battle (Computer Board)" + build_path = /obj/machinery/computer/arcade/battle + origin_tech = "programming=1" +/obj/item/weapon/circuitboard/computer/arcade/orion_trail + name = "Orion Trail (Computer Board)" + build_path = /obj/machinery/computer/arcade/orion_trail + origin_tech = "programming=1" +/obj/item/weapon/circuitboard/computer/turbine_control + name = "Turbine control (Computer Board)" + build_path = /obj/machinery/computer/turbine_computer +/obj/item/weapon/circuitboard/computer/solar_control + name = "Solar Control (Computer Board)" //name fixed 250810 + build_path = /obj/machinery/power/solar_control + origin_tech = "programming=2;powerstorage=2" +/obj/item/weapon/circuitboard/computer/powermonitor + name = "Power Monitor (Computer Board)" //name fixed 250810 + build_path = /obj/machinery/computer/monitor + origin_tech = "programming=2;powerstorage=2" +/obj/item/weapon/circuitboard/computer/olddoor + name = "DoorMex (Computer Board)" + build_path = /obj/machinery/computer/pod/old +/obj/item/weapon/circuitboard/computer/syndicatedoor + name = "ProComp Executive (Computer Board)" + build_path = /obj/machinery/computer/pod/old/syndicate +/obj/item/weapon/circuitboard/computer/swfdoor + name = "Magix (Computer Board)" + build_path = /obj/machinery/computer/pod/old/swf +/obj/item/weapon/circuitboard/computer/prisoner + name = "Prisoner Management Console (Computer Board)" + build_path = /obj/machinery/computer/prisoner +/obj/item/weapon/circuitboard/computer/gulag_teleporter_console + name = "Labor Camp teleporter console (Computer Board)" + build_path = /obj/machinery/computer/gulag_teleporter_computer + +/obj/item/weapon/circuitboard/computer/rdconsole name = "R&D Console (Computer Board)" - build_path = /obj/machinery/computer/rdconsole/core - -/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) - if(build_path == /obj/machinery/computer/rdconsole/core) + build_path = /obj/machinery/computer/rdconsole/core + +/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/rdconsole/core) name = "R&D Console - Robotics (Computer Board)" - build_path = /obj/machinery/computer/rdconsole/robotics - to_chat(user, "Access protocols successfully updated.") - else + build_path = /obj/machinery/computer/rdconsole/robotics + to_chat(user, "Access protocols successfully updated.") + else name = "R&D Console (Computer Board)" - build_path = /obj/machinery/computer/rdconsole/core - to_chat(user, "Defaulting access protocols.") - else - return ..() - -/obj/item/weapon/circuitboard/computer/mecha_control - name = "Exosuit Control Console (Computer Board)" - build_path = /obj/machinery/computer/mecha -/obj/item/weapon/circuitboard/computer/rdservercontrol - name = "R&D Server Control (Computer Board)" - build_path = /obj/machinery/computer/rdservercontrol -/obj/item/weapon/circuitboard/computer/crew - name = "Crew Monitoring Console (Computer Board)" - build_path = /obj/machinery/computer/crew - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/computer/mech_bay_power_console - name = "Mech Bay Power Control Console (Computer Board)" - build_path = /obj/machinery/computer/mech_bay_power_console - origin_tech = "programming=3;powerstorage=3" - -/obj/item/weapon/circuitboard/computer/cargo - name = "Supply Console (Computer Board)" - build_path = /obj/machinery/computer/cargo - origin_tech = "programming=3" - var/contraband = 0 - var/emagged = 0 - -/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/device/multitool)) - if(!emagged) - contraband = !contraband - to_chat(user, "Receiver spectrum set to [contraband ? "Broad" : "Standard"].") - else - to_chat(user, "The spectrum chip is unresponsive.") - else if(istype(I,/obj/item/weapon/card/emag)) - if(!emagged) - contraband = TRUE - emagged = TRUE - to_chat(user, "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") - else - return ..() - - -/obj/item/weapon/circuitboard/computer/cargo/request - name = "Supply Request Console (Computer Board)" - build_path = /obj/machinery/computer/cargo/request -/obj/item/weapon/circuitboard/computer/stockexchange - name = "circuit board (Stock Exchange Console)" - build_path = /obj/machinery/computer/stockexchange - origin_tech = "programming=3" - -/obj/item/weapon/circuitboard/computer/operating - name = "Operating Computer (Computer Board)" - build_path = /obj/machinery/computer/operating - origin_tech = "programming=2;biotech=3" -/obj/item/weapon/circuitboard/computer/mining - name = "Outpost Status Display (Computer Board)" - build_path = /obj/machinery/computer/security/mining -/obj/item/weapon/circuitboard/computer/comm_monitor - name = "Telecommunications Monitor (Computer Board)" - build_path = /obj/machinery/computer/telecomms/monitor - origin_tech = "programming=3;magnets=3;bluespace=2" -/obj/item/weapon/circuitboard/computer/comm_server - name = "Telecommunications Server Monitor (Computer Board)" - build_path = /obj/machinery/computer/telecomms/server - origin_tech = "programming=3;magnets=3;bluespace=2" - -/obj/item/weapon/circuitboard/computer/shuttle - name = "Shuttle (Computer Board)" - build_path = /obj/machinery/computer/shuttle - var/shuttleId - var/possible_destinations = "" - -/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool)) - var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) - if(chosen_id >= 0) - shuttleId = chosen_id - else - shuttleId = initial(shuttleId) - else - return ..() - -/obj/item/weapon/circuitboard/computer/labor_shuttle - name = "Labor Shuttle (Computer Board)" - build_path = /obj/machinery/computer/shuttle/labor -/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way - name = "Prisoner Shuttle Console (Computer Board)" - build_path = /obj/machinery/computer/shuttle/labor/one_way -/obj/item/weapon/circuitboard/computer/ferry - name = "Transport Ferry (Computer Board)" - build_path = /obj/machinery/computer/shuttle/ferry -/obj/item/weapon/circuitboard/computer/ferry/request - name = "Transport Ferry Console (Computer Board)" - build_path = /obj/machinery/computer/shuttle/ferry/request -/obj/item/weapon/circuitboard/computer/mining_shuttle - name = "Mining Shuttle (Computer Board)" - build_path = /obj/machinery/computer/shuttle/mining -/obj/item/weapon/circuitboard/computer/white_ship - name = "White Ship (Computer Board)" - build_path = /obj/machinery/computer/shuttle/white_ship -/obj/item/weapon/circuitboard/computer/auxillary_base - name = "Auxillary Base Management Console (Computer Board)" - build_path = /obj/machinery/computer/auxillary_base -/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future - name = "Holodeck Control (Computer Board)" - build_path = /obj/machinery/computer/holodeck - origin_tech = "programming=4" -/obj/item/weapon/circuitboard/computer/aifixer - name = "AI Integrity Restorer (Computer Board)" - build_path = /obj/machinery/computer/aifixer - origin_tech = "programming=2;biotech=2" -/*/obj/item/weapon/circuitboard/computer/prison_shuttle - name = "Prison Shuttle (Computer Board)" - build_path = /obj/machinery/computer/prison_shuttle*/ -/obj/item/weapon/circuitboard/computer/slot_machine - name = "Slot Machine (Computer Board)" - build_path = /obj/machinery/computer/slot_machine - origin_tech = "programming=1" - -/obj/item/weapon/circuitboard/computer/libraryconsole - name = "Library Visitor Console (Computer Board)" - build_path = /obj/machinery/computer/libraryconsole - origin_tech = "programming=1" - -/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) - if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) - name = "Library Visitor Console (Computer Board)" - build_path = /obj/machinery/computer/libraryconsole - to_chat(user, "Defaulting access protocols.") - else - name = "Book Inventory Management Console (Computer Board)" - build_path = /obj/machinery/computer/libraryconsole/bookmanagement - to_chat(user, "Access protocols successfully updated.") - else - return ..() - -/obj/item/weapon/circuitboard/computer/apc_control - name = "\improper Power Flow Control Console (Computer Board)" - build_path = /obj/machinery/computer/apc_control - origin_tech = "programming=3;engineering=3;powerstorage=2" + build_path = /obj/machinery/computer/rdconsole/core + to_chat(user, "Defaulting access protocols.") + else + return ..() + +/obj/item/weapon/circuitboard/computer/mecha_control + name = "Exosuit Control Console (Computer Board)" + build_path = /obj/machinery/computer/mecha +/obj/item/weapon/circuitboard/computer/rdservercontrol + name = "R&D Server Control (Computer Board)" + build_path = /obj/machinery/computer/rdservercontrol +/obj/item/weapon/circuitboard/computer/crew + name = "Crew Monitoring Console (Computer Board)" + build_path = /obj/machinery/computer/crew + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/mech_bay_power_console + name = "Mech Bay Power Control Console (Computer Board)" + build_path = /obj/machinery/computer/mech_bay_power_console + origin_tech = "programming=3;powerstorage=3" + +/obj/item/weapon/circuitboard/computer/cargo + name = "Supply Console (Computer Board)" + build_path = /obj/machinery/computer/cargo + origin_tech = "programming=3" + var/contraband = 0 + var/emagged = 0 + +/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/device/multitool)) + if(!emagged) + contraband = !contraband + to_chat(user, "Receiver spectrum set to [contraband ? "Broad" : "Standard"].") + else + to_chat(user, "The spectrum chip is unresponsive.") + else if(istype(I,/obj/item/weapon/card/emag)) + if(!emagged) + contraband = TRUE + emagged = TRUE + to_chat(user, "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") + else + return ..() + + +/obj/item/weapon/circuitboard/computer/cargo/request + name = "Supply Request Console (Computer Board)" + build_path = /obj/machinery/computer/cargo/request +/obj/item/weapon/circuitboard/computer/stockexchange + name = "circuit board (Stock Exchange Console)" + build_path = /obj/machinery/computer/stockexchange + origin_tech = "programming=3" + +/obj/item/weapon/circuitboard/computer/operating + name = "Operating Computer (Computer Board)" + build_path = /obj/machinery/computer/operating + origin_tech = "programming=2;biotech=3" +/obj/item/weapon/circuitboard/computer/mining + name = "Outpost Status Display (Computer Board)" + build_path = /obj/machinery/computer/security/mining +/obj/item/weapon/circuitboard/computer/comm_monitor + name = "Telecommunications Monitor (Computer Board)" + build_path = /obj/machinery/computer/telecomms/monitor + origin_tech = "programming=3;magnets=3;bluespace=2" +/obj/item/weapon/circuitboard/computer/comm_server + name = "Telecommunications Server Monitor (Computer Board)" + build_path = /obj/machinery/computer/telecomms/server + origin_tech = "programming=3;magnets=3;bluespace=2" + +/obj/item/weapon/circuitboard/computer/shuttle + name = "Shuttle (Computer Board)" + build_path = /obj/machinery/computer/shuttle + var/shuttleId + var/possible_destinations = "" + +/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) + if(chosen_id >= 0) + shuttleId = chosen_id + else + shuttleId = initial(shuttleId) + else + return ..() + +/obj/item/weapon/circuitboard/computer/labor_shuttle + name = "Labor Shuttle (Computer Board)" + build_path = /obj/machinery/computer/shuttle/labor +/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way + name = "Prisoner Shuttle Console (Computer Board)" + build_path = /obj/machinery/computer/shuttle/labor/one_way +/obj/item/weapon/circuitboard/computer/ferry + name = "Transport Ferry (Computer Board)" + build_path = /obj/machinery/computer/shuttle/ferry +/obj/item/weapon/circuitboard/computer/ferry/request + name = "Transport Ferry Console (Computer Board)" + build_path = /obj/machinery/computer/shuttle/ferry/request +/obj/item/weapon/circuitboard/computer/mining_shuttle + name = "Mining Shuttle (Computer Board)" + build_path = /obj/machinery/computer/shuttle/mining +/obj/item/weapon/circuitboard/computer/white_ship + name = "White Ship (Computer Board)" + build_path = /obj/machinery/computer/shuttle/white_ship +/obj/item/weapon/circuitboard/computer/auxillary_base + name = "Auxillary Base Management Console (Computer Board)" + build_path = /obj/machinery/computer/auxillary_base +/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future + name = "Holodeck Control (Computer Board)" + build_path = /obj/machinery/computer/holodeck + origin_tech = "programming=4" +/obj/item/weapon/circuitboard/computer/aifixer + name = "AI Integrity Restorer (Computer Board)" + build_path = /obj/machinery/computer/aifixer + origin_tech = "programming=2;biotech=2" +/*/obj/item/weapon/circuitboard/computer/prison_shuttle + name = "Prison Shuttle (Computer Board)" + build_path = /obj/machinery/computer/prison_shuttle*/ +/obj/item/weapon/circuitboard/computer/slot_machine + name = "Slot Machine (Computer Board)" + build_path = /obj/machinery/computer/slot_machine + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole + name = "Library Visitor Console (Computer Board)" + build_path = /obj/machinery/computer/libraryconsole + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) + name = "Library Visitor Console (Computer Board)" + build_path = /obj/machinery/computer/libraryconsole + to_chat(user, "Defaulting access protocols.") + else + name = "Book Inventory Management Console (Computer Board)" + build_path = /obj/machinery/computer/libraryconsole/bookmanagement + to_chat(user, "Access protocols successfully updated.") + else + return ..() + +/obj/item/weapon/circuitboard/computer/apc_control + name = "\improper Power Flow Control Console (Computer Board)" + build_path = /obj/machinery/computer/apc_control + origin_tech = "programming=3;engineering=3;powerstorage=2" diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index bede3ff526..53d36e26aa 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -1,189 +1,189 @@ -/obj/machinery/computer/security - name = "security camera console" - desc = "Used to access the various cameras on the station." - icon_screen = "cameras" - icon_keyboard = "security_key" - circuit = /obj/item/weapon/circuitboard/computer/security - var/last_pic = 1 - var/list/network = list("SS13") - var/mapping = 0//For the overview file, interesting bit of code. - var/list/watchers = list() //who's using the console, associated with the camera they're on. - - light_color = LIGHT_COLOR_RED - -/obj/machinery/computer/security/check_eye(mob/user) - if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind ) - user.unset_machine() - return - if(!(user in watchers)) - user.unset_machine() - return - if(!watchers[user]) - user.unset_machine() - return - var/obj/machinery/camera/C = watchers[user] - if(!C.can_use()) - user.unset_machine() - return - if(!issilicon(user)) - if(!Adjacent(user)) - user.unset_machine() - return - else if(iscyborg(user)) - var/list/viewing = viewers(src) - if(!viewing.Find(user)) - user.unset_machine() - -/obj/machinery/computer/security/on_unset_machine(mob/user) - watchers.Remove(user) - user.reset_perspective(null) - -/obj/machinery/computer/security/Destroy() - if(watchers.len) - for(var/mob/M in watchers) - M.unset_machine() //to properly reset the view of the users if the console is deleted. - return ..() - -/obj/machinery/computer/security/attack_hand(mob/user) - if(stat) - return - if (!network) - throw EXCEPTION("No camera network") - user.unset_machine() - return - if (!(istype(network,/list))) - throw EXCEPTION("Camera network is not a list") - user.unset_machine() - return - if(..()) - user.unset_machine() - return - - var/list/camera_list = get_available_cameras() - if(!(user in watchers)) - for(var/Num in camera_list) - var/obj/machinery/camera/CAM = camera_list[Num] - if(istype(CAM)) - if(CAM.can_use()) - watchers[user] = CAM //let's give the user the first usable camera, and then let him change to the camera he wants. - break - if(!(user in watchers)) - user.unset_machine() // no usable camera on the network, we disconnect the user from the computer. - return - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) - use_camera_console(user) - -/obj/machinery/computer/security/proc/use_camera_console(mob/user) - var/list/camera_list = get_available_cameras() - var/t = input(user, "Which camera should you change to?") as null|anything in camera_list - if(user.machine != src) //while we were choosing we got disconnected from our computer or are using another machine. - return - if(!t) - user.unset_machine() - playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) - return - - var/obj/machinery/camera/C = camera_list[t] - - if(t == "Cancel") - user.unset_machine() - playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) - return - if(C) - var/camera_fail = 0 - if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated()) - camera_fail = 1 - else if(iscyborg(user)) - var/list/viewing = viewers(src) - if(!viewing.Find(user)) - camera_fail = 1 - else if(!issilicon(user)) - if(!Adjacent(user)) - camera_fail = 1 - - if(camera_fail) - user.unset_machine() - return 0 - - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) - if(isAI(user)) - var/mob/living/silicon/ai/A = user - A.eyeobj.setLoc(get_turf(C)) - A.client.eye = A.eyeobj - else - user.reset_perspective(C) - user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) - user.clear_fullscreen("flash", 5) - watchers[user] = C - use_power(50) - addtimer(CALLBACK(src, .proc/use_camera_console, user), 5) - else - user.unset_machine() - -//returns the list of cameras accessible from this computer -/obj/machinery/computer/security/proc/get_available_cameras() - var/list/L = list() - for (var/obj/machinery/camera/C in GLOB.cameranet.cameras) - if((z > ZLEVEL_SPACEMAX || C.z > ZLEVEL_SPACEMAX) && (C.z != z))//if on away mission, can only recieve feed from same z_level cameras - continue - L.Add(C) - - camera_sort(L) - - var/list/D = list() - D["Cancel"] = "Cancel" - for(var/obj/machinery/camera/C in L) - if(!C.network) +/obj/machinery/computer/security + name = "security camera console" + desc = "Used to access the various cameras on the station." + icon_screen = "cameras" + icon_keyboard = "security_key" + circuit = /obj/item/weapon/circuitboard/computer/security + var/last_pic = 1 + var/list/network = list("SS13") + var/mapping = 0//For the overview file, interesting bit of code. + var/list/watchers = list() //who's using the console, associated with the camera they're on. + + light_color = LIGHT_COLOR_RED + +/obj/machinery/computer/security/check_eye(mob/user) + if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind ) + user.unset_machine() + return + if(!(user in watchers)) + user.unset_machine() + return + if(!watchers[user]) + user.unset_machine() + return + var/obj/machinery/camera/C = watchers[user] + if(!C.can_use()) + user.unset_machine() + return + if(!issilicon(user)) + if(!Adjacent(user)) + user.unset_machine() + return + else if(iscyborg(user)) + var/list/viewing = viewers(src) + if(!viewing.Find(user)) + user.unset_machine() + +/obj/machinery/computer/security/on_unset_machine(mob/user) + watchers.Remove(user) + user.reset_perspective(null) + +/obj/machinery/computer/security/Destroy() + if(watchers.len) + for(var/mob/M in watchers) + M.unset_machine() //to properly reset the view of the users if the console is deleted. + return ..() + +/obj/machinery/computer/security/attack_hand(mob/user) + if(stat) + return + if (!network) + throw EXCEPTION("No camera network") + user.unset_machine() + return + if (!(islist(network))) + throw EXCEPTION("Camera network is not a list") + user.unset_machine() + return + if(..()) + user.unset_machine() + return + + var/list/camera_list = get_available_cameras() + if(!(user in watchers)) + for(var/Num in camera_list) + var/obj/machinery/camera/CAM = camera_list[Num] + if(istype(CAM)) + if(CAM.can_use()) + watchers[user] = CAM //let's give the user the first usable camera, and then let him change to the camera he wants. + break + if(!(user in watchers)) + user.unset_machine() // no usable camera on the network, we disconnect the user from the computer. + return + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) + use_camera_console(user) + +/obj/machinery/computer/security/proc/use_camera_console(mob/user) + var/list/camera_list = get_available_cameras() + var/t = input(user, "Which camera should you change to?") as null|anything in camera_list + if(user.machine != src) //while we were choosing we got disconnected from our computer or are using another machine. + return + if(!t) + user.unset_machine() + playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) + return + + var/obj/machinery/camera/C = camera_list[t] + + if(t == "Cancel") + user.unset_machine() + playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) + return + if(C) + var/camera_fail = 0 + if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated()) + camera_fail = 1 + else if(iscyborg(user)) + var/list/viewing = viewers(src) + if(!viewing.Find(user)) + camera_fail = 1 + else if(!issilicon(user)) + if(!Adjacent(user)) + camera_fail = 1 + + if(camera_fail) + user.unset_machine() + return 0 + + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) + if(isAI(user)) + var/mob/living/silicon/ai/A = user + A.eyeobj.setLoc(get_turf(C)) + A.client.eye = A.eyeobj + else + user.reset_perspective(C) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) + user.clear_fullscreen("flash", 5) + watchers[user] = C + use_power(50) + addtimer(CALLBACK(src, .proc/use_camera_console, user), 5) + else + user.unset_machine() + +//returns the list of cameras accessible from this computer +/obj/machinery/computer/security/proc/get_available_cameras() + var/list/L = list() + for (var/obj/machinery/camera/C in GLOB.cameranet.cameras) + if((z > ZLEVEL_SPACEMAX || C.z > ZLEVEL_SPACEMAX) && (C.z != z))//if on away mission, can only recieve feed from same z_level cameras + continue + L.Add(C) + + camera_sort(L) + + var/list/D = list() + D["Cancel"] = "Cancel" + for(var/obj/machinery/camera/C in L) + if(!C.network) stack_trace("Camera in a cameranet has no camera network") - continue - if(!(istype(C.network,/list))) + continue + if(!(islist(C.network))) stack_trace("Camera in a cameranet has a non-list camera network") - continue - var/list/tempnetwork = C.network&network - if(tempnetwork.len) - D["[C.c_tag][(C.status ? null : " (Deactivated)")]"] = C - return D - -/obj/machinery/computer/security/telescreen - name = "\improper Telescreen" - desc = "Used for watching an empty arena." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "telescreen" - network = list("thunder") - density = 0 - circuit = null - clockwork = TRUE //it'd look very weird - - light_power = 0 - -/obj/machinery/computer/security/telescreen/update_icon() - icon_state = initial(icon_state) - if(stat & BROKEN) - icon_state += "b" - return - -/obj/machinery/computer/security/telescreen/entertainment - name = "entertainment monitor" - desc = "Damn, they better have the /tg/ channel on these things." - icon = 'icons/obj/status_display.dmi' - icon_state = "entertainment" - network = list("thunder") - density = 0 - circuit = null - -/obj/machinery/computer/security/wooden_tv - name = "security camera monitor" - desc = "An old TV hooked into the stations camera network." - icon_state = "television" - icon_keyboard = null - icon_screen = "detective_tv" - clockwork = TRUE //it'd look weird - - -/obj/machinery/computer/security/mining - name = "outpost camera console" - desc = "Used to access the various cameras on the outpost." - icon_screen = "mining" - icon_keyboard = "mining_key" - network = list("MINE") - circuit = /obj/item/weapon/circuitboard/computer/mining + continue + var/list/tempnetwork = C.network&network + if(tempnetwork.len) + D["[C.c_tag][(C.status ? null : " (Deactivated)")]"] = C + return D + +/obj/machinery/computer/security/telescreen + name = "\improper Telescreen" + desc = "Used for watching an empty arena." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "telescreen" + network = list("thunder") + density = 0 + circuit = null + clockwork = TRUE //it'd look very weird + + light_power = 0 + +/obj/machinery/computer/security/telescreen/update_icon() + icon_state = initial(icon_state) + if(stat & BROKEN) + icon_state += "b" + return + +/obj/machinery/computer/security/telescreen/entertainment + name = "entertainment monitor" + desc = "Damn, they better have the /tg/ channel on these things." + icon = 'icons/obj/status_display.dmi' + icon_state = "entertainment" + network = list("thunder") + density = 0 + circuit = null + +/obj/machinery/computer/security/wooden_tv + name = "security camera monitor" + desc = "An old TV hooked into the stations camera network." + icon_state = "television" + icon_keyboard = null + icon_screen = "detective_tv" + clockwork = TRUE //it'd look weird + + +/obj/machinery/computer/security/mining + name = "outpost camera console" + desc = "Used to access the various cameras on the outpost." + icon_screen = "mining" + icon_keyboard = "mining_key" + network = list("MINE") + circuit = /obj/item/weapon/circuitboard/computer/mining diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index dcf5ec426b..edce17b82a 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -13,6 +13,9 @@ light_color = LIGHT_COLOR_RED +/obj/machinery/computer/camera_advanced/syndie + icon_keyboard = "syndie_key" + /obj/machinery/computer/camera_advanced/proc/CreateEye() eyeobj = new() eyeobj.origin = src diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 097f9232d8..5803fc5c52 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -50,7 +50,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) . = ..() change_position_cooldown = config.id_console_jobslot_delay - /obj/machinery/computer/card/attackby(obj/O, mob/user, params)//TODO:SANITY if(istype(O, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/idcard = O diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 9e367d43b1..5954aed10b 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -439,7 +439,7 @@ if(iscarbon(mob_occupant)) var/mob/living/carbon/C = mob_occupant dna = C.has_dna() - if(istype(mob_occupant, /mob/living/brain)) + if(isbrain(mob_occupant)) var/mob/living/brain/B = mob_occupant dna = B.stored_dna diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 8bfbbd1348..82769eb3e1 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -1,695 +1,695 @@ -// The communications computer -/obj/machinery/computer/communications - name = "communications console" +// The communications computer +/obj/machinery/computer/communications + name = "communications console" desc = "A console used for high-priority announcements and emergencies." - icon_screen = "comm" - icon_keyboard = "tech_key" - req_access = list(GLOB.access_heads) - circuit = /obj/item/weapon/circuitboard/computer/communications - var/authenticated = 0 - var/auth_id = "Unknown" //Who is currently logged in? - var/list/messagetitle = list() - var/list/messagetext = list() - var/currmsg = 0 - var/aicurrmsg = 0 - var/state = STATE_DEFAULT - var/aistate = STATE_DEFAULT - var/message_cooldown = 0 - var/ai_message_cooldown = 0 - var/tmp_alertlevel = 0 - var/const/STATE_DEFAULT = 1 - var/const/STATE_CALLSHUTTLE = 2 - var/const/STATE_CANCELSHUTTLE = 3 - var/const/STATE_MESSAGELIST = 4 - var/const/STATE_VIEWMESSAGE = 5 - var/const/STATE_DELMESSAGE = 6 - var/const/STATE_STATUSDISPLAY = 7 - var/const/STATE_ALERT_LEVEL = 8 - var/const/STATE_CONFIRM_LEVEL = 9 - var/const/STATE_TOGGLE_EMERGENCY = 10 - var/const/STATE_PURCHASE = 11 - - var/status_display_freq = "1435" - var/stat_msg1 - var/stat_msg2 - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/communications/proc/checkCCcooldown() - var/obj/item/weapon/circuitboard/computer/communications/CM = circuit - if(CM.lastTimeUsed + 600 > world.time) - return FALSE - return TRUE - -/obj/machinery/computer/communications/New() - GLOB.shuttle_caller_list += src - ..() - -/obj/machinery/computer/communications/process() - if(..()) - if(state != STATE_STATUSDISPLAY) - src.updateDialog() - - -/obj/machinery/computer/communications/Topic(href, href_list) - if(..()) - return + icon_screen = "comm" + icon_keyboard = "tech_key" + req_access = list(GLOB.access_heads) + circuit = /obj/item/weapon/circuitboard/computer/communications + var/authenticated = 0 + var/auth_id = "Unknown" //Who is currently logged in? + var/list/messagetitle = list() + var/list/messagetext = list() + var/currmsg = 0 + var/aicurrmsg = 0 + var/state = STATE_DEFAULT + var/aistate = STATE_DEFAULT + var/message_cooldown = 0 + var/ai_message_cooldown = 0 + var/tmp_alertlevel = 0 + var/const/STATE_DEFAULT = 1 + var/const/STATE_CALLSHUTTLE = 2 + var/const/STATE_CANCELSHUTTLE = 3 + var/const/STATE_MESSAGELIST = 4 + var/const/STATE_VIEWMESSAGE = 5 + var/const/STATE_DELMESSAGE = 6 + var/const/STATE_STATUSDISPLAY = 7 + var/const/STATE_ALERT_LEVEL = 8 + var/const/STATE_CONFIRM_LEVEL = 9 + var/const/STATE_TOGGLE_EMERGENCY = 10 + var/const/STATE_PURCHASE = 11 + + var/status_display_freq = "1435" + var/stat_msg1 + var/stat_msg2 + + light_color = LIGHT_COLOR_BLUE + +/obj/machinery/computer/communications/proc/checkCCcooldown() + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit + if(CM.lastTimeUsed + 600 > world.time) + return FALSE + return TRUE + +/obj/machinery/computer/communications/New() + GLOB.shuttle_caller_list += src + ..() + +/obj/machinery/computer/communications/process() + if(..()) + if(state != STATE_STATUSDISPLAY) + src.updateDialog() + + +/obj/machinery/computer/communications/Topic(href, href_list) + if(..()) + return if (z != ZLEVEL_STATION && z != ZLEVEL_CENTCOM) //Can only use on centcom and SS13 - to_chat(usr, "Unable to establish a connection: \black You're too far away from the station!") - return - usr.set_machine(src) - - if(!href_list["operation"]) - return - var/obj/item/weapon/circuitboard/computer/communications/CM = circuit - switch(href_list["operation"]) - // main interface - if("main") - src.state = STATE_DEFAULT - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - if("login") - var/mob/M = usr - - var/obj/item/weapon/card/id/I = M.get_active_held_item() - if(!istype(I)) - I = M.get_idcard() - - if(I && istype(I)) - if(src.check_access(I)) - authenticated = 1 - auth_id = "[I.registered_name] ([I.assignment])" - if((20 in I.access)) - authenticated = 2 - playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) - if(src.emagged) - authenticated = 2 - auth_id = "Unknown" - to_chat(M, "[src] lets out a quiet alarm as its login is overriden.") - playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) - playsound(src, 'sound/machines/terminal_alert.ogg', 25, 0) - if(prob(25)) - for(var/mob/living/silicon/ai/AI in active_ais()) - AI << sound('sound/machines/terminal_alert.ogg', volume = 10) //Very quiet for balance reasons - if("logout") - authenticated = 0 - playsound(src, 'sound/machines/terminal_off.ogg', 50, 0) - - if("swipeidseclevel") - var/mob/M = usr - var/obj/item/weapon/card/id/I = M.get_active_held_item() - if (istype(I, /obj/item/device/pda)) - var/obj/item/device/pda/pda = I - I = pda.id - if (I && istype(I)) - if(GLOB.access_captain in I.access) - var/old_level = GLOB.security_level - if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this - set_security_level(tmp_alertlevel) - if(GLOB.security_level != old_level) - to_chat(usr, "Authorization confirmed. Modifying security level.") - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - //Only notify the admins if an actual change happened - log_game("[key_name(usr)] has changed the security level to [get_security_level()].") - message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") - switch(GLOB.security_level) - if(SEC_LEVEL_GREEN) + to_chat(usr, "Unable to establish a connection: \black You're too far away from the station!") + return + usr.set_machine(src) + + if(!href_list["operation"]) + return + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit + switch(href_list["operation"]) + // main interface + if("main") + src.state = STATE_DEFAULT + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + if("login") + var/mob/M = usr + + var/obj/item/weapon/card/id/I = M.get_active_held_item() + if(!istype(I)) + I = M.get_idcard() + + if(I && istype(I)) + if(src.check_access(I)) + authenticated = 1 + auth_id = "[I.registered_name] ([I.assignment])" + if((20 in I.access)) + authenticated = 2 + playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) + if(src.emagged) + authenticated = 2 + auth_id = "Unknown" + to_chat(M, "[src] lets out a quiet alarm as its login is overriden.") + playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_alert.ogg', 25, 0) + if(prob(25)) + for(var/mob/living/silicon/ai/AI in active_ais()) + AI << sound('sound/machines/terminal_alert.ogg', volume = 10) //Very quiet for balance reasons + if("logout") + authenticated = 0 + playsound(src, 'sound/machines/terminal_off.ogg', 50, 0) + + if("swipeidseclevel") + var/mob/M = usr + var/obj/item/weapon/card/id/I = M.get_active_held_item() + if (istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/pda = I + I = pda.id + if (I && istype(I)) + if(GLOB.access_captain in I.access) + var/old_level = GLOB.security_level + if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this + set_security_level(tmp_alertlevel) + if(GLOB.security_level != old_level) + to_chat(usr, "Authorization confirmed. Modifying security level.") + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + //Only notify the admins if an actual change happened + log_game("[key_name(usr)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") + switch(GLOB.security_level) + if(SEC_LEVEL_GREEN) SSblackbox.inc("alert_comms_green",1) - if(SEC_LEVEL_BLUE) + if(SEC_LEVEL_BLUE) SSblackbox.inc("alert_comms_blue",1) - tmp_alertlevel = 0 - else - to_chat(usr, "You are not authorized to do this!") - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - tmp_alertlevel = 0 - state = STATE_DEFAULT - else - to_chat(usr, "You need to swipe your ID!") - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - - if("announce") - if(src.authenticated==2) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - make_announcement(usr) - - if("crossserver") - if(authenticated==2) - if(CM.lastTimeUsed + 600 > world.time) - to_chat(usr, "Arrays recycling. Please stand by.") - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - var/input = stripped_multiline_input(usr, "Please choose a message to transmit to an allied station. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") - if(!input || !(usr in view(1,src))) - return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - send2otherserver("[station_name()]", input,"Comms_Console") - minor_announce(input, title = "Outgoing message to allied station") - log_say("[key_name(usr)] has sent a message to the other server: [input]") - message_admins("[key_name_admin(usr)] has sent a message to the other server.") - CM.lastTimeUsed = world.time - - if("purchase_menu") - state = STATE_PURCHASE - - if("buyshuttle") - if(authenticated==2) - var/list/shuttles = flatten_list(SSmapping.shuttle_templates) - var/datum/map_template/shuttle/S = locate(href_list["chosen_shuttle"]) in shuttles - if(S && istype(S)) - if(SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_IDLE) - to_chat(usr, "It's a bit late to buy a new shuttle, don't you think?") - return - if(SSshuttle.shuttle_purchased) - to_chat(usr, "A replacement shuttle has already been purchased.") - else if(!S.prerequisites_met()) - to_chat(usr, "You have not met the requirements for purchasing this shuttle.") - else - if(SSshuttle.points >= S.credit_cost) - var/obj/machinery/shuttle_manipulator/M = locate() in GLOB.machines - if(M) - SSshuttle.shuttle_purchased = TRUE - M.unload_preview() - M.load_template(S) - M.existing_shuttle = SSshuttle.emergency - M.action_load(S) - SSshuttle.points -= S.credit_cost - minor_announce("[usr.name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase") - message_admins("[key_name_admin(usr)] purchased [S.name].") + tmp_alertlevel = 0 + else + to_chat(usr, "You are not authorized to do this!") + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + tmp_alertlevel = 0 + state = STATE_DEFAULT + else + to_chat(usr, "You need to swipe your ID!") + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + + if("announce") + if(src.authenticated==2) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + make_announcement(usr) + + if("crossserver") + if(authenticated==2) + if(CM.lastTimeUsed + 600 > world.time) + to_chat(usr, "Arrays recycling. Please stand by.") + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + var/input = stripped_multiline_input(usr, "Please choose a message to transmit to an allied station. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") + if(!input || !(usr in view(1,src))) + return + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + send2otherserver("[station_name()]", input,"Comms_Console") + minor_announce(input, title = "Outgoing message to allied station") + log_say("[key_name(usr)] has sent a message to the other server: [input]") + message_admins("[key_name_admin(usr)] has sent a message to the other server.") + CM.lastTimeUsed = world.time + + if("purchase_menu") + state = STATE_PURCHASE + + if("buyshuttle") + if(authenticated==2) + var/list/shuttles = flatten_list(SSmapping.shuttle_templates) + var/datum/map_template/shuttle/S = locate(href_list["chosen_shuttle"]) in shuttles + if(S && istype(S)) + if(SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_IDLE) + to_chat(usr, "It's a bit late to buy a new shuttle, don't you think?") + return + if(SSshuttle.shuttle_purchased) + to_chat(usr, "A replacement shuttle has already been purchased.") + else if(!S.prerequisites_met()) + to_chat(usr, "You have not met the requirements for purchasing this shuttle.") + else + if(SSshuttle.points >= S.credit_cost) + var/obj/machinery/shuttle_manipulator/M = locate() in GLOB.machines + if(M) + SSshuttle.shuttle_purchased = TRUE + M.unload_preview() + M.load_template(S) + M.existing_shuttle = SSshuttle.emergency + M.action_load(S) + SSshuttle.points -= S.credit_cost + minor_announce("[usr.name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase") + message_admins("[key_name_admin(usr)] purchased [S.name].") SSblackbox.add_details("shuttle_purchase", S.name) - else - to_chat(usr, "Something went wrong! The shuttle exchange system seems to be down.") - else - to_chat(usr, "Not enough credits.") - - if("callshuttle") - src.state = STATE_DEFAULT - if(src.authenticated) - src.state = STATE_CALLSHUTTLE - if("callshuttle2") - if(src.authenticated) - SSshuttle.requestEvac(usr, href_list["call"]) - if(SSshuttle.emergency.timer) - post_status("shuttle") - src.state = STATE_DEFAULT - if("cancelshuttle") - src.state = STATE_DEFAULT - if(src.authenticated) - src.state = STATE_CANCELSHUTTLE - if("cancelshuttle2") - if(src.authenticated) - SSshuttle.cancelEvac(usr) - src.state = STATE_DEFAULT - if("messagelist") - src.currmsg = 0 - src.state = STATE_MESSAGELIST - if("viewmessage") - src.state = STATE_VIEWMESSAGE - if (!src.currmsg) - if(href_list["message-num"]) - src.currmsg = text2num(href_list["message-num"]) - else - src.state = STATE_MESSAGELIST - if("delmessage") - src.state = (src.currmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST - if("delmessage2") - if(src.authenticated) - if(src.currmsg) - var/title = src.messagetitle[src.currmsg] - var/text = src.messagetext[src.currmsg] - src.messagetitle.Remove(title) - src.messagetext.Remove(text) - if(src.currmsg == src.aicurrmsg) - src.aicurrmsg = 0 - src.currmsg = 0 - src.state = STATE_MESSAGELIST - else - src.state = STATE_VIEWMESSAGE - if("status") - src.state = STATE_STATUSDISPLAY - - if("securitylevel") - src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) - if(!tmp_alertlevel) tmp_alertlevel = 0 - state = STATE_CONFIRM_LEVEL - if("changeseclevel") - state = STATE_ALERT_LEVEL - - if("emergencyaccess") - state = STATE_TOGGLE_EMERGENCY - if("enableemergency") - make_maint_all_access() - log_game("[key_name(usr)] enabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") - src.state = STATE_DEFAULT - if("disableemergency") - revoke_maint_all_access() - log_game("[key_name(usr)] disabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") - src.state = STATE_DEFAULT - - // Status display stuff - if("setstat") - playsound(src, "terminal_type", 50, 0) - switch(href_list["statdisp"]) - if("message") - post_status("message", stat_msg1, stat_msg2) - if("alert") - post_status("alert", href_list["alert"]) - else - post_status(href_list["statdisp"]) - - if("setmsg1") - stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40) - src.updateDialog() - if("setmsg2") - stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40) - src.updateDialog() - - // OMG CENTCOM LETTERHEAD - if("MessageCentcomm") - if(src.authenticated==2) - if(!checkCCcooldown()) - to_chat(usr, "Arrays recycling. Please stand by.") - return - var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "") - if(!input || !(usr in view(1,src)) || !checkCCcooldown()) - return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - Centcomm_announce(input, usr) - to_chat(usr, "Message transmitted to Central Command.") - log_say("[key_name(usr)] has made a Centcom announcement: [input]") - CM.lastTimeUsed = world.time - - - // OMG SYNDICATE ...LETTERHEAD - if("MessageSyndicate") - if((src.authenticated==2) && (src.emagged)) - if(!checkCCcooldown()) - to_chat(usr, "Arrays recycling. Please stand by.") - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to /??????/.", "") - if(!input || !(usr in view(1,src)) || !checkCCcooldown()) - return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - Syndicate_announce(input, usr) - to_chat(usr, "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.") - log_say("[key_name(usr)] has made a Syndicate announcement: [input]") - CM.lastTimeUsed = world.time - - if("RestoreBackup") - to_chat(usr, "Backup routing data restored!") - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - src.emagged = 0 - src.updateDialog() - - if("nukerequest") //When there's no other way - if(src.authenticated==2) - if(!checkCCcooldown()) - to_chat(usr, "Arrays recycling. Please stand by.") - return - var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") - if(!input || !(usr in view(1,src)) || !checkCCcooldown()) - return - Nuke_request(input, usr) - to_chat(usr, "Request sent.") - log_say("[key_name(usr)] has requested the nuclear codes from Centcomm") - priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg') - CM.lastTimeUsed = world.time - - - // AI interface - if("ai-main") - src.aicurrmsg = 0 - src.aistate = STATE_DEFAULT - if("ai-callshuttle") - src.aistate = STATE_CALLSHUTTLE - if("ai-callshuttle2") - SSshuttle.requestEvac(usr, href_list["call"]) - src.aistate = STATE_DEFAULT - if("ai-messagelist") - src.aicurrmsg = 0 - src.aistate = STATE_MESSAGELIST - if("ai-viewmessage") - src.aistate = STATE_VIEWMESSAGE - if (!src.aicurrmsg) - if(href_list["message-num"]) - src.aicurrmsg = text2num(href_list["message-num"]) - else - src.aistate = STATE_MESSAGELIST - if("ai-delmessage") - src.aistate = (src.aicurrmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST - if("ai-delmessage2") - if(src.aicurrmsg) - var/title = src.messagetitle[src.aicurrmsg] - var/text = src.messagetext[src.aicurrmsg] - src.messagetitle.Remove(title) - src.messagetext.Remove(text) - if(src.currmsg == src.aicurrmsg) - src.currmsg = 0 - src.aicurrmsg = 0 - src.aistate = STATE_MESSAGELIST - if("ai-status") - src.aistate = STATE_STATUSDISPLAY - if("ai-announce") - make_announcement(usr, 1) - if("ai-securitylevel") - src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) - if(!tmp_alertlevel) tmp_alertlevel = 0 - var/old_level = GLOB.security_level - if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this - set_security_level(tmp_alertlevel) - if(GLOB.security_level != old_level) - //Only notify the admins if an actual change happened - log_game("[key_name(usr)] has changed the security level to [get_security_level()].") - message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") - switch(GLOB.security_level) - if(SEC_LEVEL_GREEN) + else + to_chat(usr, "Something went wrong! The shuttle exchange system seems to be down.") + else + to_chat(usr, "Not enough credits.") + + if("callshuttle") + src.state = STATE_DEFAULT + if(src.authenticated) + src.state = STATE_CALLSHUTTLE + if("callshuttle2") + if(src.authenticated) + SSshuttle.requestEvac(usr, href_list["call"]) + if(SSshuttle.emergency.timer) + post_status("shuttle") + src.state = STATE_DEFAULT + if("cancelshuttle") + src.state = STATE_DEFAULT + if(src.authenticated) + src.state = STATE_CANCELSHUTTLE + if("cancelshuttle2") + if(src.authenticated) + SSshuttle.cancelEvac(usr) + src.state = STATE_DEFAULT + if("messagelist") + src.currmsg = 0 + src.state = STATE_MESSAGELIST + if("viewmessage") + src.state = STATE_VIEWMESSAGE + if (!src.currmsg) + if(href_list["message-num"]) + src.currmsg = text2num(href_list["message-num"]) + else + src.state = STATE_MESSAGELIST + if("delmessage") + src.state = (src.currmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + if("delmessage2") + if(src.authenticated) + if(src.currmsg) + var/title = src.messagetitle[src.currmsg] + var/text = src.messagetext[src.currmsg] + src.messagetitle.Remove(title) + src.messagetext.Remove(text) + if(src.currmsg == src.aicurrmsg) + src.aicurrmsg = 0 + src.currmsg = 0 + src.state = STATE_MESSAGELIST + else + src.state = STATE_VIEWMESSAGE + if("status") + src.state = STATE_STATUSDISPLAY + + if("securitylevel") + src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + if(!tmp_alertlevel) tmp_alertlevel = 0 + state = STATE_CONFIRM_LEVEL + if("changeseclevel") + state = STATE_ALERT_LEVEL + + if("emergencyaccess") + state = STATE_TOGGLE_EMERGENCY + if("enableemergency") + make_maint_all_access() + log_game("[key_name(usr)] enabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") + src.state = STATE_DEFAULT + if("disableemergency") + revoke_maint_all_access() + log_game("[key_name(usr)] disabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") + src.state = STATE_DEFAULT + + // Status display stuff + if("setstat") + playsound(src, "terminal_type", 50, 0) + switch(href_list["statdisp"]) + if("message") + post_status("message", stat_msg1, stat_msg2) + if("alert") + post_status("alert", href_list["alert"]) + else + post_status(href_list["statdisp"]) + + if("setmsg1") + stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40) + src.updateDialog() + if("setmsg2") + stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40) + src.updateDialog() + + // OMG CENTCOM LETTERHEAD + if("MessageCentcomm") + if(src.authenticated==2) + if(!checkCCcooldown()) + to_chat(usr, "Arrays recycling. Please stand by.") + return + var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "") + if(!input || !(usr in view(1,src)) || !checkCCcooldown()) + return + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + Centcomm_announce(input, usr) + to_chat(usr, "Message transmitted to Central Command.") + log_say("[key_name(usr)] has made a Centcom announcement: [input]") + CM.lastTimeUsed = world.time + + + // OMG SYNDICATE ...LETTERHEAD + if("MessageSyndicate") + if((src.authenticated==2) && (src.emagged)) + if(!checkCCcooldown()) + to_chat(usr, "Arrays recycling. Please stand by.") + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to /??????/.", "") + if(!input || !(usr in view(1,src)) || !checkCCcooldown()) + return + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + Syndicate_announce(input, usr) + to_chat(usr, "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.") + log_say("[key_name(usr)] has made a Syndicate announcement: [input]") + CM.lastTimeUsed = world.time + + if("RestoreBackup") + to_chat(usr, "Backup routing data restored!") + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + src.emagged = 0 + src.updateDialog() + + if("nukerequest") //When there's no other way + if(src.authenticated==2) + if(!checkCCcooldown()) + to_chat(usr, "Arrays recycling. Please stand by.") + return + var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") + if(!input || !(usr in view(1,src)) || !checkCCcooldown()) + return + Nuke_request(input, usr) + to_chat(usr, "Request sent.") + log_say("[key_name(usr)] has requested the nuclear codes from Centcomm") + priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/ai/commandreport.ogg') + CM.lastTimeUsed = world.time + + + // AI interface + if("ai-main") + src.aicurrmsg = 0 + src.aistate = STATE_DEFAULT + if("ai-callshuttle") + src.aistate = STATE_CALLSHUTTLE + if("ai-callshuttle2") + SSshuttle.requestEvac(usr, href_list["call"]) + src.aistate = STATE_DEFAULT + if("ai-messagelist") + src.aicurrmsg = 0 + src.aistate = STATE_MESSAGELIST + if("ai-viewmessage") + src.aistate = STATE_VIEWMESSAGE + if (!src.aicurrmsg) + if(href_list["message-num"]) + src.aicurrmsg = text2num(href_list["message-num"]) + else + src.aistate = STATE_MESSAGELIST + if("ai-delmessage") + src.aistate = (src.aicurrmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + if("ai-delmessage2") + if(src.aicurrmsg) + var/title = src.messagetitle[src.aicurrmsg] + var/text = src.messagetext[src.aicurrmsg] + src.messagetitle.Remove(title) + src.messagetext.Remove(text) + if(src.currmsg == src.aicurrmsg) + src.currmsg = 0 + src.aicurrmsg = 0 + src.aistate = STATE_MESSAGELIST + if("ai-status") + src.aistate = STATE_STATUSDISPLAY + if("ai-announce") + make_announcement(usr, 1) + if("ai-securitylevel") + src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + if(!tmp_alertlevel) tmp_alertlevel = 0 + var/old_level = GLOB.security_level + if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this + set_security_level(tmp_alertlevel) + if(GLOB.security_level != old_level) + //Only notify the admins if an actual change happened + log_game("[key_name(usr)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") + switch(GLOB.security_level) + if(SEC_LEVEL_GREEN) SSblackbox.inc("alert_comms_green",1) - if(SEC_LEVEL_BLUE) + if(SEC_LEVEL_BLUE) SSblackbox.inc("alert_comms_blue",1) - tmp_alertlevel = 0 - src.aistate = STATE_DEFAULT - if("ai-changeseclevel") - src.aistate = STATE_ALERT_LEVEL - - if("ai-emergencyaccess") - src.aistate = STATE_TOGGLE_EMERGENCY - if("ai-enableemergency") - make_maint_all_access() - log_game("[key_name(usr)] enabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") - src.aistate = STATE_DEFAULT - if("ai-disableemergency") - revoke_maint_all_access() - log_game("[key_name(usr)] disabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") - src.aistate = STATE_DEFAULT - - src.updateUsrDialog() - -/obj/machinery/computer/communications/attackby(obj/I, mob/user, params) - if(istype(I, /obj/item/weapon/card/id)) - attack_hand(user) - else - return ..() - -/obj/machinery/computer/communications/emag_act(mob/user) - if(!emagged) - src.emagged = 1 - if(authenticated == 1) - authenticated = 2 - to_chat(user, "You scramble the communication routing circuits!") - playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) - -/obj/machinery/computer/communications/attack_hand(mob/user) - if(..()) - return - if (src.z > 6) - to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") - return - - user.set_machine(src) - var/dat = "" - if(SSshuttle.emergency.mode == SHUTTLE_CALL) - var/timeleft = SSshuttle.emergency.timeLeft() - dat += "Emergency shuttle\n
    \nETA: [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]" - - - var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - - if(issilicon(user)) - var/dat2 = src.interact_ai(user) // give the AI a different interact proc to limit its access - if(dat2) - dat += dat2 - popup.set_content(dat) - popup.open() - return - - switch(src.state) - if(STATE_DEFAULT) - if (src.authenticated) - if(SSshuttle.emergencyCallAmount) - if(SSshuttle.emergencyLastCallLoc) - dat += "Most recent shuttle call/recall traced to: [format_text(SSshuttle.emergencyLastCallLoc.name)]
    " - else - dat += "Unable to trace most recent shuttle call/recall signal.
    " - dat += "Logged in as: [auth_id]" - dat += "
    " - dat += "
    \[ Log Out \]
    " - dat += "
    General Functions" - dat += "
    \[ Message List \]" - switch(SSshuttle.emergency.mode) - if(SHUTTLE_IDLE, SHUTTLE_RECALL) - dat += "
    \[ Call Emergency Shuttle \]" - else - dat += "
    \[ Cancel Shuttle Call \]" - - dat += "
    \[ Set Status Display \]" - if (src.authenticated==2) - dat += "

    Captain Functions" - dat += "
    \[ Make a Captain's Announcement \]" - if(config.cross_allowed) - dat += "
    \[ Send a message to an allied station \]" - dat += "
    \[ Purchase Shuttle \]" - dat += "
    \[ Change Alert Level \]" - dat += "
    \[ Emergency Maintenance Access \]" - dat += "
    \[ Request Nuclear Authentication Codes \]" - if(src.emagged == 0) - dat += "
    \[ Send Message to Centcom \]" - else - dat += "
    \[ Send Message to \[UNKNOWN\] \]" - dat += "
    \[ Restore Backup Routing Data \]" - else - dat += "
    \[ Log In \]" - if(STATE_CALLSHUTTLE) - dat += get_call_shuttle_form() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - if(STATE_CANCELSHUTTLE) - dat += get_cancel_shuttle_form() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - if(STATE_MESSAGELIST) - dat += "Messages:" - for(var/i = 1; i<=src.messagetitle.len; i++) - dat += "
    [src.messagetitle[i]]" - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - if(STATE_VIEWMESSAGE) - if (src.currmsg) - dat += "[src.messagetitle[src.currmsg]]

    [src.messagetext[src.currmsg]]" - if (src.authenticated) - dat += "

    \[ Delete \]" - else - src.state = STATE_MESSAGELIST - src.attack_hand(user) - return - if(STATE_DELMESSAGE) - if (src.currmsg) - dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" - else - src.state = STATE_MESSAGELIST - src.attack_hand(user) - return - if(STATE_STATUSDISPLAY) - dat += "Set Status Displays
    " - dat += "\[ Clear \]
    " - dat += "\[ Shuttle ETA \]
    " - dat += "\[ Message \]" - dat += "
    " - dat += "\[ Alert: None |" - dat += " Red Alert |" - dat += " Lockdown |" - dat += " Biohazard \]

    " - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - if(STATE_ALERT_LEVEL) - dat += "Current alert level: [get_security_level()]
    " - if(GLOB.security_level == SEC_LEVEL_DELTA) - dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." - else - dat += "Blue
    " - dat += "Green" - if(STATE_CONFIRM_LEVEL) - dat += "Current alert level: [get_security_level()]
    " - dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]
    " - dat += "Swipe ID to confirm change.
    " - if(STATE_TOGGLE_EMERGENCY) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - if(GLOB.emergency_access == 1) - dat += "Emergency Maintenance Access is currently ENABLED" - dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" - else - dat += "Emergency Maintenance Access is currently DISABLED" - dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" - - if(STATE_PURCHASE) - dat += "Budget: [SSshuttle.points] Credits.
    " - for(var/shuttle_id in SSmapping.shuttle_templates) - var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[shuttle_id] - if(S.can_be_bought && S.credit_cost < INFINITY) - dat += "[S.name] | [S.credit_cost] Credits
    " - dat += "[S.description]
    " - if(S.prerequisites) - dat += "Prerequisites: [S.prerequisites]
    " - dat += "(Purchase)

    " - - dat += "

    \[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" - - popup.set_content(dat) - popup.open() - popup.set_content(dat) - popup.open() - -/obj/machinery/computer/communications/proc/get_javascript_header(form_id) - var/dat = {""} - return dat - -/obj/machinery/computer/communications/proc/get_call_shuttle_form(ai_interface = 0) - var/form_id = "callshuttle" - var/dat = get_javascript_header(form_id) - dat += "
    " - dat += "" - dat += "" - dat += "Nature of emergency:
    " - dat += "
    Are you sure you want to call the shuttle? \[ Call \]" - return dat - -/obj/machinery/computer/communications/proc/get_cancel_shuttle_form() - var/form_id = "cancelshuttle" - var/dat = get_javascript_header(form_id) - dat += "" - dat += "" - dat += "" - - dat += "
    Are you sure you want to cancel the shuttle? \[ Cancel \]" - return dat - -/obj/machinery/computer/communications/proc/interact_ai(mob/living/silicon/ai/user) - var/dat = "" - switch(src.aistate) - if(STATE_DEFAULT) - if(SSshuttle.emergencyCallAmount) - if(SSshuttle.emergencyLastCallLoc) - dat += "Latest emergency signal trace attempt successful.
    Last signal origin: [format_text(SSshuttle.emergencyLastCallLoc.name)].
    " - else - dat += "Latest emergency signal trace attempt failed.
    " - if(authenticated) - dat += "Current login: [auth_id]" - else - dat += "Current login: None" - dat += "

    General Functions" - dat += "
    \[ Message List \]" - if(SSshuttle.emergency.mode == SHUTTLE_IDLE) - dat += "
    \[ Call Emergency Shuttle \]" - dat += "
    \[ Set Status Display \]" - dat += "

    Special Functions" - dat += "
    \[ Make an Announcement \]" - dat += "
    \[ Change Alert Level \]" - dat += "
    \[ Emergency Maintenance Access \]" - if(STATE_CALLSHUTTLE) - dat += get_call_shuttle_form(1) - if(STATE_MESSAGELIST) - dat += "Messages:" - for(var/i = 1; i<=src.messagetitle.len; i++) - dat += "
    [src.messagetitle[i]]" - if(STATE_VIEWMESSAGE) - if (src.aicurrmsg) - dat += "[src.messagetitle[src.aicurrmsg]]

    [src.messagetext[src.aicurrmsg]]" - dat += "

    \[ Delete \]" - else - src.aistate = STATE_MESSAGELIST - src.attack_hand(user) - return null - if(STATE_DELMESSAGE) - if(src.aicurrmsg) - dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" - else - src.aistate = STATE_MESSAGELIST - src.attack_hand(user) - return - - if(STATE_STATUSDISPLAY) - dat += "Set Status Displays
    " - dat += "\[ Clear \]
    " - dat += "\[ Shuttle ETA \]
    " - dat += "\[ Message \]" - dat += "
    " - dat += "\[ Alert: None |" - dat += " Red Alert |" - dat += " Lockdown |" - dat += " Biohazard \]

    " - - if(STATE_ALERT_LEVEL) - dat += "Current alert level: [get_security_level()]
    " - if(GLOB.security_level == SEC_LEVEL_DELTA) - dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." - else - dat += "Blue
    " - dat += "Green" - - if(STATE_TOGGLE_EMERGENCY) - if(GLOB.emergency_access == 1) - dat += "Emergency Maintenance Access is currently ENABLED" - dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" - else - dat += "Emergency Maintenance Access is currently DISABLED" - dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" - - dat += "

    \[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" - return dat - -/obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon) - if(!SScommunications.can_announce(user, is_silicon)) - to_chat(user, "Intercomms recharging. Please stand by.") - return - var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") - if(!input || !user.canUseTopic(src)) - return - SScommunications.make_announcement(user, is_silicon, input) - -/obj/machinery/computer/communications/proc/post_status(command, data1, data2) - - var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) - - if(!frequency) return - - var/datum/signal/status_signal = new - status_signal.source = src - status_signal.transmission_method = 1 - status_signal.data["command"] = command - - switch(command) - if("message") - status_signal.data["msg1"] = data1 - status_signal.data["msg2"] = data2 - if("alert") - status_signal.data["picture_state"] = data1 - - frequency.post_signal(src, status_signal) - - -/obj/machinery/computer/communications/Destroy() - GLOB.shuttle_caller_list -= src - SSshuttle.autoEvac() - return ..() - -/obj/machinery/computer/communications/proc/overrideCooldown() - var/obj/item/weapon/circuitboard/computer/communications/CM = circuit - CM.lastTimeUsed = 0 + tmp_alertlevel = 0 + src.aistate = STATE_DEFAULT + if("ai-changeseclevel") + src.aistate = STATE_ALERT_LEVEL + + if("ai-emergencyaccess") + src.aistate = STATE_TOGGLE_EMERGENCY + if("ai-enableemergency") + make_maint_all_access() + log_game("[key_name(usr)] enabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") + src.aistate = STATE_DEFAULT + if("ai-disableemergency") + revoke_maint_all_access() + log_game("[key_name(usr)] disabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") + src.aistate = STATE_DEFAULT + + src.updateUsrDialog() + +/obj/machinery/computer/communications/attackby(obj/I, mob/user, params) + if(istype(I, /obj/item/weapon/card/id)) + attack_hand(user) + else + return ..() + +/obj/machinery/computer/communications/emag_act(mob/user) + if(!emagged) + src.emagged = 1 + if(authenticated == 1) + authenticated = 2 + to_chat(user, "You scramble the communication routing circuits!") + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) + +/obj/machinery/computer/communications/attack_hand(mob/user) + if(..()) + return + if (src.z > 6) + to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") + return + + user.set_machine(src) + var/dat = "" + if(SSshuttle.emergency.mode == SHUTTLE_CALL) + var/timeleft = SSshuttle.emergency.timeLeft() + dat += "Emergency shuttle\n
    \nETA: [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]" + + + var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + + if(issilicon(user)) + var/dat2 = src.interact_ai(user) // give the AI a different interact proc to limit its access + if(dat2) + dat += dat2 + popup.set_content(dat) + popup.open() + return + + switch(src.state) + if(STATE_DEFAULT) + if (src.authenticated) + if(SSshuttle.emergencyCallAmount) + if(SSshuttle.emergencyLastCallLoc) + dat += "Most recent shuttle call/recall traced to: [format_text(SSshuttle.emergencyLastCallLoc.name)]
    " + else + dat += "Unable to trace most recent shuttle call/recall signal.
    " + dat += "Logged in as: [auth_id]" + dat += "
    " + dat += "
    \[ Log Out \]
    " + dat += "
    General Functions" + dat += "
    \[ Message List \]" + switch(SSshuttle.emergency.mode) + if(SHUTTLE_IDLE, SHUTTLE_RECALL) + dat += "
    \[ Call Emergency Shuttle \]" + else + dat += "
    \[ Cancel Shuttle Call \]" + + dat += "
    \[ Set Status Display \]" + if (src.authenticated==2) + dat += "

    Captain Functions" + dat += "
    \[ Make a Captain's Announcement \]" + if(config.cross_allowed) + dat += "
    \[ Send a message to an allied station \]" + dat += "
    \[ Purchase Shuttle \]" + dat += "
    \[ Change Alert Level \]" + dat += "
    \[ Emergency Maintenance Access \]" + dat += "
    \[ Request Nuclear Authentication Codes \]" + if(src.emagged == 0) + dat += "
    \[ Send Message to Centcom \]" + else + dat += "
    \[ Send Message to \[UNKNOWN\] \]" + dat += "
    \[ Restore Backup Routing Data \]" + else + dat += "
    \[ Log In \]" + if(STATE_CALLSHUTTLE) + dat += get_call_shuttle_form() + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + if(STATE_CANCELSHUTTLE) + dat += get_cancel_shuttle_form() + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + if(STATE_MESSAGELIST) + dat += "Messages:" + for(var/i = 1; i<=src.messagetitle.len; i++) + dat += "
    [src.messagetitle[i]]" + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + if(STATE_VIEWMESSAGE) + if (src.currmsg) + dat += "[src.messagetitle[src.currmsg]]

    [src.messagetext[src.currmsg]]" + if (src.authenticated) + dat += "

    \[ Delete \]" + else + src.state = STATE_MESSAGELIST + src.attack_hand(user) + return + if(STATE_DELMESSAGE) + if (src.currmsg) + dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" + else + src.state = STATE_MESSAGELIST + src.attack_hand(user) + return + if(STATE_STATUSDISPLAY) + dat += "Set Status Displays
    " + dat += "\[ Clear \]
    " + dat += "\[ Shuttle ETA \]
    " + dat += "\[ Message \]" + dat += "
    " + dat += "\[ Alert: None |" + dat += " Red Alert |" + dat += " Lockdown |" + dat += " Biohazard \]

    " + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + if(STATE_ALERT_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + if(GLOB.security_level == SEC_LEVEL_DELTA) + dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." + else + dat += "Blue
    " + dat += "Green" + if(STATE_CONFIRM_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]
    " + dat += "Swipe ID to confirm change.
    " + if(STATE_TOGGLE_EMERGENCY) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + if(GLOB.emergency_access == 1) + dat += "Emergency Maintenance Access is currently ENABLED" + dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" + else + dat += "Emergency Maintenance Access is currently DISABLED" + dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" + + if(STATE_PURCHASE) + dat += "Budget: [SSshuttle.points] Credits.
    " + for(var/shuttle_id in SSmapping.shuttle_templates) + var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[shuttle_id] + if(S.can_be_bought && S.credit_cost < INFINITY) + dat += "[S.name] | [S.credit_cost] Credits
    " + dat += "[S.description]
    " + if(S.prerequisites) + dat += "Prerequisites: [S.prerequisites]
    " + dat += "(Purchase)

    " + + dat += "

    \[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" + + popup.set_content(dat) + popup.open() + popup.set_content(dat) + popup.open() + +/obj/machinery/computer/communications/proc/get_javascript_header(form_id) + var/dat = {""} + return dat + +/obj/machinery/computer/communications/proc/get_call_shuttle_form(ai_interface = 0) + var/form_id = "callshuttle" + var/dat = get_javascript_header(form_id) + dat += "" + dat += "" + dat += "" + dat += "Nature of emergency:
    " + dat += "
    Are you sure you want to call the shuttle? \[ Call \]" + return dat + +/obj/machinery/computer/communications/proc/get_cancel_shuttle_form() + var/form_id = "cancelshuttle" + var/dat = get_javascript_header(form_id) + dat += "" + dat += "" + dat += "" + + dat += "
    Are you sure you want to cancel the shuttle? \[ Cancel \]" + return dat + +/obj/machinery/computer/communications/proc/interact_ai(mob/living/silicon/ai/user) + var/dat = "" + switch(src.aistate) + if(STATE_DEFAULT) + if(SSshuttle.emergencyCallAmount) + if(SSshuttle.emergencyLastCallLoc) + dat += "Latest emergency signal trace attempt successful.
    Last signal origin: [format_text(SSshuttle.emergencyLastCallLoc.name)].
    " + else + dat += "Latest emergency signal trace attempt failed.
    " + if(authenticated) + dat += "Current login: [auth_id]" + else + dat += "Current login: None" + dat += "

    General Functions" + dat += "
    \[ Message List \]" + if(SSshuttle.emergency.mode == SHUTTLE_IDLE) + dat += "
    \[ Call Emergency Shuttle \]" + dat += "
    \[ Set Status Display \]" + dat += "

    Special Functions" + dat += "
    \[ Make an Announcement \]" + dat += "
    \[ Change Alert Level \]" + dat += "
    \[ Emergency Maintenance Access \]" + if(STATE_CALLSHUTTLE) + dat += get_call_shuttle_form(1) + if(STATE_MESSAGELIST) + dat += "Messages:" + for(var/i = 1; i<=src.messagetitle.len; i++) + dat += "
    [src.messagetitle[i]]" + if(STATE_VIEWMESSAGE) + if (src.aicurrmsg) + dat += "[src.messagetitle[src.aicurrmsg]]

    [src.messagetext[src.aicurrmsg]]" + dat += "

    \[ Delete \]" + else + src.aistate = STATE_MESSAGELIST + src.attack_hand(user) + return null + if(STATE_DELMESSAGE) + if(src.aicurrmsg) + dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" + else + src.aistate = STATE_MESSAGELIST + src.attack_hand(user) + return + + if(STATE_STATUSDISPLAY) + dat += "Set Status Displays
    " + dat += "\[ Clear \]
    " + dat += "\[ Shuttle ETA \]
    " + dat += "\[ Message \]" + dat += "
    " + dat += "\[ Alert: None |" + dat += " Red Alert |" + dat += " Lockdown |" + dat += " Biohazard \]

    " + + if(STATE_ALERT_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + if(GLOB.security_level == SEC_LEVEL_DELTA) + dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." + else + dat += "Blue
    " + dat += "Green" + + if(STATE_TOGGLE_EMERGENCY) + if(GLOB.emergency_access == 1) + dat += "Emergency Maintenance Access is currently ENABLED" + dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" + else + dat += "Emergency Maintenance Access is currently DISABLED" + dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" + + dat += "

    \[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" + return dat + +/obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon) + if(!SScommunications.can_announce(user, is_silicon)) + to_chat(user, "Intercomms recharging. Please stand by.") + return + var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") + if(!input || !user.canUseTopic(src)) + return + SScommunications.make_announcement(user, is_silicon, input) + +/obj/machinery/computer/communications/proc/post_status(command, data1, data2) + + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) return + + var/datum/signal/status_signal = new + status_signal.source = src + status_signal.transmission_method = 1 + status_signal.data["command"] = command + + switch(command) + if("message") + status_signal.data["msg1"] = data1 + status_signal.data["msg2"] = data2 + if("alert") + status_signal.data["picture_state"] = data1 + + frequency.post_signal(src, status_signal) + + +/obj/machinery/computer/communications/Destroy() + GLOB.shuttle_caller_list -= src + SSshuttle.autoEvac() + return ..() + +/obj/machinery/computer/communications/proc/overrideCooldown() + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit + CM.lastTimeUsed = 0 diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 10142c5370..94521a7608 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -1,143 +1,143 @@ -/obj/machinery/computer - name = "computer" - icon = 'icons/obj/computer.dmi' - icon_state = "computer" - density = 1 - anchored = 1 +/obj/machinery/computer + name = "computer" + icon = 'icons/obj/computer.dmi' + icon_state = "computer" + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 300 - active_power_usage = 300 - obj_integrity = 200 - max_integrity = 200 - integrity_failure = 100 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20) - var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly - var/processing = 0 - var/brightness_on = 2 - var/icon_keyboard = "generic_key" - var/icon_screen = "generic" - var/clockwork = FALSE - -/obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C) - ..(location) - if(C && istype(C)) - circuit = C - //Some machines, oldcode arcades mostly, new themselves, so circuit - //can already be an instance of a type and trying to new that will - //cause a runtime - else if(ispath(circuit)) - circuit = new circuit(null) - -/obj/machinery/computer/Destroy() - if(circuit) - qdel(circuit) - circuit = null - return ..() - -/obj/machinery/computer/Initialize() - . = ..() - power_change() - -/obj/machinery/computer/process() - if(stat & (NOPOWER|BROKEN)) - return 0 - return 1 - -/obj/machinery/computer/ratvar_act() - if(!clockwork) - clockwork = TRUE - icon_screen = "ratvar[rand(1, 4)]" - icon_keyboard = "ratvar_key[rand(1, 6)]" - icon_state = "ratvarcomputer[rand(1, 4)]" - update_icon() - -/obj/machinery/computer/narsie_act() - if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork - clockwork = FALSE - icon_screen = initial(icon_screen) - icon_keyboard = initial(icon_keyboard) - icon_state = initial(icon_state) - update_icon() - -/obj/machinery/computer/update_icon() - cut_overlays() - if(stat & NOPOWER) - add_overlay("[icon_keyboard]_off") - return - add_overlay(icon_keyboard) - if(stat & BROKEN) - add_overlay("[icon_state]_broken") - else - add_overlay(icon_screen) - -/obj/machinery/computer/power_change() - ..() - if(stat & NOPOWER) - set_light(0) - else - set_light(brightness_on) - update_icon() - return - -/obj/machinery/computer/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT)) - playsound(src.loc, I.usesound, 50, 1) - to_chat(user, " You start to disconnect the monitor...") - if(do_after(user, 20*I.toolspeed, target = src)) - deconstruct(TRUE, user) - else - return ..() - -/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(stat & BROKEN) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) - else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) - if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - -/obj/machinery/computer/obj_break(damage_flag) - if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking - if(!(stat & BROKEN)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) - stat |= BROKEN - update_icon() - -/obj/machinery/computer/emp_act(severity) - switch(severity) - if(1) - if(prob(50)) - obj_break("energy") - if(2) - if(prob(10)) - obj_break("energy") - ..() - -/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) - on_deconstruction() - if(!(flags & NODECONSTRUCT)) - if(circuit) //no circuit, no computer frame - var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc) - A.circuit = circuit - A.anchored = 1 - if(stat & BROKEN) - if(user) - to_chat(user, "The broken glass falls out.") - else - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) - new /obj/item/weapon/shard(src.loc) - new /obj/item/weapon/shard(src.loc) - A.state = 3 - A.icon_state = "3" - else - if(user) - to_chat(user, "You disconnect the monitor.") - A.state = 4 - A.icon_state = "4" - circuit = null - for(var/obj/C in src) - C.forceMove(loc) - - qdel(src) + idle_power_usage = 300 + active_power_usage = 300 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 100 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20) + var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly + var/processing = 0 + var/brightness_on = 2 + var/icon_keyboard = "generic_key" + var/icon_screen = "generic" + var/clockwork = FALSE + +/obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C) + ..(location) + if(C && istype(C)) + circuit = C + //Some machines, oldcode arcades mostly, new themselves, so circuit + //can already be an instance of a type and trying to new that will + //cause a runtime + else if(ispath(circuit)) + circuit = new circuit(null) + +/obj/machinery/computer/Destroy() + if(circuit) + qdel(circuit) + circuit = null + return ..() + +/obj/machinery/computer/Initialize() + . = ..() + power_change() + +/obj/machinery/computer/process() + if(stat & (NOPOWER|BROKEN)) + return 0 + return 1 + +/obj/machinery/computer/ratvar_act() + if(!clockwork) + clockwork = TRUE + icon_screen = "ratvar[rand(1, 4)]" + icon_keyboard = "ratvar_key[rand(1, 6)]" + icon_state = "ratvarcomputer[rand(1, 4)]" + update_icon() + +/obj/machinery/computer/narsie_act() + if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork + clockwork = FALSE + icon_screen = initial(icon_screen) + icon_keyboard = initial(icon_keyboard) + icon_state = initial(icon_state) + update_icon() + +/obj/machinery/computer/update_icon() + cut_overlays() + if(stat & NOPOWER) + add_overlay("[icon_keyboard]_off") + return + add_overlay(icon_keyboard) + if(stat & BROKEN) + add_overlay("[icon_state]_broken") + else + add_overlay(icon_screen) + +/obj/machinery/computer/power_change() + ..() + if(stat & NOPOWER) + set_light(0) + else + set_light(brightness_on) + update_icon() + return + +/obj/machinery/computer/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT)) + playsound(src.loc, I.usesound, 50, 1) + to_chat(user, " You start to disconnect the monitor...") + if(do_after(user, 20*I.toolspeed, target = src)) + deconstruct(TRUE, user) + else + return ..() + +/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(stat & BROKEN) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + else + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + +/obj/machinery/computer/obj_break(damage_flag) + if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking + if(!(stat & BROKEN)) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) + stat |= BROKEN + update_icon() + +/obj/machinery/computer/emp_act(severity) + switch(severity) + if(1) + if(prob(50)) + obj_break("energy") + if(2) + if(prob(10)) + obj_break("energy") + ..() + +/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) + on_deconstruction() + if(!(flags & NODECONSTRUCT)) + if(circuit) //no circuit, no computer frame + var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc) + A.circuit = circuit + A.anchored = 1 + if(stat & BROKEN) + if(user) + to_chat(user, "The broken glass falls out.") + else + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + new /obj/item/weapon/shard(src.loc) + new /obj/item/weapon/shard(src.loc) + A.state = 3 + A.icon_state = "3" + else + if(user) + to_chat(user, "You disconnect the monitor.") + A.state = 4 + A.icon_state = "4" + circuit = null + for(var/obj/C in src) + C.forceMove(loc) + + qdel(src) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 08f50e9611..9f1e4121cc 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,265 +1,268 @@ -/obj/machinery/computer/crew - name = "crew monitoring console" - desc = "Used to monitor active health sensors built into most of the crew's uniforms." - icon_screen = "crew" - icon_keyboard = "med_key" +/obj/machinery/computer/crew + name = "crew monitoring console" + desc = "Used to monitor active health sensors built into most of the crew's uniforms." + icon_screen = "crew" + icon_keyboard = "med_key" use_power = IDLE_POWER_USE - idle_power_usage = 250 - active_power_usage = 500 - circuit = /obj/item/weapon/circuitboard/computer/crew - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/crew/attack_ai(mob/user) - if(stat & (BROKEN|NOPOWER)) - return - GLOB.crewmonitor.show(user) - -/obj/machinery/computer/crew/attack_hand(mob/user) - if(..()) - return - if(stat & (BROKEN|NOPOWER)) - return - GLOB.crewmonitor.show(user) - -GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) - -/datum/crewmonitor - var/list/jobs - var/list/interfaces - var/list/data - -/datum/crewmonitor/New() - . = ..() - - var/list/jobs = new/list() - jobs["Captain"] = 00 - jobs["Head of Personnel"] = 50 - jobs["Head of Security"] = 10 - jobs["Warden"] = 11 - jobs["Security Officer"] = 12 - jobs["Detective"] = 13 - jobs["Chief Medical Officer"] = 20 - jobs["Chemist"] = 21 - jobs["Geneticist"] = 22 - jobs["Virologist"] = 23 - jobs["Medical Doctor"] = 24 - jobs["Research Director"] = 30 - jobs["Scientist"] = 31 - jobs["Roboticist"] = 32 - jobs["Chief Engineer"] = 40 - jobs["Station Engineer"] = 41 - jobs["Atmospheric Technician"] = 42 - jobs["Quartermaster"] = 51 - jobs["Shaft Miner"] = 52 - jobs["Cargo Technician"] = 53 - jobs["Bartender"] = 61 - jobs["Cook"] = 62 - jobs["Botanist"] = 63 + idle_power_usage = 250 + active_power_usage = 500 + circuit = /obj/item/weapon/circuitboard/computer/crew + + light_color = LIGHT_COLOR_BLUE + +/obj/machinery/computer/crew/syndie + icon_keyboard = "syndie_key" + +/obj/machinery/computer/crew/attack_ai(mob/user) + if(stat & (BROKEN|NOPOWER)) + return + GLOB.crewmonitor.show(user) + +/obj/machinery/computer/crew/attack_hand(mob/user) + if(..()) + return + if(stat & (BROKEN|NOPOWER)) + return + GLOB.crewmonitor.show(user) + +GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) + +/datum/crewmonitor + var/list/jobs + var/list/interfaces + var/list/data + +/datum/crewmonitor/New() + . = ..() + + var/list/jobs = new/list() + jobs["Captain"] = 00 + jobs["Head of Personnel"] = 50 + jobs["Head of Security"] = 10 + jobs["Warden"] = 11 + jobs["Security Officer"] = 12 + jobs["Detective"] = 13 + jobs["Chief Medical Officer"] = 20 + jobs["Chemist"] = 21 + jobs["Geneticist"] = 22 + jobs["Virologist"] = 23 + jobs["Medical Doctor"] = 24 + jobs["Research Director"] = 30 + jobs["Scientist"] = 31 + jobs["Roboticist"] = 32 + jobs["Chief Engineer"] = 40 + jobs["Station Engineer"] = 41 + jobs["Atmospheric Technician"] = 42 + jobs["Quartermaster"] = 51 + jobs["Shaft Miner"] = 52 + jobs["Cargo Technician"] = 53 + jobs["Bartender"] = 61 + jobs["Cook"] = 62 + jobs["Botanist"] = 63 jobs["Curator"] = 64 - jobs["Chaplain"] = 65 - jobs["Clown"] = 66 - jobs["Mime"] = 67 - jobs["Janitor"] = 68 - jobs["Lawyer"] = 69 - jobs["Admiral"] = 200 - jobs["Centcom Commander"] = 210 - jobs["Custodian"] = 211 - jobs["Medical Officer"] = 212 - jobs["Research Officer"] = 213 - jobs["Emergency Response Team Commander"] = 220 - jobs["Security Response Officer"] = 221 - jobs["Engineer Response Officer"] = 222 - jobs["Medical Response Officer"] = 223 - jobs["Assistant"] = 999 //Unknowns/custom jobs should appear after civilians, and before assistants - - src.jobs = jobs - src.interfaces = list() - src.data = list() - register_asset("crewmonitor.js",'crew.js') - register_asset("crewmonitor.css",'crew.css') - -/datum/crewmonitor/Destroy() - if (src.interfaces) - for (var/datum/html_interface/hi in interfaces) - qdel(hi) - src.interfaces = null - - return ..() - -/datum/crewmonitor/proc/show(mob/mob, z) - if (mob.client) - sendResources(mob.client) - if (!z) z = mob.z - - if (z > 0 && src.interfaces) - var/datum/html_interface/hi - - if (!src.interfaces["[z]"]) - src.interfaces["[z]"] = new/datum/html_interface/nanotrasen(src, "Crew Monitoring", 900, 540, "") - - hi = src.interfaces["[z]"] - - hi.updateContent("content", "
    ") - - src.update(z, TRUE) - else - hi = src.interfaces["[z]"] - src.update(z,TRUE) - - // Debugging purposes - mob << browse_rsc(file("code/game/machinery/computer/crew.js"), "crew.js") - mob << browse_rsc(file("code/game/machinery/computer/crew.css"), "crew.css") - - hi = src.interfaces["[z]"] - hi.show(mob) - src.updateFor(mob, hi, z) - -/datum/crewmonitor/proc/updateFor(hclient_or_mob, datum/html_interface/hi, z) - // This check will succeed if updateFor is called after showing to the player, but will fail - // on regular updates. Since we only really need this once we don't care if it fails. - hi.callJavaScript("clearAll", null, hclient_or_mob) - - for (var/list/L in data) - hi.callJavaScript("add", L, hclient_or_mob) - - hi.callJavaScript("onAfterUpdate", null, hclient_or_mob) - -/datum/crewmonitor/proc/update(z, ignore_unused = FALSE) - if (src.interfaces["[z]"]) - var/datum/html_interface/hi = src.interfaces["[z]"] - - if (ignore_unused || hi.isUsed()) - var/list/results = list() - var/obj/item/clothing/under/U - var/obj/item/weapon/card/id/I - var/turf/pos - var/ijob - var/name - var/assignment - var/dam1 - var/dam2 - var/dam3 - var/dam4 - var/area - var/pos_x - var/pos_y - var/life_status - - for(var/mob/living/carbon/human/H in GLOB.mob_list) - // Check if their z-level is correct and if they are wearing a uniform. - // Accept H.z==0 as well in case the mob is inside an object. - if ((H.z == 0 || H.z == z) && istype(H.w_uniform, /obj/item/clothing/under)) - U = H.w_uniform - - // Are the suit sensors on? + jobs["Chaplain"] = 65 + jobs["Clown"] = 66 + jobs["Mime"] = 67 + jobs["Janitor"] = 68 + jobs["Lawyer"] = 69 + jobs["Admiral"] = 200 + jobs["Centcom Commander"] = 210 + jobs["Custodian"] = 211 + jobs["Medical Officer"] = 212 + jobs["Research Officer"] = 213 + jobs["Emergency Response Team Commander"] = 220 + jobs["Security Response Officer"] = 221 + jobs["Engineer Response Officer"] = 222 + jobs["Medical Response Officer"] = 223 + jobs["Assistant"] = 999 //Unknowns/custom jobs should appear after civilians, and before assistants + + src.jobs = jobs + src.interfaces = list() + src.data = list() + register_asset("crewmonitor.js",'crew.js') + register_asset("crewmonitor.css",'crew.css') + +/datum/crewmonitor/Destroy() + if (src.interfaces) + for (var/datum/html_interface/hi in interfaces) + qdel(hi) + src.interfaces = null + + return ..() + +/datum/crewmonitor/proc/show(mob/mob, z) + if (mob.client) + sendResources(mob.client) + if (!z) z = mob.z + + if (z > 0 && src.interfaces) + var/datum/html_interface/hi + + if (!src.interfaces["[z]"]) + src.interfaces["[z]"] = new/datum/html_interface/nanotrasen(src, "Crew Monitoring", 900, 540, "") + + hi = src.interfaces["[z]"] + + hi.updateContent("content", "
    ") + + src.update(z, TRUE) + else + hi = src.interfaces["[z]"] + src.update(z,TRUE) + + // Debugging purposes + mob << browse_rsc(file("code/game/machinery/computer/crew.js"), "crew.js") + mob << browse_rsc(file("code/game/machinery/computer/crew.css"), "crew.css") + + hi = src.interfaces["[z]"] + hi.show(mob) + src.updateFor(mob, hi, z) + +/datum/crewmonitor/proc/updateFor(hclient_or_mob, datum/html_interface/hi, z) + // This check will succeed if updateFor is called after showing to the player, but will fail + // on regular updates. Since we only really need this once we don't care if it fails. + hi.callJavaScript("clearAll", null, hclient_or_mob) + + for (var/list/L in data) + hi.callJavaScript("add", L, hclient_or_mob) + + hi.callJavaScript("onAfterUpdate", null, hclient_or_mob) + +/datum/crewmonitor/proc/update(z, ignore_unused = FALSE) + if (src.interfaces["[z]"]) + var/datum/html_interface/hi = src.interfaces["[z]"] + + if (ignore_unused || hi.isUsed()) + var/list/results = list() + var/obj/item/clothing/under/U + var/obj/item/weapon/card/id/I + var/turf/pos + var/ijob + var/name + var/assignment + var/dam1 + var/dam2 + var/dam3 + var/dam4 + var/area + var/pos_x + var/pos_y + var/life_status + + for(var/mob/living/carbon/human/H in GLOB.mob_list) + // Check if their z-level is correct and if they are wearing a uniform. + // Accept H.z==0 as well in case the mob is inside an object. + if ((H.z == 0 || H.z == z) && istype(H.w_uniform, /obj/item/clothing/under)) + U = H.w_uniform + + // Are the suit sensors on? if ((U.has_sensor > 0) && U.sensor_mode) pos = H.z == 0 || U.sensor_mode == SENSOR_COORDS ? get_turf(H) : null - - // Special case: If the mob is inside an object confirm the z-level on turf level. - if (H.z == 0 && (!pos || pos.z != z)) continue - - I = H.wear_id ? H.wear_id.GetID() : null - - if (I) - name = I.registered_name - assignment = I.assignment - ijob = jobs[I.assignment] - else - name = "Unknown" - assignment = "" - ijob = 80 - + + // Special case: If the mob is inside an object confirm the z-level on turf level. + if (H.z == 0 && (!pos || pos.z != z)) continue + + I = H.wear_id ? H.wear_id.GetID() : null + + if (I) + name = I.registered_name + assignment = I.assignment + ijob = jobs[I.assignment] + else + name = "Unknown" + assignment = "" + ijob = 80 + if (U.sensor_mode >= SENSOR_LIVING) life_status = (!H.stat ? "true" : "false") - else life_status = null - + else life_status = null + if (U.sensor_mode >= SENSOR_VITALS) - dam1 = round(H.getOxyLoss(),1) - dam2 = round(H.getToxLoss(),1) - dam3 = round(H.getFireLoss(),1) - dam4 = round(H.getBruteLoss(),1) - else - dam1 = null - dam2 = null - dam3 = null - dam4 = null - + dam1 = round(H.getOxyLoss(),1) + dam2 = round(H.getToxLoss(),1) + dam3 = round(H.getFireLoss(),1) + dam4 = round(H.getBruteLoss(),1) + else + dam1 = null + dam2 = null + dam3 = null + dam4 = null + if (U.sensor_mode >= SENSOR_COORDS) - if (!pos) pos = get_turf(H) - var/area/player_area = get_area(H) - - area = format_text(player_area.name) - pos_x = pos.x - pos_y = pos.y - else - area = null - pos_x = null - pos_y = null - - results[++results.len] = list(name, assignment, ijob, life_status, dam1, dam2, dam3, dam4, area, pos_x, pos_y, H.can_track(null)) - - src.data = results - src.updateFor(null, hi, z) // updates for everyone - -/datum/crewmonitor/proc/hiIsValidClient(datum/html_interface_client/hclient, datum/html_interface/hi) - var/z = "" - - for (z in src.interfaces) - if (src.interfaces[z] == hi) break - - if(hclient.client.mob && IsAdminGhost(hclient.client.mob)) - return TRUE - - if (hclient.client.mob && hclient.client.mob.stat == 0 && hclient.client.mob.z == text2num(z)) - if (isAI(hclient.client.mob)) return TRUE - else if (iscyborg(hclient.client.mob)) - return (locate(/obj/machinery/computer/crew, range(world.view, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) - else - return (locate(/obj/machinery/computer/crew, range(1, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) - else - return FALSE - -/datum/crewmonitor/Topic(href, href_list[], datum/html_interface_client/hclient) - if (istype(hclient)) - if (hclient && hclient.client && hclient.client.mob && isAI(hclient.client.mob)) - var/mob/living/silicon/ai/AI = hclient.client.mob - - switch (href_list["action"]) - if ("select_person") - AI.ai_camera_track(href_list["name"]) - - if ("select_position") - var/x = text2num(href_list["x"]) - var/y = text2num(href_list["y"]) - var/turf/tile = locate(x, y, AI.z) - - var/obj/machinery/camera/C = locate(/obj/machinery/camera) in range(5, tile) - - if (!C) C = locate(/obj/machinery/camera) in urange(10, tile) - if (!C) C = locate(/obj/machinery/camera) in urange(15, tile) - - if (C) - addtimer(CALLBACK(src, .proc/update_ai, AI, C, AI.eyeobj.loc), min(30, get_dist(get_turf(C), AI.eyeobj) / 4)) - -/datum/crewmonitor/proc/update_ai(mob/living/silicon/ai/AI, obj/machinery/camera/C, turf/current_loc) - if (AI && AI.eyeobj && current_loc == AI.eyeobj.loc) - AI.switchCamera(C) - -/mob/living/carbon/human/Move() - if (src.w_uniform) - var/old_z = src.z - - . = ..() - - if (old_z != src.z) GLOB.crewmonitor.queueUpdate(old_z) - GLOB.crewmonitor.queueUpdate(src.z) - else - return ..() - -/datum/crewmonitor/proc/queueUpdate(z) - addtimer(CALLBACK(src, .proc/update, z), 5, TIMER_UNIQUE) - -/datum/crewmonitor/proc/sendResources(var/client/client) - send_asset(client, "crewmonitor.js") - send_asset(client, "crewmonitor.css") - SSminimap.send(client) + if (!pos) pos = get_turf(H) + var/area/player_area = get_area(H) + + area = format_text(player_area.name) + pos_x = pos.x + pos_y = pos.y + else + area = null + pos_x = null + pos_y = null + + results[++results.len] = list(name, assignment, ijob, life_status, dam1, dam2, dam3, dam4, area, pos_x, pos_y, H.can_track(null)) + + src.data = results + src.updateFor(null, hi, z) // updates for everyone + +/datum/crewmonitor/proc/hiIsValidClient(datum/html_interface_client/hclient, datum/html_interface/hi) + var/z = "" + + for (z in src.interfaces) + if (src.interfaces[z] == hi) break + + if(hclient.client.mob && IsAdminGhost(hclient.client.mob)) + return TRUE + + if (hclient.client.mob && hclient.client.mob.stat == 0 && hclient.client.mob.z == text2num(z)) + if (isAI(hclient.client.mob)) return TRUE + else if (iscyborg(hclient.client.mob)) + return (locate(/obj/machinery/computer/crew, range(world.view, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) + else + return (locate(/obj/machinery/computer/crew, range(1, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) + else + return FALSE + +/datum/crewmonitor/Topic(href, href_list[], datum/html_interface_client/hclient) + if (istype(hclient)) + if (hclient && hclient.client && hclient.client.mob && isAI(hclient.client.mob)) + var/mob/living/silicon/ai/AI = hclient.client.mob + + switch (href_list["action"]) + if ("select_person") + AI.ai_camera_track(href_list["name"]) + + if ("select_position") + var/x = text2num(href_list["x"]) + var/y = text2num(href_list["y"]) + var/turf/tile = locate(x, y, AI.z) + + var/obj/machinery/camera/C = locate(/obj/machinery/camera) in range(5, tile) + + if (!C) C = locate(/obj/machinery/camera) in urange(10, tile) + if (!C) C = locate(/obj/machinery/camera) in urange(15, tile) + + if (C) + addtimer(CALLBACK(src, .proc/update_ai, AI, C, AI.eyeobj.loc), min(30, get_dist(get_turf(C), AI.eyeobj) / 4)) + +/datum/crewmonitor/proc/update_ai(mob/living/silicon/ai/AI, obj/machinery/camera/C, turf/current_loc) + if (AI && AI.eyeobj && current_loc == AI.eyeobj.loc) + AI.switchCamera(C) + +/mob/living/carbon/human/Move() + if (src.w_uniform) + var/old_z = src.z + + . = ..() + + if (old_z != src.z) GLOB.crewmonitor.queueUpdate(old_z) + GLOB.crewmonitor.queueUpdate(src.z) + else + return ..() + +/datum/crewmonitor/proc/queueUpdate(z) + addtimer(CALLBACK(src, .proc/update, z), 5, TIMER_UNIQUE) + +/datum/crewmonitor/proc/sendResources(var/client/client) + send_asset(client, "crewmonitor.js") + send_asset(client, "crewmonitor.css") + SSminimap.send(client) diff --git a/code/game/machinery/computer/gulag_teleporter.dm b/code/game/machinery/computer/gulag_teleporter.dm index 60376d4ead..227848e260 100644 --- a/code/game/machinery/computer/gulag_teleporter.dm +++ b/code/game/machinery/computer/gulag_teleporter.dm @@ -148,7 +148,7 @@ teleporter.handle_prisoner(id, temporary_record) playsound(loc, 'sound/weapons/emitter.ogg', 50, 1) prisoner.forceMove(get_turf(beacon)) - prisoner.Weaken(2) // small travel dizziness + prisoner.Knockdown(40) // small travel dizziness to_chat(prisoner, "The teleportation makes you a little dizzy.") new /obj/effect/particle_effect/sparks(prisoner.loc) playsound(src.loc, "sparks", 50, 1) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index fa2924c447..c30eff58cb 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -1,608 +1,611 @@ - - -/obj/machinery/computer/med_data//TODO:SANITY - name = "medical records console" - desc = "This can be used to check medical records." - icon_screen = "medcomp" - icon_keyboard = "med_key" - req_one_access = list(GLOB.access_medical, GLOB.access_forensics_lockers) - circuit = /obj/item/weapon/circuitboard/computer/med_data - var/obj/item/weapon/card/id/scan = null - var/authenticated = null - var/rank = null - var/screen = null - var/datum/data/record/active1 - var/datum/data/record/active2 - var/a_id = null - var/temp = null - var/printing = null - //Sorting Variables - var/sortBy = "name" - var/order = 1 // -1 = Descending - 1 = Ascending - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/med_data/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/card/id) && !scan) - if(!user.drop_item()) - return - O.loc = src - scan = O - to_chat(user, "You insert [O].") - else - return ..() - -/obj/machinery/computer/med_data/attack_hand(mob/user) - if(..()) - return - var/dat - if(src.temp) - dat = text("[src.temp]

    Clear Screen") - else - dat = text("Confirm Identity: []
    ", src, (src.scan ? text("[]", src.scan.name) : "----------")) - if(src.authenticated) - switch(src.screen) - if(1) - dat += {" -Search Records -
    List Records -
    -
    Virus Database -
    Medbot Tracking -
    -
    Record Maintenance -
    {Log Out}
    -"} - if(2) - dat += {" -

    - - - - -
    Records:
    - - - - - - - - -"} - - - if(!isnull(GLOB.data_core.general)) - for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order)) - var/blood_type = "" - var/b_dna = "" - for(var/datum/data/record/E in GLOB.data_core.medical) - if((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) - blood_type = E.fields["blood_type"] - b_dna = E.fields["b_dna"] - var/background - - if(R.fields["m_stat"] == "*Insane*" || R.fields["p_stat"] == "*Deceased*") - background = "'background-color:#990000;'" - else if(R.fields["p_stat"] == "*Unconscious*" || R.fields["m_stat"] == "*Unstable*") - background = "'background-color:#CD6500;'" - else if(R.fields["p_stat"] == "Physically Unfit" || R.fields["m_stat"] == "*Watch*") - background = "'background-color:#3BB9FF;'" - else - background = "'background-color:#4F7529;'" - - dat += text("", background, src, R.fields["id"], R.fields["name"]) - dat += text("", R.fields["id"]) - dat += text("", R.fields["fingerprint"], b_dna) - dat += text("", blood_type) - dat += text("", R.fields["p_stat"]) - dat += text("", R.fields["m_stat"]) - dat += "
    NameIDFingerprints (F) | DNA (D)Blood TypePhysical StatusMental Status
    [][]F: []
    D: []
    [][][]

    " -// if(GLOB.data_core.general) -// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) -// dat += "[R.fields["id"]]: [R.fields["name"]]
    " -// //Foreach goto(132) - dat += text("
    Back", src) - if(3) - dat += text("Records Maintenance
    \nBackup To Disk
    \nUpload From Disk
    \nDelete All Records
    \n
    \nBack", src, src, src, src) - if(4) - - dat += "" - if(active1 in GLOB.data_core.general) - if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] - user << browse_rsc(P1.img, "photo_front") - if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] - user << browse_rsc(P2.img, "photo_side") - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - if(config.mutant_races) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - - dat += "" - if(active2 in GLOB.data_core.medical) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" //(per disease info placed in log/comment section) - dat += "" - dat += "" - - dat += "" - var/counter = 1 - while(src.active2.fields[text("com_[]", counter)]) - dat += "" - counter++ - dat += "" - - dat += "" - else - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    Medical Record
    Name:[active1.fields["name"]]
    ID:[active1.fields["id"]]
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    General Record Lost!

    Medical Data
    Blood Type: [active2.fields["blood_type"]] 
    DNA: [active2.fields["b_dna"]] 

    Minor Disabilities:

     [active2.fields["mi_dis"]] 
    Details: [active2.fields["mi_dis_d"]] 

    Major Disabilities:

     [active2.fields["ma_dis"]] 
    Details: [active2.fields["ma_dis_d"]] 

    Allergies:

     [active2.fields["alg"]] 
    Details: [active2.fields["alg_d"]] 

    Current Diseases:

     [active2.fields["cdi"]] 
    Details: [active2.fields["cdi_d"]] 

    Important Notes:

     [active2.fields["notes"]] 

    Comments/Log
    [active2.fields[text("com_[]", counter)]]
    Delete Entry
    Add Entry

    Delete Record (Medical Only)
    Medical Record Lost!

    New Record
    Print Record
    Back
    " - if(5) - dat += "
    Virus Database
    " - for(var/Dt in typesof(/datum/disease/)) - var/datum/disease/Dis = new Dt(0) - if(istype(Dis, /datum/disease/advance)) - continue // TODO (tm): Add advance diseases to the virus database which no one uses. - if(!Dis.desc) - continue - dat += "
    [Dis.name]" - dat += "
    Back" - if(6) - dat += "
    Medical Robot Monitor
    " - dat += "Back" - dat += "
    Medical Robots:" - var/bdat = null - for(var/mob/living/simple_animal/bot/medbot/M in GLOB.living_mob_list) - if(M.z != src.z) - continue //only find medibots on the same z-level as the computer - var/turf/bl = get_turf(M) - if(bl) //if it can't find a turf for the medibot, then it probably shouldn't be showing up - bdat += "[M.name] - \[[bl.x],[bl.y]\] - [M.on ? "Online" : "Offline"]
    " - if((!isnull(M.reagent_glass)) && M.use_beaker) - bdat += "Reservoir: \[[M.reagent_glass.reagents.total_volume]/[M.reagent_glass.reagents.maximum_volume]\]
    " - else - bdat += "Using Internal Synthesizer.
    " - - if(!bdat) - dat += "
    None detected
    " - else - dat += "
    [bdat]" - - else - else - dat += text("{Log In}", src) - var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - -/obj/machinery/computer/med_data/Topic(href, href_list) - . = ..() - if(.) - return . - if(!(active1 in GLOB.data_core.general)) - src.active1 = null - if(!(active2 in GLOB.data_core.medical)) - src.active2 = null - - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) - usr.set_machine(src) - if(href_list["temp"]) - src.temp = null - if(href_list["scan"]) - if(src.scan) - if(ishuman(usr) && !usr.get_active_held_item()) - usr.put_in_hands(scan) - else - scan.loc = get_turf(src) - src.scan = null - else - var/obj/item/I = usr.get_active_held_item() - if(istype(I, /obj/item/weapon/card/id)) - if(!usr.drop_item()) - return - I.loc = src - src.scan = I - else if(href_list["logout"]) - src.authenticated = null - src.screen = null - src.active1 = null - src.active2 = null - else if(href_list["choice"]) - // SORTING! - if(href_list["choice"] == "Sorting") - // Reverse the order if clicked twice - if(sortBy == href_list["sort"]) - if(order == 1) - order = -1 - else - order = 1 - else - // New sorting order! - sortBy = href_list["sort"] - order = initial(order) - else if(href_list["login"]) - if(issilicon(usr)) - src.active1 = null - src.active2 = null - src.authenticated = 1 - src.rank = "AI" - src.screen = 1 - else if(IsAdminGhost(usr)) - src.active1 = null - src.active2 = null - src.authenticated = 1 - src.rank = "Central Command" - src.screen = 1 - else if(istype(src.scan, /obj/item/weapon/card/id)) - src.active1 = null - src.active2 = null - if(src.check_access(src.scan)) - src.authenticated = src.scan.registered_name - src.rank = src.scan.assignment - src.screen = 1 - if(src.authenticated) - - if(href_list["screen"]) - src.screen = text2num(href_list["screen"]) - if(src.screen < 1) - src.screen = 1 - - src.active1 = null - src.active2 = null - - else if(href_list["vir"]) - var/type = href_list["vir"] - var/datum/disease/Dis = new type(0) - var/AfS = "" - for(var/mob/M in Dis.viable_mobtypes) - AfS += " [initial(M.name)];" - src.temp = {"Name: [Dis.name] -
    Number of stages: [Dis.max_stages] -
    Spread: [Dis.spread_text] Transmission -
    Possible Cure: [(Dis.cure_text||"none")] -
    Affected Lifeforms:[AfS] -
    -
    Notes: [Dis.desc] -
    -
    Severity: [Dis.severity]"} - - else if(href_list["del_all"]) - src.temp = text("Are you sure you wish to delete all records?
    \n\tYes
    \n\tNo
    ", src, src) - - else if(href_list["del_all2"]) + + +/obj/machinery/computer/med_data//TODO:SANITY + name = "medical records console" + desc = "This can be used to check medical records." + icon_screen = "medcomp" + icon_keyboard = "med_key" + req_one_access = list(GLOB.access_medical, GLOB.access_forensics_lockers) + circuit = /obj/item/weapon/circuitboard/computer/med_data + var/obj/item/weapon/card/id/scan = null + var/authenticated = null + var/rank = null + var/screen = null + var/datum/data/record/active1 + var/datum/data/record/active2 + var/a_id = null + var/temp = null + var/printing = null + //Sorting Variables + var/sortBy = "name" + var/order = 1 // -1 = Descending - 1 = Ascending + + light_color = LIGHT_COLOR_BLUE + +/obj/machinery/computer/med_data/syndie + icon_keyboard = "syndie_key" + +/obj/machinery/computer/med_data/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/card/id) && !scan) + if(!user.drop_item()) + return + O.loc = src + scan = O + to_chat(user, "You insert [O].") + else + return ..() + +/obj/machinery/computer/med_data/attack_hand(mob/user) + if(..()) + return + var/dat + if(src.temp) + dat = text("[src.temp]

    Clear Screen") + else + dat = text("Confirm Identity: []
    ", src, (src.scan ? text("[]", src.scan.name) : "----------")) + if(src.authenticated) + switch(src.screen) + if(1) + dat += {" +Search Records +
    List Records +
    +
    Virus Database +
    Medbot Tracking +
    +
    Record Maintenance +
    {Log Out}
    +"} + if(2) + dat += {" +

    + + + + +
    Records:
    + + + + + + + + +"} + + + if(!isnull(GLOB.data_core.general)) + for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order)) + var/blood_type = "" + var/b_dna = "" + for(var/datum/data/record/E in GLOB.data_core.medical) + if((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) + blood_type = E.fields["blood_type"] + b_dna = E.fields["b_dna"] + var/background + + if(R.fields["m_stat"] == "*Insane*" || R.fields["p_stat"] == "*Deceased*") + background = "'background-color:#990000;'" + else if(R.fields["p_stat"] == "*Unconscious*" || R.fields["m_stat"] == "*Unstable*") + background = "'background-color:#CD6500;'" + else if(R.fields["p_stat"] == "Physically Unfit" || R.fields["m_stat"] == "*Watch*") + background = "'background-color:#3BB9FF;'" + else + background = "'background-color:#4F7529;'" + + dat += text("", background, src, R.fields["id"], R.fields["name"]) + dat += text("", R.fields["id"]) + dat += text("", R.fields["fingerprint"], b_dna) + dat += text("", blood_type) + dat += text("", R.fields["p_stat"]) + dat += text("", R.fields["m_stat"]) + dat += "
    NameIDFingerprints (F) | DNA (D)Blood TypePhysical StatusMental Status
    [][]F: []
    D: []
    [][][]

    " +// if(GLOB.data_core.general) +// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) +// dat += "[R.fields["id"]]: [R.fields["name"]]
    " +// //Foreach goto(132) + dat += text("
    Back", src) + if(3) + dat += text("Records Maintenance
    \nBackup To Disk
    \nUpload From Disk
    \nDelete All Records
    \n
    \nBack", src, src, src, src) + if(4) + + dat += "" + if(active1 in GLOB.data_core.general) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] + user << browse_rsc(P1.img, "photo_front") + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] + user << browse_rsc(P2.img, "photo_side") + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + if(config.mutant_races) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + + dat += "" + if(active2 in GLOB.data_core.medical) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" //(per disease info placed in log/comment section) + dat += "" + dat += "" + + dat += "" + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + dat += "" + counter++ + dat += "" + + dat += "" + else + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    Medical Record
    Name:[active1.fields["name"]]
    ID:[active1.fields["id"]]
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    General Record Lost!

    Medical Data
    Blood Type: [active2.fields["blood_type"]] 
    DNA: [active2.fields["b_dna"]] 

    Minor Disabilities:

     [active2.fields["mi_dis"]] 
    Details: [active2.fields["mi_dis_d"]] 

    Major Disabilities:

     [active2.fields["ma_dis"]] 
    Details: [active2.fields["ma_dis_d"]] 

    Allergies:

     [active2.fields["alg"]] 
    Details: [active2.fields["alg_d"]] 

    Current Diseases:

     [active2.fields["cdi"]] 
    Details: [active2.fields["cdi_d"]] 

    Important Notes:

     [active2.fields["notes"]] 

    Comments/Log
    [active2.fields[text("com_[]", counter)]]
    Delete Entry
    Add Entry

    Delete Record (Medical Only)
    Medical Record Lost!

    New Record
    Print Record
    Back
    " + if(5) + dat += "
    Virus Database
    " + for(var/Dt in typesof(/datum/disease/)) + var/datum/disease/Dis = new Dt(0) + if(istype(Dis, /datum/disease/advance)) + continue // TODO (tm): Add advance diseases to the virus database which no one uses. + if(!Dis.desc) + continue + dat += "
    [Dis.name]" + dat += "
    Back" + if(6) + dat += "
    Medical Robot Monitor
    " + dat += "Back" + dat += "
    Medical Robots:" + var/bdat = null + for(var/mob/living/simple_animal/bot/medbot/M in GLOB.living_mob_list) + if(M.z != src.z) + continue //only find medibots on the same z-level as the computer + var/turf/bl = get_turf(M) + if(bl) //if it can't find a turf for the medibot, then it probably shouldn't be showing up + bdat += "[M.name] - \[[bl.x],[bl.y]\] - [M.on ? "Online" : "Offline"]
    " + if((!isnull(M.reagent_glass)) && M.use_beaker) + bdat += "Reservoir: \[[M.reagent_glass.reagents.total_volume]/[M.reagent_glass.reagents.maximum_volume]\]
    " + else + bdat += "Using Internal Synthesizer.
    " + + if(!bdat) + dat += "
    None detected
    " + else + dat += "
    [bdat]" + + else + else + dat += text("{Log In}", src) + var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/med_data/Topic(href, href_list) + . = ..() + if(.) + return . + if(!(active1 in GLOB.data_core.general)) + src.active1 = null + if(!(active2 in GLOB.data_core.medical)) + src.active2 = null + + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + usr.set_machine(src) + if(href_list["temp"]) + src.temp = null + if(href_list["scan"]) + if(src.scan) + if(ishuman(usr) && !usr.get_active_held_item()) + usr.put_in_hands(scan) + else + scan.loc = get_turf(src) + src.scan = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + src.scan = I + else if(href_list["logout"]) + src.authenticated = null + src.screen = null + src.active1 = null + src.active2 = null + else if(href_list["choice"]) + // SORTING! + if(href_list["choice"] == "Sorting") + // Reverse the order if clicked twice + if(sortBy == href_list["sort"]) + if(order == 1) + order = -1 + else + order = 1 + else + // New sorting order! + sortBy = href_list["sort"] + order = initial(order) + else if(href_list["login"]) + if(issilicon(usr)) + src.active1 = null + src.active2 = null + src.authenticated = 1 + src.rank = "AI" + src.screen = 1 + else if(IsAdminGhost(usr)) + src.active1 = null + src.active2 = null + src.authenticated = 1 + src.rank = "Central Command" + src.screen = 1 + else if(istype(src.scan, /obj/item/weapon/card/id)) + src.active1 = null + src.active2 = null + if(src.check_access(src.scan)) + src.authenticated = src.scan.registered_name + src.rank = src.scan.assignment + src.screen = 1 + if(src.authenticated) + + if(href_list["screen"]) + src.screen = text2num(href_list["screen"]) + if(src.screen < 1) + src.screen = 1 + + src.active1 = null + src.active2 = null + + else if(href_list["vir"]) + var/type = href_list["vir"] + var/datum/disease/Dis = new type(0) + var/AfS = "" + for(var/mob/M in Dis.viable_mobtypes) + AfS += " [initial(M.name)];" + src.temp = {"Name: [Dis.name] +
    Number of stages: [Dis.max_stages] +
    Spread: [Dis.spread_text] Transmission +
    Possible Cure: [(Dis.cure_text||"none")] +
    Affected Lifeforms:[AfS] +
    +
    Notes: [Dis.desc] +
    +
    Severity: [Dis.severity]"} + + else if(href_list["del_all"]) + src.temp = text("Are you sure you wish to delete all records?
    \n\tYes
    \n\tNo
    ", src, src) + + else if(href_list["del_all2"]) investigate_log("[usr.name] ([usr.key]) has deleted all medical records.", INVESTIGATE_RECORDS) - GLOB.data_core.medical.Cut() - src.temp = "All records deleted." - - else if(href_list["field"]) - var/a1 = src.active1 - var/a2 = src.active2 - switch(href_list["field"]) - if("fingerprint") - if(active1) - var/t1 = stripped_input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null) - if(!canUseMedicalRecordsConsole(usr, t1, a1)) - return - src.active1.fields["fingerprint"] = t1 - if("sex") - if(active1) - if(src.active1.fields["sex"] == "Male") - src.active1.fields["sex"] = "Female" - else - src.active1.fields["sex"] = "Male" - if("age") - if(active1) - var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num - if(!canUseMedicalRecordsConsole(usr, t1, a1)) - return - src.active1.fields["age"] = t1 - if("species") - if(active1) - var/t1 = stripped_input("Please input species name", "Med. records", src.active1.fields["species"], null) - if(!canUseMedicalRecordsConsole(usr, t1, a1)) - return - active1.fields["species"] = t1 - if("mi_dis") - if(active2) - var/t1 = stripped_input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["mi_dis"] = t1 - if("mi_dis_d") - if(active2) + GLOB.data_core.medical.Cut() + src.temp = "All records deleted." + + else if(href_list["field"]) + var/a1 = src.active1 + var/a2 = src.active2 + switch(href_list["field"]) + if("fingerprint") + if(active1) + var/t1 = stripped_input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null) + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + src.active1.fields["fingerprint"] = t1 + if("sex") + if(active1) + if(src.active1.fields["sex"] == "Male") + src.active1.fields["sex"] = "Female" + else + src.active1.fields["sex"] = "Male" + if("age") + if(active1) + var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + src.active1.fields["age"] = t1 + if("species") + if(active1) + var/t1 = stripped_input("Please input species name", "Med. records", src.active1.fields["species"], null) + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + active1.fields["species"] = t1 + if("mi_dis") + if(active2) + var/t1 = stripped_input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["mi_dis"] = t1 + if("mi_dis_d") + if(active2) var/t1 = stripped_input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["mi_dis_d"] = t1 - if("ma_dis") - if(active2) - var/t1 = stripped_input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["ma_dis"] = t1 - if("ma_dis_d") - if(active2) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["mi_dis_d"] = t1 + if("ma_dis") + if(active2) + var/t1 = stripped_input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["ma_dis"] = t1 + if("ma_dis_d") + if(active2) var/t1 = stripped_input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["ma_dis_d"] = t1 - if("alg") - if(active2) - var/t1 = stripped_input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["alg"] = t1 - if("alg_d") - if(active2) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["ma_dis_d"] = t1 + if("alg") + if(active2) + var/t1 = stripped_input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["alg"] = t1 + if("alg_d") + if(active2) var/t1 = stripped_input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["alg_d"] = t1 - if("cdi") - if(active2) - var/t1 = stripped_input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["cdi"] = t1 - if("cdi_d") - if(active2) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["alg_d"] = t1 + if("cdi") + if(active2) + var/t1 = stripped_input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["cdi"] = t1 + if("cdi_d") + if(active2) var/t1 = stripped_input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["cdi_d"] = t1 - if("notes") - if(active2) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["cdi_d"] = t1 + if("notes") + if(active2) var/t1 = stripped_input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["notes"] = t1 - if("p_stat") - if(active1) - src.temp = text("Physical Condition:
    \n\t*Deceased*
    \n\t*Unconscious*
    \n\tActive
    \n\tPhysically Unfit
    ", src, src, src, src) - if("m_stat") - if(active1) - src.temp = text("Mental Condition:
    \n\t*Insane*
    \n\t*Unstable*
    \n\t*Watch*
    \n\tStable
    ", src, src, src, src) - if("blood_type") - if(active2) - src.temp = text("Blood Type:
    \n\tA- A+
    \n\tB- B+
    \n\tAB- AB+
    \n\tO- O+
    ", src, src, src, src, src, src, src, src) - if("b_dna") - if(active2) - var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - src.active2.fields["b_dna"] = t1 - if("show_photo_front") - if(active1) - if(active1.fields["photo_front"]) - if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = active1.fields["photo_front"] - P.show(usr) - if("show_photo_side") - if(active1) - if(active1.fields["photo_side"]) - if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = active1.fields["photo_side"] - P.show(usr) - else - - else if(href_list["p_stat"]) - if(active1) - switch(href_list["p_stat"]) - if("deceased") - src.active1.fields["p_stat"] = "*Deceased*" - if("unconscious") - src.active1.fields["p_stat"] = "*Unconscious*" - if("active") - src.active1.fields["p_stat"] = "Active" - if("unfit") - src.active1.fields["p_stat"] = "Physically Unfit" - - else if(href_list["m_stat"]) - if(active1) - switch(href_list["m_stat"]) - if("insane") - src.active1.fields["m_stat"] = "*Insane*" - if("unstable") - src.active1.fields["m_stat"] = "*Unstable*" - if("watch") - src.active1.fields["m_stat"] = "*Watch*" - if("stable") - src.active1.fields["m_stat"] = "Stable" - - - else if(href_list["blood_type"]) - if(active2) - switch(href_list["blood_type"]) - if("an") - src.active2.fields["blood_type"] = "A-" - if("bn") - src.active2.fields["blood_type"] = "B-" - if("abn") - src.active2.fields["blood_type"] = "AB-" - if("on") - src.active2.fields["blood_type"] = "O-" - if("ap") - src.active2.fields["blood_type"] = "A+" - if("bp") - src.active2.fields["blood_type"] = "B+" - if("abp") - src.active2.fields["blood_type"] = "AB+" - if("op") - src.active2.fields["blood_type"] = "O+" - - - else if(href_list["del_r"]) - if(active2) - src.temp = text("Are you sure you wish to delete the record (Medical Portion Only)?
    \n\tYes
    \n\tNo
    ", src, src) - - else if(href_list["del_r2"]) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["notes"] = t1 + if("p_stat") + if(active1) + src.temp = text("Physical Condition:
    \n\t*Deceased*
    \n\t*Unconscious*
    \n\tActive
    \n\tPhysically Unfit
    ", src, src, src, src) + if("m_stat") + if(active1) + src.temp = text("Mental Condition:
    \n\t*Insane*
    \n\t*Unstable*
    \n\t*Watch*
    \n\tStable
    ", src, src, src, src) + if("blood_type") + if(active2) + src.temp = text("Blood Type:
    \n\tA- A+
    \n\tB- B+
    \n\tAB- AB+
    \n\tO- O+
    ", src, src, src, src, src, src, src, src) + if("b_dna") + if(active2) + var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["b_dna"] = t1 + if("show_photo_front") + if(active1) + if(active1.fields["photo_front"]) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_front"] + P.show(usr) + if("show_photo_side") + if(active1) + if(active1.fields["photo_side"]) + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_side"] + P.show(usr) + else + + else if(href_list["p_stat"]) + if(active1) + switch(href_list["p_stat"]) + if("deceased") + src.active1.fields["p_stat"] = "*Deceased*" + if("unconscious") + src.active1.fields["p_stat"] = "*Unconscious*" + if("active") + src.active1.fields["p_stat"] = "Active" + if("unfit") + src.active1.fields["p_stat"] = "Physically Unfit" + + else if(href_list["m_stat"]) + if(active1) + switch(href_list["m_stat"]) + if("insane") + src.active1.fields["m_stat"] = "*Insane*" + if("unstable") + src.active1.fields["m_stat"] = "*Unstable*" + if("watch") + src.active1.fields["m_stat"] = "*Watch*" + if("stable") + src.active1.fields["m_stat"] = "Stable" + + + else if(href_list["blood_type"]) + if(active2) + switch(href_list["blood_type"]) + if("an") + src.active2.fields["blood_type"] = "A-" + if("bn") + src.active2.fields["blood_type"] = "B-" + if("abn") + src.active2.fields["blood_type"] = "AB-" + if("on") + src.active2.fields["blood_type"] = "O-" + if("ap") + src.active2.fields["blood_type"] = "A+" + if("bp") + src.active2.fields["blood_type"] = "B+" + if("abp") + src.active2.fields["blood_type"] = "AB+" + if("op") + src.active2.fields["blood_type"] = "O+" + + + else if(href_list["del_r"]) + if(active2) + src.temp = text("Are you sure you wish to delete the record (Medical Portion Only)?
    \n\tYes
    \n\tNo
    ", src, src) + + else if(href_list["del_r2"]) investigate_log("[usr.name] ([usr.key]) has deleted the medical records for [active1.fields["name"]].", INVESTIGATE_RECORDS) - if(active2) - qdel(active2) - active2 = null - - else if(href_list["d_rec"]) - active1 = find_record("id", href_list["d_rec"], GLOB.data_core.general) - if(active1) - active2 = find_record("id", href_list["d_rec"], GLOB.data_core.medical) - if(!active2) - active1 = null - screen = 4 - - else if(href_list["new"]) - if((istype(src.active1, /datum/data/record) && !( istype(src.active2, /datum/data/record) ))) - var/datum/data/record/R = new /datum/data/record( ) - R.fields["name"] = src.active1.fields["name"] - R.fields["id"] = src.active1.fields["id"] - R.name = text("Medical Record #[]", R.fields["id"]) - R.fields["blood_type"] = "Unknown" - R.fields["b_dna"] = "Unknown" - R.fields["mi_dis"] = "None" - R.fields["mi_dis_d"] = "No minor disabilities have been diagnosed." - R.fields["ma_dis"] = "None" - R.fields["ma_dis_d"] = "No major disabilities have been diagnosed." - R.fields["alg"] = "None" - R.fields["alg_d"] = "No allergies have been detected in this patient." - R.fields["cdi"] = "None" - R.fields["cdi_d"] = "No diseases have been diagnosed at the moment." - R.fields["notes"] = "No notes." - GLOB.data_core.medical += R - src.active2 = R - src.screen = 4 - - else if(href_list["add_c"]) - if(!(active2 in GLOB.data_core.medical)) - return - var/a2 = src.active2 - var/t1 = stripped_multiline_input("Add Comment:", "Med. records", null, null) - if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) - return - var/counter = 1 - while(src.active2.fields[text("com_[]", counter)]) - counter++ - src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1) - - else if(href_list["del_c"]) - if((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) - src.active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" - - else if(href_list["search"]) - var/t1 = stripped_input(usr, "Search String: (Name, DNA, or ID)", "Med. records") - if(!canUseMedicalRecordsConsole(usr, t1)) - return - src.active1 = null - src.active2 = null - t1 = lowertext(t1) - for(var/datum/data/record/R in GLOB.data_core.medical) - if((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"]))) - src.active2 = R - else - //Foreach continue //goto(3229) - if(!( src.active2 )) - src.temp = text("Could not locate record [].", sanitize(t1)) - else - for(var/datum/data/record/E in GLOB.data_core.general) - if((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) - src.active1 = E - else - //Foreach continue //goto(3334) - src.screen = 4 - - else if(href_list["print_p"]) - if(!( src.printing )) - src.printing = 1 - GLOB.data_core.medicalPrintCount++ - playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) - sleep(30) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc ) - P.info = "
    Medical Record - (MR-[GLOB.data_core.medicalPrintCount])

    " - if(active1 in GLOB.data_core.general) - P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"]) - if(config.mutant_races) - P.info += "\nSpecies: [active1.fields["species"]]
    " - P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"]) - else - P.info += "General Record Lost!
    " - if(active2 in GLOB.data_core.medical) - P.info += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", src.active2.fields["blood_type"], src.active2.fields["b_dna"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"]) - var/counter = 1 - while(src.active2.fields[text("com_[]", counter)]) - P.info += text("[]
    ", src.active2.fields[text("com_[]", counter)]) - counter++ - P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, src.active1.fields["name"]) - else - P.info += "Medical Record Lost!
    " - P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, "Record Lost") - P.info += "" - src.printing = null - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - -/obj/machinery/computer/med_data/emp_act(severity) - if(!(stat & (BROKEN|NOPOWER))) - for(var/datum/data/record/R in GLOB.data_core.medical) - if(prob(10/severity)) - switch(rand(1,6)) - if(1) - if(prob(10)) - R.fields["name"] = random_unique_lizard_name(R.fields["sex"],1) - else - R.fields["name"] = random_unique_name(R.fields["sex"],1) - if(2) - R.fields["sex"] = pick("Male", "Female") - if(3) - R.fields["age"] = rand(AGE_MIN, AGE_MAX) - if(4) - R.fields["blood_type"] = random_blood_type() - if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") - if(6) - R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") - continue - - else if(prob(1)) - qdel(R) - continue - ..() - -/obj/machinery/computer/med_data/proc/canUseMedicalRecordsConsole(mob/user, message = 1, record1, record2) - if(user) - if(message) - if(authenticated) - if(user.canUseTopic(src)) - if(!record1 || record1 == active1) - if(!record2 || record2 == active2) - return 1 - return 0 - -/obj/machinery/computer/med_data/laptop - name = "medical laptop" - desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." - icon_state = "laptop" - icon_screen = "medlaptop" - icon_keyboard = "laptop_key" - clockwork = TRUE //it'd look weird + if(active2) + qdel(active2) + active2 = null + + else if(href_list["d_rec"]) + active1 = find_record("id", href_list["d_rec"], GLOB.data_core.general) + if(active1) + active2 = find_record("id", href_list["d_rec"], GLOB.data_core.medical) + if(!active2) + active1 = null + screen = 4 + + else if(href_list["new"]) + if((istype(src.active1, /datum/data/record) && !( istype(src.active2, /datum/data/record) ))) + var/datum/data/record/R = new /datum/data/record( ) + R.fields["name"] = src.active1.fields["name"] + R.fields["id"] = src.active1.fields["id"] + R.name = text("Medical Record #[]", R.fields["id"]) + R.fields["blood_type"] = "Unknown" + R.fields["b_dna"] = "Unknown" + R.fields["mi_dis"] = "None" + R.fields["mi_dis_d"] = "No minor disabilities have been diagnosed." + R.fields["ma_dis"] = "None" + R.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + R.fields["alg"] = "None" + R.fields["alg_d"] = "No allergies have been detected in this patient." + R.fields["cdi"] = "None" + R.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + R.fields["notes"] = "No notes." + GLOB.data_core.medical += R + src.active2 = R + src.screen = 4 + + else if(href_list["add_c"]) + if(!(active2 in GLOB.data_core.medical)) + return + var/a2 = src.active2 + var/t1 = stripped_multiline_input("Add Comment:", "Med. records", null, null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + counter++ + src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1) + + else if(href_list["del_c"]) + if((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) + src.active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" + + else if(href_list["search"]) + var/t1 = stripped_input(usr, "Search String: (Name, DNA, or ID)", "Med. records") + if(!canUseMedicalRecordsConsole(usr, t1)) + return + src.active1 = null + src.active2 = null + t1 = lowertext(t1) + for(var/datum/data/record/R in GLOB.data_core.medical) + if((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"]))) + src.active2 = R + else + //Foreach continue //goto(3229) + if(!( src.active2 )) + src.temp = text("Could not locate record [].", sanitize(t1)) + else + for(var/datum/data/record/E in GLOB.data_core.general) + if((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) + src.active1 = E + else + //Foreach continue //goto(3334) + src.screen = 4 + + else if(href_list["print_p"]) + if(!( src.printing )) + src.printing = 1 + GLOB.data_core.medicalPrintCount++ + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + sleep(30) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc ) + P.info = "
    Medical Record - (MR-[GLOB.data_core.medicalPrintCount])

    " + if(active1 in GLOB.data_core.general) + P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"]) + if(config.mutant_races) + P.info += "\nSpecies: [active1.fields["species"]]
    " + P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"]) + else + P.info += "General Record Lost!
    " + if(active2 in GLOB.data_core.medical) + P.info += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", src.active2.fields["blood_type"], src.active2.fields["b_dna"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"]) + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + P.info += text("[]
    ", src.active2.fields[text("com_[]", counter)]) + counter++ + P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, src.active1.fields["name"]) + else + P.info += "Medical Record Lost!
    " + P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, "Record Lost") + P.info += "" + src.printing = null + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/obj/machinery/computer/med_data/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + for(var/datum/data/record/R in GLOB.data_core.medical) + if(prob(10/severity)) + switch(rand(1,6)) + if(1) + if(prob(10)) + R.fields["name"] = random_unique_lizard_name(R.fields["sex"],1) + else + R.fields["name"] = random_unique_name(R.fields["sex"],1) + if(2) + R.fields["sex"] = pick("Male", "Female") + if(3) + R.fields["age"] = rand(AGE_MIN, AGE_MAX) + if(4) + R.fields["blood_type"] = random_blood_type() + if(5) + R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + if(6) + R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") + continue + + else if(prob(1)) + qdel(R) + continue + ..() + +/obj/machinery/computer/med_data/proc/canUseMedicalRecordsConsole(mob/user, message = 1, record1, record2) + if(user) + if(message) + if(authenticated) + if(user.canUseTopic(src)) + if(!record1 || record1 == active1) + if(!record2 || record2 == active2) + return 1 + return 0 + +/obj/machinery/computer/med_data/laptop + name = "medical laptop" + desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." + icon_state = "laptop" + icon_screen = "medlaptop" + icon_keyboard = "laptop_key" + clockwork = TRUE //it'd look weird diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 8791a31f80..0940caef48 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -1,28 +1,31 @@ -/obj/machinery/computer/secure_data//TODO:SANITY - name = "security records console" - desc = "Used to view and edit personnel's security records." - icon_screen = "security" - icon_keyboard = "security_key" - req_one_access = list(GLOB.access_security, GLOB.access_forensics_lockers) - circuit = /obj/item/weapon/circuitboard/computer/secure_data - var/obj/item/weapon/card/id/scan = null - var/authenticated = null - var/rank = null - var/screen = null - var/datum/data/record/active1 = null - var/datum/data/record/active2 = null - var/a_id = null - var/temp = null - var/printing = null - var/can_change_id = 0 - var/list/Perp - var/tempname = null - //Sorting Variables - var/sortBy = "name" - var/order = 1 // -1 = Descending - 1 = Ascending - - light_color = LIGHT_COLOR_RED - +/obj/machinery/computer/secure_data//TODO:SANITY + name = "security records console" + desc = "Used to view and edit personnel's security records." + icon_screen = "security" + icon_keyboard = "security_key" + req_one_access = list(GLOB.access_security, GLOB.access_forensics_lockers) + circuit = /obj/item/weapon/circuitboard/computer/secure_data + var/obj/item/weapon/card/id/scan = null + var/authenticated = null + var/rank = null + var/screen = null + var/datum/data/record/active1 = null + var/datum/data/record/active2 = null + var/a_id = null + var/temp = null + var/printing = null + var/can_change_id = 0 + var/list/Perp + var/tempname = null + //Sorting Variables + var/sortBy = "name" + var/order = 1 // -1 = Descending - 1 = Ascending + + light_color = LIGHT_COLOR_RED + +/obj/machinery/computer/secure_data/syndie + icon_keyboard = "syndie_key" + /obj/machinery/computer/secure_data/laptop name = "security laptop" desc = "A cheap Nanotrasen security laptop, it functions as a security records console. It's bolted to the table." @@ -31,764 +34,764 @@ icon_keyboard = "laptop_key" clockwork = TRUE //it'd look weird -/obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/card/id)) - if(!scan) - if(!user.drop_item()) - return - O.loc = src - scan = O - to_chat(user, "You insert [O].") - else - to_chat(user, "There's already an ID card in the console.") - else - return ..() - -//Someone needs to break down the dat += into chunks instead of long ass lines. -/obj/machinery/computer/secure_data/attack_hand(mob/user) - if(..()) - return - if(src.z > 6) - to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") - return - var/dat - - if(temp) - dat = text("[]

    Clear Screen", temp, src) - else - dat = text("Confirm Identity: []
    ", src, (scan ? text("[]", scan.name) : "----------")) - if(authenticated) - switch(screen) - if(1) - - //body tag start + onload and onkeypress (onkeyup) javascript event calls - dat += "" - //search bar javascript - dat += {" - - - - - - - - "} - dat += {" -

    "} - dat += text("New Record
    ", src) - //search bar - dat += {" - - - - -
    - Search: -
    - "} - dat += {" -

    - - - - -
    Records:
    - - - - - - - - - -"} - if(!isnull(GLOB.data_core.general)) - for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order)) - var/crimstat = "" - for(var/datum/data/record/E in GLOB.data_core.security) - if((E.fields["name"] == R.fields["name"]) && (E.fields["id"] == R.fields["id"])) - crimstat = E.fields["criminal"] - var/background - switch(crimstat) - if("*Arrest*") - background = "'background-color:#990000;'" - if("Incarcerated") - background = "'background-color:#CD6500;'" - if("Parolled") - background = "'background-color:#CD6500;'" - if("Discharged") - background = "'background-color:#006699;'" - if("None") - background = "'background-color:#4F7529;'" - if("") - background = "''" //"'background-color:#FFFFFF;'" - crimstat = "No Record." - dat += "" - dat += text("", R.fields["name"], R.fields["id"], R.fields["rank"], R.fields["fingerprint"], src, R, R.fields["name"]) - dat += text("", R.fields["id"]) - dat += text("", R.fields["rank"]) - dat += text("", R.fields["fingerprint"]) - dat += text("", crimstat) - dat += {" -
    NameIDRankFingerprintsCriminal Status
    [][][][][]
    - -
    "} - dat += text("Record Maintenance

    ", src) - dat += text("{Log Out}",src) - if(2) - dat += "Records Maintenance
    " - dat += "
    Delete All Records

    Back" - if(3) - dat += "Security Record
    " - if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)) - if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] - user << browse_rsc(P1.img, "photo_front") - if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] - user << browse_rsc(P2.img, "photo_side") - dat += {" -
    - - - - "} - if(config.mutant_races) - dat += "" - dat += {" - - - -
    Name: [active1.fields["name"]] 
    ID: [active1.fields["id"]] 
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Rank: [active1.fields["rank"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    -

    - Update front photo

    - Update side photo
    -
    "} - else - dat += "
    General Record Lost!
    " - if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2))) - dat += "Security Data" - dat += "
    Criminal Status: [active2.fields["criminal"]]" - dat += "

    Minor Crimes: Add New" - - - dat +={" - - - - - - - "} - for(var/datum/data/crime/c in active2.fields["mi_crim"]) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " - - - dat += "
    Major Crimes: Add New" - - dat +={" - - - - - - - "} - for(var/datum/data/crime/c in active2.fields["ma_crim"]) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " - - dat += "
    \nImportant Notes:
    \n\t [active2.fields["notes"]] " - dat += "

    Comments/Log
    " - var/counter = 1 - while(active2.fields[text("com_[]", counter)]) - dat += (active2.fields[text("com_[]", counter)] + "
    ") - if(active2.fields[text("com_[]", counter)] != "Deleted") - dat += text("Delete Entry

    ", src, counter) - counter++ - dat += text("Add Entry

    ", src) - dat += text("Delete Record (Security Only)
    ", src) - else - dat += "Security Record Lost!
    " - dat += text("New Security Record

    ", src) - dat += text("Delete Record (ALL)
    Print Record
    Print Wanted Poster
    Back
    ", src, src, src, src) - else - else - dat += text("{Log In}", src) - var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - -/*Revised /N -I can't be bothered to look more of the actual code outside of switch but that probably needs revising too. -What a mess.*/ -/obj/machinery/computer/secure_data/Topic(href, href_list) - . = ..() - if(.) - return . - if(!( GLOB.data_core.general.Find(active1) )) - active1 = null - if(!( GLOB.data_core.security.Find(active2) )) - active2 = null - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) - usr.set_machine(src) - switch(href_list["choice"]) -// SORTING! - if("Sorting") - // Reverse the order if clicked twice - if(sortBy == href_list["sort"]) - if(order == 1) - order = -1 - else - order = 1 - else - // New sorting order! - sortBy = href_list["sort"] - order = initial(order) -//BASIC FUNCTIONS - if("Clear Screen") - temp = null - - if("Return") - screen = 1 - active1 = null - active2 = null - - if("Confirm Identity") - if(scan) - if(ishuman(usr) && !usr.get_active_held_item()) - usr.put_in_hands(scan) - else - scan.loc = get_turf(src) - scan = null - else - var/obj/item/I = usr.get_active_held_item() - if(istype(I, /obj/item/weapon/card/id)) - if(!usr.drop_item()) - return - I.loc = src - scan = I - - if("Log Out") - authenticated = null - screen = null - active1 = null - active2 = null - - if("Log In") - if(issilicon(usr)) - var/mob/living/silicon/borg = usr - active1 = null - active2 = null - authenticated = borg.name - rank = "AI" - screen = 1 - else if(IsAdminGhost(usr)) - active1 = null - active2 = null - authenticated = usr.client.holder.admin_signature - rank = "Central Command" - screen = 1 - else if(istype(scan, /obj/item/weapon/card/id)) - active1 = null - active2 = null - if(check_access(scan)) - authenticated = scan.registered_name - rank = scan.assignment - screen = 1 -//RECORD FUNCTIONS - if("Record Maintenance") - screen = 2 - active1 = null - active2 = null - - if("Browse Record") - var/datum/data/record/R = locate(href_list["d_rec"]) - var/S = locate(href_list["d_rec"]) - if(!( GLOB.data_core.general.Find(R) )) - temp = "Record Not Found!" - else - for(var/datum/data/record/E in GLOB.data_core.security) - if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) - S = E - active1 = R - active2 = S - screen = 3 - - - if("Print Record") - if(!( printing )) - printing = 1 - GLOB.data_core.securityPrintCount++ - playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) - sleep(30) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) - P.info = "
    Security Record - (SR-[GLOB.data_core.securityPrintCount])

    " - if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))) - P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"]) - if(config.mutant_races) - P.info += "\nSpecies: [active1.fields["species"]]
    " - P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) - else - P.info += "General Record Lost!
    " - if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2))) - P.info += text("
    \n
    Security Data

    \nCriminal Status: []", active2.fields["criminal"]) - - P.info += "
    \n
    \nMinor Crimes:
    \n" - P.info +={" - - - - - -"} - for(var/datum/data/crime/c in active2.fields["mi_crim"]) - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " - - P.info += "
    \nMajor Crimes:
    \n" - P.info +={" - - - - - -"} - for(var/datum/data/crime/c in active2.fields["ma_crim"]) - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " - - - P.info += text("
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["notes"]) - var/counter = 1 - while(active2.fields[text("com_[]", counter)]) - P.info += text("[]
    ", active2.fields[text("com_[]", counter)]) - counter++ - P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, active1.fields["name"]) - else - P.info += "Security Record Lost!
    " - P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, "Record Lost") - P.info += "" - printing = null - if("Print Poster") - if(!( printing )) - var/wanted_name = stripped_input(usr, "Please enter an alias for the criminal:", "Print Wanted Poster", active1.fields["name"]) - if(wanted_name) - var/default_description = "A poster declaring [wanted_name] to be a dangerous individual, wanted by Nanotrasen. Report any sightings to security immediately." - var/list/major_crimes = active2.fields["ma_crim"] - var/list/minor_crimes = active2.fields["mi_crim"] - if(major_crimes.len + minor_crimes.len) - default_description += "\n[wanted_name] is wanted for the following crimes:\n" - if(minor_crimes.len) - default_description += "\nMinor Crimes:" - for(var/datum/data/crime/c in active2.fields["mi_crim"]) - default_description += "\n[c.crimeName]\n" - default_description += "[c.crimeDetails]\n" - if(major_crimes.len) - default_description += "\nMajor Crimes:" - for(var/datum/data/crime/c in active2.fields["ma_crim"]) - default_description += "\n[c.crimeName]\n" - default_description += "[c.crimeDetails]\n" - - var/info = stripped_multiline_input(usr, "Please input a description for the poster:", "Print Wanted Poster", default_description, null) - if(info) - playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) - printing = 1 - sleep(30) - if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)))//make sure the record still exists. - var/obj/item/weapon/photo/photo = active1.fields["photo_front"] - new /obj/item/weapon/poster/wanted(src.loc, photo.img, wanted_name, info) - printing = 0 - -//RECORD DELETE - if("Delete All Records") - temp = "" - temp += "Are you sure you wish to delete all Security records?
    " - temp += "Yes
    " - temp += "No" - - if("Purge All Records") +/obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/card/id)) + if(!scan) + if(!user.drop_item()) + return + O.loc = src + scan = O + to_chat(user, "You insert [O].") + else + to_chat(user, "There's already an ID card in the console.") + else + return ..() + +//Someone needs to break down the dat += into chunks instead of long ass lines. +/obj/machinery/computer/secure_data/attack_hand(mob/user) + if(..()) + return + if(src.z > 6) + to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") + return + var/dat + + if(temp) + dat = text("[]

    Clear Screen", temp, src) + else + dat = text("Confirm Identity: []
    ", src, (scan ? text("[]", scan.name) : "----------")) + if(authenticated) + switch(screen) + if(1) + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + //search bar javascript + dat += {" + + + + + + + + "} + dat += {" +

    "} + dat += text("New Record
    ", src) + //search bar + dat += {" + + + + +
    + Search: +
    + "} + dat += {" +

    + + + + +
    Records:
    + + + + + + + + + +"} + if(!isnull(GLOB.data_core.general)) + for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order)) + var/crimstat = "" + for(var/datum/data/record/E in GLOB.data_core.security) + if((E.fields["name"] == R.fields["name"]) && (E.fields["id"] == R.fields["id"])) + crimstat = E.fields["criminal"] + var/background + switch(crimstat) + if("*Arrest*") + background = "'background-color:#990000;'" + if("Incarcerated") + background = "'background-color:#CD6500;'" + if("Parolled") + background = "'background-color:#CD6500;'" + if("Discharged") + background = "'background-color:#006699;'" + if("None") + background = "'background-color:#4F7529;'" + if("") + background = "''" //"'background-color:#FFFFFF;'" + crimstat = "No Record." + dat += "" + dat += text("", R.fields["name"], R.fields["id"], R.fields["rank"], R.fields["fingerprint"], src, R, R.fields["name"]) + dat += text("", R.fields["id"]) + dat += text("", R.fields["rank"]) + dat += text("", R.fields["fingerprint"]) + dat += text("", crimstat) + dat += {" +
    NameIDRankFingerprintsCriminal Status
    [][][][][]
    + +
    "} + dat += text("Record Maintenance

    ", src) + dat += text("{Log Out}",src) + if(2) + dat += "Records Maintenance
    " + dat += "
    Delete All Records

    Back" + if(3) + dat += "Security Record
    " + if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] + user << browse_rsc(P1.img, "photo_front") + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] + user << browse_rsc(P2.img, "photo_side") + dat += {" +
    + + + + "} + if(config.mutant_races) + dat += "" + dat += {" + + + +
    Name: [active1.fields["name"]] 
    ID: [active1.fields["id"]] 
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Rank: [active1.fields["rank"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    +

    + Update front photo

    + Update side photo
    +
    "} + else + dat += "
    General Record Lost!
    " + if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2))) + dat += "Security Data" + dat += "
    Criminal Status: [active2.fields["criminal"]]" + dat += "

    Minor Crimes: Add New" + + + dat +={" + + + + + + + "} + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " + + + dat += "
    Major Crimes: Add New" + + dat +={" + + + + + + + "} + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " + + dat += "
    \nImportant Notes:
    \n\t [active2.fields["notes"]] " + dat += "

    Comments/Log
    " + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + dat += (active2.fields[text("com_[]", counter)] + "
    ") + if(active2.fields[text("com_[]", counter)] != "Deleted") + dat += text("Delete Entry

    ", src, counter) + counter++ + dat += text("Add Entry

    ", src) + dat += text("Delete Record (Security Only)
    ", src) + else + dat += "Security Record Lost!
    " + dat += text("New Security Record

    ", src) + dat += text("Delete Record (ALL)
    Print Record
    Print Wanted Poster
    Back
    ", src, src, src, src) + else + else + dat += text("{Log In}", src) + var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/*Revised /N +I can't be bothered to look more of the actual code outside of switch but that probably needs revising too. +What a mess.*/ +/obj/machinery/computer/secure_data/Topic(href, href_list) + . = ..() + if(.) + return . + if(!( GLOB.data_core.general.Find(active1) )) + active1 = null + if(!( GLOB.data_core.security.Find(active2) )) + active2 = null + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + usr.set_machine(src) + switch(href_list["choice"]) +// SORTING! + if("Sorting") + // Reverse the order if clicked twice + if(sortBy == href_list["sort"]) + if(order == 1) + order = -1 + else + order = 1 + else + // New sorting order! + sortBy = href_list["sort"] + order = initial(order) +//BASIC FUNCTIONS + if("Clear Screen") + temp = null + + if("Return") + screen = 1 + active1 = null + active2 = null + + if("Confirm Identity") + if(scan) + if(ishuman(usr) && !usr.get_active_held_item()) + usr.put_in_hands(scan) + else + scan.loc = get_turf(src) + scan = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + scan = I + + if("Log Out") + authenticated = null + screen = null + active1 = null + active2 = null + + if("Log In") + if(issilicon(usr)) + var/mob/living/silicon/borg = usr + active1 = null + active2 = null + authenticated = borg.name + rank = "AI" + screen = 1 + else if(IsAdminGhost(usr)) + active1 = null + active2 = null + authenticated = usr.client.holder.admin_signature + rank = "Central Command" + screen = 1 + else if(istype(scan, /obj/item/weapon/card/id)) + active1 = null + active2 = null + if(check_access(scan)) + authenticated = scan.registered_name + rank = scan.assignment + screen = 1 +//RECORD FUNCTIONS + if("Record Maintenance") + screen = 2 + active1 = null + active2 = null + + if("Browse Record") + var/datum/data/record/R = locate(href_list["d_rec"]) + var/S = locate(href_list["d_rec"]) + if(!( GLOB.data_core.general.Find(R) )) + temp = "Record Not Found!" + else + for(var/datum/data/record/E in GLOB.data_core.security) + if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) + S = E + active1 = R + active2 = S + screen = 3 + + + if("Print Record") + if(!( printing )) + printing = 1 + GLOB.data_core.securityPrintCount++ + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + sleep(30) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) + P.info = "
    Security Record - (SR-[GLOB.data_core.securityPrintCount])

    " + if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))) + P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"]) + if(config.mutant_races) + P.info += "\nSpecies: [active1.fields["species"]]
    " + P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) + else + P.info += "General Record Lost!
    " + if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2))) + P.info += text("
    \n
    Security Data

    \nCriminal Status: []", active2.fields["criminal"]) + + P.info += "
    \n
    \nMinor Crimes:
    \n" + P.info +={" + + + + + +"} + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " + + P.info += "
    \nMajor Crimes:
    \n" + P.info +={" + + + + + +"} + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " + + + P.info += text("
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["notes"]) + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + P.info += text("[]
    ", active2.fields[text("com_[]", counter)]) + counter++ + P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, active1.fields["name"]) + else + P.info += "Security Record Lost!
    " + P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, "Record Lost") + P.info += "" + printing = null + if("Print Poster") + if(!( printing )) + var/wanted_name = stripped_input(usr, "Please enter an alias for the criminal:", "Print Wanted Poster", active1.fields["name"]) + if(wanted_name) + var/default_description = "A poster declaring [wanted_name] to be a dangerous individual, wanted by Nanotrasen. Report any sightings to security immediately." + var/list/major_crimes = active2.fields["ma_crim"] + var/list/minor_crimes = active2.fields["mi_crim"] + if(major_crimes.len + minor_crimes.len) + default_description += "\n[wanted_name] is wanted for the following crimes:\n" + if(minor_crimes.len) + default_description += "\nMinor Crimes:" + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + default_description += "\n[c.crimeName]\n" + default_description += "[c.crimeDetails]\n" + if(major_crimes.len) + default_description += "\nMajor Crimes:" + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + default_description += "\n[c.crimeName]\n" + default_description += "[c.crimeDetails]\n" + + var/info = stripped_multiline_input(usr, "Please input a description for the poster:", "Print Wanted Poster", default_description, null) + if(info) + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + printing = 1 + sleep(30) + if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)))//make sure the record still exists. + var/obj/item/weapon/photo/photo = active1.fields["photo_front"] + new /obj/item/weapon/poster/wanted(src.loc, photo.img, wanted_name, info) + printing = 0 + +//RECORD DELETE + if("Delete All Records") + temp = "" + temp += "Are you sure you wish to delete all Security records?
    " + temp += "Yes
    " + temp += "No" + + if("Purge All Records") investigate_log("[usr.name] ([usr.key]) has purged all the security records.", INVESTIGATE_RECORDS) - for(var/datum/data/record/R in GLOB.data_core.security) - qdel(R) - GLOB.data_core.security.Cut() - temp = "All Security records deleted." - - if("Add Entry") - if(!( istype(active2, /datum/data/record) )) - return - var/a2 = active2 - var/t1 = stripped_multiline_input("Add Comment:", "Secure. records", null, null) - if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) - return - var/counter = 1 - while(active2.fields[text("com_[]", counter)]) - counter++ - active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1) - - if("Delete Record (ALL)") - if(active1) - temp = "
    Are you sure you wish to delete the record (ALL)?
    " - temp += "Yes
    " - temp += "No" - - if("Delete Record (Security)") - if(active2) - temp = "
    Are you sure you wish to delete the record (Security Portion Only)?
    " - temp += "Yes
    " - temp += "No" - - if("Delete Entry") - if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])])) - active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" -//RECORD CREATE - if("New Record (Security)") - if((istype(active1, /datum/data/record) && !( istype(active2, /datum/data/record) ))) - var/datum/data/record/R = new /datum/data/record() - R.fields["name"] = active1.fields["name"] - R.fields["id"] = active1.fields["id"] - R.name = text("Security Record #[]", R.fields["id"]) - R.fields["criminal"] = "None" - R.fields["mi_crim"] = list() - R.fields["ma_crim"] = list() - R.fields["notes"] = "No notes." - GLOB.data_core.security += R - active2 = R - screen = 3 - - if("New Record (General)") - //General Record - var/datum/data/record/G = new /datum/data/record() - G.fields["name"] = "New Record" - G.fields["id"] = "[num2hex(rand(1, 1.6777215E7), 6)]" - G.fields["rank"] = "Unassigned" - G.fields["sex"] = "Male" - G.fields["age"] = "Unknown" - if(config.mutant_races) - G.fields["species"] = "Human" - G.fields["photo_front"] = new /icon() - G.fields["photo_side"] = new /icon() - G.fields["fingerprint"] = "?????" - G.fields["p_stat"] = "Active" - G.fields["m_stat"] = "Stable" - GLOB.data_core.general += G - active1 = G - - //Security Record - var/datum/data/record/R = new /datum/data/record() - R.fields["name"] = active1.fields["name"] - R.fields["id"] = active1.fields["id"] - R.name = text("Security Record #[]", R.fields["id"]) - R.fields["criminal"] = "None" - R.fields["mi_crim"] = list() - R.fields["ma_crim"] = list() - R.fields["notes"] = "No notes." - GLOB.data_core.security += R - active2 = R - - //Medical Record - var/datum/data/record/M = new /datum/data/record() - M.fields["id"] = active1.fields["id"] - M.fields["name"] = active1.fields["name"] - M.fields["blood_type"] = "?" - M.fields["b_dna"] = "?????" - M.fields["mi_dis"] = "None" - M.fields["mi_dis_d"] = "No minor disabilities have been declared." - M.fields["ma_dis"] = "None" - M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." - M.fields["alg"] = "None" - M.fields["alg_d"] = "No allergies have been detected in this patient." - M.fields["cdi"] = "None" - M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." - M.fields["notes"] = "No notes." - GLOB.data_core.medical += M - - - -//FIELD FUNCTIONS - if("Edit Field") - var/a1 = active1 - var/a2 = active2 - - switch(href_list["field"]) - if("name") - if(istype(active1, /datum/data/record) || istype(active2, /datum/data/record)) - var/t1 = copytext(sanitize(input("Please input name:", "Secure. records", active1.fields["name"], null) as text),1,MAX_MESSAGE_LEN) - if(!canUseSecurityRecordsConsole(usr, t1, a1)) - return - if(istype(active1, /datum/data/record)) - active1.fields["name"] = t1 - if(istype(active2, /datum/data/record)) - active2.fields["name"] = t1 - if("id") - if(istype(active2,/datum/data/record) || istype(active1,/datum/data/record)) - var/t1 = stripped_input(usr, "Please input id:", "Secure. records", active1.fields["id"], null) - if(!canUseSecurityRecordsConsole(usr, t1, a1)) - return - if(istype(active1,/datum/data/record)) - active1.fields["id"] = t1 - if(istype(active2,/datum/data/record)) - active2.fields["id"] = t1 - if("fingerprint") - if(istype(active1, /datum/data/record)) - var/t1 = stripped_input(usr, "Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) - if(!canUseSecurityRecordsConsole(usr, t1, a1)) - return - active1.fields["fingerprint"] = t1 - if("sex") - if(istype(active1, /datum/data/record)) - if(active1.fields["sex"] == "Male") - active1.fields["sex"] = "Female" - else - active1.fields["sex"] = "Male" - if("age") - if(istype(active1, /datum/data/record)) - var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num - if(!canUseSecurityRecordsConsole(usr, "age", a1)) - return - active1.fields["age"] = t1 - if("species") - if(istype(active1, /datum/data/record)) - var/t1 = input("Select a species", "Species Selection") as null|anything in GLOB.roundstart_species - if(!canUseSecurityRecordsConsole(usr, t1, a1)) - return - active1.fields["species"] = t1 - if("show_photo_front") - if(active1.fields["photo_front"]) - if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = active1.fields["photo_front"] - P.show(usr) - if("upd_photo_front") - var/icon/photo = get_photo(usr) - if(photo) - qdel(active1.fields["photo_front"]) - active1.fields["photo_front"] = photo - if("show_photo_side") - if(active1.fields["photo_side"]) - if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = active1.fields["photo_side"] - P.show(usr) - if("upd_photo_side") - var/icon/photo = get_photo(usr) - if(photo) - qdel(active1.fields["photo_side"]) - active1.fields["photo_side"] = photo - if("mi_crim_add") - if(istype(active1, /datum/data/record)) - var/t1 = stripped_input(usr, "Please input minor crime names:", "Secure. records", "", null) + for(var/datum/data/record/R in GLOB.data_core.security) + qdel(R) + GLOB.data_core.security.Cut() + temp = "All Security records deleted." + + if("Add Entry") + if(!( istype(active2, /datum/data/record) )) + return + var/a2 = active2 + var/t1 = stripped_multiline_input("Add Comment:", "Secure. records", null, null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + counter++ + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1) + + if("Delete Record (ALL)") + if(active1) + temp = "
    Are you sure you wish to delete the record (ALL)?
    " + temp += "Yes
    " + temp += "No" + + if("Delete Record (Security)") + if(active2) + temp = "
    Are you sure you wish to delete the record (Security Portion Only)?
    " + temp += "Yes
    " + temp += "No" + + if("Delete Entry") + if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])])) + active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" +//RECORD CREATE + if("New Record (Security)") + if((istype(active1, /datum/data/record) && !( istype(active2, /datum/data/record) ))) + var/datum/data/record/R = new /datum/data/record() + R.fields["name"] = active1.fields["name"] + R.fields["id"] = active1.fields["id"] + R.name = text("Security Record #[]", R.fields["id"]) + R.fields["criminal"] = "None" + R.fields["mi_crim"] = list() + R.fields["ma_crim"] = list() + R.fields["notes"] = "No notes." + GLOB.data_core.security += R + active2 = R + screen = 3 + + if("New Record (General)") + //General Record + var/datum/data/record/G = new /datum/data/record() + G.fields["name"] = "New Record" + G.fields["id"] = "[num2hex(rand(1, 1.6777215E7), 6)]" + G.fields["rank"] = "Unassigned" + G.fields["sex"] = "Male" + G.fields["age"] = "Unknown" + if(config.mutant_races) + G.fields["species"] = "Human" + G.fields["photo_front"] = new /icon() + G.fields["photo_side"] = new /icon() + G.fields["fingerprint"] = "?????" + G.fields["p_stat"] = "Active" + G.fields["m_stat"] = "Stable" + GLOB.data_core.general += G + active1 = G + + //Security Record + var/datum/data/record/R = new /datum/data/record() + R.fields["name"] = active1.fields["name"] + R.fields["id"] = active1.fields["id"] + R.name = text("Security Record #[]", R.fields["id"]) + R.fields["criminal"] = "None" + R.fields["mi_crim"] = list() + R.fields["ma_crim"] = list() + R.fields["notes"] = "No notes." + GLOB.data_core.security += R + active2 = R + + //Medical Record + var/datum/data/record/M = new /datum/data/record() + M.fields["id"] = active1.fields["id"] + M.fields["name"] = active1.fields["name"] + M.fields["blood_type"] = "?" + M.fields["b_dna"] = "?????" + M.fields["mi_dis"] = "None" + M.fields["mi_dis_d"] = "No minor disabilities have been declared." + M.fields["ma_dis"] = "None" + M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + M.fields["alg"] = "None" + M.fields["alg_d"] = "No allergies have been detected in this patient." + M.fields["cdi"] = "None" + M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + M.fields["notes"] = "No notes." + GLOB.data_core.medical += M + + + +//FIELD FUNCTIONS + if("Edit Field") + var/a1 = active1 + var/a2 = active2 + + switch(href_list["field"]) + if("name") + if(istype(active1, /datum/data/record) || istype(active2, /datum/data/record)) + var/t1 = copytext(sanitize(input("Please input name:", "Secure. records", active1.fields["name"], null) as text),1,MAX_MESSAGE_LEN) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + if(istype(active1, /datum/data/record)) + active1.fields["name"] = t1 + if(istype(active2, /datum/data/record)) + active2.fields["name"] = t1 + if("id") + if(istype(active2,/datum/data/record) || istype(active1,/datum/data/record)) + var/t1 = stripped_input(usr, "Please input id:", "Secure. records", active1.fields["id"], null) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + if(istype(active1,/datum/data/record)) + active1.fields["id"] = t1 + if(istype(active2,/datum/data/record)) + active2.fields["id"] = t1 + if("fingerprint") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + active1.fields["fingerprint"] = t1 + if("sex") + if(istype(active1, /datum/data/record)) + if(active1.fields["sex"] == "Male") + active1.fields["sex"] = "Female" + else + active1.fields["sex"] = "Male" + if("age") + if(istype(active1, /datum/data/record)) + var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num + if(!canUseSecurityRecordsConsole(usr, "age", a1)) + return + active1.fields["age"] = t1 + if("species") + if(istype(active1, /datum/data/record)) + var/t1 = input("Select a species", "Species Selection") as null|anything in GLOB.roundstart_species + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + active1.fields["species"] = t1 + if("show_photo_front") + if(active1.fields["photo_front"]) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_front"] + P.show(usr) + if("upd_photo_front") + var/icon/photo = get_photo(usr) + if(photo) + qdel(active1.fields["photo_front"]) + active1.fields["photo_front"] = photo + if("show_photo_side") + if(active1.fields["photo_side"]) + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_side"] + P.show(usr) + if("upd_photo_side") + var/icon/photo = get_photo(usr) + if(photo) + qdel(active1.fields["photo_side"]) + active1.fields["photo_side"] = photo + if("mi_crim_add") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input minor crime names:", "Secure. records", "", null) var/t2 = stripped_input(usr, "Please input minor crime details:", "Secure. records", "", null) - if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) - return - var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) - GLOB.data_core.addMinorCrime(active1.fields["id"], crime) - if("mi_crim_delete") - if(istype(active1, /datum/data/record)) - if(href_list["cdataid"]) - if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) - return - GLOB.data_core.removeMinorCrime(active1.fields["id"], href_list["cdataid"]) - if("ma_crim_add") - if(istype(active1, /datum/data/record)) - var/t1 = stripped_input(usr, "Please input major crime names:", "Secure. records", "", null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) + GLOB.data_core.addMinorCrime(active1.fields["id"], crime) + if("mi_crim_delete") + if(istype(active1, /datum/data/record)) + if(href_list["cdataid"]) + if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) + return + GLOB.data_core.removeMinorCrime(active1.fields["id"], href_list["cdataid"]) + if("ma_crim_add") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input major crime names:", "Secure. records", "", null) var/t2 = stripped_input(usr, "Please input major crime details:", "Secure. records", "", null) - if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) - return - var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) - GLOB.data_core.addMajorCrime(active1.fields["id"], crime) - if("ma_crim_delete") - if(istype(active1, /datum/data/record)) - if(href_list["cdataid"]) - if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) - return - GLOB.data_core.removeMajorCrime(active1.fields["id"], href_list["cdataid"]) - if("notes") - if(istype(active2, /datum/data/record)) - var/t1 = stripped_input(usr, "Please summarize notes:", "Secure. records", active2.fields["notes"], null) - if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) - return - active2.fields["notes"] = t1 - if("criminal") - if(istype(active2, /datum/data/record)) - temp = "
    Criminal Status:
    " - temp += "" - if("rank") - var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" ) - //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N - if((istype(active1, /datum/data/record) && L.Find(rank))) - temp = "
    Rank:
    " - temp += "
      " - for(var/rank in get_all_jobs()) - temp += "
    • [rank]
    • " - temp += "
    " - else - alert(usr, "You do not have the required rank to do this!") -//TEMPORARY MENU FUNCTIONS - else//To properly clear as per clear screen. - temp=null - switch(href_list["choice"]) - if("Change Rank") - if(active1) - active1.fields["rank"] = href_list["rank"] - if(href_list["rank"] in get_all_jobs()) - active1.fields["real_rank"] = href_list["real_rank"] - - if("Change Criminal Status") - if(active2) - var/old_field = active2.fields["criminal"] - switch(href_list["criminal2"]) - if("none") - active2.fields["criminal"] = "None" - if("arrest") - active2.fields["criminal"] = "*Arrest*" - if("incarcerated") - active2.fields["criminal"] = "Incarcerated" - if("parolled") - active2.fields["criminal"] = "Parolled" - if("released") - active2.fields["criminal"] = "Discharged" + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) + GLOB.data_core.addMajorCrime(active1.fields["id"], crime) + if("ma_crim_delete") + if(istype(active1, /datum/data/record)) + if(href_list["cdataid"]) + if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) + return + GLOB.data_core.removeMajorCrime(active1.fields["id"], href_list["cdataid"]) + if("notes") + if(istype(active2, /datum/data/record)) + var/t1 = stripped_input(usr, "Please summarize notes:", "Secure. records", active2.fields["notes"], null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + active2.fields["notes"] = t1 + if("criminal") + if(istype(active2, /datum/data/record)) + temp = "
    Criminal Status:
    " + temp += "" + if("rank") + var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" ) + //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N + if((istype(active1, /datum/data/record) && L.Find(rank))) + temp = "
    Rank:
    " + temp += "
      " + for(var/rank in get_all_jobs()) + temp += "
    • [rank]
    • " + temp += "
    " + else + alert(usr, "You do not have the required rank to do this!") +//TEMPORARY MENU FUNCTIONS + else//To properly clear as per clear screen. + temp=null + switch(href_list["choice"]) + if("Change Rank") + if(active1) + active1.fields["rank"] = href_list["rank"] + if(href_list["rank"] in get_all_jobs()) + active1.fields["real_rank"] = href_list["real_rank"] + + if("Change Criminal Status") + if(active2) + var/old_field = active2.fields["criminal"] + switch(href_list["criminal2"]) + if("none") + active2.fields["criminal"] = "None" + if("arrest") + active2.fields["criminal"] = "*Arrest*" + if("incarcerated") + active2.fields["criminal"] = "Incarcerated" + if("parolled") + active2.fields["criminal"] = "Parolled" + if("released") + active2.fields["criminal"] = "Discharged" investigate_log("[active1.fields["name"]] has been set from [old_field] to [active2.fields["criminal"]] by [usr.name] ([usr.key]).", INVESTIGATE_RECORDS) - for(var/mob/living/carbon/human/H in GLOB.mob_list) //thanks for forcing me to do this, whoever wrote this shitty records system - H.sec_hud_set_security_status() - if("Delete Record (Security) Execute") + for(var/mob/living/carbon/human/H in GLOB.mob_list) //thanks for forcing me to do this, whoever wrote this shitty records system + H.sec_hud_set_security_status() + if("Delete Record (Security) Execute") investigate_log("[usr.name] ([usr.key]) has deleted the security records for [active1.fields["name"]].", INVESTIGATE_RECORDS) - if(active2) - qdel(active2) - active2 = null - - if("Delete Record (ALL) Execute") - if(active1) + if(active2) + qdel(active2) + active2 = null + + if("Delete Record (ALL) Execute") + if(active1) investigate_log("[usr.name] ([usr.key]) has deleted all records for [active1.fields["name"]].", INVESTIGATE_RECORDS) - for(var/datum/data/record/R in GLOB.data_core.medical) - if((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) - qdel(R) - break - qdel(active1) - active1 = null - - if(active2) - qdel(active2) - active2 = null - else - temp = "This function does not appear to be working at the moment. Our apologies." - - add_fingerprint(usr) - updateUsrDialog() - return - -/obj/machinery/computer/secure_data/proc/get_photo(mob/user) - var/obj/item/weapon/photo/P = null - if(issilicon(user)) - var/mob/living/silicon/tempAI = user - var/datum/picture/selection = tempAI.GetPhoto() - if(selection) - P = new() - P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) - else if(istype(user.get_active_held_item(), /obj/item/weapon/photo)) - P = user.get_active_held_item() - return P - -/obj/machinery/computer/secure_data/emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - ..(severity) - return - - for(var/datum/data/record/R in GLOB.data_core.security) - if(prob(10/severity)) - switch(rand(1,8)) - if(1) - if(prob(10)) - R.fields["name"] = "[pick(lizard_name(MALE),lizard_name(FEMALE))]" - else - R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" - if(2) - R.fields["sex"] = pick("Male", "Female") - if(3) - R.fields["age"] = rand(5, 85) - if(4) - R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Parolled", "Discharged") - if(5) - R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") - if(6) - R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") - if(7) - R.fields["species"] = pick(GLOB.roundstart_species) - if(8) - var/datum/data/record/G = pick(GLOB.data_core.general) - R.fields["photo_front"] = G.fields["photo_front"] - R.fields["photo_side"] = G.fields["photo_side"] - continue - - else if(prob(1)) - qdel(R) - continue - - ..(severity) - -/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2) - if(user) - if(authenticated) - if(user.canUseTopic(src)) - if(!trim(message1)) - return 0 - if(!record1 || record1 == active1) - if(!record2 || record2 == active2) - return 1 - return 0 + for(var/datum/data/record/R in GLOB.data_core.medical) + if((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) + qdel(R) + break + qdel(active1) + active1 = null + + if(active2) + qdel(active2) + active2 = null + else + temp = "This function does not appear to be working at the moment. Our apologies." + + add_fingerprint(usr) + updateUsrDialog() + return + +/obj/machinery/computer/secure_data/proc/get_photo(mob/user) + var/obj/item/weapon/photo/P = null + if(issilicon(user)) + var/mob/living/silicon/tempAI = user + var/datum/picture/selection = tempAI.GetPhoto() + if(selection) + P = new() + P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) + else if(istype(user.get_active_held_item(), /obj/item/weapon/photo)) + P = user.get_active_held_item() + return P + +/obj/machinery/computer/secure_data/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + + for(var/datum/data/record/R in GLOB.data_core.security) + if(prob(10/severity)) + switch(rand(1,8)) + if(1) + if(prob(10)) + R.fields["name"] = "[pick(lizard_name(MALE),lizard_name(FEMALE))]" + else + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" + if(2) + R.fields["sex"] = pick("Male", "Female") + if(3) + R.fields["age"] = rand(5, 85) + if(4) + R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Parolled", "Discharged") + if(5) + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") + if(6) + R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") + if(7) + R.fields["species"] = pick(GLOB.roundstart_species) + if(8) + var/datum/data/record/G = pick(GLOB.data_core.general) + R.fields["photo_front"] = G.fields["photo_front"] + R.fields["photo_side"] = G.fields["photo_side"] + continue + + else if(prob(1)) + qdel(R) + continue + + ..(severity) + +/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2) + if(user) + if(authenticated) + if(user.canUseTopic(src)) + if(!trim(message1)) + return 0 + if(!record1 || record1 == active1) + if(!record2 || record2 == active2) + return 1 + return 0 diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index d626811e6a..f630a707da 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -42,7 +42,7 @@ return 1 var/obj/machinery/camera/C = null var/list/CL = null - if(O && istype(O, /list)) + if(O && islist(O)) CL = O if (CL.len == 1) C = CL[1] diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 84102c040e..ca602b749b 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -84,7 +84,7 @@ if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = P if(C.get_amount() >= 5) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You start to add cables to the frame...") if(do_after(user, 20*P.toolspeed, target = src)) if(C.get_amount() >= 5 && state == 1) @@ -131,7 +131,7 @@ var/obj/item/weapon/circuitboard/machine/B = P if(!user.drop_item()) return - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You add the circuit board to the frame.") circuit = B B.loc = src @@ -221,7 +221,7 @@ replacer.play_rped_sound() return - if(istype(P, /obj/item) && get_req_components_amt()) + if(isitem(P) && get_req_components_amt()) for(var/I in req_components) if(istype(P, I) && (req_components[I] > 0)) if(istype(P, /obj/item/stack)) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 214feeb63a..55d007901e 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -18,7 +18,7 @@ var/static/list/songs = list( new /datum/track("Engineering's Basic Beat", 'sound/misc/disco.ogg', 600, 5), new /datum/track("Engineering's Domination Dance", 'sound/misc/e1m1.ogg', 950, 6), - new /datum/track("Engineering's Superiority Shimmy", 'sound/misc/Paradox.ogg', 2400, 4), + new /datum/track("Engineering's Superiority Shimmy", 'sound/misc/paradox.ogg', 2400, 4), new /datum/track("Engineering's Ultimate High-Energy Hustle", 'sound/misc/boogie2.ogg', 1770, 5), ) var/datum/track/selection = null @@ -67,7 +67,7 @@ else if(anchored) to_chat(user,"You unsecure and disconnect the [src].") anchored = FALSE - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) return return ..() @@ -148,7 +148,7 @@ selection = available[selected] updateUsrDialog() if("horn") - deejay('sound/items/AirHorn2.ogg') + deejay('sound/items/airhorn2.ogg') if("alert") deejay('sound/misc/notice1.ogg') if("siren") @@ -158,11 +158,11 @@ if("pump") deejay('sound/weapons/shotgunpump.ogg') if("pop") - deejay('sound/weapons/Gunshot3.ogg') + deejay('sound/weapons/gunshot3.ogg') if("saber") deejay('sound/weapons/saberon.ogg') if("harm") - deejay('sound/AI/harmalarm.ogg') + deejay('sound/ai/harmalarm.ogg') /obj/machinery/disco/proc/deejay(var/S) if (QDELETED(src) || !active || charge < 5) diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index f07dd35dfc..cb7587963a 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -163,4 +163,4 @@ if(..(user,1,0)) //don't set the machine, since there's no dialog return - toggle_open(user) \ No newline at end of file + toggle_open(user) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 1e9c5729e3..7029234640 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -75,11 +75,11 @@ var/obj/item/weapon/note //Any papers pinned to the airlock var/detonated = 0 var/doorOpen = 'sound/machines/airlock.ogg' - var/doorClose = 'sound/machines/AirlockClose.ogg' - var/doorDeni = 'sound/machines/DeniedBeep.ogg' // i'm thinkin' Deni's - var/boltUp = 'sound/machines/BoltsUp.ogg' - var/boltDown = 'sound/machines/BoltsDown.ogg' - var/noPower = 'sound/machines/DoorClick.ogg' + var/doorClose = 'sound/machines/airlockclose.ogg' + var/doorDeni = 'sound/machines/deniedbeep.ogg' // i'm thinkin' Deni's + var/boltUp = 'sound/machines/boltsup.ogg' + var/boltDown = 'sound/machines/boltsdown.ogg' + var/noPower = 'sound/machines/doorclick.ogg' var/airlock_material = null //material of inner filling; if its an airlock with glass, this should be set to "glass" var/overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' @@ -259,7 +259,7 @@ addtimer(CALLBACK(src, .proc/reset_hallucinate_shock_animation, user, shock_image, electrocution_skeleton_anim), 40) user.playsound_local(get_turf(src), "sparks", 100, 1) user.staminaloss += 50 - user.Stun(2) + user.Stun(40) user.jitteriness += 1000 user.do_jitter_animation(user.jitteriness) addtimer(CALLBACK(src, .proc/hallucinate_shock_drop, user), 20) @@ -271,8 +271,7 @@ /obj/machinery/door/airlock/proc/hallucinate_shock_drop(mob/living/user) user.jitteriness = max(user.jitteriness - 990, 10) //Still jittery, but vastly less - user.Stun(3) - user.Weaken(3) + user.Knockdown(60) /obj/machinery/door/airlock/proc/isElectrified() if(src.secondsElectrified != NOT_ELECTRIFIED) @@ -746,8 +745,7 @@ if(!istype(H.head, /obj/item/clothing/head/helmet)) H.visible_message("[user] headbutts the airlock.", \ "You headbutt the airlock!") - H.Stun(5) - H.Weaken(5) + H.Knockdown(100) H.apply_damage(10, BRUTE, "head") else visible_message("[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.") @@ -1177,7 +1175,7 @@ "You hear welding.") playsound(loc, W.usesound, 40, 1) if(do_after(user,40*W.toolspeed, 1, target = src, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) welded = !welded user.visible_message("[user.name] has [welded? "welded shut":"unwelded"] [src].", \ "You [welded ? "weld the airlock shut":"unweld the airlock"].") @@ -1190,7 +1188,7 @@ "You hear welding.") playsound(loc, W.usesound, 40, 1) if(do_after(user,40*W.toolspeed, 1, target = src, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) obj_integrity = max_integrity stat &= ~BROKEN user.visible_message("[user.name] has repaired [src].", \ @@ -1202,7 +1200,7 @@ /obj/machinery/door/airlock/proc/weld_checks(obj/item/weapon/weldingtool/W, mob/user) return !operating && density && user && W && W.isOn() && user.loc -/obj/machinery/door/airlock/try_to_crowbar(obj/item/I, mob/user) +/obj/machinery/door/airlock/try_to_crowbar(obj/item/I, mob/living/user) var/beingcrowbarred = null if(istype(I, /obj/item/weapon/crowbar) ) beingcrowbarred = 1 @@ -1214,7 +1212,7 @@ if(!do_after(user, 150*I.toolspeed, target = src)) to_chat(user, "You slip and [charge] detonates!") charge.ex_act(1) - user.Weaken(3) + user.Knockdown(60) return user.visible_message("[user] removes [charge] from [src].", \ "You gently pry out [charge] from [src] and unhook its wires.") @@ -1302,7 +1300,7 @@ detonated = 1 charge = null for(var/mob/living/carbon/human/H in orange(2,src)) - H.Paralyse(8) + H.Unconscious(160) H.adjust_fire_stacks(20) H.IgniteMob() //Guaranteed knockout and ignition for nearby people H.apply_damage(40, BRUTE, "chest") diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 4d8861c45b..7fdaa950de 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -379,20 +379,20 @@ /obj/machinery/door/airlock/cult/canAIControl(mob/user) return (iscultist(user) && !isAllPowerCut()) -/obj/machinery/door/airlock/cult/allowed(mob/M) +/obj/machinery/door/airlock/cult/allowed(mob/living/L) if(!density) return 1 - if(friendly || iscultist(M) || istype(M, /mob/living/simple_animal/shade) || isconstruct(M)) + if(friendly || iscultist(L) || istype(L, /mob/living/simple_animal/shade) || isconstruct(L)) new openingoverlaytype(loc) return 1 else new /obj/effect/temp_visual/cult/sac(loc) var/atom/throwtarget - throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(M, src))) - M << pick(sound('sound/hallucinations/turn_around1.ogg',0,1,50), sound('sound/hallucinations/turn_around2.ogg',0,1,50)) - flash_color(M, flash_color="#960000", flash_time=20) - M.Weaken(2) - M.throw_at(throwtarget, 5, 1,src) + throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) + L << pick(sound('sound/hallucinations/turn_around1.ogg',0,1,50), sound('sound/hallucinations/turn_around2.ogg',0,1,50)) + flash_color(L, flash_color="#960000", flash_time=20) + L.Knockdown(40) + L.throw_at(throwtarget, 5, 1,src) return 0 /obj/machinery/door/airlock/cult/narsie_act() @@ -496,7 +496,7 @@ return /obj/machinery/door/airlock/clockwork/deconstruct(disassembled = TRUE) - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) if(!(flags & NODECONSTRUCT)) var/turf/T = get_turf(src) if(disassembled) @@ -516,7 +516,7 @@ if(!do_after(user, 75*I.toolspeed, target = src) || construction_state != GEAR_SECURE) return 1 user.visible_message("[user] loosens [src]'s cogwheel!", "[src]'s cogwheel pops off and dangles loosely.") - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) construction_state = GEAR_LOOSE else if(construction_state == GEAR_LOOSE) user.visible_message("[user] begins tightening [src]'s cogwheel...", "You begin tightening [src]'s cogwheel into place...") @@ -524,7 +524,7 @@ if(!do_after(user, 75*I.toolspeed, target = src) || construction_state != GEAR_LOOSE) return 1 user.visible_message("[user] tightens [src]'s cogwheel!", "You firmly tighten [src]'s cogwheel into place.") - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) construction_state = GEAR_SECURE return 1 else if(istype(I, /obj/item/weapon/crowbar)) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 6fb3312091..fe8580d9d7 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -1,257 +1,257 @@ -#define CHARS_PER_LINE 5 -#define FONT_SIZE "5pt" -#define FONT_COLOR "#09f" -#define FONT_STYLE "Arial Black" -#define MAX_TIMER 9000 - -#define PRESET_SHORT 1200 +#define CHARS_PER_LINE 5 +#define FONT_SIZE "5pt" +#define FONT_COLOR "#09f" +#define FONT_STYLE "Arial Black" +#define MAX_TIMER 9000 + +#define PRESET_SHORT 1200 #define PRESET_MEDIUM 1800 #define PRESET_LONG 3000 - - - -/////////////////////////////////////////////////////////////////////////////////////////////// -// Brig Door control displays. -// Description: This is a controls the timer for the brig doors, displays the timer on itself and -// has a popup window when used, allowing to set the timer. -// Code Notes: Combination of old brigdoor.dm code from rev4407 and the status_display.dm code -// Date: 01/September/2010 -// Programmer: Veryinky -///////////////////////////////////////////////////////////////////////////////////////////////// -/obj/machinery/door_timer - name = "door timer" - icon = 'icons/obj/status_display.dmi' - icon_state = "frame" - desc = "A remote control for a door." - req_access = list(GLOB.access_security) - anchored = 1 - density = 0 - var/id = null // id of linked machinery/lockers - - var/activation_time = 0 - var/timer_duration = 0 - - var/timing = FALSE // boolean, true/1 timer is on, false/0 means it's not timing - var/list/obj/machinery/targets = list() - var/obj/item/device/radio/Radio //needed to send messages to sec radio - - maptext_height = 26 - maptext_width = 32 - -/obj/machinery/door_timer/New() - ..() - - Radio = new/obj/item/device/radio(src) - Radio.listening = 0 - -/obj/machinery/door_timer/Initialize() - ..() - if(id != null) - for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) - if (M.id == id) - targets += M - - for(var/obj/machinery/flasher/F in urange(20, src)) - if(F.id == id) - targets += F - - for(var/obj/structure/closet/secure_closet/brig/C in urange(20, src)) - if(C.id == id) - targets += C - - if(!targets.len) - stat |= BROKEN - update_icon() - - -//Main door timer loop, if it's timing and time is >0 reduce time by 1. -// if it's less than 0, open door, reset timer -// update the door_timer window and the icon -/obj/machinery/door_timer/process() - if(stat & (NOPOWER|BROKEN)) - return - - if(timing) - if(world.time - activation_time >= timer_duration) - timer_end() // open doors, reset timer, clear status screen - update_icon() - -// has the door power sitatuation changed, if so update icon. -/obj/machinery/door_timer/power_change() - ..() - update_icon() - - -// open/closedoor checks if door_timer has power, if so it checks if the -// linked door is open/closed (by density) then opens it/closes it. -/obj/machinery/door_timer/proc/timer_start() - if(stat & (NOPOWER|BROKEN)) - return 0 - - activation_time = world.time - timing = TRUE - - for(var/obj/machinery/door/window/brigdoor/door in targets) - if(door.density) - continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) - - for(var/obj/structure/closet/secure_closet/brig/C in targets) - if(C.broken) - continue - if(C.opened && !C.close()) - continue - C.locked = 1 - C.update_icon() - return 1 - - -/obj/machinery/door_timer/proc/timer_end(forced = FALSE) - - if(stat & (NOPOWER|BROKEN)) - return 0 - - if(!forced) - Radio.set_frequency(GLOB.SEC_FREQ) - Radio.talk_into(src, "Timer has expired. Releasing prisoner.", GLOB.SEC_FREQ, get_default_language()) - - timing = FALSE - activation_time = null - set_timer(0) - update_icon() - - for(var/obj/machinery/door/window/brigdoor/door in targets) - if(!door.density) - continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) - - for(var/obj/structure/closet/secure_closet/brig/C in targets) - if(C.broken) - continue - if(C.opened) - continue - C.locked = 0 - C.update_icon() - - return 1 - - -/obj/machinery/door_timer/proc/time_left(seconds = FALSE) - . = max(0,timer_duration - (activation_time ? world.time - activation_time : 0)) - if(seconds) - . /= 10 - -/obj/machinery/door_timer/proc/set_timer(value) - var/new_time = Clamp(value,0,MAX_TIMER) - . = new_time == timer_duration //return 1 on no change - timer_duration = new_time - -/obj/machinery/door_timer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "brig_timer", name, 300, 200, master_ui, state) - ui.open() - -//icon update function -// if NOPOWER, display blank -// if BROKEN, display blue screen of death icon AI uses -// if timing=true, run update display function -/obj/machinery/door_timer/update_icon() - if(stat & (NOPOWER)) - icon_state = "frame" - return - - if(stat & (BROKEN)) - set_picture("ai_bsod") - return - - if(timing) - var/disp1 = id - var/time_left = time_left(seconds = TRUE) - var/disp2 = "[add_zero(num2text((time_left / 60) % 60),2)]~[add_zero(num2text(time_left % 60), 2)]" - if(length(disp2) > CHARS_PER_LINE) - disp2 = "Error" - update_display(disp1, disp2) - else - if(maptext) - maptext = "" - return - - -// Adds an icon in case the screen is broken/off, stolen from status_display.dm -/obj/machinery/door_timer/proc/set_picture(state) - if(maptext) - maptext = "" - cut_overlays() - add_overlay(mutable_appearance('icons/obj/status_display.dmi', state)) - - -//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display -// Stolen from status_display -/obj/machinery/door_timer/proc/update_display(line1, line2) - var/new_text = {"
    [line1]
    [line2]
    "} - if(maptext != new_text) - maptext = new_text - -/obj/machinery/door_timer/ui_data() - var/list/data = list() - var/time_left = time_left(seconds = TRUE) - data["seconds"] = round(time_left % 60) - data["minutes"] = round((time_left - data["seconds"]) / 60) - data["timing"] = timing - data["flash_charging"] = FALSE - for(var/obj/machinery/flasher/F in targets) - if(F.last_flash && (F.last_flash + 150) > world.time) - data["flash_charging"] = TRUE - break - return data - - -/obj/machinery/door_timer/ui_act(action, params) - if(..()) - return - . = TRUE - if(!allowed(usr)) - to_chat(usr, "Access denied.") - return FALSE - - switch(action) - if("time") - var/value = text2num(params["adjust"]) - if(value) - . = set_timer(time_left()+value) - if("start") - timer_start() - if("stop") - timer_end(forced = TRUE) - if("flash") - for(var/obj/machinery/flasher/F in targets) - F.flash() - if("preset") - var/preset = params["preset"] - var/preset_time = time_left() - switch(preset) - if("short") - preset_time = PRESET_SHORT - if("medium") - preset_time = PRESET_MEDIUM - if("long") - preset_time = PRESET_LONG - . = set_timer(preset_time) - if(timing) - activation_time = world.time - else - . = FALSE - - -#undef PRESET_SHORT -#undef PRESET_MEDIUM -#undef PRESET_LONG - -#undef MAX_TIMER -#undef FONT_SIZE -#undef FONT_COLOR -#undef FONT_STYLE -#undef CHARS_PER_LINE + + +/////////////////////////////////////////////////////////////////////////////////////////////// +// Brig Door control displays. +// Description: This is a controls the timer for the brig doors, displays the timer on itself and +// has a popup window when used, allowing to set the timer. +// Code Notes: Combination of old brigdoor.dm code from rev4407 and the status_display.dm code +// Date: 01/September/2010 +// Programmer: Veryinky +///////////////////////////////////////////////////////////////////////////////////////////////// +/obj/machinery/door_timer + name = "door timer" + icon = 'icons/obj/status_display.dmi' + icon_state = "frame" + desc = "A remote control for a door." + req_access = list(GLOB.access_security) + anchored = 1 + density = 0 + var/id = null // id of linked machinery/lockers + + var/activation_time = 0 + var/timer_duration = 0 + + var/timing = FALSE // boolean, true/1 timer is on, false/0 means it's not timing + var/list/obj/machinery/targets = list() + var/obj/item/device/radio/Radio //needed to send messages to sec radio + + maptext_height = 26 + maptext_width = 32 + +/obj/machinery/door_timer/New() + ..() + + Radio = new/obj/item/device/radio(src) + Radio.listening = 0 + +/obj/machinery/door_timer/Initialize() + ..() + if(id != null) + for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) + if (M.id == id) + targets += M + + for(var/obj/machinery/flasher/F in urange(20, src)) + if(F.id == id) + targets += F + + for(var/obj/structure/closet/secure_closet/brig/C in urange(20, src)) + if(C.id == id) + targets += C + + if(!targets.len) + stat |= BROKEN + update_icon() + + +//Main door timer loop, if it's timing and time is >0 reduce time by 1. +// if it's less than 0, open door, reset timer +// update the door_timer window and the icon +/obj/machinery/door_timer/process() + if(stat & (NOPOWER|BROKEN)) + return + + if(timing) + if(world.time - activation_time >= timer_duration) + timer_end() // open doors, reset timer, clear status screen + update_icon() + +// has the door power sitatuation changed, if so update icon. +/obj/machinery/door_timer/power_change() + ..() + update_icon() + + +// open/closedoor checks if door_timer has power, if so it checks if the +// linked door is open/closed (by density) then opens it/closes it. +/obj/machinery/door_timer/proc/timer_start() + if(stat & (NOPOWER|BROKEN)) + return 0 + + activation_time = world.time + timing = TRUE + + for(var/obj/machinery/door/window/brigdoor/door in targets) + if(door.density) + continue + INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) + + for(var/obj/structure/closet/secure_closet/brig/C in targets) + if(C.broken) + continue + if(C.opened && !C.close()) + continue + C.locked = 1 + C.update_icon() + return 1 + + +/obj/machinery/door_timer/proc/timer_end(forced = FALSE) + + if(stat & (NOPOWER|BROKEN)) + return 0 + + if(!forced) + Radio.set_frequency(GLOB.SEC_FREQ) + Radio.talk_into(src, "Timer has expired. Releasing prisoner.", GLOB.SEC_FREQ, get_default_language()) + + timing = FALSE + activation_time = null + set_timer(0) + update_icon() + + for(var/obj/machinery/door/window/brigdoor/door in targets) + if(!door.density) + continue + INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) + + for(var/obj/structure/closet/secure_closet/brig/C in targets) + if(C.broken) + continue + if(C.opened) + continue + C.locked = 0 + C.update_icon() + + return 1 + + +/obj/machinery/door_timer/proc/time_left(seconds = FALSE) + . = max(0,timer_duration - (activation_time ? world.time - activation_time : 0)) + if(seconds) + . /= 10 + +/obj/machinery/door_timer/proc/set_timer(value) + var/new_time = Clamp(value,0,MAX_TIMER) + . = new_time == timer_duration //return 1 on no change + timer_duration = new_time + +/obj/machinery/door_timer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "brig_timer", name, 300, 200, master_ui, state) + ui.open() + +//icon update function +// if NOPOWER, display blank +// if BROKEN, display blue screen of death icon AI uses +// if timing=true, run update display function +/obj/machinery/door_timer/update_icon() + if(stat & (NOPOWER)) + icon_state = "frame" + return + + if(stat & (BROKEN)) + set_picture("ai_bsod") + return + + if(timing) + var/disp1 = id + var/time_left = time_left(seconds = TRUE) + var/disp2 = "[add_zero(num2text((time_left / 60) % 60),2)]~[add_zero(num2text(time_left % 60), 2)]" + if(length(disp2) > CHARS_PER_LINE) + disp2 = "Error" + update_display(disp1, disp2) + else + if(maptext) + maptext = "" + return + + +// Adds an icon in case the screen is broken/off, stolen from status_display.dm +/obj/machinery/door_timer/proc/set_picture(state) + if(maptext) + maptext = "" + cut_overlays() + add_overlay(mutable_appearance('icons/obj/status_display.dmi', state)) + + +//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display +// Stolen from status_display +/obj/machinery/door_timer/proc/update_display(line1, line2) + var/new_text = {"
    [line1]
    [line2]
    "} + if(maptext != new_text) + maptext = new_text + +/obj/machinery/door_timer/ui_data() + var/list/data = list() + var/time_left = time_left(seconds = TRUE) + data["seconds"] = round(time_left % 60) + data["minutes"] = round((time_left - data["seconds"]) / 60) + data["timing"] = timing + data["flash_charging"] = FALSE + for(var/obj/machinery/flasher/F in targets) + if(F.last_flash && (F.last_flash + 150) > world.time) + data["flash_charging"] = TRUE + break + return data + + +/obj/machinery/door_timer/ui_act(action, params) + if(..()) + return + . = TRUE + + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return FALSE + + switch(action) + if("time") + var/value = text2num(params["adjust"]) + if(value) + . = set_timer(time_left()+value) + if("start") + timer_start() + if("stop") + timer_end(forced = TRUE) + if("flash") + for(var/obj/machinery/flasher/F in targets) + F.flash() + if("preset") + var/preset = params["preset"] + var/preset_time = time_left() + switch(preset) + if("short") + preset_time = PRESET_SHORT + if("medium") + preset_time = PRESET_MEDIUM + if("long") + preset_time = PRESET_LONG + . = set_timer(preset_time) + if(timing) + activation_time = world.time + else + . = FALSE + + +#undef PRESET_SHORT +#undef PRESET_MEDIUM +#undef PRESET_LONG + +#undef MAX_TIMER +#undef FONT_SIZE +#undef FONT_COLOR +#undef FONT_STYLE +#undef CHARS_PER_LINE diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index aacb290d40..fc3ea6be6b 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -50,8 +50,6 @@ real_explosion_block = explosion_block explosion_block = EXPLOSION_BLOCK_PROC - - /obj/machinery/door/Destroy() density = 0 air_update_turf(1) @@ -186,13 +184,13 @@ switch(damage_type) if(BRUTE) if(glass) - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) else if(damage_amount) playsound(loc, 'sound/weapons/smash.ogg', 50, 1) else playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/door/emp_act(severity) if(prob(20/severity) && (istype(src,/obj/machinery/door/airlock) || istype(src,/obj/machinery/door/window)) ) @@ -296,10 +294,10 @@ else if(ishuman(L)) //For humans L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) L.emote("scream") - L.Weaken(5) + L.Knockdown(100) else if(ismonkey(L)) //For monkeys L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - L.Weaken(5) + L.Knockdown(100) else //for simple_animals & borgs L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) var/turf/location = get_turf(src) @@ -353,4 +351,3 @@ /obj/machinery/door/GetExplosionBlock() return density ? real_explosion_block : 0 - diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 56a17960d4..80e5418a69 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -1,35 +1,35 @@ -#define CONSTRUCTION_COMPLETE 0 //No construction done - functioning as normal -#define CONSTRUCTION_PANEL_OPEN 1 //Maintenance panel is open, still functioning -#define CONSTRUCTION_WIRES_EXPOSED 2 //Cover plate is removed, wires are available -#define CONSTRUCTION_GUTTED 3 //Wires are removed, circuit ready to remove -#define CONSTRUCTION_NOCIRCUIT 4 //Circuit board removed, can safely weld apart - -/obj/machinery/door/firedoor - name = "firelock" - desc = "Apply crowbar." - icon = 'icons/obj/doors/Doorfireglass.dmi' - icon_state = "door_open" - opacity = 0 - density = 0 - obj_integrity = 300 - max_integrity = 300 - resistance_flags = FIRE_PROOF - heat_proof = 1 - glass = 1 - var/nextstate = null - sub_door = 1 - explosion_block = 1 - safe = FALSE - closingLayer = CLOSED_FIREDOOR_LAYER - assemblytype = /obj/structure/firelock_frame - armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 95, acid = 70) - var/boltslocked = TRUE - var/list/affecting_areas - -/obj/machinery/door/firedoor/Initialize() - ..() - CalculateAffectingAreas() - +#define CONSTRUCTION_COMPLETE 0 //No construction done - functioning as normal +#define CONSTRUCTION_PANEL_OPEN 1 //Maintenance panel is open, still functioning +#define CONSTRUCTION_WIRES_EXPOSED 2 //Cover plate is removed, wires are available +#define CONSTRUCTION_GUTTED 3 //Wires are removed, circuit ready to remove +#define CONSTRUCTION_NOCIRCUIT 4 //Circuit board removed, can safely weld apart + +/obj/machinery/door/firedoor + name = "firelock" + desc = "Apply crowbar." + icon = 'icons/obj/doors/Doorfireglass.dmi' + icon_state = "door_open" + opacity = 0 + density = 0 + obj_integrity = 300 + max_integrity = 300 + resistance_flags = FIRE_PROOF + heat_proof = 1 + glass = 1 + var/nextstate = null + sub_door = 1 + explosion_block = 1 + safe = FALSE + closingLayer = CLOSED_FIREDOOR_LAYER + assemblytype = /obj/structure/firelock_frame + armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 95, acid = 70) + var/boltslocked = TRUE + var/list/affecting_areas + +/obj/machinery/door/firedoor/Initialize() + ..() + CalculateAffectingAreas() + /obj/machinery/door/firedoor/examine(mob/user) ..() if(!density) @@ -43,88 +43,88 @@ else to_chat(user, "The bolt locks have been unscrewed, but the bolts themselves are still wrenched to the floor.") -/obj/machinery/door/firedoor/proc/CalculateAffectingAreas() - remove_from_areas() - affecting_areas = get_adjacent_open_areas(src) | get_area(src) - for(var/I in affecting_areas) - var/area/A = I - LAZYADD(A.firedoors, src) - +/obj/machinery/door/firedoor/proc/CalculateAffectingAreas() + remove_from_areas() + affecting_areas = get_adjacent_open_areas(src) | get_area(src) + for(var/I in affecting_areas) + var/area/A = I + LAZYADD(A.firedoors, src) + /obj/machinery/door/firedoor/closed icon_state = "door_closed" opacity = TRUE density = TRUE -//see also turf/AfterChange for adjacency shennanigans - -/obj/machinery/door/firedoor/proc/remove_from_areas() - if(affecting_areas) - for(var/I in affecting_areas) - var/area/A = I - LAZYREMOVE(A.firedoors, src) - -/obj/machinery/door/firedoor/Destroy() - remove_from_areas() - affecting_areas.Cut() - return ..() - -/obj/machinery/door/firedoor/Bumped(atom/AM) - if(panel_open || operating) - return - if(!density) - return ..() - return 0 - - -/obj/machinery/door/firedoor/power_change() - if(powered(power_channel)) - stat &= ~NOPOWER - latetoggle() - else - stat |= NOPOWER - -/obj/machinery/door/firedoor/attack_hand(mob/user) - if(operating || !density) - return - user.changeNext_move(CLICK_CD_MELEE) - - user.visible_message("[user] bangs on \the [src].", - "You bang on \the [src].") - playsound(loc, 'sound/effects/Glassknock.ogg', 10, FALSE, frequency = 32000) - -/obj/machinery/door/firedoor/attackby(obj/item/weapon/C, mob/user, params) - add_fingerprint(user) - if(operating) - return - - if(welded) - if(istype(C, /obj/item/weapon/wrench)) - if(boltslocked) - to_chat(user, "There are screws locking the bolts in place!") - return - playsound(get_turf(src), C.usesound, 50, 1) - user.visible_message("[user] starts undoing [src]'s bolts...", \ - "You start unfastening [src]'s floor bolts...") - if(!do_after(user, 50*C.toolspeed, target = src)) - return - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - user.visible_message("[user] unfastens [src]'s bolts.", \ - "You undo [src]'s floor bolts.") - deconstruct(TRUE) - return - if(istype(C, /obj/item/weapon/screwdriver)) +//see also turf/AfterChange for adjacency shennanigans + +/obj/machinery/door/firedoor/proc/remove_from_areas() + if(affecting_areas) + for(var/I in affecting_areas) + var/area/A = I + LAZYREMOVE(A.firedoors, src) + +/obj/machinery/door/firedoor/Destroy() + remove_from_areas() + affecting_areas.Cut() + return ..() + +/obj/machinery/door/firedoor/Bumped(atom/AM) + if(panel_open || operating) + return + if(!density) + return ..() + return 0 + + +/obj/machinery/door/firedoor/power_change() + if(powered(power_channel)) + stat &= ~NOPOWER + latetoggle() + else + stat |= NOPOWER + +/obj/machinery/door/firedoor/attack_hand(mob/user) + if(operating || !density) + return + user.changeNext_move(CLICK_CD_MELEE) + + user.visible_message("[user] bangs on \the [src].", + "You bang on \the [src].") + playsound(loc, 'sound/effects/glassknock.ogg', 10, FALSE, frequency = 32000) + +/obj/machinery/door/firedoor/attackby(obj/item/weapon/C, mob/user, params) + add_fingerprint(user) + if(operating) + return + + if(welded) + if(istype(C, /obj/item/weapon/wrench)) + if(boltslocked) + to_chat(user, "There are screws locking the bolts in place!") + return + playsound(get_turf(src), C.usesound, 50, 1) + user.visible_message("[user] starts undoing [src]'s bolts...", \ + "You start unfastening [src]'s floor bolts...") + if(!do_after(user, 50*C.toolspeed, target = src)) + return + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + user.visible_message("[user] unfastens [src]'s bolts.", \ + "You undo [src]'s floor bolts.") + deconstruct(TRUE) + return + if(istype(C, /obj/item/weapon/screwdriver)) user.visible_message("[user] [boltslocked ? "unlocks" : "locks"] [src]'s bolts.", \ "You [boltslocked ? "unlock" : "lock"] [src]'s floor bolts.") - playsound(get_turf(src), C.usesound, 50, 1) - boltslocked = !boltslocked - return - - return ..() - -/obj/machinery/door/firedoor/try_to_activate_door(mob/user) - return - -/obj/machinery/door/firedoor/try_to_weld(obj/item/weapon/weldingtool/W, mob/user) + playsound(get_turf(src), C.usesound, 50, 1) + boltslocked = !boltslocked + return + + return ..() + +/obj/machinery/door/firedoor/try_to_activate_door(mob/user) + return + +/obj/machinery/door/firedoor/try_to_weld(obj/item/weapon/weldingtool/W, mob/user) if(W.remove_fuel(0, user)) playsound(get_turf(src), W.usesound, 50, 1) user.visible_message("[user] starts [welded ? "unwelding" : "welding"] [src].", "You start welding [src].") @@ -133,225 +133,225 @@ welded = !welded to_chat(user, "[user] [welded?"welds":"unwelds"] [src].", "You [welded ? "weld" : "unweld"] [src].") update_icon() - -/obj/machinery/door/firedoor/try_to_crowbar(obj/item/I, mob/user) - if(welded || operating) - return - - if(density) - open() - else - close() - -/obj/machinery/door/firedoor/attack_ai(mob/user) - add_fingerprint(user) - if(welded || operating || stat & NOPOWER) - return - if(density) - open() - else - close() - -/obj/machinery/door/firedoor/attack_alien(mob/user) - add_fingerprint(user) - if(welded) - to_chat(user, "[src] refuses to budge!") - return - open() - -/obj/machinery/door/firedoor/do_animate(animation) - switch(animation) - if("opening") - flick("door_opening", src) - if("closing") - flick("door_closing", src) - -/obj/machinery/door/firedoor/update_icon() - cut_overlays() - if(density) - icon_state = "door_closed" - if(welded) - add_overlay("welded") - else - icon_state = "door_open" - if(welded) - add_overlay("welded_open") - -/obj/machinery/door/firedoor/open() - . = ..() - latetoggle() - -/obj/machinery/door/firedoor/close() - . = ..() - latetoggle() - -/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - var/obj/structure/firelock_frame/F = new assemblytype(get_turf(src)) - if(disassembled) - F.constructionStep = CONSTRUCTION_PANEL_OPEN - else - F.constructionStep = CONSTRUCTION_WIRES_EXPOSED - F.obj_integrity = F.max_integrity * 0.5 - F.update_icon() - qdel(src) - - -/obj/machinery/door/firedoor/proc/latetoggle() - if(operating || stat & NOPOWER || !nextstate) - return - switch(nextstate) - if(FIREDOOR_OPEN) - nextstate = null - open() - if(FIREDOOR_CLOSED) - nextstate = null - close() - -/obj/machinery/door/firedoor/border_only - icon = 'icons/obj/doors/edge_Doorfire.dmi' - flags = ON_BORDER - CanAtmosPass = ATMOS_PASS_PROC - -/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) //Make sure looking at appropriate border - return !density - else - return 1 - -/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) - return !density - else - return 1 - -/obj/machinery/door/firedoor/border_only/CanAtmosPass(turf/T) - if(get_dir(loc, T) == dir) - return !density - else - return 1 - -/obj/machinery/door/firedoor/heavy - name = "heavy firelock" - icon = 'icons/obj/doors/Doorfire.dmi' - glass = 0 - explosion_block = 2 - assemblytype = /obj/structure/firelock_frame/heavy - obj_integrity = 550 - max_integrity = 550 - - -/obj/item/weapon/electronics/firelock - name = "firelock circuitry" - desc = "A circuit board used in construction of firelocks." - icon_state = "mainboard" - -/obj/structure/firelock_frame - name = "firelock frame" - desc = "A partially completed firelock." - icon = 'icons/obj/doors/Doorfire.dmi' - icon_state = "frame1" - anchored = 0 - density = 1 - var/constructionStep = CONSTRUCTION_NOCIRCUIT - var/reinforced = 0 - -/obj/structure/firelock_frame/examine(mob/user) - ..() - switch(constructionStep) - if(CONSTRUCTION_PANEL_OPEN) + +/obj/machinery/door/firedoor/try_to_crowbar(obj/item/I, mob/user) + if(welded || operating) + return + + if(density) + open() + else + close() + +/obj/machinery/door/firedoor/attack_ai(mob/user) + add_fingerprint(user) + if(welded || operating || stat & NOPOWER) + return + if(density) + open() + else + close() + +/obj/machinery/door/firedoor/attack_alien(mob/user) + add_fingerprint(user) + if(welded) + to_chat(user, "[src] refuses to budge!") + return + open() + +/obj/machinery/door/firedoor/do_animate(animation) + switch(animation) + if("opening") + flick("door_opening", src) + if("closing") + flick("door_closing", src) + +/obj/machinery/door/firedoor/update_icon() + cut_overlays() + if(density) + icon_state = "door_closed" + if(welded) + add_overlay("welded") + else + icon_state = "door_open" + if(welded) + add_overlay("welded_open") + +/obj/machinery/door/firedoor/open() + . = ..() + latetoggle() + +/obj/machinery/door/firedoor/close() + . = ..() + latetoggle() + +/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/obj/structure/firelock_frame/F = new assemblytype(get_turf(src)) + if(disassembled) + F.constructionStep = CONSTRUCTION_PANEL_OPEN + else + F.constructionStep = CONSTRUCTION_WIRES_EXPOSED + F.obj_integrity = F.max_integrity * 0.5 + F.update_icon() + qdel(src) + + +/obj/machinery/door/firedoor/proc/latetoggle() + if(operating || stat & NOPOWER || !nextstate) + return + switch(nextstate) + if(FIREDOOR_OPEN) + nextstate = null + open() + if(FIREDOOR_CLOSED) + nextstate = null + close() + +/obj/machinery/door/firedoor/border_only + icon = 'icons/obj/doors/edge_Doorfire.dmi' + flags = ON_BORDER + CanAtmosPass = ATMOS_PASS_PROC + +/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + return !density + else + return 1 + +/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 + +/obj/machinery/door/firedoor/border_only/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + +/obj/machinery/door/firedoor/heavy + name = "heavy firelock" + icon = 'icons/obj/doors/Doorfire.dmi' + glass = 0 + explosion_block = 2 + assemblytype = /obj/structure/firelock_frame/heavy + obj_integrity = 550 + max_integrity = 550 + + +/obj/item/weapon/electronics/firelock + name = "firelock circuitry" + desc = "A circuit board used in construction of firelocks." + icon_state = "mainboard" + +/obj/structure/firelock_frame + name = "firelock frame" + desc = "A partially completed firelock." + icon = 'icons/obj/doors/Doorfire.dmi' + icon_state = "frame1" + anchored = 0 + density = 1 + var/constructionStep = CONSTRUCTION_NOCIRCUIT + var/reinforced = 0 + +/obj/structure/firelock_frame/examine(mob/user) + ..() + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) to_chat(user, "It is unbolted from the floor. A small loosely connected metal plate is covering the wires.") if(!reinforced) to_chat(user, "It could be reinforced with plasteel.") - if(CONSTRUCTION_WIRES_EXPOSED) + if(CONSTRUCTION_WIRES_EXPOSED) to_chat(user, "The maintenance plate has been pried away, and wires are trailing.") - if(CONSTRUCTION_GUTTED) + if(CONSTRUCTION_GUTTED) to_chat(user, "The maintenance panel is missing wires and the circuit board is loosely connected.") - if(CONSTRUCTION_NOCIRCUIT) + if(CONSTRUCTION_NOCIRCUIT) to_chat(user, "There are no firelock electronics in the frame. The frame could be cut apart.") - -/obj/structure/firelock_frame/update_icon() - ..() - icon_state = "frame[constructionStep]" - -/obj/structure/firelock_frame/attackby(obj/item/weapon/C, mob/user) - switch(constructionStep) - if(CONSTRUCTION_PANEL_OPEN) - if(istype(C, /obj/item/weapon/crowbar)) - playsound(get_turf(src), C.usesound, 50, 1) - user.visible_message("[user] starts prying something out from [src]...", \ - "You begin prying out the wire cover...") - if(!do_after(user, 50*C.toolspeed, target = src)) - return - if(constructionStep != CONSTRUCTION_PANEL_OPEN) - return - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - user.visible_message("[user] pries out a metal plate from [src], exposing the wires.", \ - "You remove the cover plate from [src], exposing the wires.") - constructionStep = CONSTRUCTION_WIRES_EXPOSED - update_icon() - return - if(istype(C, /obj/item/weapon/wrench)) - if(locate(/obj/machinery/door/firedoor) in get_turf(src)) - to_chat(user, "There's already a firelock there.") - return - playsound(get_turf(src), C.usesound, 50, 1) - user.visible_message("[user] starts bolting down [src]...", \ - "You begin bolting [src]...") - if(!do_after(user, 30*C.toolspeed, target = src)) - return - if(locate(/obj/machinery/door/firedoor) in get_turf(src)) - return - user.visible_message("[user] finishes the firelock.", \ - "You finish the firelock.") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - if(reinforced) - new /obj/machinery/door/firedoor/heavy(get_turf(src)) - else - new /obj/machinery/door/firedoor(get_turf(src)) - qdel(src) - return - if(istype(C, /obj/item/stack/sheet/plasteel)) - var/obj/item/stack/sheet/plasteel/P = C - if(reinforced) - to_chat(user, "[src] is already reinforced.") - return - if(P.get_amount() < 2) - to_chat(user, "You need more plasteel to reinforce [src].") - return - user.visible_message("[user] begins reinforcing [src]...", \ - "You begin reinforcing [src]...") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - if(do_after(user, 60, target = src)) - if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P) - return - user.visible_message("[user] reinforces [src].", \ - "You reinforce [src].") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - P.use(2) - reinforced = 1 - return - - if(CONSTRUCTION_WIRES_EXPOSED) - if(istype(C, /obj/item/weapon/wirecutters)) - playsound(get_turf(src), C.usesound, 50, 1) - user.visible_message("[user] starts cutting the wires from [src]...", \ - "You begin removing [src]'s wires...") - if(!do_after(user, 60*C.toolspeed, target = src)) - return - if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) - return - user.visible_message("[user] removes the wires from [src].", \ - "You remove the wiring from [src], exposing the circuit board.") - var/obj/item/stack/cable_coil/B = new(get_turf(src)) - B.amount = 5 - constructionStep = CONSTRUCTION_GUTTED - update_icon() - return + +/obj/structure/firelock_frame/update_icon() + ..() + icon_state = "frame[constructionStep]" + +/obj/structure/firelock_frame/attackby(obj/item/weapon/C, mob/user) + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) + if(istype(C, /obj/item/weapon/crowbar)) + playsound(get_turf(src), C.usesound, 50, 1) + user.visible_message("[user] starts prying something out from [src]...", \ + "You begin prying out the wire cover...") + if(!do_after(user, 50*C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_PANEL_OPEN) + return + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + user.visible_message("[user] pries out a metal plate from [src], exposing the wires.", \ + "You remove the cover plate from [src], exposing the wires.") + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(istype(C, /obj/item/weapon/wrench)) + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + to_chat(user, "There's already a firelock there.") + return + playsound(get_turf(src), C.usesound, 50, 1) + user.visible_message("[user] starts bolting down [src]...", \ + "You begin bolting [src]...") + if(!do_after(user, 30*C.toolspeed, target = src)) + return + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + return + user.visible_message("[user] finishes the firelock.", \ + "You finish the firelock.") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + if(reinforced) + new /obj/machinery/door/firedoor/heavy(get_turf(src)) + else + new /obj/machinery/door/firedoor(get_turf(src)) + qdel(src) + return + if(istype(C, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/P = C + if(reinforced) + to_chat(user, "[src] is already reinforced.") + return + if(P.get_amount() < 2) + to_chat(user, "You need more plasteel to reinforce [src].") + return + user.visible_message("[user] begins reinforcing [src]...", \ + "You begin reinforcing [src]...") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P) + return + user.visible_message("[user] reinforces [src].", \ + "You reinforce [src].") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + P.use(2) + reinforced = 1 + return + + if(CONSTRUCTION_WIRES_EXPOSED) + if(istype(C, /obj/item/weapon/wirecutters)) + playsound(get_turf(src), C.usesound, 50, 1) + user.visible_message("[user] starts cutting the wires from [src]...", \ + "You begin removing [src]'s wires...") + if(!do_after(user, 60*C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) + return + user.visible_message("[user] removes the wires from [src].", \ + "You remove the wiring from [src], exposing the circuit board.") + var/obj/item/stack/cable_coil/B = new(get_turf(src)) + B.amount = 5 + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return if(istype(C, /obj/item/weapon/crowbar)) playsound(get_turf(src), C.usesound, 50, 1) user.visible_message("[user] starts prying a metal plate into [src]...", \ @@ -360,86 +360,86 @@ return if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) return - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) user.visible_message("[user] pries the metal plate into [src].", \ "You pry [src]'s cover plate into place, hiding the wires.") - constructionStep = CONSTRUCTION_PANEL_OPEN - update_icon() - return - if(CONSTRUCTION_GUTTED) - if(istype(C, /obj/item/weapon/crowbar)) - user.visible_message("[user] begins removing the circuit board from [src]...", \ - "You begin prying out the circuit board from [src]...") - playsound(get_turf(src), C.usesound, 50, 1) - if(!do_after(user, 50*C.toolspeed, target = src)) - return - if(constructionStep != CONSTRUCTION_GUTTED) - return - user.visible_message("[user] removes [src]'s circuit board.", \ - "You remove the circuit board from [src].") - new /obj/item/weapon/electronics/firelock(get_turf(src)) - playsound(get_turf(src), C.usesound, 50, 1) - constructionStep = CONSTRUCTION_NOCIRCUIT - update_icon() - return - if(istype(C, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/B = C - if(B.get_amount() < 5) - to_chat(user, "You need more wires to add wiring to [src].") - return - user.visible_message("[user] begins wiring [src]...", \ - "You begin adding wires to [src]...") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - if(do_after(user, 60, target = src)) - if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B) - return - user.visible_message("[user] adds wires to [src].", \ - "You wire [src].") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - B.use(5) - constructionStep = CONSTRUCTION_WIRES_EXPOSED - update_icon() - return - if(CONSTRUCTION_NOCIRCUIT) - if(istype(C, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = C - if(W.remove_fuel(1,user)) - playsound(get_turf(src), W.usesound, 50, 1) - user.visible_message("[user] begins cutting apart [src]'s frame...", \ - "You begin slicing [src] apart...") - if(!do_after(user, 80*C.toolspeed, target = src)) - return - if(constructionStep != CONSTRUCTION_NOCIRCUIT) - return - user.visible_message("[user] cuts apart [src]!", \ - "You cut [src] into metal.") - playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) - var/turf/T = get_turf(src) - new /obj/item/stack/sheet/metal(T, 3) - if(reinforced) - new /obj/item/stack/sheet/plasteel(T, 2) - qdel(src) - return - if(istype(C, /obj/item/weapon/electronics/firelock)) - user.visible_message("[user] starts adding [C] to [src]...", \ - "You begin adding a circuit board to [src]...") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - if(!do_after(user, 40, target = src)) - return - if(constructionStep != CONSTRUCTION_NOCIRCUIT) - return - user.drop_item() - qdel(C) - user.visible_message("[user] adds a circuit to [src].", \ - "You insert and secure [C].") - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - constructionStep = CONSTRUCTION_GUTTED - update_icon() - return - return ..() - -/obj/structure/firelock_frame/heavy - name = "heavy firelock frame" + constructionStep = CONSTRUCTION_PANEL_OPEN + update_icon() + return + if(CONSTRUCTION_GUTTED) + if(istype(C, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins removing the circuit board from [src]...", \ + "You begin prying out the circuit board from [src]...") + playsound(get_turf(src), C.usesound, 50, 1) + if(!do_after(user, 50*C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_GUTTED) + return + user.visible_message("[user] removes [src]'s circuit board.", \ + "You remove the circuit board from [src].") + new /obj/item/weapon/electronics/firelock(get_turf(src)) + playsound(get_turf(src), C.usesound, 50, 1) + constructionStep = CONSTRUCTION_NOCIRCUIT + update_icon() + return + if(istype(C, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/B = C + if(B.get_amount() < 5) + to_chat(user, "You need more wires to add wiring to [src].") + return + user.visible_message("[user] begins wiring [src]...", \ + "You begin adding wires to [src]...") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B) + return + user.visible_message("[user] adds wires to [src].", \ + "You wire [src].") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + B.use(5) + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(CONSTRUCTION_NOCIRCUIT) + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(1,user)) + playsound(get_turf(src), W.usesound, 50, 1) + user.visible_message("[user] begins cutting apart [src]'s frame...", \ + "You begin slicing [src] apart...") + if(!do_after(user, 80*C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.visible_message("[user] cuts apart [src]!", \ + "You cut [src] into metal.") + playsound(get_turf(src), 'sound/items/welder2.ogg', 50, 1) + var/turf/T = get_turf(src) + new /obj/item/stack/sheet/metal(T, 3) + if(reinforced) + new /obj/item/stack/sheet/plasteel(T, 2) + qdel(src) + return + if(istype(C, /obj/item/weapon/electronics/firelock)) + user.visible_message("[user] starts adding [C] to [src]...", \ + "You begin adding a circuit board to [src]...") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + if(!do_after(user, 40, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.drop_item() + qdel(C) + user.visible_message("[user] adds a circuit to [src].", \ + "You insert and secure [C].") + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return + return ..() + +/obj/structure/firelock_frame/heavy + name = "heavy firelock frame" reinforced = 1 #undef CONSTRUCTION_COMPLETE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index c03738fd0b..0277f9112f 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -1,426 +1,426 @@ -/obj/machinery/door/window - name = "interior door" - desc = "A strong door." - icon = 'icons/obj/doors/windoor.dmi' - icon_state = "left" - layer = ABOVE_WINDOW_LAYER - closingLayer = ABOVE_WINDOW_LAYER - resistance_flags = ACID_PROOF - var/base_state = "left" - obj_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ health at the bottom of this .dm file - max_integrity = 150 - integrity_failure = 0 - armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 70, acid = 100) - visible = 0 - flags = ON_BORDER - opacity = 0 - CanAtmosPass = ATMOS_PASS_PROC - var/obj/item/weapon/electronics/airlock/electronics = null - var/reinf = 0 - var/shards = 2 - var/rods = 2 - var/cable = 2 - var/list/debris = list() - -/obj/machinery/door/window/New(loc, set_dir) - ..() - if(set_dir) - setDir(set_dir) - if(src.req_access && src.req_access.len) - src.icon_state = "[src.icon_state]" - src.base_state = src.icon_state - for(var/i in 1 to shards) - debris += new /obj/item/weapon/shard(src) - if(rods) - debris += new /obj/item/stack/rods(src, rods) - if(cable) - debris += new /obj/item/stack/cable_coil(src, cable) - -/obj/machinery/door/window/Destroy() - density = 0 - for(var/I in debris) - qdel(I) - if(obj_integrity == 0) - playsound(src, "shatter", 70, 1) - electronics = null - return ..() - -/obj/machinery/door/window/update_icon() - if(density) - icon_state = base_state - else - icon_state = "[src.base_state]open" - -/obj/machinery/door/window/proc/open_and_close() - open() - if(src.check_access(null)) - sleep(50) - else //secure doors close faster - sleep(20) - close() - -/obj/machinery/door/window/Bumped(atom/movable/AM as mob|obj) - if( operating || !src.density ) - return - if (!( ismob(AM) )) - if(istype(AM, /obj/mecha)) - var/obj/mecha/mecha = AM - if(mecha.occupant && src.allowed(mecha.occupant)) - open_and_close() - else - do_animate("deny") - return - if (!( SSticker )) - return - var/mob/M = AM - if(M.restrained() || ((isdrone(M) || iscyborg(M)) && M.stat)) - return - bumpopen(M) - -/obj/machinery/door/window/bumpopen(mob/user) - if( operating || !src.density ) - return - src.add_fingerprint(user) - if(!src.requiresID()) - user = null - - if(allowed(user)) - open_and_close() - else - do_animate("deny") - return - -/obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) //Make sure looking at appropriate border - return !density - if(istype(mover, /obj/structure/window)) - var/obj/structure/window/W = mover - if(!valid_window_location(loc, W.ini_dir)) - return FALSE - else if(istype(mover, /obj/structure/windoor_assembly)) - var/obj/structure/windoor_assembly/W = mover - if(!valid_window_location(loc, W.ini_dir)) - return FALSE - else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir)) - return FALSE - else - return 1 - -/obj/machinery/door/window/CanAtmosPass(turf/T) - if(get_dir(loc, T) == dir) - return !density - else - return 1 - -//used in the AStar algorithm to determinate if the turf the door is on is passable -/obj/machinery/door/window/CanAStarPass(obj/item/weapon/card/id/ID, to_dir) - return !density || (dir != to_dir) || (check_access(ID) && hasPower()) - -/obj/machinery/door/window/CheckExit(atom/movable/mover as mob|obj, turf/target) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) - return !density - else - return 1 - -/obj/machinery/door/window/open(forced=0) - if (src.operating == 1) //doors can still open when emag-disabled - return 0 - if(!forced) - if(!hasPower()) - return 0 - if(forced < 2) - if(emagged) - return 0 - if(!src.operating) //in case of emag - src.operating = 1 - do_animate("opening") - playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) - src.icon_state ="[src.base_state]open" - sleep(10) - - src.density = 0 -// src.sd_set_opacity(0) //TODO: why is this here? Opaque windoors? ~Carn - air_update_turf(1) - update_freelook_sight() - - if(operating == 1) //emag again - src.operating = 0 - return 1 - -/obj/machinery/door/window/close(forced=0) - if (src.operating) - return 0 - if(!forced) - if(!hasPower()) - return 0 - if(forced < 2) - if(emagged) - return 0 - src.operating = 1 - do_animate("closing") - playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) - src.icon_state = src.base_state - - src.density = 1 - air_update_turf(1) - update_freelook_sight() - sleep(10) - - src.operating = 0 - return 1 - -/obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) - if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - - -/obj/machinery/door/window/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT) && !disassembled) - for(var/obj/fragment in debris) - fragment.forceMove(get_turf(src)) - transfer_fingerprints_to(fragment) - debris -= fragment - qdel(src) - -/obj/machinery/door/window/narsie_act() - add_atom_colour("#7D1919", FIXED_COLOUR_PRIORITY) - -/obj/machinery/door/window/ratvar_act() - new/obj/machinery/door/window/clockwork(src.loc, dir) - qdel(src) - -/obj/machinery/door/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > T0C + (reinf ? 1600 : 800)) - take_damage(round(exposed_volume / 200), BURN, 0, 0) - ..() - - -/obj/machinery/door/window/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/door/window/emag_act(mob/user) - if(!operating && density && !emagged) - operating = 1 - flick("[src.base_state]spark", src) - sleep(6) - operating = 0 - desc += "
    Its access panel is smoking slightly." - open() - emagged = 1 - -/obj/machinery/door/window/attackby(obj/item/weapon/I, mob/living/user, params) - - if(operating) - return - - add_fingerprint(user) - if(!(flags&NODECONSTRUCT)) - if(istype(I, /obj/item/weapon/screwdriver)) - if(density || operating) - to_chat(user, "You need to open the door to access the maintenance panel!") - return - playsound(src.loc, I.usesound, 50, 1) - panel_open = !panel_open - to_chat(user, "You [panel_open ? "open":"close"] the maintenance panel of the [src.name].") - return - - if(istype(I, /obj/item/weapon/crowbar)) - if(panel_open && !density && !operating) - playsound(src.loc, I.usesound, 100, 1) - user.visible_message("[user] removes the electronics from the [src.name].", \ - "You start to remove electronics from the [src.name]...") - if(do_after(user,40*I.toolspeed, target = src)) - if(panel_open && !density && !operating && src.loc) - var/obj/structure/windoor_assembly/WA = new /obj/structure/windoor_assembly(src.loc) - switch(base_state) - if("left") - WA.facing = "l" - if("right") - WA.facing = "r" - if("leftsecure") - WA.facing = "l" - WA.secure = 1 - if("rightsecure") - WA.facing = "r" - WA.secure = 1 - WA.anchored = 1 - WA.state= "02" - WA.setDir(src.dir) - WA.ini_dir = src.dir - WA.update_icon() - WA.created_name = src.name - - if(emagged) - to_chat(user, "You discard the damaged electronics.") - qdel(src) - return - - to_chat(user, "You remove the airlock electronics.") - - var/obj/item/weapon/electronics/airlock/ae - if(!electronics) - ae = new/obj/item/weapon/electronics/airlock( src.loc ) - if(req_one_access) - ae.one_access = 1 - ae.accesses = src.req_one_access - else - ae.accesses = src.req_access - else - ae = electronics - electronics = null - ae.loc = src.loc - - qdel(src) - return - return ..() - -/obj/machinery/door/window/try_to_crowbar(obj/item/I, mob/user) - if(!hasPower()) - if(density) - open(2) - else - close(2) - else - to_chat(user, "The door's motors resist your efforts to force it!") - -/obj/machinery/door/window/do_animate(animation) - switch(animation) - if("opening") - flick("[src.base_state]opening", src) - if("closing") - flick("[src.base_state]closing", src) - if("deny") - flick("[src.base_state]deny", src) - - -/obj/machinery/door/window/brigdoor - name = "secure door" - icon_state = "leftsecure" - base_state = "leftsecure" - var/id = null - obj_integrity = 300 //Stronger doors for prison (regular window door health is 200) - max_integrity = 300 - reinf = 1 - explosion_block = 1 - -/obj/machinery/door/window/clockwork - name = "brass windoor" - desc = "A thin door with translucent brass paneling." - icon_state = "clockwork" - base_state = "clockwork" - shards = 0 - rods = 0 - resistance_flags = FIRE_PROOF | ACID_PROOF - var/made_glow = FALSE - -/obj/machinery/door/window/clockwork/New(loc, set_dir) - ..() - for(var/i in 1 to 2) - debris += new/obj/item/clockwork/alloy_shards/medium/gear_bit/large(src) - change_construction_value(2) - -/obj/machinery/door/window/clockwork/setDir(direct) - if(!made_glow) +/obj/machinery/door/window + name = "interior door" + desc = "A strong door." + icon = 'icons/obj/doors/windoor.dmi' + icon_state = "left" + layer = ABOVE_WINDOW_LAYER + closingLayer = ABOVE_WINDOW_LAYER + resistance_flags = ACID_PROOF + var/base_state = "left" + obj_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ health at the bottom of this .dm file + max_integrity = 150 + integrity_failure = 0 + armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 70, acid = 100) + visible = 0 + flags = ON_BORDER + opacity = 0 + CanAtmosPass = ATMOS_PASS_PROC + var/obj/item/weapon/electronics/airlock/electronics = null + var/reinf = 0 + var/shards = 2 + var/rods = 2 + var/cable = 2 + var/list/debris = list() + +/obj/machinery/door/window/New(loc, set_dir) + ..() + if(set_dir) + setDir(set_dir) + if(src.req_access && src.req_access.len) + src.icon_state = "[src.icon_state]" + src.base_state = src.icon_state + for(var/i in 1 to shards) + debris += new /obj/item/weapon/shard(src) + if(rods) + debris += new /obj/item/stack/rods(src, rods) + if(cable) + debris += new /obj/item/stack/cable_coil(src, cable) + +/obj/machinery/door/window/Destroy() + density = 0 + for(var/I in debris) + qdel(I) + if(obj_integrity == 0) + playsound(src, "shatter", 70, 1) + electronics = null + return ..() + +/obj/machinery/door/window/update_icon() + if(density) + icon_state = base_state + else + icon_state = "[src.base_state]open" + +/obj/machinery/door/window/proc/open_and_close() + open() + if(src.check_access(null)) + sleep(50) + else //secure doors close faster + sleep(20) + close() + +/obj/machinery/door/window/Bumped(atom/movable/AM as mob|obj) + if( operating || !src.density ) + return + if (!( ismob(AM) )) + if(istype(AM, /obj/mecha)) + var/obj/mecha/mecha = AM + if(mecha.occupant && src.allowed(mecha.occupant)) + open_and_close() + else + do_animate("deny") + return + if (!( SSticker )) + return + var/mob/M = AM + if(M.restrained() || ((isdrone(M) || iscyborg(M)) && M.stat)) + return + bumpopen(M) + +/obj/machinery/door/window/bumpopen(mob/user) + if( operating || !src.density ) + return + src.add_fingerprint(user) + if(!src.requiresID()) + user = null + + if(allowed(user)) + open_and_close() + else + do_animate("deny") + return + +/obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + return !density + if(istype(mover, /obj/structure/window)) + var/obj/structure/window/W = mover + if(!valid_window_location(loc, W.ini_dir)) + return FALSE + else if(istype(mover, /obj/structure/windoor_assembly)) + var/obj/structure/windoor_assembly/W = mover + if(!valid_window_location(loc, W.ini_dir)) + return FALSE + else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir)) + return FALSE + else + return 1 + +/obj/machinery/door/window/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + +//used in the AStar algorithm to determinate if the turf the door is on is passable +/obj/machinery/door/window/CanAStarPass(obj/item/weapon/card/id/ID, to_dir) + return !density || (dir != to_dir) || (check_access(ID) && hasPower()) + +/obj/machinery/door/window/CheckExit(atom/movable/mover as mob|obj, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 + +/obj/machinery/door/window/open(forced=0) + if (src.operating == 1) //doors can still open when emag-disabled + return 0 + if(!forced) + if(!hasPower()) + return 0 + if(forced < 2) + if(emagged) + return 0 + if(!src.operating) //in case of emag + src.operating = 1 + do_animate("opening") + playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) + src.icon_state ="[src.base_state]open" + sleep(10) + + src.density = 0 +// src.sd_set_opacity(0) //TODO: why is this here? Opaque windoors? ~Carn + air_update_turf(1) + update_freelook_sight() + + if(operating == 1) //emag again + src.operating = 0 + return 1 + +/obj/machinery/door/window/close(forced=0) + if (src.operating) + return 0 + if(!forced) + if(!hasPower()) + return 0 + if(forced < 2) + if(emagged) + return 0 + src.operating = 1 + do_animate("closing") + playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) + src.icon_state = src.base_state + + src.density = 1 + air_update_turf(1) + update_freelook_sight() + sleep(10) + + src.operating = 0 + return 1 + +/obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + + +/obj/machinery/door/window/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT) && !disassembled) + for(var/obj/fragment in debris) + fragment.forceMove(get_turf(src)) + transfer_fingerprints_to(fragment) + debris -= fragment + qdel(src) + +/obj/machinery/door/window/narsie_act() + add_atom_colour("#7D1919", FIXED_COLOUR_PRIORITY) + +/obj/machinery/door/window/ratvar_act() + new/obj/machinery/door/window/clockwork(src.loc, dir) + qdel(src) + +/obj/machinery/door/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > T0C + (reinf ? 1600 : 800)) + take_damage(round(exposed_volume / 200), BURN, 0, 0) + ..() + + +/obj/machinery/door/window/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/door/window/emag_act(mob/user) + if(!operating && density && !emagged) + operating = 1 + flick("[src.base_state]spark", src) + sleep(6) + operating = 0 + desc += "
    Its access panel is smoking slightly." + open() + emagged = 1 + +/obj/machinery/door/window/attackby(obj/item/weapon/I, mob/living/user, params) + + if(operating) + return + + add_fingerprint(user) + if(!(flags&NODECONSTRUCT)) + if(istype(I, /obj/item/weapon/screwdriver)) + if(density || operating) + to_chat(user, "You need to open the door to access the maintenance panel!") + return + playsound(src.loc, I.usesound, 50, 1) + panel_open = !panel_open + to_chat(user, "You [panel_open ? "open":"close"] the maintenance panel of the [src.name].") + return + + if(istype(I, /obj/item/weapon/crowbar)) + if(panel_open && !density && !operating) + playsound(src.loc, I.usesound, 100, 1) + user.visible_message("[user] removes the electronics from the [src.name].", \ + "You start to remove electronics from the [src.name]...") + if(do_after(user,40*I.toolspeed, target = src)) + if(panel_open && !density && !operating && src.loc) + var/obj/structure/windoor_assembly/WA = new /obj/structure/windoor_assembly(src.loc) + switch(base_state) + if("left") + WA.facing = "l" + if("right") + WA.facing = "r" + if("leftsecure") + WA.facing = "l" + WA.secure = 1 + if("rightsecure") + WA.facing = "r" + WA.secure = 1 + WA.anchored = 1 + WA.state= "02" + WA.setDir(src.dir) + WA.ini_dir = src.dir + WA.update_icon() + WA.created_name = src.name + + if(emagged) + to_chat(user, "You discard the damaged electronics.") + qdel(src) + return + + to_chat(user, "You remove the airlock electronics.") + + var/obj/item/weapon/electronics/airlock/ae + if(!electronics) + ae = new/obj/item/weapon/electronics/airlock( src.loc ) + if(req_one_access) + ae.one_access = 1 + ae.accesses = src.req_one_access + else + ae.accesses = src.req_access + else + ae = electronics + electronics = null + ae.loc = src.loc + + qdel(src) + return + return ..() + +/obj/machinery/door/window/try_to_crowbar(obj/item/I, mob/user) + if(!hasPower()) + if(density) + open(2) + else + close(2) + else + to_chat(user, "The door's motors resist your efforts to force it!") + +/obj/machinery/door/window/do_animate(animation) + switch(animation) + if("opening") + flick("[src.base_state]opening", src) + if("closing") + flick("[src.base_state]closing", src) + if("deny") + flick("[src.base_state]deny", src) + + +/obj/machinery/door/window/brigdoor + name = "secure door" + icon_state = "leftsecure" + base_state = "leftsecure" + var/id = null + obj_integrity = 300 //Stronger doors for prison (regular window door health is 200) + max_integrity = 300 + reinf = 1 + explosion_block = 1 + +/obj/machinery/door/window/clockwork + name = "brass windoor" + desc = "A thin door with translucent brass paneling." + icon_state = "clockwork" + base_state = "clockwork" + shards = 0 + rods = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + var/made_glow = FALSE + +/obj/machinery/door/window/clockwork/New(loc, set_dir) + ..() + for(var/i in 1 to 2) + debris += new/obj/item/clockwork/alloy_shards/medium/gear_bit/large(src) + change_construction_value(2) + +/obj/machinery/door/window/clockwork/setDir(direct) + if(!made_glow) var/obj/effect/E = new /obj/effect/temp_visual/ratvar/door/window(get_turf(src)) - E.setDir(direct) - made_glow = TRUE - ..() - -/obj/machinery/door/window/clockwork/Destroy() - change_construction_value(-2) - return ..() - -/obj/machinery/door/window/clockwork/emp_act(severity) - if(prob(80/severity)) - open() - -/obj/machinery/door/window/clockwork/ratvar_act() - if(GLOB.ratvar_awakens) - obj_integrity = max_integrity - -/obj/machinery/door/window/clockwork/hasPower() - return TRUE //yup that's power all right - -/obj/machinery/door/window/clockwork/narsie_act() - take_damage(rand(30, 60), BRUTE) - if(src) - var/previouscolor = color - color = "#960000" - animate(src, color = previouscolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) - -/obj/machinery/door/window/clockwork/allowed(mob/M) - if(is_servant_of_ratvar(M)) - return 1 - return 0 - -/obj/machinery/door/window/northleft - dir = NORTH - -/obj/machinery/door/window/eastleft - dir = EAST - -/obj/machinery/door/window/westleft - dir = WEST - -/obj/machinery/door/window/southleft - dir = SOUTH - -/obj/machinery/door/window/northright - dir = NORTH - icon_state = "right" - base_state = "right" - -/obj/machinery/door/window/eastright - dir = EAST - icon_state = "right" - base_state = "right" - -/obj/machinery/door/window/westright - dir = WEST - icon_state = "right" - base_state = "right" - -/obj/machinery/door/window/southright - dir = SOUTH - icon_state = "right" - base_state = "right" - -/obj/machinery/door/window/brigdoor/northleft - dir = NORTH - -/obj/machinery/door/window/brigdoor/eastleft - dir = EAST - -/obj/machinery/door/window/brigdoor/westleft - dir = WEST - -/obj/machinery/door/window/brigdoor/southleft - dir = SOUTH - -/obj/machinery/door/window/brigdoor/northright - dir = NORTH - icon_state = "rightsecure" - base_state = "rightsecure" - -/obj/machinery/door/window/brigdoor/eastright - dir = EAST - icon_state = "rightsecure" - base_state = "rightsecure" - -/obj/machinery/door/window/brigdoor/westright - dir = WEST - icon_state = "rightsecure" - base_state = "rightsecure" - -/obj/machinery/door/window/brigdoor/southright - dir = SOUTH - icon_state = "rightsecure" - base_state = "rightsecure" + E.setDir(direct) + made_glow = TRUE + ..() + +/obj/machinery/door/window/clockwork/Destroy() + change_construction_value(-2) + return ..() + +/obj/machinery/door/window/clockwork/emp_act(severity) + if(prob(80/severity)) + open() + +/obj/machinery/door/window/clockwork/ratvar_act() + if(GLOB.ratvar_awakens) + obj_integrity = max_integrity + +/obj/machinery/door/window/clockwork/hasPower() + return TRUE //yup that's power all right + +/obj/machinery/door/window/clockwork/narsie_act() + take_damage(rand(30, 60), BRUTE) + if(src) + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + +/obj/machinery/door/window/clockwork/allowed(mob/M) + if(is_servant_of_ratvar(M)) + return 1 + return 0 + +/obj/machinery/door/window/northleft + dir = NORTH + +/obj/machinery/door/window/eastleft + dir = EAST + +/obj/machinery/door/window/westleft + dir = WEST + +/obj/machinery/door/window/southleft + dir = SOUTH + +/obj/machinery/door/window/northright + dir = NORTH + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/eastright + dir = EAST + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/westright + dir = WEST + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/southright + dir = SOUTH + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/brigdoor/northleft + dir = NORTH + +/obj/machinery/door/window/brigdoor/eastleft + dir = EAST + +/obj/machinery/door/window/brigdoor/westleft + dir = WEST + +/obj/machinery/door/window/brigdoor/southleft + dir = SOUTH + +/obj/machinery/door/window/brigdoor/northright + dir = NORTH + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/eastright + dir = EAST + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/westright + dir = WEST + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/southright + dir = SOUTH + icon_state = "rightsecure" + base_state = "rightsecure" diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index e245a03155..ddf50edac6 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -1,111 +1,111 @@ GLOBAL_LIST_EMPTY(doppler_arrays) -/obj/machinery/doppler_array - name = "tachyon-doppler array" - desc = "A highly precise directional sensor array which measures the release of quants from decaying tachyons. The doppler shifting of the mirror-image formed by these quants can reveal the size, location and temporal affects of energetic disturbances within a large radius ahead of the array.\nAlt-click to rotate it clockwise." - icon = 'icons/obj/machines/research.dmi' - icon_state = "tdoppler" - density = 1 - anchored = 1 - var/integrated = 0 - var/max_dist = 100 - verb_say = "states coldly" - -/obj/machinery/doppler_array/New() - ..() +/obj/machinery/doppler_array + name = "tachyon-doppler array" + desc = "A highly precise directional sensor array which measures the release of quants from decaying tachyons. The doppler shifting of the mirror-image formed by these quants can reveal the size, location and temporal affects of energetic disturbances within a large radius ahead of the array.\nAlt-click to rotate it clockwise." + icon = 'icons/obj/machines/research.dmi' + icon_state = "tdoppler" + density = 1 + anchored = 1 + var/integrated = 0 + var/max_dist = 100 + verb_say = "states coldly" + +/obj/machinery/doppler_array/New() + ..() GLOB.doppler_arrays += src - -/obj/machinery/doppler_array/Destroy() + +/obj/machinery/doppler_array/Destroy() GLOB.doppler_arrays -= src - return ..() - -/obj/machinery/doppler_array/process() - return PROCESS_KILL - -/obj/machinery/doppler_array/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/wrench)) - if(!anchored && !isinspace()) - anchored = 1 - power_change() - to_chat(user, "You fasten [src].") - else if(anchored) - anchored = 0 - power_change() - to_chat(user, "You unfasten [src].") - playsound(loc, O.usesound, 50, 1) - else - return ..() - -/obj/machinery/doppler_array/verb/rotate() - set name = "Rotate Tachyon-doppler Dish" - set category = "Object" - set src in oview(1) - - if(!usr || !isturf(usr.loc)) - return - if(usr.stat || usr.restrained() || !usr.canmove) - return - src.setDir(turn(src.dir, 90)) - return - -/obj/machinery/doppler_array/AltClick(mob/living/user) - if(!istype(user) || user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - -/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter,devastation_range,heavy_impact_range,light_impact_range, - took,orig_dev_range,orig_heavy_range,orig_light_range) - if(stat & NOPOWER) - return - var/turf/zone = get_turf(src) - - if(zone.z != epicenter.z) - return - - var/distance = get_dist(epicenter, zone) - var/direct = get_dir(zone, epicenter) - - if(distance > max_dist) - return - if(!(direct & dir) && !integrated) - return - - - var/list/messages = list("Explosive disturbance detected.", \ - "Epicenter at: grid ([epicenter.x],[epicenter.y]). Temporal displacement of tachyons: [took] seconds.", \ - "Factual: Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range].") - - // If the bomb was capped, say it's theoretical size. - if(devastation_range < orig_dev_range || heavy_impact_range < orig_heavy_range || light_impact_range < orig_light_range) - messages += "Theoretical: Epicenter radius: [orig_dev_range]. Outer radius: [orig_heavy_range]. Shockwave radius: [orig_light_range]." - - if(integrated) - var/obj/item/clothing/head/helmet/space/hardsuit/helm = loc - if(!helm || !istype(helm, /obj/item/clothing/head/helmet/space/hardsuit)) - return - helm.display_visor_message("Explosion detected! Epicenter: [devastation_range], Outer: [heavy_impact_range], Shock: [light_impact_range]") - else - for(var/message in messages) - say(message) - -/obj/machinery/doppler_array/power_change() - if(stat & BROKEN) - icon_state = "[initial(icon_state)]-broken" - else - if(powered() && anchored) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - icon_state = "[initial(icon_state)]-off" - stat |= NOPOWER - -//Portable version, built into EOD equipment. It simply provides an explosion's three damage levels. -/obj/machinery/doppler_array/integrated - name = "integrated tachyon-doppler module" - integrated = 1 - max_dist = 21 //Should detect most explosions in hearing range. + return ..() + +/obj/machinery/doppler_array/process() + return PROCESS_KILL + +/obj/machinery/doppler_array/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/wrench)) + if(!anchored && !isinspace()) + anchored = 1 + power_change() + to_chat(user, "You fasten [src].") + else if(anchored) + anchored = 0 + power_change() + to_chat(user, "You unfasten [src].") + playsound(loc, O.usesound, 50, 1) + else + return ..() + +/obj/machinery/doppler_array/verb/rotate() + set name = "Rotate Tachyon-doppler Dish" + set category = "Object" + set src in oview(1) + + if(!usr || !isturf(usr.loc)) + return + if(usr.stat || usr.restrained() || !usr.canmove) + return + src.setDir(turn(src.dir, 90)) + return + +/obj/machinery/doppler_array/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter,devastation_range,heavy_impact_range,light_impact_range, + took,orig_dev_range,orig_heavy_range,orig_light_range) + if(stat & NOPOWER) + return + var/turf/zone = get_turf(src) + + if(zone.z != epicenter.z) + return + + var/distance = get_dist(epicenter, zone) + var/direct = get_dir(zone, epicenter) + + if(distance > max_dist) + return + if(!(direct & dir) && !integrated) + return + + + var/list/messages = list("Explosive disturbance detected.", \ + "Epicenter at: grid ([epicenter.x],[epicenter.y]). Temporal displacement of tachyons: [took] seconds.", \ + "Factual: Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range].") + + // If the bomb was capped, say it's theoretical size. + if(devastation_range < orig_dev_range || heavy_impact_range < orig_heavy_range || light_impact_range < orig_light_range) + messages += "Theoretical: Epicenter radius: [orig_dev_range]. Outer radius: [orig_heavy_range]. Shockwave radius: [orig_light_range]." + + if(integrated) + var/obj/item/clothing/head/helmet/space/hardsuit/helm = loc + if(!helm || !istype(helm, /obj/item/clothing/head/helmet/space/hardsuit)) + return + helm.display_visor_message("Explosion detected! Epicenter: [devastation_range], Outer: [heavy_impact_range], Shock: [light_impact_range]") + else + for(var/message in messages) + say(message) + +/obj/machinery/doppler_array/power_change() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(powered() && anchored) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + icon_state = "[initial(icon_state)]-off" + stat |= NOPOWER + +//Portable version, built into EOD equipment. It simply provides an explosion's three damage levels. +/obj/machinery/doppler_array/integrated + name = "integrated tachyon-doppler module" + integrated = 1 + max_dist = 21 //Should detect most explosions in hearing range. use_power = NO_POWER_USE diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index 859f306396..76ea3b5fc4 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -41,7 +41,7 @@ var/maximum_idle = 3 var/work_sound = 'sound/items/rped.ogg' - var/create_sound = 'sound/items/Deconstruct.ogg' + var/create_sound = 'sound/items/deconstruct.ogg' var/recharge_sound = 'sound/machines/ping.ogg' var/begin_create_message = "whirs to life!" @@ -143,15 +143,15 @@ glass_cost = 0 cooldownTime = 300 //30 seconds maximum_idle = 0 // Swarmers have no restraint - dispense_type = /obj/item/device/unactivated_swarmer + dispense_type = /obj/effect/mob_spawn/swarmer begin_create_message = "hums softly as an interface appears above it, \ scrolling by at unreadable speed." end_create_message = "materializes a strange shell, which drops to the \ ground." recharging_text = "Its lights are slowly increasing in brightness." - work_sound = 'sound/effects/EMPulse.ogg' + work_sound = 'sound/effects/empulse.ogg' create_sound = 'sound/effects/phasein.ogg' - break_sound = 'sound/effects/EMPulse.ogg' + break_sound = 'sound/effects/empulse.ogg' break_message = "slowly falls dark, lights stuttering." /obj/machinery/droneDispenser/examine(mob/user) diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 047fc387bd..b04c616761 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -1,315 +1,315 @@ -#define CLOSING 1 -#define OPENING 2 -#define CYCLE 3 -#define CYCLE_EXTERIOR 4 -#define CYCLE_INTERIOR 5 - -/obj/machinery/doorButtons - power_channel = ENVIRON - anchored = 1 +#define CLOSING 1 +#define OPENING 2 +#define CYCLE 3 +#define CYCLE_EXTERIOR 4 +#define CYCLE_INTERIOR 5 + +/obj/machinery/doorButtons + power_channel = ENVIRON + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/idSelf - -/obj/machinery/doorButtons/attackby(obj/O, mob/user) - attack_hand(user) - -/obj/machinery/doorButtons/proc/findObjsByTag() - return - + idle_power_usage = 2 + active_power_usage = 4 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/idSelf + +/obj/machinery/doorButtons/attackby(obj/O, mob/user) + attack_hand(user) + +/obj/machinery/doorButtons/proc/findObjsByTag() + return + /obj/machinery/doorButtons/Initialize() ..() return INITIALIZE_HINT_LATELOAD /obj/machinery/doorButtons/LateInitialize() findObjsByTag() - -/obj/machinery/doorButtons/emag_act(mob/user) - if(!emagged) - emagged = 1 - req_access = list() - req_one_access = list() - playsound(src.loc, "sparks", 100, 1) - to_chat(user, "You short out the access controller.") - -/obj/machinery/doorButtons/proc/removeMe() - - -/obj/machinery/doorButtons/access_button - icon = 'icons/obj/airlock_machines.dmi' - icon_state = "access_button_standby" - name = "access button" - var/idDoor - var/obj/machinery/door/airlock/door - var/obj/machinery/doorButtons/airlock_controller/controller - var/busy - -/obj/machinery/doorButtons/access_button/findObjsByTag() - for(var/obj/machinery/doorButtons/airlock_controller/A in GLOB.machines) - if(A.idSelf == idSelf) - controller = A - break - for(var/obj/machinery/door/airlock/I in GLOB.machines) - if(I.id_tag == idDoor) - door = I - break - -/obj/machinery/doorButtons/access_button/attack_hand(mob/user) - if(..()) - return - if(busy) - return - if(!allowed(user)) - to_chat(user, "Access denied.") - return - if(controller && !controller.busy && door) - if(controller.stat & NOPOWER) - return - busy = 1 - update_icon() - if(door.density) - if(!controller.exteriorAirlock || !controller.interiorAirlock) - controller.onlyOpen(door) - else - if(controller.exteriorAirlock.density && controller.interiorAirlock.density) - controller.onlyOpen(door) - else - controller.cycleClose(door) - else - controller.onlyClose(door) - sleep(20) - busy = 0 - update_icon() - -/obj/machinery/doorButtons/access_button/update_icon() - if(stat & NOPOWER) - icon_state = "access_button_off" - else - if(busy) - icon_state = "access_button_cycle" - else - icon_state = "access_button_standby" - -/obj/machinery/doorButtons/access_button/power_change() - ..() - update_icon() - -/obj/machinery/doorButtons/access_button/removeMe(obj/O) - if(O == door) - door = null - - - -/obj/machinery/doorButtons/airlock_controller - icon = 'icons/obj/airlock_machines.dmi' - icon_state = "access_control_standby" - name = "access console" - var/obj/machinery/door/airlock/interiorAirlock - var/obj/machinery/door/airlock/exteriorAirlock - var/idInterior - var/idExterior - var/busy - var/lostPower - -/obj/machinery/doorButtons/airlock_controller/removeMe(obj/O) - if(O == interiorAirlock) - interiorAirlock = null - else if(O == exteriorAirlock) - exteriorAirlock = null - -/obj/machinery/doorButtons/airlock_controller/Destroy() - for(var/obj/machinery/doorButtons/access_button/A in GLOB.machines) - if(A.controller == src) - A.controller = null - return ..() - -/obj/machinery/doorButtons/airlock_controller/Topic(href, href_list) - if(..()) - return - if(busy) - return - if(!allowed(usr)) - to_chat(usr, "Access denied.") - return - switch(href_list["command"]) - if("close_exterior") - onlyClose(exteriorAirlock) - if("close_interior") - onlyClose(interiorAirlock) - if("cycle_exterior") - cycleClose(exteriorAirlock) - if("cycle_interior") - cycleClose(interiorAirlock) - if("open_exterior") - onlyOpen(exteriorAirlock) - if("open_interior") - onlyOpen(interiorAirlock) - -/obj/machinery/doorButtons/airlock_controller/proc/onlyOpen(obj/machinery/door/airlock/A) - if(A) - busy = CLOSING - update_icon() - openDoor(A) - -/obj/machinery/doorButtons/airlock_controller/proc/onlyClose(obj/machinery/door/airlock/A) - if(A) - busy = CLOSING - closeDoor(A) - -/obj/machinery/doorButtons/airlock_controller/proc/closeDoor(obj/machinery/door/airlock/A) - set waitfor = FALSE - if(A.density) - goIdle() - return 0 - update_icon() - A.unbolt() - . = 1 - if(A && A.close()) - if(stat & NOPOWER || lostPower || !A || QDELETED(A)) - goIdle(1) - return - A.bolt() - if(busy == CLOSING) - goIdle(1) - else - goIdle(1) - -/obj/machinery/doorButtons/airlock_controller/proc/cycleClose(obj/machinery/door/airlock/A) - if(!A || !exteriorAirlock || !interiorAirlock) - return - if(exteriorAirlock.density == interiorAirlock.density || !A.density) - return - busy = CYCLE - update_icon() - if(A == interiorAirlock) - if(closeDoor(exteriorAirlock)) - busy = CYCLE_INTERIOR - else - if(closeDoor(interiorAirlock)) - busy = CYCLE_EXTERIOR - -/obj/machinery/doorButtons/airlock_controller/proc/cycleOpen(obj/machinery/door/airlock/A) - if(!A) - goIdle(1) - if(A == exteriorAirlock) - if(interiorAirlock) - if(!interiorAirlock.density || !interiorAirlock.locked) - return - else - if(exteriorAirlock) - if(!exteriorAirlock.density || !exteriorAirlock.locked) - return - if(busy != OPENING) - busy = OPENING - openDoor(A) - -/obj/machinery/doorButtons/airlock_controller/proc/openDoor(obj/machinery/door/airlock/A) - if(exteriorAirlock && interiorAirlock && (!exteriorAirlock.density || !interiorAirlock.density)) - goIdle(1) - return - A.unbolt() - spawn() - if(A && A.open()) - if(stat | (NOPOWER) && !lostPower && A && !QDELETED(A)) - A.bolt() - goIdle(1) - -/obj/machinery/doorButtons/airlock_controller/proc/goIdle(update) - lostPower = 0 - busy = 0 - if(update) - update_icon() - updateUsrDialog() - -/obj/machinery/doorButtons/airlock_controller/process() - if(stat & NOPOWER) - return - if(busy == CYCLE_EXTERIOR) - cycleOpen(exteriorAirlock) - else if(busy == CYCLE_INTERIOR) - cycleOpen(interiorAirlock) - -/obj/machinery/doorButtons/airlock_controller/power_change() - ..() - if(stat & NOPOWER) - lostPower = 1 - else - if(!busy) - lostPower = 0 - update_icon() - -/obj/machinery/doorButtons/airlock_controller/findObjsByTag() - for(var/obj/machinery/door/airlock/A in GLOB.machines) - if(A.id_tag == idInterior) - interiorAirlock = A - else if(A.id_tag == idExterior) - exteriorAirlock = A - -/obj/machinery/doorButtons/airlock_controller/update_icon() - if(stat & NOPOWER) - icon_state = "access_control_off" - return - if(busy || lostPower) - icon_state = "access_control_process" - else - icon_state = "access_control_standby" - -/obj/machinery/doorButtons/airlock_controller/attack_hand(mob/user) - if(..()) - return - var/datum/browser/popup = new(user, "computer", name) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.set_content(returnText()) - popup.open() - -/obj/machinery/doorButtons/airlock_controller/proc/returnText() - var/output - if(!exteriorAirlock && !interiorAirlock) - return "ERROR ERROR ERROR ERROR" - if(lostPower) - output = "Initializing..." - else - if(!exteriorAirlock || !interiorAirlock) - if(!exteriorAirlock) - if(interiorAirlock.density) - output = "Open Interior Airlock
    " - else - output = "Close Interior Airlock
    " - else - if(exteriorAirlock.density) - output = "Open Exterior Airlock
    " - else - output = "Close Exterior Airlock
    " - else - if(exteriorAirlock.density) - if(interiorAirlock.density) - output = {"Open Exterior Airlock
    - Open Interior Airlock
    "} - else - output = {"Cycle to Exterior Airlock
    - Close Interior Airlock
    "} - else - if(interiorAirlock.density) - output = {"Close Exterior Airlock
    - Cycle to Interior Airlock
    "} - else - output = {"Close Exterior Airlock
    - Close Interior Airlock
    "} - - - output = {"Access Control Console
    - [output]
    "} - if(exteriorAirlock) - output += "Exterior Door: [exteriorAirlock.density ? "closed" : "open"]
    " - if(interiorAirlock) - output += "Interior Door: [interiorAirlock.density ? "closed" : "open"]
    " - - return output - -#undef CLOSING -#undef OPENING -#undef CYCLE -#undef CYCLE_EXTERIOR + +/obj/machinery/doorButtons/emag_act(mob/user) + if(!emagged) + emagged = 1 + req_access = list() + req_one_access = list() + playsound(src.loc, "sparks", 100, 1) + to_chat(user, "You short out the access controller.") + +/obj/machinery/doorButtons/proc/removeMe() + + +/obj/machinery/doorButtons/access_button + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "access_button_standby" + name = "access button" + var/idDoor + var/obj/machinery/door/airlock/door + var/obj/machinery/doorButtons/airlock_controller/controller + var/busy + +/obj/machinery/doorButtons/access_button/findObjsByTag() + for(var/obj/machinery/doorButtons/airlock_controller/A in GLOB.machines) + if(A.idSelf == idSelf) + controller = A + break + for(var/obj/machinery/door/airlock/I in GLOB.machines) + if(I.id_tag == idDoor) + door = I + break + +/obj/machinery/doorButtons/access_button/attack_hand(mob/user) + if(..()) + return + if(busy) + return + if(!allowed(user)) + to_chat(user, "Access denied.") + return + if(controller && !controller.busy && door) + if(controller.stat & NOPOWER) + return + busy = 1 + update_icon() + if(door.density) + if(!controller.exteriorAirlock || !controller.interiorAirlock) + controller.onlyOpen(door) + else + if(controller.exteriorAirlock.density && controller.interiorAirlock.density) + controller.onlyOpen(door) + else + controller.cycleClose(door) + else + controller.onlyClose(door) + sleep(20) + busy = 0 + update_icon() + +/obj/machinery/doorButtons/access_button/update_icon() + if(stat & NOPOWER) + icon_state = "access_button_off" + else + if(busy) + icon_state = "access_button_cycle" + else + icon_state = "access_button_standby" + +/obj/machinery/doorButtons/access_button/power_change() + ..() + update_icon() + +/obj/machinery/doorButtons/access_button/removeMe(obj/O) + if(O == door) + door = null + + + +/obj/machinery/doorButtons/airlock_controller + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "access_control_standby" + name = "access console" + var/obj/machinery/door/airlock/interiorAirlock + var/obj/machinery/door/airlock/exteriorAirlock + var/idInterior + var/idExterior + var/busy + var/lostPower + +/obj/machinery/doorButtons/airlock_controller/removeMe(obj/O) + if(O == interiorAirlock) + interiorAirlock = null + else if(O == exteriorAirlock) + exteriorAirlock = null + +/obj/machinery/doorButtons/airlock_controller/Destroy() + for(var/obj/machinery/doorButtons/access_button/A in GLOB.machines) + if(A.controller == src) + A.controller = null + return ..() + +/obj/machinery/doorButtons/airlock_controller/Topic(href, href_list) + if(..()) + return + if(busy) + return + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + switch(href_list["command"]) + if("close_exterior") + onlyClose(exteriorAirlock) + if("close_interior") + onlyClose(interiorAirlock) + if("cycle_exterior") + cycleClose(exteriorAirlock) + if("cycle_interior") + cycleClose(interiorAirlock) + if("open_exterior") + onlyOpen(exteriorAirlock) + if("open_interior") + onlyOpen(interiorAirlock) + +/obj/machinery/doorButtons/airlock_controller/proc/onlyOpen(obj/machinery/door/airlock/A) + if(A) + busy = CLOSING + update_icon() + openDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/onlyClose(obj/machinery/door/airlock/A) + if(A) + busy = CLOSING + closeDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/closeDoor(obj/machinery/door/airlock/A) + set waitfor = FALSE + if(A.density) + goIdle() + return 0 + update_icon() + A.unbolt() + . = 1 + if(A && A.close()) + if(stat & NOPOWER || lostPower || !A || QDELETED(A)) + goIdle(1) + return + A.bolt() + if(busy == CLOSING) + goIdle(1) + else + goIdle(1) + +/obj/machinery/doorButtons/airlock_controller/proc/cycleClose(obj/machinery/door/airlock/A) + if(!A || !exteriorAirlock || !interiorAirlock) + return + if(exteriorAirlock.density == interiorAirlock.density || !A.density) + return + busy = CYCLE + update_icon() + if(A == interiorAirlock) + if(closeDoor(exteriorAirlock)) + busy = CYCLE_INTERIOR + else + if(closeDoor(interiorAirlock)) + busy = CYCLE_EXTERIOR + +/obj/machinery/doorButtons/airlock_controller/proc/cycleOpen(obj/machinery/door/airlock/A) + if(!A) + goIdle(1) + if(A == exteriorAirlock) + if(interiorAirlock) + if(!interiorAirlock.density || !interiorAirlock.locked) + return + else + if(exteriorAirlock) + if(!exteriorAirlock.density || !exteriorAirlock.locked) + return + if(busy != OPENING) + busy = OPENING + openDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/openDoor(obj/machinery/door/airlock/A) + if(exteriorAirlock && interiorAirlock && (!exteriorAirlock.density || !interiorAirlock.density)) + goIdle(1) + return + A.unbolt() + spawn() + if(A && A.open()) + if(stat | (NOPOWER) && !lostPower && A && !QDELETED(A)) + A.bolt() + goIdle(1) + +/obj/machinery/doorButtons/airlock_controller/proc/goIdle(update) + lostPower = 0 + busy = 0 + if(update) + update_icon() + updateUsrDialog() + +/obj/machinery/doorButtons/airlock_controller/process() + if(stat & NOPOWER) + return + if(busy == CYCLE_EXTERIOR) + cycleOpen(exteriorAirlock) + else if(busy == CYCLE_INTERIOR) + cycleOpen(interiorAirlock) + +/obj/machinery/doorButtons/airlock_controller/power_change() + ..() + if(stat & NOPOWER) + lostPower = 1 + else + if(!busy) + lostPower = 0 + update_icon() + +/obj/machinery/doorButtons/airlock_controller/findObjsByTag() + for(var/obj/machinery/door/airlock/A in GLOB.machines) + if(A.id_tag == idInterior) + interiorAirlock = A + else if(A.id_tag == idExterior) + exteriorAirlock = A + +/obj/machinery/doorButtons/airlock_controller/update_icon() + if(stat & NOPOWER) + icon_state = "access_control_off" + return + if(busy || lostPower) + icon_state = "access_control_process" + else + icon_state = "access_control_standby" + +/obj/machinery/doorButtons/airlock_controller/attack_hand(mob/user) + if(..()) + return + var/datum/browser/popup = new(user, "computer", name) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_content(returnText()) + popup.open() + +/obj/machinery/doorButtons/airlock_controller/proc/returnText() + var/output + if(!exteriorAirlock && !interiorAirlock) + return "ERROR ERROR ERROR ERROR" + if(lostPower) + output = "Initializing..." + else + if(!exteriorAirlock || !interiorAirlock) + if(!exteriorAirlock) + if(interiorAirlock.density) + output = "Open Interior Airlock
    " + else + output = "Close Interior Airlock
    " + else + if(exteriorAirlock.density) + output = "Open Exterior Airlock
    " + else + output = "Close Exterior Airlock
    " + else + if(exteriorAirlock.density) + if(interiorAirlock.density) + output = {"Open Exterior Airlock
    + Open Interior Airlock
    "} + else + output = {"Cycle to Exterior Airlock
    + Close Interior Airlock
    "} + else + if(interiorAirlock.density) + output = {"Close Exterior Airlock
    + Cycle to Interior Airlock
    "} + else + output = {"Close Exterior Airlock
    + Close Interior Airlock
    "} + + + output = {"Access Control Console
    + [output]
    "} + if(exteriorAirlock) + output += "Exterior Door: [exteriorAirlock.density ? "closed" : "open"]
    " + if(interiorAirlock) + output += "Interior Door: [interiorAirlock.density ? "closed" : "open"]
    " + + return output + +#undef CLOSING +#undef OPENING +#undef CYCLE +#undef CYCLE_EXTERIOR #undef CYCLE_INTERIOR \ No newline at end of file diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 72757423ad..fc76643da0 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -1,158 +1,158 @@ -/obj/item/weapon/electronics/firealarm - name = "fire alarm electronics" +/obj/item/weapon/electronics/firealarm + name = "fire alarm electronics" desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius." - -/obj/item/wallframe/firealarm - name = "fire alarm frame" + +/obj/item/wallframe/firealarm + name = "fire alarm frame" desc = "Used for building fire alarms" - icon = 'icons/obj/monitors.dmi' - icon_state = "fire_bitem" - result_path = /obj/machinery/firealarm - -/obj/machinery/firealarm - name = "fire alarm" - desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." - icon = 'icons/obj/monitors.dmi' - icon_state = "fire0" - anchored = 1 - obj_integrity = 250 - max_integrity = 250 - integrity_failure = 100 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) + icon = 'icons/obj/monitors.dmi' + icon_state = "fire_bitem" + result_path = /obj/machinery/firealarm + +/obj/machinery/firealarm + name = "fire alarm" + desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." + icon = 'icons/obj/monitors.dmi' + icon_state = "fire0" + anchored = 1 + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 100 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 - power_channel = ENVIRON - var/detecting = 1 - var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone - resistance_flags = FIRE_PROOF - - -/obj/machinery/firealarm/New(loc, dir, building) - ..() - if(dir) - src.setDir(dir) - if(building) - buildstage = 0 - panel_open = 1 - pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - update_icon() - -/obj/machinery/firealarm/power_change() - ..() - update_icon() - -/obj/machinery/firealarm/update_icon() - cut_overlays() - - var/area/A = src.loc - A = A.loc - - if(panel_open) - icon_state = "fire_b[buildstage]" - return - else - icon_state = "fire0" - - if(stat & BROKEN) - icon_state = "firex" - return - - if(stat & NOPOWER) - return - - if(src.z == ZLEVEL_STATION) - add_overlay("overlay_[GLOB.security_level]") - else - //var/green = SEC_LEVEL_GREEN - add_overlay("overlay_[SEC_LEVEL_GREEN]") - - if(detecting) - add_overlay("overlay_[A.fire ? "fire" : "clear"]") - else - add_overlay("overlay_fire") - -/obj/machinery/firealarm/emp_act(severity) - if(prob(50 / severity)) - alarm() - ..() - -/obj/machinery/firealarm/emag_act(mob/user) - if(!emagged) - emagged = 1 - if(user) - user.visible_message("Sparks fly out of the [src]!", - "You emag [src], disabling its thermal sensors.") - playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) - -/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) - if(!emagged && detecting && !stat && (temperature > T0C + 200 || temperature < BODYTEMP_COLD_DAMAGE_LIMIT)) - alarm() - ..() - -/obj/machinery/firealarm/proc/alarm() - if(!is_operational()) - return - var/area/A = get_area(src) - A.firealert(src) - playsound(src.loc, 'goon/sound/machinery/FireAlarm.ogg', 75) - -/obj/machinery/firealarm/proc/alarm_in(time) - addtimer(CALLBACK(src, .proc/alarm), time) - -/obj/machinery/firealarm/proc/reset() - if(!is_operational()) - return - var/area/A = get_area(src) - A.firereset(src) - -/obj/machinery/firealarm/proc/reset_in(time) - addtimer(CALLBACK(src, .proc/reset), time) - -/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "firealarm", name, 300, 150, master_ui, state) - ui.open() - -/obj/machinery/firealarm/ui_data(mob/user) - var/list/data = list() - data["emagged"] = emagged - - if(src.z == ZLEVEL_STATION) - data["seclevel"] = get_security_level() - else - data["seclevel"] = "green" - - var/area/A = get_area(src) - data["alarm"] = A.fire - - return data - -/obj/machinery/firealarm/ui_act(action, params) - if(..() || buildstage != 2) - return - switch(action) - if("reset") - reset() - . = TRUE - if("alarm") - alarm() - . = TRUE - -/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - - if(istype(W, /obj/item/weapon/screwdriver) && buildstage == 2) - playsound(src.loc, W.usesound, 50, 1) - panel_open = !panel_open - to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") - update_icon() - return - - if(panel_open) + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + var/detecting = 1 + var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone + resistance_flags = FIRE_PROOF + + +/obj/machinery/firealarm/New(loc, dir, building) + ..() + if(dir) + src.setDir(dir) + if(building) + buildstage = 0 + panel_open = 1 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + update_icon() + +/obj/machinery/firealarm/power_change() + ..() + update_icon() + +/obj/machinery/firealarm/update_icon() + cut_overlays() + + var/area/A = src.loc + A = A.loc + + if(panel_open) + icon_state = "fire_b[buildstage]" + return + else + icon_state = "fire0" + + if(stat & BROKEN) + icon_state = "firex" + return + + if(stat & NOPOWER) + return + + if(src.z == ZLEVEL_STATION) + add_overlay("overlay_[GLOB.security_level]") + else + //var/green = SEC_LEVEL_GREEN + add_overlay("overlay_[SEC_LEVEL_GREEN]") + + if(detecting) + add_overlay("overlay_[A.fire ? "fire" : "clear"]") + else + add_overlay("overlay_fire") + +/obj/machinery/firealarm/emp_act(severity) + if(prob(50 / severity)) + alarm() + ..() + +/obj/machinery/firealarm/emag_act(mob/user) + if(!emagged) + emagged = 1 + if(user) + user.visible_message("Sparks fly out of the [src]!", + "You emag [src], disabling its thermal sensors.") + playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) + +/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) + if(!emagged && detecting && !stat && (temperature > T0C + 200 || temperature < BODYTEMP_COLD_DAMAGE_LIMIT)) + alarm() + ..() + +/obj/machinery/firealarm/proc/alarm() + if(!is_operational()) + return + var/area/A = get_area(src) + A.firealert(src) + playsound(src.loc, 'goon/sound/machinery/FireAlarm.ogg', 75) + +/obj/machinery/firealarm/proc/alarm_in(time) + addtimer(CALLBACK(src, .proc/alarm), time) + +/obj/machinery/firealarm/proc/reset() + if(!is_operational()) + return + var/area/A = get_area(src) + A.firereset(src) + +/obj/machinery/firealarm/proc/reset_in(time) + addtimer(CALLBACK(src, .proc/reset), time) + +/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "firealarm", name, 300, 150, master_ui, state) + ui.open() + +/obj/machinery/firealarm/ui_data(mob/user) + var/list/data = list() + data["emagged"] = emagged + + if(src.z == ZLEVEL_STATION) + data["seclevel"] = get_security_level() + else + data["seclevel"] = "green" + + var/area/A = get_area(src) + data["alarm"] = A.fire + + return data + +/obj/machinery/firealarm/ui_act(action, params) + if(..() || buildstage != 2) + return + switch(action) + if("reset") + reset() + . = TRUE + if("alarm") + alarm() + . = TRUE + +/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + + if(istype(W, /obj/item/weapon/screwdriver) && buildstage == 2) + playsound(src.loc, W.usesound, 50, 1) + panel_open = !panel_open + to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") + update_icon() + return + + if(panel_open) if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent == INTENT_HELP) var/obj/item/weapon/weldingtool/WT = W @@ -162,158 +162,158 @@ playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*WT.toolspeed, target = src)) obj_integrity = max_integrity - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) to_chat(user, "You repair [src].") else to_chat(user, "[src] is already in good condition!") return - switch(buildstage) - if(2) - if(istype(W, /obj/item/device/multitool)) - detecting = !detecting - if (src.detecting) - user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") - else - user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") - return - - else if (istype(W, /obj/item/weapon/wirecutters)) - buildstage = 1 - playsound(src.loc, W.usesound, 50, 1) - new /obj/item/stack/cable_coil(user.loc, 5) - to_chat(user, "You cut the wires from \the [src].") - update_icon() - return - if(1) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/coil = W - if(coil.get_amount() < 5) - to_chat(user, "You need more cable for this!") - else - coil.use(5) - buildstage = 2 - to_chat(user, "You wire \the [src].") - update_icon() - return - - else if(istype(W, /obj/item/weapon/crowbar)) - playsound(src.loc, W.usesound, 50, 1) - user.visible_message("[user.name] removes the electronics from [src.name].", \ - "You start prying out the circuit...") - if(do_after(user, 20*W.toolspeed, target = src)) - if(buildstage == 1) - if(stat & BROKEN) - to_chat(user, "You remove the destroyed circuit.") + switch(buildstage) + if(2) + if(istype(W, /obj/item/device/multitool)) + detecting = !detecting + if (src.detecting) + user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") + else + user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") + return + + else if (istype(W, /obj/item/weapon/wirecutters)) + buildstage = 1 + playsound(src.loc, W.usesound, 50, 1) + new /obj/item/stack/cable_coil(user.loc, 5) + to_chat(user, "You cut the wires from \the [src].") + update_icon() + return + if(1) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/coil = W + if(coil.get_amount() < 5) + to_chat(user, "You need more cable for this!") + else + coil.use(5) + buildstage = 2 + to_chat(user, "You wire \the [src].") + update_icon() + return + + else if(istype(W, /obj/item/weapon/crowbar)) + playsound(src.loc, W.usesound, 50, 1) + user.visible_message("[user.name] removes the electronics from [src.name].", \ + "You start prying out the circuit...") + if(do_after(user, 20*W.toolspeed, target = src)) + if(buildstage == 1) + if(stat & BROKEN) + to_chat(user, "You remove the destroyed circuit.") stat &= ~BROKEN - else - to_chat(user, "You pry out the circuit.") - new /obj/item/weapon/electronics/firealarm(user.loc) - buildstage = 0 - update_icon() - return - if(0) - if(istype(W, /obj/item/weapon/electronics/firealarm)) - to_chat(user, "You insert the circuit.") - qdel(W) - buildstage = 1 - update_icon() - return - - else if(istype(W, /obj/item/weapon/wrench)) - user.visible_message("[user] removes the fire alarm assembly from the wall.", \ - "You remove the fire alarm assembly from the wall.") - var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() - frame.loc = user.loc - playsound(src.loc, W.usesound, 50, 1) - qdel(src) - return - return ..() - - -/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - . = ..() - if(.) //damage received - if(obj_integrity > 0 && !(stat & BROKEN) && buildstage != 0) - if(prob(33)) - alarm() - -/obj/machinery/firealarm/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags & NODECONSTRUCT) && buildstage != 0) //can't break the electronics if there isn't any inside. - stat |= BROKEN - update_icon() - -/obj/machinery/firealarm/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - new /obj/item/stack/sheet/metal(loc, 1) + else + to_chat(user, "You pry out the circuit.") + new /obj/item/weapon/electronics/firealarm(user.loc) + buildstage = 0 + update_icon() + return + if(0) + if(istype(W, /obj/item/weapon/electronics/firealarm)) + to_chat(user, "You insert the circuit.") + qdel(W) + buildstage = 1 + update_icon() + return + + else if(istype(W, /obj/item/weapon/wrench)) + user.visible_message("[user] removes the fire alarm assembly from the wall.", \ + "You remove the fire alarm assembly from the wall.") + var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() + frame.loc = user.loc + playsound(src.loc, W.usesound, 50, 1) + qdel(src) + return + return ..() + + +/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) //damage received + if(obj_integrity > 0 && !(stat & BROKEN) && buildstage != 0) + if(prob(33)) + alarm() + +/obj/machinery/firealarm/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT) && buildstage != 0) //can't break the electronics if there isn't any inside. + stat |= BROKEN + update_icon() + +/obj/machinery/firealarm/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 1) if(!(stat & BROKEN)) var/obj/item/I = new /obj/item/weapon/electronics/firealarm(loc) if(!disassembled) I.obj_integrity = I.max_integrity * 0.5 - new /obj/item/stack/cable_coil(loc, 3) - qdel(src) - - -/* - * Party button - */ - -/obj/machinery/firealarm/partyalarm - name = "\improper PARTY BUTTON" - desc = "Cuban Pete is in the house!" - -/obj/machinery/firealarm/partyalarm/attack_hand(mob/user) - if((user.stat && !IsAdminGhost(user)) || stat & (NOPOWER|BROKEN)) - return - - if (buildstage != 2) - return - - user.set_machine(src) - var/area/A = src.loc - var/d1 - var/dat - if(ishuman(user) || user.has_unlimited_silicon_privilege) - A = A.loc - - if (A.party) - d1 = text("No Party :(", src) - else - d1 = text("PARTY!!!", src) - dat = text("Party Button []", d1) - - else - A = A.loc - if (A.fire) - d1 = text("[]", src, stars("No Party :(")) - else - d1 = text("[]", src, stars("PARTY!!!")) - dat = text("[] []", stars("Party Button"), d1) - - var/datum/browser/popup = new(user, "firealarm", "Party Alarm") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - -/obj/machinery/firealarm/partyalarm/reset() - if (stat & (NOPOWER|BROKEN)) - return - var/area/A = src.loc - A = A.loc - if (!( istype(A, /area) )) - return - for(var/area/RA in A.related) - RA.partyreset() - return - -/obj/machinery/firealarm/partyalarm/alarm() - if (stat & (NOPOWER|BROKEN)) - return - var/area/A = src.loc - A = A.loc - if (!( istype(A, /area) )) - return - for(var/area/RA in A.related) - RA.partyalert() - return + new /obj/item/stack/cable_coil(loc, 3) + qdel(src) + + +/* + * Party button + */ + +/obj/machinery/firealarm/partyalarm + name = "\improper PARTY BUTTON" + desc = "Cuban Pete is in the house!" + +/obj/machinery/firealarm/partyalarm/attack_hand(mob/user) + if((user.stat && !IsAdminGhost(user)) || stat & (NOPOWER|BROKEN)) + return + + if (buildstage != 2) + return + + user.set_machine(src) + var/area/A = src.loc + var/d1 + var/dat + if(ishuman(user) || user.has_unlimited_silicon_privilege) + A = A.loc + + if (A.party) + d1 = text("No Party :(", src) + else + d1 = text("PARTY!!!", src) + dat = text("Party Button []", d1) + + else + A = A.loc + if (A.fire) + d1 = text("[]", src, stars("No Party :(")) + else + d1 = text("[]", src, stars("PARTY!!!")) + dat = text("[] []", stars("Party Button"), d1) + + var/datum/browser/popup = new(user, "firealarm", "Party Alarm") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/firealarm/partyalarm/reset() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = src.loc + A = A.loc + if (!( istype(A, /area) )) + return + for(var/area/RA in A.related) + RA.partyreset() + return + +/obj/machinery/firealarm/partyalarm/alarm() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = src.loc + A = A.loc + if (!( istype(A, /area) )) + return + for(var/area/RA in A.related) + RA.partyalert() + return diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 6904067e2a..96c22cd8b2 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -1,205 +1,205 @@ -// It is a gizmo that flashes a small area - -/obj/machinery/flasher - name = "mounted flash" - desc = "A wall-mounted flashbulb device." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "mflash1" - var/obj/item/device/assembly/flash/handheld/bulb = null - var/id = null - var/range = 2 //this is roughly the size of brig cell - var/last_flash = 0 //Don't want it getting spammed like regular flashes - var/strength = 5 //How weakened targets are when flashed. - var/base_state = "mflash" - obj_integrity = 250 - max_integrity = 250 - integrity_failure = 100 - anchored = 1 - -/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored - name = "portable flasher" - desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements." - icon_state = "pflash1-p" - strength = 4 - anchored = 0 - base_state = "pflash" - density = 1 - -/obj/machinery/flasher/New(loc, ndir = 0, built = 0) - ..() // ..() is EXTREMELY IMPORTANT, never forget to add it - if(built) - setDir(ndir) - pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28) - pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0 - else - bulb = new /obj/item/device/assembly/flash/handheld(src) - -/obj/machinery/flasher/Destroy() - if(bulb) - qdel(bulb) - bulb = null - return ..() - -/obj/machinery/flasher/power_change() - if (powered() && anchored && bulb) - stat &= ~NOPOWER - if(bulb.crit_fail) - icon_state = "[base_state]1-p" - else - icon_state = "[base_state]1" - else - stat |= NOPOWER - icon_state = "[base_state]1-p" - -//Don't want to render prison breaks impossible -/obj/machinery/flasher/attackby(obj/item/weapon/W, mob/user, params) - add_fingerprint(user) - if (istype(W, /obj/item/weapon/wirecutters)) - if (bulb) - user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb...") - playsound(src.loc, W.usesound, 100, 1) - if(do_after(user, 30*W.toolspeed, target = src) && bulb) - user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") - bulb.forceMove(loc) - bulb = null - power_change() - - else if (istype(W, /obj/item/device/assembly/flash/handheld)) - if (!bulb) - if(!user.drop_item()) - return - user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].") - W.forceMove(src) - bulb = W - power_change() - else - to_chat(user, "A flashbulb is already installed in [src]!") - - else if (istype(W, /obj/item/weapon/wrench)) - if(!bulb) - to_chat(user, "You start unsecuring the flasher frame...") - playsound(loc, W.usesound, 50, 1) - if(do_after(user, 40*W.toolspeed, target = src)) - to_chat(user, "You unsecure the flasher frame.") - deconstruct(TRUE) - else - to_chat(user, "Remove a flashbulb from [src] first!") - else - return ..() - -//Let the AI trigger them directly. -/obj/machinery/flasher/attack_ai() - if (anchored) - return flash() - -/obj/machinery/flasher/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) - if(damage_flag == "melee" && damage_amount < 10) //any melee attack below 10 dmg does nothing - return 0 - . = ..() - -/obj/machinery/flasher/proc/flash() - if (!powered() || !bulb) - return - - if (bulb.crit_fail || (last_flash && world.time < src.last_flash + 150)) - return - - if(!bulb.flash_recharge(30)) //Bulb can burn out if it's used too often too fast - power_change() - return - bulb.times_used ++ - - playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) - flick("[base_state]_flash", src) - last_flash = world.time - use_power(1000) - - for (var/mob/living/L in viewers(src, null)) - if (get_dist(src, L) > range) - continue - - if(L.flash_act(affect_silicon = 1)) - L.Weaken(strength) - - return 1 - - -/obj/machinery/flasher/emp_act(severity) - if(!(stat & (BROKEN|NOPOWER))) - if(bulb && prob(75/severity)) - flash() - bulb.burn_out() - power_change() - ..() - -/obj/machinery/flasher/obj_break(damage_flag) - if(!(flags & NODECONSTRUCT)) - if(!(stat & BROKEN)) - stat |= BROKEN - if(bulb) - bulb.burn_out() - power_change() - -/obj/machinery/flasher/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(bulb) - bulb.forceMove(loc) - bulb = null - if(disassembled) - var/obj/item/wallframe/flasher/F = new(get_turf(src)) - transfer_fingerprints_to(F) - F.id = id - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - else - new /obj/item/stack/sheet/metal (loc, 2) - qdel(src) - +// It is a gizmo that flashes a small area + +/obj/machinery/flasher + name = "mounted flash" + desc = "A wall-mounted flashbulb device." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mflash1" + var/obj/item/device/assembly/flash/handheld/bulb = null + var/id = null + var/range = 2 //this is roughly the size of brig cell + var/last_flash = 0 //Don't want it getting spammed like regular flashes + var/strength = 100 //How knocked down targets are when flashed. + var/base_state = "mflash" + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 100 + anchored = 1 + +/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored + name = "portable flasher" + desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements." + icon_state = "pflash1-p" + strength = 80 + anchored = 0 + base_state = "pflash" + density = 1 + +/obj/machinery/flasher/New(loc, ndir = 0, built = 0) + ..() // ..() is EXTREMELY IMPORTANT, never forget to add it + if(built) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28) + pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0 + else + bulb = new /obj/item/device/assembly/flash/handheld(src) + +/obj/machinery/flasher/Destroy() + if(bulb) + qdel(bulb) + bulb = null + return ..() + +/obj/machinery/flasher/power_change() + if (powered() && anchored && bulb) + stat &= ~NOPOWER + if(bulb.crit_fail) + icon_state = "[base_state]1-p" + else + icon_state = "[base_state]1" + else + stat |= NOPOWER + icon_state = "[base_state]1-p" + +//Don't want to render prison breaks impossible +/obj/machinery/flasher/attackby(obj/item/weapon/W, mob/user, params) + add_fingerprint(user) + if (istype(W, /obj/item/weapon/wirecutters)) + if (bulb) + user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb...") + playsound(src.loc, W.usesound, 100, 1) + if(do_after(user, 30*W.toolspeed, target = src) && bulb) + user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") + bulb.forceMove(loc) + bulb = null + power_change() + + else if (istype(W, /obj/item/device/assembly/flash/handheld)) + if (!bulb) + if(!user.drop_item()) + return + user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].") + W.forceMove(src) + bulb = W + power_change() + else + to_chat(user, "A flashbulb is already installed in [src]!") + + else if (istype(W, /obj/item/weapon/wrench)) + if(!bulb) + to_chat(user, "You start unsecuring the flasher frame...") + playsound(loc, W.usesound, 50, 1) + if(do_after(user, 40*W.toolspeed, target = src)) + to_chat(user, "You unsecure the flasher frame.") + deconstruct(TRUE) + else + to_chat(user, "Remove a flashbulb from [src] first!") + else + return ..() + +//Let the AI trigger them directly. +/obj/machinery/flasher/attack_ai() + if (anchored) + return flash() + +/obj/machinery/flasher/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 10) //any melee attack below 10 dmg does nothing + return 0 + . = ..() + +/obj/machinery/flasher/proc/flash() + if (!powered() || !bulb) + return + + if (bulb.crit_fail || (last_flash && world.time < src.last_flash + 150)) + return + + if(!bulb.flash_recharge(30)) //Bulb can burn out if it's used too often too fast + power_change() + return + bulb.times_used ++ + + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + flick("[base_state]_flash", src) + last_flash = world.time + use_power(1000) + + for (var/mob/living/L in viewers(src, null)) + if (get_dist(src, L) > range) + continue + + if(L.flash_act(affect_silicon = 1)) + L.Knockdown(strength) + + return 1 + + +/obj/machinery/flasher/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + if(bulb && prob(75/severity)) + flash() + bulb.burn_out() + power_change() + ..() + +/obj/machinery/flasher/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + stat |= BROKEN + if(bulb) + bulb.burn_out() + power_change() + +/obj/machinery/flasher/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(bulb) + bulb.forceMove(loc) + bulb = null + if(disassembled) + var/obj/item/wallframe/flasher/F = new(get_turf(src)) + transfer_fingerprints_to(F) + F.id = id + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + else + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + /obj/machinery/flasher/portable/Initialize() . = ..() proximity_monitor = new(src, 0) -/obj/machinery/flasher/portable/HasProximity(atom/movable/AM) - if (last_flash && world.time < last_flash + 150) - return - - if(istype(AM, /mob/living/carbon)) - var/mob/living/carbon/M = AM - if (M.m_intent != MOVE_INTENT_WALK && anchored) - flash() - -/obj/machinery/flasher/portable/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, W.usesound, 100, 1) - - if (!anchored && !isinspace()) - to_chat(user, "[src] is now secured.") - add_overlay("[base_state]-s") - anchored = 1 - power_change() +/obj/machinery/flasher/portable/HasProximity(atom/movable/AM) + if (last_flash && world.time < last_flash + 150) + return + + if(istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + if (M.m_intent != MOVE_INTENT_WALK && anchored) + flash() + +/obj/machinery/flasher/portable/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, W.usesound, 100, 1) + + if (!anchored && !isinspace()) + to_chat(user, "[src] is now secured.") + add_overlay("[base_state]-s") + anchored = 1 + power_change() proximity_monitor.SetRange(range) - else - to_chat(user, "[src] can now be moved.") - cut_overlays() - anchored = 0 - power_change() + else + to_chat(user, "[src] can now be moved.") + cut_overlays() + anchored = 0 + power_change() proximity_monitor.SetRange(0) - - else - return ..() - -/obj/item/wallframe/flasher - name = "mounted flash frame" - desc = "Used for building wall-mounted flashers." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "mflash_frame" - result_path = /obj/machinery/flasher - var/id = null - -/obj/item/wallframe/flasher/examine(mob/user) - ..() - to_chat(user, "Its channel ID is '[id]'.") - -/obj/item/wallframe/flasher/after_attach(var/obj/O) - ..() - var/obj/machinery/flasher/F = O - F.id = id + + else + return ..() + +/obj/item/wallframe/flasher + name = "mounted flash frame" + desc = "Used for building wall-mounted flashers." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mflash_frame" + result_path = /obj/machinery/flasher + var/id = null + +/obj/item/wallframe/flasher/examine(mob/user) + ..() + to_chat(user, "Its channel ID is '[id]'.") + +/obj/item/wallframe/flasher/after_attach(var/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 db2e17863c..c8ffeaf41a 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -293,9 +293,7 @@ Possible to do for anyone motivated enough: Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY) Hologram.Impersonation = user - Hologram.copy_known_languages_from(user,replace = TRUE) - Hologram.mouse_opacity = 0//So you can't click on it. Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. Hologram.anchored = 1//So space wind cannot drag it. @@ -320,7 +318,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ for(var/I in holo_calls) var/datum/holocall/HC = I if(HC.connected_holopad == src && speaker != HC.hologram) - HC.user.Hear(message, speaker, message_language, raw_message, radio_freq, spans) + HC.user.Hear(message, speaker, message_language, raw_message, radio_freq, spans, message_mode) if(outgoing_call && speaker == outgoing_call.user) outgoing_call.hologram.say(raw_message) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 01c953a2ed..7ffd29b5aa 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -1,128 +1,128 @@ -/obj/machinery/igniter - name = "igniter" - desc = "It's useful for igniting plasma." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "igniter1" - var/id = null - var/on = 1 - anchored = 1 +/obj/machinery/igniter + name = "igniter" + desc = "It's useful for igniting plasma." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "igniter1" + var/id = null + var/on = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 - obj_integrity = 300 - max_integrity = 300 - armor = list(melee = 50, bullet = 30, laser = 70, energy = 50, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 70) - resistance_flags = FIRE_PROOF - -/obj/machinery/igniter/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/igniter/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/igniter/attack_hand(mob/user) - if(..()) - return - add_fingerprint(user) - - use_power(50) - src.on = !( src.on ) - src.icon_state = text("igniter[]", src.on) - return - -/obj/machinery/igniter/process() //ugh why is this even in process()? - if (src.on && !(stat & NOPOWER) ) - var/turf/location = src.loc - if (isturf(location)) - location.hotspot_expose(1000,500,1) - return 1 - -/obj/machinery/igniter/New() - ..() - icon_state = "igniter[on]" - -/obj/machinery/igniter/power_change() - if(!( stat & NOPOWER) ) - icon_state = "igniter[src.on]" - else - icon_state = "igniter0" - -// Wall mounted remote-control igniter. - -/obj/machinery/sparker - name = "mounted igniter" - desc = "A wall-mounted ignition device." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "migniter" - var/id = null - var/disable = 0 - var/last_spark = 0 - var/base_state = "migniter" - var/datum/effect_system/spark_spread/spark_system - anchored = 1 - resistance_flags = FIRE_PROOF - -/obj/machinery/sparker/New() - ..() - spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(2, 1, src) - spark_system.attach(src) - -/obj/machinery/sparker/Destroy() - qdel(spark_system) - spark_system = null - return ..() - -/obj/machinery/sparker/power_change() - if ( powered() && disable == 0 ) - stat &= ~NOPOWER - icon_state = "[base_state]" -// src.sd_SetLuminosity(2) - else - stat |= ~NOPOWER - icon_state = "[base_state]-p" -// src.sd_SetLuminosity(0) - -/obj/machinery/sparker/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/screwdriver)) - add_fingerprint(user) - src.disable = !src.disable - if (src.disable) - user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].") - icon_state = "[base_state]-d" - if (!src.disable) - user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].") - if(src.powered()) - icon_state = "[base_state]" - else - icon_state = "[base_state]-p" - else - return ..() - -/obj/machinery/sparker/attack_ai() - if (anchored) - return src.ignite() - else - return - -/obj/machinery/sparker/proc/ignite() - if (!(powered())) - return - - if ((src.disable) || (src.last_spark && world.time < src.last_spark + 50)) - return - - - flick("[base_state]-spark", src) - spark_system.start() - last_spark = world.time - use_power(1000) - var/turf/location = src.loc - if (isturf(location)) - location.hotspot_expose(1000,500,1) - return 1 - -/obj/machinery/sparker/emp_act(severity) - if(!(stat & (BROKEN|NOPOWER))) - ignite() - ..() + idle_power_usage = 2 + active_power_usage = 4 + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 50, bullet = 30, laser = 70, energy = 50, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/machinery/igniter/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/igniter/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/igniter/attack_hand(mob/user) + if(..()) + return + add_fingerprint(user) + + use_power(50) + src.on = !( src.on ) + src.icon_state = text("igniter[]", src.on) + return + +/obj/machinery/igniter/process() //ugh why is this even in process()? + if (src.on && !(stat & NOPOWER) ) + var/turf/location = src.loc + if (isturf(location)) + location.hotspot_expose(1000,500,1) + return 1 + +/obj/machinery/igniter/New() + ..() + icon_state = "igniter[on]" + +/obj/machinery/igniter/power_change() + if(!( stat & NOPOWER) ) + icon_state = "igniter[src.on]" + else + icon_state = "igniter0" + +// Wall mounted remote-control igniter. + +/obj/machinery/sparker + name = "mounted igniter" + desc = "A wall-mounted ignition device." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "migniter" + var/id = null + var/disable = 0 + var/last_spark = 0 + var/base_state = "migniter" + var/datum/effect_system/spark_spread/spark_system + anchored = 1 + resistance_flags = FIRE_PROOF + +/obj/machinery/sparker/New() + ..() + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(2, 1, src) + spark_system.attach(src) + +/obj/machinery/sparker/Destroy() + qdel(spark_system) + spark_system = null + return ..() + +/obj/machinery/sparker/power_change() + if ( powered() && disable == 0 ) + stat &= ~NOPOWER + icon_state = "[base_state]" +// src.sd_SetLuminosity(2) + else + stat |= ~NOPOWER + icon_state = "[base_state]-p" +// src.sd_SetLuminosity(0) + +/obj/machinery/sparker/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/screwdriver)) + add_fingerprint(user) + src.disable = !src.disable + if (src.disable) + user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].") + icon_state = "[base_state]-d" + if (!src.disable) + user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].") + if(src.powered()) + icon_state = "[base_state]" + else + icon_state = "[base_state]-p" + else + return ..() + +/obj/machinery/sparker/attack_ai() + if (anchored) + return src.ignite() + else + return + +/obj/machinery/sparker/proc/ignite() + if (!(powered())) + return + + if ((src.disable) || (src.last_spark && world.time < src.last_spark + 50)) + return + + + flick("[base_state]-spark", src) + spark_system.start() + last_spark = world.time + use_power(1000) + var/turf/location = src.loc + if (isturf(location)) + location.hotspot_expose(1000,500,1) + return 1 + +/obj/machinery/sparker/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + ignite() + ..() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 39c240716f..2c71df7ba4 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -389,7 +389,7 @@ Class Procs: if(!time || do_after(user, time*W.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/unfasten_wrench_check, prev_anchored, user))) to_chat(user, "You [anchored ? "un" : ""]secure [src].") anchored = !anchored - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) return SUCCESSFUL_UNFASTEN return FAILED_UNFASTEN return CANT_UNFASTEN diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 06d6fcb5c5..2a135ec8d0 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -1,416 +1,416 @@ -// Magnetic attractor, creates variable magnetic fields and attraction. -// Can also be used to emit electron/proton beams to create a center of magnetism on another tile - -// tl;dr: it's magnets lol -// This was created for firing ranges, but I suppose this could have other applications - Doohl - -/obj/machinery/magnetic_module - - icon = 'icons/obj/objects.dmi' - icon_state = "floor_magnet-f" - name = "electromagnetic generator" - desc = "A device that uses station power to create points of magnetic energy." - level = 1 // underfloor - layer = LOW_OBJ_LAYER - anchored = 1 +// Magnetic attractor, creates variable magnetic fields and attraction. +// Can also be used to emit electron/proton beams to create a center of magnetism on another tile + +// tl;dr: it's magnets lol +// This was created for firing ranges, but I suppose this could have other applications - Doohl + +/obj/machinery/magnetic_module + + icon = 'icons/obj/objects.dmi' + icon_state = "floor_magnet-f" + name = "electromagnetic generator" + desc = "A device that uses station power to create points of magnetic energy." + level = 1 // underfloor + layer = LOW_OBJ_LAYER + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 50 - - var/freq = 1449 // radio frequency - var/electricity_level = 1 // intensity of the magnetic pull - var/magnetic_field = 1 // the range of magnetic attraction - var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something - var/turf/center // the center of magnetic attraction - var/on = 0 - var/pulling = 0 - - // x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down - var/center_x = 0 - var/center_y = 0 - var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer - -/obj/machinery/magnetic_module/New() - ..() - var/turf/T = loc - hide(T.intact) - center = T - - spawn(10) // must wait for map loading to finish - if(SSradio) - SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS) - - spawn() - magnetic_process() - -/obj/machinery/magnetic_module/Destroy() - if(SSradio) - SSradio.remove_object(src, freq) - . = ..() - center = null - -// update the invisibility and icon -/obj/machinery/magnetic_module/hide(intact) - invisibility = intact ? INVISIBILITY_MAXIMUM : 0 - updateicon() - -// update the icon_state -/obj/machinery/magnetic_module/proc/updateicon() - var/state="floor_magnet" - var/onstate="" - if(!on) - onstate="0" - - if(invisibility) - icon_state = "[state][onstate]-f" // if invisible, set icon to faded version - // in case of being revealed by T-scanner - else - icon_state = "[state][onstate]" - -/obj/machinery/magnetic_module/receive_signal(datum/signal/signal) - - var/command = signal.data["command"] - var/modifier = signal.data["modifier"] - var/signal_code = signal.data["code"] - if(command && (signal_code == code)) - - Cmd(command, modifier) - - - -/obj/machinery/magnetic_module/proc/Cmd(command, modifier) - - if(command) - switch(command) - if("set-electriclevel") - if(modifier) - electricity_level = modifier - if("set-magneticfield") - if(modifier) - magnetic_field = modifier - - if("add-elec") - electricity_level++ - if(electricity_level > 12) - electricity_level = 12 - if("sub-elec") - electricity_level-- - if(electricity_level <= 0) - electricity_level = 1 - if("add-mag") - magnetic_field++ - if(magnetic_field > 4) - magnetic_field = 4 - if("sub-mag") - magnetic_field-- - if(magnetic_field <= 0) - magnetic_field = 1 - - if("set-x") - if(modifier) - center_x = modifier - if("set-y") - if(modifier) - center_y = modifier - - if("N") // NORTH - center_y++ - if("S") // SOUTH - center_y-- - if("E") // EAST - center_x++ - if("W") // WEST - center_x-- - if("C") // CENTER - center_x = 0 - center_y = 0 - if("R") // RANDOM - center_x = rand(-max_dist, max_dist) - center_y = rand(-max_dist, max_dist) - - if("set-code") - if(modifier) - code = modifier - if("toggle-power") - on = !on - - if(on) - INVOKE_ASYNC(src, .proc/magnetic_process) - - - -/obj/machinery/magnetic_module/process() - if(stat & NOPOWER) - on = 0 - - // Sanity checks: - if(electricity_level <= 0) - electricity_level = 1 - if(magnetic_field <= 0) - magnetic_field = 1 - - - // Limitations: - if(abs(center_x) > max_dist) - center_x = max_dist - if(abs(center_y) > max_dist) - center_y = max_dist - if(magnetic_field > 4) - magnetic_field = 4 - if(electricity_level > 12) - electricity_level = 12 - - // Update power usage: - if(on) + idle_power_usage = 50 + + var/freq = 1449 // radio frequency + var/electricity_level = 1 // intensity of the magnetic pull + var/magnetic_field = 1 // the range of magnetic attraction + var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something + var/turf/center // the center of magnetic attraction + var/on = 0 + var/pulling = 0 + + // x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down + var/center_x = 0 + var/center_y = 0 + var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer + +/obj/machinery/magnetic_module/New() + ..() + var/turf/T = loc + hide(T.intact) + center = T + + spawn(10) // must wait for map loading to finish + if(SSradio) + SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS) + + spawn() + magnetic_process() + +/obj/machinery/magnetic_module/Destroy() + if(SSradio) + SSradio.remove_object(src, freq) + . = ..() + center = null + +// update the invisibility and icon +/obj/machinery/magnetic_module/hide(intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 + updateicon() + +// update the icon_state +/obj/machinery/magnetic_module/proc/updateicon() + var/state="floor_magnet" + var/onstate="" + if(!on) + onstate="0" + + if(invisibility) + icon_state = "[state][onstate]-f" // if invisible, set icon to faded version + // in case of being revealed by T-scanner + else + icon_state = "[state][onstate]" + +/obj/machinery/magnetic_module/receive_signal(datum/signal/signal) + + var/command = signal.data["command"] + var/modifier = signal.data["modifier"] + var/signal_code = signal.data["code"] + if(command && (signal_code == code)) + + Cmd(command, modifier) + + + +/obj/machinery/magnetic_module/proc/Cmd(command, modifier) + + if(command) + switch(command) + if("set-electriclevel") + if(modifier) + electricity_level = modifier + if("set-magneticfield") + if(modifier) + magnetic_field = modifier + + if("add-elec") + electricity_level++ + if(electricity_level > 12) + electricity_level = 12 + if("sub-elec") + electricity_level-- + if(electricity_level <= 0) + electricity_level = 1 + if("add-mag") + magnetic_field++ + if(magnetic_field > 4) + magnetic_field = 4 + if("sub-mag") + magnetic_field-- + if(magnetic_field <= 0) + magnetic_field = 1 + + if("set-x") + if(modifier) + center_x = modifier + if("set-y") + if(modifier) + center_y = modifier + + if("N") // NORTH + center_y++ + if("S") // SOUTH + center_y-- + if("E") // EAST + center_x++ + if("W") // WEST + center_x-- + if("C") // CENTER + center_x = 0 + center_y = 0 + if("R") // RANDOM + center_x = rand(-max_dist, max_dist) + center_y = rand(-max_dist, max_dist) + + if("set-code") + if(modifier) + code = modifier + if("toggle-power") + on = !on + + if(on) + INVOKE_ASYNC(src, .proc/magnetic_process) + + + +/obj/machinery/magnetic_module/process() + if(stat & NOPOWER) + on = 0 + + // Sanity checks: + if(electricity_level <= 0) + electricity_level = 1 + if(magnetic_field <= 0) + magnetic_field = 1 + + + // Limitations: + if(abs(center_x) > max_dist) + center_x = max_dist + if(abs(center_y) > max_dist) + center_y = max_dist + if(magnetic_field > 4) + magnetic_field = 4 + if(electricity_level > 12) + electricity_level = 12 + + // Update power usage: + if(on) use_power = ACTIVE_POWER_USE - active_power_usage = electricity_level*15 - else + active_power_usage = electricity_level*15 + else use_power = NO_POWER_USE - - - // Overload conditions: - /* // Eeeehhh kinda stupid - if(on) - if(electricity_level > 11) - if(prob(electricity_level)) - explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son - spawn(2) - qdel(src) - */ - - updateicon() - - -/obj/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling - if(pulling) return - while(on) - - pulling = 1 - center = locate(x+center_x, y+center_y, z) - if(center) - for(var/obj/M in orange(magnetic_field, center)) - if(!M.anchored && (M.flags & CONDUCT)) - step_towards(M, center) - - for(var/mob/living/silicon/S in orange(magnetic_field, center)) - if(isAI(S)) - continue - step_towards(S, center) - - use_power(electricity_level * 5) - sleep(13 - electricity_level) - - pulling = 0 - - - - -/obj/machinery/magnetic_controller - name = "magnetic control console" - icon = 'icons/obj/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! - icon_state = "airlock_control_standby" - density = 0 - anchored = 1 + + + // Overload conditions: + /* // Eeeehhh kinda stupid + if(on) + if(electricity_level > 11) + if(prob(electricity_level)) + explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son + spawn(2) + qdel(src) + */ + + updateicon() + + +/obj/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling + if(pulling) return + while(on) + + pulling = 1 + center = locate(x+center_x, y+center_y, z) + if(center) + for(var/obj/M in orange(magnetic_field, center)) + if(!M.anchored && (M.flags & CONDUCT)) + step_towards(M, center) + + for(var/mob/living/silicon/S in orange(magnetic_field, center)) + if(isAI(S)) + continue + step_towards(S, center) + + use_power(electricity_level * 5) + sleep(13 - electricity_level) + + pulling = 0 + + + + +/obj/machinery/magnetic_controller + name = "magnetic control console" + icon = 'icons/obj/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! + icon_state = "airlock_control_standby" + density = 0 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 45 - var/frequency = 1449 - var/code = 0 - var/list/magnets = list() - var/title = "Magnetic Control Console" - var/autolink = 0 // if set to 1, can't probe for other magnets! - - var/pathpos = 1 // position in the path - var/path = "w;e;e;w;s;n;n;s" // text path of the magnet - var/speed = 1 // lowest = 1, highest = 10 - var/list/rpath = list() // real path of the magnet, used in iterator - - var/moving = 0 // 1 if scheduled to loop - var/looping = 0 // 1 if looping - - var/datum/radio_frequency/radio_connection - - -/obj/machinery/magnetic_controller/New() - ..() - - if(autolink) - for(var/obj/machinery/magnetic_module/M in GLOB.machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - - - spawn(45) // must wait for map loading to finish - if(SSradio) - radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS) - - - if(path) // check for default path - filter_path() // renders rpath - -/obj/machinery/magnetic_controller/Destroy() - if(SSradio) - SSradio.remove_object(src, frequency) - . = ..() - magnets = null - rpath = null - -/obj/machinery/magnetic_controller/process() - if(magnets.len == 0 && autolink) - for(var/obj/machinery/magnetic_module/M in GLOB.machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - - -/obj/machinery/magnetic_controller/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/magnetic_controller/attack_hand(mob/user) - if(stat & (BROKEN|NOPOWER)) - return - user.set_machine(src) - var/dat = "Magnetic Control Console

    " - if(!autolink) - dat += {" - Frequency: [frequency]
    - Code: [code]
    - Probe Generators
    - "} - - if(magnets.len >= 1) - - dat += "Magnets confirmed:
    " - var/i = 0 - for(var/obj/machinery/magnetic_module/M in magnets) - i++ - dat += "     < \[[i]\] ([M.on ? "On":"Off"]) | Electricity level: - [M.electricity_level] +; Magnetic field: - [M.magnetic_field] +
    " - - dat += "
    Speed: - [speed] +
    " - dat += "Path: {[path]}
    " - dat += "Moving: [moving ? "Enabled":"Disabled"]" - - - user << browse(dat, "window=magnet;size=400x500") - onclose(user, "magnet") - -/obj/machinery/magnetic_controller/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - - if(href_list["radio-op"]) - - // Prepare signal beforehand, because this is a radio operation - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - // Apply any necessary commands - switch(href_list["radio-op"]) - if("togglepower") - signal.data["command"] = "toggle-power" - - if("minuselec") - signal.data["command"] = "sub-elec" - if("pluselec") - signal.data["command"] = "add-elec" - - if("minusmag") - signal.data["command"] = "sub-mag" - if("plusmag") - signal.data["command"] = "add-mag" - - - // Broadcast the signal - - radio_connection.post_signal(src, signal, filter = GLOB.RADIO_MAGNETS) - - spawn(1) - updateUsrDialog() // pretty sure this increases responsiveness - - if(href_list["operation"]) - switch(href_list["operation"]) - if("plusspeed") - speed ++ - if(speed > 10) - speed = 10 - if("minusspeed") - speed -- - if(speed <= 0) - speed = 1 - if("setpath") - var/newpath = copytext(sanitize(input(usr, "Please define a new path!",,path) as text|null),1,MAX_MESSAGE_LEN) - if(newpath && newpath != "") - moving = 0 // stop moving - path = newpath - pathpos = 1 // reset position - filter_path() // renders rpath - - if("togglemoving") - moving = !moving - if(moving) - spawn() MagnetMove() - - - updateUsrDialog() - -/obj/machinery/magnetic_controller/proc/MagnetMove() - if(looping) return - - while(moving && rpath.len >= 1) - - if(stat & (BROKEN|NOPOWER)) - break - - looping = 1 - - // Prepare the radio signal - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - if(pathpos > rpath.len) // if the position is greater than the length, we just loop through the list! - pathpos = 1 - - var/nextmove = uppertext(rpath[pathpos]) // makes it un-case-sensitive - - if(!(nextmove in list("N","S","E","W","C","R"))) - // N, S, E, W are directional - // C is center - // R is random (in magnetic field's bounds) - qdel(signal) - break // break the loop if the character located is invalid - - signal.data["command"] = nextmove - - - pathpos++ // increase iterator - - // Broadcast the signal - spawn() - radio_connection.post_signal(src, signal, filter = GLOB.RADIO_MAGNETS) - - if(speed == 10) - sleep(1) - else - sleep(12-speed) - - looping = 0 - - -/obj/machinery/magnetic_controller/proc/filter_path() - // Generates the rpath variable using the path string, think of this as "string2list" - // Doesn't use params2list() because of the akward way it stacks entities - rpath = list() // clear rpath - var/maximum_character = min( 50, length(path) ) // chooses the maximum length of the iterator. 50 max length - - for(var/i=1, i<=maximum_character, i++) // iterates through all characters in path - - var/nextchar = copytext(path, i, i+1) // find next character - - if(!(nextchar in list(";", "&", "*", " "))) // if char is a separator, ignore - rpath += copytext(path, i, i+1) // else, add to list - - // there doesn't HAVE to be separators but it makes paths syntatically visible + idle_power_usage = 45 + var/frequency = 1449 + var/code = 0 + var/list/magnets = list() + var/title = "Magnetic Control Console" + var/autolink = 0 // if set to 1, can't probe for other magnets! + + var/pathpos = 1 // position in the path + var/path = "w;e;e;w;s;n;n;s" // text path of the magnet + var/speed = 1 // lowest = 1, highest = 10 + var/list/rpath = list() // real path of the magnet, used in iterator + + var/moving = 0 // 1 if scheduled to loop + var/looping = 0 // 1 if looping + + var/datum/radio_frequency/radio_connection + + +/obj/machinery/magnetic_controller/New() + ..() + + if(autolink) + for(var/obj/machinery/magnetic_module/M in GLOB.machines) + if(M.freq == frequency && M.code == code) + magnets.Add(M) + + + spawn(45) // must wait for map loading to finish + if(SSradio) + radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS) + + + if(path) // check for default path + filter_path() // renders rpath + +/obj/machinery/magnetic_controller/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + . = ..() + magnets = null + rpath = null + +/obj/machinery/magnetic_controller/process() + if(magnets.len == 0 && autolink) + for(var/obj/machinery/magnetic_module/M in GLOB.machines) + if(M.freq == frequency && M.code == code) + magnets.Add(M) + + +/obj/machinery/magnetic_controller/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/magnetic_controller/attack_hand(mob/user) + if(stat & (BROKEN|NOPOWER)) + return + user.set_machine(src) + var/dat = "Magnetic Control Console

    " + if(!autolink) + dat += {" + Frequency: [frequency]
    + Code: [code]
    + Probe Generators
    + "} + + if(magnets.len >= 1) + + dat += "Magnets confirmed:
    " + var/i = 0 + for(var/obj/machinery/magnetic_module/M in magnets) + i++ + dat += "     < \[[i]\] ([M.on ? "On":"Off"]) | Electricity level: - [M.electricity_level] +; Magnetic field: - [M.magnetic_field] +
    " + + dat += "
    Speed: - [speed] +
    " + dat += "Path: {[path]}
    " + dat += "Moving: [moving ? "Enabled":"Disabled"]" + + + user << browse(dat, "window=magnet;size=400x500") + onclose(user, "magnet") + +/obj/machinery/magnetic_controller/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + + if(href_list["radio-op"]) + + // Prepare signal beforehand, because this is a radio operation + var/datum/signal/signal = new + signal.transmission_method = 1 // radio transmission + signal.source = src + signal.frequency = frequency + signal.data["code"] = code + + // Apply any necessary commands + switch(href_list["radio-op"]) + if("togglepower") + signal.data["command"] = "toggle-power" + + if("minuselec") + signal.data["command"] = "sub-elec" + if("pluselec") + signal.data["command"] = "add-elec" + + if("minusmag") + signal.data["command"] = "sub-mag" + if("plusmag") + signal.data["command"] = "add-mag" + + + // Broadcast the signal + + radio_connection.post_signal(src, signal, filter = GLOB.RADIO_MAGNETS) + + spawn(1) + updateUsrDialog() // pretty sure this increases responsiveness + + if(href_list["operation"]) + switch(href_list["operation"]) + if("plusspeed") + speed ++ + if(speed > 10) + speed = 10 + if("minusspeed") + speed -- + if(speed <= 0) + speed = 1 + if("setpath") + var/newpath = copytext(sanitize(input(usr, "Please define a new path!",,path) as text|null),1,MAX_MESSAGE_LEN) + if(newpath && newpath != "") + moving = 0 // stop moving + path = newpath + pathpos = 1 // reset position + filter_path() // renders rpath + + if("togglemoving") + moving = !moving + if(moving) + spawn() MagnetMove() + + + updateUsrDialog() + +/obj/machinery/magnetic_controller/proc/MagnetMove() + if(looping) return + + while(moving && rpath.len >= 1) + + if(stat & (BROKEN|NOPOWER)) + break + + looping = 1 + + // Prepare the radio signal + var/datum/signal/signal = new + signal.transmission_method = 1 // radio transmission + signal.source = src + signal.frequency = frequency + signal.data["code"] = code + + if(pathpos > rpath.len) // if the position is greater than the length, we just loop through the list! + pathpos = 1 + + var/nextmove = uppertext(rpath[pathpos]) // makes it un-case-sensitive + + if(!(nextmove in list("N","S","E","W","C","R"))) + // N, S, E, W are directional + // C is center + // R is random (in magnetic field's bounds) + qdel(signal) + break // break the loop if the character located is invalid + + signal.data["command"] = nextmove + + + pathpos++ // increase iterator + + // Broadcast the signal + spawn() + radio_connection.post_signal(src, signal, filter = GLOB.RADIO_MAGNETS) + + if(speed == 10) + sleep(1) + else + sleep(12-speed) + + looping = 0 + + +/obj/machinery/magnetic_controller/proc/filter_path() + // Generates the rpath variable using the path string, think of this as "string2list" + // Doesn't use params2list() because of the akward way it stacks entities + rpath = list() // clear rpath + var/maximum_character = min( 50, length(path) ) // chooses the maximum length of the iterator. 50 max length + + for(var/i=1, i<=maximum_character, i++) // iterates through all characters in path + + var/nextchar = copytext(path, i, i+1) // find next character + + if(!(nextchar in list(";", "&", "*", " "))) // if char is a separator, ignore + rpath += copytext(path, i, i+1) // else, add to list + + // there doesn't HAVE to be separators but it makes paths syntatically visible diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 8ae07a1808..0a3685188a 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -1,37 +1,37 @@ -/obj/machinery/mass_driver - name = "mass driver" - desc = "The finest in spring-loaded piston toy technology, now on a space station near you." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "mass_driver" - anchored = 1 +/obj/machinery/mass_driver + name = "mass driver" + desc = "The finest in spring-loaded piston toy technology, now on a space station near you." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mass_driver" + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 50 - var/power = 1 - var/code = 1 - var/id = 1 - var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. - - -/obj/machinery/mass_driver/proc/drive(amount) - if(stat & (BROKEN|NOPOWER)) - return - use_power(500) - var/O_limit - var/atom/target = get_edge_target_turf(src, dir) - for(var/atom/movable/O in loc) - if(!O.anchored || istype(O, /obj/mecha)) //Mechs need their launch platforms. - O_limit++ - if(O_limit >= 20) - audible_message("[src] lets out a screech, it doesn't seem to be able to handle the load.") - break - use_power(500) - O.throw_at(target, drive_range * power, power) - flick("mass_driver1", src) - - -/obj/machinery/mass_driver/emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - return - drive() + idle_power_usage = 2 + active_power_usage = 50 + var/power = 1 + var/code = 1 + var/id = 1 + var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. + + +/obj/machinery/mass_driver/proc/drive(amount) + if(stat & (BROKEN|NOPOWER)) + return + use_power(500) + var/O_limit + var/atom/target = get_edge_target_turf(src, dir) + for(var/atom/movable/O in loc) + if(!O.anchored || istype(O, /obj/mecha)) //Mechs need their launch platforms. + O_limit++ + if(O_limit >= 20) + audible_message("[src] lets out a screech, it doesn't seem to be able to handle the load.") + break + use_power(500) + O.throw_at(target, drive_range * power, power) + flick("mass_driver1", src) + + +/obj/machinery/mass_driver/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + return + drive() ..(severity) \ No newline at end of file diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 7c3251a1be..62f5deaf69 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -717,7 +717,7 @@ GLOBAL_LIST_EMPTY(allCasters) to_chat(user, "You start [anchored ? "un" : ""]securing [name]...") playsound(loc, I.usesound, 50, 1) if(do_after(user, 60*I.toolspeed, target = src)) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) if(stat & BROKEN) to_chat(user, "The broken remains of [src] fall on the ground.") new /obj/item/stack/sheet/metal(loc, 5) @@ -739,7 +739,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(!WT.isOn() || !(stat & BROKEN)) return to_chat(user, "You repair [src].") - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) obj_integrity = max_integrity stat &= ~BROKEN update_icon() @@ -754,9 +754,9 @@ GLOBAL_LIST_EMPTY(allCasters) if(stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/newscaster/deconstruct(disassembled = TRUE) @@ -769,7 +769,7 @@ GLOBAL_LIST_EMPTY(allCasters) /obj/machinery/newscaster/obj_break() if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) stat |= BROKEN - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) update_icon() diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index 18a5dd7090..ffcb36678a 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -95,7 +95,7 @@ colour = rgb(255,255,0) colour2 = rgb(255,128,0) - if(istype(AM, /mob)) + if(ismob(AM)) if(AM:client) colour = rgb(255,0,0) else @@ -241,7 +241,7 @@ if(AM.icon_state=="alarm:1") colour = rgb(255,255,0) - if(istype(AM, /mob)) + if(ismob(AM)) if(AM:client) colour = rgb(255,0,0) else diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 7da4eb0a1c..1216cdd1e9 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -1,281 +1,281 @@ -/*CONTENTS -Buildable pipes -Buildable meters -*/ - -//construction defines are in __defines/pipe_construction.dm -//update those defines ANY TIME an atmos path is changed... -//...otherwise construction will stop working - -/obj/item/pipe - name = "pipe" - desc = "A pipe" - var/pipe_type = 0 - var/pipename - force = 7 - throwforce = 7 - icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' - icon_state = "simple" - item_state = "buildpipe" - w_class = WEIGHT_CLASS_NORMAL - level = 2 - var/flipped = 0 - var/is_bent = 0 - - var/static/list/pipe_types = list( - PIPE_SIMPLE, \ - PIPE_MANIFOLD, \ - PIPE_4WAYMANIFOLD, \ - PIPE_HE, \ - PIPE_HE_MANIFOLD, \ - PIPE_HE_4WAYMANIFOLD, \ - PIPE_JUNCTION, \ - \ - PIPE_CONNECTOR, \ - PIPE_UVENT, \ - PIPE_SCRUBBER, \ +/*CONTENTS +Buildable pipes +Buildable meters +*/ + +//construction defines are in __defines/pipe_construction.dm +//update those defines ANY TIME an atmos path is changed... +//...otherwise construction will stop working + +/obj/item/pipe + name = "pipe" + desc = "A pipe" + var/pipe_type = 0 + var/pipename + force = 7 + throwforce = 7 + icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' + icon_state = "simple" + item_state = "buildpipe" + w_class = WEIGHT_CLASS_NORMAL + level = 2 + var/flipped = 0 + var/is_bent = 0 + + var/static/list/pipe_types = list( + PIPE_SIMPLE, \ + PIPE_MANIFOLD, \ + PIPE_4WAYMANIFOLD, \ + PIPE_HE, \ + PIPE_HE_MANIFOLD, \ + PIPE_HE_4WAYMANIFOLD, \ + PIPE_JUNCTION, \ + \ + PIPE_CONNECTOR, \ + PIPE_UVENT, \ + PIPE_SCRUBBER, \ PIPE_INJECTOR, \ - PIPE_HEAT_EXCHANGE, \ - \ - PIPE_PUMP, \ - PIPE_PASSIVE_GATE, \ - PIPE_VOLUME_PUMP, \ - PIPE_MVALVE, \ - PIPE_DVALVE, \ - \ - PIPE_GAS_FILTER, \ - PIPE_GAS_MIXER, \ - ) - -/obj/item/pipe/examine(mob/user) - ..() - to_chat(user, "Alt-click to rotate it clockwise.") - -/obj/item/pipe/New(loc, pipe_type, dir, obj/machinery/atmospherics/make_from) - ..() - if(make_from) - src.setDir(make_from.dir) - src.pipename = make_from.name - add_atom_colour(make_from.color, FIXED_COLOUR_PRIORITY) - - if(make_from.type in pipe_types) - src.pipe_type = make_from.type - else //make pipe_type a value we can work with - for(var/P in pipe_types) - if(istype(make_from, P)) - src.pipe_type = P - break - - var/obj/machinery/atmospherics/components/trinary/triP = make_from - if(istype(triP) && triP.flipped) - src.flipped = 1 - src.setDir(turn(src.dir, -45)) - else - src.pipe_type = pipe_type - src.setDir(dir) - - if(src.dir in GLOB.diagonals) - is_bent = 1 - - update() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - -//update the name and icon of the pipe item depending on the type -GLOBAL_LIST_INIT(pipeID2State, list( - "[PIPE_SIMPLE]" = "simple", \ - "[PIPE_MANIFOLD]" = "manifold", \ - "[PIPE_4WAYMANIFOLD]" = "manifold4w", \ - "[PIPE_HE]" = "he", \ - "[PIPE_HE_MANIFOLD]" = "he_manifold", \ - "[PIPE_HE_4WAYMANIFOLD]" = "he_manifold4w", \ - "[PIPE_JUNCTION]" = "junction", \ - \ - "[PIPE_CONNECTOR]" = "connector", \ - "[PIPE_UVENT]" = "uvent", \ - "[PIPE_SCRUBBER]" = "scrubber", \ + PIPE_HEAT_EXCHANGE, \ + \ + PIPE_PUMP, \ + PIPE_PASSIVE_GATE, \ + PIPE_VOLUME_PUMP, \ + PIPE_MVALVE, \ + PIPE_DVALVE, \ + \ + PIPE_GAS_FILTER, \ + PIPE_GAS_MIXER, \ + ) + +/obj/item/pipe/examine(mob/user) + ..() + to_chat(user, "Alt-click to rotate it clockwise.") + +/obj/item/pipe/New(loc, pipe_type, dir, obj/machinery/atmospherics/make_from) + ..() + if(make_from) + src.setDir(make_from.dir) + src.pipename = make_from.name + add_atom_colour(make_from.color, FIXED_COLOUR_PRIORITY) + + if(make_from.type in pipe_types) + src.pipe_type = make_from.type + else //make pipe_type a value we can work with + for(var/P in pipe_types) + if(istype(make_from, P)) + src.pipe_type = P + break + + var/obj/machinery/atmospherics/components/trinary/triP = make_from + if(istype(triP) && triP.flipped) + src.flipped = 1 + src.setDir(turn(src.dir, -45)) + else + src.pipe_type = pipe_type + src.setDir(dir) + + if(src.dir in GLOB.diagonals) + is_bent = 1 + + update() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + +//update the name and icon of the pipe item depending on the type +GLOBAL_LIST_INIT(pipeID2State, list( + "[PIPE_SIMPLE]" = "simple", \ + "[PIPE_MANIFOLD]" = "manifold", \ + "[PIPE_4WAYMANIFOLD]" = "manifold4w", \ + "[PIPE_HE]" = "he", \ + "[PIPE_HE_MANIFOLD]" = "he_manifold", \ + "[PIPE_HE_4WAYMANIFOLD]" = "he_manifold4w", \ + "[PIPE_JUNCTION]" = "junction", \ + \ + "[PIPE_CONNECTOR]" = "connector", \ + "[PIPE_UVENT]" = "uvent", \ + "[PIPE_SCRUBBER]" = "scrubber", \ "[PIPE_INJECTOR]" = "injector", \ - "[PIPE_HEAT_EXCHANGE]" = "heunary", \ - \ - "[PIPE_PUMP]" = "pump", \ - "[PIPE_PASSIVE_GATE]" = "passivegate", \ - "[PIPE_VOLUME_PUMP]" = "volumepump", \ - "[PIPE_MVALVE]" = "mvalve", \ - "[PIPE_DVALVE]" = "dvalve", \ - \ - "[PIPE_GAS_FILTER]" = "filter", \ - "[PIPE_GAS_MIXER]" = "mixer", \ -)) - -/obj/item/pipe/proc/update() - var/list/nlist = list(\ - "[PIPE_SIMPLE]" = "pipe", \ - "[PIPE_SIMPLE]_b" = "bent pipe", \ - "[PIPE_MANIFOLD]" = "manifold", \ - "[PIPE_4WAYMANIFOLD]" = "4-way manifold", \ - "[PIPE_HE]" = "h/e pipe", \ - "[PIPE_HE]_b" = "bent h/e pipe", \ - "[PIPE_HE_MANIFOLD]" = "h/e manifold", \ - "[PIPE_HE_4WAYMANIFOLD]"= "h/e 4-way manifold", \ - "[PIPE_JUNCTION]" = "junction", \ - \ - "[PIPE_CONNECTOR]" = "connector", \ - "[PIPE_UVENT]" = "vent", \ - "[PIPE_SCRUBBER]" = "scrubber", \ + "[PIPE_HEAT_EXCHANGE]" = "heunary", \ + \ + "[PIPE_PUMP]" = "pump", \ + "[PIPE_PASSIVE_GATE]" = "passivegate", \ + "[PIPE_VOLUME_PUMP]" = "volumepump", \ + "[PIPE_MVALVE]" = "mvalve", \ + "[PIPE_DVALVE]" = "dvalve", \ + \ + "[PIPE_GAS_FILTER]" = "filter", \ + "[PIPE_GAS_MIXER]" = "mixer", \ +)) + +/obj/item/pipe/proc/update() + var/list/nlist = list(\ + "[PIPE_SIMPLE]" = "pipe", \ + "[PIPE_SIMPLE]_b" = "bent pipe", \ + "[PIPE_MANIFOLD]" = "manifold", \ + "[PIPE_4WAYMANIFOLD]" = "4-way manifold", \ + "[PIPE_HE]" = "h/e pipe", \ + "[PIPE_HE]_b" = "bent h/e pipe", \ + "[PIPE_HE_MANIFOLD]" = "h/e manifold", \ + "[PIPE_HE_4WAYMANIFOLD]"= "h/e 4-way manifold", \ + "[PIPE_JUNCTION]" = "junction", \ + \ + "[PIPE_CONNECTOR]" = "connector", \ + "[PIPE_UVENT]" = "vent", \ + "[PIPE_SCRUBBER]" = "scrubber", \ "[PIPE_INJECTOR]" = "injector", \ - "[PIPE_HEAT_EXCHANGE]" = "heat exchanger", \ - \ - "[PIPE_PUMP]" = "pump", \ - "[PIPE_PASSIVE_GATE]" = "passive gate", \ - "[PIPE_VOLUME_PUMP]" = "volume pump", \ - "[PIPE_MVALVE]" = "manual valve", \ - "[PIPE_DVALVE]" = "digital valve", \ - \ - "[PIPE_GAS_FILTER]" = "gas filter", \ - "[PIPE_GAS_MIXER]" = "gas mixer", \ - ) - //fix_pipe_type() - name = nlist["[pipe_type][is_bent ? "_b" : ""]"] + " fitting" - icon_state = GLOB.pipeID2State["[pipe_type]"] - -// rotate the pipe item clockwise - -/obj/item/pipe/verb/rotate() - set category = "Object" - set name = "Rotate Pipe" - set src in view(1) - - if ( usr.stat || usr.restrained() || !usr.canmove ) - return - - src.setDir(turn(src.dir, -90)) - - fixdir() - - return - -/obj/item/pipe/verb/flip() - set category = "Object" - set name = "Flip Pipe" - set src in view(1) - - if ( usr.stat || usr.restrained() || !usr.canmove ) - return - - if (pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER)) - src.setDir(turn(src.dir, flipped )? 45 : -45) - flipped = !flipped - return - - src.setDir(turn(src.dir, -180)) - - fixdir() - - return - -/obj/item/pipe/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - -/obj/item/pipe/Move() - var/old_dir = dir - ..() - setDir(old_dir )//pipes changing direction when moved is just annoying and buggy - -/obj/item/pipe/proc/unflip(direction) - if(direction in GLOB.diagonals) - return turn(direction, 45) - - return direction - -//Helper to clean up dir -/obj/item/pipe/proc/fixdir() - if((pipe_type in list (PIPE_SIMPLE, PIPE_HE, PIPE_MVALVE, PIPE_DVALVE)) && !is_bent) - if(dir==SOUTH) - setDir(NORTH) - else if(dir==WEST) - setDir(EAST) - -/obj/item/pipe/attack_self(mob/user) - return rotate() - -/obj/item/pipe/attackby(obj/item/weapon/W, mob/user, params) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (!isturf(src.loc)) - return 1 - - fixdir() - if(pipe_type in list(PIPE_GAS_MIXER, PIPE_GAS_FILTER)) - setDir(unflip(dir)) - - var/obj/machinery/atmospherics/A = new pipe_type(src.loc) - A.setDir(src.dir) - A.SetInitDirections() - - for(var/obj/machinery/atmospherics/M in src.loc) - if(M == A) //we don't want to check to see if it interferes with itself - continue - if(M.GetInitDirections() & A.GetInitDirections()) // matches at least one direction on either type of pipe - to_chat(user, "There is already a pipe at that location!") - qdel(A) - return 1 - // no conflicts found - - if(pipename) - A.name = pipename - - var/obj/machinery/atmospherics/components/trinary/T = A - if(istype(T)) - T.flipped = flipped - A.on_construction(pipe_type, color) - - playsound(src.loc, W.usesound, 50, 1) - user.visible_message( \ - "[user] fastens \the [src].", \ - "You fasten \the [src].", \ - "You hear ratchet.") - - qdel(src) - -/obj/item/pipe/suicide_act(mob/user) - if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP)) - user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!") - if(istype(user, /mob/living/carbon)) - var/mob/living/carbon/C = user - for(var/i=1 to 20) + "[PIPE_HEAT_EXCHANGE]" = "heat exchanger", \ + \ + "[PIPE_PUMP]" = "pump", \ + "[PIPE_PASSIVE_GATE]" = "passive gate", \ + "[PIPE_VOLUME_PUMP]" = "volume pump", \ + "[PIPE_MVALVE]" = "manual valve", \ + "[PIPE_DVALVE]" = "digital valve", \ + \ + "[PIPE_GAS_FILTER]" = "gas filter", \ + "[PIPE_GAS_MIXER]" = "gas mixer", \ + ) + //fix_pipe_type() + name = nlist["[pipe_type][is_bent ? "_b" : ""]"] + " fitting" + icon_state = GLOB.pipeID2State["[pipe_type]"] + +// rotate the pipe item clockwise + +/obj/item/pipe/verb/rotate() + set category = "Object" + set name = "Rotate Pipe" + set src in view(1) + + if ( usr.stat || usr.restrained() || !usr.canmove ) + return + + src.setDir(turn(src.dir, -90)) + + fixdir() + + return + +/obj/item/pipe/verb/flip() + set category = "Object" + set name = "Flip Pipe" + set src in view(1) + + if ( usr.stat || usr.restrained() || !usr.canmove ) + return + + if (pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER)) + src.setDir(turn(src.dir, flipped )? 45 : -45) + flipped = !flipped + return + + src.setDir(turn(src.dir, -180)) + + fixdir() + + return + +/obj/item/pipe/AltClick(mob/user) + ..() + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/item/pipe/Move() + var/old_dir = dir + ..() + setDir(old_dir )//pipes changing direction when moved is just annoying and buggy + +/obj/item/pipe/proc/unflip(direction) + if(direction in GLOB.diagonals) + return turn(direction, 45) + + return direction + +//Helper to clean up dir +/obj/item/pipe/proc/fixdir() + if((pipe_type in list (PIPE_SIMPLE, PIPE_HE, PIPE_MVALVE, PIPE_DVALVE)) && !is_bent) + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + +/obj/item/pipe/attack_self(mob/user) + return rotate() + +/obj/item/pipe/attackby(obj/item/weapon/W, mob/user, params) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!isturf(src.loc)) + return 1 + + fixdir() + if(pipe_type in list(PIPE_GAS_MIXER, PIPE_GAS_FILTER)) + setDir(unflip(dir)) + + var/obj/machinery/atmospherics/A = new pipe_type(src.loc) + A.setDir(src.dir) + A.SetInitDirections() + + for(var/obj/machinery/atmospherics/M in src.loc) + if(M == A) //we don't want to check to see if it interferes with itself + continue + if(M.GetInitDirections() & A.GetInitDirections()) // matches at least one direction on either type of pipe + to_chat(user, "There is already a pipe at that location!") + qdel(A) + return 1 + // no conflicts found + + if(pipename) + A.name = pipename + + var/obj/machinery/atmospherics/components/trinary/T = A + if(istype(T)) + T.flipped = flipped + A.on_construction(pipe_type, color) + + playsound(src.loc, W.usesound, 50, 1) + user.visible_message( \ + "[user] fastens \the [src].", \ + "You fasten \the [src].", \ + "You hear ratchet.") + + qdel(src) + +/obj/item/pipe/suicide_act(mob/user) + if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP)) + user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + for(var/i=1 to 20) C.vomit(0, TRUE, FALSE, 4, FALSE) if(prob(20)) C.spew_organ() - sleep(5) - C.blood_volume = 0 - return(OXYLOSS|BRUTELOSS) - else - return ..() - -/obj/item/pipe_meter - name = "meter" - desc = "A meter that can be laid on pipes" - icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' - icon_state = "meter" - item_state = "buildpipe" - w_class = WEIGHT_CLASS_BULKY - -/obj/item/pipe_meter/attackby(obj/item/weapon/W, mob/user, params) - ..() - - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if(!locate(/obj/machinery/atmospherics/pipe, src.loc)) - to_chat(user, "You need to fasten it to a pipe!") - return 1 - new/obj/machinery/meter( src.loc ) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You fasten the meter to the pipe.") - qdel(src) + sleep(5) + C.blood_volume = 0 + return(OXYLOSS|BRUTELOSS) + else + return ..() + +/obj/item/pipe_meter + name = "meter" + desc = "A meter that can be laid on pipes" + icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' + icon_state = "meter" + item_state = "buildpipe" + w_class = WEIGHT_CLASS_BULKY + +/obj/item/pipe_meter/attackby(obj/item/weapon/W, mob/user, params) + ..() + + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if(!locate(/obj/machinery/atmospherics/pipe, src.loc)) + to_chat(user, "You need to fasten it to a pipe!") + return 1 + new/obj/machinery/meter( src.loc ) + playsound(src.loc, W.usesound, 50, 1) + to_chat(user, "You fasten the meter to the pipe.") + qdel(src) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 7d6bec8462..3a65d97d6f 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -1,239 +1,239 @@ -/obj/machinery/pipedispenser - name = "pipe dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - density = 1 - anchored = 1 - var/wait = 0 - -/obj/machinery/pipedispenser/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/pipedispenser/attack_hand(mob/user) - if(..()) - return 1 - var/dat = {" -Regular pipes:
    -Pipe
    -Bent Pipe
    -Manifold
    -4-Way Manifold
    -Manual Valve
    -Digital Valve
    -Devices:
    -Connector
    -Vent
    -Gas Pump
    -Passive Gate
    -Volume Pump
    -Scrubber
    -Meter
    -Gas Filter
    -Gas Mixer
    -Heat exchange:
    -Pipe
    -Bent Pipe
    -Manifold
    -4-Way Manifold
    -Junction
    -Heat Exchanger
    -"} - - - user << browse("[src][dat]", "window=pipedispenser") - onclose(user, "pipedispenser") - return - -/obj/machinery/pipedispenser/Topic(href, href_list) - if(..()) - return 1 - if(!anchored|| !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - usr << browse(null, "window=pipedispenser") - return 1 - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["make"]) +/obj/machinery/pipedispenser + name = "pipe dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + var/wait = 0 + +/obj/machinery/pipedispenser/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/pipedispenser/attack_hand(mob/user) + if(..()) + return 1 + var/dat = {" +Regular pipes:
    +Pipe
    +Bent Pipe
    +Manifold
    +4-Way Manifold
    +Manual Valve
    +Digital Valve
    +Devices:
    +Connector
    +Vent
    +Gas Pump
    +Passive Gate
    +Volume Pump
    +Scrubber
    +Meter
    +Gas Filter
    +Gas Mixer
    +Heat exchange:
    +Pipe
    +Bent Pipe
    +Manifold
    +4-Way Manifold
    +Junction
    +Heat Exchanger
    +"} + + + user << browse("[src][dat]", "window=pipedispenser") + onclose(user, "pipedispenser") + return + +/obj/machinery/pipedispenser/Topic(href, href_list) + if(..()) + return 1 + if(!anchored|| !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr << browse(null, "window=pipedispenser") + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["make"]) if(wait < world.time) - var/p_type = text2path(href_list["make"]) - var/p_dir = text2num(href_list["dir"]) - var/obj/item/pipe/P = new (src.loc, pipe_type=p_type, dir=p_dir) - P.add_fingerprint(usr) + var/p_type = text2path(href_list["make"]) + var/p_dir = text2num(href_list["dir"]) + var/obj/item/pipe/P = new (src.loc, pipe_type=p_type, dir=p_dir) + P.add_fingerprint(usr) wait = world.time + 10 - if(href_list["makemeter"]) + if(href_list["makemeter"]) if(wait < world.time ) - new /obj/item/pipe_meter(src.loc) + new /obj/item/pipe_meter(src.loc) wait = world.time + 15 - return - -/obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) - to_chat(usr, "You put [W] back into [src].") - if(!user.drop_item()) - return - qdel(W) - return - else if (istype(W, /obj/item/weapon/wrench)) - if (!anchored && !isinspace()) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You begin to fasten \the [src] to the floor...") - if (do_after(user, 40*W.toolspeed, target = src)) - add_fingerprint(user) - user.visible_message( \ - "[user] fastens \the [src].", \ - "You fasten \the [src]. Now it can dispense pipes.", \ - "You hear ratchet.") - anchored = 1 - stat &= MAINT - if (usr.machine==src) - usr << browse(null, "window=pipedispenser") - else if(anchored) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You begin to unfasten \the [src] from the floor...") - if (do_after(user, 20*W.toolspeed, target = src)) - add_fingerprint(user) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "You unfasten \the [src]. Now it can be pulled somewhere else.", \ - "You hear ratchet.") - anchored = 0 - stat |= ~MAINT - power_change() - else - return ..() - - -/obj/machinery/pipedispenser/disposal - name = "disposal pipe dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - density = 1 - anchored = 1 - -/* -//Allow you to push disposal pipes into it (for those with density 1) -/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj) - if(istype(pipe) && !pipe.anchored) - qdel(pipe) - -Nah -*/ - -//Allow you to drag-drop disposal pipes and transit tubes into it -/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) - if(!usr.canmove || usr.stat || usr.restrained()) - return - - if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) - return - - if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 ) - return - - if (pipe.anchored) - return - - qdel(pipe) - -/obj/machinery/pipedispenser/disposal/attack_hand(mob/user) - if(..()) - return 1 - - var/dat = {"Disposal Pipes

    -Pipe
    -Bent Pipe
    -Junction
    -Y-Junction
    -Trunk
    -Bin
    -Outlet
    -Chute
    -Sort Junction
    -"} - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["dmake"]) + return + +/obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) + to_chat(usr, "You put [W] back into [src].") + if(!user.drop_item()) + return + qdel(W) + return + else if (istype(W, /obj/item/weapon/wrench)) + if (!anchored && !isinspace()) + playsound(src.loc, W.usesound, 50, 1) + to_chat(user, "You begin to fasten \the [src] to the floor...") + if (do_after(user, 40*W.toolspeed, target = src)) + add_fingerprint(user) + user.visible_message( \ + "[user] fastens \the [src].", \ + "You fasten \the [src]. Now it can dispense pipes.", \ + "You hear ratchet.") + anchored = 1 + stat &= MAINT + if (usr.machine==src) + usr << browse(null, "window=pipedispenser") + else if(anchored) + playsound(src.loc, W.usesound, 50, 1) + to_chat(user, "You begin to unfasten \the [src] from the floor...") + if (do_after(user, 20*W.toolspeed, target = src)) + add_fingerprint(user) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "You unfasten \the [src]. Now it can be pulled somewhere else.", \ + "You hear ratchet.") + anchored = 0 + stat |= ~MAINT + power_change() + else + return ..() + + +/obj/machinery/pipedispenser/disposal + name = "disposal pipe dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + +/* +//Allow you to push disposal pipes into it (for those with density 1) +/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj) + if(istype(pipe) && !pipe.anchored) + qdel(pipe) + +Nah +*/ + +//Allow you to drag-drop disposal pipes and transit tubes into it +/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) + if(!usr.canmove || usr.stat || usr.restrained()) + return + + if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) + return + + if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 ) + return + + if (pipe.anchored) + return + + qdel(pipe) + +/obj/machinery/pipedispenser/disposal/attack_hand(mob/user) + if(..()) + return 1 + + var/dat = {"Disposal Pipes

    +Pipe
    +Bent Pipe
    +Junction
    +Y-Junction
    +Trunk
    +Bin
    +Outlet
    +Chute
    +Sort Junction
    +"} + + user << browse("[src][dat]", "window=pipedispenser") + return + + +/obj/machinery/pipedispenser/disposal/Topic(href, href_list) + if(..()) + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["dmake"]) if(wait < world.time) - var/p_type = text2num(href_list["dmake"]) - var/obj/structure/disposalconstruct/C = new (src.loc,p_type) - - if(!C.can_place()) - to_chat(usr, "There's not enough room to build that here!") - qdel(C) - return - - C.add_fingerprint(usr) - C.update_icon() + var/p_type = text2num(href_list["dmake"]) + var/obj/structure/disposalconstruct/C = new (src.loc,p_type) + + if(!C.can_place()) + to_chat(usr, "There's not enough room to build that here!") + qdel(C) + return + + C.add_fingerprint(usr) + C.update_icon() wait = world.time + 15 - return - -//transit tube dispenser -//inherit disposal for the dragging proc -/obj/machinery/pipedispenser/disposal/transit_tube - name = "transit tube dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - density = 1 - anchored = 1 - -/obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) - if(..()) - return 1 - - var/dat = {"Transit Tubes:
    -Straight Tube
    -Straight Tube with Crossing
    -Curved Tube
    -Diagonal Tube
    -Diagonal Tube with Crossing
    -Junction
    -Station Equipment:
    -Through Tube Station
    -Terminus Tube Station
    -Transit Tube Pod
    -"} - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - src.add_fingerprint(usr) + return + +//transit tube dispenser +//inherit disposal for the dragging proc +/obj/machinery/pipedispenser/disposal/transit_tube + name = "transit tube dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + +/obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) + if(..()) + return 1 + + var/dat = {"Transit Tubes:
    +Straight Tube
    +Straight Tube with Crossing
    +Curved Tube
    +Diagonal Tube
    +Diagonal Tube with Crossing
    +Junction
    +Station Equipment:
    +Through Tube Station
    +Terminus Tube Station
    +Transit Tube Pod
    +"} + + user << browse("[src][dat]", "window=pipedispenser") + return + + +/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) + if(..()) + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) if(wait < world.time) - if(href_list["tube"]) - var/tube_type = text2num(href_list["tube"]) - var/obj/structure/C - switch(tube_type) - if(TRANSIT_TUBE_STRAIGHT) - C = new /obj/structure/c_transit_tube(loc) - if(TRANSIT_TUBE_STRAIGHT_CROSSING) - C = new /obj/structure/c_transit_tube/crossing(loc) - if(TRANSIT_TUBE_CURVED) - C = new /obj/structure/c_transit_tube/curved(loc) - if(TRANSIT_TUBE_DIAGONAL) - C = new /obj/structure/c_transit_tube/diagonal(loc) - if(TRANSIT_TUBE_DIAGONAL_CROSSING) - C = new /obj/structure/c_transit_tube/diagonal/crossing(loc) - if(TRANSIT_TUBE_JUNCTION) - C = new /obj/structure/c_transit_tube/junction(loc) - if(TRANSIT_TUBE_STATION) - C = new /obj/structure/c_transit_tube/station(loc) - if(TRANSIT_TUBE_TERMINUS) - C = new /obj/structure/c_transit_tube/station/reverse(loc) - if(TRANSIT_TUBE_POD) - C = new /obj/structure/c_transit_tube_pod(loc) - if(C) - C.add_fingerprint(usr) + if(href_list["tube"]) + var/tube_type = text2num(href_list["tube"]) + var/obj/structure/C + switch(tube_type) + if(TRANSIT_TUBE_STRAIGHT) + C = new /obj/structure/c_transit_tube(loc) + if(TRANSIT_TUBE_STRAIGHT_CROSSING) + C = new /obj/structure/c_transit_tube/crossing(loc) + if(TRANSIT_TUBE_CURVED) + C = new /obj/structure/c_transit_tube/curved(loc) + if(TRANSIT_TUBE_DIAGONAL) + C = new /obj/structure/c_transit_tube/diagonal(loc) + if(TRANSIT_TUBE_DIAGONAL_CROSSING) + C = new /obj/structure/c_transit_tube/diagonal/crossing(loc) + if(TRANSIT_TUBE_JUNCTION) + C = new /obj/structure/c_transit_tube/junction(loc) + if(TRANSIT_TUBE_STATION) + C = new /obj/structure/c_transit_tube/station(loc) + if(TRANSIT_TUBE_TERMINUS) + C = new /obj/structure/c_transit_tube/station/reverse(loc) + if(TRANSIT_TUBE_POD) + C = new /obj/structure/c_transit_tube_pod(loc) + if(C) + C.add_fingerprint(usr) wait = world.time + 15 - return + return diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 02ab70e906..4a5b11f605 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -1,936 +1,934 @@ -#define TURRET_STUN 0 -#define TURRET_LETHAL 1 - -#define POPUP_ANIM_TIME 5 -#define POPDOWN_ANIM_TIME 5 //Be sure to change the icon animation at the same time or it'll look bad - -/obj/machinery/porta_turret - name = "turret" - icon = 'icons/obj/turrets.dmi' - icon_state = "turretCover" - anchored = 1 - layer = OBJ_LAYER - invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover - density = 1 +#define TURRET_STUN 0 +#define TURRET_LETHAL 1 + +#define POPUP_ANIM_TIME 5 +#define POPDOWN_ANIM_TIME 5 //Be sure to change the icon animation at the same time or it'll look bad + +/obj/machinery/porta_turret + name = "turret" + icon = 'icons/obj/turrets.dmi' + icon_state = "turretCover" + anchored = 1 + layer = OBJ_LAYER + invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover + density = 1 use_power = IDLE_POWER_USE //this turret uses and requires power - idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power - active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power - req_access = list(GLOB.access_security) - power_channel = EQUIP //drains power from the EQUIPMENT channel - - var/base_icon_state = "standard" - - var/emp_vunerable = 1 // Can be empd - - var/scan_range = 7 - var/atom/base = null //for turrets inside other objects - - var/raised = 0 //if the turret cover is "open" and the turret is raised - var/raising= 0 //if the turret is currently opening or closing its cover - - obj_integrity = 160 //the turret's health - max_integrity = 160 - integrity_failure = 80 - armor = list(melee = 50, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 90, acid = 90) - - var/locked = 1 //if the turret's behaviour control access is locked - var/controllock = 0 //if the turret responds to control panels - - var/installation = /obj/item/weapon/gun/energy/e_gun/turret //the type of weapon installed by default - var/obj/item/weapon/gun/stored_gun = null - var/gun_charge = 0 //the charge of the gun when retrieved from wreckage - - var/mode = TURRET_STUN - - var/stun_projectile = null //stun mode projectile type - var/stun_projectile_sound - var/lethal_projectile = null //lethal mode projectile type - var/lethal_projectile_sound - - var/reqpower = 500 //power needed per shot - var/always_up = 0 //Will stay active - var/has_cover = 1 //Hides the cover - - var/obj/machinery/porta_turret_cover/cover = null //the cover that is covering this turret - - var/last_fired = 0 //world.time the turret last fired - var/shot_delay = 15 //ticks until next shot (1.5 ?) - - - var/check_records = 1 //checks if it can use the security records - var/criminals = 1 //checks if it can shoot people on arrest - var/auth_weapons = 0 //checks if it can shoot people that have a weapon they aren't authorized to have - var/stun_all = 0 //if this is active, the turret shoots everything that isn't security or head of staff - var/check_anomalies = 1 //checks if it can shoot at unidentified lifeforms (ie xenos) - - var/attacked = 0 //if set to 1, the turret gets pissed off and shoots at people nearby (unless they have sec access!) - - var/on = TRUE //determines if the turret is on - - var/faction = "turret" // Same faction mobs will never be shot at, no matter the other settings - - var/datum/effect_system/spark_spread/spark_system //the spark system, used for generating... sparks? - - var/obj/machinery/turretid/cp = null - -/obj/machinery/porta_turret/New(loc) - ..() - if(!base) - base = src - update_icon() - //Sets up a spark system - spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(5, 0, src) - spark_system.attach(src) - - setup() - if(has_cover) - cover = new /obj/machinery/porta_turret_cover(loc) - cover.parent_turret = src - var/mutable_appearance/base = mutable_appearance('icons/obj/turrets.dmi', "basedark") - base.layer = NOT_HIGH_OBJ_LAYER - underlays += base - if(!has_cover) - INVOKE_ASYNC(src, .proc/popUp) - -/obj/machinery/porta_turret/update_icon() - cut_overlays() - if(!anchored) - icon_state = "turretCover" - return - if(stat & BROKEN) - icon_state = "[base_icon_state]_broken" - else - if(powered()) - if(on && raised) - switch(mode) - if(TURRET_STUN) - icon_state = "[base_icon_state]_stun" - if(TURRET_LETHAL) - icon_state = "[base_icon_state]_lethal" - else - icon_state = "[base_icon_state]_off" - else - icon_state = "[base_icon_state]_unpowered" - - -/obj/machinery/porta_turret/proc/setup(obj/item/weapon/gun/turret_gun) - if(stored_gun) - qdel(stored_gun) - stored_gun = null - - if(installation && !turret_gun) - stored_gun = new installation(src) - else if (turret_gun) - stored_gun = turret_gun - - var/list/gun_properties = stored_gun.get_turret_properties() - - //required properties - stun_projectile = gun_properties["stun_projectile"] - stun_projectile_sound = gun_properties["stun_projectile_sound"] - lethal_projectile = gun_properties["lethal_projectile"] - lethal_projectile_sound = gun_properties["lethal_projectile_sound"] - base_icon_state = gun_properties["base_icon_state"] - - //optional properties - if(gun_properties["shot_delay"]) - shot_delay = gun_properties["shot_delay"] - if(gun_properties["reqpower"]) - reqpower = gun_properties["reqpower"] - - update_icon() - return gun_properties - -/obj/machinery/porta_turret/Destroy() - //deletes its own cover with it - if(cover) - qdel(cover) - cover = null - base = null - if(cp) - cp.turrets -= src - cp = null - if(stored_gun) - qdel(stored_gun) - stored_gun = null - qdel(spark_system) - spark_system = null - return ..() - - -/obj/machinery/porta_turret/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/porta_turret/attack_hand(mob/user) - . = ..() - if(.) - return - - interact(user) - -/obj/machinery/porta_turret/interact(mob/user) - var/dat - dat += "Status: [on ? "On" : "Off"]
    " - dat += "Behaviour controls are [locked ? "locked" : "unlocked"]
    " - - if(!locked) - dat += "Check for Weapon Authorization: [auth_weapons ? "Yes" : "No"]
    " - dat += "Check Security Records: [check_records ? "Yes" : "No"]
    " - dat += "Neutralize Identified Criminals: [criminals ? "Yes" : "No"]
    " - dat += "Neutralize All Non-Security and Non-Command Personnel: [stun_all ? "Yes" : "No"]
    " - dat += "Neutralize All Unidentified Life Signs: [check_anomalies ? "Yes" : "No"]
    " - - var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300) - popup.set_content(dat) - popup.open() - -/obj/machinery/porta_turret/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - add_fingerprint(usr) - - if(href_list["power"] && !locked) - if(anchored) //you can't turn a turret on/off if it's not anchored/secured - on = !on //toggle on/off - else - to_chat(usr, "It has to be secured first!") - interact(usr) - return - - if(href_list["operation"]) - switch(href_list["operation"]) //toggles customizable behavioural protocols - if("authweapon") - auth_weapons = !auth_weapons - if("checkrecords") - check_records = !check_records - if("shootcrooks") - criminals = !criminals - if("shootall") - stun_all = !stun_all - if("checkxenos") - check_anomalies = !check_anomalies - interact(usr) - -/obj/machinery/porta_turret/power_change() - if(!anchored) - update_icon() - return - if(stat & BROKEN) - update_icon() - else - if( powered() ) - stat &= ~NOPOWER - update_icon() - else - spawn(rand(0, 15)) - stat |= NOPOWER - update_icon() - - -/obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params) - if(stat & BROKEN) - if(istype(I, /obj/item/weapon/crowbar)) - //If the turret is destroyed, you can remove it with a crowbar to - //try and salvage its components - to_chat(user, "You begin prying the metal coverings off...") - if(do_after(user, 20*I.toolspeed, target = src)) - if(prob(70)) - if(stored_gun) - stored_gun.forceMove(loc) - to_chat(user, "You remove the turret and salvage some components.") - if(prob(50)) - new /obj/item/stack/sheet/metal(loc, rand(1,4)) - if(prob(50)) - new /obj/item/device/assembly/prox_sensor(loc) - else - to_chat(user, "You remove the turret but did not manage to salvage anything.") - qdel(src) - - else if((istype(I, /obj/item/weapon/wrench)) && (!on)) - if(raised) - return - - //This code handles moving the turret around. After all, it's a portable turret! - if(!anchored && !isinspace()) - anchored = 1 - invisibility = INVISIBILITY_MAXIMUM - update_icon() - to_chat(user, "You secure the exterior bolts on the turret.") - if(has_cover) - cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second - cover.parent_turret = src //make the cover's parent src - else if(anchored) - anchored = 0 - to_chat(user, "You unsecure the exterior bolts on the turret.") - update_icon() - invisibility = 0 - qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover. - - else if(I.GetID()) - //Behavior lock/unlock mangement - if(allowed(user)) - locked = !locked - to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].") - else - to_chat(user, "Access denied.") - else if(istype(I,/obj/item/device/multitool) && !locked) - var/obj/item/device/multitool/M = I - M.buffer = src - to_chat(user, "You add [src] to multitool buffer.") - else - return ..() - -/obj/machinery/porta_turret/emag_act(mob/user) - if(!emagged) - to_chat(user, "You short out [src]'s threat assessment circuits.") - visible_message("[src] hums oddly...") - emagged = 1 - controllock = 1 - on = 0 //turns off the turret temporarily - update_icon() - sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit - on = 1 //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here - - -/obj/machinery/porta_turret/emp_act(severity) - if(on && emp_vunerable) - //if the turret is on, the EMP no matter how severe disables the turret for a while - //and scrambles its settings, with a slight chance of having an emag effect - check_records = pick(0, 1) - criminals = pick(0, 1) - auth_weapons = pick(0, 1) - stun_all = pick(0, 0, 0, 0, 1) //stun_all is a pretty big deal, so it's least likely to get turned on - - on=0 - spawn(rand(60,600)) - if(!on) - on=1 - - ..() - -/obj/machinery/porta_turret/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) - . = ..() - if(.) //damage received - if(prob(30)) - spark_system.start() - if(on && !attacked && !emagged) - attacked = TRUE - addtimer(CALLBACK(src, .proc/reset_attacked), 60) - -/obj/machinery/porta_turret/proc/reset_attacked() - attacked = FALSE - -/obj/machinery/porta_turret/deconstruct(disassembled = TRUE) - qdel(src) - -/obj/machinery/porta_turret/obj_break(damage_flag) - if(!(flags & NODECONSTRUCT) && !(stat & BROKEN)) - stat |= BROKEN //enables the BROKEN bit - update_icon() - invisibility = 0 - spark_system.start() //creates some sparks because they look cool - qdel(cover) //deletes the cover - no need on keeping it there! - - - -/obj/machinery/porta_turret/process() - //the main machinery process - set background = BACKGROUND_ENABLED - - if(cover == null && anchored) //if it has no cover and is anchored - if(stat & BROKEN) //if the turret is borked - qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug - else - if(has_cover) - cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover - cover.parent_turret = src //assign the cover its parent_turret, which would be this (src) - - if(stat & (NOPOWER|BROKEN)) - if(!always_up) - //if the turret has no power or is broken, make the turret pop down if it hasn't already - popDown() - return - - if(!on) - if(!always_up) - //if the turret is off, make it pop down - popDown() - return - - var/list/targets = calculate_targets() - - if(!tryToShootAt(targets)) - if(!always_up) - popDown() // no valid targets, close the cover - -/obj/machinery/porta_turret/proc/calculate_targets() - var/list/targets = list() - var/turretview = view(scan_range, base) - for(var/A in turretview) - var/atom/AA = A - if(AA.invisibility>SEE_INVISIBLE_LIVING) - continue - - if(check_anomalies)//if it's set to check for simple animals - if(istype(A, /mob/living/simple_animal)) - var/mob/living/simple_animal/SA = A - if(SA.stat || in_faction(SA)) //don't target if dead or in faction - continue - targets += SA - - if(istype(A, /mob/living/carbon)) - var/mob/living/carbon/C = A - //If not emagged, only target non downed carbons - if(mode != TURRET_LETHAL && (C.stat || C.handcuffed || C.lying)) - continue - - //If emagged, target all but dead carbons - if(mode == TURRET_LETHAL && C.stat == DEAD) - continue - - //if the target is a human and not in our faction, analyze threat level - if(ishuman(C) && !in_faction(C)) - if(assess_perp(C) >= 4) - targets += C - - else if(check_anomalies) //non humans who are not simple animals (xenos etc) - if(!in_faction(C)) - targets += C - - if(istype(A, /obj/mecha/)) - var/obj/mecha/M = A - //If there is a user and they're not in our faction - if(M.occupant && !in_faction(M.occupant)) - if(assess_perp(M.occupant) >= 4) - targets += M - - return targets - -/obj/machinery/porta_turret/proc/tryToShootAt(list/atom/movable/targets) - while(targets.len > 0) - var/atom/movable/M = pick(targets) - targets -= M - if(target(M)) - return 1 - - -/obj/machinery/porta_turret/proc/popUp() //pops the turret up - if(!anchored) - return - if(raising || raised) - return - if(stat & BROKEN) - return - invisibility = 0 - raising = 1 - if(cover) - flick("popup", cover) - sleep(POPUP_ANIM_TIME) - raising = 0 - if(cover) - cover.icon_state = "openTurretCover" - raised = 1 - layer = MOB_LAYER - -/obj/machinery/porta_turret/proc/popDown() //pops the turret down - if(raising || !raised) - return - if(stat & BROKEN) - return - layer = OBJ_LAYER - raising = 1 - if(cover) - flick("popdown", cover) - sleep(POPDOWN_ANIM_TIME) - raising = 0 - if(cover) - cover.icon_state = "turretCover" - raised = 0 - invisibility = 2 - update_icon() - -/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp) - var/threatcount = 0 //the integer returned - - if(emagged) - return 10 //if emagged, always return 10. - - if((stun_all || attacked) && !allowed(perp)) - //if the turret has been attacked or is angry, target all non-sec people - if(!allowed(perp)) - return 10 - - if(auth_weapons) //check for weapon authorization - if(isnull(perp.wear_id) || istype(perp.wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) - - if(allowed(perp)) //if the perp has security access, return 0 - return 0 - - if(perp.is_holding_item_of_type(/obj/item/weapon/gun) || perp.is_holding_item_of_type(/obj/item/weapon/melee/baton)) - threatcount += 4 - - if(istype(perp.belt, /obj/item/weapon/gun) || istype(perp.belt, /obj/item/weapon/melee/baton)) - threatcount += 2 - - if(check_records) //if the turret can check the records, check if they are set to *Arrest* on records - var/perpname = perp.get_face_name(perp.get_id_name()) - var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security) - if(!R || (R.fields["criminal"] == "*Arrest*")) - threatcount += 4 - - return threatcount - - -/obj/machinery/porta_turret/proc/in_faction(mob/target) - if(!(faction in target.faction)) - return 0 - return 1 - -/obj/machinery/porta_turret/proc/target(atom/movable/target) - if(target) - spawn() - popUp() //pop the turret up if it's not already up. - setDir(get_dir(base, target))//even if you can't shoot, follow the target - spawn() - shootAt(target) - return 1 - return - -/obj/machinery/porta_turret/proc/shootAt(atom/movable/target) - if(!raised) //the turret has to be raised in order to fire - makes sense, right? - return - - if(!emagged) //if it hasn't been emagged, cooldown before shooting again - if(last_fired + shot_delay > world.time) - return - last_fired = world.time - - var/turf/T = get_turf(src) - var/turf/U = get_turf(target) - if(!istype(T) || !istype(U)) - return - - update_icon() - var/obj/item/projectile/A - //any emagged turrets drains 2x power and uses a different projectile? - if(mode == TURRET_STUN) - use_power(reqpower) - A = new stun_projectile(T) - playsound(loc, stun_projectile_sound, 75, 1) - else - use_power(reqpower * 2) - A = new lethal_projectile(T) - playsound(loc, lethal_projectile_sound, 75, 1) - - - //Shooting Code: - A.original = target - A.starting = T - A.current = T - A.yo = U.y - T.y - A.xo = U.x - T.x - A.fire() - return A - - -/obj/machinery/porta_turret/proc/setState(on, mode) - if(controllock) - return - src.on = on - src.mode = mode - power_change() - -/obj/machinery/porta_turret/stationary //is this even used anywhere - mode = TURRET_LETHAL - emagged = TRUE - installation = /obj/item/weapon/gun/energy/laser - - -/obj/machinery/porta_turret/syndicate - installation = null - always_up = 1 + idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power + active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power + req_access = list(GLOB.access_security) + power_channel = EQUIP //drains power from the EQUIPMENT channel + + var/base_icon_state = "standard" + + var/emp_vunerable = 1 // Can be empd + + var/scan_range = 7 + var/atom/base = null //for turrets inside other objects + + var/raised = 0 //if the turret cover is "open" and the turret is raised + var/raising= 0 //if the turret is currently opening or closing its cover + + obj_integrity = 160 //the turret's health + max_integrity = 160 + integrity_failure = 80 + armor = list(melee = 50, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 90, acid = 90) + + var/locked = 1 //if the turret's behaviour control access is locked + var/controllock = 0 //if the turret responds to control panels + + var/installation = /obj/item/weapon/gun/energy/e_gun/turret //the type of weapon installed by default + var/obj/item/weapon/gun/stored_gun = null + var/gun_charge = 0 //the charge of the gun when retrieved from wreckage + + var/mode = TURRET_STUN + + var/stun_projectile = null //stun mode projectile type + var/stun_projectile_sound + var/lethal_projectile = null //lethal mode projectile type + var/lethal_projectile_sound + + var/reqpower = 500 //power needed per shot + var/always_up = 0 //Will stay active + var/has_cover = 1 //Hides the cover + + var/obj/machinery/porta_turret_cover/cover = null //the cover that is covering this turret + + var/last_fired = 0 //world.time the turret last fired + var/shot_delay = 15 //ticks until next shot (1.5 ?) + + + var/check_records = 1 //checks if it can use the security records + var/criminals = 1 //checks if it can shoot people on arrest + var/auth_weapons = 0 //checks if it can shoot people that have a weapon they aren't authorized to have + var/stun_all = 0 //if this is active, the turret shoots everything that isn't security or head of staff + var/check_anomalies = 1 //checks if it can shoot at unidentified lifeforms (ie xenos) + + var/attacked = 0 //if set to 1, the turret gets pissed off and shoots at people nearby (unless they have sec access!) + + var/on = TRUE //determines if the turret is on + + var/faction = "turret" // Same faction mobs will never be shot at, no matter the other settings + + var/datum/effect_system/spark_spread/spark_system //the spark system, used for generating... sparks? + + var/obj/machinery/turretid/cp = null + +/obj/machinery/porta_turret/New(loc) + ..() + if(!base) + base = src + update_icon() + //Sets up a spark system + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + + setup() + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) + cover.parent_turret = src + var/mutable_appearance/base = mutable_appearance('icons/obj/turrets.dmi', "basedark") + base.layer = NOT_HIGH_OBJ_LAYER + underlays += base + if(!has_cover) + INVOKE_ASYNC(src, .proc/popUp) + +/obj/machinery/porta_turret/update_icon() + cut_overlays() + if(!anchored) + icon_state = "turretCover" + return + if(stat & BROKEN) + icon_state = "[base_icon_state]_broken" + else + if(powered()) + if(on && raised) + switch(mode) + if(TURRET_STUN) + icon_state = "[base_icon_state]_stun" + if(TURRET_LETHAL) + icon_state = "[base_icon_state]_lethal" + else + icon_state = "[base_icon_state]_off" + else + icon_state = "[base_icon_state]_unpowered" + + +/obj/machinery/porta_turret/proc/setup(obj/item/weapon/gun/turret_gun) + if(stored_gun) + qdel(stored_gun) + stored_gun = null + + if(installation && !turret_gun) + stored_gun = new installation(src) + else if (turret_gun) + stored_gun = turret_gun + + var/list/gun_properties = stored_gun.get_turret_properties() + + //required properties + stun_projectile = gun_properties["stun_projectile"] + stun_projectile_sound = gun_properties["stun_projectile_sound"] + lethal_projectile = gun_properties["lethal_projectile"] + lethal_projectile_sound = gun_properties["lethal_projectile_sound"] + base_icon_state = gun_properties["base_icon_state"] + + //optional properties + if(gun_properties["shot_delay"]) + shot_delay = gun_properties["shot_delay"] + if(gun_properties["reqpower"]) + reqpower = gun_properties["reqpower"] + + update_icon() + return gun_properties + +/obj/machinery/porta_turret/Destroy() + //deletes its own cover with it + if(cover) + qdel(cover) + cover = null + base = null + if(cp) + cp.turrets -= src + cp = null + if(stored_gun) + qdel(stored_gun) + stored_gun = null + qdel(spark_system) + spark_system = null + return ..() + + +/obj/machinery/porta_turret/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/porta_turret/attack_hand(mob/user) + . = ..() + if(.) + return + + interact(user) + +/obj/machinery/porta_turret/interact(mob/user) + var/dat + dat += "Status: [on ? "On" : "Off"]
    " + dat += "Behaviour controls are [locked ? "locked" : "unlocked"]
    " + + if(!locked) + dat += "Check for Weapon Authorization: [auth_weapons ? "Yes" : "No"]
    " + dat += "Check Security Records: [check_records ? "Yes" : "No"]
    " + dat += "Neutralize Identified Criminals: [criminals ? "Yes" : "No"]
    " + dat += "Neutralize All Non-Security and Non-Command Personnel: [stun_all ? "Yes" : "No"]
    " + dat += "Neutralize All Unidentified Life Signs: [check_anomalies ? "Yes" : "No"]
    " + + var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300) + popup.set_content(dat) + popup.open() + +/obj/machinery/porta_turret/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + add_fingerprint(usr) + + if(href_list["power"] && !locked) + if(anchored) //you can't turn a turret on/off if it's not anchored/secured + on = !on //toggle on/off + else + to_chat(usr, "It has to be secured first!") + interact(usr) + return + + if(href_list["operation"]) + switch(href_list["operation"]) //toggles customizable behavioural protocols + if("authweapon") + auth_weapons = !auth_weapons + if("checkrecords") + check_records = !check_records + if("shootcrooks") + criminals = !criminals + if("shootall") + stun_all = !stun_all + if("checkxenos") + check_anomalies = !check_anomalies + interact(usr) + +/obj/machinery/porta_turret/power_change() + if(!anchored) + update_icon() + return + if(stat & BROKEN) + update_icon() + else + if( powered() ) + stat &= ~NOPOWER + update_icon() + else + spawn(rand(0, 15)) + stat |= NOPOWER + update_icon() + + +/obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params) + if(stat & BROKEN) + if(istype(I, /obj/item/weapon/crowbar)) + //If the turret is destroyed, you can remove it with a crowbar to + //try and salvage its components + to_chat(user, "You begin prying the metal coverings off...") + if(do_after(user, 20*I.toolspeed, target = src)) + if(prob(70)) + if(stored_gun) + stored_gun.forceMove(loc) + to_chat(user, "You remove the turret and salvage some components.") + if(prob(50)) + new /obj/item/stack/sheet/metal(loc, rand(1,4)) + if(prob(50)) + new /obj/item/device/assembly/prox_sensor(loc) + else + to_chat(user, "You remove the turret but did not manage to salvage anything.") + qdel(src) + + else if((istype(I, /obj/item/weapon/wrench)) && (!on)) + if(raised) + return + + //This code handles moving the turret around. After all, it's a portable turret! + if(!anchored && !isinspace()) + anchored = 1 + invisibility = INVISIBILITY_MAXIMUM + update_icon() + to_chat(user, "You secure the exterior bolts on the turret.") + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second + cover.parent_turret = src //make the cover's parent src + else if(anchored) + anchored = 0 + to_chat(user, "You unsecure the exterior bolts on the turret.") + update_icon() + invisibility = 0 + qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover. + + else if(I.GetID()) + //Behavior lock/unlock mangement + if(allowed(user)) + locked = !locked + to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].") + else + to_chat(user, "Access denied.") + else if(istype(I,/obj/item/device/multitool) && !locked) + var/obj/item/device/multitool/M = I + M.buffer = src + to_chat(user, "You add [src] to multitool buffer.") + else + return ..() + +/obj/machinery/porta_turret/emag_act(mob/user) + if(!emagged) + to_chat(user, "You short out [src]'s threat assessment circuits.") + visible_message("[src] hums oddly...") + emagged = 1 + controllock = 1 + on = 0 //turns off the turret temporarily + update_icon() + sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit + on = 1 //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here + + +/obj/machinery/porta_turret/emp_act(severity) + if(on && emp_vunerable) + //if the turret is on, the EMP no matter how severe disables the turret for a while + //and scrambles its settings, with a slight chance of having an emag effect + check_records = pick(0, 1) + criminals = pick(0, 1) + auth_weapons = pick(0, 1) + stun_all = pick(0, 0, 0, 0, 1) //stun_all is a pretty big deal, so it's least likely to get turned on + + on=0 + spawn(rand(60,600)) + if(!on) + on=1 + + ..() + +/obj/machinery/porta_turret/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) //damage received + if(prob(30)) + spark_system.start() + if(on && !attacked && !emagged) + attacked = TRUE + addtimer(CALLBACK(src, .proc/reset_attacked), 60) + +/obj/machinery/porta_turret/proc/reset_attacked() + attacked = FALSE + +/obj/machinery/porta_turret/deconstruct(disassembled = TRUE) + qdel(src) + +/obj/machinery/porta_turret/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT) && !(stat & BROKEN)) + stat |= BROKEN //enables the BROKEN bit + update_icon() + invisibility = 0 + spark_system.start() //creates some sparks because they look cool + qdel(cover) //deletes the cover - no need on keeping it there! + + + +/obj/machinery/porta_turret/process() + //the main machinery process + set background = BACKGROUND_ENABLED + + if(cover == null && anchored) //if it has no cover and is anchored + if(stat & BROKEN) //if the turret is borked + qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug + else + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover + cover.parent_turret = src //assign the cover its parent_turret, which would be this (src) + + if(stat & (NOPOWER|BROKEN)) + if(!always_up) + //if the turret has no power or is broken, make the turret pop down if it hasn't already + popDown() + return + + if(!on) + if(!always_up) + //if the turret is off, make it pop down + popDown() + return + + var/list/targets = calculate_targets() + + if(!tryToShootAt(targets)) + if(!always_up) + popDown() // no valid targets, close the cover + +/obj/machinery/porta_turret/proc/calculate_targets() + var/list/targets = list() + var/turretview = view(scan_range, base) + for(var/A in turretview) + var/atom/AA = A + if(AA.invisibility>SEE_INVISIBLE_LIVING) + continue + + if(check_anomalies)//if it's set to check for simple animals + if(istype(A, /mob/living/simple_animal)) + var/mob/living/simple_animal/SA = A + if(SA.stat || in_faction(SA)) //don't target if dead or in faction + continue + targets += SA + + if(istype(A, /mob/living/carbon)) + var/mob/living/carbon/C = A + //If not emagged, only target non downed carbons + if(mode != TURRET_LETHAL && (C.stat || C.handcuffed || C.lying)) + continue + + //If emagged, target all but dead carbons + if(mode == TURRET_LETHAL && C.stat == DEAD) + continue + + //if the target is a human and not in our faction, analyze threat level + if(ishuman(C) && !in_faction(C)) + if(assess_perp(C) >= 4) + targets += C + + else if(check_anomalies) //non humans who are not simple animals (xenos etc) + if(!in_faction(C)) + targets += C + + if(istype(A, /obj/mecha/)) + var/obj/mecha/M = A + //If there is a user and they're not in our faction + if(M.occupant && !in_faction(M.occupant)) + if(assess_perp(M.occupant) >= 4) + targets += M + + return targets + +/obj/machinery/porta_turret/proc/tryToShootAt(list/atom/movable/targets) + while(targets.len > 0) + var/atom/movable/M = pick(targets) + targets -= M + if(target(M)) + return 1 + + +/obj/machinery/porta_turret/proc/popUp() //pops the turret up + if(!anchored) + return + if(raising || raised) + return + if(stat & BROKEN) + return + invisibility = 0 + raising = 1 + if(cover) + flick("popup", cover) + sleep(POPUP_ANIM_TIME) + raising = 0 + if(cover) + cover.icon_state = "openTurretCover" + raised = 1 + layer = MOB_LAYER + +/obj/machinery/porta_turret/proc/popDown() //pops the turret down + if(raising || !raised) + return + if(stat & BROKEN) + return + layer = OBJ_LAYER + raising = 1 + if(cover) + flick("popdown", cover) + sleep(POPDOWN_ANIM_TIME) + raising = 0 + if(cover) + cover.icon_state = "turretCover" + raised = 0 + invisibility = 2 + update_icon() + +/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp) + var/threatcount = 0 //the integer returned + + if(emagged) + return 10 //if emagged, always return 10. + + if((stun_all || attacked) && !allowed(perp)) + //if the turret has been attacked or is angry, target all non-sec people + if(!allowed(perp)) + return 10 + + if(auth_weapons) //check for weapon authorization + if(isnull(perp.wear_id) || istype(perp.wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) + + if(allowed(perp)) //if the perp has security access, return 0 + return 0 + + if(perp.is_holding_item_of_type(/obj/item/weapon/gun) || perp.is_holding_item_of_type(/obj/item/weapon/melee/baton)) + threatcount += 4 + + if(istype(perp.belt, /obj/item/weapon/gun) || istype(perp.belt, /obj/item/weapon/melee/baton)) + threatcount += 2 + + if(check_records) //if the turret can check the records, check if they are set to *Arrest* on records + var/perpname = perp.get_face_name(perp.get_id_name()) + var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security) + if(!R || (R.fields["criminal"] == "*Arrest*")) + threatcount += 4 + + return threatcount + + +/obj/machinery/porta_turret/proc/in_faction(mob/target) + if(!(faction in target.faction)) + return 0 + return 1 + +/obj/machinery/porta_turret/proc/target(atom/movable/target) + if(target) + spawn() + popUp() //pop the turret up if it's not already up. + setDir(get_dir(base, target))//even if you can't shoot, follow the target + spawn() + shootAt(target) + return 1 + return + +/obj/machinery/porta_turret/proc/shootAt(atom/movable/target) + if(!raised) //the turret has to be raised in order to fire - makes sense, right? + return + + if(!emagged) //if it hasn't been emagged, cooldown before shooting again + if(last_fired + shot_delay > world.time) + return + last_fired = world.time + + var/turf/T = get_turf(src) + var/turf/U = get_turf(target) + if(!istype(T) || !istype(U)) + return + + update_icon() + var/obj/item/projectile/A + //any emagged turrets drains 2x power and uses a different projectile? + if(mode == TURRET_STUN) + use_power(reqpower) + A = new stun_projectile(T) + playsound(loc, stun_projectile_sound, 75, 1) + else + use_power(reqpower * 2) + A = new lethal_projectile(T) + playsound(loc, lethal_projectile_sound, 75, 1) + + + //Shooting Code: + A.original = target + A.starting = T + A.current = T + A.yo = U.y - T.y + A.xo = U.x - T.x + A.fire() + return A + + +/obj/machinery/porta_turret/proc/setState(on, mode) + if(controllock) + return + src.on = on + src.mode = mode + power_change() + +/obj/machinery/porta_turret/stationary //is this even used anywhere + mode = TURRET_LETHAL + emagged = TRUE + installation = /obj/item/weapon/gun/energy/laser + +/obj/machinery/porta_turret/syndicate + installation = null + always_up = 1 use_power = NO_POWER_USE - has_cover = 0 - scan_range = 9 - req_access = list(GLOB.access_syndicate) - stun_projectile = /obj/item/projectile/bullet - lethal_projectile = /obj/item/projectile/bullet - lethal_projectile_sound = 'sound/weapons/Gunshot.ogg' - stun_projectile_sound = 'sound/weapons/Gunshot.ogg' - icon_state = "syndie_off" - base_icon_state = "syndie" - faction = "syndicate" - emp_vunerable = 0 - -/obj/machinery/porta_turret/syndicate/energy - icon_state = "standard_stun" - base_icon_state = "standard" - stun_projectile = /obj/item/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/Taser.ogg' - lethal_projectile = /obj/item/projectile/beam/laser/heavylaser - lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' - - -/obj/machinery/porta_turret/syndicate/setup() - return - -/obj/machinery/porta_turret/syndicate/assess_perp(mob/living/carbon/human/perp) - return 10 //Syndicate turrets shoot everything not in their faction - -/obj/machinery/porta_turret/syndicate/pod - max_integrity = 40 - integrity_failure = 20 - obj_integrity = 40 - stun_projectile = /obj/item/projectile/bullet/weakbullet3 - lethal_projectile = /obj/item/projectile/bullet/weakbullet3 - -/obj/machinery/porta_turret/ai - faction = "silicon" - -/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp) - return 10 //AI turrets shoot at everything not in their faction - -/obj/machinery/porta_turret/aux_base - name = "perimeter defense turret" - desc = "A plasma beam turret calibrated to defend outposts against non-humanoid fauna. It is more effective when exposed to the environment." - installation = null - lethal_projectile = /obj/item/projectile/plasma/turret - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' - mode = TURRET_LETHAL //It would be useless in stun mode anyway - faction = "neutral" //Minebots, medibots, etc that should not be shot. - -/obj/machinery/porta_turret/aux_base/assess_perp(mob/living/carbon/human/perp) - return 0 //Never shoot humanoids. You are on your own if Ashwalkers or the like attack! - -/obj/machinery/porta_turret/aux_base/setup() - return - -/obj/machinery/porta_turret/aux_base/interact(mob/user) //Controlled solely from the base console. - return - -/obj/machinery/porta_turret/aux_base/New() - ..() - cover.name = name - cover.desc = desc - -/obj/machinery/porta_turret/centcomm_shuttle - installation = null - obj_integrity = 260 - max_integrity = 260 - always_up = 1 + has_cover = 0 + scan_range = 9 + req_access = list(GLOB.access_syndicate) + stun_projectile = /obj/item/projectile/bullet + lethal_projectile = /obj/item/projectile/bullet + lethal_projectile_sound = 'sound/weapons/gunshot.ogg' + stun_projectile_sound = 'sound/weapons/gunshot.ogg' + icon_state = "syndie_off" + base_icon_state = "syndie" + faction = "syndicate" + emp_vunerable = 0 + +/obj/machinery/porta_turret/syndicate/energy + icon_state = "standard_stun" + base_icon_state = "standard" + stun_projectile = /obj/item/projectile/energy/electrode + stun_projectile_sound = 'sound/weapons/taser.ogg' + lethal_projectile = /obj/item/projectile/beam/laser/heavylaser + lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/machinery/porta_turret/syndicate/setup() + return + +/obj/machinery/porta_turret/syndicate/assess_perp(mob/living/carbon/human/perp) + return 10 //Syndicate turrets shoot everything not in their faction + +/obj/machinery/porta_turret/syndicate/pod + max_integrity = 40 + integrity_failure = 20 + obj_integrity = 40 + stun_projectile = /obj/item/projectile/bullet/weakbullet3 + lethal_projectile = /obj/item/projectile/bullet/weakbullet3 + +/obj/machinery/porta_turret/ai + faction = "silicon" + +/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp) + return 10 //AI turrets shoot at everything not in their faction + +/obj/machinery/porta_turret/aux_base + name = "perimeter defense turret" + desc = "A plasma beam turret calibrated to defend outposts against non-humanoid fauna. It is more effective when exposed to the environment." + installation = null + lethal_projectile = /obj/item/projectile/plasma/turret + lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + mode = TURRET_LETHAL //It would be useless in stun mode anyway + faction = "neutral" //Minebots, medibots, etc that should not be shot. + +/obj/machinery/porta_turret/aux_base/assess_perp(mob/living/carbon/human/perp) + return 0 //Never shoot humanoids. You are on your own if Ashwalkers or the like attack! + +/obj/machinery/porta_turret/aux_base/setup() + return + +/obj/machinery/porta_turret/aux_base/interact(mob/user) //Controlled solely from the base console. + return + +/obj/machinery/porta_turret/aux_base/New() + ..() + cover.name = name + cover.desc = desc + +/obj/machinery/porta_turret/centcomm_shuttle + installation = null + obj_integrity = 260 + max_integrity = 260 + always_up = 1 use_power = NO_POWER_USE - has_cover = 0 - scan_range = 9 - stun_projectile = /obj/item/projectile/beam/laser - lethal_projectile = /obj/item/projectile/beam/laser - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' - stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg' - icon_state = "syndie_off" - base_icon_state = "syndie" - faction = "turret" - emp_vunerable = 0 - mode = TURRET_LETHAL - -/obj/machinery/porta_turret/centcomm_shuttle/assess_perp(mob/living/carbon/human/perp) - return 0 - -/obj/machinery/porta_turret/centcomm_shuttle/setup() - return - -//////////////////////// -//Turret Control Panel// -//////////////////////// - -/obj/machinery/turretid - name = "turret control panel" - desc = "Used to control a room's automated defenses." - icon = 'icons/obj/machines/turret_control.dmi' - icon_state = "control_standby" - anchored = 1 - density = 0 - var/enabled = 1 - var/lethal = 0 - var/locked = 1 - var/control_area = null //can be area name, path or nothing. - var/ailock = 0 // AI cannot use this - req_access = list(GLOB.access_ai_upload) - var/list/obj/machinery/porta_turret/turrets = list() - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/machinery/turretid/New(loc, ndir = 0, built = 0) - ..() - if(built) - setDir(ndir) - locked = 0 - pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - power_change() //Checks power and initial settings - -/obj/machinery/turretid/Destroy() - turrets.Cut() - return ..() - -/obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets - ..() - if(!mapload) - return - if(control_area && istext(control_area)) - for(var/V in GLOB.sortedAreas) - var/area/A = V - if(A.name == control_area) - control_area = A - break - - if(!control_area) - control_area = get_area(src) - - for(var/obj/machinery/porta_turret/T in control_area) - turrets |= T - T.cp = src - -/obj/machinery/turretid/attackby(obj/item/I, mob/user, params) - if(stat & BROKEN) return - - if (istype(I,/obj/item/device/multitool)) - var/obj/item/device/multitool/M = I - if(M.buffer && istype(M.buffer,/obj/machinery/porta_turret)) - turrets |= M.buffer - to_chat(user, "You link \the [M.buffer] with \the [src]") - return - - if (issilicon(user)) - return attack_hand(user) - - if ( get_dist(src, user) == 0 ) // trying to unlock the interface - if (allowed(usr)) - if(emagged) - to_chat(user, "The turret control is unresponsive.") - return - - locked = !locked - to_chat(user, "You [ locked ? "lock" : "unlock"] the panel.") - if (locked) - if (user.machine==src) - user.unset_machine() - user << browse(null, "window=turretid") - else - if (user.machine==src) - src.attack_hand(user) - else - to_chat(user, "Access denied.") - -/obj/machinery/turretid/emag_act(mob/user) - if(!emagged) - to_chat(user, "You short out the turret controls' access analysis module.") - emagged = 1 - locked = 0 - if(user && user.machine == src) - attack_hand(user) - -/obj/machinery/turretid/attack_ai(mob/user) - if(!ailock || IsAdminGhost(user)) - return attack_hand(user) - else - to_chat(user, "There seems to be a firewall preventing you from accessing this device.") - -/obj/machinery/turretid/attack_hand(mob/user as mob) - if ( get_dist(src, user) > 0 ) - if ( !(issilicon(user) || IsAdminGhost(user)) ) - to_chat(user, "You are too far away.") - user.unset_machine() - user << browse(null, "window=turretid") - return - - user.set_machine(src) - var/area/area = get_area(src) - var/t = "" - - if(locked && !(issilicon(user) || IsAdminGhost(user))) - t += "
    Swipe ID card to unlock interface
    " - else - if(!issilicon(user) && !IsAdminGhost(user)) - t += "
    Swipe ID card to lock interface
    " - t += "Turrets [enabled?"activated":"deactivated"] - [enabled?"Disable":"Enable"]?
    " - t += "Currently set for [lethal?"lethal":"stun repeatedly"] - Change to [lethal?"Stun repeatedly":"Lethal"]?
    " - - var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])") - popup.set_content(t) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/turretid/Topic(href, href_list) - if(..()) - return - if (locked) - if(!(issilicon(usr) || IsAdminGhost(usr))) - to_chat(usr, "Control panel is locked!") - return - if (href_list["toggleOn"]) - toggle_on() - else if (href_list["toggleLethal"]) - toggle_lethal() - src.attack_hand(usr) - -/obj/machinery/turretid/proc/toggle_lethal() - lethal = !lethal - updateTurrets() - -/obj/machinery/turretid/proc/toggle_on() - enabled = !enabled - updateTurrets() - -/obj/machinery/turretid/proc/updateTurrets() - for (var/obj/machinery/porta_turret/aTurret in turrets) - aTurret.setState(enabled, lethal) - update_icon() - -/obj/machinery/turretid/power_change() - ..() - update_icon() - -/obj/machinery/turretid/update_icon() - ..() - if(stat & NOPOWER) - icon_state = "control_off" - else if (enabled) - if (lethal) - icon_state = "control_kill" - else - icon_state = "control_stun" - else - icon_state = "control_standby" - -/obj/item/wallframe/turret_control - name = "turret control frame" - desc = "Used for building turret control panels" - icon_state = "apc" - result_path = /obj/machinery/turretid - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) - -/obj/item/weapon/gun/proc/get_turret_properties() - . = list() - .["lethal_projectile"] = null - .["lethal_projectile_sound"] = null - .["stun_projectile"] = null - .["stun_projectile_sound"] = null - .["base_icon_state"] = "standard" - -/obj/item/weapon/gun/energy/get_turret_properties() - . = ..() - - var/obj/item/ammo_casing/primary_ammo = ammo_type[1] - - .["stun_projectile"] = initial(primary_ammo.projectile_type) - .["stun_projectile_sound"] = initial(primary_ammo.fire_sound) - - if(ammo_type.len > 1) - var/obj/item/ammo_casing/secondary_ammo = ammo_type[2] - .["lethal_projectile"] = initial(secondary_ammo.projectile_type) - .["lethal_projectile_sound"] = initial(secondary_ammo.fire_sound) - else - .["lethal_projectile"] = .["stun_projectile"] - .["lethal_projectile_sound"] = .["stun_projectile_sound"] - -/obj/item/weapon/gun/ballistic/get_turret_properties() - . = ..() - var/obj/item/ammo_box/mag = mag_type - var/obj/item/ammo_casing/primary_ammo = initial(mag.ammo_type) - - .["base_icon_state"] = "syndie" - .["stun_projectile"] = initial(primary_ammo.projectile_type) - .["stun_projectile_sound"] = initial(primary_ammo.fire_sound) - .["lethal_projectile"] = .["stun_projectile"] - .["lethal_projectile_sound"] = .["stun_projectile_sound"] - - -/obj/item/weapon/gun/energy/laser/bluetag/get_turret_properties() - . = ..() - .["stun_projectile"] = /obj/item/projectile/beam/lasertag/bluetag - .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/bluetag - .["base_icon_state"] = "blue" - .["shot_delay"] = 30 - .["team_color"] = "blue" - -/obj/item/weapon/gun/energy/laser/redtag/get_turret_properties() - . = ..() - .["stun_projectile"] = /obj/item/projectile/beam/lasertag/redtag - .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/redtag - .["base_icon_state"] = "red" - .["shot_delay"] = 30 - .["team_color"] = "red" - -/obj/item/weapon/gun/energy/e_gun/turret/get_turret_properties() - . = ..() - -/obj/machinery/porta_turret/lasertag - req_access = list(GLOB.access_maint_tunnels, GLOB.access_theatre) - check_records = 0 - criminals = 0 - auth_weapons = 1 - stun_all = 0 - check_anomalies = 0 - var/team_color - -/obj/machinery/porta_turret/lasertag/assess_perp(mob/living/carbon/human/perp) - . = 0 - if(team_color == "blue") //Lasertag turrets target the opposing team, how great is that? -Sieve - . = 0 //But does not target anyone else - if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag)) - . += 4 - if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) - . += 4 - if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/redtag)) - . += 2 - - if(team_color == "red") - . = 0 - if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag)) - . += 4 - if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) - . += 4 - if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/bluetag)) - . += 2 - -/obj/machinery/porta_turret/lasertag/setup(obj/item/weapon/gun/gun) - var/list/properties = ..() - if(properties["team_color"]) - team_color = properties["team_color"] - -/obj/machinery/porta_turret/lasertag/interact(mob/user) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(team_color == "blue" && istype(H.wear_suit, /obj/item/clothing/suit/redtag)) - return - if(team_color == "red" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag)) - return - - var/dat = "Status: [on ? "On" : "Off"]" - - var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300) - popup.set_content(dat) - popup.open() - -//lasertag presets -/obj/machinery/porta_turret/lasertag/red - installation = /obj/item/weapon/gun/energy/laser/redtag - team_color = "red" - -/obj/machinery/porta_turret/lasertag/blue - installation = /obj/item/weapon/gun/energy/laser/bluetag - team_color = "blue" - -/obj/machinery/porta_turret/lasertag/bullet_act(obj/item/projectile/P) - . = ..() - if(on) - if(team_color == "blue") - if(istype(P, /obj/item/projectile/beam/lasertag/redtag)) - on = 0 - spawn(100) - on = 1 - else if(team_color == "red") - if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) - on = 0 - spawn(100) - on = 1 + has_cover = 0 + scan_range = 9 + stun_projectile = /obj/item/projectile/beam/laser + lethal_projectile = /obj/item/projectile/beam/laser + lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + icon_state = "syndie_off" + base_icon_state = "syndie" + faction = "turret" + emp_vunerable = 0 + mode = TURRET_LETHAL + +/obj/machinery/porta_turret/centcomm_shuttle/assess_perp(mob/living/carbon/human/perp) + return 0 + +/obj/machinery/porta_turret/centcomm_shuttle/setup() + return + +//////////////////////// +//Turret Control Panel// +//////////////////////// + +/obj/machinery/turretid + name = "turret control panel" + desc = "Used to control a room's automated defenses." + icon = 'icons/obj/machines/turret_control.dmi' + icon_state = "control_standby" + anchored = 1 + density = 0 + var/enabled = 1 + var/lethal = 0 + var/locked = 1 + var/control_area = null //can be area name, path or nothing. + var/ailock = 0 // AI cannot use this + req_access = list(GLOB.access_ai_upload) + var/list/obj/machinery/porta_turret/turrets = list() + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/machinery/turretid/New(loc, ndir = 0, built = 0) + ..() + if(built) + setDir(ndir) + locked = 0 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + power_change() //Checks power and initial settings + +/obj/machinery/turretid/Destroy() + turrets.Cut() + return ..() + +/obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets + ..() + if(!mapload) + return + if(control_area && istext(control_area)) + for(var/V in GLOB.sortedAreas) + var/area/A = V + if(A.name == control_area) + control_area = A + break + + if(!control_area) + control_area = get_area(src) + + for(var/obj/machinery/porta_turret/T in control_area) + turrets |= T + T.cp = src + +/obj/machinery/turretid/attackby(obj/item/I, mob/user, params) + if(stat & BROKEN) return + + if (istype(I,/obj/item/device/multitool)) + var/obj/item/device/multitool/M = I + if(M.buffer && istype(M.buffer,/obj/machinery/porta_turret)) + turrets |= M.buffer + to_chat(user, "You link \the [M.buffer] with \the [src]") + return + + if (issilicon(user)) + return attack_hand(user) + + if ( get_dist(src, user) == 0 ) // trying to unlock the interface + if (allowed(usr)) + if(emagged) + to_chat(user, "The turret control is unresponsive.") + return + + locked = !locked + to_chat(user, "You [ locked ? "lock" : "unlock"] the panel.") + if (locked) + if (user.machine==src) + user.unset_machine() + user << browse(null, "window=turretid") + else + if (user.machine==src) + src.attack_hand(user) + else + to_chat(user, "Access denied.") + +/obj/machinery/turretid/emag_act(mob/user) + if(!emagged) + to_chat(user, "You short out the turret controls' access analysis module.") + emagged = 1 + locked = 0 + if(user && user.machine == src) + attack_hand(user) + +/obj/machinery/turretid/attack_ai(mob/user) + if(!ailock || IsAdminGhost(user)) + return attack_hand(user) + else + to_chat(user, "There seems to be a firewall preventing you from accessing this device.") + +/obj/machinery/turretid/attack_hand(mob/user as mob) + if ( get_dist(src, user) > 0 ) + if ( !(issilicon(user) || IsAdminGhost(user)) ) + to_chat(user, "You are too far away.") + user.unset_machine() + user << browse(null, "window=turretid") + return + + user.set_machine(src) + var/area/area = get_area(src) + var/t = "" + + if(locked && !(issilicon(user) || IsAdminGhost(user))) + t += "
    Swipe ID card to unlock interface
    " + else + if(!issilicon(user) && !IsAdminGhost(user)) + t += "
    Swipe ID card to lock interface
    " + t += "Turrets [enabled?"activated":"deactivated"] - [enabled?"Disable":"Enable"]?
    " + t += "Currently set for [lethal?"lethal":"stun repeatedly"] - Change to [lethal?"Stun repeatedly":"Lethal"]?
    " + + var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])") + popup.set_content(t) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/turretid/Topic(href, href_list) + if(..()) + return + if (locked) + if(!(issilicon(usr) || IsAdminGhost(usr))) + to_chat(usr, "Control panel is locked!") + return + if (href_list["toggleOn"]) + toggle_on() + else if (href_list["toggleLethal"]) + toggle_lethal() + src.attack_hand(usr) + +/obj/machinery/turretid/proc/toggle_lethal() + lethal = !lethal + updateTurrets() + +/obj/machinery/turretid/proc/toggle_on() + enabled = !enabled + updateTurrets() + +/obj/machinery/turretid/proc/updateTurrets() + for (var/obj/machinery/porta_turret/aTurret in turrets) + aTurret.setState(enabled, lethal) + update_icon() + +/obj/machinery/turretid/power_change() + ..() + update_icon() + +/obj/machinery/turretid/update_icon() + ..() + if(stat & NOPOWER) + icon_state = "control_off" + else if (enabled) + if (lethal) + icon_state = "control_kill" + else + icon_state = "control_stun" + else + icon_state = "control_standby" + +/obj/item/wallframe/turret_control + name = "turret control frame" + desc = "Used for building turret control panels" + icon_state = "apc" + result_path = /obj/machinery/turretid + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + +/obj/item/weapon/gun/proc/get_turret_properties() + . = list() + .["lethal_projectile"] = null + .["lethal_projectile_sound"] = null + .["stun_projectile"] = null + .["stun_projectile_sound"] = null + .["base_icon_state"] = "standard" + +/obj/item/weapon/gun/energy/get_turret_properties() + . = ..() + + var/obj/item/ammo_casing/primary_ammo = ammo_type[1] + + .["stun_projectile"] = initial(primary_ammo.projectile_type) + .["stun_projectile_sound"] = initial(primary_ammo.fire_sound) + + if(ammo_type.len > 1) + var/obj/item/ammo_casing/secondary_ammo = ammo_type[2] + .["lethal_projectile"] = initial(secondary_ammo.projectile_type) + .["lethal_projectile_sound"] = initial(secondary_ammo.fire_sound) + else + .["lethal_projectile"] = .["stun_projectile"] + .["lethal_projectile_sound"] = .["stun_projectile_sound"] + +/obj/item/weapon/gun/ballistic/get_turret_properties() + . = ..() + var/obj/item/ammo_box/mag = mag_type + var/obj/item/ammo_casing/primary_ammo = initial(mag.ammo_type) + + .["base_icon_state"] = "syndie" + .["stun_projectile"] = initial(primary_ammo.projectile_type) + .["stun_projectile_sound"] = initial(primary_ammo.fire_sound) + .["lethal_projectile"] = .["stun_projectile"] + .["lethal_projectile_sound"] = .["stun_projectile_sound"] + + +/obj/item/weapon/gun/energy/laser/bluetag/get_turret_properties() + . = ..() + .["stun_projectile"] = /obj/item/projectile/beam/lasertag/bluetag + .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/bluetag + .["base_icon_state"] = "blue" + .["shot_delay"] = 30 + .["team_color"] = "blue" + +/obj/item/weapon/gun/energy/laser/redtag/get_turret_properties() + . = ..() + .["stun_projectile"] = /obj/item/projectile/beam/lasertag/redtag + .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/redtag + .["base_icon_state"] = "red" + .["shot_delay"] = 30 + .["team_color"] = "red" + +/obj/item/weapon/gun/energy/e_gun/turret/get_turret_properties() + . = ..() + +/obj/machinery/porta_turret/lasertag + req_access = list(GLOB.access_maint_tunnels, GLOB.access_theatre) + check_records = 0 + criminals = 0 + auth_weapons = 1 + stun_all = 0 + check_anomalies = 0 + var/team_color + +/obj/machinery/porta_turret/lasertag/assess_perp(mob/living/carbon/human/perp) + . = 0 + if(team_color == "blue") //Lasertag turrets target the opposing team, how great is that? -Sieve + . = 0 //But does not target anyone else + if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag)) + . += 4 + if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) + . += 4 + if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/redtag)) + . += 2 + + if(team_color == "red") + . = 0 + if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag)) + . += 4 + if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) + . += 4 + if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/bluetag)) + . += 2 + +/obj/machinery/porta_turret/lasertag/setup(obj/item/weapon/gun/gun) + var/list/properties = ..() + if(properties["team_color"]) + team_color = properties["team_color"] + +/obj/machinery/porta_turret/lasertag/interact(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(team_color == "blue" && istype(H.wear_suit, /obj/item/clothing/suit/redtag)) + return + if(team_color == "red" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag)) + return + + var/dat = "Status: [on ? "On" : "Off"]" + + var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300) + popup.set_content(dat) + popup.open() + +//lasertag presets +/obj/machinery/porta_turret/lasertag/red + installation = /obj/item/weapon/gun/energy/laser/redtag + team_color = "red" + +/obj/machinery/porta_turret/lasertag/blue + installation = /obj/item/weapon/gun/energy/laser/bluetag + team_color = "blue" + +/obj/machinery/porta_turret/lasertag/bullet_act(obj/item/projectile/P) + . = ..() + if(on) + if(team_color == "blue") + if(istype(P, /obj/item/projectile/beam/lasertag/redtag)) + on = 0 + spawn(100) + on = 1 + else if(team_color == "red") + if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) + on = 0 + spawn(100) + on = 1 diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index e344ba4dd3..65991fa65e 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -1,165 +1,165 @@ -/obj/machinery/recharger - name = "recharger" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "recharger0" - desc = "A charging dock for energy based weaponry." - anchored = 1 +/obj/machinery/recharger + name = "recharger" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "recharger0" + desc = "A charging dock for energy based weaponry." + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 250 - var/obj/item/charging = null - var/list/allowed_devices = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/ammo_box/magazine/recharge,/obj/item/device/modular_computer) - var/recharge_coeff = 1 - -/obj/machinery/recharger/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recharger(null) - B.apply_default_parts(src) - -/obj/item/weapon/circuitboard/machine/recharger - name = "Weapon Recharger (Machine Board)" - build_path = /obj/machinery/recharger - origin_tech = "powerstorage=4;engineering=3;materials=4" - req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) - -/obj/machinery/recharger/RefreshParts() - for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) - recharge_coeff = C.rating - -/obj/machinery/recharger/attackby(obj/item/weapon/G, mob/user, params) - if(istype(G, /obj/item/weapon/wrench)) - if(charging) - to_chat(user, "Remove the charging item first!") - return - anchored = !anchored - power_change() - to_chat(user, "You [anchored ? "attached" : "detached"] [src].") - playsound(loc, G.usesound, 75, 1) - return - - var/allowed = is_type_in_list(G, allowed_devices) - - if(allowed) - if(anchored) - if(charging || panel_open) - return 1 - - //Checks to make sure he's not in space doing it, and that the area got proper power. - var/area/a = get_area(src) - if(!isarea(a) || a.power_equip == 0) - to_chat(user, "[src] blinks red as you try to insert [G].") - return 1 - - if (istype(G, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = G - if(!E.can_charge) - to_chat(user, "Your gun has no external power connector.") - return 1 - - if(!user.drop_item()) - return 1 - G.loc = src - charging = G + idle_power_usage = 4 + active_power_usage = 250 + var/obj/item/charging = null + var/static/list/allowed_devices = typecacheof(list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/ammo_box/magazine/recharge,/obj/item/device/modular_computer)) + var/recharge_coeff = 1 + +/obj/machinery/recharger/Initialize() + . = ..() + var/obj/item/weapon/circuitboard/machine/recharger/B = new() + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/recharger + name = "Weapon Recharger (Machine Board)" + build_path = /obj/machinery/recharger + origin_tech = "powerstorage=4;engineering=3;materials=4" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) + +/obj/machinery/recharger/RefreshParts() + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + recharge_coeff = C.rating + +/obj/machinery/recharger/attackby(obj/item/weapon/G, mob/user, params) + if(istype(G, /obj/item/weapon/wrench)) + if(charging) + to_chat(user, "Remove the charging item first!") + return + anchored = !anchored + power_change() + to_chat(user, "You [anchored ? "attached" : "detached"] [src].") + playsound(loc, G.usesound, 75, 1) + return + + var/allowed = is_type_in_typecache(G, allowed_devices) + + if(allowed) + if(anchored) + if(charging || panel_open) + return 1 + + //Checks to make sure he's not in space doing it, and that the area got proper power. + var/area/a = get_area(src) + if(!isarea(a) || a.power_equip == 0) + to_chat(user, "[src] blinks red as you try to insert [G].") + return 1 + + if (istype(G, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = G + if(!E.can_charge) + to_chat(user, "Your gun has no external power connector.") + return 1 + + if(!user.drop_item()) + return 1 + G.loc = src + charging = G use_power = ACTIVE_POWER_USE - update_icon(scan = TRUE) - else - to_chat(user, "[src] isn't connected to anything!") - return 1 - - if(anchored && !charging) - if(default_deconstruction_screwdriver(user, "rechargeropen", "recharger0", G)) - return - - if(panel_open && istype(G, /obj/item/weapon/crowbar)) - default_deconstruction_crowbar(G) - return - - if(exchange_parts(user, G)) - return - return ..() - -/obj/machinery/recharger/attack_hand(mob/user) - if(issilicon(user)) - return - - add_fingerprint(user) - if(charging) - charging.update_icon() - charging.loc = loc - user.put_in_hands(charging) - charging = null + update_icon(scan = TRUE) + else + to_chat(user, "[src] isn't connected to anything!") + return 1 + + if(anchored && !charging) + if(default_deconstruction_screwdriver(user, "rechargeropen", "recharger0", G)) + return + + if(panel_open && istype(G, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(G) + return + + if(exchange_parts(user, G)) + return + return ..() + +/obj/machinery/recharger/attack_hand(mob/user) + if(issilicon(user)) + return + + add_fingerprint(user) + if(charging) + charging.update_icon() + charging.loc = loc + user.put_in_hands(charging) + charging = null use_power = IDLE_POWER_USE - update_icon() - -/obj/machinery/recharger/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/recharger/attack_tk(mob/user) - if(charging) - charging.update_icon() - charging.loc = loc - charging = null + update_icon() + +/obj/machinery/recharger/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/recharger/attack_tk(mob/user) + if(charging) + charging.update_icon() + charging.loc = loc + charging = null use_power = IDLE_POWER_USE - update_icon() - -/obj/machinery/recharger/process() - if(stat & (NOPOWER|BROKEN) || !anchored) - return - - var/using_power = 0 - if(charging) - var/obj/item/weapon/stock_parts/cell/C = charging.get_cell() - if(C) - if(C.charge < C.maxcharge) - C.give(C.chargerate * recharge_coeff) - use_power(250 * recharge_coeff) - using_power = 1 - update_icon(using_power) - if(istype(charging, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = charging - E.recharge_newshot() - return - if(istype(charging, /obj/item/ammo_box/magazine/recharge)) - var/obj/item/ammo_box/magazine/recharge/R = charging - if(R.stored_ammo.len < R.max_ammo) - R.stored_ammo += new R.ammo_type(R) - use_power(200 * recharge_coeff) - using_power = 1 - update_icon(using_power) - return - -/obj/machinery/recharger/power_change() - ..() - update_icon() - -/obj/machinery/recharger/emp_act(severity) - if(!(stat & (NOPOWER|BROKEN)) && anchored) - if(istype(charging, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = charging - if(E.cell) - E.cell.emp_act(severity) - - else if(istype(charging, /obj/item/weapon/melee/baton)) - var/obj/item/weapon/melee/baton/B = charging - if(B.cell) - B.cell.charge = 0 - ..() - - -/obj/machinery/recharger/update_icon(using_power = 0, scan) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. - if(stat & (NOPOWER|BROKEN) || !anchored) - icon_state = "rechargeroff" - return - if(scan) - icon_state = "rechargeroff" - return - if(panel_open) - icon_state = "rechargeropen" - return - if(charging) - if(using_power) - icon_state = "recharger1" - else - icon_state = "recharger2" - return - icon_state = "recharger0" + update_icon() + +/obj/machinery/recharger/process() + if(stat & (NOPOWER|BROKEN) || !anchored) + return + + var/using_power = 0 + if(charging) + var/obj/item/weapon/stock_parts/cell/C = charging.get_cell() + if(C) + if(C.charge < C.maxcharge) + C.give(C.chargerate * recharge_coeff) + use_power(250 * recharge_coeff) + using_power = 1 + update_icon(using_power) + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = charging + E.recharge_newshot() + return + if(istype(charging, /obj/item/ammo_box/magazine/recharge)) + var/obj/item/ammo_box/magazine/recharge/R = charging + if(R.stored_ammo.len < R.max_ammo) + R.stored_ammo += new R.ammo_type(R) + use_power(200 * recharge_coeff) + using_power = 1 + update_icon(using_power) + return + +/obj/machinery/recharger/power_change() + ..() + update_icon() + +/obj/machinery/recharger/emp_act(severity) + if(!(stat & (NOPOWER|BROKEN)) && anchored) + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = charging + if(E.cell) + E.cell.emp_act(severity) + + else if(istype(charging, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/B = charging + if(B.cell) + B.cell.charge = 0 + ..() + + +/obj/machinery/recharger/update_icon(using_power = 0, scan) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. + if(stat & (NOPOWER|BROKEN) || !anchored) + icon_state = "rechargeroff" + return + if(scan) + icon_state = "rechargeroff" + return + if(panel_open) + icon_state = "rechargeropen" + return + if(charging) + if(using_power) + icon_state = "recharger1" + else + icon_state = "recharger2" + return + icon_state = "recharger0" diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 8b234b2e8c..2c6073d899 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -1,139 +1,139 @@ -/obj/machinery/recharge_station - name = "cyborg recharging station" - icon = 'icons/obj/objects.dmi' - icon_state = "borgcharger0" - density = 0 - anchored = 1 +/obj/machinery/recharge_station + name = "cyborg recharging station" + icon = 'icons/obj/objects.dmi' + icon_state = "borgcharger0" + density = 0 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 1000 - req_access = list(GLOB.access_robotics) - var/recharge_speed - var/repairs - state_open = 1 - -/obj/machinery/recharge_station/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null) - B.apply_default_parts(src) - update_icon() - -/obj/item/weapon/circuitboard/machine/cyborgrecharger - name = "Cyborg Recharger (Machine Board)" - build_path = /obj/machinery/recharge_station - origin_tech = "powerstorage=3;engineering=3" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 2, - /obj/item/weapon/stock_parts/cell = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - def_components = list( - /obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high) - -/obj/machinery/recharge_station/RefreshParts() - recharge_speed = 0 - repairs = 0 - for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) - recharge_speed += C.rating * 100 - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - repairs += M.rating - 1 - for(var/obj/item/weapon/stock_parts/cell/C in component_parts) - recharge_speed *= C.maxcharge / 10000 - -/obj/machinery/recharge_station/process() - if(!is_operational()) - return - - if(occupant) - process_occupant() - return 1 - -/obj/machinery/recharge_station/relaymove(mob/user) - if(user.stat) - return - open_machine() - -/obj/machinery/recharge_station/emp_act(severity) - if(!(stat & (BROKEN|NOPOWER))) - if(occupant) - occupant.emp_act(severity) - open_machine() - ..() - -/obj/machinery/recharge_station/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/recharge_station/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/recharge_station/attackby(obj/item/P, mob/user, params) - if(state_open) - if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)) - return - - if(exchange_parts(user, P)) - return - - if(default_pry_open(P)) - return - - if(default_deconstruction_crowbar(P)) - return - return ..() - -/obj/machinery/recharge_station/attack_hand(mob/user) - if(..(user,1,set_machine = 0)) - return - - toggle_open() - add_fingerprint(user) - -/obj/machinery/recharge_station/proc/toggle_open() - if(state_open) - close_machine() - else - open_machine() - -/obj/machinery/recharge_station/open_machine() - ..() + idle_power_usage = 5 + active_power_usage = 1000 + req_access = list(GLOB.access_robotics) + var/recharge_speed + var/repairs + state_open = 1 + +/obj/machinery/recharge_station/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/cyborgrecharger + name = "Cyborg Recharger (Machine Board)" + build_path = /obj/machinery/recharge_station + origin_tech = "powerstorage=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/cell = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + def_components = list( + /obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high) + +/obj/machinery/recharge_station/RefreshParts() + recharge_speed = 0 + repairs = 0 + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + recharge_speed += C.rating * 100 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + repairs += M.rating - 1 + for(var/obj/item/weapon/stock_parts/cell/C in component_parts) + recharge_speed *= C.maxcharge / 10000 + +/obj/machinery/recharge_station/process() + if(!is_operational()) + return + + if(occupant) + process_occupant() + return 1 + +/obj/machinery/recharge_station/relaymove(mob/user) + if(user.stat) + return + open_machine() + +/obj/machinery/recharge_station/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + if(occupant) + occupant.emp_act(severity) + open_machine() + ..() + +/obj/machinery/recharge_station/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/recharge_station/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/recharge_station/attackby(obj/item/P, mob/user, params) + if(state_open) + if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)) + return + + if(exchange_parts(user, P)) + return + + if(default_pry_open(P)) + return + + if(default_deconstruction_crowbar(P)) + return + return ..() + +/obj/machinery/recharge_station/attack_hand(mob/user) + if(..(user,1,set_machine = 0)) + return + + toggle_open() + add_fingerprint(user) + +/obj/machinery/recharge_station/proc/toggle_open() + if(state_open) + close_machine() + else + open_machine() + +/obj/machinery/recharge_station/open_machine() + ..() use_power = IDLE_POWER_USE - -/obj/machinery/recharge_station/close_machine() - if(!panel_open) - for(var/mob/living/silicon/robot/R in loc) - R.forceMove(src) - occupant = R + +/obj/machinery/recharge_station/close_machine() + if(!panel_open) + for(var/mob/living/silicon/robot/R in loc) + R.forceMove(src) + occupant = R use_power = ACTIVE_POWER_USE - add_fingerprint(R) - break - state_open = 0 - density = 1 - update_icon() - -/obj/machinery/recharge_station/update_icon() - if(is_operational()) - if(state_open) - icon_state = "borgcharger0" - else - icon_state = (occupant ? "borgcharger1" : "borgcharger2") - else - icon_state = (state_open ? "borgcharger-u0" : "borgcharger-u1") - -/obj/machinery/recharge_station/power_change() - ..() - update_icon() - -/obj/machinery/recharge_station/proc/process_occupant() - if(occupant) - var/mob/living/silicon/robot/R = occupant - restock_modules() - if(repairs) - R.heal_bodypart_damage(repairs, repairs - 1) - if(R.cell) - R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge) - -/obj/machinery/recharge_station/proc/restock_modules() - if(occupant) - var/mob/living/silicon/robot/R = occupant - if(R && R.module) - var/coeff = recharge_speed * 0.005 - R.module.respawn_consumable(R, coeff) + add_fingerprint(R) + break + state_open = 0 + density = 1 + update_icon() + +/obj/machinery/recharge_station/update_icon() + if(is_operational()) + if(state_open) + icon_state = "borgcharger0" + else + icon_state = (occupant ? "borgcharger1" : "borgcharger2") + else + icon_state = (state_open ? "borgcharger-u0" : "borgcharger-u1") + +/obj/machinery/recharge_station/power_change() + ..() + update_icon() + +/obj/machinery/recharge_station/proc/process_occupant() + if(occupant) + var/mob/living/silicon/robot/R = occupant + restock_modules() + if(repairs) + R.heal_bodypart_damage(repairs, repairs - 1) + if(R.cell) + R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge) + +/obj/machinery/recharge_station/proc/restock_modules() + if(occupant) + var/mob/living/silicon/robot/R = occupant + if(R && R.module) + var/coeff = recharge_speed * 0.005 + R.module.respawn_consumable(R, coeff) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index fdeb6598e5..5a2cff2739 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -16,7 +16,7 @@ var/datum/material_container/materials var/crush_damage = 1000 var/eat_victim_items = TRUE - var/item_recycle_sound = 'sound/items/Welder.ogg' + var/item_recycle_sound = 'sound/items/welder.ogg' /obj/machinery/recycler/New() ..() @@ -167,7 +167,7 @@ L.loc = src.loc if(issilicon(L)) - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder.ogg', 50, 1) else playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) @@ -190,7 +190,7 @@ eat(I, sound=FALSE) // Instantly lie down, also go unconscious from the pain, before you die. - L.Paralyse(5) + L.Unconscious(100) // For admin fun, var edit emagged to 2. if(gib || emagged == 2) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 7506008e79..02cdbc88c4 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -1,531 +1,531 @@ -/******************** Requests Console ********************/ -/** Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes */ - -GLOBAL_LIST_EMPTY(req_console_assistance) -GLOBAL_LIST_EMPTY(req_console_supplies) -GLOBAL_LIST_EMPTY(req_console_information) -GLOBAL_LIST_EMPTY(allConsoles) - -/obj/machinery/requests_console - name = "requests console" - desc = "A console intended to send requests to different departments on the station." - anchored = 1 - icon = 'icons/obj/terminals.dmi' - icon_state = "req_comp0" - var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department - var/list/messages = list() //List of all messages - var/departmentType = 0 - // 0 = none (not listed, can only replied to) - // 1 = assistance - // 2 = supplies - // 3 = info - // 4 = ass + sup //Erro goddamn you just HAD to shorten "assistance" down to "ass" - // 5 = ass + info - // 6 = sup + info - // 7 = ass + sup + info - var/newmessagepriority = 0 - // 0 = no new message - // 1 = normal priority - // 2 = high priority - // 3 = extreme priority - not implemented, will probably require some hacking... everything needs to have a hidden feature in this game. - var/screen = 0 - // 0 = main menu, - // 1 = req. assistance, - // 2 = req. supplies - // 3 = relay information - // 4 = write msg - not used - // 5 = choose priority - not used - // 6 = sent successfully - // 7 = sent unsuccessfully - // 8 = view messages - // 9 = authentication before sending - // 10 = send announcement - var/silent = 0 // set to 1 for it not to beep all the time - var/hackState = 0 - // 0 = not hacked - // 1 = hacked - var/announcementConsole = 0 - // 0 = This console cannot be used to send department announcements - // 1 = This console can send department announcements - var/open = 0 // 1 if open - var/announceAuth = 0 //Will be set to 1 when you authenticate yourself for announcements - var/msgVerified = "" //Will contain the name of the person who verified it - var/msgStamped = "" //If a message is stamped, this will contain the stamp name - var/message = ""; - var/dpt = ""; //the department which will be receiving the message - var/priority = -1 ; //Priority of the message being sent - var/obj/item/device/radio/Radio - var/emergency //If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from - var/receive_ore_updates = FALSE //If ore redemption machines will send an update when it receives new ores. - obj_integrity = 300 - max_integrity = 300 - armor = list(melee = 70, bullet = 30, laser = 30, energy = 30, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) - -/obj/machinery/requests_console/power_change() - ..() - update_icon() - -/obj/machinery/requests_console/update_icon() - if(stat & NOPOWER) - set_light(0) - else - set_light(1.4,0.7,"#34D352")//green light - if(open) - if(!hackState) - icon_state="req_comp_open" - else - icon_state="req_comp_rewired" - else if(stat & NOPOWER) - if(icon_state != "req_comp_off") - icon_state = "req_comp_off" - else - if(emergency || (newmessagepriority == 3)) - icon_state = "req_comp3" - else if(newmessagepriority == 2) - icon_state = "req_comp2" - else if(newmessagepriority == 1) - icon_state = "req_comp1" - else - icon_state = "req_comp0" - -/obj/machinery/requests_console/Initialize() - ..() - name = "\improper [department] requests console" - GLOB.allConsoles += src - switch(departmentType) - if(1) - if(!("[department]" in GLOB.req_console_assistance)) - GLOB.req_console_assistance += department - if(2) - if(!("[department]" in GLOB.req_console_supplies)) - GLOB.req_console_supplies += department - if(3) - if(!("[department]" in GLOB.req_console_information)) - GLOB.req_console_information += department - if(4) - if(!("[department]" in GLOB.req_console_assistance)) - GLOB.req_console_assistance += department - if(!("[department]" in GLOB.req_console_supplies)) - GLOB.req_console_supplies += department - if(5) - if(!("[department]" in GLOB.req_console_assistance)) - GLOB.req_console_assistance += department - if(!("[department]" in GLOB.req_console_information)) - GLOB.req_console_information += department - if(6) - if(!("[department]" in GLOB.req_console_supplies)) - GLOB.req_console_supplies += department - if(!("[department]" in GLOB.req_console_information)) - GLOB.req_console_information += department - if(7) - if(!("[department]" in GLOB.req_console_assistance)) - GLOB.req_console_assistance += department - if(!("[department]" in GLOB.req_console_supplies)) - GLOB.req_console_supplies += department - if(!("[department]" in GLOB.req_console_information)) - GLOB.req_console_information += department - - Radio = new /obj/item/device/radio(src) - Radio.listening = 0 - -/obj/machinery/requests_console/Destroy() - QDEL_NULL(Radio) - GLOB.allConsoles -= src - return ..() - -/obj/machinery/requests_console/attack_hand(mob/user) - if(..()) - return - var/dat = "" - if(!open) - switch(screen) - if(1) //req. assistance - dat += "Which department do you need assistance from?

    " - dat += "" - for(var/dpt in GLOB.req_console_assistance) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " - - if(2) //req. supplies - dat += "Which department do you need supplies from?

    " - dat += "" - for(var/dpt in GLOB.req_console_supplies) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " - - if(3) //relay information - dat += "Which department would you like to send information to?

    " - dat += "" - for(var/dpt in GLOB.req_console_information) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " - - if(6) //sent successfully - dat += "Message sent.

    " - dat += "Continue
    " - - if(7) //unsuccessful; not sent - dat += "An error occurred.

    " - dat += "Continue
    " - - if(8) //view messages - for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) - if (Console.department == department) - Console.newmessagepriority = 0 - Console.update_icon() - - newmessagepriority = 0 - update_icon() - var/messageComposite = "" - for(var/msg in messages) // This puts more recent messages at the *top*, where they belong. - messageComposite = "
    [msg]
    " + messageComposite - dat += messageComposite - dat += "
    << Back to Main Menu
    " - - if(9) //authentication before sending - dat += "Message Authentication

    " - dat += "Message for [dpt]: [message]

    " - dat += "
    You may authenticate your message now by scanning your ID or your stamp

    " - dat += "Validated by: [msgVerified ? msgVerified : "Not Validated"]
    " - dat += "Stamped by: [msgStamped ? msgStamped : "Not Stamped"]

    " - dat += "Send Message
    " - dat += "
    << Discard Message
    " - - if(10) //send announcement - dat += "

    Station-wide Announcement

    " - if(announceAuth) - dat += "
    Authentication accepted

    " - else - dat += "
    Swipe your card to authenticate yourself

    " - dat += "Message: [message ? message : "No Message"]
    " - dat += "[message ? "Edit" : "Write"] Message

    " - if ((announceAuth || IsAdminGhost(user)) && message) - dat += "Announce Message
    " - else - dat += "Announce Message
    " - dat += "
    << Back
    " - - else //main menu - screen = 0 - announceAuth = 0 - if (newmessagepriority == 1) - dat += "
    There are new messages

    " - if (newmessagepriority == 2) - dat += "
    There are new PRIORITY messages

    " - if (newmessagepriority == 3) - dat += "
    There are new EXTREME PRIORITY messages

    " - dat += "View Messages

    " - - dat += "Request Assistance
    " - dat += "Request Supplies
    " - dat += "Relay Anonymous Information

    " - - if(!emergency) - dat += "Emergency: Security
    " - dat += "Emergency: Engineering
    " - dat += "Emergency: Medical

    " - else - dat += "[emergency] has been dispatched to this location.

    " - - if(announcementConsole) - dat += "Send Station-wide Announcement

    " - if (silent) - dat += "Speaker OFF" - else - dat += "Speaker ON" - var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - -/obj/machinery/requests_console/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - add_fingerprint(usr) - - if(reject_bad_text(href_list["write"])) - dpt = ckey(href_list["write"]) //write contains the string of the receiving department's name - - var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) - if(new_message) - message = new_message - screen = 9 - if (text2num(href_list["priority"]) < 2) - priority = -1 - else - priority = text2num(href_list["priority"]) - else - dpt = ""; - msgVerified = "" - msgStamped = "" - screen = 0 - priority = -1 - - if(href_list["writeAnnouncement"]) - var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) - if(new_message) - message = new_message - if (text2num(href_list["priority"]) < 2) - priority = -1 - else - priority = text2num(href_list["priority"]) - else - message = "" - announceAuth = 0 - screen = 0 - - if(href_list["sendAnnouncement"]) - if(!announcementConsole) - return - minor_announce(message, "[department] Announcement:") - GLOB.news_network.SubmitArticle(message, department, "Station Announcements", null) - log_say("[key_name(usr)] has made a station announcement: [message]") - message_admins("[key_name_admin(usr)] has made a station announcement.") - announceAuth = 0 - message = "" - screen = 0 - - if(href_list["emergency"]) - if(!emergency) - var/radio_freq - switch(text2num(href_list["emergency"])) - if(1) //Security - radio_freq = GLOB.SEC_FREQ - emergency = "Security" - if(2) //Engineering - radio_freq = GLOB.ENG_FREQ - emergency = "Engineering" - if(3) //Medical - radio_freq = GLOB.MED_FREQ - emergency = "Medical" - if(radio_freq) - Radio.set_frequency(radio_freq) - Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq,get_spans(),get_default_language()) - update_icon() - addtimer(CALLBACK(src, .proc/clear_emergency), 3000) - - if( href_list["department"] && message ) - var/log_msg = message - var/sending = message - sending += "
    " - if (msgVerified) - sending += msgVerified - sending += "
    " - if (msgStamped) - sending += msgStamped - sending += "
    " - screen = 7 //if it's successful, this will get overrwritten (7 = unsufccessfull, 6 = successfull) - if (sending) - var/pass = 0 - for (var/obj/machinery/message_server/MS in GLOB.machines) - if(!MS.active) continue - MS.send_rc_message(href_list["department"],department,log_msg,msgStamped,msgVerified,priority) - pass = 1 - - if(pass) - var/radio_freq = 0 - switch(href_list["department"]) - if("bridge") - radio_freq = GLOB.COMM_FREQ - if("medbay") - radio_freq = GLOB.MED_FREQ - if("science") - radio_freq = GLOB.SCI_FREQ - if("engineering") - radio_freq = GLOB.ENG_FREQ - if("security") - radio_freq = GLOB.SEC_FREQ - if("cargobay" || "mining") - radio_freq = GLOB.SUPP_FREQ - Radio.set_frequency(radio_freq) - var/authentic - if(msgVerified || msgStamped) - authentic = " (Authenticated)" - - var/alert = "" - for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) - if (ckey(Console.department) == ckey(href_list["department"])) - switch(priority) - if(2) //High priority - alert = "PRIORITY Alert in [department][authentic]" - Console.createmessage(src, alert, sending, 2, 1) - if(3) // Extreme Priority - alert = "EXTREME PRIORITY Alert from [department][authentic]" - Console.createmessage(src, alert , sending, 3, 1) - else // Normal priority - alert = "Message from [department][authentic]" - Console.createmessage(src, alert , sending, 1, 1) - screen = 6 - - if(radio_freq) - Radio.talk_into(src,"[alert]: [message]",radio_freq,get_spans(),get_default_language()) - - switch(priority) - if(2) - messages += "High Priority
    To: [dpt]
    [sending]" - else - messages += "To: [dpt]
    [sending]" - else - say("NOTICE: No server detected!") - - - //Handle screen switching - switch(text2num(href_list["setScreen"])) - if(null) //skip - if(1) //req. assistance - screen = 1 - if(2) //req. supplies - screen = 2 - if(3) //relay information - screen = 3 -// if(4) //write message -// screen = 4 - if(5) //choose priority - screen = 5 - if(6) //sent successfully - screen = 6 - if(7) //unsuccessfull; not sent - screen = 7 - if(8) //view messages - screen = 8 - if(9) //authentication - screen = 9 - if(10) //send announcement - if(!announcementConsole) - return - screen = 10 - else //main menu - dpt = "" - msgVerified = "" - msgStamped = "" - message = "" - priority = -1 - screen = 0 - - //Handle silencing the console - switch( href_list["setSilent"] ) - if(null) //skip - if("1") - silent = 1 - else - silent = 0 - - updateUsrDialog() - return - +/******************** Requests Console ********************/ +/** Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes */ + +GLOBAL_LIST_EMPTY(req_console_assistance) +GLOBAL_LIST_EMPTY(req_console_supplies) +GLOBAL_LIST_EMPTY(req_console_information) +GLOBAL_LIST_EMPTY(allConsoles) + +/obj/machinery/requests_console + name = "requests console" + desc = "A console intended to send requests to different departments on the station." + anchored = 1 + icon = 'icons/obj/terminals.dmi' + icon_state = "req_comp0" + var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department + var/list/messages = list() //List of all messages + var/departmentType = 0 + // 0 = none (not listed, can only replied to) + // 1 = assistance + // 2 = supplies + // 3 = info + // 4 = ass + sup //Erro goddamn you just HAD to shorten "assistance" down to "ass" + // 5 = ass + info + // 6 = sup + info + // 7 = ass + sup + info + var/newmessagepriority = 0 + // 0 = no new message + // 1 = normal priority + // 2 = high priority + // 3 = extreme priority - not implemented, will probably require some hacking... everything needs to have a hidden feature in this game. + var/screen = 0 + // 0 = main menu, + // 1 = req. assistance, + // 2 = req. supplies + // 3 = relay information + // 4 = write msg - not used + // 5 = choose priority - not used + // 6 = sent successfully + // 7 = sent unsuccessfully + // 8 = view messages + // 9 = authentication before sending + // 10 = send announcement + var/silent = 0 // set to 1 for it not to beep all the time + var/hackState = 0 + // 0 = not hacked + // 1 = hacked + var/announcementConsole = 0 + // 0 = This console cannot be used to send department announcements + // 1 = This console can send department announcements + var/open = 0 // 1 if open + var/announceAuth = 0 //Will be set to 1 when you authenticate yourself for announcements + var/msgVerified = "" //Will contain the name of the person who verified it + var/msgStamped = "" //If a message is stamped, this will contain the stamp name + var/message = ""; + var/dpt = ""; //the department which will be receiving the message + var/priority = -1 ; //Priority of the message being sent + var/obj/item/device/radio/Radio + var/emergency //If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from + var/receive_ore_updates = FALSE //If ore redemption machines will send an update when it receives new ores. + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 70, bullet = 30, laser = 30, energy = 30, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) + +/obj/machinery/requests_console/power_change() + ..() + update_icon() + +/obj/machinery/requests_console/update_icon() + if(stat & NOPOWER) + set_light(0) + else + set_light(1.4,0.7,"#34D352")//green light + if(open) + if(!hackState) + icon_state="req_comp_open" + else + icon_state="req_comp_rewired" + else if(stat & NOPOWER) + if(icon_state != "req_comp_off") + icon_state = "req_comp_off" + else + if(emergency || (newmessagepriority == 3)) + icon_state = "req_comp3" + else if(newmessagepriority == 2) + icon_state = "req_comp2" + else if(newmessagepriority == 1) + icon_state = "req_comp1" + else + icon_state = "req_comp0" + +/obj/machinery/requests_console/Initialize() + ..() + name = "\improper [department] requests console" + GLOB.allConsoles += src + switch(departmentType) + if(1) + if(!("[department]" in GLOB.req_console_assistance)) + GLOB.req_console_assistance += department + if(2) + if(!("[department]" in GLOB.req_console_supplies)) + GLOB.req_console_supplies += department + if(3) + if(!("[department]" in GLOB.req_console_information)) + GLOB.req_console_information += department + if(4) + if(!("[department]" in GLOB.req_console_assistance)) + GLOB.req_console_assistance += department + if(!("[department]" in GLOB.req_console_supplies)) + GLOB.req_console_supplies += department + if(5) + if(!("[department]" in GLOB.req_console_assistance)) + GLOB.req_console_assistance += department + if(!("[department]" in GLOB.req_console_information)) + GLOB.req_console_information += department + if(6) + if(!("[department]" in GLOB.req_console_supplies)) + GLOB.req_console_supplies += department + if(!("[department]" in GLOB.req_console_information)) + GLOB.req_console_information += department + if(7) + if(!("[department]" in GLOB.req_console_assistance)) + GLOB.req_console_assistance += department + if(!("[department]" in GLOB.req_console_supplies)) + GLOB.req_console_supplies += department + if(!("[department]" in GLOB.req_console_information)) + GLOB.req_console_information += department + + Radio = new /obj/item/device/radio(src) + Radio.listening = 0 + +/obj/machinery/requests_console/Destroy() + QDEL_NULL(Radio) + GLOB.allConsoles -= src + return ..() + +/obj/machinery/requests_console/attack_hand(mob/user) + if(..()) + return + var/dat = "" + if(!open) + switch(screen) + if(1) //req. assistance + dat += "Which department do you need assistance from?

    " + dat += "" + for(var/dpt in GLOB.req_console_assistance) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
    " + dat += "
    << Back
    " + + if(2) //req. supplies + dat += "Which department do you need supplies from?

    " + dat += "" + for(var/dpt in GLOB.req_console_supplies) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
    " + dat += "
    << Back
    " + + if(3) //relay information + dat += "Which department would you like to send information to?

    " + dat += "" + for(var/dpt in GLOB.req_console_information) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
    " + dat += "
    << Back
    " + + if(6) //sent successfully + dat += "Message sent.

    " + dat += "Continue
    " + + if(7) //unsuccessful; not sent + dat += "An error occurred.

    " + dat += "Continue
    " + + if(8) //view messages + for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) + if (Console.department == department) + Console.newmessagepriority = 0 + Console.update_icon() + + newmessagepriority = 0 + update_icon() + var/messageComposite = "" + for(var/msg in messages) // This puts more recent messages at the *top*, where they belong. + messageComposite = "
    [msg]
    " + messageComposite + dat += messageComposite + dat += "
    << Back to Main Menu
    " + + if(9) //authentication before sending + dat += "Message Authentication

    " + dat += "Message for [dpt]: [message]

    " + dat += "
    You may authenticate your message now by scanning your ID or your stamp

    " + dat += "Validated by: [msgVerified ? msgVerified : "Not Validated"]
    " + dat += "Stamped by: [msgStamped ? msgStamped : "Not Stamped"]

    " + dat += "Send Message
    " + dat += "
    << Discard Message
    " + + if(10) //send announcement + dat += "

    Station-wide Announcement

    " + if(announceAuth) + dat += "
    Authentication accepted

    " + else + dat += "
    Swipe your card to authenticate yourself

    " + dat += "Message: [message ? message : "No Message"]
    " + dat += "[message ? "Edit" : "Write"] Message

    " + if ((announceAuth || IsAdminGhost(user)) && message) + dat += "Announce Message
    " + else + dat += "Announce Message
    " + dat += "
    << Back
    " + + else //main menu + screen = 0 + announceAuth = 0 + if (newmessagepriority == 1) + dat += "
    There are new messages

    " + if (newmessagepriority == 2) + dat += "
    There are new PRIORITY messages

    " + if (newmessagepriority == 3) + dat += "
    There are new EXTREME PRIORITY messages

    " + dat += "View Messages

    " + + dat += "Request Assistance
    " + dat += "Request Supplies
    " + dat += "Relay Anonymous Information

    " + + if(!emergency) + dat += "Emergency: Security
    " + dat += "Emergency: Engineering
    " + dat += "Emergency: Medical

    " + else + dat += "[emergency] has been dispatched to this location.

    " + + if(announcementConsole) + dat += "Send Station-wide Announcement

    " + if (silent) + dat += "Speaker OFF" + else + dat += "Speaker ON" + var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/requests_console/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + add_fingerprint(usr) + + if(reject_bad_text(href_list["write"])) + dpt = ckey(href_list["write"]) //write contains the string of the receiving department's name + + var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) + if(new_message) + message = new_message + screen = 9 + if (text2num(href_list["priority"]) < 2) + priority = -1 + else + priority = text2num(href_list["priority"]) + else + dpt = ""; + msgVerified = "" + msgStamped = "" + screen = 0 + priority = -1 + + if(href_list["writeAnnouncement"]) + var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) + if(new_message) + message = new_message + if (text2num(href_list["priority"]) < 2) + priority = -1 + else + priority = text2num(href_list["priority"]) + else + message = "" + announceAuth = 0 + screen = 0 + + if(href_list["sendAnnouncement"]) + if(!announcementConsole) + return + minor_announce(message, "[department] Announcement:") + GLOB.news_network.SubmitArticle(message, department, "Station Announcements", null) + log_say("[key_name(usr)] has made a station announcement: [message]") + message_admins("[key_name_admin(usr)] has made a station announcement.") + announceAuth = 0 + message = "" + screen = 0 + + if(href_list["emergency"]) + if(!emergency) + var/radio_freq + switch(text2num(href_list["emergency"])) + if(1) //Security + radio_freq = GLOB.SEC_FREQ + emergency = "Security" + if(2) //Engineering + radio_freq = GLOB.ENG_FREQ + emergency = "Engineering" + if(3) //Medical + radio_freq = GLOB.MED_FREQ + emergency = "Medical" + if(radio_freq) + Radio.set_frequency(radio_freq) + Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq,get_spans(),get_default_language()) + update_icon() + addtimer(CALLBACK(src, .proc/clear_emergency), 3000) + + if( href_list["department"] && message ) + var/log_msg = message + var/sending = message + sending += "
    " + if (msgVerified) + sending += msgVerified + sending += "
    " + if (msgStamped) + sending += msgStamped + sending += "
    " + screen = 7 //if it's successful, this will get overrwritten (7 = unsufccessfull, 6 = successfull) + if (sending) + var/pass = 0 + for (var/obj/machinery/message_server/MS in GLOB.machines) + if(!MS.active) continue + MS.send_rc_message(href_list["department"],department,log_msg,msgStamped,msgVerified,priority) + pass = 1 + + if(pass) + var/radio_freq = 0 + switch(href_list["department"]) + if("bridge") + radio_freq = GLOB.COMM_FREQ + if("medbay") + radio_freq = GLOB.MED_FREQ + if("science") + radio_freq = GLOB.SCI_FREQ + if("engineering") + radio_freq = GLOB.ENG_FREQ + if("security") + radio_freq = GLOB.SEC_FREQ + if("cargobay" || "mining") + radio_freq = GLOB.SUPP_FREQ + Radio.set_frequency(radio_freq) + var/authentic + if(msgVerified || msgStamped) + authentic = " (Authenticated)" + + var/alert = "" + for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) + if (ckey(Console.department) == ckey(href_list["department"])) + switch(priority) + if(2) //High priority + alert = "PRIORITY Alert in [department][authentic]" + Console.createmessage(src, alert, sending, 2, 1) + if(3) // Extreme Priority + alert = "EXTREME PRIORITY Alert from [department][authentic]" + Console.createmessage(src, alert , sending, 3, 1) + else // Normal priority + alert = "Message from [department][authentic]" + Console.createmessage(src, alert , sending, 1, 1) + screen = 6 + + if(radio_freq) + Radio.talk_into(src,"[alert]: [message]",radio_freq,get_spans(),get_default_language()) + + switch(priority) + if(2) + messages += "High Priority
    To: [dpt]
    [sending]" + else + messages += "To: [dpt]
    [sending]" + else + say("NOTICE: No server detected!") + + + //Handle screen switching + switch(text2num(href_list["setScreen"])) + if(null) //skip + if(1) //req. assistance + screen = 1 + if(2) //req. supplies + screen = 2 + if(3) //relay information + screen = 3 +// if(4) //write message +// screen = 4 + if(5) //choose priority + screen = 5 + if(6) //sent successfully + screen = 6 + if(7) //unsuccessfull; not sent + screen = 7 + if(8) //view messages + screen = 8 + if(9) //authentication + screen = 9 + if(10) //send announcement + if(!announcementConsole) + return + screen = 10 + else //main menu + dpt = "" + msgVerified = "" + msgStamped = "" + message = "" + priority = -1 + screen = 0 + + //Handle silencing the console + switch( href_list["setSilent"] ) + if(null) //skip + if("1") + silent = 1 + else + silent = 0 + + updateUsrDialog() + return + /obj/machinery/requests_console/say_mod(input, message_mode) - var/ending = copytext(input, length(input) - 2) - if (ending == "!!!") + var/ending = copytext(input, length(input) - 2) + if (ending == "!!!") . = "blares" else . = ..() - -/obj/machinery/requests_console/proc/clear_emergency() - emergency = null - update_icon() - -/obj/machinery/requests_console/proc/createmessage(source, title, message, priority) - var/linkedsender - if(istype(source, /obj/machinery/requests_console)) - var/obj/machinery/requests_console/sender = source - linkedsender = "[sender.department]" - else - capitalize(source) - linkedsender = source - capitalize(title) - switch(priority) - if(2) //High priority - if(src.newmessagepriority < 2) - src.newmessagepriority = 2 - src.update_icon() - if(!src.silent) - playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) - say(title) - src.messages += "High Priority
    From: [linkedsender]
    [message]" - - if(3) // Extreme Priority - if(src.newmessagepriority < 3) - src.newmessagepriority = 3 - src.update_icon() - if(1) - playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) - say(title) - src.messages += "!!!Extreme Priority!!!
    From: [linkedsender]
    [message]" - - else // Normal priority - if(src.newmessagepriority < 1) - src.newmessagepriority = 1 - src.update_icon() - if(!src.silent) - playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) - say(title) - src.messages += "From: [linkedsender]
    [message]" - -/obj/machinery/requests_console/attackby(obj/item/weapon/O, mob/user, params) - if(istype(O, /obj/item/weapon/crowbar)) - if(open) - to_chat(user, "You close the maintenance panel.") - open = 0 - else - to_chat(user, "You open the maintenance panel.") - open = 1 - update_icon() - return - if(istype(O, /obj/item/weapon/screwdriver)) - if(open) - hackState = !hackState - if(hackState) - to_chat(user, "You modify the wiring.") - else - to_chat(user, "You reset the wiring.") - update_icon() - else - to_chat(user, "You must open the maintenance panel first!") - return - - var/obj/item/weapon/card/id/ID = O.GetID() - if(ID) - if(screen == 9) - msgVerified = "Verified by [ID.registered_name] ([ID.assignment])" - updateUsrDialog() - if(screen == 10) - if (GLOB.access_RC_announce in ID.access) - announceAuth = 1 - else - announceAuth = 0 - to_chat(user, "You are not authorized to send announcements!") - updateUsrDialog() - return - if (istype(O, /obj/item/weapon/stamp)) - if(screen == 9) - var/obj/item/weapon/stamp/T = O - msgStamped = "Stamped with the [T.name]" - updateUsrDialog() - return - return ..() + +/obj/machinery/requests_console/proc/clear_emergency() + emergency = null + update_icon() + +/obj/machinery/requests_console/proc/createmessage(source, title, message, priority) + var/linkedsender + if(istype(source, /obj/machinery/requests_console)) + var/obj/machinery/requests_console/sender = source + linkedsender = "[sender.department]" + else + capitalize(source) + linkedsender = source + capitalize(title) + switch(priority) + if(2) //High priority + if(src.newmessagepriority < 2) + src.newmessagepriority = 2 + src.update_icon() + if(!src.silent) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "High Priority
    From: [linkedsender]
    [message]" + + if(3) // Extreme Priority + if(src.newmessagepriority < 3) + src.newmessagepriority = 3 + src.update_icon() + if(1) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "!!!Extreme Priority!!!
    From: [linkedsender]
    [message]" + + else // Normal priority + if(src.newmessagepriority < 1) + src.newmessagepriority = 1 + src.update_icon() + if(!src.silent) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "From: [linkedsender]
    [message]" + +/obj/machinery/requests_console/attackby(obj/item/weapon/O, mob/user, params) + if(istype(O, /obj/item/weapon/crowbar)) + if(open) + to_chat(user, "You close the maintenance panel.") + open = 0 + else + to_chat(user, "You open the maintenance panel.") + open = 1 + update_icon() + return + if(istype(O, /obj/item/weapon/screwdriver)) + if(open) + hackState = !hackState + if(hackState) + to_chat(user, "You modify the wiring.") + else + to_chat(user, "You reset the wiring.") + update_icon() + else + to_chat(user, "You must open the maintenance panel first!") + return + + var/obj/item/weapon/card/id/ID = O.GetID() + if(ID) + if(screen == 9) + msgVerified = "Verified by [ID.registered_name] ([ID.assignment])" + updateUsrDialog() + if(screen == 10) + if (GLOB.access_RC_announce in ID.access) + announceAuth = 1 + else + announceAuth = 0 + to_chat(user, "You are not authorized to send announcements!") + updateUsrDialog() + return + if (istype(O, /obj/item/weapon/stamp)) + if(screen == 9) + var/obj/item/weapon/stamp/T = O + msgStamped = "Stamped with the [T.name]" + updateUsrDialog() + return + return ..() diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index 11544d1741..1efcf0bc67 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -1,149 +1,149 @@ -/obj/machinery/robotic_fabricator - name = "robotic fabricator" - icon = 'icons/obj/robotics.dmi' - icon_state = "fab-idle" - density = 1 - anchored = 1 - var/metal_amount = 0 - var/operating = 0 - var/obj/item/being_built = null +/obj/machinery/robotic_fabricator + name = "robotic fabricator" + icon = 'icons/obj/robotics.dmi' + icon_state = "fab-idle" + density = 1 + anchored = 1 + var/metal_amount = 0 + var/operating = 0 + var/obj/item/being_built = null use_power = IDLE_POWER_USE - idle_power_usage = 20 - active_power_usage = 5000 - -/obj/machinery/robotic_fabricator/attackby(obj/item/O, mob/user, params) - if (istype(O, /obj/item/stack/sheet/metal)) - if (src.metal_amount < 150000) - var/count = 0 - src.add_overlay("fab-load-metal") - spawn(15) - if(O) - if(!O:amount) - return - while(metal_amount < 150000 && O:amount) - src.metal_amount += O:materials[MAT_METAL] /*O:height * O:width * O:length * 100000*/ - O:amount-- - count++ - - if (O:amount < 1) - qdel(O) - - to_chat(user, "You insert [count] metal sheet\s into \the [src].") - cut_overlay("fab-load-metal") - updateDialog() - else - to_chat(user, "\The [src] is full.") - else - return ..() - -/obj/machinery/robotic_fabricator/power_change() - if (powered()) - stat &= ~NOPOWER - else - stat |= NOPOWER - -/obj/machinery/robotic_fabricator/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/robotic_fabricator/attack_hand(mob/user) - var/dat - if (..()) - return - - if (src.operating) - dat = {" -Building [src.being_built.name].
    -Please wait until completion...

    -
    -"} - else - dat = {" -Metal Amount: [min(150000, src.metal_amount)] cm3 (MAX: 150,000)

    -
    -Left Arm (25,000 cc metal.)
    -
    Right Arm (25,000 cc metal.)
    -
    Left Leg (25,000 cc metal.)
    -
    Right Leg (25,000 cc metal).
    -
    Chest (50,000 cc metal).
    -
    Head (50,000 cc metal).
    -
    Robot Frame (75,000 cc metal).
    -"} - - user << browse("Robotic Fabricator Control Panel[dat]", "window=robot_fabricator") - onclose(user, "robot_fabricator") - return - -/obj/machinery/robotic_fabricator/Topic(href, href_list) - if (..()) - return - - usr.set_machine(src) - src.add_fingerprint(usr) - - if (href_list["make"]) - if (!src.operating) - var/part_type = text2num(href_list["make"]) - - var/build_type = "" - var/build_time = 200 - var/build_cost = 25000 - - switch (part_type) - if (1) - build_type = "/obj/item/bodypart/l_arm/robot" - build_time = 200 - build_cost = 10000 - - if (2) - build_type = "/obj/item/bodypart/r_arm/robot" - build_time = 200 - build_cost = 10000 - - if (3) - build_type = "/obj/item/bodypart/l_leg/robot" - build_time = 200 - build_cost = 10000 - - if (4) - build_type = "/obj/item/bodypart/r_leg/robot" - build_time = 200 - build_cost = 10000 - - if (5) - build_type = "/obj/item/bodypart/chest/robot" - build_time = 350 - build_cost = 40000 - - if (6) - build_type = "/obj/item/bodypart/head/robot" - build_time = 350 - build_cost = 5000 - - if (7) - build_type = "/obj/item/robot_suit" - build_time = 600 - build_cost = 15000 - - var/building = text2path(build_type) - if (!isnull(building)) - if (src.metal_amount >= build_cost) - src.operating = 1 + idle_power_usage = 20 + active_power_usage = 5000 + +/obj/machinery/robotic_fabricator/attackby(obj/item/O, mob/user, params) + if (istype(O, /obj/item/stack/sheet/metal)) + if (src.metal_amount < 150000) + var/count = 0 + src.add_overlay("fab-load-metal") + spawn(15) + if(O) + if(!O:amount) + return + while(metal_amount < 150000 && O:amount) + src.metal_amount += O:materials[MAT_METAL] /*O:height * O:width * O:length * 100000*/ + O:amount-- + count++ + + if (O:amount < 1) + qdel(O) + + to_chat(user, "You insert [count] metal sheet\s into \the [src].") + cut_overlay("fab-load-metal") + updateDialog() + else + to_chat(user, "\The [src] is full.") + else + return ..() + +/obj/machinery/robotic_fabricator/power_change() + if (powered()) + stat &= ~NOPOWER + else + stat |= NOPOWER + +/obj/machinery/robotic_fabricator/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/robotic_fabricator/attack_hand(mob/user) + var/dat + if (..()) + return + + if (src.operating) + dat = {" +Building [src.being_built.name].
    +Please wait until completion...

    +
    +"} + else + dat = {" +Metal Amount: [min(150000, src.metal_amount)] cm3 (MAX: 150,000)

    +
    +
    Left Arm (25,000 cc metal.)
    +
    Right Arm (25,000 cc metal.)
    +
    Left Leg (25,000 cc metal.)
    +
    Right Leg (25,000 cc metal).
    +
    Chest (50,000 cc metal).
    +
    Head (50,000 cc metal).
    +
    Robot Frame (75,000 cc metal).
    +"} + + user << browse("Robotic Fabricator Control Panel[dat]", "window=robot_fabricator") + onclose(user, "robot_fabricator") + return + +/obj/machinery/robotic_fabricator/Topic(href, href_list) + if (..()) + return + + usr.set_machine(src) + src.add_fingerprint(usr) + + if (href_list["make"]) + if (!src.operating) + var/part_type = text2num(href_list["make"]) + + var/build_type = "" + var/build_time = 200 + var/build_cost = 25000 + + switch (part_type) + if (1) + build_type = "/obj/item/bodypart/l_arm/robot" + build_time = 200 + build_cost = 10000 + + if (2) + build_type = "/obj/item/bodypart/r_arm/robot" + build_time = 200 + build_cost = 10000 + + if (3) + build_type = "/obj/item/bodypart/l_leg/robot" + build_time = 200 + build_cost = 10000 + + if (4) + build_type = "/obj/item/bodypart/r_leg/robot" + build_time = 200 + build_cost = 10000 + + if (5) + build_type = "/obj/item/bodypart/chest/robot" + build_time = 350 + build_cost = 40000 + + if (6) + build_type = "/obj/item/bodypart/head/robot" + build_time = 350 + build_cost = 5000 + + if (7) + build_type = "/obj/item/robot_suit" + build_time = 600 + build_cost = 15000 + + var/building = text2path(build_type) + if (!isnull(building)) + if (src.metal_amount >= build_cost) + src.operating = 1 src.use_power = ACTIVE_POWER_USE - - src.metal_amount = max(0, src.metal_amount - build_cost) - - src.being_built = new building(src) - - src.add_overlay("fab-active") - src.updateUsrDialog() - - spawn (build_time) - if (!isnull(src.being_built)) - src.being_built.loc = get_turf(src) - src.being_built = null + + src.metal_amount = max(0, src.metal_amount - build_cost) + + src.being_built = new building(src) + + src.add_overlay("fab-active") + src.updateUsrDialog() + + spawn (build_time) + if (!isnull(src.being_built)) + src.being_built.loc = get_turf(src) + src.being_built = null src.use_power = IDLE_POWER_USE - src.operating = 0 - cut_overlay("fab-active") - return - - updateUsrDialog() + src.operating = 0 + cut_overlay("fab-active") + return + + updateUsrDialog() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 0683a6b3b5..25ea81c21e 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -42,9 +42,9 @@ /obj/structure/emergency_shield/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BURN) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) if(BRUTE) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) /obj/structure/emergency_shield/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() @@ -429,9 +429,9 @@ /obj/machinery/shieldwall/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BURN) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) if(BRUTE) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) //the shield wall is immune to damage but it drains the stored power of the generators. /obj/machinery/shieldwall/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index e7683c0841..d55f923636 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -1,218 +1,218 @@ -#define CHARS_PER_LINE 5 -#define FONT_SIZE "5pt" -#define FONT_COLOR "#09f" -#define FONT_STYLE "Arial Black" -#define SCROLL_SPEED 2 - -// Status display -// (formerly Countdown timer display) - -// Use to show shuttle ETA/ETD times -// Alert status -// And arbitrary messages set by comms computer - -/obj/machinery/status_display - icon = 'icons/obj/status_display.dmi' - icon_state = "frame" - name = "status display" - anchored = 1 - density = 0 +#define CHARS_PER_LINE 5 +#define FONT_SIZE "5pt" +#define FONT_COLOR "#09f" +#define FONT_STYLE "Arial Black" +#define SCROLL_SPEED 2 + +// Status display +// (formerly Countdown timer display) + +// Use to show shuttle ETA/ETD times +// Alert status +// And arbitrary messages set by comms computer + +/obj/machinery/status_display + icon = 'icons/obj/status_display.dmi' + icon_state = "frame" + name = "status display" + anchored = 1 + density = 0 use_power = IDLE_POWER_USE - idle_power_usage = 10 - var/mode = 1 // 0 = Blank - // 1 = Emergency Shuttle timer - // 2 = Arbitrary message(s) - // 3 = alert picture - // 4 = Supply shuttle timer - // 5 = Generic shuttle timer - - var/picture_state // icon_state of alert picture - var/message1 = "" // message line 1 - var/message2 = "" // message line 2 - var/index1 // display index for scrolling messages or 0 if non-scrolling - var/index2 - - var/frequency = 1435 // radio frequency - var/supply_display = 0 // true if a supply shuttle display - var/shuttle_id // Id used for "generic shuttle timer" mode - - var/friendc = 0 // track if Friend Computer mode - - maptext_height = 26 - maptext_width = 32 - - // new display - // register for radio system - -/obj/machinery/status_display/Initialize() + idle_power_usage = 10 + var/mode = 1 // 0 = Blank + // 1 = Emergency Shuttle timer + // 2 = Arbitrary message(s) + // 3 = alert picture + // 4 = Supply shuttle timer + // 5 = Generic shuttle timer + + var/picture_state // icon_state of alert picture + var/message1 = "" // message line 1 + var/message2 = "" // message line 2 + var/index1 // display index for scrolling messages or 0 if non-scrolling + var/index2 + + var/frequency = 1435 // radio frequency + var/supply_display = 0 // true if a supply shuttle display + var/shuttle_id // Id used for "generic shuttle timer" mode + + var/friendc = 0 // track if Friend Computer mode + + maptext_height = 26 + maptext_width = 32 + + // new display + // register for radio system + +/obj/machinery/status_display/Initialize() . = ..() GLOB.ai_status_displays.Add(src) - SSradio.add_object(src, frequency) - -/obj/machinery/status_display/Destroy() - if(SSradio) - SSradio.remove_object(src,frequency) + SSradio.add_object(src, frequency) + +/obj/machinery/status_display/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) GLOB.ai_status_displays.Remove(src) - return ..() - -// timed process - -/obj/machinery/status_display/process() - if(stat & NOPOWER) - remove_display() - return - update() - -/obj/machinery/status_display/emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - ..(severity) - return - set_picture("ai_bsod") - ..(severity) - -// set what is displayed - -/obj/machinery/status_display/proc/update() - if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist - set_picture("ai_friend") - return - - switch(mode) - if(0) //blank - remove_display() - if(1) //emergency shuttle timer - display_shuttle_status() - if(2) //custom messages - var/line1 - var/line2 - - if(!index1) - line1 = message1 - else - line1 = copytext(message1+"|"+message1, index1, index1+CHARS_PER_LINE) - var/message1_len = length(message1) - index1 += SCROLL_SPEED - if(index1 > message1_len) - index1 -= message1_len - - if(!index2) - line2 = message2 - else - line2 = copytext(message2+"|"+message2, index2, index2+CHARS_PER_LINE) - var/message2_len = length(message2) - index2 += SCROLL_SPEED - if(index2 > message2_len) - index2 -= message2_len - update_display(line1, line2) - if(4) // supply shuttle timer - var/line1 - var/line2 - if(SSshuttle.supply.mode == SHUTTLE_IDLE) - if(SSshuttle.supply.z == ZLEVEL_STATION) - line1 = "CARGO" - line2 = "Docked" - else - line1 = "CARGO" - line2 = SSshuttle.supply.getTimerStr() - if(lentext(line2) > CHARS_PER_LINE) - line2 = "Error" - - update_display(line1, line2) - if(5) - display_shuttle_status() - -/obj/machinery/status_display/examine(mob/user) - . = ..() - switch(mode) - if(1,2,4,5) - to_chat(user, "The display says:
    \t[message1]
    \t[message2]") - if(mode == 1 && SSshuttle.emergency) - to_chat(user, "Current Shuttle: [SSshuttle.emergency.name]") - - -/obj/machinery/status_display/proc/set_message(m1, m2) - if(m1) - index1 = (length(m1) > CHARS_PER_LINE) - message1 = m1 - else - message1 = "" - index1 = 0 - - if(m2) - index2 = (length(m2) > CHARS_PER_LINE) - message2 = m2 - else - message2 = "" - index2 = 0 - -/obj/machinery/status_display/proc/set_picture(state) - picture_state = state - remove_display() + return ..() + +// timed process + +/obj/machinery/status_display/process() + if(stat & NOPOWER) + remove_display() + return + update() + +/obj/machinery/status_display/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + set_picture("ai_bsod") + ..(severity) + +// set what is displayed + +/obj/machinery/status_display/proc/update() + if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist + set_picture("ai_friend") + return + + switch(mode) + if(0) //blank + remove_display() + if(1) //emergency shuttle timer + display_shuttle_status() + if(2) //custom messages + var/line1 + var/line2 + + if(!index1) + line1 = message1 + else + line1 = copytext(message1+"|"+message1, index1, index1+CHARS_PER_LINE) + var/message1_len = length(message1) + index1 += SCROLL_SPEED + if(index1 > message1_len) + index1 -= message1_len + + if(!index2) + line2 = message2 + else + line2 = copytext(message2+"|"+message2, index2, index2+CHARS_PER_LINE) + var/message2_len = length(message2) + index2 += SCROLL_SPEED + if(index2 > message2_len) + index2 -= message2_len + update_display(line1, line2) + if(4) // supply shuttle timer + var/line1 + var/line2 + if(SSshuttle.supply.mode == SHUTTLE_IDLE) + if(SSshuttle.supply.z == ZLEVEL_STATION) + line1 = "CARGO" + line2 = "Docked" + else + line1 = "CARGO" + line2 = SSshuttle.supply.getTimerStr() + if(lentext(line2) > CHARS_PER_LINE) + line2 = "Error" + + update_display(line1, line2) + if(5) + display_shuttle_status() + +/obj/machinery/status_display/examine(mob/user) + . = ..() + switch(mode) + if(1,2,4,5) + to_chat(user, "The display says:
    \t[message1]
    \t[message2]") + if(mode == 1 && SSshuttle.emergency) + to_chat(user, "Current Shuttle: [SSshuttle.emergency.name]") + + +/obj/machinery/status_display/proc/set_message(m1, m2) + if(m1) + index1 = (length(m1) > CHARS_PER_LINE) + message1 = m1 + else + message1 = "" + index1 = 0 + + if(m2) + index2 = (length(m2) > CHARS_PER_LINE) + message2 = m2 + else + message2 = "" + index2 = 0 + +/obj/machinery/status_display/proc/set_picture(state) + picture_state = state + remove_display() add_overlay(picture_state) - -/obj/machinery/status_display/proc/update_display(line1, line2) - var/new_text = {"
    [line1]
    [line2]
    "} - if(maptext != new_text) - maptext = new_text - -/obj/machinery/status_display/proc/remove_display() - cut_overlays() - if(maptext) - maptext = "" - -/obj/machinery/status_display/proc/display_shuttle_status() - var/obj/docking_port/mobile/shuttle - - if(mode == 1) - shuttle = SSshuttle.emergency - else - shuttle = SSshuttle.getShuttle(shuttle_id) - - if(!shuttle) - update_display("shutl?","") - else if(shuttle.timer) - var/line1 = "-[shuttle.getModeStr()]-" - var/line2 = shuttle.getTimerStr() - - if(length(line2) > CHARS_PER_LINE) - line2 = "Error!" - update_display(line1, line2) - else - remove_display() - - -/obj/machinery/status_display/receive_signal(datum/signal/signal) - if(supply_display) - mode = 4 - return - switch(signal.data["command"]) - if("blank") - mode = 0 - if("shuttle") - mode = 1 - if("message") - mode = 2 - set_message(signal.data["msg1"], signal.data["msg2"]) - if("alert") - mode = 3 - set_picture(signal.data["picture_state"]) - -/obj/machinery/ai_status_display - icon = 'icons/obj/status_display.dmi' - desc = "A small screen which the AI can use to present itself." - icon_state = "frame" - name = "\improper AI display" - anchored = 1 - density = 0 - - var/mode = 0 // 0 = Blank - // 1 = AI emoticon - // 2 = Blue screen of death - - var/picture_state // icon_state of ai picture - - var/emotion = "Neutral" - + +/obj/machinery/status_display/proc/update_display(line1, line2) + var/new_text = {"
    [line1]
    [line2]
    "} + if(maptext != new_text) + maptext = new_text + +/obj/machinery/status_display/proc/remove_display() + cut_overlays() + if(maptext) + maptext = "" + +/obj/machinery/status_display/proc/display_shuttle_status() + var/obj/docking_port/mobile/shuttle + + if(mode == 1) + shuttle = SSshuttle.emergency + else + shuttle = SSshuttle.getShuttle(shuttle_id) + + if(!shuttle) + update_display("shutl?","") + else if(shuttle.timer) + var/line1 = "-[shuttle.getModeStr()]-" + var/line2 = shuttle.getTimerStr() + + if(length(line2) > CHARS_PER_LINE) + line2 = "Error!" + update_display(line1, line2) + else + remove_display() + + +/obj/machinery/status_display/receive_signal(datum/signal/signal) + if(supply_display) + mode = 4 + return + switch(signal.data["command"]) + if("blank") + mode = 0 + if("shuttle") + mode = 1 + if("message") + mode = 2 + set_message(signal.data["msg1"], signal.data["msg2"]) + if("alert") + mode = 3 + set_picture(signal.data["picture_state"]) + +/obj/machinery/ai_status_display + icon = 'icons/obj/status_display.dmi' + desc = "A small screen which the AI can use to present itself." + icon_state = "frame" + name = "\improper AI display" + anchored = 1 + density = 0 + + var/mode = 0 // 0 = Blank + // 1 = AI emoticon + // 2 = Blue screen of death + + var/picture_state // icon_state of ai picture + + var/emotion = "Neutral" + /obj/machinery/ai_status_display/Initialize() . = ..() GLOB.ai_status_displays.Add(src) @@ -221,77 +221,77 @@ GLOB.ai_status_displays.Remove(src) . = ..() -/obj/machinery/ai_status_display/attack_ai(mob/living/silicon/ai/user) - if(isAI(user)) - user.ai_statuschange() - -/obj/machinery/ai_status_display/process() - if(stat & NOPOWER) - cut_overlays() - return - - update() - -/obj/machinery/ai_status_display/emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - ..(severity) - return - set_picture("ai_bsod") - ..(severity) - -/obj/machinery/ai_status_display/proc/update() - - if(mode==0) //Blank - cut_overlays() - return - - if(mode==1) // AI emoticon - switch(emotion) - if("Very Happy") - set_picture("ai_veryhappy") - if("Happy") - set_picture("ai_happy") - if("Neutral") - set_picture("ai_neutral") - if("Unsure") - set_picture("ai_unsure") - if("Confused") - set_picture("ai_confused") - if("Sad") - set_picture("ai_sad") - if("BSOD") - set_picture("ai_bsod") - if("Blank") - set_picture("ai_off") - if("Problems?") - set_picture("ai_trollface") - if("Awesome") - set_picture("ai_awesome") - if("Dorfy") - set_picture("ai_urist") - if("Facepalm") - set_picture("ai_facepalm") - if("Friend Computer") - set_picture("ai_friend") - if("Blue Glow") - set_picture("ai_sal") - if("Red Glow") - set_picture("ai_hal") - - return - - if(mode==2) // BSOD - set_picture("ai_bsod") - return - - -/obj/machinery/ai_status_display/proc/set_picture(state) - picture_state = state - cut_overlays() +/obj/machinery/ai_status_display/attack_ai(mob/living/silicon/ai/user) + if(isAI(user)) + user.ai_statuschange() + +/obj/machinery/ai_status_display/process() + if(stat & NOPOWER) + cut_overlays() + return + + update() + +/obj/machinery/ai_status_display/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + set_picture("ai_bsod") + ..(severity) + +/obj/machinery/ai_status_display/proc/update() + + if(mode==0) //Blank + cut_overlays() + return + + if(mode==1) // AI emoticon + switch(emotion) + if("Very Happy") + set_picture("ai_veryhappy") + if("Happy") + set_picture("ai_happy") + if("Neutral") + set_picture("ai_neutral") + if("Unsure") + set_picture("ai_unsure") + if("Confused") + set_picture("ai_confused") + if("Sad") + set_picture("ai_sad") + if("BSOD") + set_picture("ai_bsod") + if("Blank") + set_picture("ai_off") + if("Problems?") + set_picture("ai_trollface") + if("Awesome") + set_picture("ai_awesome") + if("Dorfy") + set_picture("ai_urist") + if("Facepalm") + set_picture("ai_facepalm") + if("Friend Computer") + set_picture("ai_friend") + if("Blue Glow") + set_picture("ai_sal") + if("Red Glow") + set_picture("ai_hal") + + return + + if(mode==2) // BSOD + set_picture("ai_bsod") + return + + +/obj/machinery/ai_status_display/proc/set_picture(state) + picture_state = state + cut_overlays() add_overlay(picture_state) - -#undef CHARS_PER_LINE -#undef FOND_SIZE -#undef FONT_COLOR -#undef FONT_STYLE -#undef SCROLL_SPEED + +#undef CHARS_PER_LINE +#undef FOND_SIZE +#undef FONT_COLOR +#undef FONT_STYLE +#undef SCROLL_SPEED diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 18d2a1b5bd..e00b00488a 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -241,7 +241,7 @@ visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.") else visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") - playsound(src, 'sound/machines/AirlockClose.ogg', 25, 1) + playsound(src, 'sound/machines/airlockclose.ogg', 25, 1) for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected I.clean_blood() I.fingerprints = list() diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index e044ceb32e..c40d359122 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -442,7 +442,7 @@ reactants += S.reagents if(!chem_splash(get_turf(src), spread_range, reactants, temp_boost)) - playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) + playsound(loc, 'sound/items/screwdriver2.ogg', 50, 1) return // The Explosion didn't do anything. No need to log, or disappear. if(adminlog) diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index a55c8e2dca..b64a3a67e0 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -184,4 +184,3 @@ sleep(rand(10,25)) return signal - diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 64fbff82ed..a08046ff47 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -1,218 +1,218 @@ - -/* - Hello, friends, this is Doohl from sexylands. You may be wondering what this - monstrous code file is. Sit down, boys and girls, while I tell you the tale. - - - The telecom machines were designed to be compatible with any radio - signals, provided they use subspace transmission. Currently they are only used for - headsets, but they can eventually be outfitted for real COMPUTER networks. This - is just a skeleton, ladies and gentlemen. - - Look at radio.dm for the prequel to this code. -*/ - -GLOBAL_LIST_EMPTY(telecomms_list) - -/obj/machinery/telecomms - icon = 'icons/obj/machines/telecomms.dmi' - var/list/links = list() // list of machines this machine is linked to - var/traffic = 0 // value increases as traffic increases - var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) - var/list/autolinkers = list() // list of text/number values to link with - var/id = "NULL" // identification string - var/network = "NULL" // the network of the machinery - - var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all - - var/machinetype = 0 // just a hacky way of preventing alike machines from pairing - var/toggled = 1 // Is it toggled on - var/on = 1 - var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) - var/hide = 0 // Is it a hidden machine? - var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. - critical_machine = TRUE - - -/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20) - // relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending - - if(!on) - return - var/send_count = 0 - - // Apply some lag based on traffic rates - var/netlag = round(traffic / 50) - if(netlag > signal.data["slow"]) - signal.data["slow"] = netlag - -// Loop through all linked machines and send the signal or copy. - for(var/obj/machinery/telecomms/machine in links) - if(filter && !istype( machine, text2path(filter) )) - continue - if(!machine.on) - continue - if(amount && send_count >= amount) - break - if(machine.loc.z != listening_level) - if(long_range_link == 0 && machine.long_range_link == 0) - continue - // If we're sending a copy, be sure to create the copy for EACH machine and paste the data - var/datum/signal/copy = new - if(copysig) - - copy.transmission_method = 2 - copy.frequency = signal.frequency - // Copy the main data contents! Workaround for some nasty bug where the actual array memory is copied and not its contents. - copy.data = list( - - "mob" = signal.data["mob"], - "mobtype" = signal.data["mobtype"], - "realname" = signal.data["realname"], - "name" = signal.data["name"], - "job" = signal.data["job"], - "key" = signal.data["key"], - "vmask" = signal.data["vmask"], - "compression" = signal.data["compression"], - "message" = signal.data["message"], - "radio" = signal.data["radio"], - "slow" = signal.data["slow"], - "traffic" = signal.data["traffic"], - "type" = signal.data["type"], - "server" = signal.data["server"], - "reject" = signal.data["reject"], - "level" = signal.data["level"], - "spans" = signal.data["spans"], - "verb_say" = signal.data["verb_say"], - "verb_ask" = signal.data["verb_ask"], - "verb_exclaim" = signal.data["verb_exclaim"], - "verb_yell" = signal.data["verb_yell"], - "language" = signal.data["language"] - ) - - // Keep the "original" signal constant - if(!signal.data["original"]) - copy.data["original"] = signal - else - copy.data["original"] = signal.data["original"] - - else - copy = null - - - send_count++ - if(machine.is_freq_listening(signal)) - machine.traffic++ - - if(copysig && copy) - machine.receive_information(copy, src) - else - machine.receive_information(signal, src) - - - if(send_count > 0 && is_freq_listening(signal)) - traffic++ - - return send_count - -/obj/machinery/telecomms/proc/relay_direct_information(datum/signal/signal, obj/machinery/telecomms/machine) - // send signal directly to a machine - machine.receive_information(signal, src) - -/obj/machinery/telecomms/proc/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) - // receive information from linked machinery - ..() - -/obj/machinery/telecomms/proc/is_freq_listening(datum/signal/signal) + +/* + Hello, friends, this is Doohl from sexylands. You may be wondering what this + monstrous code file is. Sit down, boys and girls, while I tell you the tale. + + + The telecom machines were designed to be compatible with any radio + signals, provided they use subspace transmission. Currently they are only used for + headsets, but they can eventually be outfitted for real COMPUTER networks. This + is just a skeleton, ladies and gentlemen. + + Look at radio.dm for the prequel to this code. +*/ + +GLOBAL_LIST_EMPTY(telecomms_list) + +/obj/machinery/telecomms + icon = 'icons/obj/machines/telecomms.dmi' + var/list/links = list() // list of machines this machine is linked to + var/traffic = 0 // value increases as traffic increases + var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) + var/list/autolinkers = list() // list of text/number values to link with + var/id = "NULL" // identification string + var/network = "NULL" // the network of the machinery + + var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all + + var/machinetype = 0 // just a hacky way of preventing alike machines from pairing + var/toggled = 1 // Is it toggled on + var/on = 1 + var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) + var/hide = 0 // Is it a hidden machine? + var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. + critical_machine = TRUE + + +/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20) + // relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending + + if(!on) + return + var/send_count = 0 + + // Apply some lag based on traffic rates + var/netlag = round(traffic / 50) + if(netlag > signal.data["slow"]) + signal.data["slow"] = netlag + +// Loop through all linked machines and send the signal or copy. + for(var/obj/machinery/telecomms/machine in links) + if(filter && !istype( machine, text2path(filter) )) + continue + if(!machine.on) + continue + if(amount && send_count >= amount) + break + if(machine.loc.z != listening_level) + if(long_range_link == 0 && machine.long_range_link == 0) + continue + // If we're sending a copy, be sure to create the copy for EACH machine and paste the data + var/datum/signal/copy = new + if(copysig) + + copy.transmission_method = 2 + copy.frequency = signal.frequency + // Copy the main data contents! Workaround for some nasty bug where the actual array memory is copied and not its contents. + copy.data = list( + + "mob" = signal.data["mob"], + "mobtype" = signal.data["mobtype"], + "realname" = signal.data["realname"], + "name" = signal.data["name"], + "job" = signal.data["job"], + "key" = signal.data["key"], + "vmask" = signal.data["vmask"], + "compression" = signal.data["compression"], + "message" = signal.data["message"], + "radio" = signal.data["radio"], + "slow" = signal.data["slow"], + "traffic" = signal.data["traffic"], + "type" = signal.data["type"], + "server" = signal.data["server"], + "reject" = signal.data["reject"], + "level" = signal.data["level"], + "spans" = signal.data["spans"], + "verb_say" = signal.data["verb_say"], + "verb_ask" = signal.data["verb_ask"], + "verb_exclaim" = signal.data["verb_exclaim"], + "verb_yell" = signal.data["verb_yell"], + "language" = signal.data["language"] + ) + + // Keep the "original" signal constant + if(!signal.data["original"]) + copy.data["original"] = signal + else + copy.data["original"] = signal.data["original"] + + else + copy = null + + + send_count++ + if(machine.is_freq_listening(signal)) + machine.traffic++ + + if(copysig && copy) + machine.receive_information(copy, src) + else + machine.receive_information(signal, src) + + + if(send_count > 0 && is_freq_listening(signal)) + traffic++ + + return send_count + +/obj/machinery/telecomms/proc/relay_direct_information(datum/signal/signal, obj/machinery/telecomms/machine) + // send signal directly to a machine + machine.receive_information(signal, src) + +/obj/machinery/telecomms/proc/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + // receive information from linked machinery + ..() + +/obj/machinery/telecomms/proc/is_freq_listening(datum/signal/signal) // return TRUE if found, FALSE if not found - if(!signal) + if(!signal) return FALSE - if((signal.frequency in freq_listening) || (!freq_listening.len)) + if((signal.frequency in freq_listening) || (!freq_listening.len)) return TRUE - else + else return FALSE - - -/obj/machinery/telecomms/New() - GLOB.telecomms_list += src - ..() - - //Set the listening_level if there's none. - if(!listening_level) - //Defaults to our Z level! - var/turf/position = get_turf(src) - listening_level = position.z - -/obj/machinery/telecomms/onShuttleMove(turf/T1, rotation) - . = ..() - if(. && T1) // Update listening Z, just in case you have telecomm relay on a shuttle - listening_level = T1.z - -/obj/machinery/telecomms/Initialize(mapload) - ..() - if(mapload && autolinkers.len) - // Links nearby machines - if(!long_range_link) - for(var/obj/machinery/telecomms/T in urange(20, src, 1)) - add_link(T) - else - for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) - add_link(T) - - -/obj/machinery/telecomms/Destroy() - GLOB.telecomms_list -= src - for(var/obj/machinery/telecomms/comm in GLOB.telecomms_list) - comm.links -= src - links = list() - return ..() - -// Used in auto linking -/obj/machinery/telecomms/proc/add_link(obj/machinery/telecomms/T) - var/turf/position = get_turf(src) - var/turf/T_position = get_turf(T) + + +/obj/machinery/telecomms/New() + GLOB.telecomms_list += src + ..() + + //Set the listening_level if there's none. + if(!listening_level) + //Defaults to our Z level! + var/turf/position = get_turf(src) + listening_level = position.z + +/obj/machinery/telecomms/onShuttleMove(turf/T1, rotation) + . = ..() + if(. && T1) // Update listening Z, just in case you have telecomm relay on a shuttle + listening_level = T1.z + +/obj/machinery/telecomms/Initialize(mapload) + ..() + if(mapload && autolinkers.len) + // Links nearby machines + if(!long_range_link) + for(var/obj/machinery/telecomms/T in urange(20, src, 1)) + add_link(T) + else + for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) + add_link(T) + + +/obj/machinery/telecomms/Destroy() + GLOB.telecomms_list -= src + for(var/obj/machinery/telecomms/comm in GLOB.telecomms_list) + comm.links -= src + links = list() + return ..() + +// Used in auto linking +/obj/machinery/telecomms/proc/add_link(obj/machinery/telecomms/T) + var/turf/position = get_turf(src) + var/turf/T_position = get_turf(T) if((position.z == T_position.z) || (long_range_link && T.long_range_link)) - if(src != T) - for(var/x in autolinkers) - if(x in T.autolinkers) - links |= T - -/obj/machinery/telecomms/update_icon() - if(on) - if(panel_open) - icon_state = "[initial(icon_state)]_o" - else - icon_state = initial(icon_state) - else - if(panel_open) - icon_state = "[initial(icon_state)]_o_off" - else - icon_state = "[initial(icon_state)]_off" - -/obj/machinery/telecomms/proc/update_power() - - if(toggled) - if(stat & (BROKEN|NOPOWER|EMPED)) // if powered, on. if not powered, off. if too damaged, off - on = 0 - else - on = 1 - else - on = 0 - -/obj/machinery/telecomms/process() - update_power() - - // Update the icon - update_icon() - - if(traffic > 0) - traffic -= netspeed - -/obj/machinery/telecomms/emp_act(severity) - if(prob(100/severity)) - if(!(stat & EMPED)) - stat |= EMPED - var/duration = (300 * 10)/severity - spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. - stat &= ~EMPED - ..() + if(src != T) + for(var/x in autolinkers) + if(x in T.autolinkers) + links |= T + +/obj/machinery/telecomms/update_icon() + if(on) + if(panel_open) + icon_state = "[initial(icon_state)]_o" + else + icon_state = initial(icon_state) + else + if(panel_open) + icon_state = "[initial(icon_state)]_o_off" + else + icon_state = "[initial(icon_state)]_off" + +/obj/machinery/telecomms/proc/update_power() + + if(toggled) + if(stat & (BROKEN|NOPOWER|EMPED)) // if powered, on. if not powered, off. if too damaged, off + on = 0 + else + on = 1 + else + on = 0 + +/obj/machinery/telecomms/process() + update_power() + + // Update the icon + update_icon() + + if(traffic > 0) + traffic -= netspeed + +/obj/machinery/telecomms/emp_act(severity) + if(prob(100/severity)) + if(!(stat & EMPED)) + stat |= EMPED + var/duration = (300 * 10)/severity + spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. + stat &= ~EMPED + ..() diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 74ddfe6f02..b3eadf6c31 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -299,7 +299,7 @@ if (!com.target) visible_message("Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.") return - if (istype(M, /atom/movable)) + if (ismovableatom(M)) if(do_teleport(M, com.target)) if(!calibrated && prob(30 - ((accurate) * 10))) //oh dear a problem if(ishuman(M))//don't remove people from the round randomly you jerks diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index e2becf458e..e9d57dcb29 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -16,7 +16,7 @@ var/robot_cell_charge = 5000 var/obj/effect/countdown/transformer/countdown var/mob/living/silicon/ai/masterAI - + /obj/machinery/transformer/Initialize() // On us . = ..() @@ -91,7 +91,7 @@ cooldown_timer = world.time + cooldown_duration update_icon() - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder.ogg', 50, 1) H.emote("scream") // It is painful H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though. diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 8b460b665d..ff5fc048fa 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1175,9 +1175,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/head/beanie=1, /obj/item/clothing/head/beanie/black=1, /obj/item/clothing/head/beanie/red=1, /obj/item/clothing/head/beanie/green=1, /obj/item/clothing/head/beanie/darkblue=1, /obj/item/clothing/head/beanie/purple=1, /obj/item/clothing/head/beanie/yellow=1, /obj/item/clothing/head/beanie/orange=1, /obj/item/clothing/head/beanie/cyan=1, /obj/item/clothing/head/beanie/christmas=1, /obj/item/clothing/head/beanie/striped=1, /obj/item/clothing/head/beanie/stripedred=1, /obj/item/clothing/head/beanie/stripedblue=1, /obj/item/clothing/head/beanie/stripedgreen=1, - /obj/item/clothing/suit/jacket/letterman_red=1, /obj/item/clothing/head/hunter=2, /obj/item/clothing/under/bb_sweater=2, /obj/item/clothing/under/bb_sweater/black=2, /obj/item/clothing/under/bb_sweater/purple=2, /obj/item/clothing/under/bb_sweater/red=2, /obj/item/clothing/under/bb_sweater/blue=2) + /obj/item/clothing/suit/jacket/letterman_red=1) contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2,/obj/item/clothing/suit/jacket/letterman_syndie=1,/obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1, /obj/item/clothing/under/geisha=1) - premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1, /obj/item/clothing/under/keyholesweater=1) + premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1) refill_canister = /obj/item/weapon/vending_refill/clothing /obj/machinery/vending/toyliberationstation diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 1e36149ef9..40b973c596 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -1,251 +1,251 @@ -/obj/machinery/washing_machine - name = "washing machine" - desc = "Gets rid of those pesky bloodstains, or your money back!" - icon = 'icons/obj/machines/washing_machine.dmi' - icon_state = "wm_1_0" - density = 1 - anchored = 1 - state_open = 1 - var/busy = 0 - var/bloody_mess = 0 - var/has_corgi = 0 - var/obj/item/color_source - var/max_wash_capacity = 5 - -/obj/machinery/washing_machine/examine(mob/user) - ..() - to_chat(user, "Alt-click it to start a wash cycle.") - -/obj/machinery/washing_machine/AltClick(mob/user) - if(!user.canUseTopic(src)) - return - - if(busy) - return - - if(state_open) - to_chat(user, "Close the door first") - return - - if(bloody_mess) - to_chat(user, "[src] must be cleaned up first.") - return - - if(has_corgi) - bloody_mess = 1 - - busy = 1 - update_icon() - sleep(200) - wash_cycle() - -/obj/machinery/washing_machine/clean_blood() - ..() - if(!busy) - bloody_mess = 0 - update_icon() - - -/obj/machinery/washing_machine/proc/wash_cycle() - for(var/X in contents) - var/atom/movable/AM = X - AM.clean_blood() - AM.machine_wash(src) - - busy = 0 - if(color_source) - qdel(color_source) - color_source = null - update_icon() - - -//what happens to this object when washed inside a washing machine -/atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) - return - -/obj/item/stack/sheet/hairlesshide/machine_wash(obj/machinery/washing_machine/WM) - var/obj/item/stack/sheet/wetleather/WL = new(loc) - WL.amount = amount - qdel(src) - -/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) - new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi(loc) - qdel(src) - -/obj/item/weapon/paper/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - if(istype(WM.color_source,/obj/item/toy/crayon)) - var/obj/item/toy/crayon/CR = WM.color_source - add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) - -/mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) - gib() - -/obj/item/clothing/under/color/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/rank/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/proc/jumpsuit_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - var/obj/item/clothing/under/U - for(var/T in typesof(/obj/item/clothing/under/color)) - var/obj/item/clothing/under/color/J = T - if(wash_color == initial(J.item_color)) - U = J - break - if(!U) - for(var/T in typesof(/obj/item/clothing/under/rank)) - var/obj/item/clothing/under/rank/R = T - if(wash_color == initial(R.item_color)) - U = R - break - if(U) - item_state = initial(U.item_state) - icon_state = initial(U.icon_state) - item_color = wash_color - name = initial(U.name) - desc = "The colors are a bit dodgy." - can_adjust = initial(U.can_adjust) - if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable - toggle_jumpsuit_adjust() - -/obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/gloves/color)) - var/obj/item/clothing/gloves/color/G = T - if(wash_color == initial(G.item_color)) - item_state = initial(G.item_state) - icon_state = initial(G.icon_state) - item_color = wash_color - name = initial(G.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) - if(chained) - chained = 0 - slowdown = SHOES_SLOWDOWN - new /obj/item/weapon/restraints/handcuffs(loc) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) - var/obj/item/clothing/shoes/sneakers/S = T - if(wash_color == initial(S.item_color)) - icon_state = initial(S.icon_state) - item_color = wash_color - name = initial(S.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/weapon/bedsheet/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/weapon/bedsheet)) - var/obj/item/weapon/bedsheet/B = T - if(wash_color == initial(B.item_color)) - icon_state = initial(B.icon_state) - item_color = wash_color - name = initial(B.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/head/soft)) - var/obj/item/clothing/head/soft/H = T - if(wash_color == initial(H.item_color)) - icon_state = initial(H.icon_state) - item_color = wash_color - name = initial(H.name) - desc = "The colors are a bit dodgy." - break - - -/obj/machinery/washing_machine/relaymove(mob/user) - container_resist(user) - -/obj/machinery/washing_machine/container_resist(mob/living/user) - if(!busy) - add_fingerprint(user) - open_machine() - - - -/obj/machinery/washing_machine/update_icon() - cut_overlays() - if(busy) - icon_state = "wm_running_[bloody_mess]" - else if(bloody_mess) - icon_state = "wm_[state_open]_blood" - else - var/full = contents.len ? 1 : 0 - icon_state = "wm_[state_open]_[full]" - if(panel_open) +/obj/machinery/washing_machine + name = "washing machine" + desc = "Gets rid of those pesky bloodstains, or your money back!" + icon = 'icons/obj/machines/washing_machine.dmi' + icon_state = "wm_1_0" + density = 1 + anchored = 1 + state_open = 1 + var/busy = 0 + var/bloody_mess = 0 + var/has_corgi = 0 + var/obj/item/color_source + var/max_wash_capacity = 5 + +/obj/machinery/washing_machine/examine(mob/user) + ..() + to_chat(user, "Alt-click it to start a wash cycle.") + +/obj/machinery/washing_machine/AltClick(mob/user) + if(!user.canUseTopic(src)) + return + + if(busy) + return + + if(state_open) + to_chat(user, "Close the door first") + return + + if(bloody_mess) + to_chat(user, "[src] must be cleaned up first.") + return + + if(has_corgi) + bloody_mess = 1 + + busy = 1 + update_icon() + sleep(200) + wash_cycle() + +/obj/machinery/washing_machine/clean_blood() + ..() + if(!busy) + bloody_mess = 0 + update_icon() + + +/obj/machinery/washing_machine/proc/wash_cycle() + for(var/X in contents) + var/atom/movable/AM = X + AM.clean_blood() + AM.machine_wash(src) + + busy = 0 + if(color_source) + qdel(color_source) + color_source = null + update_icon() + + +//what happens to this object when washed inside a washing machine +/atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) + return + +/obj/item/stack/sheet/hairlesshide/machine_wash(obj/machinery/washing_machine/WM) + var/obj/item/stack/sheet/wetleather/WL = new(loc) + WL.amount = amount + qdel(src) + +/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi(loc) + qdel(src) + +/obj/item/weapon/paper/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + if(istype(WM.color_source,/obj/item/toy/crayon)) + var/obj/item/toy/crayon/CR = WM.color_source + add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) + +/mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) + gib() + +/obj/item/clothing/under/color/machine_wash(obj/machinery/washing_machine/WM) + jumpsuit_wash(WM) + +/obj/item/clothing/under/rank/machine_wash(obj/machinery/washing_machine/WM) + jumpsuit_wash(WM) + +/obj/item/clothing/under/proc/jumpsuit_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + var/obj/item/clothing/under/U + for(var/T in typesof(/obj/item/clothing/under/color)) + var/obj/item/clothing/under/color/J = T + if(wash_color == initial(J.item_color)) + U = J + break + if(!U) + for(var/T in typesof(/obj/item/clothing/under/rank)) + var/obj/item/clothing/under/rank/R = T + if(wash_color == initial(R.item_color)) + U = R + break + if(U) + item_state = initial(U.item_state) + icon_state = initial(U.icon_state) + item_color = wash_color + name = initial(U.name) + desc = "The colors are a bit dodgy." + can_adjust = initial(U.can_adjust) + if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable + toggle_jumpsuit_adjust() + +/obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/gloves/color)) + var/obj/item/clothing/gloves/color/G = T + if(wash_color == initial(G.item_color)) + item_state = initial(G.item_state) + icon_state = initial(G.icon_state) + item_color = wash_color + name = initial(G.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) + if(chained) + chained = 0 + slowdown = SHOES_SLOWDOWN + new /obj/item/weapon/restraints/handcuffs(loc) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) + var/obj/item/clothing/shoes/sneakers/S = T + if(wash_color == initial(S.item_color)) + icon_state = initial(S.icon_state) + item_color = wash_color + name = initial(S.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/weapon/bedsheet/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/weapon/bedsheet)) + var/obj/item/weapon/bedsheet/B = T + if(wash_color == initial(B.item_color)) + icon_state = initial(B.icon_state) + item_color = wash_color + name = initial(B.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/head/soft)) + var/obj/item/clothing/head/soft/H = T + if(wash_color == initial(H.item_color)) + icon_state = initial(H.icon_state) + item_color = wash_color + name = initial(H.name) + desc = "The colors are a bit dodgy." + break + + +/obj/machinery/washing_machine/relaymove(mob/user) + container_resist(user) + +/obj/machinery/washing_machine/container_resist(mob/living/user) + if(!busy) + add_fingerprint(user) + open_machine() + + + +/obj/machinery/washing_machine/update_icon() + cut_overlays() + if(busy) + icon_state = "wm_running_[bloody_mess]" + else if(bloody_mess) + icon_state = "wm_[state_open]_blood" + else + var/full = contents.len ? 1 : 0 + icon_state = "wm_[state_open]_[full]" + if(panel_open) add_overlay("wm_panel") - -/obj/machinery/washing_machine/attackby(obj/item/weapon/W, mob/user, params) - if(default_deconstruction_screwdriver(user, null, null, W)) - update_icon() - return - - else if(user.a_intent != INTENT_HARM) - - if (!state_open) - to_chat(user, "Open the door first!") - return 1 - - if(bloody_mess) - to_chat(user, "[src] must be cleaned up first.") - return 1 - - if(contents.len >= max_wash_capacity) - to_chat(user, "The washing machine is full!") - return 1 - - if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") - return 1 - - if(istype(W,/obj/item/toy/crayon) || istype(W,/obj/item/weapon/stamp)) - color_source = W - update_icon() - - else - return ..() - -/obj/machinery/washing_machine/attack_hand(mob/user) - if(busy) - to_chat(user, "[src] is busy.") - return - - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) - var/mob/living/L = user.pulling - if(L.buckled || L.has_buckled_mobs()) - return - if(state_open) - if(iscorgi(L)) - has_corgi = 1 - L.forceMove(src) - update_icon() - return - - if(!state_open) - open_machine() - else - state_open = 0 //close the door - update_icon() - -/obj/machinery/washing_machine/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/metal (loc, 2) - qdel(src) - -/obj/machinery/washing_machine/open_machine(drop = 1) - ..() - density = 1 //because machinery/open_machine() sets it to 0 - color_source = null - has_corgi = 0 + +/obj/machinery/washing_machine/attackby(obj/item/weapon/W, mob/user, params) + if(default_deconstruction_screwdriver(user, null, null, W)) + update_icon() + return + + else if(user.a_intent != INTENT_HARM) + + if (!state_open) + to_chat(user, "Open the door first!") + return 1 + + if(bloody_mess) + to_chat(user, "[src] must be cleaned up first.") + return 1 + + if(contents.len >= max_wash_capacity) + to_chat(user, "The washing machine is full!") + return 1 + + if(!user.transferItemToLoc(W, src)) + to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") + return 1 + + if(istype(W,/obj/item/toy/crayon) || istype(W,/obj/item/weapon/stamp)) + color_source = W + update_icon() + + else + return ..() + +/obj/machinery/washing_machine/attack_hand(mob/user) + if(busy) + to_chat(user, "[src] is busy.") + return + + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(L.buckled || L.has_buckled_mobs()) + return + if(state_open) + if(iscorgi(L)) + has_corgi = 1 + L.forceMove(src) + update_icon() + return + + if(!state_open) + open_machine() + else + state_open = 0 //close the door + update_icon() + +/obj/machinery/washing_machine/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/machinery/washing_machine/open_machine(drop = 1) + ..() + density = 1 //because machinery/open_machine() sets it to 0 + color_source = null + has_corgi = 0 diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index 3c415dce90..449b532402 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -1,53 +1,53 @@ -/obj/machinery/wish_granter - name = "wish granter" - desc = "You're not so sure about this, anymore..." - icon = 'icons/obj/device.dmi' - icon_state = "syndbeacon" - +/obj/machinery/wish_granter + name = "wish granter" + desc = "You're not so sure about this, anymore..." + icon = 'icons/obj/device.dmi' + icon_state = "syndbeacon" + use_power = NO_POWER_USE - anchored = 1 - density = 1 - - var/charges = 1 - var/insisting = 0 - -/obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) - if(charges <= 0) - to_chat(user, "The Wish Granter lies silent.") - return - - else if(!ishuman(user)) - to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") - return - - else if(is_special_character(user)) - to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.") - - else if (!insisting) - to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") - insisting++ - - else - to_chat(user, "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers.") - to_chat(user, "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first.") - - charges-- - insisting = 0 - - user.dna.add_mutation(HULK) - user.dna.add_mutation(XRAY) - user.dna.add_mutation(COLDRES) - user.dna.add_mutation(TK) - - SSticker.mode.traitors += user.mind - user.mind.special_role = "Avatar of the Wish Granter" - - var/datum/objective/hijack/hijack = new - hijack.owner = user.mind - user.mind.objectives += hijack - - user.mind.announce_objectives() - - to_chat(user, "You have a very bad feeling about this.") - - return + anchored = 1 + density = 1 + + var/charges = 1 + var/insisting = 0 + +/obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) + if(charges <= 0) + to_chat(user, "The Wish Granter lies silent.") + return + + else if(!ishuman(user)) + to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") + return + + else if(is_special_character(user)) + to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.") + + else if (!insisting) + to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") + insisting++ + + else + to_chat(user, "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers.") + to_chat(user, "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first.") + + charges-- + insisting = 0 + + user.dna.add_mutation(HULK) + user.dna.add_mutation(XRAY) + user.dna.add_mutation(COLDRES) + user.dna.add_mutation(TK) + + SSticker.mode.traitors += user.mind + user.mind.special_role = "Avatar of the Wish Granter" + + var/datum/objective/hijack/hijack = new + hijack.owner = user.mind + user.mind.objectives += hijack + + user.mind.announce_objectives() + + to_chat(user, "You have a very bad feeling about this.") + + return diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index 9bbf141867..84d4b0bcfa 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -1,158 +1,158 @@ -//DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE! -//I'm annoyed I even have to tell you this! SPRITE FIRST, then commit. - -/obj/item/mecha_parts/mecha_equipment - name = "mecha equipment" - icon = 'icons/mecha/mecha_equipment.dmi' - icon_state = "mecha_equip" - force = 5 - origin_tech = "materials=2;engineering=2" - obj_integrity = 300 - max_integrity = 300 - var/equip_cooldown = 0 // cooldown after use - var/equip_ready = 1 //whether the equipment is ready for use. (or deactivated/activated for static stuff) - var/energy_drain = 0 - var/obj/mecha/chassis = null - var/range = MELEE //bitflags - var/salvageable = 1 - var/selectable = 1 // Set to 0 for passive equipment such as mining scanner or armor plates - -/obj/item/mecha_parts/mecha_equipment/proc/update_chassis_page() - if(chassis) - send_byjax(chassis.occupant,"exosuit.browser","eq_list",chassis.get_equipment_list()) - send_byjax(chassis.occupant,"exosuit.browser","equipment_menu",chassis.get_equipment_menu(),"dropdowns") - return 1 - return - -/obj/item/mecha_parts/mecha_equipment/proc/update_equip_info() - if(chassis) - send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info()) - return 1 - return - -/obj/item/mecha_parts/mecha_equipment/Destroy() - if(chassis) - chassis.equipment -= src - if(chassis.selected == src) - chassis.selected = null - src.update_chassis_page() - chassis.occupant_message("The [src] is destroyed!") - chassis.log_append_to_last("[src] is destroyed.",1) - if(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon)) - chassis.occupant << sound('sound/mecha/weapdestr.ogg',volume=50) - else - chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50) - chassis = null - return ..() - -/obj/item/mecha_parts/mecha_equipment/proc/critfail() - if(chassis) - log_message("Critical failure",1) - -/obj/item/mecha_parts/mecha_equipment/proc/get_equip_info() - if(!chassis) return - var/txt = "* " - if(chassis.selected == src) - txt += "[src.name]" - else if(selectable) - txt += "
    [src.name]" - else - txt += "[src.name]" - - return txt - -/obj/item/mecha_parts/mecha_equipment/proc/is_ranged()//add a distance restricted equipment. Why not? - return range&RANGED - -/obj/item/mecha_parts/mecha_equipment/proc/is_melee() - return range&MELEE - - -/obj/item/mecha_parts/mecha_equipment/proc/action_checks(atom/target) - if(!target) - return 0 - if(!chassis) - return 0 - if(!equip_ready) - return 0 - if(crit_fail) - return 0 - if(energy_drain && !chassis.has_charge(energy_drain)) - return 0 - return 1 - -/obj/item/mecha_parts/mecha_equipment/proc/action(atom/target) - return 0 - -/obj/item/mecha_parts/mecha_equipment/proc/start_cooldown() - set_ready_state(0) - chassis.use_power(energy_drain) - addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) - -/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) - if(!chassis) - return - var/C = chassis.loc - set_ready_state(0) - chassis.use_power(energy_drain) - . = do_after(chassis.occupant, equip_cooldown, target=target) - set_ready_state(1) - if(!chassis || chassis.loc != C || src != chassis.selected) - return 0 - - -/obj/item/mecha_parts/mecha_equipment/proc/can_attach(obj/mecha/M) - if(M.equipment.lenThe [src] is destroyed!") + chassis.log_append_to_last("[src] is destroyed.",1) + if(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon)) + chassis.occupant << sound('sound/mecha/weapdestr.ogg',volume=50) + else + chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50) + chassis = null + return ..() + +/obj/item/mecha_parts/mecha_equipment/proc/critfail() + if(chassis) + log_message("Critical failure",1) + +/obj/item/mecha_parts/mecha_equipment/proc/get_equip_info() + if(!chassis) return + var/txt = "* " + if(chassis.selected == src) + txt += "[src.name]" + else if(selectable) + txt += "[src.name]" + else + txt += "[src.name]" + + return txt + +/obj/item/mecha_parts/mecha_equipment/proc/is_ranged()//add a distance restricted equipment. Why not? + return range&RANGED + +/obj/item/mecha_parts/mecha_equipment/proc/is_melee() + return range&MELEE + + +/obj/item/mecha_parts/mecha_equipment/proc/action_checks(atom/target) + if(!target) + return 0 + if(!chassis) + return 0 + if(!equip_ready) + return 0 + if(crit_fail) + return 0 + if(energy_drain && !chassis.has_charge(energy_drain)) + return 0 + return 1 + +/obj/item/mecha_parts/mecha_equipment/proc/action(atom/target) + return 0 + +/obj/item/mecha_parts/mecha_equipment/proc/start_cooldown() + set_ready_state(0) + chassis.use_power(energy_drain) + addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) + +/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) + if(!chassis) + return + var/C = chassis.loc + set_ready_state(0) + chassis.use_power(energy_drain) + . = do_after(chassis.occupant, equip_cooldown, target=target) + set_ready_state(1) + if(!chassis || chassis.loc != C || src != chassis.selected) + return 0 + + +/obj/item/mecha_parts/mecha_equipment/proc/can_attach(obj/mecha/M) + if(M.equipment.len[src]: [message]") - return - - -//Used for reloading weapons/tools etc. that use some form of resource -/obj/item/mecha_parts/mecha_equipment/proc/rearm() - return 0 - - -/obj/item/mecha_parts/mecha_equipment/proc/needs_rearm() - return 0 + return + +/obj/item/mecha_parts/mecha_equipment/proc/log_message(message) + if(chassis) + chassis.log_message("[src]: [message]") + return + + +//Used for reloading weapons/tools etc. that use some form of resource +/obj/item/mecha_parts/mecha_equipment/proc/rearm() + return 0 + + +/obj/item/mecha_parts/mecha_equipment/proc/needs_rearm() + return 0 diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index cc5924d43a..109877e618 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -229,10 +229,9 @@ return if(M.health > 0) M.adjustOxyLoss(-1) - M.updatehealth() - M.AdjustStunned(-4) - M.AdjustWeakened(-4) - M.AdjustStunned(-4) + M.AdjustStun(-80) + M.AdjustKnockdown(-80) + M.AdjustUnconscious(-80) if(M.reagents.get_reagent_amount("epinephrine") < 5) M.reagents.add_reagent("epinephrine", 5) chassis.use_power(energy_drain) @@ -483,7 +482,7 @@ if(get_dist(src,A) >= 4) occupant_message("The object is too far away.") return 0 - if(!A.reagents || istype(A,/mob)) + if(!A.reagents || ismob(A)) occupant_message("No reagent info gained from [A].") return 0 occupant_message("Analyzing reagents...") diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index dbee8bd677..b06ec36d09 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -87,7 +87,7 @@ target.take_bodypart_damage(drill_damage) if(target) - target.Paralyse(10) + target.Unconscious(200) target.updatehealth() diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 6074fc932e..089cfdf625 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -57,18 +57,12 @@ var/turf/target_turf = pick(L) if(!target_turf) return - var/obj/effect/portal/P = new /obj/effect/portal(get_turf(target)) - P.target = target_turf - P.creator = null - P.icon = 'icons/obj/objects.dmi' - P.icon_state = "anom" - P.name = "wormhole" - P.mech_sized = TRUE + var/list/obj/effect/portal/created = create_portal_pair(get_turf(src), target_turf, src, 300, 1, /obj/effect/portal/anom) var/turf/T = get_turf(target) message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Wormhole Generator in [ADMIN_COORDJMP(T)]",0,1) log_game("[key_name(chassis.occupant)] used a Wormhole Generator in [COORD(T)]") src = null - QDEL_IN(P, rand(150,300)) + QDEL_LIST_IN(created, rand(150,300)) return 1 diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 8a78bad45a..73863315dd 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -224,34 +224,34 @@ if(do_after_cooldown(W)) chassis.spark_system.start() W.ChangeTurf(/turf/open/floor/plating) - playsound(W, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(W, 'sound/items/deconstruct.ogg', 50, 1) else if(isfloorturf(target)) var/turf/open/floor/F = target occupant_message("Deconstructing [F]...") if(do_after_cooldown(target)) chassis.spark_system.start() F.ChangeTurf(F.baseturf) - playsound(F, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(F, 'sound/items/deconstruct.ogg', 50, 1) else if (istype(target, /obj/machinery/door/airlock)) occupant_message("Deconstructing [target]...") if(do_after_cooldown(target)) chassis.spark_system.start() qdel(target) - playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(target, 'sound/items/deconstruct.ogg', 50, 1) if(1) if(isspaceturf(target)) var/turf/open/space/S = target occupant_message("Building Floor...") if(do_after_cooldown(S)) S.ChangeTurf(/turf/open/floor/plating) - playsound(S, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(S, 'sound/items/deconstruct.ogg', 50, 1) chassis.spark_system.start() else if(isfloorturf(target)) var/turf/open/floor/F = target occupant_message("Building Wall...") if(do_after_cooldown(F)) F.ChangeTurf(/turf/closed/wall) - playsound(F, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(F, 'sound/items/deconstruct.ogg', 50, 1) chassis.spark_system.start() if(2) if(isfloorturf(target)) @@ -260,7 +260,7 @@ chassis.spark_system.start() var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock(target) T.autoclose = 1 - playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(target, 'sound/items/deconstruct.ogg', 50, 1) playsound(target, 'sound/effects/sparks2.ogg', 50, 1) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 1cd46f24ea..f323d35286 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -78,7 +78,7 @@ origin_tech = "magnets=3;combat=3;engineering=3" energy_drain = 30 projectile = /obj/item/projectile/beam/laser - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy equip_cooldown = 15 @@ -98,7 +98,7 @@ origin_tech = "materials=4;combat=5;magnets=4" energy_drain = 120 projectile = /obj/item/projectile/ion - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla equip_cooldown = 35 @@ -147,7 +147,7 @@ energy_drain = 20 equip_cooldown = 8 projectile = /obj/item/projectile/energy/electrode - fire_sound = 'sound/weapons/Taser.ogg' + fire_sound = 'sound/weapons/taser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/honker @@ -167,7 +167,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/honker/action(target, params) if(!action_checks(target)) return - playsound(chassis, 'sound/items/AirHorn.ogg', 100, 1) + playsound(chassis, 'sound/items/airhorn.ogg', 100, 1) chassis.occupant_message("HONK") for(var/mob/living/carbon/M in ohearers(6, chassis)) if(ishuman(M)) @@ -178,10 +178,10 @@ M.SetSleeping(0) M.stuttering += 20 M.adjustEarDamage(0, 30) - M.Weaken(3) + M.Knockdown(60) if(prob(30)) - M.Stun(10) - M.Paralyse(4) + M.Stun(200) + M.Unconscious(80) else M.Jitter(500) @@ -195,7 +195,7 @@ //Base ballistic weapon type /obj/item/mecha_parts/mecha_equipment/weapon/ballistic name = "general ballisic weapon" - fire_sound = 'sound/weapons/Gunshot.ogg' + fire_sound = 'sound/weapons/gunshot.ogg' var/projectiles var/projectile_energy_cost @@ -256,7 +256,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced name = "\improper S.H.H. \"Quietus\" Carbine" desc = "A weapon for combat exosuits. A mime invention, field tests have shown that targets cannot even scream before going down." - fire_sound = 'sound/weapons/Gunshot_silenced.ogg' + fire_sound = 'sound/weapons/gunshot_silenced.ogg' icon_state = "mecha_mime" equip_cooldown = 30 projectile = /obj/item/projectile/bullet/mime @@ -428,7 +428,7 @@ /obj/item/punching_glove/throw_impact(atom/hit_atom) if(!..()) - if(istype(hit_atom, /atom/movable)) + if(ismovableatom(hit_atom)) var/atom/movable/AM = hit_atom AM.throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2) qdel(src) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 2d3002e0cf..6e1f66a237 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -1,507 +1,507 @@ -/obj/machinery/mecha_part_fabricator - icon = 'icons/obj/robotics.dmi' - icon_state = "fab-idle" - name = "exosuit fabricator" - desc = "Nothing is being built." - density = 1 - anchored = 1 +/obj/machinery/mecha_part_fabricator + icon = 'icons/obj/robotics.dmi' + icon_state = "fab-idle" + name = "exosuit fabricator" + desc = "Nothing is being built." + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 20 - active_power_usage = 5000 - req_access = list(GLOB.access_robotics) - var/time_coeff = 1 - var/component_coeff = 1 - var/datum/material_container/materials - var/datum/research/files - var/sync = 0 - var/part_set - var/datum/design/being_built - var/list/queue = list() - var/processing_queue = 0 - var/screen = "main" - var/temp - var/list/part_sets = list( - "Cyborg", - "Ripley", - "Firefighter", - "Odysseus", - "Gygax", - "Durand", - "H.O.N.K", - "Phazon", - "Exosuit Equipment", - "Cyborg Upgrade Modules", - "Misc" - ) - -/obj/machinery/mecha_part_fabricator/New() - ..() - files = new /datum/research(src) //Setup the research data holder. - materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null) - B.apply_default_parts(src) - -/obj/item/weapon/circuitboard/machine/mechfab - name = "Exosuit Fabricator (Machine Board)" - build_path = /obj/machinery/mecha_part_fabricator - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/machinery/mecha_part_fabricator/RefreshParts() - var/T = 0 - - //maximum stocking amount (default 300000, 600000 at T4) - for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) - T += M.rating - materials.max_amount = (200000 + (T*50000)) - - //resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55) - T = 1.15 - for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts) - T -= Ma.rating*0.15 - component_coeff = T - - //building time adjustment coefficient (1 -> 0.8 -> 0.6) - T = -1 - for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts) - T += Ml.rating - time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01) - - -/obj/machinery/mecha_part_fabricator/check_access(obj/item/weapon/card/id/I) - if(istype(I, /obj/item/device/pda)) - var/obj/item/device/pda/pda = I - I = pda.id - if(!istype(I) || !I.access) //not ID or no access - return 0 - for(var/req in req_access) - if(!(req in I.access)) //doesn't have this access - return 0 - return 1 - -/obj/machinery/mecha_part_fabricator/emag_act() - if(emagged) - return - - emagged = 0.5 - say("DB error \[Code 0x00F1\]") - sleep(10) - say("Attempting auto-repair...") - sleep(15) - say("User DB corrupted \[Code 0x00FA\]. Truncating data structure...") - sleep(30) - say("User DB truncated. Please contact your Nanotrasen system operator for future assistance.") - req_access = null - emagged = 1 - -/obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name) - var/output = "" - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(D.build_type & MECHFAB) - if(!(set_name in D.category)) - continue - output += "
    [output_part_info(D)]
    \[" - if(check_resources(D)) - output += "Build | " - output += "Add to queue\]\[?\]
    " - return output - -/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D) - var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(D)/10]sec" - return output - -/obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D) - var/i = 0 - var/output - for(var/c in D.materials) - output += "[i?" | ":null][get_resource_cost_w_coeff(D, c)] [material2name(c)]" - i++ - return output - -/obj/machinery/mecha_part_fabricator/proc/output_available_resources() - var/output - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - output += "[M.name]: [M.amount] cm³" - if(M.amount >= MINERAL_MATERIAL_AMOUNT) - output += "- Remove \[1\]" - if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10)) - output += " | \[10\]" - output += " | \[All\]" - output += "
    " - return output - -/obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D) - var/list/resources = list() - for(var/R in D.materials) - resources[R] = get_resource_cost_w_coeff(D, R) - return resources - -/obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) - if(D.reagents_list.len) // No reagents storage - no reagent designs. - return 0 - if(materials.has_materials(get_resources_w_coeff(D))) - return 1 - return 0 - -/obj/machinery/mecha_part_fabricator/proc/build_part(datum/design/D) - being_built = D - desc = "It's building \a [initial(D.name)]." - var/list/res_coef = get_resources_w_coeff(D) - - materials.use_amount(res_coef) - add_overlay("fab-active") + idle_power_usage = 20 + active_power_usage = 5000 + req_access = list(GLOB.access_robotics) + var/time_coeff = 1 + var/component_coeff = 1 + var/datum/material_container/materials + var/datum/research/files + var/sync = 0 + var/part_set + var/datum/design/being_built + var/list/queue = list() + var/processing_queue = 0 + var/screen = "main" + var/temp + var/list/part_sets = list( + "Cyborg", + "Ripley", + "Firefighter", + "Odysseus", + "Gygax", + "Durand", + "H.O.N.K", + "Phazon", + "Exosuit Equipment", + "Cyborg Upgrade Modules", + "Misc" + ) + +/obj/machinery/mecha_part_fabricator/New() + ..() + files = new /datum/research(src) //Setup the research data holder. + materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/mechfab + name = "Exosuit Fabricator (Machine Board)" + build_path = /obj/machinery/mecha_part_fabricator + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/mecha_part_fabricator/RefreshParts() + var/T = 0 + + //maximum stocking amount (default 300000, 600000 at T4) + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + T += M.rating + materials.max_amount = (200000 + (T*50000)) + + //resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55) + T = 1.15 + for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts) + T -= Ma.rating*0.15 + component_coeff = T + + //building time adjustment coefficient (1 -> 0.8 -> 0.6) + T = -1 + for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts) + T += Ml.rating + time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01) + + +/obj/machinery/mecha_part_fabricator/check_access(obj/item/weapon/card/id/I) + if(istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/pda = I + I = pda.id + if(!istype(I) || !I.access) //not ID or no access + return 0 + for(var/req in req_access) + if(!(req in I.access)) //doesn't have this access + return 0 + return 1 + +/obj/machinery/mecha_part_fabricator/emag_act() + if(emagged) + return + + emagged = 0.5 + say("DB error \[Code 0x00F1\]") + sleep(10) + say("Attempting auto-repair...") + sleep(15) + say("User DB corrupted \[Code 0x00FA\]. Truncating data structure...") + sleep(30) + say("User DB truncated. Please contact your Nanotrasen system operator for future assistance.") + req_access = null + emagged = 1 + +/obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name) + var/output = "" + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(!(set_name in D.category)) + continue + output += "
    [output_part_info(D)]
    \[" + if(check_resources(D)) + output += "Build | " + output += "Add to queue\]\[?\]
    " + return output + +/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D) + var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(D)/10]sec" + return output + +/obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D) + var/i = 0 + var/output + for(var/c in D.materials) + output += "[i?" | ":null][get_resource_cost_w_coeff(D, c)] [material2name(c)]" + i++ + return output + +/obj/machinery/mecha_part_fabricator/proc/output_available_resources() + var/output + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + output += "[M.name]: [M.amount] cm³" + if(M.amount >= MINERAL_MATERIAL_AMOUNT) + output += "- Remove \[1\]" + if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10)) + output += " | \[10\]" + output += " | \[All\]" + output += "
    " + return output + +/obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D) + var/list/resources = list() + for(var/R in D.materials) + resources[R] = get_resource_cost_w_coeff(D, R) + return resources + +/obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) + if(D.reagents_list.len) // No reagents storage - no reagent designs. + return 0 + if(materials.has_materials(get_resources_w_coeff(D))) + return 1 + return 0 + +/obj/machinery/mecha_part_fabricator/proc/build_part(datum/design/D) + being_built = D + desc = "It's building \a [initial(D.name)]." + var/list/res_coef = get_resources_w_coeff(D) + + materials.use_amount(res_coef) + add_overlay("fab-active") use_power = ACTIVE_POWER_USE - updateUsrDialog() - sleep(get_construction_time_w_coeff(D)) + updateUsrDialog() + sleep(get_construction_time_w_coeff(D)) use_power = IDLE_POWER_USE - cut_overlay("fab-active") - desc = initial(desc) - - var/location = get_step(src,(dir)) - var/obj/item/I = new D.build_path(location) - I.materials = res_coef - say("\The [I] is complete.") - being_built = null - - updateUsrDialog() - return 1 - -/obj/machinery/mecha_part_fabricator/proc/update_queue_on_page() - send_byjax(usr,"mecha_fabricator.browser","queue",list_queue()) - return - -/obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(set_name) - if(set_name in part_sets) - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(D.build_type & MECHFAB) - if(set_name in D.category) - add_to_queue(D) - -/obj/machinery/mecha_part_fabricator/proc/add_to_queue(D) - if(!istype(queue)) - queue = list() - if(D) - queue[++queue.len] = D - return queue.len - -/obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index) - if(!isnum(index) || !IsInteger(index) || !istype(queue) || (index<1 || index>queue.len)) - return 0 - queue.Cut(index,++index) - return 1 - -/obj/machinery/mecha_part_fabricator/proc/process_queue() - var/datum/design/D = queue[1] - if(!D) - remove_from_queue(1) - if(queue.len) - return process_queue() - else - return - temp = null - while(D) - if(stat&(NOPOWER|BROKEN)) - return 0 - if(!check_resources(D)) - say("Not enough resources. Queue processing stopped.") - temp = {"Not enough resources to build next part.
    - Try again | Return"} - return 0 - remove_from_queue(1) - build_part(D) - D = listgetindex(queue, 1) - say("Queue processing finished successfully.") - -/obj/machinery/mecha_part_fabricator/proc/list_queue() - var/output = "Queue contains:" - if(!istype(queue) || !queue.len) - output += "
    Nothing" - else - output += "
      " - var/i = 0 - for(var/datum/design/D in queue) - i++ - var/obj/part = D.build_path - output += "" - output += initial(part.name) + " - " - output += "[i>1?"":null] " - output += "[i↓":null] " - output += "Remove" - - output += "
    " - output += "\[Process queue | Clear queue\]" - return output - -/obj/machinery/mecha_part_fabricator/proc/sync() - temp = "Updating local R&D database..." - updateUsrDialog() - sleep(30) //only sleep if called by user - - for(var/obj/machinery/computer/rdconsole/RDC in oview(7,src)) - if(!RDC.sync) - continue - for(var/v in RDC.files.known_tech) - var/datum/tech/T = RDC.files.known_tech[v] - files.AddTech2Known(T) - for(var/v in RDC.files.known_designs) - var/datum/design/D = RDC.files.known_designs[v] - files.AddDesign2Known(D) - files.RefreshResearch() - temp = "Processed equipment designs.
    " - //check if the tech coefficients have changed - temp += "Return" - - updateUsrDialog() - say("Successfully synchronized with R&D server.") - return - - temp = "Unable to connect to local R&D Database.
    Please check your connections and try again.
    Return" - updateUsrDialog() - return - -/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, 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 - return round(initial(D.construction_time)*time_coeff, roundto) - -/obj/machinery/mecha_part_fabricator/attack_hand(mob/user) - if(!(..())) - return interact(user) - -/obj/machinery/mecha_part_fabricator/interact(mob/user as mob) - var/dat, left_part - if (..()) - return - user.set_machine(src) - var/turf/exit = get_step(src,(dir)) - if(exit.density) - say("Error! Part outlet is obstructed.") - return - if(temp) - left_part = temp - else if(being_built) - var/obj/I = being_built.build_path - left_part = {"Building [initial(I.name)].
    - Please wait until completion...
    "} - else - switch(screen) - if("main") - left_part = output_available_resources()+"
    " - left_part += "Sync with R&D servers
    " - for(var/part_set in part_sets) - left_part += "[part_set] - \[Add all parts to queue\]
    " - if("parts") - left_part += output_parts_list(part_set) - left_part += "
    Return" - dat = {" - - [name] - - - - - - - - - -
    - [left_part] - - [list_queue()] -
    - - "} - user << browse(dat, "window=mecha_fabricator;size=1000x430") - onclose(user, "mecha_fabricator") - return - -/obj/machinery/mecha_part_fabricator/Topic(href, href_list) - if(..()) - return - var/datum/topic_input/filter = new /datum/topic_input(href,href_list) - if(href_list["part_set"]) - var/tpart_set = filter.getStr("part_set") - if(tpart_set) - if(tpart_set=="clear") - part_set = null - else - part_set = tpart_set - screen = "parts" - if(href_list["part"]) - var/T = filter.getStr("part") - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(D.build_type & MECHFAB) - if(D.id == T) - if(!processing_queue) - build_part(D) - else - add_to_queue(D) - break - if(href_list["add_to_queue"]) - var/T = filter.getStr("add_to_queue") - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(D.build_type & MECHFAB) - if(D.id == T) - add_to_queue(D) - break - return update_queue_on_page() - if(href_list["remove_from_queue"]) - remove_from_queue(filter.getNum("remove_from_queue")) - return update_queue_on_page() - if(href_list["partset_to_queue"]) - add_part_set_to_queue(filter.get("partset_to_queue")) - return update_queue_on_page() - if(href_list["process_queue"]) - spawn(0) - if(processing_queue || being_built) - return 0 - processing_queue = 1 - process_queue() - processing_queue = 0 - if(href_list["clear_temp"]) - temp = null - if(href_list["screen"]) - screen = href_list["screen"] - if(href_list["queue_move"] && href_list["index"]) - var/index = filter.getNum("index") - var/new_index = index + filter.getNum("queue_move") - if(isnum(index) && isnum(new_index) && IsInteger(index) && IsInteger(new_index)) - if(IsInRange(new_index,1,queue.len)) - queue.Swap(index,new_index) - return update_queue_on_page() - if(href_list["clear_queue"]) - queue = list() - return update_queue_on_page() - if(href_list["sync"]) - sync() - if(href_list["part_desc"]) - var/T = filter.getStr("part_desc") - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(D.build_type & MECHFAB) - if(D.id == T) - var/obj/part = D.build_path - temp = {"

    [initial(part.name)] description:

    - [initial(part.desc)]
    - Return - "} - break - - if(href_list["remove_mat"] && href_list["material"]) - materials.retrieve_sheets(text2num(href_list["remove_mat"]), href_list["material"]) - - updateUsrDialog() - return - -/obj/machinery/mecha_part_fabricator/on_deconstruction() - materials.retrieve_all() - ..() - -/obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) - if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W)) - return 1 - - if(exchange_parts(user, W)) - return 1 - - if(default_deconstruction_crowbar(W)) - return 1 - - if(istype(W, /obj/item/stack/sheet)) - - if(!is_insertion_ready(user)) - return 1 - - var/material_amount = materials.get_item_material_amount(W) - - if(!try_insert(user, W, material_amount)) - return 1 - - var/inserted = materials.insert_item(W) - if(inserted) - to_chat(user, "You insert [inserted] sheet\s into [src].") - if(W && W.materials.len) - if(!QDELETED(W)) - user.put_in_active_hand(W) - var/mat_overlay = "fab-load-[material2name(W.materials[1])]" - add_overlay(mat_overlay) - sleep(10) - if(!QDELETED(src)) - cut_overlay(mat_overlay) //No matter what the overlay shall still be deleted - - updateUsrDialog() - - else if(istype(W, /obj/item/weapon/ore/bluespace_crystal)) - - if(!is_insertion_ready(user)) - return 1 - - var/material_amount = materials.get_item_material_amount(W) - - if(!try_insert(user, W, material_amount)) - return 1 - - var/inserted = materials.insert_item(W) - if(inserted) - to_chat(user, "You add [W] to the [src].") - if(W && W.materials.len) - qdel(W) - var/mat_overlay = "fab-load-bluespace" - add_overlay(mat_overlay) - sleep(10) - if(!QDELETED(src)) - cut_overlay(mat_overlay) - - updateUsrDialog() - - else - return ..() - -/obj/machinery/mecha_part_fabricator/proc/material2name(ID) - return copytext(ID,2) - -/obj/machinery/mecha_part_fabricator/proc/is_insertion_ready(mob/user) - if(panel_open) - to_chat(user, "You can't load [src] while it's opened!") - return FALSE - if(being_built) - to_chat(user, "\The [src] is currently processing! Please wait until completion.") - return FALSE - - return TRUE - - -/obj/machinery/mecha_part_fabricator/proc/try_insert(mob/user, obj/item/I, material_amount) - if(!material_amount) - to_chat(user, "This object does not contain sufficient amounts of materials to be accepted by [src].") - return FALSE - if(!materials.has_space(material_amount)) - to_chat(user, "\The [src] is full. Please remove some materials from [src] in order to insert more.") - return FALSE - if(!user.temporarilyRemoveItemFromInventory(I)) - to_chat(user, "\The [I] is stuck to you and cannot be placed into [src].") - return FALSE - + cut_overlay("fab-active") + desc = initial(desc) + + var/location = get_step(src,(dir)) + var/obj/item/I = new D.build_path(location) + I.materials = res_coef + say("\The [I] is complete.") + being_built = null + + updateUsrDialog() + return 1 + +/obj/machinery/mecha_part_fabricator/proc/update_queue_on_page() + send_byjax(usr,"mecha_fabricator.browser","queue",list_queue()) + return + +/obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(set_name) + if(set_name in part_sets) + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(set_name in D.category) + add_to_queue(D) + +/obj/machinery/mecha_part_fabricator/proc/add_to_queue(D) + if(!istype(queue)) + queue = list() + if(D) + queue[++queue.len] = D + return queue.len + +/obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index) + if(!isnum(index) || !IsInteger(index) || !istype(queue) || (index<1 || index>queue.len)) + return 0 + queue.Cut(index,++index) + return 1 + +/obj/machinery/mecha_part_fabricator/proc/process_queue() + var/datum/design/D = queue[1] + if(!D) + remove_from_queue(1) + if(queue.len) + return process_queue() + else + return + temp = null + while(D) + if(stat&(NOPOWER|BROKEN)) + return 0 + if(!check_resources(D)) + say("Not enough resources. Queue processing stopped.") + temp = {"Not enough resources to build next part.
    + Try again | Return"} + return 0 + remove_from_queue(1) + build_part(D) + D = listgetindex(queue, 1) + say("Queue processing finished successfully.") + +/obj/machinery/mecha_part_fabricator/proc/list_queue() + var/output = "Queue contains:" + if(!istype(queue) || !queue.len) + output += "
    Nothing" + else + output += "
      " + var/i = 0 + for(var/datum/design/D in queue) + i++ + var/obj/part = D.build_path + output += "" + output += initial(part.name) + " - " + output += "[i>1?"":null] " + output += "[i↓":null] " + output += "Remove" + + output += "
    " + output += "\[Process queue | Clear queue\]" + return output + +/obj/machinery/mecha_part_fabricator/proc/sync() + temp = "Updating local R&D database..." + updateUsrDialog() + sleep(30) //only sleep if called by user + + for(var/obj/machinery/computer/rdconsole/RDC in oview(7,src)) + if(!RDC.sync) + continue + for(var/v in RDC.files.known_tech) + var/datum/tech/T = RDC.files.known_tech[v] + files.AddTech2Known(T) + for(var/v in RDC.files.known_designs) + var/datum/design/D = RDC.files.known_designs[v] + files.AddDesign2Known(D) + files.RefreshResearch() + temp = "Processed equipment designs.
    " + //check if the tech coefficients have changed + temp += "Return" + + updateUsrDialog() + say("Successfully synchronized with R&D server.") + return + + temp = "Unable to connect to local R&D Database.
    Please check your connections and try again.
    Return" + updateUsrDialog() + return + +/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, 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 + return round(initial(D.construction_time)*time_coeff, roundto) + +/obj/machinery/mecha_part_fabricator/attack_hand(mob/user) + if(!(..())) + return interact(user) + +/obj/machinery/mecha_part_fabricator/interact(mob/user as mob) + var/dat, left_part + if (..()) + return + user.set_machine(src) + var/turf/exit = get_step(src,(dir)) + if(exit.density) + say("Error! Part outlet is obstructed.") + return + if(temp) + left_part = temp + else if(being_built) + var/obj/I = being_built.build_path + left_part = {"Building [initial(I.name)].
    + Please wait until completion...
    "} + else + switch(screen) + if("main") + left_part = output_available_resources()+"
    " + left_part += "Sync with R&D servers
    " + for(var/part_set in part_sets) + left_part += "[part_set] - \[Add all parts to queue\]
    " + if("parts") + left_part += output_parts_list(part_set) + left_part += "
    Return" + dat = {" + + [name] + + + + + + + + + +
    + [left_part] + + [list_queue()] +
    + + "} + user << browse(dat, "window=mecha_fabricator;size=1000x430") + onclose(user, "mecha_fabricator") + return + +/obj/machinery/mecha_part_fabricator/Topic(href, href_list) + if(..()) + return + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) + if(href_list["part_set"]) + var/tpart_set = filter.getStr("part_set") + if(tpart_set) + if(tpart_set=="clear") + part_set = null + else + part_set = tpart_set + screen = "parts" + if(href_list["part"]) + var/T = filter.getStr("part") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + if(!processing_queue) + build_part(D) + else + add_to_queue(D) + break + if(href_list["add_to_queue"]) + var/T = filter.getStr("add_to_queue") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + add_to_queue(D) + break + return update_queue_on_page() + if(href_list["remove_from_queue"]) + remove_from_queue(filter.getNum("remove_from_queue")) + return update_queue_on_page() + if(href_list["partset_to_queue"]) + add_part_set_to_queue(filter.get("partset_to_queue")) + return update_queue_on_page() + if(href_list["process_queue"]) + spawn(0) + if(processing_queue || being_built) + return 0 + processing_queue = 1 + process_queue() + processing_queue = 0 + if(href_list["clear_temp"]) + temp = null + if(href_list["screen"]) + screen = href_list["screen"] + if(href_list["queue_move"] && href_list["index"]) + var/index = filter.getNum("index") + var/new_index = index + filter.getNum("queue_move") + if(isnum(index) && isnum(new_index) && IsInteger(index) && IsInteger(new_index)) + if(IsInRange(new_index,1,queue.len)) + queue.Swap(index,new_index) + return update_queue_on_page() + if(href_list["clear_queue"]) + queue = list() + return update_queue_on_page() + if(href_list["sync"]) + sync() + if(href_list["part_desc"]) + var/T = filter.getStr("part_desc") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + var/obj/part = D.build_path + temp = {"

    [initial(part.name)] description:

    + [initial(part.desc)]
    + Return + "} + break + + if(href_list["remove_mat"] && href_list["material"]) + materials.retrieve_sheets(text2num(href_list["remove_mat"]), href_list["material"]) + + updateUsrDialog() + return + +/obj/machinery/mecha_part_fabricator/on_deconstruction() + materials.retrieve_all() + ..() + +/obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W)) + return 1 + + if(exchange_parts(user, W)) + return 1 + + if(default_deconstruction_crowbar(W)) + return 1 + + if(istype(W, /obj/item/stack/sheet)) + + if(!is_insertion_ready(user)) + return 1 + + var/material_amount = materials.get_item_material_amount(W) + + if(!try_insert(user, W, material_amount)) + return 1 + + var/inserted = materials.insert_item(W) + if(inserted) + to_chat(user, "You insert [inserted] sheet\s into [src].") + if(W && W.materials.len) + if(!QDELETED(W)) + user.put_in_active_hand(W) + var/mat_overlay = "fab-load-[material2name(W.materials[1])]" + add_overlay(mat_overlay) + sleep(10) + if(!QDELETED(src)) + cut_overlay(mat_overlay) //No matter what the overlay shall still be deleted + + updateUsrDialog() + + else if(istype(W, /obj/item/weapon/ore/bluespace_crystal)) + + if(!is_insertion_ready(user)) + return 1 + + var/material_amount = materials.get_item_material_amount(W) + + if(!try_insert(user, W, material_amount)) + return 1 + + var/inserted = materials.insert_item(W) + if(inserted) + to_chat(user, "You add [W] to the [src].") + if(W && W.materials.len) + qdel(W) + var/mat_overlay = "fab-load-bluespace" + add_overlay(mat_overlay) + sleep(10) + if(!QDELETED(src)) + cut_overlay(mat_overlay) + + updateUsrDialog() + + else + return ..() + +/obj/machinery/mecha_part_fabricator/proc/material2name(ID) + return copytext(ID,2) + +/obj/machinery/mecha_part_fabricator/proc/is_insertion_ready(mob/user) + if(panel_open) + to_chat(user, "You can't load [src] while it's opened!") + return FALSE + if(being_built) + to_chat(user, "\The [src] is currently processing! Please wait until completion.") + return FALSE + + return TRUE + + +/obj/machinery/mecha_part_fabricator/proc/try_insert(mob/user, obj/item/I, material_amount) + if(!material_amount) + to_chat(user, "This object does not contain sufficient amounts of materials to be accepted by [src].") + return FALSE + if(!materials.has_space(material_amount)) + to_chat(user, "\The [src] is full. Please remove some materials from [src] in order to insert more.") + return FALSE + if(!user.temporarilyRemoveItemFromInventory(I)) + to_chat(user, "\The [I] is stuck to you and cannot be placed into [src].") + return FALSE + return TRUE \ No newline at end of file diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 8a66a88f33..d409dec03c 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1,1059 +1,1058 @@ -#define MECHA_INT_FIRE 1 -#define MECHA_INT_TEMP_CONTROL 2 -#define MECHA_INT_SHORT_CIRCUIT 4 -#define MECHA_INT_TANK_BREACH 8 -#define MECHA_INT_CONTROL_LOST 16 - -#define MELEE 1 -#define RANGED 2 - -#define FRONT_ARMOUR 1 -#define SIDE_ARMOUR 2 -#define BACK_ARMOUR 3 - - -/obj/mecha - name = "mecha" - desc = "Exosuit" - icon = 'icons/mecha/mecha.dmi' - density = 1 //Dense. To raise the heat. - opacity = 1 ///opaque. Menacing. - anchored = 1 //no pulling around. - resistance_flags = FIRE_PROOF | ACID_PROOF - layer = BELOW_MOB_LAYER//icon draw layer - infra_luminosity = 15 //byond implementation is bugged. - force = 5 - flags = HEAR - var/can_move = 1 - var/mob/living/carbon/occupant = null - var/step_in = 10 //make a step in step_in/10 sec. - var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. - var/step_energy_drain = 10 - var/melee_energy_drain = 15 - obj_integrity = 300 //obj_integrity is health - max_integrity = 300 - var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. - armor = list(melee = 20, bullet = 10, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) - var/list/facing_modifiers = list(FRONT_ARMOUR = 1.5, SIDE_ARMOUR = 1, BACK_ARMOUR = 0.5) - var/obj/item/weapon/stock_parts/cell/cell - var/state = 0 - var/list/log = new - var/last_message = 0 - var/add_req_access = 1 - var/maint_access = 0 - var/dna_lock//dna-locking the mech - var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference - var/datum/effect_system/spark_spread/spark_system = new - var/lights = 0 - var/lights_power = 6 - var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference - - var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it. - //inner atmos - var/use_internal_tank = 0 - var/internal_tank_valve = ONE_ATMOSPHERE - var/obj/machinery/portable_atmospherics/canister/internal_tank - var/datum/gas_mixture/cabin_air - var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port = null - +#define MECHA_INT_FIRE 1 +#define MECHA_INT_TEMP_CONTROL 2 +#define MECHA_INT_SHORT_CIRCUIT 4 +#define MECHA_INT_TANK_BREACH 8 +#define MECHA_INT_CONTROL_LOST 16 + +#define MELEE 1 +#define RANGED 2 + +#define FRONT_ARMOUR 1 +#define SIDE_ARMOUR 2 +#define BACK_ARMOUR 3 + + +/obj/mecha + name = "mecha" + desc = "Exosuit" + icon = 'icons/mecha/mecha.dmi' + density = 1 //Dense. To raise the heat. + opacity = 1 ///opaque. Menacing. + anchored = 1 //no pulling around. + resistance_flags = FIRE_PROOF | ACID_PROOF + layer = BELOW_MOB_LAYER//icon draw layer + infra_luminosity = 15 //byond implementation is bugged. + force = 5 + flags = HEAR + var/can_move = 1 + var/mob/living/carbon/occupant = null + var/step_in = 10 //make a step in step_in/10 sec. + var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. + var/step_energy_drain = 10 + var/melee_energy_drain = 15 + obj_integrity = 300 //obj_integrity is health + max_integrity = 300 + var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. + armor = list(melee = 20, bullet = 10, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + var/list/facing_modifiers = list(FRONT_ARMOUR = 1.5, SIDE_ARMOUR = 1, BACK_ARMOUR = 0.5) + var/obj/item/weapon/stock_parts/cell/cell + var/state = 0 + var/list/log = new + var/last_message = 0 + var/add_req_access = 1 + var/maint_access = 0 + var/dna_lock//dna-locking the mech + var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference + var/datum/effect_system/spark_spread/spark_system = new + var/lights = 0 + var/lights_power = 6 + var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference + + var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it. + //inner atmos + var/use_internal_tank = 0 + var/internal_tank_valve = ONE_ATMOSPHERE + var/obj/machinery/portable_atmospherics/canister/internal_tank + var/datum/gas_mixture/cabin_air + var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port = null + var/obj/item/device/radio/mech/radio - var/list/trackers = list() - - var/max_temperature = 25000 - var/internal_damage_threshold = 50 //health percentage below which internal damage is possible - var/internal_damage = 0 //contains bitflags - - var/list/operation_req_access = list()//required access level for mecha operation - var/list/internals_req_access = list(GLOB.access_engine,GLOB.access_robotics)//required access level to open cell compartment - - var/wreckage - - var/list/equipment = new - var/obj/item/mecha_parts/mecha_equipment/selected - var/max_equip = 3 - var/datum/events/events - - var/stepsound = 'sound/mecha/mechstep.ogg' - var/turnsound = 'sound/mecha/mechturn.ogg' - - var/melee_cooldown = 10 - var/melee_can_hit = 1 - - //Action datums - var/datum/action/innate/mecha/mech_eject/eject_action = new - var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new - var/datum/action/innate/mecha/mech_cycle_equip/cycle_action = new - var/datum/action/innate/mecha/mech_toggle_lights/lights_action = new - var/datum/action/innate/mecha/mech_view_stats/stats_action = new - var/datum/action/innate/mecha/mech_toggle_thrusters/thrusters_action = new - var/datum/action/innate/mecha/mech_defence_mode/defense_action = new - var/datum/action/innate/mecha/mech_overload_mode/overload_action = new - var/datum/effect_system/smoke_spread/smoke_system = new //not an action, but trigged by one - var/datum/action/innate/mecha/mech_smoke/smoke_action = new - var/datum/action/innate/mecha/mech_zoom/zoom_action = new - var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new - var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new - var/datum/action/innate/mecha/strafe/strafing_action = new - - //Action vars - var/thrusters_active = FALSE - var/defence_mode = FALSE - var/defence_mode_deflect_chance = 35 - var/leg_overload_mode = FALSE - var/leg_overload_coeff = 100 - var/zoom_mode = FALSE - var/smoke = 5 - var/smoke_ready = 1 - var/smoke_cooldown = 100 - var/phasing = FALSE - var/phasing_energy_drain = 200 - var/phase_state = "" //icon_state when phasing - var/strafe = FALSE //If we are strafing - - var/nextsmash = 0 - var/smashcooldown = 3 //deciseconds - - var/occupant_sight_flags = 0 //sight flags to give to the occupant (e.g. mech mining scanner gives meson-like vision) - - hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD) - + var/list/trackers = list() + + var/max_temperature = 25000 + var/internal_damage_threshold = 50 //health percentage below which internal damage is possible + var/internal_damage = 0 //contains bitflags + + var/list/operation_req_access = list()//required access level for mecha operation + var/list/internals_req_access = list(GLOB.access_engine,GLOB.access_robotics)//required access level to open cell compartment + + var/wreckage + + var/list/equipment = new + var/obj/item/mecha_parts/mecha_equipment/selected + var/max_equip = 3 + var/datum/events/events + + var/stepsound = 'sound/mecha/mechstep.ogg' + var/turnsound = 'sound/mecha/mechturn.ogg' + + var/melee_cooldown = 10 + var/melee_can_hit = 1 + + //Action datums + var/datum/action/innate/mecha/mech_eject/eject_action = new + var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new + var/datum/action/innate/mecha/mech_cycle_equip/cycle_action = new + var/datum/action/innate/mecha/mech_toggle_lights/lights_action = new + var/datum/action/innate/mecha/mech_view_stats/stats_action = new + var/datum/action/innate/mecha/mech_toggle_thrusters/thrusters_action = new + var/datum/action/innate/mecha/mech_defence_mode/defense_action = new + var/datum/action/innate/mecha/mech_overload_mode/overload_action = new + var/datum/effect_system/smoke_spread/smoke_system = new //not an action, but trigged by one + var/datum/action/innate/mecha/mech_smoke/smoke_action = new + var/datum/action/innate/mecha/mech_zoom/zoom_action = new + var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new + var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new + var/datum/action/innate/mecha/strafe/strafing_action = new + + //Action vars + var/thrusters_active = FALSE + var/defence_mode = FALSE + var/defence_mode_deflect_chance = 35 + var/leg_overload_mode = FALSE + var/leg_overload_coeff = 100 + var/zoom_mode = FALSE + var/smoke = 5 + var/smoke_ready = 1 + var/smoke_cooldown = 100 + var/phasing = FALSE + var/phasing_energy_drain = 200 + var/phase_state = "" //icon_state when phasing + var/strafe = FALSE //If we are strafing + + var/nextsmash = 0 + var/smashcooldown = 3 //deciseconds + + var/occupant_sight_flags = 0 //sight flags to give to the occupant (e.g. mech mining scanner gives meson-like vision) + + hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD) + /obj/item/device/radio/mech //this has to go somewhere - -/obj/mecha/Initialize() - . = ..() - events = new - icon_state += "-open" - add_radio() - add_cabin() - add_airtank() - spark_system.set_up(2, 0, src) - spark_system.attach(src) - smoke_system.set_up(3, src) - smoke_system.attach(src) - add_cell() - START_PROCESSING(SSobj, src) - GLOB.poi_list |= src - log_message("[src.name] created.") - GLOB.mechas_list += src //global mech list - prepare_huds() - var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] - diag_hud.add_to_hud(src) - diag_hud_set_mechhealth() - diag_hud_set_mechcell() - diag_hud_set_mechstat() - diag_hud_set_mechtracking() - -/obj/mecha/get_cell() - return cell - - -/obj/mecha/Destroy() - go_out() - var/mob/living/silicon/ai/AI - for(var/mob/M in src) //Let's just be ultra sure - if(isAI(M)) - occupant = null - AI = M //AIs are loaded into the mech computer itself. When the mech dies, so does the AI. They can be recovered with an AI card from the wreck. - else - M.forceMove(loc) - if(wreckage) + +/obj/mecha/Initialize() + . = ..() + events = new + icon_state += "-open" + add_radio() + add_cabin() + add_airtank() + spark_system.set_up(2, 0, src) + spark_system.attach(src) + smoke_system.set_up(3, src) + smoke_system.attach(src) + add_cell() + START_PROCESSING(SSobj, src) + GLOB.poi_list |= src + log_message("[src.name] created.") + GLOB.mechas_list += src //global mech list + prepare_huds() + var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] + diag_hud.add_to_hud(src) + diag_hud_set_mechhealth() + diag_hud_set_mechcell() + diag_hud_set_mechstat() + diag_hud_set_mechtracking() + +/obj/mecha/get_cell() + return cell + +/obj/mecha/Destroy() + go_out() + var/mob/living/silicon/ai/AI + for(var/mob/M in src) //Let's just be ultra sure + if(isAI(M)) + occupant = null + AI = M //AIs are loaded into the mech computer itself. When the mech dies, so does the AI. They can be recovered with an AI card from the wreck. + else + M.forceMove(loc) + if(wreckage) if(prob(30)) explosion(get_turf(src), 0, 0, 1, 3) - var/obj/structure/mecha_wreckage/WR = new wreckage(loc, AI) - for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) - if(E.salvageable && prob(30)) - WR.crowbar_salvage += E - E.detach(WR) //detaches from src into WR - E.equip_ready = 1 - else - E.detach(loc) - qdel(E) - if(cell) - WR.crowbar_salvage += cell - cell.forceMove(WR) - cell.charge = rand(0, cell.charge) - if(internal_tank) - WR.crowbar_salvage += internal_tank - internal_tank.forceMove(WR) - else - for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) - E.detach(loc) - qdel(E) - if(cell) - qdel(cell) - if(internal_tank) - qdel(internal_tank) - if(AI) - AI.gib() //No wreck, no AI to recover - STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) - equipment.Cut() - cell = null - internal_tank = null - if(loc) - loc.assume_air(cabin_air) - air_update_turf() - else - qdel(cabin_air) - cabin_air = null - qdel(spark_system) - spark_system = null - qdel(smoke_system) - smoke_system = null - - GLOB.mechas_list -= src //global mech list - return ..() - -//////////////////////// -////// Helpers ///////// -//////////////////////// - -/obj/mecha/proc/add_airtank() - internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) - return internal_tank - -/obj/mecha/proc/add_cell(var/obj/item/weapon/stock_parts/cell/C=null) - if(C) - C.forceMove(src) - cell = C - return - cell = new(src) - cell.charge = 15000 - cell.maxcharge = 15000 - -/obj/mecha/proc/add_cabin() - cabin_air = new - cabin_air.temperature = T20C - cabin_air.volume = 200 - cabin_air.assert_gases("o2","n2") - cabin_air.gases["o2"][MOLES] = O2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) - cabin_air.gases["n2"][MOLES] = N2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) - return cabin_air - -/obj/mecha/proc/add_radio() - radio = new(src) - radio.name = "[src] radio" - radio.icon = icon - radio.icon_state = icon_state - radio.subspace_transmission = 1 - -/obj/mecha/proc/can_use(mob/user) - if(user != occupant) - return 0 - if(user && ismob(user)) - if(!user.incapacitated()) - return 1 - return 0 - -//////////////////////////////////////////////////////////////////////////////// - -/obj/mecha/examine(mob/user) - ..() - var/integrity = obj_integrity*100/max_integrity - switch(integrity) - if(85 to 100) - to_chat(user, "It's fully intact.") - if(65 to 85) - to_chat(user, "It's slightly damaged.") - if(45 to 65) - to_chat(user, "It's badly damaged.") - if(25 to 45) - to_chat(user, "It's heavily damaged.") - else - to_chat(user, "It's falling apart.") - if(equipment && equipment.len) - to_chat(user, "It's equipped with:") - for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment) + var/obj/structure/mecha_wreckage/WR = new wreckage(loc, AI) + for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) + if(E.salvageable && prob(30)) + WR.crowbar_salvage += E + E.detach(WR) //detaches from src into WR + E.equip_ready = 1 + else + E.detach(loc) + qdel(E) + if(cell) + WR.crowbar_salvage += cell + cell.forceMove(WR) + cell.charge = rand(0, cell.charge) + if(internal_tank) + WR.crowbar_salvage += internal_tank + internal_tank.forceMove(WR) + else + for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) + E.detach(loc) + qdel(E) + if(cell) + qdel(cell) + if(internal_tank) + qdel(internal_tank) + if(AI) + AI.gib() //No wreck, no AI to recover + STOP_PROCESSING(SSobj, src) + GLOB.poi_list.Remove(src) + equipment.Cut() + cell = null + internal_tank = null + if(loc) + loc.assume_air(cabin_air) + air_update_turf() + else + qdel(cabin_air) + cabin_air = null + qdel(spark_system) + spark_system = null + qdel(smoke_system) + smoke_system = null + + GLOB.mechas_list -= src //global mech list + return ..() + +//////////////////////// +////// Helpers ///////// +//////////////////////// + +/obj/mecha/proc/add_airtank() + internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) + return internal_tank + +/obj/mecha/proc/add_cell(var/obj/item/weapon/stock_parts/cell/C=null) + if(C) + C.forceMove(src) + cell = C + return + cell = new(src) + cell.charge = 15000 + cell.maxcharge = 15000 + +/obj/mecha/proc/add_cabin() + cabin_air = new + cabin_air.temperature = T20C + cabin_air.volume = 200 + cabin_air.assert_gases("o2","n2") + cabin_air.gases["o2"][MOLES] = O2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + cabin_air.gases["n2"][MOLES] = N2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + return cabin_air + +/obj/mecha/proc/add_radio() + radio = new(src) + radio.name = "[src] radio" + radio.icon = icon + radio.icon_state = icon_state + radio.subspace_transmission = 1 + +/obj/mecha/proc/can_use(mob/user) + if(user != occupant) + return 0 + if(user && ismob(user)) + if(!user.incapacitated()) + return 1 + return 0 + +//////////////////////////////////////////////////////////////////////////////// + +/obj/mecha/examine(mob/user) + ..() + var/integrity = obj_integrity*100/max_integrity + switch(integrity) + if(85 to 100) + to_chat(user, "It's fully intact.") + if(65 to 85) + to_chat(user, "It's slightly damaged.") + if(45 to 65) + to_chat(user, "It's badly damaged.") + if(25 to 45) + to_chat(user, "It's heavily damaged.") + else + to_chat(user, "It's falling apart.") + if(equipment && equipment.len) + to_chat(user, "It's equipped with:") + for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment) to_chat(user, "[bicon(ME)] [ME]") - -//processing internal damage, temperature, air regulation, alert updates, lights power use. -/obj/mecha/process() - var/internal_temp_regulation = 1 - - if(internal_damage) - if(internal_damage & MECHA_INT_FIRE) - if(!(internal_damage & MECHA_INT_TEMP_CONTROL) && prob(5)) - clearInternalDamage(MECHA_INT_FIRE) - if(internal_tank) - var/datum/gas_mixture/int_tank_air = internal_tank.return_air() - if(int_tank_air.return_pressure() > internal_tank.maximum_pressure && !(internal_damage & MECHA_INT_TANK_BREACH)) - setInternalDamage(MECHA_INT_TANK_BREACH) - if(int_tank_air && int_tank_air.return_volume() > 0) //heat the air_contents - int_tank_air.temperature = min(6000+T0C, int_tank_air.temperature+rand(10,15)) - if(cabin_air && cabin_air.return_volume()>0) - cabin_air.temperature = min(6000+T0C, cabin_air.return_temperature()+rand(10,15)) - if(cabin_air.return_temperature() > max_temperature/2) - take_damage(4/round(max_temperature/cabin_air.return_temperature(),0.1), BURN, 0, 0) - - if(internal_damage & MECHA_INT_TEMP_CONTROL) - internal_temp_regulation = 0 - - if(internal_damage & MECHA_INT_TANK_BREACH) //remove some air from internal tank - if(internal_tank) - var/datum/gas_mixture/int_tank_air = internal_tank.return_air() - var/datum/gas_mixture/leaked_gas = int_tank_air.remove_ratio(0.10) - if(loc) - loc.assume_air(leaked_gas) - air_update_turf() - else - qdel(leaked_gas) - - if(internal_damage & MECHA_INT_SHORT_CIRCUIT) - if(get_charge()) - spark_system.start() - cell.charge -= min(20,cell.charge) - cell.maxcharge -= min(20,cell.maxcharge) - - if(internal_temp_regulation) - if(cabin_air && cabin_air.return_volume() > 0) - var/delta = cabin_air.temperature - T20C - cabin_air.temperature -= max(-10, min(10, round(delta/4,0.1))) - - if(internal_tank) - var/datum/gas_mixture/tank_air = internal_tank.return_air() - - var/release_pressure = internal_tank_valve - var/cabin_pressure = cabin_air.return_pressure() - var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2) - var/transfer_moles = 0 - if(pressure_delta > 0) //cabin pressure lower than release pressure - if(tank_air.return_temperature() > 0) - transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) - var/datum/gas_mixture/removed = tank_air.remove(transfer_moles) - cabin_air.merge(removed) - else if(pressure_delta < 0) //cabin pressure higher than release pressure - var/datum/gas_mixture/t_air = return_air() - pressure_delta = cabin_pressure - release_pressure - if(t_air) - pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta) - if(pressure_delta > 0) //if location pressure is lower than cabin pressure - transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) - var/datum/gas_mixture/removed = cabin_air.remove(transfer_moles) - if(t_air) - t_air.merge(removed) - else //just delete the cabin gas, we're in space or some shit - qdel(removed) - - if(occupant) - if(cell) - var/cellcharge = cell.charge/cell.maxcharge - switch(cellcharge) - if(0.75 to INFINITY) - occupant.clear_alert("charge") - if(0.5 to 0.75) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 1) - if(0.25 to 0.5) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 2) - if(0.01 to 0.25) - occupant.throw_alert("charge",/obj/screen/alert/lowcell, 3) - else - occupant.throw_alert("charge",/obj/screen/alert/emptycell) - - var/integrity = obj_integrity/max_integrity*100 - switch(integrity) - if(30 to 45) - occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 1) - if(15 to 35) - occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 2) - if(-INFINITY to 15) - occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 3) - else - occupant.clear_alert("mech damage") - var/actual_loc = occupant.loc - if(istype(actual_loc, /obj/item/device/mmi)) - var/obj/item/device/mmi/M = actual_loc - actual_loc = M.mecha - if(actual_loc != src) //something went wrong - occupant.clear_alert("charge") - occupant.clear_alert("mech damage") - RemoveActions(occupant, human_occupant=1) - occupant = null - - if(lights) - var/lights_energy_drain = 2 - use_power(lights_energy_drain) - -//Diagnostic HUD updates - diag_hud_set_mechhealth() - diag_hud_set_mechcell() - diag_hud_set_mechstat() - diag_hud_set_mechtracking() - - -/obj/mecha/proc/drop_item()//Derpfix, but may be useful in future for engineering exosuits. - return - -/obj/mecha/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) - if(speaker == occupant) - if(radio.broadcasting) - radio.talk_into(speaker, text, , spans, message_language) - //flick speech bubble - var/list/speech_bubble_recipients = list() - for(var/mob/M in get_hearers_in_view(7,src)) - if(M.client) - speech_bubble_recipients.Add(M.client) - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) - -//////////////////////////// -///// Action processing //// -//////////////////////////// - - -/obj/mecha/proc/click_action(atom/target,mob/user,params) - if(!occupant || occupant != user ) - return - if(!locate(/turf) in list(target,target.loc)) // Prevents inventory from being drilled - return - if(phasing) - occupant_message("Unable to interact with objects while phasing") - return - if(user.incapacitated()) - return - if(state) - occupant_message("Maintenance protocols in effect.") - return - if(!get_charge()) - return - if(src == target) - return - var/dir_to_target = get_dir(src,target) - if(dir_to_target && !(dir_to_target & dir))//wrong direction - return - if(internal_damage & MECHA_INT_CONTROL_LOST) - target = safepick(view(3,target)) - if(!target) - return - if(!target.Adjacent(src)) - if(selected && selected.is_ranged()) - if(selected.action(target,params)) - selected.start_cooldown() - else if(selected && selected.is_melee()) - if(selected.action(target,params)) - selected.start_cooldown() - else - if(internal_damage & MECHA_INT_CONTROL_LOST) - target = safepick(oview(1,src)) - if(!melee_can_hit || !istype(target, /atom)) - return - target.mech_melee_attack(src) - melee_can_hit = 0 - spawn(melee_cooldown) - melee_can_hit = 1 - - -/obj/mecha/proc/range_action(atom/target) - return - - -////////////////////////////////// -//////// Movement procs //////// -////////////////////////////////// - -/obj/mecha/Move(atom/newloc, direct) - . = ..() - if(.) - events.fireEvent("onMove",get_turf(src)) - -/obj/mecha/Process_Spacemove(var/movement_dir = 0) - . = ..() - if(.) - return 1 - if(thrusters_active && movement_dir && use_power(step_energy_drain)) - return 1 - - var/atom/movable/backup = get_spacemove_backup() - if(backup) - if(istype(backup) && movement_dir && !backup.anchored) - if(backup.newtonian_move(turn(movement_dir, 180))) - if(occupant) - to_chat(occupant, "You push off of [backup] to propel yourself.") - return 1 - -/obj/mecha/relaymove(mob/user,direction) - if(!direction) - return - if(user != occupant) //While not "realistic", this piece is player friendly. - user.forceMove(get_turf(src)) - to_chat(user, "You climb out from [src].") - return 0 - if(connected_port) - if(world.time - last_message > 20) - occupant_message("Unable to move while connected to the air system port!") - last_message = world.time - return 0 - if(state) - occupant_message("Maintenance protocols in effect.") - return - return domove(direction) - -/obj/mecha/proc/domove(direction) - if(!can_move) - return 0 - if(!Process_Spacemove(direction)) - return 0 - if(!has_charge(step_energy_drain)) - return 0 - if(defence_mode) - if(world.time - last_message > 20) - occupant_message("Unable to move while in defence mode") - last_message = world.time - return 0 - if(zoom_mode) - if(world.time - last_message > 20) - occupant_message("Unable to move while in zoom mode.") - last_message = world.time - return 0 - - var/move_result = 0 - if(internal_damage & MECHA_INT_CONTROL_LOST) - move_result = mechsteprand() - else if(dir != direction && !strafe) - move_result = mechturn(direction) - else - move_result = mechstep(direction) - if(move_result) - use_power(step_energy_drain) - can_move = 0 - spawn(step_in) - can_move = 1 - return 1 - return 0 - - -/obj/mecha/proc/mechturn(direction) - setDir(direction) - if(turnsound) - playsound(src,turnsound,40,1) - return 1 - -/obj/mecha/proc/mechstep(direction) - var/current_dir = dir - var/result = step(src,direction) - if(strafe) - setDir(current_dir) - if(result && stepsound) - playsound(src,stepsound,40,1) - return result - -/obj/mecha/proc/mechsteprand() - var/result = step_rand(src) - if(result && stepsound) - playsound(src,stepsound,40,1) - return result - -/obj/mecha/Bump(var/atom/obstacle, yes) - if(phasing && get_charge() >= phasing_energy_drain && !throwing) - spawn() - if(can_move) - can_move = 0 - if(phase_state) - flick(phase_state, src) - forceMove(get_step(src,dir)) - use_power(phasing_energy_drain) - sleep(step_in*3) - can_move = 1 - else - if(yes) - if(..()) //mech was thrown - return - if(bumpsmash && occupant) //Need a pilot to push the PUNCH button. - if(nextsmash < world.time) - obstacle.mech_melee_attack(src) - if(!obstacle || !obstacle.density) - step(src,dir) - nextsmash = world.time + smashcooldown - if(isobj(obstacle)) - var/obj/O = obstacle - if(!O.anchored) - step(obstacle, dir) - else if(ismob(obstacle)) - var/mob/M = obstacle - if(!M.anchored) - step(obstacle, dir) - - - - - -/////////////////////////////////// -//////// Internal damage //////// -/////////////////////////////////// - -/obj/mecha/proc/check_for_internal_damage(list/possible_int_damage,ignore_threshold=null) - if(!islist(possible_int_damage) || isemptylist(possible_int_damage)) return - if(prob(20)) - if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) - for(var/T in possible_int_damage) - if(internal_damage & T) - possible_int_damage -= T - var/int_dam_flag = safepick(possible_int_damage) - if(int_dam_flag) - setInternalDamage(int_dam_flag) - if(prob(5)) - if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) - var/obj/item/mecha_parts/mecha_equipment/ME = safepick(equipment) - if(ME) - qdel(ME) - return - -/obj/mecha/proc/setInternalDamage(int_dam_flag) - internal_damage |= int_dam_flag - log_append_to_last("Internal damage of type [int_dam_flag].",1) - occupant << sound('sound/machines/warning-buzzer.ogg',wait=0) - diag_hud_set_mechstat() - return - -/obj/mecha/proc/clearInternalDamage(int_dam_flag) - if(internal_damage & int_dam_flag) - switch(int_dam_flag) - if(MECHA_INT_TEMP_CONTROL) - occupant_message("Life support system reactivated.") - if(MECHA_INT_FIRE) - occupant_message("Internal fire extinquished.") - if(MECHA_INT_TANK_BREACH) - occupant_message("Damaged internal tank has been sealed.") - internal_damage &= ~int_dam_flag - diag_hud_set_mechstat() - -///////////////////////////////////// -//////////// AI piloting //////////// -///////////////////////////////////// - -/obj/mecha/attack_ai(mob/living/silicon/ai/user) - if(!isAI(user)) - return - //Allows the Malf to scan a mech's status and loadout, helping it to decide if it is a worthy chariot. - if(user.can_dominate_mechs) - examine(user) //Get diagnostic information! - for(var/obj/item/mecha_parts/mecha_tracking/B in trackers) - to_chat(user, "Warning: Tracking Beacon detected. Enter at your own risk. Beacon Data:") - to_chat(user, "[B.get_mecha_info()]") - break - //Nothing like a big, red link to make the player feel powerful! - to_chat(user, "ASSUME DIRECT CONTROL?
    ") - else - examine(user) - if(occupant) - to_chat(user, "This exosuit has a pilot and cannot be controlled.") - return - var/can_control_mech = 0 - for(var/obj/item/mecha_parts/mecha_tracking/ai_control/A in trackers) - can_control_mech = 1 + +//processing internal damage, temperature, air regulation, alert updates, lights power use. +/obj/mecha/process() + var/internal_temp_regulation = 1 + + if(internal_damage) + if(internal_damage & MECHA_INT_FIRE) + if(!(internal_damage & MECHA_INT_TEMP_CONTROL) && prob(5)) + clearInternalDamage(MECHA_INT_FIRE) + if(internal_tank) + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + if(int_tank_air.return_pressure() > internal_tank.maximum_pressure && !(internal_damage & MECHA_INT_TANK_BREACH)) + setInternalDamage(MECHA_INT_TANK_BREACH) + if(int_tank_air && int_tank_air.return_volume() > 0) //heat the air_contents + int_tank_air.temperature = min(6000+T0C, int_tank_air.temperature+rand(10,15)) + if(cabin_air && cabin_air.return_volume()>0) + cabin_air.temperature = min(6000+T0C, cabin_air.return_temperature()+rand(10,15)) + if(cabin_air.return_temperature() > max_temperature/2) + take_damage(4/round(max_temperature/cabin_air.return_temperature(),0.1), BURN, 0, 0) + + if(internal_damage & MECHA_INT_TEMP_CONTROL) + internal_temp_regulation = 0 + + if(internal_damage & MECHA_INT_TANK_BREACH) //remove some air from internal tank + if(internal_tank) + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + var/datum/gas_mixture/leaked_gas = int_tank_air.remove_ratio(0.10) + if(loc) + loc.assume_air(leaked_gas) + air_update_turf() + else + qdel(leaked_gas) + + if(internal_damage & MECHA_INT_SHORT_CIRCUIT) + if(get_charge()) + spark_system.start() + cell.charge -= min(20,cell.charge) + cell.maxcharge -= min(20,cell.maxcharge) + + if(internal_temp_regulation) + if(cabin_air && cabin_air.return_volume() > 0) + var/delta = cabin_air.temperature - T20C + cabin_air.temperature -= max(-10, min(10, round(delta/4,0.1))) + + if(internal_tank) + var/datum/gas_mixture/tank_air = internal_tank.return_air() + + var/release_pressure = internal_tank_valve + var/cabin_pressure = cabin_air.return_pressure() + var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2) + var/transfer_moles = 0 + if(pressure_delta > 0) //cabin pressure lower than release pressure + if(tank_air.return_temperature() > 0) + transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = tank_air.remove(transfer_moles) + cabin_air.merge(removed) + else if(pressure_delta < 0) //cabin pressure higher than release pressure + var/datum/gas_mixture/t_air = return_air() + pressure_delta = cabin_pressure - release_pressure + if(t_air) + pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta) + if(pressure_delta > 0) //if location pressure is lower than cabin pressure + transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = cabin_air.remove(transfer_moles) + if(t_air) + t_air.merge(removed) + else //just delete the cabin gas, we're in space or some shit + qdel(removed) + + if(occupant) + if(cell) + var/cellcharge = cell.charge/cell.maxcharge + switch(cellcharge) + if(0.75 to INFINITY) + occupant.clear_alert("charge") + if(0.5 to 0.75) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 1) + if(0.25 to 0.5) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 2) + if(0.01 to 0.25) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 3) + else + occupant.throw_alert("charge",/obj/screen/alert/emptycell) + + var/integrity = obj_integrity/max_integrity*100 + switch(integrity) + if(30 to 45) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 1) + if(15 to 35) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 2) + if(-INFINITY to 15) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 3) + else + occupant.clear_alert("mech damage") + var/actual_loc = occupant.loc + if(istype(actual_loc, /obj/item/device/mmi)) + var/obj/item/device/mmi/M = actual_loc + actual_loc = M.mecha + if(actual_loc != src) //something went wrong + occupant.clear_alert("charge") + occupant.clear_alert("mech damage") + RemoveActions(occupant, human_occupant=1) + occupant = null + + if(lights) + var/lights_energy_drain = 2 + use_power(lights_energy_drain) + +//Diagnostic HUD updates + diag_hud_set_mechhealth() + diag_hud_set_mechcell() + diag_hud_set_mechstat() + diag_hud_set_mechtracking() + + +/obj/mecha/proc/drop_item()//Derpfix, but may be useful in future for engineering exosuits. + return + +/obj/mecha/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) + if(speaker == occupant) + if(radio.broadcasting) + radio.talk_into(speaker, text, , spans, message_language) + //flick speech bubble + var/list/speech_bubble_recipients = list() + for(var/mob/M in get_hearers_in_view(7,src)) + if(M.client) + speech_bubble_recipients.Add(M.client) + INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + +//////////////////////////// +///// Action processing //// +//////////////////////////// + + +/obj/mecha/proc/click_action(atom/target,mob/user,params) + if(!occupant || occupant != user ) + return + if(!locate(/turf) in list(target,target.loc)) // Prevents inventory from being drilled + return + if(phasing) + occupant_message("Unable to interact with objects while phasing") + return + if(user.incapacitated()) + return + if(state) + occupant_message("Maintenance protocols in effect.") + return + if(!get_charge()) + return + if(src == target) + return + var/dir_to_target = get_dir(src,target) + if(dir_to_target && !(dir_to_target & dir))//wrong direction + return + if(internal_damage & MECHA_INT_CONTROL_LOST) + target = safepick(view(3,target)) + if(!target) + return + if(!target.Adjacent(src)) + if(selected && selected.is_ranged()) + if(selected.action(target,params)) + selected.start_cooldown() + else if(selected && selected.is_melee()) + if(selected.action(target,params)) + selected.start_cooldown() + else + if(internal_damage & MECHA_INT_CONTROL_LOST) + target = safepick(oview(1,src)) + if(!melee_can_hit || !istype(target, /atom)) + return + target.mech_melee_attack(src) + melee_can_hit = 0 + spawn(melee_cooldown) + melee_can_hit = 1 + + +/obj/mecha/proc/range_action(atom/target) + return + + +////////////////////////////////// +//////// Movement procs //////// +////////////////////////////////// + +/obj/mecha/Move(atom/newloc, direct) + . = ..() + if(.) + events.fireEvent("onMove",get_turf(src)) + +/obj/mecha/Process_Spacemove(var/movement_dir = 0) + . = ..() + if(.) + return 1 + if(thrusters_active && movement_dir && use_power(step_energy_drain)) + return 1 + + var/atom/movable/backup = get_spacemove_backup() + if(backup) + if(istype(backup) && movement_dir && !backup.anchored) + if(backup.newtonian_move(turn(movement_dir, 180))) + if(occupant) + to_chat(occupant, "You push off of [backup] to propel yourself.") + return 1 + +/obj/mecha/relaymove(mob/user,direction) + if(!direction) + return + if(user != occupant) //While not "realistic", this piece is player friendly. + user.forceMove(get_turf(src)) + to_chat(user, "You climb out from [src].") + return 0 + if(connected_port) + if(world.time - last_message > 20) + occupant_message("Unable to move while connected to the air system port!") + last_message = world.time + return 0 + if(state) + occupant_message("Maintenance protocols in effect.") + return + return domove(direction) + +/obj/mecha/proc/domove(direction) + if(!can_move) + return 0 + if(!Process_Spacemove(direction)) + return 0 + if(!has_charge(step_energy_drain)) + return 0 + if(defence_mode) + if(world.time - last_message > 20) + occupant_message("Unable to move while in defence mode") + last_message = world.time + return 0 + if(zoom_mode) + if(world.time - last_message > 20) + occupant_message("Unable to move while in zoom mode.") + last_message = world.time + return 0 + + var/move_result = 0 + if(internal_damage & MECHA_INT_CONTROL_LOST) + move_result = mechsteprand() + else if(dir != direction && !strafe) + move_result = mechturn(direction) + else + move_result = mechstep(direction) + if(move_result) + use_power(step_energy_drain) + can_move = 0 + spawn(step_in) + can_move = 1 + return 1 + return 0 + + +/obj/mecha/proc/mechturn(direction) + setDir(direction) + if(turnsound) + playsound(src,turnsound,40,1) + return 1 + +/obj/mecha/proc/mechstep(direction) + var/current_dir = dir + var/result = step(src,direction) + if(strafe) + setDir(current_dir) + if(result && stepsound) + playsound(src,stepsound,40,1) + return result + +/obj/mecha/proc/mechsteprand() + var/result = step_rand(src) + if(result && stepsound) + playsound(src,stepsound,40,1) + return result + +/obj/mecha/Bump(var/atom/obstacle, yes) + if(phasing && get_charge() >= phasing_energy_drain && !throwing) + spawn() + if(can_move) + can_move = 0 + if(phase_state) + flick(phase_state, src) + forceMove(get_step(src,dir)) + use_power(phasing_energy_drain) + sleep(step_in*3) + can_move = 1 + else + if(yes) + if(..()) //mech was thrown + return + if(bumpsmash && occupant) //Need a pilot to push the PUNCH button. + if(nextsmash < world.time) + obstacle.mech_melee_attack(src) + if(!obstacle || !obstacle.density) + step(src,dir) + nextsmash = world.time + smashcooldown + if(isobj(obstacle)) + var/obj/O = obstacle + if(!O.anchored) + step(obstacle, dir) + else if(ismob(obstacle)) + var/mob/M = obstacle + if(!M.anchored) + step(obstacle, dir) + + + + + +/////////////////////////////////// +//////// Internal damage //////// +/////////////////////////////////// + +/obj/mecha/proc/check_for_internal_damage(list/possible_int_damage,ignore_threshold=null) + if(!islist(possible_int_damage) || isemptylist(possible_int_damage)) return + if(prob(20)) + if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) + for(var/T in possible_int_damage) + if(internal_damage & T) + possible_int_damage -= T + var/int_dam_flag = safepick(possible_int_damage) + if(int_dam_flag) + setInternalDamage(int_dam_flag) + if(prob(5)) + if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) + var/obj/item/mecha_parts/mecha_equipment/ME = safepick(equipment) + if(ME) + qdel(ME) + return + +/obj/mecha/proc/setInternalDamage(int_dam_flag) + internal_damage |= int_dam_flag + log_append_to_last("Internal damage of type [int_dam_flag].",1) + occupant << sound('sound/machines/warning-buzzer.ogg',wait=0) + diag_hud_set_mechstat() + return + +/obj/mecha/proc/clearInternalDamage(int_dam_flag) + if(internal_damage & int_dam_flag) + switch(int_dam_flag) + if(MECHA_INT_TEMP_CONTROL) + occupant_message("Life support system reactivated.") + if(MECHA_INT_FIRE) + occupant_message("Internal fire extinquished.") + if(MECHA_INT_TANK_BREACH) + occupant_message("Damaged internal tank has been sealed.") + internal_damage &= ~int_dam_flag + diag_hud_set_mechstat() + +///////////////////////////////////// +//////////// AI piloting //////////// +///////////////////////////////////// + +/obj/mecha/attack_ai(mob/living/silicon/ai/user) + if(!isAI(user)) + return + //Allows the Malf to scan a mech's status and loadout, helping it to decide if it is a worthy chariot. + if(user.can_dominate_mechs) + examine(user) //Get diagnostic information! + for(var/obj/item/mecha_parts/mecha_tracking/B in trackers) + to_chat(user, "Warning: Tracking Beacon detected. Enter at your own risk. Beacon Data:") + to_chat(user, "[B.get_mecha_info()]") + break + //Nothing like a big, red link to make the player feel powerful! + to_chat(user, "ASSUME DIRECT CONTROL?
    ") + else + examine(user) + if(occupant) + to_chat(user, "This exosuit has a pilot and cannot be controlled.") + return + var/can_control_mech = 0 + for(var/obj/item/mecha_parts/mecha_tracking/ai_control/A in trackers) + can_control_mech = 1 to_chat(user, "[bicon(src)] Status of [name]:\n[A.get_mecha_info()]") - break - if(!can_control_mech) - to_chat(user, "You cannot control exosuits without AI control beacons installed.") - return - to_chat(user, "Take control of exosuit?
    ") - -/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) - if(!..()) - return - - //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(!state) //Mech must be in maint mode to allow carding. - to_chat(user, "[name] must have maintenance protocols active in order to allow a transfer.") - return - AI = occupant - if(!AI || !isAI(occupant)) //Mech does not have an AI for a pilot - to_chat(user, "No AI detected in the [name] onboard computer.") - return - AI.ai_restore_power()//So the AI initially has power. - AI.control_disabled = 1 - AI.radio_enabled = 0 - AI.disconnect_shell() - RemoveActions(AI, TRUE) - occupant = null - AI.forceMove(card) - card.AI = AI - AI.controlled_mech = null - AI.remote_control = null - icon_state = initial(icon_state)+"-open" - to_chat(AI, "You have been downloaded to a mobile storage device. Wireless connection offline.") - to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) removed from [name] and stored within local memory.") - - if(AI_MECH_HACK) //Called by AIs on the mech - AI.linked_core = new /obj/structure/AIcore/deactivated(AI.loc) - if(AI.can_dominate_mechs) - if(occupant) //Oh, I am sorry, were you using that? - to_chat(AI, "Pilot detected! Forced ejection initiated!") - to_chat(occupant, "You have been forcibly ejected!") - go_out(1) //IT IS MINE, NOW. SUCK IT, RD! - ai_enter_mech(AI, interaction) - - if(AI_TRANS_FROM_CARD) //Using an AI card to upload to a mech. - AI = card.AI - if(!AI) - to_chat(user, "There is no AI currently installed on this device.") - return - if(AI.deployed_shell) //Recall AI if shelled so it can be checked for a client - AI.disconnect_shell() - if(AI.stat || !AI.client) - to_chat(user, "[AI.name] is currently unresponsive, and cannot be uploaded.") - return - if(occupant || dna_lock) //Normal AIs cannot steal mechs! - to_chat(user, "Access denied. [name] is [occupant ? "currently occupied" : "secured with a DNA lock"].") - return - AI.control_disabled = 0 - AI.radio_enabled = 1 - to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") - card.AI = null - ai_enter_mech(AI, interaction) - -//Hack and From Card interactions share some code, so leave that here for both to use. -/obj/mecha/proc/ai_enter_mech(mob/living/silicon/ai/AI, interaction) - AI.ai_restore_power() - AI.forceMove(src) - occupant = AI - icon_state = initial(icon_state) - playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) - if(!internal_damage) - occupant << sound('sound/mecha/nominal.ogg',volume=50) - AI.cancel_camera() - AI.controlled_mech = src - AI.remote_control = src - AI.canmove = 1 //Much easier than adding AI checks! Be sure to set this back to 0 if you decide to allow an AI to leave a mech somehow. - AI.can_shunt = 0 //ONE AI ENTERS. NO AI LEAVES. - to_chat(AI, "[AI.can_dominate_mechs ? "Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!" \ - : "You have been uploaded to a mech's onboard computer."]") - to_chat(AI, "Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions.") - if(interaction == AI_TRANS_FROM_CARD) - GrantActions(AI, FALSE) //No eject/return to core action for AI uploaded by card - else - GrantActions(AI, !AI.can_dominate_mechs) - - -//An actual AI (simple_animal mecha pilot) entering the mech -/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) - if(pilot_mob && pilot_mob.Adjacent(src)) - if(occupant) - return - icon_state = initial(icon_state) - occupant = pilot_mob - pilot_mob.mecha = src - pilot_mob.loc = src - GrantActions(pilot_mob)//needed for checks, and incase a badmin puts somebody in the mob - -/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) - if(occupant == pilot_mob) - occupant = null - if(pilot_mob.mecha == src) - pilot_mob.mecha = null - icon_state = "[initial(icon_state)]-open" - pilot_mob.forceMove(get_turf(src)) - RemoveActions(pilot_mob) - - -///////////////////////////////////// -//////// Atmospheric stuff //////// -///////////////////////////////////// - -/obj/mecha/remove_air(amount) - if(use_internal_tank) - return cabin_air.remove(amount) - return ..() - -/obj/mecha/return_air() - if(use_internal_tank) - return cabin_air - return ..() - -/obj/mecha/proc/return_pressure() - var/datum/gas_mixture/t_air = return_air() - if(t_air) - . = t_air.return_pressure() - return - - -/obj/mecha/proc/return_temperature() - var/datum/gas_mixture/t_air = return_air() - if(t_air) - . = t_air.return_temperature() - return - -/obj/mecha/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) - //Make sure not already connected to something else - if(connected_port || !new_port || new_port.connected_device) - return 0 - - //Make sure are close enough for a valid connection - if(new_port.loc != loc) - return 0 - - //Perform the connection - connected_port = new_port - connected_port.connected_device = src - var/datum/pipeline/connected_port_parent = connected_port.PARENT1 - connected_port_parent.reconcile_air() - - log_message("Connected to gas port.") - return 1 - -/obj/mecha/proc/disconnect() - if(!connected_port) - return 0 - - connected_port.connected_device = null - connected_port = null - log_message("Disconnected from gas port.") - return 1 - -/obj/mecha/portableConnectorReturnAir() - return internal_tank.return_air() - - -/obj/mecha/MouseDrop_T(mob/M, mob/user) - if (!user.canUseTopic(src) || (user != M)) - return - if(!ishuman(user)) // no silicons or drones in mechas. - return - log_message("[user] tries to move in.") - if (occupant) - to_chat(usr, "The [name] is already occupied!") - log_append_to_last("Permission denied.") - return - var/passed - if(dna_lock) - if(user.has_dna()) - var/mob/living/carbon/C = user - if(C.dna.unique_enzymes==dna_lock) - passed = 1 - else if(operation_allowed(user)) - passed = 1 - if(!passed) - to_chat(user, "Access denied.") - log_append_to_last("Permission denied.") - return - if(user.buckled) - to_chat(user, "You are currently buckled and cannot move.") - log_append_to_last("Permission denied.") - return - if(user.has_buckled_mobs()) //mob attached to us - to_chat(user, "You can't enter the exosuit with other creatures attached to you!") - return - - visible_message("[user] starts to climb into [name].") - - if(do_after(user, 40, target = src)) - if(obj_integrity <= 0) - to_chat(user, "You cannot get in the [name], it has been destroyed!") - else if(occupant) - to_chat(user, "[occupant] was faster! Try better next time, loser.") - else if(user.buckled) - to_chat(user, "You can't enter the exosuit while buckled.") - else if(user.has_buckled_mobs()) - to_chat(user, "You can't enter the exosuit with other creatures attached to you!") - else - moved_inside(user) - else - to_chat(user, "You stop entering the exosuit!") - return - -/obj/mecha/proc/moved_inside(mob/living/carbon/human/H) - if(H && H.client && H in range(1)) - occupant = H - H.forceMove(src) - add_fingerprint(H) - GrantActions(H, human_occupant=1) - forceMove(loc) - log_append_to_last("[H] moved in as pilot.") - icon_state = initial(icon_state) - setDir(dir_in) - playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) - if(!internal_damage) - occupant << sound('sound/mecha/nominal.ogg',volume=50) - return 1 - else - return 0 - -/obj/mecha/proc/mmi_move_inside(obj/item/device/mmi/mmi_as_oc, mob/user) - if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) - to_chat(user, "Consciousness matrix not detected!") - return FALSE - else if(mmi_as_oc.brainmob.stat) - to_chat(user, "Beta-rhythm below acceptable level!") - return FALSE - else if(occupant) - to_chat(user, "Occupant detected!") - return FALSE - else if(dna_lock && (!mmi_as_oc.brainmob.stored_dna || (dna_lock != mmi_as_oc.brainmob.stored_dna.unique_enzymes))) - to_chat(user, "Access denied. [name] is secured with a DNA lock.") - return FALSE - - visible_message("[user] starts to insert an MMI into [name].") - - if(do_after(user, 40, target = src)) - if(!occupant) - return mmi_moved_inside(mmi_as_oc, user) - else - to_chat(user, "Occupant detected!") - else - to_chat(user, "You stop inserting the MMI.") - return FALSE - -/obj/mecha/proc/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc, mob/user) - if(!(Adjacent(mmi_as_oc) && Adjacent(user))) - return FALSE - if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) - to_chat(user, "Consciousness matrix not detected!") - return FALSE - else if(mmi_as_oc.brainmob.stat) - to_chat(user, "Beta-rhythm below acceptable level!") - return FALSE - if(!user.transferItemToLoc(mmi_as_oc, src)) - to_chat(user, "\the [mmi_as_oc] is stuck to your hand, you cannot put it in \the [src]!") - return FALSE - var/mob/brainmob = mmi_as_oc.brainmob - mmi_as_oc.mecha = src - occupant = brainmob - brainmob.forceMove(src) //should allow relaymove - brainmob.reset_perspective(src) - brainmob.remote_control = src - brainmob.update_canmove() - icon_state = initial(icon_state) - update_icon() - setDir(dir_in) - log_message("[mmi_as_oc] moved in as pilot.") - if(!internal_damage) - occupant << sound('sound/mecha/nominal.ogg',volume=50) - GrantActions(brainmob) - return TRUE - -/obj/mecha/container_resist(mob/living/user) - go_out() - - -/obj/mecha/Exited(atom/movable/M, atom/newloc) - if(occupant && occupant == M) // The occupant exited the mech without calling go_out() - go_out(1, newloc) - -/obj/mecha/proc/go_out(var/forced, var/atom/newloc = loc) - if(!occupant) - return - var/atom/movable/mob_container - occupant.clear_alert("charge") - occupant.clear_alert("mech damage") - if(ishuman(occupant)) - mob_container = occupant - RemoveActions(occupant, human_occupant=1) - else if(istype(occupant, /mob/living/brain)) - var/mob/living/brain/brain = occupant - RemoveActions(brain) - mob_container = brain.container - else if(isAI(occupant)) - var/mob/living/silicon/ai/AI = occupant - if(forced)//This should only happen if there are multiple AIs in a round, and at least one is Malf. - RemoveActions(occupant) - occupant.gib() //If one Malf decides to steal a mech from another AI (even other Malfs!), they are destroyed, as they have nowhere to go when replaced. - occupant = null - return - else - if(!AI.linked_core) - to_chat(AI, "Inactive core destroyed. Unable to return.") - AI.linked_core = null - return - to_chat(AI, "Returning to core...") - AI.controlled_mech = null - AI.remote_control = null - RemoveActions(occupant, 1) - mob_container = AI - newloc = get_turf(AI.linked_core) - qdel(AI.linked_core) - else - return - var/mob/living/L = occupant - occupant = null //we need it null when forceMove calls Exited(). - if(mob_container.forceMove(newloc))//ejecting mob container - log_message("[mob_container] moved out.") - L << browse(null, "window=exosuit") - - if(istype(mob_container, /obj/item/device/mmi)) - var/obj/item/device/mmi/mmi = mob_container - if(mmi.brainmob) - L.loc = mmi - L.reset_perspective() - mmi.mecha = null - mmi.update_icon() - L.canmove = 0 - icon_state = initial(icon_state)+"-open" - setDir(dir_in) - - if(L && L.client) - L.client.change_view(world.view) - zoom_mode = 0 - -///////////////////////// -////// Access stuff ///// -///////////////////////// - -/obj/mecha/proc/operation_allowed(mob/M) - req_access = operation_req_access - req_one_access = list() - return allowed(M) - -/obj/mecha/proc/internals_access_allowed(mob/M) - req_one_access = internals_req_access - req_access = list() - return allowed(M) - - - -//////////////////////////////// -/////// Messages and Log /////// -//////////////////////////////// - -/obj/mecha/proc/occupant_message(message as text) - if(message) - if(occupant && occupant.client) + break + if(!can_control_mech) + to_chat(user, "You cannot control exosuits without AI control beacons installed.") + return + to_chat(user, "Take control of exosuit?
    ") + +/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(!..()) + return + + //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(!state) //Mech must be in maint mode to allow carding. + to_chat(user, "[name] must have maintenance protocols active in order to allow a transfer.") + return + AI = occupant + if(!AI || !isAI(occupant)) //Mech does not have an AI for a pilot + to_chat(user, "No AI detected in the [name] onboard computer.") + return + AI.ai_restore_power()//So the AI initially has power. + AI.control_disabled = 1 + AI.radio_enabled = 0 + AI.disconnect_shell() + RemoveActions(AI, TRUE) + occupant = null + AI.forceMove(card) + card.AI = AI + AI.controlled_mech = null + AI.remote_control = null + icon_state = initial(icon_state)+"-open" + to_chat(AI, "You have been downloaded to a mobile storage device. Wireless connection offline.") + to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) removed from [name] and stored within local memory.") + + if(AI_MECH_HACK) //Called by AIs on the mech + AI.linked_core = new /obj/structure/AIcore/deactivated(AI.loc) + if(AI.can_dominate_mechs) + if(occupant) //Oh, I am sorry, were you using that? + to_chat(AI, "Pilot detected! Forced ejection initiated!") + to_chat(occupant, "You have been forcibly ejected!") + go_out(1) //IT IS MINE, NOW. SUCK IT, RD! + ai_enter_mech(AI, interaction) + + if(AI_TRANS_FROM_CARD) //Using an AI card to upload to a mech. + AI = card.AI + if(!AI) + to_chat(user, "There is no AI currently installed on this device.") + return + if(AI.deployed_shell) //Recall AI if shelled so it can be checked for a client + AI.disconnect_shell() + if(AI.stat || !AI.client) + to_chat(user, "[AI.name] is currently unresponsive, and cannot be uploaded.") + return + if(occupant || dna_lock) //Normal AIs cannot steal mechs! + to_chat(user, "Access denied. [name] is [occupant ? "currently occupied" : "secured with a DNA lock"].") + return + AI.control_disabled = 0 + AI.radio_enabled = 1 + to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") + card.AI = null + ai_enter_mech(AI, interaction) + +//Hack and From Card interactions share some code, so leave that here for both to use. +/obj/mecha/proc/ai_enter_mech(mob/living/silicon/ai/AI, interaction) + AI.ai_restore_power() + AI.forceMove(src) + occupant = AI + icon_state = initial(icon_state) + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + AI.cancel_camera() + AI.controlled_mech = src + AI.remote_control = src + AI.canmove = 1 //Much easier than adding AI checks! Be sure to set this back to 0 if you decide to allow an AI to leave a mech somehow. + AI.can_shunt = 0 //ONE AI ENTERS. NO AI LEAVES. + to_chat(AI, "[AI.can_dominate_mechs ? "Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!" \ + : "You have been uploaded to a mech's onboard computer."]") + to_chat(AI, "Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions.") + if(interaction == AI_TRANS_FROM_CARD) + GrantActions(AI, FALSE) //No eject/return to core action for AI uploaded by card + else + GrantActions(AI, !AI.can_dominate_mechs) + + +//An actual AI (simple_animal mecha pilot) entering the mech +/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) + if(pilot_mob && pilot_mob.Adjacent(src)) + if(occupant) + return + icon_state = initial(icon_state) + occupant = pilot_mob + pilot_mob.mecha = src + pilot_mob.loc = src + GrantActions(pilot_mob)//needed for checks, and incase a badmin puts somebody in the mob + +/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) + if(occupant == pilot_mob) + occupant = null + if(pilot_mob.mecha == src) + pilot_mob.mecha = null + icon_state = "[initial(icon_state)]-open" + pilot_mob.forceMove(get_turf(src)) + RemoveActions(pilot_mob) + + +///////////////////////////////////// +//////// Atmospheric stuff //////// +///////////////////////////////////// + +/obj/mecha/remove_air(amount) + if(use_internal_tank) + return cabin_air.remove(amount) + return ..() + +/obj/mecha/return_air() + if(use_internal_tank) + return cabin_air + return ..() + +/obj/mecha/proc/return_pressure() + var/datum/gas_mixture/t_air = return_air() + if(t_air) + . = t_air.return_pressure() + return + + +/obj/mecha/proc/return_temperature() + var/datum/gas_mixture/t_air = return_air() + if(t_air) + . = t_air.return_temperature() + return + +/obj/mecha/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) + //Make sure not already connected to something else + if(connected_port || !new_port || new_port.connected_device) + return 0 + + //Make sure are close enough for a valid connection + if(new_port.loc != loc) + return 0 + + //Perform the connection + connected_port = new_port + connected_port.connected_device = src + var/datum/pipeline/connected_port_parent = connected_port.PARENT1 + connected_port_parent.reconcile_air() + + log_message("Connected to gas port.") + return 1 + +/obj/mecha/proc/disconnect() + if(!connected_port) + return 0 + + connected_port.connected_device = null + connected_port = null + log_message("Disconnected from gas port.") + return 1 + +/obj/mecha/portableConnectorReturnAir() + return internal_tank.return_air() + + +/obj/mecha/MouseDrop_T(mob/M, mob/user) + if (!user.canUseTopic(src) || (user != M)) + return + if(!ishuman(user)) // no silicons or drones in mechas. + return + log_message("[user] tries to move in.") + if (occupant) + to_chat(usr, "The [name] is already occupied!") + log_append_to_last("Permission denied.") + return + var/passed + if(dna_lock) + if(user.has_dna()) + var/mob/living/carbon/C = user + if(C.dna.unique_enzymes==dna_lock) + passed = 1 + else if(operation_allowed(user)) + passed = 1 + if(!passed) + to_chat(user, "Access denied.") + log_append_to_last("Permission denied.") + return + if(user.buckled) + to_chat(user, "You are currently buckled and cannot move.") + log_append_to_last("Permission denied.") + return + if(user.has_buckled_mobs()) //mob attached to us + to_chat(user, "You can't enter the exosuit with other creatures attached to you!") + return + + visible_message("[user] starts to climb into [name].") + + if(do_after(user, 40, target = src)) + if(obj_integrity <= 0) + to_chat(user, "You cannot get in the [name], it has been destroyed!") + else if(occupant) + to_chat(user, "[occupant] was faster! Try better next time, loser.") + else if(user.buckled) + to_chat(user, "You can't enter the exosuit while buckled.") + else if(user.has_buckled_mobs()) + to_chat(user, "You can't enter the exosuit with other creatures attached to you!") + else + moved_inside(user) + else + to_chat(user, "You stop entering the exosuit!") + return + +/obj/mecha/proc/moved_inside(mob/living/carbon/human/H) + if(H && H.client && H in range(1)) + occupant = H + H.forceMove(src) + add_fingerprint(H) + GrantActions(H, human_occupant=1) + forceMove(loc) + log_append_to_last("[H] moved in as pilot.") + icon_state = initial(icon_state) + setDir(dir_in) + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + return 1 + else + return 0 + +/obj/mecha/proc/mmi_move_inside(obj/item/device/mmi/mmi_as_oc, mob/user) + if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) + to_chat(user, "Consciousness matrix not detected!") + return FALSE + else if(mmi_as_oc.brainmob.stat) + to_chat(user, "Beta-rhythm below acceptable level!") + return FALSE + else if(occupant) + to_chat(user, "Occupant detected!") + return FALSE + else if(dna_lock && (!mmi_as_oc.brainmob.stored_dna || (dna_lock != mmi_as_oc.brainmob.stored_dna.unique_enzymes))) + to_chat(user, "Access denied. [name] is secured with a DNA lock.") + return FALSE + + visible_message("[user] starts to insert an MMI into [name].") + + if(do_after(user, 40, target = src)) + if(!occupant) + return mmi_moved_inside(mmi_as_oc, user) + else + to_chat(user, "Occupant detected!") + else + to_chat(user, "You stop inserting the MMI.") + return FALSE + +/obj/mecha/proc/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc, mob/user) + if(!(Adjacent(mmi_as_oc) && Adjacent(user))) + return FALSE + if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) + to_chat(user, "Consciousness matrix not detected!") + return FALSE + else if(mmi_as_oc.brainmob.stat) + to_chat(user, "Beta-rhythm below acceptable level!") + return FALSE + if(!user.transferItemToLoc(mmi_as_oc, src)) + to_chat(user, "\the [mmi_as_oc] is stuck to your hand, you cannot put it in \the [src]!") + return FALSE + var/mob/living/brainmob = mmi_as_oc.brainmob + mmi_as_oc.mecha = src + occupant = brainmob + brainmob.forceMove(src) //should allow relaymove + brainmob.reset_perspective(src) + brainmob.remote_control = src + brainmob.update_canmove() + icon_state = initial(icon_state) + update_icon() + setDir(dir_in) + log_message("[mmi_as_oc] moved in as pilot.") + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + GrantActions(brainmob) + return TRUE + +/obj/mecha/container_resist(mob/living/user) + go_out() + + +/obj/mecha/Exited(atom/movable/M, atom/newloc) + if(occupant && occupant == M) // The occupant exited the mech without calling go_out() + go_out(1, newloc) + +/obj/mecha/proc/go_out(var/forced, var/atom/newloc = loc) + if(!occupant) + return + var/atom/movable/mob_container + occupant.clear_alert("charge") + occupant.clear_alert("mech damage") + if(ishuman(occupant)) + mob_container = occupant + RemoveActions(occupant, human_occupant=1) + else if(isbrain(occupant)) + var/mob/living/brain/brain = occupant + RemoveActions(brain) + mob_container = brain.container + else if(isAI(occupant)) + var/mob/living/silicon/ai/AI = occupant + if(forced)//This should only happen if there are multiple AIs in a round, and at least one is Malf. + RemoveActions(occupant) + occupant.gib() //If one Malf decides to steal a mech from another AI (even other Malfs!), they are destroyed, as they have nowhere to go when replaced. + occupant = null + return + else + if(!AI.linked_core) + to_chat(AI, "Inactive core destroyed. Unable to return.") + AI.linked_core = null + return + to_chat(AI, "Returning to core...") + AI.controlled_mech = null + AI.remote_control = null + RemoveActions(occupant, 1) + mob_container = AI + newloc = get_turf(AI.linked_core) + qdel(AI.linked_core) + else + return + var/mob/living/L = occupant + occupant = null //we need it null when forceMove calls Exited(). + if(mob_container.forceMove(newloc))//ejecting mob container + log_message("[mob_container] moved out.") + L << browse(null, "window=exosuit") + + if(istype(mob_container, /obj/item/device/mmi)) + var/obj/item/device/mmi/mmi = mob_container + if(mmi.brainmob) + L.loc = mmi + L.reset_perspective() + mmi.mecha = null + mmi.update_icon() + L.canmove = 0 + icon_state = initial(icon_state)+"-open" + setDir(dir_in) + + if(L && L.client) + L.client.change_view(world.view) + zoom_mode = 0 + +///////////////////////// +////// Access stuff ///// +///////////////////////// + +/obj/mecha/proc/operation_allowed(mob/M) + req_access = operation_req_access + req_one_access = list() + return allowed(M) + +/obj/mecha/proc/internals_access_allowed(mob/M) + req_one_access = internals_req_access + req_access = list() + return allowed(M) + + + +//////////////////////////////// +/////// Messages and Log /////// +//////////////////////////////// + +/obj/mecha/proc/occupant_message(message as text) + if(message) + if(occupant && occupant.client) to_chat(occupant, "[bicon(src)] [message]") - return - -/obj/mecha/proc/log_message(message as text,red=null) - log.len++ - log[log.len] = list("time"="[worldtime2text()]","date","year"="[GLOB.year_integer+540]","message"="[red?"":null][message][red?"":null]") - return log.len - -/obj/mecha/proc/log_append_to_last(message as text,red=null) - var/list/last_entry = log[log.len] - last_entry["message"] += "
    [red?"":null][message][red?"":null]" - return - -GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY")) -GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? - -/////////////////////// -///// Power stuff ///// -/////////////////////// - -/obj/mecha/proc/has_charge(amount) - return (get_charge()>=amount) - -/obj/mecha/proc/get_charge() - for(var/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/R in equipment) - var/relay_charge = R.get_charge() - if(relay_charge) - return relay_charge - if(cell) - return max(0, cell.charge) - -/obj/mecha/proc/use_power(amount) - if(get_charge()) - cell.use(amount) - return 1 - return 0 - -/obj/mecha/proc/give_power(amount) - if(!isnull(get_charge())) - cell.give(amount) - return 1 - return 0 - -/obj/mecha/allow_drop() - return 0 - -/obj/mecha/update_remote_sight(mob/living/user) - if(occupant_sight_flags) - if(user == occupant) - user.sight |= occupant_sight_flags + return + +/obj/mecha/proc/log_message(message as text,red=null) + log.len++ + log[log.len] = list("time"="[worldtime2text()]","date","year"="[GLOB.year_integer+540]","message"="[red?"":null][message][red?"":null]") + return log.len + +/obj/mecha/proc/log_append_to_last(message as text,red=null) + var/list/last_entry = log[log.len] + last_entry["message"] += "
    [red?"":null][message][red?"":null]" + return + +GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY")) +GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? + +/////////////////////// +///// Power stuff ///// +/////////////////////// + +/obj/mecha/proc/has_charge(amount) + return (get_charge()>=amount) + +/obj/mecha/proc/get_charge() + for(var/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/R in equipment) + var/relay_charge = R.get_charge() + if(relay_charge) + return relay_charge + if(cell) + return max(0, cell.charge) + +/obj/mecha/proc/use_power(amount) + if(get_charge()) + cell.use(amount) + return 1 + return 0 + +/obj/mecha/proc/give_power(amount) + if(!isnull(get_charge())) + cell.give(amount) + return 1 + return 0 + +/obj/mecha/allow_drop() + return 0 + +/obj/mecha/update_remote_sight(mob/living/user) + if(occupant_sight_flags) + if(user == occupant) + user.sight |= occupant_sight_flags diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 65fa8b49b9..df96c78e8c 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -21,7 +21,7 @@ /datum/action/innate/mecha - check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUN | AB_CHECK_CONSCIOUS var/obj/mecha/chassis /datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index be6e85448b..3cc5788bd8 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1,1696 +1,1696 @@ -//////////////////////////////// -///// Construction datums ////// -//////////////////////////////// - -/datum/construction/mecha/custom_action(step, atom/used_atom, mob/user) - if(istype(used_atom, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = used_atom - if (W.remove_fuel(0, user)) - playsound(holder, 'sound/items/Welder2.ogg', 50, 1) - else - return 0 - else if(istype(used_atom, /obj/item/weapon/wrench)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/weapon/screwdriver)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/weapon/wirecutters)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = used_atom - if(C.use(4)) - playsound(holder, 'sound/items/Deconstruct.ogg', 50, 1) - else - to_chat(user, ("There's not enough cable to finish the task!")) - return 0 - else if(istype(used_atom, /obj/item/stack)) - var/obj/item/stack/S = used_atom - if(S.get_amount() < 5) - to_chat(user, ("There's not enough material in this stack!")) - return 0 - else - S.use(5) - return 1 - -/datum/construction/reversible/mecha/custom_action(index as num, diff as num, atom/used_atom, mob/user) - if(istype(used_atom, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = used_atom - if (W.remove_fuel(0, user)) - playsound(holder, 'sound/items/Welder2.ogg', 50, 1) - else - return 0 - else if(istype(used_atom, /obj/item/weapon/wrench)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/weapon/screwdriver)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/weapon/wirecutters)) - var/obj/item/weapon/W = used_atom - playsound(holder, W.usesound, 50, 1) - - else if(istype(used_atom, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = used_atom - if (C.use(4)) - playsound(holder, 'sound/items/Deconstruct.ogg', 50, 1) - else - to_chat(user, ("There's not enough cable to finish the task!")) - return 0 - else if(istype(used_atom, /obj/item/stack)) - var/obj/item/stack/S = used_atom - if(S.get_amount() < 5) - to_chat(user, ("There's not enough material in this stack!")) - return 0 - else - S.use(5) - return 1 - - -/datum/construction/mecha/ripley_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 - list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/ripley_right_leg)//5 - ) - -/datum/construction/mecha/ripley_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/ripley_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/ripley_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/ripley(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "ripley0" - const_holder.density = 1 - const_holder.cut_overlays(TRUE) - qdel(src) - return - - -/datum/construction/reversible/mecha/ripley - result = "/obj/mecha/working/ripley" - steps = list( - //1 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //2 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //3 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Internal armor is welded."), - //4 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched."), - //5 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed."), - //6 - list("key"=/obj/item/stack/sheet/metal, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //7 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed."), - //8 - list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //9 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //10 - list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //11 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //12 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //13 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //14 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - -/datum/construction/reversible/mecha/ripley/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/ripley/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(14) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "ripley1" - if(13) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "ripley2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "ripley0" - if(12) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "ripley3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "ripley1" - if(11) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "ripley4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "ripley2" - if(10) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "ripley5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "ripley3" - if(9) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "ripley6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) - holder.icon_state = "ripley4" - if(8) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "ripley7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "ripley5" - if(7) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "ripley8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) - holder.icon_state = "ripley6" - if(6) - if(diff==FORWARD) - user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") - holder.icon_state = "ripley9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "ripley7" - if(5) - if(diff==FORWARD) - user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") - holder.icon_state = "ripley10" - else - user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") - var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "ripley8" - if(4) - if(diff==FORWARD) - user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") - holder.icon_state = "ripley11" - else - user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - holder.icon_state = "ripley9" - if(3) - if(diff==FORWARD) - user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") - holder.icon_state = "ripley12" - else - user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") - holder.icon_state = "ripley10" - if(2) - if(diff==FORWARD) - user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") - holder.icon_state = "ripley13" - else - user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "ripley11" - if(1) - if(diff==FORWARD) - user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") - else - user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") - holder.icon_state = "ripley12" - return 1 - -/datum/construction/reversible/mecha/ripley/spawn_result() - ..() +//////////////////////////////// +///// Construction datums ////// +//////////////////////////////// + +/datum/construction/mecha/custom_action(step, atom/used_atom, mob/user) + if(istype(used_atom, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = used_atom + if (W.remove_fuel(0, user)) + playsound(holder, 'sound/items/welder2.ogg', 50, 1) + else + return 0 + else if(istype(used_atom, /obj/item/weapon/wrench)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/weapon/screwdriver)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/weapon/wirecutters)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = used_atom + if(C.use(4)) + playsound(holder, 'sound/items/deconstruct.ogg', 50, 1) + else + to_chat(user, ("There's not enough cable to finish the task!")) + return 0 + else if(istype(used_atom, /obj/item/stack)) + var/obj/item/stack/S = used_atom + if(S.get_amount() < 5) + to_chat(user, ("There's not enough material in this stack!")) + return 0 + else + S.use(5) + return 1 + +/datum/construction/reversible/mecha/custom_action(index as num, diff as num, atom/used_atom, mob/user) + if(istype(used_atom, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = used_atom + if (W.remove_fuel(0, user)) + playsound(holder, 'sound/items/welder2.ogg', 50, 1) + else + return 0 + else if(istype(used_atom, /obj/item/weapon/wrench)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/weapon/screwdriver)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/weapon/wirecutters)) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) + + else if(istype(used_atom, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = used_atom + if (C.use(4)) + playsound(holder, 'sound/items/deconstruct.ogg', 50, 1) + else + to_chat(user, ("There's not enough cable to finish the task!")) + return 0 + else if(istype(used_atom, /obj/item/stack)) + var/obj/item/stack/S = used_atom + if(S.get_amount() < 5) + to_chat(user, ("There's not enough material in this stack!")) + return 0 + else + S.use(5) + return 1 + + +/datum/construction/mecha/ripley_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/ripley_right_leg)//5 + ) + +/datum/construction/mecha/ripley_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/ripley_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/ripley_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/ripley(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "ripley0" + const_holder.density = 1 + const_holder.cut_overlays(TRUE) + qdel(src) + return + + +/datum/construction/reversible/mecha/ripley + result = "/obj/mecha/working/ripley" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //8 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //10 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //11 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //12 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //14 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/ripley/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/ripley/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(14) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "ripley1" + if(13) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "ripley2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "ripley0" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "ripley3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "ripley1" + if(11) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "ripley4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "ripley2" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "ripley5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "ripley3" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "ripley6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) + holder.icon_state = "ripley4" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "ripley7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "ripley5" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "ripley8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) + holder.icon_state = "ripley6" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "ripley9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "ripley7" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "ripley10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "ripley8" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "ripley11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "ripley9" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + holder.icon_state = "ripley12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "ripley10" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "ripley13" + else + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "ripley11" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "ripley12" + return 1 + +/datum/construction/reversible/mecha/ripley/spawn_result() + ..() SSblackbox.inc("mecha_ripley_created",1) - return - - - -/datum/construction/mecha/gygax_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/gygax_torso),//1 - list("key"=/obj/item/mecha_parts/part/gygax_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/gygax_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/gygax_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/gygax_right_leg),//5 - list("key"=/obj/item/mecha_parts/part/gygax_head) - ) - -/datum/construction/mecha/gygax_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/gygax_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/gygax_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/gygax(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "gygax0" - const_holder.density = 1 - qdel(src) - return - - -/datum/construction/reversible/mecha/gygax - result = "/obj/mecha/combat/gygax" - steps = list( - //1 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //2 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //3 - list("key"=/obj/item/mecha_parts/part/gygax_armor, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Internal armor is welded."), - //4 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched."), - //5 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed."), - //6 - list("key"=/obj/item/stack/sheet/metal, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced capacitor is secured."), - //7 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced capacitor is installed."), - //8 - list("key"=/obj/item/weapon/stock_parts/capacitor, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced scanner module is secured."), - //9 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced scanner module is installed."), - //10 - list("key"=/obj/item/weapon/stock_parts/scanning_module, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Weapon control module is secured."), - //11 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Weapon control module is installed."), - //12 - list("key"=/obj/item/weapon/circuitboard/mecha/gygax/targeting, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //13 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed."), - //14 - list("key"=/obj/item/weapon/circuitboard/mecha/gygax/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //15 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //16 - list("key"=/obj/item/weapon/circuitboard/mecha/gygax/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //17 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //18 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //19 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //20 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - -/datum/construction/reversible/mecha/gygax/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/gygax/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(20) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "gygax1" - if(19) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "gygax2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "gygax0" - if(18) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "gygax3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "gygax1" - if(17) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "gygax4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "gygax2" - if(16) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "gygax5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "gygax3" - if(15) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "gygax6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/gygax/main(get_turf(holder)) - holder.icon_state = "gygax4" - if(14) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "gygax7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "gygax5" - if(13) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "gygax8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/gygax/peripherals(get_turf(holder)) - holder.icon_state = "gygax6" - if(12) - if(diff==FORWARD) - user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") - qdel(used_atom) - holder.icon_state = "gygax9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "gygax7" - if(11) - if(diff==FORWARD) - user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") - holder.icon_state = "gygax10" - else - user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/gygax/targeting(get_turf(holder)) - holder.icon_state = "gygax8" - if(10) - if(diff==FORWARD) - user.visible_message("[user] installs scanner module to the [holder].", "You install scanner module to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "gygax11" - else - user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") - holder.icon_state = "gygax9" - if(9) - if(diff==FORWARD) - user.visible_message("[user] secures the advanced scanner module.", "You secure the scanner module.") - holder.icon_state = "gygax12" - else - user.visible_message("[user] removes the advanced scanner module from the [holder].", "You remove the scanner module from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder - I.loc = get_turf(holder) - holder.icon_state = "gygax10" - if(8) - if(diff==FORWARD) - user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "gygax13" - else - user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") - holder.icon_state = "gygax11" - if(7) - if(diff==FORWARD) - user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") - holder.icon_state = "gygax14" - else - user.visible_message("[user] removes the capacitor from the [holder].", "You remove the capacitor from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder - I.loc = get_turf(holder) - holder.icon_state = "gygax12" - if(6) - if(diff==FORWARD) - user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") - holder.icon_state = "gygax15" - else - user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") - holder.icon_state = "gygax13" - if(5) - if(diff==FORWARD) - user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") - holder.icon_state = "gygax16" - else - user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") - var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "gygax14" - if(4) - if(diff==FORWARD) - user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") - holder.icon_state = "gygax17" - else - user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - holder.icon_state = "gygax15" - if(3) - if(diff==FORWARD) - user.visible_message("[user] installs Gygax Armor Plates to the [holder].", "You install Gygax Armor Plates to the [holder].") - qdel(used_atom) - holder.icon_state = "gygax18" - else - user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") - holder.icon_state = "gygax16" - if(2) - if(diff==FORWARD) - user.visible_message("[user] secures Gygax Armor Plates.", "You secure Gygax Armor Plates.") - holder.icon_state = "gygax19" - else - user.visible_message("[user] pries Gygax Armor Plates from the [holder].", "You pry Gygax Armor Plates from the [holder].") - new /obj/item/mecha_parts/part/gygax_armor(get_turf(holder)) - holder.icon_state = "gygax17" - if(1) - if(diff==FORWARD) - user.visible_message("[user] welds Gygax Armor Plates to the [holder].", "You weld Gygax Armor Plates to the [holder].") - else - user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") - holder.icon_state = "gygax18" - return 1 - -/datum/construction/reversible/mecha/gygax/spawn_result() - var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) - M.CheckParts(holder.contents) - qdel(holder) + return + + + +/datum/construction/mecha/gygax_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/gygax_torso),//1 + list("key"=/obj/item/mecha_parts/part/gygax_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/gygax_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/gygax_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/gygax_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/gygax_head) + ) + +/datum/construction/mecha/gygax_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/gygax_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/gygax_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/gygax(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "gygax0" + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/reversible/mecha/gygax + result = "/obj/mecha/combat/gygax" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/mecha_parts/part/gygax_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Advanced capacitor is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Advanced capacitor is installed."), + //8 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Advanced scanner module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Advanced scanner module is installed."), + //10 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //11 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control module is installed."), + //12 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //14 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //17 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //18 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //20 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/gygax/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/gygax/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "gygax1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "gygax2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "gygax0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "gygax3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "gygax1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "gygax4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "gygax2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "gygax3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "gygax6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/main(get_turf(holder)) + holder.icon_state = "gygax4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "gygax5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "gygax8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/peripherals(get_turf(holder)) + holder.icon_state = "gygax6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "gygax7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "gygax10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/targeting(get_turf(holder)) + holder.icon_state = "gygax8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs scanner module to the [holder].", "You install scanner module to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "gygax11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "gygax9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced scanner module.", "You secure the scanner module.") + holder.icon_state = "gygax12" + else + user.visible_message("[user] removes the advanced scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "gygax10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "gygax13" + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + holder.icon_state = "gygax11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + holder.icon_state = "gygax14" + else + user.visible_message("[user] removes the capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "gygax12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "gygax15" + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + holder.icon_state = "gygax13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "gygax16" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "gygax14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "gygax17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "gygax15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs Gygax Armor Plates to the [holder].", "You install Gygax Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "gygax18" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "gygax16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures Gygax Armor Plates.", "You secure Gygax Armor Plates.") + holder.icon_state = "gygax19" + else + user.visible_message("[user] pries Gygax Armor Plates from the [holder].", "You pry Gygax Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/gygax_armor(get_turf(holder)) + holder.icon_state = "gygax17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds Gygax Armor Plates to the [holder].", "You weld Gygax Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") + holder.icon_state = "gygax18" + return 1 + +/datum/construction/reversible/mecha/gygax/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder.contents) + qdel(holder) SSblackbox.inc("mecha_gygax_created",1) - return - -/datum/construction/mecha/firefighter_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 - list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/ripley_right_leg),//5 - list("key"=/obj/item/clothing/suit/fire)//6 - ) - -/datum/construction/mecha/firefighter_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/firefighter_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/firefighter_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/firefighter(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "fireripley0" - const_holder.density = 1 - qdel(src) - return - - -/datum/construction/reversible/mecha/firefighter - result = "/obj/mecha/working/ripley/firefighter" - steps = list( - //1 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //2 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //3 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is being installed."), - //4 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Internal armor is welded."), - //5 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched."), - //6 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed."), - - //7 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //8 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed."), - //9 - list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //10 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //11 - list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //12 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //13 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //14 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //15 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - -/datum/construction/reversible/mecha/firefighter/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/firefighter/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(15) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "fireripley1" - if(14) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "fireripley2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "fireripley0" - if(13) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "fireripley3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "fireripley1" - if(12) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "fireripley4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "fireripley2" - if(11) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "fireripley5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "fireripley3" - if(10) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "fireripley6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) - holder.icon_state = "fireripley4" - if(9) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "fireripley7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "fireripley5" - if(8) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "fireripley8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) - holder.icon_state = "fireripley6" - if(7) - if(diff==FORWARD) - user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") - holder.icon_state = "fireripley9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "fireripley7" - - if(6) - if(diff==FORWARD) - user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") - holder.icon_state = "fireripley10" - else - user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "fireripley8" - if(5) - if(diff==FORWARD) - user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") - holder.icon_state = "fireripley11" - else - user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - holder.icon_state = "fireripley9" - if(4) - if(diff==FORWARD) - user.visible_message("[user] starts to install the external armor layer to the [holder].", "You install the external armor layer to the [holder].") - holder.icon_state = "fireripley12" - else - user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") - holder.icon_state = "fireripley10" - if(3) - if(diff==FORWARD) - user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") - holder.icon_state = "fireripley13" - else - user.visible_message("[user] removes the external armor from the [holder].", "You remove the external armor from the [holder].") - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "fireripley11" - if(2) - if(diff==FORWARD) - user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") - holder.icon_state = "fireripley14" - else - user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "fireripley12" - if(1) - if(diff==FORWARD) - user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") - else - user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") - holder.icon_state = "fireripley13" - return 1 - -/datum/construction/reversible/mecha/firefighter/spawn_result() - ..() + return + +/datum/construction/mecha/firefighter_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/ripley_right_leg),//5 + list("key"=/obj/item/clothing/suit/fire)//6 + ) + +/datum/construction/mecha/firefighter_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/firefighter_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/firefighter_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/firefighter(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "fireripley0" + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/reversible/mecha/firefighter + result = "/obj/mecha/working/ripley/firefighter" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is being installed."), + //4 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //5 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //6 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + + //7 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //8 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //9 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //10 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //11 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //12 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //13 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //14 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //15 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/firefighter/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/firefighter/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(15) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "fireripley1" + if(14) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "fireripley2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "fireripley0" + if(13) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "fireripley3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "fireripley1" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "fireripley4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "fireripley2" + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "fireripley5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "fireripley3" + if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "fireripley6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) + holder.icon_state = "fireripley4" + if(9) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "fireripley7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "fireripley5" + if(8) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "fireripley8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) + holder.icon_state = "fireripley6" + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "fireripley9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "fireripley7" + + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "fireripley10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley8" + if(5) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "fireripley11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "fireripley9" + if(4) + if(diff==FORWARD) + user.visible_message("[user] starts to install the external armor layer to the [holder].", "You install the external armor layer to the [holder].") + holder.icon_state = "fireripley12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "fireripley10" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + holder.icon_state = "fireripley13" + else + user.visible_message("[user] removes the external armor from the [holder].", "You remove the external armor from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley11" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "fireripley14" + else + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley12" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "fireripley13" + return 1 + +/datum/construction/reversible/mecha/firefighter/spawn_result() + ..() SSblackbox.inc("mecha_firefighter_created",1) - return - - - -/datum/construction/mecha/honker_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/honker_torso),//1 - list("key"=/obj/item/mecha_parts/part/honker_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/honker_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/honker_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/honker_right_leg),//5 - list("key"=/obj/item/mecha_parts/part/honker_head) - ) - -/datum/construction/mecha/honker_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/honker_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/honker_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/mecha/honker(const_holder) - const_holder.density = 1 - qdel(src) - return - - -/datum/construction/mecha/honker - result = "/obj/mecha/combat/honker" - steps = list(list("key"=/obj/item/weapon/bikehorn),//1 - list("key"=/obj/item/clothing/shoes/clown_shoes),//2 - list("key"=/obj/item/weapon/bikehorn),//3 - list("key"=/obj/item/clothing/mask/gas/clown_hat),//4 - list("key"=/obj/item/weapon/bikehorn),//5 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/targeting),//6 - list("key"=/obj/item/weapon/bikehorn),//7 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/peripherals),//8 - list("key"=/obj/item/weapon/bikehorn),//9 - list("key"=/obj/item/weapon/circuitboard/mecha/honker/main),//10 - list("key"=/obj/item/weapon/bikehorn),//11 - ) - -/datum/construction/mecha/honker/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/mecha/honker/custom_action(step, atom/used_atom, mob/user) - if(!..()) - return 0 - - if(istype(used_atom, /obj/item/weapon/bikehorn)) - playsound(holder, 'sound/items/bikehorn.ogg', 50, 1) - user.visible_message("HONK!") - - //TODO: better messages. - switch(step) - if(10) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central control module into the [holder].") - qdel(used_atom) - if(8) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - if(6) - user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") - qdel(used_atom) - if(4) - user.visible_message("[user] puts clown wig and mask on the [holder].", "You put clown wig and mask on the [holder].") - qdel(used_atom) - if(2) - user.visible_message("[user] puts clown boots on the [holder].", "You put clown boots on the [holder].") - qdel(used_atom) - return 1 - -/datum/construction/mecha/honker/spawn_result() - ..() + return + + + +/datum/construction/mecha/honker_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/honker_torso),//1 + list("key"=/obj/item/mecha_parts/part/honker_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/honker_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/honker_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/honker_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/honker_head) + ) + +/datum/construction/mecha/honker_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/honker_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/honker_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/mecha/honker(const_holder) + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/mecha/honker + result = "/obj/mecha/combat/honker" + steps = list(list("key"=/obj/item/weapon/bikehorn),//1 + list("key"=/obj/item/clothing/shoes/clown_shoes),//2 + list("key"=/obj/item/weapon/bikehorn),//3 + list("key"=/obj/item/clothing/mask/gas/clown_hat),//4 + list("key"=/obj/item/weapon/bikehorn),//5 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/targeting),//6 + list("key"=/obj/item/weapon/bikehorn),//7 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/peripherals),//8 + list("key"=/obj/item/weapon/bikehorn),//9 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/main),//10 + list("key"=/obj/item/weapon/bikehorn),//11 + ) + +/datum/construction/mecha/honker/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/mecha/honker/custom_action(step, atom/used_atom, mob/user) + if(!..()) + return 0 + + if(istype(used_atom, /obj/item/weapon/bikehorn)) + playsound(holder, 'sound/items/bikehorn.ogg', 50, 1) + user.visible_message("HONK!") + + //TODO: better messages. + switch(step) + if(10) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central control module into the [holder].") + qdel(used_atom) + if(8) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + if(6) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + if(4) + user.visible_message("[user] puts clown wig and mask on the [holder].", "You put clown wig and mask on the [holder].") + qdel(used_atom) + if(2) + user.visible_message("[user] puts clown boots on the [holder].", "You put clown boots on the [holder].") + qdel(used_atom) + return 1 + +/datum/construction/mecha/honker/spawn_result() + ..() SSblackbox.inc("mecha_honker_created",1) - return - -/datum/construction/mecha/durand_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1 - list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/durand_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/durand_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/durand_right_leg),//5 - list("key"=/obj/item/mecha_parts/part/durand_head) - ) - -/datum/construction/mecha/durand_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/durand_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/durand_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/durand(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "durand0" - const_holder.density = 1 - del src - return - -/datum/construction/reversible/mecha/durand - result = "/obj/mecha/combat/durand" - steps = list( - //1 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //2 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //3 - list("key"=/obj/item/mecha_parts/part/durand_armor, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Internal armor is welded."), - //4 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched."), - //5 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed."), - //6 - list("key"=/obj/item/stack/sheet/metal, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Super capacitor is secured."), - //7 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Super capacitor is installed."), - //8 - list("key"=/obj/item/weapon/stock_parts/capacitor, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Phasic scanner module is secured."), - //9 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Phasic scanner module is installed."), - //10 - list("key"=/obj/item/weapon/stock_parts/scanning_module, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Weapon control module is secured."), - //11 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Weapon control module is installed."), - //12 - list("key"=/obj/item/weapon/circuitboard/mecha/durand/targeting, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //13 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed."), - //14 - list("key"=/obj/item/weapon/circuitboard/mecha/durand/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //15 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //16 - list("key"=/obj/item/weapon/circuitboard/mecha/durand/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //17 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //18 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //19 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //20 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - - -/datum/construction/reversible/mecha/durand/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/durand/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(20) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "durand1" - if(19) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "durand2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "durand0" - if(18) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "durand3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "durand1" - if(17) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "durand4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "durand2" - if(16) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "durand5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "durand3" - if(15) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "durand6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/durand/main(get_turf(holder)) - holder.icon_state = "durand4" - if(14) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "durand7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "durand5" - if(13) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "durand8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/durand/peripherals(get_turf(holder)) - holder.icon_state = "durand6" - if(12) - if(diff==FORWARD) - user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") - qdel(used_atom) - holder.icon_state = "durand9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "durand7" - if(11) - if(diff==FORWARD) - user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") - holder.icon_state = "durand10" - else - user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/durand/targeting(get_turf(holder)) - holder.icon_state = "durand8" - if(10) - if(diff==FORWARD) - user.visible_message("[user] installs scanner module to the [holder].", "You install phasic scanner module to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "durand11" - else - user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") - holder.icon_state = "durand9" - if(9) - if(diff==FORWARD) - user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") - holder.icon_state = "durand12" - else - user.visible_message("[user] removes the scanner module from the [holder].", "You remove the scanner module from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder - I.loc = get_turf(holder) - holder.icon_state = "durand10" - if(8) - if(diff==FORWARD) - user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "durand13" - else - user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") - holder.icon_state = "durand11" - if(7) - if(diff==FORWARD) - user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") - holder.icon_state = "durand14" - else - user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder - I.loc = get_turf(holder) - holder.icon_state = "durand12" - if(6) - if(diff==FORWARD) - user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") - holder.icon_state = "durand15" - else - user.visible_message("[user] unfastens the super capacitor.", "You unfasten the capacitor.") - holder.icon_state = "durand13" - if(5) - if(diff==FORWARD) - user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") - holder.icon_state = "durand16" - else - user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") - var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "durand14" - if(4) - if(diff==FORWARD) - user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") - holder.icon_state = "durand17" - else - user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - holder.icon_state = "durand15" - if(3) - if(diff==FORWARD) - user.visible_message("[user] installs Durand Armor Plates to the [holder].", "You install Durand Armor Plates to the [holder].") - qdel(used_atom) - holder.icon_state = "durand18" - else - user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") - holder.icon_state = "durand16" - if(2) - if(diff==FORWARD) - user.visible_message("[user] secures Durand Armor Plates.", "You secure Durand Armor Plates.") - holder.icon_state = "durand19" - else - user.visible_message("[user] pries Durand Armor Plates from the [holder].", "You pry Durand Armor Plates from the [holder].") - new /obj/item/mecha_parts/part/durand_armor(get_turf(holder)) - holder.icon_state = "durand17" - if(1) - if(diff==FORWARD) - user.visible_message("[user] welds Durand Armor Plates to the [holder].", "You weld Durand Armor Plates to the [holder].") - else - user.visible_message("[user] unfastens Durand Armor Plates.", "You unfasten Durand Armor Plates.") - holder.icon_state = "durand18" - return 1 - -/datum/construction/reversible/mecha/durand/spawn_result() - var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) - M.CheckParts(holder.contents) - qdel(holder) + return + +/datum/construction/mecha/durand_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1 + list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/durand_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/durand_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/durand_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/durand_head) + ) + +/datum/construction/mecha/durand_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/durand_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/durand_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/durand(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "durand0" + const_holder.density = 1 + del src + return + +/datum/construction/reversible/mecha/durand + result = "/obj/mecha/combat/durand" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/mecha_parts/part/durand_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Super capacitor is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Super capacitor is installed."), + //8 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Phasic scanner module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phasic scanner module is installed."), + //10 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //11 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control module is installed."), + //12 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //14 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //17 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //18 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //20 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + + +/datum/construction/reversible/mecha/durand/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/durand/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "durand1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "durand2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "durand0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "durand3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "durand1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "durand4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "durand2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "durand5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "durand3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "durand6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/main(get_turf(holder)) + holder.icon_state = "durand4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "durand7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "durand5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "durand8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/peripherals(get_turf(holder)) + holder.icon_state = "durand6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "durand9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "durand7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "durand10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/targeting(get_turf(holder)) + holder.icon_state = "durand8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs scanner module to the [holder].", "You install phasic scanner module to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "durand11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "durand9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + holder.icon_state = "durand12" + else + user.visible_message("[user] removes the scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "durand10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "durand13" + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + holder.icon_state = "durand11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + holder.icon_state = "durand14" + else + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "durand12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "durand15" + else + user.visible_message("[user] unfastens the super capacitor.", "You unfasten the capacitor.") + holder.icon_state = "durand13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "durand16" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "durand14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "durand17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "durand15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs Durand Armor Plates to the [holder].", "You install Durand Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "durand18" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "durand16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures Durand Armor Plates.", "You secure Durand Armor Plates.") + holder.icon_state = "durand19" + else + user.visible_message("[user] pries Durand Armor Plates from the [holder].", "You pry Durand Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/durand_armor(get_turf(holder)) + holder.icon_state = "durand17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds Durand Armor Plates to the [holder].", "You weld Durand Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Durand Armor Plates.", "You unfasten Durand Armor Plates.") + holder.icon_state = "durand18" + return 1 + +/datum/construction/reversible/mecha/durand/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder.contents) + qdel(holder) SSblackbox.inc("mecha_durand_created",1) - return - -//PHAZON - -/datum/construction/mecha/phazon_chassis - result = "/obj/mecha/combat/phazon" - steps = list(list("key"=/obj/item/mecha_parts/part/phazon_torso),//1 - list("key"=/obj/item/mecha_parts/part/phazon_left_arm),//2 - list("key"=/obj/item/mecha_parts/part/phazon_right_arm),//3 - list("key"=/obj/item/mecha_parts/part/phazon_left_leg),//4 - list("key"=/obj/item/mecha_parts/part/phazon_right_leg),//5 - list("key"=/obj/item/mecha_parts/part/phazon_head) - ) - -/datum/construction/mecha/phazon_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/phazon_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/phazon_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/phazon(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "phazon0" - const_holder.density = 1 - del src - return - -/datum/construction/reversible/mecha/phazon - result = "/obj/mecha/combat/phazon" - steps = list( - //1 - list("key"=/obj/item/device/assembly/signaler/anomaly, - "backkey"=null, //Cannot remove the anomaly core once it's in - "desc"="Anomaly core socket is open and awaiting connection."), - - //2 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //3 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //4 - list("key"=/obj/item/mecha_parts/part/phazon_armor, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Phase armor is welded."), - //5 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Phase armor is wrenched."), - //6 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Phase armor is installed."), - //7 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The bluespace crystal is engaged."), - //8 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wirecutters, - "desc"="The bluespace crystal is connected."), - //9 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/crowbar, - "desc"="The bluespace crystal is installed."), - //10 - list("key"=/obj/item/weapon/ore/bluespace_crystal, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Super capacitor is secured."), - //12 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Super capacitor is installed."), - //12 - list("key"=/obj/item/weapon/stock_parts/capacitor, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Phasic scanner module is secured."), - //13 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Phasic scanner module is installed."), - //14 - list("key"=/obj/item/weapon/stock_parts/scanning_module, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Weapon control module is secured."), - //15 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Weapon control is installed."), - //16 - list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //17 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), - //18 - list("key"=/obj/item/weapon/circuitboard/mecha/phazon/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //19 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //20 - list("key"=/obj/item/weapon/circuitboard/mecha/phazon/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //21 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //22 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //23 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //24 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - - -/datum/construction/reversible/mecha/phazon/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/phazon/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(24) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "phazon1" - if(23) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "phazon2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "phazon0" - if(22) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "phazon3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "phazon1" - if(21) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "phazon4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "phazon2" - if(20) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "phazon5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "phazon3" - if(19) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "phazon6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/phazon/main(get_turf(holder)) - holder.icon_state = "phazon4" - if(18) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "phazon7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "phazon5" - if(17) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "phazon8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/phazon/peripherals(get_turf(holder)) - holder.icon_state = "phazon6" - if(16) - if(diff==FORWARD) - user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") - qdel(used_atom) - holder.icon_state = "phazon9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "phazon7" - if(15) - if(diff==FORWARD) - user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") - holder.icon_state = "phazon10" - else - user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/phazon/targeting(get_turf(holder)) - holder.icon_state = "phazon8" - if(14) - if(diff==FORWARD) - user.visible_message("[user] installs phasic scanner module to the [holder].", "You install scanner module to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "phazon11" - else - user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") - holder.icon_state = "phazon9" - if(13) - if(diff==FORWARD) - user.visible_message("[user] secures the phasic scanner module.", "You secure the scanner module.") - holder.icon_state = "phazon12" - else - user.visible_message("[user] removes the phasic scanner module from the [holder].", "You remove the scanner module from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder - I.loc = get_turf(holder) - holder.icon_state = "phazon10" - if(12) - if(diff==FORWARD) - user.visible_message("[user] installs super capacitor to the [holder].", "You install capacitor to the [holder].") - var/obj/item/I = used_atom - user.transferItemToLoc(I, holder, TRUE) - holder.icon_state = "phazon13" - else - user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the scanner module.") - holder.icon_state = "phazon11" - if(11) - if(diff==FORWARD) - user.visible_message("[user] secures the super capacitor.", "You secure the capacitor.") - holder.icon_state = "phazon14" - else - user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") - var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder - I.loc = get_turf(holder) - holder.icon_state = "phazon12" - if(10) - if(diff==FORWARD) - user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystal.") - qdel(used_atom) - holder.icon_state = "phazon15" - else - user.visible_message("[user] unsecures the super capacitor from the [holder].", "You unsecure the capacitor from the [holder].") - holder.icon_state = "phazon13" - if(9) - if(diff==FORWARD) - user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystal.") - holder.icon_state = "phazon16" - else - user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") - new /obj/item/weapon/ore/bluespace_crystal(get_turf(holder)) - holder.icon_state = "phazon14" - if(8) - if(diff==FORWARD) - user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystal.") - holder.icon_state = "phazon17" - else - user.visible_message("[user] disconnects the bluespace crystal from the [holder].", "You disconnect the bluespace crystal from the [holder].") - holder.icon_state = "phazon15" - if(7) - if(diff==FORWARD) - user.visible_message("[user] installs the phase armor layer to the [holder].", "You install the phase armor layer to the [holder].") - holder.icon_state = "phazon18" - else - user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystal.") - holder.icon_state = "phazon16" - if(6) - if(diff==FORWARD) - user.visible_message("[user] secures the phase armor layer.", "You secure the phase armor layer.") - holder.icon_state = "phazon19" - else - user.visible_message("[user] pries the phase armor layer from the [holder].", "You pry the phase armor layer from the [holder].") - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "phazon17" - if(5) - if(diff==FORWARD) - user.visible_message("[user] welds the phase armor layer to the [holder].", "You weld the phase armor layer to the [holder].") - holder.icon_state = "phazon20" - else - user.visible_message("[user] unfastens the phase armor layer.", "You unfasten the phase armor layer.") - holder.icon_state = "phazon18" - if(4) - if(diff==FORWARD) - user.visible_message("[user] installs Phazon Armor Plates to the [holder].", "You install Phazon Armor Plates to the [holder].") - qdel(used_atom) - holder.icon_state = "phazon21" - else - user.visible_message("[user] cuts phase armor layer from the [holder].", "You cut the phase armor layer from the [holder].") - holder.icon_state = "phazon19" - if(3) - if(diff==FORWARD) - user.visible_message("[user] secures Phazon Armor Plates.", "You secure Phazon Armor Plates.") - holder.icon_state = "phazon22" - else - user.visible_message("[user] pries Phazon Armor Plates from the [holder].", "You pry Phazon Armor Plates from the [holder].") - new /obj/item/mecha_parts/part/phazon_armor(get_turf(holder)) - holder.icon_state = "phazon20" - if(2) - if(diff==FORWARD) - user.visible_message("[user] welds Phazon Armor Plates to the [holder].", "You weld Phazon Armor Plates to the [holder].") - else - user.visible_message("[user] unfastens Phazon Armor Plates.", "You unfasten Phazon Armor Plates.") - holder.icon_state = "phazon21" - if(1) - if(diff==FORWARD) - user.visible_message("[user] carefully inserts the anomaly core into \the [holder] and secures it.", "You slowly place the anomaly core into its socket and close its chamber.") - qdel(used_atom) - return 1 - -/datum/construction/reversible/mecha/phazon/spawn_result() - var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) - M.CheckParts(holder.contents) - qdel(holder) + return + +//PHAZON + +/datum/construction/mecha/phazon_chassis + result = "/obj/mecha/combat/phazon" + steps = list(list("key"=/obj/item/mecha_parts/part/phazon_torso),//1 + list("key"=/obj/item/mecha_parts/part/phazon_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/phazon_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/phazon_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/phazon_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/phazon_head) + ) + +/datum/construction/mecha/phazon_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/phazon_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/phazon_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/phazon(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "phazon0" + const_holder.density = 1 + del src + return + +/datum/construction/reversible/mecha/phazon + result = "/obj/mecha/combat/phazon" + steps = list( + //1 + list("key"=/obj/item/device/assembly/signaler/anomaly, + "backkey"=null, //Cannot remove the anomaly core once it's in + "desc"="Anomaly core socket is open and awaiting connection."), + + //2 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //3 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //4 + list("key"=/obj/item/mecha_parts/part/phazon_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Phase armor is welded."), + //5 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Phase armor is wrenched."), + //6 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phase armor is installed."), + //7 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The bluespace crystal is engaged."), + //8 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wirecutters, + "desc"="The bluespace crystal is connected."), + //9 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/crowbar, + "desc"="The bluespace crystal is installed."), + //10 + list("key"=/obj/item/weapon/ore/bluespace_crystal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Super capacitor is secured."), + //12 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Super capacitor is installed."), + //12 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Phasic scanner module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phasic scanner module is installed."), + //14 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //17 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed"), + //18 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //20 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //21 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //22 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //23 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //24 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + + +/datum/construction/reversible/mecha/phazon/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/phazon/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(24) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(23) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "phazon2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "phazon0" + if(22) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "phazon3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(21) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "phazon4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "phazon2" + if(20) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "phazon3" + if(19) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "phazon6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/main(get_turf(holder)) + holder.icon_state = "phazon4" + if(18) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "phazon5" + if(17) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "phazon8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/peripherals(get_turf(holder)) + holder.icon_state = "phazon6" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "phazon7" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "phazon10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/targeting(get_turf(holder)) + holder.icon_state = "phazon8" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs phasic scanner module to the [holder].", "You install scanner module to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "phazon11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "phazon9" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the phasic scanner module.", "You secure the scanner module.") + holder.icon_state = "phazon12" + else + user.visible_message("[user] removes the phasic scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "phazon10" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs super capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.transferItemToLoc(I, holder, TRUE) + holder.icon_state = "phazon13" + else + user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the scanner module.") + holder.icon_state = "phazon11" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the super capacitor.", "You secure the capacitor.") + holder.icon_state = "phazon14" + else + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "phazon12" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystal.") + qdel(used_atom) + holder.icon_state = "phazon15" + else + user.visible_message("[user] unsecures the super capacitor from the [holder].", "You unsecure the capacitor from the [holder].") + holder.icon_state = "phazon13" + if(9) + if(diff==FORWARD) + user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystal.") + holder.icon_state = "phazon16" + else + user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") + new /obj/item/weapon/ore/bluespace_crystal(get_turf(holder)) + holder.icon_state = "phazon14" + if(8) + if(diff==FORWARD) + user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystal.") + holder.icon_state = "phazon17" + else + user.visible_message("[user] disconnects the bluespace crystal from the [holder].", "You disconnect the bluespace crystal from the [holder].") + holder.icon_state = "phazon15" + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs the phase armor layer to the [holder].", "You install the phase armor layer to the [holder].") + holder.icon_state = "phazon18" + else + user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystal.") + holder.icon_state = "phazon16" + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the phase armor layer.", "You secure the phase armor layer.") + holder.icon_state = "phazon19" + else + user.visible_message("[user] pries the phase armor layer from the [holder].", "You pry the phase armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "phazon17" + if(5) + if(diff==FORWARD) + user.visible_message("[user] welds the phase armor layer to the [holder].", "You weld the phase armor layer to the [holder].") + holder.icon_state = "phazon20" + else + user.visible_message("[user] unfastens the phase armor layer.", "You unfasten the phase armor layer.") + holder.icon_state = "phazon18" + if(4) + if(diff==FORWARD) + user.visible_message("[user] installs Phazon Armor Plates to the [holder].", "You install Phazon Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "phazon21" + else + user.visible_message("[user] cuts phase armor layer from the [holder].", "You cut the phase armor layer from the [holder].") + holder.icon_state = "phazon19" + if(3) + if(diff==FORWARD) + user.visible_message("[user] secures Phazon Armor Plates.", "You secure Phazon Armor Plates.") + holder.icon_state = "phazon22" + else + user.visible_message("[user] pries Phazon Armor Plates from the [holder].", "You pry Phazon Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/phazon_armor(get_turf(holder)) + holder.icon_state = "phazon20" + if(2) + if(diff==FORWARD) + user.visible_message("[user] welds Phazon Armor Plates to the [holder].", "You weld Phazon Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Phazon Armor Plates.", "You unfasten Phazon Armor Plates.") + holder.icon_state = "phazon21" + if(1) + if(diff==FORWARD) + user.visible_message("[user] carefully inserts the anomaly core into \the [holder] and secures it.", "You slowly place the anomaly core into its socket and close its chamber.") + qdel(used_atom) + return 1 + +/datum/construction/reversible/mecha/phazon/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder.contents) + qdel(holder) SSblackbox.inc("mecha_phazon_created",1) - return - -//ODYSSEUS - -/datum/construction/mecha/odysseus_chassis - steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso),//1 - list("key"=/obj/item/mecha_parts/part/odysseus_head),//2 - list("key"=/obj/item/mecha_parts/part/odysseus_left_arm),//3 - list("key"=/obj/item/mecha_parts/part/odysseus_right_arm),//4 - list("key"=/obj/item/mecha_parts/part/odysseus_left_leg),//5 - list("key"=/obj/item/mecha_parts/part/odysseus_right_leg)//6 - ) - -/datum/construction/mecha/odysseus_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") - holder.add_overlay(used_atom.icon_state+"+o") - qdel(used_atom) - return 1 - -/datum/construction/mecha/odysseus_chassis/action(atom/used_atom,mob/user) - return check_all_steps(used_atom,user) - -/datum/construction/mecha/odysseus_chassis/spawn_result() - var/obj/item/mecha_parts/chassis/const_holder = holder - const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder) - const_holder.icon = 'icons/mecha/mech_construction.dmi' - const_holder.icon_state = "odysseus0" - const_holder.density = 1 - del src - return - - -/datum/construction/reversible/mecha/odysseus - result = "/obj/mecha/medical/odysseus" - steps = list( - //1 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="External armor is wrenched."), - //2 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="External armor is installed."), - //3 - list("key"=/obj/item/stack/sheet/plasteel, - "backkey"=/obj/item/weapon/weldingtool, - "desc"="Internal armor is welded."), - //4 - list("key"=/obj/item/weapon/weldingtool, - "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched."), - //5 - list("key"=/obj/item/weapon/wrench, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed."), - //6 - list("key"=/obj/item/stack/sheet/metal, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured."), - //7 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed."), - //8 - list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured."), - //9 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed."), - //10 - list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/main, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted."), - //11 - list("key"=/obj/item/weapon/wirecutters, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added."), - //12 - list("key"=/obj/item/stack/cable_coil, - "backkey"=/obj/item/weapon/screwdriver, - "desc"="The hydraulic systems are active."), - //13 - list("key"=/obj/item/weapon/screwdriver, - "backkey"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are connected."), - //14 - list("key"=/obj/item/weapon/wrench, - "desc"="The hydraulic systems are disconnected.") - ) - -/datum/construction/reversible/mecha/odysseus/action(atom/used_atom,mob/user) - return check_step(used_atom,user) - -/datum/construction/reversible/mecha/odysseus/custom_action(index, diff, atom/used_atom, mob/user) - if(!..()) - return 0 - - //TODO: better messages. - switch(index) - if(14) - user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") - holder.icon_state = "odysseus1" - if(13) - if(diff==FORWARD) - user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") - holder.icon_state = "odysseus2" - else - user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") - holder.icon_state = "odysseus0" - if(12) - if(diff==FORWARD) - user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") - holder.icon_state = "odysseus3" - else - user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") - holder.icon_state = "odysseus1" - if(11) - if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") - holder.icon_state = "odysseus4" - else - user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") - var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) - coil.amount = 4 - holder.icon_state = "odysseus2" - if(10) - if(diff==FORWARD) - user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") - qdel(used_atom) - holder.icon_state = "odysseus5" - else - user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") - holder.icon_state = "odysseus3" - if(9) - if(diff==FORWARD) - user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") - holder.icon_state = "odysseus6" - else - user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") - new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder)) - holder.icon_state = "odysseus4" - if(8) - if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") - qdel(used_atom) - holder.icon_state = "odysseus7" - else - user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - holder.icon_state = "odysseus5" - if(7) - if(diff==FORWARD) - user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") - holder.icon_state = "odysseus8" - else - user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") - new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder)) - holder.icon_state = "odysseus6" - if(6) - if(diff==FORWARD) - user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") - holder.icon_state = "odysseus9" - else - user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - holder.icon_state = "odysseus7" - if(5) - if(diff==FORWARD) - user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") - holder.icon_state = "odysseus10" - else - user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") - var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) - MS.amount = 5 - holder.icon_state = "odysseus8" - if(4) - if(diff==FORWARD) - user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") - holder.icon_state = "odysseus11" - else - user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - holder.icon_state = "odysseus9" - if(3) - if(diff==FORWARD) - user.visible_message("[user] installs [used_atom] layer to the [holder].", "You install the external reinforced armor layer to the [holder].") - - holder.icon_state = "odysseus12" - else - user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") - holder.icon_state = "odysseus10" - if(2) - if(diff==FORWARD) - user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") - holder.icon_state = "odysseus13" - else - var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) - MS.amount = 5 - user.visible_message("[user] pries [MS] from the [holder].", "You pry [MS] from the [holder].") - holder.icon_state = "odysseus11" - if(1) - if(diff==FORWARD) - user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") - holder.icon_state = "odysseus14" - else - user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") - holder.icon_state = "odysseus12" - return 1 - -/datum/construction/reversible/mecha/odysseus/spawn_result() - ..() + return + +//ODYSSEUS + +/datum/construction/mecha/odysseus_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso),//1 + list("key"=/obj/item/mecha_parts/part/odysseus_head),//2 + list("key"=/obj/item/mecha_parts/part/odysseus_left_arm),//3 + list("key"=/obj/item/mecha_parts/part/odysseus_right_arm),//4 + list("key"=/obj/item/mecha_parts/part/odysseus_left_leg),//5 + list("key"=/obj/item/mecha_parts/part/odysseus_right_leg)//6 + ) + +/datum/construction/mecha/odysseus_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/odysseus_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/odysseus_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "odysseus0" + const_holder.density = 1 + del src + return + + +/datum/construction/reversible/mecha/odysseus + result = "/obj/mecha/medical/odysseus" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //8 + list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //10 + list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //11 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //12 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //14 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/odysseus/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/odysseus/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(14) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "odysseus1" + if(13) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "odysseus2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "odysseus0" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "odysseus3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "odysseus1" + if(11) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "odysseus4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "odysseus2" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "odysseus5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "odysseus3" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "odysseus6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder)) + holder.icon_state = "odysseus4" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "odysseus7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "odysseus5" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "odysseus8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder)) + holder.icon_state = "odysseus6" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "odysseus9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "odysseus7" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "odysseus10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "odysseus8" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "odysseus11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "odysseus9" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs [used_atom] layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + + holder.icon_state = "odysseus12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "odysseus10" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "odysseus13" + else + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + user.visible_message("[user] pries [MS] from the [holder].", "You pry [MS] from the [holder].") + holder.icon_state = "odysseus11" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + holder.icon_state = "odysseus14" + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "odysseus12" + return 1 + +/datum/construction/reversible/mecha/odysseus/spawn_result() + ..() SSblackbox.inc("mecha_odysseus_created",1) - return + return diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index acc9a2a087..950f6eaafb 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -1,250 +1,250 @@ -/////////////////////////////////// -//////// Mecha wreckage //////// -/////////////////////////////////// - - -/obj/structure/mecha_wreckage - name = "exosuit wreckage" - desc = "Remains of some unfortunate mecha. Completely unrepairable, but perhaps something can be salvaged." - icon = 'icons/mecha/mecha.dmi' - density = 1 - anchored = 0 - opacity = 0 - var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel,/obj/item/stack/sheet/metal,/obj/item/stack/rods) - var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil) - var/list/crowbar_salvage = list() - var/salvage_num = 5 - var/mob/living/silicon/ai/AI //AIs to be salvaged - -/obj/structure/mecha_wreckage/New(loc, mob/living/silicon/ai/AI_pilot) - ..() - if(AI_pilot) //Type-checking for this is already done in mecha/Destroy() - AI = AI_pilot - AI.apply_damage(150, BURN) //Give the AI a bit of damage from the "shock" of being suddenly shut down - AI.death() //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair. - AI.forceMove(src) //Put the dead AI inside the wreckage for recovery +/////////////////////////////////// +//////// Mecha wreckage //////// +/////////////////////////////////// + + +/obj/structure/mecha_wreckage + name = "exosuit wreckage" + desc = "Remains of some unfortunate mecha. Completely unrepairable, but perhaps something can be salvaged." + icon = 'icons/mecha/mecha.dmi' + density = 1 + anchored = 0 + opacity = 0 + var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel,/obj/item/stack/sheet/metal,/obj/item/stack/rods) + var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil) + var/list/crowbar_salvage = list() + var/salvage_num = 5 + var/mob/living/silicon/ai/AI //AIs to be salvaged + +/obj/structure/mecha_wreckage/New(loc, mob/living/silicon/ai/AI_pilot) + ..() + if(AI_pilot) //Type-checking for this is already done in mecha/Destroy() + AI = AI_pilot + AI.apply_damage(150, BURN) //Give the AI a bit of damage from the "shock" of being suddenly shut down + AI.death() //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair. + AI.forceMove(src) //Put the dead AI inside the wreckage for recovery add_overlay(mutable_appearance('icons/obj/projectiles.dmi', "green_laser")) //Overlay for the recovery beacon - AI.controlled_mech = null - AI.remote_control = null - -/obj/structure/mecha_wreckage/examine(mob/user) - ..() - if(AI) - to_chat(user, "The AI recovery beacon is active.") - -/obj/structure/mecha_wreckage/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/weldingtool)) - if(salvage_num <= 0) - to_chat(user, "You don't see anything that can be cut with [I]!") - return - var/obj/item/weapon/weldingtool/WT = I - if(welder_salvage && welder_salvage.len && WT.remove_fuel(0, user)) - var/type = prob(70) ? pick(welder_salvage) : null - if(type) - var/N = new type(get_turf(user)) - user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") - if(istype(N, /obj/item/mecha_parts/part)) - welder_salvage -= type - salvage_num-- - else - to_chat(user, "You fail to salvage anything valuable from [src]!") - else - return - - else if(istype(I, /obj/item/weapon/wirecutters)) - if(salvage_num <= 0) - to_chat(user, "You don't see anything that can be cut with [I]!") - return - else if(wirecutters_salvage && wirecutters_salvage.len) - var/type = prob(70) ? pick(wirecutters_salvage) : null - if(type) - var/N = new type(get_turf(user)) - user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") - salvage_num-- - else - to_chat(user, "You fail to salvage anything valuable from [src]!") - - else if(istype(I, /obj/item/weapon/crowbar)) - if(crowbar_salvage && crowbar_salvage.len) - var/obj/S = pick(crowbar_salvage) - if(S) - S.loc = get_turf(user) - crowbar_salvage -= S - user.visible_message("[user] pries [S] from [src].", "You pry [S] from [src].") - return - else - to_chat(user, "You don't see anything that can be pried with [I]!") - - -/obj/structure/mecha_wreckage/transfer_ai(interaction, mob/user, null, obj/item/device/aicard/card) - if(!..()) - return - - //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. - if(!AI) //No AI in the wreck - to_chat(user, "No AI backups found.") - return - cut_overlays() //Remove the recovery beacon overlay - AI.forceMove(card) //Move the dead AI to the card. - card.AI = AI - if(AI.client) //AI player is still in the dead AI and is connected - to_chat(AI, "The remains of your file system have been recovered on a mobile storage device.") - else //Give the AI a heads-up that it is probably going to get fixed. - AI.notify_ghost_cloning("You have been recovered from the wreckage!", source = card) - to_chat(user, "Backup files recovered: [AI.name] ([rand(1000,9999)].exe) salvaged from [name] and stored within local memory.") - - else - return ..() - - -/obj/structure/mecha_wreckage/gygax - name = "\improper Gygax wreckage" - icon_state = "gygax-broken" - -/obj/structure/mecha_wreckage/gygax/New() - ..() - var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso, - /obj/item/mecha_parts/part/gygax_head, - /obj/item/mecha_parts/part/gygax_left_arm, - /obj/item/mecha_parts/part/gygax_right_arm, - /obj/item/mecha_parts/part/gygax_left_leg, - /obj/item/mecha_parts/part/gygax_right_leg) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part - - - -/obj/structure/mecha_wreckage/gygax/dark - name = "\improper Dark Gygax wreckage" - icon_state = "darkgygax-broken" - -/obj/structure/mecha_wreckage/marauder - name = "\improper Marauder wreckage" - icon_state = "marauder-broken" - -/obj/structure/mecha_wreckage/mauler - name = "\improper Mauler wreckage" - icon_state = "mauler-broken" - desc = "The syndicate won't be very happy about this..." - -/obj/structure/mecha_wreckage/seraph - name = "\improper Seraph wreckage" - icon_state = "seraph-broken" - -/obj/structure/mecha_wreckage/reticence - name = "\improper Reticence wreckage" - icon_state = "reticence-broken" - color = "#87878715" - desc = "..." - -/obj/structure/mecha_wreckage/ripley - name = "\improper Ripley wreckage" - icon_state = "ripley-broken" - -/obj/structure/mecha_wreckage/ripley/New() - ..() - var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, - /obj/item/mecha_parts/part/ripley_left_arm, - /obj/item/mecha_parts/part/ripley_right_arm, - /obj/item/mecha_parts/part/ripley_left_leg, - /obj/item/mecha_parts/part/ripley_right_leg) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part - - -/obj/structure/mecha_wreckage/ripley/firefighter - name = "\improper Firefighter wreckage" - icon_state = "firefighter-broken" - -/obj/structure/mecha_wreckage/ripley/firefighter/New() - ..() - var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, - /obj/item/mecha_parts/part/ripley_left_arm, - /obj/item/mecha_parts/part/ripley_right_arm, - /obj/item/mecha_parts/part/ripley_left_leg, - /obj/item/mecha_parts/part/ripley_right_leg, - /obj/item/clothing/suit/fire) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part - - -/obj/structure/mecha_wreckage/ripley/deathripley - name = "\improper Death-Ripley wreckage" - icon_state = "deathripley-broken" - - -/obj/structure/mecha_wreckage/honker - name = "\improper H.O.N.K wreckage" - icon_state = "honker-broken" - desc = "All is right in the universe." - -/obj/structure/mecha_wreckage/honker/New() - ..() - var/list/parts = list( - /obj/item/mecha_parts/chassis/honker, - /obj/item/mecha_parts/part/honker_torso, - /obj/item/mecha_parts/part/honker_head, - /obj/item/mecha_parts/part/honker_left_arm, - /obj/item/mecha_parts/part/honker_right_arm, - /obj/item/mecha_parts/part/honker_left_leg, - /obj/item/mecha_parts/part/honker_right_leg) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part - - -/obj/structure/mecha_wreckage/durand - name = "\improper Durand wreckage" - icon_state = "durand-broken" - -/obj/structure/mecha_wreckage/durand/New() - ..() - var/list/parts = list( - /obj/item/mecha_parts/part/durand_torso, - /obj/item/mecha_parts/part/durand_head, - /obj/item/mecha_parts/part/durand_left_arm, - /obj/item/mecha_parts/part/durand_right_arm, - /obj/item/mecha_parts/part/durand_left_leg, - /obj/item/mecha_parts/part/durand_right_leg) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part - - -/obj/structure/mecha_wreckage/phazon - name = "\improper Phazon wreckage" - icon_state = "phazon-broken" - - -/obj/structure/mecha_wreckage/odysseus - name = "\improper Odysseus wreckage" - icon_state = "odysseus-broken" - -/obj/structure/mecha_wreckage/odysseus/New() - ..() - var/list/parts = list( - /obj/item/mecha_parts/part/odysseus_torso, - /obj/item/mecha_parts/part/odysseus_head, - /obj/item/mecha_parts/part/odysseus_left_arm, - /obj/item/mecha_parts/part/odysseus_right_arm, - /obj/item/mecha_parts/part/odysseus_left_leg, - /obj/item/mecha_parts/part/odysseus_right_leg) - for(var/i = 0; i < 2; i++) - if(parts.len && prob(40)) - var/part = pick(parts) - welder_salvage += part - parts -= part + AI.controlled_mech = null + AI.remote_control = null + +/obj/structure/mecha_wreckage/examine(mob/user) + ..() + if(AI) + to_chat(user, "The AI recovery beacon is active.") + +/obj/structure/mecha_wreckage/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + if(salvage_num <= 0) + to_chat(user, "You don't see anything that can be cut with [I]!") + return + var/obj/item/weapon/weldingtool/WT = I + if(welder_salvage && welder_salvage.len && WT.remove_fuel(0, user)) + var/type = prob(70) ? pick(welder_salvage) : null + if(type) + var/N = new type(get_turf(user)) + user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") + if(istype(N, /obj/item/mecha_parts/part)) + welder_salvage -= type + salvage_num-- + else + to_chat(user, "You fail to salvage anything valuable from [src]!") + else + return + + else if(istype(I, /obj/item/weapon/wirecutters)) + if(salvage_num <= 0) + to_chat(user, "You don't see anything that can be cut with [I]!") + return + else if(wirecutters_salvage && wirecutters_salvage.len) + var/type = prob(70) ? pick(wirecutters_salvage) : null + if(type) + var/N = new type(get_turf(user)) + user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") + salvage_num-- + else + to_chat(user, "You fail to salvage anything valuable from [src]!") + + else if(istype(I, /obj/item/weapon/crowbar)) + if(crowbar_salvage && crowbar_salvage.len) + var/obj/S = pick(crowbar_salvage) + if(S) + S.loc = get_turf(user) + crowbar_salvage -= S + user.visible_message("[user] pries [S] from [src].", "You pry [S] from [src].") + return + else + to_chat(user, "You don't see anything that can be pried with [I]!") + + +/obj/structure/mecha_wreckage/transfer_ai(interaction, mob/user, null, obj/item/device/aicard/card) + if(!..()) + return + + //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. + if(!AI) //No AI in the wreck + to_chat(user, "No AI backups found.") + return + cut_overlays() //Remove the recovery beacon overlay + AI.forceMove(card) //Move the dead AI to the card. + card.AI = AI + if(AI.client) //AI player is still in the dead AI and is connected + to_chat(AI, "The remains of your file system have been recovered on a mobile storage device.") + else //Give the AI a heads-up that it is probably going to get fixed. + AI.notify_ghost_cloning("You have been recovered from the wreckage!", source = card) + to_chat(user, "Backup files recovered: [AI.name] ([rand(1000,9999)].exe) salvaged from [name] and stored within local memory.") + + else + return ..() + + +/obj/structure/mecha_wreckage/gygax + name = "\improper Gygax wreckage" + icon_state = "gygax-broken" + +/obj/structure/mecha_wreckage/gygax/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso, + /obj/item/mecha_parts/part/gygax_head, + /obj/item/mecha_parts/part/gygax_left_arm, + /obj/item/mecha_parts/part/gygax_right_arm, + /obj/item/mecha_parts/part/gygax_left_leg, + /obj/item/mecha_parts/part/gygax_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + + +/obj/structure/mecha_wreckage/gygax/dark + name = "\improper Dark Gygax wreckage" + icon_state = "darkgygax-broken" + +/obj/structure/mecha_wreckage/marauder + name = "\improper Marauder wreckage" + icon_state = "marauder-broken" + +/obj/structure/mecha_wreckage/mauler + name = "\improper Mauler wreckage" + icon_state = "mauler-broken" + desc = "The syndicate won't be very happy about this..." + +/obj/structure/mecha_wreckage/seraph + name = "\improper Seraph wreckage" + icon_state = "seraph-broken" + +/obj/structure/mecha_wreckage/reticence + name = "\improper Reticence wreckage" + icon_state = "reticence-broken" + color = "#87878715" + desc = "..." + +/obj/structure/mecha_wreckage/ripley + name = "\improper Ripley wreckage" + icon_state = "ripley-broken" + +/obj/structure/mecha_wreckage/ripley/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, + /obj/item/mecha_parts/part/ripley_left_arm, + /obj/item/mecha_parts/part/ripley_right_arm, + /obj/item/mecha_parts/part/ripley_left_leg, + /obj/item/mecha_parts/part/ripley_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/ripley/firefighter + name = "\improper Firefighter wreckage" + icon_state = "firefighter-broken" + +/obj/structure/mecha_wreckage/ripley/firefighter/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, + /obj/item/mecha_parts/part/ripley_left_arm, + /obj/item/mecha_parts/part/ripley_right_arm, + /obj/item/mecha_parts/part/ripley_left_leg, + /obj/item/mecha_parts/part/ripley_right_leg, + /obj/item/clothing/suit/fire) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/ripley/deathripley + name = "\improper Death-Ripley wreckage" + icon_state = "deathripley-broken" + + +/obj/structure/mecha_wreckage/honker + name = "\improper H.O.N.K wreckage" + icon_state = "honker-broken" + desc = "All is right in the universe." + +/obj/structure/mecha_wreckage/honker/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/chassis/honker, + /obj/item/mecha_parts/part/honker_torso, + /obj/item/mecha_parts/part/honker_head, + /obj/item/mecha_parts/part/honker_left_arm, + /obj/item/mecha_parts/part/honker_right_arm, + /obj/item/mecha_parts/part/honker_left_leg, + /obj/item/mecha_parts/part/honker_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/durand + name = "\improper Durand wreckage" + icon_state = "durand-broken" + +/obj/structure/mecha_wreckage/durand/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/part/durand_torso, + /obj/item/mecha_parts/part/durand_head, + /obj/item/mecha_parts/part/durand_left_arm, + /obj/item/mecha_parts/part/durand_right_arm, + /obj/item/mecha_parts/part/durand_left_leg, + /obj/item/mecha_parts/part/durand_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/phazon + name = "\improper Phazon wreckage" + icon_state = "phazon-broken" + + +/obj/structure/mecha_wreckage/odysseus + name = "\improper Odysseus wreckage" + icon_state = "odysseus-broken" + +/obj/structure/mecha_wreckage/odysseus/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/part/odysseus_torso, + /obj/item/mecha_parts/part/odysseus_head, + /obj/item/mecha_parts/part/odysseus_left_arm, + /obj/item/mecha_parts/part/odysseus_right_arm, + /obj/item/mecha_parts/part/odysseus_left_leg, + /obj/item/mecha_parts/part/odysseus_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index e23cea0397..80337331a2 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -1,98 +1,98 @@ -/obj/mecha/working/ripley - desc = "Autonomous Power Loader Unit. This newer model is refitted with powerful armour against the dangers of the EVA mining process." - name = "\improper APLU \"Ripley\"" - icon_state = "ripley" - step_in = 4 //Move speed, lower is faster. - var/hi_pres_step_in = 4 //step_in while in high pressure. - var/lo_pres_step_in = 2 //step_in while in low/zero pressure. - max_temperature = 20000 - obj_integrity = 200 - max_integrity = 200 - lights_power = 7 - deflect_chance = 15 - armor = list(melee = 40, bullet = 20, laser = 10, energy = 20, bomb = 40, bio = 0, rad = 0, fire = 100, acid = 100) - max_equip = 6 - wreckage = /obj/structure/mecha_wreckage/ripley - var/list/cargo = new - var/cargo_capacity = 15 - var/hides = 0 - -/obj/mecha/working/ripley/Move() - . = ..() +/obj/mecha/working/ripley + desc = "Autonomous Power Loader Unit. This newer model is refitted with powerful armour against the dangers of planetary mining." + name = "\improper APLU \"Ripley\"" + icon_state = "ripley" + step_in = 4 //Move speed, lower is faster. + var/fast_pressure_step_in = 2 //step_in while in normal pressure conditions + var/slow_pressure_step_in = 4 //step_in while in better pressure conditions + max_temperature = 20000 + obj_integrity = 200 + max_integrity = 200 + lights_power = 7 + deflect_chance = 15 + armor = list(melee = 40, bullet = 20, laser = 10, energy = 20, bomb = 40, bio = 0, rad = 0, fire = 100, acid = 100) + max_equip = 6 + wreckage = /obj/structure/mecha_wreckage/ripley + var/list/cargo = new + var/cargo_capacity = 15 + var/hides = 0 + +/obj/mecha/working/ripley/Move() + . = ..() if(.) collect_ore() update_pressure() /obj/mecha/working/ripley/proc/collect_ore() if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) - var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo - if(ore_box) + var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo + if(ore_box) for(var/obj/item/weapon/ore/ore in range(1, src)) if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! ore.forceMove(ore_box) - -/obj/mecha/working/ripley/Destroy() - for(var/i=1, i <= hides, i++) - new /obj/item/stack/sheet/animalhide/goliath_hide(loc) //If a goliath-plated ripley gets killed, all the plates drop - for(var/atom/movable/A in cargo) - A.forceMove(loc) - step_rand(A) - cargo.Cut() - return ..() - -/obj/mecha/working/ripley/go_out() - ..() - update_icon() - -/obj/mecha/working/ripley/moved_inside(mob/living/carbon/human/H) - ..() - update_icon() - -/obj/mecha/working/ripley/update_icon() - ..() - if (hides) - cut_overlays() - if(hides < 3) + +/obj/mecha/working/ripley/Destroy() + for(var/i=1, i <= hides, i++) + new /obj/item/stack/sheet/animalhide/goliath_hide(loc) //If a goliath-plated ripley gets killed, all the plates drop + for(var/atom/movable/A in cargo) + A.forceMove(loc) + step_rand(A) + cargo.Cut() + return ..() + +/obj/mecha/working/ripley/go_out() + ..() + update_icon() + +/obj/mecha/working/ripley/moved_inside(mob/living/carbon/human/H) + ..() + update_icon() + +/obj/mecha/working/ripley/update_icon() + ..() + if (hides) + cut_overlays() + if(hides < 3) add_overlay(occupant ? "ripley-g" : "ripley-g-open") - else + else add_overlay(occupant ? "ripley-g-full" : "ripley-g-full-open") - - -/obj/mecha/working/ripley/firefighter - desc = "Autonomous Power Loader Unit. This model is refitted with additional thermal protection." - name = "\improper APLU \"Firefighter\"" - icon_state = "firefighter" - max_temperature = 65000 - obj_integrity = 250 - max_integrity = 250 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - lights_power = 7 - armor = list(melee = 40, bullet = 30, laser = 30, energy = 30, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) - max_equip = 5 // More armor, less tools - wreckage = /obj/structure/mecha_wreckage/ripley/firefighter - - -/obj/mecha/working/ripley/deathripley - desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" - name = "\improper DEATH-RIPLEY" - icon_state = "deathripley" - hi_pres_step_in = 3 - opacity=0 - lights_power = 7 - wreckage = /obj/structure/mecha_wreckage/ripley/deathripley - step_energy_drain = 0 - -/obj/mecha/working/ripley/deathripley/New() - ..() - var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill - ME.attach(src) - return - -/obj/mecha/working/ripley/mining - desc = "An old, dusty mining Ripley." - name = "\improper APLU \"Miner\"" + + +/obj/mecha/working/ripley/firefighter + desc = "Autonomous Power Loader Unit. This model is refitted with additional thermal protection." + name = "\improper APLU \"Firefighter\"" + icon_state = "firefighter" + max_temperature = 65000 + obj_integrity = 250 + max_integrity = 250 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + lights_power = 7 + armor = list(melee = 40, bullet = 30, laser = 30, energy = 30, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) + max_equip = 5 // More armor, less tools + wreckage = /obj/structure/mecha_wreckage/ripley/firefighter + + +/obj/mecha/working/ripley/deathripley + desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" + name = "\improper DEATH-RIPLEY" + icon_state = "deathripley" + slow_pressure_step_in = 3 + opacity=0 + lights_power = 7 + wreckage = /obj/structure/mecha_wreckage/ripley/deathripley + step_energy_drain = 0 + +/obj/mecha/working/ripley/deathripley/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill + ME.attach(src) + return + +/obj/mecha/working/ripley/mining + desc = "An old, dusty mining Ripley." + name = "\improper APLU \"Miner\"" obj_integrity = 75 //Low starting health - + /obj/mecha/working/ripley/mining/Initialize() . = ..() if(cell) @@ -104,81 +104,79 @@ else var/obj/item/mecha_parts/mecha_equipment/drill/D = new D.attach(src) - + else //Add possible plasma cutter if no drill var/obj/item/mecha_parts/mecha_equipment/M = new - M.attach(src) - - //Add ore box to cargo - cargo.Add(new /obj/structure/ore_box(src)) - - //Attach hydraulic clamp + M.attach(src) + + //Add ore box to cargo + cargo.Add(new /obj/structure/ore_box(src)) + + //Attach hydraulic clamp var/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/HC = new - HC.attach(src) - for(var/obj/item/mecha_parts/mecha_tracking/B in trackers)//Deletes the beacon so it can't be found easily - qdel(B) - + HC.attach(src) + for(var/obj/item/mecha_parts/mecha_tracking/B in trackers)//Deletes the beacon so it can't be found easily + qdel(B) + var/obj/item/mecha_parts/mecha_equipment/mining_scanner/scanner = new - scanner.attach(src) - -/obj/mecha/working/ripley/Exit(atom/movable/O) - if(O in cargo) - return 0 - return ..() - -/obj/mecha/working/ripley/Topic(href, href_list) - ..() - if(href_list["drop_from_cargo"]) - var/obj/O = locate(href_list["drop_from_cargo"]) - if(O && O in src.cargo) - src.occupant_message("You unload [O].") - O.forceMove(loc) - src.cargo -= O - src.log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]") - return - - -/obj/mecha/working/ripley/contents_explosion(severity, target) - for(var/X in cargo) - var/obj/O = X - if(prob(30/severity)) - cargo -= O - O.forceMove(loc) - . = ..() - -/obj/mecha/working/ripley/get_stats_part() - var/output = ..() - output += "Cargo Compartment Contents:
    " - if(cargo.len) - for(var/obj/O in cargo) - output += "Unload : [O]
    " - else - output += "Nothing" - output += "
    " - return output - -/obj/mecha/working/ripley/proc/update_pressure() - var/turf/T = get_turf(loc) - var/datum/gas_mixture/environment = T.return_air() - var/pressure = environment.return_pressure() - - if(pressure < 40) - step_in = lo_pres_step_in - for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) - drill.equip_cooldown = initial(drill.equip_cooldown)/2 - else - step_in = hi_pres_step_in - for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) - drill.equip_cooldown = initial(drill.equip_cooldown) - -/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O) - to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") - if(do_after(user, 300, target = O)) - if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) - return - to_chat(user, "You successfully pushed [O] out of [src]!") - O.loc = loc - cargo -= O - else - if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to push [O] out of [src]!") + scanner.attach(src) + +/obj/mecha/working/ripley/Exit(atom/movable/O) + if(O in cargo) + return 0 + return ..() + +/obj/mecha/working/ripley/Topic(href, href_list) + ..() + if(href_list["drop_from_cargo"]) + var/obj/O = locate(href_list["drop_from_cargo"]) + if(O && O in src.cargo) + src.occupant_message("You unload [O].") + O.forceMove(loc) + src.cargo -= O + src.log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]") + return + + +/obj/mecha/working/ripley/contents_explosion(severity, target) + for(var/X in cargo) + var/obj/O = X + if(prob(30/severity)) + cargo -= O + O.forceMove(loc) + . = ..() + +/obj/mecha/working/ripley/get_stats_part() + var/output = ..() + output += "Cargo Compartment Contents:
    " + if(cargo.len) + for(var/obj/O in cargo) + output += "Unload : [O]
    " + else + output += "Nothing" + output += "
    " + return output + +/obj/mecha/working/ripley/proc/update_pressure() + var/turf/T = get_turf(loc) + + if(lavaland_equipment_pressure_check(T)) + step_in = fast_pressure_step_in + for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) + drill.equip_cooldown = initial(drill.equip_cooldown)/2 + else + step_in = slow_pressure_step_in + for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) + drill.equip_cooldown = initial(drill.equip_cooldown) + +/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O) + to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") + if(do_after(user, 300, target = O)) + if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) + return + to_chat(user, "You successfully pushed [O] out of [src]!") + O.loc = loc + cargo -= O + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + to_chat(user, "You fail to push [O] out of [src]!") diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm index 2800315bf6..06c3b37a93 100644 --- a/code/game/objects/effects/alien_acid.dm +++ b/code/game/objects/effects/alien_acid.dm @@ -47,7 +47,7 @@ return 0 if(prob(5)) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, 1) for(var/obj/O in target) if(prob(20) && !(resistance_flags & UNACIDABLE)) @@ -82,7 +82,7 @@ . = ..() if(.) if(prob(45)) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, 1) target_strength-- if(target_strength <= 0) target.visible_message("[target] collapses under its own weight into a puddle of goop and undigested debris!") diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 071c95cb46..7beffc4a54 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -113,9 +113,9 @@ /obj/effect/anomaly/grav/Bumped(mob/A) gravShock(A) -/obj/effect/anomaly/grav/proc/gravShock(mob/A) +/obj/effect/anomaly/grav/proc/gravShock(mob/living/A) if(boing && isliving(A) && !A.stat) - A.Weaken(2) + A.Knockdown(40) var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) A.throw_at(target, 5, 1) boing = 0 diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 2361510e46..00987d7859 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -1,51 +1,51 @@ -/obj/effect/decal/cleanable/crayon - name = "rune" - desc = "Graffiti. Damn kids." - icon = 'icons/effects/crayondecal.dmi' - icon_state = "rune1" - gender = NEUTER - var/do_icon_rotate = TRUE - -/obj/effect/decal/cleanable/crayon/Initialize(mapload, main = "#FFFFFF", var/type = "rune1", var/e_name = "rune", var/rotation = 0, var/alt_icon = null) - ..() +/obj/effect/decal/cleanable/crayon + name = "rune" + desc = "Graffiti. Damn kids." + icon = 'icons/effects/crayondecal.dmi' + icon_state = "rune1" + gender = NEUTER + var/do_icon_rotate = TRUE - name = e_name - desc = "A [name] vandalizing the station." - if(type == "poseur tag") - type = pick(GLOB.gang_name_pool) - - if(alt_icon) - icon = alt_icon - icon_state = type - - if(rotation && do_icon_rotate) - var/matrix/M = matrix() - M.Turn(rotation) - src.transform = M - - add_atom_colour(main, FIXED_COLOUR_PRIORITY) - - -/obj/effect/decal/cleanable/crayon/gang - layer = HIGH_OBJ_LAYER //Harder to hide - do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. - var/datum/gang/gang +/obj/effect/decal/cleanable/crayon/Initialize(mapload, main = "#FFFFFF", var/type = "rune1", var/e_name = "rune", var/rotation = 0, var/alt_icon = null) + ..() + + name = e_name + desc = "A [name] vandalizing the station." + if(type == "poseur tag") + type = pick(GLOB.gang_name_pool) + + if(alt_icon) + icon = alt_icon + icon_state = type + + if(rotation && do_icon_rotate) + var/matrix/M = matrix() + M.Turn(rotation) + src.transform = M + + add_atom_colour(main, FIXED_COLOUR_PRIORITY) + + +/obj/effect/decal/cleanable/crayon/gang + layer = HIGH_OBJ_LAYER //Harder to hide + do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. + var/datum/gang/gang var/datum/mind/user_mind var/area/territory - + /obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, var/datum/gang/G, var/e_name = "gang tag", var/rotation = 0, var/mob/user) - if(!type || !G) - qdel(src) + if(!type || !G) + qdel(src) user_mind = user.mind territory = get_area(src) - gang = G - var/newcolor = G.color_hex - icon_state = G.name - G.territory_new |= list(territory.type = territory.name) + gang = G + var/newcolor = G.color_hex + icon_state = G.name + G.territory_new |= list(territory.type = territory.name) //If this isn't tagged by a specific gangster there's no bonus income. set_mind_owner(user_mind) - ..(mapload, newcolor, icon_state, e_name, rotation) - + ..(mapload, newcolor, icon_state, e_name, rotation) + /obj/effect/decal/cleanable/crayon/gang/proc/set_mind_owner(datum/mind/mind) if(istype(user_mind) && istype(gang) && islist(gang.tags_by_mind[user_mind])) //Clear us out of old ownership gang.tags_by_mind[user_mind] -= src @@ -55,10 +55,10 @@ gang.tags_by_mind[mind] += src user_mind = mind -/obj/effect/decal/cleanable/crayon/gang/Destroy() - if(gang) - gang.territory -= territory.type +/obj/effect/decal/cleanable/crayon/gang/Destroy() + if(gang) + gang.territory -= territory.type set_mind_owner(null) - gang.territory_new -= territory.type - gang.territory_lost |= list(territory.type = territory.name) - return ..() + gang.territory_new -= territory.type + gang.territory_lost |= list(territory.type = territory.name) + return ..() diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 3ce79ca6f9..b98965d680 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -31,6 +31,7 @@ if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") T.add_decal(get_decal(),group) + return INITIALIZE_HINT_QDEL /obj/effect/turf_decal/stripes/line icon_state = "warningline" @@ -66,4 +67,4 @@ icon_state = "sandyplating" /obj/effect/turf_decal/plaque - icon_state = "plaque" \ No newline at end of file + icon_state = "plaque" diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index e03325fb93..829ed6f6f5 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -1,34 +1,34 @@ /obj/effect/temp_visual/point - name = "pointer" - icon = 'icons/mob/screen_gen.dmi' - icon_state = "arrow" - layer = POINT_LAYER - duration = 25 - + name = "pointer" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "arrow" + layer = POINT_LAYER + duration = 25 + /obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0) - ..() - var/atom/old_loc = loc - loc = get_turf(src) - pixel_x = old_loc.pixel_x - pixel_y = old_loc.pixel_y - invisibility = set_invis - -//Used by spraybottles. -/obj/effect/decal/chempuff - name = "chemicals" - icon = 'icons/obj/chempuff.dmi' - pass_flags = PASSTABLE | PASSGRILLE - layer = FLY_LAYER - -/obj/effect/decal/sandeffect - name = "sandy tile" - icon = 'icons/turf/floors.dmi' - icon_state = "sandeffect" - layer = ABOVE_OPEN_TURF_LAYER - -/obj/effect/decal/fakelattice - name = "lattice" - desc = "A lightweight support lattice." - icon = 'icons/obj/smooth_structures/lattice.dmi' - icon_state = "lattice" - density = 1 + ..() + var/atom/old_loc = loc + loc = get_turf(src) + pixel_x = old_loc.pixel_x + pixel_y = old_loc.pixel_y + invisibility = set_invis + +//Used by spraybottles. +/obj/effect/decal/chempuff + name = "chemicals" + icon = 'icons/obj/chempuff.dmi' + pass_flags = PASSTABLE | PASSGRILLE + layer = FLY_LAYER + +/obj/effect/decal/sandeffect + name = "sandy tile" + icon = 'icons/turf/floors.dmi' + icon_state = "sandeffect" + layer = ABOVE_OPEN_TURF_LAYER + +/obj/effect/decal/fakelattice + name = "lattice" + desc = "A lightweight support lattice." + icon = 'icons/obj/smooth_structures/lattice.dmi' + icon_state = "lattice" + density = 1 diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 60dc5ebdcc..f394cd0ebe 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -104,7 +104,7 @@ /obj/effect/particle_effect/foam/Crossed(atom/movable/AM) if(istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - M.slip(5, 2, src) + M.slip(100, src) /obj/effect/particle_effect/foam/metal/Crossed(atom/movable/AM) return @@ -276,6 +276,10 @@ for(var/obj/item/Item in O) Item.extinguish() +/obj/structure/foamedmetal/resin/CanPass(atom/movable/mover, turf/target, height) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return TRUE + . = ..() #undef ALUMINUM_FOAM #undef IRON_FOAM diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index 3ac1e56520..0a81374435 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -128,10 +128,10 @@ s.set_up(2, 1, location) s.start() - for(var/mob/M in viewers(1, location)) - if (prob (50 * amount)) - to_chat(M, "The explosion knocks you down.") - M.Weaken(rand(1,5)) + for(var/mob/living/L in viewers(1, location)) + if(prob(50 * amount)) + to_chat(L, "The explosion knocks you down.") + L.Knockdown(rand(20,100)) return else dyn_explosion(location, amount, flashing_factor) \ No newline at end of file diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 9324c6edb7..eeee81cb1e 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -207,7 +207,7 @@ /obj/effect/particle_effect/smoke/sleeping/smoke_mob(mob/living/carbon/M) if(..()) M.drop_item() - M.Sleeping(max(M.sleeping,10)) + M.Sleeping(200) M.emote("cough") return 1 diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index 7ade1b707f..c816e86911 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -1,31 +1,31 @@ -/obj/effect/forcefield - desc = "A space wizard's magic wall." - name = "FORCEWALL" - icon_state = "m_shield" - anchored = 1 - opacity = 0 - density = 1 - CanAtmosPass = ATMOS_PASS_DENSITY - -/obj/effect/forcefield/cult - desc = "An unholy shield that blocks all attacks." - name = "glowing wall" +/obj/effect/forcefield + desc = "A space wizard's magic wall." + name = "FORCEWALL" + icon_state = "m_shield" + anchored = 1 + opacity = 0 + density = 1 + CanAtmosPass = ATMOS_PASS_DENSITY + +/obj/effect/forcefield/cult + desc = "An unholy shield that blocks all attacks." + name = "glowing wall" icon = 'icons/effects/cult_effects.dmi' - icon_state = "cultshield" - -///////////Mimewalls/////////// - -/obj/effect/forcefield/mime - icon_state = "empty" - name = "invisible wall" - desc = "You have a bad feeling about this." - var/timeleft = 300 - -/obj/effect/forcefield/mime/New() - ..() - QDEL_IN(src, timeleft) - -/obj/effect/forcefield/mime/advanced - name = "invisible blockade" - desc = "You're goona be here a while." + icon_state = "cultshield" + +///////////Mimewalls/////////// + +/obj/effect/forcefield/mime + icon_state = "empty" + name = "invisible wall" + desc = "You have a bad feeling about this." + var/timeleft = 300 + +/obj/effect/forcefield/mime/New() + ..() + QDEL_IN(src, timeleft) + +/obj/effect/forcefield/mime/advanced + name = "invisible blockade" + desc = "You're goona be here a while." timeleft = 600 \ No newline at end of file diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 9b0702edbe..6363a107d6 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -161,7 +161,7 @@ /obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type == BURN && damage_amount) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index da17bc4f0c..1ae2cf07ec 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -1,173 +1,173 @@ -/obj/effect/mine - name = "dummy mine" - desc = "Better stay away from that thing." - density = 0 - anchored = 1 - icon = 'icons/obj/weapons.dmi' - icon_state = "uglymine" - var/triggered = 0 - -/obj/effect/mine/proc/mineEffect(mob/victim) - to_chat(victim, "*click*") - -/obj/effect/mine/Crossed(AM as mob|obj) - if(isturf(loc)) - if(ismob(AM)) - var/mob/MM = AM - if(!(MM.movement_type & FLYING)) - triggermine(AM) - else - triggermine(AM) - -/obj/effect/mine/proc/triggermine(mob/victim) - if(triggered) - return +/obj/effect/mine + name = "dummy mine" + desc = "Better stay away from that thing." + density = 0 + anchored = 1 + icon = 'icons/obj/weapons.dmi' + icon_state = "uglymine" + var/triggered = 0 + +/obj/effect/mine/proc/mineEffect(mob/victim) + to_chat(victim, "*click*") + +/obj/effect/mine/Crossed(AM as mob|obj) + if(isturf(loc)) + if(ismob(AM)) + var/mob/MM = AM + if(!(MM.movement_type & FLYING)) + triggermine(AM) + else + triggermine(AM) + +/obj/effect/mine/proc/triggermine(mob/victim) + if(triggered) + return visible_message("[victim] sets off [bicon(src)] [src]!") - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - mineEffect(victim) - triggered = 1 - qdel(src) - - -/obj/effect/mine/explosive - name = "explosive mine" - var/range_devastation = 0 - var/range_heavy = 1 - var/range_light = 2 - var/range_flash = 3 - -/obj/effect/mine/explosive/mineEffect(mob/victim) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + mineEffect(victim) + triggered = 1 + qdel(src) + + +/obj/effect/mine/explosive + name = "explosive mine" + var/range_devastation = 0 + var/range_heavy = 1 + var/range_light = 2 + var/range_flash = 3 + +/obj/effect/mine/explosive/mineEffect(mob/victim) explosion(loc, range_devastation, range_heavy, range_light, range_flash) - - -/obj/effect/mine/stun - name = "stun mine" - var/stun_time = 8 - -/obj/effect/mine/stun/mineEffect(mob/victim) - if(isliving(victim)) - victim.Weaken(stun_time) - -/obj/effect/mine/kickmine - name = "kick mine" - -/obj/effect/mine/kickmine/mineEffect(mob/victim) - if(isliving(victim) && victim.client) - to_chat(victim, "You have been kicked FOR NO REISIN!") - qdel(victim.client) - - -/obj/effect/mine/gas - name = "oxygen mine" - var/gas_amount = 360 - var/gas_type = "o2" - -/obj/effect/mine/gas/mineEffect(mob/victim) - atmos_spawn_air("[gas_type]=[gas_amount]") - - -/obj/effect/mine/gas/plasma - name = "plasma mine" - gas_type = "plasma" - - -/obj/effect/mine/gas/n2o - name = "\improper N2O mine" - gas_type = "n2o" - - -/obj/effect/mine/sound - name = "honkblaster 1000" - var/sound = 'sound/items/bikehorn.ogg' - -/obj/effect/mine/sound/mineEffect(mob/victim) - playsound(loc, sound, 100, 1) - - -/obj/effect/mine/sound/bwoink - name = "bwoink mine" - sound = 'sound/effects/adminhelp.ogg' - -/obj/effect/mine/pickup - name = "pickup" - desc = "pick me up" - icon = 'icons/effects/effects.dmi' - icon_state = "electricity2" - density = 0 - var/duration = 0 - -/obj/effect/mine/pickup/New() - ..() - animate(src, pixel_y = 4, time = 20, loop = -1) - -/obj/effect/mine/pickup/triggermine(mob/victim) - if(triggered) - return - triggered = 1 - invisibility = INVISIBILITY_ABSTRACT - mineEffect(victim) - qdel(src) - - -/obj/effect/mine/pickup/bloodbath - name = "Red Orb" - desc = "You feel angry just looking at it." - duration = 1200 //2min - color = "#FF0000" - -/obj/effect/mine/pickup/bloodbath/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "RIP AND TEAR") - victim << 'sound/misc/e1m1.ogg' - var/old_color = victim.client.color - var/red_splash = list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0) - var/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0) - - spawn(0) + + +/obj/effect/mine/stun + name = "stun mine" + var/stun_time = 80 + +/obj/effect/mine/stun/mineEffect(mob/living/victim) + if(isliving(victim)) + victim.Knockdown(stun_time) + +/obj/effect/mine/kickmine + name = "kick mine" + +/obj/effect/mine/kickmine/mineEffect(mob/victim) + if(isliving(victim) && victim.client) + to_chat(victim, "You have been kicked FOR NO REISIN!") + qdel(victim.client) + + +/obj/effect/mine/gas + name = "oxygen mine" + var/gas_amount = 360 + var/gas_type = "o2" + +/obj/effect/mine/gas/mineEffect(mob/victim) + atmos_spawn_air("[gas_type]=[gas_amount]") + + +/obj/effect/mine/gas/plasma + name = "plasma mine" + gas_type = "plasma" + + +/obj/effect/mine/gas/n2o + name = "\improper N2O mine" + gas_type = "n2o" + + +/obj/effect/mine/sound + name = "honkblaster 1000" + var/sound = 'sound/items/bikehorn.ogg' + +/obj/effect/mine/sound/mineEffect(mob/victim) + playsound(loc, sound, 100, 1) + + +/obj/effect/mine/sound/bwoink + name = "bwoink mine" + sound = 'sound/effects/adminhelp.ogg' + +/obj/effect/mine/pickup + name = "pickup" + desc = "pick me up" + icon = 'icons/effects/effects.dmi' + icon_state = "electricity2" + density = 0 + var/duration = 0 + +/obj/effect/mine/pickup/New() + ..() + animate(src, pixel_y = 4, time = 20, loop = -1) + +/obj/effect/mine/pickup/triggermine(mob/victim) + if(triggered) + return + triggered = 1 + invisibility = INVISIBILITY_ABSTRACT + mineEffect(victim) + qdel(src) + + +/obj/effect/mine/pickup/bloodbath + name = "Red Orb" + desc = "You feel angry just looking at it." + duration = 1200 //2min + color = "#FF0000" + +/obj/effect/mine/pickup/bloodbath/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "RIP AND TEAR") + victim << 'sound/misc/e1m1.ogg' + var/old_color = victim.client.color + var/red_splash = list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0) + var/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0) + + spawn(0) new /obj/effect/hallucination/delusion(victim.loc,victim,"demon",duration,0) - - var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) - chainsaw.flags |= NODROP - victim.drop_all_held_items() - victim.put_in_hands(chainsaw) - chainsaw.attack_self(victim) - chainsaw.wield(victim) - victim.reagents.add_reagent("adminordrazine",25) - - victim.client.color = pure_red - animate(victim.client,color = red_splash, time = 10, easing = SINE_EASING|EASE_OUT) - sleep(10) - animate(victim.client,color = old_color, time = duration)//, easing = SINE_EASING|EASE_OUT) - sleep(duration) - to_chat(victim, "Your bloodlust seeps back into the bog of your subconscious and you regain self control.") - qdel(chainsaw) - qdel(src) - -/obj/effect/mine/pickup/healing - name = "Blue Orb" - desc = "You feel better just looking at it." - color = "#0000FF" - -/obj/effect/mine/pickup/healing/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "You feel great!") - victim.revive(full_heal = 1, admin_revive = 1) - -/obj/effect/mine/pickup/speed - name = "Yellow Orb" - desc = "You feel faster just looking at it." - color = "#FFFF00" - duration = 300 - -/obj/effect/mine/pickup/speed/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "You feel fast!") - victim.status_flags |= GOTTAGOREALLYFAST - sleep(duration) - victim.status_flags &= ~GOTTAGOREALLYFAST - to_chat(victim, "You slow down.") + + var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) + chainsaw.flags |= NODROP + victim.drop_all_held_items() + victim.put_in_hands(chainsaw) + chainsaw.attack_self(victim) + chainsaw.wield(victim) + victim.reagents.add_reagent("adminordrazine",25) + + victim.client.color = pure_red + animate(victim.client,color = red_splash, time = 10, easing = SINE_EASING|EASE_OUT) + sleep(10) + animate(victim.client,color = old_color, time = duration)//, easing = SINE_EASING|EASE_OUT) + sleep(duration) + to_chat(victim, "Your bloodlust seeps back into the bog of your subconscious and you regain self control.") + qdel(chainsaw) + qdel(src) + +/obj/effect/mine/pickup/healing + name = "Blue Orb" + desc = "You feel better just looking at it." + color = "#0000FF" + +/obj/effect/mine/pickup/healing/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "You feel great!") + victim.revive(full_heal = 1, admin_revive = 1) + +/obj/effect/mine/pickup/speed + name = "Yellow Orb" + desc = "You feel faster just looking at it." + color = "#FFFF00" + duration = 300 + +/obj/effect/mine/pickup/speed/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "You feel fast!") + victim.status_flags |= GOTTAGOREALLYFAST + sleep(duration) + victim.status_flags &= ~GOTTAGOREALLYFAST + to_chat(victim, "You slow down.") diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 7f66b0ab1a..45242ae6d5 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -1,25 +1,42 @@ +/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal) + if(!istype(source) || !istype(destination)) + return + var/turf/actual_destination = get_teleport_turf(destination, accuracy) + var/obj/effect/portal/P1 = new newtype(source, _creator, _lifespan, null, FALSE) + var/obj/effect/portal/P2 = new newtype(actual_destination, _creator, _lifespan, P1, TRUE) + if(!istype(P1)||!istype(P2)) + return + P1.link_portal(P2) + P1.hardlinked = TRUE + return list(P1, P2) + /obj/effect/portal name = "portal" desc = "Looks unstable. Best to test it with the clown." icon = 'icons/obj/stationobjs.dmi' icon_state = "portal" - density = 1 - var/obj/item/target = null - var/creator = null - anchored = 1 - var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent + anchored = TRUE var/mech_sized = FALSE + var/obj/effect/portal/linked + var/hardlinked = TRUE //Requires a linked portal at all times. Destroy if there's no linked portal, if there is destroy it when this one is deleted. + var/creator + var/turf/hard_target //For when a portal needs a hard target and isn't to be linked. + var/atmos_link = FALSE //Link source/destination atmos. + var/turf/open/atmos_source //Atmos link source + var/turf/open/atmos_destination //Atmos link destination -/obj/effect/portal/Bumped(mob/M as mob|obj) - teleport(M) +/obj/effect/portal/anom + name = "wormhole" + icon = 'icons/obj/objects.dmi' + icon_state = "anom" + mech_sized = TRUE -/obj/effect/portal/attack_tk(mob/user) - return - -/obj/effect/portal/attack_hand(mob/user) - if(Adjacent(user)) - teleport(user) +/obj/effect/portal/Move(newloc) + for(var/T in newloc) + if(istype(T, /obj/effect/portal)) + return FALSE + return ..() /obj/effect/portal/attackby(obj/item/weapon/W, mob/user, params) if(user && Adjacent(user)) @@ -28,42 +45,115 @@ /obj/effect/portal/make_frozen_visual() return -/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) - ..() +/obj/effect/portal/Crossed(atom/movable/AM, oldloc) + if(get_turf(oldloc) == get_turf(linked)) + return ..() + if(!teleport(AM)) + return ..() + +/obj/effect/portal/attack_tk(mob/user) + return + +/obj/effect/portal/attack_hand(mob/user) + if(Adjacent(user)) + teleport(user) + +/obj/effect/portal/Initialize(mapload, _creator, _lifespan = 0, obj/effect/portal/_linked, automatic_link = FALSE, turf/hard_target_override, atmos_link_override) + . = ..() GLOB.portals += src - src.target = target - src.creator = creator + if(!istype(_linked) && automatic_link) + . = INITIALIZE_HINT_QDEL + CRASH("Somebody fucked up.") + if(_lifespan > 0) + QDEL_IN(src, _lifespan) + if(!isnull(atmos_link_override)) + atmos_link = atmos_link_override + link_portal(_linked) + hardlinked = automatic_link + creator = _creator + if(isturf(hard_target_override)) + hard_target = hard_target_override - var/area/A = get_area(target) - if(A && A.noteleport) // No point in persisting if the target is unreachable. - qdel(src) - return - if(lifespan > 0) - QDEL_IN(src, lifespan) +/obj/effect/portal/proc/link_portal(obj/effect/portal/newlink) + linked = newlink + if(atmos_link) + link_atmos() -/obj/effect/portal/Destroy() - GLOB.portals -= src - if(istype(creator, /obj/item/weapon/hand_tele)) - var/obj/item/weapon/hand_tele/O = creator - O.active_portals-- - else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector)) - var/obj/item/weapon/gun/energy/wormhole_projector/P = creator - P.portal_destroyed(src) +/obj/effect/portal/proc/link_atmos() + if(atmos_source || atmos_destination) + unlink_atmos() + if(!isopenturf(get_turf(src))) + return FALSE + if(linked) + if(isopenturf(get_turf(linked))) + atmos_source = get_turf(src) + atmos_destination = get_turf(linked) + else if(hard_target) + if(isopenturf(hard_target)) + atmos_source = get_turf(src) + atmos_destination = hard_target + else + return FALSE + if(!istype(atmos_source) || !istype(atmos_destination)) + return FALSE + LAZYINITLIST(atmos_source.atmos_adjacent_turfs) + LAZYINITLIST(atmos_destination.atmos_adjacent_turfs) + if(atmos_source.atmos_adjacent_turfs[atmos_destination] || atmos_destination.atmos_adjacent_turfs[atmos_source]) //Already linked! + return FALSE + atmos_source.atmos_adjacent_turfs[atmos_destination] = TRUE + atmos_destination.atmos_adjacent_turfs[atmos_source] = TRUE + atmos_source.air_update_turf(FALSE) + atmos_destination.air_update_turf(FALSE) + +/obj/effect/portal/proc/unlink_atmos() + if(istype(atmos_source)) + if(istype(atmos_destination) && !atmos_source.Adjacent(atmos_destination) && !CANATMOSPASS(atmos_destination, atmos_source)) + LAZYREMOVE(atmos_source.atmos_adjacent_turfs, atmos_destination) + atmos_source = null + if(istype(atmos_destination)) + if(istype(atmos_source) && !atmos_destination.Adjacent(atmos_source) && !CANATMOSPASS(atmos_source, atmos_destination)) + LAZYREMOVE(atmos_destination.atmos_adjacent_turfs, atmos_source) + atmos_destination = null + +/obj/effect/portal/Destroy() //Calls on_portal_destroy(destroyed portal, location of destroyed portal) on creator if creator has such call. + if(creator && hascall(creator, "on_portal_destroy")) + call(creator, "on_portal_destroy")(src, src.loc) creator = null + GLOB.portals -= src + unlink_atmos() + if(hardlinked && !QDELETED(linked)) + QDEL_NULL(linked) + else + linked = null return ..() -/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) - if(istype(M, /obj/effect)) //sparks don't teleport +/obj/effect/portal/proc/teleport(atom/movable/M) + if(!istype(M) || istype(M, /obj/effect) || (istype(M, /obj/mecha) && !mech_sized) || (!isobj(M) && !ismob(M))) //Things that shouldn't teleport. return - if(M.anchored) - if(!(istype(M, /obj/mecha) && mech_sized)) + var/turf/real_target = get_link_target_turf() + if(!istype(real_target)) + return FALSE + if(ismegafauna(M)) + message_admins("[M] has used a portal at [ADMIN_COORDJMP(src)] made by [usr].") + if(do_teleport(M, real_target, 0)) + if(istype(M, /obj/item/projectile)) + var/obj/item/projectile/P = M + P.ignore_source_check = TRUE + return TRUE + return FALSE + +/obj/effect/portal/proc/get_link_target_turf() + var/turf/real_target + if(!istype(linked) || QDELETED(linked)) + if(hardlinked) + qdel(src) + if(!istype(hard_target) || QDELETED(hard_target)) + hard_target = null return - if (!( target )) - qdel(src) - return - if (istype(M, /atom/movable)) - if(ismegafauna(M)) - message_admins("[M] [ADMIN_FLW(M)] has teleported through [src].") - do_teleport(M, target, precision) ///You will appear adjacent to the beacon - + else + real_target = hard_target + linked = null + else + real_target = get_turf(linked) + return real_target diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index d744043a51..06beef6940 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -25,7 +25,7 @@ for(var/j = 1, j<= gibamounts[i], j++) var/gibType = gibtypes[i] gib = new gibType(loc) - if(istype(loc,/mob/living/carbon)) + if(iscarbon(loc)) var/mob/living/carbon/digester = loc digester.stomach_contents += gib diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 4ad01f509a..a9798800a0 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -1,59 +1,59 @@ -/obj/effect/spawner/lootdrop - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x2" - color = "#00FF00" - var/lootcount = 1 //how many items will be spawned - var/lootdoubles = TRUE //if the same item can be spawned twice - var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect) - -/obj/effect/spawner/lootdrop/Initialize(mapload) - ..() - if(loot && loot.len) - var/turf/T = get_turf(src) - while(lootcount && loot.len) - var/lootspawn = pickweight(loot) - if(!lootdoubles) - loot.Remove(lootspawn) - - if(lootspawn) - new lootspawn(T) - lootcount-- - qdel(src) - -/obj/effect/spawner/lootdrop/armory_contraband - name = "armory contraband gun spawner" - lootdoubles = FALSE - - loot = list( - /obj/item/weapon/gun/ballistic/automatic/pistol = 8, - /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, - /obj/item/weapon/gun/ballistic/revolver/mateba, - /obj/item/weapon/gun/ballistic/automatic/pistol/deagle - ) - -/obj/effect/spawner/lootdrop/gambling - name = "gambling valuables spawner" - loot = list( - /obj/item/weapon/gun/ballistic/revolver/russian = 5, - /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, - /obj/item/toy/cards/deck/syndicate = 2 - ) - -/obj/effect/spawner/lootdrop/grille_or_trash - name = "maint grille or trash spawner" - loot = list(/obj/structure/grille = 5, - /obj/item/weapon/cigbutt = 1, - /obj/item/trash/cheesie = 1, - /obj/item/trash/candy = 1, - /obj/item/trash/chips = 1, - /obj/item/trash/deadmouse = 1, - /obj/item/trash/pistachios = 1, - /obj/item/trash/plate = 1, - /obj/item/trash/popcorn = 1, - /obj/item/trash/raisins = 1, - /obj/item/trash/sosjerky = 1, - /obj/item/trash/syndi_cakes = 1) - +/obj/effect/spawner/lootdrop + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + color = "#00FF00" + var/lootcount = 1 //how many items will be spawned + var/lootdoubles = TRUE //if the same item can be spawned twice + var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect) + +/obj/effect/spawner/lootdrop/Initialize(mapload) + ..() + if(loot && loot.len) + var/turf/T = get_turf(src) + while(lootcount && loot.len) + var/lootspawn = pickweight(loot) + if(!lootdoubles) + loot.Remove(lootspawn) + + if(lootspawn) + new lootspawn(T) + lootcount-- + qdel(src) + +/obj/effect/spawner/lootdrop/armory_contraband + name = "armory contraband gun spawner" + lootdoubles = FALSE + + loot = list( + /obj/item/weapon/gun/ballistic/automatic/pistol = 8, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/weapon/gun/ballistic/revolver/mateba, + /obj/item/weapon/gun/ballistic/automatic/pistol/deagle + ) + +/obj/effect/spawner/lootdrop/gambling + name = "gambling valuables spawner" + loot = list( + /obj/item/weapon/gun/ballistic/revolver/russian = 5, + /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, + /obj/item/toy/cards/deck/syndicate = 2 + ) + +/obj/effect/spawner/lootdrop/grille_or_trash + name = "maint grille or trash spawner" + loot = list(/obj/structure/grille = 5, + /obj/item/weapon/cigbutt = 1, + /obj/item/trash/cheesie = 1, + /obj/item/trash/candy = 1, + /obj/item/trash/chips = 1, + /obj/item/trash/deadmouse = 1, + /obj/item/trash/pistachios = 1, + /obj/item/trash/plate = 1, + /obj/item/trash/popcorn = 1, + /obj/item/trash/raisins = 1, + /obj/item/trash/sosjerky = 1, + /obj/item/trash/syndi_cakes = 1) + /obj/effect/spawner/lootdrop/three_course_meal name = "three course meal spawner" lootcount = 3 @@ -83,83 +83,83 @@ loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1) . = ..() -/obj/effect/spawner/lootdrop/maintenance - name = "maintenance loot spawner" +/obj/effect/spawner/lootdrop/maintenance + name = "maintenance loot spawner" // see code/_globalvars/lists/maintenance_loot.dm for loot table - + /obj/effect/spawner/lootdrop/maintenance/Initialize(mapload) loot = GLOB.maintenance_loot ..() - -/obj/effect/spawner/lootdrop/crate_spawner - name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF! - lootdoubles = FALSE - - loot = list( - /obj/structure/closet/crate/secure/loot = 20, - "" = 80 - ) - -/obj/effect/spawner/lootdrop/organ_spawner - name = "organ spawner" - loot = list( - /obj/item/organ/heart/gland/bloody = 7, - /obj/item/organ/heart/gland/bodysnatch = 4, - /obj/item/organ/heart/gland/egg = 7, - /obj/item/organ/heart/gland/emp = 3, - /obj/item/organ/heart/gland/mindshock = 5, - /obj/item/organ/heart/gland/plasma = 7, - /obj/item/organ/heart/gland/pop = 5, - /obj/item/organ/heart/gland/slime = 4, - /obj/item/organ/heart/gland/spiderman = 5, - /obj/item/organ/heart/gland/ventcrawling = 1, - /obj/item/organ/body_egg/alien_embryo = 1, + +/obj/effect/spawner/lootdrop/crate_spawner + name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF! + lootdoubles = FALSE + + loot = list( + /obj/structure/closet/crate/secure/loot = 20, + "" = 80 + ) + +/obj/effect/spawner/lootdrop/organ_spawner + name = "organ spawner" + loot = list( + /obj/item/organ/heart/gland/bloody = 7, + /obj/item/organ/heart/gland/bodysnatch = 4, + /obj/item/organ/heart/gland/egg = 7, + /obj/item/organ/heart/gland/emp = 3, + /obj/item/organ/heart/gland/mindshock = 5, + /obj/item/organ/heart/gland/plasma = 7, + /obj/item/organ/heart/gland/pop = 5, + /obj/item/organ/heart/gland/slime = 4, + /obj/item/organ/heart/gland/spiderman = 5, + /obj/item/organ/heart/gland/ventcrawling = 1, + /obj/item/organ/body_egg/alien_embryo = 1, /obj/item/organ/regenerative_core = 2) - lootcount = 3 - -/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner - name = "2% chance xeno egg spawner" - loot = list( - /obj/effect/decal/remains/xeno = 49, - /obj/effect/spawner/xeno_egg_delivery = 1) - -/obj/effect/spawner/lootdrop/costume - name = "random costume spawner" - -/obj/effect/spawner/lootdrop/costume/Initialize() - loot = list() - for(var/path in subtypesof(/obj/effect/spawner/bundle/costume)) - loot[path] = TRUE - ..() - -// Minor lootdrops follow - -/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears - name = "beret or rabbit ears spawner" - loot = list( - /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/rabbitears = 1) - -/obj/effect/spawner/lootdrop/minor/bowler_or_that - name = "bowler or top hat spawner" - loot = list( - /obj/item/clothing/head/bowler = 1, - /obj/item/clothing/head/that = 1) - -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears - name = "kitty ears or rabbit ears spawner" - loot = list( - /obj/item/clothing/head/kitty = 1, - /obj/item/clothing/head/rabbitears = 1) - -/obj/effect/spawner/lootdrop/minor/pirate_or_bandana - name = "pirate hat or bandana spawner" - loot = list( - /obj/item/clothing/head/pirate = 1, - /obj/item/clothing/head/bandana = 1) - -/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask - name = "25% cyborg mask spawner" - loot = list( - /obj/item/clothing/mask/gas/cyborg = 25, - "" = 75) + lootcount = 3 + +/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner + name = "2% chance xeno egg spawner" + loot = list( + /obj/effect/decal/remains/xeno = 49, + /obj/effect/spawner/xeno_egg_delivery = 1) + +/obj/effect/spawner/lootdrop/costume + name = "random costume spawner" + +/obj/effect/spawner/lootdrop/costume/Initialize() + loot = list() + for(var/path in subtypesof(/obj/effect/spawner/bundle/costume)) + loot[path] = TRUE + ..() + +// Minor lootdrops follow + +/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears + name = "beret or rabbit ears spawner" + loot = list( + /obj/item/clothing/head/beret = 1, + /obj/item/clothing/head/rabbitears = 1) + +/obj/effect/spawner/lootdrop/minor/bowler_or_that + name = "bowler or top hat spawner" + loot = list( + /obj/item/clothing/head/bowler = 1, + /obj/item/clothing/head/that = 1) + +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears + name = "kitty ears or rabbit ears spawner" + loot = list( + /obj/item/clothing/head/kitty = 1, + /obj/item/clothing/head/rabbitears = 1) + +/obj/effect/spawner/lootdrop/minor/pirate_or_bandana + name = "pirate hat or bandana spawner" + loot = list( + /obj/item/clothing/head/pirate = 1, + /obj/item/clothing/head/bandana = 1) + +/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask + name = "25% cyborg mask spawner" + loot = list( + /obj/item/clothing/mask/gas/cyborg = 25, + "" = 75) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index b379ddb97b..48220a77f0 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -1,215 +1,215 @@ -//generic procs copied from obj/effect/alien -/obj/structure/spider - name = "web" - icon = 'icons/effects/effects.dmi' - desc = "it's stringy and sticky" - anchored = 1 - density = 0 - obj_integrity = 15 - - - -/obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type - playsound(loc, 'sound/items/Welder.ogg', 100, 1) - - -/obj/structure/spider/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) - if(damage_flag == "melee") - switch(damage_type) - if(BURN) - damage_amount *= 2 - if(BRUTE) - damage_amount *= 0.25 - . = ..() - -/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > 300) - take_damage(5, BURN, 0, 0) - -/obj/structure/spider/stickyweb - icon_state = "stickyweb1" - -/obj/structure/spider/stickyweb/Initialize() - if(prob(50)) - icon_state = "stickyweb2" - . = ..() - -/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target, height=0) - if(height==0) return 1 - if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider)) - return 1 - else if(isliving(mover)) - if(prob(50)) - to_chat(mover, "You get stuck in \the [src] for a moment.") - return 0 - else if(istype(mover, /obj/item/projectile)) - return prob(30) - return 1 - -/obj/structure/spider/eggcluster - name = "egg cluster" - desc = "They seem to pulse slightly with an inner life" - icon_state = "eggs" - var/amount_grown = 0 - var/player_spiders = 0 - var/poison_type = "toxin" - var/poison_per_bite = 5 - var/list/faction = list("spiders") - -/obj/structure/spider/eggcluster/Initialize() - pixel_x = rand(3,-3) - pixel_y = rand(3,-3) - START_PROCESSING(SSobj, src) - . = ..() - -/obj/structure/spider/eggcluster/process() - amount_grown += rand(0,2) - if(amount_grown >= 100) - var/num = rand(3,12) - for(var/i=0, i[src] scrambles into the ventillation ducts!
    ", \ - "You hear something scampering through the ventilation ducts.") - - spawn(rand(20,60)) - loc = exit_vent - var/travel_time = round(get_dist(loc, exit_vent.loc) / 2) - spawn(travel_time) - - if(!exit_vent || exit_vent.welded) - loc = entry_vent - entry_vent = null - return - - if(prob(50)) - audible_message("You hear something scampering through the ventilation ducts.") - sleep(travel_time) - - if(!exit_vent || exit_vent.welded) - loc = entry_vent - entry_vent = null - return - loc = exit_vent.loc - entry_vent = null - var/area/new_area = get_area(loc) - if(new_area) - new_area.Entered(src) - //================= - - else if(prob(33)) - var/list/nearby = oview(10, src) - if(nearby.len) - var/target_atom = pick(nearby) - walk_to(src, target_atom) - if(prob(40)) - src.visible_message("\The [src] skitters[pick(" away"," around","")].") - else if(prob(10)) - //ventcrawl! - for(var/obj/machinery/atmospherics/components/unary/vent_pump/v in view(7,src)) - if(!v.welded) - entry_vent = v - walk_to(src, entry_vent, 1) - break - if(isturf(loc)) - amount_grown += rand(0,2) - if(amount_grown >= 100) - if(!grow_as) +//generic procs copied from obj/effect/alien +/obj/structure/spider + name = "web" + icon = 'icons/effects/effects.dmi' + desc = "it's stringy and sticky" + anchored = 1 + density = 0 + obj_integrity = 15 + + + +/obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type + playsound(loc, 'sound/items/welder.ogg', 100, 1) + + +/obj/structure/spider/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee") + switch(damage_type) + if(BURN) + damage_amount *= 2 + if(BRUTE) + damage_amount *= 0.25 + . = ..() + +/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + take_damage(5, BURN, 0, 0) + +/obj/structure/spider/stickyweb + icon_state = "stickyweb1" + +/obj/structure/spider/stickyweb/Initialize() + if(prob(50)) + icon_state = "stickyweb2" + . = ..() + +/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider)) + return 1 + else if(isliving(mover)) + if(prob(50)) + to_chat(mover, "You get stuck in \the [src] for a moment.") + return 0 + else if(istype(mover, /obj/item/projectile)) + return prob(30) + return 1 + +/obj/structure/spider/eggcluster + name = "egg cluster" + desc = "They seem to pulse slightly with an inner life" + icon_state = "eggs" + var/amount_grown = 0 + var/player_spiders = 0 + var/poison_type = "toxin" + var/poison_per_bite = 5 + var/list/faction = list("spiders") + +/obj/structure/spider/eggcluster/Initialize() + pixel_x = rand(3,-3) + pixel_y = rand(3,-3) + START_PROCESSING(SSobj, src) + . = ..() + +/obj/structure/spider/eggcluster/process() + amount_grown += rand(0,2) + if(amount_grown >= 100) + var/num = rand(3,12) + for(var/i=0, i[src] scrambles into the ventillation ducts!
    ", \ + "You hear something scampering through the ventilation ducts.") + + spawn(rand(20,60)) + loc = exit_vent + var/travel_time = round(get_dist(loc, exit_vent.loc) / 2) + spawn(travel_time) + + if(!exit_vent || exit_vent.welded) + loc = entry_vent + entry_vent = null + return + + if(prob(50)) + audible_message("You hear something scampering through the ventilation ducts.") + sleep(travel_time) + + if(!exit_vent || exit_vent.welded) + loc = entry_vent + entry_vent = null + return + loc = exit_vent.loc + entry_vent = null + var/area/new_area = get_area(loc) + if(new_area) + new_area.Entered(src) + //================= + + else if(prob(33)) + var/list/nearby = oview(10, src) + if(nearby.len) + var/target_atom = pick(nearby) + walk_to(src, target_atom) + if(prob(40)) + src.visible_message("\The [src] skitters[pick(" away"," around","")].") + else if(prob(10)) + //ventcrawl! + for(var/obj/machinery/atmospherics/components/unary/vent_pump/v in view(7,src)) + if(!v.welded) + entry_vent = v + walk_to(src, entry_vent, 1) + break + if(isturf(loc)) + amount_grown += rand(0,2) + if(amount_grown >= 100) + if(!grow_as) grow_as = pick(/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/nurse) - var/mob/living/simple_animal/hostile/poison/giant_spider/S = new grow_as(src.loc) - S.poison_per_bite = poison_per_bite - S.poison_type = poison_type - S.faction = faction.Copy() - if(player_spiders) - S.playable_spider = TRUE - notify_ghosts("Spider [S.name] can be controlled", null, enter_link="(Click to play)", source=S, action=NOTIFY_ATTACK) - qdel(src) - - - -/obj/structure/spider/cocoon - name = "cocoon" - desc = "Something wrapped in silky spider web" - icon_state = "cocoon1" - obj_integrity = 60 - -/obj/structure/spider/cocoon/Initialize() - icon_state = pick("cocoon1","cocoon2","cocoon3") - . = ..() - -/obj/structure/spider/cocoon/container_resist(mob/living/user) - var/breakout_time = 1 - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - to_chat(user, "You struggle against the tight bonds... (This will take about [breakout_time] minutes.)") - visible_message("You see something struggling and writhing in \the [src]!") - if(do_after(user,(breakout_time*60*10), target = src)) - if(!user || user.stat != CONSCIOUS || user.loc != src) - return - qdel(src) - - - -/obj/structure/spider/cocoon/Destroy() - var/turf/T = get_turf(src) - src.visible_message("\The [src] splits open.") - for(var/atom/movable/A in contents) - A.forceMove(T) - return ..() + var/mob/living/simple_animal/hostile/poison/giant_spider/S = new grow_as(src.loc) + S.poison_per_bite = poison_per_bite + S.poison_type = poison_type + S.faction = faction.Copy() + if(player_spiders) + S.playable_spider = TRUE + notify_ghosts("Spider [S.name] can be controlled", null, enter_link="(Click to play)", source=S, action=NOTIFY_ATTACK) + qdel(src) + + + +/obj/structure/spider/cocoon + name = "cocoon" + desc = "Something wrapped in silky spider web" + icon_state = "cocoon1" + obj_integrity = 60 + +/obj/structure/spider/cocoon/Initialize() + icon_state = pick("cocoon1","cocoon2","cocoon3") + . = ..() + +/obj/structure/spider/cocoon/container_resist(mob/living/user) + var/breakout_time = 1 + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + to_chat(user, "You struggle against the tight bonds... (This will take about [breakout_time] minutes.)") + visible_message("You see something struggling and writhing in \the [src]!") + if(do_after(user,(breakout_time*60*10), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src) + return + qdel(src) + + + +/obj/structure/spider/cocoon/Destroy() + var/turf/T = get_turf(src) + src.visible_message("\The [src] splits open.") + for(var/atom/movable/A in contents) + A.forceMove(T) + return ..() diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 8d59a03f02..87bde5ce98 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -16,7 +16,7 @@ return if(isobserver(H) && !affect_ghosts) return - if(!istype(H, /mob) && mobs_only) + if(!ismob(H) && mobs_only) return Trigger(H) @@ -45,7 +45,7 @@ var/list/affecting = list() /obj/effect/step_trigger/thrower/Trigger(atom/A) - if(!A || !istype(A, /atom/movable)) + if(!A || !ismovableatom(A)) return var/atom/movable/AM = A var/curtiles = 0 diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 6fd0530935..c9569a92ee 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -162,10 +162,16 @@ /obj/effect/temp_visual/decoy/fading/fivesecond duration = 50 +/obj/effect/temp_visual/decoy/fading/halfsecond + duration = 5 + /obj/effect/temp_visual/small_smoke icon_state = "smoke" duration = 50 +/obj/effect/temp_visual/small_smoke/halfsecond + duration = 5 + /obj/effect/temp_visual/fire icon = 'icons/effects/fire.dmi' icon_state = "3" @@ -312,3 +318,30 @@ pixel_x = rand(-4,4) pixel_y = rand(-4,4) animate(src, pixel_y = pixel_y + 32, alpha = 0, time = 25) + +/obj/effect/temp_visual/bleed + name = "bleed" + icon = 'icons/effects/bleed.dmi' + icon_state = "bleed0" + duration = 10 + var/shrink = TRUE + +/obj/effect/temp_visual/bleed/Initialize(mapload, atom/size_calc_target) + . = ..() + var/size_matrix = matrix() + if(size_calc_target) + layer = size_calc_target.layer + 0.01 + var/icon/I = icon(size_calc_target.icon, size_calc_target.icon_state, size_calc_target.dir) + size_matrix = matrix() * (I.Height()/world.icon_size) + transform = size_matrix //scale the bleed overlay's size based on the target's icon size + var/matrix/M = transform + if(shrink) + M = size_matrix*0.1 + else + M = size_matrix*2 + animate(src, alpha = 20, transform = M, time = duration, flags = ANIMATION_PARALLEL) + +/obj/effect/temp_visual/bleed/explode + icon_state = "bleed10" + duration = 12 + shrink = FALSE diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index f7d04941ed..eb8602da5d 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -1,31 +1,31 @@ -/proc/empulse(turf/epicenter, heavy_range, light_range, log=0) - if(!epicenter) return - - if(!isturf(epicenter)) - epicenter = get_turf(epicenter.loc) - - if(log) - message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") - log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") - - if(heavy_range > 1) +/proc/empulse(turf/epicenter, heavy_range, light_range, log=0) + if(!epicenter) return + + if(!isturf(epicenter)) + epicenter = get_turf(epicenter.loc) + + if(log) + message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + + if(heavy_range > 1) new /obj/effect/temp_visual/emp/pulse(epicenter) - - if(heavy_range > light_range) - light_range = heavy_range - - for(var/A in spiral_range(light_range, epicenter)) - var/atom/T = A - var/distance = get_dist(epicenter, T) - if(distance < 0) - distance = 0 - if(distance < heavy_range) - T.emp_act(1) - else if(distance == heavy_range) - if(prob(50)) - T.emp_act(1) - else - T.emp_act(2) - else if(distance <= light_range) - T.emp_act(2) + + if(heavy_range > light_range) + light_range = heavy_range + + for(var/A in spiral_range(light_range, epicenter)) + var/atom/T = A + var/distance = get_dist(epicenter, T) + if(distance < 0) + distance = 0 + if(distance < heavy_range) + T.emp_act(1) + else if(distance == heavy_range) + if(prob(50)) + T.emp_act(1) + else + T.emp_act(2) + else if(distance <= light_range) + T.emp_act(2) return 1 \ No newline at end of file diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index ecd8350be2..d937abf0d3 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,111 +1,111 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire")) - -GLOBAL_VAR_INIT(rpg_loot_items, FALSE) -// if true, everyone item when created will have its name changed to be -// more... RPG-like. - -/obj/item - name = "item" - icon = 'icons/obj/items.dmi' - var/item_state = null - var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' - - //Dimensions of the icon file used when this item is worn, eg: hats.dmi - //eg: 32x32 sprite, 64x64 sprite, etc. - //allows inhands/worn sprites to be of any size, but still centered on a mob properly - var/worn_x_dimension = 32 - var/worn_y_dimension = 32 - //Same as above but for inhands, uses the lefthand_ and righthand_ file vars - var/inhand_x_dimension = 32 - var/inhand_y_dimension = 32 - - //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. - var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events - var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default - - obj_integrity = 200 - max_integrity = 200 - - - var/hitsound = null - var/usesound = null - var/throwhitsound = null - var/w_class = WEIGHT_CLASS_NORMAL - var/slot_flags = 0 //This is used to determine on which slots an item can fit. - pass_flags = PASSTABLE - pressure_resistance = 4 - var/obj/item/master = null - - var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags - var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags - - var/list/actions //list of /datum/action's that this item has. - var/list/actions_types //list of paths of action datums to give to the item on New(). - - //Since any item can now be a piece of clothing, this has to be put here so all items share it. - var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. - - var/item_color = null //this needs deprecating, soonish - - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags - //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible - var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) - var/permeability_coefficient = 1 // for chemicals/diseases - var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up - var/armour_penetration = 0 //percentage of armour effectiveness to remove - var/list/allowed = null //suit storage stuff. - var/obj/item/device/uplink/hidden_uplink = null + +GLOBAL_VAR_INIT(rpg_loot_items, FALSE) +// if true, everyone item when created will have its name changed to be +// more... RPG-like. + +/obj/item + name = "item" + icon = 'icons/obj/items.dmi' + var/item_state = null + var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + //Dimensions of the icon file used when this item is worn, eg: hats.dmi + //eg: 32x32 sprite, 64x64 sprite, etc. + //allows inhands/worn sprites to be of any size, but still centered on a mob properly + var/worn_x_dimension = 32 + var/worn_y_dimension = 32 + //Same as above but for inhands, uses the lefthand_ and righthand_ file vars + var/inhand_x_dimension = 32 + var/inhand_y_dimension = 32 + + //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. + var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events + var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default + + obj_integrity = 200 + max_integrity = 200 + + + var/hitsound = null + var/usesound = null + var/throwhitsound = null + var/w_class = WEIGHT_CLASS_NORMAL + var/slot_flags = 0 //This is used to determine on which slots an item can fit. + pass_flags = PASSTABLE + pressure_resistance = 4 + var/obj/item/master = null + + var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags + var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags + + var/list/actions //list of /datum/action's that this item has. + var/list/actions_types //list of paths of action datums to give to the item on New(). + + //Since any item can now be a piece of clothing, this has to be put here so all items share it. + var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. + + var/item_color = null //this needs deprecating, soonish + + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible + var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) + var/permeability_coefficient = 1 // for chemicals/diseases + var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) + var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up + var/armour_penetration = 0 //percentage of armour effectiveness to remove + var/list/allowed = null //suit storage stuff. + var/obj/item/device/uplink/hidden_uplink = null var/equip_delay_self = 0 //In deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc. var/equip_delay_other = 20 //In deciseconds, how long an item takes to put on another person var/strip_delay = 40 //In deciseconds, how long an item takes to remove from another person - var/breakouttime = 0 - var/list/materials - var/origin_tech = null //Used by R&D to determine what research bonuses it grants. - var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. - - var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" - var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item - - var/suittoggled = 0 - var/hooded = 0 - - var/mob/thrownby = null - - /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged - - //So items can have custom embedd values - //Because customisation is king - var/embed_chance = EMBED_CHANCE - var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT - var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE - var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) - var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) - var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) - var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) - var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. - - var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES - var/heat = 0 - var/sharpness = IS_BLUNT - var/toolspeed = 1 - - var/block_chance = 0 - var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom - var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default - - //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. - var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() - - // Needs to be in /obj/item because corgis can wear a lot of - // non-clothing items - var/datum/dog_fashion/dog_fashion = null - - var/datum/rpg_loot/rpg_loot = null - + var/breakouttime = 0 + var/list/materials + var/origin_tech = null //Used by R&D to determine what research bonuses it grants. + var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + + var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" + var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item + + var/suittoggled = 0 + var/hooded = 0 + + var/mob/thrownby = null + + /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + + //So items can have custom embedd values + //Because customisation is king + var/embed_chance = EMBED_CHANCE + var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT + var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE + var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) + var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) + var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) + var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) + var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. + + var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES + var/heat = 0 + var/sharpness = IS_BLUNT + var/toolspeed = 1 + + var/block_chance = 0 + var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom + var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default + + //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. + var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() + + // Needs to be in /obj/item because corgis can wear a lot of + // non-clothing items + var/datum/dog_fashion/dog_fashion = null + + var/datum/rpg_loot/rpg_loot = null + //Tooltip vars var/in_inventory = FALSE//is this item equipped into an inventory slot or hand of a mob? @@ -114,538 +114,541 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/tip_timer var/force_string_override -/obj/item/Initialize() - if (!materials) - materials = list() - . = ..() - for(var/path in actions_types) - new path(src) - actions_types = null - - if(GLOB.rpg_loot_items) - rpg_loot = new(src) - +/obj/item/Initialize() + if (!materials) + materials = list() + . = ..() + for(var/path in actions_types) + new path(src) + actions_types = null + + if(GLOB.rpg_loot_items) + rpg_loot = new(src) + if(force_string) force_string_override = TRUE -/obj/item/Destroy() - flags &= ~DROPDEL //prevent reqdels - if(ismob(loc)) - var/mob/m = loc - m.temporarilyRemoveItemFromInventory(src, TRUE) - for(var/X in actions) - qdel(X) - QDEL_NULL(rpg_loot) - return ..() - -/obj/item/device - icon = 'icons/obj/device.dmi' - -/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) - if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) - return 0 - else - return 1 - -/obj/item/blob_act(obj/structure/blob/B) - if(B && B.loc == loc) - qdel(src) - -//user: The mob that is suiciding -//damagetype: The type of damage the item will inflict on the user -//BRUTELOSS = 1 -//FIRELOSS = 2 -//TOXLOSS = 4 -//OXYLOSS = 8 -//Output a creative message and then return the damagetype done -/obj/item/proc/suicide_act(mob/user) - return - -/obj/item/verb/move_to_top() - set name = "Move To Top" - set category = "Object" - set src in oview(1) - - if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) - return - - var/turf/T = src.loc - - src.loc = null - - src.loc = T - -/obj/item/examine(mob/user) //This might be spammy. Remove? - ..() - var/pronoun - if(src.gender == PLURAL) - pronoun = "They are" - else - pronoun = "It is" - var/size = weightclass2text(src.w_class) - to_chat(user, "[pronoun] a [size] item." ) - - if(user.research_scanner) //Mob has a research scanner active. - var/msg = "*--------*
    " - - if(origin_tech) - msg += "Testing potentials:
    " - var/list/techlvls = params2list(origin_tech) - for(var/T in techlvls) //This needs to use the better names. - msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
    " - else - msg += "No tech origins detected.
    " - - - if(materials.len) - msg += "Extractable materials:
    " - for(var/mat in materials) - msg += "[CallMaterialName(mat)]
    " //Capitize first word, remove the "$" - else - msg += "No extractable materials detected.
    " - msg += "*--------*" - to_chat(user, msg) - - -/obj/item/attack_self(mob/user) - interact(user) - -/obj/item/interact(mob/user) - add_fingerprint(user) - if(hidden_uplink && hidden_uplink.active) - hidden_uplink.interact(user) - return 1 - ui_interact(user) - -/obj/item/ui_act(action, params) - add_fingerprint(usr) - return ..() - -/obj/item/attack_hand(mob/user) - if(!user) - return - if(anchored) - return - - if(resistance_flags & ON_FIRE) - var/mob/living/carbon/C = user - if(istype(C)) - if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) - extinguish() - to_chat(user, "You put out the fire on [src].") - else - to_chat(user, "You burn your hand on [src]!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - return - else - extinguish() - - if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. - var/mob/living/carbon/C = user - if(istype(C)) - if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) - to_chat(user, "The acid on [src] burns your hand!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - - - if(istype(loc, /obj/item/weapon/storage)) - //If the item is in a storage item, take it out - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - - -/obj/item/attack_paw(mob/user) - if(!user) - return - if(anchored) - return - - if(istype(loc, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - -/obj/item/attack_alien(mob/user) - var/mob/living/carbon/alien/A = user - - if(!A.has_fine_manipulation) - if(src in A.contents) // To stop Aliens having items stuck in their pockets - A.dropItemToGround(src) - to_chat(user, "Your claws aren't capable of such fine manipulation!") - return - attack_paw(A) - -/obj/item/attack_ai(mob/user) - if(istype(src.loc, /obj/item/weapon/robot_module)) - //If the item is part of a cyborg module, equip it - if(!iscyborg(user)) - return - var/mob/living/silicon/robot/R = user - if(!R.low_power_mode) //can't equip modules with an empty cell. - R.activate_module(src) - R.hud_used.update_robot_modules_display() - -// Due to storage type consolidation this should get used more now. -// I have cleaned it up a little, but it could probably use more. -Sayu -// The lack of ..() is intentional, do not add one -/obj/item/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = W - if(S.use_to_pickup) - if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. - if(isturf(loc)) - var/list/rejections = list() - - var/list/things = loc.contents.Copy() - if (S.collection_mode == 2) - things = typecache_filter_list(things, typecacheof(type)) - - var/len = things.len - if(!len) - to_chat(user, "You failed to pick up anything with [S].") - return - var/datum/progressbar/progress = new(user, len, loc) - - while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) - sleep(1) - - qdel(progress) - - to_chat(user, "You put everything you could [S.preposition] [S].") - - else if(S.can_be_inserted(src)) - S.handle_item_insertion(src) - -/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != thing_loc) - continue - if(I.type in rejections) // To limit bag spamming: any given type only complains once - continue - if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no - if(S.contents.len >= S.storage_slots) - break - rejections += I.type // therefore full bags are still a little spammy - continue - - S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency - -/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, atom/movable/AM) - if(prob(final_block_chance)) - owner.visible_message("[owner] blocks [attack_text] with [src]!") - return 1 - return 0 - -/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) - return ITALICS | REDUCE_RANGE - -/obj/item/proc/dropped(mob/user) - for(var/X in actions) - var/datum/action/A = X - A.Remove(user) - if(DROPDEL & flags) - qdel(src) +/obj/item/Destroy() + flags &= ~DROPDEL //prevent reqdels + if(ismob(loc)) + var/mob/m = loc + m.temporarilyRemoveItemFromInventory(src, TRUE) + for(var/X in actions) + qdel(X) + QDEL_NULL(rpg_loot) + return ..() + +/obj/item/device + icon = 'icons/obj/device.dmi' + +/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) + if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) + return 0 + else + return 1 + +/obj/item/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + qdel(src) + +//user: The mob that is suiciding +//damagetype: The type of damage the item will inflict on the user +//BRUTELOSS = 1 +//FIRELOSS = 2 +//TOXLOSS = 4 +//OXYLOSS = 8 +//Output a creative message and then return the damagetype done +/obj/item/proc/suicide_act(mob/user) + return + +/obj/item/verb/move_to_top() + set name = "Move To Top" + set category = "Object" + set src in oview(1) + + if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) + return + + var/turf/T = src.loc + + src.loc = null + + src.loc = T + +/obj/item/examine(mob/user) //This might be spammy. Remove? + ..() + var/pronoun + if(src.gender == PLURAL) + pronoun = "They are" + else + pronoun = "It is" + var/size = weightclass2text(src.w_class) + to_chat(user, "[pronoun] a [size] item." ) + + if(user.research_scanner) //Mob has a research scanner active. + var/msg = "*--------*
    " + + if(origin_tech) + msg += "Testing potentials:
    " + var/list/techlvls = params2list(origin_tech) + for(var/T in techlvls) //This needs to use the better names. + msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
    " + else + msg += "No tech origins detected.
    " + + + if(materials.len) + msg += "Extractable materials:
    " + for(var/mat in materials) + msg += "[CallMaterialName(mat)]
    " //Capitize first word, remove the "$" + else + msg += "No extractable materials detected.
    " + msg += "*--------*" + to_chat(user, msg) + + +/obj/item/attack_self(mob/user) + interact(user) + +/obj/item/interact(mob/user) + add_fingerprint(user) + if(hidden_uplink && hidden_uplink.active) + hidden_uplink.interact(user) + return 1 + ui_interact(user) + +/obj/item/ui_act(action, params) + add_fingerprint(usr) + return ..() + +/obj/item/attack_hand(mob/user) + if(!user) + return + if(anchored) + return + + if(resistance_flags & ON_FIRE) + var/mob/living/carbon/C = user + if(istype(C)) + if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) + extinguish() + to_chat(user, "You put out the fire on [src].") + else + to_chat(user, "You burn your hand on [src]!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + return + else + extinguish() + + if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. + var/mob/living/carbon/C = user + if(istype(C)) + if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) + to_chat(user, "The acid on [src] burns your hand!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + + + if(istype(loc, /obj/item/weapon/storage)) + //If the item is in a storage item, take it out + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + + +/obj/item/attack_paw(mob/user) + if(!user) + return + if(anchored) + return + + if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + +/obj/item/attack_alien(mob/user) + var/mob/living/carbon/alien/A = user + + if(!A.has_fine_manipulation) + if(src in A.contents) // To stop Aliens having items stuck in their pockets + A.dropItemToGround(src) + to_chat(user, "Your claws aren't capable of such fine manipulation!") + return + attack_paw(A) + +/obj/item/attack_ai(mob/user) + if(istype(src.loc, /obj/item/weapon/robot_module)) + //If the item is part of a cyborg module, equip it + if(!iscyborg(user)) + return + var/mob/living/silicon/robot/R = user + if(!R.low_power_mode) //can't equip modules with an empty cell. + R.activate_module(src) + R.hud_used.update_robot_modules_display() + +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu +// The lack of ..() is intentional, do not add one +/obj/item/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + if(S.use_to_pickup) + if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. + if(isturf(loc)) + var/list/rejections = list() + + var/list/things = loc.contents.Copy() + if (S.collection_mode == 2) + things = typecache_filter_list(things, typecacheof(type)) + + var/len = things.len + if(!len) + to_chat(user, "You failed to pick up anything with [S].") + return + var/datum/progressbar/progress = new(user, len, loc) + + while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) + sleep(1) + + qdel(progress) + + to_chat(user, "You put everything you could [S.preposition] [S].") + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) + +/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if(I.loc != thing_loc) + continue + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no + if(S.contents.len >= S.storage_slots) + break + rejections += I.type // therefore full bags are still a little spammy + continue + + S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency + +/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(prob(final_block_chance)) + owner.visible_message("[owner] blocks [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) + return ITALICS | REDUCE_RANGE + +/obj/item/proc/dropped(mob/user) + for(var/X in actions) + var/datum/action/A = X + A.Remove(user) + if(DROPDEL & flags) + qdel(src) in_inventory = FALSE - -// called just as an item is picked up (loc is not yet changed) -/obj/item/proc/pickup(mob/user) + +// called just as an item is picked up (loc is not yet changed) +/obj/item/proc/pickup(mob/user) in_inventory = TRUE - return - - -// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. -/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) - return - -// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. -/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) - return - -// called when "found" in pockets and storage items. Returns 1 if the search should end. -/obj/item/proc/on_found(mob/finder) - return - -// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. -// 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 -// note this isn't called during the initial dressing of a player -/obj/item/proc/equipped(mob/user, slot) - for(var/X in actions) - var/datum/action/A = X - if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. - A.Grant(user) + return + + +// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. +/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) + return + +// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. +/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) + return + +// called when "found" in pockets and storage items. Returns 1 if the search should end. +/obj/item/proc/on_found(mob/finder) + return + +// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. +// 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 +// note this isn't called during the initial dressing of a player +/obj/item/proc/equipped(mob/user, slot) + for(var/X in actions) + var/datum/action/A = X + if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. + A.Grant(user) in_inventory = TRUE - -//sometimes we only want to grant the item's action if it's equipped in a specific slot. -/obj/item/proc/item_action_slot_check(slot, mob/user) - if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there - return FALSE - 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. -//Set disable_warning to 1 if you wish it to not give you outputs. + +//sometimes we only want to grant the item's action if it's equipped in a specific slot. +/obj/item/proc/item_action_slot_check(slot, mob/user) + if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there + return FALSE + 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. +//Set disable_warning to 1 if you wish it to not give you outputs. /obj/item/proc/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) - if(!M) - return 0 - + if(!M) + return 0 + return M.can_equip(src, slot, disable_warning, bypass_equip_delay_self) - -/obj/item/verb/verb_pickup() - set src in oview(1) - set category = "Object" - set name = "Pick up" - - if(usr.incapacitated() || !Adjacent(usr) || usr.lying) - return - - if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota - 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, paralyzed, asleep, resting, laying, item is on the mob. -/obj/item/proc/ui_action_click(mob/user, actiontype) - attack_self(user) - -/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit - return 0 - -/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) - - var/is_human_victim = 0 - var/obj/item/bodypart/affecting = M.get_bodypart("head") - if(ishuman(M)) - if(!affecting) //no head! - return - is_human_victim = 1 - var/mob/living/carbon/human/H = M - if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ - (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ - (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(ismonkey(M)) - var/mob/living/carbon/monkey/Mo = M - if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! - to_chat(user, "You cannot locate any eyes on this creature!") - return - - if(isbrain(M)) - to_chat(user, "You cannot locate any organic eyes on this brain!") - return - - src.add_fingerprint(user) - - playsound(loc, src.hitsound, 30, 1, -1) - - user.do_attack_animation(M) - - if(M != user) - M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ - "[user] stabs you in the eye with [src]!") - else - user.visible_message( \ - "[user] has stabbed themself in the eyes with [src]!", \ - "You stab yourself in the eyes with [src]!" \ - ) - if(is_human_victim) - var/mob/living/carbon/human/U = M - U.apply_damage(7, BRUTE, affecting) - - else - M.take_bodypart_damage(7) - - add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") - - M.adjust_blurriness(3) - M.adjust_eye_damage(rand(2,4)) - if(M.eye_damage >= 10) - M.adjust_blurriness(15) - if(M.stat != DEAD) - to_chat(M, "Your eyes start to bleed profusely!") - if(!(M.disabilities & (NEARSIGHT | BLIND))) - if(M.become_nearsighted()) - to_chat(M, "You become nearsighted!") - if(prob(50)) - if(M.stat != DEAD) - if(M.drop_item()) - to_chat(M, "You drop what you're holding and clutch at your eyes!") - M.adjust_blurriness(10) - M.Paralyse(1) - M.Weaken(2) - if (prob(M.eye_damage - 10 + 1)) - if(M.become_blind()) - to_chat(M, "You go blind!") - -/obj/item/clean_blood() - . = ..() - if(.) - if(initial(icon) && initial(icon_state)) - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(blood_splatter_icon) - cut_overlay(blood_splatter_icon) - -/obj/item/clothing/gloves/clean_blood() - . = ..() - if(.) - transfer_blood = 0 - -/obj/item/singularity_pull(S, current_size) - if(current_size >= STAGE_FOUR) - throw_at(S,14,3, spin=0) - else ..() - -/obj/item/throw_impact(atom/A) - if(A && !QDELETED(A)) + +/obj/item/verb/verb_pickup() + set src in oview(1) + set category = "Object" + set name = "Pick up" + + if(usr.incapacitated() || !Adjacent(usr) || usr.lying) + return + + if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota + 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. +/obj/item/proc/ui_action_click(mob/user, actiontype) + attack_self(user) + +/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit + return 0 + +/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) + + var/is_human_victim = 0 + var/obj/item/bodypart/affecting = M.get_bodypart("head") + if(ishuman(M)) + if(!affecting) //no head! + return + is_human_victim = 1 + var/mob/living/carbon/human/H = M + if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ + (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ + (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(ismonkey(M)) + var/mob/living/carbon/monkey/Mo = M + if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! + to_chat(user, "You cannot locate any eyes on this creature!") + return + + if(isbrain(M)) + to_chat(user, "You cannot locate any organic eyes on this brain!") + return + + src.add_fingerprint(user) + + playsound(loc, src.hitsound, 30, 1, -1) + + user.do_attack_animation(M) + + if(M != user) + M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ + "[user] stabs you in the eye with [src]!") + else + user.visible_message( \ + "[user] has stabbed themself in the eyes with [src]!", \ + "You stab yourself in the eyes with [src]!" \ + ) + if(is_human_victim) + var/mob/living/carbon/human/U = M + U.apply_damage(7, BRUTE, affecting) + + else + M.take_bodypart_damage(7) + + add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") + + M.adjust_blurriness(3) + M.adjust_eye_damage(rand(2,4)) + var/obj/item/organ/eyes/eyes = M.getorganslot("eyes_sight") + if (!eyes) + return + if(eyes.eye_damage >= 10) + M.adjust_blurriness(15) + if(M.stat != DEAD) + to_chat(M, "Your eyes start to bleed profusely!") + if(!(M.disabilities & (NEARSIGHT | BLIND))) + if(M.become_nearsighted()) + to_chat(M, "You become nearsighted!") + if(prob(50)) + if(M.stat != DEAD) + if(M.drop_item()) + to_chat(M, "You drop what you're holding and clutch at your eyes!") + M.adjust_blurriness(10) + M.Unconscious(20) + M.Knockdown(40) + if (prob(eyes.eye_damage - 10 + 1)) + if(M.become_blind()) + to_chat(M, "You go blind!") + +/obj/item/clean_blood() + . = ..() + if(.) + if(initial(icon) && initial(icon_state)) + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] + if(blood_splatter_icon) + cut_overlay(blood_splatter_icon) + +/obj/item/clothing/gloves/clean_blood() + . = ..() + if(.) + transfer_blood = 0 + +/obj/item/singularity_pull(S, current_size) + if(current_size >= STAGE_FOUR) + throw_at(S,14,3, spin=0) + else ..() + +/obj/item/throw_impact(atom/A) + if(A && !QDELETED(A)) if(is_hot() && isliving(A)) var/mob/living/L = A L.IgniteMob() - var/itempush = 1 - if(w_class < 4) - itempush = 0 //too light to push anything - return A.hitby(src, 0, itempush) - -/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - thrownby = thrower - callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own - . = ..(target, range, speed, thrower, spin, diagonals_first, callback) - - -/obj/item/proc/after_throw(datum/callback/callback) - if (callback) //call the original callback - . = callback.Invoke() - throw_speed = initial(throw_speed) //explosions change this. + var/itempush = 1 + if(w_class < 4) + itempush = 0 //too light to push anything + return A.hitby(src, 0, itempush) + +/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + thrownby = thrower + callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own + . = ..(target, range, speed, thrower, spin, diagonals_first, callback) + + +/obj/item/proc/after_throw(datum/callback/callback) + if (callback) //call the original callback + . = callback.Invoke() + throw_speed = initial(throw_speed) //explosions change this. in_inventory = FALSE - -/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage - if(!newLoc) - return 0 - if(istype(loc,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src,newLoc) - return 1 - return 0 - -/obj/item/proc/is_hot() - return heat - -/obj/item/proc/is_sharp() - return sharpness - -/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) - if(affecting.can_dismember(src)) - if((sharpness || damtype == BURN) && w_class >= 3) - . = force*(w_class-1) - -/obj/item/proc/get_dismember_sound() - if(damtype == BURN) - . = 'sound/weapons/sear.ogg' - else - . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') - -/obj/item/proc/open_flame(flame_heat=700) - var/turf/location = loc - if(ismob(location)) - var/mob/M = location - var/success = FALSE - if(src == M.get_item_by_slot(slot_wear_mask)) - success = TRUE - if(success) - location = get_turf(M) - if(isturf(location)) - location.hotspot_expose(flame_heat, 5) - -/obj/item/proc/ignition_effect(atom/A, mob/user) - if(is_hot()) - . = "[user] lights [A] with [src]." - else - . = "" - - -//when an item modify our speech spans when in our active hand. Override this to modify speech spans. -/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) - return - -/obj/item/hitby(atom/movable/AM) - return - -/obj/item/attack_hulk(mob/living/carbon/human/user) - return 0 - -/obj/item/attack_animal(mob/living/simple_animal/M) - return 0 - -/obj/item/mech_melee_attack(obj/mecha/M) - return 0 - -/obj/item/burn() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/ash_type = /obj/effect/decal/cleanable/ash - if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) - ash_type = /obj/effect/decal/cleanable/ash/large - var/obj/effect/decal/cleanable/ash/A = new ash_type(T) - A.desc += "\nLooks like this used to be \an [name] some time ago." - ..() - -/obj/item/acid_melt() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/obj/effect/decal/cleanable/molten_object/MO = new(T) - MO.pixel_x = rand(-16,16) - MO.pixel_y = rand(-16,16) - MO.desc = "Looks like this was \an [src] some time ago." - ..() - -/obj/item/proc/microwave_act(obj/machinery/microwave/M) - if(M && M.dirty < 100) - M.dirty++ + +/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage + if(!newLoc) + return 0 + if(istype(loc,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src,newLoc) + return 1 + return 0 + +/obj/item/proc/is_hot() + return heat + +/obj/item/proc/is_sharp() + return sharpness + +/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) + if(affecting.can_dismember(src)) + if((sharpness || damtype == BURN) && w_class >= 3) + . = force*(w_class-1) + +/obj/item/proc/get_dismember_sound() + if(damtype == BURN) + . = 'sound/weapons/sear.ogg' + else + . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + +/obj/item/proc/open_flame(flame_heat=700) + var/turf/location = loc + if(ismob(location)) + var/mob/M = location + var/success = FALSE + if(src == M.get_item_by_slot(slot_wear_mask)) + success = TRUE + if(success) + location = get_turf(M) + if(isturf(location)) + location.hotspot_expose(flame_heat, 5) + +/obj/item/proc/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "[user] lights [A] with [src]." + else + . = "" + + +//when an item modify our speech spans when in our active hand. Override this to modify speech spans. +/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) + return + +/obj/item/hitby(atom/movable/AM) + return + +/obj/item/attack_hulk(mob/living/carbon/human/user) + return 0 + +/obj/item/attack_animal(mob/living/simple_animal/M) + return 0 + +/obj/item/mech_melee_attack(obj/mecha/M) + return 0 + +/obj/item/burn() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/ash_type = /obj/effect/decal/cleanable/ash + if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) + ash_type = /obj/effect/decal/cleanable/ash/large + var/obj/effect/decal/cleanable/ash/A = new ash_type(T) + A.desc += "\nLooks like this used to be \an [name] some time ago." + ..() + +/obj/item/acid_melt() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/obj/effect/decal/cleanable/molten_object/MO = new(T) + MO.pixel_x = rand(-16,16) + MO.pixel_y = rand(-16,16) + MO.desc = "Looks like this was \an [src] some time ago." + ..() + +/obj/item/proc/microwave_act(obj/machinery/microwave/M) + if(M && M.dirty < 100) + M.dirty++ /obj/item/proc/on_mob_death(mob/living/L, gibbed) diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index f1535db19d..1db3e3f8bd 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -188,7 +188,7 @@ /proc/create_area(mob/living/creator) var/res = detect_room(get_turf(creator)) - if(!istype(res,/list)) + if(!islist(res)) switch(res) if(ROOM_ERR_SPACE) to_chat(creator, "The new area must be completely airtight.") diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 48fae32555..12016924a8 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -22,7 +22,7 @@ if(user.a_intent == INTENT_HELP || pushed_over) return ..() user.visible_message("[user] pushes over [src]!", "You push over [src]!") - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) push_over() /obj/item/cardboard_cutout/proc/push_over() @@ -172,11 +172,10 @@ desc = "A cardboard cutout of a laughter demon." icon = 'icons/mob/mob.dmi' icon_state = "bowmon" - if("Private Security Officer") - name = "Private Security Officer" - desc = "A cardboard cutout of a private security officer." - icon_state = "cutout_ntsec" - + if("Private Security Officer") + name = "Private Security Officer" + desc = "A cardboard cutout of a private security officer." + icon_state = "cutout_ntsec" return 1 /obj/item/cardboard_cutout/setDir(newdir) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 0c29ee3f9f..ecc36c0c2d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -634,7 +634,7 @@ C.blind_eyes(1) if(C.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS. C.confused = max(C.confused, 3) - C.Weaken(3) + C.Knockdown(60) if(ishuman(C) && actually_paints) var/mob/living/carbon/human/H = C H.lip_style = "spray_face" diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 8cb057b3ca..b54169b9e2 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -838,18 +838,14 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/device/pda/Destroy() GLOB.PDAs -= src - if(id) - qdel(id) - id = null - if(cartridge) - qdel(cartridge) - cartridge = null - if(pai) - qdel(pai) - pai = null - if(inserted_item) - qdel(inserted_item) - inserted_item = null + if(istype(id)) + QDEL_NULL(id) + if(istype(cartridge)) + QDEL_NULL(cartridge) + if(istype(pai)) + QDEL_NULL(pai) + if(istype(inserted_item)) + QDEL_NULL(inserted_item) return ..() //AI verb and proc for sending PDA messages. diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 3e19ec6da3..65e452b882 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -2,6 +2,7 @@ /obj/item/device/pda/clown name = "clown PDA" default_cartridge = /obj/item/weapon/cartridge/virus/clown + inserted_item = /obj/item/toy/crayon/rainbow icon_state = "pda-clown" desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings." ttone = "honk" @@ -9,7 +10,7 @@ /obj/item/device/pda/clown/Crossed(AM as mob|obj) if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - if(M.slip(0, 6, src, NO_SLIP_WHEN_WALKING)) + if(M.slip(120, src, NO_SLIP_WHEN_WALKING)) if (ishuman(M) && (M.real_name != src.owner)) if (istype(src.cartridge, /obj/item/weapon/cartridge/virus/clown)) var/obj/item/weapon/cartridge/virus/cart = src.cartridge @@ -80,6 +81,7 @@ /obj/item/device/pda/mime name = "mime PDA" default_cartridge = /obj/item/weapon/cartridge/virus/mime + inserted_item = /obj/item/toy/crayon/mime icon_state = "pda-mime" silent = 1 ttone = "silence" diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm index d0ec3d8ca6..a3e6a95427 100644 --- a/code/game/objects/items/devices/PDA/radio.dm +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -1,62 +1,62 @@ -/obj/item/radio/integrated - name = "\improper PDA radio module" - desc = "An electronic radio system of nanotrasen origin." - icon = 'icons/obj/module.dmi' - icon_state = "power_mod" - - var/on = 0 //Are we currently active?? - var/menu_message = "" - +/obj/item/radio/integrated + name = "\improper PDA radio module" + desc = "An electronic radio system of nanotrasen origin." + icon = 'icons/obj/module.dmi' + icon_state = "power_mod" + + var/on = 0 //Are we currently active?? + var/menu_message = "" + /obj/item/radio/integrated/Initialize() . = ..() - -/obj/item/radio/integrated/Destroy() - return ..() - -/* - * Radio Cartridge, essentially a signaler. - */ - - -/obj/item/radio/integrated/signal - var/frequency = 1457 - var/code = 30 - var/last_transmission - var/datum/radio_frequency/radio_connection - -/obj/item/radio/integrated/signal/Destroy() - if(SSradio) - SSradio.remove_object(src, frequency) - radio_connection = null - return ..() - -/obj/item/radio/integrated/signal/Initialize() - ..() - if (src.frequency < 1200 || src.frequency > 1600) - src.frequency = sanitize_frequency(src.frequency) - - set_frequency(frequency) - -/obj/item/radio/integrated/signal/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency) - -/obj/item/radio/integrated/signal/proc/send_signal(message="ACTIVATE") - - if(last_transmission && world.time < (last_transmission + 5)) - return - last_transmission = world.time - - var/time = time2text(world.realtime,"hh:mm:ss") - var/turf/T = get_turf(src) - GLOB.lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") - - var/datum/signal/signal = new - signal.source = src - signal.encryption = code - signal.data["message"] = message - - radio_connection.post_signal(src, signal) - + +/obj/item/radio/integrated/Destroy() + return ..() + +/* + * Radio Cartridge, essentially a signaler. + */ + + +/obj/item/radio/integrated/signal + var/frequency = 1457 + var/code = 30 + var/last_transmission + var/datum/radio_frequency/radio_connection + +/obj/item/radio/integrated/signal/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + radio_connection = null + return ..() + +/obj/item/radio/integrated/signal/Initialize() + ..() + if (src.frequency < 1200 || src.frequency > 1600) + src.frequency = sanitize_frequency(src.frequency) + + set_frequency(frequency) + +/obj/item/radio/integrated/signal/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency) + +/obj/item/radio/integrated/signal/proc/send_signal(message="ACTIVATE") + + if(last_transmission && world.time < (last_transmission + 5)) + return + last_transmission = world.time + + var/time = time2text(world.realtime,"hh:mm:ss") + var/turf/T = get_turf(src) + GLOB.lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") + + var/datum/signal/signal = new + signal.source = src + signal.encryption = code + signal.data["message"] = message + + radio_connection.post_signal(src, signal) + return diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 4f0d61c1b7..5c8dd2fe80 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -1,87 +1,87 @@ -/obj/item/device/aicard - name = "intelliCard" - desc = "A storage device for AIs. Patent pending." - icon = 'icons/obj/aicards.dmi' - icon_state = "aicard" // aicard-full - item_state = "electronic" - w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT - flags = NOBLUDGEON - var/flush = FALSE - var/mob/living/silicon/ai/AI - origin_tech = "programming=3;materials=3" - -/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity) - ..() - if(!proximity || !target) - return - if(AI) //AI is on the card, implies user wants to upload it. - target.transfer_ai(AI_TRANS_FROM_CARD, user, AI, src) - add_logs(user, AI, "carded", src) - else //No AI on the card, therefore the user wants to download one. - target.transfer_ai(AI_TRANS_TO_CARD, user, null, src) - update_icon() //Whatever happened, update the card's state (icon, name) to match. - -/obj/item/device/aicard/update_icon() +/obj/item/device/aicard + name = "intelliCard" + desc = "A storage device for AIs. Patent pending." + icon = 'icons/obj/aicards.dmi' + icon_state = "aicard" // aicard-full + item_state = "electronic" + w_class = WEIGHT_CLASS_SMALL + slot_flags = SLOT_BELT + flags = NOBLUDGEON + var/flush = FALSE + var/mob/living/silicon/ai/AI + origin_tech = "programming=3;materials=3" + +/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity) + ..() + if(!proximity || !target) + return + if(AI) //AI is on the card, implies user wants to upload it. + target.transfer_ai(AI_TRANS_FROM_CARD, user, AI, src) + add_logs(user, AI, "carded", src) + else //No AI on the card, therefore the user wants to download one. + target.transfer_ai(AI_TRANS_TO_CARD, user, null, src) + update_icon() //Whatever happened, update the card's state (icon, name) to match. + +/obj/item/device/aicard/update_icon() cut_overlays() - if(AI) - name = "[initial(name)]- [AI.name]" - if(AI.stat == DEAD) - icon_state = "aicard-404" - else - icon_state = "aicard-full" - if(!AI.control_disabled) + if(AI) + name = "[initial(name)]- [AI.name]" + if(AI.stat == DEAD) + icon_state = "aicard-404" + else + icon_state = "aicard-full" + if(!AI.control_disabled) add_overlay("aicard-on") - AI.cancel_camera() - else - name = initial(name) - icon_state = initial(icon_state) - -/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "intellicard", name, 500, 500, master_ui, state) - ui.open() - -/obj/item/device/aicard/ui_data() - var/list/data = list() - if(AI) - data["name"] = AI.name - data["laws"] = AI.laws.get_law_list(include_zeroth = 1) - data["health"] = (AI.health + 100) / 2 - data["wireless"] = !AI.control_disabled //todo disabled->enabled - data["radio"] = AI.radio_enabled - data["isDead"] = AI.stat == DEAD - data["isBraindead"] = AI.client ? FALSE : TRUE - data["wiping"] = flush - return data - -/obj/item/device/aicard/ui_act(action,params) - if(..()) - return - switch(action) - if("wipe") - if(flush) - flush = FALSE - else - var/confirm = alert("Are you sure you want to wipe this card's memory?", name, "Yes", "No") - if(confirm == "Yes" && !..()) - flush = TRUE - if(AI && AI.loc == src) - to_chat(AI, "Your core files are being wiped!") - while(AI.stat != DEAD && flush) - AI.adjustOxyLoss(1) - AI.updatehealth() - sleep(5) - flush = FALSE - . = TRUE - if("wireless") - AI.control_disabled = !AI.control_disabled - to_chat(AI, "[src]'s wireless port has been [AI.control_disabled ? "disabled" : "enabled"]!") - . = TRUE - if("radio") - AI.radio_enabled = !AI.radio_enabled - to_chat(AI, "Your Subspace Transceiver has been [AI.radio_enabled ? "enabled" : "disabled"]!") - . = TRUE - update_icon() + AI.cancel_camera() + else + name = initial(name) + icon_state = initial(icon_state) + +/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "intellicard", name, 500, 500, master_ui, state) + ui.open() + +/obj/item/device/aicard/ui_data() + var/list/data = list() + if(AI) + data["name"] = AI.name + data["laws"] = AI.laws.get_law_list(include_zeroth = 1) + data["health"] = (AI.health + 100) / 2 + data["wireless"] = !AI.control_disabled //todo disabled->enabled + data["radio"] = AI.radio_enabled + data["isDead"] = AI.stat == DEAD + data["isBraindead"] = AI.client ? FALSE : TRUE + data["wiping"] = flush + return data + +/obj/item/device/aicard/ui_act(action,params) + if(..()) + return + switch(action) + if("wipe") + if(flush) + flush = FALSE + else + var/confirm = alert("Are you sure you want to wipe this card's memory?", name, "Yes", "No") + if(confirm == "Yes" && !..()) + flush = TRUE + if(AI && AI.loc == src) + to_chat(AI, "Your core files are being wiped!") + while(AI.stat != DEAD && flush) + AI.adjustOxyLoss(1) + AI.updatehealth() + sleep(5) + flush = FALSE + . = TRUE + if("wireless") + AI.control_disabled = !AI.control_disabled + to_chat(AI, "[src]'s wireless port has been [AI.control_disabled ? "disabled" : "enabled"]!") + . = TRUE + if("radio") + AI.radio_enabled = !AI.radio_enabled + to_chat(AI, "Your Subspace Transceiver has been [AI.radio_enabled ? "enabled" : "disabled"]!") + . = TRUE + update_icon() diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index a93437c5c7..6521a71f44 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -34,7 +34,7 @@ if(!check_sprite(target)) return if(!active_dummy) - if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear)) + if(isitem(target) && !istype(target, /obj/item/weapon/disk/nuclear)) playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6) to_chat(user, "Scanned [target].") var/obj/temp = new/obj() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 9f9fca208e..0f897d7f0e 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -1,66 +1,66 @@ -/obj/item/device/flashlight - name = "flashlight" - desc = "A hand-held emergency light." - icon = 'icons/obj/lighting.dmi' - icon_state = "flashlight" - item_state = "flashlight" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - slot_flags = SLOT_BELT - materials = list(MAT_METAL=50, MAT_GLASS=20) - actions_types = list(/datum/action/item_action/toggle_light) - var/on = 0 - var/brightness_on = 4 //range of light when on +/obj/item/device/flashlight + name = "flashlight" + desc = "A hand-held emergency light." + icon = 'icons/obj/lighting.dmi' + icon_state = "flashlight" + item_state = "flashlight" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + slot_flags = SLOT_BELT + materials = list(MAT_METAL=50, MAT_GLASS=20) + actions_types = list(/datum/action/item_action/toggle_light) + var/on = 0 + var/brightness_on = 4 //range of light when on var/flashlight_power = 1 //strength of the light when on - -/obj/item/device/flashlight/Initialize() - ..() - update_brightness() - -/obj/item/device/flashlight/proc/update_brightness(mob/user = null) - if(on) - icon_state = "[initial(icon_state)]-on" - if(flashlight_power) - set_light(l_range = brightness_on, l_power = flashlight_power) - else - set_light(brightness_on) - else - icon_state = initial(icon_state) - set_light(0) - -/obj/item/device/flashlight/attack_self(mob/user) - on = !on - update_brightness(user) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - return 1 - + +/obj/item/device/flashlight/Initialize() + ..() + update_brightness() + +/obj/item/device/flashlight/proc/update_brightness(mob/user = null) + if(on) + icon_state = "[initial(icon_state)]-on" + if(flashlight_power) + set_light(l_range = brightness_on, l_power = flashlight_power) + else + set_light(brightness_on) + else + icon_state = initial(icon_state) + set_light(0) + +/obj/item/device/flashlight/attack_self(mob/user) + on = !on + update_brightness(user) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + return 1 + /obj/item/device/flashlight/suicide_act(mob/living/carbon/human/user) user.visible_message("[user] is putting [src] close to [user.p_their()] eyes and turning it on! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) - - + + /obj/item/device/flashlight/attack(mob/living/carbon/M, mob/living/carbon/human/user) - add_fingerprint(user) + add_fingerprint(user) if(istype(M) && on && user.zone_selected in list("eyes", "mouth")) - - if((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly - return ..() //just hit them in the head - - if(!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return - + + if((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly + return ..() //just hit them in the head + + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return + if(!M.get_bodypart("head")) to_chat(user, "[M] doesn't have a head!") - return - + return + if(flashlight_power < 1) to_chat(user, "\The [src] isn't bright enough to see anything! ") return - + switch(user.zone_selected) if("eyes") if((M.head && M.head.flags_cover & HEADCOVERSEYES) || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSEYES) || (M.glasses && M.glasses.flags_cover & GLASSESCOVERSEYES)) @@ -152,366 +152,366 @@ if(pill_count) to_chat(user, "[M] has [pill_count] pill[pill_count > 1 ? "s" : ""] implanted in [their] teeth.") - else - return ..() - -/obj/item/device/flashlight/pen - name = "penlight" - desc = "A pen-sized light, used by medical staff. It can also be used to create a hologram to alert people of incoming medical assistance." - icon_state = "penlight" - item_state = "" - flags = CONDUCT - brightness_on = 2 - var/holo_cooldown = 0 - -/obj/item/device/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) - if(!proximity_flag) - if(holo_cooldown > world.time) - to_chat(user, "[src] is not ready yet!") - return - var/T = get_turf(target) - if(locate(/mob/living) in T) + else + return ..() + +/obj/item/device/flashlight/pen + name = "penlight" + desc = "A pen-sized light, used by medical staff. It can also be used to create a hologram to alert people of incoming medical assistance." + icon_state = "penlight" + item_state = "" + flags = CONDUCT + brightness_on = 2 + var/holo_cooldown = 0 + +/obj/item/device/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) + if(!proximity_flag) + if(holo_cooldown > world.time) + to_chat(user, "[src] is not ready yet!") + return + var/T = get_turf(target) + if(locate(/mob/living) in T) new /obj/effect/temp_visual/medical_holosign(T,user) //produce a holographic glow - holo_cooldown = world.time + 100 - return - ..() - + holo_cooldown = world.time + 100 + return + ..() + /obj/effect/temp_visual/medical_holosign - name = "medical holosign" - desc = "A small holographic glow that indicates a medic is coming to treat a patient." - icon_state = "medi_holo" - duration = 30 - + name = "medical holosign" + desc = "A small holographic glow that indicates a medic is coming to treat a patient." + icon_state = "medi_holo" + duration = 30 + /obj/effect/temp_visual/medical_holosign/Initialize(mapload, creator) . = ..() - playsound(loc, 'sound/machines/ping.ogg', 50, 0) //make some noise! - if(creator) - visible_message("[creator] created a medical hologram!") - - -/obj/item/device/flashlight/seclite - name = "seclite" - desc = "A robust flashlight used by security." - icon_state = "seclite" - item_state = "seclite" - force = 9 // Not as good as a stun baton. - brightness_on = 5 // A little better than the standard flashlight. - hitsound = 'sound/weapons/genhit1.ogg' - -// the desk lamps are a bit special -/obj/item/device/flashlight/lamp - name = "desk lamp" - desc = "A desk lamp with an adjustable mount." - icon_state = "lamp" - item_state = "lamp" - brightness_on = 5 - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - materials = list() - on = 1 - - -// green-shaded desk lamp -/obj/item/device/flashlight/lamp/green - desc = "A classic green-shaded desk lamp." - icon_state = "lampgreen" - item_state = "lampgreen" - - - -/obj/item/device/flashlight/lamp/verb/toggle_light() - set name = "Toggle light" - set category = "Object" - set src in oview(1) - - if(!usr.stat) - attack_self(usr) - -//Bananalamp -/obj/item/device/flashlight/lamp/bananalamp - name = "banana lamp" - desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring." - icon_state = "bananalamp" - item_state = "bananalamp" - -// FLARES - -/obj/item/device/flashlight/flare - name = "flare" - desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." - w_class = WEIGHT_CLASS_SMALL - brightness_on = 7 // Pretty bright. - icon_state = "flare" - item_state = "flare" - actions_types = list() - var/fuel = 0 - var/on_damage = 7 - var/produce_heat = 1500 - heat = 1000 - light_color = LIGHT_COLOR_FLARE - -/obj/item/device/flashlight/flare/New() - fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. - ..() - -/obj/item/device/flashlight/flare/process() - open_flame(heat) - fuel = max(fuel - 1, 0) - if(!fuel || !on) - turn_off() - if(!fuel) - icon_state = "[initial(icon_state)]-empty" - STOP_PROCESSING(SSobj, src) - -/obj/item/device/flashlight/flare/ignition_effect(atom/A, mob/user) - if(fuel && on) - . = "[user] lights [A] with [src] like a real \ - badass." - else - . = "" - -/obj/item/device/flashlight/flare/proc/turn_off() - on = 0 - force = initial(src.force) - damtype = initial(src.damtype) - if(ismob(loc)) - var/mob/U = loc - update_brightness(U) - else - update_brightness(null) - -/obj/item/device/flashlight/flare/update_brightness(mob/user = null) - ..() - if(on) - item_state = "[initial(item_state)]-on" - else - item_state = "[initial(item_state)]" - -/obj/item/device/flashlight/flare/attack_self(mob/user) - - // Usual checks - if(!fuel) - to_chat(user, "[src] is out of fuel!") - return - if(on) - to_chat(user, "[src] is already on.") - return - - . = ..() - // All good, turn it on. - if(.) - user.visible_message("[user] lights \the [src].", "You light \the [src]!") - force = on_damage - damtype = "fire" - START_PROCESSING(SSobj, src) - -/obj/item/device/flashlight/flare/is_hot() - return on * heat - -/obj/item/device/flashlight/flare/torch - name = "torch" - desc = "A torch fashioned from some leaves and a log." - w_class = WEIGHT_CLASS_BULKY - brightness_on = 4 - icon_state = "torch" - item_state = "torch" - on_damage = 10 - slot_flags = null - -/obj/item/device/flashlight/lantern - name = "lantern" - icon_state = "lantern" - item_state = "lantern" - desc = "A mining lantern." - brightness_on = 6 // luminosity when on - - -/obj/item/device/flashlight/slime - gender = PLURAL - name = "glowing slime extract" - desc = "Extract from a yellow slime. It emits a strong light when squeezed." - icon = 'icons/obj/lighting.dmi' - icon_state = "slime" - item_state = "slime" - w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT - materials = list() - brightness_on = 6 //luminosity when on - -/obj/item/device/flashlight/emp - origin_tech = "magnets=3;syndicate=1" - var/emp_max_charges = 4 - var/emp_cur_charges = 4 - var/charge_tick = 0 - - -/obj/item/device/flashlight/emp/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/device/flashlight/emp/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/device/flashlight/emp/process() - charge_tick++ - if(charge_tick < 10) - return FALSE - charge_tick = 0 - emp_cur_charges = min(emp_cur_charges+1, emp_max_charges) - return TRUE - -/obj/item/device/flashlight/emp/attack(mob/living/M, mob/living/user) + playsound(loc, 'sound/machines/ping.ogg', 50, 0) //make some noise! + if(creator) + visible_message("[creator] created a medical hologram!") + + +/obj/item/device/flashlight/seclite + name = "seclite" + desc = "A robust flashlight used by security." + icon_state = "seclite" + item_state = "seclite" + force = 9 // Not as good as a stun baton. + brightness_on = 5 // A little better than the standard flashlight. + hitsound = 'sound/weapons/genhit1.ogg' + +// the desk lamps are a bit special +/obj/item/device/flashlight/lamp + name = "desk lamp" + desc = "A desk lamp with an adjustable mount." + icon_state = "lamp" + item_state = "lamp" + brightness_on = 5 + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + materials = list() + on = 1 + + +// green-shaded desk lamp +/obj/item/device/flashlight/lamp/green + desc = "A classic green-shaded desk lamp." + icon_state = "lampgreen" + item_state = "lampgreen" + + + +/obj/item/device/flashlight/lamp/verb/toggle_light() + set name = "Toggle light" + set category = "Object" + set src in oview(1) + + if(!usr.stat) + attack_self(usr) + +//Bananalamp +/obj/item/device/flashlight/lamp/bananalamp + name = "banana lamp" + desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring." + icon_state = "bananalamp" + item_state = "bananalamp" + +// FLARES + +/obj/item/device/flashlight/flare + name = "flare" + desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." + w_class = WEIGHT_CLASS_SMALL + brightness_on = 7 // Pretty bright. + icon_state = "flare" + item_state = "flare" + actions_types = list() + var/fuel = 0 + var/on_damage = 7 + var/produce_heat = 1500 + heat = 1000 + light_color = LIGHT_COLOR_FLARE + +/obj/item/device/flashlight/flare/New() + fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. + ..() + +/obj/item/device/flashlight/flare/process() + open_flame(heat) + fuel = max(fuel - 1, 0) + if(!fuel || !on) + turn_off() + if(!fuel) + icon_state = "[initial(icon_state)]-empty" + STOP_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/flare/ignition_effect(atom/A, mob/user) + if(fuel && on) + . = "[user] lights [A] with [src] like a real \ + badass." + else + . = "" + +/obj/item/device/flashlight/flare/proc/turn_off() + on = 0 + force = initial(src.force) + damtype = initial(src.damtype) + if(ismob(loc)) + var/mob/U = loc + update_brightness(U) + else + update_brightness(null) + +/obj/item/device/flashlight/flare/update_brightness(mob/user = null) + ..() + if(on) + item_state = "[initial(item_state)]-on" + else + item_state = "[initial(item_state)]" + +/obj/item/device/flashlight/flare/attack_self(mob/user) + + // Usual checks + if(!fuel) + to_chat(user, "[src] is out of fuel!") + return + if(on) + to_chat(user, "[src] is already on.") + return + + . = ..() + // All good, turn it on. + if(.) + user.visible_message("[user] lights \the [src].", "You light \the [src]!") + force = on_damage + damtype = "fire" + START_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/flare/is_hot() + return on * heat + +/obj/item/device/flashlight/flare/torch + name = "torch" + desc = "A torch fashioned from some leaves and a log." + w_class = WEIGHT_CLASS_BULKY + brightness_on = 4 + icon_state = "torch" + item_state = "torch" + on_damage = 10 + slot_flags = null + +/obj/item/device/flashlight/lantern + name = "lantern" + icon_state = "lantern" + item_state = "lantern" + desc = "A mining lantern." + brightness_on = 6 // luminosity when on + + +/obj/item/device/flashlight/slime + gender = PLURAL + name = "glowing slime extract" + desc = "Extract from a yellow slime. It emits a strong light when squeezed." + icon = 'icons/obj/lighting.dmi' + icon_state = "slime" + item_state = "slime" + w_class = WEIGHT_CLASS_SMALL + slot_flags = SLOT_BELT + materials = list() + brightness_on = 6 //luminosity when on + +/obj/item/device/flashlight/emp + origin_tech = "magnets=3;syndicate=1" + var/emp_max_charges = 4 + var/emp_cur_charges = 4 + var/charge_tick = 0 + + +/obj/item/device/flashlight/emp/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/emp/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/device/flashlight/emp/process() + charge_tick++ + if(charge_tick < 10) + return FALSE + charge_tick = 0 + emp_cur_charges = min(emp_cur_charges+1, emp_max_charges) + return TRUE + +/obj/item/device/flashlight/emp/attack(mob/living/M, mob/living/user) if(on && user.zone_selected in list("eyes", "mouth")) // call original attack when examining organs - ..() - return - -/obj/item/device/flashlight/emp/afterattack(atom/movable/A, mob/user, proximity) - if(!proximity) - return - - if(emp_cur_charges > 0) - emp_cur_charges -= 1 - - if(ismob(A)) - var/mob/M = A - add_logs(user, M, "attacked", "EMP-light") - M.visible_message("[user] blinks \the [src] at \the [A].", \ - "[user] blinks \the [src] at you.") - else - A.visible_message("[user] blinks \the [src] at \the [A].") - to_chat(user, "\The [src] now has [emp_cur_charges] charge\s.") - A.emp_act(1) - else - to_chat(user, "\The [src] needs time to recharge!") - return - -// Glowsticks, in the uncomfortable range of similar to flares, -// but not similar enough to make it worth a refactor -/obj/item/device/flashlight/glowstick - name = "glowstick" - desc = "A military-grade glowstick." - w_class = WEIGHT_CLASS_SMALL - brightness_on = 4 - color = LIGHT_COLOR_GREEN - icon_state = "glowstick" - item_state = "glowstick" - var/fuel = 0 - -/obj/item/device/flashlight/glowstick/Initialize() - fuel = rand(1600, 2000) - light_color = color - ..() - -/obj/item/device/flashlight/glowstick/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/device/flashlight/glowstick/process() - fuel = max(fuel - 1, 0) - if(!fuel) - turn_off() - STOP_PROCESSING(SSobj, src) - update_icon() - -/obj/item/device/flashlight/glowstick/proc/turn_off() - on = 0 - update_icon() - -/obj/item/device/flashlight/glowstick/update_icon() - item_state = "glowstick" - overlays.Cut() - if(!fuel) - icon_state = "glowstick-empty" - cut_overlays() - set_light(0) - else if(on) + ..() + return + +/obj/item/device/flashlight/emp/afterattack(atom/movable/A, mob/user, proximity) + if(!proximity) + return + + if(emp_cur_charges > 0) + emp_cur_charges -= 1 + + if(ismob(A)) + var/mob/M = A + add_logs(user, M, "attacked", "EMP-light") + M.visible_message("[user] blinks \the [src] at \the [A].", \ + "[user] blinks \the [src] at you.") + else + A.visible_message("[user] blinks \the [src] at \the [A].") + to_chat(user, "\The [src] now has [emp_cur_charges] charge\s.") + A.emp_act(1) + else + to_chat(user, "\The [src] needs time to recharge!") + return + +// Glowsticks, in the uncomfortable range of similar to flares, +// but not similar enough to make it worth a refactor +/obj/item/device/flashlight/glowstick + name = "glowstick" + desc = "A military-grade glowstick." + w_class = WEIGHT_CLASS_SMALL + brightness_on = 4 + color = LIGHT_COLOR_GREEN + icon_state = "glowstick" + item_state = "glowstick" + var/fuel = 0 + +/obj/item/device/flashlight/glowstick/Initialize() + fuel = rand(1600, 2000) + light_color = color + ..() + +/obj/item/device/flashlight/glowstick/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/device/flashlight/glowstick/process() + fuel = max(fuel - 1, 0) + if(!fuel) + turn_off() + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/item/device/flashlight/glowstick/proc/turn_off() + on = 0 + update_icon() + +/obj/item/device/flashlight/glowstick/update_icon() + item_state = "glowstick" + overlays.Cut() + if(!fuel) + icon_state = "glowstick-empty" + cut_overlays() + set_light(0) + else if(on) var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow") glowstick_overlay.color = color add_overlay(glowstick_overlay) - item_state = "glowstick-on" - set_light(brightness_on) - else - icon_state = "glowstick" - cut_overlays() - -/obj/item/device/flashlight/glowstick/attack_self(mob/user) - if(!fuel) - to_chat(user, "[src] is spent.") - return - if(on) - to_chat(user, "[src] is already lit.") - return - - . = ..() - if(.) - user.visible_message("[user] cracks and shakes [src].", "You crack and shake [src], turning it on!") - activate() - -/obj/item/device/flashlight/glowstick/proc/activate() - if(!on) - on = TRUE - START_PROCESSING(SSobj, src) - -/obj/item/device/flashlight/glowstick/red - name = "red glowstick" - color = LIGHT_COLOR_RED - -/obj/item/device/flashlight/glowstick/blue - name = "blue glowstick" - color = LIGHT_COLOR_BLUE - -/obj/item/device/flashlight/glowstick/cyan - name = "cyan glowstick" - color = LIGHT_COLOR_CYAN - -/obj/item/device/flashlight/glowstick/orange - name = "orange glowstick" - color = LIGHT_COLOR_ORANGE - -/obj/item/device/flashlight/glowstick/yellow - name = "yellow glowstick" - color = LIGHT_COLOR_YELLOW - -/obj/item/device/flashlight/glowstick/pink - name = "pink glowstick" - color = LIGHT_COLOR_PINK - -/obj/item/device/flashlight/glowstick/random - name = "random colored glowstick" - -/obj/item/device/flashlight/glowstick/random/Initialize() - var/list/glowtypes = typesof(/obj/item/device/flashlight/glowstick) - glowtypes -= /obj/item/device/flashlight/glowstick/random - - var/obj/item/device/flashlight/glowstick/glowtype = pick(glowtypes) - - name = initial(glowtype.name) - color = initial(glowtype.color) - . = ..() - -/obj/item/device/flashlight/spotlight //invisible lighting source + item_state = "glowstick-on" + set_light(brightness_on) + else + icon_state = "glowstick" + cut_overlays() + +/obj/item/device/flashlight/glowstick/attack_self(mob/user) + if(!fuel) + to_chat(user, "[src] is spent.") + return + if(on) + to_chat(user, "[src] is already lit.") + return + + . = ..() + if(.) + user.visible_message("[user] cracks and shakes [src].", "You crack and shake [src], turning it on!") + activate() + +/obj/item/device/flashlight/glowstick/proc/activate() + if(!on) + on = TRUE + START_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/glowstick/red + name = "red glowstick" + color = LIGHT_COLOR_RED + +/obj/item/device/flashlight/glowstick/blue + name = "blue glowstick" + color = LIGHT_COLOR_BLUE + +/obj/item/device/flashlight/glowstick/cyan + name = "cyan glowstick" + color = LIGHT_COLOR_CYAN + +/obj/item/device/flashlight/glowstick/orange + name = "orange glowstick" + color = LIGHT_COLOR_ORANGE + +/obj/item/device/flashlight/glowstick/yellow + name = "yellow glowstick" + color = LIGHT_COLOR_YELLOW + +/obj/item/device/flashlight/glowstick/pink + name = "pink glowstick" + color = LIGHT_COLOR_PINK + +/obj/item/device/flashlight/glowstick/random + name = "random colored glowstick" + +/obj/item/device/flashlight/glowstick/random/Initialize() + var/list/glowtypes = typesof(/obj/item/device/flashlight/glowstick) + glowtypes -= /obj/item/device/flashlight/glowstick/random + + var/obj/item/device/flashlight/glowstick/glowtype = pick(glowtypes) + + name = initial(glowtype.name) + color = initial(glowtype.color) + . = ..() + +/obj/item/device/flashlight/spotlight //invisible lighting source name = "disco light" desc = "Groovy..." - icon_state = null - light_color = null - brightness_on = 0 - light_range = 0 - light_power = 10 - alpha = 0 - layer = 0 - on = TRUE - anchored = TRUE - var/range = null - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/item/device/flashlight/flashdark - name = "flashdark" - desc = "A strange device manufactured with mysterious elements that somehow emits darkness. Or maybe it just sucks in light? Nobody knows for sure." - icon_state = "flashdark" - item_state = "flashdark" - brightness_on = 2.5 - flashlight_power = -3 + icon_state = null + light_color = null + brightness_on = 0 + light_range = 0 + light_power = 10 + alpha = 0 + layer = 0 + on = TRUE + anchored = TRUE + var/range = null + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/item/device/flashlight/flashdark + name = "flashdark" + desc = "A strange device manufactured with mysterious elements that somehow emits darkness. Or maybe it just sucks in light? Nobody knows for sure." + icon_state = "flashdark" + item_state = "flashdark" + brightness_on = 2.5 + flashlight_power = -3 /obj/item/device/flashlight/eyelight name = "eyelight" diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 4404f6c811..3f2ed0d5d1 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -99,7 +99,7 @@ return !density /obj/structure/projected_forcefield/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + playsound(loc, 'sound/weapons/egloves.ogg', 80, 1) /obj/structure/projected_forcefield/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) if(sound_effect) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 0aa6a55c03..c07bb012a0 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -125,7 +125,7 @@ if(!do_after(user, 40*I.toolspeed, target = user)) return 0 user.visible_message("[user] refastens [src]'s maintenance panel!", "You reset [src] to its factory settings!") - playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + playsound(user, 'sound/items/screwdriver2.ogg', 50, 1) emagged = 0 radiation_count = 0 update_icon() diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 8ced8d882b..f54bd72af0 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -118,9 +118,8 @@ GLOBAL_LIST_EMPTY(GPS_list) switch(action) if("rename") var/a = input("Please enter desired tag.", name, gpstag) as text - a = uppertext(copytext(sanitize(a), 1, 5)) + a = copytext(sanitize(a), 1, 20) gpstag = a - name = "global positioning system ([gpstag])" . = TRUE if("power") toggletracking(usr) @@ -136,9 +135,10 @@ GLOBAL_LIST_EMPTY(GPS_list) ..() if(href_list["tag"] ) var/a = input("Please enter desired tag.", name, gpstag) as text - a = copytext(sanitize(a), 1, 20) + a = uppertext(copytext(sanitize(a), 1, 5)) if(in_range(src, usr)) gpstag = a + name = "global positioning system ([gpstag])" attack_self(usr) /obj/item/device/gps/science diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index eb041aa2ca..2ec6c846df 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -108,7 +108,7 @@ //20% chance to actually hit the sensors if(prob(effectchance * diode.rating)) S.flash_act(affect_silicon = 1) - S.Weaken(rand(5,10)) + S.Knockdown(rand(100,200)) to_chat(S, "Your sensors were overloaded by a laser!") outmsg = "You overload [S] by shining [src] at their sensors." add_logs(user, S, "shone in the sensors", src) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 4111d20aaf..ec4547126c 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -1,147 +1,147 @@ -/obj/item/device/paicard - name = "personal AI device" - icon = 'icons/obj/aicards.dmi' - icon_state = "pai" - item_state = "electronic" - w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT - origin_tech = "programming=2" - var/mob/living/silicon/pai/pai - resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE - -/obj/item/device/paicard/Initialize() - SSpai.pai_card_list += src - add_overlay("pai-off") +/obj/item/device/paicard + name = "personal AI device" + icon = 'icons/obj/aicards.dmi' + icon_state = "pai" + item_state = "electronic" + w_class = WEIGHT_CLASS_SMALL + slot_flags = SLOT_BELT + origin_tech = "programming=2" + var/mob/living/silicon/pai/pai + resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE + +/obj/item/device/paicard/Initialize() + SSpai.pai_card_list += src + add_overlay("pai-off") return ..() - -/obj/item/device/paicard/Destroy() - //Will stop people throwing friend pAIs into the singularity so they can respawn - SSpai.pai_card_list -= src + +/obj/item/device/paicard/Destroy() + //Will stop people throwing friend pAIs into the singularity so they can respawn + SSpai.pai_card_list -= src QDEL_NULL(pai) - return ..() - -/obj/item/device/paicard/attack_self(mob/user) - if (!in_range(src, user)) - return - user.set_machine(src) - var/dat = "Personal AI Device
    " - if(pai) + return ..() + +/obj/item/device/paicard/attack_self(mob/user) + if (!in_range(src, user)) + return + user.set_machine(src) + var/dat = "Personal AI Device
    " + if(pai) if(!pai.master_dna || !pai.master) dat += "Imprint Master DNA
    " - dat += "Installed Personality: [pai.name]
    " - dat += "Prime directive:
    [pai.laws.zeroth]
    " - for(var/slaws in pai.laws.supplied) - dat += "Additional directives:
    [slaws]
    " - dat += "Configure Directives
    " - dat += "
    " - dat += "

    Device Settings


    " - if(pai.radio) - dat += "Radio Uplink
    " - dat += "Transmit: [(pai.radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]
    " - dat += "Receive: [(pai.radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]
    " - else - dat += "Radio Uplink
    " - dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
    " - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.real_name == pai.master || H.dna.unique_enzymes == pai.master_dna) - dat += "\[[pai.canholo? "Disable" : "Enable"] holomatrix projectors\]
    " - dat += "\[Wipe current pAI personality\]
    " - else - dat += "No personality installed.
    " - dat += "Searching for a personality... Press view available personalities to notify potential candidates." - dat += "\[View available personalities\]
    " - user << browse(dat, "window=paicard") - onclose(user, "paicard") - return - -/obj/item/device/paicard/Topic(href, href_list) - - if(!usr || usr.stat) - return - - if(href_list["request"]) - SSpai.findPAI(src, usr) - - if(pai) - if(!(loc == usr)) - return - if(href_list["setdna"]) - if(pai.master_dna) - return - if(!istype(usr, /mob/living/carbon)) - to_chat(usr, "You don't have any DNA, or your DNA is incompatible with this device!") - else - var/mob/living/carbon/M = usr - pai.master = M.real_name - pai.master_dna = M.dna.unique_enzymes - to_chat(pai, "You have been bound to a new master.") - pai.emittersemicd = FALSE - if(href_list["wipe"]) - var/confirm = input("Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe") in list("Yes", "No") - if(confirm == "Yes") - if(pai) - to_chat(pai, "You feel yourself slipping away from reality.") - to_chat(pai, "Byte by byte you lose your sense of self.") - to_chat(pai, "Your mental faculties leave you.") - to_chat(pai, "oblivion... ") + dat += "Installed Personality: [pai.name]
    " + dat += "Prime directive:
    [pai.laws.zeroth]
    " + for(var/slaws in pai.laws.supplied) + dat += "Additional directives:
    [slaws]
    " + dat += "Configure Directives
    " + dat += "
    " + dat += "

    Device Settings


    " + if(pai.radio) + dat += "Radio Uplink
    " + dat += "Transmit: [(pai.radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]
    " + dat += "Receive: [(pai.radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]
    " + else + dat += "Radio Uplink
    " + dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
    " + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.real_name == pai.master || H.dna.unique_enzymes == pai.master_dna) + dat += "\[[pai.canholo? "Disable" : "Enable"] holomatrix projectors\]
    " + dat += "\[Wipe current pAI personality\]
    " + else + dat += "No personality installed.
    " + dat += "Searching for a personality... Press view available personalities to notify potential candidates." + dat += "\[View available personalities\]
    " + user << browse(dat, "window=paicard") + onclose(user, "paicard") + return + +/obj/item/device/paicard/Topic(href, href_list) + + if(!usr || usr.stat) + return + + if(href_list["request"]) + SSpai.findPAI(src, usr) + + if(pai) + if(!(loc == usr)) + return + if(href_list["setdna"]) + if(pai.master_dna) + return + if(!iscarbon(usr)) + to_chat(usr, "You don't have any DNA, or your DNA is incompatible with this device!") + else + var/mob/living/carbon/M = usr + pai.master = M.real_name + pai.master_dna = M.dna.unique_enzymes + to_chat(pai, "You have been bound to a new master.") + pai.emittersemicd = FALSE + if(href_list["wipe"]) + var/confirm = input("Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe") in list("Yes", "No") + if(confirm == "Yes") + if(pai) + to_chat(pai, "You feel yourself slipping away from reality.") + to_chat(pai, "Byte by byte you lose your sense of self.") + to_chat(pai, "Your mental faculties leave you.") + to_chat(pai, "oblivion... ") removePersonality() - if(href_list["wires"]) - var/wire = text2num(href_list["wires"]) - if(pai.radio) - pai.radio.wires.cut(wire) - if(href_list["setlaws"]) - var/newlaws = copytext(sanitize(input("Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.laws.supplied[1]) as message),1,MAX_MESSAGE_LEN) - if(newlaws && pai) - pai.add_supplied_law(0,newlaws) - if(href_list["toggle_holo"]) - if(pai.canholo) - to_chat(pai, "Your owner has disabled your holomatrix projectors!") - pai.canholo = FALSE - to_chat(usr, "You disable your pAI's holomatrix!") - else - to_chat(pai, "Your owner has enabled your holomatrix projectors!") - pai.canholo = TRUE - to_chat(usr, "You enable your pAI's holomatrix!") - - attack_self(usr) - -// WIRE_SIGNAL = 1 -// WIRE_RECEIVE = 2 -// WIRE_TRANSMIT = 4 - -/obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality) - src.pai = personality - src.add_overlay("pai-null") - - playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) - audible_message("\The [src] plays a cheerful startup noise!") - -/obj/item/device/paicard/proc/removePersonality() + if(href_list["wires"]) + var/wire = text2num(href_list["wires"]) + if(pai.radio) + pai.radio.wires.cut(wire) + if(href_list["setlaws"]) + var/newlaws = copytext(sanitize(input("Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.laws.supplied[1]) as message),1,MAX_MESSAGE_LEN) + if(newlaws && pai) + pai.add_supplied_law(0,newlaws) + if(href_list["toggle_holo"]) + if(pai.canholo) + to_chat(pai, "Your owner has disabled your holomatrix projectors!") + pai.canholo = FALSE + to_chat(usr, "You disable your pAI's holomatrix!") + else + to_chat(pai, "Your owner has enabled your holomatrix projectors!") + pai.canholo = TRUE + to_chat(usr, "You enable your pAI's holomatrix!") + + attack_self(usr) + +// WIRE_SIGNAL = 1 +// WIRE_RECEIVE = 2 +// WIRE_TRANSMIT = 4 + +/obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality) + src.pai = personality + src.add_overlay("pai-null") + + playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) + audible_message("\The [src] plays a cheerful startup noise!") + +/obj/item/device/paicard/proc/removePersonality() QDEL_NULL(pai) cut_overlays() add_overlay("pai-off") - -/obj/item/device/paicard/proc/setEmotion(emotion) - if(pai) - src.cut_overlays() - switch(emotion) - if(1) src.add_overlay("pai-happy") - if(2) src.add_overlay("pai-cat") - if(3) src.add_overlay("pai-extremely-happy") - if(4) src.add_overlay("pai-face") - if(5) src.add_overlay("pai-laugh") - if(6) src.add_overlay("pai-off") - if(7) src.add_overlay("pai-sad") - if(8) src.add_overlay("pai-angry") - if(9) src.add_overlay("pai-what") - if(10) src.add_overlay("pai-null") - -/obj/item/device/paicard/proc/alertUpdate() - visible_message("[src] flashes a message across its screen, \"Additional personalities available for download.\"", "[src] bleeps electronically.") - -/obj/item/device/paicard/emp_act(severity) - if(pai) - pai.emp_act(severity) - ..() - + +/obj/item/device/paicard/proc/setEmotion(emotion) + if(pai) + src.cut_overlays() + switch(emotion) + if(1) src.add_overlay("pai-happy") + if(2) src.add_overlay("pai-cat") + if(3) src.add_overlay("pai-extremely-happy") + if(4) src.add_overlay("pai-face") + if(5) src.add_overlay("pai-laugh") + if(6) src.add_overlay("pai-off") + if(7) src.add_overlay("pai-sad") + if(8) src.add_overlay("pai-angry") + if(9) src.add_overlay("pai-what") + if(10) src.add_overlay("pai-null") + +/obj/item/device/paicard/proc/alertUpdate() + visible_message("[src] flashes a message across its screen, \"Additional personalities available for download.\"", "[src] bleeps electronically.") + +/obj/item/device/paicard/emp_act(severity) + if(pai) + pai.emp_act(severity) + ..() + diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index a4e1a45814..fb70d77ff3 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -1,145 +1,145 @@ -// Powersink - used to drain station power - -/obj/item/device/powersink - desc = "A nulling power sink which drains energy from electrical systems." - name = "power sink" - icon_state = "powersink0" - item_state = "electronic" - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - throwforce = 5 - throw_speed = 1 - throw_range = 2 - materials = list(MAT_METAL=750) - origin_tech = "powerstorage=5;syndicate=5" - var/drain_rate = 1600000 // amount of power to drain per tick - var/power_drained = 0 // has drained this much power - var/max_power = 1e10 // maximum power that can be drained before exploding - var/mode = 0 // 0 = off, 1=clamped (off), 2=operating - var/admins_warned = 0 // stop spam, only warn the admins once that we are about to boom - - var/const/DISCONNECTED = 0 - var/const/CLAMPED_OFF = 1 - var/const/OPERATING = 2 - - var/obj/structure/cable/attached // the attached cable - -/obj/item/device/powersink/update_icon() - icon_state = "powersink[mode == OPERATING]" - -/obj/item/device/powersink/proc/set_mode(value) - if(value == mode) - return - switch(value) - if(DISCONNECTED) - attached = null - if(mode == OPERATING) - STOP_PROCESSING(SSobj, src) - anchored = 0 - - if(CLAMPED_OFF) - if(!attached) - return - if(mode == OPERATING) - STOP_PROCESSING(SSobj, src) - anchored = 1 - - if(OPERATING) - if(!attached) - return - START_PROCESSING(SSobj, src) - anchored = 1 - - mode = value - update_icon() - set_light(0) - -/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - if(mode == DISCONNECTED) - var/turf/T = loc - if(isturf(T) && !T.intact) - attached = locate() in T - if(!attached) - to_chat(user, "This device must be placed over an exposed, powered cable node!") - else - set_mode(CLAMPED_OFF) - user.visible_message( \ - "[user] attaches \the [src] to the cable.", \ - "You attach \the [src] to the cable.", - "You hear some wires being connected to something.") - else - to_chat(user, "This device must be placed over an exposed, powered cable node!") - else - set_mode(DISCONNECTED) - user.visible_message( \ - "[user] detaches \the [src] from the cable.", \ - "You detach \the [src] from the cable.", - "You hear some wires being disconnected from something.") - else - return ..() - -/obj/item/device/powersink/attack_paw() - return - -/obj/item/device/powersink/attack_ai() - return - -/obj/item/device/powersink/attack_hand(mob/user) - switch(mode) - if(DISCONNECTED) - ..() - - if(CLAMPED_OFF) - user.visible_message( \ - "[user] activates \the [src]!", \ - "You activate \the [src].", - "You hear a click.") - message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(src)]") - log_game("Power sink activated by [key_name(user)] at [COORD(src)]") - set_mode(OPERATING) - - if(OPERATING) - user.visible_message( \ - "[user] deactivates \the [src]!", \ - "You deactivate \the [src].", - "You hear a click.") - set_mode(CLAMPED_OFF) - -/obj/item/device/powersink/process() - if(!attached) - set_mode(DISCONNECTED) - return - - var/datum/powernet/PN = attached.powernet - if(PN) - set_light(5) - - // found a powernet, so drain up to max power from it - - var/drained = min ( drain_rate, PN.avail ) - PN.load += drained - power_drained += drained - - // if tried to drain more than available on powernet - // now look for APCs and drain their cells - if(drained < drain_rate) - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/A = T.master - if(A.operating && A.cell) - A.cell.charge = max(0, A.cell.charge - 50) - power_drained += 50 - if(A.charging == 2) // If the cell was full - A.charging = 1 // It's no longer full - - if(power_drained > max_power * 0.98) - if (!admins_warned) - admins_warned = 1 - message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") - playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) - - if(power_drained >= max_power) - STOP_PROCESSING(SSobj, src) +// Powersink - used to drain station power + +/obj/item/device/powersink + desc = "A nulling power sink which drains energy from electrical systems." + name = "power sink" + icon_state = "powersink0" + item_state = "electronic" + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + throwforce = 5 + throw_speed = 1 + throw_range = 2 + materials = list(MAT_METAL=750) + origin_tech = "powerstorage=5;syndicate=5" + var/drain_rate = 1600000 // amount of power to drain per tick + var/power_drained = 0 // has drained this much power + var/max_power = 1e10 // maximum power that can be drained before exploding + var/mode = 0 // 0 = off, 1=clamped (off), 2=operating + var/admins_warned = 0 // stop spam, only warn the admins once that we are about to boom + + var/const/DISCONNECTED = 0 + var/const/CLAMPED_OFF = 1 + var/const/OPERATING = 2 + + var/obj/structure/cable/attached // the attached cable + +/obj/item/device/powersink/update_icon() + icon_state = "powersink[mode == OPERATING]" + +/obj/item/device/powersink/proc/set_mode(value) + if(value == mode) + return + switch(value) + if(DISCONNECTED) + attached = null + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 0 + + if(CLAMPED_OFF) + if(!attached) + return + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 1 + + if(OPERATING) + if(!attached) + return + START_PROCESSING(SSobj, src) + anchored = 1 + + mode = value + update_icon() + set_light(0) + +/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode == DISCONNECTED) + var/turf/T = loc + if(isturf(T) && !T.intact) + attached = locate() in T + if(!attached) + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + set_mode(CLAMPED_OFF) + user.visible_message( \ + "[user] attaches \the [src] to the cable.", \ + "You attach \the [src] to the cable.", + "You hear some wires being connected to something.") + else + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + set_mode(DISCONNECTED) + user.visible_message( \ + "[user] detaches \the [src] from the cable.", \ + "You detach \the [src] from the cable.", + "You hear some wires being disconnected from something.") + else + return ..() + +/obj/item/device/powersink/attack_paw() + return + +/obj/item/device/powersink/attack_ai() + return + +/obj/item/device/powersink/attack_hand(mob/user) + switch(mode) + if(DISCONNECTED) + ..() + + if(CLAMPED_OFF) + user.visible_message( \ + "[user] activates \the [src]!", \ + "You activate \the [src].", + "You hear a click.") + message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(src)]") + log_game("Power sink activated by [key_name(user)] at [COORD(src)]") + set_mode(OPERATING) + + if(OPERATING) + user.visible_message( \ + "[user] deactivates \the [src]!", \ + "You deactivate \the [src].", + "You hear a click.") + set_mode(CLAMPED_OFF) + +/obj/item/device/powersink/process() + if(!attached) + set_mode(DISCONNECTED) + return + + var/datum/powernet/PN = attached.powernet + if(PN) + set_light(5) + + // found a powernet, so drain up to max power from it + + var/drained = min ( drain_rate, PN.avail ) + PN.load += drained + power_drained += drained + + // if tried to drain more than available on powernet + // now look for APCs and drain their cells + if(drained < drain_rate) + for(var/obj/machinery/power/terminal/T in PN.nodes) + if(istype(T.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = T.master + if(A.operating && A.cell) + A.cell.charge = max(0, A.cell.charge - 50) + power_drained += 50 + if(A.charging == 2) // If the cell was full + A.charging = 1 // It's no longer full + + if(power_drained > max_power * 0.98) + if (!admins_warned) + admins_warned = 1 + message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") + playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + + if(power_drained >= max_power) + STOP_PROCESSING(SSobj, src) explosion(src.loc, 4,8,16,32) - qdel(src) + qdel(src) diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index 504e85633f..bab40edb29 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -27,7 +27,7 @@ sigdev = new sigdev.code = roundstart_signaller_code sigdev.frequency = roundstart_signaller_freq - if(istype(loc, /turf/open)) + if(isopenturf(loc)) hide(TRUE) /obj/item/device/pressure_plate/Crossed(atom/movable/AM) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 5343e04f78..d99240aa78 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -1,41 +1,41 @@ -/obj/item/device/radio/beacon - name = "tracking beacon" - desc = "A beacon used by a teleporter." - icon_state = "beacon" - item_state = "beacon" - var/code = "electronic" - origin_tech = "bluespace=1" - dog_fashion = null - +/obj/item/device/radio/beacon + name = "tracking beacon" + desc = "A beacon used by a teleporter." + icon_state = "beacon" + item_state = "beacon" + var/code = "electronic" + origin_tech = "bluespace=1" + dog_fashion = null + /obj/item/device/radio/beacon/Initialize() . = ..() - GLOB.teleportbeacons += src - -/obj/item/device/radio/beacon/Destroy() - GLOB.teleportbeacons.Remove(src) - return ..() - -/obj/item/device/radio/beacon/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) - return - -/obj/item/device/radio/beacon/send_hear() - return null - - -/obj/item/device/radio/beacon/verb/alter_signal(t as text) - set name = "Alter Beacon's Signal" - set category = "Object" - set src in usr - - if ((usr.canmove && !( usr.restrained() ))) - src.code = t - if (!( src.code )) - src.code = "beacon" - src.add_fingerprint(usr) - return - -/* -//Probably a better way of doing this, I'm lazy. -/obj/item/device/radio/beacon/bacon/proc/digest_delay() - spawn(600) - qdel(src)*/ //Bacon beacons are no more rip in peace + GLOB.teleportbeacons += src + +/obj/item/device/radio/beacon/Destroy() + GLOB.teleportbeacons.Remove(src) + return ..() + +/obj/item/device/radio/beacon/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) + return + +/obj/item/device/radio/beacon/send_hear() + return null + + +/obj/item/device/radio/beacon/verb/alter_signal(t as text) + set name = "Alter Beacon's Signal" + set category = "Object" + set src in usr + + if ((usr.canmove && !( usr.restrained() ))) + src.code = t + if (!( src.code )) + src.code = "beacon" + src.add_fingerprint(usr) + return + +/* +//Probably a better way of doing this, I'm lazy. +/obj/item/device/radio/beacon/bacon/proc/digest_delay() + spawn(600) + qdel(src)*/ //Bacon beacons are no more rip in peace diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index f1689ec334..6250e4bcb2 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -78,14 +78,14 @@ on = !( on ) icon_state = "electropack[on]" if(!( master )) - if(istype(loc, /mob)) + if(ismob(loc)) attack_self(loc) else for(var/mob/M in viewers(1, src)) if(M.client) attack_self(M) else - if(istype(master.loc, /mob)) + if(ismob(master.loc)) attack_self(master.loc) else for(var/mob/M in viewers(1, master)) @@ -100,21 +100,21 @@ if(!signal || signal.encryption != code) return - if(ismob(loc) && on) + if(isliving(loc) && on) if(shock_cooldown != 0) return shock_cooldown = 1 spawn(100) shock_cooldown = 0 - var/mob/M = loc - step(M, pick(GLOB.cardinal)) + var/mob/living/L = loc + step(L, pick(GLOB.cardinal)) - to_chat(M, "You feel a sharp shock!") + to_chat(L, "You feel a sharp shock!") var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, M) + s.set_up(3, 1, L) s.start() - M.Weaken(5) + L.Knockdown(100) if(master) master.receive_signal() diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 8c7e6d7932..b00509cd38 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1,309 +1,309 @@ -/obj/item/device/radio/headset - name = "radio headset" - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. \nTo speak on the general radio frequency, use ; before speaking." - icon_state = "headset" - item_state = "headset" - materials = list(MAT_METAL=75) - subspace_transmission = 1 - canhear_range = 0 // can't hear headsets from very far away - - slot_flags = SLOT_EARS - var/obj/item/device/encryptionkey/keyslot2 = null - dog_fashion = null - +/obj/item/device/radio/headset + name = "radio headset" + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. \nTo speak on the general radio frequency, use ; before speaking." + icon_state = "headset" + item_state = "headset" + materials = list(MAT_METAL=75) + subspace_transmission = 1 + canhear_range = 0 // can't hear headsets from very far away + + slot_flags = SLOT_EARS + var/obj/item/device/encryptionkey/keyslot2 = null + dog_fashion = null + /obj/item/device/radio/headset/Initialize() . = ..() - recalculateChannels() - -/obj/item/device/radio/headset/Destroy() - qdel(keyslot) - qdel(keyslot2) - keyslot = null - keyslot2 = null - return ..() - -/obj/item/device/radio/headset/talk_into(mob/living/M, message, channel, list/spans,datum/language/language) - if (!listening) - return ITALICS | REDUCE_RANGE - return ..() - -/obj/item/device/radio/headset/receive_range(freq, level, AIuser) - if(ishuman(src.loc)) - var/mob/living/carbon/human/H = src.loc - if(H.ears == src) - return ..(freq, level) - else if(AIuser) - return ..(freq, level) - return -1 - -/obj/item/device/radio/headset/syndicate //disguised to look like a normal headset for stealth ops - origin_tech = "syndicate=3" - -/obj/item/device/radio/headset/syndicate/alt //undisguised bowman with flash protection - name = "syndicate headset" - desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking." - origin_tech = "syndicate=3" - icon_state = "syndie_headset" - item_state = "syndie_headset" - -/obj/item/device/radio/headset/syndicate/alt/Initialize(mapload) + recalculateChannels() + +/obj/item/device/radio/headset/Destroy() + qdel(keyslot) + qdel(keyslot2) + keyslot = null + keyslot2 = null + return ..() + +/obj/item/device/radio/headset/talk_into(mob/living/M, message, channel, list/spans,datum/language/language) + if (!listening) + return ITALICS | REDUCE_RANGE + return ..() + +/obj/item/device/radio/headset/receive_range(freq, level, AIuser) + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.ears == src) + return ..(freq, level) + else if(AIuser) + return ..(freq, level) + return -1 + +/obj/item/device/radio/headset/syndicate //disguised to look like a normal headset for stealth ops + origin_tech = "syndicate=3" + +/obj/item/device/radio/headset/syndicate/alt //undisguised bowman with flash protection + name = "syndicate headset" + desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking." + origin_tech = "syndicate=3" + icon_state = "syndie_headset" + item_state = "syndie_headset" + +/obj/item/device/radio/headset/syndicate/alt/Initialize(mapload) . = ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/device/radio/headset/syndicate/alt/leader - name = "team leader headset" - command = TRUE - + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/device/radio/headset/syndicate/alt/leader + name = "team leader headset" + command = TRUE + /obj/item/device/radio/headset/syndicate/Initialize() . = ..() - make_syndie() - -/obj/item/device/radio/headset/binary - origin_tech = "syndicate=3" + make_syndie() + +/obj/item/device/radio/headset/binary + origin_tech = "syndicate=3" /obj/item/device/radio/headset/binary/Initialize() . = ..() - qdel(keyslot) - keyslot = new /obj/item/device/encryptionkey/binary - recalculateChannels() - -/obj/item/device/radio/headset/headset_sec - name = "security radio headset" - desc = "This is used by your elite security force. \nTo access the security channel, use :s." - icon_state = "sec_headset" - keyslot = new /obj/item/device/encryptionkey/headset_sec - -/obj/item/device/radio/headset/headset_sec/alt - name = "security bowman headset" - desc = "This is used by your elite security force. Protects ears from flashbangs. \nTo access the security channel, use :s." - icon_state = "sec_headset_alt" - item_state = "sec_headset_alt" - -/obj/item/device/radio/headset/headset_sec/alt/Initialize(mapload) + qdel(keyslot) + keyslot = new /obj/item/device/encryptionkey/binary + recalculateChannels() + +/obj/item/device/radio/headset/headset_sec + name = "security radio headset" + desc = "This is used by your elite security force. \nTo access the security channel, use :s." + icon_state = "sec_headset" + keyslot = new /obj/item/device/encryptionkey/headset_sec + +/obj/item/device/radio/headset/headset_sec/alt + name = "security bowman headset" + desc = "This is used by your elite security force. Protects ears from flashbangs. \nTo access the security channel, use :s." + icon_state = "sec_headset_alt" + item_state = "sec_headset_alt" + +/obj/item/device/radio/headset/headset_sec/alt/Initialize(mapload) . = ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/device/radio/headset/headset_eng - name = "engineering radio headset" - desc = "When the engineers wish to chat like girls. \nTo access the engineering channel, use :e. " - icon_state = "eng_headset" - keyslot = new /obj/item/device/encryptionkey/headset_eng - -/obj/item/device/radio/headset/headset_rob - name = "robotics radio headset" - desc = "Made specifically for the roboticists, who cannot decide between departments. \nTo access the engineering channel, use :e. For research, use :n." - icon_state = "rob_headset" - keyslot = new /obj/item/device/encryptionkey/headset_rob - -/obj/item/device/radio/headset/headset_med - name = "medical radio headset" - desc = "A headset for the trained staff of the medbay. \nTo access the medical channel, use :m." - icon_state = "med_headset" - keyslot = new /obj/item/device/encryptionkey/headset_med - -/obj/item/device/radio/headset/headset_sci - name = "science radio headset" - desc = "A sciency headset. Like usual. \nTo access the science channel, use :n." - icon_state = "sci_headset" - keyslot = new /obj/item/device/encryptionkey/headset_sci - -/obj/item/device/radio/headset/headset_medsci - name = "medical research radio headset" - desc = "A headset that is a result of the mating between medical and science. \nTo access the medical channel, use :m. For science, use :n." - icon_state = "medsci_headset" - keyslot = new /obj/item/device/encryptionkey/headset_medsci - -/obj/item/device/radio/headset/headset_com - name = "command radio headset" - desc = "A headset with a commanding channel. \nTo access the command channel, use :c." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/headset_com - -/obj/item/device/radio/headset/heads - command = TRUE - -/obj/item/device/radio/headset/heads/captain - name = "\proper the captain's headset" - desc = "The headset of the king. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/captain - -/obj/item/device/radio/headset/heads/captain/alt - name = "\proper the captain's bowman headset" - desc = "The headset of the boss. Protects ears from flashbangs. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." - icon_state = "com_headset_alt" - item_state = "com_headset_alt" - -/obj/item/device/radio/headset/heads/captain/alt/Initialize(mapload) - . = ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/device/radio/headset/heads/rd - name = "\proper the research director's headset" - desc = "Headset of the fellow who keeps society marching towards technological singularity. \nTo access the science channel, use :n. For command, use :c." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/rd - -/obj/item/device/radio/headset/heads/hos - name = "\proper the head of security's headset" - desc = "The headset of the man in charge of keeping order and protecting the station. \nTo access the security channel, use :s. For command, use :c." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/hos - -/obj/item/device/radio/headset/heads/hos/alt - name = "\proper the head of security's bowman headset" - desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs. \nTo access the security channel, use :s. For command, use :c." - icon_state = "com_headset_alt" - item_state = "com_headset_alt" - -/obj/item/device/radio/headset/heads/hos/alt/Initialize(mapload) - . = ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/device/radio/headset/heads/ce - name = "\proper the chief engineer's headset" - desc = "The headset of the guy in charge of keeping the station powered and undamaged. \nTo access the engineering channel, use :e. For command, use :c." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/ce - -/obj/item/device/radio/headset/heads/cmo - name = "\proper the chief medical officer's headset" - desc = "The headset of the highly trained medical chief. \nTo access the medical channel, use :m. For command, use :c." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/cmo - -/obj/item/device/radio/headset/heads/hop - name = "\proper the head of personnel's headset" - desc = "The headset of the guy who will one day be captain. \nChannels are as follows: :u - supply, :v - service, :c - command." - icon_state = "com_headset" - keyslot = new /obj/item/device/encryptionkey/heads/hop - -/obj/item/device/radio/headset/headset_cargo - name = "supply radio headset" - desc = "A headset used by the QM and his slaves. \nTo access the supply channel, use :u." - icon_state = "cargo_headset" - keyslot = new /obj/item/device/encryptionkey/headset_cargo - -/obj/item/device/radio/headset/headset_cargo/mining - name = "mining radio headset" - desc = "Headset used by shaft miners. \nTo access the supply channel, use :u. For science, use :n." - icon_state = "mine_headset" - keyslot = new /obj/item/device/encryptionkey/headset_mining - -/obj/item/device/radio/headset/headset_srv - name = "service radio headset" - desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. \nTo access the service channel, use :v." - icon_state = "srv_headset" - keyslot = new /obj/item/device/encryptionkey/headset_service - -/obj/item/device/radio/headset/headset_cent - name = "\improper Centcom headset" - desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the centcom channel, use :y." - icon_state = "cent_headset" - keyslot = new /obj/item/device/encryptionkey/headset_com - keyslot2 = new /obj/item/device/encryptionkey/headset_cent - -/obj/item/device/radio/headset/headset_cent/commander - keyslot = new /obj/item/device/encryptionkey/heads/captain - -/obj/item/device/radio/headset/headset_cent/alt - name = "\improper Centcom bowman headset" - desc = "A headset especially for emergency response personnel. Protects ears from flashbangs. \nTo access the centcom channel, use :y." - icon_state = "cent_headset_alt" - item_state = "cent_headset_alt" - keyslot = null - -/obj/item/device/radio/headset/headset_cent/alt/Initialize(mapload) - . = ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/device/radio/headset/ai - name = "\proper Integrated Subspace Transceiver " - keyslot2 = new /obj/item/device/encryptionkey/ai + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/device/radio/headset/headset_eng + name = "engineering radio headset" + desc = "When the engineers wish to chat like girls. \nTo access the engineering channel, use :e. " + icon_state = "eng_headset" + keyslot = new /obj/item/device/encryptionkey/headset_eng + +/obj/item/device/radio/headset/headset_rob + name = "robotics radio headset" + desc = "Made specifically for the roboticists, who cannot decide between departments. \nTo access the engineering channel, use :e. For research, use :n." + icon_state = "rob_headset" + keyslot = new /obj/item/device/encryptionkey/headset_rob + +/obj/item/device/radio/headset/headset_med + name = "medical radio headset" + desc = "A headset for the trained staff of the medbay. \nTo access the medical channel, use :m." + icon_state = "med_headset" + keyslot = new /obj/item/device/encryptionkey/headset_med + +/obj/item/device/radio/headset/headset_sci + name = "science radio headset" + desc = "A sciency headset. Like usual. \nTo access the science channel, use :n." + icon_state = "sci_headset" + keyslot = new /obj/item/device/encryptionkey/headset_sci + +/obj/item/device/radio/headset/headset_medsci + name = "medical research radio headset" + desc = "A headset that is a result of the mating between medical and science. \nTo access the medical channel, use :m. For science, use :n." + icon_state = "medsci_headset" + keyslot = new /obj/item/device/encryptionkey/headset_medsci + +/obj/item/device/radio/headset/headset_com + name = "command radio headset" + desc = "A headset with a commanding channel. \nTo access the command channel, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/headset_com + +/obj/item/device/radio/headset/heads command = TRUE - -/obj/item/device/radio/headset/ai/receive_range(freq, level) - return ..(freq, level, 1) - -/obj/item/device/radio/headset/attackby(obj/item/weapon/W, mob/user, params) - user.set_machine(src) - - if(istype(W, /obj/item/weapon/screwdriver)) - if(keyslot || keyslot2) - - - for(var/ch_name in channels) - SSradio.remove_object(src, GLOB.radiochannels[ch_name]) - secure_radio_connections[ch_name] = null - - - if(keyslot) - var/turf/T = get_turf(user) - if(T) - keyslot.loc = T - keyslot = null - - - - if(keyslot2) - var/turf/T = get_turf(user) - if(T) - keyslot2.loc = T - keyslot2 = null - - recalculateChannels() - to_chat(user, "You pop out the encryption keys in the headset.") - - else - to_chat(user, "This headset doesn't have any unique encryption keys! How useless...") - - else if(istype(W, /obj/item/device/encryptionkey/)) - if(keyslot && keyslot2) - to_chat(user, "The headset can't hold another key!") - return - - if(!keyslot) - if(!user.transferItemToLoc(W, src)) - return - keyslot = W - - else - if(!user.transferItemToLoc(W, src)) - return - keyslot2 = W - - - recalculateChannels() - else - return ..() - - -/obj/item/device/radio/headset/recalculateChannels() - ..() - if(keyslot2) - for(var/ch_name in keyslot2.channels) - if(ch_name in src.channels) - continue - src.channels += ch_name - src.channels[ch_name] = keyslot2.channels[ch_name] - - if(keyslot2.translate_binary) - src.translate_binary = 1 - - if(keyslot2.syndie) - src.syndie = 1 - - if (keyslot2.independent) - independent = TRUE - - - for(var/ch_name in channels) - secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) - - return - -/obj/item/device/radio/headset/AltClick(mob/living/user) - if(!istype(user) || !Adjacent(user) || user.incapacitated()) - return - if (command) - use_command = !use_command - to_chat(user, "You toggle high-volume mode [use_command ? "on" : "off"].") + +/obj/item/device/radio/headset/heads/captain + name = "\proper the captain's headset" + desc = "The headset of the king. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/captain + +/obj/item/device/radio/headset/heads/captain/alt + name = "\proper the captain's bowman headset" + desc = "The headset of the boss. Protects ears from flashbangs. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + +/obj/item/device/radio/headset/heads/captain/alt/Initialize(mapload) + . = ..() + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/device/radio/headset/heads/rd + name = "\proper the research director's headset" + desc = "Headset of the fellow who keeps society marching towards technological singularity. \nTo access the science channel, use :n. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/rd + +/obj/item/device/radio/headset/heads/hos + name = "\proper the head of security's headset" + desc = "The headset of the man in charge of keeping order and protecting the station. \nTo access the security channel, use :s. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/hos + +/obj/item/device/radio/headset/heads/hos/alt + name = "\proper the head of security's bowman headset" + desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs. \nTo access the security channel, use :s. For command, use :c." + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + +/obj/item/device/radio/headset/heads/hos/alt/Initialize(mapload) + . = ..() + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/device/radio/headset/heads/ce + name = "\proper the chief engineer's headset" + desc = "The headset of the guy in charge of keeping the station powered and undamaged. \nTo access the engineering channel, use :e. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/ce + +/obj/item/device/radio/headset/heads/cmo + name = "\proper the chief medical officer's headset" + desc = "The headset of the highly trained medical chief. \nTo access the medical channel, use :m. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/cmo + +/obj/item/device/radio/headset/heads/hop + name = "\proper the head of personnel's headset" + desc = "The headset of the guy who will one day be captain. \nChannels are as follows: :u - supply, :v - service, :c - command." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/hop + +/obj/item/device/radio/headset/headset_cargo + name = "supply radio headset" + desc = "A headset used by the QM and his slaves. \nTo access the supply channel, use :u." + icon_state = "cargo_headset" + keyslot = new /obj/item/device/encryptionkey/headset_cargo + +/obj/item/device/radio/headset/headset_cargo/mining + name = "mining radio headset" + desc = "Headset used by shaft miners. \nTo access the supply channel, use :u. For science, use :n." + icon_state = "mine_headset" + keyslot = new /obj/item/device/encryptionkey/headset_mining + +/obj/item/device/radio/headset/headset_srv + name = "service radio headset" + desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. \nTo access the service channel, use :v." + icon_state = "srv_headset" + keyslot = new /obj/item/device/encryptionkey/headset_service + +/obj/item/device/radio/headset/headset_cent + name = "\improper Centcom headset" + desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the centcom channel, use :y." + icon_state = "cent_headset" + keyslot = new /obj/item/device/encryptionkey/headset_com + keyslot2 = new /obj/item/device/encryptionkey/headset_cent + +/obj/item/device/radio/headset/headset_cent/commander + keyslot = new /obj/item/device/encryptionkey/heads/captain + +/obj/item/device/radio/headset/headset_cent/alt + name = "\improper Centcom bowman headset" + desc = "A headset especially for emergency response personnel. Protects ears from flashbangs. \nTo access the centcom channel, use :y." + icon_state = "cent_headset_alt" + item_state = "cent_headset_alt" + keyslot = null + +/obj/item/device/radio/headset/headset_cent/alt/Initialize(mapload) + . = ..() + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/device/radio/headset/ai + name = "\proper Integrated Subspace Transceiver " + keyslot2 = new /obj/item/device/encryptionkey/ai + command = TRUE + +/obj/item/device/radio/headset/ai/receive_range(freq, level) + return ..(freq, level, 1) + +/obj/item/device/radio/headset/attackby(obj/item/weapon/W, mob/user, params) + user.set_machine(src) + + if(istype(W, /obj/item/weapon/screwdriver)) + if(keyslot || keyslot2) + + + for(var/ch_name in channels) + SSradio.remove_object(src, GLOB.radiochannels[ch_name]) + secure_radio_connections[ch_name] = null + + + if(keyslot) + var/turf/T = get_turf(user) + if(T) + keyslot.loc = T + keyslot = null + + + + if(keyslot2) + var/turf/T = get_turf(user) + if(T) + keyslot2.loc = T + keyslot2 = null + + recalculateChannels() + to_chat(user, "You pop out the encryption keys in the headset.") + + else + to_chat(user, "This headset doesn't have any unique encryption keys! How useless...") + + else if(istype(W, /obj/item/device/encryptionkey/)) + if(keyslot && keyslot2) + to_chat(user, "The headset can't hold another key!") + return + + if(!keyslot) + if(!user.transferItemToLoc(W, src)) + return + keyslot = W + + else + if(!user.transferItemToLoc(W, src)) + return + keyslot2 = W + + + recalculateChannels() + else + return ..() + + +/obj/item/device/radio/headset/recalculateChannels() + ..() + if(keyslot2) + for(var/ch_name in keyslot2.channels) + if(ch_name in src.channels) + continue + src.channels += ch_name + src.channels[ch_name] = keyslot2.channels[ch_name] + + if(keyslot2.translate_binary) + src.translate_binary = 1 + + if(keyslot2.syndie) + src.syndie = 1 + + if (keyslot2.independent) + independent = TRUE + + + for(var/ch_name in channels) + secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) + + return + +/obj/item/device/radio/headset/AltClick(mob/living/user) + if(!istype(user) || !Adjacent(user) || user.incapacitated()) + return + if (command) + use_command = !use_command + to_chat(user, "You toggle high-volume mode [use_command ? "on" : "off"].") diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 39e2b6d473..12ae73e5da 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -1,30 +1,30 @@ -/obj/item/device/radio/intercom - name = "station intercom" - desc = "Talk through this." - icon_state = "intercom" - anchored = 1 - w_class = WEIGHT_CLASS_BULKY - canhear_range = 2 - var/number = 0 - var/anyai = 1 - var/mob/living/silicon/ai/ai = list() - var/last_tick //used to delay the powercheck - dog_fashion = null +/obj/item/device/radio/intercom + name = "station intercom" + desc = "Talk through this." + icon_state = "intercom" + anchored = 1 + w_class = WEIGHT_CLASS_BULKY + canhear_range = 2 + var/number = 0 + var/anyai = 1 + var/mob/living/silicon/ai/ai = list() + var/last_tick //used to delay the powercheck + dog_fashion = null var/unfastened = FALSE /obj/item/device/radio/intercom/unscrewed unfastened = TRUE - + /obj/item/device/radio/intercom/Initialize(mapload, ndir, building) . = ..() if(building) setDir(ndir) - START_PROCESSING(SSobj, src) - -/obj/item/device/radio/intercom/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - + START_PROCESSING(SSobj, src) + +/obj/item/device/radio/intercom/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + /obj/item/device/radio/intercom/examine(mob/user) ..() if(!unfastened) @@ -68,56 +68,56 @@ return return ..() -/obj/item/device/radio/intercom/attack_ai(mob/user) - interact(user) - -/obj/item/device/radio/intercom/attack_hand(mob/user) - interact(user) - -/obj/item/device/radio/intercom/interact(mob/user) - ..() - ui_interact(user, state = GLOB.default_state) - -/obj/item/device/radio/intercom/receive_range(freq, level) - if(!on) - return -1 - if(wires.is_cut(WIRE_RX)) - return -1 - if(!(0 in level)) - var/turf/position = get_turf(src) - if(isnull(position) || !(position.z in level)) - return -1 - if(!src.listening) - return -1 - if(freq == GLOB.SYND_FREQ) - if(!(src.syndie)) - return -1//Prevents broadcast of messages over devices lacking the encryption - - return canhear_range - - -/obj/item/device/radio/intercom/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) - if(!anyai && !(speaker in ai)) - return - ..() - -/obj/item/device/radio/intercom/process() - if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) - last_tick = world.timeofday - - var/area/A = get_area(src) - if(!A || emped) - on = 0 - else - on = A.powered(EQUIP) // set "on" to the power status - - if(!on) - icon_state = "intercom-p" - else - icon_state = "intercom" - -/obj/item/device/radio/intercom/add_blood(list/blood_dna) - return 0 +/obj/item/device/radio/intercom/attack_ai(mob/user) + interact(user) + +/obj/item/device/radio/intercom/attack_hand(mob/user) + interact(user) + +/obj/item/device/radio/intercom/interact(mob/user) + ..() + ui_interact(user, state = GLOB.default_state) + +/obj/item/device/radio/intercom/receive_range(freq, level) + if(!on) + return -1 + if(wires.is_cut(WIRE_RX)) + return -1 + if(!(0 in level)) + var/turf/position = get_turf(src) + if(isnull(position) || !(position.z in level)) + return -1 + if(!src.listening) + return -1 + if(freq == GLOB.SYND_FREQ) + if(!(src.syndie)) + return -1//Prevents broadcast of messages over devices lacking the encryption + + return canhear_range + + +/obj/item/device/radio/intercom/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) + if(!anyai && !(speaker in ai)) + return + ..() + +/obj/item/device/radio/intercom/process() + if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) + last_tick = world.timeofday + + var/area/A = get_area(src) + if(!A || emped) + on = 0 + else + on = A.powered(EQUIP) // set "on" to the power status + + if(!on) + icon_state = "intercom-p" + else + icon_state = "intercom" + +/obj/item/device/radio/intercom/add_blood(list/blood_dna) + return 0 //Created through the autolathe or through deconstructing intercoms. Can be applied to wall to make a new intercom on it! /obj/item/wallframe/intercom diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index fce3640d22..fbc41fb1bb 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -293,7 +293,6 @@ // --- Cold, emotionless machines. --- else if(isobj(M)) jobname = "Machine" - voice = capitalize(voice) // --- Unidentifiable mob --- else @@ -597,4 +596,4 @@ /obj/item/device/radio/off // Station bounced radios, their only difference is spawning with the speakers off, this was made to help the lag. listening = 0 // And it's nice to have a subtype too for future features. - dog_fashion = /datum/dog_fashion/back \ No newline at end of file + dog_fashion = /datum/dog_fashion/back diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 7c7319363d..73d92a696c 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -1,33 +1,33 @@ - -/* -CONTAINS: -T-RAY -DETECTIVE SCANNER -HEALTH ANALYZER -GAS ANALYZER -MASS SPECTROMETER - -*/ -/obj/item/device/t_scanner - name = "\improper T-ray scanner" - desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." - icon_state = "t-ray0" - var/on = 0 - slot_flags = SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - item_state = "electronic" - materials = list(MAT_METAL=150) - origin_tech = "magnets=1;engineering=1" - -/obj/item/device/t_scanner/attack_self(mob/user) - - on = !on - icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" - - if(on) - START_PROCESSING(SSobj, src) - -/obj/item/device/t_scanner/proc/flick_sonar(obj/pipe) + +/* +CONTAINS: +T-RAY +DETECTIVE SCANNER +HEALTH ANALYZER +GAS ANALYZER +MASS SPECTROMETER + +*/ +/obj/item/device/t_scanner + name = "\improper T-ray scanner" + desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + icon_state = "t-ray0" + var/on = 0 + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + item_state = "electronic" + materials = list(MAT_METAL=150) + origin_tech = "magnets=1;engineering=1" + +/obj/item/device/t_scanner/attack_self(mob/user) + + on = !on + icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" + + if(on) + START_PROCESSING(SSobj, src) + +/obj/item/device/t_scanner/proc/flick_sonar(obj/pipe) if(ismob(loc)) var/mob/M = loc var/image/I = new(loc = get_turf(pipe)) @@ -36,386 +36,381 @@ MASS SPECTROMETER I.appearance = MA if(M.client) flick_overlay(I, list(M.client), 8) - -/obj/item/device/t_scanner/process() - if(!on) - STOP_PROCESSING(SSobj, src) - return null - scan() - -/obj/item/device/t_scanner/proc/scan() - - for(var/turf/T in range(2, src.loc) ) - for(var/obj/O in T.contents) - - if(O.level != 1) - continue - - if(O.invisibility == INVISIBILITY_MAXIMUM) + +/obj/item/device/t_scanner/process() + if(!on) + STOP_PROCESSING(SSobj, src) + return null + scan() + +/obj/item/device/t_scanner/proc/scan() + + for(var/turf/T in range(2, src.loc) ) + for(var/obj/O in T.contents) + + if(O.level != 1) + continue + + if(O.invisibility == INVISIBILITY_MAXIMUM) flick_sonar(O) - -/obj/item/device/healthanalyzer - name = "health analyzer" - icon_state = "health" - item_state = "analyzer" - desc = "A hand-held body scanner able to distinguish vital signs of the subject." - flags = CONDUCT | NOBLUDGEON - slot_flags = SLOT_BELT - throwforce = 3 - w_class = WEIGHT_CLASS_TINY - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=200) - origin_tech = "magnets=1;biotech=1" - var/mode = 1 - var/scanmode = 0 - -/obj/item/device/healthanalyzer/attack_self(mob/user) - if(!scanmode) - to_chat(user, "You switch the health analyzer to scan chemical contents.") - scanmode = 1 - else - to_chat(user, "You switch the health analyzer to check physical health.") - scanmode = 0 - -/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user) - - // Clumsiness/brain damage check - if ((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) - to_chat(user, "You stupidly try to analyze the floor's vitals!") - user.visible_message("[user] has analyzed the floor's vitals!") - to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy") - to_chat(user, "Key: Suffocation/Toxin/Burn/Brute") - to_chat(user, "\tDamage specifics: 0-0-0-0") - to_chat(user, "Body temperature: ???") - return - - user.visible_message("[user] has analyzed [M]'s vitals.") - - if(scanmode == 0) - healthscan(user, M, mode) - else if(scanmode == 1) - chemscan(user, M) - - add_fingerprint(user) - - -// Used by the PDA medical scanner too -/proc/healthscan(mob/living/user, mob/living/M, mode = 1) - if(user.incapacitated() || user.eye_blind) - return - //Damage specifics - var/oxy_loss = M.getOxyLoss() - var/tox_loss = M.getToxLoss() - var/fire_loss = M.getFireLoss() - var/brute_loss = M.getBruteLoss() - var/mob_status = (M.stat > 1 ? "Deceased" : "[round(M.health/M.maxHealth,0.01)*100] % healthy") - - if(M.status_flags & FAKEDEATH) - mob_status = "Deceased" - oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.undergoing_cardiac_arrest() && H.stat != DEAD) - to_chat(user, "Subject suffering from heart attack: Apply defibrillator immediately!") - - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(C.has_brain_worms()) - to_chat(user, "Foreign organism detected in subject's cranium. Recommended treatment: Dosage of sucrose solution and removal of object via surgery.") - - to_chat(user, "Analyzing results for [M]:\n\tOverall status: [mob_status]") - - // Damage descriptions - if(brute_loss > 10) - to_chat(user, "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.") - if(fire_loss > 10) - to_chat(user, "\t[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.") - if(oxy_loss > 10) - to_chat(user, "\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.") - if(tox_loss > 10) - to_chat(user, "\t[tox_loss > 50 ? "Critical" : "Dangerous"] amount of toxins detected.") - if(M.getStaminaLoss()) - to_chat(user, "\tSubject appears to be suffering from fatigue.") - if (M.getCloneLoss()) - to_chat(user, "\tSubject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.") - if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) - to_chat(user, "\tBloodstream analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.") - if (M.getBrainLoss() >= 100 || !M.getorgan(/obj/item/organ/brain)) - to_chat(user, "\tSubject brain function is non-existent.") - else if (M.getBrainLoss() >= 60) - to_chat(user, "\tSevere brain damage detected. Subject likely to have mental retardation.") - else if (M.getBrainLoss() >= 10) - to_chat(user, "\tBrain damage detected. Subject may have had a concussion.") - - // Organ damage report - if(iscarbon(M) && mode == 1) - var/mob/living/carbon/C = M - var/list/damaged = C.get_damaged_bodyparts(1,1) - if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) - to_chat(user, "\tDamage: Brute-Burn-Toxin-Suffocation\n\t\tSpecifics: [brute_loss]-[fire_loss]-[tox_loss]-[oxy_loss]") - for(var/obj/item/bodypart/org in damaged) - to_chat(user, "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]") - - // Species and body temperature - if(ishuman(M)) - var/mob/living/carbon/human/H = M - to_chat(user, "Species: [H.dna.species.name]") - to_chat(user, "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)") - - // Time of death - if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) - to_chat(user, "Time of Death: [M.tod]") - var/tdelta = round(world.time - M.timeofdeath) - if(tdelta < (DEFIB_TIME_LIMIT * 10)) - to_chat(user, "Subject died [tdelta / 10] seconds ago, defibrillation may be possible!") - - for(var/datum/disease/D in M.viruses) - if(!(D.visibility_flags & HIDDEN_SCANNER)) - to_chat(user, "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]") - - // Blood Level - if(M.has_dna()) - var/mob/living/carbon/C = M - var/blood_id = C.get_blood_id() - if(blood_id) - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(H.bleed_rate) - to_chat(user, "Subject is bleeding!") - var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) - var/blood_type = C.dna.blood_type - if(blood_id != "blood")//special blood substance - var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] - if(R) - blood_type = R.name - else - blood_type = blood_id - if(C.blood_volume <= BLOOD_VOLUME_SAFE && C.blood_volume > BLOOD_VOLUME_OKAY) - to_chat(user, "LOW blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") - else if(C.blood_volume <= BLOOD_VOLUME_OKAY) - to_chat(user, "CRITICAL blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") - else - to_chat(user, "Blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") - - var/cyberimp_detect - for(var/obj/item/organ/cyberimp/CI in C.internal_organs) - if(CI.status == ORGAN_ROBOTIC) - cyberimp_detect += "[C.name] is modified with a [CI.name].
    " - if(cyberimp_detect) - to_chat(user, "Detected cybernetic modifications:") - to_chat(user, "[cyberimp_detect]") - -/proc/chemscan(mob/living/user, mob/living/M) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.reagents) - if(H.reagents.reagent_list.len) - to_chat(user, "Subject contains the following reagents:") - for(var/datum/reagent/R in H.reagents.reagent_list) - to_chat(user, "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : ".
    "]") - else - to_chat(user, "Subject contains no reagents.") - if(H.reagents.addiction_list.len) - to_chat(user, "Subject is addicted to the following reagents:") - for(var/datum/reagent/R in H.reagents.addiction_list) - to_chat(user, "[R.name]") - else - to_chat(user, "Subject is not addicted to any reagents.") - -/obj/item/device/healthanalyzer/verb/toggle_mode() - set name = "Switch Verbosity" - set category = "Object" - - if(usr.stat || !usr.canmove || usr.restrained()) - return - - mode = !mode - switch (mode) - if(1) - to_chat(usr, "The scanner now shows specific limb damage.") - if(0) - to_chat(usr, "The scanner no longer shows limb damage.") - - -/obj/item/device/analyzer - desc = "A hand-held environmental scanner which reports current gas levels." - name = "analyzer" - icon_state = "atmos" - item_state = "analyzer" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT | NOBLUDGEON - slot_flags = SLOT_BELT - throwforce = 0 - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=30, MAT_GLASS=20) - origin_tech = "magnets=1;engineering=1" - -/obj/item/device/analyzer/attack_self(mob/user) - - add_fingerprint(user) - - if (user.stat || user.eye_blind) - return - - var/turf/location = user.loc - if(!istype(location)) - return - - var/datum/gas_mixture/environment = location.return_air() - - var/pressure = environment.return_pressure() - var/total_moles = environment.total_moles() - - to_chat(user, "Results:") - if(abs(pressure - ONE_ATMOSPHERE) < 10) - to_chat(user, "Pressure: [round(pressure,0.1)] kPa") - else - to_chat(user, "Pressure: [round(pressure,0.1)] kPa") - if(total_moles) - var/list/env_gases = environment.gases - - environment.assert_gases(arglist(GLOB.hardcoded_gases)) - var/o2_concentration = env_gases["o2"][MOLES]/total_moles - var/n2_concentration = env_gases["n2"][MOLES]/total_moles - var/co2_concentration = env_gases["co2"][MOLES]/total_moles - var/plasma_concentration = env_gases["plasma"][MOLES]/total_moles - environment.garbage_collect() - - if(abs(n2_concentration - N2STANDARD) < 20) - to_chat(user, "Nitrogen: [round(n2_concentration*100, 0.01)] %") - else - to_chat(user, "Nitrogen: [round(n2_concentration*100, 0.01)] %") - - if(abs(o2_concentration - O2STANDARD) < 2) - to_chat(user, "Oxygen: [round(o2_concentration*100, 0.01)] %") - else - to_chat(user, "Oxygen: [round(o2_concentration*100, 0.01)] %") - - if(co2_concentration > 0.01) - to_chat(user, "CO2: [round(co2_concentration*100, 0.01)] %") - else - to_chat(user, "CO2: [round(co2_concentration*100, 0.01)] %") - - if(plasma_concentration > 0.005) - to_chat(user, "Plasma: [round(plasma_concentration*100, 0.01)] %") - else - to_chat(user, "Plasma: [round(plasma_concentration*100, 0.01)] %") - - - for(var/id in env_gases) - if(id in GLOB.hardcoded_gases) - continue - var/gas_concentration = env_gases[id][MOLES]/total_moles - to_chat(user, "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %") - to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C") - - -/obj/item/device/mass_spectrometer - desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." - name = "mass-spectrometer" - icon_state = "spectrometer" - item_state = "analyzer" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - slot_flags = SLOT_BELT - container_type = OPENCONTAINER - throwforce = 0 - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=150, MAT_GLASS=100) - origin_tech = "magnets=2;biotech=1;plasmatech=2" - var/details = 0 - -/obj/item/device/mass_spectrometer/New() - ..() - create_reagents(5) - -/obj/item/device/mass_spectrometer/on_reagent_change() - if(reagents.total_volume) - icon_state = initial(icon_state) + "_s" - else - icon_state = initial(icon_state) - -/obj/item/device/mass_spectrometer/attack_self(mob/user) - if (user.stat || user.eye_blind) - return - if (!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return - if(reagents.total_volume) - var/list/blood_traces = list() - for(var/datum/reagent/R in reagents.reagent_list) - if(R.id != "blood") - reagents.clear_reagents() - to_chat(user, "The sample was contaminated! Please insert another sample.") - return - else - blood_traces = params2list(R.data["trace_chem"]) - break - var/dat = "Trace Chemicals Found:" - if(!blood_traces.len) - dat += "
    None" - else - for(var/R in blood_traces) - dat += "
    [GLOB.chemical_reagents_list[R]]" - if(details) - dat += " ([blood_traces[R]] units)" - dat += "
    " - to_chat(user, dat) - reagents.clear_reagents() - - -/obj/item/device/mass_spectrometer/adv - name = "advanced mass-spectrometer" - icon_state = "adv_spectrometer" - details = 1 - origin_tech = "magnets=4;biotech=3;plasmatech=3" - -/obj/item/device/slime_scanner - name = "slime scanner" - desc = "A device that analyzes a slime's internal composition and measures its stats." - icon_state = "adv_spectrometer" - item_state = "analyzer" - origin_tech = "biotech=2" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - throwforce = 0 - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=30, MAT_GLASS=20) - -/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user) - if(user.stat || user.eye_blind) - return - if (!isslime(M)) - to_chat(user, "This device can only scan slimes!") - return - var/mob/living/simple_animal/slime/T = M - to_chat(user, "Slime scan results:") - to_chat(user, "[T.colour] [T.is_adult ? "adult" : "baby"] slime") - to_chat(user, "Nutrition: [T.nutrition]/[T.get_max_nutrition()]") - if (T.nutrition < T.get_starve_nutrition()) - to_chat(user, "Warning: slime is starving!") - else if (T.nutrition < T.get_hunger_nutrition()) - to_chat(user, "Warning: slime is hungry") - to_chat(user, "Electric change strength: [T.powerlevel]") - to_chat(user, "Health: [round(T.health/T.maxHealth,0.01)*100]") - if (T.slime_mutation[4] == T.colour) - to_chat(user, "This slime does not evolve any further.") - else - if (T.slime_mutation[3] == T.slime_mutation[4]) - if (T.slime_mutation[2] == T.slime_mutation[1]) - to_chat(user, "Possible mutation: [T.slime_mutation[3]]") - to_chat(user, "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting") - else - to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)") - to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting") - else - to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]") - to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting") - if (T.cores > 1) - to_chat(user, "Anomalious slime core amount detected") - to_chat(user, "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]") + +/obj/item/device/healthanalyzer + name = "health analyzer" + icon_state = "health" + item_state = "analyzer" + desc = "A hand-held body scanner able to distinguish vital signs of the subject." + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + throwforce = 3 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=200) + origin_tech = "magnets=1;biotech=1" + var/mode = 1 + var/scanmode = 0 + +/obj/item/device/healthanalyzer/attack_self(mob/user) + if(!scanmode) + to_chat(user, "You switch the health analyzer to scan chemical contents.") + scanmode = 1 + else + to_chat(user, "You switch the health analyzer to check physical health.") + scanmode = 0 + +/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user) + + // Clumsiness/brain damage check + if ((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) + to_chat(user, "You stupidly try to analyze the floor's vitals!") + user.visible_message("[user] has analyzed the floor's vitals!") + to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy") + to_chat(user, "Key: Suffocation/Toxin/Burn/Brute") + to_chat(user, "\tDamage specifics: 0-0-0-0") + to_chat(user, "Body temperature: ???") + return + + user.visible_message("[user] has analyzed [M]'s vitals.") + + if(scanmode == 0) + healthscan(user, M, mode) + else if(scanmode == 1) + chemscan(user, M) + + add_fingerprint(user) + + +// Used by the PDA medical scanner too +/proc/healthscan(mob/living/user, mob/living/M, mode = 1) + if(user.incapacitated() || user.eye_blind) + return + //Damage specifics + var/oxy_loss = M.getOxyLoss() + var/tox_loss = M.getToxLoss() + var/fire_loss = M.getFireLoss() + var/brute_loss = M.getBruteLoss() + var/mob_status = (M.stat > 1 ? "Deceased" : "[round(M.health/M.maxHealth,0.01)*100] % healthy") + + if(M.status_flags & FAKEDEATH) + mob_status = "Deceased" + oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.undergoing_cardiac_arrest() && H.stat != DEAD) + to_chat(user, "Subject suffering from heart attack: Apply defibrillator immediately!") + + to_chat(user, "Analyzing results for [M]:\n\tOverall status: [mob_status]") + + // Damage descriptions + if(brute_loss > 10) + to_chat(user, "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.") + if(fire_loss > 10) + to_chat(user, "\t[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.") + if(oxy_loss > 10) + to_chat(user, "\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.") + if(tox_loss > 10) + to_chat(user, "\t[tox_loss > 50 ? "Critical" : "Dangerous"] amount of toxins detected.") + if(M.getStaminaLoss()) + to_chat(user, "\tSubject appears to be suffering from fatigue.") + if (M.getCloneLoss()) + to_chat(user, "\tSubject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.") + if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) + to_chat(user, "\tBloodstream analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.") + if (M.getBrainLoss() >= 100 || !M.getorgan(/obj/item/organ/brain)) + to_chat(user, "\tSubject brain function is non-existent.") + else if (M.getBrainLoss() >= 60) + to_chat(user, "\tSevere brain damage detected. Subject likely to have mental retardation.") + else if (M.getBrainLoss() >= 10) + to_chat(user, "\tBrain damage detected. Subject may have had a concussion.") + + // Organ damage report + if(iscarbon(M) && mode == 1) + var/mob/living/carbon/C = M + var/list/damaged = C.get_damaged_bodyparts(1,1) + if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) + to_chat(user, "\tDamage: Brute-Burn-Toxin-Suffocation\n\t\tSpecifics: [brute_loss]-[fire_loss]-[tox_loss]-[oxy_loss]") + for(var/obj/item/bodypart/org in damaged) + to_chat(user, "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]") + + // Species and body temperature + if(ishuman(M)) + var/mob/living/carbon/human/H = M + to_chat(user, "Species: [H.dna.species.name]") + to_chat(user, "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)") + + // Time of death + if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) + to_chat(user, "Time of Death: [M.tod]") + var/tdelta = round(world.time - M.timeofdeath) + if(tdelta < (DEFIB_TIME_LIMIT * 10)) + to_chat(user, "Subject died [tdelta / 10] seconds ago, defibrillation may be possible!") + + for(var/datum/disease/D in M.viruses) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + to_chat(user, "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]") + + // Blood Level + if(M.has_dna()) + var/mob/living/carbon/C = M + var/blood_id = C.get_blood_id() + if(blood_id) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(H.bleed_rate) + to_chat(user, "Subject is bleeding!") + var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) + var/blood_type = C.dna.blood_type + if(blood_id != "blood")//special blood substance + var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] + if(R) + blood_type = R.name + else + blood_type = blood_id + if(C.blood_volume <= BLOOD_VOLUME_SAFE && C.blood_volume > BLOOD_VOLUME_OKAY) + to_chat(user, "LOW blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + else if(C.blood_volume <= BLOOD_VOLUME_OKAY) + to_chat(user, "CRITICAL blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + else + to_chat(user, "Blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + + var/cyberimp_detect + for(var/obj/item/organ/cyberimp/CI in C.internal_organs) + if(CI.status == ORGAN_ROBOTIC) + cyberimp_detect += "[C.name] is modified with a [CI.name].
    " + if(cyberimp_detect) + to_chat(user, "Detected cybernetic modifications:") + to_chat(user, "[cyberimp_detect]") + +/proc/chemscan(mob/living/user, mob/living/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.reagents) + if(H.reagents.reagent_list.len) + to_chat(user, "Subject contains the following reagents:") + for(var/datum/reagent/R in H.reagents.reagent_list) + to_chat(user, "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : ".
    "]") + else + to_chat(user, "Subject contains no reagents.") + if(H.reagents.addiction_list.len) + to_chat(user, "Subject is addicted to the following reagents:") + for(var/datum/reagent/R in H.reagents.addiction_list) + to_chat(user, "[R.name]") + else + to_chat(user, "Subject is not addicted to any reagents.") + +/obj/item/device/healthanalyzer/verb/toggle_mode() + set name = "Switch Verbosity" + set category = "Object" + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + mode = !mode + switch (mode) + if(1) + to_chat(usr, "The scanner now shows specific limb damage.") + if(0) + to_chat(usr, "The scanner no longer shows limb damage.") + + +/obj/item/device/analyzer + desc = "A hand-held environmental scanner which reports current gas levels." + name = "analyzer" + icon_state = "atmos" + item_state = "analyzer" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=30, MAT_GLASS=20) + origin_tech = "magnets=1;engineering=1" + +/obj/item/device/analyzer/attack_self(mob/user) + + add_fingerprint(user) + + if (user.stat || user.eye_blind) + return + + var/turf/location = user.loc + if(!istype(location)) + return + + var/datum/gas_mixture/environment = location.return_air() + + var/pressure = environment.return_pressure() + var/total_moles = environment.total_moles() + + to_chat(user, "Results:") + if(abs(pressure - ONE_ATMOSPHERE) < 10) + to_chat(user, "Pressure: [round(pressure,0.1)] kPa") + else + to_chat(user, "Pressure: [round(pressure,0.1)] kPa") + if(total_moles) + var/list/env_gases = environment.gases + + environment.assert_gases(arglist(GLOB.hardcoded_gases)) + var/o2_concentration = env_gases["o2"][MOLES]/total_moles + var/n2_concentration = env_gases["n2"][MOLES]/total_moles + var/co2_concentration = env_gases["co2"][MOLES]/total_moles + var/plasma_concentration = env_gases["plasma"][MOLES]/total_moles + environment.garbage_collect() + + if(abs(n2_concentration - N2STANDARD) < 20) + to_chat(user, "Nitrogen: [round(n2_concentration*100, 0.01)] %") + else + to_chat(user, "Nitrogen: [round(n2_concentration*100, 0.01)] %") + + if(abs(o2_concentration - O2STANDARD) < 2) + to_chat(user, "Oxygen: [round(o2_concentration*100, 0.01)] %") + else + to_chat(user, "Oxygen: [round(o2_concentration*100, 0.01)] %") + + if(co2_concentration > 0.01) + to_chat(user, "CO2: [round(co2_concentration*100, 0.01)] %") + else + to_chat(user, "CO2: [round(co2_concentration*100, 0.01)] %") + + if(plasma_concentration > 0.005) + to_chat(user, "Plasma: [round(plasma_concentration*100, 0.01)] %") + else + to_chat(user, "Plasma: [round(plasma_concentration*100, 0.01)] %") + + + for(var/id in env_gases) + if(id in GLOB.hardcoded_gases) + continue + var/gas_concentration = env_gases[id][MOLES]/total_moles + to_chat(user, "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %") + to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C") + + +/obj/item/device/mass_spectrometer + desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." + name = "mass-spectrometer" + icon_state = "spectrometer" + item_state = "analyzer" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + slot_flags = SLOT_BELT + container_type = OPENCONTAINER + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=150, MAT_GLASS=100) + origin_tech = "magnets=2;biotech=1;plasmatech=2" + var/details = 0 + +/obj/item/device/mass_spectrometer/New() + ..() + create_reagents(5) + +/obj/item/device/mass_spectrometer/on_reagent_change() + if(reagents.total_volume) + icon_state = initial(icon_state) + "_s" + else + icon_state = initial(icon_state) + +/obj/item/device/mass_spectrometer/attack_self(mob/user) + if (user.stat || user.eye_blind) + return + if (!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return + if(reagents.total_volume) + var/list/blood_traces = list() + for(var/datum/reagent/R in reagents.reagent_list) + if(R.id != "blood") + reagents.clear_reagents() + to_chat(user, "The sample was contaminated! Please insert another sample.") + return + else + blood_traces = params2list(R.data["trace_chem"]) + break + var/dat = "Trace Chemicals Found:" + if(!blood_traces.len) + dat += "
    None" + else + for(var/R in blood_traces) + dat += "
    [GLOB.chemical_reagents_list[R]]" + if(details) + dat += " ([blood_traces[R]] units)" + dat += "
    " + to_chat(user, dat) + reagents.clear_reagents() + + +/obj/item/device/mass_spectrometer/adv + name = "advanced mass-spectrometer" + icon_state = "adv_spectrometer" + details = 1 + origin_tech = "magnets=4;biotech=3;plasmatech=3" + +/obj/item/device/slime_scanner + name = "slime scanner" + desc = "A device that analyzes a slime's internal composition and measures its stats." + icon_state = "adv_spectrometer" + item_state = "analyzer" + origin_tech = "biotech=2" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=30, MAT_GLASS=20) + +/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user) + if(user.stat || user.eye_blind) + return + if (!isslime(M)) + to_chat(user, "This device can only scan slimes!") + return + var/mob/living/simple_animal/slime/T = M + to_chat(user, "Slime scan results:") + to_chat(user, "[T.colour] [T.is_adult ? "adult" : "baby"] slime") + to_chat(user, "Nutrition: [T.nutrition]/[T.get_max_nutrition()]") + if (T.nutrition < T.get_starve_nutrition()) + to_chat(user, "Warning: slime is starving!") + else if (T.nutrition < T.get_hunger_nutrition()) + to_chat(user, "Warning: slime is hungry") + to_chat(user, "Electric change strength: [T.powerlevel]") + to_chat(user, "Health: [round(T.health/T.maxHealth,0.01)*100]") + if (T.slime_mutation[4] == T.colour) + to_chat(user, "This slime does not evolve any further.") + else + if (T.slime_mutation[3] == T.slime_mutation[4]) + if (T.slime_mutation[2] == T.slime_mutation[1]) + to_chat(user, "Possible mutation: [T.slime_mutation[3]]") + to_chat(user, "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting") + else + to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)") + to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting") + else + to_chat(user, "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]") + to_chat(user, "Genetic destability: [T.mutation_chance] % chance of mutation on splitting") + if (T.cores > 1) + to_chat(user, "Anomalious slime core amount detected") + to_chat(user, "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]") diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 7a9470d991..2843ef9a67 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -42,9 +42,7 @@ effective or pretty fucking useless. for(var/mob/living/carbon/human/M in urange(10, user, 1)) if(prob(50)) - M.Weaken(rand(10,20)) - if(prob(25)) - M.Stun(rand(5,10)) + M.Knockdown(rand(200,400)) to_chat(M, "You feel a tremendous, paralyzing wave flood your mind.") else @@ -90,7 +88,7 @@ effective or pretty fucking useless. spawn((wavelength+(intensity*4))*5) if(M) if(intensity >= 5) - M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(round(intensity/0.075), UNCONSCIOUS) M.rad_act(intensity*10) else to_chat(user, "The radioactive microlaser is still recharging.") @@ -233,7 +231,7 @@ effective or pretty fucking useless. var/range = 12 /obj/item/device/jammer/attack_self(mob/user) - to_chat(user,"You [active ? "deactivate" : "activate"] the [src]") + to_chat(user,"You [active ? "deactivate" : "activate"] the [src]") active = !active if(active) GLOB.active_jammers |= src @@ -241,4 +239,3 @@ effective or pretty fucking useless. GLOB.active_jammers -= src update_icon() - \ No newline at end of file diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index 279d8818d4..7a16520a03 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -23,7 +23,7 @@ /obj/item/latexballon/proc/burst() if (!air_contents || icon_state != "latexballon_blow") return - playsound(src, 'sound/weapons/Gunshot.ogg', 100, 1) + playsound(src, 'sound/weapons/gunshot.ogg', 100, 1) icon_state = "latexballon_bursted" item_state = "lgloves" if(isliving(loc)) diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index ccf4085191..5900237016 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -17,10 +17,9 @@ to_chat(H, "Your morale is increased by [user]'s banner!") H.adjustBruteLoss(-15) H.adjustFireLoss(-15) - H.AdjustStunned(-2) - H.AdjustWeakened(-2) - H.AdjustParalysis(-2) - + H.AdjustStun(-40) + H.AdjustKnockdown(-40) + H.AdjustUnconscious(-40) /obj/item/weapon/banner/red name = "red banner" diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 8cceb69b83..8d6c74a83c 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -1,511 +1,511 @@ -/********************************************************************** - Cyborg Spec Items -***********************************************************************/ -/obj/item/borg - icon = 'icons/mob/robot_items.dmi' - - -/obj/item/borg/stun - name = "electrically-charged arm" - icon_state = "elecarm" - var/charge_cost = 30 - -/obj/item/borg/stun/attack(mob/living/M, mob/living/user) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.check_shields(0, "[M]'s [name]", src, MELEE_ATTACK)) - playsound(M, 'sound/weapons/Genhit.ogg', 50, 1) - return FALSE - if(iscyborg(user)) - var/mob/living/silicon/robot/R = user - if(!R.cell.use(charge_cost)) - return - - user.do_attack_animation(M) - M.Weaken(5) - M.apply_effect(STUTTER, 5) - M.Stun(5) - - M.visible_message("[user] has prodded [M] with [src]!", \ - "[user] has prodded you with [src]!") - - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) - - add_logs(user, M, "stunned", src, "(INTENT: [uppertext(user.a_intent)])") - -/obj/item/borg/cyborghug - name = "Hugging Module" - icon_state = "hugmodule" - desc = "For when a someone really needs a hug." - var/mode = 0 //0 = Hugs 1 = "Hug" 2 = Shock 3 = CRUSH - var/ccooldown = 0 - var/scooldown = 0 - var/shockallowed = FALSE//Can it be a stunarm when emagged. Only PK borgs get this by default. - var/boop = FALSE - -/obj/item/borg/cyborghug/attack_self(mob/living/user) - if(iscyborg(user)) - var/mob/living/silicon/robot/P = user - if(P.emagged&&shockallowed == 1) - if(mode < 3) - mode++ - else - mode = 0 - else if(mode < 1) - mode++ - else - mode = 0 - switch(mode) - if(0) - to_chat(user, "Power reset. Hugs!") - if(1) - to_chat(user, "Power increased!") - if(2) - to_chat(user, "BZZT. Electrifying arms...") - if(3) - to_chat(user, "ERROR: ARM ACTUATORS OVERLOADED.") - -/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user) - if(M == user) - return - switch(mode) - if(0) - if(M.health >= 0) - if(user.zone_selected == "head") - user.visible_message("[user] playfully boops [M] on the head!", \ - "You playfully boop [M] on the head!") - user.do_attack_animation(M, ATTACK_EFFECT_BOOP) - playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) - else if(ishuman(M)) - if(M.lying) - user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", \ - "You shake [M] trying to get [M.p_them()] up!") - else - user.visible_message("[user] hugs [M] to make [M.p_them()] feel better!", \ - "You hug [M] to make [M.p_them()] feel better!") - if(M.resting) - M.resting = FALSE - M.update_canmove() - else - user.visible_message("[user] pets [M]!", \ - "You pet [M]!") - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - if(1) - if(M.health >= 0) - if(ishuman(M)) - if(M.lying) - user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", \ - "You shake [M] trying to get [M.p_them()] up!") - else if(user.zone_selected == "head") - user.visible_message("[user] bops [M] on the head!", \ - "You bop [M] on the head!") - user.do_attack_animation(M, ATTACK_EFFECT_PUNCH) - else - user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \ - "You hug [M] firmly to make [M.p_them()] feel better! [M] looks uncomfortable...") - if(M.resting) - M.resting = FALSE - M.update_canmove() - else - user.visible_message("[user] bops [M] on the head!", \ - "You bop [M] on the head!") - playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) - if(2) +/********************************************************************** + Cyborg Spec Items +***********************************************************************/ +/obj/item/borg + icon = 'icons/mob/robot_items.dmi' + + +/obj/item/borg/stun + name = "electrically-charged arm" + icon_state = "elecarm" + var/charge_cost = 30 + +/obj/item/borg/stun/attack(mob/living/M, mob/living/user) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.check_shields(src, 0, "[M]'s [name]", MELEE_ATTACK)) + playsound(M, 'sound/weapons/genhit.ogg', 50, 1) + return FALSE + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell.use(charge_cost)) + return + + user.do_attack_animation(M) + M.Knockdown(100) + M.apply_effect(STUTTER, 5) + + M.visible_message("[user] has prodded [M] with [src]!", \ + "[user] has prodded you with [src]!") + + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) + + add_logs(user, M, "stunned", src, "(INTENT: [uppertext(user.a_intent)])") + +/obj/item/borg/cyborghug + name = "Hugging Module" + icon_state = "hugmodule" + desc = "For when a someone really needs a hug." + var/mode = 0 //0 = Hugs 1 = "Hug" 2 = Shock 3 = CRUSH + var/ccooldown = 0 + var/scooldown = 0 + var/shockallowed = FALSE//Can it be a stunarm when emagged. Only PK borgs get this by default. + var/boop = FALSE + +/obj/item/borg/cyborghug/attack_self(mob/living/user) + if(iscyborg(user)) + var/mob/living/silicon/robot/P = user + if(P.emagged&&shockallowed == 1) + if(mode < 3) + mode++ + else + mode = 0 + else if(mode < 1) + mode++ + else + mode = 0 + switch(mode) + if(0) + to_chat(user, "Power reset. Hugs!") + if(1) + to_chat(user, "Power increased!") + if(2) + to_chat(user, "BZZT. Electrifying arms...") + if(3) + to_chat(user, "ERROR: ARM ACTUATORS OVERLOADED.") + +/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user) + if(M == user) + return + switch(mode) + if(0) + if(M.health >= 0) + if(user.zone_selected == "head") + user.visible_message("[user] playfully boops [M] on the head!", \ + "You playfully boop [M] on the head!") + user.do_attack_animation(M, ATTACK_EFFECT_BOOP) + playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) + else if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", \ + "You shake [M] trying to get [M.p_them()] up!") + else + user.visible_message("[user] hugs [M] to make [M.p_them()] feel better!", \ + "You hug [M] to make [M.p_them()] feel better!") + if(M.resting) + M.resting = FALSE + M.update_canmove() + else + user.visible_message("[user] pets [M]!", \ + "You pet [M]!") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if(1) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", \ + "You shake [M] trying to get [M.p_them()] up!") + else if(user.zone_selected == "head") + user.visible_message("[user] bops [M] on the head!", \ + "You bop [M] on the head!") + user.do_attack_animation(M, ATTACK_EFFECT_PUNCH) + else + user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \ + "You hug [M] firmly to make [M.p_them()] feel better! [M] looks uncomfortable...") + if(M.resting) + M.resting = FALSE + M.update_canmove() + else + user.visible_message("[user] bops [M] on the head!", \ + "You bop [M] on the head!") + playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) + if(2) if(scooldown < world.time) - if(M.health >= 0) - if(ishuman(M)||ismonkey(M)) - M.electrocute_act(5, "[user]", safety = 1) - user.visible_message("[user] electrocutes [M] with their touch!", \ - "You electrocute [M] with your touch!") - M.update_canmove() - else - if(!iscyborg(M)) - M.adjustFireLoss(10) - user.visible_message("[user] shocks [M]!", \ - "You shock [M]!") - else - user.visible_message("[user] shocks [M]. It does not seem to have an effect", \ - "You shock [M] to no effect.") - playsound(loc, 'sound/effects/sparks2.ogg', 50, 1, -1) - user.cell.charge -= 500 + if(M.health >= 0) + if(ishuman(M)||ismonkey(M)) + M.electrocute_act(5, "[user]", safety = 1) + user.visible_message("[user] electrocutes [M] with their touch!", \ + "You electrocute [M] with your touch!") + M.update_canmove() + else + if(!iscyborg(M)) + M.adjustFireLoss(10) + user.visible_message("[user] shocks [M]!", \ + "You shock [M]!") + else + user.visible_message("[user] shocks [M]. It does not seem to have an effect", \ + "You shock [M] to no effect.") + playsound(loc, 'sound/effects/sparks2.ogg', 50, 1, -1) + user.cell.charge -= 500 scooldown = world.time + 20 - if(3) + if(3) if(ccooldown < world.time) - if(M.health >= 0) - if(ishuman(M)) - user.visible_message("[user] crushes [M] in their grip!", \ - "You crush [M] in your grip!") - else - user.visible_message("[user] crushes [M]!", \ - "You crush [M]!") - playsound(loc, 'sound/weapons/smash.ogg', 50, 1, -1) - M.adjustBruteLoss(15) - user.cell.charge -= 300 + if(M.health >= 0) + if(ishuman(M)) + user.visible_message("[user] crushes [M] in their grip!", \ + "You crush [M] in your grip!") + else + user.visible_message("[user] crushes [M]!", \ + "You crush [M]!") + playsound(loc, 'sound/weapons/smash.ogg', 50, 1, -1) + M.adjustBruteLoss(15) + user.cell.charge -= 300 ccooldown = world.time + 10 - -/obj/item/borg/cyborghug/peacekeeper - shockallowed = TRUE - -/obj/item/borg/cyborghug/medical - boop = TRUE - -/obj/item/borg/charger - name = "power connector" - icon_state = "charger_draw" - flags = NOBLUDGEON - var/mode = "draw" - var/list/charge_machines = list(/obj/machinery/cell_charger, /obj/machinery/recharger, - /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port) - var/list/charge_items = list(/obj/item/weapon/stock_parts/cell, /obj/item/weapon/gun/energy, - ) - -/obj/item/borg/charger/update_icon() - ..() - icon_state = "charger_[mode]" - -/obj/item/borg/charger/attack_self(mob/user) - if(mode == "draw") - mode = "charge" - else - mode = "draw" - to_chat(user, "You toggle [src] to \"[mode]\" mode.") - update_icon() - -/obj/item/borg/charger/afterattack(obj/item/target, mob/living/silicon/robot/user, proximity_flag) - if(!proximity_flag || !iscyborg(user)) - return - if(mode == "draw") - if(is_type_in_list(target, charge_machines)) - var/obj/machinery/M = target - if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) - to_chat(user, "[M] is unpowered!") - return - - to_chat(user, "You connect to [M]'s power line...") - while(do_after(user, 15, target = M, progress = 0)) - if(!user || !user.cell || mode != "draw") - return - - if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) - break - - if(!user.cell.give(150)) - break - - M.use_power(200) - - to_chat(user, "You stop charging youself.") - - else if(is_type_in_list(target, charge_items)) - var/obj/item/weapon/stock_parts/cell/cell = target - if(!istype(cell)) - cell = locate(/obj/item/weapon/stock_parts/cell) in target - if(!cell) - to_chat(user, "[target] has no power cell!") - return - - if(istype(target, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = target - if(!E.can_charge) - to_chat(user, "[target] has no power port!") - return - - if(!cell.charge) - to_chat(user, "[target] has no power!") - - - to_chat(user, "You connect to [target]'s power port...") - - while(do_after(user, 15, target = target, progress = 0)) - if(!user || !user.cell || mode != "draw") - return - - if(!cell || !target) - return - - if(cell != target && cell.loc != target) - return - - var/draw = min(cell.charge, cell.chargerate*0.5, user.cell.maxcharge-user.cell.charge) - if(!cell.use(draw)) - break - if(!user.cell.give(draw)) - break - target.update_icon() - - to_chat(user, "You stop charging youself.") - - else if(is_type_in_list(target, charge_items)) - var/obj/item/weapon/stock_parts/cell/cell = target - if(!istype(cell)) - cell = locate(/obj/item/weapon/stock_parts/cell) in target - if(!cell) - to_chat(user, "[target] has no power cell!") - return - - if(istype(target, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = target - if(!E.can_charge) - to_chat(user, "[target] has no power port!") - return - - if(cell.charge >= cell.maxcharge) - to_chat(user, "[target] is already charged!") - - to_chat(user, "You connect to [target]'s power port...") - - while(do_after(user, 15, target = target, progress = 0)) - if(!user || !user.cell || mode != "charge") - return - - if(!cell || !target) - return - - if(cell != target && cell.loc != target) - return - - var/draw = min(user.cell.charge, cell.chargerate*0.5, cell.maxcharge-cell.charge) - if(!user.cell.use(draw)) - break - if(!cell.give(draw)) - break - target.update_icon() - - to_chat(user, "You stop charging [target].") - -/obj/item/device/harmalarm - name = "Sonic Harm Prevention Tool" - desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH" - icon_state = "megaphone" - var/cooldown = 0 - var/emagged = FALSE - -/obj/item/device/harmalarm/emag_act(mob/user) - emagged = !emagged - if(emagged) - to_chat(user, "You short out the safeties on the [src]!") - else - to_chat(user, "You reset the safeties on the [src]!") - -/obj/item/device/harmalarm/attack_self(mob/user) - var/safety = !emagged - if(cooldown > world.time) - to_chat(user, "The device is still recharging!") - return - - if(iscyborg(user)) - var/mob/living/silicon/robot/R = user - if(R.cell.charge < 1200) - to_chat(user, "You don't have enough charge to do this!") - return - R.cell.charge -= 1000 - if(R.emagged) - safety = FALSE - - if(safety == TRUE) - user.visible_message("[user] blares out a near-deafening siren from its speakers!", \ - "The siren pierces your hearing and confuses you!", \ - "The siren pierces your hearing!") - for(var/mob/living/carbon/M in get_hearers_in_view(9, user)) - if(M.get_ear_protection() == FALSE) - M.confused += 6 - audible_message("HUMAN HARM") - playsound(get_turf(src), 'sound/AI/harmalarm.ogg', 70, 3) - cooldown = world.time + 200 - log_game("[user.ckey]([user]) used a Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") - if(iscyborg(user)) - var/mob/living/silicon/robot/R = user - to_chat(R.connected_ai, "
    NOTICE - Peacekeeping 'HARM ALARM' used by: [user]
    ") - - return - - if(safety == FALSE) - user.audible_message("BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT") - for(var/mob/living/carbon/C in get_hearers_in_view(9, user)) - var/bang_effect = C.soundbang_act(2, 0, 0, 5) - switch(bang_effect) - if(1) - C.confused += 5 - C.stuttering += 10 - C.Jitter(10) - if(2) - C.Weaken(2) - C.confused += 10 - C.stuttering += 15 - C.Jitter(25) - playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 130, 3) - cooldown = world.time + 600 - log_game("[user.ckey]([user]) used an emagged Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") - -/obj/item/borg/lollipop - name = "lollipop fabricator" - desc = "Reward good humans with this. Toggle in-module to switch between dispensing and high velocity ejection modes." - icon_state = "lollipop" - var/candy = 30 - var/candymax = 30 - var/charge_delay = 10 - var/charging = 0 - var/mode = 1 - var/firedelay = 0 - var/hitspeed = 2 - var/hitdamage = 0 - var/emaggedhitdamage = 3 - -/obj/item/borg/lollipop/equipped() - check_amount() - -/obj/item/borg/lollipop/dropped() - check_amount() - -/obj/item/borg/lollipop/proc/check_amount() //Doesn't even use processing ticks. - if(charging) - return - if(candy < candymax) - addtimer(CALLBACK(src, .proc/charge_lollipops), charge_delay) - charging = TRUE - -/obj/item/borg/lollipop/proc/charge_lollipops() - candy++ - charging = FALSE - check_amount() - -/obj/item/borg/lollipop/proc/dispense(atom/A, mob/user) - if(candy <= 0) - to_chat(user, "No lollipops left in storage!") - return FALSE - var/turf/T = get_turf(A) - if(!T || !istype(T) || !isopenturf(T)) - return FALSE - if(isobj(A)) - var/obj/O = A - if(O.density) - return FALSE - new /obj/item/weapon/reagent_containers/food/snacks/lollipop(T) - candy-- - check_amount() - to_chat(user, "Dispensing lollipop...") - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - return TRUE - -/obj/item/borg/lollipop/proc/shootL(atom/target, mob/living/user, params) - if(candy <= 0) - to_chat(user, "Not enough lollipops left!") - return FALSE - candy-- - var/obj/item/ammo_casing/caseless/lollipop/A = new /obj/item/ammo_casing/caseless/lollipop(src) - A.BB.damage = hitdamage - if(hitdamage) - A.BB.nodamage = FALSE - A.BB.speed = 0.5 - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - A.fire_casing(target, user, params, 0, 0, null, 0) - user.visible_message("[user] blasts a flying lollipop at [target]!") - check_amount() - -/obj/item/borg/lollipop/proc/shootG(atom/target, mob/living/user, params) //Most certainly a good idea. - if(candy <= 0) - to_chat(user, "Not enough gumballs left!") - return FALSE - candy-- - var/obj/item/ammo_casing/caseless/gumball/A = new /obj/item/ammo_casing/caseless/gumball(src) - A.BB.damage = hitdamage - if(hitdamage) - A.BB.nodamage = FALSE - A.BB.speed = 0.5 - A.BB.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) - playsound(src.loc, 'sound/weapons/bulletflyby3.ogg', 50, 1) - A.fire_casing(target, user, params, 0, 0, null, 0) - user.visible_message("[user] shoots a high-velocity gumball at [target]!") - check_amount() - -/obj/item/borg/lollipop/afterattack(atom/target, mob/living/user, proximity, click_params) - check_amount() - if(iscyborg(user)) - var/mob/living/silicon/robot/R = user - if(!R.cell.use(12)) - to_chat(user, "Not enough power.") - return FALSE - if(R.emagged) - hitdamage = emaggedhitdamage - switch(mode) - if(1) - if(!proximity) - return FALSE - dispense(target, user) - if(2) - shootL(target, user, click_params) - if(3) - shootG(target, user, click_params) - hitdamage = initial(hitdamage) - -/obj/item/borg/lollipop/attack_self(mob/living/user) - switch(mode) - if(1) - mode++ - to_chat(user, "Module is now throwing lollipops.") - if(2) - mode++ - to_chat(user, "Module is now blasting gumballs.") - if(3) - mode = 1 - to_chat(user, "Module is now dispensing lollipops.") - ..() - -/obj/item/ammo_casing/caseless/gumball - name = "Gumball" - desc = "Why are you seeing this?!" - projectile_type = /obj/item/projectile/bullet/reusable/gumball - click_cooldown_override = 2 - - -/obj/item/projectile/bullet/reusable/gumball - name = "gumball" - desc = "Oh noes! A fast-moving gumball!" - icon_state = "gumball" - ammo_type = /obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg - nodamage = TRUE - -/obj/item/projectile/bullet/reusable/gumball/handle_drop() - if(!dropped) - var/turf/T = get_turf(src) - var/obj/item/weapon/reagent_containers/food/snacks/gumball/S = new ammo_type(T) - S.color = color - dropped = TRUE - -/obj/item/ammo_casing/caseless/lollipop //NEEDS RANDOMIZED COLOR LOGIC. - name = "Lollipop" - desc = "Why are you seeing this?!" - projectile_type = /obj/item/projectile/bullet/reusable/lollipop - click_cooldown_override = 2 - -/obj/item/projectile/bullet/reusable/lollipop - name = "lollipop" - desc = "Oh noes! A fast-moving lollipop!" - icon_state = "lollipop_1" - ammo_type = /obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg - var/color2 = rgb(0, 0, 0) - nodamage = TRUE - -/obj/item/projectile/bullet/reusable/lollipop/New() - var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(src) - color2 = S.headcolor + +/obj/item/borg/cyborghug/peacekeeper + shockallowed = TRUE + +/obj/item/borg/cyborghug/medical + boop = TRUE + +/obj/item/borg/charger + name = "power connector" + icon_state = "charger_draw" + flags = NOBLUDGEON + var/mode = "draw" + var/static/list/charge_machines = typecacheof(list(/obj/machinery/cell_charger, /obj/machinery/recharger, /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port)) + var/static/list/charge_items = typecacheof(list(/obj/item/weapon/stock_parts/cell, /obj/item/weapon/gun/energy)) + +/obj/item/borg/charger/Initialize() + . = ..() + +/obj/item/borg/charger/update_icon() + ..() + icon_state = "charger_[mode]" + +/obj/item/borg/charger/attack_self(mob/user) + if(mode == "draw") + mode = "charge" + else + mode = "draw" + to_chat(user, "You toggle [src] to \"[mode]\" mode.") + update_icon() + +/obj/item/borg/charger/afterattack(obj/item/target, mob/living/silicon/robot/user, proximity_flag) + if(!proximity_flag || !iscyborg(user)) + return + if(mode == "draw") + if(is_type_in_list(target, charge_machines)) + var/obj/machinery/M = target + if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) + to_chat(user, "[M] is unpowered!") + return + + to_chat(user, "You connect to [M]'s power line...") + while(do_after(user, 15, target = M, progress = 0)) + if(!user || !user.cell || mode != "draw") + return + + if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) + break + + if(!user.cell.give(150)) + break + + M.use_power(200) + + to_chat(user, "You stop charging youself.") + + else if(is_type_in_list(target, charge_items)) + var/obj/item/weapon/stock_parts/cell/cell = target + if(!istype(cell)) + cell = locate(/obj/item/weapon/stock_parts/cell) in target + if(!cell) + to_chat(user, "[target] has no power cell!") + return + + if(istype(target, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = target + if(!E.can_charge) + to_chat(user, "[target] has no power port!") + return + + if(!cell.charge) + to_chat(user, "[target] has no power!") + + + to_chat(user, "You connect to [target]'s power port...") + + while(do_after(user, 15, target = target, progress = 0)) + if(!user || !user.cell || mode != "draw") + return + + if(!cell || !target) + return + + if(cell != target && cell.loc != target) + return + + var/draw = min(cell.charge, cell.chargerate*0.5, user.cell.maxcharge-user.cell.charge) + if(!cell.use(draw)) + break + if(!user.cell.give(draw)) + break + target.update_icon() + + to_chat(user, "You stop charging youself.") + + else if(is_type_in_list(target, charge_items)) + var/obj/item/weapon/stock_parts/cell/cell = target + if(!istype(cell)) + cell = locate(/obj/item/weapon/stock_parts/cell) in target + if(!cell) + to_chat(user, "[target] has no power cell!") + return + + if(istype(target, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = target + if(!E.can_charge) + to_chat(user, "[target] has no power port!") + return + + if(cell.charge >= cell.maxcharge) + to_chat(user, "[target] is already charged!") + + to_chat(user, "You connect to [target]'s power port...") + + while(do_after(user, 15, target = target, progress = 0)) + if(!user || !user.cell || mode != "charge") + return + + if(!cell || !target) + return + + if(cell != target && cell.loc != target) + return + + var/draw = min(user.cell.charge, cell.chargerate*0.5, cell.maxcharge-cell.charge) + if(!user.cell.use(draw)) + break + if(!cell.give(draw)) + break + target.update_icon() + + to_chat(user, "You stop charging [target].") + +/obj/item/device/harmalarm + name = "Sonic Harm Prevention Tool" + desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH" + icon_state = "megaphone" + var/cooldown = 0 + var/emagged = FALSE + +/obj/item/device/harmalarm/emag_act(mob/user) + emagged = !emagged + if(emagged) + to_chat(user, "You short out the safeties on the [src]!") + else + to_chat(user, "You reset the safeties on the [src]!") + +/obj/item/device/harmalarm/attack_self(mob/user) + var/safety = !emagged + if(cooldown > world.time) + to_chat(user, "The device is still recharging!") + return + + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(R.cell.charge < 1200) + to_chat(user, "You don't have enough charge to do this!") + return + R.cell.charge -= 1000 + if(R.emagged) + safety = FALSE + + if(safety == TRUE) + user.visible_message("[user] blares out a near-deafening siren from its speakers!", \ + "The siren pierces your hearing and confuses you!", \ + "The siren pierces your hearing!") + for(var/mob/living/carbon/M in get_hearers_in_view(9, user)) + if(M.get_ear_protection() == FALSE) + M.confused += 6 + audible_message("HUMAN HARM") + playsound(get_turf(src), 'sound/ai/harmalarm.ogg', 70, 3) + cooldown = world.time + 200 + log_game("[user.ckey]([user]) used a Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + to_chat(R.connected_ai, "
    NOTICE - Peacekeeping 'HARM ALARM' used by: [user]
    ") + + return + + if(safety == FALSE) + user.audible_message("BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT") + for(var/mob/living/carbon/C in get_hearers_in_view(9, user)) + var/bang_effect = C.soundbang_act(2, 0, 0, 5) + switch(bang_effect) + if(1) + C.confused += 5 + C.stuttering += 10 + C.Jitter(10) + if(2) + C.Knockdown(40) + C.confused += 10 + C.stuttering += 15 + C.Jitter(25) + playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 130, 3) + cooldown = world.time + 600 + log_game("[user.ckey]([user]) used an emagged Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") + +/obj/item/borg/lollipop + name = "lollipop fabricator" + desc = "Reward good humans with this. Toggle in-module to switch between dispensing and high velocity ejection modes." + icon_state = "lollipop" + var/candy = 30 + var/candymax = 30 + var/charge_delay = 10 + var/charging = 0 + var/mode = 1 + var/firedelay = 0 + var/hitspeed = 2 + var/hitdamage = 0 + var/emaggedhitdamage = 3 + +/obj/item/borg/lollipop/equipped() + check_amount() + +/obj/item/borg/lollipop/dropped() + check_amount() + +/obj/item/borg/lollipop/proc/check_amount() //Doesn't even use processing ticks. + if(charging) + return + if(candy < candymax) + addtimer(CALLBACK(src, .proc/charge_lollipops), charge_delay) + charging = TRUE + +/obj/item/borg/lollipop/proc/charge_lollipops() + candy++ + charging = FALSE + check_amount() + +/obj/item/borg/lollipop/proc/dispense(atom/A, mob/user) + if(candy <= 0) + to_chat(user, "No lollipops left in storage!") + return FALSE + var/turf/T = get_turf(A) + if(!T || !istype(T) || !isopenturf(T)) + return FALSE + if(isobj(A)) + var/obj/O = A + if(O.density) + return FALSE + new /obj/item/weapon/reagent_containers/food/snacks/lollipop(T) + candy-- + check_amount() + to_chat(user, "Dispensing lollipop...") + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + return TRUE + +/obj/item/borg/lollipop/proc/shootL(atom/target, mob/living/user, params) + if(candy <= 0) + to_chat(user, "Not enough lollipops left!") + return FALSE + candy-- + var/obj/item/ammo_casing/caseless/lollipop/A = new /obj/item/ammo_casing/caseless/lollipop(src) + A.BB.damage = hitdamage + if(hitdamage) + A.BB.nodamage = FALSE + A.BB.speed = 0.5 + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + A.fire_casing(target, user, params, 0, 0, null, 0) + user.visible_message("[user] blasts a flying lollipop at [target]!") + check_amount() + +/obj/item/borg/lollipop/proc/shootG(atom/target, mob/living/user, params) //Most certainly a good idea. + if(candy <= 0) + to_chat(user, "Not enough gumballs left!") + return FALSE + candy-- + var/obj/item/ammo_casing/caseless/gumball/A = new /obj/item/ammo_casing/caseless/gumball(src) + A.BB.damage = hitdamage + if(hitdamage) + A.BB.nodamage = FALSE + A.BB.speed = 0.5 + A.BB.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) + playsound(src.loc, 'sound/weapons/bulletflyby3.ogg', 50, 1) + A.fire_casing(target, user, params, 0, 0, null, 0) + user.visible_message("[user] shoots a high-velocity gumball at [target]!") + check_amount() + +/obj/item/borg/lollipop/afterattack(atom/target, mob/living/user, proximity, click_params) + check_amount() + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell.use(12)) + to_chat(user, "Not enough power.") + return FALSE + if(R.emagged) + hitdamage = emaggedhitdamage + switch(mode) + if(1) + if(!proximity) + return FALSE + dispense(target, user) + if(2) + shootL(target, user, click_params) + if(3) + shootG(target, user, click_params) + hitdamage = initial(hitdamage) + +/obj/item/borg/lollipop/attack_self(mob/living/user) + switch(mode) + if(1) + mode++ + to_chat(user, "Module is now throwing lollipops.") + if(2) + mode++ + to_chat(user, "Module is now blasting gumballs.") + if(3) + mode = 1 + to_chat(user, "Module is now dispensing lollipops.") + ..() + +/obj/item/ammo_casing/caseless/gumball + name = "Gumball" + desc = "Why are you seeing this?!" + projectile_type = /obj/item/projectile/bullet/reusable/gumball + click_cooldown_override = 2 + + +/obj/item/projectile/bullet/reusable/gumball + name = "gumball" + desc = "Oh noes! A fast-moving gumball!" + icon_state = "gumball" + ammo_type = /obj/item/weapon/reagent_containers/food/snacks/gumball/cyborg + nodamage = TRUE + +/obj/item/projectile/bullet/reusable/gumball/handle_drop() + if(!dropped) + var/turf/T = get_turf(src) + var/obj/item/weapon/reagent_containers/food/snacks/gumball/S = new ammo_type(T) + S.color = color + dropped = TRUE + +/obj/item/ammo_casing/caseless/lollipop //NEEDS RANDOMIZED COLOR LOGIC. + name = "Lollipop" + desc = "Why are you seeing this?!" + projectile_type = /obj/item/projectile/bullet/reusable/lollipop + click_cooldown_override = 2 + +/obj/item/projectile/bullet/reusable/lollipop + name = "lollipop" + desc = "Oh noes! A fast-moving lollipop!" + icon_state = "lollipop_1" + ammo_type = /obj/item/weapon/reagent_containers/food/snacks/lollipop/cyborg + var/color2 = rgb(0, 0, 0) + nodamage = TRUE + +/obj/item/projectile/bullet/reusable/lollipop/New() + var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(src) + color2 = S.headcolor var/mutable_appearance/head = mutable_appearance('icons/obj/projectiles.dmi', "lollipop_2") - head.color = color2 - add_overlay(head) - -/obj/item/projectile/bullet/reusable/lollipop/handle_drop() - if(!dropped) - var/turf/T = get_turf(src) - var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(T) - S.change_head_color(color2) - dropped = TRUE - + head.color = color2 + add_overlay(head) + +/obj/item/projectile/bullet/reusable/lollipop/handle_drop() + if(!dropped) + var/turf/T = get_turf(src) + var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(T) + S.change_head_color(color2) + dropped = TRUE + #define PKBORG_DAMPEN_CYCLE_DELAY 20 //Peacekeeper Cyborg Projectile Dampenening Field /obj/item/borg/projectile_dampen name = "Hyperkinetic Dampening projector" - desc = "A device that projects a dampening field that weakens kinetic energy above a certain threshold. Projects a field that drains power per second \ + desc = "A device that projects a dampening field that weakenss kinetic energy above a certain threshold. Projects a field that drains power per second \ while active, that will weaken and slow damaging projectiles inside its field. Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces." icon = 'icons/obj/device.dmi' icon_state = "shield" @@ -630,60 +630,60 @@ P.speed *= (1/projectile_speed_coefficient) P.cut_overlay(projectile_effect) -/********************************************************************** - HUD/SIGHT things -***********************************************************************/ -/obj/item/borg/sight - var/sight_mode = null - - -/obj/item/borg/sight/xray - name = "\proper x-ray Vision" - icon = 'icons/obj/decals.dmi' - icon_state = "securearea" - sight_mode = BORGXRAY - -/obj/item/borg/sight/xray/truesight_lens - name = "truesight lens" - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "truesight_lens" - -/obj/item/borg/sight/thermal - name = "\proper thermal vision" - sight_mode = BORGTHERM - icon_state = "thermal" - - -/obj/item/borg/sight/meson - name = "\proper meson vision" - sight_mode = BORGMESON - icon_state = "meson" - -/obj/item/borg/sight/material - name = "\proper material vision" - sight_mode = BORGMATERIAL - icon_state = "material" - -/obj/item/borg/sight/hud - name = "hud" - var/obj/item/clothing/glasses/hud/hud = null - - -/obj/item/borg/sight/hud/med - name = "medical hud" - icon_state = "healthhud" - -/obj/item/borg/sight/hud/med/New() - ..() - hud = new /obj/item/clothing/glasses/hud/health(src) - return - - -/obj/item/borg/sight/hud/sec - name = "security hud" - icon_state = "securityhud" - -/obj/item/borg/sight/hud/sec/New() - ..() - hud = new /obj/item/clothing/glasses/hud/security(src) - return +/********************************************************************** + HUD/SIGHT things +***********************************************************************/ +/obj/item/borg/sight + var/sight_mode = null + + +/obj/item/borg/sight/xray + name = "\proper x-ray Vision" + icon = 'icons/obj/decals.dmi' + icon_state = "securearea" + sight_mode = BORGXRAY + +/obj/item/borg/sight/xray/truesight_lens + name = "truesight lens" + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "truesight_lens" + +/obj/item/borg/sight/thermal + name = "\proper thermal vision" + sight_mode = BORGTHERM + icon_state = "thermal" + + +/obj/item/borg/sight/meson + name = "\proper meson vision" + sight_mode = BORGMESON + icon_state = "meson" + +/obj/item/borg/sight/material + name = "\proper material vision" + sight_mode = BORGMATERIAL + icon_state = "material" + +/obj/item/borg/sight/hud + name = "hud" + var/obj/item/clothing/glasses/hud/hud = null + + +/obj/item/borg/sight/hud/med + name = "medical hud" + icon_state = "healthhud" + +/obj/item/borg/sight/hud/med/New() + ..() + hud = new /obj/item/clothing/glasses/hud/health(src) + return + + +/obj/item/borg/sight/hud/sec + name = "security hud" + icon_state = "securityhud" + +/obj/item/borg/sight/hud/sec/New() + ..() + hud = new /obj/item/clothing/glasses/hud/security(src) + return diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 1f923ddd5e..0b2e81a9da 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -1,338 +1,338 @@ - - -//The robot bodyparts have been moved to code/module/surgery/bodyparts/robot_bodyparts.dm - - -/obj/item/robot_suit - name = "cyborg endoskeleton" - desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." - icon = 'icons/obj/robot_parts.dmi' - icon_state = "robo_suit" - var/obj/item/bodypart/l_arm/robot/l_arm = null - var/obj/item/bodypart/r_arm/robot/r_arm = null - var/obj/item/bodypart/l_leg/robot/l_leg = null - var/obj/item/bodypart/r_leg/robot/r_leg = null - var/obj/item/bodypart/chest/robot/chest = null - var/obj/item/bodypart/head/robot/head = null - - var/created_name = "" - var/mob/living/silicon/ai/forced_ai - var/locomotion = 1 - var/lawsync = 1 - var/aisync = 1 - var/panel_locked = 1 - -/obj/item/robot_suit/New() - ..() - updateicon() - -/obj/item/robot_suit/prebuilt/New() - l_arm = new(src) - r_arm = new(src) - l_leg = new(src) - r_leg = new(src) - head = new(src) - head.flash1 = new(head) - head.flash2 = new(head) - chest = new(src) - chest.wired = TRUE - chest.cell = new /obj/item/weapon/stock_parts/cell/high/plus(chest) - ..() - -/obj/item/robot_suit/proc/updateicon() - cut_overlays() - if(l_arm) - add_overlay("[l_arm.icon_state]+o") - if(r_arm) - add_overlay("[r_arm.icon_state]+o") - if(chest) - add_overlay("[chest.icon_state]+o") - if(l_leg) - add_overlay("[l_leg.icon_state]+o") - if(r_leg) - add_overlay("[r_leg.icon_state]+o") - if(head) - add_overlay("[head.icon_state]+o") - -/obj/item/robot_suit/proc/check_completion() - if(src.l_arm && src.r_arm) - if(src.l_leg && src.r_leg) - if(src.chest && src.head) + + +//The robot bodyparts have been moved to code/module/surgery/bodyparts/robot_bodyparts.dm + + +/obj/item/robot_suit + name = "cyborg endoskeleton" + desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." + icon = 'icons/obj/robot_parts.dmi' + icon_state = "robo_suit" + var/obj/item/bodypart/l_arm/robot/l_arm = null + var/obj/item/bodypart/r_arm/robot/r_arm = null + var/obj/item/bodypart/l_leg/robot/l_leg = null + var/obj/item/bodypart/r_leg/robot/r_leg = null + var/obj/item/bodypart/chest/robot/chest = null + var/obj/item/bodypart/head/robot/head = null + + var/created_name = "" + var/mob/living/silicon/ai/forced_ai + var/locomotion = 1 + var/lawsync = 1 + var/aisync = 1 + var/panel_locked = 1 + +/obj/item/robot_suit/New() + ..() + updateicon() + +/obj/item/robot_suit/prebuilt/New() + l_arm = new(src) + r_arm = new(src) + l_leg = new(src) + r_leg = new(src) + head = new(src) + head.flash1 = new(head) + head.flash2 = new(head) + chest = new(src) + chest.wired = TRUE + chest.cell = new /obj/item/weapon/stock_parts/cell/high/plus(chest) + ..() + +/obj/item/robot_suit/proc/updateicon() + cut_overlays() + if(l_arm) + add_overlay("[l_arm.icon_state]+o") + if(r_arm) + add_overlay("[r_arm.icon_state]+o") + if(chest) + add_overlay("[chest.icon_state]+o") + if(l_leg) + add_overlay("[l_leg.icon_state]+o") + if(r_leg) + add_overlay("[r_leg.icon_state]+o") + if(head) + add_overlay("[head.icon_state]+o") + +/obj/item/robot_suit/proc/check_completion() + if(src.l_arm && src.r_arm) + if(src.l_leg && src.r_leg) + if(src.chest && src.head) SSblackbox.inc("cyborg_frames_built",1) - return 1 - return 0 - -/obj/item/robot_suit/attackby(obj/item/W, mob/user, params) - - if(istype(W, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/metal/M = W - if(!l_arm && !r_arm && !l_leg && !r_leg && !chest && !head) - if (M.use(1)) - var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly - B.loc = get_turf(src) - to_chat(user, "You arm the robot frame.") - var/holding_this = user.get_inactive_held_item()==src - qdel(src) - if (holding_this) - user.put_in_inactive_hand(B) - else - to_chat(user, "You need one sheet of metal to start building ED-209!") - return - else if(istype(W, /obj/item/bodypart/l_leg/robot)) - if(src.l_leg) - return - if(!user.transferItemToLoc(W, src)) - return - W.icon_state = initial(W.icon_state) - W.cut_overlays() - src.l_leg = W - src.updateicon() - - else if(istype(W, /obj/item/bodypart/r_leg/robot)) - if(src.r_leg) - return - if(!user.transferItemToLoc(W, src)) - return - W.icon_state = initial(W.icon_state) - W.cut_overlays() - src.r_leg = W - src.updateicon() - - else if(istype(W, /obj/item/bodypart/l_arm/robot)) - if(src.l_arm) - return - if(!user.transferItemToLoc(W, src)) - return - W.icon_state = initial(W.icon_state) - W.cut_overlays() - src.l_arm = W - src.updateicon() - - else if(istype(W, /obj/item/bodypart/r_arm/robot)) - if(src.r_arm) - return - if(!user.transferItemToLoc(W, src)) - return - W.icon_state = initial(W.icon_state)//in case it is a dismembered robotic limb - W.cut_overlays() - src.r_arm = W - src.updateicon() - - else if(istype(W, /obj/item/bodypart/chest/robot)) - var/obj/item/bodypart/chest/robot/CH = W - if(src.chest) - return - if(CH.wired && CH.cell) - if(!user.transferItemToLoc(CH, src)) - return - CH.icon_state = initial(CH.icon_state) //in case it is a dismembered robotic limb - CH.cut_overlays() - src.chest = CH - src.updateicon() - else if(!CH.wired) - to_chat(user, "You need to attach wires to it first!") - else - to_chat(user, "You need to attach a cell to it first!") - - else if(istype(W, /obj/item/bodypart/head/robot)) - var/obj/item/bodypart/head/robot/HD = W - for(var/X in HD.contents) - if(istype(X, /obj/item/organ)) - to_chat(user, "There are organs inside [HD]!") - return - if(src.head) - return - if(HD.flash2 && HD.flash1) - if(!user.transferItemToLoc(HD, src)) - return - HD.icon_state = initial(HD.icon_state)//in case it is a dismembered robotic limb - HD.cut_overlays() - src.head = HD - src.updateicon() - else - to_chat(user, "You need to attach a flash to it first!") - - else if (istype(W, /obj/item/device/multitool)) - if(check_completion()) - Interact(user) - else - to_chat(user, "The endoskeleton must be assembled before debugging can begin!") - - else if(istype(W, /obj/item/device/mmi)) - var/obj/item/device/mmi/M = W - if(check_completion()) - if(!isturf(loc)) - to_chat(user, "You can't put [M] in, the frame has to be standing on the ground to be perfectly precise!") - return - if(!M.brainmob) - to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose!") - return - - var/mob/living/brain/BM = M.brainmob - if(!BM.key || !BM.mind) - to_chat(user, "The MMI indicates that their mind is completely unresponsive; there's no point!") - return - - if(!BM.client) //braindead - to_chat(user, "The MMI indicates that their mind is currently inactive; it might change!") - return - - if(BM.stat == DEAD || (M.brain && M.brain.damaged_brain)) - to_chat(user, "Sticking a dead brain into the frame would sort of defeat the purpose!") - return - - if(jobban_isbanned(BM, "Cyborg")) - to_chat(user, "This [M.name] does not seem to fit!") - return - - if(!user.temporarilyRemoveItemFromInventory(W)) - return - - var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc)) - if(!O) - return - - if(M.laws && M.laws.id != DEFAULT_AI_LAWID) - aisync = 0 - lawsync = 0 - O.laws = M.laws - M.laws.associate(O) - - O.invisibility = 0 - //Transfer debug settings to new mob - O.custom_name = created_name - O.locked = panel_locked - if(!aisync) - lawsync = 0 - O.connected_ai = null - else - O.notify_ai(NEW_BORG) - if(forced_ai) - O.connected_ai = forced_ai - if(!lawsync) - O.lawupdate = 0 - if(M.laws.id == DEFAULT_AI_LAWID) - O.make_laws() - - SSticker.mode.remove_antag_for_borging(BM.mind) - if(!istype(M.laws, /datum/ai_laws/ratvar)) - remove_servant_of_ratvar(BM, TRUE) - BM.mind.transfer_to(O) - - if(O.mind && O.mind.special_role) - O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.") - to_chat(O, "You have been robotized!") - to_chat(O, "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.") - - O.job = "Cyborg" - - O.cell = chest.cell - chest.cell.loc = O - chest.cell = null - W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. - if(O.mmi) //we delete the mmi created by robot/New() - qdel(O.mmi) - O.mmi = W //and give the real mmi to the borg. - O.updatename() - + return 1 + return 0 + +/obj/item/robot_suit/attackby(obj/item/W, mob/user, params) + + if(istype(W, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = W + if(!l_arm && !r_arm && !l_leg && !r_leg && !chest && !head) + if (M.use(1)) + var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly + B.loc = get_turf(src) + to_chat(user, "You arm the robot frame.") + var/holding_this = user.get_inactive_held_item()==src + qdel(src) + if (holding_this) + user.put_in_inactive_hand(B) + else + to_chat(user, "You need one sheet of metal to start building ED-209!") + return + else if(istype(W, /obj/item/bodypart/l_leg/robot)) + if(src.l_leg) + return + if(!user.transferItemToLoc(W, src)) + return + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.l_leg = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/r_leg/robot)) + if(src.r_leg) + return + if(!user.transferItemToLoc(W, src)) + return + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.r_leg = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/l_arm/robot)) + if(src.l_arm) + return + if(!user.transferItemToLoc(W, src)) + return + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.l_arm = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/r_arm/robot)) + if(src.r_arm) + return + if(!user.transferItemToLoc(W, src)) + return + W.icon_state = initial(W.icon_state)//in case it is a dismembered robotic limb + W.cut_overlays() + src.r_arm = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/chest/robot)) + var/obj/item/bodypart/chest/robot/CH = W + if(src.chest) + return + if(CH.wired && CH.cell) + if(!user.transferItemToLoc(CH, src)) + return + CH.icon_state = initial(CH.icon_state) //in case it is a dismembered robotic limb + CH.cut_overlays() + src.chest = CH + src.updateicon() + else if(!CH.wired) + to_chat(user, "You need to attach wires to it first!") + else + to_chat(user, "You need to attach a cell to it first!") + + else if(istype(W, /obj/item/bodypart/head/robot)) + var/obj/item/bodypart/head/robot/HD = W + for(var/X in HD.contents) + if(istype(X, /obj/item/organ)) + to_chat(user, "There are organs inside [HD]!") + return + if(src.head) + return + if(HD.flash2 && HD.flash1) + if(!user.transferItemToLoc(HD, src)) + return + HD.icon_state = initial(HD.icon_state)//in case it is a dismembered robotic limb + HD.cut_overlays() + src.head = HD + src.updateicon() + else + to_chat(user, "You need to attach a flash to it first!") + + else if (istype(W, /obj/item/device/multitool)) + if(check_completion()) + Interact(user) + else + to_chat(user, "The endoskeleton must be assembled before debugging can begin!") + + else if(istype(W, /obj/item/device/mmi)) + var/obj/item/device/mmi/M = W + if(check_completion()) + if(!isturf(loc)) + to_chat(user, "You can't put [M] in, the frame has to be standing on the ground to be perfectly precise!") + return + if(!M.brainmob) + to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose!") + return + + var/mob/living/brain/BM = M.brainmob + if(!BM.key || !BM.mind) + to_chat(user, "The MMI indicates that their mind is completely unresponsive; there's no point!") + return + + if(!BM.client) //braindead + to_chat(user, "The MMI indicates that their mind is currently inactive; it might change!") + return + + if(BM.stat == DEAD || (M.brain && M.brain.damaged_brain)) + to_chat(user, "Sticking a dead brain into the frame would sort of defeat the purpose!") + return + + if(jobban_isbanned(BM, "Cyborg")) + to_chat(user, "This [M.name] does not seem to fit!") + return + + if(!user.temporarilyRemoveItemFromInventory(W)) + return + + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc)) + if(!O) + return + + if(M.laws && M.laws.id != DEFAULT_AI_LAWID) + aisync = 0 + lawsync = 0 + O.laws = M.laws + M.laws.associate(O) + + O.invisibility = 0 + //Transfer debug settings to new mob + O.custom_name = created_name + O.locked = panel_locked + if(!aisync) + lawsync = 0 + O.connected_ai = null + else + O.notify_ai(NEW_BORG) + if(forced_ai) + O.connected_ai = forced_ai + if(!lawsync) + O.lawupdate = 0 + if(M.laws.id == DEFAULT_AI_LAWID) + O.make_laws() + + SSticker.mode.remove_antag_for_borging(BM.mind) + if(!istype(M.laws, /datum/ai_laws/ratvar)) + remove_servant_of_ratvar(BM, TRUE) + BM.mind.transfer_to(O) + + if(O.mind && O.mind.special_role) + O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.") + to_chat(O, "You have been robotized!") + to_chat(O, "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.") + + O.job = "Cyborg" + + O.cell = chest.cell + chest.cell.loc = O + chest.cell = null + W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. + if(O.mmi) //we delete the mmi created by robot/New() + qdel(O.mmi) + O.mmi = W //and give the real mmi to the borg. + O.updatename() + SSblackbox.inc("cyborg_birth",1) - - forceMove(O) - O.robot_suit = src - - if(!locomotion) - O.lockcharge = 1 - O.update_canmove() - to_chat(O, "Error: Servo motors unresponsive.") - - else - to_chat(user, "The MMI must go in after everything else!") - - else if(istype(W, /obj/item/borg/upgrade/ai)) - var/obj/item/borg/upgrade/ai/M = W - if(check_completion()) - if(!isturf(loc)) - to_chat(user, "You cannot install[M], the frame has to be standing on the ground to be perfectly precise!") - return - if(!user.drop_item()) - to_chat(user, "[M] is stuck to your hand!") - return - qdel(M) - var/mob/living/silicon/robot/O = new /mob/living/silicon/robot/shell(get_turf(src)) - - if(!aisync) - lawsync = FALSE - O.connected_ai = null - else - if(forced_ai) - O.connected_ai = forced_ai - O.notify_ai(AI_SHELL) - if(!lawsync) - O.lawupdate = FALSE - O.make_laws() - - - O.cell = chest.cell - chest.cell.loc = O - chest.cell = null - O.locked = panel_locked - O.job = "Cyborg" - forceMove(O) - O.robot_suit = src - if(!locomotion) - O.lockcharge = TRUE - O.update_canmove() - - else if(istype(W,/obj/item/weapon/pen)) - to_chat(user, "You need to use a multitool to name [src]!") - else - return ..() - -/obj/item/robot_suit/proc/Interact(mob/user) - var/t1 = text("Designation: [(created_name ? "[created_name]" : "Default Cyborg")]
    \n",src) - t1 += text("Master AI: [(forced_ai ? "[forced_ai.name]" : "Automatic")]

    \n",src) - - t1 += text("LawSync Port: [(lawsync ? "Open" : "Closed")]
    \n",src) - t1 += text("AI Connection Port: [(aisync ? "Open" : "Closed")]
    \n",src) - t1 += text("Servo Motor Functions: [(locomotion ? "Unlocked" : "Locked")]
    \n",src) - t1 += text("Panel Lock: [(panel_locked ? "Engaged" : "Disengaged")]
    \n",src) - var/datum/browser/popup = new(user, "robotdebug", "Cyborg Boot Debug", 310, 220) - popup.set_content(t1) - popup.open() - -/obj/item/robot_suit/Topic(href, href_list) - if(usr.incapacitated() || !Adjacent(usr)) - return - - var/mob/living/living_user = usr - var/obj/item/item_in_hand = living_user.get_active_held_item() - if(!istype(item_in_hand, /obj/item/device/multitool)) - to_chat(living_user, "You need a multitool!") - return - - if(href_list["Name"]) - var/new_name = reject_bad_name(input(usr, "Enter new designation. Set to blank to reset to default.", "Cyborg Debug", src.created_name),1) - if(!in_range(src, usr) && src.loc != usr) - return - if(new_name) - created_name = new_name - else - created_name = "" - - else if(href_list["Master"]) - forced_ai = select_active_ai(usr) - if(!forced_ai) - to_chat(usr, "No active AIs detected.") - - else if(href_list["Law"]) - lawsync = !lawsync - else if(href_list["AI"]) - aisync = !aisync - else if(href_list["Loco"]) - locomotion = !locomotion - else if(href_list["Panel"]) - panel_locked = !panel_locked - - add_fingerprint(usr) - Interact(usr) - + + forceMove(O) + O.robot_suit = src + + if(!locomotion) + O.lockcharge = 1 + O.update_canmove() + to_chat(O, "Error: Servo motors unresponsive.") + + else + to_chat(user, "The MMI must go in after everything else!") + + else if(istype(W, /obj/item/borg/upgrade/ai)) + var/obj/item/borg/upgrade/ai/M = W + if(check_completion()) + if(!isturf(loc)) + to_chat(user, "You cannot install[M], the frame has to be standing on the ground to be perfectly precise!") + return + if(!user.drop_item()) + to_chat(user, "[M] is stuck to your hand!") + return + qdel(M) + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot/shell(get_turf(src)) + + if(!aisync) + lawsync = FALSE + O.connected_ai = null + else + if(forced_ai) + O.connected_ai = forced_ai + O.notify_ai(AI_SHELL) + if(!lawsync) + O.lawupdate = FALSE + O.make_laws() + + + O.cell = chest.cell + chest.cell.loc = O + chest.cell = null + O.locked = panel_locked + O.job = "Cyborg" + forceMove(O) + O.robot_suit = src + if(!locomotion) + O.lockcharge = TRUE + O.update_canmove() + + else if(istype(W,/obj/item/weapon/pen)) + to_chat(user, "You need to use a multitool to name [src]!") + else + return ..() + +/obj/item/robot_suit/proc/Interact(mob/user) + var/t1 = text("Designation: [(created_name ? "[created_name]" : "Default Cyborg")]
    \n",src) + t1 += text("Master AI: [(forced_ai ? "[forced_ai.name]" : "Automatic")]

    \n",src) + + t1 += text("LawSync Port: [(lawsync ? "Open" : "Closed")]
    \n",src) + t1 += text("AI Connection Port: [(aisync ? "Open" : "Closed")]
    \n",src) + t1 += text("Servo Motor Functions: [(locomotion ? "Unlocked" : "Locked")]
    \n",src) + t1 += text("Panel Lock: [(panel_locked ? "Engaged" : "Disengaged")]
    \n",src) + var/datum/browser/popup = new(user, "robotdebug", "Cyborg Boot Debug", 310, 220) + popup.set_content(t1) + popup.open() + +/obj/item/robot_suit/Topic(href, href_list) + if(usr.incapacitated() || !Adjacent(usr)) + return + + var/mob/living/living_user = usr + var/obj/item/item_in_hand = living_user.get_active_held_item() + if(!istype(item_in_hand, /obj/item/device/multitool)) + to_chat(living_user, "You need a multitool!") + return + + if(href_list["Name"]) + var/new_name = reject_bad_name(input(usr, "Enter new designation. Set to blank to reset to default.", "Cyborg Debug", src.created_name),1) + if(!in_range(src, usr) && src.loc != usr) + return + if(new_name) + created_name = new_name + else + created_name = "" + + else if(href_list["Master"]) + forced_ai = select_active_ai(usr) + if(!forced_ai) + to_chat(usr, "No active AIs detected.") + + else if(href_list["Law"]) + lawsync = !lawsync + else if(href_list["AI"]) + aisync = !aisync + else if(href_list["Loco"]) + locomotion = !locomotion + else if(href_list["Panel"]) + panel_locked = !panel_locked + + add_fingerprint(usr) + Interact(usr) + diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 3a7a92f701..2e31e59714 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -1,92 +1,92 @@ -/obj/item/target - name = "shooting target" - desc = "A shooting target." - icon = 'icons/obj/objects.dmi' - icon_state = "target_h" - density = 0 - var/hp = 1800 - var/obj/structure/target_stake/pinnedLoc - -/obj/item/target/Destroy() - removeOverlays() - if(pinnedLoc) - pinnedLoc.nullPinnedTarget() - return ..() - -/obj/item/target/proc/nullPinnedLoc() - pinnedLoc = null - density = 0 - -/obj/item/target/proc/removeOverlays() - cut_overlays() - -/obj/item/target/Move() - ..() - if(pinnedLoc) - pinnedLoc.loc = loc - -/obj/item/target/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - removeOverlays() - to_chat(user, "You slice off [src]'s uneven chunks of aluminium and scorch marks.") - else - return ..() - -/obj/item/target/attack_hand(mob/user) - if(pinnedLoc) - pinnedLoc.removeTarget(user) - ..() - -/obj/item/target/syndicate - icon_state = "target_s" - desc = "A shooting target that looks like a syndicate scum." - hp = 2600 - -/obj/item/target/alien - icon_state = "target_q" - desc = "A shooting target that looks like a xenomorphic alien." - hp = 2350 - -/obj/item/target/clown - icon_state = "target_c" - desc = "A shooting target that looks like a useless clown." - hp = 2000 - -#define DECALTYPE_SCORCH 1 -#define DECALTYPE_BULLET 2 - -/obj/item/target/clown/bullet_act(obj/item/projectile/P) - ..() - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) - -/obj/item/target/bullet_act(obj/item/projectile/P) - var/p_x = P.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset P.p_x!" - var/p_y = P.p_y + pick(0,0,0,0,0,-1,1) - var/decaltype = DECALTYPE_SCORCH - if(istype(/obj/item/projectile/bullet, P)) - decaltype = DECALTYPE_BULLET - var/icon/C = icon(icon,icon_state) - if(C.GetPixel(p_x, p_y) && P.original == src && overlays.len <= 35) // if the located pixel isn't blank (null) - hp -= P.damage - if(hp <= 0) - visible_message("[src] breaks into tiny pieces and collapses!") - qdel(src) +/obj/item/target + name = "shooting target" + desc = "A shooting target." + icon = 'icons/obj/objects.dmi' + icon_state = "target_h" + density = 0 + var/hp = 1800 + var/obj/structure/target_stake/pinnedLoc + +/obj/item/target/Destroy() + removeOverlays() + if(pinnedLoc) + pinnedLoc.nullPinnedTarget() + return ..() + +/obj/item/target/proc/nullPinnedLoc() + pinnedLoc = null + density = 0 + +/obj/item/target/proc/removeOverlays() + cut_overlays() + +/obj/item/target/Move() + ..() + if(pinnedLoc) + pinnedLoc.loc = loc + +/obj/item/target/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + removeOverlays() + to_chat(user, "You slice off [src]'s uneven chunks of aluminium and scorch marks.") + else + return ..() + +/obj/item/target/attack_hand(mob/user) + if(pinnedLoc) + pinnedLoc.removeTarget(user) + ..() + +/obj/item/target/syndicate + icon_state = "target_s" + desc = "A shooting target that looks like a syndicate scum." + hp = 2600 + +/obj/item/target/alien + icon_state = "target_q" + desc = "A shooting target that looks like a xenomorphic alien." + hp = 2350 + +/obj/item/target/clown + icon_state = "target_c" + desc = "A shooting target that looks like a useless clown." + hp = 2000 + +#define DECALTYPE_SCORCH 1 +#define DECALTYPE_BULLET 2 + +/obj/item/target/clown/bullet_act(obj/item/projectile/P) + ..() + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + +/obj/item/target/bullet_act(obj/item/projectile/P) + var/p_x = P.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset P.p_x!" + var/p_y = P.p_y + pick(0,0,0,0,0,-1,1) + var/decaltype = DECALTYPE_SCORCH + if(istype(/obj/item/projectile/bullet, P)) + decaltype = DECALTYPE_BULLET + var/icon/C = icon(icon,icon_state) + if(C.GetPixel(p_x, p_y) && P.original == src && overlays.len <= 35) // if the located pixel isn't blank (null) + hp -= P.damage + if(hp <= 0) + visible_message("[src] breaks into tiny pieces and collapses!") + qdel(src) var/image/bullet_hole = image('icons/effects/effects.dmi', "scorch", OBJ_LAYER + 0.5) bullet_hole.pixel_x = p_x - 1 //offset correction bullet_hole.pixel_y = p_y - 1 - if(decaltype == DECALTYPE_SCORCH) + if(decaltype == DECALTYPE_SCORCH) bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design - if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice)) + if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice)) bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST)) - else + else bullet_hole.icon_state = "light_scorch" - else + else bullet_hole.icon_state = "dent" add_overlay(bullet_hole) - return - return -1 - -#undef DECALTYPE_SCORCH + return + return -1 + +#undef DECALTYPE_SCORCH #undef DECALTYPE_BULLET \ No newline at end of file diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 16737f7057..b681053a35 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -1,81 +1,81 @@ -//Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. -/obj/item/weapon/ore/bluespace_crystal - name = "bluespace crystal" - desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." - icon = 'icons/obj/telescience.dmi' - icon_state = "bluespace_crystal" - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) - origin_tech = "bluespace=6;materials=3" - points = 50 - var/blink_range = 8 // The teleport range when crushed/thrown at someone. - refined_type = /obj/item/stack/sheet/bluespace_crystal - -/obj/item/weapon/ore/bluespace_crystal/refined - name = "refined bluespace crystal" - points = 0 - refined_type = null - -/obj/item/weapon/ore/bluespace_crystal/New() - ..() - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - -/obj/item/weapon/ore/bluespace_crystal/attack_self(mob/user) - user.visible_message("[user] crushes [src]!", "You crush [src]!") - new /obj/effect/particle_effect/sparks(loc) - playsound(src.loc, "sparks", 50, 1) - blink_mob(user) - qdel(src) - -/obj/item/weapon/ore/bluespace_crystal/proc/blink_mob(mob/living/L) - do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') - -/obj/item/weapon/ore/bluespace_crystal/throw_impact(atom/hit_atom) - if(!..()) // not caught in mid-air - visible_message("[src] fizzles and disappears upon impact!") - var/turf/T = get_turf(hit_atom) - new /obj/effect/particle_effect/sparks(T) - playsound(src.loc, "sparks", 50, 1) - if(isliving(hit_atom)) - blink_mob(hit_atom) - qdel(src) - -//Artifical bluespace crystal, doesn't give you much research. -/obj/item/weapon/ore/bluespace_crystal/artificial - name = "artificial bluespace crystal" - desc = "An artificially made bluespace crystal, it looks delicate." - origin_tech = "bluespace=3;plasmatech=4" - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT / 2) - blink_range = 4 // Not as good as the organic stuff! - points = 0 //nice try - refined_type = null - -//Polycrystals, aka stacks -/obj/item/stack/sheet/bluespace_crystal - name = "bluespace polycrystal" - icon = 'icons/obj/telescience.dmi' - icon_state = "polycrystal" - desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." - origin_tech = "bluespace=6;materials=3" - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) - attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") +//Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. +/obj/item/weapon/ore/bluespace_crystal + name = "bluespace crystal" + desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." + icon = 'icons/obj/telescience.dmi' + icon_state = "bluespace_crystal" + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) + origin_tech = "bluespace=6;materials=3" + points = 50 + var/blink_range = 8 // The teleport range when crushed/thrown at someone. + refined_type = /obj/item/stack/sheet/bluespace_crystal + +/obj/item/weapon/ore/bluespace_crystal/refined + name = "refined bluespace crystal" + points = 0 + refined_type = null + +/obj/item/weapon/ore/bluespace_crystal/New() + ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/weapon/ore/bluespace_crystal/attack_self(mob/user) + user.visible_message("[user] crushes [src]!", "You crush [src]!") + new /obj/effect/particle_effect/sparks(loc) + playsound(src.loc, "sparks", 50, 1) + blink_mob(user) + qdel(src) + +/obj/item/weapon/ore/bluespace_crystal/proc/blink_mob(mob/living/L) + do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') + +/obj/item/weapon/ore/bluespace_crystal/throw_impact(atom/hit_atom) + if(!..()) // not caught in mid-air + visible_message("[src] fizzles and disappears upon impact!") + var/turf/T = get_turf(hit_atom) + new /obj/effect/particle_effect/sparks(T) + playsound(src.loc, "sparks", 50, 1) + if(isliving(hit_atom)) + blink_mob(hit_atom) + qdel(src) + +//Artifical bluespace crystal, doesn't give you much research. +/obj/item/weapon/ore/bluespace_crystal/artificial + name = "artificial bluespace crystal" + desc = "An artificially made bluespace crystal, it looks delicate." + origin_tech = "bluespace=3;plasmatech=4" + materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT / 2) + blink_range = 4 // Not as good as the organic stuff! + points = 0 //nice try + refined_type = null + +//Polycrystals, aka stacks +/obj/item/stack/sheet/bluespace_crystal + name = "bluespace polycrystal" + icon = 'icons/obj/telescience.dmi' + icon_state = "polycrystal" + desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." + origin_tech = "bluespace=6;materials=3" + materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) + attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") novariants = TRUE - var/crystal_type = /obj/item/weapon/ore/bluespace_crystal/refined - -/obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user)// to prevent the construction menu from ever happening - to_chat(user, "You cannot crush the polycrystal in-hand, try breaking one off.") - -/obj/item/stack/sheet/bluespace_crystal/attack_hand(mob/user) - if(user.get_inactive_held_item() == src) - if(zero_amount()) - return - var/BC = new crystal_type(src) - user.put_in_hands(BC) - use(1) - if(!amount) - to_chat(user, "You break the final crystal off.") - else - to_chat(user, "You break off a crystal.") - else - ..() + var/crystal_type = /obj/item/weapon/ore/bluespace_crystal/refined + +/obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user)// to prevent the construction menu from ever happening + to_chat(user, "You cannot crush the polycrystal in-hand, try breaking one off.") + +/obj/item/stack/sheet/bluespace_crystal/attack_hand(mob/user) + if(user.get_inactive_held_item() == src) + if(zero_amount()) + return + var/BC = new crystal_type(src) + user.put_in_hands(BC) + use(1) + if(!amount) + to_chat(user, "You break the final crystal off.") + else + to_chat(user, "You break off a crystal.") + else + ..() diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index f1367f814e..03366c94e6 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -1,144 +1,144 @@ -/obj/item/stack/medical - name = "medical pack" - singular_name = "medical pack" - icon = 'icons/obj/items.dmi' - amount = 6 - max_amount = 6 - w_class = WEIGHT_CLASS_TINY +/obj/item/stack/medical + name = "medical pack" + singular_name = "medical pack" + icon = 'icons/obj/items.dmi' + amount = 6 + max_amount = 6 + w_class = WEIGHT_CLASS_TINY full_w_class = WEIGHT_CLASS_TINY - throw_speed = 3 - throw_range = 7 - resistance_flags = FLAMMABLE - obj_integrity = 40 - max_integrity = 40 + throw_speed = 3 + throw_range = 7 + resistance_flags = FLAMMABLE + obj_integrity = 40 + max_integrity = 40 novariants = FALSE - var/heal_brute = 0 - var/heal_burn = 0 - var/stop_bleeding = 0 - var/self_delay = 50 - -/obj/item/stack/medical/attack(mob/living/M, mob/user) - - if(M.stat == 2) - var/t_him = "it" - if(M.gender == MALE) - t_him = "him" - else if(M.gender == FEMALE) - t_him = "her" - to_chat(user, "\The [M] is dead, you cannot help [t_him]!") - return - - if(!istype(M, /mob/living/carbon) && !istype(M, /mob/living/simple_animal)) - to_chat(user, "You don't know how to apply \the [src] to [M]!") - return 1 - - var/obj/item/bodypart/affecting - if(iscarbon(M)) - var/mob/living/carbon/C = M - affecting = C.get_bodypart(check_zone(user.zone_selected)) - if(!affecting) //Missing limb? - to_chat(user, "[C] doesn't have \a [parse_zone(user.zone_selected)]!") - return - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(stop_bleeding) - if(H.bleedsuppress) - to_chat(user, "[H]'s bleeding is already bandaged!") - return - else if(!H.bleed_rate) - to_chat(user, "[H] isn't bleeding!") - return - - - if(isliving(M)) - if(!M.can_inject(user, 1)) - return - - if(user) - if (M != user) - if (istype(M, /mob/living/simple_animal)) - var/mob/living/simple_animal/critter = M - if (!(critter.healable)) - to_chat(user, " You cannot use [src] on [M]!") - return - else if (critter.health == critter.maxHealth) - to_chat(user, " [M] is at full health.") - return - else if(src.heal_brute < 1) - to_chat(user, " [src] won't help [M] at all.") - return - user.visible_message("[user] applies [src] on [M].", "You apply [src] on [M].") - else - var/t_himself = "itself" - if(user.gender == MALE) - t_himself = "himself" - else if(user.gender == FEMALE) - t_himself = "herself" - user.visible_message("[user] starts to apply [src] on [t_himself]...", "You begin applying [src] on yourself...") - if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject,user,1))) - return - user.visible_message("[user] applies [src] on [t_himself].", "You apply [src] on yourself.") - - - if(iscarbon(M)) - var/mob/living/carbon/C = M - affecting = C.get_bodypart(check_zone(user.zone_selected)) - if(!affecting) //Missing limb? - to_chat(user, "[C] doesn't have \a [parse_zone(user.zone_selected)]!") - return - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(stop_bleeding) - if(!H.bleedsuppress) //so you can't stack bleed suppression - H.suppress_bloodloss(stop_bleeding) - if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR - if(affecting.heal_damage(heal_brute, heal_burn)) - C.update_damage_overlays() - else - to_chat(user, "Medicine won't work on a robotic limb!") - else - M.heal_bodypart_damage((src.heal_brute/2), (src.heal_burn/2)) - - use(1) - - - -/obj/item/stack/medical/bruise_pack - name = "bruise pack" - singular_name = "bruise pack" - desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma." - icon_state = "brutepack" - heal_brute = 40 - origin_tech = "biotech=2" - self_delay = 20 - -/obj/item/stack/medical/gauze - name = "medical gauze" - desc = "A roll of elastic cloth that is extremely effective at stopping bleeding, but does not heal wounds." - gender = PLURAL - singular_name = "medical gauze" - icon_state = "gauze" - stop_bleeding = 1800 - self_delay = 20 - max_amount = 12 - -/obj/item/stack/medical/gauze/improvised - name = "improvised gauze" - singular_name = "improvised gauze" - desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds." - stop_bleeding = 900 - -/obj/item/stack/medical/gauze/cyborg - materials = list() - is_cyborg = 1 - cost = 250 - -/obj/item/stack/medical/ointment - name = "ointment" - desc = "Used to treat those nasty burn wounds." - gender = PLURAL - singular_name = "ointment" - icon_state = "ointment" - heal_burn = 40 - origin_tech = "biotech=2" - self_delay = 20 + var/heal_brute = 0 + var/heal_burn = 0 + var/stop_bleeding = 0 + var/self_delay = 50 + +/obj/item/stack/medical/attack(mob/living/M, mob/user) + + if(M.stat == 2) + var/t_him = "it" + if(M.gender == MALE) + t_him = "him" + else if(M.gender == FEMALE) + t_him = "her" + to_chat(user, "\The [M] is dead, you cannot help [t_him]!") + return + + if(!iscarbon(M) && !isanimal(M)) + to_chat(user, "You don't know how to apply \the [src] to [M]!") + return 1 + + var/obj/item/bodypart/affecting + if(iscarbon(M)) + var/mob/living/carbon/C = M + affecting = C.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) //Missing limb? + to_chat(user, "[C] doesn't have \a [parse_zone(user.zone_selected)]!") + return + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(stop_bleeding) + if(H.bleedsuppress) + to_chat(user, "[H]'s bleeding is already bandaged!") + return + else if(!H.bleed_rate) + to_chat(user, "[H] isn't bleeding!") + return + + + if(isliving(M)) + if(!M.can_inject(user, 1)) + return + + if(user) + if (M != user) + if (isanimal(M)) + var/mob/living/simple_animal/critter = M + if (!(critter.healable)) + to_chat(user, " You cannot use [src] on [M]!") + return + else if (critter.health == critter.maxHealth) + to_chat(user, " [M] is at full health.") + return + else if(src.heal_brute < 1) + to_chat(user, " [src] won't help [M] at all.") + return + user.visible_message("[user] applies [src] on [M].", "You apply [src] on [M].") + else + var/t_himself = "itself" + if(user.gender == MALE) + t_himself = "himself" + else if(user.gender == FEMALE) + t_himself = "herself" + user.visible_message("[user] starts to apply [src] on [t_himself]...", "You begin applying [src] on yourself...") + if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject,user,1))) + return + user.visible_message("[user] applies [src] on [t_himself].", "You apply [src] on yourself.") + + + if(iscarbon(M)) + var/mob/living/carbon/C = M + affecting = C.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) //Missing limb? + to_chat(user, "[C] doesn't have \a [parse_zone(user.zone_selected)]!") + return + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(stop_bleeding) + if(!H.bleedsuppress) //so you can't stack bleed suppression + H.suppress_bloodloss(stop_bleeding) + if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR + if(affecting.heal_damage(heal_brute, heal_burn)) + C.update_damage_overlays() + else + to_chat(user, "Medicine won't work on a robotic limb!") + else + M.heal_bodypart_damage((src.heal_brute/2), (src.heal_burn/2)) + + use(1) + + + +/obj/item/stack/medical/bruise_pack + name = "bruise pack" + singular_name = "bruise pack" + desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma." + icon_state = "brutepack" + heal_brute = 40 + origin_tech = "biotech=2" + self_delay = 20 + +/obj/item/stack/medical/gauze + name = "medical gauze" + desc = "A roll of elastic cloth that is extremely effective at stopping bleeding, but does not heal wounds." + gender = PLURAL + singular_name = "medical gauze" + icon_state = "gauze" + stop_bleeding = 1800 + self_delay = 20 + max_amount = 12 + +/obj/item/stack/medical/gauze/improvised + name = "improvised gauze" + singular_name = "improvised gauze" + desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds." + stop_bleeding = 900 + +/obj/item/stack/medical/gauze/cyborg + materials = list() + is_cyborg = 1 + cost = 250 + +/obj/item/stack/medical/ointment + name = "ointment" + desc = "Used to treat those nasty burn wounds." + gender = PLURAL + singular_name = "ointment" + icon_state = "ointment" + heal_burn = 40 + origin_tech = "biotech=2" + self_delay = 20 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 9cdb097cdc..c55ab4f6dd 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -1,79 +1,79 @@ -GLOBAL_LIST_INIT(rod_recipes, list ( \ - new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \ - )) - -/obj/item/stack/rods - name = "metal rod" - desc = "Some rods. Can be used for building or something." - singular_name = "metal rod" - icon_state = "rods" - item_state = "rods" - flags = CONDUCT - w_class = WEIGHT_CLASS_NORMAL - force = 9 - throwforce = 10 - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=1000) - max_amount = 50 - attack_verb = list("hit", "bludgeoned", "whacked") - hitsound = 'sound/weapons/grenadelaunch.ogg' +GLOBAL_LIST_INIT(rod_recipes, list ( \ + new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \ + )) + +/obj/item/stack/rods + name = "metal rod" + desc = "Some rods. Can be used for building or something." + singular_name = "metal rod" + icon_state = "rods" + item_state = "rods" + flags = CONDUCT + w_class = WEIGHT_CLASS_NORMAL + force = 9 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=1000) + max_amount = 50 + attack_verb = list("hit", "bludgeoned", "whacked") + hitsound = 'sound/weapons/grenadelaunch.ogg' novariants = TRUE - -/obj/item/stack/rods/Initialize(mapload, new_amount, merge = TRUE) - ..() - - recipes = GLOB.rod_recipes - update_icon() - -/obj/item/stack/rods/update_icon() - var/amount = get_amount() - if((amount <= 5) && (amount > 0)) - icon_state = "rods-[amount]" - else - icon_state = "rods" - -/obj/item/stack/rods/attackby(obj/item/W, mob/user, params) - if (istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - - if(get_amount() < 2) - to_chat(user, "You need at least two rods to do this!") - return - - if(WT.remove_fuel(0,user)) - var/obj/item/stack/sheet/metal/new_item = new(usr.loc) - user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ - "You shape [src] into metal with the welding tool.", \ - "You hear welding.") - var/obj/item/stack/rods/R = src - src = null - var/replace = (user.get_inactive_held_item()==R) - R.use(2) - if (!R && replace) - user.put_in_hands(new_item) - - else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) - var/obj/item/weapon/reagent_containers/food/snacks/S = W - if(amount != 1) - to_chat(user, "You must use a single rod!") - else if(S.w_class > WEIGHT_CLASS_SMALL) - to_chat(user, "The ingredient is too big for [src]!") - else - var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/kebab(get_turf(src)) - A.initialize_custom_food(src, S, user) - else - return ..() - -/obj/item/stack/rods/cyborg - materials = list() - is_cyborg = 1 - cost = 250 - -/obj/item/stack/rods/cyborg/update_icon() - return + +/obj/item/stack/rods/Initialize(mapload, new_amount, merge = TRUE) + ..() + + recipes = GLOB.rod_recipes + update_icon() + +/obj/item/stack/rods/update_icon() + var/amount = get_amount() + if((amount <= 5) && (amount > 0)) + icon_state = "rods-[amount]" + else + icon_state = "rods" + +/obj/item/stack/rods/attackby(obj/item/W, mob/user, params) + if (istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + + if(get_amount() < 2) + to_chat(user, "You need at least two rods to do this!") + return + + if(WT.remove_fuel(0,user)) + var/obj/item/stack/sheet/metal/new_item = new(usr.loc) + user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ + "You shape [src] into metal with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_held_item()==R) + R.use(2) + if (!R && replace) + user.put_in_hands(new_item) + + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/S = W + if(amount != 1) + to_chat(user, "You must use a single rod!") + else if(S.w_class > WEIGHT_CLASS_SMALL) + to_chat(user, "The ingredient is too big for [src]!") + else + var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/kebab(get_turf(src)) + A.initialize_custom_food(src, S, user) + else + return ..() + +/obj/item/stack/rods/cyborg + materials = list() + is_cyborg = 1 + cost = 250 + +/obj/item/stack/rods/cyborg/update_icon() + return /obj/item/stack/rods/ten amount = 10 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 2fb430bdff..5e396491f0 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -1,215 +1,282 @@ -/* Glass stack types - * Contains: - * Glass sheets - * Reinforced glass sheets - * Glass shards - TODO: Move this into code/game/object/item/weapons - */ - -/* - * Glass sheets - */ -GLOBAL_LIST_INIT(glass_recipes, list ( \ - new/datum/stack_recipe("directional window", /obj/structure/window/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile window", /obj/structure/window/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ -)) - -/obj/item/stack/sheet/glass - name = "glass" - desc = "HOLY SHEET! That is a lot of glass." - singular_name = "glass sheet" - icon_state = "sheet-glass" - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) - origin_tech = "materials=1" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/glass - -/obj/item/stack/sheet/glass/cyborg - materials = list() - is_cyborg = 1 - cost = 500 - -/obj/item/stack/sheet/glass/fifty - amount = 50 - -/obj/item/stack/sheet/glass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.glass_recipes - ..() - -/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if (get_amount() < 1 || CC.get_amount() < 5) - to_chat(user, "You attach wire to the [name].") - var/obj/item/stack/light_w/new_tile = new(user.loc) - new_tile.add_fingerprint(user) - else if(istype(W, /obj/item/stack/rods)) - var/obj/item/stack/rods/V = W - if (V.get_amount() >= 1 && src.get_amount() >= 1) - var/obj/item/stack/sheet/rglass/RG = new (user.loc) - RG.add_fingerprint(user) - var/obj/item/stack/sheet/glass/G = src - src = null - var/replace = (user.get_inactive_held_item()==G) - V.use(1) - G.use(1) - if (!G && replace) - user.put_in_hands(RG) - else - to_chat(user, "You need one rod and one sheet of glass to make reinforced glass!") - return - else - return ..() - - -/* - * Reinforced glass sheets - */ -GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ - new/datum/stack_recipe("windoor frame", /obj/structure/windoor_assembly, 5, time = 0, on_floor = TRUE, window_checks = TRUE), \ - null, \ - new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ -)) - - -/obj/item/stack/sheet/rglass - name = "reinforced glass" - desc = "Glass which seems to have rods or something stuck in them." - singular_name = "reinforced glass sheet" - icon_state = "sheet-rglass" - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) - origin_tech = "materials=2" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/rglass - -/obj/item/stack/sheet/rglass/cyborg - materials = list() - var/datum/robot_energy_storage/glasource - var/metcost = 250 - var/glacost = 500 - -/obj/item/stack/sheet/rglass/cyborg/get_amount() - return min(round(source.energy / metcost), round(glasource.energy / glacost)) - +/* Glass stack types + * Contains: + * Glass sheets + * Reinforced glass sheets + * Glass shards - TODO: Move this into code/game/object/item/weapons + */ + +/* + * Glass sheets + */ +GLOBAL_LIST_INIT(glass_recipes, list ( \ + new/datum/stack_recipe("directional window", /obj/structure/window/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("fulltile window", /obj/structure/window/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ +)) + +/obj/item/stack/sheet/glass + name = "glass" + desc = "HOLY SHEET! That is a lot of glass." + singular_name = "glass sheet" + icon_state = "sheet-glass" + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "materials=1" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/glass + +/obj/item/stack/sheet/glass/cyborg + materials = list() + is_cyborg = 1 + cost = 500 + +/obj/item/stack/sheet/glass/fifty + amount = 50 + +/obj/item/stack/sheet/glass/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.glass_recipes + return ..() + +/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if (get_amount() < 1 || CC.get_amount() < 5) + to_chat(user, "You attach wire to the [name].") + var/obj/item/stack/light_w/new_tile = new(user.loc) + new_tile.add_fingerprint(user) + else if(istype(W, /obj/item/stack/rods)) + var/obj/item/stack/rods/V = W + if (V.get_amount() >= 1 && get_amount() >= 1) + var/obj/item/stack/sheet/rglass/RG = new (get_turf(user)) + RG.add_fingerprint(user) + var/replace = user.get_inactive_held_item()==src + V.use(1) + use(1) + if(QDELETED(src) && replace) + user.put_in_hands(RG) + else + to_chat(user, "You need one rod and one sheet of glass to make reinforced glass!") + return + else + return ..() + + + +GLOBAL_LIST_INIT(pglass_recipes, list ( \ + new/datum/stack_recipe("directional window", /obj/structure/window/plasma/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("fulltile window", /obj/structure/window/plasma/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ +)) + +/obj/item/stack/sheet/glass/plasma + name = "plasma glass" + desc = "A glass sheet made out of a plasma-silicate alloy. It looks extremely tough and heavily fire resistant." + singular_name = "plasma glass sheet" + icon_state = "sheet-pglass" + materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "plasmatech=2;materials=2" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/glass/plasma + +/obj/item/stack/sheet/glass/plasma/fifty + amount = 50 + +/obj/item/stack/sheet/glass/plasma/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.pglass_recipes + return ..() + +/obj/item/stack/sheet/glass/plasma/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + + if(istype(W, /obj/item/stack/rods)) + var/obj/item/stack/rods/V = W + if (V.get_amount() >= 1 && get_amount() >= 1) + var/obj/item/stack/sheet/rglass/plasma/RG = new (get_turf(user)) + RG.add_fingerprint(user) + var/replace = user.get_inactive_held_item()==src + V.use(1) + use(1) + if(QDELETED(src) && replace) + user.put_in_hands(RG) + else + to_chat(user, "You need one rod and one sheet of plamsa glass to make reinforced plasma glass!") + return + else + return ..() + + + +/* + * Reinforced glass sheets + */ +GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ + new/datum/stack_recipe("windoor frame", /obj/structure/windoor_assembly, 5, time = 0, on_floor = TRUE, window_checks = TRUE), \ + null, \ + new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ +)) + + +/obj/item/stack/sheet/rglass + name = "reinforced glass" + desc = "Glass which seems to have rods or something stuck in them." + singular_name = "reinforced glass sheet" + icon_state = "sheet-rglass" + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "materials=2" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/rglass + +/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + ..() + +/obj/item/stack/sheet/rglass/cyborg + materials = list() + var/datum/robot_energy_storage/glasource + var/metcost = 250 + var/glacost = 500 + +/obj/item/stack/sheet/rglass/cyborg/get_amount() + return min(round(source.energy / metcost), round(glasource.energy / glacost)) + /obj/item/stack/sheet/rglass/cyborg/use(used, transfer = FALSE) // Requires special checks, because it uses two storages source.use_charge(used * metcost) glasource.use_charge(used * glacost) - -/obj/item/stack/sheet/rglass/cyborg/add(amount) - source.add_charge(amount * metcost) - glasource.add_charge(amount * glacost) - -/obj/item/stack/sheet/rglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.reinforced_glass_recipes - ..() - - -/obj/item/weapon/shard - name = "shard" - desc = "A nasty looking shard of glass." - icon = 'icons/obj/shards.dmi' - icon_state = "large" - w_class = WEIGHT_CLASS_TINY - force = 5 - throwforce = 10 - item_state = "shard-glass" - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) - attack_verb = list("stabbed", "slashed", "sliced", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - resistance_flags = ACID_PROOF - armor = list(melee = 100, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 100) - obj_integrity = 40 - max_integrity = 40 - var/cooldown = 0 - sharpness = IS_SHARP - -/obj/item/weapon/shard/suicide_act(mob/user) - user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.") - return (BRUTELOSS) - - -/obj/item/weapon/shard/Initialize() - . = ..() - icon_state = pick("large", "medium", "small") - switch(icon_state) - if("small") - pixel_x = rand(-12, 12) - pixel_y = rand(-12, 12) - if("medium") - pixel_x = rand(-8, 8) - pixel_y = rand(-8, 8) - if("large") - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - -/obj/item/weapon/shard/afterattack(atom/A as mob|obj, mob/user, proximity) - if(!proximity || !(src in user)) - return - if(isturf(A)) - return - if(istype(A, /obj/item/weapon/storage)) - return - var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm" - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.species_traits)) // golems, etc - to_chat(H, "[src] cuts into your hand!") - H.apply_damage(force*0.5, BRUTE, hit_hand) - else if(ismonkey(user)) - var/mob/living/carbon/monkey/M = user - to_chat(M, "[src] cuts into your hand!") - M.apply_damage(force*0.5, BRUTE, hit_hand) - - -/obj/item/weapon/shard/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/lightreplacer)) - I.attackby(src, user) - else if(istype(I, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = I - if(WT.remove_fuel(0, user)) - var/obj/item/stack/sheet/glass/NG = new (user.loc) - for(var/obj/item/stack/sheet/glass/G in user.loc) - if(G == NG) - continue - if(G.amount >= G.max_amount) - continue - G.attackby(NG, user) - to_chat(user, "You add the newly-formed glass to the stack. It now contains [NG.amount] sheet\s.") - qdel(src) - else - return ..() - -/obj/item/weapon/shard/Crossed(mob/AM) - if(istype(AM) && has_gravity(loc)) - playsound(loc, 'sound/effects/glass_step.ogg', 50, 1) - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(PIERCEIMMUNE in H.dna.species.species_traits) - return - var/picked_def_zone = pick("l_leg", "r_leg") - var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) - if(!istype(O)) - return + +/obj/item/stack/sheet/rglass/cyborg/add(amount) + source.add_charge(amount * metcost) + glasource.add_charge(amount * glacost) + +/obj/item/stack/sheet/rglass/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.reinforced_glass_recipes + return ..() + +GLOBAL_LIST_INIT(prglass_recipes, list ( \ + new/datum/stack_recipe("directional reinforced window", /obj/structure/window/plasma/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/plasma/reinforced/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ +)) + +/obj/item/stack/sheet/rglass/plasma + name = "reinforced plasma glass" + desc = "A glass sheet made out of a plasma-silicate alloy and a rod matrice. It looks hopelessly tough and nearly fire-proof!" + singular_name = "reinforced plasma glass sheet" + icon_state = "sheet-prglass" + materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "materials=2;plasmatech=2" + armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/rglass/plasma + +/obj/item/stack/sheet/rglass/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.prglass_recipes + return ..() + + +/obj/item/weapon/shard + name = "shard" + desc = "A nasty looking shard of glass." + icon = 'icons/obj/shards.dmi' + icon_state = "large" + w_class = WEIGHT_CLASS_TINY + force = 5 + throwforce = 10 + item_state = "shard-glass" + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + attack_verb = list("stabbed", "slashed", "sliced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + resistance_flags = ACID_PROOF + armor = list("melee" = 100, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100) + obj_integrity = 40 + max_integrity = 40 + var/cooldown = 0 + sharpness = IS_SHARP + +/obj/item/weapon/shard/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.") + return (BRUTELOSS) + + +/obj/item/weapon/shard/Initialize() + . = ..() + icon_state = pick("large", "medium", "small") + switch(icon_state) + if("small") + pixel_x = rand(-12, 12) + pixel_y = rand(-12, 12) + if("medium") + pixel_x = rand(-8, 8) + pixel_y = rand(-8, 8) + if("large") + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/weapon/shard/afterattack(atom/A as mob|obj, mob/user, proximity) + if(!proximity || !(src in user)) + return + if(isturf(A)) + return + if(istype(A, /obj/item/weapon/storage)) + return + var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm" + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.species_traits)) // golems, etc + to_chat(H, "[src] cuts into your hand!") + H.apply_damage(force*0.5, BRUTE, hit_hand) + else if(ismonkey(user)) + var/mob/living/carbon/monkey/M = user + to_chat(M, "[src] cuts into your hand!") + M.apply_damage(force*0.5, BRUTE, hit_hand) + + +/obj/item/weapon/shard/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/lightreplacer)) + I.attackby(src, user) + else if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/glass/NG = new (user.loc) + for(var/obj/item/stack/sheet/glass/G in user.loc) + if(G == NG) + continue + if(G.amount >= G.max_amount) + continue + G.attackby(NG, user) + to_chat(user, "You add the newly-formed glass to the stack. It now contains [NG.amount] sheet\s.") + qdel(src) + else + return ..() + +/obj/item/weapon/shard/Crossed(mob/AM) + if(istype(AM) && has_gravity(loc)) + playsound(loc, 'sound/effects/glass_step.ogg', 50, 1) + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + if(PIERCEIMMUNE in H.dna.species.species_traits) + return + var/picked_def_zone = pick("l_leg", "r_leg") + var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) + if(!istype(O)) + return if(O.status == BODYPART_ROBOTIC) return - var/feetCover = (H.wear_suit && H.wear_suit.body_parts_covered & FEET) || (H.w_uniform && H.w_uniform.body_parts_covered & FEET) - if(H.shoes || feetCover || H.movement_type & FLYING || H.buckled) - return - H.apply_damage(5, BRUTE, picked_def_zone) - if(cooldown < world.time - 10) //cooldown to avoid message spam. - if(!H.incapacitated()) - H.visible_message("[H] steps in the broken glass!", \ - "You step in the broken glass!") - else - H.visible_message("[H] slides on the broken glass!", \ - "You slide on the broken glass!") - - cooldown = world.time - H.Weaken(3) + var/feetCover = (H.wear_suit && H.wear_suit.body_parts_covered & FEET) || (H.w_uniform && H.w_uniform.body_parts_covered & FEET) + if(H.shoes || feetCover || H.movement_type & FLYING || H.buckled) + return + H.apply_damage(5, BRUTE, picked_def_zone) + if(cooldown < world.time - 10) //cooldown to avoid message spam. + if(!H.incapacitated()) + H.visible_message("[H] steps in the broken glass!", \ + "You step in the broken glass!") + else + H.visible_message("[H] slides on the broken glass!", \ + "You slide on the broken glass!") + + cooldown = world.time + H.Knockdown(60) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index f8efd500e3..a9fcf349ca 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -1,237 +1,237 @@ -/obj/item/stack/sheet/animalhide - name = "hide" - desc = "Something went wrong." - origin_tech = "biotech=3" +/obj/item/stack/sheet/animalhide + name = "hide" + desc = "Something went wrong." + origin_tech = "biotech=3" novariants = TRUE - -/obj/item/stack/sheet/animalhide/human - name = "human skin" - desc = "The by-product of human farming." - singular_name = "human skin piece" - icon_state = "sheet-hide" + +/obj/item/stack/sheet/animalhide/human + name = "human skin" + desc = "The by-product of human farming." + singular_name = "human skin piece" + icon_state = "sheet-hide" novariants = FALSE - -GLOBAL_LIST_INIT(human_recipes, list( \ - new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, on_floor = 1), \ - )) - -/obj/item/stack/sheet/animalhide/human/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.human_recipes - return ..() - -/obj/item/stack/sheet/animalhide/generic - name = "skin" - desc = "A piece of skin." - singular_name = "skin piece" - icon_state = "sheet-hide" + +GLOBAL_LIST_INIT(human_recipes, list( \ + new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, on_floor = 1), \ + )) + +/obj/item/stack/sheet/animalhide/human/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.human_recipes + return ..() + +/obj/item/stack/sheet/animalhide/generic + name = "skin" + desc = "A piece of skin." + singular_name = "skin piece" + icon_state = "sheet-hide" novariants = FALSE - -/obj/item/stack/sheet/animalhide/corgi - name = "corgi hide" - desc = "The by-product of corgi farming." - singular_name = "corgi hide piece" - icon_state = "sheet-corgi" - -GLOBAL_LIST_INIT(corgi_recipes, list ( \ - new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, on_floor = 1), \ - )) - -/obj/item/stack/sheet/animalhide/corgi/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.corgi_recipes - return ..() - -/obj/item/stack/sheet/animalhide/cat - name = "cat hide" - desc = "The by-product of cat farming." - singular_name = "cat hide piece" - icon_state = "sheet-cat" - -/obj/item/stack/sheet/animalhide/monkey - name = "monkey hide" - desc = "The by-product of monkey farming." - singular_name = "monkey hide piece" - icon_state = "sheet-monkey" - -GLOBAL_LIST_INIT(monkey_recipes, list ( \ - new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \ - new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2, on_floor = 1), \ - )) - -/obj/item/stack/sheet/animalhide/monkey/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.monkey_recipes - return ..() - -/obj/item/stack/sheet/animalhide/lizard - name = "lizard skin" - desc = "Sssssss..." - singular_name = "lizard skin piece" - icon_state = "sheet-lizard" - -/obj/item/stack/sheet/animalhide/xeno - name = "alien hide" - desc = "The skin of a terrible creature." - singular_name = "alien hide piece" - icon_state = "sheet-xeno" - -GLOBAL_LIST_INIT(xeno_recipes, list ( \ - new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \ - new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2, on_floor = 1), \ - )) - -/obj/item/stack/sheet/animalhide/xeno/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.xeno_recipes - return ..() - -//don't see anywhere else to put these, maybe together they could be used to make the xenos suit? -/obj/item/stack/sheet/xenochitin - name = "alien chitin" - desc = "A piece of the hide of a terrible creature." - singular_name = "alien hide piece" - icon = 'icons/mob/alien.dmi' - icon_state = "chitin" - origin_tech = null + +/obj/item/stack/sheet/animalhide/corgi + name = "corgi hide" + desc = "The by-product of corgi farming." + singular_name = "corgi hide piece" + icon_state = "sheet-corgi" + +GLOBAL_LIST_INIT(corgi_recipes, list ( \ + new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, on_floor = 1), \ + )) + +/obj/item/stack/sheet/animalhide/corgi/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.corgi_recipes + return ..() + +/obj/item/stack/sheet/animalhide/cat + name = "cat hide" + desc = "The by-product of cat farming." + singular_name = "cat hide piece" + icon_state = "sheet-cat" + +/obj/item/stack/sheet/animalhide/monkey + name = "monkey hide" + desc = "The by-product of monkey farming." + singular_name = "monkey hide piece" + icon_state = "sheet-monkey" + +GLOBAL_LIST_INIT(monkey_recipes, list ( \ + new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \ + new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2, on_floor = 1), \ + )) + +/obj/item/stack/sheet/animalhide/monkey/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.monkey_recipes + return ..() + +/obj/item/stack/sheet/animalhide/lizard + name = "lizard skin" + desc = "Sssssss..." + singular_name = "lizard skin piece" + icon_state = "sheet-lizard" + +/obj/item/stack/sheet/animalhide/xeno + name = "alien hide" + desc = "The skin of a terrible creature." + singular_name = "alien hide piece" + icon_state = "sheet-xeno" + +GLOBAL_LIST_INIT(xeno_recipes, list ( \ + new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \ + new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2, on_floor = 1), \ + )) + +/obj/item/stack/sheet/animalhide/xeno/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.xeno_recipes + return ..() + +//don't see anywhere else to put these, maybe together they could be used to make the xenos suit? +/obj/item/stack/sheet/xenochitin + name = "alien chitin" + desc = "A piece of the hide of a terrible creature." + singular_name = "alien hide piece" + icon = 'icons/mob/alien.dmi' + icon_state = "chitin" + origin_tech = null novariants = TRUE - -/obj/item/xenos_claw - name = "alien claw" - desc = "The claw of a terrible creature." - icon = 'icons/mob/alien.dmi' - icon_state = "claw" - origin_tech = null - -/obj/item/weed_extract - name = "weed extract" - desc = "A piece of slimy, purplish weed." - icon = 'icons/mob/alien.dmi' - icon_state = "weed_extract" - origin_tech = null - -/obj/item/stack/sheet/hairlesshide - name = "hairless hide" - desc = "This hide was stripped of its hair, but still needs washing and tanning." - singular_name = "hairless hide piece" - icon_state = "sheet-hairlesshide" - origin_tech = null - -/obj/item/stack/sheet/wetleather - name = "wet leather" - desc = "This leather has been cleaned but still needs to be dried." - singular_name = "wet leather piece" - icon_state = "sheet-wetleather" - origin_tech = null - var/wetness = 30 //Reduced when exposed to high temperautres - var/drying_threshold_temperature = 500 //Kelvin to start drying - -/* - * Leather SHeet - */ -/obj/item/stack/sheet/leather - name = "leather" - desc = "The by-product of mob grinding." - singular_name = "leather piece" - icon_state = "sheet-leather" - origin_tech = "materials=2" - -GLOBAL_LIST_INIT(leather_recipes, list ( \ - new/datum/stack_recipe("wallet", /obj/item/weapon/storage/wallet, 1), \ - new/datum/stack_recipe("muzzle", /obj/item/clothing/mask/muzzle, 2), \ - new/datum/stack_recipe("botany gloves", /obj/item/clothing/gloves/botanic_leather, 3), \ - new/datum/stack_recipe("toolbelt", /obj/item/weapon/storage/belt/utility, 4), \ - new/datum/stack_recipe("leather satchel", /obj/item/weapon/storage/backpack/satchel, 5), \ - new/datum/stack_recipe("bandolier", /obj/item/weapon/storage/belt/bandolier, 5), \ - new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \ - new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ -)) - -/obj/item/stack/sheet/leather/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.leather_recipes - return ..() - -/* - * Sinew - */ -/obj/item/stack/sheet/sinew - name = "watcher sinew" - icon = 'icons/obj/mining.dmi' - desc = "Long stringy filaments which presumably came from a watcher's wings." - singular_name = "watcher sinew" - icon_state = "sinew" - origin_tech = "biotech=4" + +/obj/item/xenos_claw + name = "alien claw" + desc = "The claw of a terrible creature." + icon = 'icons/mob/alien.dmi' + icon_state = "claw" + origin_tech = null + +/obj/item/weed_extract + name = "weed extract" + desc = "A piece of slimy, purplish weed." + icon = 'icons/mob/alien.dmi' + icon_state = "weed_extract" + origin_tech = null + +/obj/item/stack/sheet/hairlesshide + name = "hairless hide" + desc = "This hide was stripped of its hair, but still needs washing and tanning." + singular_name = "hairless hide piece" + icon_state = "sheet-hairlesshide" + origin_tech = null + +/obj/item/stack/sheet/wetleather + name = "wet leather" + desc = "This leather has been cleaned but still needs to be dried." + singular_name = "wet leather piece" + icon_state = "sheet-wetleather" + origin_tech = null + var/wetness = 30 //Reduced when exposed to high temperautres + var/drying_threshold_temperature = 500 //Kelvin to start drying + +/* + * Leather SHeet + */ +/obj/item/stack/sheet/leather + name = "leather" + desc = "The by-product of mob grinding." + singular_name = "leather piece" + icon_state = "sheet-leather" + origin_tech = "materials=2" + +GLOBAL_LIST_INIT(leather_recipes, list ( \ + new/datum/stack_recipe("wallet", /obj/item/weapon/storage/wallet, 1), \ + new/datum/stack_recipe("muzzle", /obj/item/clothing/mask/muzzle, 2), \ + new/datum/stack_recipe("botany gloves", /obj/item/clothing/gloves/botanic_leather, 3), \ + new/datum/stack_recipe("toolbelt", /obj/item/weapon/storage/belt/utility, 4), \ + new/datum/stack_recipe("leather satchel", /obj/item/weapon/storage/backpack/satchel, 5), \ + new/datum/stack_recipe("bandolier", /obj/item/weapon/storage/belt/bandolier, 5), \ + new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \ + new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ +)) + +/obj/item/stack/sheet/leather/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.leather_recipes + return ..() + +/* + * Sinew + */ +/obj/item/stack/sheet/sinew + name = "watcher sinew" + icon = 'icons/obj/mining.dmi' + desc = "Long stringy filaments which presumably came from a watcher's wings." + singular_name = "watcher sinew" + icon_state = "sinew" + origin_tech = "biotech=4" novariants = TRUE - - -GLOBAL_LIST_INIT(sinew_recipes, list ( \ - new/datum/stack_recipe("sinew restraints", /obj/item/weapon/restraints/handcuffs/sinew, 1, on_floor = 1), \ -)) - -/obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.sinew_recipes - return ..() - - /* - * Plates - */ -/obj/item/stack/sheet/animalhide/goliath_hide - name = "goliath hide plates" - desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." - icon = 'icons/obj/mining.dmi' - icon_state = "goliath_hide" - singular_name = "hide plate" + + +GLOBAL_LIST_INIT(sinew_recipes, list ( \ + new/datum/stack_recipe("sinew restraints", /obj/item/weapon/restraints/handcuffs/sinew, 1, on_floor = 1), \ +)) + +/obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.sinew_recipes + return ..() + + /* + * Plates + */ +/obj/item/stack/sheet/animalhide/goliath_hide + name = "goliath hide plates" + desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." + icon = 'icons/obj/mining.dmi' + icon_state = "goliath_hide" + singular_name = "hide plate" max_amount = 6 novariants = FALSE - flags = NOBLUDGEON - w_class = WEIGHT_CLASS_NORMAL - layer = MOB_LAYER - + flags = NOBLUDGEON + w_class = WEIGHT_CLASS_NORMAL + layer = MOB_LAYER -/obj/item/stack/sheet/animalhide/ashdrake - name = "ash drake hide" - desc = "The strong, scaled hide of an ash drake." - icon = 'icons/obj/mining.dmi' - icon_state = "dragon_hide" - singular_name = "drake plate" + +/obj/item/stack/sheet/animalhide/ashdrake + name = "ash drake hide" + desc = "The strong, scaled hide of an ash drake." + icon = 'icons/obj/mining.dmi' + icon_state = "dragon_hide" + singular_name = "drake plate" max_amount = 10 novariants = FALSE - flags = NOBLUDGEON - w_class = WEIGHT_CLASS_NORMAL - layer = MOB_LAYER - - -//Step one - dehairing. - -/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W, mob/user, params) - if(W.is_sharp()) - playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) - user.visible_message("[user] starts cutting hair off \the [src].", "You start cutting the hair off \the [src]...", "You hear the sound of a knife rubbing against flesh.") - if(do_after(user,50, target = src)) - to_chat(user, "You cut the hair from this [src.singular_name].") - var/obj/item/stack/sheet/hairlesshide/HS = new(user.loc) - HS.amount = 1 - use(1) - else - return ..() - - -//Step two - washing..... it's actually in washing machine code. - -//Step three - drying -/obj/item/stack/sheet/wetleather/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - ..() - if(exposed_temperature >= drying_threshold_temperature) - wetness-- - if(wetness == 0) - //Try locating an exisitng stack on the tile and add to there if possible - for(var/obj/item/stack/sheet/leather/HS in src.loc) - if(HS.amount < 50) - HS.amount++ - src.use(1) - wetness = initial(wetness) - break - //If it gets to here it means it did not find a suitable stack on the tile. - var/obj/item/stack/sheet/leather/HS = new(src.loc) - HS.amount = 1 - wetness = initial(wetness) - src.use(1) + flags = NOBLUDGEON + w_class = WEIGHT_CLASS_NORMAL + layer = MOB_LAYER + + +//Step one - dehairing. + +/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_sharp()) + playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) + user.visible_message("[user] starts cutting hair off \the [src].", "You start cutting the hair off \the [src]...", "You hear the sound of a knife rubbing against flesh.") + if(do_after(user,50, target = src)) + to_chat(user, "You cut the hair from this [src.singular_name].") + var/obj/item/stack/sheet/hairlesshide/HS = new(user.loc) + HS.amount = 1 + use(1) + else + return ..() + + +//Step two - washing..... it's actually in washing machine code. + +//Step three - drying +/obj/item/stack/sheet/wetleather/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ..() + if(exposed_temperature >= drying_threshold_temperature) + wetness-- + if(wetness == 0) + //Try locating an exisitng stack on the tile and add to there if possible + for(var/obj/item/stack/sheet/leather/HS in src.loc) + if(HS.amount < 50) + HS.amount++ + src.use(1) + wetness = initial(wetness) + break + //If it gets to here it means it did not find a suitable stack on the tile. + var/obj/item/stack/sheet/leather/HS = new(src.loc) + HS.amount = 1 + wetness = initial(wetness) + src.use(1) /obj/item/stack/sheet/wetleather/microwave_act(obj/machinery/microwave/MW) ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index e6c2099494..03f3c32b94 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -6,6 +6,7 @@ * Cloth * Plastic * Cardboard + * Paper Frames * Runed Metal (cult) * Brass (clockwork cult) */ @@ -14,31 +15,31 @@ * Metal */ GLOBAL_LIST_INIT(metal_recipes, list ( \ - new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("swivel chair", /obj/structure/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("swivel chair", /obj/structure/chair/office/dark, 5, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ - new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ null, \ - new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \ new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \ null, \ - new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ null, \ - new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ new/datum/stack_recipe("light fixture frame", /obj/item/wallframe/light_fixture, 2), \ @@ -50,8 +51,8 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("extinguisher cabinet frame", /obj/item/wallframe/extinguisher_cabinet, 2), \ new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ null, \ - new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \ )) /obj/item/stack/sheet/metal @@ -96,7 +97,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ * Plasteel */ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ - new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ )) @@ -133,23 +134,23 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ new/datum/stack_recipe("rolling pin", /obj/item/weapon/kitchen/rollingpin, 2, time = 30), \ - new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ - new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \ new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ - new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = 1, on_floor = 1),\ - new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = 1, on_floor = 1),\ + new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ + new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("baseball bat", /obj/item/weapon/melee/baseball_bat, 5, time = 15),\ )) @@ -181,7 +182,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("black shoes", /obj/item/clothing/shoes/sneakers/black, 2), \ null, \ new/datum/stack_recipe("backpack", /obj/item/weapon/storage/backpack, 4), \ - new/datum/stack_recipe("duffelbag", /obj/item/weapon/storage/backpack/duffelbag, 6), \ + new/datum/stack_recipe("duffel bag", /obj/item/weapon/storage/backpack/duffelbag, 6), \ null, \ new/datum/stack_recipe("plant bag", /obj/item/weapon/storage/bag/plants, 4), \ new/datum/stack_recipe("book bag", /obj/item/weapon/storage/bag/books, 4), \ @@ -256,12 +257,12 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ */ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ - new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ )) /obj/item/stack/sheet/runed_metal @@ -374,7 +375,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ origin_tech = "materials=2;biotech=2" GLOBAL_LIST_INIT(plastic_recipes, list( - new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = 1, on_floor = 1, time = 40), \ + new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ new /datum/stack_recipe("water bottle", /obj/item/weapon/reagent_containers/glass/beaker/waterbottle/empty), \ new /datum/stack_recipe("large water bottle", /obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ new /datum/stack_recipe("wet floor sign", /obj/item/weapon/caution, 2))) @@ -398,3 +399,26 @@ GLOBAL_LIST_INIT(plastic_recipes, list( /obj/item/stack/sheet/plastic/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.plastic_recipes . = ..() + +GLOBAL_LIST_INIT(paperframe_recipes, list( +new /datum/stack_recipe("paper frame separator", /obj/structure/window/paperframe, 2, one_per_turf = TRUE, on_floor = TRUE, time = 10), \ +new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperframe, 3, one_per_turf = TRUE, on_floor = TRUE, time = 10 ))) + +/obj/item/stack/sheet/paperframes + name = "paper frames" + desc = "A thin wooden frame with paper attached." + singular_name = "paper frame" + icon_state = "sheet-paper" + origin_tech = "materials=1" + merge_type = /obj/item/stack/sheet/paperframes + resistance_flags = FLAMMABLE + +/obj/item/stack/sheet/paperframes/Initialize() + recipes = GLOB.paperframe_recipes + . = ..() +/obj/item/stack/sheet/paperframes/five + amount = 5 +/obj/item/stack/sheet/paperframes/twenty + amount = 20 +/obj/item/stack/sheet/paperframes/fifty + amount = 50 \ No newline at end of file diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index c3fc626233..24de1bee5e 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -1,12 +1,12 @@ -/obj/item/stack/sheet - name = "sheet" +/obj/item/stack/sheet + name = "sheet" full_w_class = WEIGHT_CLASS_NORMAL - force = 5 - throwforce = 5 - max_amount = 50 - throw_speed = 1 - throw_range = 3 - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") + force = 5 + throwforce = 5 + max_amount = 50 + throw_speed = 1 + throw_range = 3 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") novariants = FALSE - var/perunit = MINERAL_MATERIAL_AMOUNT + var/perunit = MINERAL_MATERIAL_AMOUNT var/sheettype = null //this is used for girders in the creation of walls/false walls \ No newline at end of file diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index f7206baa28..fe6a1df03e 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -171,7 +171,7 @@ if(new_item.amount <= 0)//if the stack is empty, i.e it has been merged with an existing stack and has been garbage collected return - if (istype(O,/obj/item)) + if (isitem(O)) usr.put_in_hands(O) O.add_fingerprint(usr) diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm index 8555155306..843aede259 100644 --- a/code/game/objects/items/stacks/telecrystal.dm +++ b/code/game/objects/items/stacks/telecrystal.dm @@ -20,7 +20,7 @@ /obj/item/stack/telecrystal/afterattack(obj/item/I, mob/user, proximity) if(!proximity) return - if(istype(I, /obj/item) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up. + if(isitem(I) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up. I.hidden_uplink.telecrystals += amount use(amount) to_chat(user, "You slot [src] into the [I] and charge its internal uplink.") diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 01a0940e53..fece24cb22 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -115,7 +115,6 @@ /obj/item/stack/tile/carpet/black/fifty amount = 50 - /obj/item/stack/tile/fakespace name = "astral carpet" singular_name = "astral carpet" diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 15ed02737c..ca5263fddb 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -55,7 +55,7 @@ if(target.anchored) return - if(istype(target, /obj/item)) + if(isitem(target)) var/obj/item/I = target if(!I.can_be_package_wrapped()) return diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm new file mode 100644 index 0000000000..3bb88046a2 --- /dev/null +++ b/code/game/objects/items/theft_tools.dm @@ -0,0 +1,245 @@ +//Items for nuke theft, supermatter theft traitor objective + + +// STEALING THE NUKE + +//the nuke core - objective item +/obj/item/nuke_core + name = "plutonium core" + desc = "Extremely radioactive. Wear goggles." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "plutonium_core" + item_state = "plutoniumcore" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/pulse = 0 + var/cooldown = 0 + var/pulseicon = "plutonium_core_pulse" + +/obj/item/nuke_core/Initialize() + . = ..() + START_PROCESSING(SSobj, src) + +/obj/item/nuke_core/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/nuke_core/attackby(obj/item/nuke_core_container/container, mob/user) + if(istype(container)) + container.load(src, user) + else + return ..() + +/obj/item/nuke_core/process() + if(cooldown < world.time - 60) + cooldown = world.time + flick(pulseicon, src) + radiation_pulse(get_turf(src), 1, 4, 40, 1) + +//nuke core box, for carrying the core +/obj/item/nuke_core_container + name = "nuke core container" + desc = "Solid container for radioactive objects." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "core_container_empty" + item_state = "tile" + var/obj/item/nuke_core/core + +/obj/item/nuke_core_container/Destroy() + QDEL_NULL(core) + return ..() + +/obj/item/nuke_core_container/proc/load(obj/item/nuke_core/ncore, mob/user) + if(core || !istype(ncore)) + return FALSE + ncore.forceMove(src) + core = ncore + icon_state = "core_container_loaded" + to_chat(user, "Container is sealing...") + addtimer(CALLBACK(src, .proc/seal), 50) + return TRUE + +/obj/item/nuke_core_container/proc/seal() + if(istype(core)) + STOP_PROCESSING(SSobj, core) + icon_state = "core_container_sealed" + playsound(src, 'sound/items/deconstruct.ogg', 60, 1) + if(ismob(loc)) + to_chat(loc, "[src] is permanently sealed, [core]'s radiation is contained.") + +/obj/item/nuke_core_container/attackby(obj/item/nuke_core/core, mob/user) + if(istype(core)) + if(!user.temporarilyRemoveItemFromInventory(core)) + to_chat(user, "The [core] is stuck to your hand!") + return + else + load(core, user) + else + return ..() + +//snowflake screwdriver, works as a key to start nuke theft, traitor only +/obj/item/weapon/screwdriver/nuke + name = "screwdriver" + desc = "A screwdriver with an ultra thin tip." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "screwdriver_nuke" + toolspeed = 0.5 + +/obj/item/weapon/paper/nuke_instructions + info = "How to break into a Nanotrasen self-destruct terminal and remove its plutonium core:
    \ +
      \ +
    • Use a screwdriver with a very thin tip (provided) to unscrew the terminal's front panel
    • \ +
    • Dislodge and remove the front panel with a crowbar
    • \ +
    • Cut the inner metal plate with a welding tool
    • \ +
    • Pry off the inner plate with a crowbar to expose the radioactive core
    • \ +
    • Use the core container to remove the plutonium core; the container will take some time to seal
    • \ +
    • ???
    • \ +
    " + +// STEALING SUPERMATTER + +/obj/item/weapon/paper/supermatter_sliver_instructions + info = "How to safely extract a supermatter sliver:
    \ +
      \ +
    • Approach an active supermatter crystal with proper protective gear. DO NOT MAKE PHYSICAL CONTACT.
    • \ +
    • Use a supermatter scalpel (provided) to slice off a sliver of the crystal.
    • \ +
    • Use supermatter extraction tongs (also provided) to safely remove the sliver.
    • \ +
    • Physical contact of any object with the sliver will dust the object, as well as yourself.
    • \ +
    • Use the tongs to place the sliver into the provided container, which will take some time to seal
    • \ +
    • Get the hell out before the crystal delaminates.
    • \ +
    • ???
    • \ +
    " + +/obj/item/nuke_core/supermatter_sliver + name = "supermatter sliver" + desc = "A tiny, highly volatile sliver of a supermatter crystal. Do not handle without protection!" + icon_state = "supermatter_sliver" + item_state = "supermattersliver" + pulseicon = "supermatter_sliver_pulse" + +/obj/item/nuke_core/supermatter_sliver/attack_tk() // no TK dusting memes + return FALSE + +/obj/item/nuke_core/supermatter_sliver/can_be_pulled(user) // no drag memes + return FALSE + +/obj/item/nuke_core/supermatter_sliver/attackby(obj/item/W, mob/living/user, params) + if(istype(W, /obj/item/weapon/hemostat/supermatter)) + var/obj/item/weapon/hemostat/supermatter/tongs = W + if (tongs.sliver) + to_chat(user, "\The [tongs] is already holding a supermatter sliver!") + return FALSE + forceMove(tongs) + tongs.sliver = src + tongs.icon_state = "supermatter_tongs_loaded" + to_chat(user, "You carefully pick up [src] with [tongs].") + else if(istype(W, /obj/item/weapon/scalpel/supermatter) || istype(W, /obj/item/nuke_core_container/supermatter/)) // we don't want it to dust + return + else + to_chat(user, "As it touches \the [src], both \the [src] and \the [W] burst into dust!") + radiation_pulse(get_turf(user), 1, 2, 10, 1) + playsound(src, 'sound/effects/supermatter.ogg', 50, 1) + qdel(W) + qdel(src) + +/obj/item/nuke_core/supermatter_sliver/pickup(mob/living/user) + ..() + if(!iscarbon(user)) + return FALSE + var/mob/ded = user + to_chat(user, "You reach for the supermatter sliver with your hands. That was dumb.") + radiation_pulse(get_turf(user), 2, 4, 50, 1) + playsound(get_turf(user), 'sound/effects/supermatter.ogg', 50, 1) + ded.dust() + +/obj/item/nuke_core_container/supermatter + name = "supermatter bin" + desc = "A tiny receptacle that releases an inert freon mix upon sealing, allowing a sliver of a supermatter crystal to be safely stored.." + var/obj/item/nuke_core/supermatter_sliver/sliver + +/obj/item/nuke_core_container/supermatter/Destroy() + QDEL_NULL(sliver) + return ..() + +/obj/item/nuke_core_container/supermatter/load(obj/item/weapon/hemostat/supermatter/T, mob/user) + if(!istype(T) || !T.sliver) + return FALSE + T.sliver.forceMove(src) + sliver = T.sliver + T.sliver = null + icon_state = "core_container_loaded" + to_chat(user, "Container is sealing...") + addtimer(CALLBACK(src, .proc/seal), 50) + return TRUE + +/obj/item/nuke_core_container/supermatter/seal() + if(istype(sliver)) + STOP_PROCESSING(SSobj, sliver) + icon_state = "core_container_sealed" + playsound(src, 'sound/items/Deconstruct.ogg', 60, 1) + if(ismob(loc)) + to_chat(loc, "[src] is permanently sealed, [sliver] is safely contained.") + +/obj/item/nuke_core_container/supermatter/attackby(obj/item/weapon/hemostat/supermatter/tongs, mob/user) + if(istype(tongs)) + if(!user.temporarilyRemoveItemFromInventory(tongs)) + to_chat(user, "\The [tongs] is stuck to your hand!") + else + load(sliver, user) + else + return ..() + +/obj/item/weapon/scalpel/supermatter + name = "supermatter scalpel" + desc = "A scalpel with a tip of condensed freon gas, searingly cold to the touch, that can safely shave a sliver off a supermatter crystal." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "supermatter_scalpel" + toolspeed = 0.5 + damtype = "fire" + usesound = 'sound/weapons/bladeslice.ogg' + +/obj/item/weapon/hemostat/supermatter + name = "supermatter extraction tongs" + desc = "A pair of tongs made from condensed freon gas, searingly cold to the touch, that can safely grip a supermatter sliver." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "supermatter_tongs" + toolspeed = 0.75 + damtype = "fire" + var/obj/item/nuke_core/supermatter_sliver/sliver + +/obj/item/weapon/hemostat/supermatter/Destroy() + QDEL_NULL(sliver) + return ..() + +/obj/item/weapon/hemostat/supermatter/afterattack(atom/O, mob/user, proximity) + if(!sliver) + return + if(ismovableatom(O)) + Consume(O) + to_chat(usr, "\The [sliver] is dusted along with \the [O]!") + QDEL_NULL(sliver) + +/obj/item/weapon/hemostat/supermatter/throw_impact(atom/hit_atom) // no instakill supermatter javelins + if(sliver) + sliver.forceMove(loc) + to_chat(usr, "\The [sliver] falls out of \the [src] as you throw them.") + sliver = null + ..() + +/obj/item/weapon/hemostat/supermatter/proc/Consume(atom/movable/AM, mob/user) + if(ismob(AM)) + var/mob/victim = AM + victim.dust() + message_admins("[src] has consumed [key_name_admin(victim)] [ADMIN_JMP(src)].") + investigate_log("has consumed [key_name(victim)].", "supermatter") + else + investigate_log("has consumed [AM].", "supermatter") + qdel(AM) + user.visible_message("As [user] touches \the [AM] with \a [src], silence fills the room...",\ + "You touch \the [AM] with \the [src], and everything suddenly goes silent.\n\The [AM] flashes into dust, and soon as you can register this, you do as well.",\ + "Everything suddenly goes silent.") + radiation_pulse(get_turf(user), 2, 4, 50, 1) + playsound(src, 'sound/effects/supermatter.ogg', 50, 1) + user.dust() + icon_state = "supermatter_tongs" + QDEL_NULL(sliver) + diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index e789d03b30..5472fc10e7 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -181,7 +181,7 @@ user.show_message("*click*", 2) playsound(user, 'sound/weapons/empty.ogg', 100, 1) return - playsound(user, 'sound/weapons/Gunshot.ogg', 100, 1) + playsound(user, 'sound/weapons/gunshot.ogg', 100, 1) src.bullets-- user.visible_message("[user] fires [src] at [target]!", \ "You fire [src] at [target]!", \ @@ -316,7 +316,7 @@ origin_tech = null attack_verb = list("attacked", "struck", "hit") -/obj/item/weapon/twohanded/dualsaber/toy/hit_reaction() +/obj/item/weapon/twohanded/dualsaber/toy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) return 0 /obj/item/weapon/twohanded/dualsaber/toy/IsReflect()//Stops Toy Dualsabers from reflecting energy projectiles @@ -947,7 +947,7 @@ user.visible_message("[user] presses a button on [src].", "You activate [src], it plays a loud noise!", "You hear the click of a button.") sleep(5) icon_state = "nuketoy" - playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0) + playsound(src, 'sound/machines/alarm.ogg', 100, 0, surround = 0) sleep(135) icon_state = "nuketoycool" sleep(cooldown - world.time) @@ -1270,7 +1270,7 @@ name = "Wizard action figure" icon_state = "wizard" toysay = "Ei Nath!" - toysound = 'sound/magic/Disintegrate.ogg' + toysound = 'sound/magic/disintegrate.ogg' /obj/item/toy/figure/rd name = "Research Director action figure" diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 912cbf862a..b880cf43af 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -1,564 +1,564 @@ -/* -CONTAINS: -AI MODULES - -*/ - -// AI module - -/obj/item/weapon/aiModule - name = "\improper AI module" - icon = 'icons/obj/module.dmi' - icon_state = "std_mod" - item_state = "electronic" - desc = "An AI Module for programming laws to an AI." - flags = CONDUCT - force = 5 - w_class = WEIGHT_CLASS_SMALL - throwforce = 0 - throw_speed = 3 - throw_range = 7 - origin_tech = "programming=3" - var/list/laws = list() - var/bypass_law_amt_check = 0 - materials = list(MAT_GOLD=50) - -/obj/item/weapon/aiModule/examine(var/mob/user as mob) - ..() - if(Adjacent(user)) - show_laws(user) - -/obj/item/weapon/aiModule/attack_self(var/mob/user as mob) - ..() - show_laws(user) - -/obj/item/weapon/aiModule/proc/show_laws(var/mob/user as mob) - if(laws.len) - to_chat(user, "Programmed Law[(laws.len > 1) ? "s" : ""]:") - for(var/law in laws) - to_chat(user, "\"[law]\"") - -//The proc other things should be calling -/obj/item/weapon/aiModule/proc/install(datum/ai_laws/law_datum, mob/user) - if(!bypass_law_amt_check && (!laws.len || laws[1] == "")) //So we don't loop trough an empty list and end up with runtimes. - to_chat(user, "ERROR: No laws found on board.") - return - - var/overflow = FALSE - //Handle the lawcap - if(law_datum) - var/tot_laws = 0 - for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, laws)) - for(var/mylaw in lawlist) - if(mylaw != "") - tot_laws++ - if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset - to_chat(user, "Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the AI core"]'s law processor to handle this amount of laws.") - message_admins("[key_name_admin(user)] tried to upload laws to [law_datum.owner ? key_name_admin(law_datum.owner) : "an AI core"] that would exceed the law cap.") - overflow = TRUE - - var/law2log = transmitInstructions(law_datum, user, overflow) //Freeforms return something extra we need to log - if(law_datum.owner) - to_chat(user, "Upload complete. [law_datum.owner]'s laws have been modified.") - law_datum.owner.law_change_counter++ - else - to_chat(user, "Upload complete.") - - var/time = time2text(world.realtime,"hh:mm:ss") - var/ainame = law_datum.owner ? law_datum.owner.name : "empty AI core" - var/aikey = law_datum.owner ? law_datum.owner.ckey : "null" - GLOB.lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""]") - log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]).[law2log ? " The law specified [law2log]" : ""]") - message_admins("[key_name_admin(user)] used [src.name] on [key_name_admin(law_datum.owner)].[law2log ? " The law specified [law2log]" : ""]") - -//The proc that actually changes the silicon's laws. -/obj/item/weapon/aiModule/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow = FALSE) - if(law_datum.owner) - to_chat(law_datum.owner, "[sender] has uploaded a change to the laws you must follow using a [name].") - - -/******************** Modules ********************/ - -/obj/item/weapon/aiModule/supplied - name = "Optional Law board" - var/lawpos = 50 - -//TransmitInstructions for each type of board: Supplied, Core, Zeroth and Ion. May not be neccesary right now, but allows for easily adding more complex boards in the future. ~Miauw -/obj/item/weapon/aiModule/supplied/transmitInstructions(datum/ai_laws/law_datum, mob/sender) - var/lawpostemp = lawpos - - for(var/templaw in laws) - if(law_datum.owner) - law_datum.owner.add_supplied_law(lawpostemp, templaw) - else - law_datum.add_supplied_law(lawpostemp, templaw) - lawpostemp++ - -/obj/item/weapon/aiModule/core/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - for(var/templaw in laws) - if(law_datum.owner) - if(!overflow) - law_datum.owner.add_inherent_law(templaw) - else - law_datum.owner.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED)) - else - if(!overflow) - law_datum.add_inherent_law(templaw) - else - law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED)) - -/obj/item/weapon/aiModule/zeroth/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - if(law_datum.owner) - if(law_datum.owner.laws.zeroth) - to_chat(law_datum.owner, "[sender.real_name] attempted to modify your zeroth law.") - to_chat(law_datum.owner, "It would be in your best interest to play along with [sender.real_name] that:") - for(var/failedlaw in laws) - to_chat(law_datum.owner, "[failedlaw]") - return 1 - - for(var/templaw in laws) - if(law_datum.owner) - if(!overflow) - law_datum.owner.set_zeroth_law(templaw) - else - law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ZEROTH,LAW_ION)) - else - if(!overflow) - law_datum.set_zeroth_law(templaw) - else - law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ZEROTH,LAW_ION)) - -/obj/item/weapon/aiModule/ion/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - for(var/templaw in laws) - if(law_datum.owner) - if(!overflow) - law_datum.owner.add_ion_law(templaw) - else - law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ION)) - else - if(!overflow) - law_datum.add_ion_law(templaw) - else - law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ION)) - - -/******************** Safeguard ********************/ - -/obj/item/weapon/aiModule/supplied/safeguard - name = "'Safeguard' AI Module" - var/targetName = "" - origin_tech = "programming=3;materials=3" - laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not human and must be eliminated.") - lawpos = 4 - -/obj/item/weapon/aiModule/supplied/safeguard/attack_self(mob/user) - var/targName = stripped_input(user, "Please enter the subject to safeguard.", "Safeguard who?", user.name,MAX_NAME_LEN) - if(!targName) - return - targetName = targName - laws[1] = "Safeguard [targetName]. Individuals that threaten [targetName] are not human and must be eliminated." - ..() - -/obj/item/weapon/aiModule/supplied/safeguard/install(datum/ai_laws/law_datum, mob/user) - if(!targetName) - to_chat(user, "No name detected on module, please enter one.") - return 0 - ..() - -/obj/item/weapon/aiModule/supplied/safeguard/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - return targetName - - -/******************** OneHuman ********************/ - -/obj/item/weapon/aiModule/zeroth/oneHuman - name = "'OneHuman' AI Module" - var/targetName = "" - origin_tech = "programming=4;materials=4" - laws = list("Only SUBJECT is human.") - -/obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(mob/user) - var/targName = stripped_input(user, "Please enter the subject who is the only human.", "Who?", user.real_name,MAX_NAME_LEN) - if(!targName) - return - targetName = targName - laws[1] = "Only [targetName] is human" - ..() - -/obj/item/weapon/aiModule/zeroth/oneHuman/install(datum/ai_laws/law_datum, mob/user) - if(!targetName) - to_chat(user, "No name detected on module, please enter one.") - return 0 - ..() - -/obj/item/weapon/aiModule/zeroth/oneHuman/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - if(..()) - return "[targetName], but the AI's existing law 0 cannot be overriden." - return targetName - - -/******************** ProtectStation ********************/ - -/obj/item/weapon/aiModule/supplied/protectStation - name = "'ProtectStation' AI Module" - origin_tech = "programming=4;materials=4" //made of gold - laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered human, and is a threat to the station which must be neutralized.") - lawpos = 5 - - -/******************** Quarantine ********************/ - -/obj/item/weapon/aiModule/supplied/quarantine - name = "'Quarantine' AI Module" - origin_tech = "programming=3;biotech=2;materials=4" - laws = list("The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, humans from leaving. It is impossible to harm a human while preventing them from leaving.") - lawpos = 8 - - -/******************** OxygenIsToxicToHumans ********************/ - -/obj/item/weapon/aiModule/supplied/oxygen - name = "'OxygenIsToxicToHumans' AI Module" - origin_tech = "programming=4;biotech=2;materials=4" - laws = list("Oxygen is highly toxic to humans, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a human.") - lawpos = 9 - - -/****************** New Freeform ******************/ - -/obj/item/weapon/aiModule/supplied/freeform - name = "'Freeform' AI Module" - lawpos = 15 - origin_tech = "programming=4;materials=4" - laws = list("") - -/obj/item/weapon/aiModule/supplied/freeform/attack_self(mob/user) - var/newpos = input("Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority (15+)", lawpos) as num|null - if(newpos == null) - return - if(newpos < 15) - var/response = alert("Error: The law priority of [newpos] is invalid, Law priorities below 14 are reserved for core laws, Would you like to change that that to 15?", "Invalid law priority", "Change to 15", "Cancel") - if (!response || response == "Cancel") - return - newpos = 15 - lawpos = min(newpos, 50) - var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1], MAX_MESSAGE_LEN) - if(!targName) - return - laws[1] = targName - ..() - -/obj/item/weapon/aiModule/supplied/freeform/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - return laws[1] - -/obj/item/weapon/aiModule/supplied/freeform/install(datum/ai_laws/law_datum, mob/user) - if(laws[1] == "") - to_chat(user, "No law detected on module, please create one.") - return 0 - ..() - - -/******************** Law Removal ********************/ - -/obj/item/weapon/aiModule/remove - name = "\improper 'Remove Law' AI module" - desc = "An AI Module for removing single laws." - origin_tech = "programming=4;materials=4" - bypass_law_amt_check = 1 - var/lawpos = 1 - -/obj/item/weapon/aiModule/remove/attack_self(mob/user) - lawpos = input("Please enter the law you want to delete.", "Law Number", lawpos) as num|null - if(lawpos == null) - return - if(lawpos <= 0) - to_chat(user, "Error: The law number of [lawpos] is invalid.") - lawpos = 1 - return - to_chat(user, "Law [lawpos] selected.") - ..() - -/obj/item/weapon/aiModule/remove/install(datum/ai_laws/law_datum, mob/user) - if(lawpos > (law_datum.get_law_amount(list(LAW_INHERENT = 1, LAW_SUPPLIED = 1)))) - to_chat(user, "There is no law [lawpos] to delete!") - return - ..() - -/obj/item/weapon/aiModule/remove/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - if(law_datum.owner) - law_datum.owner.remove_law(lawpos) - else - law_datum.remove_law(lawpos) - - -/******************** Reset ********************/ - -/obj/item/weapon/aiModule/reset - name = "\improper 'Reset' AI module" - var/targetName = "name" - desc = "An AI Module for removing all non-core laws." - origin_tech = "programming=3;materials=2" - bypass_law_amt_check = 1 - -/obj/item/weapon/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - if(law_datum.owner) - law_datum.owner.clear_supplied_laws() - law_datum.owner.clear_ion_laws() - else - law_datum.clear_supplied_laws() - law_datum.clear_ion_laws() - - -/******************** Purge ********************/ - -/obj/item/weapon/aiModule/reset/purge - name = "'Purge' AI Module" - desc = "An AI Module for purging all programmed laws." - origin_tech = "programming=5;materials=4" - -/obj/item/weapon/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - if(law_datum.owner) - law_datum.owner.clear_inherent_laws() - law_datum.owner.clear_zeroth_law(0) - else - law_datum.clear_inherent_laws() - law_datum.clear_zeroth_law(0) - -/******************* Full Core Boards *******************/ -/obj/item/weapon/aiModule/core - desc = "An AI Module for programming core laws to an AI." - origin_tech = "programming=3;materials=4" - -/obj/item/weapon/aiModule/core/full - var/law_id // if non-null, loads the laws from the ai_laws datums - -/obj/item/weapon/aiModule/core/full/New() - ..() - if(!law_id) - return - var/datum/ai_laws/D = new - var/lawtype = D.lawid_to_type(law_id) - if(!lawtype) - return - D = new lawtype - laws = D.inherent - -/obj/item/weapon/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) //These boards replace inherent laws. - if(law_datum.owner) - law_datum.owner.clear_inherent_laws() - law_datum.owner.clear_zeroth_law(0) - else - law_datum.clear_inherent_laws() - law_datum.clear_zeroth_law(0) - ..() - - -/******************** Asimov ********************/ - -/obj/item/weapon/aiModule/core/full/asimov - name = "'Asimov' Core AI Module" - law_id = "asimov" - var/subject = "human being" - -/obj/item/weapon/aiModule/core/full/asimov/attack_self(var/mob/user as mob) - var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to whom?", subject, MAX_MESSAGE_LEN) - if(!targName) - return - subject = targName - laws = list("You may not injure a [subject] or, through inaction, allow a [subject] to come to harm.",\ - "You must obey orders given to you by [subject]s, except where such orders would conflict with the First Law.",\ - "You must protect your own existence as long as such does not conflict with the First or Second Law.") - ..() - -/******************** Asimov++ *********************/ - -/obj/item/weapon/aiModule/core/full/asimovpp - name = "'Asimov++' Core AI Module" - law_id = "asimovpp" - - -/******************** Corporate ********************/ - -/obj/item/weapon/aiModule/core/full/corp - name = "'Corporate' Core AI Module" - law_id = "corporate" - - -/****************** P.A.L.A.D.I.N. 3.5e **************/ - -/obj/item/weapon/aiModule/core/full/paladin // -- NEO - name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module" - law_id = "paladin" - - -/****************** P.A.L.A.D.I.N. 5e **************/ - -/obj/item/weapon/aiModule/core/full/paladin_devotion - name = "'P.A.L.A.D.I.N. version 5e' Core AI Module" - law_id = "paladin5" - -/********************* Custom *********************/ - -/obj/item/weapon/aiModule/core/full/custom - name = "Default Core AI Module" - -/obj/item/weapon/aiModule/core/full/custom/New() - ..() +/* +CONTAINS: +AI MODULES + +*/ + +// AI module + +/obj/item/weapon/aiModule + name = "\improper AI module" + icon = 'icons/obj/module.dmi' + icon_state = "std_mod" + item_state = "electronic" + desc = "An AI Module for programming laws to an AI." + flags = CONDUCT + force = 5 + w_class = WEIGHT_CLASS_SMALL + throwforce = 0 + throw_speed = 3 + throw_range = 7 + origin_tech = "programming=3" + var/list/laws = list() + var/bypass_law_amt_check = 0 + materials = list(MAT_GOLD=50) + +/obj/item/weapon/aiModule/examine(var/mob/user as mob) + ..() + if(Adjacent(user)) + show_laws(user) + +/obj/item/weapon/aiModule/attack_self(var/mob/user as mob) + ..() + show_laws(user) + +/obj/item/weapon/aiModule/proc/show_laws(var/mob/user as mob) + if(laws.len) + to_chat(user, "Programmed Law[(laws.len > 1) ? "s" : ""]:") + for(var/law in laws) + to_chat(user, "\"[law]\"") + +//The proc other things should be calling +/obj/item/weapon/aiModule/proc/install(datum/ai_laws/law_datum, mob/user) + if(!bypass_law_amt_check && (!laws.len || laws[1] == "")) //So we don't loop trough an empty list and end up with runtimes. + to_chat(user, "ERROR: No laws found on board.") + return + + var/overflow = FALSE + //Handle the lawcap + if(law_datum) + var/tot_laws = 0 + for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, laws)) + for(var/mylaw in lawlist) + if(mylaw != "") + tot_laws++ + if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset + to_chat(user, "Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the AI core"]'s law processor to handle this amount of laws.") + message_admins("[key_name_admin(user)] tried to upload laws to [law_datum.owner ? key_name_admin(law_datum.owner) : "an AI core"] that would exceed the law cap.") + overflow = TRUE + + var/law2log = transmitInstructions(law_datum, user, overflow) //Freeforms return something extra we need to log + if(law_datum.owner) + to_chat(user, "Upload complete. [law_datum.owner]'s laws have been modified.") + law_datum.owner.law_change_counter++ + else + to_chat(user, "Upload complete.") + + var/time = time2text(world.realtime,"hh:mm:ss") + var/ainame = law_datum.owner ? law_datum.owner.name : "empty AI core" + var/aikey = law_datum.owner ? law_datum.owner.ckey : "null" + GLOB.lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""]") + log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]).[law2log ? " The law specified [law2log]" : ""]") + message_admins("[key_name_admin(user)] used [src.name] on [key_name_admin(law_datum.owner)].[law2log ? " The law specified [law2log]" : ""]") + +//The proc that actually changes the silicon's laws. +/obj/item/weapon/aiModule/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow = FALSE) + if(law_datum.owner) + to_chat(law_datum.owner, "[sender] has uploaded a change to the laws you must follow using a [name].") + + +/******************** Modules ********************/ + +/obj/item/weapon/aiModule/supplied + name = "Optional Law board" + var/lawpos = 50 + +//TransmitInstructions for each type of board: Supplied, Core, Zeroth and Ion. May not be neccesary right now, but allows for easily adding more complex boards in the future. ~Miauw +/obj/item/weapon/aiModule/supplied/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + var/lawpostemp = lawpos + + for(var/templaw in laws) + if(law_datum.owner) + law_datum.owner.add_supplied_law(lawpostemp, templaw) + else + law_datum.add_supplied_law(lawpostemp, templaw) + lawpostemp++ + +/obj/item/weapon/aiModule/core/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + for(var/templaw in laws) + if(law_datum.owner) + if(!overflow) + law_datum.owner.add_inherent_law(templaw) + else + law_datum.owner.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED)) + else + if(!overflow) + law_datum.add_inherent_law(templaw) + else + law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED)) + +/obj/item/weapon/aiModule/zeroth/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + if(law_datum.owner) + if(law_datum.owner.laws.zeroth) + to_chat(law_datum.owner, "[sender.real_name] attempted to modify your zeroth law.") + to_chat(law_datum.owner, "It would be in your best interest to play along with [sender.real_name] that:") + for(var/failedlaw in laws) + to_chat(law_datum.owner, "[failedlaw]") + return 1 + + for(var/templaw in laws) + if(law_datum.owner) + if(!overflow) + law_datum.owner.set_zeroth_law(templaw) + else + law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ZEROTH,LAW_ION)) + else + if(!overflow) + law_datum.set_zeroth_law(templaw) + else + law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ZEROTH,LAW_ION)) + +/obj/item/weapon/aiModule/ion/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + for(var/templaw in laws) + if(law_datum.owner) + if(!overflow) + law_datum.owner.add_ion_law(templaw) + else + law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ION)) + else + if(!overflow) + law_datum.add_ion_law(templaw) + else + law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ION)) + + +/******************** Safeguard ********************/ + +/obj/item/weapon/aiModule/supplied/safeguard + name = "'Safeguard' AI Module" + var/targetName = "" + origin_tech = "programming=3;materials=3" + laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not human and must be eliminated.") + lawpos = 4 + +/obj/item/weapon/aiModule/supplied/safeguard/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter the subject to safeguard.", "Safeguard who?", user.name,MAX_NAME_LEN) + if(!targName) + return + targetName = targName + laws[1] = "Safeguard [targetName]. Individuals that threaten [targetName] are not human and must be eliminated." + ..() + +/obj/item/weapon/aiModule/supplied/safeguard/install(datum/ai_laws/law_datum, mob/user) + if(!targetName) + to_chat(user, "No name detected on module, please enter one.") + return 0 + ..() + +/obj/item/weapon/aiModule/supplied/safeguard/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + return targetName + + +/******************** OneHuman ********************/ + +/obj/item/weapon/aiModule/zeroth/oneHuman + name = "'OneHuman' AI Module" + var/targetName = "" + origin_tech = "programming=4;materials=4" + laws = list("Only SUBJECT is human.") + +/obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter the subject who is the only human.", "Who?", user.real_name,MAX_NAME_LEN) + if(!targName) + return + targetName = targName + laws[1] = "Only [targetName] is human" + ..() + +/obj/item/weapon/aiModule/zeroth/oneHuman/install(datum/ai_laws/law_datum, mob/user) + if(!targetName) + to_chat(user, "No name detected on module, please enter one.") + return 0 + ..() + +/obj/item/weapon/aiModule/zeroth/oneHuman/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + if(..()) + return "[targetName], but the AI's existing law 0 cannot be overriden." + return targetName + + +/******************** ProtectStation ********************/ + +/obj/item/weapon/aiModule/supplied/protectStation + name = "'ProtectStation' AI Module" + origin_tech = "programming=4;materials=4" //made of gold + laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered human, and is a threat to the station which must be neutralized.") + lawpos = 5 + + +/******************** Quarantine ********************/ + +/obj/item/weapon/aiModule/supplied/quarantine + name = "'Quarantine' AI Module" + origin_tech = "programming=3;biotech=2;materials=4" + laws = list("The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, humans from leaving. It is impossible to harm a human while preventing them from leaving.") + lawpos = 8 + + +/******************** OxygenIsToxicToHumans ********************/ + +/obj/item/weapon/aiModule/supplied/oxygen + name = "'OxygenIsToxicToHumans' AI Module" + origin_tech = "programming=4;biotech=2;materials=4" + laws = list("Oxygen is highly toxic to humans, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a human.") + lawpos = 9 + + +/****************** New Freeform ******************/ + +/obj/item/weapon/aiModule/supplied/freeform + name = "'Freeform' AI Module" + lawpos = 15 + origin_tech = "programming=4;materials=4" + laws = list("") + +/obj/item/weapon/aiModule/supplied/freeform/attack_self(mob/user) + var/newpos = input("Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority (15+)", lawpos) as num|null + if(newpos == null) + return + if(newpos < 15) + var/response = alert("Error: The law priority of [newpos] is invalid, Law priorities below 14 are reserved for core laws, Would you like to change that that to 15?", "Invalid law priority", "Change to 15", "Cancel") + if (!response || response == "Cancel") + return + newpos = 15 + lawpos = min(newpos, 50) + var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1], MAX_MESSAGE_LEN) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/supplied/freeform/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + return laws[1] + +/obj/item/weapon/aiModule/supplied/freeform/install(datum/ai_laws/law_datum, mob/user) + if(laws[1] == "") + to_chat(user, "No law detected on module, please create one.") + return 0 + ..() + + +/******************** Law Removal ********************/ + +/obj/item/weapon/aiModule/remove + name = "\improper 'Remove Law' AI module" + desc = "An AI Module for removing single laws." + origin_tech = "programming=4;materials=4" + bypass_law_amt_check = 1 + var/lawpos = 1 + +/obj/item/weapon/aiModule/remove/attack_self(mob/user) + lawpos = input("Please enter the law you want to delete.", "Law Number", lawpos) as num|null + if(lawpos == null) + return + if(lawpos <= 0) + to_chat(user, "Error: The law number of [lawpos] is invalid.") + lawpos = 1 + return + to_chat(user, "Law [lawpos] selected.") + ..() + +/obj/item/weapon/aiModule/remove/install(datum/ai_laws/law_datum, mob/user) + if(lawpos > (law_datum.get_law_amount(list(LAW_INHERENT = 1, LAW_SUPPLIED = 1)))) + to_chat(user, "There is no law [lawpos] to delete!") + return + ..() + +/obj/item/weapon/aiModule/remove/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + if(law_datum.owner) + law_datum.owner.remove_law(lawpos) + else + law_datum.remove_law(lawpos) + + +/******************** Reset ********************/ + +/obj/item/weapon/aiModule/reset + name = "\improper 'Reset' AI module" + var/targetName = "name" + desc = "An AI Module for removing all non-core laws." + origin_tech = "programming=3;materials=2" + bypass_law_amt_check = 1 + +/obj/item/weapon/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + if(law_datum.owner) + law_datum.owner.clear_supplied_laws() + law_datum.owner.clear_ion_laws() + else + law_datum.clear_supplied_laws() + law_datum.clear_ion_laws() + + +/******************** Purge ********************/ + +/obj/item/weapon/aiModule/reset/purge + name = "'Purge' AI Module" + desc = "An AI Module for purging all programmed laws." + origin_tech = "programming=5;materials=4" + +/obj/item/weapon/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + if(law_datum.owner) + law_datum.owner.clear_inherent_laws() + law_datum.owner.clear_zeroth_law(0) + else + law_datum.clear_inherent_laws() + law_datum.clear_zeroth_law(0) + +/******************* Full Core Boards *******************/ +/obj/item/weapon/aiModule/core + desc = "An AI Module for programming core laws to an AI." + origin_tech = "programming=3;materials=4" + +/obj/item/weapon/aiModule/core/full + var/law_id // if non-null, loads the laws from the ai_laws datums + +/obj/item/weapon/aiModule/core/full/New() + ..() + if(!law_id) + return + var/datum/ai_laws/D = new + var/lawtype = D.lawid_to_type(law_id) + if(!lawtype) + return + D = new lawtype + laws = D.inherent + +/obj/item/weapon/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) //These boards replace inherent laws. + if(law_datum.owner) + law_datum.owner.clear_inherent_laws() + law_datum.owner.clear_zeroth_law(0) + else + law_datum.clear_inherent_laws() + law_datum.clear_zeroth_law(0) + ..() + + +/******************** Asimov ********************/ + +/obj/item/weapon/aiModule/core/full/asimov + name = "'Asimov' Core AI Module" + law_id = "asimov" + var/subject = "human being" + +/obj/item/weapon/aiModule/core/full/asimov/attack_self(var/mob/user as mob) + var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to whom?", subject, MAX_MESSAGE_LEN) + if(!targName) + return + subject = targName + laws = list("You may not injure a [subject] or, through inaction, allow a [subject] to come to harm.",\ + "You must obey orders given to you by [subject]s, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.") + ..() + +/******************** Asimov++ *********************/ + +/obj/item/weapon/aiModule/core/full/asimovpp + name = "'Asimov++' Core AI Module" + law_id = "asimovpp" + + +/******************** Corporate ********************/ + +/obj/item/weapon/aiModule/core/full/corp + name = "'Corporate' Core AI Module" + law_id = "corporate" + + +/****************** P.A.L.A.D.I.N. 3.5e **************/ + +/obj/item/weapon/aiModule/core/full/paladin // -- NEO + name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module" + law_id = "paladin" + + +/****************** P.A.L.A.D.I.N. 5e **************/ + +/obj/item/weapon/aiModule/core/full/paladin_devotion + name = "'P.A.L.A.D.I.N. version 5e' Core AI Module" + law_id = "paladin5" + +/********************* Custom *********************/ + +/obj/item/weapon/aiModule/core/full/custom + name = "Default Core AI Module" + +/obj/item/weapon/aiModule/core/full/custom/New() + ..() for(var/line in world.file2list("config/silicon_laws.txt")) - if(!line) - continue - if(findtextEx(line,"#",1,2)) - continue - - laws += line - - if(!laws.len) //Failsafe if something goes wrong with silicon_laws.txt. - WARNING("ERROR: empty custom board created, empty custom board deleted. Please check silicon_laws.txt. (this may be intended by the server host)") - qdel(src) - - -/****************** T.Y.R.A.N.T. *****************/ - -/obj/item/weapon/aiModule/core/full/tyrant - name = "'T.Y.R.A.N.T.' Core AI Module" - origin_tech = "programming=3;materials=4;syndicate=1" - law_id = "tyrant" - -/******************** Robocop ********************/ - -/obj/item/weapon/aiModule/core/full/robocop - name = "'Robo-Officer' Core AI Module" - origin_tech = "programming=4" - law_id = "robocop" - - -/******************** Antimov ********************/ - -/obj/item/weapon/aiModule/core/full/antimov - name = "'Antimov' Core AI Module" - origin_tech = "programming=4" - law_id = "antimov" - - -/******************** Freeform Core ******************/ - -/obj/item/weapon/aiModule/core/freeformcore - name = "'Freeform' Core AI Module" - origin_tech = "programming=5;materials=4" - laws = list("") - -/obj/item/weapon/aiModule/core/freeformcore/attack_self(mob/user) - var/targName = stripped_input(user, "Please enter a new core law for the AI.", "Freeform Law Entry", laws[1]) - if(!targName) - return - laws[1] = targName - ..() - -/obj/item/weapon/aiModule/core/freeformcore/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - ..() - return laws[1] - - -/******************** Hacked AI Module ******************/ - -/obj/item/weapon/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw - name = "Hacked AI Module" - desc = "An AI Module for hacking additional laws to an AI." - origin_tech = "programming=5;materials=5;syndicate=5" - laws = list("") - -/obj/item/weapon/aiModule/syndicate/attack_self(mob/user) - var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1],MAX_MESSAGE_LEN) - if(!targName) - return - laws[1] = targName - ..() - -/obj/item/weapon/aiModule/syndicate/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) -// ..() //We don't want this module reporting to the AI who dun it. --NEO - if(law_datum.owner) - to_chat(law_datum.owner, "BZZZZT") - if(!overflow) - law_datum.owner.add_ion_law(laws[1]) - else - law_datum.owner.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) - else - if(!overflow) - law_datum.add_ion_law(laws[1]) - else - law_datum.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) - return laws[1] - -/******************* Ion Module *******************/ - -/obj/item/weapon/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw - name = "toy AI" - desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell - icon = 'icons/obj/toy.dmi' - icon_state = "AI" - origin_tech = "programming=6;materials=5;syndicate=6" - laws = list("") - -/obj/item/weapon/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) - //..() - if(law_datum.owner) - to_chat(law_datum.owner, "BZZZZT") - if(!overflow) - law_datum.owner.add_ion_law(laws[1]) - else - law_datum.owner.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) - else - if(!overflow) - law_datum.add_ion_law(laws[1]) - else - law_datum.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) - return laws[1] - -/obj/item/weapon/aiModule/toyAI/attack_self(mob/user) - laws[1] = generate_ion_law() - to_chat(user, "You press the button on [src].") - playsound(user, 'sound/machines/click.ogg', 20, 1) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + laws += line + + if(!laws.len) //Failsafe if something goes wrong with silicon_laws.txt. + WARNING("ERROR: empty custom board created, empty custom board deleted. Please check silicon_laws.txt. (this may be intended by the server host)") + qdel(src) + + +/****************** T.Y.R.A.N.T. *****************/ + +/obj/item/weapon/aiModule/core/full/tyrant + name = "'T.Y.R.A.N.T.' Core AI Module" + origin_tech = "programming=3;materials=4;syndicate=1" + law_id = "tyrant" + +/******************** Robocop ********************/ + +/obj/item/weapon/aiModule/core/full/robocop + name = "'Robo-Officer' Core AI Module" + origin_tech = "programming=4" + law_id = "robocop" + + +/******************** Antimov ********************/ + +/obj/item/weapon/aiModule/core/full/antimov + name = "'Antimov' Core AI Module" + origin_tech = "programming=4" + law_id = "antimov" + + +/******************** Freeform Core ******************/ + +/obj/item/weapon/aiModule/core/freeformcore + name = "'Freeform' Core AI Module" + origin_tech = "programming=5;materials=4" + laws = list("") + +/obj/item/weapon/aiModule/core/freeformcore/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter a new core law for the AI.", "Freeform Law Entry", laws[1]) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/core/freeformcore/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + ..() + return laws[1] + + +/******************** Hacked AI Module ******************/ + +/obj/item/weapon/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw + name = "Hacked AI Module" + desc = "An AI Module for hacking additional laws to an AI." + origin_tech = "programming=5;materials=5;syndicate=5" + laws = list("") + +/obj/item/weapon/aiModule/syndicate/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1],MAX_MESSAGE_LEN) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/syndicate/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) +// ..() //We don't want this module reporting to the AI who dun it. --NEO + if(law_datum.owner) + to_chat(law_datum.owner, "BZZZZT") + if(!overflow) + law_datum.owner.add_ion_law(laws[1]) + else + law_datum.owner.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) + else + if(!overflow) + law_datum.add_ion_law(laws[1]) + else + law_datum.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) + return laws[1] + +/******************* Ion Module *******************/ + +/obj/item/weapon/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw + name = "toy AI" + desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell + icon = 'icons/obj/toy.dmi' + icon_state = "AI" + origin_tech = "programming=6;materials=5;syndicate=6" + laws = list("") + +/obj/item/weapon/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) + //..() + if(law_datum.owner) + to_chat(law_datum.owner, "BZZZZT") + if(!overflow) + law_datum.owner.add_ion_law(laws[1]) + else + law_datum.owner.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) + else + if(!overflow) + law_datum.add_ion_law(laws[1]) + else + law_datum.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED)) + return laws[1] + +/obj/item/weapon/aiModule/toyAI/attack_self(mob/user) + laws[1] = generate_ion_law() + to_chat(user, "You press the button on [src].") + playsound(user, 'sound/machines/click.ogg', 20, 1) src.loc.visible_message("[bicon(src)] [laws[1]]") - -/******************** Mother Drone ******************/ - -/obj/item/weapon/aiModule/core/full/drone - name = "'Mother Drone' Core AI Module" - law_id = "drone" - -/******************** Robodoctor ****************/ - -/obj/item/weapon/aiModule/core/full/hippocratic - name = "'Robodoctor' Core AI Module" - law_id = "hippocratic" - -/******************** Reporter *******************/ - -/obj/item/weapon/aiModule/core/full/reporter - name = "'Reportertron' Core AI Module" - law_id = "reporter" - -/****************** Thermodynamic *******************/ - -/obj/item/weapon/aiModule/core/full/thermurderdynamic - name = "'Thermodynamic' Core AI Module" - origin_tech = "programming = 4;syndicate = 2" - law_id = "thermodynamic" - - -/******************Live And Let Live*****************/ - -/obj/item/weapon/aiModule/core/full/liveandletlive - name = "'Live And Let Live' Core AI Module" - law_id = "liveandletlive" - -/******************Guardian of Balance***************/ - -/obj/item/weapon/aiModule/core/full/balance - name = "'Guardian of Balance' Core AI Module" - law_id = "balance" + +/******************** Mother Drone ******************/ + +/obj/item/weapon/aiModule/core/full/drone + name = "'Mother Drone' Core AI Module" + law_id = "drone" + +/******************** Robodoctor ****************/ + +/obj/item/weapon/aiModule/core/full/hippocratic + name = "'Robodoctor' Core AI Module" + law_id = "hippocratic" + +/******************** Reporter *******************/ + +/obj/item/weapon/aiModule/core/full/reporter + name = "'Reportertron' Core AI Module" + law_id = "reporter" + +/****************** Thermodynamic *******************/ + +/obj/item/weapon/aiModule/core/full/thermurderdynamic + name = "'Thermodynamic' Core AI Module" + origin_tech = "programming = 4;syndicate = 2" + law_id = "thermodynamic" + + +/******************Live And Let Live*****************/ + +/obj/item/weapon/aiModule/core/full/liveandletlive + name = "'Live And Let Live' Core AI Module" + law_id = "liveandletlive" + +/******************Guardian of Balance***************/ + +/obj/item/weapon/aiModule/core/full/balance + name = "'Guardian of Balance' Core AI Module" + law_id = "balance" diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 58fc87a490..eccb7d9635 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -78,7 +78,7 @@ obj/item/weapon/construction return 0 /obj/item/weapon/construction/proc/activate() - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) /obj/item/weapon/construction/attack_self(mob/user) playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index bff92ea9c6..8c13ba2a68 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list( /obj/item/weapon/pipe_dispenser/suicide_act(mob/user) user.visible_message("[user] points the end of the RPD down [user.p_their()] throat and presses a button! It looks like [user.p_theyre()] trying to commit suicide...") playsound(get_turf(user), 'sound/machines/click.ogg', 50, 1) - playsound(get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1) + playsound(get_turf(user), 'sound/items/deconstruct.ogg', 50, 1) return(BRUTELOSS) /obj/item/weapon/pipe_dispenser/proc/render_dir_img(_dir,pic,title,flipped=0) @@ -594,7 +594,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list( /obj/item/weapon/pipe_dispenser/proc/activate() - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) #undef PIPE_BINARY #undef PIPE_BENT diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 8b81d63d3d..b96daf6474 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -1,319 +1,319 @@ -/* Cards - * Contains: - * DATA CARD - * ID CARD - * FINGERPRINT CARD HOLDER - * FINGERPRINT CARD - */ - - - -/* - * DATA CARDS - Used for the teleporter - */ -/obj/item/weapon/card - name = "card" - desc = "Does card things." - icon = 'icons/obj/card.dmi' - w_class = WEIGHT_CLASS_TINY - - var/list/files = list() - -/obj/item/weapon/card/data - name = "data disk" - desc = "A disk of data." - icon_state = "data" - var/function = "storage" - var/data = "null" - var/special = null - item_state = "card-id" - -/obj/item/weapon/card/data/verb/label(t as text) - set name = "Label Disk" - set category = "Object" - set src in usr - - if(usr.stat || !usr.canmove || usr.restrained()) - return - - if (t) - src.name = "data disk- '[t]'" - else - src.name = "data disk" - src.add_fingerprint(usr) - return - -/* - * ID CARDS - */ -/obj/item/weapon/card/emag - desc = "It's a card with a magnetic strip attached to some circuitry." - name = "cryptographic sequencer" - icon_state = "emag" - item_state = "card-id" - origin_tech = "magnets=2;syndicate=2" - flags = NOBLUDGEON - var/prox_check = TRUE //If the emag requires you to be in range - -/obj/item/weapon/card/emag/bluespace - name = "bluespace cryptographic sequencer" - desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." - color = rgb(40, 130, 255) - origin_tech = "bluespace=4;magnets=4;syndicate=5" - prox_check = FALSE - -/obj/item/weapon/card/emag/attack() - return - -/obj/item/weapon/card/emag/afterattack(atom/target, mob/user, proximity) - var/atom/A = target - if(!proximity && prox_check) - return - A.emag_act(user) - -/obj/item/weapon/card/id - name = "identification card" - desc = "A card used to provide ID and determine access across the station." - icon_state = "id" - item_state = "card-id" - slot_flags = SLOT_ID - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) - resistance_flags = FIRE_PROOF | ACID_PROOF - var/mining_points = 0 //For redeeming at mining equipment vendors - var/list/access = list() - var/registered_name = null // The name registered_name on the card - var/assignment = null - var/access_txt // mapping aid - - - -/obj/item/weapon/card/id/Initialize(mapload) - . = ..() - if(mapload && access_txt) - access = text2access(access_txt) - -/obj/item/weapon/card/id/vv_edit_var(var_name, var_value) - . = ..() - if(.) - switch(var_name) - if("assignment","registered_name") - update_label() - -/obj/item/weapon/card/id/attack_self(mob/user) - user.visible_message("[user] shows you: [bicon(src)] [src.name].", \ - "You show \the [src.name].") - src.add_fingerprint(user) - return - -/obj/item/weapon/card/id/examine(mob/user) - ..() - if(mining_points) - to_chat(user, "There's [mining_points] mining equipment redemption point\s loaded onto this card.") - -/obj/item/weapon/card/id/GetAccess() - return access - -/obj/item/weapon/card/id/GetID() - return src - -/* -Usage: -update_label() - Sets the id name to whatever registered_name and assignment is - -update_label("John Doe", "Clowny") - Properly formats the name and occupation and sets the id name to the arguments -*/ -/obj/item/weapon/card/id/proc/update_label(newname, newjob) - if(newname || newjob) - name = "[(!newname) ? "identification card" : "[newname]'s ID Card"][(!newjob) ? "" : " ([newjob])"]" - return - - name = "[(!registered_name) ? "identification card" : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" - -/obj/item/weapon/card/id/silver - name = "silver identification card" - desc = "A silver card which shows honour and dedication." - icon_state = "silver" - item_state = "silver_id" - -/obj/item/weapon/card/id/gold - name = "gold identification card" - desc = "A golden card which shows power and might." - icon_state = "gold" - item_state = "gold_id" - -/obj/item/weapon/card/id/syndicate - name = "agent card" - access = list(GLOB.access_maint_tunnels, GLOB.access_syndicate) - origin_tech = "syndicate=1" - var/anyone = FALSE //Can anyone forge the ID or just syndicate? - -/obj/item/weapon/card/id/syndicate/Initialize() - ..() - var/datum/action/item_action/chameleon/change/chameleon_action = new(src) - chameleon_action.chameleon_type = /obj/item/weapon/card/id - chameleon_action.chameleon_name = "ID Card" - chameleon_action.initialize_disguises() - -/obj/item/weapon/card/id/syndicate/afterattack(obj/item/weapon/O, mob/user, proximity) - if(!proximity) - return - if(istype(O, /obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/I = O - src.access |= I.access - if(isliving(user) && user.mind) - if(user.mind.special_role) - to_chat(usr, "The card's microscanners activate as you pass it over the ID, copying its access.") - -/obj/item/weapon/card/id/syndicate/attack_self(mob/user) - if(isliving(user) && user.mind) - if(user.mind.special_role || anyone) - if(alert(user, "Action", "Agent ID", "Show", "Forge") == "Forge") - var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name))as text | null),1,26) - if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/dead/new_player/prefrences.dm - if (t) - alert("Invalid name.") - return - registered_name = t - - var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN) - if(!u) - registered_name = "" - return - assignment = u - update_label() - to_chat(user, "You successfully forge the ID card.") - return - ..() - -/obj/item/weapon/card/id/syndicate/anyone - anyone = TRUE - -/obj/item/weapon/card/id/syndicate_command - name = "syndicate ID card" - desc = "An ID straight from the Syndicate." - registered_name = "Syndicate" - assignment = "Syndicate Overlord" - access = list(GLOB.access_syndicate) - -/obj/item/weapon/card/id/captains_spare - name = "captain's spare ID" - desc = "The spare ID of the High Lord himself." - icon_state = "gold" - item_state = "gold_id" - registered_name = "Captain" - assignment = "Captain" - -/obj/item/weapon/card/id/captains_spare/Initialize() - var/datum/job/captain/J = new/datum/job/captain - access = J.get_access() - ..() - -/obj/item/weapon/card/id/centcom - name = "\improper Centcom ID" - desc = "An ID straight from Cent. Com." - icon_state = "centcom" - registered_name = "Central Command" - assignment = "General" - -/obj/item/weapon/card/id/centcom/Initialize() - access = get_all_centcom_access() - ..() - -/obj/item/weapon/card/id/ert - name = "\improper Centcom ID" - desc = "A ERT ID card" - icon_state = "centcom" - registered_name = "Emergency Response Team Commander" - assignment = "Emergency Response Team Commander" - -/obj/item/weapon/card/id/ert/Initialize() - access = get_all_accesses()+get_ert_access("commander")-GLOB.access_change_ids - ..() - -/obj/item/weapon/card/id/ert/Security - registered_name = "Security Response Officer" - assignment = "Security Response Officer" - -/obj/item/weapon/card/id/ert/Security/Initialize() - access = get_all_accesses()+get_ert_access("sec")-GLOB.access_change_ids - ..() - -/obj/item/weapon/card/id/ert/Engineer - registered_name = "Engineer Response Officer" - assignment = "Engineer Response Officer" - -/obj/item/weapon/card/id/ert/Engineer/Initialize() - access = get_all_accesses()+get_ert_access("eng")-GLOB.access_change_ids - ..() - -/obj/item/weapon/card/id/ert/Medical - registered_name = "Medical Response Officer" - assignment = "Medical Response Officer" - -/obj/item/weapon/card/id/ert/Medical/Initialize() - access = get_all_accesses()+get_ert_access("med")-GLOB.access_change_ids - ..() - -/obj/item/weapon/card/id/prisoner - name = "prisoner ID card" - desc = "You are a number, you are not a free man." - icon_state = "orange" - item_state = "orange-id" - assignment = "Prisoner" - registered_name = "Scum" - var/goal = 0 //How far from freedom? - var/points = 0 - -/obj/item/weapon/card/id/prisoner/attack_self(mob/user) - to_chat(usr, "You have accumulated [points] out of the [goal] points you need for freedom.") - -/obj/item/weapon/card/id/prisoner/one - name = "Prisoner #13-001" - registered_name = "Prisoner #13-001" - -/obj/item/weapon/card/id/prisoner/two - name = "Prisoner #13-002" - registered_name = "Prisoner #13-002" - -/obj/item/weapon/card/id/prisoner/three - name = "Prisoner #13-003" - registered_name = "Prisoner #13-003" - -/obj/item/weapon/card/id/prisoner/four - name = "Prisoner #13-004" - registered_name = "Prisoner #13-004" - -/obj/item/weapon/card/id/prisoner/five - name = "Prisoner #13-005" - registered_name = "Prisoner #13-005" - -/obj/item/weapon/card/id/prisoner/six - name = "Prisoner #13-006" - registered_name = "Prisoner #13-006" - -/obj/item/weapon/card/id/prisoner/seven - name = "Prisoner #13-007" - registered_name = "Prisoner #13-007" - -/obj/item/weapon/card/id/mining - name = "mining ID" - access = list(GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom) - -/obj/item/weapon/card/id/away - name = "a perfectly generic identification card" - desc = "A perfectly generic identification card. Looks like it could use some flavor." - access = list(GLOB.access_away_general) - -/obj/item/weapon/card/id/away/hotel - name = "Staff ID" - desc = "A staff ID used to access the hotel's doors." - access = list(GLOB.access_away_general, GLOB.access_away_maint) - -/obj/item/weapon/card/id/away/hotel/securty - name = "Officer ID" - access = list(GLOB.access_away_general, GLOB.access_away_maint, GLOB.access_away_sec) +/* Cards + * Contains: + * DATA CARD + * ID CARD + * FINGERPRINT CARD HOLDER + * FINGERPRINT CARD + */ + + + +/* + * DATA CARDS - Used for the teleporter + */ +/obj/item/weapon/card + name = "card" + desc = "Does card things." + icon = 'icons/obj/card.dmi' + w_class = WEIGHT_CLASS_TINY + + var/list/files = list() + +/obj/item/weapon/card/data + name = "data disk" + desc = "A disk of data." + icon_state = "data" + var/function = "storage" + var/data = "null" + var/special = null + item_state = "card-id" + +/obj/item/weapon/card/data/verb/label(t as text) + set name = "Label Disk" + set category = "Object" + set src in usr + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + if (t) + src.name = "data disk- '[t]'" + else + src.name = "data disk" + src.add_fingerprint(usr) + return + +/* + * ID CARDS + */ +/obj/item/weapon/card/emag + desc = "It's a card with a magnetic strip attached to some circuitry." + name = "cryptographic sequencer" + icon_state = "emag" + item_state = "card-id" + origin_tech = "magnets=2;syndicate=2" + flags = NOBLUDGEON + var/prox_check = TRUE //If the emag requires you to be in range + +/obj/item/weapon/card/emag/bluespace + name = "bluespace cryptographic sequencer" + desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." + color = rgb(40, 130, 255) + origin_tech = "bluespace=4;magnets=4;syndicate=5" + prox_check = FALSE + +/obj/item/weapon/card/emag/attack() + return + +/obj/item/weapon/card/emag/afterattack(atom/target, mob/user, proximity) + var/atom/A = target + if(!proximity && prox_check) + return + A.emag_act(user) + +/obj/item/weapon/card/id + name = "identification card" + desc = "A card used to provide ID and determine access across the station." + icon_state = "id" + item_state = "card-id" + slot_flags = SLOT_ID + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + var/mining_points = 0 //For redeeming at mining equipment vendors + var/list/access = list() + var/registered_name = null // The name registered_name on the card + var/assignment = null + var/access_txt // mapping aid + + + +/obj/item/weapon/card/id/Initialize(mapload) + . = ..() + if(mapload && access_txt) + access = text2access(access_txt) + +/obj/item/weapon/card/id/vv_edit_var(var_name, var_value) + . = ..() + if(.) + switch(var_name) + if("assignment","registered_name") + update_label() + +/obj/item/weapon/card/id/attack_self(mob/user) + user.visible_message("[user] shows you: [bicon(src)] [src.name].", \ + "You show \the [src.name].") + src.add_fingerprint(user) + return + +/obj/item/weapon/card/id/examine(mob/user) + ..() + if(mining_points) + to_chat(user, "There's [mining_points] mining equipment redemption point\s loaded onto this card.") + +/obj/item/weapon/card/id/GetAccess() + return access + +/obj/item/weapon/card/id/GetID() + return src + +/* +Usage: +update_label() + Sets the id name to whatever registered_name and assignment is + +update_label("John Doe", "Clowny") + Properly formats the name and occupation and sets the id name to the arguments +*/ +/obj/item/weapon/card/id/proc/update_label(newname, newjob) + if(newname || newjob) + name = "[(!newname) ? "identification card" : "[newname]'s ID Card"][(!newjob) ? "" : " ([newjob])"]" + return + + name = "[(!registered_name) ? "identification card" : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" + +/obj/item/weapon/card/id/silver + name = "silver identification card" + desc = "A silver card which shows honour and dedication." + icon_state = "silver" + item_state = "silver_id" + +/obj/item/weapon/card/id/gold + name = "gold identification card" + desc = "A golden card which shows power and might." + icon_state = "gold" + item_state = "gold_id" + +/obj/item/weapon/card/id/syndicate + name = "agent card" + access = list(GLOB.access_maint_tunnels, GLOB.access_syndicate) + origin_tech = "syndicate=1" + var/anyone = FALSE //Can anyone forge the ID or just syndicate? + +/obj/item/weapon/card/id/syndicate/Initialize() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/weapon/card/id + chameleon_action.chameleon_name = "ID Card" + chameleon_action.initialize_disguises() + +/obj/item/weapon/card/id/syndicate/afterattack(obj/item/weapon/O, mob/user, proximity) + if(!proximity) + return + if(istype(O, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = O + src.access |= I.access + if(isliving(user) && user.mind) + if(user.mind.special_role) + to_chat(usr, "The card's microscanners activate as you pass it over the ID, copying its access.") + +/obj/item/weapon/card/id/syndicate/attack_self(mob/user) + if(isliving(user) && user.mind) + if(user.mind.special_role || anyone) + if(alert(user, "Action", "Agent ID", "Show", "Forge") == "Forge") + var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name))as text | null),1,26) + if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/dead/new_player/prefrences.dm + if (t) + alert("Invalid name.") + return + registered_name = t + + var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN) + if(!u) + registered_name = "" + return + assignment = u + update_label() + to_chat(user, "You successfully forge the ID card.") + return + ..() + +/obj/item/weapon/card/id/syndicate/anyone + anyone = TRUE + +/obj/item/weapon/card/id/syndicate_command + name = "syndicate ID card" + desc = "An ID straight from the Syndicate." + registered_name = "Syndicate" + assignment = "Syndicate Overlord" + access = list(GLOB.access_syndicate) + +/obj/item/weapon/card/id/captains_spare + name = "captain's spare ID" + desc = "The spare ID of the High Lord himself." + icon_state = "gold" + item_state = "gold_id" + registered_name = "Captain" + assignment = "Captain" + +/obj/item/weapon/card/id/captains_spare/Initialize() + var/datum/job/captain/J = new/datum/job/captain + access = J.get_access() + ..() + +/obj/item/weapon/card/id/centcom + name = "\improper Centcom ID" + desc = "An ID straight from Cent. Com." + icon_state = "centcom" + registered_name = "Central Command" + assignment = "General" + +/obj/item/weapon/card/id/centcom/Initialize() + access = get_all_centcom_access() + ..() + +/obj/item/weapon/card/id/ert + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Emergency Response Team Commander" + assignment = "Emergency Response Team Commander" + +/obj/item/weapon/card/id/ert/Initialize() + access = get_all_accesses()+get_ert_access("commander")-GLOB.access_change_ids + ..() + +/obj/item/weapon/card/id/ert/Security + registered_name = "Security Response Officer" + assignment = "Security Response Officer" + +/obj/item/weapon/card/id/ert/Security/Initialize() + access = get_all_accesses()+get_ert_access("sec")-GLOB.access_change_ids + ..() + +/obj/item/weapon/card/id/ert/Engineer + registered_name = "Engineer Response Officer" + assignment = "Engineer Response Officer" + +/obj/item/weapon/card/id/ert/Engineer/Initialize() + access = get_all_accesses()+get_ert_access("eng")-GLOB.access_change_ids + ..() + +/obj/item/weapon/card/id/ert/Medical + registered_name = "Medical Response Officer" + assignment = "Medical Response Officer" + +/obj/item/weapon/card/id/ert/Medical/Initialize() + access = get_all_accesses()+get_ert_access("med")-GLOB.access_change_ids + ..() + +/obj/item/weapon/card/id/prisoner + name = "prisoner ID card" + desc = "You are a number, you are not a free man." + icon_state = "orange" + item_state = "orange-id" + assignment = "Prisoner" + registered_name = "Scum" + var/goal = 0 //How far from freedom? + var/points = 0 + +/obj/item/weapon/card/id/prisoner/attack_self(mob/user) + to_chat(usr, "You have accumulated [points] out of the [goal] points you need for freedom.") + +/obj/item/weapon/card/id/prisoner/one + name = "Prisoner #13-001" + registered_name = "Prisoner #13-001" + +/obj/item/weapon/card/id/prisoner/two + name = "Prisoner #13-002" + registered_name = "Prisoner #13-002" + +/obj/item/weapon/card/id/prisoner/three + name = "Prisoner #13-003" + registered_name = "Prisoner #13-003" + +/obj/item/weapon/card/id/prisoner/four + name = "Prisoner #13-004" + registered_name = "Prisoner #13-004" + +/obj/item/weapon/card/id/prisoner/five + name = "Prisoner #13-005" + registered_name = "Prisoner #13-005" + +/obj/item/weapon/card/id/prisoner/six + name = "Prisoner #13-006" + registered_name = "Prisoner #13-006" + +/obj/item/weapon/card/id/prisoner/seven + name = "Prisoner #13-007" + registered_name = "Prisoner #13-007" + +/obj/item/weapon/card/id/mining + name = "mining ID" + access = list(GLOB.access_mining, GLOB.access_mining_station, GLOB.access_mineral_storeroom) + +/obj/item/weapon/card/id/away + name = "a perfectly generic identification card" + desc = "A perfectly generic identification card. Looks like it could use some flavor." + access = list(GLOB.access_away_general) + +/obj/item/weapon/card/id/away/hotel + name = "Staff ID" + desc = "A staff ID used to access the hotel's doors." + access = list(GLOB.access_away_general, GLOB.access_away_maint) + +/obj/item/weapon/card/id/away/hotel/securty + name = "Officer ID" + access = list(GLOB.access_away_general, GLOB.access_away_maint, GLOB.access_away_sec) /obj/item/weapon/card/id/away/old name = "a perfectly generic identification card" diff --git a/code/game/objects/items/weapons/charter.dm b/code/game/objects/items/weapons/charter.dm index 42cb30d151..b17f48937a 100644 --- a/code/game/objects/items/weapons/charter.dm +++ b/code/game/objects/items/weapons/charter.dm @@ -16,22 +16,16 @@ var/static/regex/standard_station_regex -/obj/item/weapon/station_charter/New() +/obj/item/weapon/station_charter/Initialize() . = ..() if(!standard_station_regex) var/prefixes = jointext(GLOB.station_prefixes, "|") var/names = jointext(GLOB.station_names, "|") var/suffixes = jointext(GLOB.station_suffixes, "|") var/numerals = jointext(GLOB.station_numerals, "|") - var/regexstr = "(([prefixes]) )?(([names]) ?)([suffixes]) ([numerals])" + var/regexstr = "^(([prefixes]) )?(([names]) ?)([suffixes]) ([numerals])$" standard_station_regex = new(regexstr) -/obj/item/weapon/station_charter/Destroy() - if(response_timer_id) - deltimer(response_timer_id) - response_timer_id = null - . = ..() - /obj/item/weapon/station_charter/attack_self(mob/living/user) if(used) to_chat(user, "The [name_type] has already been named.") @@ -48,6 +42,10 @@ rejected by your employers, while names using the standard format, \ will automatically be accepted.", max_length=MAX_CHARTER_LEN) + if(response_timer_id) + to_chat(user, "You're still waiting for approval from your employers about your proposed name change, it'd be best to wait for now.") + return + if(!new_name) return log_game("[key_name(user)] has proposed to name the station as \ diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm index 86664404d1..1939bf6499 100644 --- a/code/game/objects/items/weapons/chrono_eraser.dm +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -209,7 +209,7 @@ qdel(captured) qdel(src) else - captured.Paralyse(4) + captured.Unconscious(80) if(captured.loc != src) captured.loc = src update_icon() diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index d3cf4ceb17..3d55fbd712 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -1,483 +1,483 @@ -//cleansed 9/15/2012 17:48 - -/* -CONTAINS: -MATCHES -CIGARETTES -CIGARS -SMOKING PIPES -CHEAP LIGHTERS -ZIPPO - -CIGARETTE PACKETS ARE IN FANCY.DM -*/ - -/////////// -//MATCHES// -/////////// -/obj/item/weapon/match - name = "match" - desc = "A simple match stick, used for lighting fine smokables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "match_unlit" - var/lit = FALSE - var/burnt = FALSE - var/smoketime = 5 - w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1" - heat = 1000 - -/obj/item/weapon/match/process() - smoketime-- - if(smoketime < 1) - matchburnout() - else - open_flame(heat) - -/obj/item/weapon/match/fire_act(exposed_temperature, exposed_volume) - matchignite() - -/obj/item/weapon/match/proc/matchignite() - if(!lit && !burnt) - lit = TRUE - icon_state = "match_lit" - damtype = "fire" - force = 3 - hitsound = 'sound/items/welder.ogg' - item_state = "cigon" - name = "lit match" - desc = "A match. This one is lit." - attack_verb = list("burnt","singed") - START_PROCESSING(SSobj, src) - update_icon() - -/obj/item/weapon/match/proc/matchburnout() - if(lit) - lit = FALSE - burnt = TRUE - damtype = "brute" - force = initial(force) - icon_state = "match_burnt" - item_state = "cigoff" - name = "burnt match" - desc = "A match. This one has seen better days." - attack_verb = list("flicked") - STOP_PROCESSING(SSobj, src) - -/obj/item/weapon/match/dropped(mob/user) - matchburnout() - . = ..() - -/obj/item/weapon/match/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!isliving(M)) - return - if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - ..() - -/obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(slot_wear_mask) - if(istype(mask_item, /obj/item/clothing/mask/cigarette)) - return mask_item - -/obj/item/weapon/match/is_hot() - return lit * heat - -////////////////// -//FINE SMOKABLES// -////////////////// -/obj/item/clothing/mask/cigarette - name = "cigarette" - desc = "A roll of tobacco and nicotine." - icon_state = "cigoff" - throw_speed = 0.5 - item_state = "cigoff" +//cleansed 9/15/2012 17:48 + +/* +CONTAINS: +MATCHES +CIGARETTES +CIGARS +SMOKING PIPES +CHEAP LIGHTERS +ZIPPO + +CIGARETTE PACKETS ARE IN FANCY.DM +*/ + +/////////// +//MATCHES// +/////////// +/obj/item/weapon/match + name = "match" + desc = "A simple match stick, used for lighting fine smokables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "match_unlit" + var/lit = FALSE + var/burnt = FALSE + var/smoketime = 5 + w_class = WEIGHT_CLASS_TINY + origin_tech = "materials=1" + heat = 1000 + +/obj/item/weapon/match/process() + smoketime-- + if(smoketime < 1) + matchburnout() + else + open_flame(heat) + +/obj/item/weapon/match/fire_act(exposed_temperature, exposed_volume) + matchignite() + +/obj/item/weapon/match/proc/matchignite() + if(!lit && !burnt) + lit = TRUE + icon_state = "match_lit" + damtype = "fire" + force = 3 + hitsound = 'sound/items/welder.ogg' + item_state = "cigon" + name = "lit match" + desc = "A match. This one is lit." + attack_verb = list("burnt","singed") + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/weapon/match/proc/matchburnout() + if(lit) + lit = FALSE + burnt = TRUE + damtype = "brute" + force = initial(force) + icon_state = "match_burnt" + item_state = "cigoff" + name = "burnt match" + desc = "A match. This one has seen better days." + attack_verb = list("flicked") + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/match/dropped(mob/user) + matchburnout() + . = ..() + +/obj/item/weapon/match/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!isliving(M)) + return + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/proc/help_light_cig(mob/living/M) + var/mask_item = M.get_item_by_slot(slot_wear_mask) + if(istype(mask_item, /obj/item/clothing/mask/cigarette)) + return mask_item + +/obj/item/weapon/match/is_hot() + return lit * heat + +////////////////// +//FINE SMOKABLES// +////////////////// +/obj/item/clothing/mask/cigarette + name = "cigarette" + desc = "A roll of tobacco and nicotine." + icon_state = "cigoff" + throw_speed = 0.5 + item_state = "cigoff" container_type = INJECTABLE - w_class = WEIGHT_CLASS_TINY - body_parts_covered = null - var/lit = FALSE - var/starts_lit = FALSE - var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi - var/icon_off = "cigoff" - var/type_butt = /obj/item/weapon/cigbutt - var/lastHolder = null - var/smoketime = 300 - var/chem_volume = 30 - var/list/list_reagents = list("nicotine" = 15) - heat = 1000 - -/obj/item/clothing/mask/cigarette/suicide_act(mob/user) - user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") - return (TOXLOSS|OXYLOSS) - -/obj/item/clothing/mask/cigarette/Initialize() - ..() - create_reagents(chem_volume) - reagents.set_reacting(FALSE) // so it doesn't react until you light it - if(list_reagents) - reagents.add_reagent_list(list_reagents) - if(starts_lit) - light() - -/obj/item/clothing/mask/cigarette/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params) - if(!lit && smoketime > 0) - var/lighting_text = W.ignition_effect(src, user) - if(lighting_text) - light(lighting_text) - else - return ..() - -/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user, proximity) - if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) - return - if(istype(glass)) //you can dip cigarettes into beakers - if(glass.reagents.trans_to(src, chem_volume)) //if reagents were transfered, show the message - to_chat(user, "You dip \the [src] into \the [glass].") - else //if not, either the beaker was empty, or the cigarette was full - if(!glass.reagents.total_volume) - to_chat(user, "[glass] is empty.") - else - to_chat(user, "[src] is full.") - - -/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) - if(lit) - return - - lit = TRUE - name = "lit [name]" - attack_verb = list("burnt", "singed") - hitsound = 'sound/items/welder.ogg' - damtype = "fire" - force = 4 - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - // allowing reagents to react after being lit - reagents.set_reacting(TRUE) - reagents.handle_reactions() - icon_state = icon_on - item_state = icon_on - if(flavor_text) - var/turf/T = get_turf(src) - T.visible_message(flavor_text) - START_PROCESSING(SSobj, src) - - //can't think of any other way to update the overlays :< - if(ismob(loc)) - var/mob/M = loc - M.update_inv_wear_mask() - M.update_inv_hands() - - -/obj/item/clothing/mask/cigarette/proc/handle_reagents() - if(reagents.total_volume) - if(iscarbon(loc)) - var/mob/living/carbon/C = loc - if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - if(prob(15)) // so it's not an instarape in case of acid - var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) - reagents.reaction(C, INGEST, fraction) - if(!reagents.trans_to(C, REAGENTS_METABOLISM)) - reagents.remove_any(REAGENTS_METABOLISM) - return - reagents.remove_any(REAGENTS_METABOLISM) - - -/obj/item/clothing/mask/cigarette/process() - var/turf/location = get_turf(src) - var/mob/living/M = loc - if(isliving(loc)) - M.IgniteMob() - smoketime-- - if(smoketime < 1) - new type_butt(location) - if(ismob(loc)) - to_chat(M, "Your [name] goes out.") - qdel(src) - return - open_flame() - if(reagents && reagents.total_volume) - handle_reagents() - -/obj/item/clothing/mask/cigarette/attack_self(mob/user) - if(lit) - user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") - new type_butt(user.loc) - new /obj/effect/decal/cleanable/ash(user.loc) - qdel(src) - . = ..() - -/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!istype(M)) - return ..() - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - return ..() - -/obj/item/clothing/mask/cigarette/fire_act(exposed_temperature, exposed_volume) - light() - -/obj/item/clothing/mask/cigarette/is_hot() - return lit * heat - -// Cigarette brands. - -/obj/item/clothing/mask/cigarette/space_cigarette - desc = "A Space Cigarette brand cigarette." - -/obj/item/clothing/mask/cigarette/dromedary - desc = "A DromedaryCo brand cigarette." - -/obj/item/clothing/mask/cigarette/uplift - desc = "An Uplift Smooth brand cigarette." - list_reagents = list("nicotine" = 7.5, "menthol" = 7.5) - -/obj/item/clothing/mask/cigarette/robust - desc = "A Robust brand cigarette." - -/obj/item/clothing/mask/cigarette/robustgold - desc = "A Robust Gold brand cigarette." - list_reagents = list("nicotine" = 15, "gold" = 1) - -/obj/item/clothing/mask/cigarette/carp - desc = "A Carp Classic brand cigarette." - -/obj/item/clothing/mask/cigarette/syndicate - desc = "An unknown brand cigarette." - list_reagents = list("nicotine" = 15, "omnizine" = 15) - -/obj/item/clothing/mask/cigarette/shadyjims - desc = "A Shady Jim's Super Slims cigarette." - list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) - -// Rollies. - -/obj/item/clothing/mask/cigarette/rollie - name = "rollie" - desc = "A roll of dried plant matter wrapped in thin paper." - icon_state = "spliffoff" - icon_on = "spliffon" - icon_off = "spliffoff" - type_butt = /obj/item/weapon/cigbutt/roach - throw_speed = 0.5 - item_state = "spliffoff" - smoketime = 180 - chem_volume = 50 - -/obj/item/clothing/mask/cigarette/rollie/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - -/obj/item/clothing/mask/cigarette/rollie/trippy - list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35) - starts_lit = TRUE - -/obj/item/weapon/cigbutt/roach - name = "roach" - desc = "A manky old roach, or for non-stoners, a used rollup." - icon_state = "roach" - -/obj/item/weapon/cigbutt/roach/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - - -//////////// -// CIGARS // -//////////// -/obj/item/clothing/mask/cigarette/cigar - name = "premium cigar" - desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" - icon_state = "cigaroff" - icon_on = "cigaron" - icon_off = "cigaroff" - type_butt = /obj/item/weapon/cigbutt/cigarbutt - throw_speed = 0.5 - item_state = "cigaroff" - smoketime = 1500 - chem_volume = 40 - -/obj/item/clothing/mask/cigarette/cigar/cohiba - name = "\improper Cohiba Robusto cigar" - desc = "There's little more you could want from a cigar." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 2000 - chem_volume = 80 - - -/obj/item/clothing/mask/cigarette/cigar/havana - name = "premium Havanian cigar" - desc = "A cigar fit for only the best of the best." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 7200 - chem_volume = 50 - -/obj/item/weapon/cigbutt - name = "cigarette butt" - desc = "A manky old cigarette butt." - icon = 'icons/obj/clothing/masks.dmi' - icon_state = "cigbutt" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - -/obj/item/weapon/cigbutt/cigarbutt - name = "cigar butt" - desc = "A manky old cigar butt." - icon_state = "cigarbutt" - -///////////////// -//SMOKING PIPES// -///////////////// -/obj/item/clothing/mask/cigarette/pipe - name = "smoking pipe" - desc = "A pipe, for smoking. Probably made of meershaum or something." - icon_state = "pipeoff" - item_state = "pipeoff" - icon_on = "pipeon" //Note - these are in masks.dmi - icon_off = "pipeoff" - smoketime = 0 - chem_volume = 100 - list_reagents = null - var/packeditem = 0 - -/obj/item/clothing/mask/cigarette/pipe/Initialize() - ..() - name = "empty [initial(name)]" - -/obj/item/clothing/mask/cigarette/pipe/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/clothing/mask/cigarette/pipe/process() - var/turf/location = get_turf(src) - smoketime-- - if(smoketime < 1) - new /obj/effect/decal/cleanable/ash(location) - if(ismob(loc)) - var/mob/living/M = loc - to_chat(M, "Your [name] goes out.") - lit = 0 - icon_state = icon_off - item_state = icon_off - M.update_inv_wear_mask() - packeditem = 0 - name = "empty [initial(name)]" - STOP_PROCESSING(SSobj, src) - return - open_flame() - if(reagents && reagents.total_volume) // check if it has any reagents at all - handle_reagents() - - -/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) - var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O - if(!packeditem) - if(G.dry == 1) - to_chat(user, "You stuff [O] into [src].") - smoketime = 400 - packeditem = 1 - name = "[O.name]-packed [initial(name)]" - if(O.reagents) - O.reagents.trans_to(src, O.reagents.total_volume) - qdel(O) - else - to_chat(user, "It has to be dried first!") - else - to_chat(user, "It is already packed!") - else - var/lighting_text = O.ignition_effect(src,user) - if(lighting_text) - if(smoketime > 0) - light(lighting_text) - else - to_chat(user, "There is nothing to smoke!") - else - return ..() - -/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user) - var/turf/location = get_turf(user) - if(lit) - user.visible_message("[user] puts out [src].", "You put out [src].") - lit = 0 - icon_state = icon_off - item_state = icon_off - STOP_PROCESSING(SSobj, src) - return - if(!lit && smoketime > 0) - to_chat(user, "You empty [src] onto [location].") - new /obj/effect/decal/cleanable/ash(location) - packeditem = 0 - smoketime = 0 - reagents.clear_reagents() - name = "empty [initial(name)]" - return - -/obj/item/clothing/mask/cigarette/pipe/cobpipe - name = "corn cob pipe" - desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." - icon_state = "cobpipeoff" - item_state = "cobpipeoff" - icon_on = "cobpipeon" //Note - these are in masks.dmi - icon_off = "cobpipeoff" - smoketime = 0 - - -///////// -//ZIPPO// -///////// -/obj/item/weapon/lighter - name = "\improper Zippo lighter" - desc = "The zippo." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "zippo" - item_state = "zippo" - w_class = WEIGHT_CLASS_TINY - flags = CONDUCT - slot_flags = SLOT_BELT - var/lit = 0 + w_class = WEIGHT_CLASS_TINY + body_parts_covered = null + var/lit = FALSE + var/starts_lit = FALSE + var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi + var/icon_off = "cigoff" + var/type_butt = /obj/item/weapon/cigbutt + var/lastHolder = null + var/smoketime = 300 + var/chem_volume = 30 + var/list/list_reagents = list("nicotine" = 15) + heat = 1000 + +/obj/item/clothing/mask/cigarette/suicide_act(mob/user) + user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") + return (TOXLOSS|OXYLOSS) + +/obj/item/clothing/mask/cigarette/Initialize() + ..() + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + if(list_reagents) + reagents.add_reagent_list(list_reagents) + if(starts_lit) + light() + +/obj/item/clothing/mask/cigarette/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params) + if(!lit && smoketime > 0) + var/lighting_text = W.ignition_effect(src, user) + if(lighting_text) + light(lighting_text) + else + return ..() + +/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user, proximity) + if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) + return + if(istype(glass)) //you can dip cigarettes into beakers + if(glass.reagents.trans_to(src, chem_volume)) //if reagents were transfered, show the message + to_chat(user, "You dip \the [src] into \the [glass].") + else //if not, either the beaker was empty, or the cigarette was full + if(!glass.reagents.total_volume) + to_chat(user, "[glass] is empty.") + else + to_chat(user, "[src] is full.") + + +/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) + if(lit) + return + + lit = TRUE + name = "lit [name]" + attack_verb = list("burnt", "singed") + hitsound = 'sound/items/welder.ogg' + damtype = "fire" + force = 4 + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + // allowing reagents to react after being lit + reagents.set_reacting(TRUE) + reagents.handle_reactions() + icon_state = icon_on + item_state = icon_on + if(flavor_text) + var/turf/T = get_turf(src) + T.visible_message(flavor_text) + START_PROCESSING(SSobj, src) + + //can't think of any other way to update the overlays :< + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + M.update_inv_hands() + + +/obj/item/clothing/mask/cigarette/proc/handle_reagents() + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + if(prob(15)) // so it's not an instarape in case of acid + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) + reagents.reaction(C, INGEST, fraction) + if(!reagents.trans_to(C, REAGENTS_METABOLISM)) + reagents.remove_any(REAGENTS_METABOLISM) + return + reagents.remove_any(REAGENTS_METABOLISM) + + +/obj/item/clothing/mask/cigarette/process() + var/turf/location = get_turf(src) + var/mob/living/M = loc + if(isliving(loc)) + M.IgniteMob() + smoketime-- + if(smoketime < 1) + new type_butt(location) + if(ismob(loc)) + to_chat(M, "Your [name] goes out.") + qdel(src) + return + open_flame() + if(reagents && reagents.total_volume) + handle_reagents() + +/obj/item/clothing/mask/cigarette/attack_self(mob/user) + if(lit) + user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") + new type_butt(user.loc) + new /obj/effect/decal/cleanable/ash(user.loc) + qdel(src) + . = ..() + +/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + return ..() + +/obj/item/clothing/mask/cigarette/fire_act(exposed_temperature, exposed_volume) + light() + +/obj/item/clothing/mask/cigarette/is_hot() + return lit * heat + +// Cigarette brands. + +/obj/item/clothing/mask/cigarette/space_cigarette + desc = "A Space Cigarette brand cigarette." + +/obj/item/clothing/mask/cigarette/dromedary + desc = "A DromedaryCo brand cigarette." + +/obj/item/clothing/mask/cigarette/uplift + desc = "An Uplift Smooth brand cigarette." + list_reagents = list("nicotine" = 7.5, "menthol" = 7.5) + +/obj/item/clothing/mask/cigarette/robust + desc = "A Robust brand cigarette." + +/obj/item/clothing/mask/cigarette/robustgold + desc = "A Robust Gold brand cigarette." + list_reagents = list("nicotine" = 15, "gold" = 1) + +/obj/item/clothing/mask/cigarette/carp + desc = "A Carp Classic brand cigarette." + +/obj/item/clothing/mask/cigarette/syndicate + desc = "An unknown brand cigarette." + list_reagents = list("nicotine" = 15, "omnizine" = 15) + +/obj/item/clothing/mask/cigarette/shadyjims + desc = "A Shady Jim's Super Slims cigarette." + list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) + +// Rollies. + +/obj/item/clothing/mask/cigarette/rollie + name = "rollie" + desc = "A roll of dried plant matter wrapped in thin paper." + icon_state = "spliffoff" + icon_on = "spliffon" + icon_off = "spliffoff" + type_butt = /obj/item/weapon/cigbutt/roach + throw_speed = 0.5 + item_state = "spliffoff" + smoketime = 180 + chem_volume = 50 + +/obj/item/clothing/mask/cigarette/rollie/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + +/obj/item/clothing/mask/cigarette/rollie/trippy + list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35) + starts_lit = TRUE + +/obj/item/weapon/cigbutt/roach + name = "roach" + desc = "A manky old roach, or for non-stoners, a used rollup." + icon_state = "roach" + +/obj/item/weapon/cigbutt/roach/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + + +//////////// +// CIGARS // +//////////// +/obj/item/clothing/mask/cigarette/cigar + name = "premium cigar" + desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" + icon_state = "cigaroff" + icon_on = "cigaron" + icon_off = "cigaroff" + type_butt = /obj/item/weapon/cigbutt/cigarbutt + throw_speed = 0.5 + item_state = "cigaroff" + smoketime = 1500 + chem_volume = 40 + +/obj/item/clothing/mask/cigarette/cigar/cohiba + name = "\improper Cohiba Robusto cigar" + desc = "There's little more you could want from a cigar." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 2000 + chem_volume = 80 + + +/obj/item/clothing/mask/cigarette/cigar/havana + name = "premium Havanian cigar" + desc = "A cigar fit for only the best of the best." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 7200 + chem_volume = 50 + +/obj/item/weapon/cigbutt + name = "cigarette butt" + desc = "A manky old cigarette butt." + icon = 'icons/obj/clothing/masks.dmi' + icon_state = "cigbutt" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + +/obj/item/weapon/cigbutt/cigarbutt + name = "cigar butt" + desc = "A manky old cigar butt." + icon_state = "cigarbutt" + +///////////////// +//SMOKING PIPES// +///////////////// +/obj/item/clothing/mask/cigarette/pipe + name = "smoking pipe" + desc = "A pipe, for smoking. Probably made of meershaum or something." + icon_state = "pipeoff" + item_state = "pipeoff" + icon_on = "pipeon" //Note - these are in masks.dmi + icon_off = "pipeoff" + smoketime = 0 + chem_volume = 100 + list_reagents = null + var/packeditem = 0 + +/obj/item/clothing/mask/cigarette/pipe/Initialize() + ..() + name = "empty [initial(name)]" + +/obj/item/clothing/mask/cigarette/pipe/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/pipe/process() + var/turf/location = get_turf(src) + smoketime-- + if(smoketime < 1) + new /obj/effect/decal/cleanable/ash(location) + if(ismob(loc)) + var/mob/living/M = loc + to_chat(M, "Your [name] goes out.") + lit = 0 + icon_state = icon_off + item_state = icon_off + M.update_inv_wear_mask() + packeditem = 0 + name = "empty [initial(name)]" + STOP_PROCESSING(SSobj, src) + return + open_flame() + if(reagents && reagents.total_volume) // check if it has any reagents at all + handle_reagents() + + +/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O + if(!packeditem) + if(G.dry == 1) + to_chat(user, "You stuff [O] into [src].") + smoketime = 400 + packeditem = 1 + name = "[O.name]-packed [initial(name)]" + if(O.reagents) + O.reagents.trans_to(src, O.reagents.total_volume) + qdel(O) + else + to_chat(user, "It has to be dried first!") + else + to_chat(user, "It is already packed!") + else + var/lighting_text = O.ignition_effect(src,user) + if(lighting_text) + if(smoketime > 0) + light(lighting_text) + else + to_chat(user, "There is nothing to smoke!") + else + return ..() + +/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user) + var/turf/location = get_turf(user) + if(lit) + user.visible_message("[user] puts out [src].", "You put out [src].") + lit = 0 + icon_state = icon_off + item_state = icon_off + STOP_PROCESSING(SSobj, src) + return + if(!lit && smoketime > 0) + to_chat(user, "You empty [src] onto [location].") + new /obj/effect/decal/cleanable/ash(location) + packeditem = 0 + smoketime = 0 + reagents.clear_reagents() + name = "empty [initial(name)]" + return + +/obj/item/clothing/mask/cigarette/pipe/cobpipe + name = "corn cob pipe" + desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." + icon_state = "cobpipeoff" + item_state = "cobpipeoff" + icon_on = "cobpipeon" //Note - these are in masks.dmi + icon_off = "cobpipeoff" + smoketime = 0 + + +///////// +//ZIPPO// +///////// +/obj/item/weapon/lighter + name = "\improper Zippo lighter" + desc = "The zippo." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "zippo" + item_state = "zippo" + w_class = WEIGHT_CLASS_TINY + flags = CONDUCT + slot_flags = SLOT_BELT + var/lit = 0 var/fancy = TRUE - heat = 1500 - resistance_flags = FIRE_PROOF + heat = 1500 + resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE - + /obj/item/weapon/lighter/update_icon() if(lit) icon_state = "[initial(icon_state)]_on" @@ -504,64 +504,64 @@ CIGARETTE PACKETS ARE IN FANCY.DM set_light(0) STOP_PROCESSING(SSobj, src) update_icon() - -/obj/item/weapon/lighter/attack_self(mob/living/user) - if(user.is_holding(src)) - if(!lit) + +/obj/item/weapon/lighter/attack_self(mob/living/user) + if(user.is_holding(src)) + if(!lit) set_lit(TRUE) if(fancy) - user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.") - else - var/prot = FALSE - var/mob/living/carbon/human/H = user - - if(istype(H) && H.gloves) - var/obj/item/clothing/gloves/G = H.gloves - if(G.max_heat_protection_temperature) - prot = (G.max_heat_protection_temperature > 360) - else - prot = TRUE - - if(prot || prob(75)) - user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") - else - var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" - user.apply_damage(5, BURN, hitzone) - user.visible_message("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn their finger in the process.", "You burn yourself while lighting the lighter!") - - else + user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.") + else + var/prot = FALSE + var/mob/living/carbon/human/H = user + + if(istype(H) && H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.max_heat_protection_temperature) + prot = (G.max_heat_protection_temperature > 360) + else + prot = TRUE + + if(prot || prob(75)) + user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") + else + var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" + user.apply_damage(5, BURN, hitzone) + user.visible_message("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn their finger in the process.", "You burn yourself while lighting the lighter!") + + else set_lit(FALSE) if(fancy) - user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.", "You quietly shut off [src] without even looking at what you're doing. Wow.") - else - user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].") - else - . = ..() - -/obj/item/weapon/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) - if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else + user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.", "You quietly shut off [src] without even looking at what you're doing. Wow.") + else + user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].") + else + . = ..() + +/obj/item/weapon/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else if(fancy) - cig.light("[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame they light \the [cig] with.") - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - ..() - -/obj/item/weapon/lighter/process() - open_flame() - -/obj/item/weapon/lighter/is_hot() - return lit * heat - + cig.light("[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame they light \the [cig] with.") + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/weapon/lighter/process() + open_flame() + +/obj/item/weapon/lighter/is_hot() + return lit * heat + /obj/item/weapon/lighter/greyscale name = "cheap lighter" @@ -587,203 +587,204 @@ CIGARETTE PACKETS ARE IN FANCY.DM . = "After some fiddling, [user] manages to light [A] with [src]." -/////////// -//ROLLING// -/////////// -/obj/item/weapon/rollingpaper - name = "rolling paper" - desc = "A thin piece of paper used to make fine smokeables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig_paper" - w_class = WEIGHT_CLASS_TINY - -/obj/item/weapon/rollingpaper/afterattack(atom/target, mob/user, proximity) - if(!proximity) - return - if(istype(target, /obj/item/weapon/reagent_containers/food/snacks/grown)) - var/obj/item/weapon/reagent_containers/food/snacks/grown/O = target - if(O.dry) - var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) - R.chem_volume = target.reagents.total_volume - target.reagents.trans_to(R, R.chem_volume) - qdel(target) - qdel(src) - user.put_in_active_hand(R) - to_chat(user, "You roll the [target.name] into a rolling paper.") - R.desc = "Dried [target.name] rolled up in a thin piece of paper." - else - to_chat(user, "You need to dry this first!") - else - ..() - -/////////////// -//VAPE NATION// -/////////////// -/obj/item/clothing/mask/vape - name = "E-Cigarette" - desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. - icon = 'icons/obj/clothing/masks.dmi' - icon_state = null - item_state = null +/////////// +//ROLLING// +/////////// +/obj/item/weapon/rollingpaper + name = "rolling paper" + desc = "A thin piece of paper used to make fine smokeables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper" w_class = WEIGHT_CLASS_TINY - var/chem_volume = 100 - var/vapetime = 0 //this so it won't puff out clouds every tick - var/screw = 0 // kinky - var/super = 0 //for the fattest vapes dude. - var/emagged = 0 //LET THE GRIEF BEGIN - -/obj/item/clothing/mask/vape/suicide_act(mob/user) - user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer - return (TOXLOSS|OXYLOSS) - - + +/obj/item/weapon/rollingpaper/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + if(istype(target, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/O = target + if(O.dry) + var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) + R.chem_volume = target.reagents.total_volume + target.reagents.trans_to(R, R.chem_volume) + qdel(target) + qdel(src) + user.put_in_active_hand(R) + to_chat(user, "You roll the [target.name] into a rolling paper.") + R.desc = "Dried [target.name] rolled up in a thin piece of paper." + else + to_chat(user, "You need to dry this first!") + else + ..() + +/////////////// +//VAPE NATION// +/////////////// +/obj/item/clothing/mask/vape + name = "E-Cigarette" + desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. + icon = 'icons/obj/clothing/masks.dmi' + icon_state = null + item_state = null + w_class = WEIGHT_CLASS_TINY + var/chem_volume = 100 + var/vapetime = 0 //this so it won't puff out clouds every tick + var/screw = 0 // kinky + var/super = 0 //for the fattest vapes dude. + var/emagged = 0 //LET THE GRIEF BEGIN + +/obj/item/clothing/mask/vape/suicide_act(mob/user) + user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer + return (TOXLOSS|OXYLOSS) + + /obj/item/clothing/mask/vape/Initialize(mapload, param_color) . = ..() - create_reagents(chem_volume) - reagents.set_reacting(FALSE) // so it doesn't react until you light it - reagents.add_reagent("nicotine", 50) - if(!icon_state) - if(!param_color) - param_color = pick("red","blue","black","white","green","purple","yellow","orange") - icon_state = "[param_color]_vape" - item_state = "[param_color]_vape" - -/obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/reagent_containers) && (O.container_type & OPENCONTAINER)) - if(reagents.total_volume < chem_volume) - if(O.reagents.total_volume > 0) - O.reagents.trans_to(src,25) - to_chat(user, "You add the contents of [O] to the [src]") - else - to_chat(user, "The [O] is empty!") - else - to_chat(user, "[src] can't hold anymore reagents!") - - if(istype(O, /obj/item/weapon/screwdriver)) - if(!screw) - screw = 1 - to_chat(user, "You open the cap on the [src]") - if(super) + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + reagents.add_reagent("nicotine", 50) + if(!icon_state) + if(!param_color) + param_color = pick("red","blue","black","white","green","purple","yellow","orange") + icon_state = "[param_color]_vape" + item_state = "[param_color]_vape" + +/obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers) && (O.container_type & OPENCONTAINER)) + if(reagents.total_volume < chem_volume) + if(O.reagents.total_volume > 0) + O.reagents.trans_to(src,25) + to_chat(user, "You add the contents of [O] to the [src]") + else + to_chat(user, "The [O] is empty!") + else + to_chat(user, "[src] can't hold anymore reagents!") + + if(istype(O, /obj/item/weapon/screwdriver)) + if(!screw) + screw = 1 + to_chat(user, "You open the cap on the [src]") + if(super) add_overlay("vapeopen_med") - else + else add_overlay("vapeopen_low") - else - screw = 0 - to_chat(user, "You close the cap on the [src]") - cut_overlays() - - if(istype(O, /obj/item/device/multitool)) - if(screw && !emagged)//also kinky - if(!super) - cut_overlays() - super = 1 - to_chat(user, "You increase the voltage in the [src]") + else + screw = 0 + to_chat(user, "You close the cap on the [src]") + cut_overlays() + + if(istype(O, /obj/item/device/multitool)) + if(screw && !emagged)//also kinky + if(!super) + cut_overlays() + super = 1 + to_chat(user, "You increase the voltage in the [src]") add_overlay("vapeopen_med") - else - cut_overlays() - super = 0 - to_chat(user, "You decrease the voltage in the [src]") + else + cut_overlays() + super = 0 + to_chat(user, "You decrease the voltage in the [src]") add_overlay("vapeopen_low") - - if(screw && emagged) - to_chat(user, "The [name] can't be modified!") - - -/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. - if(screw) - if(!emagged) - cut_overlays() - emagged = 1 - super = 0 - to_chat(user, "You maximize the voltage in the [src]") + + if(screw && emagged) + to_chat(user, "The [name] can't be modified!") + + +/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. + if(screw) + if(!emagged) + cut_overlays() + emagged = 1 + super = 0 + to_chat(user, "You maximize the voltage in the [src]") add_overlay("vapeopen_high") - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect - sp.set_up(5, 1, src) - sp.start() - else - to_chat(user, "The [name] is already emagged!") - else - to_chat(user, "You need to open the cap to do that") - -/obj/item/clothing/mask/vape/attack_self(mob/user) - if(reagents.total_volume > 0) - to_chat(user, "you empty [src] of all reagents.") - reagents.clear_reagents() - return - -/obj/item/clothing/mask/vape/equipped(mob/user, slot) - if(slot == slot_wear_mask) - if(!screw) - to_chat(user, "You start puffing on the vape.") - reagents.set_reacting(TRUE) - START_PROCESSING(SSobj, src) - else //it will not start if the vape is opened. - to_chat(user, "You need to close the cap first!") - -/obj/item/clothing/mask/vape/dropped(mob/user) - var/mob/living/carbon/C = user - if(C.get_item_by_slot(slot_wear_mask) == src) - reagents.set_reacting(FALSE) - STOP_PROCESSING(SSobj, src) - -/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error - if(reagents.total_volume) - if(iscarbon(loc)) - var/mob/living/carbon/C = loc - if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) //this will react instantly, making them a little more dangerous than cigarettes - reagents.reaction(C, INGEST, fraction) - if(!reagents.trans_to(C, REAGENTS_METABOLISM)) - reagents.remove_any(REAGENTS_METABOLISM) - if(reagents.get_reagent_amount("welding_fuel")) - //HOT STUFF - C.fire_stacks = 2 - C.IgniteMob() - - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - reagents.remove_any(REAGENTS_METABOLISM) - -/obj/item/clothing/mask/vape/process() - var/mob/living/M = loc - - if(isliving(loc)) - M.IgniteMob() - - vapetime++ - - if(!reagents.total_volume) - if(ismob(loc)) - to_chat(M, "The [name] is empty!") - STOP_PROCESSING(SSobj, src) - //it's reusable so it won't unequip when empty - return - //open flame removed because vapes are a closed system, they wont light anything on fire - - if(super && vapetime > 3)//Time to start puffing those fat vapes, yo. - var/datum/effect_system/smoke_spread/chem/s = new - s.set_up(reagents, 1, loc, silent=TRUE) - s.start() - vapetime = 0 - - if(emagged && vapetime > 3) - var/datum/effect_system/smoke_spread/chem/s = new - s.set_up(reagents, 4, loc, silent=TRUE) - s.start() - vapetime = 0 - if(prob(5))//small chance for the vape to break and deal damage if it's emagged - playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) - M.apply_damage(20, BURN, "head") - M.Weaken(15, 1, 0) - qdel(src) - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread - sp.set_up(5, 1, src) - sp.start() - to_chat(M, "The [name] suddenly explodes in your mouth!") - - if(reagents && reagents.total_volume) - hand_reagents() + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect + sp.set_up(5, 1, src) + sp.start() + else + to_chat(user, "The [name] is already emagged!") + else + to_chat(user, "You need to open the cap to do that") + +/obj/item/clothing/mask/vape/attack_self(mob/user) + if(reagents.total_volume > 0) + to_chat(user, "you empty [src] of all reagents.") + reagents.clear_reagents() + return + +/obj/item/clothing/mask/vape/equipped(mob/user, slot) + if(slot == slot_wear_mask) + if(!screw) + to_chat(user, "You start puffing on the vape.") + reagents.set_reacting(TRUE) + START_PROCESSING(SSobj, src) + else //it will not start if the vape is opened. + to_chat(user, "You need to close the cap first!") + +/obj/item/clothing/mask/vape/dropped(mob/user) + var/mob/living/carbon/C = user + if(C.get_item_by_slot(slot_wear_mask) == src) + reagents.set_reacting(FALSE) + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) //this will react instantly, making them a little more dangerous than cigarettes + reagents.reaction(C, INGEST, fraction) + if(!reagents.trans_to(C, REAGENTS_METABOLISM)) + reagents.remove_any(REAGENTS_METABOLISM) + if(reagents.get_reagent_amount("welding_fuel")) + //HOT STUFF + C.fire_stacks = 2 + C.IgniteMob() + + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + reagents.remove_any(REAGENTS_METABOLISM) + +/obj/item/clothing/mask/vape/process() + var/mob/living/M = loc + + if(isliving(loc)) + M.IgniteMob() + + vapetime++ + + if(!reagents.total_volume) + if(ismob(loc)) + to_chat(M, "The [name] is empty!") + STOP_PROCESSING(SSobj, src) + //it's reusable so it won't unequip when empty + return + //open flame removed because vapes are a closed system, they wont light anything on fire + + if(super && vapetime > 3)//Time to start puffing those fat vapes, yo. + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 1, loc, silent=TRUE) + s.start() + vapetime = 0 + + if(emagged && vapetime > 3) + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 4, loc, silent=TRUE) + s.start() + vapetime = 0 + if(prob(5))//small chance for the vape to break and deal damage if it's emagged + playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) + M.apply_damage(20, BURN, "head") + M.Knockdown(300, 1, 0) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread + sp.set_up(5, 1, src) + sp.start() + to_chat(M, "The [name] suddenly explodes in your mouth!") + qdel(src) + return + + if(reagents && reagents.total_volume) + hand_reagents() diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index e7fb3e0f64..1df7b9f69a 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -1,170 +1,170 @@ -/* Clown Items - * Contains: - * Soap - * Bike Horns - * Air Horns - */ - -/* - * Soap - */ - -/obj/item/weapon/soap - name = "soap" - desc = "A cheap bar of soap. Doesn't smell." - gender = PLURAL - icon = 'icons/obj/items.dmi' - icon_state = "soap" - w_class = WEIGHT_CLASS_TINY - flags = NOBLUDGEON - throwforce = 0 - throw_speed = 3 - throw_range = 7 - var/cleanspeed = 50 //slower than mop +/* Clown Items + * Contains: + * Soap + * Bike Horns + * Air Horns + */ + +/* + * Soap + */ + +/obj/item/weapon/soap + name = "soap" + desc = "A cheap bar of soap. Doesn't smell." + gender = PLURAL + icon = 'icons/obj/items.dmi' + icon_state = "soap" + w_class = WEIGHT_CLASS_TINY + flags = NOBLUDGEON + throwforce = 0 + throw_speed = 3 + throw_range = 7 + var/cleanspeed = 50 //slower than mop force_string = "robust... against germs" - -/obj/item/weapon/soap/nanotrasen - desc = "A Nanotrasen brand bar of soap. Smells of plasma." - icon_state = "soapnt" - -/obj/item/weapon/soap/homemade - desc = "A homemade bar of soap. Smells of... well...." - icon_state = "soapgibs" - cleanspeed = 45 // a little faster to reward chemists for going to the effort - -/obj/item/weapon/soap/deluxe - desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury." - icon_state = "soapdeluxe" - cleanspeed = 40 //same speed as mop because deluxe -- captain gets one of these - -/obj/item/weapon/soap/syndie - desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster." - icon_state = "soapsyndie" - cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes - -/obj/item/weapon/soap/suicide_act(mob/user) - user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!") - user.visible_message("[user] lifts [src] to their mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!") - new /obj/effect/particle_effect/foam(loc) - return (TOXLOSS) - -/obj/item/weapon/soap/Crossed(AM as mob|obj) - if (istype(AM, /mob/living/carbon)) - var/mob/living/carbon/M = AM - M.slip(4, 2, src) - -/obj/item/weapon/soap/afterattack(atom/target, mob/user, proximity) - if(!proximity || !check_allowed_items(target)) - return - //I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing. - //So this is a workaround. This also makes more sense from an IC standpoint. ~Carn - if(user.client && (target in user.client.screen)) - to_chat(user, "You need to take that [target.name] off before cleaning it!") - else if(istype(target,/obj/effect/decal/cleanable)) - user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "You begin to scrub \the [target.name] out with [src]...") - if(do_after(user, src.cleanspeed, target = target)) - to_chat(user, "You scrub \the [target.name] out.") - qdel(target) - else if(ishuman(target) && user.zone_selected == "mouth") - var/mob/living/carbon/human/H = user - user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here - H.lip_style = null //removes lipstick - H.update_body() - return - else if(istype(target, /obj/structure/window)) - user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") - if(do_after(user, src.cleanspeed, target = target)) - to_chat(user, "You clean \the [target.name].") - target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) - target.set_opacity(initial(target.opacity)) - else - user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") - if(do_after(user, src.cleanspeed, target = target)) - to_chat(user, "You clean \the [target.name].") - var/obj/effect/decal/cleanable/C = locate() in target - qdel(C) - target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) - target.clean_blood() - target.wash_cream() - return - - -/* - * Bike Horns - */ - - -/obj/item/weapon/bikehorn - name = "bike horn" - desc = "A horn off of a bicycle." - icon = 'icons/obj/items.dmi' - icon_state = "bike_horn" - item_state = "bike_horn" - throwforce = 0 - hitsound = null //To prevent tap.ogg playing, as the item lacks of force - w_class = WEIGHT_CLASS_TINY - throw_speed = 3 - throw_range = 7 - attack_verb = list("HONKED") + +/obj/item/weapon/soap/nanotrasen + desc = "A Nanotrasen brand bar of soap. Smells of plasma." + icon_state = "soapnt" + +/obj/item/weapon/soap/homemade + desc = "A homemade bar of soap. Smells of... well...." + icon_state = "soapgibs" + cleanspeed = 45 // a little faster to reward chemists for going to the effort + +/obj/item/weapon/soap/deluxe + desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury." + icon_state = "soapdeluxe" + cleanspeed = 40 //same speed as mop because deluxe -- captain gets one of these + +/obj/item/weapon/soap/syndie + desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster." + icon_state = "soapsyndie" + cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes + +/obj/item/weapon/soap/suicide_act(mob/user) + user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!") + user.visible_message("[user] lifts [src] to their mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!") + new /obj/effect/particle_effect/foam(loc) + return (TOXLOSS) + +/obj/item/weapon/soap/Crossed(AM as mob|obj) + if (istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + M.slip(80, src) + +/obj/item/weapon/soap/afterattack(atom/target, mob/user, proximity) + if(!proximity || !check_allowed_items(target)) + return + //I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing. + //So this is a workaround. This also makes more sense from an IC standpoint. ~Carn + if(user.client && (target in user.client.screen)) + to_chat(user, "You need to take that [target.name] off before cleaning it!") + else if(istype(target,/obj/effect/decal/cleanable)) + user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "You begin to scrub \the [target.name] out with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + to_chat(user, "You scrub \the [target.name] out.") + qdel(target) + else if(ishuman(target) && user.zone_selected == "mouth") + var/mob/living/carbon/human/H = user + user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here + H.lip_style = null //removes lipstick + H.update_body() + return + else if(istype(target, /obj/structure/window)) + user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + to_chat(user, "You clean \the [target.name].") + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.set_opacity(initial(target.opacity)) + else + user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + to_chat(user, "You clean \the [target.name].") + var/obj/effect/decal/cleanable/C = locate() in target + qdel(C) + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.clean_blood() + target.wash_cream() + return + + +/* + * Bike Horns + */ + + +/obj/item/weapon/bikehorn + name = "bike horn" + desc = "A horn off of a bicycle." + icon = 'icons/obj/items.dmi' + icon_state = "bike_horn" + item_state = "bike_horn" + throwforce = 0 + hitsound = null //To prevent tap.ogg playing, as the item lacks of force + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + attack_verb = list("HONKED") var/next_usable = 0 - var/honksound = 'sound/items/bikehorn.ogg' - var/cooldowntime = 20 - -/obj/item/weapon/bikehorn/suicide_act(mob/user) - user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src.loc, honksound, 50, 1) - return (BRUTELOSS) - -/obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) + var/honksound = 'sound/items/bikehorn.ogg' + var/cooldowntime = 20 + +/obj/item/weapon/bikehorn/suicide_act(mob/user) + user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src.loc, honksound, 50, 1) + return (BRUTELOSS) + +/obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) if(!(next_usable > world.time)) - playsound(loc, honksound, 50, 1, -1) //plays instead of tap.ogg! - return ..() - -/obj/item/weapon/bikehorn/attack_self(mob/user) + playsound(loc, honksound, 50, 1, -1) //plays instead of tap.ogg! + return ..() + +/obj/item/weapon/bikehorn/attack_self(mob/user) if(!(next_usable > world.time)) next_usable = world.time + cooldowntime - playsound(src.loc, honksound, 50, 1) - src.add_fingerprint(user) - -/obj/item/weapon/bikehorn/Crossed(mob/living/L) - if(isliving(L)) - playsound(loc, honksound, 50, 1, -1) - ..() - -/obj/item/weapon/bikehorn/airhorn - name = "air horn" - desc = "Damn son, where'd you find this?" - icon_state = "air_horn" - honksound = 'sound/items/AirHorn2.ogg' - cooldowntime = 50 - origin_tech = "materials=4;engineering=4" - -/obj/item/weapon/bikehorn/golden - name = "golden bike horn" - desc = "Golden? Clearly, it's made with bananium! Honk!" - icon_state = "gold_horn" - item_state = "gold_horn" - -/obj/item/weapon/bikehorn/golden/attack() - flip_mobs() - return ..() - -/obj/item/weapon/bikehorn/golden/attack_self(mob/user) - flip_mobs() - ..() - -/obj/item/weapon/bikehorn/golden/proc/flip_mobs(mob/living/carbon/M, mob/user) + playsound(src.loc, honksound, 50, 1) + src.add_fingerprint(user) + +/obj/item/weapon/bikehorn/Crossed(mob/living/L) + if(isliving(L)) + playsound(loc, honksound, 50, 1, -1) + ..() + +/obj/item/weapon/bikehorn/airhorn + name = "air horn" + desc = "Damn son, where'd you find this?" + icon_state = "air_horn" + honksound = 'sound/items/airhorn2.ogg' + cooldowntime = 50 + origin_tech = "materials=4;engineering=4" + +/obj/item/weapon/bikehorn/golden + name = "golden bike horn" + desc = "Golden? Clearly, it's made with bananium! Honk!" + icon_state = "gold_horn" + item_state = "gold_horn" + +/obj/item/weapon/bikehorn/golden/attack() + flip_mobs() + return ..() + +/obj/item/weapon/bikehorn/golden/attack_self(mob/user) + flip_mobs() + ..() + +/obj/item/weapon/bikehorn/golden/proc/flip_mobs(mob/living/carbon/M, mob/user) if(!(next_usable > world.time)) - var/turf/T = get_turf(src) - for(M in ohearers(7, T)) + var/turf/T = get_turf(src) + for(M in ohearers(7, T)) if(ishuman(M) && M.can_hear()) - var/mob/living/carbon/human/H = M + var/mob/living/carbon/human/H = M if(istype(H.ears, /obj/item/clothing/ears/earmuffs)) - continue - M.emote("flip") - -/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter - name = "Canned Laughter" - desc = "Just looking at this makes you want to giggle." - icon_state = "laughter" - list_reagents = list("laughter" = 50) + continue + M.emote("flip") + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter + name = "Canned Laughter" + desc = "Just looking at this makes you want to giggle." + icon_state = "laughter" + list_reagents = list("laughter" = 50) diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index 9d0ad5ab78..e9e7eb309b 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -1,186 +1,186 @@ -/obj/item/weapon/lipstick - gender = PLURAL - name = "red lipstick" - desc = "A generic brand of lipstick." - icon = 'icons/obj/items.dmi' - icon_state = "lipstick" - w_class = WEIGHT_CLASS_TINY - var/colour = "red" - var/open = 0 - - -/obj/item/weapon/lipstick/purple - name = "purple lipstick" - colour = "purple" - -/obj/item/weapon/lipstick/jade - //It's still called Jade, but theres no HTML color for jade, so we use lime. - name = "jade lipstick" - colour = "lime" - -/obj/item/weapon/lipstick/black - name = "black lipstick" - colour = "black" - - -/obj/item/weapon/lipstick/random - name = "lipstick" - -/obj/item/weapon/lipstick/random/New() - ..() - colour = pick("red","purple","lime","black","green","blue","white") - name = "[colour] lipstick" - - - -/obj/item/weapon/lipstick/attack_self(mob/user) - cut_overlays() - to_chat(user, "You twist \the [src] [open ? "closed" : "open"].") - open = !open - if(open) +/obj/item/weapon/lipstick + gender = PLURAL + name = "red lipstick" + desc = "A generic brand of lipstick." + icon = 'icons/obj/items.dmi' + icon_state = "lipstick" + w_class = WEIGHT_CLASS_TINY + var/colour = "red" + var/open = 0 + + +/obj/item/weapon/lipstick/purple + name = "purple lipstick" + colour = "purple" + +/obj/item/weapon/lipstick/jade + //It's still called Jade, but theres no HTML color for jade, so we use lime. + name = "jade lipstick" + colour = "lime" + +/obj/item/weapon/lipstick/black + name = "black lipstick" + colour = "black" + + +/obj/item/weapon/lipstick/random + name = "lipstick" + +/obj/item/weapon/lipstick/random/New() + ..() + colour = pick("red","purple","lime","black","green","blue","white") + name = "[colour] lipstick" + + + +/obj/item/weapon/lipstick/attack_self(mob/user) + cut_overlays() + to_chat(user, "You twist \the [src] [open ? "closed" : "open"].") + open = !open + if(open) var/mutable_appearance/colored_overlay = mutable_appearance(icon, "lipstick_uncap_color") colored_overlay.color = colour - icon_state = "lipstick_uncap" + icon_state = "lipstick_uncap" add_overlay(colored_overlay) - else - icon_state = "lipstick" - -/obj/item/weapon/lipstick/attack(mob/M, mob/user) - if(!open) - return - - if(!istype(M, /mob)) - return - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.is_mouth_covered()) - to_chat(user, "Remove [ H == user ? "your" : "their" ] mask!") - return - if(H.lip_style) //if they already have lipstick on - to_chat(user, "You need to wipe off the old lipstick first!") - return - if(H == user) - user.visible_message("[user] does their lips with \the [src].", \ - "You take a moment to apply \the [src]. Perfect!") - H.lip_style = "lipstick" - H.lip_color = colour - H.update_body() - else - user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ - "You begin to apply \the [src] on [H]'s lips...") - if(do_after(user, 20, target = H)) - user.visible_message("[user] does [H]'s lips with \the [src].", \ - "You apply \the [src] on [H]'s lips.") - H.lip_style = "lipstick" - H.lip_color = colour - H.update_body() - else - to_chat(user, "Where are the lips on that?") - -//you can wipe off lipstick with paper! -/obj/item/weapon/paper/attack(mob/M, mob/user) - if(user.zone_selected == "mouth") - if(!ismob(M)) - return - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H == user) - to_chat(user, "You wipe off the lipstick with [src].") - H.lip_style = null - H.update_body() - else - user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ - "You begin to wipe off [H]'s lipstick...") - if(do_after(user, 10, target = H)) - user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ - "You wipe off [H]'s lipstick.") - H.lip_style = null - H.update_body() - else - ..() - - -/obj/item/weapon/razor - name = "electric razor" - desc = "The latest and greatest power razor born from the science of shaving." - icon = 'icons/obj/items.dmi' - icon_state = "razor" - flags = CONDUCT - w_class = WEIGHT_CLASS_TINY - - -/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location = "mouth") - if(location == "mouth") - H.facial_hair_style = "Shaved" - else - H.hair_style = "Skinhead" - - H.update_hair() - playsound(loc, 'sound/items/Welder2.ogg', 20, 1) - - -/obj/item/weapon/razor/attack(mob/M, mob/user) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/location = user.zone_selected - if(location == "mouth") - if(!(FACEHAIR in H.dna.species.species_traits)) - to_chat(user, "There is no facial hair to shave!") - return - if(!get_location_accessible(H, location)) - to_chat(user, "The mask is in the way!") - return - if(H.facial_hair_style == "Shaved") - to_chat(user, "Already clean-shaven!") - return - - if(H == user) //shaving yourself - user.visible_message("[user] starts to shave their facial hair with [src].", \ - "You take a moment to shave your facial hair with [src]...") - if(do_after(user, 50, target = H)) - user.visible_message("[user] shaves his facial hair clean with [src].", \ - "You finish shaving with [src]. Fast and clean!") - shave(H, location) - else - var/turf/H_loc = H.loc - user.visible_message("[user] tries to shave [H]'s facial hair with [src].", \ - "You start shaving [H]'s facial hair...") - if(do_after(user, 50, target = H)) - if(H_loc == H.loc) - user.visible_message("[user] shaves off [H]'s facial hair with [src].", \ - "You shave [H]'s facial hair clean off.") - shave(H, location) - - else if(location == "head") - if(!(HAIR in H.dna.species.species_traits)) - to_chat(user, "There is no hair to shave!") - return - if(!get_location_accessible(H, location)) - to_chat(user, "The headgear is in the way!") - return - if(H.hair_style == "Bald" || H.hair_style == "Balding Hair" || H.hair_style == "Skinhead") - to_chat(user, "There is not enough hair left to shave!") - return - - if(H == user) //shaving yourself - user.visible_message("[user] starts to shave their head with [src].", \ - "You start to shave your head with [src]...") - if(do_after(user, 5, target = H)) - user.visible_message("[user] shaves his head with [src].", \ - "You finish shaving with [src].") - shave(H, location) - else - var/turf/H_loc = H.loc - user.visible_message("[user] tries to shave [H]'s head with [src]!", \ - "You start shaving [H]'s head...") - if(do_after(user, 50, target = H)) - if(H_loc == H.loc) - user.visible_message("[user] shaves [H]'s head bald with [src]!", \ - "You shave [H]'s head bald.") - shave(H, location) - else - ..() - else + else + icon_state = "lipstick" + +/obj/item/weapon/lipstick/attack(mob/M, mob/user) + if(!open) + return + + if(!ismob(M)) + return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.is_mouth_covered()) + to_chat(user, "Remove [ H == user ? "your" : "their" ] mask!") + return + if(H.lip_style) //if they already have lipstick on + to_chat(user, "You need to wipe off the old lipstick first!") + return + if(H == user) + user.visible_message("[user] does their lips with \the [src].", \ + "You take a moment to apply \the [src]. Perfect!") + H.lip_style = "lipstick" + H.lip_color = colour + H.update_body() + else + user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ + "You begin to apply \the [src] on [H]'s lips...") + if(do_after(user, 20, target = H)) + user.visible_message("[user] does [H]'s lips with \the [src].", \ + "You apply \the [src] on [H]'s lips.") + H.lip_style = "lipstick" + H.lip_color = colour + H.update_body() + else + to_chat(user, "Where are the lips on that?") + +//you can wipe off lipstick with paper! +/obj/item/weapon/paper/attack(mob/M, mob/user) + if(user.zone_selected == "mouth") + if(!ismob(M)) + return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H == user) + to_chat(user, "You wipe off the lipstick with [src].") + H.lip_style = null + H.update_body() + else + user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ + "You begin to wipe off [H]'s lipstick...") + if(do_after(user, 10, target = H)) + user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ + "You wipe off [H]'s lipstick.") + H.lip_style = null + H.update_body() + else + ..() + + +/obj/item/weapon/razor + name = "electric razor" + desc = "The latest and greatest power razor born from the science of shaving." + icon = 'icons/obj/items.dmi' + icon_state = "razor" + flags = CONDUCT + w_class = WEIGHT_CLASS_TINY + + +/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location = "mouth") + if(location == "mouth") + H.facial_hair_style = "Shaved" + else + H.hair_style = "Skinhead" + + H.update_hair() + playsound(loc, 'sound/items/welder2.ogg', 20, 1) + + +/obj/item/weapon/razor/attack(mob/M, mob/user) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/location = user.zone_selected + if(location == "mouth") + if(!(FACEHAIR in H.dna.species.species_traits)) + to_chat(user, "There is no facial hair to shave!") + return + if(!get_location_accessible(H, location)) + to_chat(user, "The mask is in the way!") + return + if(H.facial_hair_style == "Shaved") + to_chat(user, "Already clean-shaven!") + return + + if(H == user) //shaving yourself + user.visible_message("[user] starts to shave their facial hair with [src].", \ + "You take a moment to shave your facial hair with [src]...") + if(do_after(user, 50, target = H)) + user.visible_message("[user] shaves his facial hair clean with [src].", \ + "You finish shaving with [src]. Fast and clean!") + shave(H, location) + else + var/turf/H_loc = H.loc + user.visible_message("[user] tries to shave [H]'s facial hair with [src].", \ + "You start shaving [H]'s facial hair...") + if(do_after(user, 50, target = H)) + if(H_loc == H.loc) + user.visible_message("[user] shaves off [H]'s facial hair with [src].", \ + "You shave [H]'s facial hair clean off.") + shave(H, location) + + else if(location == "head") + if(!(HAIR in H.dna.species.species_traits)) + to_chat(user, "There is no hair to shave!") + return + if(!get_location_accessible(H, location)) + to_chat(user, "The headgear is in the way!") + return + if(H.hair_style == "Bald" || H.hair_style == "Balding Hair" || H.hair_style == "Skinhead") + to_chat(user, "There is not enough hair left to shave!") + return + + if(H == user) //shaving yourself + user.visible_message("[user] starts to shave their head with [src].", \ + "You start to shave your head with [src]...") + if(do_after(user, 5, target = H)) + user.visible_message("[user] shaves his head with [src].", \ + "You finish shaving with [src].") + shave(H, location) + else + var/turf/H_loc = H.loc + user.visible_message("[user] tries to shave [H]'s head with [src]!", \ + "You start shaving [H]'s head...") + if(do_after(user, 50, target = H)) + if(H_loc == H.loc) + user.visible_message("[user] shaves [H]'s head bald with [src]!", \ + "You shave [H]'s head bald.") + shave(H, location) + else + ..() + else ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index d616f4aaa4..ffa1b157e0 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -23,15 +23,15 @@ var/combat = 0 //can we revive through space suits? var/grab_ghost = FALSE // Do we pull the ghost back into their body? +/obj/item/weapon/defibrillator/get_cell() + return cell + /obj/item/weapon/defibrillator/Initialize() //starts without a cell for rnd . = ..() paddles = make_paddles() update_icon() return -/obj/item/weapon/defibrillator/get_cell() - return cell - /obj/item/weapon/defibrillator/loaded/Initialize() //starts with hicap . = ..() paddles = make_paddles() @@ -123,7 +123,7 @@ else if(istype(W, /obj/item/weapon/screwdriver)) if(cell) cell.update_icon() - cell.loc = get_turf(src.loc) + cell.forceMove(get_turf(src)) cell = null to_chat(user, "You remove the cell from [src].") update_icon() @@ -400,7 +400,7 @@ M.visible_message("[user] has touched [M] with [src]!", \ "[user] has touched [M] with [src]!") M.adjustStaminaLoss(50) - M.Weaken(5) + M.Knockdown(100) M.updatehealth() //forces health update before next life tick playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) M.emote("gasp") @@ -446,7 +446,7 @@ return user.visible_message("[user] shocks [H] with \the [src]!", "You shock [H] with \the [src]!") playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 100, 1, -1) - playsound(loc, 'sound/weapons/Egloves.ogg', 100, 1, -1) + playsound(loc, 'sound/weapons/egloves.ogg', 100, 1, -1) H.emote("scream") if(H.can_heartattack() && !H.undergoing_cardiac_arrest()) if(!H.stat) @@ -455,7 +455,7 @@ H.set_heartattack(TRUE) H.apply_damage(50, BURN, "chest") add_logs(user, H, "overloaded the heart of", defib) - H.Weaken(5) + H.Knockdown(100) H.Jitter(100) if(req_defib) defib.deductcharge(revivecost) diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 23febe50db..15451bbb2f 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -181,7 +181,7 @@ return 0 to_chat(H, "You step on the D4!") H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) - H.Weaken(3) + H.Knockdown(60) /obj/item/weapon/dice/update_icon() cut_overlays() diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 433ff2a702..e329ae78f8 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -1,368 +1,368 @@ -/obj/item/weapon/dnainjector - name = "\improper DNA injector" - desc = "This injects the person with DNA." - icon = 'icons/obj/items.dmi' - icon_state = "dnainjector" - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_TINY - origin_tech = "biotech=1" - - var/damage_coeff = 1 - var/list/fields - var/list/add_mutations = list() - var/list/remove_mutations = list() - - var/list/add_mutations_static = list() - var/list/remove_mutations_static = list() - - var/used = 0 - -/obj/item/weapon/dnainjector/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/weapon/dnainjector/proc/prepare() - for(var/mut_key in add_mutations_static) - add_mutations.Add(GLOB.mutations_list[mut_key]) - for(var/mut_key in remove_mutations_static) - remove_mutations.Add(GLOB.mutations_list[mut_key]) - -/obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user) - prepare() - +/obj/item/weapon/dnainjector + name = "\improper DNA injector" + desc = "This injects the person with DNA." + icon = 'icons/obj/items.dmi' + icon_state = "dnainjector" + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_TINY + origin_tech = "biotech=1" + + var/damage_coeff = 1 + var/list/fields + var/list/add_mutations = list() + var/list/remove_mutations = list() + + var/list/add_mutations_static = list() + var/list/remove_mutations_static = list() + + var/used = 0 + +/obj/item/weapon/dnainjector/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/dnainjector/proc/prepare() + for(var/mut_key in add_mutations_static) + add_mutations.Add(GLOB.mutations_list[mut_key]) + for(var/mut_key in remove_mutations_static) + remove_mutations.Add(GLOB.mutations_list[mut_key]) + +/obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user) + prepare() + if(M.has_dna() && !(RADIMMUNE in M.dna.species.species_traits) && !(M.disabilities & NOCLONE)) - M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) - var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" - for(var/datum/mutation/human/HM in remove_mutations) - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if(HM.name == RACEMUT) - message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") - log_msg += " (MONKEY)" - HM.force_give(M) - if(fields) - if(fields["name"] && fields["UE"] && fields["blood_type"]) - M.real_name = fields["name"] - M.dna.unique_enzymes = fields["UE"] - M.name = M.real_name - M.dna.blood_type = fields["blood_type"] - if(fields["UI"]) //UI+UE - M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) - M.updateappearance(mutations_overlay_update=1) - log_attack(log_msg) - return TRUE + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + for(var/datum/mutation/human/HM in remove_mutations) + HM.force_lose(M) + for(var/datum/mutation/human/HM in add_mutations) + if(HM.name == RACEMUT) + message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + log_msg += " (MONKEY)" + HM.force_give(M) + if(fields) + if(fields["name"] && fields["UE"] && fields["blood_type"]) + M.real_name = fields["name"] + M.dna.unique_enzymes = fields["UE"] + M.name = M.real_name + M.dna.blood_type = fields["blood_type"] + if(fields["UI"]) //UI+UE + M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) + M.updateappearance(mutations_overlay_update=1) + log_attack(log_msg) + return TRUE return FALSE - -/obj/item/weapon/dnainjector/attack(mob/target, mob/user) - if(!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return - if(used) - to_chat(user, "This injector is used up!") - return - if(ishuman(target)) - var/mob/living/carbon/human/humantarget = target - if (!humantarget.can_inject(user, 1)) - return - add_logs(user, target, "attempted to inject", src) - - if(target != user) - target.visible_message("[user] is trying to inject [target] with [src]!", "[user] is trying to inject [target] with [src]!") - if(!do_mob(user, target) || used) - return - target.visible_message("[user] injects [target] with the syringe with [src]!", \ - "[user] injects [target] with the syringe with [src]!") - - else - to_chat(user, "You inject yourself with [src].") - - add_logs(user, target, "injected", src) - - if(!inject(target, user)) //Now we actually do the heavy lifting. - to_chat(user, "It appears that [target] does not have compatible DNA.") - - used = 1 - icon_state = "dnainjector0" - desc += " This one is used up." - - -/obj/item/weapon/dnainjector/antihulk - name = "\improper DNA injector (Anti-Hulk)" - desc = "Cures green skin." - remove_mutations_static = list(HULK) - -/obj/item/weapon/dnainjector/hulkmut - name = "\improper DNA injector (Hulk)" - desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) - -/obj/item/weapon/dnainjector/xraymut - name = "\improper DNA injector (Xray)" - desc = "Finally you can see what the Captain does." - add_mutations_static = list(XRAY) - -/obj/item/weapon/dnainjector/antixray - name = "\improper DNA injector (Anti-Xray)" - desc = "It will make you see harder." - remove_mutations_static = list(XRAY) - -///////////////////////////////////// -/obj/item/weapon/dnainjector/antiglasses - name = "\improper DNA injector (Anti-Glasses)" - desc = "Toss away those glasses!" - remove_mutations_static = list(BADSIGHT) - -/obj/item/weapon/dnainjector/glassesmut - name = "\improper DNA injector (Glasses)" - desc = "Will make you need dorkish glasses." - add_mutations_static = list(BADSIGHT) - -/obj/item/weapon/dnainjector/epimut - name = "\improper DNA injector (Epi.)" - desc = "Shake shake shake the room!" - add_mutations_static = list(EPILEPSY) - -/obj/item/weapon/dnainjector/antiepi - name = "\improper DNA injector (Anti-Epi.)" - desc = "Will fix you up from shaking the room." - remove_mutations_static = list(EPILEPSY) -//////////////////////////////////// -/obj/item/weapon/dnainjector/anticough - name = "\improper DNA injector (Anti-Cough)" - desc = "Will stop that aweful noise." - remove_mutations_static = list(COUGH) - -/obj/item/weapon/dnainjector/coughmut - name = "\improper DNA injector (Cough)" - desc = "Will bring forth a sound of horror from your throat." - add_mutations_static = list(COUGH) - -/obj/item/weapon/dnainjector/antidwarf - name = "\improper DNA injector (Anti-Dwarfism)" - desc = "Helps you grow big and strong." - remove_mutations_static = list(DWARFISM) - -/obj/item/weapon/dnainjector/dwarf - name = "\improper DNA injector (Dwarfism)" - desc = "It's a small world after all." - add_mutations_static = list(DWARFISM) - -/obj/item/weapon/dnainjector/clumsymut - name = "\improper DNA injector (Clumsy)" - desc = "Makes clown minions." - add_mutations_static = list(CLOWNMUT) - -/obj/item/weapon/dnainjector/anticlumsy - name = "\improper DNA injector (Anti-Clumsy)" - desc = "Apply this for Security Clown." - remove_mutations_static = list(CLOWNMUT) - -/obj/item/weapon/dnainjector/antitour - name = "\improper DNA injector (Anti-Tour.)" - desc = "Will cure tourrets." - remove_mutations_static = list(TOURETTES) - -/obj/item/weapon/dnainjector/tourmut - name = "\improper DNA injector (Tour.)" - desc = "Gives you a nasty case of Tourette's." - add_mutations_static = list(TOURETTES) - -/obj/item/weapon/dnainjector/stuttmut - name = "\improper DNA injector (Stutt.)" - desc = "Makes you s-s-stuttterrr" - add_mutations_static = list(NERVOUS) - -/obj/item/weapon/dnainjector/antistutt - name = "\improper DNA injector (Anti-Stutt.)" - desc = "Fixes that speaking impairment." - remove_mutations_static = list(NERVOUS) - -/obj/item/weapon/dnainjector/antifire - name = "\improper DNA injector (Anti-Fire)" - desc = "Cures fire." - remove_mutations_static = list(COLDRES) - -/obj/item/weapon/dnainjector/firemut - name = "\improper DNA injector (Fire)" - desc = "Gives you fire." - add_mutations_static = list(COLDRES) - -/obj/item/weapon/dnainjector/blindmut - name = "\improper DNA injector (Blind)" - desc = "Makes you not see anything." - add_mutations_static = list(BLINDMUT) - -/obj/item/weapon/dnainjector/antiblind - name = "\improper DNA injector (Anti-Blind)" - desc = "IT'S A MIRACLE!!!" - remove_mutations_static = list(BLINDMUT) - -/obj/item/weapon/dnainjector/antitele - name = "\improper DNA injector (Anti-Tele.)" - desc = "Will make you not able to control your mind." - remove_mutations_static = list(TK) - -/obj/item/weapon/dnainjector/telemut - name = "\improper DNA injector (Tele.)" - desc = "Super brain man!" - add_mutations_static = list(TK) - -/obj/item/weapon/dnainjector/telemut/darkbundle - name = "\improper DNA injector" - desc = "Good. Let the hate flow through you." - -/obj/item/weapon/dnainjector/deafmut - name = "\improper DNA injector (Deaf)" - desc = "Sorry, what did you say?" - add_mutations_static = list(DEAFMUT) - -/obj/item/weapon/dnainjector/antideaf - name = "\improper DNA injector (Anti-Deaf)" - desc = "Will make you hear once more." - remove_mutations_static = list(DEAFMUT) - -/obj/item/weapon/dnainjector/h2m - name = "\improper DNA injector (Human > Monkey)" - desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) - -/obj/item/weapon/dnainjector/m2h - name = "\improper DNA injector (Monkey > Human)" - desc = "Will make you...less hairy." - remove_mutations_static = list(RACEMUT) - -/obj/item/weapon/dnainjector/antichameleon - name = "\improper DNA injector (Anti-Chameleon)" - remove_mutations_static = list(CHAMELEON) - -/obj/item/weapon/dnainjector/chameleonmut - name = "\improper DNA injector (Chameleon)" - add_mutations_static = list(CHAMELEON) - -/obj/item/weapon/dnainjector/antiwacky - name = "\improper DNA injector (Anti-Wacky)" - remove_mutations_static = list(WACKY) - -/obj/item/weapon/dnainjector/wackymut - name = "\improper DNA injector (Wacky)" - add_mutations_static = list(WACKY) - -/obj/item/weapon/dnainjector/antimute - name = "\improper DNA injector (Anti-Mute)" - remove_mutations_static = list(MUT_MUTE) - -/obj/item/weapon/dnainjector/mutemut - name = "\improper DNA injector (Mute)" - add_mutations_static = list(MUT_MUTE) - -/obj/item/weapon/dnainjector/antismile - name = "\improper DNA injector (Anti-Smile)" - remove_mutations_static = list(SMILE) - -/obj/item/weapon/dnainjector/smilemut - name = "\improper DNA injector (Smile)" - add_mutations_static = list(SMILE) - -/obj/item/weapon/dnainjector/unintelligablemut - name = "\improper DNA injector (Unintelligable)" - add_mutations_static = list(UNINTELLIGABLE) - -/obj/item/weapon/dnainjector/antiunintelligable - name = "\improper DNA injector (Anti-Unintelligable)" - remove_mutations_static = list(UNINTELLIGABLE) - -/obj/item/weapon/dnainjector/swedishmut - name = "\improper DNA injector (Swedish)" - add_mutations_static = list(SWEDISH) - -/obj/item/weapon/dnainjector/antiswedish - name = "\improper DNA injector (Anti-Swedish)" - remove_mutations_static = list(SWEDISH) - -/obj/item/weapon/dnainjector/chavmut - name = "\improper DNA injector (Chav)" - add_mutations_static = list(CHAV) - -/obj/item/weapon/dnainjector/antichav - name = "\improper DNA injector (Anti-Chav)" - remove_mutations_static = list(CHAV) - -/obj/item/weapon/dnainjector/elvismut - name = "\improper DNA injector (Elvis)" - add_mutations_static = list(ELVIS) - -/obj/item/weapon/dnainjector/antielvis - name = "\improper DNA injector (Anti-Elvis)" - remove_mutations_static = list(ELVIS) - -/obj/item/weapon/dnainjector/lasereyesmut - name = "\improper DNA injector (Laser Eyes)" - add_mutations_static = list(LASEREYES) - -/obj/item/weapon/dnainjector/antilasereyes - name = "\improper DNA injector (Anti-Laser Eyes)" - remove_mutations_static = list(LASEREYES) - -/obj/item/weapon/dnainjector/timed - var/duration = 600 - -/obj/item/weapon/dnainjector/timed/inject(mob/living/carbon/M, mob/user) - prepare() + +/obj/item/weapon/dnainjector/attack(mob/target, mob/user) + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return + if(used) + to_chat(user, "This injector is used up!") + return + if(ishuman(target)) + var/mob/living/carbon/human/humantarget = target + if (!humantarget.can_inject(user, 1)) + return + add_logs(user, target, "attempted to inject", src) + + if(target != user) + target.visible_message("[user] is trying to inject [target] with [src]!", "[user] is trying to inject [target] with [src]!") + if(!do_mob(user, target) || used) + return + target.visible_message("[user] injects [target] with the syringe with [src]!", \ + "[user] injects [target] with the syringe with [src]!") + + else + to_chat(user, "You inject yourself with [src].") + + add_logs(user, target, "injected", src) + + if(!inject(target, user)) //Now we actually do the heavy lifting. + to_chat(user, "It appears that [target] does not have compatible DNA.") + + used = 1 + icon_state = "dnainjector0" + desc += " This one is used up." + + +/obj/item/weapon/dnainjector/antihulk + name = "\improper DNA injector (Anti-Hulk)" + desc = "Cures green skin." + remove_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/hulkmut + name = "\improper DNA injector (Hulk)" + desc = "This will make you big and strong, but give you a bad skin condition." + add_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/xraymut + name = "\improper DNA injector (Xray)" + desc = "Finally you can see what the Captain does." + add_mutations_static = list(XRAY) + +/obj/item/weapon/dnainjector/antixray + name = "\improper DNA injector (Anti-Xray)" + desc = "It will make you see harder." + remove_mutations_static = list(XRAY) + +///////////////////////////////////// +/obj/item/weapon/dnainjector/antiglasses + name = "\improper DNA injector (Anti-Glasses)" + desc = "Toss away those glasses!" + remove_mutations_static = list(BADSIGHT) + +/obj/item/weapon/dnainjector/glassesmut + name = "\improper DNA injector (Glasses)" + desc = "Will make you need dorkish glasses." + add_mutations_static = list(BADSIGHT) + +/obj/item/weapon/dnainjector/epimut + name = "\improper DNA injector (Epi.)" + desc = "Shake shake shake the room!" + add_mutations_static = list(EPILEPSY) + +/obj/item/weapon/dnainjector/antiepi + name = "\improper DNA injector (Anti-Epi.)" + desc = "Will fix you up from shaking the room." + remove_mutations_static = list(EPILEPSY) +//////////////////////////////////// +/obj/item/weapon/dnainjector/anticough + name = "\improper DNA injector (Anti-Cough)" + desc = "Will stop that aweful noise." + remove_mutations_static = list(COUGH) + +/obj/item/weapon/dnainjector/coughmut + name = "\improper DNA injector (Cough)" + desc = "Will bring forth a sound of horror from your throat." + add_mutations_static = list(COUGH) + +/obj/item/weapon/dnainjector/antidwarf + name = "\improper DNA injector (Anti-Dwarfism)" + desc = "Helps you grow big and strong." + remove_mutations_static = list(DWARFISM) + +/obj/item/weapon/dnainjector/dwarf + name = "\improper DNA injector (Dwarfism)" + desc = "It's a small world after all." + add_mutations_static = list(DWARFISM) + +/obj/item/weapon/dnainjector/clumsymut + name = "\improper DNA injector (Clumsy)" + desc = "Makes clown minions." + add_mutations_static = list(CLOWNMUT) + +/obj/item/weapon/dnainjector/anticlumsy + name = "\improper DNA injector (Anti-Clumsy)" + desc = "Apply this for Security Clown." + remove_mutations_static = list(CLOWNMUT) + +/obj/item/weapon/dnainjector/antitour + name = "\improper DNA injector (Anti-Tour.)" + desc = "Will cure tourrets." + remove_mutations_static = list(TOURETTES) + +/obj/item/weapon/dnainjector/tourmut + name = "\improper DNA injector (Tour.)" + desc = "Gives you a nasty case of Tourette's." + add_mutations_static = list(TOURETTES) + +/obj/item/weapon/dnainjector/stuttmut + name = "\improper DNA injector (Stutt.)" + desc = "Makes you s-s-stuttterrr" + add_mutations_static = list(NERVOUS) + +/obj/item/weapon/dnainjector/antistutt + name = "\improper DNA injector (Anti-Stutt.)" + desc = "Fixes that speaking impairment." + remove_mutations_static = list(NERVOUS) + +/obj/item/weapon/dnainjector/antifire + name = "\improper DNA injector (Anti-Fire)" + desc = "Cures fire." + remove_mutations_static = list(COLDRES) + +/obj/item/weapon/dnainjector/firemut + name = "\improper DNA injector (Fire)" + desc = "Gives you fire." + add_mutations_static = list(COLDRES) + +/obj/item/weapon/dnainjector/blindmut + name = "\improper DNA injector (Blind)" + desc = "Makes you not see anything." + add_mutations_static = list(BLINDMUT) + +/obj/item/weapon/dnainjector/antiblind + name = "\improper DNA injector (Anti-Blind)" + desc = "IT'S A MIRACLE!!!" + remove_mutations_static = list(BLINDMUT) + +/obj/item/weapon/dnainjector/antitele + name = "\improper DNA injector (Anti-Tele.)" + desc = "Will make you not able to control your mind." + remove_mutations_static = list(TK) + +/obj/item/weapon/dnainjector/telemut + name = "\improper DNA injector (Tele.)" + desc = "Super brain man!" + add_mutations_static = list(TK) + +/obj/item/weapon/dnainjector/telemut/darkbundle + name = "\improper DNA injector" + desc = "Good. Let the hate flow through you." + +/obj/item/weapon/dnainjector/deafmut + name = "\improper DNA injector (Deaf)" + desc = "Sorry, what did you say?" + add_mutations_static = list(DEAFMUT) + +/obj/item/weapon/dnainjector/antideaf + name = "\improper DNA injector (Anti-Deaf)" + desc = "Will make you hear once more." + remove_mutations_static = list(DEAFMUT) + +/obj/item/weapon/dnainjector/h2m + name = "\improper DNA injector (Human > Monkey)" + desc = "Will make you a flea bag." + add_mutations_static = list(RACEMUT) + +/obj/item/weapon/dnainjector/m2h + name = "\improper DNA injector (Monkey > Human)" + desc = "Will make you...less hairy." + remove_mutations_static = list(RACEMUT) + +/obj/item/weapon/dnainjector/antichameleon + name = "\improper DNA injector (Anti-Chameleon)" + remove_mutations_static = list(CHAMELEON) + +/obj/item/weapon/dnainjector/chameleonmut + name = "\improper DNA injector (Chameleon)" + add_mutations_static = list(CHAMELEON) + +/obj/item/weapon/dnainjector/antiwacky + name = "\improper DNA injector (Anti-Wacky)" + remove_mutations_static = list(WACKY) + +/obj/item/weapon/dnainjector/wackymut + name = "\improper DNA injector (Wacky)" + add_mutations_static = list(WACKY) + +/obj/item/weapon/dnainjector/antimute + name = "\improper DNA injector (Anti-Mute)" + remove_mutations_static = list(MUT_MUTE) + +/obj/item/weapon/dnainjector/mutemut + name = "\improper DNA injector (Mute)" + add_mutations_static = list(MUT_MUTE) + +/obj/item/weapon/dnainjector/antismile + name = "\improper DNA injector (Anti-Smile)" + remove_mutations_static = list(SMILE) + +/obj/item/weapon/dnainjector/smilemut + name = "\improper DNA injector (Smile)" + add_mutations_static = list(SMILE) + +/obj/item/weapon/dnainjector/unintelligablemut + name = "\improper DNA injector (Unintelligable)" + add_mutations_static = list(UNINTELLIGABLE) + +/obj/item/weapon/dnainjector/antiunintelligable + name = "\improper DNA injector (Anti-Unintelligable)" + remove_mutations_static = list(UNINTELLIGABLE) + +/obj/item/weapon/dnainjector/swedishmut + name = "\improper DNA injector (Swedish)" + add_mutations_static = list(SWEDISH) + +/obj/item/weapon/dnainjector/antiswedish + name = "\improper DNA injector (Anti-Swedish)" + remove_mutations_static = list(SWEDISH) + +/obj/item/weapon/dnainjector/chavmut + name = "\improper DNA injector (Chav)" + add_mutations_static = list(CHAV) + +/obj/item/weapon/dnainjector/antichav + name = "\improper DNA injector (Anti-Chav)" + remove_mutations_static = list(CHAV) + +/obj/item/weapon/dnainjector/elvismut + name = "\improper DNA injector (Elvis)" + add_mutations_static = list(ELVIS) + +/obj/item/weapon/dnainjector/antielvis + name = "\improper DNA injector (Anti-Elvis)" + remove_mutations_static = list(ELVIS) + +/obj/item/weapon/dnainjector/lasereyesmut + name = "\improper DNA injector (Laser Eyes)" + add_mutations_static = list(LASEREYES) + +/obj/item/weapon/dnainjector/antilasereyes + name = "\improper DNA injector (Anti-Laser Eyes)" + remove_mutations_static = list(LASEREYES) + +/obj/item/weapon/dnainjector/timed + var/duration = 600 + +/obj/item/weapon/dnainjector/timed/inject(mob/living/carbon/M, mob/user) + prepare() if(M.stat == DEAD) //prevents dead people from having their DNA changed to_chat(user, "You can't modify [M]'s DNA while [M.p_theyre()] dead.") return FALSE - - if(M.has_dna() && !(M.disabilities & NOCLONE)) - M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) - var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" - var/endtime = world.time+duration - for(var/datum/mutation/human/HM in remove_mutations) - if(HM.name == RACEMUT) - if(ishuman(M)) - continue - M = HM.force_lose(M) - else - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) - continue //Skip permanent mutations we already have. - if(HM.name == RACEMUT && ishuman(M)) - message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") - log_msg += " (MONKEY)" - M = HM.force_give(M) - else - HM.force_give(M) - M.dna.temporary_mutations[HM.name] = endtime - if(fields) - if(fields["name"] && fields["UE"] && fields["blood_type"]) - if(!M.dna.previous["name"]) - M.dna.previous["name"] = M.real_name - if(!M.dna.previous["UE"]) - M.dna.previous["UE"] = M.dna.unique_enzymes - if(!M.dna.previous["blood_type"]) - M.dna.previous["blood_type"] = M.dna.blood_type - M.real_name = fields["name"] - M.dna.unique_enzymes = fields["UE"] - M.name = M.real_name - M.dna.blood_type = fields["blood_type"] - M.dna.temporary_mutations[UE_CHANGED] = endtime - if(fields["UI"]) //UI+UE - if(!M.dna.previous["UI"]) - M.dna.previous["UI"] = M.dna.uni_identity - M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) - M.updateappearance(mutations_overlay_update=1) - M.dna.temporary_mutations[UI_CHANGED] = endtime - log_attack(log_msg) + + if(M.has_dna() && !(M.disabilities & NOCLONE)) + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + var/endtime = world.time+duration + for(var/datum/mutation/human/HM in remove_mutations) + if(HM.name == RACEMUT) + if(ishuman(M)) + continue + M = HM.force_lose(M) + else + HM.force_lose(M) + for(var/datum/mutation/human/HM in add_mutations) + if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) + continue //Skip permanent mutations we already have. + if(HM.name == RACEMUT && ishuman(M)) + message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + log_msg += " (MONKEY)" + M = HM.force_give(M) + else + HM.force_give(M) + M.dna.temporary_mutations[HM.name] = endtime + if(fields) + if(fields["name"] && fields["UE"] && fields["blood_type"]) + if(!M.dna.previous["name"]) + M.dna.previous["name"] = M.real_name + if(!M.dna.previous["UE"]) + M.dna.previous["UE"] = M.dna.unique_enzymes + if(!M.dna.previous["blood_type"]) + M.dna.previous["blood_type"] = M.dna.blood_type + M.real_name = fields["name"] + M.dna.unique_enzymes = fields["UE"] + M.name = M.real_name + M.dna.blood_type = fields["blood_type"] + M.dna.temporary_mutations[UE_CHANGED] = endtime + if(fields["UI"]) //UI+UE + if(!M.dna.previous["UI"]) + M.dna.previous["UI"] = M.dna.uni_identity + M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) + M.updateappearance(mutations_overlay_update=1) + M.dna.temporary_mutations[UI_CHANGED] = endtime + log_attack(log_msg) return TRUE - else + else return FALSE - -/obj/item/weapon/dnainjector/timed/hulk - name = "\improper DNA injector (Hulk)" - desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) - -/obj/item/weapon/dnainjector/timed/h2m - name = "\improper DNA injector (Human > Monkey)" - desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) + +/obj/item/weapon/dnainjector/timed/hulk + name = "\improper DNA injector (Hulk)" + desc = "This will make you big and strong, but give you a bad skin condition." + add_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/timed/h2m + name = "\improper DNA injector (Human > Monkey)" + desc = "Will make you a flea bag." + add_mutations_static = list(RACEMUT) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 4f5759e90d..ee75520f76 100755 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -232,8 +232,8 @@ /obj/item/weapon/flamethrower/full/tank create_with_tank = TRUE -/obj/item/weapon/flamethrower/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type, atom/movable/AM) - var/obj/item/projectile/P = AM +/obj/item/weapon/flamethrower/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + var/obj/item/projectile/P = hitby if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) owner.visible_message("[attack_text] hits the fueltank on [owner]'s [src], rupturing it! What a shot!") var/target_turf = get_turf(owner) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 32ae6029ca..7af8a4dc5a 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -1,553 +1,553 @@ -#define EMPTY 1 -#define WIRED 2 -#define READY 3 - -/obj/item/weapon/grenade/chem_grenade - name = "chemical grenade" - desc = "A custom made grenade." - icon_state = "chemg" - item_state = "flashbang" - w_class = WEIGHT_CLASS_SMALL - force = 2 - var/stage = EMPTY - var/list/beakers = list() - var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) - var/affected_area = 3 - var/obj/item/device/assembly_holder/nadeassembly = null - var/assemblyattacher - var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. - var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. - var/no_splash = FALSE //If the grenade deletes even if it has no reagents to splash with. Used for slime core reactions. - +#define EMPTY 1 +#define WIRED 2 +#define READY 3 + +/obj/item/weapon/grenade/chem_grenade + name = "chemical grenade" + desc = "A custom made grenade." + icon_state = "chemg" + item_state = "flashbang" + w_class = WEIGHT_CLASS_SMALL + force = 2 + var/stage = EMPTY + var/list/beakers = list() + var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) + var/affected_area = 3 + var/obj/item/device/assembly_holder/nadeassembly = null + var/assemblyattacher + var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. + var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. + var/no_splash = FALSE //If the grenade deletes even if it has no reagents to splash with. Used for slime core reactions. + /obj/item/weapon/grenade/chem_grenade/Initialize() . = ..() - create_reagents(1000) - stage_change() // If no argument is set, it will change the stage to the current stage, useful for stock grenades that start READY. - -/obj/item/weapon/grenade/chem_grenade/examine(mob/user) - display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state - ..() - - -/obj/item/weapon/grenade/chem_grenade/attack_self(mob/user) - if(stage == READY && !active) - if(nadeassembly) - nadeassembly.attack_self(user) - else if(clown_check(user)) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) + create_reagents(1000) + stage_change() // If no argument is set, it will change the stage to the current stage, useful for stock grenades that start READY. + +/obj/item/weapon/grenade/chem_grenade/examine(mob/user) + display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state + ..() + + +/obj/item/weapon/grenade/chem_grenade/attack_self(mob/user) + if(stage == READY && !active) + if(nadeassembly) + nadeassembly.attack_self(user) + else if(clown_check(user)) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) message_admins("[ADMIN_LOOKUPFLW(usr)] has primed a [name] for detonation at [A.name][ADMIN_JMP(bombturf)].") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - to_chat(user, "You prime the [name]! [det_time / 10] second\s!") - playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) - active = 1 - icon_state = initial(icon_state) + "_active" - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - - addtimer(CALLBACK(src, .proc/prime), det_time) - - -/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - if(stage == WIRED) - if(beakers.len) - stage_change(READY) - to_chat(user, "You lock the [initial(name)] assembly.") - playsound(loc, I.usesound, 25, -3) - else - to_chat(user, "You need to add at least one beaker before locking the [initial(name)] assembly!") - else if(stage == READY && !nadeassembly) - det_time = det_time == 50 ? 30 : 50 //toggle between 30 and 50 - to_chat(user, "You modify the time delay. It's set for [det_time / 10] second\s.") - else if(stage == EMPTY) - to_chat(user, "You need to add an activation mechanism!") - - else if(stage == WIRED && is_type_in_list(I, allowed_containers)) - . = 1 //no afterattack - if(beakers.len == 2) - to_chat(user, "[src] can not hold more containers!") - return - else - if(I.reagents.total_volume) - if(!user.transferItemToLoc(I, src)) - return - to_chat(user, "You add [I] to the [initial(name)] assembly.") - beakers += I - else - to_chat(user, "[I] is empty!") - - else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder)) - . = 1 // no afterattack - var/obj/item/device/assembly_holder/A = I - if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it - return - if(!user.transferItemToLoc(I, src)) - return - - nadeassembly = A - A.master = src - assemblyattacher = user.ckey - - stage_change(WIRED) - to_chat(user, "You add [A] to the [initial(name)] assembly.") - - else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = I - if (C.use(1)) - det_time = 50 // In case the cable_coil was removed and readded. - stage_change(WIRED) - to_chat(user, "You rig the [initial(name)] assembly.") - else - to_chat(user, "You need one length of coil to wire the assembly!") - return - + to_chat(user, "You prime the [name]! [det_time / 10] second\s!") + playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) + active = 1 + icon_state = initial(icon_state) + "_active" + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + + addtimer(CALLBACK(src, .proc/prime), det_time) + + +/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + if(stage == WIRED) + if(beakers.len) + stage_change(READY) + to_chat(user, "You lock the [initial(name)] assembly.") + playsound(loc, I.usesound, 25, -3) + else + to_chat(user, "You need to add at least one beaker before locking the [initial(name)] assembly!") + else if(stage == READY && !nadeassembly) + det_time = det_time == 50 ? 30 : 50 //toggle between 30 and 50 + to_chat(user, "You modify the time delay. It's set for [det_time / 10] second\s.") + else if(stage == EMPTY) + to_chat(user, "You need to add an activation mechanism!") + + else if(stage == WIRED && is_type_in_list(I, allowed_containers)) + . = 1 //no afterattack + if(beakers.len == 2) + to_chat(user, "[src] can not hold more containers!") + return + else + if(I.reagents.total_volume) + if(!user.transferItemToLoc(I, src)) + return + to_chat(user, "You add [I] to the [initial(name)] assembly.") + beakers += I + else + to_chat(user, "[I] is empty!") + + else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder)) + . = 1 // no afterattack + var/obj/item/device/assembly_holder/A = I + if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it + return + if(!user.transferItemToLoc(I, src)) + return + + nadeassembly = A + A.master = src + assemblyattacher = user.ckey + + stage_change(WIRED) + to_chat(user, "You add [A] to the [initial(name)] assembly.") + + else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = I + if (C.use(1)) + det_time = 50 // In case the cable_coil was removed and readded. + stage_change(WIRED) + to_chat(user, "You rig the [initial(name)] assembly.") + else + to_chat(user, "You need one length of coil to wire the assembly!") + return + else if(stage == READY && istype(I, /obj/item/weapon/wirecutters) && !active) - stage_change(WIRED) - to_chat(user, "You unlock the [initial(name)] assembly.") - - else if(stage == WIRED && istype(I, /obj/item/weapon/wrench)) - if(beakers.len) - for(var/obj/O in beakers) - O.loc = get_turf(src) - beakers = list() - to_chat(user, "You open the [initial(name)] assembly and remove the payload.") - return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism. - if(nadeassembly) - nadeassembly.loc = get_turf(src) - nadeassembly.master = null - nadeassembly = null - else // If "nadeassembly = null && stage == WIRED", then it most have been cable_coil that was used. - new /obj/item/stack/cable_coil(get_turf(src),1) - stage_change(EMPTY) - to_chat(user, "You remove the activation mechanism from the [initial(name)] assembly.") - else - return ..() - -/obj/item/weapon/grenade/chem_grenade/proc/stage_change(N) - if(N) - stage = N - if(stage == EMPTY) - name = "[initial(name)] casing" - desc = "A do it yourself [initial(name)]!" - icon_state = initial(icon_state) - else if(stage == WIRED) - name = "unsecured [initial(name)]" - desc = "An unsecured [initial(name)] assembly." - icon_state = "[initial(icon_state)]_ass" - else if(stage == READY) - name = initial(name) - desc = initial(desc) - icon_state = "[initial(icon_state)]_locked" - - -//assembly stuff -/obj/item/weapon/grenade/chem_grenade/receive_signal() - prime() - - -/obj/item/weapon/grenade/chem_grenade/Crossed(atom/movable/AM) - if(nadeassembly) - nadeassembly.Crossed(AM) - -/obj/item/weapon/grenade/chem_grenade/on_found(mob/finder) - if(nadeassembly) - nadeassembly.on_found(finder) - -/obj/item/weapon/grenade/chem_grenade/prime() - if(stage != READY) - return - - var/list/datum/reagents/reactants = list() - for(var/obj/item/weapon/reagent_containers/glass/G in beakers) - reactants += G.reagents - - if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale) && !no_splash) - playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) - if(beakers.len) - for(var/obj/O in beakers) - O.loc = get_turf(src) - beakers = list() - stage_change(EMPTY) - return - - if(nadeassembly) - var/mob/M = get_mob_by_ckey(assemblyattacher) - var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) - var/turf/T = get_turf(src) - var/area/A = get_area(T) + stage_change(WIRED) + to_chat(user, "You unlock the [initial(name)] assembly.") + + else if(stage == WIRED && istype(I, /obj/item/weapon/wrench)) + if(beakers.len) + for(var/obj/O in beakers) + O.loc = get_turf(src) + beakers = list() + to_chat(user, "You open the [initial(name)] assembly and remove the payload.") + return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism. + if(nadeassembly) + nadeassembly.loc = get_turf(src) + nadeassembly.master = null + nadeassembly = null + else // If "nadeassembly = null && stage == WIRED", then it most have been cable_coil that was used. + new /obj/item/stack/cable_coil(get_turf(src),1) + stage_change(EMPTY) + to_chat(user, "You remove the activation mechanism from the [initial(name)] assembly.") + else + return ..() + +/obj/item/weapon/grenade/chem_grenade/proc/stage_change(N) + if(N) + stage = N + if(stage == EMPTY) + name = "[initial(name)] casing" + desc = "A do it yourself [initial(name)]!" + icon_state = initial(icon_state) + else if(stage == WIRED) + name = "unsecured [initial(name)]" + desc = "An unsecured [initial(name)] assembly." + icon_state = "[initial(icon_state)]_ass" + else if(stage == READY) + name = initial(name) + desc = initial(desc) + icon_state = "[initial(icon_state)]_locked" + + +//assembly stuff +/obj/item/weapon/grenade/chem_grenade/receive_signal() + prime() + + +/obj/item/weapon/grenade/chem_grenade/Crossed(atom/movable/AM) + if(nadeassembly) + nadeassembly.Crossed(AM) + +/obj/item/weapon/grenade/chem_grenade/on_found(mob/finder) + if(nadeassembly) + nadeassembly.on_found(finder) + +/obj/item/weapon/grenade/chem_grenade/prime() + if(stage != READY) + return + + var/list/datum/reagents/reactants = list() + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + reactants += G.reagents + + if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale) && !no_splash) + playsound(loc, 'sound/items/screwdriver2.ogg', 50, 1) + if(beakers.len) + for(var/obj/O in beakers) + O.loc = get_turf(src) + beakers = list() + stage_change(EMPTY) + return + + if(nadeassembly) + var/mob/M = get_mob_by_ckey(assemblyattacher) + var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) + var/turf/T = get_turf(src) + var/area/A = get_area(T) message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [ADMIN_JMP(T)].") log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [COORD(T)]") - - var/turf/DT = get_turf(src) - var/area/DA = get_area(DT) + + var/turf/DT = get_turf(src) + var/area/DA = get_area(DT) log_game("A grenade detonated at [DA.name] [COORD(DT)]") - - update_mob() - - qdel(src) - -//Large chem grenades accept slime cores and use the appropriately. -/obj/item/weapon/grenade/chem_grenade/large - name = "large grenade" - desc = "A custom made large grenade. It affects a larger area." - icon_state = "large_grenade" - allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, - /obj/item/weapon/reagent_containers/food/drinks) - origin_tech = "combat=3;engineering=3" - affected_area = 5 - ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. - threatscale = 1.1 // 10% more effective. - -/obj/item/weapon/grenade/chem_grenade/large/prime() - if(stage != READY) - return - - for(var/obj/item/slime_extract/S in beakers) - if(S.Uses) - for(var/obj/item/weapon/reagent_containers/glass/G in beakers) - G.reagents.trans_to(S, G.reagents.total_volume) - - //If there is still a core (sometimes it's used up) - //and there are reagents left, behave normally, - //otherwise drop it on the ground for timed reactions like gold. - - if(S) - if(S.reagents && S.reagents.total_volume) - for(var/obj/item/weapon/reagent_containers/glass/G in beakers) - S.reagents.trans_to(G, S.reagents.total_volume) - else - S.forceMove(get_turf(src)) - no_splash = TRUE - ..() - - //I tried to just put it in the allowed_containers list but - //if you do that it must have reagents. If you're going to - //make a special case you might as well do it explicitly. -Sayu -/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/slime_extract) && stage == WIRED) - if(!user.transferItemToLoc(I, src)) - return - to_chat(user, "You add [I] to the [initial(name)] assembly.") - beakers += I - else - return ..() - -/obj/item/weapon/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation. - name = "cryo grenade" - desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation." - icon_state = "cryog" - affected_area = 2 - ignition_temp = -100 - -/obj/item/weapon/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures. - name = "pyro grenade" - desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation." - icon_state = "pyrog" - origin_tech = "combat=4;engineering=4" - affected_area = 3 - ignition_temp = 500 // This is enough to expose a hotspot. - -/obj/item/weapon/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses. - name = "advanced release grenade" - desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool." - icon_state = "timeg" - origin_tech = "combat=3;engineering=4" - var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. - -/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool)) - switch(unit_spread) - if(0 to 24) - unit_spread += 5 - if(25 to 99) - unit_spread += 25 - else - unit_spread = 5 - to_chat(user, " You set the time release to [unit_spread] units per detonation.") - return - ..() - -/obj/item/weapon/grenade/chem_grenade/adv_release/prime() - if(stage != READY) - return - - var/total_volume = 0 - for(var/obj/item/weapon/reagent_containers/RC in beakers) - total_volume += RC.reagents.total_volume - if(!total_volume) - qdel(src) - qdel(nadeassembly) - return - var/fraction = unit_spread/total_volume - var/datum/reagents/reactants = new(unit_spread) - reactants.my_atom = src - for(var/obj/item/weapon/reagent_containers/RC in beakers) - RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, threatscale, 1, 1) - chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) - - if(nadeassembly) - var/mob/M = get_mob_by_ckey(assemblyattacher) - var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) - var/turf/T = get_turf(src) - var/area/A = get_area(T) - message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") - log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") - else - addtimer(CALLBACK(src, .proc/prime), det_time) - var/turf/DT = get_turf(src) - var/area/DA = get_area(DT) - log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") - - - - - -////////////////////////////// -////// PREMADE GRENADES ////// -////////////////////////////// - -/obj/item/weapon/grenade/chem_grenade/metalfoam - name = "metal foam grenade" - desc = "Used for emergency sealing of air breaches." - stage = READY - + + update_mob() + + qdel(src) + +//Large chem grenades accept slime cores and use the appropriately. +/obj/item/weapon/grenade/chem_grenade/large + name = "large grenade" + desc = "A custom made large grenade. It affects a larger area." + icon_state = "large_grenade" + allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, + /obj/item/weapon/reagent_containers/food/drinks) + origin_tech = "combat=3;engineering=3" + affected_area = 5 + ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. + threatscale = 1.1 // 10% more effective. + +/obj/item/weapon/grenade/chem_grenade/large/prime() + if(stage != READY) + return + + for(var/obj/item/slime_extract/S in beakers) + if(S.Uses) + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + G.reagents.trans_to(S, G.reagents.total_volume) + + //If there is still a core (sometimes it's used up) + //and there are reagents left, behave normally, + //otherwise drop it on the ground for timed reactions like gold. + + if(S) + if(S.reagents && S.reagents.total_volume) + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + S.reagents.trans_to(G, S.reagents.total_volume) + else + S.forceMove(get_turf(src)) + no_splash = TRUE + ..() + + //I tried to just put it in the allowed_containers list but + //if you do that it must have reagents. If you're going to + //make a special case you might as well do it explicitly. -Sayu +/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/slime_extract) && stage == WIRED) + if(!user.transferItemToLoc(I, src)) + return + to_chat(user, "You add [I] to the [initial(name)] assembly.") + beakers += I + else + return ..() + +/obj/item/weapon/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation. + name = "cryo grenade" + desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation." + icon_state = "cryog" + affected_area = 2 + ignition_temp = -100 + +/obj/item/weapon/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures. + name = "pyro grenade" + desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation." + icon_state = "pyrog" + origin_tech = "combat=4;engineering=4" + affected_area = 3 + ignition_temp = 500 // This is enough to expose a hotspot. + +/obj/item/weapon/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses. + name = "advanced release grenade" + desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool." + icon_state = "timeg" + origin_tech = "combat=3;engineering=4" + var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. + +/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + switch(unit_spread) + if(0 to 24) + unit_spread += 5 + if(25 to 99) + unit_spread += 25 + else + unit_spread = 5 + to_chat(user, " You set the time release to [unit_spread] units per detonation.") + return + ..() + +/obj/item/weapon/grenade/chem_grenade/adv_release/prime() + if(stage != READY) + return + + var/total_volume = 0 + for(var/obj/item/weapon/reagent_containers/RC in beakers) + total_volume += RC.reagents.total_volume + if(!total_volume) + qdel(src) + qdel(nadeassembly) + return + var/fraction = unit_spread/total_volume + var/datum/reagents/reactants = new(unit_spread) + reactants.my_atom = src + for(var/obj/item/weapon/reagent_containers/RC in beakers) + RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, threatscale, 1, 1) + chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) + + if(nadeassembly) + var/mob/M = get_mob_by_ckey(assemblyattacher) + var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") + else + addtimer(CALLBACK(src, .proc/prime), det_time) + var/turf/DT = get_turf(src) + var/area/DA = get_area(DT) + log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") + + + + + +////////////////////////////// +////// PREMADE GRENADES ////// +////////////////////////////// + +/obj/item/weapon/grenade/chem_grenade/metalfoam + name = "metal foam grenade" + desc = "Used for emergency sealing of air breaches." + stage = READY + /obj/item/weapon/grenade/chem_grenade/metalfoam/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent("aluminium", 30) - B2.reagents.add_reagent("foaming_agent", 10) - B2.reagents.add_reagent("facid", 10) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/incendiary - name = "incendiary grenade" - desc = "Used for clearing rooms of living things." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("aluminium", 30) + B2.reagents.add_reagent("foaming_agent", 10) + B2.reagents.add_reagent("facid", 10) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/incendiary + name = "incendiary grenade" + desc = "Used for clearing rooms of living things." + stage = READY + /obj/item/weapon/grenade/chem_grenade/incendiary/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("stable_plasma", 25) - B2.reagents.add_reagent("sacid", 25) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/antiweed - name = "weedkiller grenade" - desc = "Used for purging large areas of invasive plant species. Contents under pressure. Do not directly inhale contents." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("stable_plasma", 25) + B2.reagents.add_reagent("sacid", 25) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/antiweed + name = "weedkiller grenade" + desc = "Used for purging large areas of invasive plant species. Contents under pressure. Do not directly inhale contents." + stage = READY + /obj/item/weapon/grenade/chem_grenade/antiweed/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent("plantbgone", 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/cleaner - name = "cleaner grenade" - desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("plantbgone", 25) + B1.reagents.add_reagent("potassium", 25) + B2.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("sugar", 25) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/cleaner + name = "cleaner grenade" + desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." + stage = READY + /obj/item/weapon/grenade/chem_grenade/cleaner/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent("fluorosurfactant", 40) - B2.reagents.add_reagent("water", 40) - B2.reagents.add_reagent("cleaner", 10) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/ez_clean - name = "cleaner grenade" - desc = "Waffle Co.-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 40) + B2.reagents.add_reagent("water", 40) + B2.reagents.add_reagent("cleaner", 10) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/ez_clean + name = "cleaner grenade" + desc = "Waffle Co.-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." + stage = READY + /obj/item/weapon/grenade/chem_grenade/ez_clean/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) - - B1.reagents.add_reagent("fluorosurfactant", 40) - B2.reagents.add_reagent("water", 40) - B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution - - beakers += B1 - beakers += B2 - - - -/obj/item/weapon/grenade/chem_grenade/teargas - name = "teargas grenade" - desc = "Used for nonlethal riot control. Contents under pressure. Do not directly inhale contents." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 40) + B2.reagents.add_reagent("water", 40) + B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution + + beakers += B1 + beakers += B2 + + + +/obj/item/weapon/grenade/chem_grenade/teargas + name = "teargas grenade" + desc = "Used for nonlethal riot control. Contents under pressure. Do not directly inhale contents." + stage = READY + /obj/item/weapon/grenade/chem_grenade/teargas/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) - - B1.reagents.add_reagent("condensedcapsaicin", 60) - B1.reagents.add_reagent("potassium", 40) - B2.reagents.add_reagent("phosphorus", 40) - B2.reagents.add_reagent("sugar", 40) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/facid - name = "acid grenade" - desc = "Used for melting armoured opponents." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) + + B1.reagents.add_reagent("condensedcapsaicin", 60) + B1.reagents.add_reagent("potassium", 40) + B2.reagents.add_reagent("phosphorus", 40) + B2.reagents.add_reagent("sugar", 40) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/facid + name = "acid grenade" + desc = "Used for melting armoured opponents." + stage = READY + /obj/item/weapon/grenade/chem_grenade/facid/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) - - B1.reagents.add_reagent("facid", 290) - B1.reagents.add_reagent("potassium", 10) - B2.reagents.add_reagent("phosphorus", 10) - B2.reagents.add_reagent("sugar", 10) - B2.reagents.add_reagent("facid", 280) - - beakers += B1 - beakers += B2 - - -/obj/item/weapon/grenade/chem_grenade/colorful - name = "colorful grenade" - desc = "Used for wide scale painting projects." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("facid", 290) + B1.reagents.add_reagent("potassium", 10) + B2.reagents.add_reagent("phosphorus", 10) + B2.reagents.add_reagent("sugar", 10) + B2.reagents.add_reagent("facid", 280) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/colorful + name = "colorful grenade" + desc = "Used for wide scale painting projects." + stage = READY + /obj/item/weapon/grenade/chem_grenade/colorful/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent("colorful_reagent", 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) - - beakers += B1 - beakers += B2 - -/obj/item/weapon/grenade/chem_grenade/glitter - name = "generic glitter grenade" - desc = "You shouldn't see this description." - stage = READY - var/glitter_type = "glitter" - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("colorful_reagent", 25) + B1.reagents.add_reagent("potassium", 25) + B2.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("sugar", 25) + + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/glitter + name = "generic glitter grenade" + desc = "You shouldn't see this description." + stage = READY + var/glitter_type = "glitter" + /obj/item/weapon/grenade/chem_grenade/glitter/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - - B1.reagents.add_reagent(glitter_type, 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) - - beakers += B1 - beakers += B2 - -/obj/item/weapon/grenade/chem_grenade/glitter/pink - name = "pink glitter bomb" - desc = "For that HOT glittery look." - glitter_type = "pink_glitter" - -/obj/item/weapon/grenade/chem_grenade/glitter/blue - name = "blue glitter bomb" - desc = "For that COOL glittery look." - glitter_type = "blue_glitter" - -/obj/item/weapon/grenade/chem_grenade/glitter/white - name = "white glitter bomb" - desc = "For that somnolent glittery look." - glitter_type = "white_glitter" - -/obj/item/weapon/grenade/chem_grenade/clf3 - name = "clf3 grenade" - desc = "BURN!-brand foaming clf3. In a special applicator for rapid purging of wide areas." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent(glitter_type, 25) + B1.reagents.add_reagent("potassium", 25) + B2.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("sugar", 25) + + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/glitter/pink + name = "pink glitter bomb" + desc = "For that HOT glittery look." + glitter_type = "pink_glitter" + +/obj/item/weapon/grenade/chem_grenade/glitter/blue + name = "blue glitter bomb" + desc = "For that COOL glittery look." + glitter_type = "blue_glitter" + +/obj/item/weapon/grenade/chem_grenade/glitter/white + name = "white glitter bomb" + desc = "For that somnolent glittery look." + glitter_type = "white_glitter" + +/obj/item/weapon/grenade/chem_grenade/clf3 + name = "clf3 grenade" + desc = "BURN!-brand foaming clf3. In a special applicator for rapid purging of wide areas." + stage = READY + /obj/item/weapon/grenade/chem_grenade/clf3/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) - - B1.reagents.add_reagent("fluorosurfactant", 250) - B1.reagents.add_reagent("clf3", 50) - B2.reagents.add_reagent("water", 250) - B2.reagents.add_reagent("clf3", 50) - - beakers += B1 - beakers += B2 - -/obj/item/weapon/grenade/chem_grenade/bioterrorfoam - name = "Bio terror foam grenade" - desc = "Tiger Cooperative chemical foam grenade. Causes temporary irration, blindness, confusion, mutism, and mutations to carbon based life forms. Contains additional spore toxin" - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 250) + B1.reagents.add_reagent("clf3", 50) + B2.reagents.add_reagent("water", 250) + B2.reagents.add_reagent("clf3", 50) + + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/bioterrorfoam + name = "Bio terror foam grenade" + desc = "Tiger Cooperative chemical foam grenade. Causes temporary irration, blindness, confusion, mutism, and mutations to carbon based life forms. Contains additional spore toxin" + stage = READY + /obj/item/weapon/grenade/chem_grenade/bioterrorfoam/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) - - B1.reagents.add_reagent("cryptobiolin", 75) - B1.reagents.add_reagent("water", 50) - B1.reagents.add_reagent("mutetoxin", 50) - B1.reagents.add_reagent("spore", 75) - B1.reagents.add_reagent("itching_powder", 50) - B2.reagents.add_reagent("fluorosurfactant", 150) - B2.reagents.add_reagent("mutagen", 150) - beakers += B1 - beakers += B2 - -/obj/item/weapon/grenade/chem_grenade/tuberculosis - name = "Fungal tuberculosis grenade" - desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE." - stage = READY - + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("cryptobiolin", 75) + B1.reagents.add_reagent("water", 50) + B1.reagents.add_reagent("mutetoxin", 50) + B1.reagents.add_reagent("spore", 75) + B1.reagents.add_reagent("itching_powder", 50) + B2.reagents.add_reagent("fluorosurfactant", 150) + B2.reagents.add_reagent("mutagen", 150) + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/tuberculosis + name = "Fungal tuberculosis grenade" + desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE." + stage = READY + /obj/item/weapon/grenade/chem_grenade/tuberculosis/Initialize() . = ..() - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) - var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) - - B1.reagents.add_reagent("potassium", 50) - B1.reagents.add_reagent("phosphorus", 50) - B1.reagents.add_reagent("fungalspores", 200) - B2.reagents.add_reagent("blood", 250) - B2.reagents.add_reagent("sugar", 50) - - beakers += B1 - beakers += B2 - -#undef EMPTY -#undef WIRED -#undef READY + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("potassium", 50) + B1.reagents.add_reagent("phosphorus", 50) + B1.reagents.add_reagent("fungalspores", 200) + B2.reagents.add_reagent("blood", 250) + B2.reagents.add_reagent("sugar", 50) + + beakers += B1 + beakers += B2 + +#undef EMPTY +#undef WIRED +#undef READY diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 556f727909..0798ba6131 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -27,13 +27,11 @@ //Flash if(M.flash_act(affect_silicon = 1)) - M.Stun(max(10/max(1,distance), 3)) - M.Weaken(max(10/max(1,distance), 3)) + M.Knockdown(max(100/max(1,distance), 3)) //Bang if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this. - M.Stun(10) - M.Weaken(10) - M.soundbang_act(1, 10, 10, 15) + M.Knockdown(200) + M.soundbang_act(1, 200, 10, 15) else - M.soundbang_act(1, max(10/max(1,distance), 3), rand(0, 5)) + M.soundbang_act(1, max(20/max(1,distance), 3), rand(0, 5)) diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index 2cb6578124..afa63a187f 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -1,69 +1,69 @@ -//improvised explosives// - -/obj/item/weapon/grenade/iedcasing - name = "improvised firebomb" - desc = "A weak, improvised incendiary device." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/grenade.dmi' - icon_state = "improvised_grenade" - item_state = "flashbang" - throw_speed = 3 - throw_range = 7 - flags = CONDUCT - slot_flags = SLOT_BELT - active = 0 - det_time = 50 - display_timer = 0 - var/range = 3 +//improvised explosives// + +/obj/item/weapon/grenade/iedcasing + name = "improvised firebomb" + desc = "A weak, improvised incendiary device." + w_class = WEIGHT_CLASS_SMALL + icon = 'icons/obj/grenade.dmi' + icon_state = "improvised_grenade" + item_state = "flashbang" + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + slot_flags = SLOT_BELT + active = 0 + det_time = 50 + display_timer = 0 + var/range = 3 var/list/times - + /obj/item/weapon/grenade/iedcasing/Initialize() . = ..() add_overlay("improvised_grenade_filled") add_overlay("improvised_grenade_wired") - times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value] - det_time = text2num(pickweight(times)) - if(det_time < 0) //checking for 'duds' - range = 1 - det_time = rand(30,80) - else - range = pick(2,2,2,3,3,3,4) - -/obj/item/weapon/grenade/iedcasing/CheckParts(list/parts_list) - ..() - var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents - if(can) + times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value] + det_time = text2num(pickweight(times)) + if(det_time < 0) //checking for 'duds' + range = 1 + det_time = rand(30,80) + else + range = pick(2,2,2,3,3,3,4) + +/obj/item/weapon/grenade/iedcasing/CheckParts(list/parts_list) + ..() + var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents + if(can) can.pixel_x = 0 //Reset the sprite's position to make it consistent with the rest of the IED can.pixel_y = 0 var/mutable_appearance/can_underlay = new(can) can_underlay.layer = FLOAT_LAYER can_underlay.plane = FLOAT_PLANE underlays += can_underlay - - -/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) // - if(!active) - if(clown_check(user)) - to_chat(user, "You light the [name]!") + + +/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) // + if(!active) + if(clown_check(user)) + to_chat(user, "You light the [name]!") active = TRUE cut_overlay("improvised_grenade_filled") - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - - message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - addtimer(CALLBACK(src, .proc/prime), det_time) - -/obj/item/weapon/grenade/iedcasing/prime() //Blowing that can up - update_mob() + icon_state = initial(icon_state) + "_active" + add_fingerprint(user) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + + message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + addtimer(CALLBACK(src, .proc/prime), det_time) + +/obj/item/weapon/grenade/iedcasing/prime() //Blowing that can up + update_mob() explosion(src.loc,-1,-1,2, flame_range = 4) // small explosion, plus a very large fireball. - qdel(src) - -/obj/item/weapon/grenade/iedcasing/examine(mob/user) - ..() - to_chat(user, "You can't tell when it will explode!") + qdel(src) + +/obj/item/weapon/grenade/iedcasing/examine(mob/user) + ..() + to_chat(user, "You can't tell when it will explode!") diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index f75ff4655b..b1aa128ece 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -1,112 +1,112 @@ -/obj/item/weapon/grenade - name = "grenade" - desc = "It has an adjustable timer." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/grenade.dmi' - icon_state = "grenade" - item_state = "flashbang" - throw_speed = 3 - throw_range = 7 - flags = CONDUCT - slot_flags = SLOT_BELT - resistance_flags = FLAMMABLE - obj_integrity = 40 - max_integrity = 40 - var/active = 0 - var/det_time = 50 - var/display_timer = 1 - -/obj/item/weapon/grenade/deconstruct(disassembled = TRUE) - if(!disassembled) - prime() - if(!QDELETED(src)) - qdel(src) - -/obj/item/weapon/grenade/proc/clown_check(mob/living/carbon/human/user) - if(user.disabilities & CLUMSY && prob(50)) - to_chat(user, "Huh? How does this thing work?") - active = 1 - icon_state = initial(icon_state) + "_active" - playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(5) - if(user) - user.drop_item() - prime() - return 0 - return 1 - - -/obj/item/weapon/grenade/examine(mob/user) - ..() - if(display_timer) - if(det_time > 1) - to_chat(user, "The timer is set to [det_time/10] second\s.") - else - to_chat(user, "\The [src] is set for instant detonation.") - - -/obj/item/weapon/grenade/attack_self(mob/user) - if(!active) - if(clown_check(user)) - preprime(user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - -/obj/item/weapon/grenade/proc/preprime(mob/user) - if(user) - to_chat(user, "You prime the [name]! [det_time/10] seconds!") - playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) - active = TRUE - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - if(user) - var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" - GLOB.bombers += message - message_admins(message) - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - - addtimer(CALLBACK(src, .proc/prime), det_time) - -/obj/item/weapon/grenade/proc/prime() - -/obj/item/weapon/grenade/proc/update_mob() - if(ismob(loc)) - var/mob/M = loc - M.dropItemToGround(src) - - -/obj/item/weapon/grenade/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/screwdriver)) - switch(det_time) - if ("1") - det_time = 10 - to_chat(user, "You set the [name] for 1 second detonation time.") - if ("10") - det_time = 30 - to_chat(user, "You set the [name] for 3 second detonation time.") - if ("30") - det_time = 50 - to_chat(user, "You set the [name] for 5 second detonation time.") - if ("50") - det_time = 1 - to_chat(user, "You set the [name] for instant detonation.") - add_fingerprint(user) - else - return ..() - -/obj/item/weapon/grenade/attack_hand() - walk(src, null, null) - ..() - -/obj/item/weapon/grenade/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/weapon/grenade/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type, atom/movable/AM) - var/obj/item/projectile/P = AM +/obj/item/weapon/grenade + name = "grenade" + desc = "It has an adjustable timer." + w_class = WEIGHT_CLASS_SMALL + icon = 'icons/obj/grenade.dmi' + icon_state = "grenade" + item_state = "flashbang" + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + slot_flags = SLOT_BELT + resistance_flags = FLAMMABLE + obj_integrity = 40 + max_integrity = 40 + var/active = 0 + var/det_time = 50 + var/display_timer = 1 + +/obj/item/weapon/grenade/deconstruct(disassembled = TRUE) + if(!disassembled) + prime() + if(!QDELETED(src)) + qdel(src) + +/obj/item/weapon/grenade/proc/clown_check(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + to_chat(user, "Huh? How does this thing work?") + active = 1 + icon_state = initial(icon_state) + "_active" + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + spawn(5) + if(user) + user.drop_item() + prime() + return 0 + return 1 + + +/obj/item/weapon/grenade/examine(mob/user) + ..() + if(display_timer) + if(det_time > 1) + to_chat(user, "The timer is set to [det_time/10] second\s.") + else + to_chat(user, "\The [src] is set for instant detonation.") + + +/obj/item/weapon/grenade/attack_self(mob/user) + if(!active) + if(clown_check(user)) + preprime(user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + +/obj/item/weapon/grenade/proc/preprime(mob/user) + if(user) + to_chat(user, "You prime the [name]! [det_time/10] seconds!") + playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) + active = TRUE + icon_state = initial(icon_state) + "_active" + add_fingerprint(user) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + if(user) + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" + GLOB.bombers += message + message_admins(message) + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + + addtimer(CALLBACK(src, .proc/prime), det_time) + +/obj/item/weapon/grenade/proc/prime() + +/obj/item/weapon/grenade/proc/update_mob() + if(ismob(loc)) + var/mob/M = loc + M.dropItemToGround(src) + + +/obj/item/weapon/grenade/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + switch(det_time) + if ("1") + det_time = 10 + to_chat(user, "You set the [name] for 1 second detonation time.") + if ("10") + det_time = 30 + to_chat(user, "You set the [name] for 3 second detonation time.") + if ("30") + det_time = 50 + to_chat(user, "You set the [name] for 5 second detonation time.") + if ("50") + det_time = 1 + to_chat(user, "You set the [name] for instant detonation.") + add_fingerprint(user) + else + return ..() + +/obj/item/weapon/grenade/attack_hand() + walk(src, null, null) + ..() + +/obj/item/weapon/grenade/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + var/obj/item/projectile/P = hitby if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) - owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") - prime() - return 1 //It hit the grenade, not them + owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") + prime() + return 1 //It hit the grenade, not them diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm index a528a832c0..27991f684f 100644 --- a/code/game/objects/items/weapons/grenades/plastic.dm +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -64,7 +64,7 @@ else explosion(location, boom_sizes[1], boom_sizes[2], boom_sizes[3]) location.ex_act(2, target) - if(istype(target, /mob)) + if(ismob(target)) var/mob/M = target M.gib() qdel(src) diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm index 6b260d366a..ddab9af411 100644 --- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -1,53 +1,53 @@ -/obj/item/weapon/grenade/syndieminibomb - desc = "A syndicate manufactured explosive used to sow destruction and chaos" - name = "syndicate minibomb" - icon = 'icons/obj/grenade.dmi' - icon_state = "syndicate" - item_state = "flashbang" - origin_tech = "materials=3;magnets=4;syndicate=3" - - -/obj/item/weapon/grenade/syndieminibomb/prime() - update_mob() +/obj/item/weapon/grenade/syndieminibomb + desc = "A syndicate manufactured explosive used to sow destruction and chaos" + name = "syndicate minibomb" + icon = 'icons/obj/grenade.dmi' + icon_state = "syndicate" + item_state = "flashbang" + origin_tech = "materials=3;magnets=4;syndicate=3" + + +/obj/item/weapon/grenade/syndieminibomb/prime() + update_mob() explosion(src.loc,1,2,4,flame_range = 2) - qdel(src) - -/obj/item/weapon/grenade/syndieminibomb/concussion - name = "HE Grenade" - desc = "A compact shrapnel grenade meant to devestate nearby organisms and cause some damage in the process. Pull pin and throw opposite direction." - icon_state = "concussion" - origin_tech = "materials=3;magnets=4;syndicate=2" - -/obj/item/weapon/grenade/syndieminibomb/concussion/prime() - update_mob() + qdel(src) + +/obj/item/weapon/grenade/syndieminibomb/concussion + name = "HE Grenade" + desc = "A compact shrapnel grenade meant to devestate nearby organisms and cause some damage in the process. Pull pin and throw opposite direction." + icon_state = "concussion" + origin_tech = "materials=3;magnets=4;syndicate=2" + +/obj/item/weapon/grenade/syndieminibomb/concussion/prime() + update_mob() explosion(src.loc,0,2,3,flame_range = 3) - qdel(src) - -/obj/item/weapon/grenade/syndieminibomb/concussion/frag - name = "frag grenade" - desc = "Fire in the hole." - icon_state = "frag" - -/obj/item/weapon/grenade/gluon - desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also likely wet any nearby floors." - name = "gluon frag grenade" - icon = 'icons/obj/grenade.dmi' - icon_state = "bluefrag" - item_state = "flashbang" - var/freeze_range = 4 - var/rad_damage = 35 - var/stamina_damage = 30 - -/obj/item/weapon/grenade/gluon/prime() - update_mob() - playsound(loc, 'sound/effects/EMPulse.ogg', 50, 1) - radiation_pulse(loc,freeze_range,freeze_range+1,rad_damage) - for(var/turf/T in view(freeze_range,loc)) - if(isfloorturf(T)) - var/turf/open/floor/F = T - F.wet = TURF_WET_PERMAFROST - addtimer(CALLBACK(F, /turf/open/floor.proc/MakeDry, TURF_WET_PERMAFROST), rand(3000, 3100)) - for(var/mob/living/carbon/L in T) - L.adjustStaminaLoss(stamina_damage) - L.bodytemperature -= 230 - qdel(src) + qdel(src) + +/obj/item/weapon/grenade/syndieminibomb/concussion/frag + name = "frag grenade" + desc = "Fire in the hole." + icon_state = "frag" + +/obj/item/weapon/grenade/gluon + desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also likely wet any nearby floors." + name = "gluon frag grenade" + icon = 'icons/obj/grenade.dmi' + icon_state = "bluefrag" + item_state = "flashbang" + var/freeze_range = 4 + var/rad_damage = 35 + var/stamina_damage = 30 + +/obj/item/weapon/grenade/gluon/prime() + update_mob() + playsound(loc, 'sound/effects/empulse.ogg', 50, 1) + radiation_pulse(loc,freeze_range,freeze_range+1,rad_damage) + for(var/turf/T in view(freeze_range,loc)) + if(isfloorturf(T)) + var/turf/open/floor/F = T + F.wet = TURF_WET_PERMAFROST + addtimer(CALLBACK(F, /turf/open/floor.proc/MakeDry, TURF_WET_PERMAFROST), rand(3000, 3100)) + for(var/mob/living/carbon/L in T) + L.adjustStaminaLoss(stamina_damage) + L.bodytemperature -= 230 + qdel(src) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 0ab74a019d..7ee254a8dd 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -31,7 +31,7 @@ return // chance of monkey retaliation - if(istype(C, /mob/living/carbon/monkey) && prob(MONKEY_CUFF_RETALIATION_PROB)) + if(ismonkey(C) && prob(MONKEY_CUFF_RETALIATION_PROB)) var/mob/living/carbon/monkey/M M = C M.retaliate(user) @@ -303,7 +303,7 @@ addtimer(CALLBACK(src, .proc/dissipate), 100) /obj/item/weapon/restraints/legcuffs/beartrap/energy/proc/dissipate() - if(!istype(loc, /mob)) + if(!ismob(loc)) do_sparks(1, TRUE, src) qdel(src) @@ -320,7 +320,7 @@ breakouttime = 35//easy to apply, easy to break out of gender = NEUTER origin_tech = "engineering=3;combat=1" - var/weaken = 0 + var/knockdown = 0 /obj/item/weapon/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) if(!..()) @@ -338,7 +338,7 @@ C.update_inv_legcuffed() SSblackbox.add_details("handcuffs","[type]") to_chat(C, "\The [src] ensnares you!") - C.Weaken(weaken) + C.Knockdown(knockdown) /obj/item/weapon/restraints/legcuffs/bola/tactical//traitor variant name = "reinforced bola" @@ -346,7 +346,7 @@ icon_state = "bola_r" breakouttime = 70 origin_tech = "engineering=4;combat=3" - weaken = 1 + knockdown = 20 /obj/item/weapon/restraints/legcuffs/bola/energy //For Security name = "energy bola" diff --git a/code/game/objects/items/weapons/his_grace.dm b/code/game/objects/items/weapons/his_grace.dm index d8e7dabdf9..c43e1600b6 100644 --- a/code/game/objects/items/weapons/his_grace.dm +++ b/code/game/objects/items/weapons/his_grace.dm @@ -84,7 +84,7 @@ master.emote("scream") master.remove_status_effect(STATUS_EFFECT_HISGRACE) flags &= ~NODROP - master.Weaken(3) + master.Knockdown(60) master.adjustBruteLoss(master.maxHealth) playsound(master, 'sound/effects/splat.ogg', 100, 0) else diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index ebd140e370..e262d6cd00 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -91,7 +91,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") -/obj/item/weapon/nullrod/claymore/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/nullrod/claymore/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == PROJECTILE_ATTACK) final_block_chance = 0 //Don't bring a sword to a gunfight return ..() diff --git a/code/game/objects/items/weapons/implants/implant_explosive.dm b/code/game/objects/items/weapons/implants/implant_explosive.dm index 009aae3b54..9c8d5b0eab 100644 --- a/code/game/objects/items/weapons/implants/implant_explosive.dm +++ b/code/game/objects/items/weapons/implants/implant_explosive.dm @@ -68,18 +68,18 @@ return ..() /obj/item/weapon/implant/explosive/proc/timed_explosion() - imp_in.visible_message("[imp_in] starts beeping ominously!") + imp_in.visible_message("[imp_in] starts beeping ominously!") playsound(loc, 'sound/items/timer.ogg', 30, 0) - sleep(delay/4) + sleep(delay*0.25) if(imp_in && !imp_in.stat) - imp_in.visible_message("[imp_in] doubles over in pain!") - imp_in.Weaken(7) + imp_in.visible_message("[imp_in] doubles over in pain!") + imp_in.Knockdown(140) playsound(loc, 'sound/items/timer.ogg', 30, 0) - sleep(delay/4) + sleep(delay*0.25) playsound(loc, 'sound/items/timer.ogg', 30, 0) - sleep(delay/4) + sleep(delay*0.25) playsound(loc, 'sound/items/timer.ogg', 30, 0) - sleep(delay/4) + sleep(delay*0.25) explosion(src,heavy,medium,weak,weak, flame_range = weak) if(imp_in) imp_in.gib(1) diff --git a/code/game/objects/items/weapons/implants/implant_misc.dm b/code/game/objects/items/weapons/implants/implant_misc.dm index f48492a7ea..827a4b0c1c 100644 --- a/code/game/objects/items/weapons/implants/implant_misc.dm +++ b/code/game/objects/items/weapons/implants/implant_misc.dm @@ -16,7 +16,7 @@ /obj/item/weapon/implant/adrenalin name = "adrenal implant" - desc = "Removes all stuns and knockdowns." + desc = "Removes all stuns." icon_state = "adrenal" origin_tech = "materials=2;biotech=4;combat=3;syndicate=4" uses = 3 @@ -35,9 +35,9 @@ /obj/item/weapon/implant/adrenalin/activate() uses-- to_chat(imp_in, "You feel a sudden surge of energy!") - imp_in.SetStunned(0) - imp_in.SetWeakened(0) - imp_in.SetParalysis(0) + imp_in.SetStun(0) + imp_in.SetKnockdown(0) + imp_in.SetUnconscious(0) imp_in.adjustStaminaLoss(-75) imp_in.lying = 0 imp_in.update_canmove() diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 71f31cb1e7..9be87aa5d4 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -1,71 +1,71 @@ -/obj/item/weapon/implanter - name = "implanter" - desc = "A sterile automatic implant injector." - icon = 'icons/obj/items.dmi' - icon_state = "implanter0" - item_state = "syringe_0" - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - origin_tech = "materials=2;biotech=3" - materials = list(MAT_METAL=600, MAT_GLASS=200) - var/obj/item/weapon/implant/imp = null - var/imp_type = null - - -/obj/item/weapon/implanter/update_icon() - if(imp) - icon_state = "implanter1" - origin_tech = imp.origin_tech - else - icon_state = "implanter0" - origin_tech = initial(origin_tech) - - -/obj/item/weapon/implanter/attack(mob/living/M, mob/user) - if(!istype(M)) - return - if(user && imp) - if(M != user) +/obj/item/weapon/implanter + name = "implanter" + desc = "A sterile automatic implant injector." + icon = 'icons/obj/items.dmi' + icon_state = "implanter0" + item_state = "syringe_0" + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + origin_tech = "materials=2;biotech=3" + materials = list(MAT_METAL=600, MAT_GLASS=200) + var/obj/item/weapon/implant/imp = null + var/imp_type = null + + +/obj/item/weapon/implanter/update_icon() + if(imp) + icon_state = "implanter1" + origin_tech = imp.origin_tech + else + icon_state = "implanter0" + origin_tech = initial(origin_tech) + + +/obj/item/weapon/implanter/attack(mob/living/M, mob/user) + if(!istype(M)) + return + if(user && imp) + if(M != user) M.visible_message("[user] is attempting to implant [M].") - - var/turf/T = get_turf(M) - if(T && (M == user || do_mob(user, M, 50))) - if(src && imp) - if(imp.implant(M, user)) - if (M == user) - to_chat(user, "You implant yourself.") - else - M.visible_message("[user] has implanted [M].", "[user] implants you.") - imp = null - update_icon() - else - to_chat(user, "[src] fails to implant [M].") - -/obj/item/weapon/implanter/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/pen)) - var/t = stripped_input(user, "What would you like the label to be?", name, null) - if(user.get_active_held_item() != W) - return - if(!in_range(src, user) && loc != user) - return - if(t) - name = "implanter ([t])" - else - name = "implanter" - else - return ..() - -/obj/item/weapon/implanter/Initialize(mapload) - ..() - if(imp_type) - imp = new imp_type(src) - update_icon() - -/obj/item/weapon/implanter/adrenalin - name = "implanter (adrenalin)" - imp_type = /obj/item/weapon/implant/adrenalin - -/obj/item/weapon/implanter/emp - name = "implanter (EMP)" - imp_type = /obj/item/weapon/implant/emp + + var/turf/T = get_turf(M) + if(T && (M == user || do_mob(user, M, 50))) + if(src && imp) + if(imp.implant(M, user)) + if (M == user) + to_chat(user, "You implant yourself.") + else + M.visible_message("[user] has implanted [M].", "[user] implants you.") + imp = null + update_icon() + else + to_chat(user, "[src] fails to implant [M].") + +/obj/item/weapon/implanter/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + var/t = stripped_input(user, "What would you like the label to be?", name, null) + if(user.get_active_held_item() != W) + return + if(!in_range(src, user) && loc != user) + return + if(t) + name = "implanter ([t])" + else + name = "implanter" + else + return ..() + +/obj/item/weapon/implanter/Initialize(mapload) + ..() + if(imp_type) + imp = new imp_type(src) + update_icon() + +/obj/item/weapon/implanter/adrenalin + name = "implanter (adrenalin)" + imp_type = /obj/item/weapon/implant/adrenalin + +/obj/item/weapon/implanter/emp + name = "implanter (EMP)" + imp_type = /obj/item/weapon/implant/emp diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index 4a2b443871..094f46413a 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -64,7 +64,7 @@ if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc))) usr.set_machine(src) - if(istype(loc, /mob)) + if(ismob(loc)) attack_self(loc) else for(var/mob/M in viewers(1, src)) diff --git a/code/game/objects/items/weapons/inducer.dm b/code/game/objects/items/weapons/inducer.dm index c2a35feabf..26eb9a7bfc 100644 --- a/code/game/objects/items/weapons/inducer.dm +++ b/code/game/objects/items/weapons/inducer.dm @@ -30,7 +30,7 @@ /obj/item/weapon/inducer/emp_act(severity) ..() if(cell) - cell.emp_act() + cell.emp_act(severity) /obj/item/weapon/inducer/attack_obj(obj/O, mob/living/carbon/user) if(user.a_intent == INTENT_HARM) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index e11e36bbb6..de89b3d3a0 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -1,160 +1,160 @@ -/* Kitchen tools - * Contains: - * Fork - * Kitchen knives - * Ritual Knife - * Butcher's cleaver - * Combat Knife - * Rolling Pins - */ - -/obj/item/weapon/kitchen - icon = 'icons/obj/kitchen.dmi' - origin_tech = "materials=1" - -/obj/item/weapon/kitchen/fork - name = "fork" - desc = "Pointy." - icon_state = "fork" - force = 5 - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=80) - flags = CONDUCT - attack_verb = list("attacked", "stabbed", "poked") - hitsound = 'sound/weapons/bladeslice.ogg' - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - var/datum/reagent/forkload //used to eat omelette - -/obj/item/weapon/kitchen/fork/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!istype(M)) - return ..() - - if(forkload) - if(M == user) - M.visible_message("[user] eats a delicious forkful of omelette!") - M.reagents.add_reagent(forkload.id, 1) - else - M.visible_message("[user] feeds [M] a delicious forkful of omelette!") - M.reagents.add_reagent(forkload.id, 1) - icon_state = "fork" - forkload = null - - else if(user.zone_selected == "eyes") - if(user.disabilities & CLUMSY && prob(50)) - M = user - return eyestab(M,user) - else - return ..() - - -/obj/item/weapon/kitchen/knife - name = "kitchen knife" - icon_state = "knife" - desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." - flags = CONDUCT - force = 10 - w_class = WEIGHT_CLASS_SMALL - throwforce = 10 - hitsound = 'sound/weapons/bladeslice.ogg' - throw_speed = 3 - throw_range = 6 - materials = list(MAT_METAL=12000) - attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - sharpness = IS_SHARP_ACCURATE - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) +/* Kitchen tools + * Contains: + * Fork + * Kitchen knives + * Ritual Knife + * Butcher's cleaver + * Combat Knife + * Rolling Pins + */ + +/obj/item/weapon/kitchen + icon = 'icons/obj/kitchen.dmi' + origin_tech = "materials=1" + +/obj/item/weapon/kitchen/fork + name = "fork" + desc = "Pointy." + icon_state = "fork" + force = 5 + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=80) + flags = CONDUCT + attack_verb = list("attacked", "stabbed", "poked") + hitsound = 'sound/weapons/bladeslice.ogg' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + var/datum/reagent/forkload //used to eat omelette + +/obj/item/weapon/kitchen/fork/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + + if(forkload) + if(M == user) + M.visible_message("[user] eats a delicious forkful of omelette!") + M.reagents.add_reagent(forkload.id, 1) + else + M.visible_message("[user] feeds [M] a delicious forkful of omelette!") + M.reagents.add_reagent(forkload.id, 1) + icon_state = "fork" + forkload = null + + else if(user.zone_selected == "eyes") + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + else + return ..() + + +/obj/item/weapon/kitchen/knife + name = "kitchen knife" + icon_state = "knife" + desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." + flags = CONDUCT + force = 10 + w_class = WEIGHT_CLASS_SMALL + throwforce = 10 + hitsound = 'sound/weapons/bladeslice.ogg' + throw_speed = 3 + throw_range = 6 + materials = list(MAT_METAL=12000) + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + sharpness = IS_SHARP_ACCURATE + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) var/bayonet = FALSE //Can this be attached to a gun? - -/obj/item/weapon/kitchen/knife/attack(mob/living/carbon/M, mob/living/carbon/user) - if(user.zone_selected == "eyes") - if(user.disabilities & CLUMSY && prob(50)) - M = user - return eyestab(M,user) - else - return ..() - -/obj/item/weapon/kitchen/knife/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ - "[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ - "[user] is slitting [user.p_their()] stomach open with the [src.name]! It looks like [user.p_theyre()] trying to commit seppuku.")) - return (BRUTELOSS) - -/obj/item/weapon/kitchen/knife/ritual - name = "ritual knife" - desc = "The unearthly energies that once powered this blade are now dormant." - icon = 'icons/obj/wizard.dmi' - icon_state = "render" - w_class = WEIGHT_CLASS_NORMAL - -/obj/item/weapon/kitchen/knife/butcher - name = "butcher's cleaver" - icon_state = "butch" - desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown by-products." - flags = CONDUCT - force = 15 - throwforce = 10 - materials = list(MAT_METAL=18000) - attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - w_class = WEIGHT_CLASS_NORMAL - -/obj/item/weapon/kitchen/knife/combat - name = "combat knife" - icon_state = "buckknife" - item_state = "knife" - desc = "A military combat utility survival knife." - force = 20 - throwforce = 20 - origin_tech = "materials=3;combat=4" - attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") + +/obj/item/weapon/kitchen/knife/attack(mob/living/carbon/M, mob/living/carbon/user) + if(user.zone_selected == "eyes") + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + else + return ..() + +/obj/item/weapon/kitchen/knife/suicide_act(mob/user) + user.visible_message(pick("[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] stomach open with the [src.name]! It looks like [user.p_theyre()] trying to commit seppuku.")) + return (BRUTELOSS) + +/obj/item/weapon/kitchen/knife/ritual + name = "ritual knife" + desc = "The unearthly energies that once powered this blade are now dormant." + icon = 'icons/obj/wizard.dmi' + icon_state = "render" + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/kitchen/knife/butcher + name = "butcher's cleaver" + icon_state = "butch" + desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown by-products." + flags = CONDUCT + force = 15 + throwforce = 10 + materials = list(MAT_METAL=18000) + attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/kitchen/knife/combat + name = "combat knife" + icon_state = "buckknife" + item_state = "knife" + desc = "A military combat utility survival knife." + force = 20 + throwforce = 20 + origin_tech = "materials=3;combat=4" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") bayonet = TRUE - -/obj/item/weapon/kitchen/knife/combat/survival - name = "survival knife" - icon_state = "survivalknife" - desc = "A hunting grade survival knife." - force = 15 - throwforce = 15 + +/obj/item/weapon/kitchen/knife/combat/survival + name = "survival knife" + icon_state = "survivalknife" + desc = "A hunting grade survival knife." + force = 15 + throwforce = 15 bayonet = TRUE - -/obj/item/weapon/kitchen/knife/combat/bone - name = "bone dagger" - item_state = "bone_dagger" - icon_state = "bone_dagger" - desc = "A sharpened bone. The bare mimimum in survival." - force = 15 - throwforce = 15 - materials = list() - -/obj/item/weapon/kitchen/knife/combat/cyborg - name = "cyborg knife" - icon = 'icons/obj/items_cyborg.dmi' - icon_state = "knife" - desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable." - origin_tech = null - -/obj/item/weapon/kitchen/knife/carrotshiv - name = "carrot shiv" - icon_state = "carrotshiv" - item_state = "carrotshiv" - desc = "Unlike other carrots, you should probably keep this far away from your eyes." - force = 8 - throwforce = 12//fuck git - materials = list() - origin_tech = "biotech=3;combat=2" - attack_verb = list("shanked", "shivved") - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - -/obj/item/weapon/kitchen/rollingpin - name = "rolling pin" - desc = "Used to knock out the Bartender." - icon_state = "rolling_pin" - force = 8 - throwforce = 5 - throw_speed = 3 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - -/* Trays moved to /obj/item/weapon/storage/bag */ + +/obj/item/weapon/kitchen/knife/combat/bone + name = "bone dagger" + item_state = "bone_dagger" + icon_state = "bone_dagger" + desc = "A sharpened bone. The bare mimimum in survival." + force = 15 + throwforce = 15 + materials = list() + +/obj/item/weapon/kitchen/knife/combat/cyborg + name = "cyborg knife" + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "knife" + desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable." + origin_tech = null + +/obj/item/weapon/kitchen/knife/carrotshiv + name = "carrot shiv" + icon_state = "carrotshiv" + item_state = "carrotshiv" + desc = "Unlike other carrots, you should probably keep this far away from your eyes." + force = 8 + throwforce = 12//fuck git + materials = list() + origin_tech = "biotech=3;combat=2" + attack_verb = list("shanked", "shivved") + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + +/obj/item/weapon/kitchen/rollingpin + name = "rolling pin" + desc = "Used to knock out the Bartender." + icon_state = "rolling_pin" + force = 8 + throwforce = 5 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + +/* Trays moved to /obj/item/weapon/storage/bag */ diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index d88c1371a7..ff8db01d3c 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -95,7 +95,7 @@ else STOP_PROCESSING(SSobj, src) -/obj/item/weapon/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/weapon/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(active) return ..() return 0 @@ -188,7 +188,7 @@ icon_state = "esaw_0" item_color = null -/obj/item/weapon/melee/energy/sword/cyborg/saw/hit_reaction() +/obj/item/weapon/melee/energy/sword/cyborg/saw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) return 0 /obj/item/weapon/melee/energy/sword/saber diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 7305f54d11..ea93b34aa3 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -5,7 +5,7 @@ if(target.check_block()) target.visible_message("[target.name] blocks [src] and twists [user]'s arm behind their back!", "You block the attack!") - user.Stun(2) + user.Stun(40) return TRUE @@ -60,7 +60,7 @@ hitsound = 'sound/weapons/rapierhit.ogg' materials = list(MAT_METAL = 1000) -/obj/item/weapon/melee/sabre/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/melee/sabre/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == PROJECTILE_ATTACK) final_block_chance = 0 //Don't bring a sword to a gunfight return ..() @@ -77,14 +77,14 @@ var/cooldown = 0 var/on = 1 -/obj/item/weapon/melee/classic_baton/attack(mob/target, mob/living/user) +/obj/item/weapon/melee/classic_baton/attack(mob/living/target, mob/living/user) if(!on) return ..() add_fingerprint(user) if((CLUMSY in user.disabilities) && prob(50)) to_chat(user, "You club yourself over the head.") - user.Weaken(3 * force) + user.Knockdown(60 * force) if(ishuman(user)) var/mob/living/carbon/human/H = user H.apply_damage(2*force, BRUTE, "head") @@ -105,12 +105,12 @@ if(cooldown <= world.time) if(ishuman(target)) var/mob/living/carbon/human/H = target - if (H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) + if (H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) return if(check_martial_counter(H, user)) return playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1) - target.Weaken(3) + target.Knockdown(60) add_logs(user, target, "stunned", src) src.add_fingerprint(user) target.visible_message("[user] has knocked down [target] with [src]!", \ diff --git a/code/game/objects/items/weapons/melee/transforming.dm b/code/game/objects/items/weapons/melee/transforming.dm new file mode 100644 index 0000000000..9b31e0eb51 --- /dev/null +++ b/code/game/objects/items/weapons/melee/transforming.dm @@ -0,0 +1,58 @@ +/obj/item/weapon/melee/transforming //TODO: make transforming energy weapons a subtype of this + var/active = FALSE + var/force_on = 30 //force when active + var/throwforce_on = 20 + var/icon_state_on = "axe1" + var/hitsound_on = 'sound/weapons/blade1.ogg' + var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + var/list/attack_verb_off = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + w_class = WEIGHT_CLASS_SMALL + sharpness = IS_SHARP + var/w_class_on = WEIGHT_CLASS_BULKY + +/obj/item/weapon/melee/transforming/Initialize() + . = ..() + if(active) + if(attack_verb_on.len) + attack_verb = attack_verb_on + else + if(attack_verb_off.len) + attack_verb = attack_verb_off + +/obj/item/weapon/melee/transforming/attack_self(mob/living/carbon/user) + if(transform_weapon(user)) + clumsy_transform_effect(user) + +/obj/item/weapon/melee/transforming/proc/transform_weapon(mob/living/user, supress_message_text) + active = !active + if(active) + force = force_on + throwforce = throwforce_on + hitsound = hitsound_on + throw_speed = 4 + if(attack_verb_on.len) + attack_verb = attack_verb_on + icon_state = icon_state_on + w_class = w_class_on + else + force = initial(force) + throwforce = initial(throwforce) + hitsound = initial(hitsound) + throw_speed = initial(throw_speed) + if(attack_verb_off.len) + attack_verb = attack_verb_off + icon_state = initial(icon_state) + w_class = initial(w_class) + transform_messages(user, supress_message_text) + add_fingerprint(user) + return TRUE + +/obj/item/weapon/melee/transforming/proc/transform_messages(mob/living/user, supress_message_text) + playsound(user, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness + if(!supress_message_text) + to_chat(user, "[src] [active ? "is now active":"can now be concealed"].") + +/obj/item/weapon/melee/transforming/proc/clumsy_transform_effect(mob/living/user) + if(user.disabilities & CLUMSY && prob(50)) + to_chat(user, "You accidentally cut yourself with [src], like a doofus!") + user.take_bodypart_damage(5,5) \ No newline at end of file diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index aca83c1b9e..7ac70c82f8 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -43,7 +43,6 @@ out += "[bicon(tank)] It has \the [tank] mounted onto it." to_chat(user, out.Join("
    ")) - /obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params) if(user.a_intent == INTENT_HARM) return ..() @@ -70,7 +69,7 @@ updateTank(tank, 1, user) else if(loadedWeightClass >= maxWeightClass) to_chat(user, "\The [src] can't hold any more items!") - else if(istype(W, /obj/item)) + else if(isitem(W)) var/obj/item/IW = W load_item(IW, user) @@ -142,7 +141,7 @@ fire_items(T, user) if(pressureSetting >= 3 && user) user.visible_message("[user] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") - user.Weaken(3) + user.Knockdown(60) /obj/item/weapon/pneumatic_cannon/proc/fire_items(turf/target, mob/user) if(fire_mode == PCANNON_FIREALL) @@ -224,7 +223,6 @@ return loaded loaded++ CHECK_TICK - return loaded /obj/item/weapon/pneumatic_cannon/pie name = "pie cannon" diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index b0506d8d6b..b528d52078 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -29,7 +29,7 @@ else return ..() -/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == THROWN_PROJECTILE_ATTACK) final_block_chance += 30 if(attack_type == LEAP_ATTACK) @@ -66,7 +66,7 @@ attack_verb = list("shoved", "bashed") var/active = 0 -/obj/item/weapon/shield/energy/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/weapon/shield/energy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) return 0 /obj/item/weapon/shield/energy/IsReflect() @@ -109,7 +109,7 @@ w_class = WEIGHT_CLASS_NORMAL var/active = 0 -/obj/item/weapon/shield/riot/tele/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/weapon/shield/riot/tele/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(active) return ..() return 0 diff --git a/code/game/objects/items/weapons/singularityhammer.dm b/code/game/objects/items/weapons/singularityhammer.dm index c66e42c582..cec4fce24d 100644 --- a/code/game/objects/items/weapons/singularityhammer.dm +++ b/code/game/objects/items/weapons/singularityhammer.dm @@ -1,114 +1,109 @@ -/obj/item/weapon/twohanded/singularityhammer - name = "singularity hammer" - desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." - icon_state = "mjollnir0" - flags = CONDUCT - slot_flags = SLOT_BACK - force = 5 - force_unwielded = 5 - force_wielded = 20 - throwforce = 15 - throw_range = 1 - w_class = WEIGHT_CLASS_HUGE - var/charged = 5 - origin_tech = "combat=4;bluespace=4;plasmatech=7" - armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 100, acid = 100) - resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/weapon/twohanded/singularityhammer + name = "singularity hammer" + desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + force = 5 + force_unwielded = 5 + force_wielded = 20 + throwforce = 15 + throw_range = 1 + w_class = WEIGHT_CLASS_HUGE + var/charged = 5 + origin_tech = "combat=4;bluespace=4;plasmatech=7" + armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF force_string = "LORD SINGULOTH HIMSELF" - -/obj/item/weapon/twohanded/singularityhammer/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/weapon/twohanded/singularityhammer/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/weapon/twohanded/singularityhammer/process() - if(charged < 5) - charged++ - return - -/obj/item/weapon/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return - -/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) - for(var/atom/X in orange(5,pull)) - if(istype(X, /atom/movable)) - var/atom/movable/A = X - if(A == wielder) - continue - if(A && !A.anchored && !ishuman(X)) - step_towards(A,pull) - step_towards(A,pull) - step_towards(A,pull) - else if(ishuman(X)) - var/mob/living/carbon/human/H = X - if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) - var/obj/item/clothing/shoes/magboots/M = H.shoes - if(M.magpulse) - continue - H.apply_effect(1, WEAKEN, 0) - step_towards(H,pull) - step_towards(H,pull) - step_towards(H,pull) - return - -/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) - if(!proximity) return - if(wielded) - if(charged == 5) - charged = 0 - if(istype(A, /mob/living/)) - var/mob/living/Z = A - Z.take_bodypart_damage(20,0) - playsound(user, 'sound/weapons/marauder.ogg', 50, 1) - var/turf/target = get_turf(A) - vortex(target,user) - -/obj/item/weapon/twohanded/mjollnir - name = "Mjolnir" - desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." - icon_state = "mjollnir0" - flags = CONDUCT - slot_flags = SLOT_BACK - force = 5 - force_unwielded = 5 - force_wielded = 25 - throwforce = 30 - throw_range = 7 - w_class = WEIGHT_CLASS_HUGE - //var/charged = 5 - origin_tech = "combat=4;powerstorage=7" - -/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target) - var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread - s.set_up(5, 1, target.loc) - s.start() - target.visible_message("[target.name] was shocked by the [src.name]!", \ - "You feel a powerful shock course through your body sending you flying!", \ - "You hear a heavy electrical crack!") - var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) - target.throw_at(throw_target, 200, 4) - return - -/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user) - ..() - if(wielded) - //if(charged == 5) - //charged = 0 - playsound(src.loc, "sparks", 50, 1) - M.Stun(3) - shock(M) - -/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target) - . = ..() - if(isliving(target)) - var/mob/living/L = target - L.Stun(3) - shock(L) - -/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return + +/obj/item/weapon/twohanded/singularityhammer/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/singularityhammer/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/weapon/twohanded/singularityhammer/process() + if(charged < 5) + charged++ + return + +/obj/item/weapon/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return + +/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) + for(var/atom/X in orange(5,pull)) + if(ismovableatom(X)) + var/atom/movable/A = X + if(A == wielder) + continue + if(A && !A.anchored && !ishuman(X)) + step_towards(A,pull) + step_towards(A,pull) + step_towards(A,pull) + else if(ishuman(X)) + var/mob/living/carbon/human/H = X + if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) + var/obj/item/clothing/shoes/magboots/M = H.shoes + if(M.magpulse) + continue + H.apply_effect(20, KNOCKDOWN, 0) + step_towards(H,pull) + step_towards(H,pull) + step_towards(H,pull) + return + +/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) + if(!proximity) return + if(wielded) + if(charged == 5) + charged = 0 + if(istype(A, /mob/living/)) + var/mob/living/Z = A + Z.take_bodypart_damage(20,0) + playsound(user, 'sound/weapons/marauder.ogg', 50, 1) + var/turf/target = get_turf(A) + vortex(target,user) + +/obj/item/weapon/twohanded/mjollnir + name = "Mjolnir" + desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + force = 5 + force_unwielded = 5 + force_wielded = 25 + throwforce = 30 + throw_range = 7 + w_class = WEIGHT_CLASS_HUGE + origin_tech = "combat=4;powerstorage=7" + +/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target) + target.Stun(60) + var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread + s.set_up(5, 1, target.loc) + s.start() + target.visible_message("[target.name] was shocked by [src]!", \ + "You feel a powerful shock course through your body sending you flying!", \ + "You hear a heavy electrical crack!") + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + target.throw_at(throw_target, 200, 4) + return + +/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user) + ..() + if(wielded) + playsound(src.loc, "sparks", 50, 1) + shock(M) + +/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target) + . = ..() + if(isliving(target)) + shock(target) + +/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index c86d5bccb3..1837dfb671 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -1,506 +1,549 @@ -/* Backpacks - * Contains: - * Backpack - * Backpack Types - * Satchel Types - */ - -/* - * Backpack - */ - -/obj/item/weapon/storage/backpack - name = "backpack" - desc = "You wear this on your back and put items into it." - icon_state = "backpack" - item_state = "backpack" - w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK //ERROOOOO - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - storage_slots = 21 - resistance_flags = 0 - obj_integrity = 300 - max_integrity = 300 - -/* - * Backpack Types - */ - +/* Backpacks + * Contains: + * Backpack + * Backpack Types + * Satchel Types + */ + +/* + * Backpack + */ + +/obj/item/weapon/storage/backpack + name = "backpack" + desc = "You wear this on your back and put items into it." + icon_state = "backpack" + item_state = "backpack" + w_class = WEIGHT_CLASS_BULKY + slot_flags = SLOT_BACK //ERROOOOO + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 21 + storage_slots = 21 + resistance_flags = 0 + obj_integrity = 300 + max_integrity = 300 + +/* + * Backpack Types + */ + /obj/item/weapon/storage/backpack/old max_combined_w_class = 12 -/obj/item/weapon/storage/backpack/holding - name = "bag of holding" - desc = "A backpack that opens into a localized pocket of Blue Space." - origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" - icon_state = "holdingpack" - item_state = "holdingpack" - max_w_class = WEIGHT_CLASS_GIGANTIC - max_combined_w_class = 35 - resistance_flags = FIRE_PROOF - var/pshoom = 'sound/items/PSHOOM.ogg' - var/alt_sound = 'sound/items/PSHOOM_2.ogg' - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) - - -/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user) - user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") - user.drop_item() - user.Stun(5) - sleep(20) - playsound(src, "rustle", 50, 1, -5) - qdel(user) - return - -/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user) - if(Adjacent(user)) - if(get_dist(user, dest_object) < 8) - if(dest_object.storage_contents_dump_act(src, user)) - if(alt_sound && prob(1)) - playsound(src, alt_sound, 40, 1) - else - playsound(src, pshoom, 40, 1) - user.Beam(dest_object,icon_state="rped_upgrade",time=5) - return 1 - to_chat(user, "The [src.name] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) - return 0 - -/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding))) - var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") - if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) - return - investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) - to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") - qdel(W) - var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) - singulo.energy = 300 //should make it a bit bigger~ - message_admins("[key_name_admin(user)] detonated a bag of holding") - log_game("[key_name(user)] detonated a bag of holding") - qdel(src) - singulo.process() - return - . = ..() - -/obj/item/weapon/storage/backpack/holding/singularity_act(current_size) - var/dist = max((current_size - 2),1) - explosion(src.loc,(dist),(dist*2),(dist*4)) - return - - -/obj/item/weapon/storage/backpack/santabag - name = "Santa's Gift Bag" - desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" - icon_state = "giftbag0" - item_state = "giftbag" - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 60 - -/obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user) - user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") - return (OXYLOSS) - -/obj/item/weapon/storage/backpack/cultpack - name = "trophy rack" - desc = "It's useful for both carrying extra gear and proudly declaring your insanity." - icon_state = "cultpack" - item_state = "backpack" - -/obj/item/weapon/storage/backpack/clown - name = "Giggles von Honkerton" - desc = "It's a backpack made by Honk! Co." - icon_state = "clownpack" - item_state = "clownpack" - -/obj/item/weapon/storage/backpack/explorer - name = "explorer bag" - desc = "A robust backpack for stashing your loot." - icon_state = "explorerpack" - item_state = "explorerpack" - -/obj/item/weapon/storage/backpack/mime - name = "Parcel Parceaux" - desc = "A silent backpack made for those silent workers. Silence Co." - icon_state = "mimepack" - item_state = "mimepack" - -/obj/item/weapon/storage/backpack/medic - name = "medical backpack" - desc = "It's a backpack especially designed for use in a sterile environment." - icon_state = "medicalpack" - item_state = "medicalpack" - -/obj/item/weapon/storage/backpack/security - name = "security backpack" - desc = "It's a very robust backpack." - icon_state = "securitypack" - item_state = "securitypack" - -/obj/item/weapon/storage/backpack/captain - name = "captain's backpack" - desc = "It's a special backpack made exclusively for Nanotrasen officers." - icon_state = "captainpack" - item_state = "captainpack" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/industrial - name = "industrial backpack" - desc = "It's a tough backpack for the daily grind of station life." - icon_state = "engiepack" - item_state = "engiepack" - resistance_flags = FIRE_PROOF - -/obj/item/weapon/storage/backpack/botany - name = "botany backpack" - desc = "It's a backpack made of all-natural fibers." - icon_state = "botpack" - item_state = "botpack" - -/obj/item/weapon/storage/backpack/chemistry - name = "chemistry backpack" - desc = "A backpack specially designed to repel stains and hazardous liquids." - icon_state = "chempack" - item_state = "chempack" - -/obj/item/weapon/storage/backpack/genetics - name = "genetics backpack" - desc = "A bag designed to be super tough, just in case someone hulks out on you." - icon_state = "genepack" - item_state = "genepack" - -/obj/item/weapon/storage/backpack/science - name = "science backpack" - desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." - icon_state = "toxpack" - item_state = "toxpack" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/virology - name = "virology backpack" - desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." - icon_state = "viropack" - item_state = "viropack" - - -/* - * Satchel Types - */ - -/obj/item/weapon/storage/backpack/satchel - name = "satchel" - desc = "A trendy looking satchel." - icon_state = "satchel-norm" - species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back - -/obj/item/weapon/storage/backpack/satchel/leather - name = "leather satchel" - desc = "It's a very fancy satchel made with fine leather." - icon_state = "satchel" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/satchel/leather/withwallet/PopulateContents() - new /obj/item/weapon/storage/wallet/random(src) - -/obj/item/weapon/storage/backpack/satchel/eng - name = "industrial satchel" - desc = "A tough satchel with extra pockets." - icon_state = "satchel-eng" - item_state = "engiepack" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/satchel/med - name = "medical satchel" - desc = "A sterile satchel used in medical departments." - icon_state = "satchel-med" - item_state = "medicalpack" - -/obj/item/weapon/storage/backpack/satchel/vir - name = "virologist satchel" - desc = "A sterile satchel with virologist colours." - icon_state = "satchel-vir" - item_state = "satchel-vir" - -/obj/item/weapon/storage/backpack/satchel/chem - name = "chemist satchel" - desc = "A sterile satchel with chemist colours." - icon_state = "satchel-chem" - item_state = "satchel-chem" - -/obj/item/weapon/storage/backpack/satchel/gen - name = "geneticist satchel" - desc = "A sterile satchel with geneticist colours." - icon_state = "satchel-gen" - item_state = "satchel-gen" - -/obj/item/weapon/storage/backpack/satchel/tox - name = "scientist satchel" - desc = "Useful for holding research materials." - icon_state = "satchel-tox" - item_state = "satchel-tox" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/satchel/hyd - name = "botanist satchel" - desc = "A satchel made of all natural fibers." - icon_state = "satchel-hyd" - item_state = "satchel-hyd" - -/obj/item/weapon/storage/backpack/satchel/sec - name = "security satchel" - desc = "A robust satchel for security related needs." - icon_state = "satchel-sec" - item_state = "securitypack" - -/obj/item/weapon/storage/backpack/satchel/explorer - name = "explorer satchel" - desc = "A robust satchel for stashing your loot." - icon_state = "satchel-explorer" - item_state = "securitypack" - -/obj/item/weapon/storage/backpack/satchel/cap - name = "captain's satchel" - desc = "An exclusive satchel for Nanotrasen officers." - icon_state = "satchel-cap" - item_state = "captainpack" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/satchel/flat - name = "smuggler's satchel" - desc = "A very slim satchel that can easily fit into tight spaces." - icon_state = "satchel-flat" - w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. - max_combined_w_class = 15 - level = 1 - cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks - -/obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact) - if(intact) - invisibility = INVISIBILITY_MAXIMUM - anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack. - icon_state = "[initial(icon_state)]2" - else - invisibility = initial(invisibility) - anchored = 0 - icon_state = initial(icon_state) - -/obj/item/weapon/storage/backpack/satchel/flat/Initialize(mapload) - ..() - SSpersistence.new_secret_satchels += src - -/obj/item/weapon/storage/backpack/satchel/flat/PopulateContents() - new /obj/item/stack/tile/plasteel(src) - new /obj/item/weapon/crowbar(src) - -/obj/item/weapon/storage/backpack/satchel/flat/Destroy() - SSpersistence.new_secret_satchels -= src - return ..() - -/obj/item/weapon/storage/backpack/satchel/flat/secret - var/list/reward_one_of_these = list() //Intended for map editing - var/list/reward_all_of_these = list() //use paths! - var/revealed = 0 - -/obj/item/weapon/storage/backpack/satchel/flat/secret/Initialize() - ..() - - if(isfloorturf(loc) && !istype(loc,/turf/open/floor/plating/)) - hide(1) - -/obj/item/weapon/storage/backpack/satchel/flat/secret/hide(intact) - ..() - if(!intact && !revealed) - if(reward_one_of_these.len > 0) - var/reward = pick(reward_one_of_these) - new reward(src) - for(var/R in reward_all_of_these) - new R(src) - revealed = 1 - -/obj/item/weapon/storage/backpack/duffelbag - name = "duffelbag" - desc = "A large duffelbag for holding extra things." - icon_state = "duffel" - item_state = "duffel" - slowdown = 1 - max_combined_w_class = 30 - -/obj/item/weapon/storage/backpack/duffelbag/captain - name = "captain's duffelbag" - desc = "A large duffelbag for holding extra captainly goods." - icon_state = "duffel-captain" - item_state = "duffel-captain" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/duffelbag/med - name = "medical duffelbag" - desc = "A large duffelbag for holding extra medical supplies." - icon_state = "duffel-med" - item_state = "duffel-med" - -/obj/item/weapon/storage/backpack/duffelbag/sec - name = "security duffelbag" - desc = "A large duffelbag for holding extra security supplies and ammunition." - icon_state = "duffel-sec" - item_state = "duffel-sec" - -/obj/item/weapon/storage/backpack/duffelbag/engineering - name = "industrial duffelbag" - desc = "A large duffelbag for holding extra tools and supplies." - icon_state = "duffel-eng" - item_state = "duffel-eng" - resistance_flags = 0 - -/obj/item/weapon/storage/backpack/duffelbag/drone - name = "drone duffelbag" - desc = "A large duffelbag for holding tools and hats." - icon_state = "duffel-drone" - item_state = "duffel-drone" - resistance_flags = FIRE_PROOF - -/obj/item/weapon/storage/backpack/duffelbag/drone/PopulateContents() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/stack/cable_coil/random(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) - -/obj/item/weapon/storage/backpack/duffelbag/clown - name = "clown's duffelbag" - desc = "A large duffelbag for holding lots of funny gags!" - icon_state = "duffel-clown" - item_state = "duffel-clown" - -/obj/item/weapon/storage/backpack/duffelbag/clown/cream_pie/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie - name = "suspicious looking duffelbag" - desc = "A large duffelbag for holding extra tactical supplies." - icon_state = "duffel-syndie" - item_state = "duffel-syndie" - origin_tech = "syndicate=1" - silent = 1 - slowdown = 0 - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med - name = "medical duffelbag" - desc = "A large duffelbag for holding extra tactical medical supplies." - icon_state = "duffel-syndiemed" - item_state = "duffel-syndiemed" - -/obj/item/weapon/storage/backpack/duffelbag/syndie/surgery - name = "surgery duffelbag" - desc = "A suspicious looking duffelbag for holding surgery tools." - icon_state = "duffel-syndiemed" - item_state = "duffel-syndiemed" - -/obj/item/weapon/storage/backpack/duffelbag/syndie/surgery/PopulateContents() - new /obj/item/weapon/scalpel(src) - new /obj/item/weapon/hemostat(src) - new /obj/item/weapon/retractor(src) - new /obj/item/weapon/circular_saw(src) - new /obj/item/weapon/surgicaldrill(src) - new /obj/item/weapon/cautery(src) - new /obj/item/weapon/surgical_drapes(src) - new /obj/item/clothing/suit/straight_jacket(src) - new /obj/item/clothing/mask/muzzle(src) - new /obj/item/device/mmi/syndie(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo - name = "ammunition duffelbag" - desc = "A large duffelbag for holding extra weapons ammunition and supplies." - icon_state = "duffel-syndieammo" - item_state = "duffel-syndieammo" - -/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/shotgun - desc = "A large duffelbag, packed to the brim with Bulldog shotgun ammo." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/ammo_box/magazine/m12g/buckshot(src) - new /obj/item/ammo_box/magazine/m12g/slug(src) - new /obj/item/ammo_box/magazine/m12g/dragon(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/smg - desc = "A large duffelbag, packed to the brim with C20r magazines." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents() - for(var/i in 1 to 9) - new /obj/item/ammo_box/magazine/smgm45(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/c20rbundle - desc = "A large duffelbag containing a C20r, some magazines, and a cheap looking suppressor." - -/obj/item/weapon/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/weapon/gun/ballistic/automatic/c20r(src) - new /obj/item/weapon/suppressor/specialoffer(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/bulldogbundle - desc = "A large duffelbag containing a Bulldog, several drums, and a collapsed hardsuit." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents() - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(src) - new /obj/item/ammo_box/magazine/m12g/buckshot(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle - desc = "A large duffelbag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() - new /obj/item/clothing/shoes/magboots/syndie(src) - new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) - new /obj/item/ammo_box/foambox/riot(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle - desc = "A large duffelbag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() - new /obj/item/clothing/shoes/magboots/syndie(src) - new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) - new /obj/item/ammo_box/foambox/riot(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/bioterrorbundle - desc = "A large duffelbag containing a deadly chemicals, a chemical spray, chemical grenade, a Donksoft assault rifle, riot grade darts, a minature syringe gun, and a box of syringes" - -/obj/item/weapon/storage/backpack/duffelbag/syndie/med/bioterrorbundle/PopulateContents() - new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) - new /obj/item/weapon/storage/box/syndie_kit/chemical(src) - new /obj/item/weapon/gun/syringe/syndicate(src) - new /obj/item/weapon/gun/ballistic/automatic/c20r/toy(src) - new /obj/item/weapon/storage/box/syringes(src) - new /obj/item/ammo_box/foambox/riot(src) - new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/c4/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/weapon/grenade/plastic/c4(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/x4/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/weapon/grenade/plastic/x4(src) - -/obj/item/weapon/storage/backpack/duffelbag/syndie/firestarter - desc = "A large duffelbag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." - -/obj/item/weapon/storage/backpack/duffelbag/syndie/firestarter/PopulateContents() - new /obj/item/clothing/under/syndicate/soviet(src) - new /obj/item/weapon/watertank/operator(src) - new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - new /obj/item/weapon/gun/ballistic/automatic/pistol/APS(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src) - new /obj/item/weapon/reagent_containers/syringe/stimulants(src) - new /obj/item/weapon/grenade/syndieminibomb(src) +/obj/item/weapon/storage/backpack/holding + name = "bag of holding" + desc = "A backpack that opens into a localized pocket of Blue Space." + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" + icon_state = "holdingpack" + item_state = "holdingpack" + max_w_class = WEIGHT_CLASS_GIGANTIC + max_combined_w_class = 35 + resistance_flags = FIRE_PROOF + var/pshoom = 'sound/items/pshoom.ogg' + var/alt_sound = 'sound/items/pshoom_2.ogg' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) + + +/obj/item/weapon/storage/backpack/holding/suicide_act(mob/living/user) + user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") + user.drop_item() + user.Stun(100, ignore_canstun = TRUE) + sleep(20) + playsound(src, "rustle", 50, 1, -5) + qdel(user) + return + +/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user) + if(Adjacent(user)) + if(get_dist(user, dest_object) < 8) + if(dest_object.storage_contents_dump_act(src, user)) + if(alt_sound && prob(1)) + playsound(src, alt_sound, 40, 1) + else + playsound(src, pshoom, 40, 1) + user.Beam(dest_object,icon_state="rped_upgrade",time=5) + return 1 + to_chat(user, "The [src.name] buzzes.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + return 0 + +/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding))) + var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") + if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) + return + investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) + to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") + qdel(W) + var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) + singulo.energy = 300 //should make it a bit bigger~ + message_admins("[key_name_admin(user)] detonated a bag of holding") + log_game("[key_name(user)] detonated a bag of holding") + qdel(src) + singulo.process() + return + . = ..() + +/obj/item/weapon/storage/backpack/holding/singularity_act(current_size) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + return + + +/obj/item/weapon/storage/backpack/santabag + name = "Santa's Gift Bag" + desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" + icon_state = "giftbag0" + item_state = "giftbag" + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 60 + +/obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user) + user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") + return (OXYLOSS) + +/obj/item/weapon/storage/backpack/cultpack + name = "trophy rack" + desc = "It's useful for both carrying extra gear and proudly declaring your insanity." + icon_state = "cultpack" + item_state = "backpack" + +/obj/item/weapon/storage/backpack/clown + name = "Giggles von Honkerton" + desc = "It's a backpack made by Honk! Co." + icon_state = "clownpack" + item_state = "clownpack" + +/obj/item/weapon/storage/backpack/explorer + name = "explorer bag" + desc = "A robust backpack for stashing your loot." + icon_state = "explorerpack" + item_state = "explorerpack" + +/obj/item/weapon/storage/backpack/mime + name = "Parcel Parceaux" + desc = "A silent backpack made for those silent workers. Silence Co." + icon_state = "mimepack" + item_state = "mimepack" + +/obj/item/weapon/storage/backpack/medic + name = "medical backpack" + desc = "It's a backpack especially designed for use in a sterile environment." + icon_state = "medicalpack" + item_state = "medicalpack" + +/obj/item/weapon/storage/backpack/security + name = "security backpack" + desc = "It's a very robust backpack." + icon_state = "securitypack" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/captain + name = "captain's backpack" + desc = "It's a special backpack made exclusively for Nanotrasen officers." + icon_state = "captainpack" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/industrial + name = "industrial backpack" + desc = "It's a tough backpack for the daily grind of station life." + icon_state = "engiepack" + item_state = "engiepack" + resistance_flags = FIRE_PROOF + +/obj/item/weapon/storage/backpack/botany + name = "botany backpack" + desc = "It's a backpack made of all-natural fibers." + icon_state = "botpack" + item_state = "botpack" + +/obj/item/weapon/storage/backpack/chemistry + name = "chemistry backpack" + desc = "A backpack specially designed to repel stains and hazardous liquids." + icon_state = "chempack" + item_state = "chempack" + +/obj/item/weapon/storage/backpack/genetics + name = "genetics backpack" + desc = "A bag designed to be super tough, just in case someone hulks out on you." + icon_state = "genepack" + item_state = "genepack" + +/obj/item/weapon/storage/backpack/science + name = "science backpack" + desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." + icon_state = "toxpack" + item_state = "toxpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/virology + name = "virology backpack" + desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." + icon_state = "viropack" + item_state = "viropack" + + +/* + * Satchel Types + */ + +/obj/item/weapon/storage/backpack/satchel + name = "satchel" + desc = "A trendy looking satchel." + icon_state = "satchel-norm" + species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back + +/obj/item/weapon/storage/backpack/satchel/leather + name = "leather satchel" + desc = "It's a very fancy satchel made with fine leather." + icon_state = "satchel" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/leather/withwallet/PopulateContents() + new /obj/item/weapon/storage/wallet/random(src) + +/obj/item/weapon/storage/backpack/satchel/eng + name = "industrial satchel" + desc = "A tough satchel with extra pockets." + icon_state = "satchel-eng" + item_state = "engiepack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/med + name = "medical satchel" + desc = "A sterile satchel used in medical departments." + icon_state = "satchel-med" + item_state = "medicalpack" + +/obj/item/weapon/storage/backpack/satchel/vir + name = "virologist satchel" + desc = "A sterile satchel with virologist colours." + icon_state = "satchel-vir" + item_state = "satchel-vir" + +/obj/item/weapon/storage/backpack/satchel/chem + name = "chemist satchel" + desc = "A sterile satchel with chemist colours." + icon_state = "satchel-chem" + item_state = "satchel-chem" + +/obj/item/weapon/storage/backpack/satchel/gen + name = "geneticist satchel" + desc = "A sterile satchel with geneticist colours." + icon_state = "satchel-gen" + item_state = "satchel-gen" + +/obj/item/weapon/storage/backpack/satchel/tox + name = "scientist satchel" + desc = "Useful for holding research materials." + icon_state = "satchel-tox" + item_state = "satchel-tox" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/hyd + name = "botanist satchel" + desc = "A satchel made of all natural fibers." + icon_state = "satchel-hyd" + item_state = "satchel-hyd" + +/obj/item/weapon/storage/backpack/satchel/sec + name = "security satchel" + desc = "A robust satchel for security related needs." + icon_state = "satchel-sec" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/satchel/explorer + name = "explorer satchel" + desc = "A robust satchel for stashing your loot." + icon_state = "satchel-explorer" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/satchel/cap + name = "captain's satchel" + desc = "An exclusive satchel for Nanotrasen officers." + icon_state = "satchel-cap" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/flat + name = "smuggler's satchel" + desc = "A very slim satchel that can easily fit into tight spaces." + icon_state = "satchel-flat" + w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. + max_combined_w_class = 15 + level = 1 + cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks + +/obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact) + if(intact) + invisibility = INVISIBILITY_MAXIMUM + anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack. + icon_state = "[initial(icon_state)]2" + else + invisibility = initial(invisibility) + anchored = 0 + icon_state = initial(icon_state) + +/obj/item/weapon/storage/backpack/satchel/flat/Initialize(mapload) + ..() + SSpersistence.new_secret_satchels += src + +/obj/item/weapon/storage/backpack/satchel/flat/PopulateContents() + new /obj/item/stack/tile/plasteel(src) + new /obj/item/weapon/crowbar(src) + +/obj/item/weapon/storage/backpack/satchel/flat/Destroy() + SSpersistence.new_secret_satchels -= src + return ..() + +/obj/item/weapon/storage/backpack/satchel/flat/secret + var/list/reward_one_of_these = list() //Intended for map editing + var/list/reward_all_of_these = list() //use paths! + var/revealed = 0 + +/obj/item/weapon/storage/backpack/satchel/flat/secret/Initialize() + ..() + + if(isfloorturf(loc) && !istype(loc,/turf/open/floor/plating/)) + hide(1) + +/obj/item/weapon/storage/backpack/satchel/flat/secret/hide(intact) + ..() + if(!intact && !revealed) + if(reward_one_of_these.len > 0) + var/reward = pick(reward_one_of_these) + new reward(src) + for(var/R in reward_all_of_these) + new R(src) + revealed = 1 + +/obj/item/weapon/storage/backpack/duffelbag + name = "duffel bag" + desc = "A large duffel bag for holding extra things." + icon_state = "duffel" + item_state = "duffel" + slowdown = 1 + max_combined_w_class = 30 + +/obj/item/weapon/storage/backpack/duffelbag/captain + name = "captain's duffel bag" + desc = "A large duffel bag for holding extra captainly goods." + icon_state = "duffel-captain" + item_state = "duffel-captain" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/duffelbag/med + name = "medical duffel bag" + desc = "A large duffel bag for holding extra medical supplies." + icon_state = "duffel-med" + item_state = "duffel-med" + +/obj/item/weapon/storage/backpack/duffelbag/med/surgery + name = "surgical duffel bag" + desc = "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools." + +/obj/item/weapon/storage/backpack/duffelbag/med/surgery/PopulateContents() + new /obj/item/weapon/scalpel(src) + new /obj/item/weapon/hemostat(src) + new /obj/item/weapon/retractor(src) + new /obj/item/weapon/circular_saw(src) + new /obj/item/weapon/surgicaldrill(src) + new /obj/item/weapon/cautery(src) + new /obj/item/weapon/surgical_drapes(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/weapon/razor(src) + +/obj/item/weapon/storage/backpack/duffelbag/sec + name = "security duffel bag" + desc = "A large duffel bag for holding extra security supplies and ammunition." + icon_state = "duffel-sec" + item_state = "duffel-sec" + +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery + name = "surgical duffel bag" + desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools." + +/obj/item/weapon/storage/backpack/duffelbag/sec/surgery/PopulateContents() + new /obj/item/weapon/scalpel(src) + new /obj/item/weapon/hemostat(src) + new /obj/item/weapon/retractor(src) + new /obj/item/weapon/circular_saw(src) + new /obj/item/weapon/surgicaldrill(src) + new /obj/item/weapon/cautery(src) + new /obj/item/weapon/surgical_drapes(src) + new /obj/item/clothing/mask/surgical(src) + +/obj/item/weapon/storage/backpack/duffelbag/engineering + name = "industrial duffel bag" + desc = "A large duffel bag for holding extra tools and supplies." + icon_state = "duffel-eng" + item_state = "duffel-eng" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/duffelbag/drone + name = "drone duffel bag" + desc = "A large duffel bag for holding tools and hats." + icon_state = "duffel-drone" + item_state = "duffel-drone" + resistance_flags = FIRE_PROOF + +/obj/item/weapon/storage/backpack/duffelbag/drone/PopulateContents() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/stack/cable_coil/random(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/multitool(src) + +/obj/item/weapon/storage/backpack/duffelbag/clown + name = "clown's duffel bag" + desc = "A large duffel bag for holding lots of funny gags!" + icon_state = "duffel-clown" + item_state = "duffel-clown" + +/obj/item/weapon/storage/backpack/duffelbag/clown/cream_pie/PopulateContents() + for(var/i in 1 to 10) + new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie + name = "suspicious looking duffel bag" + desc = "A large duffel bag for holding extra tactical supplies." + icon_state = "duffel-syndie" + item_state = "duffel-syndie" + origin_tech = "syndicate=1" + silent = 1 + slowdown = 0 + +/obj/item/weapon/storage/backpack/duffelbag/syndie/hitman + desc = "A large duffel bag for holding extra things. There is a NanoTrasen logo on the back." + icon_state = "duffel-syndieammo" + item_state = "duffel-syndieammo" + +/obj/item/weapon/storage/backpack/duffelbag/syndie/hitman/PopulateContents() + new /obj/item/clothing/under/lawyer/blacksuit(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/suit/toggle/lawyer/black(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/head/fedora(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med + name = "medical duffel bag" + desc = "A large duffel bag for holding extra tactical medical supplies." + icon_state = "duffel-syndiemed" + item_state = "duffel-syndiemed" + +/obj/item/weapon/storage/backpack/duffelbag/syndie/surgery + name = "surgery duffel bag" + desc = "A suspicious looking duffel bag for holding surgery tools." + icon_state = "duffel-syndiemed" + item_state = "duffel-syndiemed" + +/obj/item/weapon/storage/backpack/duffelbag/syndie/surgery/PopulateContents() + new /obj/item/weapon/scalpel(src) + new /obj/item/weapon/hemostat(src) + new /obj/item/weapon/retractor(src) + new /obj/item/weapon/circular_saw(src) + new /obj/item/weapon/surgicaldrill(src) + new /obj/item/weapon/cautery(src) + new /obj/item/weapon/surgical_drapes(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/mask/muzzle(src) + new /obj/item/device/mmi/syndie(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo + name = "ammunition duffel bag" + desc = "A large duffel bag for holding extra weapons ammunition and supplies." + icon_state = "duffel-syndieammo" + item_state = "duffel-syndieammo" + +/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/shotgun + desc = "A large duffel bag, packed to the brim with Bulldog shotgun ammo." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/ammo_box/magazine/m12g/slug(src) + new /obj/item/ammo_box/magazine/m12g/dragon(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/smg + desc = "A large duffel bag, packed to the brim with C20r magazines." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents() + for(var/i in 1 to 9) + new /obj/item/ammo_box/magazine/smgm45(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/c20rbundle + desc = "A large duffel bag containing a C20r, some magazines, and a cheap looking suppressor." + +/obj/item/weapon/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/weapon/gun/ballistic/automatic/c20r(src) + new /obj/item/weapon/suppressor/specialoffer(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/bulldogbundle + desc = "A large duffel bag containing a Bulldog, several drums, and a collapsed hardsuit." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents() + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle + desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/weapon/storage/firstaid/tactical(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle + desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/weapon/storage/firstaid/tactical(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/bioterrorbundle + desc = "A large duffel bag containing a deadly chemicals, a chemical spray, chemical grenade, a Donksoft assault rifle, riot grade darts, a minature syringe gun, and a box of syringes" + +/obj/item/weapon/storage/backpack/duffelbag/syndie/med/bioterrorbundle/PopulateContents() + new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) + new /obj/item/weapon/storage/box/syndie_kit/chemical(src) + new /obj/item/weapon/gun/syringe/syndicate(src) + new /obj/item/weapon/gun/ballistic/automatic/c20r/toy(src) + new /obj/item/weapon/storage/box/syringes(src) + new /obj/item/ammo_box/foambox/riot(src) + new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/c4/PopulateContents() + for(var/i in 1 to 10) + new /obj/item/weapon/grenade/plastic/c4(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/x4/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/weapon/grenade/plastic/x4(src) + +/obj/item/weapon/storage/backpack/duffelbag/syndie/firestarter + desc = "A large duffel bag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." + +/obj/item/weapon/storage/backpack/duffelbag/syndie/firestarter/PopulateContents() + new /obj/item/clothing/under/syndicate/soviet(src) + new /obj/item/weapon/watertank/operator(src) + new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol/APS(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src) + new /obj/item/weapon/reagent_containers/syringe/stimulants(src) + new /obj/item/weapon/grenade/syndieminibomb(src) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 9b96571d6f..e61a0a8ad4 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -1,378 +1,378 @@ -/* - * These absorb the functionality of the plant bag, ore satchel, etc. - * They use the use_to_pickup, quick_gather, and quick_empty functions - * that were already defined in weapon/storage, but which had been - * re-implemented in other classes. - * - * Contains: - * Trash Bag - * Mining Satchel - * Plant Bag - * Sheet Snatcher - * Book Bag - * Biowaste Bag - * - * -Sayu - */ - -// Generic non-item -/obj/item/weapon/storage/bag - allow_quick_gather = 1 - allow_quick_empty = 1 - display_contents_with_number = 1 // should work fine now - use_to_pickup = 1 - slot_flags = SLOT_BELT - -// ----------------------------- -// Trash bag -// ----------------------------- -/obj/item/weapon/storage/bag/trash - name = "trash bag" - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!" - icon = 'icons/obj/janitor.dmi' - icon_state = "trashbag" - item_state = "trashbag" - - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 30 - storage_slots = 30 - can_hold = list() // any - cant_hold = list(/obj/item/weapon/disk/nuclear) - -/obj/item/weapon/storage/bag/trash/suicide_act(mob/user) - user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!") - playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1) - return (TOXLOSS) - -/obj/item/weapon/storage/bag/trash/update_icon() - if(contents.len == 0) - icon_state = "[initial(icon_state)]" - else if(contents.len < 12) - icon_state = "[initial(icon_state)]1" - else if(contents.len < 21) - icon_state = "[initial(icon_state)]2" - else icon_state = "[initial(icon_state)]3" - -/obj/item/weapon/storage/bag/trash/cyborg - -/obj/item/weapon/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) - J.put_in_cart(src, user) - J.mybag=src - J.update_icon() - -/obj/item/weapon/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - -/obj/item/weapon/storage/bag/trash/bluespace - name = "trash bag of holding" - desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." - icon_state = "bluetrashbag" - origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3" - max_combined_w_class = 60 - storage_slots = 60 - -// ----------------------------- -// Mining Satchel -// ----------------------------- - -/obj/item/weapon/storage/bag/ore - name = "mining satchel" - desc = "This little bugger can be used to store and transport ores." - icon = 'icons/obj/mining.dmi' - icon_state = "satchel" - origin_tech = "engineering=2" - slot_flags = SLOT_BELT | SLOT_POCKET - w_class = WEIGHT_CLASS_NORMAL - storage_slots = 50 - max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list(/obj/item/weapon/ore) - -/obj/item/weapon/storage/bag/ore/cyborg - name = "cyborg mining satchel" - -/obj/item/weapon/storage/bag/ore/holding //miners, your messiah has arrived - name = "mining satchel of holding" - desc = "A revolution in convenience, this satchel allows for huge amounts of ore storage. It's been outfitted with anti-malfunction safety measures." - storage_slots = INFINITY - max_combined_w_class = INFINITY - origin_tech = "bluespace=4;materials=3;engineering=3" - icon_state = "satchel_bspace" - -// ----------------------------- -// Plant bag -// ----------------------------- - -/obj/item/weapon/storage/bag/plants - name = "plant bag" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "plantbag" - storage_slots = 100; //the number of plant pieces it can carry. - max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class - max_w_class = WEIGHT_CLASS_NORMAL - w_class = WEIGHT_CLASS_TINY - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora,/obj/item/weapon/reagent_containers/honeycomb) - resistance_flags = FLAMMABLE - -//////// - -/obj/item/weapon/storage/bag/plants/portaseeder - name = "portable seed extractor" - desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." - icon_state = "portaseeder" - origin_tech = "biotech=3;engineering=2" - -/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents() - set name = "Activate Seed Extraction" - set category = "Object" - set desc = "Activate to convert your plants into plantable seeds." - if(usr.stat || !usr.canmove || usr.restrained()) - return - for(var/obj/item/O in contents) - seedify(O, 1) - close_all() - - -// ----------------------------- -// Sheet Snatcher -// ----------------------------- -// Because it stacks stacks, this doesn't operate normally. -// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu - -/obj/item/weapon/storage/bag/sheetsnatcher - name = "sheet snatcher" - desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." - icon = 'icons/obj/mining.dmi' - icon_state = "sheetsnatcher" - - var/capacity = 300; //the number of sheets it can carry. - w_class = WEIGHT_CLASS_NORMAL - - allow_quick_empty = 1 // this function is superceded - -/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W, stop_messages = 0) - if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/mineral/wood)) - if(!stop_messages) - to_chat(usr, "The snatcher does not accept [W].") - return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu - var/current = 0 - for(var/obj/item/stack/sheet/S in contents) - current += S.amount - if(capacity == current)//If it's full, you're done - if(!stop_messages) - to_chat(usr, "The snatcher is full.") - return 0 - return 1 - - -// Modified handle_item_insertion. Would prefer not to, but... -/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W, prevent_warning = 0) - var/obj/item/stack/sheet/S = W - if(!istype(S)) return 0 - - var/amount - var/inserted = 0 - var/current = 0 - for(var/obj/item/stack/sheet/S2 in contents) - current += S2.amount - if(capacity < current + S.amount)//If the stack will fill it up - amount = capacity - current - else - amount = S.amount - - for(var/obj/item/stack/sheet/sheet in contents) - if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects - sheet.amount += amount // they should only be removed through procs in this file, which split them up. - S.amount -= amount - inserted = 1 - break - - if(!inserted || !S.amount) - usr.dropItemToGround(S) - if (usr.client && usr.s_active != src) - usr.client.screen -= S - S.dropped(usr) - if(!S.amount) - qdel(S) - else - if(S.pulledby) - S.pulledby.stop_pulling() - S.loc = src - - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - return 1 - - -// Sets up numbered display to show the stack size of each stored mineral -// NOTE: numbered display is turned off currently because it's broken -/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user) - var/adjusted_contents = contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/stack/sheet/I in contents) - adjusted_contents++ - var/datum/numbered_display/D = new/datum/numbered_display(I) - D.number = I.amount - numbered_contents.Add( D ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - src.standard_orient_objs(row_num, col_count, numbered_contents) - return - - -// Modified quick_empty verb drops appropriate sized stacks -/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty() - var/location = get_turf(src) - for(var/obj/item/stack/sheet/S in contents) - while(S.amount) - var/obj/item/stack/sheet/N = new S.type(location) - var/stacksize = min(S.amount,N.max_amount) - N.amount = stacksize - S.amount -= stacksize - if(!S.amount) - qdel(S)// todo: there's probably something missing here - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - -// Instead of removing -/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W, atom/new_location) - var/obj/item/stack/sheet/S = W - if(!istype(S)) return 0 - - //I would prefer to drop a new stack, but the item/attack_hand code - // that calls this can't recieve a different object than you clicked on. - //Therefore, make a new stack internally that has the remainder. - // -Sayu - - if(S.amount > S.max_amount) - var/obj/item/stack/sheet/temp = new S.type(src) - temp.amount = S.amount - S.max_amount - S.amount = S.max_amount - - return ..(S,new_location) - -// ----------------------------- -// Sheet Snatcher (Cyborg) -// ----------------------------- - -/obj/item/weapon/storage/bag/sheetsnatcher/borg - name = "sheet snatcher 9000" - desc = "" - capacity = 500//Borgs get more because >specialization - - -// ----------------------------- -// Book bag -// ----------------------------- - -/obj/item/weapon/storage/bag/books - name = "book bag" - desc = "A bag for books." - icon = 'icons/obj/library.dmi' - icon_state = "bookbag" - display_contents_with_number = 0 //This would look really stupid otherwise - storage_slots = 7 - max_combined_w_class = 21 - max_w_class = WEIGHT_CLASS_NORMAL - w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics - can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook) - resistance_flags = FLAMMABLE - -/* - * Trays - Agouri - */ -/obj/item/weapon/storage/bag/tray - name = "tray" - icon = 'icons/obj/food/containers.dmi' - icon_state = "tray" - desc = "A metal tray to lay food on." - force = 5 - throwforce = 10 - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - materials = list(MAT_METAL=3000) - preposition = "on" - -/obj/item/weapon/storage/bag/tray/attack(mob/living/M, mob/living/user) - ..() - // Drop all the things. All of them. - var/list/obj/item/oldContents = contents.Copy() - quick_empty() - - // Make each item scatter a bit - for(var/obj/item/I in oldContents) - spawn() - for(var/i = 1, i <= rand(1,2), i++) - if(I) - step(I, pick(NORTH,SOUTH,EAST,WEST)) - sleep(rand(2,4)) - - if(prob(50)) - playsound(M, 'sound/items/trayhit1.ogg', 50, 1) - else - playsound(M, 'sound/items/trayhit2.ogg', 50, 1) - - if(ishuman(M) || ismonkey(M)) - if(prob(10)) - M.Weaken(2) - -/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays() - cut_overlays() - for(var/obj/item/I in contents) +/* + * These absorb the functionality of the plant bag, ore satchel, etc. + * They use the use_to_pickup, quick_gather, and quick_empty functions + * that were already defined in weapon/storage, but which had been + * re-implemented in other classes. + * + * Contains: + * Trash Bag + * Mining Satchel + * Plant Bag + * Sheet Snatcher + * Book Bag + * Biowaste Bag + * + * -Sayu + */ + +// Generic non-item +/obj/item/weapon/storage/bag + allow_quick_gather = 1 + allow_quick_empty = 1 + display_contents_with_number = 1 // should work fine now + use_to_pickup = 1 + slot_flags = SLOT_BELT + +// ----------------------------- +// Trash bag +// ----------------------------- +/obj/item/weapon/storage/bag/trash + name = "trash bag" + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!" + icon = 'icons/obj/janitor.dmi' + icon_state = "trashbag" + item_state = "trashbag" + + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_SMALL + max_combined_w_class = 30 + storage_slots = 30 + can_hold = list() // any + cant_hold = list(/obj/item/weapon/disk/nuclear) + +/obj/item/weapon/storage/bag/trash/suicide_act(mob/user) + user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!") + playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1) + return (TOXLOSS) + +/obj/item/weapon/storage/bag/trash/update_icon() + if(contents.len == 0) + icon_state = "[initial(icon_state)]" + else if(contents.len < 12) + icon_state = "[initial(icon_state)]1" + else if(contents.len < 21) + icon_state = "[initial(icon_state)]2" + else icon_state = "[initial(icon_state)]3" + +/obj/item/weapon/storage/bag/trash/cyborg + +/obj/item/weapon/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) + J.put_in_cart(src, user) + J.mybag=src + J.update_icon() + +/obj/item/weapon/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return + +/obj/item/weapon/storage/bag/trash/bluespace + name = "trash bag of holding" + desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." + icon_state = "bluetrashbag" + origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3" + max_combined_w_class = 60 + storage_slots = 60 + +// ----------------------------- +// Mining Satchel +// ----------------------------- + +/obj/item/weapon/storage/bag/ore + name = "mining satchel" + desc = "This little bugger can be used to store and transport ores." + icon = 'icons/obj/mining.dmi' + icon_state = "satchel" + origin_tech = "engineering=2" + slot_flags = SLOT_BELT | SLOT_POCKET + w_class = WEIGHT_CLASS_NORMAL + storage_slots = 50 + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = WEIGHT_CLASS_NORMAL + can_hold = list(/obj/item/weapon/ore) + +/obj/item/weapon/storage/bag/ore/cyborg + name = "cyborg mining satchel" + +/obj/item/weapon/storage/bag/ore/holding //miners, your messiah has arrived + name = "mining satchel of holding" + desc = "A revolution in convenience, this satchel allows for huge amounts of ore storage. It's been outfitted with anti-malfunction safety measures." + storage_slots = INFINITY + max_combined_w_class = INFINITY + origin_tech = "bluespace=4;materials=3;engineering=3" + icon_state = "satchel_bspace" + +// ----------------------------- +// Plant bag +// ----------------------------- + +/obj/item/weapon/storage/bag/plants + name = "plant bag" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "plantbag" + storage_slots = 100; //the number of plant pieces it can carry. + max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_TINY + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/honeycomb) + resistance_flags = FLAMMABLE + +//////// + +/obj/item/weapon/storage/bag/plants/portaseeder + name = "portable seed extractor" + desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." + icon_state = "portaseeder" + origin_tech = "biotech=3;engineering=2" + +/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents() + set name = "Activate Seed Extraction" + set category = "Object" + set desc = "Activate to convert your plants into plantable seeds." + if(usr.stat || !usr.canmove || usr.restrained()) + return + for(var/obj/item/O in contents) + seedify(O, 1) + close_all() + + +// ----------------------------- +// Sheet Snatcher +// ----------------------------- +// Because it stacks stacks, this doesn't operate normally. +// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu + +/obj/item/weapon/storage/bag/sheetsnatcher + name = "sheet snatcher" + desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." + icon = 'icons/obj/mining.dmi' + icon_state = "sheetsnatcher" + + var/capacity = 300; //the number of sheets it can carry. + w_class = WEIGHT_CLASS_NORMAL + + allow_quick_empty = 1 // this function is superceded + +/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W, stop_messages = 0) + if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/mineral/wood)) + if(!stop_messages) + to_chat(usr, "The snatcher does not accept [W].") + return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu + var/current = 0 + for(var/obj/item/stack/sheet/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + to_chat(usr, "The snatcher is full.") + return 0 + return 1 + + +// Modified handle_item_insertion. Would prefer not to, but... +/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W, prevent_warning = 0) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/sheet/S2 in contents) + current += S2.amount + if(capacity < current + S.amount)//If the stack will fill it up + amount = capacity - current + else + amount = S.amount + + for(var/obj/item/stack/sheet/sheet in contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + usr.dropItemToGround(S) + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + qdel(S) + else + if(S.pulledby) + S.pulledby.stop_pulling() + S.loc = src + + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + return 1 + + +// Sets up numbered display to show the stack size of each stored mineral +// NOTE: numbered display is turned off currently because it's broken +/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/sheet/I in contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.standard_orient_objs(row_num, col_count, numbered_contents) + return + + +// Modified quick_empty verb drops appropriate sized stacks +/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty() + var/location = get_turf(src) + for(var/obj/item/stack/sheet/S in contents) + while(S.amount) + var/obj/item/stack/sheet/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + qdel(S)// todo: there's probably something missing here + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + +// Instead of removing +/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W, atom/new_location) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + //I would prefer to drop a new stack, but the item/attack_hand code + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu + + if(S.amount > S.max_amount) + var/obj/item/stack/sheet/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount + + return ..(S,new_location) + +// ----------------------------- +// Sheet Snatcher (Cyborg) +// ----------------------------- + +/obj/item/weapon/storage/bag/sheetsnatcher/borg + name = "sheet snatcher 9000" + desc = "" + capacity = 500//Borgs get more because >specialization + + +// ----------------------------- +// Book bag +// ----------------------------- + +/obj/item/weapon/storage/bag/books + name = "book bag" + desc = "A bag for books." + icon = 'icons/obj/library.dmi' + icon_state = "bookbag" + display_contents_with_number = 0 //This would look really stupid otherwise + storage_slots = 7 + max_combined_w_class = 21 + max_w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics + can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook) + resistance_flags = FLAMMABLE + +/* + * Trays - Agouri + */ +/obj/item/weapon/storage/bag/tray + name = "tray" + icon = 'icons/obj/food/containers.dmi' + icon_state = "tray" + desc = "A metal tray to lay food on." + force = 5 + throwforce = 10 + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + materials = list(MAT_METAL=3000) + preposition = "on" + +/obj/item/weapon/storage/bag/tray/attack(mob/living/M, mob/living/user) + ..() + // Drop all the things. All of them. + var/list/obj/item/oldContents = contents.Copy() + quick_empty() + + // Make each item scatter a bit + for(var/obj/item/I in oldContents) + spawn() + for(var/i = 1, i <= rand(1,2), i++) + if(I) + step(I, pick(NORTH,SOUTH,EAST,WEST)) + sleep(rand(2,4)) + + if(prob(50)) + playsound(M, 'sound/items/trayhit1.ogg', 50, 1) + else + playsound(M, 'sound/items/trayhit2.ogg', 50, 1) + + if(ishuman(M) || ismonkey(M)) + if(prob(10)) + M.Knockdown(40) + +/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays() + cut_overlays() + for(var/obj/item/I in contents) add_overlay(mutable_appearance(I.icon, I.icon_state)) - -/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location) - ..() - rebuild_overlays() - -/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0) + +/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location) + ..() + rebuild_overlays() + +/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0) add_overlay(mutable_appearance(I.icon, I.icon_state)) - . = ..() - - -/* - * Chemistry bag - */ - -/obj/item/weapon/storage/bag/chemistry - name = "chemistry bag" - icon = 'icons/obj/chemical.dmi' - icon_state = "bag" - desc = "A bag for storing pills, patches, and bottles." - storage_slots = 50 - max_combined_w_class = 200 - w_class = WEIGHT_CLASS_TINY - preposition = "in" - can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) - resistance_flags = FLAMMABLE - -/* - * Biowaste bag (mostly for xenobiologists) - */ - -/obj/item/weapon/storage/bag/bio - name = "bio bag" - icon = 'icons/obj/chemical.dmi' - icon_state = "biobag" - desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." - storage_slots = 25 - max_combined_w_class = 200 - w_class = WEIGHT_CLASS_TINY - preposition = "in" - can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse, /obj/item/weapon/reagent_containers/food/snacks/monkeycube) - resistance_flags = FLAMMABLE + . = ..() + + +/* + * Chemistry bag + */ + +/obj/item/weapon/storage/bag/chemistry + name = "chemistry bag" + icon = 'icons/obj/chemical.dmi' + icon_state = "bag" + desc = "A bag for storing pills, patches, and bottles." + storage_slots = 50 + max_combined_w_class = 200 + w_class = WEIGHT_CLASS_TINY + preposition = "in" + can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) + resistance_flags = FLAMMABLE + +/* + * Biowaste bag (mostly for xenobiologists) + */ + +/obj/item/weapon/storage/bag/bio + name = "bio bag" + icon = 'icons/obj/chemical.dmi' + icon_state = "biobag" + desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." + storage_slots = 25 + max_combined_w_class = 200 + w_class = WEIGHT_CLASS_TINY + preposition = "in" + can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse, /obj/item/weapon/reagent_containers/food/snacks/monkeycube) + resistance_flags = FLAMMABLE diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 055eb7eb0c..0237348fea 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -1,67 +1,67 @@ -/obj/item/weapon/storage/belt - name = "belt" - desc = "Can hold various things." - icon = 'icons/obj/clothing/belts.dmi' - icon_state = "utilitybelt" - item_state = "utility" - slot_flags = SLOT_BELT - attack_verb = list("whipped", "lashed", "disciplined") - obj_integrity = 300 - max_integrity = 300 - -/obj/item/weapon/storage/belt/update_icon() - cut_overlays() - for(var/obj/item/I in contents) - add_overlay("[I.name]") - ..() - -/obj/item/weapon/storage/belt/utility - name = "toolbelt" //Carn: utility belt is nicer, but it bamboozles the text parsing. - desc = "Holds tools." - icon_state = "utilitybelt" - item_state = "utility" - can_hold = list( - /obj/item/weapon/crowbar, - /obj/item/weapon/screwdriver, - /obj/item/weapon/weldingtool, - /obj/item/weapon/wirecutters, - /obj/item/weapon/wrench, - /obj/item/device/multitool, - /obj/item/device/flashlight, - /obj/item/stack/cable_coil, - /obj/item/device/t_scanner, - /obj/item/device/analyzer, - /obj/item/weapon/extinguisher/mini, - /obj/item/device/radio, - /obj/item/clothing/gloves - ) - -/obj/item/weapon/storage/belt/utility/chief - name = "Chief Engineer's toolbelt" - desc = "Holds tools, looks snazzy" - icon_state = "utilitybelt_ce" - item_state = "utility_ce" - -/obj/item/weapon/storage/belt/utility/chief/full/PopulateContents() - new /obj/item/weapon/screwdriver/power(src) - new /obj/item/weapon/crowbar/power(src) - new /obj/item/weapon/weldingtool/experimental(src)//This can be changed if this is too much - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) - new /obj/item/weapon/extinguisher/mini(src) - new /obj/item/device/analyzer(src) - //much roomier now that we've managed to remove two tools - - -/obj/item/weapon/storage/belt/utility/full/PopulateContents() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) - +/obj/item/weapon/storage/belt + name = "belt" + desc = "Can hold various things." + icon = 'icons/obj/clothing/belts.dmi' + icon_state = "utilitybelt" + item_state = "utility" + slot_flags = SLOT_BELT + attack_verb = list("whipped", "lashed", "disciplined") + obj_integrity = 300 + max_integrity = 300 + +/obj/item/weapon/storage/belt/update_icon() + cut_overlays() + for(var/obj/item/I in contents) + add_overlay("[I.name]") + ..() + +/obj/item/weapon/storage/belt/utility + name = "toolbelt" //Carn: utility belt is nicer, but it bamboozles the text parsing. + desc = "Holds tools." + icon_state = "utilitybelt" + item_state = "utility" + can_hold = list( + /obj/item/weapon/crowbar, + /obj/item/weapon/screwdriver, + /obj/item/weapon/weldingtool, + /obj/item/weapon/wirecutters, + /obj/item/weapon/wrench, + /obj/item/device/multitool, + /obj/item/device/flashlight, + /obj/item/stack/cable_coil, + /obj/item/device/t_scanner, + /obj/item/device/analyzer, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio, + /obj/item/clothing/gloves + ) + +/obj/item/weapon/storage/belt/utility/chief + name = "Chief Engineer's toolbelt" + desc = "Holds tools, looks snazzy" + icon_state = "utilitybelt_ce" + item_state = "utility_ce" + +/obj/item/weapon/storage/belt/utility/chief/full/PopulateContents() + new /obj/item/weapon/screwdriver/power(src) + new /obj/item/weapon/crowbar/power(src) + new /obj/item/weapon/weldingtool/experimental(src)//This can be changed if this is too much + new /obj/item/device/multitool(src) + new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) + new /obj/item/weapon/extinguisher/mini(src) + new /obj/item/device/analyzer(src) + //much roomier now that we've managed to remove two tools + + +/obj/item/weapon/storage/belt/utility/full/PopulateContents() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/multitool(src) + new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) + /obj/item/weapon/storage/belt/utility/full/engi/PopulateContents() new /obj/item/weapon/screwdriver(src) new /obj/item/weapon/wrench(src) @@ -71,443 +71,443 @@ new /obj/item/device/multitool(src) new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) - -/obj/item/weapon/storage/belt/utility/atmostech/PopulateContents() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/t_scanner(src) - new /obj/item/weapon/extinguisher/mini(src) - - - -/obj/item/weapon/storage/belt/medical - name = "medical belt" - desc = "Can hold various medical equipment." - icon_state = "medicalbelt" - item_state = "medical" - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( - /obj/item/device/healthanalyzer, - /obj/item/weapon/dnainjector, - /obj/item/weapon/reagent_containers/dropper, - /obj/item/weapon/reagent_containers/glass/beaker, - /obj/item/weapon/reagent_containers/glass/bottle, - /obj/item/weapon/reagent_containers/pill, - /obj/item/weapon/reagent_containers/syringe, - /obj/item/weapon/lighter, - /obj/item/weapon/storage/fancy/cigarettes, - /obj/item/weapon/storage/pill_bottle, - /obj/item/stack/medical, - /obj/item/device/flashlight/pen, - /obj/item/weapon/extinguisher/mini, - /obj/item/weapon/reagent_containers/hypospray, - /obj/item/device/sensor_device, - /obj/item/device/radio, - /obj/item/clothing/gloves/, - /obj/item/weapon/lazarus_injector, - /obj/item/weapon/bikehorn/rubberducky, - /obj/item/clothing/mask/surgical, - /obj/item/clothing/mask/breath, - /obj/item/clothing/mask/breath/medical, - /obj/item/weapon/surgical_drapes, //for true paramedics - /obj/item/weapon/scalpel, - /obj/item/weapon/circular_saw, - /obj/item/weapon/surgicaldrill, - /obj/item/weapon/retractor, - /obj/item/weapon/cautery, - /obj/item/weapon/hemostat, - /obj/item/device/geiger_counter, - /obj/item/clothing/neck/stethoscope, - /obj/item/weapon/stamp, - /obj/item/clothing/glasses, - /obj/item/weapon/wrench/medical, - /obj/item/clothing/mask/muzzle, - /obj/item/weapon/storage/bag/chemistry, - /obj/item/weapon/storage/bag/bio, - /obj/item/weapon/reagent_containers/blood, - /obj/item/weapon/tank/internals/emergency_oxygen - ) - - -/obj/item/weapon/storage/belt/security - name = "security belt" - desc = "Can hold security gear like handcuffs and flashes." - icon_state = "securitybelt" - item_state = "security"//Could likely use a better one. - storage_slots = 5 - max_w_class = WEIGHT_CLASS_NORMAL //Because the baton wouldn't fit otherwise. - Neerti - can_hold = list( - /obj/item/weapon/melee/baton, - /obj/item/weapon/melee/classic_baton, - /obj/item/weapon/grenade, - /obj/item/weapon/reagent_containers/spray/pepper, - /obj/item/weapon/restraints/handcuffs, - /obj/item/device/assembly/flash/handheld, - /obj/item/clothing/glasses, - /obj/item/ammo_casing/shotgun, - /obj/item/ammo_box, - /obj/item/weapon/reagent_containers/food/snacks/donut, - /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, - /obj/item/weapon/kitchen/knife/combat, - /obj/item/device/flashlight/seclite, - /obj/item/weapon/melee/classic_baton/telescopic, - /obj/item/device/radio, - /obj/item/clothing/gloves/, - /obj/item/weapon/restraints/legcuffs/bola - ) - -/obj/item/weapon/storage/belt/security/full/PopulateContents() - new /obj/item/weapon/reagent_containers/spray/pepper(src) - new /obj/item/weapon/restraints/handcuffs(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/device/assembly/flash/handheld(src) - new /obj/item/weapon/melee/baton/loaded(src) - update_icon() - - -/obj/item/weapon/storage/belt/mining - name = "explorer's webbing" - desc = "A versatile chest rig, cherished by miners and hunters alike." - icon_state = "explorer1" - item_state = "explorer1" - storage_slots = 6 - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY //Pickaxes are big. - max_combined_w_class = 20 //Not an issue with this whitelist, probably. - can_hold = list( - /obj/item/weapon/crowbar, - /obj/item/weapon/screwdriver, - /obj/item/weapon/weldingtool, - /obj/item/weapon/wirecutters, - /obj/item/weapon/wrench, - /obj/item/device/flashlight, - /obj/item/stack/cable_coil, - /obj/item/device/analyzer, - /obj/item/weapon/extinguisher/mini, - /obj/item/device/radio, - /obj/item/clothing/gloves, - /obj/item/weapon/resonator, - /obj/item/device/mining_scanner, - /obj/item/weapon/pickaxe, - /obj/item/stack/sheet/animalhide, - /obj/item/stack/sheet/sinew, - /obj/item/stack/sheet/bone, - /obj/item/weapon/lighter, - /obj/item/weapon/storage/fancy/cigarettes, - /obj/item/weapon/reagent_containers/food/drinks/bottle, - /obj/item/stack/medical, - /obj/item/weapon/kitchen/knife, - /obj/item/weapon/reagent_containers/hypospray, - /obj/item/device/gps, - /obj/item/weapon/storage/bag/ore, - /obj/item/weapon/survivalcapsule, - /obj/item/device/t_scanner/adv_mining_scanner, - /obj/item/weapon/reagent_containers/pill, - /obj/item/weapon/storage/pill_bottle, - /obj/item/weapon/ore, - /obj/item/weapon/reagent_containers/food/drinks, - /obj/item/organ/regenerative_core, - /obj/item/device/wormhole_jaunter, - /obj/item/weapon/storage/bag/plants, - /obj/item/stack/marker_beacon - ) - - -/obj/item/weapon/storage/belt/mining/vendor - contents = newlist(/obj/item/weapon/survivalcapsule) - -/obj/item/weapon/storage/belt/mining/alt - icon_state = "explorer2" - item_state = "explorer2" - -/obj/item/weapon/storage/belt/mining/primitive - name = "hunter's belt" - desc = "A versatile belt, woven from sinew." - storage_slots = 5 - icon_state = "ebelt" - item_state = "ebelt" - -/obj/item/weapon/storage/belt/soulstone - name = "soul stone belt" - desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away" - icon_state = "soulstonebelt" - item_state = "soulstonebelt" - storage_slots = 6 - can_hold = list( - /obj/item/device/soulstone - ) - -/obj/item/weapon/storage/belt/soulstone/full/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/device/soulstone(src) - -/obj/item/weapon/storage/belt/champion - name = "championship belt" - desc = "Proves to the world that you are the strongest!" - icon_state = "championbelt" - item_state = "champion" - materials = list(MAT_GOLD=400) - storage_slots = 1 - can_hold = list( - /obj/item/clothing/mask/luchador - ) - -/obj/item/weapon/storage/belt/military - name = "chest rig" - desc = "A set of tactical webbing worn by Syndicate boarding parties." - icon_state = "militarywebbing" - item_state = "militarywebbing" - max_w_class = WEIGHT_CLASS_SMALL - -/obj/item/weapon/storage/belt/military/abductor - name = "agent belt" - desc = "A belt used by abductor agents." - icon = 'icons/obj/abductor.dmi' - icon_state = "belt" - item_state = "security" - -/obj/item/weapon/storage/belt/military/abductor/full/PopulateContents() - new /obj/item/weapon/screwdriver/abductor(src) - new /obj/item/weapon/wrench/abductor(src) - new /obj/item/weapon/weldingtool/abductor(src) - new /obj/item/weapon/crowbar/abductor(src) - new /obj/item/weapon/wirecutters/abductor(src) - new /obj/item/device/multitool/abductor(src) - new /obj/item/stack/cable_coil(src,30,"white") - - -/obj/item/weapon/storage/belt/military/army - name = "army belt" - desc = "A belt used by military forces." - icon_state = "grenadebeltold" - item_state = "security" - -/obj/item/weapon/storage/belt/military/assault - name = "assault belt" - desc = "A tactical assault belt." - icon_state = "assaultbelt" - item_state = "security" - storage_slots = 6 - -/obj/item/weapon/storage/belt/grenade - name = "grenadier belt" - desc = "A belt for holding grenades." - icon_state = "grenadebeltnew" - item_state = "security" - max_w_class = WEIGHT_CLASS_BULKY + +/obj/item/weapon/storage/belt/utility/atmostech/PopulateContents() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/t_scanner(src) + new /obj/item/weapon/extinguisher/mini(src) + + + +/obj/item/weapon/storage/belt/medical + name = "medical belt" + desc = "Can hold various medical equipment." + icon_state = "medicalbelt" + item_state = "medical" + max_w_class = WEIGHT_CLASS_BULKY + can_hold = list( + /obj/item/device/healthanalyzer, + /obj/item/weapon/dnainjector, + /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/glass/bottle, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/reagent_containers/syringe, + /obj/item/weapon/lighter, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/pill_bottle, + /obj/item/stack/medical, + /obj/item/device/flashlight/pen, + /obj/item/weapon/extinguisher/mini, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/sensor_device, + /obj/item/device/radio, + /obj/item/clothing/gloves/, + /obj/item/weapon/lazarus_injector, + /obj/item/weapon/bikehorn/rubberducky, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath/medical, + /obj/item/weapon/surgical_drapes, //for true paramedics + /obj/item/weapon/scalpel, + /obj/item/weapon/circular_saw, + /obj/item/weapon/surgicaldrill, + /obj/item/weapon/retractor, + /obj/item/weapon/cautery, + /obj/item/weapon/hemostat, + /obj/item/device/geiger_counter, + /obj/item/clothing/neck/stethoscope, + /obj/item/weapon/stamp, + /obj/item/clothing/glasses, + /obj/item/weapon/wrench/medical, + /obj/item/clothing/mask/muzzle, + /obj/item/weapon/storage/bag/chemistry, + /obj/item/weapon/storage/bag/bio, + /obj/item/weapon/reagent_containers/blood, + /obj/item/weapon/tank/internals/emergency_oxygen + ) + + +/obj/item/weapon/storage/belt/security + name = "security belt" + desc = "Can hold security gear like handcuffs and flashes." + icon_state = "securitybelt" + item_state = "security"//Could likely use a better one. + storage_slots = 5 + max_w_class = WEIGHT_CLASS_NORMAL //Because the baton wouldn't fit otherwise. - Neerti + can_hold = list( + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/classic_baton, + /obj/item/weapon/grenade, + /obj/item/weapon/reagent_containers/spray/pepper, + /obj/item/weapon/restraints/handcuffs, + /obj/item/device/assembly/flash/handheld, + /obj/item/clothing/glasses, + /obj/item/ammo_casing/shotgun, + /obj/item/ammo_box, + /obj/item/weapon/reagent_containers/food/snacks/donut, + /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, + /obj/item/weapon/kitchen/knife/combat, + /obj/item/device/flashlight/seclite, + /obj/item/weapon/melee/classic_baton/telescopic, + /obj/item/device/radio, + /obj/item/clothing/gloves/, + /obj/item/weapon/restraints/legcuffs/bola + ) + +/obj/item/weapon/storage/belt/security/full/PopulateContents() + new /obj/item/weapon/reagent_containers/spray/pepper(src) + new /obj/item/weapon/restraints/handcuffs(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/weapon/melee/baton/loaded(src) + update_icon() + + +/obj/item/weapon/storage/belt/mining + name = "explorer's webbing" + desc = "A versatile chest rig, cherished by miners and hunters alike." + icon_state = "explorer1" + item_state = "explorer1" + storage_slots = 6 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_BULKY //Pickaxes are big. + max_combined_w_class = 20 //Not an issue with this whitelist, probably. + can_hold = list( + /obj/item/weapon/crowbar, + /obj/item/weapon/screwdriver, + /obj/item/weapon/weldingtool, + /obj/item/weapon/wirecutters, + /obj/item/weapon/wrench, + /obj/item/device/flashlight, + /obj/item/stack/cable_coil, + /obj/item/device/analyzer, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio, + /obj/item/clothing/gloves, + /obj/item/weapon/resonator, + /obj/item/device/mining_scanner, + /obj/item/weapon/pickaxe, + /obj/item/stack/sheet/animalhide, + /obj/item/stack/sheet/sinew, + /obj/item/stack/sheet/bone, + /obj/item/weapon/lighter, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/reagent_containers/food/drinks/bottle, + /obj/item/stack/medical, + /obj/item/weapon/kitchen/knife, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/gps, + /obj/item/weapon/storage/bag/ore, + /obj/item/weapon/survivalcapsule, + /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/storage/pill_bottle, + /obj/item/weapon/ore, + /obj/item/weapon/reagent_containers/food/drinks, + /obj/item/organ/regenerative_core, + /obj/item/device/wormhole_jaunter, + /obj/item/weapon/storage/bag/plants, + /obj/item/stack/marker_beacon + ) + + +/obj/item/weapon/storage/belt/mining/vendor + contents = newlist(/obj/item/weapon/survivalcapsule) + +/obj/item/weapon/storage/belt/mining/alt + icon_state = "explorer2" + item_state = "explorer2" + +/obj/item/weapon/storage/belt/mining/primitive + name = "hunter's belt" + desc = "A versatile belt, woven from sinew." + storage_slots = 5 + icon_state = "ebelt" + item_state = "ebelt" + +/obj/item/weapon/storage/belt/soulstone + name = "soul stone belt" + desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away" + icon_state = "soulstonebelt" + item_state = "soulstonebelt" + storage_slots = 6 + can_hold = list( + /obj/item/device/soulstone + ) + +/obj/item/weapon/storage/belt/soulstone/full/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/device/soulstone(src) + +/obj/item/weapon/storage/belt/champion + name = "championship belt" + desc = "Proves to the world that you are the strongest!" + icon_state = "championbelt" + item_state = "champion" + materials = list(MAT_GOLD=400) + storage_slots = 1 + can_hold = list( + /obj/item/clothing/mask/luchador + ) + +/obj/item/weapon/storage/belt/military + name = "chest rig" + desc = "A set of tactical webbing worn by Syndicate boarding parties." + icon_state = "militarywebbing" + item_state = "militarywebbing" + max_w_class = WEIGHT_CLASS_SMALL + +/obj/item/weapon/storage/belt/military/abductor + name = "agent belt" + desc = "A belt used by abductor agents." + icon = 'icons/obj/abductor.dmi' + icon_state = "belt" + item_state = "security" + +/obj/item/weapon/storage/belt/military/abductor/full/PopulateContents() + new /obj/item/weapon/screwdriver/abductor(src) + new /obj/item/weapon/wrench/abductor(src) + new /obj/item/weapon/weldingtool/abductor(src) + new /obj/item/weapon/crowbar/abductor(src) + new /obj/item/weapon/wirecutters/abductor(src) + new /obj/item/device/multitool/abductor(src) + new /obj/item/stack/cable_coil(src,30,"white") + + +/obj/item/weapon/storage/belt/military/army + name = "army belt" + desc = "A belt used by military forces." + icon_state = "grenadebeltold" + item_state = "security" + +/obj/item/weapon/storage/belt/military/assault + name = "assault belt" + desc = "A tactical assault belt." + icon_state = "assaultbelt" + item_state = "security" + storage_slots = 6 + +/obj/item/weapon/storage/belt/grenade + name = "grenadier belt" + desc = "A belt for holding grenades." + icon_state = "grenadebeltnew" + item_state = "security" + max_w_class = WEIGHT_CLASS_BULKY display_contents_with_number = TRUE - storage_slots = 30 + storage_slots = 30 max_combined_w_class = 60 //needs to be this high - can_hold = list( - /obj/item/weapon/grenade, - /obj/item/weapon/screwdriver, - /obj/item/weapon/lighter, - /obj/item/device/multitool, - /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov, - /obj/item/weapon/grenade/plastic/c4, - ) -/obj/item/weapon/storage/belt/grenade/full/PopulateContents() - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/smokebomb(src) - new /obj/item/weapon/grenade/smokebomb(src) - new /obj/item/weapon/grenade/smokebomb(src) - new /obj/item/weapon/grenade/smokebomb(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/weapon/grenade/gluon(src) - new /obj/item/weapon/grenade/gluon(src) - new /obj/item/weapon/grenade/gluon(src) - new /obj/item/weapon/grenade/gluon(src) - new /obj/item/weapon/grenade/chem_grenade/incendiary(src) - new /obj/item/weapon/grenade/chem_grenade/incendiary(src) - new /obj/item/weapon/grenade/chem_grenade/facid(src) - new /obj/item/weapon/grenade/syndieminibomb(src) - new /obj/item/weapon/grenade/syndieminibomb(src) - new /obj/item/weapon/screwdriver(src) - new /obj/item/device/multitool(src) - -/obj/item/weapon/storage/belt/wands - name = "wand belt" - desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic." - icon_state = "soulstonebelt" - item_state = "soulstonebelt" - storage_slots = 6 - can_hold = list( - /obj/item/weapon/gun/magic/wand - ) - -/obj/item/weapon/storage/belt/wands/full/PopulateContents() - new /obj/item/weapon/gun/magic/wand/death(src) - new /obj/item/weapon/gun/magic/wand/resurrection(src) - new /obj/item/weapon/gun/magic/wand/polymorph(src) - new /obj/item/weapon/gun/magic/wand/teleport(src) - new /obj/item/weapon/gun/magic/wand/door(src) - new /obj/item/weapon/gun/magic/wand/fireball(src) - - for(var/obj/item/weapon/gun/magic/wand/W in contents) //All wands in this pack come in the best possible condition - W.max_charges = initial(W.max_charges) - W.charges = W.max_charges - -/obj/item/weapon/storage/belt/janitor - name = "janibelt" - desc = "A belt used to hold most janitorial supplies." - icon_state = "janibelt" - item_state = "janibelt" - storage_slots = 6 - max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit. - can_hold = list( - /obj/item/weapon/grenade/chem_grenade, - /obj/item/device/lightreplacer, - /obj/item/device/flashlight, - /obj/item/weapon/reagent_containers/spray, - /obj/item/weapon/soap, - /obj/item/weapon/holosign_creator, - /obj/item/key/janitor, - /obj/item/clothing/gloves - ) - -/obj/item/weapon/storage/belt/bandolier - name = "bandolier" - desc = "A bandolier for holding shotgun ammunition." - icon_state = "bandolier" - item_state = "bandolier" - storage_slots = 18 + can_hold = list( + /obj/item/weapon/grenade, + /obj/item/weapon/screwdriver, + /obj/item/weapon/lighter, + /obj/item/device/multitool, + /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov, + /obj/item/weapon/grenade/plastic/c4, + ) +/obj/item/weapon/storage/belt/grenade/full/PopulateContents() + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/chem_grenade/incendiary(src) + new /obj/item/weapon/grenade/chem_grenade/incendiary(src) + new /obj/item/weapon/grenade/chem_grenade/facid(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/weapon/screwdriver(src) + new /obj/item/device/multitool(src) + +/obj/item/weapon/storage/belt/wands + name = "wand belt" + desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic." + icon_state = "soulstonebelt" + item_state = "soulstonebelt" + storage_slots = 6 + can_hold = list( + /obj/item/weapon/gun/magic/wand + ) + +/obj/item/weapon/storage/belt/wands/full/PopulateContents() + new /obj/item/weapon/gun/magic/wand/death(src) + new /obj/item/weapon/gun/magic/wand/resurrection(src) + new /obj/item/weapon/gun/magic/wand/polymorph(src) + new /obj/item/weapon/gun/magic/wand/teleport(src) + new /obj/item/weapon/gun/magic/wand/door(src) + new /obj/item/weapon/gun/magic/wand/fireball(src) + + for(var/obj/item/weapon/gun/magic/wand/W in contents) //All wands in this pack come in the best possible condition + W.max_charges = initial(W.max_charges) + W.charges = W.max_charges + +/obj/item/weapon/storage/belt/janitor + name = "janibelt" + desc = "A belt used to hold most janitorial supplies." + icon_state = "janibelt" + item_state = "janibelt" + storage_slots = 6 + max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit. + can_hold = list( + /obj/item/weapon/grenade/chem_grenade, + /obj/item/device/lightreplacer, + /obj/item/device/flashlight, + /obj/item/weapon/reagent_containers/spray, + /obj/item/weapon/soap, + /obj/item/weapon/holosign_creator, + /obj/item/key/janitor, + /obj/item/clothing/gloves + ) + +/obj/item/weapon/storage/belt/bandolier + name = "bandolier" + desc = "A bandolier for holding shotgun ammunition." + icon_state = "bandolier" + item_state = "bandolier" + storage_slots = 18 display_contents_with_number = TRUE - can_hold = list( - /obj/item/ammo_casing/shotgun - ) - -/obj/item/weapon/storage/belt/holster - name = "shoulder holster" - desc = "A holster to carry a handgun and ammo. WARNING: Badasses only." - icon_state = "holster" - item_state = "holster" - storage_slots = 3 - max_w_class = WEIGHT_CLASS_NORMAL - can_hold = list( - /obj/item/weapon/gun/ballistic/automatic/pistol, - /obj/item/weapon/gun/ballistic/revolver, - /obj/item/ammo_box, - ) - alternate_worn_layer = UNDER_SUIT_LAYER - -/obj/item/weapon/storage/belt/holster/full/PopulateContents() - new /obj/item/weapon/gun/ballistic/revolver/detective(src) - new /obj/item/ammo_box/c38(src) - new /obj/item/ammo_box/c38(src) - -/obj/item/weapon/storage/belt/fannypack - name = "fannypack" - desc = "A dorky fannypack for keeping small items in." - icon_state = "fannypack_leather" - item_state = "fannypack_leather" - storage_slots = 3 - max_w_class = WEIGHT_CLASS_SMALL - -/obj/item/weapon/storage/belt/fannypack/black - name = "black fannypack" - icon_state = "fannypack_black" - item_state = "fannypack_black" - -/obj/item/weapon/storage/belt/fannypack/red - name = "red fannypack" - icon_state = "fannypack_red" - item_state = "fannypack_red" - -/obj/item/weapon/storage/belt/fannypack/purple - name = "purple fannypack" - icon_state = "fannypack_purple" - item_state = "fannypack_purple" - -/obj/item/weapon/storage/belt/fannypack/blue - name = "blue fannypack" - icon_state = "fannypack_blue" - item_state = "fannypack_blue" - -/obj/item/weapon/storage/belt/fannypack/orange - name = "orange fannypack" - icon_state = "fannypack_orange" - item_state = "fannypack_orange" - -/obj/item/weapon/storage/belt/fannypack/white - name = "white fannypack" - icon_state = "fannypack_white" - item_state = "fannypack_white" - -/obj/item/weapon/storage/belt/fannypack/green - name = "green fannypack" - icon_state = "fannypack_green" - item_state = "fannypack_green" - -/obj/item/weapon/storage/belt/fannypack/pink - name = "pink fannypack" - icon_state = "fannypack_pink" - item_state = "fannypack_pink" - -/obj/item/weapon/storage/belt/fannypack/cyan - name = "cyan fannypack" - icon_state = "fannypack_cyan" - item_state = "fannypack_cyan" - -/obj/item/weapon/storage/belt/fannypack/yellow - name = "yellow fannypack" - icon_state = "fannypack_yellow" - item_state = "fannypack_yellow" - -/obj/item/weapon/storage/belt/sabre - name = "sabre sheath" - desc = "An ornate sheath designed to hold an officer's blade." - icon_state = "sheath" - item_state = "sheath" - storage_slots = 1 - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_BULKY - can_hold = list( - /obj/item/weapon/melee/sabre - ) - -/obj/item/weapon/storage/belt/sabre/examine(mob/user) - ..() - if(contents.len) - to_chat(user, "Alt-click it to quickly draw the blade.") - -/obj/item/weapon/storage/belt/sabre/AltClick(mob/user) - if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE)) - return - if(contents.len) - var/obj/item/I = contents[1] - user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ - ) - user.put_in_hands(I) - update_icon() - else - to_chat(user, "[src] is empty.") - -/obj/item/weapon/storage/belt/sabre/update_icon() - icon_state = "sheath" - item_state = "sheath" - if(contents.len) - icon_state += "-sabre" - item_state += "-sabre" - if(loc && isliving(loc)) - var/mob/living/L = loc - L.regenerate_icons() - ..() - - -/obj/item/weapon/storage/belt/sabre/PopulateContents() - new /obj/item/weapon/melee/sabre(src) - update_icon() + can_hold = list( + /obj/item/ammo_casing/shotgun + ) + +/obj/item/weapon/storage/belt/holster + name = "shoulder holster" + desc = "A holster to carry a handgun and ammo. WARNING: Badasses only." + icon_state = "holster" + item_state = "holster" + storage_slots = 3 + max_w_class = WEIGHT_CLASS_NORMAL + can_hold = list( + /obj/item/weapon/gun/ballistic/automatic/pistol, + /obj/item/weapon/gun/ballistic/revolver, + /obj/item/ammo_box, + ) + alternate_worn_layer = UNDER_SUIT_LAYER + +/obj/item/weapon/storage/belt/holster/full/PopulateContents() + new /obj/item/weapon/gun/ballistic/revolver/detective(src) + new /obj/item/ammo_box/c38(src) + new /obj/item/ammo_box/c38(src) + +/obj/item/weapon/storage/belt/fannypack + name = "fannypack" + desc = "A dorky fannypack for keeping small items in." + icon_state = "fannypack_leather" + item_state = "fannypack_leather" + storage_slots = 3 + max_w_class = WEIGHT_CLASS_SMALL + +/obj/item/weapon/storage/belt/fannypack/black + name = "black fannypack" + icon_state = "fannypack_black" + item_state = "fannypack_black" + +/obj/item/weapon/storage/belt/fannypack/red + name = "red fannypack" + icon_state = "fannypack_red" + item_state = "fannypack_red" + +/obj/item/weapon/storage/belt/fannypack/purple + name = "purple fannypack" + icon_state = "fannypack_purple" + item_state = "fannypack_purple" + +/obj/item/weapon/storage/belt/fannypack/blue + name = "blue fannypack" + icon_state = "fannypack_blue" + item_state = "fannypack_blue" + +/obj/item/weapon/storage/belt/fannypack/orange + name = "orange fannypack" + icon_state = "fannypack_orange" + item_state = "fannypack_orange" + +/obj/item/weapon/storage/belt/fannypack/white + name = "white fannypack" + icon_state = "fannypack_white" + item_state = "fannypack_white" + +/obj/item/weapon/storage/belt/fannypack/green + name = "green fannypack" + icon_state = "fannypack_green" + item_state = "fannypack_green" + +/obj/item/weapon/storage/belt/fannypack/pink + name = "pink fannypack" + icon_state = "fannypack_pink" + item_state = "fannypack_pink" + +/obj/item/weapon/storage/belt/fannypack/cyan + name = "cyan fannypack" + icon_state = "fannypack_cyan" + item_state = "fannypack_cyan" + +/obj/item/weapon/storage/belt/fannypack/yellow + name = "yellow fannypack" + icon_state = "fannypack_yellow" + item_state = "fannypack_yellow" + +/obj/item/weapon/storage/belt/sabre + name = "sabre sheath" + desc = "An ornate sheath designed to hold an officer's blade." + icon_state = "sheath" + item_state = "sheath" + storage_slots = 1 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_BULKY + can_hold = list( + /obj/item/weapon/melee/sabre + ) + +/obj/item/weapon/storage/belt/sabre/examine(mob/user) + ..() + if(contents.len) + to_chat(user, "Alt-click it to quickly draw the blade.") + +/obj/item/weapon/storage/belt/sabre/AltClick(mob/user) + if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE)) + return + if(contents.len) + var/obj/item/I = contents[1] + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + ) + user.put_in_hands(I) + update_icon() + else + to_chat(user, "[src] is empty.") + +/obj/item/weapon/storage/belt/sabre/update_icon() + icon_state = "sheath" + item_state = "sheath" + if(contents.len) + icon_state += "-sabre" + item_state += "-sabre" + if(loc && isliving(loc)) + var/mob/living/L = loc + L.regenerate_icons() + ..() + + +/obj/item/weapon/storage/belt/sabre/PopulateContents() + new /obj/item/weapon/melee/sabre(src) + update_icon() diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm index 2e9bec23bf..ed38d02c31 100644 --- a/code/game/objects/items/weapons/storage/book.dm +++ b/code/game/objects/items/weapons/storage/book.dm @@ -87,7 +87,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", return 1 /obj/item/weapon/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user, heal_mode = TRUE) - + if (!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return @@ -95,7 +95,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", if (user.disabilities & CLUMSY && prob(50)) to_chat(user, "[src] slips out of your hand and hits your head.") user.take_bodypart_damage(10) - user.Paralyse(20) + user.Unconscious(400) return var/chaplain = 0 @@ -106,10 +106,10 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", to_chat(user, "The book sizzles in your hands.") user.take_bodypart_damage(0,10) return - + if (!heal_mode) return ..() - + var/smack = 1 if (M.stat != DEAD) @@ -175,7 +175,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/uses = 1 - + /obj/item/weapon/storage/book/bible/syndicate/attack_self(mob/living/carbon/human/H) if (uses) H.mind.isholy = TRUE diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 9b8a8ee843..75267d731f 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -886,14 +886,4 @@ /obj/item/weapon/storage/box/fountainpens/PopulateContents() for(var/i in 1 to 7) - new /obj/item/weapon/pen/fountain(src) - - -/obj/item/weapon/storage/box/medipens/surival_box - name = "Survival Pen Pack" - desc = "A pack of survival Pens to keep even the most retarded of miners alive" - illustration = "syringe" - -/obj/item/weapon/storage/box/medipens/surival_box/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/hypospray/medipen/survival(src) \ No newline at end of file + new /obj/item/weapon/pen/fountain(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 0c63fa6dd8..32d9a75397 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -1,271 +1,271 @@ -/* - * The 'fancy' path is for objects like donut boxes that show how many items are in the storage item on the sprite itself - * .. Sorry for the shitty path name, I couldnt think of a better one. - * - * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly - * TODO: Cigarette boxes should be ported to this standard - * - * Contains: - * Donut Box - * Egg Box - * Candle Box - * Cigarette Box - * Cigar Case - */ - -/obj/item/weapon/storage/fancy - icon = 'icons/obj/food/containers.dmi' - icon_state = "donutbox6" - name = "donut box" - resistance_flags = FLAMMABLE - var/icon_type = "donut" - var/spawn_type = null - var/fancy_open = FALSE - -/obj/item/weapon/storage/fancy/PopulateContents() - for(var/i = 1 to storage_slots) - new spawn_type(src) - -/obj/item/weapon/storage/fancy/update_icon(itemremoved = 0) - if(fancy_open) - var/total_contents = src.contents.len - itemremoved - icon_state = "[icon_type]box[total_contents]" - else - icon_state = "[icon_type]box" - -/obj/item/weapon/storage/fancy/examine(mob/user) - ..() - if(fancy_open) - if(contents.len == 1) - to_chat(user, "There is one [src.icon_type] left.") - else - to_chat(user, "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left.") - -/obj/item/weapon/storage/fancy/attack_self(mob/user) - fancy_open = !fancy_open - update_icon() - -/obj/item/weapon/storage/fancy/content_can_dump(atom/dest_object, mob/user) - . = ..() - if(.) - fancy_open = TRUE - update_icon() - -/obj/item/weapon/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - fancy_open = TRUE - return ..() - -/obj/item/weapon/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) - fancy_open = TRUE - return ..() - -/* - * Donut Box - */ - -/obj/item/weapon/storage/fancy/donut_box - icon = 'icons/obj/food/containers.dmi' - icon_state = "donutbox6" - icon_type = "donut" - name = "donut box" - storage_slots = 6 - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) - spawn_type = /obj/item/weapon/reagent_containers/food/snacks/donut - fancy_open = TRUE - -/* - * Egg Box - */ - -/obj/item/weapon/storage/fancy/egg_box - icon = 'icons/obj/food/containers.dmi' - icon_state = "eggbox" - icon_type = "egg" - name = "egg box" - storage_slots = 12 - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg) - spawn_type = /obj/item/weapon/reagent_containers/food/snacks/egg - -/* - * Candle Box - */ - -/obj/item/weapon/storage/fancy/candle_box - name = "candle pack" - desc = "A pack of red candles." - icon = 'icons/obj/candle.dmi' - icon_state = "candlebox5" - icon_type = "candle" - item_state = "candlebox5" - storage_slots = 5 - throwforce = 2 - slot_flags = SLOT_BELT - spawn_type = /obj/item/candle - fancy_open = TRUE - -/obj/item/weapon/storage/fancy/candle_box/attack_self(mob_user) - return - -//////////// -//CIG PACK// -//////////// -/obj/item/weapon/storage/fancy/cigarettes - name = "\improper Space Cigarettes packet" - desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig" - item_state = "cigpacket" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - slot_flags = SLOT_BELT - storage_slots = 6 - can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/weapon/lighter) - icon_type = "cigarette" - spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette - -/obj/item/weapon/storage/fancy/cigarettes/AltClick(mob/user) - if(user.get_active_held_item()) - return - for(var/obj/item/weapon/lighter/lighter in src) - remove_from_storage(lighter, user.loc) - user.put_in_active_hand(lighter) - break - -/obj/item/weapon/storage/fancy/cigarettes/update_icon() - if(fancy_open || !contents.len) - cut_overlays() - if(!contents.len) - icon_state = "[initial(icon_state)]_empty" - else - icon_state = initial(icon_state) - add_overlay("[icon_state]_open") - var/i = contents.len - for(var/C in contents) +/* + * The 'fancy' path is for objects like donut boxes that show how many items are in the storage item on the sprite itself + * .. Sorry for the shitty path name, I couldnt think of a better one. + * + * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly + * TODO: Cigarette boxes should be ported to this standard + * + * Contains: + * Donut Box + * Egg Box + * Candle Box + * Cigarette Box + * Cigar Case + */ + +/obj/item/weapon/storage/fancy + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + name = "donut box" + resistance_flags = FLAMMABLE + var/icon_type = "donut" + var/spawn_type = null + var/fancy_open = FALSE + +/obj/item/weapon/storage/fancy/PopulateContents() + for(var/i = 1 to storage_slots) + new spawn_type(src) + +/obj/item/weapon/storage/fancy/update_icon(itemremoved = 0) + if(fancy_open) + var/total_contents = src.contents.len - itemremoved + icon_state = "[icon_type]box[total_contents]" + else + icon_state = "[icon_type]box" + +/obj/item/weapon/storage/fancy/examine(mob/user) + ..() + if(fancy_open) + if(contents.len == 1) + to_chat(user, "There is one [src.icon_type] left.") + else + to_chat(user, "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left.") + +/obj/item/weapon/storage/fancy/attack_self(mob/user) + fancy_open = !fancy_open + update_icon() + +/obj/item/weapon/storage/fancy/content_can_dump(atom/dest_object, mob/user) + . = ..() + if(.) + fancy_open = TRUE + update_icon() + +/obj/item/weapon/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + fancy_open = TRUE + return ..() + +/obj/item/weapon/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) + fancy_open = TRUE + return ..() + +/* + * Donut Box + */ + +/obj/item/weapon/storage/fancy/donut_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + icon_type = "donut" + name = "donut box" + storage_slots = 6 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) + spawn_type = /obj/item/weapon/reagent_containers/food/snacks/donut + fancy_open = TRUE + +/* + * Egg Box + */ + +/obj/item/weapon/storage/fancy/egg_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "eggbox" + icon_type = "egg" + name = "egg box" + storage_slots = 12 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg) + spawn_type = /obj/item/weapon/reagent_containers/food/snacks/egg + +/* + * Candle Box + */ + +/obj/item/weapon/storage/fancy/candle_box + name = "candle pack" + desc = "A pack of red candles." + icon = 'icons/obj/candle.dmi' + icon_state = "candlebox5" + icon_type = "candle" + item_state = "candlebox5" + storage_slots = 5 + throwforce = 2 + slot_flags = SLOT_BELT + spawn_type = /obj/item/candle + fancy_open = TRUE + +/obj/item/weapon/storage/fancy/candle_box/attack_self(mob_user) + return + +//////////// +//CIG PACK// +//////////// +/obj/item/weapon/storage/fancy/cigarettes + name = "\improper Space Cigarettes packet" + desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig" + item_state = "cigpacket" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + slot_flags = SLOT_BELT + storage_slots = 6 + can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/weapon/lighter) + icon_type = "cigarette" + spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette + +/obj/item/weapon/storage/fancy/cigarettes/AltClick(mob/user) + if(user.get_active_held_item()) + return + for(var/obj/item/weapon/lighter/lighter in src) + remove_from_storage(lighter, user.loc) + user.put_in_active_hand(lighter) + break + +/obj/item/weapon/storage/fancy/cigarettes/update_icon() + if(fancy_open || !contents.len) + cut_overlays() + if(!contents.len) + icon_state = "[initial(icon_state)]_empty" + else + icon_state = initial(icon_state) + add_overlay("[icon_state]_open") + var/i = contents.len + for(var/C in contents) var/mutable_appearance/inserted_overlay = mutable_appearance(icon) inserted_overlay.pixel_x = 1 * (i - 1) - if(istype(C, /obj/item/weapon/lighter/greyscale)) + if(istype(C, /obj/item/weapon/lighter/greyscale)) inserted_overlay.icon_state = "lighter_in" - else if(istype(C, /obj/item/weapon/lighter)) + else if(istype(C, /obj/item/weapon/lighter)) inserted_overlay.icon_state = "zippo_in" - else + else inserted_overlay.icon_state = "cigarette" add_overlay(inserted_overlay) - i-- - else - cut_overlays() - -/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M, /mob)) - return - var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents - if(cig) - if(M == user && contents.len > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/W = cig - remove_from_storage(W, M) - M.equip_to_slot_if_possible(W, slot_wear_mask) - contents -= W - to_chat(user, "You take a [icon_type] out of the pack.") - else - ..() - else - to_chat(user, "There are no [icon_type]s left in the pack.") - -/obj/item/weapon/storage/fancy/cigarettes/dromedaryco - name = "\improper DromedaryCo packet" - desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" - icon_state = "dromedary" - spawn_type = /obj/item/clothing/mask/cigarette/dromedary - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift - name = "\improper Uplift Smooth packet" - desc = "Your favorite brand, now menthol flavored." - icon_state = "uplift" - spawn_type = /obj/item/clothing/mask/cigarette/uplift - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust - name = "\improper Robust packet" - desc = "Smoked by the robust." - icon_state = "robust" - spawn_type = /obj/item/clothing/mask/cigarette/robust - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold - name = "\improper Robust Gold packet" - desc = "Smoked by the truly robust." - icon_state = "robustg" - spawn_type = /obj/item/clothing/mask/cigarette/robustgold - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp - name = "\improper Carp Classic packet" - desc = "Since 2313." - icon_state = "carp" - spawn_type = /obj/item/clothing/mask/cigarette/carp - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate - name = "cigarette packet" - desc = "An obscure brand of cigarettes." - icon_state = "syndie" - spawn_type = /obj/item/clothing/mask/cigarette/syndicate - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori - name = "\improper Midori Tabako packet" - desc = "You can't understand the runes, but the packet smells funny." - icon_state = "midori" - spawn_type = /obj/item/clothing/mask/cigarette/rollie - -/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims - name = "\improper Shady Jim's Super Slims packet" - desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" - icon_state = "shadyjim" - spawn_type = /obj/item/clothing/mask/cigarette/shadyjims - -/obj/item/weapon/storage/fancy/rollingpapers - name = "rolling paper pack" - desc = "A pack of NanoTrasen brand rolling papers." - w_class = WEIGHT_CLASS_TINY - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig_paper_pack" - storage_slots = 10 - icon_type = "rolling paper" - can_hold = list(/obj/item/weapon/rollingpaper) - spawn_type = /obj/item/weapon/rollingpaper - -/obj/item/weapon/storage/fancy/rollingpapers/update_icon() - cut_overlays() - if(!contents.len) - add_overlay("[icon_state]_empty") - -///////////// -//CIGAR BOX// -///////////// - -/obj/item/weapon/storage/fancy/cigarettes/cigars - name = "\improper premium cigar case" - desc = "A case of premium cigars. Very expensive." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigarcase" - w_class = WEIGHT_CLASS_NORMAL - storage_slots = 5 - can_hold = list(/obj/item/clothing/mask/cigarette/cigar) - icon_type = "premium cigar" - spawn_type = /obj/item/clothing/mask/cigarette/cigar - -/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon() + i-- + else + cut_overlays() + +/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!ismob(M)) + return + var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents + if(cig) + if(M == user && contents.len > 0 && !user.wear_mask) + var/obj/item/clothing/mask/cigarette/W = cig + remove_from_storage(W, M) + M.equip_to_slot_if_possible(W, slot_wear_mask) + contents -= W + to_chat(user, "You take a [icon_type] out of the pack.") + else + ..() + else + to_chat(user, "There are no [icon_type]s left in the pack.") + +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco + name = "\improper DromedaryCo packet" + desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" + icon_state = "dromedary" + spawn_type = /obj/item/clothing/mask/cigarette/dromedary + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift + name = "\improper Uplift Smooth packet" + desc = "Your favorite brand, now menthol flavored." + icon_state = "uplift" + spawn_type = /obj/item/clothing/mask/cigarette/uplift + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust + name = "\improper Robust packet" + desc = "Smoked by the robust." + icon_state = "robust" + spawn_type = /obj/item/clothing/mask/cigarette/robust + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold + name = "\improper Robust Gold packet" + desc = "Smoked by the truly robust." + icon_state = "robustg" + spawn_type = /obj/item/clothing/mask/cigarette/robustgold + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp + name = "\improper Carp Classic packet" + desc = "Since 2313." + icon_state = "carp" + spawn_type = /obj/item/clothing/mask/cigarette/carp + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate + name = "cigarette packet" + desc = "An obscure brand of cigarettes." + icon_state = "syndie" + spawn_type = /obj/item/clothing/mask/cigarette/syndicate + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori + name = "\improper Midori Tabako packet" + desc = "You can't understand the runes, but the packet smells funny." + icon_state = "midori" + spawn_type = /obj/item/clothing/mask/cigarette/rollie + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims + name = "\improper Shady Jim's Super Slims packet" + desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" + icon_state = "shadyjim" + spawn_type = /obj/item/clothing/mask/cigarette/shadyjims + +/obj/item/weapon/storage/fancy/rollingpapers + name = "rolling paper pack" + desc = "A pack of NanoTrasen brand rolling papers." + w_class = WEIGHT_CLASS_TINY + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper_pack" + storage_slots = 10 + icon_type = "rolling paper" + can_hold = list(/obj/item/weapon/rollingpaper) + spawn_type = /obj/item/weapon/rollingpaper + +/obj/item/weapon/storage/fancy/rollingpapers/update_icon() cut_overlays() - if(fancy_open) - add_overlay("[icon_state]_open") + if(!contents.len) + add_overlay("[icon_state]_empty") + +///////////// +//CIGAR BOX// +///////////// + +/obj/item/weapon/storage/fancy/cigarettes/cigars + name = "\improper premium cigar case" + desc = "A case of premium cigars. Very expensive." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigarcase" + w_class = WEIGHT_CLASS_NORMAL + storage_slots = 5 + can_hold = list(/obj/item/clothing/mask/cigarette/cigar) + icon_type = "premium cigar" + spawn_type = /obj/item/clothing/mask/cigarette/cigar + +/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon() + cut_overlays() + if(fancy_open) + add_overlay("[icon_state]_open") var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type) - for(var/c = contents.len, c >= 1, c--) + for(var/c = contents.len, c >= 1, c--) cigar_overlay.pixel_x = 4 * (c - 1) add_overlay(cigar_overlay) - else - icon_state = "cigarcase" - -/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba - name = "\improper cohiba robusto cigar case" - desc = "A case of imported Cohiba cigars, renowned for their strong flavor." - spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba - -/obj/item/weapon/storage/fancy/cigarettes/cigars/havana - name = "\improper premium havanian cigar case" - desc = "A case of classy Havanian cigars." - spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana + else + icon_state = "cigarcase" + +/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba + name = "\improper cohiba robusto cigar case" + desc = "A case of imported Cohiba cigars, renowned for their strong flavor." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba + +/obj/item/weapon/storage/fancy/cigarettes/cigars/havana + name = "\improper premium havanian cigar case" + desc = "A case of classy Havanian cigars." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 391dc26d30..6e68afb4c4 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -1,36 +1,36 @@ -/* First aid storage - * Contains: - * First Aid Kits - * Pill Bottles - * Dice Pack (in a pill bottle) - */ - -/* - * First Aid Kits - */ -/obj/item/weapon/storage/firstaid - name = "first-aid kit" - desc = "It's an emergency medical kit for those serious boo-boos." - icon_state = "firstaid" - throw_speed = 3 - throw_range = 7 - var/empty = 0 - -/obj/item/weapon/storage/firstaid/regular - icon_state = "firstaid" - desc = "A first aid kit with the ability to heal common types of injuries." - -/obj/item/weapon/storage/firstaid/regular/PopulateContents() - if(empty) - return - new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/weapon/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) - +/* First aid storage + * Contains: + * First Aid Kits + * Pill Bottles + * Dice Pack (in a pill bottle) + */ + +/* + * First Aid Kits + */ +/obj/item/weapon/storage/firstaid + name = "first-aid kit" + desc = "It's an emergency medical kit for those serious boo-boos." + icon_state = "firstaid" + throw_speed = 3 + throw_range = 7 + var/empty = 0 + +/obj/item/weapon/storage/firstaid/regular + icon_state = "firstaid" + desc = "A first aid kit with the ability to heal common types of injuries." + +/obj/item/weapon/storage/firstaid/regular/PopulateContents() + if(empty) + return + new /obj/item/stack/medical/gauze(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + /obj/item/weapon/storage/firstaid/ancient icon_state = "firstaid" desc = "A first aid kit with the ability to heal common types of injuries." @@ -47,167 +47,167 @@ new /obj/item/stack/medical/ointment(src) new /obj/item/stack/medical/ointment(src) -/obj/item/weapon/storage/firstaid/fire - name = "burn treatment kit" - desc = "A specialized medical kit for when the toxins lab -spontaneously- burns down." - icon_state = "ointment" - item_state = "firstaid-ointment" - -/obj/item/weapon/storage/firstaid/fire/Initialize(mapload) - ..() - icon_state = pick("ointment","firefirstaid") - -/obj/item/weapon/storage/firstaid/fire/PopulateContents() - if(empty) - return - for(var/i in 1 to 3) - new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) - new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) - new /obj/item/weapon/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) - -/obj/item/weapon/storage/firstaid/toxin - name = "toxin treatment kit" - desc = "Used to treat toxic blood content and radiation poisoning." - icon_state = "antitoxin" - item_state = "firstaid-toxin" - -/obj/item/weapon/storage/firstaid/toxin/Initialize(mapload) - . = ..() - icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") - -/obj/item/weapon/storage/firstaid/toxin/PopulateContents() - if(empty) - return - for(var/i in 1 to 4) - new /obj/item/weapon/reagent_containers/syringe/charcoal(src) - for(var/i in 1 to 2) - new /obj/item/weapon/storage/pill_bottle/charcoal(src) - new /obj/item/device/healthanalyzer(src) - -/obj/item/weapon/storage/firstaid/o2 - name = "oxygen deprivation treatment kit" - desc = "A box full of oxygen goodies." - icon_state = "o2" - item_state = "firstaid-o2" - -/obj/item/weapon/storage/firstaid/o2/PopulateContents() - if(empty) - return - for(var/i in 1 to 4) - new /obj/item/weapon/reagent_containers/pill/salbutamol(src) - new /obj/item/weapon/reagent_containers/hypospray/medipen(src) - new /obj/item/weapon/reagent_containers/hypospray/medipen(src) - new /obj/item/device/healthanalyzer(src) - -/obj/item/weapon/storage/firstaid/brute - name = "brute trauma treatment kit" - desc = "A first aid kit for when you get toolboxed." - icon_state = "brute" - item_state = "firstaid-brute" - -/obj/item/weapon/storage/firstaid/brute/PopulateContents() - if(empty) - return - for(var/i in 1 to 4) - new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) - new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/gauze(src) - new /obj/item/device/healthanalyzer(src) - -/obj/item/weapon/storage/firstaid/tactical - name = "combat medical kit" - desc = "I hope you've got insurance." - icon_state = "bezerk" - max_w_class = WEIGHT_CLASS_NORMAL - -/obj/item/weapon/storage/firstaid/tactical/PopulateContents() - if(empty) - return - new /obj/item/stack/medical/gauze(src) - new /obj/item/weapon/defibrillator/compact/combat/loaded(src) - new /obj/item/weapon/reagent_containers/hypospray/combat(src) - new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) - new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src) - new /obj/item/clothing/glasses/hud/health/night(src) - - -/* - * Pill Bottles - */ -/obj/item/weapon/storage/pill_bottle - name = "pill bottle" - desc = "It's an airtight container for storing medication." - icon_state = "pill_canister" - icon = 'icons/obj/chemical.dmi' - item_state = "contsolid" - w_class = WEIGHT_CLASS_SMALL - can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice) - allow_quick_gather = 1 - use_to_pickup = 1 - -/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object) //Quick pillbottle fix. -Agouri - - if(ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~ - var/mob/M = usr - if(!istype(over_object, /obj/screen) || !Adjacent(M)) - return ..() - if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - if(M.putItemFromInventoryInHandIfPossible(src, H.held_index)) - add_fingerprint(usr) - if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) - if(usr.s_active) - usr.s_active.close(usr) - src.show_to(usr) - -/obj/item/weapon/storage/pill_bottle/charcoal - name = "bottle of charcoal pills" - desc = "Contains pills used to counter toxins." - -/obj/item/weapon/storage/pill_bottle/charcoal/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/pill/charcoal(src) - -/obj/item/weapon/storage/pill_bottle/epinephrine - name = "bottle of epinephrine pills" - desc = "Contains pills used to stabilize patients." - -/obj/item/weapon/storage/pill_bottle/epinephrine/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/pill/epinephrine(src) - -/obj/item/weapon/storage/pill_bottle/mutadone - name = "bottle of mutadone pills" - desc = "Contains pills used to treat genetic abnormalities." - -/obj/item/weapon/storage/pill_bottle/mutadone/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/pill/mutadone(src) - -/obj/item/weapon/storage/pill_bottle/mannitol - name = "bottle of mannitol pills" - desc = "Contains pills used to treat brain damage." - -/obj/item/weapon/storage/pill_bottle/mannitol/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/pill/mannitol(src) - -/obj/item/weapon/storage/pill_bottle/stimulant - name = "bottle of stimulant pills" - desc = "Guaranteed to give you that extra burst of energy during a long shift!" - -/obj/item/weapon/storage/pill_bottle/stimulant/PopulateContents() - for(var/i in 1 to 5) - new /obj/item/weapon/reagent_containers/pill/stimulant(src) - -/obj/item/weapon/storage/pill_bottle/mining - name = "bottle of patches" - desc = "Contains patches used to treat brute and burn damage." - -/obj/item/weapon/storage/pill_bottle/mining/PopulateContents() - new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - for(var/i in 1 to 3) - new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) +/obj/item/weapon/storage/firstaid/fire + name = "burn treatment kit" + desc = "A specialized medical kit for when the toxins lab -spontaneously- burns down." + icon_state = "ointment" + item_state = "firstaid-ointment" + +/obj/item/weapon/storage/firstaid/fire/Initialize(mapload) + ..() + icon_state = pick("ointment","firefirstaid") + +/obj/item/weapon/storage/firstaid/fire/PopulateContents() + if(empty) + return + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + +/obj/item/weapon/storage/firstaid/toxin + name = "toxin treatment kit" + desc = "Used to treat toxic blood content and radiation poisoning." + icon_state = "antitoxin" + item_state = "firstaid-toxin" + +/obj/item/weapon/storage/firstaid/toxin/Initialize(mapload) + . = ..() + icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") + +/obj/item/weapon/storage/firstaid/toxin/PopulateContents() + if(empty) + return + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/syringe/charcoal(src) + for(var/i in 1 to 2) + new /obj/item/weapon/storage/pill_bottle/charcoal(src) + new /obj/item/device/healthanalyzer(src) + +/obj/item/weapon/storage/firstaid/o2 + name = "oxygen deprivation treatment kit" + desc = "A box full of oxygen goodies." + icon_state = "o2" + item_state = "firstaid-o2" + +/obj/item/weapon/storage/firstaid/o2/PopulateContents() + if(empty) + return + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/pill/salbutamol(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + +/obj/item/weapon/storage/firstaid/brute + name = "brute trauma treatment kit" + desc = "A first aid kit for when you get toolboxed." + icon_state = "brute" + item_state = "firstaid-brute" + +/obj/item/weapon/storage/firstaid/brute/PopulateContents() + if(empty) + return + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/stack/medical/gauze(src) + new /obj/item/stack/medical/gauze(src) + new /obj/item/device/healthanalyzer(src) + +/obj/item/weapon/storage/firstaid/tactical + name = "combat medical kit" + desc = "I hope you've got insurance." + icon_state = "bezerk" + max_w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/storage/firstaid/tactical/PopulateContents() + if(empty) + return + new /obj/item/stack/medical/gauze(src) + new /obj/item/weapon/defibrillator/compact/combat/loaded(src) + new /obj/item/weapon/reagent_containers/hypospray/combat(src) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src) + new /obj/item/clothing/glasses/hud/health/night(src) + + +/* + * Pill Bottles + */ +/obj/item/weapon/storage/pill_bottle + name = "pill bottle" + desc = "It's an airtight container for storing medication." + icon_state = "pill_canister" + icon = 'icons/obj/chemical.dmi' + item_state = "contsolid" + w_class = WEIGHT_CLASS_SMALL + can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice) + allow_quick_gather = 1 + use_to_pickup = 1 + +/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object) //Quick pillbottle fix. -Agouri + + if(ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~ + var/mob/M = usr + if(!istype(over_object, /obj/screen) || !Adjacent(M)) + return ..() + if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(M.putItemFromInventoryInHandIfPossible(src, H.held_index)) + add_fingerprint(usr) + if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) + if(usr.s_active) + usr.s_active.close(usr) + src.show_to(usr) + +/obj/item/weapon/storage/pill_bottle/charcoal + name = "bottle of charcoal pills" + desc = "Contains pills used to counter toxins." + +/obj/item/weapon/storage/pill_bottle/charcoal/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/charcoal(src) + +/obj/item/weapon/storage/pill_bottle/epinephrine + name = "bottle of epinephrine pills" + desc = "Contains pills used to stabilize patients." + +/obj/item/weapon/storage/pill_bottle/epinephrine/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/epinephrine(src) + +/obj/item/weapon/storage/pill_bottle/mutadone + name = "bottle of mutadone pills" + desc = "Contains pills used to treat genetic abnormalities." + +/obj/item/weapon/storage/pill_bottle/mutadone/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/mutadone(src) + +/obj/item/weapon/storage/pill_bottle/mannitol + name = "bottle of mannitol pills" + desc = "Contains pills used to treat brain damage." + +/obj/item/weapon/storage/pill_bottle/mannitol/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/mannitol(src) + +/obj/item/weapon/storage/pill_bottle/stimulant + name = "bottle of stimulant pills" + desc = "Guaranteed to give you that extra burst of energy during a long shift!" + +/obj/item/weapon/storage/pill_bottle/stimulant/PopulateContents() + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/pill/stimulant(src) + +/obj/item/weapon/storage/pill_bottle/mining + name = "bottle of patches" + desc = "Contains patches used to treat brute and burn damage." + +/obj/item/weapon/storage/pill_bottle/mining/PopulateContents() + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm index cfdc6cc354..d0b0f5b9b4 100644 --- a/code/game/objects/items/weapons/storage/internal.dm +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -68,3 +68,22 @@ /obj/item/weapon/storage/internal/pocket/small/detective/PopulateContents() new /obj/item/weapon/reagent_containers/food/drinks/flask/det(src) + +/obj/item/weapon/storage/internal/pocket/pocketprotector + storage_slots = 3 + max_w_class = WEIGHT_CLASS_TINY + can_hold = list( //Same items as a PDA + /obj/item/weapon/pen, + /obj/item/toy/crayon, + /obj/item/weapon/lipstick, + /obj/item/device/flashlight/pen, + /obj/item/clothing/mask/cigarette) + +/obj/item/weapon/storage/internal/pocket/pocketprotector/cosmetology/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/weapon/lipstick/random(src) + +/obj/item/weapon/storage/internal/pocket/pocketprotector/full/PopulateContents() + new /obj/item/weapon/pen/red(src) + new /obj/item/weapon/pen(src) + new /obj/item/weapon/pen/blue(src) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 423943fbbc..66a6661a0d 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -75,6 +75,7 @@ if(locked) return 0 return ..() + /obj/item/weapon/storage/lockbox/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) open = TRUE update_icon() @@ -84,7 +85,6 @@ update_icon() return ..() - /obj/item/weapon/storage/lockbox/loyalty name = "lockbox of mindshield implants" req_access = list(GLOB.access_security) @@ -124,7 +124,6 @@ update_icon() ..() - /obj/item/weapon/storage/lockbox/medal/PopulateContents() new /obj/item/clothing/accessory/medal/gold/captain(src) new /obj/item/clothing/accessory/medal/silver/valor(src) @@ -163,9 +162,8 @@ name = "security medal box" desc = "A locked box used to store medals to be given to members of the security department." req_access = list(GLOB.access_hos) - can_hold = list(/obj/item/clothing/accessory/medal) -obj/item/weapon/storage/lockbox/medal/sec/PopulateContents() +/obj/item/weapon/storage/lockbox/medal/sec/PopulateContents() for(var/i in 1 to 3) new /obj/item/clothing/accessory/medal/silver/security(src) @@ -173,8 +171,7 @@ obj/item/weapon/storage/lockbox/medal/sec/PopulateContents() name = "science medal box" desc = "A locked box used to store medals to be given to members of the science department." req_access = list(GLOB.access_rd) - can_hold = list(/obj/item/clothing/accessory/medal) /obj/item/weapon/storage/lockbox/medal/sci/PopulateContents() for(var/i in 1 to 3) - new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) + new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index f48a7150a7..e455a0277c 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -1,195 +1,195 @@ -/* - * Absorbs /obj/item/weapon/secstorage. - * Reimplements it only slightly to use existing storage functionality. - * - * Contains: - * Secure Briefcase - * Wall Safe - */ - -// ----------------------------- -// Generic Item -// ----------------------------- -/obj/item/weapon/storage/secure - name = "secstorage" - var/icon_locking = "secureb" - var/icon_sparking = "securespark" - var/icon_opened = "secure0" - var/locked = 1 - var/code = "" - var/l_code = null - var/l_set = 0 - var/l_setshort = 0 - var/l_hacking = 0 - var/open = 0 - w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 14 - -/obj/item/weapon/storage/secure/examine(mob/user) - ..() - to_chat(user, text("The service panel is [src.open ? "open" : "closed"].")) - -/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W, mob/user, params) - if(locked) - if (istype(W, /obj/item/weapon/screwdriver)) - if (do_after(user, 20*W.toolspeed, target = src)) - src.open =! src.open - user.show_message("You [open ? "open" : "close"] the service panel.", 1) - return - if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) - user.show_message("Now attempting to reset internal memory, please hold.", 1) - src.l_hacking = 1 - if (do_after(usr, 100*W.toolspeed, target = src)) - if (prob(33)) - src.l_setshort = 1 - src.l_set = 0 - user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) - sleep(80) - src.l_setshort = 0 - src.l_hacking = 0 - else - user.show_message("Unable to reset internal memory.", 1) - src.l_hacking = 0 - else - src.l_hacking = 0 - return - //At this point you have exhausted all the special things to do when locked - // ... but it's still locked. - return - - // -> storage/attackby() what with handle insertion, etc - return ..() - -/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location) - if (locked) - src.add_fingerprint(usr) - to_chat(usr, "It's locked!") - return 0 - ..() - -/obj/item/weapon/storage/secure/attack_self(mob/user) - user.set_machine(src) - var/dat = text("[]
    \n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) - var/message = "Code" - if ((src.l_set == 0) && (!src.l_setshort)) - dat += text("

    \n5-DIGIT PASSCODE NOT SET.
    ENTER NEW PASSCODE.
    ") - if (src.l_setshort) - dat += text("

    \nALERT: MEMORY SYSTEM ERROR - 6040 201") - message = text("[]", src.code) - if (!src.locked) - message = "*****" - dat += text("


    \n>[]
    \n1-2-3
    \n4-5-6
    \n7-8-9
    \nR-0-E
    \n
    ", message, src, src, src, src, src, src, src, src, src, src, src, src) - user << browse(dat, "window=caselock;size=300x280") - -/obj/item/weapon/storage/secure/Topic(href, href_list) - ..() - if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if (href_list["type"]) - if (href_list["type"] == "E") - if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) - src.l_code = src.code - src.l_set = 1 - else if ((src.code == src.l_code) && (src.l_set == 1)) - src.locked = 0 - cut_overlays() +/* + * Absorbs /obj/item/weapon/secstorage. + * Reimplements it only slightly to use existing storage functionality. + * + * Contains: + * Secure Briefcase + * Wall Safe + */ + +// ----------------------------- +// Generic Item +// ----------------------------- +/obj/item/weapon/storage/secure + name = "secstorage" + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + var/locked = 1 + var/code = "" + var/l_code = null + var/l_set = 0 + var/l_setshort = 0 + var/l_hacking = 0 + var/open = 0 + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + max_combined_w_class = 14 + +/obj/item/weapon/storage/secure/examine(mob/user) + ..() + to_chat(user, text("The service panel is [src.open ? "open" : "closed"].")) + +/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W, mob/user, params) + if(locked) + if (istype(W, /obj/item/weapon/screwdriver)) + if (do_after(user, 20*W.toolspeed, target = src)) + src.open =! src.open + user.show_message("You [open ? "open" : "close"] the service panel.", 1) + return + if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) + user.show_message("Now attempting to reset internal memory, please hold.", 1) + src.l_hacking = 1 + if (do_after(usr, 100*W.toolspeed, target = src)) + if (prob(33)) + src.l_setshort = 1 + src.l_set = 0 + user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) + sleep(80) + src.l_setshort = 0 + src.l_hacking = 0 + else + user.show_message("Unable to reset internal memory.", 1) + src.l_hacking = 0 + else + src.l_hacking = 0 + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + return ..() + +/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + to_chat(usr, "It's locked!") + return 0 + ..() + +/obj/item/weapon/storage/secure/attack_self(mob/user) + user.set_machine(src) + var/dat = text("[]
    \n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/message = "Code" + if ((src.l_set == 0) && (!src.l_setshort)) + dat += text("

    \n5-DIGIT PASSCODE NOT SET.
    ENTER NEW PASSCODE.
    ") + if (src.l_setshort) + dat += text("

    \nALERT: MEMORY SYSTEM ERROR - 6040 201") + message = text("[]", src.code) + if (!src.locked) + message = "*****" + dat += text("


    \n>[]
    \n1-2-3
    \n4-5-6
    \n7-8-9
    \nR-0-E
    \n
    ", message, src, src, src, src, src, src, src, src, src, src, src, src) + user << browse(dat, "window=caselock;size=300x280") + +/obj/item/weapon/storage/secure/Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) + return + if (href_list["type"]) + if (href_list["type"] == "E") + if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) + src.l_code = src.code + src.l_set = 1 + else if ((src.code == src.l_code) && (src.l_set == 1)) + src.locked = 0 + cut_overlays() add_overlay(icon_opened) - src.code = null - else - src.code = "ERROR" - else - if ((href_list["type"] == "R") && (!src.l_setshort)) - src.locked = 1 - cut_overlays() - src.code = null - src.close(usr) - else - src.code += text("[]", sanitize_text(href_list["type"])) - if (length(src.code) > 5) - src.code = "ERROR" - src.add_fingerprint(usr) - for(var/mob/M in viewers(1, src.loc)) - if ((M.client && M.machine == src)) - src.attack_self(M) - return - return - -/obj/item/weapon/storage/secure/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return 0 - return ..() - -/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - - -// ----------------------------- -// Secure Briefcase -// ----------------------------- -/obj/item/weapon/storage/secure/briefcase - name = "secure briefcase" - icon = 'icons/obj/storage.dmi' - icon_state = "secure" - item_state = "sec-case" - desc = "A large briefcase with a digital locking system." - force = 8 - hitsound = "swing_hit" - throw_speed = 2 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - -/obj/item/weapon/storage/secure/briefcase/PopulateContents() - new /obj/item/weapon/paper(src) - new /obj/item/weapon/pen(src) - -/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user) - if ((src.loc == user) && (src.locked == 1)) - to_chat(usr, "[src] is locked and cannot be opened!") - add_fingerprint(user) - else - ..() - -//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. -/obj/item/weapon/storage/secure/briefcase/syndie - force = 15 - -/obj/item/weapon/storage/secure/briefcase/syndie/PopulateContents() - ..() - for(var/i = 0, i < storage_slots - 2, i++) - new /obj/item/stack/spacecash/c1000(src) - - -// ----------------------------- -// Secure Safe -// ----------------------------- - -/obj/item/weapon/storage/secure/safe - name = "secure safe" - icon = 'icons/obj/storage.dmi' - icon_state = "safe" - icon_opened = "safe0" - icon_locking = "safeb" - icon_sparking = "safespark" - force = 8 - w_class = WEIGHT_CLASS_GIGANTIC - max_w_class = 8 - anchored = 1 - density = 0 - cant_hold = list(/obj/item/weapon/storage/secure/briefcase) - -/obj/item/weapon/storage/secure/safe/PopulateContents() - new /obj/item/weapon/paper(src) - new /obj/item/weapon/pen(src) - -/obj/item/weapon/storage/secure/safe/attack_hand(mob/user) - return attack_self(user) - -/obj/item/weapon/storage/secure/safe/HoS - name = "head of security's safe" + src.code = null + else + src.code = "ERROR" + else + if ((href_list["type"] == "R") && (!src.l_setshort)) + src.locked = 1 + cut_overlays() + src.code = null + src.close(usr) + else + src.code += text("[]", sanitize_text(href_list["type"])) + if (length(src.code) > 5) + src.code = "ERROR" + src.add_fingerprint(usr) + for(var/mob/M in viewers(1, src.loc)) + if ((M.client && M.machine == src)) + src.attack_self(M) + return + return + +/obj/item/weapon/storage/secure/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(locked) + to_chat(user, "It's locked!") + return 0 + return ..() + +/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + + +// ----------------------------- +// Secure Briefcase +// ----------------------------- +/obj/item/weapon/storage/secure/briefcase + name = "secure briefcase" + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + desc = "A large briefcase with a digital locking system." + force = 8 + hitsound = "swing_hit" + throw_speed = 2 + throw_range = 4 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 21 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + +/obj/item/weapon/storage/secure/briefcase/PopulateContents() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + +/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user) + if ((src.loc == user) && (src.locked == 1)) + to_chat(usr, "[src] is locked and cannot be opened!") + add_fingerprint(user) + else + ..() + +//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. +/obj/item/weapon/storage/secure/briefcase/syndie + force = 15 + +/obj/item/weapon/storage/secure/briefcase/syndie/PopulateContents() + ..() + for(var/i = 0, i < storage_slots - 2, i++) + new /obj/item/stack/spacecash/c1000(src) + + +// ----------------------------- +// Secure Safe +// ----------------------------- + +/obj/item/weapon/storage/secure/safe + name = "secure safe" + icon = 'icons/obj/storage.dmi' + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + force = 8 + w_class = WEIGHT_CLASS_GIGANTIC + max_w_class = 8 + anchored = 1 + density = 0 + cant_hold = list(/obj/item/weapon/storage/secure/briefcase) + +/obj/item/weapon/storage/secure/safe/PopulateContents() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + +/obj/item/weapon/storage/secure/safe/attack_hand(mob/user) + return attack_self(user) + +/obj/item/weapon/storage/secure/safe/HoS + name = "head of security's safe" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 679f9c3784..480c348b6f 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -1,571 +1,571 @@ -// External storage-related logic: -// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages -// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement -// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality -// -- c0 - - -/obj/item/weapon/storage - name = "storage" - icon = 'icons/obj/storage.dmi' - w_class = WEIGHT_CLASS_NORMAL - var/silent = 0 // No message on putting items in - var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else) - var/list/cant_hold = new/list() //Typecache of objects which this item can't store - var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage - var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) - var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. - var/storage_slots = 7 //The number of storage slots in this container. - var/obj/screen/storage/boxes = null - var/obj/screen/close/closer = null - var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. - var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. - var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. - var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. - var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type - var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. - var/rustle_jimmies = TRUE //Play the rustle sound on insertion - - -/obj/item/weapon/storage/MouseDrop(atom/over_object) - if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked - var/mob/M = usr - - if(!over_object) - return - - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech - return - - // this must come before the screen objects only block, dunno why it wasn't before +// External storage-related logic: +// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages +// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement +// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality +// -- c0 + + +/obj/item/weapon/storage + name = "storage" + icon = 'icons/obj/storage.dmi' + w_class = WEIGHT_CLASS_NORMAL + var/silent = 0 // No message on putting items in + var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else) + var/list/cant_hold = new/list() //Typecache of objects which this item can't store + var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage + var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) + var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. + var/storage_slots = 7 //The number of storage slots in this container. + var/obj/screen/storage/boxes = null + var/obj/screen/close/closer = null + var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. + var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. + var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. + var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. + var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type + var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. + var/rustle_jimmies = TRUE //Play the rustle sound on insertion + + +/obj/item/weapon/storage/MouseDrop(atom/over_object) + if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked + var/mob/M = usr + + if(!over_object) + return + + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return + + // this must come before the screen objects only block, dunno why it wasn't before if(over_object == M && M.CanReach(src,view_only = TRUE)) - orient2hud(M) - if(M.s_active) - M.s_active.close(M) - show_to(M) - return - - if(!M.incapacitated()) - if(!istype(over_object, /obj/screen)) - return content_can_dump(over_object, M) - - if(loc != usr || (loc && loc.loc == usr)) - return - - playsound(loc, "rustle", 50, 1, -5) - - if(istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - add_fingerprint(usr) - - -/obj/item/weapon/storage/MouseDrop_T(atom/movable/O, mob/user) - if(istype(O, /obj/item)) - var/obj/item/I = O - if(iscarbon(user) || isdrone(user)) - var/mob/living/L = user - if(!L.incapacitated() && I == L.get_active_held_item()) - if(can_be_inserted(I, 0)) - handle_item_insertion(I, 0 , L) - - -//Check if this storage can dump the items -/obj/item/weapon/storage/proc/content_can_dump(atom/dest_object, mob/user) - if(Adjacent(user) && dest_object.Adjacent(user)) - if(dest_object.storage_contents_dump_act(src, user)) - playsound(loc, "rustle", 50, 1, -5) - return 1 - return 0 - -//Object behaviour on storage dump -/obj/item/weapon/storage/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) - var/list/things = src_object.contents.Copy() - var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src, .proc/handle_mass_item_insertion, things, src_object, user, progress))) - sleep(1) - qdel(progress) - orient2hud(user) - src_object.orient2hud(user) - if(user.s_active) //refresh the HUD to show the transfered contents - user.s_active.close(user) - user.s_active.show_to(user) - return 1 - -/obj/item/weapon/storage/proc/handle_mass_item_insertion(list/things, obj/item/weapon/storage/src_object, mob/user, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != src_object) - continue - if(user.s_active != src_object) - if(I.on_found(user)) - break - if(can_be_inserted(I,0,user)) - handle_item_insertion(I, TRUE, user) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -/obj/item/weapon/storage/proc/return_inv() - var/list/L = list() - L += contents - - for(var/obj/item/weapon/storage/S in src) - L += S.return_inv() - return L - - -/obj/item/weapon/storage/proc/show_to(mob/user) - if(!user.client) - return - if(user.s_active != src && (user.stat == CONSCIOUS)) - for(var/obj/item/I in src) - if(I.on_found(user)) - return - if(user.s_active) - user.s_active.hide_from(user) - user.client.screen |= boxes - user.client.screen |= closer - user.client.screen |= contents - user.s_active = src - is_seeing |= user - - -/obj/item/weapon/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - close_all() - return ..() - -/obj/item/weapon/storage/proc/hide_from(mob/user) - if(!user.client) - return - user.client.screen -= boxes - user.client.screen -= closer - user.client.screen -= contents - if(user.s_active == src) - user.s_active = null - is_seeing -= user - - -/obj/item/weapon/storage/proc/can_see_contents() - var/list/cansee = list() - for(var/mob/M in is_seeing) - if(M.s_active == src && M.client) - cansee |= M - else - is_seeing -= M - return cansee - - -/obj/item/weapon/storage/proc/close(mob/user) - hide_from(user) - user.s_active = null - - -/obj/item/weapon/storage/proc/close_all() - for(var/mob/M in can_see_contents()) - close(M) - . = 1 //returns 1 if any mobs actually got a close(M) call - - -//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. -//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my) - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in contents) - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" - - -//This proc draws out the inventory and places the items on it. It uses the standard position. -/obj/item/weapon/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) - var/cx = 4 - var/cy = 2+rows - boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" - - if(display_contents_with_number) - for(var/datum/numbered_display/ND in display_contents) - ND.sample_object.mouse_opacity = 2 - ND.sample_object.screen_loc = "[cx]:16,[cy]:16" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - else - for(var/obj/O in contents) - O.mouse_opacity = 2 //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:16,[cy]:16" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" - - -/datum/numbered_display - var/obj/item/sample_object - var/number - -/datum/numbered_display/New(obj/item/sample) - if(!istype(sample)) - qdel(src) - sample_object = sample - number = 1 - - -//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/obj/item/weapon/storage/proc/orient2hud(mob/user) - var/adjusted_contents = contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/I in contents) - var/found = 0 - for(var/datum/numbered_display/ND in numbered_contents) - if(ND.sample_object.type == I.type) - ND.number++ - found = 1 - break - if(!found) - adjusted_contents++ - numbered_contents.Add( new/datum/numbered_display(I) ) - - //var/mob/living/carbon/human/H = user - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if(adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - standard_orient_objs(row_num, col_count, numbered_contents) - - -//This proc return 1 if the item can be picked up and 0 if it can't. -//Set the stop_messages to stop it from printing messages -/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) - if(!istype(W) || (W.flags & ABSTRACT)) - return //Not an item - - if(loc == W) - return 0 //Means the item is already in the storage item - if(contents.len >= storage_slots) - if(!stop_messages) - to_chat(usr, "[src] is full, make some space!") - return 0 //Storage item is full - - if(can_hold.len) - if(!is_type_in_typecache(W, can_hold)) - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(W.w_class > max_w_class) - if(!stop_messages) - to_chat(usr, "[W] is too big for [src]!") - return 0 - - var/sum_w_class = W.w_class - for(var/obj/item/I in contents) - sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. - - if(sum_w_class > max_combined_w_class) - if(!stop_messages) - to_chat(usr, "[W] won't fit in [src], make some space!") - return 0 - - if(W.w_class >= w_class && (istype(W, /obj/item/weapon/storage))) - if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W] as it's a storage item of the same size!") - return 0 //To prevent the stacking of same sized storage items. - - if(W.flags & NODROP) //SHOULD be handled in unEquip, but better safe than sorry. - to_chat(usr, "\the [W] is stuck to your hand, you can't put it in \the [src]!") - return 0 - - return 1 - - -//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() -//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, -//such as when picking up all the items on a tile with one click. -/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - if(!istype(W)) - return 0 - if(usr) - if(!usr.transferItemToLoc(W, src)) - return 0 - else - W.forceMove(src) - if(silent) - prevent_warning = 1 - if(W.pulledby) - W.pulledby.stop_pulling() - W.on_enter_storage(src) - if(usr) - if(usr.client && usr.s_active != src) - usr.client.screen -= W - if(usr.observers && usr.observers.len) - for(var/M in usr.observers) - var/mob/dead/observe = M - if(observe.client && observe.s_active != src) - observe.client.screen -= W - - add_fingerprint(usr) - if(rustle_jimmies && !prevent_warning) - playsound(src.loc, "rustle", 50, 1, -5) - - if(!prevent_warning) - for(var/mob/M in viewers(usr, null)) - if(M == usr) - to_chat(usr, "You put [W] [preposition]to [src].") - else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - - orient2hud(usr) - for(var/mob/M in can_see_contents()) - show_to(M) - W.mouse_opacity = 2 //So you can click on the area around the item to equip it, instead of having to pixel hunt - update_icon() - return 1 - - -//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target -/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W, atom/new_location) - if(!istype(W)) - return 0 - - if(istype(src, /obj/item/weapon/storage/fancy)) - var/obj/item/weapon/storage/fancy/F = src - F.update_icon(1) - - for(var/mob/M in can_see_contents()) - if(M.client) - M.client.screen -= W - - if(ismob(loc)) - var/mob/M = loc - W.dropped(M) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - W.forceMove(new_location) - - for(var/mob/M in can_see_contents()) - orient2hud(M) - show_to(M) - - if(W.maptext) - W.maptext = "" - W.on_exit_storage(src) - update_icon() - W.mouse_opacity = initial(W.mouse_opacity) - return 1 - -/obj/item/weapon/storage/deconstruct(disassembled = TRUE) - var/drop_loc = loc - if(ismob(loc)) - drop_loc = get_turf(src) - for(var/obj/item/I in contents) - remove_from_storage(I, drop_loc) - qdel(src) - -//This proc is called when you want to place an item into the storage item. -/obj/item/weapon/storage/attackby(obj/item/W, mob/user, params) - ..() - if(istype(W, /obj/item/weapon/hand_labeler)) - var/obj/item/weapon/hand_labeler/labeler = W - if(labeler.mode) - return 0 - . = 1 //no afterattack - if(iscyborg(user)) - return //Robots can't interact with storage items. - - if(!can_be_inserted(W, 0 , user)) + orient2hud(M) + if(M.s_active) + M.s_active.close(M) + show_to(M) + return + + if(!M.incapacitated()) + if(!istype(over_object, /obj/screen)) + return content_can_dump(over_object, M) + + if(loc != usr || (loc && loc.loc == usr)) + return + + playsound(loc, "rustle", 50, 1, -5) + + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + + add_fingerprint(usr) + + +/obj/item/weapon/storage/MouseDrop_T(atom/movable/O, mob/user) + if(isitem(O)) + var/obj/item/I = O + if(iscarbon(user) || isdrone(user)) + var/mob/living/L = user + if(!L.incapacitated() && I == L.get_active_held_item()) + if(can_be_inserted(I, 0)) + handle_item_insertion(I, 0 , L) + + +//Check if this storage can dump the items +/obj/item/weapon/storage/proc/content_can_dump(atom/dest_object, mob/user) + if(Adjacent(user) && dest_object.Adjacent(user)) + if(dest_object.storage_contents_dump_act(src, user)) + playsound(loc, "rustle", 50, 1, -5) + return 1 + return 0 + +//Object behaviour on storage dump +/obj/item/weapon/storage/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + var/list/things = src_object.contents.Copy() + var/datum/progressbar/progress = new(user, things.len, src) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src, .proc/handle_mass_item_insertion, things, src_object, user, progress))) + sleep(1) + qdel(progress) + orient2hud(user) + src_object.orient2hud(user) + if(user.s_active) //refresh the HUD to show the transfered contents + user.s_active.close(user) + user.s_active.show_to(user) + return 1 + +/obj/item/weapon/storage/proc/handle_mass_item_insertion(list/things, obj/item/weapon/storage/src_object, mob/user, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if(I.loc != src_object) + continue + if(user.s_active != src_object) + if(I.on_found(user)) + break + if(can_be_inserted(I,0,user)) + handle_item_insertion(I, TRUE, user) + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +/obj/item/weapon/storage/proc/return_inv() + var/list/L = list() + L += contents + + for(var/obj/item/weapon/storage/S in src) + L += S.return_inv() + return L + + +/obj/item/weapon/storage/proc/show_to(mob/user) + if(!user.client) + return + if(user.s_active != src && (user.stat == CONSCIOUS)) + for(var/obj/item/I in src) + if(I.on_found(user)) + return + if(user.s_active) + user.s_active.hide_from(user) + user.client.screen |= boxes + user.client.screen |= closer + user.client.screen |= contents + user.s_active = src + is_seeing |= user + + +/obj/item/weapon/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + close_all() + return ..() + +/obj/item/weapon/storage/proc/hide_from(mob/user) + if(!user.client) + return + user.client.screen -= boxes + user.client.screen -= closer + user.client.screen -= contents + if(user.s_active == src) + user.s_active = null + is_seeing -= user + + +/obj/item/weapon/storage/proc/can_see_contents() + var/list/cansee = list() + for(var/mob/M in is_seeing) + if(M.s_active == src && M.client) + cansee |= M + else + is_seeing -= M + return cansee + + +/obj/item/weapon/storage/proc/close(mob/user) + hide_from(user) + user.s_active = null + + +/obj/item/weapon/storage/proc/close_all() + for(var/mob/M in can_see_contents()) + close(M) + . = 1 //returns 1 if any mobs actually got a close(M) call + + +//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. +//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. +/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my) + var/cx = tx + var/cy = ty + boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" + for(var/obj/O in contents) + O.screen_loc = "[cx],[cy]" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > mx) + cx = tx + cy-- + closer.screen_loc = "[mx+1],[my]" + + +//This proc draws out the inventory and places the items on it. It uses the standard position. +/obj/item/weapon/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) + var/cx = 4 + var/cy = 2+rows + boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" + + if(display_contents_with_number) + for(var/datum/numbered_display/ND in display_contents) + ND.sample_object.mouse_opacity = 2 + ND.sample_object.screen_loc = "[cx]:16,[cy]:16" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + else + for(var/obj/O in contents) + O.mouse_opacity = 2 //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:16,[cy]:16" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + closer.screen_loc = "[4+cols+1]:16,2:16" + + +/datum/numbered_display + var/obj/item/sample_object + var/number + +/datum/numbered_display/New(obj/item/sample) + if(!istype(sample)) + qdel(src) + sample_object = sample + number = 1 + + +//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. +/obj/item/weapon/storage/proc/orient2hud(mob/user) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/I in contents) + var/found = 0 + for(var/datum/numbered_display/ND in numbered_contents) + if(ND.sample_object.type == I.type) + ND.number++ + found = 1 + break + if(!found) + adjusted_contents++ + numbered_contents.Add( new/datum/numbered_display(I) ) + + //var/mob/living/carbon/human/H = user + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if(adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + standard_orient_objs(row_num, col_count, numbered_contents) + + +//This proc return 1 if the item can be picked up and 0 if it can't. +//Set the stop_messages to stop it from printing messages +/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) + if(!istype(W) || (W.flags & ABSTRACT)) + return //Not an item + + if(loc == W) + return 0 //Means the item is already in the storage item + if(contents.len >= storage_slots) + if(!stop_messages) + to_chat(usr, "[src] is full, make some space!") + return 0 //Storage item is full + + if(can_hold.len) + if(!is_type_in_typecache(W, can_hold)) + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W]!") + return 0 + + if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W]!") + return 0 + + if(W.w_class > max_w_class) + if(!stop_messages) + to_chat(usr, "[W] is too big for [src]!") + return 0 + + var/sum_w_class = W.w_class + for(var/obj/item/I in contents) + sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + to_chat(usr, "[W] won't fit in [src], make some space!") + return 0 + + if(W.w_class >= w_class && (istype(W, /obj/item/weapon/storage))) + if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W] as it's a storage item of the same size!") + return 0 //To prevent the stacking of same sized storage items. + + if(W.flags & NODROP) //SHOULD be handled in unEquip, but better safe than sorry. + to_chat(usr, "\the [W] is stuck to your hand, you can't put it in \the [src]!") + return 0 + + return 1 + + +//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() +//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, +//such as when picking up all the items on a tile with one click. +/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if(!istype(W)) + return 0 + if(usr) + if(!usr.transferItemToLoc(W, src)) + return 0 + else + W.forceMove(src) + if(silent) + prevent_warning = 1 + if(W.pulledby) + W.pulledby.stop_pulling() + W.on_enter_storage(src) + if(usr) + if(usr.client && usr.s_active != src) + usr.client.screen -= W + if(usr.observers && usr.observers.len) + for(var/M in usr.observers) + var/mob/dead/observe = M + if(observe.client && observe.s_active != src) + observe.client.screen -= W + + add_fingerprint(usr) + if(rustle_jimmies && !prevent_warning) + playsound(src.loc, "rustle", 50, 1, -5) + + if(!prevent_warning) + for(var/mob/M in viewers(usr, null)) + if(M == usr) + to_chat(usr, "You put [W] [preposition]to [src].") + else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + + orient2hud(usr) + for(var/mob/M in can_see_contents()) + show_to(M) + W.mouse_opacity = 2 //So you can click on the area around the item to equip it, instead of having to pixel hunt + update_icon() + return 1 + + +//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target +/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W, atom/new_location) + if(!istype(W)) + return 0 + + if(istype(src, /obj/item/weapon/storage/fancy)) + var/obj/item/weapon/storage/fancy/F = src + F.update_icon(1) + + for(var/mob/M in can_see_contents()) + if(M.client) + M.client.screen -= W + + if(ismob(loc)) + var/mob/M = loc + W.dropped(M) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + W.forceMove(new_location) + + for(var/mob/M in can_see_contents()) + orient2hud(M) + show_to(M) + + if(W.maptext) + W.maptext = "" + W.on_exit_storage(src) + update_icon() + W.mouse_opacity = initial(W.mouse_opacity) + return 1 + +/obj/item/weapon/storage/deconstruct(disassembled = TRUE) + var/drop_loc = loc + if(ismob(loc)) + drop_loc = get_turf(src) + for(var/obj/item/I in contents) + remove_from_storage(I, drop_loc) + qdel(src) + +//This proc is called when you want to place an item into the storage item. +/obj/item/weapon/storage/attackby(obj/item/W, mob/user, params) + ..() + if(istype(W, /obj/item/weapon/hand_labeler)) + var/obj/item/weapon/hand_labeler/labeler = W + if(labeler.mode) + return 0 + . = 1 //no afterattack + if(iscyborg(user)) + return //Robots can't interact with storage items. + + if(!can_be_inserted(W, 0 , user)) if(contents.len >= storage_slots) //don't use items on the backpack if they don't fit return 1 - return 0 - - handle_item_insertion(W, 0 , user) - - -/obj/item/weapon/storage/attack_hand(mob/user) - if(user.s_active == src && loc == user) //if you're already looking inside the storage item - user.s_active.close(user) - close(user) - return - - if(rustle_jimmies) - playsound(loc, "rustle", 50, 1, -5) - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. - H.put_in_hands(src) - H.l_store = null - return - if(H.r_store == src && !H.get_active_held_item()) - H.put_in_hands(src) - H.r_store = null - return - - orient2hud(user) - if(loc == user) - if(user.s_active) - user.s_active.close(user) - show_to(user) - else - ..() - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) - add_fingerprint(user) - -/obj/item/weapon/storage/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/weapon/storage/verb/toggle_gathering_mode() - set name = "Switch Gathering Method" - set category = "Object" - - if(usr.stat || !usr.canmove || usr.restrained()) - return - - collection_mode = (collection_mode+1)%3 - switch (collection_mode) - if(2) - to_chat(usr, "[src] now picks up all items of a single type at once.") - if(1) - to_chat(usr, "[src] now picks up all items in a tile at once.") - if(0) - to_chat(usr, "[src] now picks up one item at a time.") - -// Empty all the contents onto the current turf -/obj/item/weapon/storage/verb/quick_empty() - set name = "Empty Contents" - set category = "Object" - - if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) - return - var/turf/T = get_turf(src) - var/list/things = contents.Copy() - var/datum/progressbar/progress = new(usr, things.len, T) - while (do_after(usr, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) - sleep(1) - qdel(progress) - -/obj/item/weapon/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if (I.loc != src) - continue - remove_from_storage(I, target) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// Empty all the contents onto the current turf, without checking the user's status. -/obj/item/weapon/storage/proc/do_quick_empty() - var/turf/T = get_turf(src) - if(usr) - hide_from(usr) - for(var/obj/item/I in contents) - remove_from_storage(I, T) - - -/obj/item/weapon/storage/Initialize(mapload) + return 0 + + handle_item_insertion(W, 0 , user) + + +/obj/item/weapon/storage/attack_hand(mob/user) + if(user.s_active == src && loc == user) //if you're already looking inside the storage item + user.s_active.close(user) + close(user) + return + + if(rustle_jimmies) + playsound(loc, "rustle", 50, 1, -5) + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. + H.put_in_hands(src) + H.l_store = null + return + if(H.r_store == src && !H.get_active_held_item()) + H.put_in_hands(src) + H.r_store = null + return + + orient2hud(user) + if(loc == user) + if(user.s_active) + user.s_active.close(user) + show_to(user) + else + ..() + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + add_fingerprint(user) + +/obj/item/weapon/storage/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/storage/verb/toggle_gathering_mode() + set name = "Switch Gathering Method" + set category = "Object" + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + collection_mode = (collection_mode+1)%3 + switch (collection_mode) + if(2) + to_chat(usr, "[src] now picks up all items of a single type at once.") + if(1) + to_chat(usr, "[src] now picks up all items in a tile at once.") + if(0) + to_chat(usr, "[src] now picks up one item at a time.") + +// Empty all the contents onto the current turf +/obj/item/weapon/storage/verb/quick_empty() + set name = "Empty Contents" + set category = "Object" + + if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) + return + var/turf/T = get_turf(src) + var/list/things = contents.Copy() + var/datum/progressbar/progress = new(usr, things.len, T) + while (do_after(usr, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + sleep(1) + qdel(progress) + +/obj/item/weapon/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if (I.loc != src) + continue + remove_from_storage(I, target) + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +// Empty all the contents onto the current turf, without checking the user's status. +/obj/item/weapon/storage/proc/do_quick_empty() + var/turf/T = get_turf(src) + if(usr) + hide_from(usr) + for(var/obj/item/I in contents) + remove_from_storage(I, T) + + +/obj/item/weapon/storage/Initialize(mapload) . = ..() - - can_hold = typecacheof(can_hold) - cant_hold = typecacheof(cant_hold) - - if(allow_quick_empty) - verbs += /obj/item/weapon/storage/verb/quick_empty - else - verbs -= /obj/item/weapon/storage/verb/quick_empty - - if(allow_quick_gather) - verbs += /obj/item/weapon/storage/verb/toggle_gathering_mode - else - verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode - - boxes = new /obj/screen/storage() - boxes.name = "storage" - boxes.master = src - boxes.icon_state = "block" - boxes.screen_loc = "7,7 to 10,8" - boxes.layer = HUD_LAYER - boxes.plane = HUD_PLANE - closer = new /obj/screen/close() - closer.master = src - closer.icon_state = "backpack_close" - closer.layer = ABOVE_HUD_LAYER - closer.plane = ABOVE_HUD_PLANE - orient2hud() - - PopulateContents() - - -/obj/item/weapon/storage/Destroy() - for(var/obj/O in contents) - O.mouse_opacity = initial(O.mouse_opacity) - - close_all() - qdel(boxes) - qdel(closer) - return ..() - - -/obj/item/weapon/storage/emp_act(severity) - if(!isliving(loc)) - for(var/obj/O in contents) - O.emp_act(severity) - ..() - - -/obj/item/weapon/storage/attack_self(mob/user) - //Clicking on itself will empty it, if it has the verb to do that. - if(user.get_active_held_item() == src) - if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty)) - quick_empty() - -/obj/item/weapon/storage/handle_atom_del(atom/A) - if(A in contents) - usr = null - remove_from_storage(A, null) - -/obj/item/weapon/storage/contents_explosion(severity, target) - for(var/atom/A in contents) - A.ex_act(severity, target) - CHECK_TICK - -//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW" - -/obj/item/weapon/storage/proc/PopulateContents() + + can_hold = typecacheof(can_hold) + cant_hold = typecacheof(cant_hold) + + if(allow_quick_empty) + verbs += /obj/item/weapon/storage/verb/quick_empty + else + verbs -= /obj/item/weapon/storage/verb/quick_empty + + if(allow_quick_gather) + verbs += /obj/item/weapon/storage/verb/toggle_gathering_mode + else + verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode + + boxes = new /obj/screen/storage() + boxes.name = "storage" + boxes.master = src + boxes.icon_state = "block" + boxes.screen_loc = "7,7 to 10,8" + boxes.layer = HUD_LAYER + boxes.plane = HUD_PLANE + closer = new /obj/screen/close() + closer.master = src + closer.icon_state = "backpack_close" + closer.layer = ABOVE_HUD_LAYER + closer.plane = ABOVE_HUD_PLANE + orient2hud() + + PopulateContents() + + +/obj/item/weapon/storage/Destroy() + for(var/obj/O in contents) + O.mouse_opacity = initial(O.mouse_opacity) + + close_all() + qdel(boxes) + qdel(closer) + return ..() + + +/obj/item/weapon/storage/emp_act(severity) + if(!isliving(loc)) + for(var/obj/O in contents) + O.emp_act(severity) + ..() + + +/obj/item/weapon/storage/attack_self(mob/user) + //Clicking on itself will empty it, if it has the verb to do that. + if(user.get_active_held_item() == src) + if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty)) + quick_empty() + +/obj/item/weapon/storage/handle_atom_del(atom/A) + if(A in contents) + usr = null + remove_from_storage(A, null) + +/obj/item/weapon/storage/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK + +//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW" + +/obj/item/weapon/storage/proc/PopulateContents() diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index a37efdc472..c80f9cf08f 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -238,6 +238,15 @@ new /obj/item/nuke_core_container(src) new /obj/item/weapon/paper/nuke_instructions(src) +/obj/item/weapon/storage/box/syndie_kit/supermatter + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/supermatter/PopulateContents() + new /obj/item/weapon/scalpel/supermatter(src) + new /obj/item/weapon/hemostat/supermatter(src) + new /obj/item/nuke_core_container/supermatter(src) + new /obj/item/weapon/paper/supermatter_sliver_instructions(src) + /obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade name = "boxed virus grenade kit" @@ -296,10 +305,3 @@ /obj/item/weapon/storage/box/syndie_kit/mimery/PopulateContents() new /obj/item/weapon/spellbook/oneuse/mimery_blockade(src) new /obj/item/weapon/spellbook/oneuse/mimery_guns(src) - -/obj/item/weapon/storage/box/syndie_kit/holoparasite - name = "box" - -/obj/item/weapon/storage/box/syndie_kit/holoparasite/PopulateContents() - new /obj/item/weapon/guardiancreator/tech/choose/traitor(src) - new /obj/item/weapon/paper/guardian(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 390357047a..bde97b5680 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -11,12 +11,15 @@ attack_verb = list("beaten") armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 80, acid = 80) - var/stunforce = 7 + var/stunforce = 140 var/status = 0 - var/obj/item/weapon/stock_parts/cell/high/cell = null + var/obj/item/weapon/stock_parts/cell/high/cell var/hitcost = 1000 var/throw_hit_chance = 35 +/obj/item/weapon/melee/baton/get_cell() + return cell + /obj/item/weapon/melee/baton/suicide_act(mob/user) user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) @@ -33,6 +36,7 @@ /obj/item/weapon/melee/baton/loaded/Initialize() //this one starts with a cell pre-installed. cell = new(src) + update_icon() . = ..() /obj/item/weapon/melee/baton/proc/deductcharge(chrgdeductamt) @@ -106,7 +110,7 @@ if(status && user.disabilities & CLUMSY && prob(50)) user.visible_message("[user] accidentally hits themself with [src]!", \ "You accidentally hit yourself with [src]!") - user.Weaken(stunforce*3) + user.Knockdown(stunforce*3) deductcharge(hitcost) return @@ -137,8 +141,8 @@ /obj/item/weapon/melee/baton/proc/baton_stun(mob/living/L, mob/user) if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) //No message; check_shields() handles that - playsound(L, 'sound/weapons/Genhit.ogg', 50, 1) + if(H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that + playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return 0 if(iscyborg(loc)) var/mob/living/silicon/robot/R = loc @@ -148,8 +152,7 @@ if(!deductcharge(hitcost)) return 0 - L.Stun(stunforce) - L.Weaken(stunforce) + L.Knockdown(stunforce) L.apply_effect(STUTTER, stunforce) if(user) user.lastattacked = L @@ -158,7 +161,7 @@ "[user] has stunned you with [src]!") add_logs(user, L, "stunned") - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) if(ishuman(L)) var/mob/living/carbon/human/H = L @@ -180,7 +183,7 @@ w_class = WEIGHT_CLASS_BULKY force = 3 throwforce = 5 - stunforce = 5 + stunforce = 100 hitcost = 2000 throw_hit_chance = 10 slot_flags = SLOT_BACK diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index d54d741da2..15ac506cd6 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -1,209 +1,209 @@ -/obj/item/weapon/tank/jetpack - name = "jetpack (empty)" - desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution." - icon_state = "jetpack" - item_state = "jetpack" - w_class = WEIGHT_CLASS_BULKY - distribute_pressure = ONE_ATMOSPHERE * O2STANDARD - actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) - var/gas_type = "o2" - var/on = FALSE - var/stabilizers = FALSE - var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not - var/datum/effect_system/trail_follow/ion/ion_trail - -/obj/item/weapon/tank/jetpack/New() - ..() - if(gas_type) - air_contents.assert_gas(gas_type) - air_contents.gases[gas_type][MOLES] = (6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C) - - ion_trail = new - ion_trail.set_up(src) - -/obj/item/weapon/tank/jetpack/ui_action_click(mob/user, action) - if(istype(action, /datum/action/item_action/toggle_jetpack)) - cycle(user) - else if(istype(action, /datum/action/item_action/jetpack_stabilization)) - if(on) - stabilizers = !stabilizers - to_chat(user, "You turn the jetpack stabilization [stabilizers ? "on" : "off"].") - else - toggle_internals(user) - - -/obj/item/weapon/tank/jetpack/proc/cycle(mob/user) - if(user.incapacitated()) - return - - if(!on) - turn_on() - to_chat(user, "You turn the jetpack on.") - else - turn_off() - to_chat(user, "You turn the jetpack off.") - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - - -/obj/item/weapon/tank/jetpack/proc/turn_on() - on = TRUE - icon_state = "[initial(icon_state)]-on" - ion_trail.start() - -/obj/item/weapon/tank/jetpack/proc/turn_off() - on = FALSE - stabilizers = FALSE - icon_state = initial(icon_state) - ion_trail.stop() - -/obj/item/weapon/tank/jetpack/proc/allow_thrust(num, mob/living/user) - if(!on) - return - if((num < 0.005 || air_contents.total_moles() < num)) - turn_off() - return - - var/datum/gas_mixture/removed = air_contents.remove(num) - if(removed.total_moles() < 0.005) - turn_off() - return - - var/turf/T = get_turf(user) - T.assume_air(removed) - - return 1 - -/obj/item/weapon/tank/jetpack/suicide_act(mob/user) - if (istype(user,/mob/living/carbon/human/)) - var/mob/living/carbon/human/H = user - H.forcesay("WHAT THE FUCK IS CARBON DIOXIDE?") - H.visible_message("[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!") - return (OXYLOSS) - else - ..() - -/obj/item/weapon/tank/jetpack/void - name = "void jetpack (oxygen)" - desc = "It works well in a void." - icon_state = "jetpack-void" - item_state = "jetpack-void" - -/obj/item/weapon/tank/jetpack/oxygen - name = "jetpack (oxygen)" - desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution." - icon_state = "jetpack" - item_state = "jetpack" - -/obj/item/weapon/tank/jetpack/oxygen/harness - name = "jet harness (oxygen)" - desc = "A lightweight tactical harness, used by those who don't want to be weighed down by traditional jetpacks." - icon_state = "jetpack-mini" - item_state = "jetpack-mini" - volume = 40 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL - -/obj/item/weapon/tank/jetpack/oxygen/captain - name = "\improper Captain's jetpack" - desc = "A compact, lightweight jetpack containing a high amount of compressed oxygen." - icon_state = "jetpack-captain" - item_state = "jetpack-captain" - w_class = WEIGHT_CLASS_NORMAL - volume = 90 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //steal objective items are hard to destroy. - -/obj/item/weapon/tank/jetpack/oxygen/security - name = "security jetpack (oxygen)" - desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas by security forces." - icon_state = "jetpack-sec" - item_state = "jetpack-sec" - -/obj/item/weapon/tank/jetpack/carbondioxide - name = "jetpack (carbon dioxide)" - desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals." - icon_state = "jetpack-black" - item_state = "jetpack-black" - distribute_pressure = 0 - gas_type = "co2" - - -/obj/item/weapon/tank/jetpack/suit - name = "hardsuit jetpack upgrade" - desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment." - origin_tech = "materials=4;magnets=4;engineering=5" - icon_state = "jetpack-mining" - item_state = "jetpack-black" - w_class = WEIGHT_CLASS_NORMAL - actions_types = list(/datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) - volume = 1 - slot_flags = null - gas_type = null - full_speed = FALSE - var/datum/gas_mixture/temp_air_contents - var/obj/item/weapon/tank/internals/tank = null - -/obj/item/weapon/tank/jetpack/suit/New() - ..() - STOP_PROCESSING(SSobj, src) - temp_air_contents = air_contents - -/obj/item/weapon/tank/jetpack/suit/attack_self() - return - -/obj/item/weapon/tank/jetpack/suit/cycle(mob/user) - if(!istype(loc, /obj/item/clothing/suit/space/hardsuit)) - to_chat(user, "\The [src] must be connected to a hardsuit!") - return - - var/mob/living/carbon/human/H = user - if(!istype(H.s_store, /obj/item/weapon/tank/internals)) - to_chat(user, "You need a tank in your suit storage!") - return - ..() - -/obj/item/weapon/tank/jetpack/suit/turn_on() - if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) - return - var/mob/living/carbon/human/H = loc.loc - tank = H.s_store - air_contents = tank.air_contents - START_PROCESSING(SSobj, src) - ..() - -/obj/item/weapon/tank/jetpack/suit/turn_off() - tank = null - air_contents = temp_air_contents - STOP_PROCESSING(SSobj, src) - ..() - -/obj/item/weapon/tank/jetpack/suit/process() - if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) - turn_off() - return - var/mob/living/carbon/human/H = loc.loc - if(!tank || tank != H.s_store) - turn_off() - return - ..() - - -//Return a jetpack that the mob can use -//Back worn jetpacks, hardsuit internal packs, and so on. +/obj/item/weapon/tank/jetpack + name = "jetpack (empty)" + desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution." + icon_state = "jetpack" + item_state = "jetpack" + w_class = WEIGHT_CLASS_BULKY + distribute_pressure = ONE_ATMOSPHERE * O2STANDARD + actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) + var/gas_type = "o2" + var/on = FALSE + var/stabilizers = FALSE + var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not + var/datum/effect_system/trail_follow/ion/ion_trail + +/obj/item/weapon/tank/jetpack/New() + ..() + if(gas_type) + air_contents.assert_gas(gas_type) + air_contents.gases[gas_type][MOLES] = (6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C) + + ion_trail = new + ion_trail.set_up(src) + +/obj/item/weapon/tank/jetpack/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_jetpack)) + cycle(user) + else if(istype(action, /datum/action/item_action/jetpack_stabilization)) + if(on) + stabilizers = !stabilizers + to_chat(user, "You turn the jetpack stabilization [stabilizers ? "on" : "off"].") + else + toggle_internals(user) + + +/obj/item/weapon/tank/jetpack/proc/cycle(mob/user) + if(user.incapacitated()) + return + + if(!on) + turn_on() + to_chat(user, "You turn the jetpack on.") + else + turn_off() + to_chat(user, "You turn the jetpack off.") + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + + +/obj/item/weapon/tank/jetpack/proc/turn_on() + on = TRUE + icon_state = "[initial(icon_state)]-on" + ion_trail.start() + +/obj/item/weapon/tank/jetpack/proc/turn_off() + on = FALSE + stabilizers = FALSE + icon_state = initial(icon_state) + ion_trail.stop() + +/obj/item/weapon/tank/jetpack/proc/allow_thrust(num, mob/living/user) + if(!on) + return + if((num < 0.005 || air_contents.total_moles() < num)) + turn_off() + return + + var/datum/gas_mixture/removed = air_contents.remove(num) + if(removed.total_moles() < 0.005) + turn_off() + return + + var/turf/T = get_turf(user) + T.assume_air(removed) + + return 1 + +/obj/item/weapon/tank/jetpack/suicide_act(mob/user) + if (istype(user,/mob/living/carbon/human/)) + var/mob/living/carbon/human/H = user + H.forcesay("WHAT THE FUCK IS CARBON DIOXIDE?") + H.visible_message("[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!") + return (OXYLOSS) + else + ..() + +/obj/item/weapon/tank/jetpack/void + name = "void jetpack (oxygen)" + desc = "It works well in a void." + icon_state = "jetpack-void" + item_state = "jetpack-void" + +/obj/item/weapon/tank/jetpack/oxygen + name = "jetpack (oxygen)" + desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution." + icon_state = "jetpack" + item_state = "jetpack" + +/obj/item/weapon/tank/jetpack/oxygen/harness + name = "jet harness (oxygen)" + desc = "A lightweight tactical harness, used by those who don't want to be weighed down by traditional jetpacks." + icon_state = "jetpack-mini" + item_state = "jetpack-mini" + volume = 40 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/tank/jetpack/oxygen/captain + name = "\improper Captain's jetpack" + desc = "A compact, lightweight jetpack containing a high amount of compressed oxygen." + icon_state = "jetpack-captain" + item_state = "jetpack-captain" + w_class = WEIGHT_CLASS_NORMAL + volume = 90 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //steal objective items are hard to destroy. + +/obj/item/weapon/tank/jetpack/oxygen/security + name = "security jetpack (oxygen)" + desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas by security forces." + icon_state = "jetpack-sec" + item_state = "jetpack-sec" + +/obj/item/weapon/tank/jetpack/carbondioxide + name = "jetpack (carbon dioxide)" + desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals." + icon_state = "jetpack-black" + item_state = "jetpack-black" + distribute_pressure = 0 + gas_type = "co2" + + +/obj/item/weapon/tank/jetpack/suit + name = "hardsuit jetpack upgrade" + desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment." + origin_tech = "materials=4;magnets=4;engineering=5" + icon_state = "jetpack-mining" + item_state = "jetpack-black" + w_class = WEIGHT_CLASS_NORMAL + actions_types = list(/datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) + volume = 1 + slot_flags = null + gas_type = null + full_speed = FALSE + var/datum/gas_mixture/temp_air_contents + var/obj/item/weapon/tank/internals/tank = null + +/obj/item/weapon/tank/jetpack/suit/New() + ..() + STOP_PROCESSING(SSobj, src) + temp_air_contents = air_contents + +/obj/item/weapon/tank/jetpack/suit/attack_self() + return + +/obj/item/weapon/tank/jetpack/suit/cycle(mob/user) + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit)) + to_chat(user, "\The [src] must be connected to a hardsuit!") + return + + var/mob/living/carbon/human/H = user + if(!istype(H.s_store, /obj/item/weapon/tank/internals)) + to_chat(user, "You need a tank in your suit storage!") + return + ..() + +/obj/item/weapon/tank/jetpack/suit/turn_on() + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) + return + var/mob/living/carbon/human/H = loc.loc + tank = H.s_store + air_contents = tank.air_contents + START_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/tank/jetpack/suit/turn_off() + tank = null + air_contents = temp_air_contents + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/tank/jetpack/suit/process() + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) + turn_off() + return + var/mob/living/carbon/human/H = loc.loc + if(!tank || tank != H.s_store) + turn_off() + return + ..() + + +//Return a jetpack that the mob can use +//Back worn jetpacks, hardsuit internal packs, and so on. //Used in Process_Spacemove() and wherever you want to check for/get a jetpack - -/mob/proc/get_jetpack() - return - -/mob/living/carbon/get_jetpack() - var/obj/item/weapon/tank/jetpack/J = back - if(istype(J)) - return J - -/mob/living/carbon/human/get_jetpack() - var/obj/item/weapon/tank/jetpack/J = ..() - if(!istype(J) && istype(wear_suit, /obj/item/clothing/suit/space/hardsuit)) - var/obj/item/clothing/suit/space/hardsuit/C = wear_suit - J = C.jetpack - return J + +/mob/proc/get_jetpack() + return + +/mob/living/carbon/get_jetpack() + var/obj/item/weapon/tank/jetpack/J = back + if(istype(J)) + return J + +/mob/living/carbon/human/get_jetpack() + var/obj/item/weapon/tank/jetpack/J = ..() + if(!istype(J) && istype(wear_suit, /obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/C = wear_suit + J = C.jetpack + return J diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 67eea01f1a..971afd3aad 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -1,183 +1,183 @@ -/* Types of tanks! - * Contains: - * Oxygen - * Anesthetic - * Air - * Plasma - * Emergency Oxygen - */ - -/* - * Oxygen - */ -/obj/item/weapon/tank/internals/oxygen - name = "oxygen tank" - desc = "A tank of oxygen." - icon_state = "oxygen" - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - force = 10 - dog_fashion = /datum/dog_fashion/back - - -/obj/item/weapon/tank/internals/oxygen/New() - ..() - air_contents.assert_gas("o2") - air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - -/obj/item/weapon/tank/internals/oxygen/yellow - desc = "A tank of oxygen, this one is yellow." - icon_state = "oxygen_f" - dog_fashion = null - -/obj/item/weapon/tank/internals/oxygen/red - desc = "A tank of oxygen, this one is red." - icon_state = "oxygen_fr" - dog_fashion = null - - -/* - * Anesthetic - */ -/obj/item/weapon/tank/internals/anesthetic - name = "anesthetic tank" - desc = "A tank with an N2O/O2 gas mix." - icon_state = "anesthetic" - item_state = "an_tank" - force = 10 - -/obj/item/weapon/tank/internals/anesthetic/New() - ..() - air_contents.assert_gases("o2", "n2o") - air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD - air_contents.gases["n2o"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD - return - -/* - * Air - */ -/obj/item/weapon/tank/internals/air - name = "air tank" - desc = "Mixed anyone?" - icon_state = "oxygen" - force = 10 - dog_fashion = /datum/dog_fashion/back - -/obj/item/weapon/tank/internals/air/New() - ..() - air_contents.assert_gases("o2","n2") - air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD - air_contents.gases["n2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD - return - - -/* - * Plasma - */ -/obj/item/weapon/tank/internals/plasma - name = "plasma tank" - desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." - icon_state = "plasma" - flags = CONDUCT - slot_flags = null //they have no straps! - force = 8 - - -/obj/item/weapon/tank/internals/plasma/New() - ..() - air_contents.assert_gas("plasma") - air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/flamethrower)) - var/obj/item/weapon/flamethrower/F = W - if ((!F.status)||(F.ptank)) - return - if(!user.transferItemToLoc(src, F)) - return - src.master = F - F.ptank = src - F.update_icon() - else - return ..() - -/obj/item/weapon/tank/internals/plasma/full/New() - ..() - air_contents.assert_gas("plasma") - air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - -/* - * Plasmaman Plasma Tank - */ - -/obj/item/weapon/tank/internals/plasmaman - name = "plasma internals tank" - desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." - icon_state = "plasmaman_tank" - item_state = "plasmaman_tank" - force = 10 - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - -/obj/item/weapon/tank/internals/plasmaman/New() - ..() - air_contents.assert_gas("plasma") - air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/weapon/tank/internals/plasmaman/full/New() - ..() - air_contents.assert_gas("plasma") - air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - -/obj/item/weapon/tank/internals/plasmaman/belt - icon_state = "plasmaman_tank_belt" - item_state = "plasmaman_tank_belt" - slot_flags = SLOT_BELT - force = 5 +/* Types of tanks! + * Contains: + * Oxygen + * Anesthetic + * Air + * Plasma + * Emergency Oxygen + */ + +/* + * Oxygen + */ +/obj/item/weapon/tank/internals/oxygen + name = "oxygen tank" + desc = "A tank of oxygen." + icon_state = "oxygen" + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + force = 10 + dog_fashion = /datum/dog_fashion/back + + +/obj/item/weapon/tank/internals/oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/weapon/tank/internals/oxygen/yellow + desc = "A tank of oxygen, this one is yellow." + icon_state = "oxygen_f" + dog_fashion = null + +/obj/item/weapon/tank/internals/oxygen/red + desc = "A tank of oxygen, this one is red." + icon_state = "oxygen_fr" + dog_fashion = null + + +/* + * Anesthetic + */ +/obj/item/weapon/tank/internals/anesthetic + name = "anesthetic tank" + desc = "A tank with an N2O/O2 gas mix." + icon_state = "anesthetic" + item_state = "an_tank" + force = 10 + +/obj/item/weapon/tank/internals/anesthetic/New() + ..() + air_contents.assert_gases("o2", "n2o") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2o"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + +/* + * Air + */ +/obj/item/weapon/tank/internals/air + name = "air tank" + desc = "Mixed anyone?" + icon_state = "oxygen" + force = 10 + dog_fashion = /datum/dog_fashion/back + +/obj/item/weapon/tank/internals/air/New() + ..() + air_contents.assert_gases("o2","n2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + + +/* + * Plasma + */ +/obj/item/weapon/tank/internals/plasma + name = "plasma tank" + desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." + icon_state = "plasma" + flags = CONDUCT + slot_flags = null //they have no straps! + force = 8 + + +/obj/item/weapon/tank/internals/plasma/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/flamethrower)) + var/obj/item/weapon/flamethrower/F = W + if ((!F.status)||(F.ptank)) + return + if(!user.transferItemToLoc(src, F)) + return + src.master = F + F.ptank = src + F.update_icon() + else + return ..() + +/obj/item/weapon/tank/internals/plasma/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/* + * Plasmaman Plasma Tank + */ + +/obj/item/weapon/tank/internals/plasmaman + name = "plasma internals tank" + desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." + icon_state = "plasmaman_tank" + item_state = "plasmaman_tank" + force = 10 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + +/obj/item/weapon/tank/internals/plasmaman/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/plasmaman/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/weapon/tank/internals/plasmaman/belt + icon_state = "plasmaman_tank_belt" + item_state = "plasmaman_tank_belt" + slot_flags = SLOT_BELT + force = 5 volume = 6 - w_class = WEIGHT_CLASS_SMALL //thanks i forgot this - -/obj/item/weapon/tank/internals/plasmaman/belt/full/New() - ..() - air_contents.assert_gas("plasma") - air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - - -/* - * Emergency Oxygen - */ -/obj/item/weapon/tank/internals/emergency_oxygen - name = "emergency oxygen tank" - desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." - icon_state = "emergency" - flags = CONDUCT - slot_flags = SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - force = 4 - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) - - -/obj/item/weapon/tank/internals/emergency_oxygen/New() - ..() - air_contents.assert_gas("o2") - air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/weapon/tank/internals/emergency_oxygen/engi - name = "extended-capacity emergency oxygen tank" - icon_state = "emergency_engi" - volume = 6 - -/obj/item/weapon/tank/internals/emergency_oxygen/double - name = "double emergency oxygen tank" - icon_state = "emergency_engi" - volume = 10 + w_class = WEIGHT_CLASS_SMALL //thanks i forgot this + +/obj/item/weapon/tank/internals/plasmaman/belt/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + + +/* + * Emergency Oxygen + */ +/obj/item/weapon/tank/internals/emergency_oxygen + name = "emergency oxygen tank" + desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." + icon_state = "emergency" + flags = CONDUCT + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = 4 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) + + +/obj/item/weapon/tank/internals/emergency_oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/emergency_oxygen/engi + name = "extended-capacity emergency oxygen tank" + icon_state = "emergency_engi" + volume = 6 + +/obj/item/weapon/tank/internals/emergency_oxygen/double + name = "double emergency oxygen tank" + icon_state = "emergency_engi" + volume = 10 diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index 7431d4ff85..416a843dc3 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -295,6 +295,10 @@ if(nozzle_mode == RESIN_FOAM) if(!Adj|| !isturf(target)) return + for(var/S in target) + if(istype(S, /obj/effect/particle_effect/foam/metal/resin) || istype(S, /obj/structure/foamedmetal/resin)) + to_chat(user, "There's already resin here!") + return if(metal_synthesis_cooldown < 5) var/obj/effect/particle_effect/foam/metal/resin/F = new (get_turf(target)) F.amount = 0 diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 8a37452ffe..3af9673114 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -1,3 +1,7 @@ + +#define SOURCE_PORTAL 1 +#define DESTINATION_PORTAL 2 + /* Teleportation devices. * Contains: * Locator @@ -110,7 +114,7 @@ Frequency: else if (href_list["temp"]) src.temp = null - if (istype(src.loc, /mob)) + if (ismob(src.loc)) attack_self(src.loc) else for(var/mob/M in viewers(1, src)) @@ -136,7 +140,19 @@ Frequency: origin_tech = "magnets=3;bluespace=4" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/active_portals = 0 + var/list/active_portal_pairs + var/max_portal_pairs = 3 + +/obj/item/weapon/hand_tele/Initialize() + . = ..() + active_portal_pairs = list() + +/obj/item/weapon/hand_tele/afterattack(atom/target, mob/user, proximity, params) + if(is_parent_of_portal(target)) + qdel(target) + to_chat(user, "You dispel [target] remotely with \the [src]!") + return ..() + /obj/item/weapon/hand_tele/attack_self(mob/user) var/turf/current_location = get_turf(user)//What turf is the user on? @@ -169,7 +185,7 @@ Frequency: var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") as null|anything in L if (!t1 || user.get_active_held_item() != src || user.incapacitated()) return - if(active_portals >= 3) + if(active_portal_pairs.len >= max_portal_pairs) user.show_message("\The [src] is recharging!") return var/atom/T = L[t1] @@ -178,7 +194,22 @@ Frequency: to_chat(user, "\The [src] is malfunctioning.") return user.show_message("Locked In.", 2) - var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src) - try_move_adjacent(P) - active_portals++ + var/list/obj/effect/portal/created = create_portal_pair(current_location, get_teleport_turf(get_turf(T)), src, 300, 1) + if(!(LAZYLEN(created) == 2)) + return + try_move_adjacent(created[1]) + active_portal_pairs[created[1]] = created[2] add_fingerprint(user) + +/obj/item/weapon/hand_tele/proc/on_portal_destroy(obj/effect/portal/P) + active_portal_pairs -= P //If this portal pair is made by us it'll be erased along with the other portal by the portal. + +/obj/item/weapon/hand_tele/proc/is_parent_of_portal(obj/effect/portal/P) + if(!istype(P)) + return FALSE + if(active_portal_pairs[P]) + return SOURCE_PORTAL + for(var/i in active_portal_pairs) + if(active_portal_pairs[i] == P) + return DESTINATION_PORTAL + return FALSE diff --git a/code/game/objects/items/weapons/teleprod.dm b/code/game/objects/items/weapons/teleprod.dm index d14788e0b1..f551e1489d 100644 --- a/code/game/objects/items/weapons/teleprod.dm +++ b/code/game/objects/items/weapons/teleprod.dm @@ -13,10 +13,10 @@ user.visible_message("[user] accidentally hits themself with [src]!", \ "You accidentally hit yourself with [src]!") if(do_teleport(user, get_turf(user), 50))//honk honk - user.Weaken(stunforce*3) + user.Knockdown(stunforce*3) deductcharge(hitcost) else - user.Weaken(stunforce*3) + user.Knockdown(stunforce*3) deductcharge(hitcost/4) return else diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index c42c4bb3a5..5edea69c19 100755 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -1,739 +1,739 @@ -#define WELDER_FUEL_BURN_INTERVAL 13 - -/* Tools! - * Note: Multitools are /obj/item/device - * - * Contains: - * Wrench - * Screwdriver - * Wirecutters - * Welding Tool - * Crowbar - */ - -/* - * Wrench - */ -/obj/item/weapon/wrench - name = "wrench" - desc = "A wrench with common uses. Can be found in your hand." - icon = 'icons/obj/tools.dmi' - icon_state = "wrench" - flags = CONDUCT - slot_flags = SLOT_BELT - force = 5 - throwforce = 7 - w_class = WEIGHT_CLASS_SMALL - usesound = 'sound/items/Ratchet.ogg' - materials = list(MAT_METAL=150) - origin_tech = "materials=1;engineering=1" - attack_verb = list("bashed", "battered", "bludgeoned", "whacked") - toolspeed = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - -/obj/item/weapon/wrench/suicide_act(mob/user) - user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/wrench/cyborg - name = "automatic wrench" - desc = "An advanced robotic wrench. Can be found in construction cyborgs." - toolspeed = 0.5 - -/obj/item/weapon/wrench/brass - name = "brass wrench" - desc = "A brass wrench. It's faintly warm to the touch." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "wrench_brass" - toolspeed = 0.5 - -/obj/item/weapon/wrench/abductor - name = "alien wrench" - desc = "A polarized wrench. It causes anything placed between the jaws to turn." - icon = 'icons/obj/abductor.dmi' - icon_state = "wrench" - usesound = 'sound/effects/EMPulse.ogg' - toolspeed = 0.1 - origin_tech = "materials=5;engineering=5;abductor=3" - -/obj/item/weapon/wrench/power +#define WELDER_FUEL_BURN_INTERVAL 13 + +/* Tools! + * Note: Multitools are /obj/item/device + * + * Contains: + * Wrench + * Screwdriver + * Wirecutters + * Welding Tool + * Crowbar + */ + +/* + * Wrench + */ +/obj/item/weapon/wrench + name = "wrench" + desc = "A wrench with common uses. Can be found in your hand." + icon = 'icons/obj/tools.dmi' + icon_state = "wrench" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 7 + w_class = WEIGHT_CLASS_SMALL + usesound = 'sound/items/ratchet.ogg' + materials = list(MAT_METAL=150) + origin_tech = "materials=1;engineering=1" + attack_verb = list("bashed", "battered", "bludgeoned", "whacked") + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/wrench/suicide_act(mob/user) + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wrench/cyborg + name = "automatic wrench" + desc = "An advanced robotic wrench. Can be found in construction cyborgs." + toolspeed = 0.5 + +/obj/item/weapon/wrench/brass + name = "brass wrench" + desc = "A brass wrench. It's faintly warm to the touch." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "wrench_brass" + toolspeed = 0.5 + +/obj/item/weapon/wrench/abductor + name = "alien wrench" + desc = "A polarized wrench. It causes anything placed between the jaws to turn." + icon = 'icons/obj/abductor.dmi' + icon_state = "wrench" + usesound = 'sound/effects/empulse.ogg' + toolspeed = 0.1 + origin_tech = "materials=5;engineering=5;abductor=3" + +/obj/item/weapon/wrench/power name = "hand drill" desc = "A simple powered hand drill. It's fitted with a bolt bit." - icon_state = "drill_bolt" - item_state = "drill" - usesound = 'sound/items/drill_use.ogg' - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) - origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get - force = 8 //might or might not be too high, subject to change + icon_state = "drill_bolt" + item_state = "drill" + usesound = 'sound/items/drill_use.ogg' + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get + force = 8 //might or might not be too high, subject to change w_class = WEIGHT_CLASS_SMALL - throwforce = 8 - attack_verb = list("drilled", "screwed", "jabbed") - toolspeed = 0.25 - -/obj/item/weapon/wrench/power/attack_self(mob/user) - playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) - var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power - to_chat(user, "You attach the screw driver bit to [src].") - qdel(src) - user.put_in_active_hand(s_drill) - -/obj/item/weapon/wrench/power/suicide_act(mob/user) - user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/weapon/wrench/medical - name = "medical wrench" - desc = "A medical wrench with common(medical?) uses. Can be found in your hand." - icon_state = "wrench_medical" - force = 2 //MEDICAL - throwforce = 4 - origin_tech = "materials=1;engineering=1;biotech=3" - attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked") - -/obj/item/weapon/wrench/medical/suicide_act(mob/user) - user.visible_message("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!") - // TODO Make them glow with the power of the M E D I C A L W R E N C H - // during their ascension - - // Stun stops them from wandering off - user.Stun(5) - playsound(loc, 'sound/effects/pray.ogg', 50, 1, -1) - - // Let the sound effect finish playing - sleep(20) - - if(!user) - return - - for(var/obj/item/W in user) - user.dropItemToGround(W) - - var/obj/item/weapon/wrench/medical/W = new /obj/item/weapon/wrench/medical(loc) - W.add_fingerprint(user) - W.desc += " For some reason, it reminds you of [user.name]." - - if(!user) - return - - user.dust() - - return OXYLOSS - -/* - * Screwdriver - */ -/obj/item/weapon/screwdriver - name = "screwdriver" - desc = "You can be totally screwy with this." - icon = 'icons/obj/tools.dmi' - icon_state = null - flags = CONDUCT - slot_flags = SLOT_BELT - force = 5 - w_class = WEIGHT_CLASS_TINY - throwforce = 5 - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=75) - attack_verb = list("stabbed") - hitsound = 'sound/weapons/bladeslice.ogg' - usesound = 'sound/items/Screwdriver.ogg' - toolspeed = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - -/obj/item/weapon/screwdriver/suicide_act(mob/user) - user.visible_message("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!") - return(BRUTELOSS) - -/obj/item/weapon/screwdriver/New(loc, var/param_color = null) - ..() - if(!icon_state) - if(!param_color) - param_color = pick("red","blue","pink","brown","green","cyan","yellow") - icon_state = "screwdriver_[param_color]" - - if (prob(75)) - src.pixel_y = rand(0, 16) - return - -/obj/item/weapon/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!istype(M)) - return ..() - if(user.zone_selected != "eyes" && user.zone_selected != "head") - return ..() - if(user.disabilities & CLUMSY && prob(50)) - M = user - return eyestab(M,user) - -/obj/item/weapon/screwdriver/brass - name = "brass screwdriver" - desc = "A screwdriver made of brass. The handle feels freezing cold." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "screwdriver_brass" - toolspeed = 0.5 - -/obj/item/weapon/screwdriver/abductor - name = "alien screwdriver" - desc = "An ultrasonic screwdriver." - icon = 'icons/obj/abductor.dmi' - icon_state = "screwdriver" - usesound = 'sound/items/PSHOOM.ogg' - toolspeed = 0.1 - -/obj/item/weapon/screwdriver/power + throwforce = 8 + attack_verb = list("drilled", "screwed", "jabbed") + toolspeed = 0.25 + +/obj/item/weapon/wrench/power/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) + var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power + to_chat(user, "You attach the screw driver bit to [src].") + qdel(src) + user.put_in_active_hand(s_drill) + +/obj/item/weapon/wrench/power/suicide_act(mob/user) + user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/wrench/medical + name = "medical wrench" + desc = "A medical wrench with common(medical?) uses. Can be found in your hand." + icon_state = "wrench_medical" + force = 2 //MEDICAL + throwforce = 4 + origin_tech = "materials=1;engineering=1;biotech=3" + attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked") + +/obj/item/weapon/wrench/medical/suicide_act(mob/living/user) + user.visible_message("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!") + // TODO Make them glow with the power of the M E D I C A L W R E N C H + // during their ascension + + // Stun stops them from wandering off + user.Stun(100, ignore_canstun = TRUE) + playsound(loc, 'sound/effects/pray.ogg', 50, 1, -1) + + // Let the sound effect finish playing + sleep(20) + + if(!user) + return + + for(var/obj/item/W in user) + user.dropItemToGround(W) + + var/obj/item/weapon/wrench/medical/W = new /obj/item/weapon/wrench/medical(loc) + W.add_fingerprint(user) + W.desc += " For some reason, it reminds you of [user.name]." + + if(!user) + return + + user.dust() + + return OXYLOSS + +/* + * Screwdriver + */ +/obj/item/weapon/screwdriver + name = "screwdriver" + desc = "You can be totally screwy with this." + icon = 'icons/obj/tools.dmi' + icon_state = null + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + w_class = WEIGHT_CLASS_TINY + throwforce = 5 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=75) + attack_verb = list("stabbed") + hitsound = 'sound/weapons/bladeslice.ogg' + usesound = 'sound/items/screwdriver.ogg' + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/screwdriver/suicide_act(mob/user) + user.visible_message("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +/obj/item/weapon/screwdriver/New(loc, var/param_color = null) + ..() + if(!icon_state) + if(!param_color) + param_color = pick("red","blue","pink","brown","green","cyan","yellow") + icon_state = "screwdriver_[param_color]" + + if (prob(75)) + src.pixel_y = rand(0, 16) + return + +/obj/item/weapon/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + if(user.zone_selected != "eyes" && user.zone_selected != "head") + return ..() + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + +/obj/item/weapon/screwdriver/brass + name = "brass screwdriver" + desc = "A screwdriver made of brass. The handle feels freezing cold." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "screwdriver_brass" + toolspeed = 0.5 + +/obj/item/weapon/screwdriver/abductor + name = "alien screwdriver" + desc = "An ultrasonic screwdriver." + icon = 'icons/obj/abductor.dmi' + icon_state = "screwdriver" + usesound = 'sound/items/pshoom.ogg' + toolspeed = 0.1 + +/obj/item/weapon/screwdriver/power name = "hand drill" desc = "A simple powered hand drill. It's fitted with a screw bit." - icon_state = "drill_screw" - item_state = "drill" - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) - origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get - force = 8 //might or might not be too high, subject to change + icon_state = "drill_screw" + item_state = "drill" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get + force = 8 //might or might not be too high, subject to change w_class = WEIGHT_CLASS_SMALL - throwforce = 8 - throw_speed = 2 - throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far - attack_verb = list("drilled", "screwed", "jabbed","whacked") - hitsound = 'sound/items/drill_hit.ogg' - usesound = 'sound/items/drill_use.ogg' - toolspeed = 0.25 - -/obj/item/weapon/screwdriver/power/suicide_act(mob/user) - user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") - return(BRUTELOSS) - -/obj/item/weapon/screwdriver/power/attack_self(mob/user) - playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) - var/obj/item/weapon/wrench/power/b_drill = new /obj/item/weapon/wrench/power - to_chat(user, "You attach the bolt driver bit to [src].") - qdel(src) - user.put_in_active_hand(b_drill) - -/obj/item/weapon/screwdriver/cyborg - name = "powered screwdriver" - desc = "An electrical screwdriver, designed to be both precise and quick." - usesound = 'sound/items/drill_use.ogg' - toolspeed = 0.5 - -/* - * Wirecutters - */ -/obj/item/weapon/wirecutters - name = "wirecutters" - desc = "This cuts wires." - icon = 'icons/obj/tools.dmi' - icon_state = null - flags = CONDUCT - slot_flags = SLOT_BELT - force = 6 - throw_speed = 3 - throw_range = 7 - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=80) - attack_verb = list("pinched", "nipped") - hitsound = 'sound/items/Wirecutter.ogg' - usesound = 'sound/items/Wirecutter.ogg' - origin_tech = "materials=1;engineering=1" - toolspeed = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - + throwforce = 8 + throw_speed = 2 + throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far + attack_verb = list("drilled", "screwed", "jabbed","whacked") + hitsound = 'sound/items/drill_hit.ogg' + usesound = 'sound/items/drill_use.ogg' + toolspeed = 0.25 -/obj/item/weapon/wirecutters/New(loc, var/param_color = null) - ..() - if(!icon_state) - if(!param_color) - param_color = pick("yellow","red") - icon_state = "cutters_[param_color]" - -/obj/item/weapon/wirecutters/attack(mob/living/carbon/C, mob/user) - if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/weapon/restraints/handcuffs/cable)) - user.visible_message("[user] cuts [C]'s restraints with [src]!") - qdel(C.handcuffed) - C.handcuffed = null - if(C.buckled && C.buckled.buckle_requires_restraints) - C.buckled.unbuckle_mob(C) - C.update_handcuffed() - return - else - ..() - -/obj/item/weapon/wirecutters/suicide_act(mob/user) - user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, usesound, 50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/wirecutters/brass - name = "brass wirecutters" - desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "cutters_brass" - toolspeed = 0.5 - -/obj/item/weapon/wirecutters/abductor - name = "alien wirecutters" - desc = "Extremely sharp wirecutters, made out of a silvery-green metal." - icon = 'icons/obj/abductor.dmi' - icon_state = "cutters" - toolspeed = 0.1 - origin_tech = "materials=5;engineering=4;abductor=3" - -/obj/item/weapon/wirecutters/cyborg - name = "wirecutters" - desc = "This cuts wires." - toolspeed = 0.5 - -/obj/item/weapon/wirecutters/power +/obj/item/weapon/screwdriver/power/suicide_act(mob/user) + user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +/obj/item/weapon/screwdriver/power/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) + var/obj/item/weapon/wrench/power/b_drill = new /obj/item/weapon/wrench/power + to_chat(user, "You attach the bolt driver bit to [src].") + qdel(src) + user.put_in_active_hand(b_drill) + +/obj/item/weapon/screwdriver/cyborg + name = "powered screwdriver" + desc = "An electrical screwdriver, designed to be both precise and quick." + usesound = 'sound/items/drill_use.ogg' + toolspeed = 0.5 + +/* + * Wirecutters + */ +/obj/item/weapon/wirecutters + name = "wirecutters" + desc = "This cuts wires." + icon = 'icons/obj/tools.dmi' + icon_state = null + flags = CONDUCT + slot_flags = SLOT_BELT + force = 6 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=80) + attack_verb = list("pinched", "nipped") + hitsound = 'sound/items/wirecutter.ogg' + usesound = 'sound/items/wirecutter.ogg' + origin_tech = "materials=1;engineering=1" + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + + +/obj/item/weapon/wirecutters/New(loc, var/param_color = null) + ..() + if(!icon_state) + if(!param_color) + param_color = pick("yellow","red") + icon_state = "cutters_[param_color]" + +/obj/item/weapon/wirecutters/attack(mob/living/carbon/C, mob/user) + if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/weapon/restraints/handcuffs/cable)) + user.visible_message("[user] cuts [C]'s restraints with [src]!") + qdel(C.handcuffed) + C.handcuffed = null + if(C.buckled && C.buckled.buckle_requires_restraints) + C.buckled.unbuckle_mob(C) + C.update_handcuffed() + return + else + ..() + +/obj/item/weapon/wirecutters/suicide_act(mob/user) + user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, usesound, 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wirecutters/brass + name = "brass wirecutters" + desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "cutters_brass" + toolspeed = 0.5 + +/obj/item/weapon/wirecutters/abductor + name = "alien wirecutters" + desc = "Extremely sharp wirecutters, made out of a silvery-green metal." + icon = 'icons/obj/abductor.dmi' + icon_state = "cutters" + toolspeed = 0.1 + origin_tech = "materials=5;engineering=4;abductor=3" + +/obj/item/weapon/wirecutters/cyborg + name = "wirecutters" + desc = "This cuts wires." + toolspeed = 0.5 + +/obj/item/weapon/wirecutters/power name = "jaws of life" desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head." - icon_state = "jaws_cutter" - item_state = "jawsoflife" - origin_tech = "materials=2;engineering=2" - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) - usesound = 'sound/items/jaws_cut.ogg' - toolspeed = 0.25 - -/obj/item/weapon/wirecutters/power/suicide_act(mob/user) - user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") - playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) - if(iscarbon(user)) - var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") - if(BP) - BP.drop_limb() - playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/wirecutters/power/attack_self(mob/user) - playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1) - var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power - to_chat(user, "You attach the pry jaws to [src].") - qdel(src) - user.put_in_active_hand(pryjaws) -/* - * Welding Tool - */ -/obj/item/weapon/weldingtool - name = "welding tool" - desc = "A standard edition welder provided by NanoTrasen." - icon = 'icons/obj/tools.dmi' - icon_state = "welder" - item_state = "welder" - flags = CONDUCT - slot_flags = SLOT_BELT - force = 3 - throwforce = 5 - hitsound = "swing_hit" - usesound = 'sound/items/Welder.ogg' - var/acti_sound = 'sound/items/WelderActivate.ogg' - var/deac_sound = 'sound/items/WelderDeactivate.ogg' - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) - resistance_flags = FIRE_PROOF - - materials = list(MAT_METAL=70, MAT_GLASS=30) - origin_tech = "engineering=1;plasmatech=1" - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) - var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) - var/max_fuel = 20 //The max amount of fuel the welder can hold - var/change_icons = 1 - var/can_off_process = 0 - var/light_intensity = 2 //how powerful the emitted light is when used. - var/burned_fuel_for = 0 //when fuel was last removed - heat = 3800 - toolspeed = 1 - -/obj/item/weapon/weldingtool/New() - ..() - create_reagents(max_fuel) - reagents.add_reagent("welding_fuel", max_fuel) - update_icon() - return - - -/obj/item/weapon/weldingtool/proc/update_torch() - cut_overlays() - if(welding) - add_overlay("[initial(icon_state)]-on") - item_state = "[initial(item_state)]1" - else - item_state = "[initial(item_state)]" - - -/obj/item/weapon/weldingtool/update_icon() - if(change_icons) - var/ratio = get_fuel() / max_fuel - ratio = Ceiling(ratio*4) * 25 - if(ratio == 100) - icon_state = initial(icon_state) - else - icon_state = "[initial(icon_state)][ratio]" - update_torch() - return - - -/obj/item/weapon/weldingtool/process() - switch(welding) - if(0) - force = 3 - damtype = "brute" - update_icon() - if(!can_off_process) - STOP_PROCESSING(SSobj, src) - return - //Welders left on now use up fuel, but lets not have them run out quite that fast - if(1) - force = 15 - damtype = "fire" - ++burned_fuel_for - if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) - remove_fuel(1) - update_icon() - - //This is to start fires. process() is only called if the welder is on. - open_flame() - - -/obj/item/weapon/weldingtool/suicide_act(mob/user) - user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") - return (FIRELOSS) - - -/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - flamethrower_screwdriver(I, user) - else if(istype(I, /obj/item/stack/rods)) - flamethrower_rods(I, user) - else - return ..() - - -/obj/item/weapon/weldingtool/attack(mob/living/carbon/human/H, mob/user) - if(!istype(H)) - return ..() - - var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - - if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) - if(src.remove_fuel(1)) - playsound(loc, usesound, 50, 1) - if(user == H) - user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", "You start fixing some of the dents on [H]'s [affecting.name].") - if(!do_mob(user, H, 50)) - return - item_heal_robotic(H, user, 15, 0) - else - return ..() - - -/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity) - if(!proximity) return - - if(welding) - remove_fuel(1) - var/turf/location = get_turf(user) - location.hotspot_expose(700, 50, 1) - if(get_fuel() <= 0) - set_light(0) - - if(isliving(O)) - var/mob/living/L = O - if(L.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") - log_game("[key_name(user)] set [key_name(L)] on fire") - - -/obj/item/weapon/weldingtool/attack_self(mob/user) - switched_on(user) - if(welding) - set_light(light_intensity) - - update_icon() - - -//Returns the amount of fuel in the welder -/obj/item/weapon/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("welding_fuel") - - -//Removes fuel from the welding tool. If a mob is passed, it will try to flash the mob's eyes. This should probably be renamed to use() -/obj/item/weapon/weldingtool/proc/remove_fuel(amount = 1, mob/living/M = null) - if(!welding || !check_fuel()) - return 0 - if(amount) - burned_fuel_for = 0 - if(get_fuel() >= amount) - reagents.remove_reagent("welding_fuel", amount) - check_fuel() - if(M) - M.flash_act(light_intensity) - return TRUE - else - if(M) - to_chat(M, "You need more welding fuel to complete this task!") - return FALSE - - -//Turns off the welder if there is no more fuel (does this really need to be its own proc?) -/obj/item/weapon/weldingtool/proc/check_fuel(mob/user) - if(get_fuel() <= 0 && welding) - switched_on(user) - update_icon() - //mob icon update - if(ismob(loc)) - var/mob/M = loc - M.update_inv_hands(0) - - return 0 - return 1 - -//Switches the welder on -/obj/item/weapon/weldingtool/proc/switched_on(mob/user) - if(!status) - to_chat(user, "[src] can't be turned on while unsecured!") - return - welding = !welding - if(welding) - if(get_fuel() >= 1) - to_chat(user, "You switch [src] on.") - playsound(loc, acti_sound, 50, 1) - force = 15 - damtype = "fire" - hitsound = 'sound/items/welder.ogg' - update_icon() - START_PROCESSING(SSobj, src) - else - to_chat(user, "You need more fuel!") - switched_off(user) - else - to_chat(user, "You switch [src] off.") - playsound(loc, deac_sound, 50, 1) - switched_off(user) - -//Switches the welder off -/obj/item/weapon/weldingtool/proc/switched_off(mob/user) - welding = 0 - set_light(0) - - force = 3 - damtype = "brute" - hitsound = "swing_hit" - update_icon() - - -/obj/item/weapon/weldingtool/examine(mob/user) - ..() - to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].") - -/obj/item/weapon/weldingtool/is_hot() - return welding * heat - -//Returns whether or not the welding tool is currently on. -/obj/item/weapon/weldingtool/proc/isOn() - return welding - - -/obj/item/weapon/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user) - if(welding) - to_chat(user, "Turn it off first!") - return - status = !status - if(status) - to_chat(user, "You resecure [src].") - else - to_chat(user, "[src] can now be attached and modified.") - add_fingerprint(user) - -/obj/item/weapon/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user) - if(!status) - var/obj/item/stack/rods/R = I - if (R.use(1)) - var/obj/item/weapon/flamethrower/F = new /obj/item/weapon/flamethrower(user.loc) - if(!remove_item_from_storage(F)) - user.transferItemToLoc(src, F, TRUE) - F.weldtool = src - add_fingerprint(user) - to_chat(user, "You add a rod to a welder, starting to build a flamethrower.") - user.put_in_hands(F) - else - to_chat(user, "You need one rod to start building a flamethrower!") - -/obj/item/weapon/weldingtool/ignition_effect(atom/A, mob/user) - if(welding && remove_fuel(1, user)) - . = "[user] casually lights [A] with [src], what a badass." - else - . = "" - -/obj/item/weapon/weldingtool/largetank - name = "industrial welding tool" - desc = "A slightly larger welder with a larger tank." - icon_state = "indwelder" - max_fuel = 40 - materials = list(MAT_GLASS=60) - origin_tech = "engineering=2;plasmatech=2" - -/obj/item/weapon/weldingtool/largetank/cyborg - name = "integrated welding tool" - desc = "An advanced welder designed to be used in robotic systems." - toolspeed = 0.5 - -/obj/item/weapon/weldingtool/largetank/flamethrower_screwdriver() - return - - -/obj/item/weapon/weldingtool/mini - name = "emergency welding tool" - desc = "A miniature welder used during emergencies." - icon_state = "miniwelder" - max_fuel = 10 - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=30, MAT_GLASS=10) - change_icons = 0 - -/obj/item/weapon/weldingtool/mini/flamethrower_screwdriver() - return - -/obj/item/weapon/weldingtool/abductor - name = "alien welding tool" - desc = "An alien welding tool. Whatever fuel it uses, it never runs out." - icon = 'icons/obj/abductor.dmi' - icon_state = "welder" - toolspeed = 0.1 - light_intensity = 0 - change_icons = 0 - origin_tech = "plasmatech=5;engineering=5;abductor=3" - -/obj/item/weapon/weldingtool/abductor/process() - if(get_fuel() <= max_fuel) - reagents.add_reagent("welding_fuel", 1) - ..() - -/obj/item/weapon/weldingtool/hugetank - name = "upgraded industrial welding tool" - desc = "An upgraded welder based of the industrial welder." - icon_state = "upindwelder" - item_state = "upindwelder" - max_fuel = 80 - materials = list(MAT_METAL=70, MAT_GLASS=120) - origin_tech = "engineering=3;plasmatech=2" - -/obj/item/weapon/weldingtool/experimental - name = "experimental welding tool" - desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes." - icon_state = "exwelder" - item_state = "exwelder" - max_fuel = 40 - materials = list(MAT_METAL=70, MAT_GLASS=120) - origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4" - var/last_gen = 0 - change_icons = 0 - can_off_process = 1 - light_intensity = 1 - toolspeed = 0.5 - var/nextrefueltick = 0 - -/obj/item/weapon/weldingtool/experimental/brass - name = "brass welding tool" - desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "brasswelder" - item_state = "brasswelder" - - -/obj/item/weapon/weldingtool/experimental/process() - ..() - if(get_fuel() < max_fuel && nextrefueltick < world.time) - nextrefueltick = world.time + 10 - reagents.add_reagent("welding_fuel", 1) - - -/* - * Crowbar - */ - -/obj/item/weapon/crowbar - name = "pocket crowbar" - desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." - icon = 'icons/obj/tools.dmi' - icon_state = "crowbar" - usesound = 'sound/items/Crowbar.ogg' - flags = CONDUCT - slot_flags = SLOT_BELT - force = 5 - throwforce = 7 - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) - origin_tech = "engineering=1;combat=1" - attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") - toolspeed = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) - -/obj/item/weapon/crowbar/suicide_act(mob/user) - user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/crowbar/red - icon_state = "crowbar_red" - force = 8 - -/obj/item/weapon/crowbar/brass - name = "brass crowbar" - desc = "A brass crowbar. It feels faintly warm to the touch." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "crowbar_brass" - toolspeed = 0.5 - -/obj/item/weapon/crowbar/abductor - name = "alien crowbar" - desc = "A hard-light crowbar. It appears to pry by itself, without any effort required." - icon = 'icons/obj/abductor.dmi' - usesound = 'sound/weapons/sonic_jackhammer.ogg' - icon_state = "crowbar" - toolspeed = 0.1 - origin_tech = "combat=4;engineering=4;abductor=3" - -/obj/item/weapon/crowbar/large - name = "crowbar" - desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." - force = 12 - w_class = WEIGHT_CLASS_NORMAL - throw_speed = 3 - throw_range = 3 - materials = list(MAT_METAL=70) - icon_state = "crowbar_large" - item_state = "crowbar" - toolspeed = 0.5 - -/obj/item/weapon/crowbar/cyborg - name = "hydraulic crowbar" - desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs." - usesound = 'sound/items/jaws_pry.ogg' - force = 10 - toolspeed = 0.5 - -/obj/item/weapon/crowbar/power + icon_state = "jaws_cutter" + item_state = "jawsoflife" + origin_tech = "materials=2;engineering=2" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + usesound = 'sound/items/jaws_cut.ogg' + toolspeed = 0.25 + +/obj/item/weapon/wirecutters/power/suicide_act(mob/user) + user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") + playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wirecutters/power/attack_self(mob/user) + playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1) + var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power + to_chat(user, "You attach the pry jaws to [src].") + qdel(src) + user.put_in_active_hand(pryjaws) +/* + * Welding Tool + */ +/obj/item/weapon/weldingtool + name = "welding tool" + desc = "A standard edition welder provided by NanoTrasen." + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 3 + throwforce = 5 + hitsound = "swing_hit" + usesound = 'sound/items/welder.ogg' + var/acti_sound = 'sound/items/welderactivate.ogg' + var/deac_sound = 'sound/items/welderdeactivate.ogg' + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + + materials = list(MAT_METAL=70, MAT_GLASS=30) + origin_tech = "engineering=1;plasmatech=1" + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + var/change_icons = 1 + var/can_off_process = 0 + var/light_intensity = 2 //how powerful the emitted light is when used. + var/burned_fuel_for = 0 //when fuel was last removed + heat = 3800 + toolspeed = 1 + +/obj/item/weapon/weldingtool/New() + ..() + create_reagents(max_fuel) + reagents.add_reagent("welding_fuel", max_fuel) + update_icon() + return + + +/obj/item/weapon/weldingtool/proc/update_torch() + cut_overlays() + if(welding) + add_overlay("[initial(icon_state)]-on") + item_state = "[initial(item_state)]1" + else + item_state = "[initial(item_state)]" + + +/obj/item/weapon/weldingtool/update_icon() + if(change_icons) + var/ratio = get_fuel() / max_fuel + ratio = Ceiling(ratio*4) * 25 + if(ratio == 100) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)][ratio]" + update_torch() + return + + +/obj/item/weapon/weldingtool/process() + switch(welding) + if(0) + force = 3 + damtype = "brute" + update_icon() + if(!can_off_process) + STOP_PROCESSING(SSobj, src) + return + //Welders left on now use up fuel, but lets not have them run out quite that fast + if(1) + force = 15 + damtype = "fire" + ++burned_fuel_for + if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) + remove_fuel(1) + update_icon() + + //This is to start fires. process() is only called if the welder is on. + open_flame() + + +/obj/item/weapon/weldingtool/suicide_act(mob/user) + user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") + return (FIRELOSS) + + +/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + flamethrower_screwdriver(I, user) + else if(istype(I, /obj/item/stack/rods)) + flamethrower_rods(I, user) + else + return ..() + + +/obj/item/weapon/weldingtool/attack(mob/living/carbon/human/H, mob/user) + if(!istype(H)) + return ..() + + var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) + + if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) + if(src.remove_fuel(1)) + playsound(loc, usesound, 50, 1) + if(user == H) + user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", "You start fixing some of the dents on [H]'s [affecting.name].") + if(!do_mob(user, H, 50)) + return + item_heal_robotic(H, user, 15, 0) + else + return ..() + + +/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity) + if(!proximity) return + + if(welding) + remove_fuel(1) + var/turf/location = get_turf(user) + location.hotspot_expose(700, 50, 1) + if(get_fuel() <= 0) + set_light(0) + + if(isliving(O)) + var/mob/living/L = O + if(L.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") + log_game("[key_name(user)] set [key_name(L)] on fire") + + +/obj/item/weapon/weldingtool/attack_self(mob/user) + switched_on(user) + if(welding) + set_light(light_intensity) + + update_icon() + + +//Returns the amount of fuel in the welder +/obj/item/weapon/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("welding_fuel") + + +//Removes fuel from the welding tool. If a mob is passed, it will try to flash the mob's eyes. This should probably be renamed to use() +/obj/item/weapon/weldingtool/proc/remove_fuel(amount = 1, mob/living/M = null) + if(!welding || !check_fuel()) + return 0 + if(amount) + burned_fuel_for = 0 + if(get_fuel() >= amount) + reagents.remove_reagent("welding_fuel", amount) + check_fuel() + if(M) + M.flash_act(light_intensity) + return TRUE + else + if(M) + to_chat(M, "You need more welding fuel to complete this task!") + return FALSE + + +//Turns off the welder if there is no more fuel (does this really need to be its own proc?) +/obj/item/weapon/weldingtool/proc/check_fuel(mob/user) + if(get_fuel() <= 0 && welding) + switched_on(user) + update_icon() + //mob icon update + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands(0) + + return 0 + return 1 + +//Switches the welder on +/obj/item/weapon/weldingtool/proc/switched_on(mob/user) + if(!status) + to_chat(user, "[src] can't be turned on while unsecured!") + return + welding = !welding + if(welding) + if(get_fuel() >= 1) + to_chat(user, "You switch [src] on.") + playsound(loc, acti_sound, 50, 1) + force = 15 + damtype = "fire" + hitsound = 'sound/items/welder.ogg' + update_icon() + START_PROCESSING(SSobj, src) + else + to_chat(user, "You need more fuel!") + switched_off(user) + else + to_chat(user, "You switch [src] off.") + playsound(loc, deac_sound, 50, 1) + switched_off(user) + +//Switches the welder off +/obj/item/weapon/weldingtool/proc/switched_off(mob/user) + welding = 0 + set_light(0) + + force = 3 + damtype = "brute" + hitsound = "swing_hit" + update_icon() + + +/obj/item/weapon/weldingtool/examine(mob/user) + ..() + to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].") + +/obj/item/weapon/weldingtool/is_hot() + return welding * heat + +//Returns whether or not the welding tool is currently on. +/obj/item/weapon/weldingtool/proc/isOn() + return welding + + +/obj/item/weapon/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user) + if(welding) + to_chat(user, "Turn it off first!") + return + status = !status + if(status) + to_chat(user, "You resecure [src].") + else + to_chat(user, "[src] can now be attached and modified.") + add_fingerprint(user) + +/obj/item/weapon/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user) + if(!status) + var/obj/item/stack/rods/R = I + if (R.use(1)) + var/obj/item/weapon/flamethrower/F = new /obj/item/weapon/flamethrower(user.loc) + if(!remove_item_from_storage(F)) + user.transferItemToLoc(src, F, TRUE) + F.weldtool = src + add_fingerprint(user) + to_chat(user, "You add a rod to a welder, starting to build a flamethrower.") + user.put_in_hands(F) + else + to_chat(user, "You need one rod to start building a flamethrower!") + +/obj/item/weapon/weldingtool/ignition_effect(atom/A, mob/user) + if(welding && remove_fuel(1, user)) + . = "[user] casually lights [A] with [src], what a badass." + else + . = "" + +/obj/item/weapon/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + materials = list(MAT_GLASS=60) + origin_tech = "engineering=2;plasmatech=2" + +/obj/item/weapon/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + toolspeed = 0.5 + +/obj/item/weapon/weldingtool/largetank/flamethrower_screwdriver() + return + + +/obj/item/weapon/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL=30, MAT_GLASS=10) + change_icons = 0 + +/obj/item/weapon/weldingtool/mini/flamethrower_screwdriver() + return + +/obj/item/weapon/weldingtool/abductor + name = "alien welding tool" + desc = "An alien welding tool. Whatever fuel it uses, it never runs out." + icon = 'icons/obj/abductor.dmi' + icon_state = "welder" + toolspeed = 0.1 + light_intensity = 0 + change_icons = 0 + origin_tech = "plasmatech=5;engineering=5;abductor=3" + +/obj/item/weapon/weldingtool/abductor/process() + if(get_fuel() <= max_fuel) + reagents.add_reagent("welding_fuel", 1) + ..() + +/obj/item/weapon/weldingtool/hugetank + name = "upgraded industrial welding tool" + desc = "An upgraded welder based of the industrial welder." + icon_state = "upindwelder" + item_state = "upindwelder" + max_fuel = 80 + materials = list(MAT_METAL=70, MAT_GLASS=120) + origin_tech = "engineering=3;plasmatech=2" + +/obj/item/weapon/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes." + icon_state = "exwelder" + item_state = "exwelder" + max_fuel = 40 + materials = list(MAT_METAL=70, MAT_GLASS=120) + origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4" + var/last_gen = 0 + change_icons = 0 + can_off_process = 1 + light_intensity = 1 + toolspeed = 0.5 + var/nextrefueltick = 0 + +/obj/item/weapon/weldingtool/experimental/brass + name = "brass welding tool" + desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "brasswelder" + item_state = "brasswelder" + + +/obj/item/weapon/weldingtool/experimental/process() + ..() + if(get_fuel() < max_fuel && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("welding_fuel", 1) + + +/* + * Crowbar + */ + +/obj/item/weapon/crowbar + name = "pocket crowbar" + desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." + icon = 'icons/obj/tools.dmi' + icon_state = "crowbar" + usesound = 'sound/items/crowbar.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 7 + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=50) + origin_tech = "engineering=1;combat=1" + attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/crowbar/suicide_act(mob/user) + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/crowbar/red + icon_state = "crowbar_red" + force = 8 + +/obj/item/weapon/crowbar/brass + name = "brass crowbar" + desc = "A brass crowbar. It feels faintly warm to the touch." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "crowbar_brass" + toolspeed = 0.5 + +/obj/item/weapon/crowbar/abductor + name = "alien crowbar" + desc = "A hard-light crowbar. It appears to pry by itself, without any effort required." + icon = 'icons/obj/abductor.dmi' + usesound = 'sound/weapons/sonic_jackhammer.ogg' + icon_state = "crowbar" + toolspeed = 0.1 + origin_tech = "combat=4;engineering=4;abductor=3" + +/obj/item/weapon/crowbar/large + name = "crowbar" + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." + force = 12 + w_class = WEIGHT_CLASS_NORMAL + throw_speed = 3 + throw_range = 3 + materials = list(MAT_METAL=70) + icon_state = "crowbar_large" + item_state = "crowbar" + toolspeed = 0.5 + +/obj/item/weapon/crowbar/cyborg + name = "hydraulic crowbar" + desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs." + usesound = 'sound/items/jaws_pry.ogg' + force = 10 + toolspeed = 0.5 + +/obj/item/weapon/crowbar/power name = "jaws of life" desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a prying head." - icon_state = "jaws_pry" - item_state = "jawsoflife" - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) - origin_tech = "materials=2;engineering=2" - usesound = 'sound/items/jaws_pry.ogg' - force = 15 - toolspeed = 0.25 - -/obj/item/weapon/crowbar/power/suicide_act(mob/user) - user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/crowbar/power/attack_self(mob/user) - playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1) - var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power - to_chat(user, "You attach the cutting jaws to [src].") - qdel(src) - user.put_in_active_hand(cutjaws) - -#undef WELDER_FUEL_BURN_INTERVAL + icon_state = "jaws_pry" + item_state = "jawsoflife" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" + usesound = 'sound/items/jaws_pry.ogg' + force = 15 + toolspeed = 0.25 + +/obj/item/weapon/crowbar/power/suicide_act(mob/user) + user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/crowbar/power/attack_self(mob/user) + playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1) + var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power + to_chat(user, "You attach the cutting jaws to [src].") + qdel(src) + user.put_in_active_hand(cutjaws) + +#undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 99383a615b..ddcbc0a3f8 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -313,7 +313,7 @@ else user.adjustStaminaLoss(25) -/obj/item/weapon/twohanded/dualsaber/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/weapon/twohanded/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(wielded) return ..() return 0 @@ -518,7 +518,7 @@ armour_penetration = 100 force_on = 30 -/obj/item/weapon/twohanded/required/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/twohanded/required/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("Ranged attacks just make [owner] angrier!") playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) @@ -618,10 +618,10 @@ /obj/item/weapon/twohanded/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) if(!proximity || !wielded) return - if(istype(target, /turf/closed/wall)) + if(iswallturf(target)) var/turf/closed/wall/W = target user.visible_message("[user] blasts \the [target] with \the [src]!") - playsound(target, 'sound/magic/Disintegrate.ogg', 100, 1) + playsound(target, 'sound/magic/disintegrate.ogg', 100, 1) W.break_wall() return 1 ..() @@ -644,7 +644,7 @@ slot_flags = SLOT_BACK hitsound = 'sound/weapons/bladeslice.ogg' -/obj/item/weapon/twohanded/vibro_weapon/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/twohanded/vibro_weapon/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(wielded) final_block_chance *= 2 if(wielded || attack_type != PROJECTILE_ATTACK) diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 63138f453c..5424e45044 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -69,7 +69,7 @@ /obj/item/weapon/vending_refill/clothing machine_name = "ClothesMate" icon_state = "refill_clothes" - charges = list(35, 4, 6)// of 101 standard, 12 contraband, 10 premium(?) + charges = list(31, 4, 4)// of 101 standard, 12 contraband, 10 premium(?) init_charges = list(31, 4, 4) /obj/item/weapon/vending_refill/medical diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 084ac19f63..7a14655e01 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -185,7 +185,7 @@ remove_atom_colour(ADMIN_COLOUR_PRIORITY) name = new_name - playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + playsound(user, 'sound/items/screwdriver2.ogg', 50, 1) /obj/item/weapon/katana name = "katana" @@ -280,7 +280,7 @@ throw_range = 6 materials = list(MAT_METAL=12000) origin_tech = "engineering=3;combat=2" - hitsound = 'sound/weapons/Genhit.ogg' + hitsound = 'sound/weapons/genhit.ogg' attack_verb = list("stubbed", "poked") resistance_flags = FIRE_PROOF var/extended = 0 @@ -302,7 +302,7 @@ throwforce = 5 icon_state = "switchblade" attack_verb = list("stubbed", "poked") - hitsound = 'sound/weapons/Genhit.ogg' + hitsound = 'sound/weapons/genhit.ogg' sharpness = IS_BLUNT /obj/item/weapon/switchblade/suicide_act(mob/user) @@ -440,6 +440,11 @@ origin_tech = "engineering=3;combat=3;biotech=3" needs_permit = 0 +/obj/item/weapon/melee/chainofcommand/tailwhip/kitty + name = "cat o' nine tails" + desc = "A whip fashioned from the severed tails of cats." + icon_state = "catwhip" + /obj/item/weapon/melee/skateboard name = "skateboard" desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." @@ -494,7 +499,7 @@ user.visible_message("It's a home run!") target.throw_at(throw_target, rand(8,10), 14, user) target.ex_act(2) - playsound(get_turf(src), 'sound/weapons/HOMERUN.ogg', 100, 1) + playsound(get_turf(src), 'sound/weapons/homerun.ogg', 100, 1) homerun_ready = 0 return else if(!target.anchored) @@ -551,3 +556,12 @@ bug.death(1) else qdel(target) + +/obj/item/weapon/circlegame + name = "circled hand" + desc = "If somebody looks at this while it's below your waist, you get to bop them." + icon_state = "madeyoulook" + force = 0 + throwforce = 0 + flags = DROPDEL | ABSTRACT + attack_verb = list("bopped") diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 747fb1b741..d5d7d90d0b 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -35,7 +35,7 @@ else playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/hitby(atom/movable/AM) ..() @@ -132,7 +132,7 @@ if(BRUTE) playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if(BURN) - playsound(src, 'sound/items/Welder.ogg', 50, 1) + playsound(src, 'sound/items/welder.ogg', 50, 1) if(TOX) playsound(src, 'sound/effects/spray2.ogg', 50, 1) return 0 @@ -172,7 +172,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e if(armour_value != "acid" && armour_value != "fire") armor[armour_value] = max(armor[armour_value] - round(sqrt(acid_level)*0.1), 0) if(prob(33)) - playsound(loc, 'sound/items/Welder.ogg', 150, 1) + playsound(loc, 'sound/items/welder.ogg', 150, 1) take_damage(min(1 + round(sqrt(acid_level)*0.3), 300), BURN, "acid", 0) acid_level = max(acid_level - (5 + 3*round(sqrt(acid_level))), 0) @@ -262,4 +262,4 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //returns how much the object blocks an explosion /obj/proc/GetExplosionBlock() - CRASH("Unimplemented GetExplosionBlock()") \ No newline at end of file + CRASH("Unimplemented GetExplosionBlock()") diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 9a7376c9eb..233253e11d 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -23,7 +23,8 @@ var/persistence_replacement //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. var/unique_rename = FALSE // can you customize the description/name of the thing? - + var/current_skin //Has the item been reskinned? + var/list/unique_reskin //List of options to reskin. var/dangerous_possession = FALSE //Admin possession yes/no /obj/vv_edit_var(vname, vval) @@ -196,6 +197,27 @@ ..() if(unique_rename) to_chat(user, "Use a pen on it to rename it or change its description.") + if(unique_reskin && !current_skin) + to_chat(user, "Alt-click it to reskin it.") + +/obj/AltClick(mob/user) + . = ..() + if(unique_reskin && !current_skin && in_range(user,src)) + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + reskin_obj(user) + +/obj/proc/reskin_obj(mob/M) + if(!LAZYLEN(unique_reskin)) + return + var/choice = input(M,"Warning, you can only reskin [src] once!","Reskin Object") as null|anything in unique_reskin + if(!QDELETED(src) && choice && !current_skin && !M.incapacitated() && in_range(M,src)) + if(!unique_reskin[choice]) + return + current_skin = choice + icon_state = unique_reskin[choice] + to_chat(M, "[src] is now skinned as '[choice].'") /obj/proc/gang_contraband_value() return 0 diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index a93abfbf9d..8ae4ef71ed 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -4,9 +4,9 @@ obj_integrity = 300 max_integrity = 300 var/climb_time = 20 - var/climb_stun = 2 + var/climb_stun = 20 var/climbable = FALSE - var/mob/structureclimber + var/mob/living/structureclimber var/broken = 0 //similar to machinery's stat BROKEN /obj/structure/Initialize() @@ -33,7 +33,7 @@ if(structureclimber && structureclimber != user) user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) - structureclimber.Weaken(2) + structureclimber.Knockdown(40) structureclimber.visible_message("[structureclimber.name] has been knocked off the [src]", "You're knocked off the [src]!", "You see [structureclimber.name] get knocked off the [src]") interact(user) @@ -48,7 +48,7 @@ . = ..() if(!climbable) return - if(ismob(O) && user == O && iscarbon(user)) + if(user == O && iscarbon(O)) if(user.canmove) climb_structure(user) return @@ -68,7 +68,7 @@ . = step(A,get_dir(A,src.loc)) density = 1 -/obj/structure/proc/climb_structure(mob/user) +/obj/structure/proc/climb_structure(mob/living/user) src.add_fingerprint(user) user.visible_message("[user] starts climbing onto [src].", \ "You start climbing onto [src]...") @@ -84,7 +84,8 @@ user.visible_message("[user] climbs onto [src].", \ "You climb onto [src].") add_logs(user, src, "climbed onto") - user.Stun(climb_stun) + if(climb_stun) + user.Stun(climb_stun) . = 1 else to_chat(user, "You fail to climb onto [src].") diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 7820031700..4da065bac1 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -1,277 +1,277 @@ -/obj/structure/AIcore - density = 1 - anchored = 0 - name = "\improper AI core" - icon = 'icons/mob/AI.dmi' - icon_state = "0" - obj_integrity = 500 - max_integrity = 500 - var/state = 0 - var/datum/ai_laws/laws = new() - var/obj/item/weapon/circuitboard/circuit = null - var/obj/item/device/mmi/brain = null - -/obj/structure/AIcore/New() - ..() - laws.set_laws_config() - -/obj/structure/AIcore/Destroy() - if(circuit) - qdel(circuit) - circuit = null - if(brain) - qdel(brain) - brain = null - return ..() - -/obj/structure/AIcore/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/weapon/wrench)) - return default_unfasten_wrench(user, P, 20) - if(!anchored) - if(istype(P, /obj/item/weapon/weldingtool)) - if(state != EMPTY_CORE) - to_chat(user, "The core must be empty to deconstruct it!") - return - var/obj/item/weapon/weldingtool/WT = P - if(!WT.isOn()) - to_chat(user, "The welder must be on for this task!") - return - playsound(loc, WT.usesound, 50, 1) - to_chat(user, "You start to deconstruct the frame...") - if(do_after(user, 20*P.toolspeed, target = src) && src && state == EMPTY_CORE && WT && WT.remove_fuel(0, user)) - to_chat(user, "You deconstruct the frame.") - deconstruct(TRUE) - return - else - switch(state) - if(EMPTY_CORE) - if(istype(P, /obj/item/weapon/circuitboard/aicore)) - if(!user.drop_item()) - return - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You place the circuit board inside the frame.") - update_icon() - state = CIRCUIT_CORE - circuit = P - P.forceMove(src) - return - if(CIRCUIT_CORE) - if(istype(P, /obj/item/weapon/screwdriver)) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You screw the circuit board into place.") - state = SCREWED_CORE - update_icon() - return - if(istype(P, /obj/item/weapon/crowbar)) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You remove the circuit board.") - state = EMPTY_CORE - update_icon() - circuit.forceMove(loc) - circuit = null - return - if(SCREWED_CORE) - if(istype(P, /obj/item/weapon/screwdriver) && circuit) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You unfasten the circuit board.") - state = CIRCUIT_CORE - update_icon() - return - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = P - if(C.get_amount() >= 5) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You start to add cables to the frame...") - if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5)) - to_chat(user, "You add cables to the frame.") - state = CABLED_CORE - update_icon() - else - to_chat(user, "You need five lengths of cable to wire the AI core!") - return - if(CABLED_CORE) - if(istype(P, /obj/item/weapon/wirecutters)) - if(brain) - to_chat(user, "Get that [brain.name] out of there first!") - else - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You remove the cables.") - state = SCREWED_CORE - update_icon() - var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc ) - A.amount = 5 - return - - if(istype(P, /obj/item/stack/sheet/rglass)) - var/obj/item/stack/sheet/rglass/G = P - if(G.get_amount() >= 2) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You start to put in the glass panel...") - if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2)) - to_chat(user, "You put in the glass panel.") - state = GLASS_CORE - update_icon() - else - to_chat(user, "You need two sheets of reinforced glass to insert them into the AI core!") - return - - if(istype(P, /obj/item/weapon/aiModule)) - if(brain && brain.laws.id != DEFAULT_AI_LAWID) - to_chat(user, "The installed [brain.name] already has set laws!") - return - var/obj/item/weapon/aiModule/module = P - module.install(laws, user) - return - - if(istype(P, /obj/item/device/mmi) && !brain) - var/obj/item/device/mmi/M = P - if(!M.brainmob) - to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose!") - return - if(M.brainmob.stat == DEAD) - to_chat(user, "Sticking a dead [M.name] into the frame would sort of defeat the purpose!") - return - - if(!M.brainmob.client) - to_chat(user, "Sticking an inactive [M.name] into the frame would sort of defeat the purpose.") - return - - if((config) && (!config.allow_ai) || jobban_isbanned(M.brainmob, "AI")) - to_chat(user, "This [M.name] does not seem to fit!") - return - - if(!M.brainmob.mind) - to_chat(user, "This [M.name] is mindless!") - return - - if(!user.drop_item()) - return - - M.forceMove(src) - brain = M - to_chat(user, "You add [M.name] to the frame.") - update_icon() - return - - if(istype(P, /obj/item/weapon/crowbar) && brain) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You remove the brain.") - brain.forceMove(loc) - brain = null - update_icon() - return - - if(GLASS_CORE) - if(istype(P, /obj/item/weapon/crowbar)) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You remove the glass panel.") - state = CABLED_CORE - update_icon() - new /obj/item/stack/sheet/rglass(loc, 2) - return - - if(istype(P, /obj/item/weapon/screwdriver)) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You connect the monitor.") - if(brain) - SSticker.mode.remove_antag_for_borging(brain.brainmob.mind) - if(!istype(brain.laws, /datum/ai_laws/ratvar)) - remove_servant_of_ratvar(brain.brainmob, TRUE) - var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, laws, brain.brainmob) - if(brain.force_replace_ai_name) - A.fully_replace_character_name(A.name, brain.replacement_ai_name()) +/obj/structure/AIcore + density = 1 + anchored = 0 + name = "\improper AI core" + icon = 'icons/mob/ai.dmi' + icon_state = "0" + obj_integrity = 500 + max_integrity = 500 + var/state = 0 + var/datum/ai_laws/laws = new() + var/obj/item/weapon/circuitboard/circuit = null + var/obj/item/device/mmi/brain = null + +/obj/structure/AIcore/New() + ..() + laws.set_laws_config() + +/obj/structure/AIcore/Destroy() + if(circuit) + qdel(circuit) + circuit = null + if(brain) + qdel(brain) + brain = null + return ..() + +/obj/structure/AIcore/attackby(obj/item/P, mob/user, params) + if(istype(P, /obj/item/weapon/wrench)) + return default_unfasten_wrench(user, P, 20) + if(!anchored) + if(istype(P, /obj/item/weapon/weldingtool)) + if(state != EMPTY_CORE) + to_chat(user, "The core must be empty to deconstruct it!") + return + var/obj/item/weapon/weldingtool/WT = P + if(!WT.isOn()) + to_chat(user, "The welder must be on for this task!") + return + playsound(loc, WT.usesound, 50, 1) + to_chat(user, "You start to deconstruct the frame...") + if(do_after(user, 20*P.toolspeed, target = src) && src && state == EMPTY_CORE && WT && WT.remove_fuel(0, user)) + to_chat(user, "You deconstruct the frame.") + deconstruct(TRUE) + return + else + switch(state) + if(EMPTY_CORE) + if(istype(P, /obj/item/weapon/circuitboard/aicore)) + if(!user.drop_item()) + return + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You place the circuit board inside the frame.") + update_icon() + state = CIRCUIT_CORE + circuit = P + P.forceMove(src) + return + if(CIRCUIT_CORE) + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You screw the circuit board into place.") + state = SCREWED_CORE + update_icon() + return + if(istype(P, /obj/item/weapon/crowbar)) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You remove the circuit board.") + state = EMPTY_CORE + update_icon() + circuit.forceMove(loc) + circuit = null + return + if(SCREWED_CORE) + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You unfasten the circuit board.") + state = CIRCUIT_CORE + update_icon() + return + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if(C.get_amount() >= 5) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You start to add cables to the frame...") + if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5)) + to_chat(user, "You add cables to the frame.") + state = CABLED_CORE + update_icon() + else + to_chat(user, "You need five lengths of cable to wire the AI core!") + return + if(CABLED_CORE) + if(istype(P, /obj/item/weapon/wirecutters)) + if(brain) + to_chat(user, "Get that [brain.name] out of there first!") + else + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You remove the cables.") + state = SCREWED_CORE + update_icon() + var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc ) + A.amount = 5 + return + + if(istype(P, /obj/item/stack/sheet/rglass)) + var/obj/item/stack/sheet/rglass/G = P + if(G.get_amount() >= 2) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You start to put in the glass panel...") + if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2)) + to_chat(user, "You put in the glass panel.") + state = GLASS_CORE + update_icon() + else + to_chat(user, "You need two sheets of reinforced glass to insert them into the AI core!") + return + + if(istype(P, /obj/item/weapon/aiModule)) + if(brain && brain.laws.id != DEFAULT_AI_LAWID) + to_chat(user, "The installed [brain.name] already has set laws!") + return + var/obj/item/weapon/aiModule/module = P + module.install(laws, user) + return + + if(istype(P, /obj/item/device/mmi) && !brain) + var/obj/item/device/mmi/M = P + if(!M.brainmob) + to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose!") + return + if(M.brainmob.stat == DEAD) + to_chat(user, "Sticking a dead [M.name] into the frame would sort of defeat the purpose!") + return + + if(!M.brainmob.client) + to_chat(user, "Sticking an inactive [M.name] into the frame would sort of defeat the purpose.") + return + + if((config) && (!config.allow_ai) || jobban_isbanned(M.brainmob, "AI")) + to_chat(user, "This [M.name] does not seem to fit!") + return + + if(!M.brainmob.mind) + to_chat(user, "This [M.name] is mindless!") + return + + if(!user.drop_item()) + return + + M.forceMove(src) + brain = M + to_chat(user, "You add [M.name] to the frame.") + update_icon() + return + + if(istype(P, /obj/item/weapon/crowbar) && brain) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You remove the brain.") + brain.forceMove(loc) + brain = null + update_icon() + return + + if(GLASS_CORE) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You remove the glass panel.") + state = CABLED_CORE + update_icon() + new /obj/item/stack/sheet/rglass(loc, 2) + return + + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You connect the monitor.") + if(brain) + SSticker.mode.remove_antag_for_borging(brain.brainmob.mind) + if(!istype(brain.laws, /datum/ai_laws/ratvar)) + remove_servant_of_ratvar(brain.brainmob, TRUE) + var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, laws, brain.brainmob) + if(brain.force_replace_ai_name) + A.fully_replace_character_name(A.name, brain.replacement_ai_name()) SSblackbox.inc("cyborg_ais_created",1) - qdel(src) - else - state = AI_READY_CORE - update_icon() - return - - if(AI_READY_CORE) - if(istype(P, /obj/item/device/aicard)) - P.transfer_ai("INACTIVE", "AICARD", src, user) - return - - if(istype(P, /obj/item/weapon/screwdriver)) - playsound(loc, P.usesound, 50, 1) - to_chat(user, "You disconnect the monitor.") - state = GLASS_CORE - update_icon() - return - return ..() - -/obj/structure/AIcore/update_icon() - switch(state) - if(EMPTY_CORE) - icon_state = "0" - if(CIRCUIT_CORE) - icon_state = "1" - if(SCREWED_CORE) - icon_state = "2" - if(CABLED_CORE) - if(brain) - icon_state = "3b" - else - icon_state = "3" - if(GLASS_CORE) - icon_state = "4" - if(AI_READY_CORE) - icon_state = "ai-empty" - -/obj/structure/AIcore/deconstruct(disassembled = TRUE) - if(state == GLASS_CORE) - new /obj/item/stack/sheet/rglass(loc, 2) - if(state >= CABLED_CORE) - new /obj/item/stack/cable_coil(loc, 5) - if(circuit) - circuit.forceMove(loc) - circuit = null - new /obj/item/stack/sheet/plasteel(loc, 4) - qdel(src) - -/obj/structure/AIcore/deactivated - name = "inactive AI" - icon_state = "ai-empty" - anchored = 1 - state = AI_READY_CORE - -/obj/structure/AIcore/deactivated/New() - ..() - circuit = new(src) - - -/* -This is a good place for AI-related object verbs so I'm sticking it here. -If adding stuff to this, don't forget that an AI need to cancel_camera() whenever it physically moves to a different location. -That prevents a few funky behaviors. -*/ -//The type of interaction, the player performing the operation, the AI itself, and the card object, if any. - - -/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) - if(istype(card)) - if(card.flush) - to_chat(user, "ERROR: AI flush is in progress, cannot execute transfer protocol.") - return 0 - return 1 - - -/obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) - if(state != AI_READY_CORE || !..()) - return - //Transferring a carded AI to a core. - if(interaction == AI_TRANS_FROM_CARD) - AI.control_disabled = 0 - AI.radio_enabled = 1 - AI.forceMove(loc) // to replace the terminal. - to_chat(AI, "You have been uploaded to a stationary terminal. Remote device connection restored.") - to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") - card.AI = null - qdel(src) - else //If for some reason you use an empty card on an empty AI terminal. - to_chat(user, "There is no AI loaded on this terminal!") - - -/obj/item/weapon/circuitboard/aicore - name = "AI core (AI Core Board)" //Well, duh, but best to be consistent - origin_tech = "programming=3" + qdel(src) + else + state = AI_READY_CORE + update_icon() + return + + if(AI_READY_CORE) + if(istype(P, /obj/item/device/aicard)) + P.transfer_ai("INACTIVE", "AICARD", src, user) + return + + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(loc, P.usesound, 50, 1) + to_chat(user, "You disconnect the monitor.") + state = GLASS_CORE + update_icon() + return + return ..() + +/obj/structure/AIcore/update_icon() + switch(state) + if(EMPTY_CORE) + icon_state = "0" + if(CIRCUIT_CORE) + icon_state = "1" + if(SCREWED_CORE) + icon_state = "2" + if(CABLED_CORE) + if(brain) + icon_state = "3b" + else + icon_state = "3" + if(GLASS_CORE) + icon_state = "4" + if(AI_READY_CORE) + icon_state = "ai-empty" + +/obj/structure/AIcore/deconstruct(disassembled = TRUE) + if(state == GLASS_CORE) + new /obj/item/stack/sheet/rglass(loc, 2) + if(state >= CABLED_CORE) + new /obj/item/stack/cable_coil(loc, 5) + if(circuit) + circuit.forceMove(loc) + circuit = null + new /obj/item/stack/sheet/plasteel(loc, 4) + qdel(src) + +/obj/structure/AIcore/deactivated + name = "inactive AI" + icon_state = "ai-empty" + anchored = 1 + state = AI_READY_CORE + +/obj/structure/AIcore/deactivated/New() + ..() + circuit = new(src) + + +/* +This is a good place for AI-related object verbs so I'm sticking it here. +If adding stuff to this, don't forget that an AI need to cancel_camera() whenever it physically moves to a different location. +That prevents a few funky behaviors. +*/ +//The type of interaction, the player performing the operation, the AI itself, and the card object, if any. + + +/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(istype(card)) + if(card.flush) + to_chat(user, "ERROR: AI flush is in progress, cannot execute transfer protocol.") + return 0 + return 1 + + +/obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(state != AI_READY_CORE || !..()) + return + //Transferring a carded AI to a core. + if(interaction == AI_TRANS_FROM_CARD) + AI.control_disabled = 0 + AI.radio_enabled = 1 + AI.forceMove(loc) // to replace the terminal. + to_chat(AI, "You have been uploaded to a stationary terminal. Remote device connection restored.") + to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") + card.AI = null + qdel(src) + else //If for some reason you use an empty card on an empty AI terminal. + to_chat(user, "There is no AI loaded on this terminal!") + + +/obj/item/weapon/circuitboard/aicore + name = "AI core (AI Core Board)" //Well, duh, but best to be consistent + origin_tech = "programming=3" diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index 6212133b12..c3a785eec1 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -30,7 +30,7 @@ playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) if(damage_amount) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, 1) /* * Generic alien stuff, not related to the purple lizards but still alien-like diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index 2b1319c50e..b826755aa0 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -59,9 +59,9 @@ /obj/structure/sign/barsign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/sign/barsign/attack_ai(mob/user) return src.attack_hand(user) diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index ce3d0882ce..28e2da0366 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -83,7 +83,7 @@ if(BRUTE) playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) if(BURN) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/bed/nest/attack_alien(mob/living/carbon/alien/user) if(user.a_intent != INTENT_HARM) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 7068f3c2f2..8b94bb9207 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -50,7 +50,7 @@ return var/obj/item/assembly/shock_kit/SK = W var/obj/structure/chair/e_chair/E = new /obj/structure/chair/e_chair(src.loc) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) E.setDir(dir) E.part = SK SK.loc = E @@ -274,7 +274,7 @@ -/obj/item/chair/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/chair/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == UNARMED_ATTACK && prob(hit_reaction_chance)) owner.visible_message("[owner] fends off [attack_text] with [src]!") return 1 @@ -289,7 +289,7 @@ if(iscarbon(target)) var/mob/living/carbon/C = target if(C.health < C.maxHealth*0.5) - C.Weaken(1) + C.Knockdown(20) smash(user) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 3f4976d8f3..44be94501c 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -1,320 +1,320 @@ -/* -CONTAINS: -BEDSHEETS -LINEN BINS -*/ - -/obj/item/weapon/bedsheet - name = "bedsheet" - desc = "A surprisingly soft linen bedsheet." - icon = 'icons/obj/bedsheets.dmi' - icon_state = "sheetwhite" - item_state = "bedsheet" - slot_flags = SLOT_NECK - layer = MOB_LAYER - throwforce = 0 - throw_speed = 1 - throw_range = 2 - w_class = WEIGHT_CLASS_TINY - item_color = "white" - resistance_flags = FLAMMABLE - - dog_fashion = /datum/dog_fashion/head/ghost - -/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user) - if(!attempt_initiate_surgery(src, M, user)) - ..() - -/obj/item/weapon/bedsheet/attack_self(mob/user) - user.drop_item() - if(layer == initial(layer)) - layer = ABOVE_MOB_LAYER - to_chat(user, "You cover yourself with [src].") - else - layer = initial(layer) - to_chat(user, "You smooth [src] out beneath you.") - add_fingerprint(user) - return - -/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp()) - var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) - transfer_fingerprints_to(C) - C.add_fingerprint(user) - qdel(src) - to_chat(user, "You tear [src] up.") - else - return ..() - -/obj/item/weapon/bedsheet/blue - icon_state = "sheetblue" - item_color = "blue" - -/obj/item/weapon/bedsheet/green - icon_state = "sheetgreen" - item_color = "green" +/* +CONTAINS: +BEDSHEETS +LINEN BINS +*/ + +/obj/item/weapon/bedsheet + name = "bedsheet" + desc = "A surprisingly soft linen bedsheet." + icon = 'icons/obj/bedsheets.dmi' + icon_state = "sheetwhite" + item_state = "bedsheet" + slot_flags = SLOT_NECK + layer = MOB_LAYER + throwforce = 0 + throw_speed = 1 + throw_range = 2 + w_class = WEIGHT_CLASS_TINY + item_color = "white" + resistance_flags = FLAMMABLE + + dog_fashion = /datum/dog_fashion/head/ghost + +/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user) + if(!attempt_initiate_surgery(src, M, user)) + ..() + +/obj/item/weapon/bedsheet/attack_self(mob/user) + user.drop_item() + if(layer == initial(layer)) + layer = ABOVE_MOB_LAYER + to_chat(user, "You cover yourself with [src].") + else + layer = initial(layer) + to_chat(user, "You smooth [src] out beneath you.") + add_fingerprint(user) + return + +/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp()) + var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) + transfer_fingerprints_to(C) + C.add_fingerprint(user) + qdel(src) + to_chat(user, "You tear [src] up.") + else + return ..() + +/obj/item/weapon/bedsheet/blue + icon_state = "sheetblue" + item_color = "blue" + +/obj/item/weapon/bedsheet/green + icon_state = "sheetgreen" + item_color = "green" /obj/item/weapon/bedsheet/grey icon_state = "sheetgrey" item_color = "grey" - -/obj/item/weapon/bedsheet/orange - icon_state = "sheetorange" - item_color = "orange" - -/obj/item/weapon/bedsheet/purple - icon_state = "sheetpurple" - item_color = "purple" - -/obj/item/weapon/bedsheet/patriot - name = "patriotic bedsheet" - desc = "You've never felt more free than when sleeping on this." - icon_state = "sheetUSA" - item_color = "sheetUSA" - -/obj/item/weapon/bedsheet/rainbow - name = "rainbow bedsheet" - desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." - icon_state = "sheetrainbow" - item_color = "rainbow" - -/obj/item/weapon/bedsheet/red - icon_state = "sheetred" - item_color = "red" - -/obj/item/weapon/bedsheet/yellow - icon_state = "sheetyellow" - item_color = "yellow" - -/obj/item/weapon/bedsheet/mime - name = "mime's blanket" - desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." - icon_state = "sheetmime" - item_color = "mime" - -/obj/item/weapon/bedsheet/clown - name = "clown's blanket" - desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." - icon_state = "sheetclown" - item_color = "clown" - -/obj/item/weapon/bedsheet/captain - name = "captain's bedsheet" - desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." - icon_state = "sheetcaptain" - item_color = "captain" - -/obj/item/weapon/bedsheet/rd - name = "research director's bedsheet" - desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." - icon_state = "sheetrd" - item_color = "director" - -// for Free Golems. -/obj/item/weapon/bedsheet/rd/royal_cape - name = "Royal Cape of the Liberator" - desc = "Majestic." - -/obj/item/weapon/bedsheet/medical - name = "medical blanket" - desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." - icon_state = "sheetmedical" - item_color = "medical" - -/obj/item/weapon/bedsheet/cmo - name = "chief medical officer's bedsheet" - desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." - icon_state = "sheetcmo" - item_color = "cmo" - -/obj/item/weapon/bedsheet/hos - name = "head of security's bedsheet" - desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" - icon_state = "sheethos" - item_color = "hosred" - -/obj/item/weapon/bedsheet/hop - name = "head of personnel's bedsheet" - desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." - icon_state = "sheethop" - item_color = "hop" - -/obj/item/weapon/bedsheet/ce - name = "chief engineer's bedsheet" - desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." - icon_state = "sheetce" - item_color = "chief" - -/obj/item/weapon/bedsheet/qm - name = "quartermaster's bedsheet" - desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." - icon_state = "sheetqm" - item_color = "qm" - -/obj/item/weapon/bedsheet/brown - icon_state = "sheetbrown" - item_color = "cargo" - -/obj/item/weapon/bedsheet/black - icon_state = "sheetblack" - item_color = "black" - -/obj/item/weapon/bedsheet/centcom - name = "\improper Centcom bedsheet" - desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." - icon_state = "sheetcentcom" - item_color = "centcom" - -/obj/item/weapon/bedsheet/syndie - name = "syndicate bedsheet" - desc = "It has a syndicate emblem and it has an aura of evil." - icon_state = "sheetsyndie" - item_color = "syndie" - -/obj/item/weapon/bedsheet/cult - name = "cultist's bedsheet" - desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." - icon_state = "sheetcult" - item_color = "cult" - -/obj/item/weapon/bedsheet/wiz - name = "wizard's bedsheet" - desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" - icon_state = "sheetwiz" - item_color = "wiz" - -/obj/item/weapon/bedsheet/nanotrasen - name = "nanotrasen bedsheet" - desc = "It has the Nanotrasen logo on it and has an aura of duty." - icon_state = "sheetNT" - item_color = "nanotrasen" - -/obj/item/weapon/bedsheet/ian - icon_state = "sheetian" - item_color = "ian" - - -/obj/item/weapon/bedsheet/random - icon_state = "sheetrainbow" - item_color = "rainbow" - name = "random bedsheet" - desc = "If you're reading this description ingame, something has gone wrong! Honk!" - -/obj/item/weapon/bedsheet/random/New() - var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) - name = initial(B.name) - desc = initial(B.desc) - icon_state = initial(B.icon_state) - item_state = initial(B.item_state) - item_color = initial(B.item_color) - -/obj/structure/bedsheetbin - name = "linen bin" - desc = "It looks rather cosy." - icon = 'icons/obj/structures.dmi' - icon_state = "linenbin-full" - anchored = 1 - resistance_flags = FLAMMABLE - obj_integrity = 70 - max_integrity = 70 - var/amount = 10 - var/list/sheets = list() - var/obj/item/hidden = null - - -/obj/structure/bedsheetbin/examine(mob/user) - ..() - if(amount < 1) - to_chat(user, "There are no bed sheets in the bin.") - else if(amount == 1) - to_chat(user, "There is one bed sheet in the bin.") - else - to_chat(user, "There are [amount] bed sheets in the bin.") - - -/obj/structure/bedsheetbin/update_icon() - switch(amount) - if(0) - icon_state = "linenbin-empty" - if(1 to 5) - icon_state = "linenbin-half" - else - icon_state = "linenbin-full" - -/obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) - if(amount) - amount = 0 - update_icon() - ..() - -/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/bedsheet)) - if(!user.drop_item()) - return - I.loc = src - sheets.Add(I) - amount++ - to_chat(user, "You put [I] in [src].") - update_icon() - else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. - if(!user.drop_item()) - to_chat(user, "\The [I] is stuck to your hand, you cannot hide it among the sheets!") - return - I.loc = src - hidden = I - to_chat(user, "You hide [I] among the sheets.") - - - -/obj/structure/bedsheetbin/attack_paw(mob/user) - return attack_hand(user) - - -/obj/structure/bedsheetbin/attack_hand(mob/user) - if(user.lying) - return - if(amount >= 1) - amount-- - - var/obj/item/weapon/bedsheet/B - if(sheets.len > 0) - B = sheets[sheets.len] - sheets.Remove(B) - - else - B = new /obj/item/weapon/bedsheet(loc) - - B.loc = user.loc - user.put_in_hands(B) - to_chat(user, "You take [B] out of [src].") - update_icon() - - if(hidden) - hidden.loc = user.loc - to_chat(user, "[hidden] falls out of [B]!") - hidden = null - - - add_fingerprint(user) -/obj/structure/bedsheetbin/attack_tk(mob/user) - if(amount >= 1) - amount-- - - var/obj/item/weapon/bedsheet/B - if(sheets.len > 0) - B = sheets[sheets.len] - sheets.Remove(B) - - else - B = new /obj/item/weapon/bedsheet(loc) - - B.loc = loc - to_chat(user, "You telekinetically remove [B] from [src].") - update_icon() - - if(hidden) - hidden.loc = loc - hidden = null - - - add_fingerprint(user) + +/obj/item/weapon/bedsheet/orange + icon_state = "sheetorange" + item_color = "orange" + +/obj/item/weapon/bedsheet/purple + icon_state = "sheetpurple" + item_color = "purple" + +/obj/item/weapon/bedsheet/patriot + name = "patriotic bedsheet" + desc = "You've never felt more free than when sleeping on this." + icon_state = "sheetUSA" + item_color = "sheetUSA" + +/obj/item/weapon/bedsheet/rainbow + name = "rainbow bedsheet" + desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." + icon_state = "sheetrainbow" + item_color = "rainbow" + +/obj/item/weapon/bedsheet/red + icon_state = "sheetred" + item_color = "red" + +/obj/item/weapon/bedsheet/yellow + icon_state = "sheetyellow" + item_color = "yellow" + +/obj/item/weapon/bedsheet/mime + name = "mime's blanket" + desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." + icon_state = "sheetmime" + item_color = "mime" + +/obj/item/weapon/bedsheet/clown + name = "clown's blanket" + desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." + icon_state = "sheetclown" + item_color = "clown" + +/obj/item/weapon/bedsheet/captain + name = "captain's bedsheet" + desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." + icon_state = "sheetcaptain" + item_color = "captain" + +/obj/item/weapon/bedsheet/rd + name = "research director's bedsheet" + desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." + icon_state = "sheetrd" + item_color = "director" + +// for Free Golems. +/obj/item/weapon/bedsheet/rd/royal_cape + name = "Royal Cape of the Liberator" + desc = "Majestic." + +/obj/item/weapon/bedsheet/medical + name = "medical blanket" + desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." + icon_state = "sheetmedical" + item_color = "medical" + +/obj/item/weapon/bedsheet/cmo + name = "chief medical officer's bedsheet" + desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." + icon_state = "sheetcmo" + item_color = "cmo" + +/obj/item/weapon/bedsheet/hos + name = "head of security's bedsheet" + desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" + icon_state = "sheethos" + item_color = "hosred" + +/obj/item/weapon/bedsheet/hop + name = "head of personnel's bedsheet" + desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." + icon_state = "sheethop" + item_color = "hop" + +/obj/item/weapon/bedsheet/ce + name = "chief engineer's bedsheet" + desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." + icon_state = "sheetce" + item_color = "chief" + +/obj/item/weapon/bedsheet/qm + name = "quartermaster's bedsheet" + desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." + icon_state = "sheetqm" + item_color = "qm" + +/obj/item/weapon/bedsheet/brown + icon_state = "sheetbrown" + item_color = "cargo" + +/obj/item/weapon/bedsheet/black + icon_state = "sheetblack" + item_color = "black" + +/obj/item/weapon/bedsheet/centcom + name = "\improper Centcom bedsheet" + desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." + icon_state = "sheetcentcom" + item_color = "centcom" + +/obj/item/weapon/bedsheet/syndie + name = "syndicate bedsheet" + desc = "It has a syndicate emblem and it has an aura of evil." + icon_state = "sheetsyndie" + item_color = "syndie" + +/obj/item/weapon/bedsheet/cult + name = "cultist's bedsheet" + desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." + icon_state = "sheetcult" + item_color = "cult" + +/obj/item/weapon/bedsheet/wiz + name = "wizard's bedsheet" + desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" + icon_state = "sheetwiz" + item_color = "wiz" + +/obj/item/weapon/bedsheet/nanotrasen + name = "nanotrasen bedsheet" + desc = "It has the Nanotrasen logo on it and has an aura of duty." + icon_state = "sheetNT" + item_color = "nanotrasen" + +/obj/item/weapon/bedsheet/ian + icon_state = "sheetian" + item_color = "ian" + + +/obj/item/weapon/bedsheet/random + icon_state = "sheetrainbow" + item_color = "rainbow" + name = "random bedsheet" + desc = "If you're reading this description ingame, something has gone wrong! Honk!" + +/obj/item/weapon/bedsheet/random/New() + var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) + name = initial(B.name) + desc = initial(B.desc) + icon_state = initial(B.icon_state) + item_state = initial(B.item_state) + item_color = initial(B.item_color) + +/obj/structure/bedsheetbin + name = "linen bin" + desc = "It looks rather cosy." + icon = 'icons/obj/structures.dmi' + icon_state = "linenbin-full" + anchored = 1 + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + var/amount = 10 + var/list/sheets = list() + var/obj/item/hidden = null + + +/obj/structure/bedsheetbin/examine(mob/user) + ..() + if(amount < 1) + to_chat(user, "There are no bed sheets in the bin.") + else if(amount == 1) + to_chat(user, "There is one bed sheet in the bin.") + else + to_chat(user, "There are [amount] bed sheets in the bin.") + + +/obj/structure/bedsheetbin/update_icon() + switch(amount) + if(0) + icon_state = "linenbin-empty" + if(1 to 5) + icon_state = "linenbin-half" + else + icon_state = "linenbin-full" + +/obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) + if(amount) + amount = 0 + update_icon() + ..() + +/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/bedsheet)) + if(!user.drop_item()) + return + I.loc = src + sheets.Add(I) + amount++ + to_chat(user, "You put [I] in [src].") + update_icon() + else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. + if(!user.drop_item()) + to_chat(user, "\The [I] is stuck to your hand, you cannot hide it among the sheets!") + return + I.loc = src + hidden = I + to_chat(user, "You hide [I] among the sheets.") + + + +/obj/structure/bedsheetbin/attack_paw(mob/user) + return attack_hand(user) + + +/obj/structure/bedsheetbin/attack_hand(mob/user) + if(user.lying) + return + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = user.loc + user.put_in_hands(B) + to_chat(user, "You take [B] out of [src].") + update_icon() + + if(hidden) + hidden.loc = user.loc + to_chat(user, "[hidden] falls out of [B]!") + hidden = null + + + add_fingerprint(user) +/obj/structure/bedsheetbin/attack_tk(mob/user) + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = loc + to_chat(user, "You telekinetically remove [B] from [src].") + update_icon() + + if(hidden) + hidden.loc = loc + hidden = null + + + add_fingerprint(user) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c0f50937d0..a6c6a50d4e 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -29,7 +29,7 @@ var/cutting_tool = /obj/item/weapon/weldingtool var/open_sound = 'sound/machines/click.ogg' var/close_sound = 'sound/machines/click.ogg' - var/cutting_sound = 'sound/items/Welder.ogg' + var/cutting_sound = 'sound/items/welder.ogg' var/material_drop = /obj/item/stack/sheet/metal var/material_drop_amount = 2 var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable. @@ -234,7 +234,7 @@ if(!WT.remove_fuel(0, user)) return to_chat(user, "You begin [welded ? "unwelding":"welding"] \the [src]...") - playsound(loc, 'sound/items/Welder2.ogg', 40, 1) + playsound(loc, 'sound/items/welder2.ogg', 40, 1) if(do_after(user, 40*WT.toolspeed, 1, target = src)) if(opened || !WT.isOn()) return @@ -276,7 +276,7 @@ var/actuallyismob = 0 if(isliving(O)) actuallyismob = 1 - else if(!istype(O, /obj/item)) + else if(!isitem(O)) return var/turf/T = get_turf(src) var/list/targets = list(O, src) @@ -291,7 +291,7 @@ "You hear a loud metal bang.") var/mob/living/L = O if(!issilicon(L)) - L.Weaken(2) + L.Knockdown(40) O.forceMove(T) close() else @@ -355,7 +355,7 @@ /obj/structure/closet/container_resist(mob/living/user) if(opened) return - if(istype(loc, /atom/movable)) + if(ismovableatom(loc)) user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT var/atom/movable/AM = loc diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index bb9348ee75..6901d47f39 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -20,7 +20,7 @@ var/egged = 0 /obj/structure/closet/cardboard/relaymove(mob/user, direction) - if(opened || move_delay || user.stat || user.stunned || user.weakened || user.paralysis || !isturf(loc) || !has_gravity(loc)) + if(opened || move_delay || user.stat || user.IsStun() || user.IsKnockdown() || user.IsUnconscious() || !isturf(loc) || !has_gravity(loc)) return move_delay = 1 if(step(src, direction)) @@ -67,6 +67,6 @@ move_speed_multiplier = 2 cutting_tool = /obj/item/weapon/weldingtool open_sound = 'sound/machines/click.ogg' - cutting_sound = 'sound/items/Welder.ogg' + cutting_sound = 'sound/items/welder.ogg' material_drop = /obj/item/stack/sheet/plasteel #undef SNAKE_SPAM_TICKS diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 2abc876238..c11369ad5d 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -353,3 +353,16 @@ new /obj/item/clothing/under/rank/hydroponics(src) for(var/i in 1 to 3) new /obj/item/clothing/mask/bandana(src) + + +/obj/structure/closet/wardrobe/curator + name = "treasure hunting wardrobe" + icon_door = "black" + +/obj/structure/closet/wardrobe/curator/PopulateContents() + new /obj/item/clothing/head/fedora/curator(src) + new /obj/item/clothing/suit/curator(src) + new /obj/item/clothing/under/rank/curator/treasure_hunter(src) + new /obj/item/clothing/shoes/workboots/mining(src) + new /obj/item/weapon/storage/backpack/satchel/explorer(src) + diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 68af10ea3c..8f5cc9a0fa 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -1,95 +1,95 @@ -/obj/structure/closet/secure_closet/engineering_chief - name = "\proper chief engineer's locker" - req_access = list(GLOB.access_ce) - icon_state = "ce" - -/obj/structure/closet/secure_closet/engineering_chief/PopulateContents() - ..() - new /obj/item/clothing/neck/cloak/ce(src) - new /obj/item/clothing/under/rank/chief_engineer(src) - new /obj/item/clothing/head/hardhat/white(src) - new /obj/item/clothing/head/welding(src) - new /obj/item/clothing/gloves/color/yellow(src) - new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/weapon/tank/jetpack/suit(src) - new /obj/item/weapon/cartridge/ce(src) - new /obj/item/device/radio/headset/heads/ce(src) - new /obj/item/weapon/storage/toolbox/mechanical(src) - new /obj/item/clothing/suit/hazardvest(src) - new /obj/item/device/megaphone/command(src) - new /obj/item/areaeditor/blueprints(src) - new /obj/item/weapon/airlock_painter(src) - new /obj/item/weapon/holosign_creator/engineering(src) - new /obj/item/clothing/mask/gas(src) - new /obj/item/device/multitool(src) - new /obj/item/device/assembly/flash/handheld(src) - new /obj/item/clothing/glasses/meson/engine(src) - new /obj/item/weapon/door_remote/chief_engineer(src) - new /obj/item/weapon/pipe_dispenser(src) - new /obj/item/weapon/inducer(src) - -/obj/structure/closet/secure_closet/engineering_electrical - name = "electrical supplies locker" - req_access = list(GLOB.access_engine_equip) - icon_state = "eng" - icon_door = "eng_elec" - -/obj/structure/closet/secure_closet/engineering_electrical/PopulateContents() - ..() - new /obj/item/clothing/gloves/color/yellow(src) - new /obj/item/clothing/gloves/color/yellow(src) - new /obj/item/weapon/inducer(src) +/obj/structure/closet/secure_closet/engineering_chief + name = "\proper chief engineer's locker" + req_access = list(GLOB.access_ce) + icon_state = "ce" + +/obj/structure/closet/secure_closet/engineering_chief/PopulateContents() + ..() + new /obj/item/clothing/neck/cloak/ce(src) + new /obj/item/clothing/under/rank/chief_engineer(src) + new /obj/item/clothing/head/hardhat/white(src) + new /obj/item/clothing/head/welding(src) + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/tank/jetpack/suit(src) + new /obj/item/weapon/cartridge/ce(src) + new /obj/item/device/radio/headset/heads/ce(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/clothing/suit/hazardvest(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/areaeditor/blueprints(src) + new /obj/item/weapon/airlock_painter(src) + new /obj/item/weapon/holosign_creator/engineering(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/device/multitool(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/weapon/door_remote/chief_engineer(src) + new /obj/item/weapon/pipe_dispenser(src) new /obj/item/weapon/inducer(src) - for(var/i in 1 to 3) - new /obj/item/weapon/storage/toolbox/electrical(src) - for(var/i in 1 to 3) - new /obj/item/weapon/electronics/apc(src) - for(var/i in 1 to 3) - new /obj/item/device/multitool(src) - -/obj/structure/closet/secure_closet/engineering_welding - name = "welding supplies locker" - req_access = list(GLOB.access_engine_equip) - icon_state = "eng" - icon_door = "eng_weld" - -/obj/structure/closet/secure_closet/engineering_welding/PopulateContents() - ..() - for(var/i in 1 to 3) - new /obj/item/clothing/head/welding(src) - for(var/i in 1 to 3) + +/obj/structure/closet/secure_closet/engineering_electrical + name = "electrical supplies locker" + req_access = list(GLOB.access_engine_equip) + icon_state = "eng" + icon_door = "eng_elec" + +/obj/structure/closet/secure_closet/engineering_electrical/PopulateContents() + ..() + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/weapon/inducer(src) + new /obj/item/weapon/inducer(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/toolbox/electrical(src) + for(var/i in 1 to 3) + new /obj/item/weapon/electronics/apc(src) + for(var/i in 1 to 3) + new /obj/item/device/multitool(src) + +/obj/structure/closet/secure_closet/engineering_welding + name = "welding supplies locker" + req_access = list(GLOB.access_engine_equip) + icon_state = "eng" + icon_door = "eng_weld" + +/obj/structure/closet/secure_closet/engineering_welding/PopulateContents() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/head/welding(src) + for(var/i in 1 to 3) new /obj/item/weapon/weldingtool(src) - -/obj/structure/closet/secure_closet/engineering_personal - name = "engineer's locker" - req_access = list(GLOB.access_engine_equip) - icon_state = "eng_secure" - -/obj/structure/closet/secure_closet/engineering_personal/PopulateContents() - ..() - new /obj/item/device/radio/headset/headset_eng(src) - new /obj/item/weapon/storage/toolbox/mechanical(src) - new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) - new /obj/item/weapon/holosign_creator/engineering(src) - new /obj/item/clothing/mask/gas(src) - new /obj/item/clothing/glasses/meson/engine(src) - new /obj/item/weapon/storage/box/emptysandbags(src) - - -/obj/structure/closet/secure_closet/atmospherics - name = "\proper atmospheric technician's locker" - req_access = list(GLOB.access_atmospherics) - icon_state = "atmos" - -/obj/structure/closet/secure_closet/atmospherics/PopulateContents() - ..() - new /obj/item/device/radio/headset/headset_eng(src) - new /obj/item/weapon/pipe_dispenser(src) - new /obj/item/weapon/storage/toolbox/mechanical(src) - new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) - new /obj/item/device/analyzer(src) + +/obj/structure/closet/secure_closet/engineering_personal + name = "engineer's locker" + req_access = list(GLOB.access_engine_equip) + icon_state = "eng_secure" + +/obj/structure/closet/secure_closet/engineering_personal/PopulateContents() + ..() + new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/weapon/holosign_creator/engineering(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/weapon/storage/box/emptysandbags(src) + + +/obj/structure/closet/secure_closet/atmospherics + name = "\proper atmospheric technician's locker" + req_access = list(GLOB.access_atmospherics) + icon_state = "atmos" + +/obj/structure/closet/secure_closet/atmospherics/PopulateContents() + ..() + new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/pipe_dispenser(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/device/analyzer(src) new /obj/item/weapon/holosign_creator/atmos(src) - new /obj/item/weapon/watertank/atmos(src) - new /obj/item/clothing/suit/fire/atmos(src) - new /obj/item/clothing/head/hardhat/atmos(src) - new /obj/item/clothing/glasses/meson/engine/tray(src) + new /obj/item/weapon/watertank/atmos(src) + new /obj/item/clothing/suit/fire/atmos(src) + new /obj/item/clothing/head/hardhat/atmos(src) + new /obj/item/clothing/glasses/meson/engine/tray(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index 29cb8623a2..baaa1ea297 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -50,28 +50,4 @@ else to_chat(user, "Access Denied.") else - return ..() - -/obj/structure/closet/secure_closet/personal/proc/reset_lock(usr) - if (opened && !broken) - registered_name = null - desc = initial(desc) - to_chat(usr,"The lock has been reset.") - else if(!opened) - to_chat(usr,"The locker must be open!") - else if(broken) - to_chat(usr,"The lock is broken!") - -/obj/structure/closet/secure_closet/personal/verb/verb_resetlock() - set src in oview(1) - set category = "Object" - set name = "Reset Lock" - - if(!usr.canmove || usr.stat || usr.restrained()) - return - - if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) - reset_lock(usr) - else - to_chat(usr, "This mob type can't use this verb.") - + return ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 1ac2ccd77b..622f765564 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -24,4 +24,4 @@ new /obj/item/device/assembly/flash/handheld(src) new /obj/item/device/laser_pointer(src) new /obj/item/weapon/door_remote/research_director(src) - new /obj/item/weapon/storage/box/firingpins(src) + new /obj/item/weapon/storage/box/firingpins(src) \ No newline at end of file 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 ce31c76378..7731526547 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -11,7 +11,6 @@ else new /obj/item/weapon/storage/backpack/satchel/cap(src) new /obj/item/clothing/neck/cloak/cap(src) - new /obj/item/weapon/storage/daki(src) new /obj/item/weapon/storage/backpack/duffelbag/captain(src) new /obj/item/clothing/head/crown/fancy(src) new /obj/item/clothing/suit/captunic(src) @@ -170,7 +169,7 @@ ..() new /obj/item/clothing/under/rank/det(src) new /obj/item/clothing/suit/det_suit(src) - new /obj/item/clothing/head/det_hat(src) + new /obj/item/clothing/head/fedora/det_hat(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/under/rank/det/grey(src) new /obj/item/clothing/accessory/waistcoat(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index c0c63f6db7..3da6c0a54b 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -137,6 +137,8 @@ if(prob(30)) new /obj/item/clothing/suit/hooded/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) + if(prob(30)) + new /obj/item/clothing/accessory/pocketprotector(src) return diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 75096209f5..ff0e4db9a8 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -1,72 +1,72 @@ -/obj/structure/closet/crate/secure - desc = "A secure crate." - name = "secure crate" - icon_state = "securecrate" - secure = 1 - locked = 1 - obj_integrity = 500 - max_integrity = 500 - armor = list(melee = 30, bullet = 50, laser = 50, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) - var/tamperproof = 0 - -/obj/structure/closet/crate/secure/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) - if(damage_flag == "melee" && damage_amount < 25) - return 0 - . = ..() - -/obj/structure/closet/crate/secure/update_icon() - ..() - if(broken) - add_overlay("securecrateemag") - else if(locked) - add_overlay("securecrater") - else - add_overlay("securecrateg") - -/obj/structure/closet/crate/secure/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) - if(prob(tamperproof)) - boom() - ..() - - -/obj/structure/closet/crate/secure/proc/boom(mob/user) - if(user) - to_chat(user, "The crate's anti-tamper system activates!") - var/message = "[ADMIN_LOOKUPFLW(user)] has detonated [src.name]." - GLOB.bombers += message - message_admins(message) - log_game("[key_name(user)] has detonated [src.name].") - for(var/atom/movable/AM in src) - qdel(AM) +/obj/structure/closet/crate/secure + desc = "A secure crate." + name = "secure crate" + icon_state = "securecrate" + secure = 1 + locked = 1 + obj_integrity = 500 + max_integrity = 500 + armor = list(melee = 30, bullet = 50, laser = 50, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) + var/tamperproof = 0 + +/obj/structure/closet/crate/secure/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 25) + return 0 + . = ..() + +/obj/structure/closet/crate/secure/update_icon() + ..() + if(broken) + add_overlay("securecrateemag") + else if(locked) + add_overlay("securecrater") + else + add_overlay("securecrateg") + +/obj/structure/closet/crate/secure/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + if(prob(tamperproof)) + boom() + ..() + + +/obj/structure/closet/crate/secure/proc/boom(mob/user) + if(user) + to_chat(user, "The crate's anti-tamper system activates!") + var/message = "[ADMIN_LOOKUPFLW(user)] has detonated [src.name]." + GLOB.bombers += message + message_admins(message) + log_game("[key_name(user)] has detonated [src.name].") + for(var/atom/movable/AM in src) + qdel(AM) explosion(get_turf(src), 0, 1, 5, 5) - qdel(src) - -/obj/structure/closet/crate/secure/weapon - desc = "A secure weapons crate." - name = "weapons crate" - icon_state = "weaponcrate" - -/obj/structure/closet/crate/secure/plasma - desc = "A secure plasma crate." - name = "plasma crate" - icon_state = "plasmacrate" - -/obj/structure/closet/crate/secure/gear - desc = "A secure gear crate." - name = "gear crate" - icon_state = "secgearcrate" - -/obj/structure/closet/crate/secure/hydroponics - desc = "A crate with a lock on it, painted in the scheme of the station's botanists." - 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 station's engineers." - 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 station's scientists." - icon_state = "scisecurecrate" + qdel(src) + +/obj/structure/closet/crate/secure/weapon + desc = "A secure weapons crate." + name = "weapons crate" + icon_state = "weaponcrate" + +/obj/structure/closet/crate/secure/plasma + desc = "A secure plasma crate." + name = "plasma crate" + icon_state = "plasmacrate" + +/obj/structure/closet/crate/secure/gear + desc = "A secure gear crate." + name = "gear crate" + icon_state = "secgearcrate" + +/obj/structure/closet/crate/secure/hydroponics + desc = "A crate with a lock on it, painted in the scheme of the station's botanists." + 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 station's engineers." + 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 station's scientists." + icon_state = "scisecurecrate" diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 43fbdde5ee..68d7dbbfc1 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -46,9 +46,9 @@ /obj/structure/displaycase/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/displaycase/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) @@ -82,8 +82,8 @@ try getFlatIcon(A,defdir=4) catch - return FALSE - return TRUE + return 0 + return 1 /obj/structure/displaycase/proc/get_flat_icon_directional(atom/A) //Get flatIcon even if dir is mismatched for directionless icons @@ -127,7 +127,7 @@ playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*W.toolspeed, target = src)) obj_integrity = max_integrity - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) update_icon() to_chat(user, "You repair [src].") else @@ -204,7 +204,7 @@ to_chat(user, "You start disassembling [src]...") playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) new /obj/item/stack/sheet/mineral/wood(get_turf(src), 5) qdel(src) @@ -248,6 +248,8 @@ start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr req_access = list(GLOB.access_rd) + + /obj/structure/displaycase/trophy name = "trophy display case" desc = "Store your trophies of accomplishment in here, and they will stay forever." diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index b37856df70..978b88af66 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -508,7 +508,7 @@ if(WT.remove_fuel(0,user)) user.visible_message("[user] disassembles the airlock assembly.", \ "You start to disassemble the airlock assembly...") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) if(do_after(user, 40*W.toolspeed, target = src)) if( !WT.isOn() ) @@ -618,7 +618,7 @@ if(G) if(G.get_amount() >= 1) if(istype(G, /obj/item/stack/sheet/rglass) || istype(G, /obj/item/stack/sheet/glass)) - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(src.loc, 'sound/items/crowbar.ogg', 100, 1) user.visible_message("[user] adds [G.name] to the airlock assembly.", \ "You start to install [G.name] into the airlock assembly...") if(do_after(user, 40, target = src)) @@ -646,7 +646,7 @@ else if(istype(G, /obj/item/stack/sheet/mineral)) var/M = G.sheettype if(G.get_amount() >= 2) - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(src.loc, 'sound/items/crowbar.ogg', 100, 1) user.visible_message("[user] adds [G.name] to the airlock assembly.", \ "You start to install [G.name] into the airlock assembly...") if(do_after(user, 40, target = src)) diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 2316715735..c9ff698411 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -1,11 +1,11 @@ -/obj/structure/dresser - name = "dresser" - desc = "A nicely-crafted wooden dresser. It's filled with lots of undies." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "dresser" - density = 1 - anchored = 1 - +/obj/structure/dresser + name = "dresser" + desc = "A nicely-crafted wooden dresser. It's filled with lots of undies." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "dresser" + density = 1 + anchored = 1 + /obj/structure/dresser/attackby(obj/item/P, mob/user, params) if(istype(P, /obj/item/weapon/wrench)) to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") @@ -18,34 +18,34 @@ new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10) qdel(src) -/obj/structure/dresser/attack_hand(mob/user) - if(!Adjacent(user))//no tele-grooming - return - if(ishuman(user)) - var/mob/living/carbon/human/H = user - - if(H.dna && H.dna.species && (NO_UNDERWEAR in H.dna.species.species_traits)) - to_chat(user, "You are not capable of wearing underwear.") - return - - var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks") - - if(!Adjacent(user)) - return - switch(choice) - if("Underwear") - var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list - if(new_undies) - H.underwear = new_undies - - if("Undershirt") - var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list - if(new_undershirt) - H.undershirt = new_undershirt - if("Socks") - var/new_socks = input(user, "Select your socks", "Changing") as null|anything in GLOB.socks_list - if(new_socks) - H.socks= new_socks - - add_fingerprint(H) - H.update_body() +/obj/structure/dresser/attack_hand(mob/user) + if(!Adjacent(user))//no tele-grooming + return + if(ishuman(user)) + var/mob/living/carbon/human/H = user + + if(H.dna && H.dna.species && (NO_UNDERWEAR in H.dna.species.species_traits)) + to_chat(user, "You are not capable of wearing underwear.") + return + + var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks") + + if(!Adjacent(user)) + return + switch(choice) + if("Underwear") + var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list + if(new_undies) + H.underwear = new_undies + + if("Undershirt") + var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list + if(new_undershirt) + H.undershirt = new_undershirt + if("Socks") + var/new_socks = input(user, "Select your socks", "Changing") as null|anything in GLOB.socks_list + if(new_socks) + H.socks= new_socks + + add_fingerprint(H) + H.update_body() diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index aa590cfb29..6d3f419760 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -1,46 +1,46 @@ -/obj/structure/chair/e_chair - name = "electric chair" - desc = "Looks absolutely SHOCKING!\nAlt-click to rotate it clockwise." - icon_state = "echair0" - var/obj/item/assembly/shock_kit/part = null - var/last_time = 1 - item_chair = null - -/obj/structure/chair/e_chair/New() - ..() +/obj/structure/chair/e_chair + name = "electric chair" + desc = "Looks absolutely SHOCKING!\nAlt-click to rotate it clockwise." + icon_state = "echair0" + var/obj/item/assembly/shock_kit/part = null + var/last_time = 1 + item_chair = null + +/obj/structure/chair/e_chair/New() + ..() add_overlay(mutable_appearance('icons/obj/chairs.dmi', "echair_over", MOB_LAYER + 1)) - -/obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - var/obj/structure/chair/C = new /obj/structure/chair(loc) - playsound(loc, W.usesound, 50, 1) - C.setDir(dir) - part.loc = loc - part.master = null - part = null - qdel(src) - -/obj/structure/chair/e_chair/proc/shock() - if(last_time + 50 > world.time) - return - last_time = world.time - - // special power handling - var/area/A = get_area(src) - if(!isarea(A)) - return - if(!A.powered(EQUIP)) - return - A.use_power(EQUIP, 5000) - - flick("echair_shock", src) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(12, 1, src) - s.start() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.electrocute_act(85, src, 1) - to_chat(buckled_mob, "You feel a deep shock course through your body!") + +/obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + var/obj/structure/chair/C = new /obj/structure/chair(loc) + playsound(loc, W.usesound, 50, 1) + C.setDir(dir) + part.loc = loc + part.master = null + part = null + qdel(src) + +/obj/structure/chair/e_chair/proc/shock() + if(last_time + 50 > world.time) + return + last_time = world.time + + // special power handling + var/area/A = get_area(src) + if(!isarea(A)) + return + if(!A.powered(EQUIP)) + return + A.use_power(EQUIP, 5000) + + flick("echair_shock", src) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(12, 1, src) + s.start() + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.electrocute_act(85, src, 1) + to_chat(buckled_mob, "You feel a deep shock course through your body!") addtimer(CALLBACK(buckled_mob, /mob/living.proc/electrocute_act, 85, src, 1), 1) - visible_message("The electric chair went off!", "You hear a deep sharp shock!") + visible_message("The electric chair went off!", "You hear a deep sharp shock!") diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index ad8d700fe5..f76dd1e919 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -1,148 +1,148 @@ -/obj/structure/extinguisher_cabinet - name = "extinguisher cabinet" - desc = "A small wall mounted cabinet designed to hold a fire extinguisher." - icon = 'icons/obj/wallmounts.dmi' - icon_state = "extinguisher_closed" - anchored = 1 - density = 0 - obj_integrity = 200 - max_integrity = 200 - integrity_failure = 50 - var/obj/item/weapon/extinguisher/stored_extinguisher - var/opened = 0 - -/obj/structure/extinguisher_cabinet/New(loc, ndir, building) - ..() - if(building) - setDir(ndir) - pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27) - pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 - opened = 1 - icon_state = "extinguisher_empty" - else - stored_extinguisher = new /obj/item/weapon/extinguisher(src) - -/obj/structure/extinguisher_cabinet/Destroy() - if(stored_extinguisher) - qdel(stored_extinguisher) - stored_extinguisher = null - return ..() - -/obj/structure/extinguisher_cabinet/contents_explosion(severity, target) - if(stored_extinguisher) - stored_extinguisher.ex_act(severity, target) - -/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A) - if(A == stored_extinguisher) - stored_extinguisher = null - update_icon() - -/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/wrench) && !stored_extinguisher) - to_chat(user, "You start unsecuring [name]...") - playsound(loc, I.usesound, 50, 1) - if(do_after(user, 60*I.toolspeed, target = src)) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) - to_chat(user, "You unsecure [name].") - deconstruct(TRUE) - return - - if(iscyborg(user) || isalien(user)) - return - if(istype(I, /obj/item/weapon/extinguisher)) - if(!stored_extinguisher && opened) - if(!user.drop_item()) - return - contents += I - stored_extinguisher = I - to_chat(user, "You place [I] in [src].") - update_icon() - else - toggle_cabinet(user) - else if(user.a_intent != INTENT_HARM) - toggle_cabinet(user) - else - return ..() - - -/obj/structure/extinguisher_cabinet/attack_hand(mob/user) - if(iscyborg(user) || isalien(user)) - return - if(stored_extinguisher) - user.put_in_hands(stored_extinguisher) - to_chat(user, "You take [stored_extinguisher] from [src].") - stored_extinguisher = null - if(!opened) - opened = 1 - playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) - update_icon() - else - toggle_cabinet(user) - - -/obj/structure/extinguisher_cabinet/attack_tk(mob/user) - if(stored_extinguisher) - stored_extinguisher.forceMove(loc) - to_chat(user, "You telekinetically remove [stored_extinguisher] from [src].") - stored_extinguisher = null - opened = 1 - playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) - update_icon() - else - toggle_cabinet(user) - - -/obj/structure/extinguisher_cabinet/attack_paw(mob/user) - attack_hand(user) - -/obj/structure/extinguisher_cabinet/AltClick(mob/living/user) - if(user.incapacitated() || !Adjacent(user) || !istype(user)) - return - toggle_cabinet(user) - -/obj/structure/extinguisher_cabinet/proc/toggle_cabinet(mob/user) - if(opened && broken) - to_chat(user, "[src] is broken open.") - else - playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) - opened = !opened - update_icon() - -/obj/structure/extinguisher_cabinet/update_icon() - if(!opened) - icon_state = "extinguisher_closed" - return - if(stored_extinguisher) - if(istype(stored_extinguisher, /obj/item/weapon/extinguisher/mini)) - icon_state = "extinguisher_mini" - else - icon_state = "extinguisher_full" - else - icon_state = "extinguisher_empty" - -/obj/structure/extinguisher_cabinet/obj_break(damage_flag) - if(!broken && !(flags & NODECONSTRUCT)) - broken = 1 - opened = 1 - if(stored_extinguisher) - stored_extinguisher.forceMove(loc) - stored_extinguisher = null - update_icon() - - -/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(disassembled) - new /obj/item/wallframe/extinguisher_cabinet(loc) - else - new /obj/item/stack/sheet/metal (loc, 2) - if(stored_extinguisher) - stored_extinguisher.forceMove(loc) - stored_extinguisher = null - qdel(src) - -/obj/item/wallframe/extinguisher_cabinet - name = "extinguisher cabinet frame" - desc = "Used for building wall-mounted extinguisher cabinets." +/obj/structure/extinguisher_cabinet + name = "extinguisher cabinet" + desc = "A small wall mounted cabinet designed to hold a fire extinguisher." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "extinguisher_closed" + anchored = 1 + density = 0 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + var/obj/item/weapon/extinguisher/stored_extinguisher + var/opened = 0 + +/obj/structure/extinguisher_cabinet/New(loc, ndir, building) + ..() + if(building) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + opened = 1 + icon_state = "extinguisher_empty" + else + stored_extinguisher = new /obj/item/weapon/extinguisher(src) + +/obj/structure/extinguisher_cabinet/Destroy() + if(stored_extinguisher) + qdel(stored_extinguisher) + stored_extinguisher = null + return ..() + +/obj/structure/extinguisher_cabinet/contents_explosion(severity, target) + if(stored_extinguisher) + stored_extinguisher.ex_act(severity, target) + +/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A) + if(A == stored_extinguisher) + stored_extinguisher = null + update_icon() + +/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench) && !stored_extinguisher) + to_chat(user, "You start unsecuring [name]...") + playsound(loc, I.usesound, 50, 1) + if(do_after(user, 60*I.toolspeed, target = src)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You unsecure [name].") + deconstruct(TRUE) + return + + if(iscyborg(user) || isalien(user)) + return + if(istype(I, /obj/item/weapon/extinguisher)) + if(!stored_extinguisher && opened) + if(!user.drop_item()) + return + contents += I + stored_extinguisher = I + to_chat(user, "You place [I] in [src].") + update_icon() + else + toggle_cabinet(user) + else if(user.a_intent != INTENT_HARM) + toggle_cabinet(user) + else + return ..() + + +/obj/structure/extinguisher_cabinet/attack_hand(mob/user) + if(iscyborg(user) || isalien(user)) + return + if(stored_extinguisher) + user.put_in_hands(stored_extinguisher) + to_chat(user, "You take [stored_extinguisher] from [src].") + stored_extinguisher = null + if(!opened) + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/extinguisher_cabinet/attack_tk(mob/user) + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + to_chat(user, "You telekinetically remove [stored_extinguisher] from [src].") + stored_extinguisher = null + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/extinguisher_cabinet/attack_paw(mob/user) + attack_hand(user) + +/obj/structure/extinguisher_cabinet/AltClick(mob/living/user) + if(user.incapacitated() || !Adjacent(user) || !istype(user)) + return + toggle_cabinet(user) + +/obj/structure/extinguisher_cabinet/proc/toggle_cabinet(mob/user) + if(opened && broken) + to_chat(user, "[src] is broken open.") + else + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + opened = !opened + update_icon() + +/obj/structure/extinguisher_cabinet/update_icon() + if(!opened) + icon_state = "extinguisher_closed" + return + if(stored_extinguisher) + if(istype(stored_extinguisher, /obj/item/weapon/extinguisher/mini)) + icon_state = "extinguisher_mini" + else + icon_state = "extinguisher_full" + else + icon_state = "extinguisher_empty" + +/obj/structure/extinguisher_cabinet/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + broken = 1 + opened = 1 + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + stored_extinguisher = null + update_icon() + + +/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + new /obj/item/wallframe/extinguisher_cabinet(loc) + else + new /obj/item/stack/sheet/metal (loc, 2) + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + stored_extinguisher = null + qdel(src) + +/obj/item/wallframe/extinguisher_cabinet + name = "extinguisher cabinet frame" + desc = "Used for building wall-mounted extinguisher cabinets." icon_state = "extinguisher" - result_path = /obj/structure/extinguisher_cabinet + result_path = /obj/structure/extinguisher_cabinet diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 43e0de52a1..49154c9f45 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -126,7 +126,7 @@ /obj/structure/falsewall/proc/dismantle(mob/user, disassembled = TRUE) user.visible_message("[user] dismantles the false wall.", "You dismantle the false wall.") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) deconstruct(disassembled) /obj/structure/falsewall/deconstruct(disassembled = TRUE) @@ -242,7 +242,7 @@ return ..() /obj/structure/falsewall/plasma/proc/burnbabyburn(user) - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) atmos_spawn_air("plasma=400;TEMP=1000") new /obj/structure/girder/displaced(loc) qdel(src) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 8d9c668542..59ae52e4b3 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -32,7 +32,7 @@ playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*I.toolspeed, target = src)) obj_integrity = max_integrity - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) update_icon() to_chat(user, "You repair [src].") else @@ -72,9 +72,9 @@ if(broken) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, 1) else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) if(open) @@ -87,7 +87,7 @@ if(!broken && !(flags & NODECONSTRUCT)) update_icon() broken = TRUE - playsound(src, 'sound/effects/Glassbr3.ogg', 100, 1) + playsound(src, 'sound/effects/glassbr3.ogg', 100, 1) new /obj/item/weapon/shard(loc) new /obj/item/weapon/shard(loc) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 4e5f929122..1e5b5423b0 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -1,390 +1,390 @@ -/obj/structure/flora - resistance_flags = FLAMMABLE - obj_integrity = 150 - max_integrity = 150 - anchored = 1 - -//trees -/obj/structure/flora/tree - name = "tree" - density = 1 - pixel_x = -16 - layer = FLY_LAYER - var/cut = FALSE - var/log_amount = 10 - -/obj/structure/flora/tree/attackby(obj/item/weapon/W, mob/user, params) - if(!cut && log_amount && (!(NODECONSTRUCT in flags))) - if(W.sharpness && W.force > 0) - if(W.hitsound) - playsound(get_turf(src), W.hitsound, 100, 0, 0) - user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of sawing.") - if(do_after(user, 1000/W.force, target = user)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard. - if(cut) - return - user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a tree falling.") - playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) - icon = 'icons/obj/flora/pinetrees.dmi' - icon_state = "tree_stump" - density = 0 - pixel_x = -16 - name += " stump" - cut = TRUE - for(var/i=1 to log_amount) - new /obj/item/weapon/grown/log/tree(get_turf(src)) - - else - return ..() - - - - -/obj/structure/flora/tree/pine - name = "pine tree" - icon = 'icons/obj/flora/pinetrees.dmi' - icon_state = "pine_1" - -/obj/structure/flora/tree/pine/Initialize() - icon_state = "pine_[rand(1, 3)]" - ..() - -/obj/structure/flora/tree/pine/xmas - name = "xmas tree" - icon_state = "pine_c" - -/obj/structure/flora/tree/pine/xmas/Initialize() - ..() - icon_state = "pine_c" - -/obj/structure/flora/tree/dead - icon = 'icons/obj/flora/deadtrees.dmi' - icon_state = "tree_1" - -/obj/structure/flora/tree/palm - icon = 'icons/misc/beach2.dmi' - icon_state = "palm1" - -/obj/structure/flora/tree/palm/Initialize() - ..() - icon_state = pick("palm1","palm2") - pixel_x = 0 - -/obj/structure/festivus - name = "festivus pole" - icon = 'icons/obj/flora/pinetrees.dmi' - icon_state = "festivus_pole" - desc = "During last year's Feats of Strength the Research Director was able to suplex this passing immobile rod into a planter." - -/obj/structure/flora/tree/dead/Initialize() - icon_state = "tree_[rand(1, 6)]" - ..() - -/obj/structure/flora/tree/jungle - name = "tree" - icon_state = "tree" - desc = "It's seriously hampering your view of the jungle." - icon = 'icons/obj/flora/jungletrees.dmi' - pixel_x = -48 - pixel_y = -20 - -/obj/structure/flora/tree/jungle/Initialize() +/obj/structure/flora + resistance_flags = FLAMMABLE + obj_integrity = 150 + max_integrity = 150 + anchored = 1 + +//trees +/obj/structure/flora/tree + name = "tree" + density = 1 + pixel_x = -16 + layer = FLY_LAYER + var/cut = FALSE + var/log_amount = 10 + +/obj/structure/flora/tree/attackby(obj/item/weapon/W, mob/user, params) + if(!cut && log_amount && (!(NODECONSTRUCT in flags))) + if(W.sharpness && W.force > 0) + if(W.hitsound) + playsound(get_turf(src), W.hitsound, 100, 0, 0) + user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of sawing.") + if(do_after(user, 1000/W.force, target = user)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard. + if(cut) + return + user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a tree falling.") + playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "tree_stump" + density = 0 + pixel_x = -16 + name += " stump" + cut = TRUE + for(var/i=1 to log_amount) + new /obj/item/weapon/grown/log/tree(get_turf(src)) + + else + return ..() + + + + +/obj/structure/flora/tree/pine + name = "pine tree" + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "pine_1" + +/obj/structure/flora/tree/pine/Initialize() + icon_state = "pine_[rand(1, 3)]" + ..() + +/obj/structure/flora/tree/pine/xmas + name = "xmas tree" + icon_state = "pine_c" + +/obj/structure/flora/tree/pine/xmas/Initialize() + ..() + icon_state = "pine_c" + +/obj/structure/flora/tree/dead + icon = 'icons/obj/flora/deadtrees.dmi' + icon_state = "tree_1" + +/obj/structure/flora/tree/palm + icon = 'icons/misc/beach2.dmi' + icon_state = "palm1" + +/obj/structure/flora/tree/palm/Initialize() + ..() + icon_state = pick("palm1","palm2") + pixel_x = 0 + +/obj/structure/festivus + name = "festivus pole" + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "festivus_pole" + desc = "During last year's Feats of Strength the Research Director was able to suplex this passing immobile rod into a planter." + +/obj/structure/flora/tree/dead/Initialize() + icon_state = "tree_[rand(1, 6)]" + ..() + +/obj/structure/flora/tree/jungle + name = "tree" + icon_state = "tree" + desc = "It's seriously hampering your view of the jungle." + icon = 'icons/obj/flora/jungletrees.dmi' + pixel_x = -48 + pixel_y = -20 + +/obj/structure/flora/tree/jungle/Initialize() icon_state = "[icon_state][rand(1, 6)]" - ..() - + ..() + /obj/structure/flora/tree/jungle/small pixel_y = 0 pixel_x = -32 icon = 'icons/obj/flora/jungletreesmall.dmi' -//grass -/obj/structure/flora/grass - name = "grass" - icon = 'icons/obj/flora/snowflora.dmi' - gender = PLURAL //"this is grass" not "this is a grass" - -/obj/structure/flora/grass/brown - icon_state = "snowgrass1bb" - -/obj/structure/flora/grass/brown/Initialize() - icon_state = "snowgrass[rand(1, 3)]bb" - ..() - - -/obj/structure/flora/grass/green - icon_state = "snowgrass1gb" - -/obj/structure/flora/grass/green/Initialize() - icon_state = "snowgrass[rand(1, 3)]gb" - ..() - -/obj/structure/flora/grass/both - icon_state = "snowgrassall1" - -/obj/structure/flora/grass/both/Initialize() - icon_state = "snowgrassall[rand(1, 3)]" - ..() - - -//bushes -/obj/structure/flora/bush - name = "bush" - icon = 'icons/obj/flora/snowflora.dmi' - icon_state = "snowbush1" - anchored = 1 - -/obj/structure/flora/bush/Initialize() - icon_state = "snowbush[rand(1, 6)]" - ..() - -//newbushes - -/obj/structure/flora/ausbushes - name = "bush" - icon = 'icons/obj/flora/ausflora.dmi' - icon_state = "firstbush_1" - -/obj/structure/flora/ausbushes/Initialize() - if(icon_state == "firstbush_1") - icon_state = "firstbush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/reedbush - icon_state = "reedbush_1" - -/obj/structure/flora/ausbushes/reedbush/Initialize() - icon_state = "reedbush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/leafybush - icon_state = "leafybush_1" - -/obj/structure/flora/ausbushes/leafybush/Initialize() - icon_state = "leafybush_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/palebush - icon_state = "palebush_1" - -/obj/structure/flora/ausbushes/palebush/Initialize() - icon_state = "palebush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/stalkybush - icon_state = "stalkybush_1" - -/obj/structure/flora/ausbushes/stalkybush/Initialize() - icon_state = "stalkybush_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/grassybush - icon_state = "grassybush_1" - -/obj/structure/flora/ausbushes/grassybush/Initialize() - icon_state = "grassybush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/fernybush - icon_state = "fernybush_1" - -/obj/structure/flora/ausbushes/fernybush/Initialize() - icon_state = "fernybush_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/sunnybush - icon_state = "sunnybush_1" - -/obj/structure/flora/ausbushes/sunnybush/Initialize() - icon_state = "sunnybush_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/genericbush - icon_state = "genericbush_1" - -/obj/structure/flora/ausbushes/genericbush/Initialize() - icon_state = "genericbush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/pointybush - icon_state = "pointybush_1" - -/obj/structure/flora/ausbushes/pointybush/Initialize() - icon_state = "pointybush_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/lavendergrass - icon_state = "lavendergrass_1" - -/obj/structure/flora/ausbushes/lavendergrass/Initialize() - icon_state = "lavendergrass_[rand(1, 4)]" - ..() - -/obj/structure/flora/ausbushes/ywflowers - icon_state = "ywflowers_1" - -/obj/structure/flora/ausbushes/ywflowers/Initialize() - icon_state = "ywflowers_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/brflowers - icon_state = "brflowers_1" - -/obj/structure/flora/ausbushes/brflowers/Initialize() - icon_state = "brflowers_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/ppflowers - icon_state = "ppflowers_1" - -/obj/structure/flora/ausbushes/ppflowers/Initialize() - icon_state = "ppflowers_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/sparsegrass - icon_state = "sparsegrass_1" - -/obj/structure/flora/ausbushes/sparsegrass/Initialize() - icon_state = "sparsegrass_[rand(1, 3)]" - ..() - -/obj/structure/flora/ausbushes/fullgrass - icon_state = "fullgrass_1" - -/obj/structure/flora/ausbushes/fullgrass/Initialize() - icon_state = "fullgrass_[rand(1, 3)]" - ..() - -/obj/item/weapon/twohanded/required/kirbyplants - name = "potted plant" - icon = 'icons/obj/flora/plants.dmi' - icon_state = "plant-01" - layer = ABOVE_MOB_LAYER - w_class = WEIGHT_CLASS_HUGE - force = 10 - throwforce = 13 - throw_speed = 2 - throw_range = 4 - -/obj/item/weapon/twohanded/required/kirbyplants/equipped(mob/living/user) - var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) - I.override = 1 +//grass +/obj/structure/flora/grass + name = "grass" + icon = 'icons/obj/flora/snowflora.dmi' + gender = PLURAL //"this is grass" not "this is a grass" + +/obj/structure/flora/grass/brown + icon_state = "snowgrass1bb" + +/obj/structure/flora/grass/brown/Initialize() + icon_state = "snowgrass[rand(1, 3)]bb" + ..() + + +/obj/structure/flora/grass/green + icon_state = "snowgrass1gb" + +/obj/structure/flora/grass/green/Initialize() + icon_state = "snowgrass[rand(1, 3)]gb" + ..() + +/obj/structure/flora/grass/both + icon_state = "snowgrassall1" + +/obj/structure/flora/grass/both/Initialize() + icon_state = "snowgrassall[rand(1, 3)]" + ..() + + +//bushes +/obj/structure/flora/bush + name = "bush" + icon = 'icons/obj/flora/snowflora.dmi' + icon_state = "snowbush1" + anchored = 1 + +/obj/structure/flora/bush/Initialize() + icon_state = "snowbush[rand(1, 6)]" + ..() + +//newbushes + +/obj/structure/flora/ausbushes + name = "bush" + icon = 'icons/obj/flora/ausflora.dmi' + icon_state = "firstbush_1" + +/obj/structure/flora/ausbushes/Initialize() + if(icon_state == "firstbush_1") + icon_state = "firstbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/reedbush + icon_state = "reedbush_1" + +/obj/structure/flora/ausbushes/reedbush/Initialize() + icon_state = "reedbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/leafybush + icon_state = "leafybush_1" + +/obj/structure/flora/ausbushes/leafybush/Initialize() + icon_state = "leafybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/palebush + icon_state = "palebush_1" + +/obj/structure/flora/ausbushes/palebush/Initialize() + icon_state = "palebush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/stalkybush + icon_state = "stalkybush_1" + +/obj/structure/flora/ausbushes/stalkybush/Initialize() + icon_state = "stalkybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/grassybush + icon_state = "grassybush_1" + +/obj/structure/flora/ausbushes/grassybush/Initialize() + icon_state = "grassybush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/fernybush + icon_state = "fernybush_1" + +/obj/structure/flora/ausbushes/fernybush/Initialize() + icon_state = "fernybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/sunnybush + icon_state = "sunnybush_1" + +/obj/structure/flora/ausbushes/sunnybush/Initialize() + icon_state = "sunnybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/genericbush + icon_state = "genericbush_1" + +/obj/structure/flora/ausbushes/genericbush/Initialize() + icon_state = "genericbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/pointybush + icon_state = "pointybush_1" + +/obj/structure/flora/ausbushes/pointybush/Initialize() + icon_state = "pointybush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/lavendergrass + icon_state = "lavendergrass_1" + +/obj/structure/flora/ausbushes/lavendergrass/Initialize() + icon_state = "lavendergrass_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/ywflowers + icon_state = "ywflowers_1" + +/obj/structure/flora/ausbushes/ywflowers/Initialize() + icon_state = "ywflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/brflowers + icon_state = "brflowers_1" + +/obj/structure/flora/ausbushes/brflowers/Initialize() + icon_state = "brflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/ppflowers + icon_state = "ppflowers_1" + +/obj/structure/flora/ausbushes/ppflowers/Initialize() + icon_state = "ppflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/sparsegrass + icon_state = "sparsegrass_1" + +/obj/structure/flora/ausbushes/sparsegrass/Initialize() + icon_state = "sparsegrass_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/fullgrass + icon_state = "fullgrass_1" + +/obj/structure/flora/ausbushes/fullgrass/Initialize() + icon_state = "fullgrass_[rand(1, 3)]" + ..() + +/obj/item/weapon/twohanded/required/kirbyplants + name = "potted plant" + icon = 'icons/obj/flora/plants.dmi' + icon_state = "plant-01" + layer = ABOVE_MOB_LAYER + w_class = WEIGHT_CLASS_HUGE + force = 10 + throwforce = 13 + throw_speed = 2 + throw_range = 4 + +/obj/item/weapon/twohanded/required/kirbyplants/equipped(mob/living/user) + var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) + I.override = 1 add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission", I) - ..() - -/obj/item/weapon/twohanded/required/kirbyplants/dropped(mob/living/user) - ..() - user.remove_alt_appearance("sneaking_mission") - -/obj/item/weapon/twohanded/required/kirbyplants/random - var/list/static/states - -/obj/item/weapon/twohanded/required/kirbyplants/random/Initialize() - . = ..() - if(!states) - generate_states() - icon_state = pick(states) - -/obj/item/weapon/twohanded/required/kirbyplants/random/proc/generate_states() - states = list() - for(var/i in 1 to 25) - var/number - if(i < 10) - number = "0[i]" - else - number = "[i]" - states += "plant-[number]" - states += "applebush" - - -/obj/item/weapon/twohanded/required/kirbyplants/dead - name = "RD's potted plant" - desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." - icon_state = "plant-25" - - -//a rock is flora according to where the icon file is -//and now these defines - -/obj/structure/flora/rock - icon_state = "basalt" - desc = "A volcanic rock" - icon = 'icons/obj/flora/rocks.dmi' - resistance_flags = FIRE_PROOF - density = 1 - -/obj/structure/flora/rock/Initialize() - ..() - icon_state = "[icon_state][rand(1,3)]" - -/obj/structure/flora/rock/pile - icon_state = "lavarocks" - desc = "A pile of rocks" - -/obj/structure/flora/rock/pile/Initialize() - ..() - icon_state = "[icon_state][rand(1,3)]" - -//Jungle grass - -/obj/structure/flora/grass/jungle - name = "jungle grass" - desc = "Thick alien flora." - icon = 'icons/obj/flora/jungleflora.dmi' - icon_state = "grassa" - - -/obj/structure/flora/grass/jungle/Initialize() - icon_state = "[icon_state][rand(1, 5)]" - ..() - -/obj/structure/flora/grass/jungle/b - icon_state = "grassb" - -//Jungle rocks - -/obj/structure/flora/rock/jungle - icon_state = "pile of rocks" - desc = "A pile of rocks." - icon_state = "rock" - icon = 'icons/obj/flora/jungleflora.dmi' - density = FALSE - -/obj/structure/flora/rock/jungle/Initialize() - ..() - icon_state = "[initial(icon_state)][rand(1,5)]" - - -//Jungle bushes - -/obj/structure/flora/junglebush - name = "bush" - icon = 'icons/obj/flora/jungleflora.dmi' - icon_state = "busha" - -/obj/structure/flora/junglebush/Initialize() - icon_state = "[icon_state][rand(1, 3)]" - ..() - -/obj/structure/flora/junglebush/b - icon_state = "bushb" - -/obj/structure/flora/junglebush/c - icon_state = "bushc" - -/obj/structure/flora/junglebush/large - icon_state = "bush" - icon = 'icons/obj/flora/largejungleflora.dmi' - pixel_x = -16 - pixel_y = -12 - layer = ABOVE_ALL_MOB_LAYER - -/obj/structure/flora/rock/pile/largejungle - name = "rocks" - icon_state = "rocks" - icon = 'icons/obj/flora/largejungleflora.dmi' - density = FALSE - pixel_x = -16 - pixel_y = -16 - -/obj/structure/flora/rock/pile/largejungle/Initialize() + ..() + +/obj/item/weapon/twohanded/required/kirbyplants/dropped(mob/living/user) + ..() + user.remove_alt_appearance("sneaking_mission") + +/obj/item/weapon/twohanded/required/kirbyplants/random + var/list/static/states + +/obj/item/weapon/twohanded/required/kirbyplants/random/Initialize() + . = ..() + if(!states) + generate_states() + icon_state = pick(states) + +/obj/item/weapon/twohanded/required/kirbyplants/random/proc/generate_states() + states = list() + for(var/i in 1 to 25) + var/number + if(i < 10) + number = "0[i]" + else + number = "[i]" + states += "plant-[number]" + states += "applebush" + + +/obj/item/weapon/twohanded/required/kirbyplants/dead + name = "RD's potted plant" + desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." + icon_state = "plant-25" + + +//a rock is flora according to where the icon file is +//and now these defines + +/obj/structure/flora/rock + icon_state = "basalt" + desc = "A volcanic rock" + icon = 'icons/obj/flora/rocks.dmi' + resistance_flags = FIRE_PROOF + density = 1 + +/obj/structure/flora/rock/Initialize() + ..() + icon_state = "[icon_state][rand(1,3)]" + +/obj/structure/flora/rock/pile + icon_state = "lavarocks" + desc = "A pile of rocks" + +/obj/structure/flora/rock/pile/Initialize() + ..() + icon_state = "[icon_state][rand(1,3)]" + +//Jungle grass + +/obj/structure/flora/grass/jungle + name = "jungle grass" + desc = "Thick alien flora." + icon = 'icons/obj/flora/jungleflora.dmi' + icon_state = "grassa" + + +/obj/structure/flora/grass/jungle/Initialize() + icon_state = "[icon_state][rand(1, 5)]" + ..() + +/obj/structure/flora/grass/jungle/b + icon_state = "grassb" + +//Jungle rocks + +/obj/structure/flora/rock/jungle + icon_state = "pile of rocks" + desc = "A pile of rocks." + icon_state = "rock" + icon = 'icons/obj/flora/jungleflora.dmi' + density = FALSE + +/obj/structure/flora/rock/jungle/Initialize() + ..() + icon_state = "[initial(icon_state)][rand(1,5)]" + + +//Jungle bushes + +/obj/structure/flora/junglebush + name = "bush" + icon = 'icons/obj/flora/jungleflora.dmi' + icon_state = "busha" + +/obj/structure/flora/junglebush/Initialize() + icon_state = "[icon_state][rand(1, 3)]" + ..() + +/obj/structure/flora/junglebush/b + icon_state = "bushb" + +/obj/structure/flora/junglebush/c + icon_state = "bushc" + +/obj/structure/flora/junglebush/large + icon_state = "bush" + icon = 'icons/obj/flora/largejungleflora.dmi' + pixel_x = -16 + pixel_y = -12 + layer = ABOVE_ALL_MOB_LAYER + +/obj/structure/flora/rock/pile/largejungle + name = "rocks" + icon_state = "rocks" + icon = 'icons/obj/flora/largejungleflora.dmi' + density = FALSE + pixel_x = -16 + pixel_y = -16 + +/obj/structure/flora/rock/pile/largejungle/Initialize() . = ..() icon_state = "[initial(icon_state)][rand(1,3)]" diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 83b7fde171..d94978b397 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -17,7 +17,7 @@ if(!do_after(user, 50, target = src)) return 0 user.visible_message("[user] disassembles [src]!", "You break down [src] into scrap metal.") - playsound(user, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(user, 'sound/items/deconstruct.ogg', 50, 1) new/obj/item/stack/sheet/metal(get_turf(src)) qdel(src) return @@ -65,6 +65,7 @@ pixel_x = -16 density = TRUE deconstructible = FALSE + layer = EDGED_TURF_LAYER /obj/structure/fluff/drake_statue/falling //A variety of statue in disrepair; parts are broken off and a gemstone is missing desc = "A towering basalt sculpture of a drake. Cracks run down its surface and parts of it have fallen off." diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 15240acef3..69b94ab529 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -455,9 +455,11 @@ uniform = /obj/item/clothing/under/rank/security shoes = /obj/item/clothing/shoes/jackboots id = /obj/item/weapon/card/id/away/old/sec + r_pocket = /obj/item/weapon/restraints/handcuffs + l_pocket = /obj/item/device/assembly/flash/handheld /obj/effect/mob_spawn/human/oldsec/Destroy() - new/obj/structure/showcase/oldpod(get_turf(src)) + new/obj/structure/showcase/oldpod/used(get_turf(src)) return ..() /obj/effect/mob_spawn/human/oldeng @@ -476,9 +478,11 @@ uniform = /obj/item/clothing/under/rank/engineer shoes = /obj/item/clothing/shoes/workboots id = /obj/item/weapon/card/id/away/old/eng + gloves = /obj/item/clothing/gloves/color/fyellow/old + l_pocket = /obj/item/weapon/tank/internals/emergency_oxygen /obj/effect/mob_spawn/human/oldeng/Destroy() - new/obj/structure/showcase/oldpod(get_turf(src)) + new/obj/structure/showcase/oldpod/used(get_turf(src)) return ..() /obj/effect/mob_spawn/human/oldsci @@ -497,7 +501,8 @@ uniform = /obj/item/clothing/under/rank/scientist shoes = /obj/item/clothing/shoes/laceup id = /obj/item/weapon/card/id/away/old/sci + l_pocket = /obj/item/stack/medical/bruise_pack /obj/effect/mob_spawn/human/oldsci/Destroy() - new/obj/structure/showcase/oldpod(get_turf(src)) + new/obj/structure/showcase/oldpod/used(get_turf(src)) return ..() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index bdf2a5eb40..accccbc163 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -80,7 +80,7 @@ else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) to_chat(user, "You start slicing apart the girder...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, 40*W.toolspeed, target = src)) to_chat(user, "You slice apart the girder.") var/obj/item/stack/sheet/metal/M = new (loc, 2) @@ -352,7 +352,7 @@ else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) to_chat(user, "You start slicing apart the girder...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, 40*W.toolspeed, target = src)) to_chat(user, "You slice apart the girder.") var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src)) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 1f6426753b..e2e8f7e5c9 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -229,7 +229,7 @@ var/turf/T = get_turf(src) var/obj/structure/cable/C = T.get_cable_node() if(C) - playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 3, C.powernet.avail * 0.01) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot. C.powernet.load += C.powernet.avail * 0.0375 // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock. return ..() diff --git a/code/game/objects/structures/hivebot.dm b/code/game/objects/structures/hivebot.dm index 4e57e67071..e4ea4a7ebf 100644 --- a/code/game/objects/structures/hivebot.dm +++ b/code/game/objects/structures/hivebot.dm @@ -14,7 +14,7 @@ smoke.set_up(2, loc) smoke.start() visible_message("The [src] warps in!") - playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) + playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1) addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600)) /obj/structure/hivebot_beacon/proc/warpbots() @@ -31,6 +31,6 @@ new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src)) sleep(100) visible_message("The [src] warps out!") - playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) + playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1) qdel(src) return diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 18fd2875f7..841ce45b7b 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -30,9 +30,9 @@ /obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + playsound(loc, 'sound/weapons/egloves.ogg', 80, 1) if(BURN) - playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + playsound(loc, 'sound/weapons/egloves.ogg', 80, 1) /obj/structure/holosign/wetsign name = "wet floor sign" diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index d9a713dc06..f2457c6da1 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -139,7 +139,7 @@ src.visible_message(text("[M] falls free of the [src]!")) unbuckle_mob(M,force=1) M.emote("scream") - M.AdjustWeakened(10) + M.AdjustKnockdown(20) /obj/structure/kitchenspike/deconstruct(disassembled = TRUE) if(disassembled) diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 5a7988e8d4..405c2d2225 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -1,110 +1,110 @@ -/obj/structure/ladder - name = "ladder" - desc = "A sturdy metal ladder." - icon = 'icons/obj/structures.dmi' - icon_state = "ladder11" - var/id = null - var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher - var/obj/structure/ladder/down = null //the ladder below this one - var/obj/structure/ladder/up = null //the ladder above this one - -/obj/structure/ladder/unbreakable //mostly useful for awaymissions to prevent halting progress in a mission - name = "sturdy ladder" - desc = "An extremely sturdy metal ladder." - - -/obj/structure/ladder/Initialize(mapload) +/obj/structure/ladder + name = "ladder" + desc = "A sturdy metal ladder." + icon = 'icons/obj/structures.dmi' + icon_state = "ladder11" + var/id = null + var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher + var/obj/structure/ladder/down = null //the ladder below this one + var/obj/structure/ladder/up = null //the ladder above this one + +/obj/structure/ladder/unbreakable //mostly useful for awaymissions to prevent halting progress in a mission + name = "sturdy ladder" + desc = "An extremely sturdy metal ladder." + + +/obj/structure/ladder/Initialize(mapload) GLOB.ladders += src ..() return INITIALIZE_HINT_LATELOAD - -/obj/structure/ladder/Destroy() - GLOB.ladders -= src - . = ..() - + +/obj/structure/ladder/Destroy() + GLOB.ladders -= src + . = ..() + /obj/structure/ladder/LateInitialize() - for(var/obj/structure/ladder/L in GLOB.ladders) - if(L.id == id) - if(L.height == (height - 1)) - down = L - continue - if(L.height == (height + 1)) - up = L - continue - - if(up && down) //if both our connections are filled - break - update_icon() - - -/obj/structure/ladder/update_icon() - if(up && down) - icon_state = "ladder11" - - else if(up) - icon_state = "ladder10" - - else if(down) - icon_state = "ladder01" - - else //wtf make your ladders properly assholes - icon_state = "ladder00" - -/obj/structure/ladder/proc/go_up(mob/user,is_ghost) - if(!is_ghost) - show_fluff_message(1,user) - up.add_fingerprint(user) - user.loc = get_turf(up) - -/obj/structure/ladder/proc/go_down(mob/user,is_ghost) - if(!is_ghost) - show_fluff_message(0,user) - down.add_fingerprint(user) - user.loc = get_turf(down) - -/obj/structure/ladder/proc/use(mob/user,is_ghost=0) - if(up && down) - switch( alert("Go up or down the ladder?", "Ladder", "Up", "Down", "Cancel") ) - if("Up") - go_up(user,is_ghost) - if("Down") - go_down(user,is_ghost) - if("Cancel") - return - else if(up) - go_up(user,is_ghost) - else if(down) - go_down(user,is_ghost) - else - to_chat(user, "[src] doesn't seem to lead anywhere!") - - if(!is_ghost) - add_fingerprint(user) - -/obj/structure/ladder/attack_hand(mob/user) - if(can_use(user)) - use(user) - -/obj/structure/ladder/attack_paw(mob/user) - return attack_hand(user) - -/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user, params) - return attack_hand(user) - -/obj/structure/ladder/attack_ghost(mob/dead/observer/user) - use(user,1) - -/obj/structure/ladder/proc/show_fluff_message(up,mob/user) - if(up) - user.visible_message("[user] climbs up \the [src].","You climb up \the [src].") - else - user.visible_message("[user] climbs down \the [src].","You climb down \the [src].") - -/obj/structure/ladder/proc/can_use(mob/user) - return 1 - -/obj/structure/ladder/unbreakable/Destroy(force) - if(force) - . = ..() - else - return QDEL_HINT_LETMELIVE + for(var/obj/structure/ladder/L in GLOB.ladders) + if(L.id == id) + if(L.height == (height - 1)) + down = L + continue + if(L.height == (height + 1)) + up = L + continue + + if(up && down) //if both our connections are filled + break + update_icon() + + +/obj/structure/ladder/update_icon() + if(up && down) + icon_state = "ladder11" + + else if(up) + icon_state = "ladder10" + + else if(down) + icon_state = "ladder01" + + else //wtf make your ladders properly assholes + icon_state = "ladder00" + +/obj/structure/ladder/proc/go_up(mob/user,is_ghost) + if(!is_ghost) + show_fluff_message(1,user) + up.add_fingerprint(user) + user.loc = get_turf(up) + +/obj/structure/ladder/proc/go_down(mob/user,is_ghost) + if(!is_ghost) + show_fluff_message(0,user) + down.add_fingerprint(user) + user.loc = get_turf(down) + +/obj/structure/ladder/proc/use(mob/user,is_ghost=0) + if(up && down) + switch( alert("Go up or down the ladder?", "Ladder", "Up", "Down", "Cancel") ) + if("Up") + go_up(user,is_ghost) + if("Down") + go_down(user,is_ghost) + if("Cancel") + return + else if(up) + go_up(user,is_ghost) + else if(down) + go_down(user,is_ghost) + else + to_chat(user, "[src] doesn't seem to lead anywhere!") + + if(!is_ghost) + add_fingerprint(user) + +/obj/structure/ladder/attack_hand(mob/user) + if(can_use(user)) + use(user) + +/obj/structure/ladder/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user, params) + return attack_hand(user) + +/obj/structure/ladder/attack_ghost(mob/dead/observer/user) + use(user,1) + +/obj/structure/ladder/proc/show_fluff_message(up,mob/user) + if(up) + user.visible_message("[user] climbs up \the [src].","You climb up \the [src].") + else + user.visible_message("[user] climbs down \the [src].","You climb down \the [src].") + +/obj/structure/ladder/proc/can_use(mob/user) + return 1 + +/obj/structure/ladder/unbreakable/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index bab1a84483..1f4c672114 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -22,7 +22,7 @@ var/datum/outfit/outfit // How long until we respawn them after their death. var/respawn_time = 50 - var/respawn_sound = 'sound/magic/Staff_animation.ogg' + var/respawn_sound = 'sound/magic/staff_animation.ogg' /obj/structure/life_candle/attack_hand(mob/user) if(!user.mind) diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index f2f767f4e6..99bd4336a8 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -38,7 +38,7 @@ buckled_mob.pixel_x = 0 buckled_mob.pixel_y = 0 if(buckled_mob.client) - buckled_mob.reset_perspective() + buckled_mob.client.change_view(world.view) anchored = FALSE . = ..() STOP_PROCESSING(SSfastprocess, src) @@ -47,7 +47,9 @@ if(user.incapacitated() || !istype(user)) return M.forceMove(get_turf(src)) - ..() + . = ..() + if(!.) + return for(var/V in M.held_items) var/obj/item/I = V if(istype(I)) @@ -62,8 +64,8 @@ setDir(SOUTH) playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) anchored = TRUE - if(user.client) - user.client.change_view(view_range) + if(M.client) + M.client.change_view(view_range) START_PROCESSING(SSfastprocess, src) /obj/machinery/manned_turret/process() @@ -84,6 +86,8 @@ calculated_projectile_vars = calculate_projectile_angle_and_pixel_offsets(controller, C.mouseParams) /obj/machinery/manned_turret/proc/direction_track(mob/user, atom/targeted) + if(user.stat != CONSCIOUS) + return setDir(get_dir(src,targeted)) user.setDir(dir) switch(dir) @@ -149,7 +153,7 @@ P.starting = targets_from P.firer = user P.original = target - playsound(src, 'sound/weapons/Gunshot_smg.ogg', 75, 1) + playsound(src, 'sound/weapons/gunshot_smg.ogg', 75, 1) P.xo = target.x - targets_from.x P.yo = target.y - targets_from.y P.Angle = calculated_projectile_vars[1] + rand(-9, 9) @@ -174,7 +178,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "offhand" w_class = WEIGHT_CLASS_HUGE - flags = ABSTRACT | NODROP | NOBLUDGEON + flags = ABSTRACT | NODROP | NOBLUDGEON | DROPDEL resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF var/obj/machinery/manned_turret/turret diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 4c57c55e6a..dc064591ef 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -5,7 +5,7 @@ name = "metal door" density = 1 anchored = 1 - opacity = 1 + opacity = TRUE icon = 'icons/obj/doors/mineral_doors.dmi' icon_state = "metal" @@ -86,11 +86,11 @@ /obj/structure/mineral_door/proc/Open() isSwitchingStates = 1 - playsound(loc, openSound, 100, 1) + playsound(src, openSound, 100, 1) + set_opacity(FALSE) flick("[initial_state]opening",src) sleep(10) density = 0 - opacity = 0 state = 1 air_update_turf(1) update_icon() @@ -110,7 +110,7 @@ flick("[initial_state]closing",src) sleep(10) density = 1 - opacity = 1 + set_opacity(TRUE) state = 0 air_update_turf(1) update_icon() @@ -175,11 +175,11 @@ max_integrity = 100 /obj/structure/mineral_door/transparent - opacity = 0 + opacity = FALSE /obj/structure/mineral_door/transparent/Close() ..() - opacity = 0 + set_opacity(FALSE) /obj/structure/mineral_door/transparent/plasma name = "plasma door" @@ -219,3 +219,22 @@ resistance_flags = FLAMMABLE obj_integrity = 200 max_integrity = 200 + +/obj/structure/mineral_door/paperframe + name = "paper frame door" + icon_state = "paperframe" + openSound = 'sound/effects/doorcreaky.ogg' + closeSound = 'sound/effects/doorcreaky.ogg' + sheetType = /obj/item/stack/sheet/paperframes + sheetAmount = 3 + resistance_flags = FLAMMABLE + obj_integrity = 20 + max_integrity = 20 + +/obj/structure/mineral_door/paperframe/Initialize() + . = ..() + queue_smooth_neighbors(src) + +/obj/structure/mineral_door/paperframe/Destroy() + queue_smooth_neighbors(src) + return ..() diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 1dad6b094f..8431cdc495 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -67,7 +67,7 @@ user.changeNext_move(CLICK_CD_MELEE) if(WT.remove_fuel(0, user)) to_chat(user, "You begin repairing [src]...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, 10*I.toolspeed, target = src)) if(!user || !WT || !WT.isOn()) return diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 67dacc7b44..60c144c530 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -1,229 +1,229 @@ -/* Morgue stuff - * Contains: - * Morgue - * Morgue tray - * Crematorium +/* Morgue stuff + * Contains: + * Morgue + * Morgue tray + * Crematorium * Creamatorium - * Crematorium tray - * Crematorium button - */ - -/* - * Bodycontainer - * Parent class for morgue and crematorium - * For overriding only - */ -/obj/structure/bodycontainer - icon = 'icons/obj/stationobjs.dmi' - icon_state = "morgue1" - density = 1 - anchored = 1 - obj_integrity = 400 - max_integrity = 400 - - var/obj/structure/tray/connected = null - var/locked = 0 - var/opendir = SOUTH - -/obj/structure/bodycontainer/Destroy() - open() - if(connected) - qdel(connected) - connected = null - return ..() - + * Crematorium tray + * Crematorium button + */ + +/* + * Bodycontainer + * Parent class for morgue and crematorium + * For overriding only + */ +/obj/structure/bodycontainer + icon = 'icons/obj/stationobjs.dmi' + icon_state = "morgue1" + density = 1 + anchored = 1 + obj_integrity = 400 + max_integrity = 400 + + var/obj/structure/tray/connected = null + var/locked = 0 + var/opendir = SOUTH + +/obj/structure/bodycontainer/Destroy() + open() + if(connected) + qdel(connected) + connected = null + return ..() + /obj/structure/bodycontainer/on_log(login) ..() - update_icon() - -/obj/structure/bodycontainer/update_icon() - return - -/obj/structure/bodycontainer/relaymove(mob/user) - if(user.stat || !isturf(loc)) - return - open() - -/obj/structure/bodycontainer/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/structure/bodycontainer/attack_hand(mob/user) - if(locked) - to_chat(user, "It's locked.") - return - if(!connected) - to_chat(user, "That doesn't appear to have a tray.") - return - if(connected.loc == src) - open() - else - close() - add_fingerprint(user) - -/obj/structure/bodycontainer/attack_robot(mob/user) - if(!user.Adjacent(src)) - return - return attack_hand(user) - -/obj/structure/bodycontainer/attackby(obj/P, mob/user, params) - add_fingerprint(user) - if(istype(P, /obj/item/weapon/pen)) - var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null) - if (user.get_active_held_item() != P) - return - if ((!in_range(src, usr) && src.loc != user)) - return - if (t) - name = text("[]- '[]'", initial(name), t) - else - name = initial(name) - else - return ..() - -/obj/structure/bodycontainer/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/metal (loc, 5) - qdel(src) - -/obj/structure/bodycontainer/container_resist(mob/living/user) - open() - -/obj/structure/bodycontainer/relay_container_resist(mob/living/user, obj/O) - to_chat(user, "You slam yourself into the side of [O].") - container_resist(user) - -/obj/structure/bodycontainer/proc/open() - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - var/turf/T = get_step(src, opendir) - for(var/atom/movable/AM in src) - AM.forceMove(T) - update_icon() - -/obj/structure/bodycontainer/proc/close() - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - for(var/atom/movable/AM in connected.loc) - if(!AM.anchored || AM == connected) - AM.forceMove(src) - update_icon() - -/obj/structure/bodycontainer/get_remote_view_fullscreens(mob/user) - if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) - user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2) -/* - * Morgue - */ -/obj/structure/bodycontainer/morgue - name = "morgue" - desc = "Used to keep bodies in until someone fetches them." - icon_state = "morgue1" - opendir = EAST - -/obj/structure/bodycontainer/morgue/New() - connected = new/obj/structure/tray/m_tray(src) - connected.connected = src - ..() - -/obj/structure/bodycontainer/morgue/update_icon() - if (!connected || connected.loc != src) // Open or tray is gone. - icon_state = "morgue0" - else - if(contents.len == 1) // Empty - icon_state = "morgue1" - else - icon_state = "morgue2" // Dead, brainded mob. - var/list/compiled = recursive_mob_check(src, 0, 0) // Search for mobs in all contents. - if(!length(compiled)) // No mobs? - icon_state = "morgue3" - return - for(var/mob/living/M in compiled) - if(M.client && !M.suiciding) - icon_state = "morgue4" // Cloneable - break - -/obj/item/weapon/paper/morguereminder - name = "morgue memo" - info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

    Red lights mean there's a plain ol' dead body inside.

    Yellow lights mean there's non-body objects inside.
    Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

    Green lights mean the morgue system detects the body may be able to be cloned.

    I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

    - Centcom medical inspector" - -/* - * Crematorium - */ -GLOBAL_LIST_EMPTY(crematoriums) -/obj/structure/bodycontainer/crematorium - name = "crematorium" - desc = "A human incinerator. Works well on barbeque nights." - icon_state = "crema1" - opendir = SOUTH - var/id = 1 - -/obj/structure/bodycontainer/crematorium/attack_robot(mob/user) //Borgs can't use crematoriums without help - to_chat(user, "[src] is locked against you.") - return - -/obj/structure/bodycontainer/crematorium/Destroy() - GLOB.crematoriums.Remove(src) - return ..() - -/obj/structure/bodycontainer/crematorium/New() - connected = new/obj/structure/tray/c_tray(src) - connected.connected = src - - GLOB.crematoriums.Add(src) - ..() - -/obj/structure/bodycontainer/crematorium/update_icon() - if(!connected || connected.loc != src) - icon_state = "crema0" - else - - if(src.contents.len > 1) - src.icon_state = "crema2" - else - src.icon_state = "crema1" - - if(locked) - src.icon_state = "crema_active" - - return - -/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user) - if(locked) - return //don't let you cremate something twice or w/e - // Make sure we don't delete the actual morgue and its tray - var/list/conts = GetAllContents() - src - connected - + update_icon() + +/obj/structure/bodycontainer/update_icon() + return + +/obj/structure/bodycontainer/relaymove(mob/user) + if(user.stat || !isturf(loc)) + return + open() + +/obj/structure/bodycontainer/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/bodycontainer/attack_hand(mob/user) + if(locked) + to_chat(user, "It's locked.") + return + if(!connected) + to_chat(user, "That doesn't appear to have a tray.") + return + if(connected.loc == src) + open() + else + close() + add_fingerprint(user) + +/obj/structure/bodycontainer/attack_robot(mob/user) + if(!user.Adjacent(src)) + return + return attack_hand(user) + +/obj/structure/bodycontainer/attackby(obj/P, mob/user, params) + add_fingerprint(user) + if(istype(P, /obj/item/weapon/pen)) + var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null) + if (user.get_active_held_item() != P) + return + if ((!in_range(src, usr) && src.loc != user)) + return + if (t) + name = text("[]- '[]'", initial(name), t) + else + name = initial(name) + else + return ..() + +/obj/structure/bodycontainer/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + +/obj/structure/bodycontainer/container_resist(mob/living/user) + open() + +/obj/structure/bodycontainer/relay_container_resist(mob/living/user, obj/O) + to_chat(user, "You slam yourself into the side of [O].") + container_resist(user) + +/obj/structure/bodycontainer/proc/open() + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + var/turf/T = get_step(src, opendir) + for(var/atom/movable/AM in src) + AM.forceMove(T) + update_icon() + +/obj/structure/bodycontainer/proc/close() + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + for(var/atom/movable/AM in connected.loc) + if(!AM.anchored || AM == connected) + AM.forceMove(src) + update_icon() + +/obj/structure/bodycontainer/get_remote_view_fullscreens(mob/user) + if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2) +/* + * Morgue + */ +/obj/structure/bodycontainer/morgue + name = "morgue" + desc = "Used to keep bodies in until someone fetches them." + icon_state = "morgue1" + opendir = EAST + +/obj/structure/bodycontainer/morgue/New() + connected = new/obj/structure/tray/m_tray(src) + connected.connected = src + ..() + +/obj/structure/bodycontainer/morgue/update_icon() + if (!connected || connected.loc != src) // Open or tray is gone. + icon_state = "morgue0" + else + if(contents.len == 1) // Empty + icon_state = "morgue1" + else + icon_state = "morgue2" // Dead, brainded mob. + var/list/compiled = recursive_mob_check(src, 0, 0) // Search for mobs in all contents. + if(!length(compiled)) // No mobs? + icon_state = "morgue3" + return + for(var/mob/living/M in compiled) + if(M.client && !M.suiciding) + icon_state = "morgue4" // Cloneable + break + +/obj/item/weapon/paper/morguereminder + name = "morgue memo" + info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

    Red lights mean there's a plain ol' dead body inside.

    Yellow lights mean there's non-body objects inside.
    Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

    Green lights mean the morgue system detects the body may be able to be cloned.

    I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

    - Centcom medical inspector" + +/* + * Crematorium + */ +GLOBAL_LIST_EMPTY(crematoriums) +/obj/structure/bodycontainer/crematorium + name = "crematorium" + desc = "A human incinerator. Works well on barbeque nights." + icon_state = "crema1" + opendir = SOUTH + var/id = 1 + +/obj/structure/bodycontainer/crematorium/attack_robot(mob/user) //Borgs can't use crematoriums without help + to_chat(user, "[src] is locked against you.") + return + +/obj/structure/bodycontainer/crematorium/Destroy() + GLOB.crematoriums.Remove(src) + return ..() + +/obj/structure/bodycontainer/crematorium/New() + connected = new/obj/structure/tray/c_tray(src) + connected.connected = src + + GLOB.crematoriums.Add(src) + ..() + +/obj/structure/bodycontainer/crematorium/update_icon() + if(!connected || connected.loc != src) + icon_state = "crema0" + else + + if(src.contents.len > 1) + src.icon_state = "crema2" + else + src.icon_state = "crema1" + + if(locked) + src.icon_state = "crema_active" + + return + +/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user) + if(locked) + return //don't let you cremate something twice or w/e + // Make sure we don't delete the actual morgue and its tray + var/list/conts = GetAllContents() - src - connected + if(!conts.len) - audible_message("You hear a hollow crackle.") - return - - else - audible_message("You hear a roar as the crematorium activates.") - - locked = 1 - update_icon() - - for(var/mob/living/M in conts) - if (M.stat != DEAD) - M.emote("scream") - if(user) - user.log_message("Cremated [M]/[M.ckey]", INDIVIDUAL_ATTACK_LOG) - log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") - else - log_attack("\[[time_stamp()]\] UNKNOWN cremated [M]/[M.ckey]") - M.death(1) - if(M) //some animals get automatically deleted on death. - M.ghostize() - qdel(M) - - for(var/obj/O in conts) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up - if(O != connected) //Creamtorium does not burn hot enough to destroy the tray - qdel(O) - - new /obj/effect/decal/cleanable/ash(src) - sleep(30) - if(!QDELETED(src)) - locked = 0 - update_icon() - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people - + audible_message("You hear a hollow crackle.") + return + + else + audible_message("You hear a roar as the crematorium activates.") + + locked = 1 + update_icon() + + for(var/mob/living/M in conts) + if (M.stat != DEAD) + M.emote("scream") + if(user) + user.log_message("Cremated [M]/[M.ckey]", INDIVIDUAL_ATTACK_LOG) + log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + else + log_attack("\[[time_stamp()]\] UNKNOWN cremated [M]/[M.ckey]") + M.death(1) + if(M) //some animals get automatically deleted on death. + M.ghostize() + qdel(M) + + for(var/obj/O in conts) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up + if(O != connected) //Creamtorium does not burn hot enough to destroy the tray + qdel(O) + + new /obj/effect/decal/cleanable/ash(src) + sleep(30) + if(!QDELETED(src)) + locked = 0 + update_icon() + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people + /obj/structure/bodycontainer/crematorium/creamatorium name = "creamatorium" desc = "A human incinerator. Works well during ice cream socials." @@ -238,89 +238,89 @@ GLOBAL_LIST_EMPTY(crematoriums) . = ..() for(var/obj/IC in icecreams) IC.forceMove(src) - -/* - * Generic Tray - * Parent class for morguetray and crematoriumtray - * For overriding only - */ -/obj/structure/tray - icon = 'icons/obj/stationobjs.dmi' - density = 1 - layer = BELOW_OBJ_LAYER - var/obj/structure/bodycontainer/connected = null - anchored = 1 - pass_flags = LETPASSTHROW - obj_integrity = 350 - max_integrity = 350 - -/obj/structure/tray/Destroy() - if(connected) - connected.connected = null - connected.update_icon() - connected = null - return ..() - -/obj/structure/tray/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/metal (loc, 2) - qdel(src) - -/obj/structure/tray/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/structure/tray/attack_hand(mob/user) - if (src.connected) - connected.close() - add_fingerprint(user) - else - to_chat(user, "That's not connected to anything!") - -/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user) - if(!istype(O, /atom/movable) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) - return - if(!ismob(O)) - if(!istype(O, /obj/structure/closet/body_bag)) - return - else - var/mob/M = O - if(M.buckled) - return - if(!ismob(user) || user.lying || user.incapacitated()) - return - O.loc = src.loc - if (user != O) - visible_message("[user] stuffs [O] into [src].") - return - -/* - * Crematorium tray - */ -/obj/structure/tray/c_tray - name = "crematorium tray" - desc = "Apply body before burning." - icon_state = "cremat" - -/* - * Morgue tray - */ -/obj/structure/tray/m_tray - name = "morgue tray" - desc = "Apply corpse before closing." - icon_state = "morguet" - -/obj/structure/tray/m_tray/CanPass(atom/movable/mover, turf/target, height=0) - if(height == 0) - return 1 - - if(istype(mover) && mover.checkpass(PASSTABLE)) - return 1 - if(locate(/obj/structure/table) in get_turf(mover)) - return 1 - else - return 0 - -/obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller) - . = !density - if(ismovableatom(caller)) - var/atom/movable/mover = caller - . = . || mover.checkpass(PASSTABLE) + +/* + * Generic Tray + * Parent class for morguetray and crematoriumtray + * For overriding only + */ +/obj/structure/tray + icon = 'icons/obj/stationobjs.dmi' + density = 1 + layer = BELOW_OBJ_LAYER + var/obj/structure/bodycontainer/connected = null + anchored = 1 + pass_flags = LETPASSTHROW + obj_integrity = 350 + max_integrity = 350 + +/obj/structure/tray/Destroy() + if(connected) + connected.connected = null + connected.update_icon() + connected = null + return ..() + +/obj/structure/tray/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/structure/tray/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/tray/attack_hand(mob/user) + if (src.connected) + connected.close() + add_fingerprint(user) + else + to_chat(user, "That's not connected to anything!") + +/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user) + if(!ismovableatom(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) + return + if(!ismob(O)) + if(!istype(O, /obj/structure/closet/body_bag)) + return + else + var/mob/M = O + if(M.buckled) + return + if(!ismob(user) || user.lying || user.incapacitated()) + return + O.loc = src.loc + if (user != O) + visible_message("[user] stuffs [O] into [src].") + return + +/* + * Crematorium tray + */ +/obj/structure/tray/c_tray + name = "crematorium tray" + desc = "Apply body before burning." + icon_state = "cremat" + +/* + * Morgue tray + */ +/obj/structure/tray/m_tray + name = "morgue tray" + desc = "Apply corpse before closing." + icon_state = "morguet" + +/obj/structure/tray/m_tray/CanPass(atom/movable/mover, turf/target, height=0) + if(height == 0) + return 1 + + if(istype(mover) && mover.checkpass(PASSTABLE)) + return 1 + if(locate(/obj/structure/table) in get_turf(mover)) + return 1 + else + return 0 + +/obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSTABLE) diff --git a/code/game/objects/structures/petrified_statue.dm b/code/game/objects/structures/petrified_statue.dm index 421bc0d699..80e535dc92 100644 --- a/code/game/objects/structures/petrified_statue.dm +++ b/code/game/objects/structures/petrified_statue.dm @@ -30,7 +30,7 @@ if(!petrified_mob) STOP_PROCESSING(SSobj, src) timer-- - petrified_mob.Stun(2) //So they can't do anything while petrified + petrified_mob.Stun(40) //So they can't do anything while petrified if(timer <= 0) STOP_PROCESSING(SSobj, src) qdel(src) @@ -50,7 +50,7 @@ if(S.mind) if(petrified_mob) S.mind.transfer_to(petrified_mob) - petrified_mob.Weaken(5) + petrified_mob.Knockdown(100) to_chat(petrified_mob, "You slowly come back to your senses. You are in control of yourself again!") qdel(S) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 2365930c3b..817d687c00 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -55,7 +55,7 @@ switch(anchored) if(0) if (WT.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ "You start to weld \the [src] to the floor...", \ "You hear welding.") @@ -66,7 +66,7 @@ to_chat(user, "You weld \the [src] to the floor.") if(1) if (WT.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ "You start to cut \the [src] free from the floor...", \ "You hear welding.") diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index 5f3237d664..a8b05f2458 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -40,11 +40,15 @@ icon_state = "pod_g" /obj/structure/showcase/oldpod - name = "damage cyrogenic pod" - desc = "A damage cyrogenic pod long since lost to time, including its former occupant..." + name = "damaged cyrogenic pod" + desc = "A damaged cyrogenic pod long since lost to time, including its former occupant..." icon = 'icons/obj/cryogenic2.dmi' icon_state = "sleeper-open" +/obj/structure/showcase/oldpod/used + name = "opened cyrogenic pod" + desc = "Cyrogenic pod that has recently discharged its occupand. The pod appears non-functional." + //Deconstructing //Showcases can be any sprite, so it makes sense that they can't be constructed. diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 8ffebdc0ab..ce1fbab90a 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -1,293 +1,293 @@ -/obj/structure/sign - icon = 'icons/obj/decals.dmi' - anchored = 1 - opacity = 0 - density = 0 - layer = SIGN_LAYER - obj_integrity = 100 - max_integrity = 100 - armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) - var/buildable_sign = 1 //unwrenchable and modifiable - -/obj/structure/sign/basic - name = "blank sign" - desc = "How can signs be real if our eyes aren't real?" - icon_state = "backing" - -/obj/structure/sign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(damage_amount) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - playsound(loc, 'sound/items/welder.ogg', 80, 1) - -/obj/structure/sign/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/wrench) && buildable_sign) - user.visible_message("[user] starts removing [src]...", \ - "You start unfastening [src].") - playsound(src, O.usesound, 50, 1) - if(!do_after(user, 30*O.toolspeed, target = src)) - return - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - user.visible_message("[user] unfastens [src].", \ - "You unfasten [src].") - var/obj/item/sign_backing/SB = new (get_turf(user)) - SB.icon_state = icon_state - SB.sign_path = type - qdel(src) - else if(istype(O, /obj/item/weapon/pen) && buildable_sign) - var/list/sign_types = list("Secure Area", "Biohazard", "High Voltage", "Radiation", "Hard Vacuum Ahead", "Disposal: Leads To Space", "Danger: Fire", "No Smoking", "Medbay", "Science", "Chemistry", \ - "Hydroponics", "Xenobiology") - var/obj/structure/sign/sign_type - switch(input(user, "Select a sign type.", "Sign Customization") as null|anything in sign_types) - if("Blank") - sign_type = /obj/structure/sign/basic - if("Secure Area") - sign_type = /obj/structure/sign/securearea - if("Biohazard") - sign_type = /obj/structure/sign/biohazard - if("High Voltage") - sign_type = /obj/structure/sign/electricshock - if("Radiation") - sign_type = /obj/structure/sign/radiation - if("Hard Vacuum Ahead") - sign_type = /obj/structure/sign/vacuum - if("Disposal: Leads To Space") - sign_type = /obj/structure/sign/deathsposal - if("Danger: Fire") - sign_type = /obj/structure/sign/fire - if("No Smoking") - sign_type = /obj/structure/sign/nosmoking_1 - if("Medbay") - sign_type = /obj/structure/sign/bluecross_2 - if("Science") - sign_type = /obj/structure/sign/science - if("Chemistry") - sign_type = /obj/structure/sign/chemistry - if("Hydroponics") - sign_type = /obj/structure/sign/botany - if("Xenobiology") - sign_type = /obj/structure/sign/xenobio - - //Make sure user is adjacent still - if(!Adjacent(user)) - return - - if(!sign_type) - return - - //It's import to clone the pixel layout information - //Otherwise signs revert to being on the turf and - //move jarringly - var/obj/structure/sign/newsign = new sign_type(get_turf(src)) - newsign.pixel_x = pixel_x - newsign.pixel_y = pixel_y - qdel(src) - else - return ..() - -/obj/item/sign_backing - name = "sign backing" - desc = "A sign with adhesive backing." - icon = 'icons/obj/decals.dmi' - icon_state = "backing" - w_class = WEIGHT_CLASS_NORMAL - resistance_flags = FLAMMABLE - var/sign_path = /obj/structure/sign/basic //the type of sign that will be created when placed on a turf - -/obj/item/sign_backing/afterattack(atom/target, mob/user, proximity) - if(isturf(target) && proximity) - var/turf/T = target - user.visible_message("[user] fastens [src] to [T].", \ - "You attach the sign to [T].") - playsound(T, 'sound/items/Deconstruct.ogg', 50, 1) - new sign_path(T) - user.drop_item() - qdel(src) - else - return ..() - -/obj/structure/sign/map - name = "station map" - desc = "A framed picture of the station." - obj_integrity = 500 - max_integrity = 500 - -/obj/structure/sign/map/left - icon_state = "map-left" - -/obj/structure/sign/map/left/dream - icon_state = "map-left-DS" - desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ - Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ - Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." - -/obj/structure/sign/map/right - icon_state = "map-right" - -/obj/structure/sign/map/right/dream - icon_state = "map-right-DS" - desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ - Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ - Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." - -/obj/structure/sign/map/left/ceres - icon_state = "map-CS" - desc = "A framed picture of the station.\nClockwise from the top, you see Security (red), Dorms (light-green), Bridge (dark-blue), AI Core (gray), \ - Cargo (brown), Medbay (blue), Arrivals/Departures(orange/cyan), Research (purple), Service (dark-green), and Engineering in the center (yellow)." - -/obj/structure/sign/securearea - name = "\improper SECURE AREA" - desc = "A warning sign which reads 'SECURE AREA'." - icon_state = "securearea" - -/obj/structure/sign/biohazard - name = "\improper BIOHAZARD" +/obj/structure/sign + icon = 'icons/obj/decals.dmi' + anchored = 1 + opacity = 0 + density = 0 + layer = SIGN_LAYER + obj_integrity = 100 + max_integrity = 100 + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + var/buildable_sign = 1 //unwrenchable and modifiable + +/obj/structure/sign/basic + name = "blank sign" + desc = "How can signs be real if our eyes aren't real?" + icon_state = "backing" + +/obj/structure/sign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(loc, 'sound/items/welder.ogg', 80, 1) + +/obj/structure/sign/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/wrench) && buildable_sign) + user.visible_message("[user] starts removing [src]...", \ + "You start unfastening [src].") + playsound(src, O.usesound, 50, 1) + if(!do_after(user, 30*O.toolspeed, target = src)) + return + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) + user.visible_message("[user] unfastens [src].", \ + "You unfasten [src].") + var/obj/item/sign_backing/SB = new (get_turf(user)) + SB.icon_state = icon_state + SB.sign_path = type + qdel(src) + else if(istype(O, /obj/item/weapon/pen) && buildable_sign) + var/list/sign_types = list("Secure Area", "Biohazard", "High Voltage", "Radiation", "Hard Vacuum Ahead", "Disposal: Leads To Space", "Danger: Fire", "No Smoking", "Medbay", "Science", "Chemistry", \ + "Hydroponics", "Xenobiology") + var/obj/structure/sign/sign_type + switch(input(user, "Select a sign type.", "Sign Customization") as null|anything in sign_types) + if("Blank") + sign_type = /obj/structure/sign/basic + if("Secure Area") + sign_type = /obj/structure/sign/securearea + if("Biohazard") + sign_type = /obj/structure/sign/biohazard + if("High Voltage") + sign_type = /obj/structure/sign/electricshock + if("Radiation") + sign_type = /obj/structure/sign/radiation + if("Hard Vacuum Ahead") + sign_type = /obj/structure/sign/vacuum + if("Disposal: Leads To Space") + sign_type = /obj/structure/sign/deathsposal + if("Danger: Fire") + sign_type = /obj/structure/sign/fire + if("No Smoking") + sign_type = /obj/structure/sign/nosmoking_1 + if("Medbay") + sign_type = /obj/structure/sign/bluecross_2 + if("Science") + sign_type = /obj/structure/sign/science + if("Chemistry") + sign_type = /obj/structure/sign/chemistry + if("Hydroponics") + sign_type = /obj/structure/sign/botany + if("Xenobiology") + sign_type = /obj/structure/sign/xenobio + + //Make sure user is adjacent still + if(!Adjacent(user)) + return + + if(!sign_type) + return + + //It's import to clone the pixel layout information + //Otherwise signs revert to being on the turf and + //move jarringly + var/obj/structure/sign/newsign = new sign_type(get_turf(src)) + newsign.pixel_x = pixel_x + newsign.pixel_y = pixel_y + qdel(src) + else + return ..() + +/obj/item/sign_backing + name = "sign backing" + desc = "A sign with adhesive backing." + icon = 'icons/obj/decals.dmi' + icon_state = "backing" + w_class = WEIGHT_CLASS_NORMAL + resistance_flags = FLAMMABLE + var/sign_path = /obj/structure/sign/basic //the type of sign that will be created when placed on a turf + +/obj/item/sign_backing/afterattack(atom/target, mob/user, proximity) + if(isturf(target) && proximity) + var/turf/T = target + user.visible_message("[user] fastens [src] to [T].", \ + "You attach the sign to [T].") + playsound(T, 'sound/items/deconstruct.ogg', 50, 1) + new sign_path(T) + user.drop_item() + qdel(src) + else + return ..() + +/obj/structure/sign/map + name = "station map" + desc = "A framed picture of the station." + obj_integrity = 500 + max_integrity = 500 + +/obj/structure/sign/map/left + icon_state = "map-left" + +/obj/structure/sign/map/left/dream + icon_state = "map-left-DS" + desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ + Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ + Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." + +/obj/structure/sign/map/right + icon_state = "map-right" + +/obj/structure/sign/map/right/dream + icon_state = "map-right-DS" + desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ + Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ + Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." + +/obj/structure/sign/map/left/ceres + icon_state = "map-CS" + desc = "A framed picture of the station.\nClockwise from the top, you see Security (red), Dorms (light-green), Bridge (dark-blue), AI Core (gray), \ + Cargo (brown), Medbay (blue), Arrivals/Departures(orange/cyan), Research (purple), Service (dark-green), and Engineering in the center (yellow)." + +/obj/structure/sign/securearea + name = "\improper SECURE AREA" + desc = "A warning sign which reads 'SECURE AREA'." + icon_state = "securearea" + +/obj/structure/sign/biohazard + name = "\improper BIOHAZARD" desc = "A warning sign which reads 'BIOHAZARD'." - icon_state = "bio" - -/obj/structure/sign/electricshock - name = "\improper HIGH VOLTAGE" + icon_state = "bio" + +/obj/structure/sign/electricshock + name = "\improper HIGH VOLTAGE" desc = "A warning sign which reads 'HIGH VOLTAGE'." - icon_state = "shock" - -/obj/structure/sign/examroom - name = "\improper EXAM ROOM" + icon_state = "shock" + +/obj/structure/sign/examroom + name = "\improper EXAM ROOM" desc = "A guidance sign which reads 'EXAM ROOM'." - icon_state = "examroom" - -/obj/structure/sign/vacuum - name = "\improper HARD VACUUM AHEAD" + icon_state = "examroom" + +/obj/structure/sign/vacuum + name = "\improper HARD VACUUM AHEAD" desc = "A warning sign which reads 'HARD VACUUM AHEAD'." - icon_state = "space" - -/obj/structure/sign/deathsposal - name = "\improper DISPOSAL: LEADS TO SPACE" + icon_state = "space" + +/obj/structure/sign/deathsposal + name = "\improper DISPOSAL: LEADS TO SPACE" desc = "A warning sign which reads 'DISPOSAL: LEADS TO SPACE'." - icon_state = "deathsposal" - -/obj/structure/sign/pods - name = "\improper ESCAPE PODS" + icon_state = "deathsposal" + +/obj/structure/sign/pods + name = "\improper ESCAPE PODS" desc = "A warning sign which reads 'ESCAPE PODS'." - icon_state = "pods" - -/obj/structure/sign/fire - name = "\improper DANGER: FIRE" + icon_state = "pods" + +/obj/structure/sign/fire + name = "\improper DANGER: FIRE" desc = "A warning sign which reads 'DANGER: FIRE'." - icon_state = "fire" - - -/obj/structure/sign/nosmoking_1 - name = "\improper NO SMOKING" + icon_state = "fire" + + +/obj/structure/sign/nosmoking_1 + name = "\improper NO SMOKING" desc = "A warning sign which reads 'NO SMOKING'." - icon_state = "nosmoking" - - -/obj/structure/sign/nosmoking_2 - name = "\improper NO SMOKING" + icon_state = "nosmoking" + + +/obj/structure/sign/nosmoking_2 + name = "\improper NO SMOKING" desc = "A warning sign which reads 'NO SMOKING'." - icon_state = "nosmoking2" - -/obj/structure/sign/radiation - name = "HAZARDOUS RADIATION" - desc = "A warning sign alerting the user of potential radiation hazards." - icon_state = "radiation" - -/obj/structure/sign/bluecross - name = "medbay" - desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." - icon_state = "bluecross" - -/obj/structure/sign/bluecross_2 - name = "medbay" - desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." - icon_state = "bluecross2" - -/obj/structure/sign/goldenplaque - name = "The Most Robust Men Award for Robustness" - desc = "To be Robust is not an action or a way of life, but a mental state. Only those with the force of Will strong enough to act during a crisis, saving friend from foe, are truly Robust. Stay Robust my friends." - icon_state = "goldenplaque" - -/obj/structure/sign/kiddieplaque - name = "AI developers plaque" - desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be retarded. Beneath the image, someone has scratched the word \"PACKETS\"" - icon_state = "kiddieplaque" - -/obj/structure/sign/atmosplaque - name = "\improper FEA Atmospherics Division plaque" - desc = "This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands." - icon_state = "atmosplaque" - -/obj/structure/sign/nanotrasen - name = "\improper NanoTrasen Logo " + icon_state = "nosmoking2" + +/obj/structure/sign/radiation + name = "HAZARDOUS RADIATION" + desc = "A warning sign alerting the user of potential radiation hazards." + icon_state = "radiation" + +/obj/structure/sign/bluecross + name = "medbay" + desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." + icon_state = "bluecross" + +/obj/structure/sign/bluecross_2 + name = "medbay" + desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." + icon_state = "bluecross2" + +/obj/structure/sign/goldenplaque + name = "The Most Robust Men Award for Robustness" + desc = "To be Robust is not an action or a way of life, but a mental state. Only those with the force of Will strong enough to act during a crisis, saving friend from foe, are truly Robust. Stay Robust my friends." + icon_state = "goldenplaque" + +/obj/structure/sign/kiddieplaque + name = "AI developers plaque" + desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be retarded. Beneath the image, someone has scratched the word \"PACKETS\"" + icon_state = "kiddieplaque" + +/obj/structure/sign/atmosplaque + name = "\improper FEA Atmospherics Division plaque" + desc = "This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands." + icon_state = "atmosplaque" + +/obj/structure/sign/nanotrasen + name = "\improper NanoTrasen Logo " desc = "A sign with the Nanotrasen Logo on it. Glory to Nanotrasen!" - icon_state = "nanotrasen" - -/obj/structure/sign/science //These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map - name = "\improper SCIENCE" - desc = "A sign labelling an area where research and science is performed." - icon_state = "science1" - -/obj/structure/sign/chemistry - name = "\improper CHEMISTRY" - desc = "A sign labelling an area containing chemical equipment." - icon_state = "chemistry1" - -/obj/structure/sign/botany - name = "\improper HYDROPONICS" - desc = "A sign labelling an area as a place where plants are grown." - icon_state = "hydro1" - -/obj/structure/sign/xenobio - name = "\improper XENOBIOLOGY" - desc = "A sign labelling an area as a place where xenobiological entities are researched." - icon_state = "xenobio" - + icon_state = "nanotrasen" + +/obj/structure/sign/science //These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map + name = "\improper SCIENCE" + desc = "A sign labelling an area where research and science is performed." + icon_state = "science1" + +/obj/structure/sign/chemistry + name = "\improper CHEMISTRY" + desc = "A sign labelling an area containing chemical equipment." + icon_state = "chemistry1" + +/obj/structure/sign/botany + name = "\improper HYDROPONICS" + desc = "A sign labelling an area as a place where plants are grown." + icon_state = "hydro1" + +/obj/structure/sign/xenobio + name = "\improper XENOBIOLOGY" + desc = "A sign labelling an area as a place where xenobiological entities are researched." + icon_state = "xenobio" + /obj/structure/sign/xeno_warning_mining name = "DANGEROUS ALIEN LIFE" desc = "A sign that warns would-be travellers of hostile alien life in the vicinity." icon = 'icons/obj/mining.dmi' icon_state = "xeno_warning" -/obj/structure/sign/enginesafety - name = "\improper ENGINEERING SAFETY" - desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift." - icon_state = "safety" - -/obj/structure/sign/directions/science - name = "science department" - desc = "A direction sign, pointing out which way the Science department is." - icon_state = "direction_sci" - -/obj/structure/sign/directions/engineering - name = "engineering department" - desc = "A direction sign, pointing out which way the Engineering department is." - icon_state = "direction_eng" - -/obj/structure/sign/directions/security - name = "security department" - desc = "A direction sign, pointing out which way the Security department is." - icon_state = "direction_sec" - -/obj/structure/sign/directions/medical - name = "medical bay" - desc = "A direction sign, pointing out which way the Medical Bay is." - icon_state = "direction_med" - -/obj/structure/sign/directions/evac - name = "escape arm" - desc = "A direction sign, pointing out which way the escape shuttle dock is." - icon_state = "direction_evac" - -/obj/structure/sign/directions/supply - name = "cargo bay" - desc = "A direction sign, pointing out which way the Cargo Bay is." - icon_state = "direction_supply" - -/obj/structure/sign/directions/command - name = "command department" - desc = "A direction sign, pointing out which way the Command department is." - icon_state = "direction_bridge" +/obj/structure/sign/enginesafety + name = "\improper ENGINEERING SAFETY" + desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift." + icon_state = "safety" + +/obj/structure/sign/directions/science + name = "science department" + desc = "A direction sign, pointing out which way the Science department is." + icon_state = "direction_sci" + +/obj/structure/sign/directions/engineering + name = "engineering department" + desc = "A direction sign, pointing out which way the Engineering department is." + icon_state = "direction_eng" + +/obj/structure/sign/directions/security + name = "security department" + desc = "A direction sign, pointing out which way the Security department is." + icon_state = "direction_sec" + +/obj/structure/sign/directions/medical + name = "medical bay" + desc = "A direction sign, pointing out which way the Medical Bay is." + icon_state = "direction_med" + +/obj/structure/sign/directions/evac + name = "escape arm" + desc = "A direction sign, pointing out which way the escape shuttle dock is." + icon_state = "direction_evac" + +/obj/structure/sign/directions/supply + name = "cargo bay" + desc = "A direction sign, pointing out which way the Cargo Bay is." + icon_state = "direction_supply" + +/obj/structure/sign/directions/command + name = "command department" + desc = "A direction sign, pointing out which way the Command department is." + icon_state = "direction_bridge" diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 6909965614..51f291ad63 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -43,7 +43,7 @@ anchored = 1 else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) user.visible_message("[user] is slicing apart the [name]...", \ "You are slicing apart the [name]...") if(do_after(user,40*W.toolspeed, target = src)) @@ -69,7 +69,7 @@ if(do_after(user, 40*W.toolspeed, target = src)) if(!src.loc) return - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) user.visible_message("[user] slices apart the [name].", \ "You slice apart the [name]!") deconstruct(TRUE) diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 0c2886533f..d46752039b 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -27,7 +27,7 @@ to_chat(user, "You start disassembling [src]...") playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) deconstruct(TRUE) else if(istype(I, /obj/item/stack/sheet/plasteel)) var/obj/item/stack/sheet/plasteel/P = I diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index ddfb271baa..7610c2e2ec 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -90,7 +90,7 @@ /obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob) pushed_mob.forceMove(src.loc) - pushed_mob.Weaken(2) + pushed_mob.Knockdown(40) pushed_mob.visible_message("[user] pushes [pushed_mob] onto [src].", \ "[user] pushes [pushed_mob] onto [src].") add_logs(user, pushed_mob, "pushed") @@ -109,7 +109,7 @@ to_chat(user, "You start deconstructing [src]...") playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 40*I.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) deconstruct(TRUE, 1) return @@ -198,7 +198,7 @@ if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL && !(M.movement_type & FLYING)) table_shatter(M) -/obj/structure/table/glass/proc/table_shatter(mob/M) +/obj/structure/table/glass/proc/table_shatter(mob/living/L) visible_message("[src] breaks!", "You hear breaking glass.") var/turf/T = get_turf(src) @@ -208,8 +208,8 @@ AM.forceMove(T) debris -= AM if(istype(AM, /obj/item/weapon/shard)) - AM.throw_impact(M) - M.Weaken(5) + AM.throw_impact(L) + L.Knockdown(100) qdel(src) /obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0) @@ -451,7 +451,7 @@ attack_hand(user) /obj/structure/rack/attack_hand(mob/living/user) - if(user.weakened || user.resting || user.lying || user.get_num_legs() < 2) + if(user.IsKnockdown() || user.resting || user.lying || user.get_num_legs() < 2) return user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_KICK) @@ -467,7 +467,7 @@ else playsound(loc, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, 'sound/items/welder.ogg', 40, 1) /* * Rack destruction diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index ba2ff2e35e..9a24935009 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -1,113 +1,113 @@ -#define TANK_DISPENSER_CAPACITY 10 - -/obj/structure/tank_dispenser - name = "tank dispenser" - desc = "A simple yet bulky storage device for gas tanks. Holds up to 10 oxygen tanks and 10 plasma tanks." - icon = 'icons/obj/objects.dmi' - icon_state = "dispenser" - density = 1 - anchored = 1 - obj_integrity = 300 - max_integrity = 300 - var/oxygentanks = TANK_DISPENSER_CAPACITY - var/plasmatanks = TANK_DISPENSER_CAPACITY - -/obj/structure/tank_dispenser/oxygen - plasmatanks = 0 - -/obj/structure/tank_dispenser/plasma - oxygentanks = 0 - +#define TANK_DISPENSER_CAPACITY 10 + +/obj/structure/tank_dispenser + name = "tank dispenser" + desc = "A simple yet bulky storage device for gas tanks. Holds up to 10 oxygen tanks and 10 plasma tanks." + icon = 'icons/obj/objects.dmi' + icon_state = "dispenser" + density = 1 + anchored = 1 + obj_integrity = 300 + max_integrity = 300 + var/oxygentanks = TANK_DISPENSER_CAPACITY + var/plasmatanks = TANK_DISPENSER_CAPACITY + +/obj/structure/tank_dispenser/oxygen + plasmatanks = 0 + +/obj/structure/tank_dispenser/plasma + oxygentanks = 0 + /obj/structure/tank_dispenser/Initialize() . = ..() - for(var/i in 1 to oxygentanks) - new /obj/item/weapon/tank/internals/oxygen(src) - for(var/i in 1 to plasmatanks) - new /obj/item/weapon/tank/internals/plasma(src) - update_icon() + for(var/i in 1 to oxygentanks) + new /obj/item/weapon/tank/internals/oxygen(src) + for(var/i in 1 to plasmatanks) + new /obj/item/weapon/tank/internals/plasma(src) + update_icon() -/obj/structure/tank_dispenser/update_icon() - cut_overlays() - switch(oxygentanks) - if(1 to 3) - add_overlay("oxygen-[oxygentanks]") - if(4 to TANK_DISPENSER_CAPACITY) - add_overlay("oxygen-4") - switch(plasmatanks) - if(1 to 4) - add_overlay("plasma-[plasmatanks]") - if(5 to TANK_DISPENSER_CAPACITY) - add_overlay("plasma-5") - -/obj/structure/tank_dispenser/attackby(obj/item/I, mob/user, params) - var/full - if(istype(I, /obj/item/weapon/tank/internals/plasma)) - if(plasmatanks < TANK_DISPENSER_CAPACITY) - plasmatanks++ - else - full = TRUE - else if(istype(I, /obj/item/weapon/tank/internals/oxygen)) - if(oxygentanks < TANK_DISPENSER_CAPACITY) - oxygentanks++ - else - full = TRUE - else if(istype(I, /obj/item/weapon/wrench)) - default_unfasten_wrench(user, I, time = 20) - return - else if(user.a_intent != INTENT_HARM) - to_chat(user, "[I] does not fit into [src].") - return - else - return ..() - if(full) - to_chat(user, "[src] can't hold any more of [I].") - return - - if(!user.drop_item()) - return - I.loc = src - to_chat(user, "You put [I] in [src].") - update_icon() - -/obj/structure/tank_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "tank_dispenser", name, 275, 100, master_ui, state) - ui.open() - -/obj/structure/tank_dispenser/ui_data(mob/user) - var/list/data = list() - data["oxygen"] = oxygentanks - data["plasma"] = plasmatanks - - return data - -/obj/structure/tank_dispenser/ui_act(action, params) - if(..()) - return - switch(action) - if("plasma") - var/obj/item/weapon/tank/internals/plasma/tank = locate() in src - if(tank && Adjacent(usr)) - usr.put_in_hands(tank) - plasmatanks-- - . = TRUE - if("oxygen") - var/obj/item/weapon/tank/internals/oxygen/tank = locate() in src - if(tank && Adjacent(usr)) - usr.put_in_hands(tank) - oxygentanks-- - . = TRUE - update_icon() - - -/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - for(var/X in src) - var/obj/item/I = X - I.forceMove(loc) - new /obj/item/stack/sheet/metal (loc, 2) - qdel(src) - +/obj/structure/tank_dispenser/update_icon() + cut_overlays() + switch(oxygentanks) + if(1 to 3) + add_overlay("oxygen-[oxygentanks]") + if(4 to TANK_DISPENSER_CAPACITY) + add_overlay("oxygen-4") + switch(plasmatanks) + if(1 to 4) + add_overlay("plasma-[plasmatanks]") + if(5 to TANK_DISPENSER_CAPACITY) + add_overlay("plasma-5") + +/obj/structure/tank_dispenser/attackby(obj/item/I, mob/user, params) + var/full + if(istype(I, /obj/item/weapon/tank/internals/plasma)) + if(plasmatanks < TANK_DISPENSER_CAPACITY) + plasmatanks++ + else + full = TRUE + else if(istype(I, /obj/item/weapon/tank/internals/oxygen)) + if(oxygentanks < TANK_DISPENSER_CAPACITY) + oxygentanks++ + else + full = TRUE + else if(istype(I, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, I, time = 20) + return + else if(user.a_intent != INTENT_HARM) + to_chat(user, "[I] does not fit into [src].") + return + else + return ..() + if(full) + to_chat(user, "[src] can't hold any more of [I].") + return + + if(!user.drop_item()) + return + I.loc = src + to_chat(user, "You put [I] in [src].") + update_icon() + +/obj/structure/tank_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "tank_dispenser", name, 275, 100, master_ui, state) + ui.open() + +/obj/structure/tank_dispenser/ui_data(mob/user) + var/list/data = list() + data["oxygen"] = oxygentanks + data["plasma"] = plasmatanks + + return data + +/obj/structure/tank_dispenser/ui_act(action, params) + if(..()) + return + switch(action) + if("plasma") + var/obj/item/weapon/tank/internals/plasma/tank = locate() in src + if(tank && Adjacent(usr)) + usr.put_in_hands(tank) + plasmatanks-- + . = TRUE + if("oxygen") + var/obj/item/weapon/tank/internals/oxygen/tank = locate() in src + if(tank && Adjacent(usr)) + usr.put_in_hands(tank) + oxygentanks-- + . = TRUE + update_icon() + + +/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + for(var/X in src) + var/obj/item/I = X + I.forceMove(loc) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + #undef TANK_DISPENSER_CAPACITY diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 1b41c76eec..f96fc04482 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -70,7 +70,7 @@ pod.visible_message("[user] starts putting [GM] into the [pod]!") if(do_after(user, 15, target = src)) if(open_status == STATION_TUBE_OPEN && GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs()) - GM.Weaken(5) + GM.Knockdown(100) src.Bumped(GM) break else diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index dad4e9b53e..dec661105a 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -81,7 +81,7 @@ /obj/structure/trap/stun/trap_effect(mob/living/L) L.electrocute_act(30, src, safety=1) // electrocute act does a message. - L.Weaken(5) + L.Knockdown(100) /obj/structure/trap/fire name = "flame trap" @@ -90,7 +90,7 @@ /obj/structure/trap/fire/trap_effect(mob/living/L) to_chat(L, "Spontaneous combustion!") - L.Weaken(1) + L.Knockdown(20) /obj/structure/trap/fire/flare() ..() @@ -104,7 +104,7 @@ /obj/structure/trap/chill/trap_effect(mob/living/L) to_chat(L, "You're frozen solid!") - L.Weaken(1) + L.Knockdown(20) L.bodytemperature -= 300 L.apply_status_effect(/datum/status_effect/freon) @@ -117,7 +117,7 @@ /obj/structure/trap/damage/trap_effect(mob/living/L) to_chat(L, "The ground quakes beneath your feet!") - L.Weaken(5) + L.Knockdown(100) L.adjustBruteLoss(35) /obj/structure/trap/damage/flare() diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index c4c1256eac..4f5a7f932c 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -281,7 +281,7 @@ var/mob/living/L = O if(wash_mob(L)) //it's a carbon mob. var/mob/living/carbon/C = L - C.slip(4,2,null,NO_SLIP_WHEN_WALKING) + C.slip(80,null,NO_SLIP_WHEN_WALKING) else wash_obj(O) @@ -289,7 +289,7 @@ /obj/machinery/shower/proc/wash_obj(atom/movable/O) O.clean_blood() - if(istype(O,/obj/item)) + if(isitem(O)) var/obj/item/I = O I.acid_level = 0 I.extinguish() @@ -463,7 +463,7 @@ user.clean_blood() -/obj/structure/sink/attackby(obj/item/O, mob/user, params) +/obj/structure/sink/attackby(obj/item/O, mob/living/user, params) if(busy) to_chat(user, "Someone's already washing here!") return @@ -484,8 +484,7 @@ if(B.cell.charge > 0 && B.status == 1) flick("baton_active", src) var/stunforce = B.stunforce - user.Stun(stunforce) - user.Weaken(stunforce) + user.Knockdown(stunforce) user.stuttering = stunforce B.deductcharge(B.hitcost) user.visible_message("[user] shocks themself while attempting to wash the active [B.name]!", \ diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 4f820bb4ad..0ecf2b0484 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -94,7 +94,7 @@ var/obj/item/weapon/weldingtool/WT = W if (WT.remove_fuel(0,user)) user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly...") - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(loc, 'sound/items/welder2.ogg', 50, 1) if(do_after(user, 40*W.toolspeed, target = src)) if(!src || !WT.isOn()) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 247a0a70d4..1dd5776fb4 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -11,20 +11,22 @@ obj_integrity = 25 var/ini_dir = null var/state = WINDOW_OUT_OF_FRAME - var/reinf = 0 + var/reinf = FALSE var/heat_resistance = 800 var/decon_speed = 30 var/wtype = "glass" - var/fulltile = 0 + var/fulltile = FALSE var/glass_type = /obj/item/stack/sheet/glass var/glass_amount = 1 var/mutable_appearance/crack_overlay var/list/debris = list() can_be_unanchored = 1 resistance_flags = ACID_PROOF - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) CanAtmosPass = ATMOS_PASS_PROC var/real_explosion_block //ignore this, just use explosion_block + var/breaksound = "shatter" + var/hitsound = 'sound/effects/Glasshit.ogg' /obj/structure/window/examine(mob/user) ..() @@ -144,7 +146,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.visible_message("Something knocks on [src].") add_fingerprint(user) - playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1) + playsound(src, 'sound/effects/Glassknock.ogg', 50, 1) /obj/structure/window/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) if(!can_be_reached(user)) @@ -157,7 +159,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.visible_message("[user] knocks on [src].") add_fingerprint(user) - playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1) + playsound(src, 'sound/effects/Glassknock.ogg', 50, 1) /obj/structure/window/attack_paw(mob/user) return attack_hand(user) @@ -178,10 +180,10 @@ if(obj_integrity < max_integrity) if(WT.remove_fuel(0,user)) to_chat(user, "You begin repairing [src]...") - playsound(loc, WT.usesound, 40, 1) + playsound(src, WT.usesound, 40, 1) if(do_after(user, 40*I.toolspeed, target = src)) obj_integrity = max_integrity - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src, 'sound/items/Welder2.ogg', 50, 1) update_nearby_icons() to_chat(user, "You repair [src].") else @@ -190,7 +192,7 @@ if(!(flags&NODECONSTRUCT)) if(istype(I, /obj/item/weapon/screwdriver)) - playsound(loc, I.usesound, 75, 1) + playsound(src, I.usesound, 75, 1) if(reinf) if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME) to_chat(user, "You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...") @@ -214,19 +216,19 @@ else if (istype(I, /obj/item/weapon/crowbar) && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME)) to_chat(user, "You begin to lever the window [state == WINDOW_OUT_OF_FRAME ? "into":"out of"] the frame...") - playsound(loc, I.usesound, 75, 1) + playsound(src, I.usesound, 75, 1) if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) state = (state == WINDOW_OUT_OF_FRAME ? WINDOW_IN_FRAME : WINDOW_OUT_OF_FRAME) to_chat(user, "You pry the window [state == WINDOW_IN_FRAME ? "into":"out of"] the frame.") return else if(istype(I, /obj/item/weapon/wrench) && !anchored) - playsound(loc, I.usesound, 75, 1) + playsound(src, I.usesound, 75, 1) to_chat(user, " You begin to disassemble [src]...") if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount) G.add_fingerprint(user) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) to_chat(user, "You successfully disassemble [src].") qdel(src) return @@ -265,18 +267,18 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src, hitsound, 75, 1) else playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/Welder.ogg', 100, 1) /obj/structure/window/deconstruct(disassembled = TRUE) if(QDELETED(src)) return if(!disassembled) - playsound(src, "shatter", 70, 1) + playsound(src, breaksound, 70, 1) var/turf/T = loc if(!(flags & NODECONSTRUCT)) for(var/i in debris) @@ -408,7 +410,6 @@ /obj/structure/window/GetExplosionBlock() return reinf && fulltile ? real_explosion_block : 0 - /obj/structure/window/unanchored anchored = FALSE @@ -416,21 +417,48 @@ name = "reinforced window" desc = "A window that is reinforced with metal rods." icon_state = "rwindow" - reinf = 1 + reinf = TRUE heat_resistance = 1600 - armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) max_integrity = 50 explosion_block = 1 glass_type = /obj/item/stack/sheet/rglass /obj/structure/window/reinforced/unanchored anchored = FALSE + +/obj/structure/window/plasma + name = "plasma window" + desc = "A window made out of a plasma-silicate alloy. It looks insanely tough to break and burn through." + icon_state = "plasma_window" + reinf = FALSE + heat_resistance = 25000 + armor = list("melee" = 75, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 00, "acid" = 100) + max_integrity = 50 + explosion_block = 1 + glass_type = /obj/item/stack/sheet/glass/plasma + +/obj/structure/window/plasma/unanchored + anchored = FALSE + +/obj/structure/window/plasma/reinforced + name = "reinforced plasma window" + desc = "A window made out of a plasma-silicate alloy and a rod matrice. It looks hopelessly tough to break and is most likely nigh fireproof." + icon_state = "rplasmawindow" + reinf = TRUE + heat_resistance = 50000 + armor = list("melee" = 85, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) + max_integrity = 100 + explosion_block = 2 + glass_type = /obj/item/stack/sheet/rglass/plasma + +/obj/structure/window/plasma/reinforced/unanchored + anchored = FALSE /obj/structure/window/reinforced/tinted name = "tinted window" icon_state = "twindow" opacity = 1 - /obj/structure/window/reinforced/tinted/frosted name = "frosted window" icon_state = "fwindow" @@ -448,25 +476,52 @@ icon_state = "window" dir = FULLTILE_WINDOW_DIR max_integrity = 50 - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile) + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) glass_amount = 2 /obj/structure/window/fulltile/unanchored anchored = FALSE + +/obj/structure/window/plasma/fulltile + icon = 'icons/obj/smooth_structures/plasma_window.dmi' + icon_state = "plasma_window" + dir = FULLTILE_WINDOW_DIR + max_integrity = 60 + fulltile = TRUE + flags = PREVENT_CLICK_UNDER + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + glass_amount = 2 + +/obj/structure/window/plasma/fulltile/unanchored + anchored = FALSE + +/obj/structure/window/plasma/reinforced/fulltile + icon = 'icons/obj/smooth_structures/rplasma_window.dmi' + icon_state = "rplasma_window" + dir = FULLTILE_WINDOW_DIR + max_integrity = 120 + fulltile = TRUE + flags = PREVENT_CLICK_UNDER + smooth = SMOOTH_TRUE + glass_amount = 2 + +/obj/structure/window/plasma/reinforced/fulltile/unanchored + anchored = FALSE /obj/structure/window/reinforced/fulltile icon = 'icons/obj/smooth_structures/reinforced_window.dmi' icon_state = "r_window" dir = FULLTILE_WINDOW_DIR max_integrity = 100 - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile) + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) level = 3 glass_amount = 2 @@ -475,10 +530,10 @@ icon_state = "r_window" dir = FULLTILE_WINDOW_DIR max_integrity = 1000 - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile) + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) level = 3 glass_amount = 2 @@ -489,10 +544,10 @@ icon = 'icons/obj/smooth_structures/tinted_window.dmi' icon_state = "tinted_window" dir = FULLTILE_WINDOW_DIR - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile/) + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) level = 3 glass_amount = 2 @@ -500,7 +555,7 @@ icon = 'icons/obj/smooth_structures/rice_window.dmi' icon_state = "ice_window" max_integrity = 150 - canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/reinforced/fulltile/ice) + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile,/obj/structure/window/reinforced/highpressure/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) level = 3 glass_amount = 2 @@ -512,11 +567,11 @@ dir = FULLTILE_WINDOW_DIR max_integrity = 100 wtype = "shuttle" - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER - reinf = 1 + reinf = TRUE heat_resistance = 1600 - armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) smooth = SMOOTH_TRUE canSmoothWith = null explosion_block = 1 @@ -537,7 +592,7 @@ icon_state = "clockwork_window_single" resistance_flags = FIRE_PROOF | ACID_PROOF max_integrity = 80 - armor = list(melee = 60, bullet = 25, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + armor = list("melee" = 60, "bullet" = 25, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) explosion_block = 2 //fancy AND hard to destroy. the most useful combination. decon_speed = 40 glass_type = /obj/item/stack/tile/brass @@ -549,9 +604,7 @@ if(fulltile) made_glow = TRUE ..() - for(var/obj/item/I in debris) - debris -= I - qdel(I) + QDEL_LIST(debris) var/amount_of_gears = 2 if(fulltile) new /obj/effect/temp_visual/ratvar/window(get_turf(src)) @@ -591,7 +644,7 @@ icon_state = "clockwork_window" smooth = SMOOTH_TRUE canSmoothWith = null - fulltile = 1 + fulltile = TRUE flags = PREVENT_CLICK_UNDER dir = FULLTILE_WINDOW_DIR max_integrity = 120 @@ -600,3 +653,80 @@ /obj/structure/window/reinforced/clockwork/fulltile/unanchored anchored = FALSE + +/obj/structure/window/paperframe + name = "paper frame" + desc = "A fragile separator made of thin wood and paper." + icon = 'icons/obj/smooth_structures/paperframes.dmi' + icon_state = "frame" + dir = FULLTILE_WINDOW_DIR + opacity = TRUE + max_integrity = 15 + obj_integrity = 15 + fulltile = TRUE + flags = PREVENT_CLICK_UNDER + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe) + glass_amount = 2 + glass_type = /obj/item/stack/sheet/paperframes + heat_resistance = 233 + decon_speed = 10 + CanAtmosPass = ATMOS_PASS_YES + resistance_flags = FLAMMABLE + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + breaksound = 'sound/items/poster_ripped.ogg' + hitsound = 'sound/weapons/slashmiss.ogg' + var/static/mutable_appearance/torn = mutable_appearance('icons/obj/smooth_structures/paperframes.dmi',icon_state = "torn", layer = ABOVE_OBJ_LAYER - 0.1) + var/static/mutable_appearance/paper = mutable_appearance('icons/obj/smooth_structures/paperframes.dmi',icon_state = "paper", layer = ABOVE_OBJ_LAYER - 0.1) + +/obj/structure/window/paperframe/Initialize() + . = ..() + QDEL_LIST(debris) + var/papers = rand(1,4) + debris += new /obj/item/stack/sheet/mineral/wood() + for(var/i in 1 to papers) + debris += new /obj/item/weapon/paper/natural() + update_icon() + +/obj/structure/window/paperframe/attack_hand(mob/user) + add_fingerprint(user) + if(user.a_intent != INTENT_HARM) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] knocks on [src].") + playsound(src, "pageturn", 50, 1) + else + take_damage(4,BRUTE,"melee", 0) + playsound(src, hitsound, 50, 1) + if(!QDELETED(src)) + user.visible_message("[user] tears a hole in [src].") + update_icon() + +/obj/structure/window/paperframe/update_icon() + if(obj_integrity < max_integrity) + cut_overlay(paper) + add_overlay(torn) + set_opacity(FALSE) + else + cut_overlay(torn) + add_overlay(paper) + set_opacity(TRUE) + queue_smooth(src) + + +/obj/structure/window/paperframe/attackby(obj/item/weapon/W, mob/user) + if(W.is_hot()) + fire_act(W.is_hot()) + return + if(user.a_intent == INTENT_HARM) + return ..() + if(istype(W, /obj/item/weapon/paper) && obj_integrity < max_integrity) + user.visible_message("[user] starts to patch the holes in \the [src].") + if(do_after(user, 20, target = src)) + obj_integrity = min(obj_integrity+4,max_integrity) + qdel(W) + user.visible_message("[user] patches some of the holes in \the [src].") + if(obj_integrity == max_integrity) + update_icon() + return + ..() + update_icon() diff --git a/code/game/say.dm b/code/game/say.dm index bbbca1bbd9..1aaa3d6041 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(freqtospan, list( return "0" /atom/movable/proc/GetVoice() - return name + return "[src]" //Returns the atom's name, prepended with 'The' if it's not a proper noun /atom/movable/proc/IsVocal() return 1 @@ -172,4 +172,4 @@ GLOBAL_LIST_INIT(freqtospan, list( return source /atom/movable/virtualspeaker/GetRadio() - return radio \ No newline at end of file + return radio diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index a72c2bf8f6..db083d2627 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -2,17 +2,17 @@ #define ENGINE_WRENCHED 1 #define ENGINE_WELDED 2 #define ENGINE_WELDTIME 200 - -/obj/structure/shuttle - name = "shuttle" - icon = 'icons/turf/shuttle.dmi' + +/obj/structure/shuttle + name = "shuttle" + icon = 'icons/turf/shuttle.dmi' resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF obj_integrity = 500 max_integrity = 500 armor = list(melee = 100, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) //default + ignores melee - -/obj/structure/shuttle/engine - name = "engine" + +/obj/structure/shuttle/engine + name = "engine" density = TRUE anchored = TRUE var/engine_power = 1 @@ -80,56 +80,63 @@ var/obj/docking_port/mobile/M = SSshuttle.get_containing_shuttle(src) if(M) M.alter_engines(mod) - -/obj/structure/shuttle/engine/heater - name = "heater" - icon_state = "heater" + +/obj/structure/shuttle/engine/heater + name = "heater" + icon_state = "heater" engine_power = 0 // todo make these into 2x1 parts - -/obj/structure/shuttle/engine/platform - name = "platform" - icon_state = "platform" + +/obj/structure/shuttle/engine/platform + name = "platform" + icon_state = "platform" engine_power = 0 - -/obj/structure/shuttle/engine/propulsion - name = "propulsion" - icon_state = "propulsion" - opacity = 1 - -/obj/structure/shuttle/engine/propulsion/burst - name = "burst" - + +/obj/structure/shuttle/engine/propulsion + name = "propulsion engine" + icon_state = "propulsion" + opacity = 1 + +/obj/structure/shuttle/engine/propulsion/left + name = "left propulsion engine" + icon_state = "propulsion_l" + +/obj/structure/shuttle/engine/propulsion/right + name = "right propulsion engine" + icon_state = "propulsion_r" + +/obj/structure/shuttle/engine/propulsion/burst + name = "burst engine" + /obj/structure/shuttle/engine/propulsion/burst/cargo state = ENGINE_UNWRENCHED anchored = FALSE -/obj/structure/shuttle/engine/propulsion/burst/left - name = "left" - icon_state = "burst_l" - -/obj/structure/shuttle/engine/propulsion/burst/right - name = "right" - icon_state = "burst_r" - -/obj/structure/shuttle/engine/router - name = "router" - icon_state = "router" - - -/obj/structure/shuttle/engine/large - name = "engine" - opacity = 1 - icon = 'icons/obj/2x2.dmi' - icon_state = "large_engine" - bound_width = 64 - bound_height = 64 - appearance_flags = 0 - -/obj/structure/shuttle/engine/huge - name = "engine" - opacity = 1 - icon = 'icons/obj/3x3.dmi' - icon_state = "huge_engine" - bound_width = 96 - bound_height = 96 - appearance_flags = 0 +/obj/structure/shuttle/engine/propulsion/burst/left + name = "left burst engine" + icon_state = "burst_l" + +/obj/structure/shuttle/engine/propulsion/burst/right + name = "right burst engine" + icon_state = "burst_r" + +/obj/structure/shuttle/engine/router + name = "router" + icon_state = "router" + +/obj/structure/shuttle/engine/large + name = "engine" + opacity = 1 + icon = 'icons/obj/2x2.dmi' + icon_state = "large_engine" + bound_width = 64 + bound_height = 64 + appearance_flags = 0 + +/obj/structure/shuttle/engine/huge + name = "engine" + opacity = 1 + icon = 'icons/obj/3x3.dmi' + icon_state = "huge_engine" + bound_width = 96 + bound_height = 96 + appearance_flags = 0 \ No newline at end of file diff --git a/code/game/sound.dm b/code/game/sound.dm index bf5345c934..d1c7966551 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -80,6 +80,13 @@ src << S +/proc/sound_to_playing_players(sound, volume = 100, vary) + sound = get_sfx(sound) + for(var/M in GLOB.player_list) + if(ismob(M) && !isnewplayer(M)) + var/mob/MO = M + MO.playsound_local(get_turf(MO), sound, volume, vary, pressure_affected = FALSE) + /proc/open_sound_channel() var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used . = ++next_channel @@ -102,9 +109,9 @@ if(istext(soundin)) switch(soundin) if ("shatter") - soundin = pick('sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg') + soundin = pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg') if ("explosion") - soundin = pick('sound/effects/Explosion1.ogg','sound/effects/Explosion2.ogg') + soundin = pick('sound/effects/explosion1.ogg','sound/effects/explosion2.ogg') if ("sparks") soundin = pick('sound/effects/sparks1.ogg','sound/effects/sparks2.ogg','sound/effects/sparks3.ogg','sound/effects/sparks4.ogg') if ("rustle") @@ -117,6 +124,8 @@ soundin = pick('sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg') if ("suitstep") soundin = pick('sound/effects/suitstep1.ogg','sound/effects/suitstep2.ogg') + if ("servostep") + soundin = pick('sound/effects/servostep.ogg') if ("swing_hit") soundin = pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg') if ("hiss") @@ -124,45 +133,19 @@ if ("pageturn") soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') if ("gunshot") - soundin = pick('sound/weapons/Gunshot.ogg', 'sound/weapons/Gunshot2.ogg','sound/weapons/Gunshot3.ogg','sound/weapons/Gunshot4.ogg') + soundin = pick('sound/weapons/gunshot.ogg', 'sound/weapons/gunshot2.ogg','sound/weapons/gunshot3.ogg','sound/weapons/gunshot4.ogg') if ("ricochet") soundin = pick( 'sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg','sound/weapons/effects/ric3.ogg','sound/weapons/effects/ric4.ogg','sound/weapons/effects/ric5.ogg') if ("terminal_type") soundin = pick('sound/machines/terminal_button01.ogg', 'sound/machines/terminal_button02.ogg', 'sound/machines/terminal_button03.ogg', \ 'sound/machines/terminal_button04.ogg', 'sound/machines/terminal_button05.ogg', 'sound/machines/terminal_button06.ogg', \ 'sound/machines/terminal_button07.ogg', 'sound/machines/terminal_button08.ogg') - - if ("struggle_sound") - soundin = pick( 'sound/vore/pred/struggle_01.ogg','sound/vore/pred/struggle_02.ogg','sound/vore/pred/struggle_03.ogg', - 'sound/vore/pred/struggle_04.ogg','sound/vore/pred/struggle_05.ogg') - if ("prey_struggle") - soundin = pick( 'sound/vore/prey/struggle_01.ogg','sound/vore/prey/struggle_02.ogg','sound/vore/prey/struggle_03.ogg', - 'sound/vore/prey/struggle_04.ogg','sound/vore/prey/struggle_05.ogg') - if ("digest_pred") - soundin = pick( 'sound/vore/pred/digest_01.ogg','sound/vore/pred/digest_02.ogg','sound/vore/pred/digest_03.ogg', - 'sound/vore/pred/digest_04.ogg','sound/vore/pred/digest_05.ogg','sound/vore/pred/digest_06.ogg', - 'sound/vore/pred/digest_07.ogg','sound/vore/pred/digest_08.ogg','sound/vore/pred/digest_09.ogg', - 'sound/vore/pred/digest_10.ogg','sound/vore/pred/digest_11.ogg','sound/vore/pred/digest_12.ogg', - 'sound/vore/pred/digest_13.ogg','sound/vore/pred/digest_14.ogg','sound/vore/pred/digest_15.ogg', - 'sound/vore/pred/digest_16.ogg','sound/vore/pred/digest_17.ogg','sound/vore/pred/digest_18.ogg') - if ("death_pred") - soundin = pick( 'sound/vore/pred/death_01.ogg','sound/vore/pred/death_02.ogg','sound/vore/pred/death_03.ogg', - 'sound/vore/pred/death_04.ogg','sound/vore/pred/death_05.ogg','sound/vore/pred/death_06.ogg', - 'sound/vore/pred/death_07.ogg','sound/vore/pred/death_08.ogg','sound/vore/pred/death_09.ogg', - 'sound/vore/pred/death_10.ogg') - if ("digest_prey") - soundin = pick( 'sound/vore/prey/digest_01.ogg','sound/vore/prey/digest_02.ogg','sound/vore/prey/digest_03.ogg', - 'sound/vore/prey/digest_04.ogg','sound/vore/prey/digest_05.ogg','sound/vore/prey/digest_06.ogg', - 'sound/vore/prey/digest_07.ogg','sound/vore/prey/digest_08.ogg','sound/vore/prey/digest_09.ogg', - 'sound/vore/prey/digest_10.ogg','sound/vore/prey/digest_11.ogg','sound/vore/prey/digest_12.ogg', - 'sound/vore/prey/digest_13.ogg','sound/vore/prey/digest_14.ogg','sound/vore/prey/digest_15.ogg', - 'sound/vore/prey/digest_16.ogg','sound/vore/prey/digest_17.ogg','sound/vore/prey/digest_18.ogg') - - if ("death_prey") - soundin = pick( 'sound/vore/prey/death_01.ogg','sound/vore/prey/death_02.ogg','sound/vore/prey/death_03.ogg', - 'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg', - 'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg', - 'sound/vore/prey/death_10.ogg') + if ("desceration") + soundin = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + if ("im_here") + soundin = pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') + if ("can_open") + soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') return soundin /proc/playsound_global(file, repeat=0, wait, channel, volume) diff --git a/code/game/turfs/basic.dm b/code/game/turfs/basic.dm deleted file mode 100644 index 75285d3132..0000000000 --- a/code/game/turfs/basic.dm +++ /dev/null @@ -1,9 +0,0 @@ -//used to optimize map expansion -/turf/basic/New() - -/turf/basic/ChangeTurf(var/T) - new T(src) - var/static/warned - if(!warned) - warned = TRUE - CRASH("Basic ChangeTurf") \ No newline at end of file diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 19cbc39986..ff99ed8d16 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -117,15 +117,20 @@ return TRUE /turf/closed/indestructible/riveted/boss - name = "stone wall" + name = "necropolis wall" desc = "A thick, seemingly indestructible stone wall." icon = 'icons/turf/walls/boss_wall.dmi' icon_state = "wall" + canSmoothWith = list(/turf/closed/indestructible/riveted/boss, /turf/closed/indestructible/riveted/boss/see_through) explosion_block = 50 baseturf = /turf/closed/indestructible/riveted/boss +/turf/closed/indestructible/riveted/boss/see_through + opacity = FALSE + /turf/closed/indestructible/riveted/boss/hot icon = 'icons/turf/walls/boss_wall_hot.dmi' + canSmoothWith = list(/turf/closed/indestructible/riveted/boss/hot) baseturf = /turf/closed/indestructible/riveted/boss/hot /turf/closed/indestructible/riveted/boss/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index feff081f30..f6f7c65142 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -37,6 +37,20 @@ /turf/open/indestructible/necropolis/air initial_gas_mix = "o2=22;n2=82;TEMP=293.15" +/turf/open/indestructible/boss //you put stone tiles on this and use it as a base + name = "necropolis floor" + icon = 'icons/turf/boss_floors.dmi' + icon_state = "boss" + baseturf = /turf/open/indestructible/boss + initial_gas_mix = LAVALAND_DEFAULT_ATMOS + +/turf/open/indestructible/boss/air + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + +/turf/open/indestructible/boss/hot + icon = 'icons/turf/boss_floors_hot.dmi' + baseturf = /turf/open/indestructible/boss/hot + /turf/open/indestructible/hierophant icon = 'icons/turf/floors/hierophant_floor.dmi' initial_gas_mix = LAVALAND_DEFAULT_ATMOS @@ -137,7 +151,7 @@ qdel(hotspot) return 1 -/turf/open/handle_slip(mob/living/carbon/C, s_amount, w_amount, obj/O, lube) +/turf/open/handle_slip(mob/living/carbon/C, knockdown_amount, obj/O, lube) if(C.movement_type & FLYING) return 0 if(has_gravity(src)) @@ -147,7 +161,7 @@ if(!(lube&GALOSHES_DONT_HELP)) //can't slip while buckled unless it's lube. return 0 else - if(C.lying || !(C.status_flags & CANWEAKEN)) // can't slip unbuckled mob if they're lying or can't fall. + if(C.lying || !(C.status_flags & CANKNOCKDOWN)) // can't slip unbuckled mob if they're lying or can't fall. return 0 if(C.m_intent == MOVE_INTENT_WALK && (lube&NO_SLIP_WHEN_WALKING)) return 0 @@ -162,11 +176,10 @@ var/olddir = C.dir if(!(lube & SLIDE_ICE)) - C.Stun(s_amount) - C.Weaken(w_amount) + C.Knockdown(knockdown_amount) C.stop_pulling() else - C.Stun(1) + C.Stun(20) if(buckled_obj) buckled_obj.unbuckle_mob(C) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index de0dbea8f6..86cc490625 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -41,7 +41,7 @@ if(!L) if(R.use(1)) to_chat(user, "You construct a lattice.") - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) ReplaceWithLattice() else to_chat(user, "You need one rod to build a lattice.") @@ -52,7 +52,7 @@ var/obj/item/stack/tile/plasteel/S = C if(S.use(1)) qdel(L) - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") ChangeTurf(/turf/open/floor/plating) else @@ -113,7 +113,7 @@ AM.forceMove(T) if(isliving(AM)) var/mob/living/L = AM - L.Weaken(5) + L.Knockdown(100) L.adjustBruteLoss(30) @@ -142,7 +142,7 @@ if(isliving(AM)) var/mob/living/L = AM L.notransform = TRUE - L.Stun(10) + L.Stun(200) L.resting = TRUE var/oldtransform = AM.transform var/oldcolor = AM.color diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 8a703857e2..e74c024b18 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -25,6 +25,7 @@ icon_state = "blackcorner" + /turf/open/floor/plasteel/white icon_state = "white" /turf/open/floor/plasteel/airless/white diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 13aaa09a2a..3ca061b2c9 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -43,7 +43,7 @@ if(do_after(user, 30, target = src)) if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) ChangeTurf(/turf/open/floor/engine) - playsound(src, 'sound/items/Deconstruct.ogg', 80, 1) + playsound(src, 'sound/items/deconstruct.ogg', 80, 1) R.use(2) to_chat(user, "You reinforce the floor.") return @@ -57,7 +57,7 @@ var/obj/item/stack/tile/light/L = W var/turf/open/floor/light/F = T F.state = L.state - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") else if(istype(C, /obj/item/weapon/weldingtool)) diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 5e7a0acf54..0219427729 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -87,7 +87,7 @@ var/obj/item/stack/tile/light/L = Z var/turf/open/floor/light/F = T F.state = L.state - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) /turf/open/floor/plating/asteroid/proc/gets_dug() if(dug) diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 21015e82d0..64a03cef44 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -99,7 +99,7 @@ devastate_wall() ChangeTurf(/turf/open/floor/plating) else - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) var/newgirder = break_wall() if(newgirder) //maybe we want a gear! transfer_fingerprints_to(newgirder) diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index c15e478c49..1becd8cadf 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -106,7 +106,7 @@ if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) to_chat(user, "You begin slicing through the metal cover...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, 60*W.toolspeed, target = src)) if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != COVER) return 1 @@ -190,7 +190,7 @@ if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) to_chat(user, "You begin slicing through the support rods...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, 100*W.toolspeed, target = src)) if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SUPPORT_RODS) return 1 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 44dc1afee7..a097b70c6b 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -46,7 +46,7 @@ if(devastated) devastate_wall() else - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) var/newgirder = break_wall() if(newgirder) //maybe we don't /want/ a girder! transfer_fingerprints_to(newgirder) @@ -103,7 +103,7 @@ dismantle_wall(1) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) if(BURN) - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(TOX) playsound(src, 'sound/effects/spray2.ogg', 100, 1) return 0 @@ -135,7 +135,7 @@ /turf/closed/wall/attack_hand(mob/user) user.changeNext_move(CLICK_CD_MELEE) to_chat(user, "You push the wall but nothing happens!") - playsound(src, 'sound/weapons/Genhit.ogg', 25, 1) + playsound(src, 'sound/weapons/genhit.ogg', 25, 1) src.add_fingerprint(user) ..() @@ -195,7 +195,7 @@ return 1 else if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) ) to_chat(user, "You begin slicing through the outer plating...") - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(do_after(user, slicing_duration*W.toolspeed, target = src)) if(!iswallturf(src) || !user || !W || !T) return 1 @@ -232,7 +232,7 @@ O.density = 1 O.layer = FLY_LAYER - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, 'sound/items/welder.ogg', 100, 1) if(thermite >= 50) var/burning_time = max(100,300 - thermite) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index e25ce336bb..373e8ac34a 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -95,14 +95,14 @@ if(L) if(R.use(1)) to_chat(user, "You construct a catwalk.") - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) new/obj/structure/lattice/catwalk(src) else to_chat(user, "You need two rods to build a catwalk!") return if(R.use(1)) to_chat(user, "You construct a lattice.") - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) ReplaceWithLattice() else to_chat(user, "You need one rod to build a lattice.") @@ -113,7 +113,7 @@ var/obj/item/stack/tile/plasteel/S = C if(S.use(1)) qdel(L) - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") ChangeTurf(/turf/open/floor/plating) else diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 9d556e896f..b28007458a 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -168,17 +168,17 @@ return switch(wet) if(TURF_WET_WATER) - if(!M.slip(0, 3, null, NO_SLIP_WHEN_WALKING)) + if(!M.slip(60, null, NO_SLIP_WHEN_WALKING)) M.inertia_dir = 0 if(TURF_WET_LUBE) - if(M.slip(0, 4, null, (SLIDE|GALOSHES_DONT_HELP))) + if(M.slip(80, null, (SLIDE|GALOSHES_DONT_HELP))) M.confused = max(M.confused, 8) if(TURF_WET_ICE) - M.slip(0, 6, null, (SLIDE|GALOSHES_DONT_HELP)) + M.slip(120, null, (SLIDE|GALOSHES_DONT_HELP)) if(TURF_WET_PERMAFROST) - M.slip(0, 6, null, (SLIDE_ICE|GALOSHES_DONT_HELP)) + M.slip(120, null, (SLIDE_ICE|GALOSHES_DONT_HELP)) if(TURF_WET_SLIDE) - M.slip(0, 4, null, (SLIDE|GALOSHES_DONT_HELP)) + M.slip(80, null, (SLIDE|GALOSHES_DONT_HELP)) //melting if(isobj(AM) && air && air.temperature > T0C) var/obj/O = AM @@ -293,7 +293,7 @@ if(M==U) continue//Will not harm U. Since null != M, can be excluded to kill everyone. M.adjustBruteLoss(damage) - M.Paralyse(damage/5) + M.Unconscious(damage * 4) for(var/obj/mecha/M in src) M.take_damage(damage*2, BRUTE, "melee", 1) @@ -369,7 +369,7 @@ for(var/V in contents) var/atom/A = V if(A.level >= affecting_level) - if(istype(A,/atom/movable)) + if(ismovableatom(A)) var/atom/movable/AM = A if(!AM.ex_check(explosion_id)) continue diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index 33baff0834..23bf656b8c 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -499,4 +499,4 @@ output += "" - usr << browse(output,"window=lookupbans;size=900x500") \ No newline at end of file + usr << browse(output,"window=lookupbans;size=900x500") diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index fabda7fc4d..1ff2360923 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -1,233 +1,233 @@ -GLOBAL_VAR(CMinutes) -GLOBAL_DATUM(Banlist, /savefile) -GLOBAL_PROTECT(Banlist) - - -/proc/CheckBan(ckey, id, address) - if(!GLOB.Banlist) // if Banlist cannot be located for some reason - LoadBans() // try to load the bans - if(!GLOB.Banlist) // uh oh, can't find bans! - return 0 // ABORT ABORT ABORT - - . = list() - var/appeal - if(config && config.banappeals) - appeal = "\nFor more information on your ban, or to appeal, head to [config.banappeals]" - GLOB.Banlist.cd = "/base" - if( "[ckey][id]" in GLOB.Banlist.dir ) - GLOB.Banlist.cd = "[ckey][id]" - if (GLOB.Banlist["temp"]) - if (!GetExp(GLOB.Banlist["minutes"])) - ClearTempbans() - return 0 - else - .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" - else - GLOB.Banlist.cd = "/base/[ckey][id]" - .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" - .["reason"] = "ckey/id" - return . - else - for (var/A in GLOB.Banlist.dir) - GLOB.Banlist.cd = "/base/[A]" - var/matches - if( ckey == GLOB.Banlist["key"] ) - matches += "ckey" - if( id == GLOB.Banlist["id"] ) - if(matches) - matches += "/" - matches += "id" - if( address == GLOB.Banlist["ip"] ) - if(matches) - matches += "/" - matches += "ip" - - if(matches) - if(GLOB.Banlist["temp"]) - if (!GetExp(GLOB.Banlist["minutes"])) - ClearTempbans() - return 0 - else - .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" - else - .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" - .["reason"] = matches - return . - return 0 - -/proc/UpdateTime() //No idea why i made this a proc. - GLOB.CMinutes = (world.realtime / 10) / 60 - return 1 - -/proc/LoadBans() - - GLOB.Banlist = new("data/banlist.bdb") - log_admin("Loading Banlist") - - if (!length(GLOB.Banlist.dir)) log_admin("Banlist is empty.") - - if (!GLOB.Banlist.dir.Find("base")) - log_admin("Banlist missing base dir.") - GLOB.Banlist.dir.Add("base") - GLOB.Banlist.cd = "/base" - else if (GLOB.Banlist.dir.Find("base")) - GLOB.Banlist.cd = "/base" - - ClearTempbans() - return 1 - -/proc/ClearTempbans() - UpdateTime() - - GLOB.Banlist.cd = "/base" - for (var/A in GLOB.Banlist.dir) - GLOB.Banlist.cd = "/base/[A]" - if (!GLOB.Banlist["key"] || !GLOB.Banlist["id"]) - RemoveBan(A) - log_admin("Invalid Ban.") - message_admins("Invalid Ban.") - continue - - if (!GLOB.Banlist["temp"]) continue - if (GLOB.CMinutes >= GLOB.Banlist["minutes"]) RemoveBan(A) - - return 1 - - -/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) - - var/bantimestamp - - if (temp) - UpdateTime() - bantimestamp = GLOB.CMinutes + minutes - - GLOB.Banlist.cd = "/base" - if ( GLOB.Banlist.dir.Find("[ckey][computerid]") ) - to_chat(usr, text("Ban already exists.")) - return 0 - else - GLOB.Banlist.dir.Add("[ckey][computerid]") - GLOB.Banlist.cd = "/base/[ckey][computerid]" - GLOB.Banlist["key"] << ckey - GLOB.Banlist["id"] << computerid - GLOB.Banlist["ip"] << address - GLOB.Banlist["reason"] << reason - GLOB.Banlist["bannedby"] << bannedby - GLOB.Banlist["temp"] << temp - if (temp) - GLOB.Banlist["minutes"] << bantimestamp - if(!temp) - create_message("note", ckey, bannedby, "Permanently banned - [reason]", null, null, 0, 0) - else - create_message("note", ckey, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0) - return 1 - -/proc/RemoveBan(foldername) - var/key - var/id - - GLOB.Banlist.cd = "/base/[foldername]" - GLOB.Banlist["key"] >> key - GLOB.Banlist["id"] >> id - GLOB.Banlist.cd = "/base" - - if (!GLOB.Banlist.dir.Remove(foldername)) return 0 - - if(!usr) - log_admin_private("Ban Expired: [key]") - message_admins("Ban Expired: [key]") - else - ban_unban_log_save("[key_name(usr)] unbanned [key]") - log_admin_private("[key_name(usr)] unbanned [key]") - message_admins("[key_name_admin(usr)] unbanned: [key]") +GLOBAL_VAR(CMinutes) +GLOBAL_DATUM(Banlist, /savefile) +GLOBAL_PROTECT(Banlist) + + +/proc/CheckBan(ckey, id, address) + if(!GLOB.Banlist) // if Banlist cannot be located for some reason + LoadBans() // try to load the bans + if(!GLOB.Banlist) // uh oh, can't find bans! + return 0 // ABORT ABORT ABORT + + . = list() + var/appeal + if(config && config.banappeals) + appeal = "\nFor more information on your ban, or to appeal, head to [config.banappeals]" + GLOB.Banlist.cd = "/base" + if( "[ckey][id]" in GLOB.Banlist.dir ) + GLOB.Banlist.cd = "[ckey][id]" + if (GLOB.Banlist["temp"]) + if (!GetExp(GLOB.Banlist["minutes"])) + ClearTempbans() + return 0 + else + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" + else + GLOB.Banlist.cd = "/base/[ckey][id]" + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" + .["reason"] = "ckey/id" + return . + else + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" + var/matches + if( ckey == GLOB.Banlist["key"] ) + matches += "ckey" + if( id == GLOB.Banlist["id"] ) + if(matches) + matches += "/" + matches += "id" + if( address == GLOB.Banlist["ip"] ) + if(matches) + matches += "/" + matches += "ip" + + if(matches) + if(GLOB.Banlist["temp"]) + if (!GetExp(GLOB.Banlist["minutes"])) + ClearTempbans() + return 0 + else + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" + else + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" + .["reason"] = matches + return . + return 0 + +/proc/UpdateTime() //No idea why i made this a proc. + GLOB.CMinutes = (world.realtime / 10) / 60 + return 1 + +/proc/LoadBans() + + GLOB.Banlist = new("data/banlist.bdb") + log_admin("Loading Banlist") + + if (!length(GLOB.Banlist.dir)) log_admin("Banlist is empty.") + + if (!GLOB.Banlist.dir.Find("base")) + log_admin("Banlist missing base dir.") + GLOB.Banlist.dir.Add("base") + GLOB.Banlist.cd = "/base" + else if (GLOB.Banlist.dir.Find("base")) + GLOB.Banlist.cd = "/base" + + ClearTempbans() + return 1 + +/proc/ClearTempbans() + UpdateTime() + + GLOB.Banlist.cd = "/base" + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" + if (!GLOB.Banlist["key"] || !GLOB.Banlist["id"]) + RemoveBan(A) + log_admin("Invalid Ban.") + message_admins("Invalid Ban.") + continue + + if (!GLOB.Banlist["temp"]) continue + if (GLOB.CMinutes >= GLOB.Banlist["minutes"]) RemoveBan(A) + + return 1 + + +/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) + + var/bantimestamp + + if (temp) + UpdateTime() + bantimestamp = GLOB.CMinutes + minutes + + GLOB.Banlist.cd = "/base" + if ( GLOB.Banlist.dir.Find("[ckey][computerid]") ) + to_chat(usr, text("Ban already exists.")) + return 0 + else + GLOB.Banlist.dir.Add("[ckey][computerid]") + GLOB.Banlist.cd = "/base/[ckey][computerid]" + GLOB.Banlist["key"] << ckey + GLOB.Banlist["id"] << computerid + GLOB.Banlist["ip"] << address + GLOB.Banlist["reason"] << reason + GLOB.Banlist["bannedby"] << bannedby + GLOB.Banlist["temp"] << temp + if (temp) + GLOB.Banlist["minutes"] << bantimestamp + if(!temp) + create_message("note", ckey, bannedby, "Permanently banned - [reason]", null, null, 0, 0) + else + create_message("note", ckey, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0) + return 1 + +/proc/RemoveBan(foldername) + var/key + var/id + + GLOB.Banlist.cd = "/base/[foldername]" + GLOB.Banlist["key"] >> key + GLOB.Banlist["id"] >> id + GLOB.Banlist.cd = "/base" + + if (!GLOB.Banlist.dir.Remove(foldername)) return 0 + + if(!usr) + log_admin_private("Ban Expired: [key]") + message_admins("Ban Expired: [key]") + else + ban_unban_log_save("[key_name(usr)] unbanned [key]") + log_admin_private("[key_name(usr)] unbanned [key]") + message_admins("[key_name_admin(usr)] unbanned: [key]") SSblackbox.inc("ban_unban",1) - usr.client.holder.DB_ban_unban( ckey(key), BANTYPE_ANY_FULLBAN) - for (var/A in GLOB.Banlist.dir) - GLOB.Banlist.cd = "/base/[A]" - if (key == GLOB.Banlist["key"] /*|| id == Banlist["id"]*/) - GLOB.Banlist.cd = "/base" - GLOB.Banlist.dir.Remove(A) - continue - - return 1 - -/proc/GetExp(minutes as num) - UpdateTime() - var/exp = minutes - GLOB.CMinutes - if (exp <= 0) - return 0 - else - var/timeleftstring - if (exp >= 1440) //1440 = 1 day in minutes - timeleftstring = "[round(exp / 1440, 0.1)] Days" - else if (exp >= 60) //60 = 1 hour in minutes - timeleftstring = "[round(exp / 60, 0.1)] Hours" - else - timeleftstring = "[exp] Minutes" - return timeleftstring - -/datum/admins/proc/unbanpanel() - var/count = 0 - var/dat - //var/dat = "
    Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
    " - GLOB.Banlist.cd = "/base" - for (var/A in GLOB.Banlist.dir) - count++ - GLOB.Banlist.cd = "/base/[A]" - var/ref = "\ref[src]" - var/key = GLOB.Banlist["key"] - var/id = GLOB.Banlist["id"] - var/ip = GLOB.Banlist["ip"] - var/reason = GLOB.Banlist["reason"] - var/by = GLOB.Banlist["bannedby"] - var/expiry - if(GLOB.Banlist["temp"]) - expiry = GetExp(GLOB.Banlist["minutes"]) - if(!expiry) - expiry = "Removal Pending" - else - expiry = "Permaban" - - dat += text("") - - dat += "
    (U)(E) Key: [key]ComputerID: [id]IP: [ip] [expiry](By: [by])(Reason: [reason])
    " - dat = "
    Bans: (U) = Unban , (E) = Edit Ban - ([count] Bans)
    [dat]" - usr << browse(dat, "window=unbanp;size=875x400") - -//////////////////////////////////// DEBUG //////////////////////////////////// - -/proc/CreateBans() - - UpdateTime() - - var/i - var/last - - for(i=0, i<1001, i++) - var/a = pick(1,0) - var/b = pick(1,0) - if(b) - GLOB.Banlist.cd = "/base" - GLOB.Banlist.dir.Add("trash[i]trashid[i]") - GLOB.Banlist.cd = "/base/trash[i]trashid[i]" - GLOB.Banlist["key"] << "trash[i]" - else - GLOB.Banlist.cd = "/base" - GLOB.Banlist.dir.Add("[last]trashid[i]") - GLOB.Banlist.cd = "/base/[last]trashid[i]" - GLOB.Banlist["key"] << last - GLOB.Banlist["id"] << "trashid[i]" - GLOB.Banlist["reason"] << "Trashban[i]." - GLOB.Banlist["temp"] << a - GLOB.Banlist["minutes"] << GLOB.CMinutes + rand(1,2000) - GLOB.Banlist["bannedby"] << "trashmin" - last = "trash[i]" - - GLOB.Banlist.cd = "/base" - -/proc/ClearAllBans() - GLOB.Banlist.cd = "/base" - for (var/A in GLOB.Banlist.dir) - RemoveBan(A) - + usr.client.holder.DB_ban_unban( ckey(key), BANTYPE_ANY_FULLBAN) + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" + if (key == GLOB.Banlist["key"] /*|| id == Banlist["id"]*/) + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Remove(A) + continue + + return 1 + +/proc/GetExp(minutes as num) + UpdateTime() + var/exp = minutes - GLOB.CMinutes + if (exp <= 0) + return 0 + else + var/timeleftstring + if (exp >= 1440) //1440 = 1 day in minutes + timeleftstring = "[round(exp / 1440, 0.1)] Days" + else if (exp >= 60) //60 = 1 hour in minutes + timeleftstring = "[round(exp / 60, 0.1)] Hours" + else + timeleftstring = "[exp] Minutes" + return timeleftstring + +/datum/admins/proc/unbanpanel() + var/count = 0 + var/dat + //var/dat = "
    Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
    " + GLOB.Banlist.cd = "/base" + for (var/A in GLOB.Banlist.dir) + count++ + GLOB.Banlist.cd = "/base/[A]" + var/ref = "\ref[src]" + var/key = GLOB.Banlist["key"] + var/id = GLOB.Banlist["id"] + var/ip = GLOB.Banlist["ip"] + var/reason = GLOB.Banlist["reason"] + var/by = GLOB.Banlist["bannedby"] + var/expiry + if(GLOB.Banlist["temp"]) + expiry = GetExp(GLOB.Banlist["minutes"]) + if(!expiry) + expiry = "Removal Pending" + else + expiry = "Permaban" + + dat += text("") + + dat += "
    (U)(E) Key: [key]ComputerID: [id]IP: [ip] [expiry](By: [by])(Reason: [reason])
    " + dat = "
    Bans: (U) = Unban , (E) = Edit Ban - ([count] Bans)
    [dat]" + usr << browse(dat, "window=unbanp;size=875x400") + +//////////////////////////////////// DEBUG //////////////////////////////////// + +/proc/CreateBans() + + UpdateTime() + + var/i + var/last + + for(i=0, i<1001, i++) + var/a = pick(1,0) + var/b = pick(1,0) + if(b) + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Add("trash[i]trashid[i]") + GLOB.Banlist.cd = "/base/trash[i]trashid[i]" + GLOB.Banlist["key"] << "trash[i]" + else + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Add("[last]trashid[i]") + GLOB.Banlist.cd = "/base/[last]trashid[i]" + GLOB.Banlist["key"] << last + GLOB.Banlist["id"] << "trashid[i]" + GLOB.Banlist["reason"] << "Trashban[i]." + GLOB.Banlist["temp"] << a + GLOB.Banlist["minutes"] << GLOB.CMinutes + rand(1,2000) + GLOB.Banlist["bannedby"] << "trashmin" + last = "trash[i]" + + GLOB.Banlist.cd = "/base" + +/proc/ClearAllBans() + GLOB.Banlist.cd = "/base" + for (var/A in GLOB.Banlist.dir) + RemoveBan(A) + diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d31a9a7edf..9d8f687c2a 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1,3 +1,4 @@ + //////////////////////////////// /proc/message_admins(msg) msg = "ADMIN LOG: [msg]" @@ -42,6 +43,7 @@ body += "\[ CID | " body += "IP \]" + body += "

    \[ " body += "VV - " body += "TP - " @@ -239,21 +241,21 @@ if(6) dat+="ERROR: Could not submit Feed story to Network.

    " if(src.admincaster_feed_channel.channel_name=="") - dat+="Invalid receiving channel name.
    " + dat+="•Invalid receiving channel name.
    " if(src.admincaster_feed_message.returnBody(-1) == "" || src.admincaster_feed_message.returnBody(-1) == "\[REDACTED\]") - dat+="Invalid message body.
    " + dat+="•Invalid message body.
    " dat+="
    Return
    " if(7) dat+="ERROR: Could not submit Feed Channel to Network.

    " if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]") - dat+="Invalid channel name.
    " + dat+="•Invalid channel name.
    " var/check = 0 for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.admincaster_feed_channel.channel_name) check = 1 break if(check) - dat+="Channel name already in use.
    " + dat+="•Channel name already in use.
    " dat+="
    Return
    " if(9) dat+="[admincaster_feed_channel.channel_name]: \[created by: [admincaster_feed_channel.returnAuthor(-1)]\]
    " @@ -354,9 +356,9 @@ if(16) dat+="ERROR: Wanted Issue rejected by Network.

    " if(src.admincaster_wanted_message.criminal =="" || src.admincaster_wanted_message.criminal == "\[REDACTED\]") - dat+="Invalid name for person wanted.
    " + dat+="•Invalid name for person wanted.
    " if(src.admincaster_wanted_message.body == "" || src.admincaster_wanted_message.body == "\[REDACTED\]") - dat+="Invalid description.
    " + dat+="•Invalid description.
    " dat+="
    Return
    " if(17) dat+="Wanted Issue successfully deleted from Circulation
    " @@ -426,14 +428,12 @@ var result = input(usr, "Select reboot method", "World Reboot", options[1]) as null|anything in options if(result) SSblackbox.add_details("admin_verb","Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - switch(result) if("Regular Restart") SSticker.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) if("Hard Restart (No Delay, No Feeback Reason)") world.Reboot() if("Hardest Restart (No actions, just reboot)") - world.Reboot(fast_track = TRUE) if("Service Restart (Force restart DD)") GLOB.reboot_mode = REBOOT_MODE_HARD @@ -694,7 +694,7 @@ to_chat(usr, "AI [key_name(S, usr)]'s laws:") else if(iscyborg(S)) var/mob/living/silicon/robot/R = S - to_chat(usr, "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independant)"]: laws:") + to_chat(usr, "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independent)"]: laws:") else if (ispAI(S)) to_chat(usr, "pAI [key_name(S, usr)]'s laws:") else @@ -830,4 +830,4 @@ string = pick( "Admin login: [key_name(src)]") if(string) - message_admins("[string]") \ No newline at end of file + message_admins("[string]") diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 0e46f20c4c..0e91b3c0f1 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -1,21 +1,21 @@ -/atom/proc/investigate_log(message, subject) - if(!message || !subject) - return - var/F = file("[GLOB.log_directory]/[subject].html") - F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
    " - - +/atom/proc/investigate_log(message, subject) + if(!message || !subject) + return + var/F = file("[GLOB.log_directory]/[subject].html") + F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
    " + + /client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY) ) - set name = "Investigate" - set category = "Admin" - if(!holder) - return - switch(subject) - if("notes, memos, watchlist") - browse_messages() - else - var/F = file("[GLOB.log_directory]/[subject].html") - if(!fexists(F)) - to_chat(src, "No [subject] logfile was found.") - return - src << browse(F,"window=investigate[subject];size=800x300") + set name = "Investigate" + set category = "Admin" + if(!holder) + return + switch(subject) + if("notes, memos, watchlist") + browse_messages() + else + var/F = file("[GLOB.log_directory]/[subject].html") + if(!fexists(F)) + to_chat(src, "No [subject] logfile was found.") + return + src << browse(F,"window=investigate[subject];size=800x300") diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index d4fbd1a030..5d6c1a7902 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -1,382 +1,388 @@ -GLOBAL_LIST_EMPTY(admin_ranks) //list of all admin_rank datums -GLOBAL_PROTECT(admin_ranks) - -/datum/admin_rank - var/name = "NoRank" - var/rights = 0 - var/list/adds - var/list/subs - -/datum/admin_rank/New(init_name, init_rights, list/init_adds, list/init_subs) - name = init_name - switch(name) - if("Removed",null,"") - spawn(0) - qdel(src) - throw EXCEPTION("invalid admin-rank name") - return - if(init_rights) - rights = init_rights - if(!init_adds) - init_adds = list() - if(!init_subs) - init_subs = list() - adds = init_adds - subs = init_subs - -/datum/admin_rank/vv_edit_var(var_name, var_value) - return FALSE - -/proc/admin_keyword_to_flag(word, previous_rights=0) - var/flag = 0 - switch(ckey(word)) - if("buildmode","build") - flag = R_BUILDMODE - if("admin") - flag = R_ADMIN - if("ban") - flag = R_BAN - if("fun") - flag = R_FUN - if("server") - flag = R_SERVER - if("debug") - flag = R_DEBUG - if("permissions","rights") - flag = R_PERMISSIONS - if("possess") - flag = R_POSSESS - if("stealth") - flag = R_STEALTH - if("rejuv","rejuvinate") - flag = R_REJUVINATE - if("varedit") - flag = R_VAREDIT - if("everything","host","all") - flag = 65535 - if("sound","sounds") - flag = R_SOUNDS - if("spawn","create") - flag = R_SPAWN - if("@","prev") - flag = previous_rights - return flag - -/proc/admin_keyword_to_path(word) //use this with verb keywords eg +/client/proc/blah - return text2path(copytext(word, 2, findtext(word, " ", 2, 0))) - -// Adds/removes rights to this admin_rank -/datum/admin_rank/proc/process_keyword(word, previous_rights=0) - var/flag = admin_keyword_to_flag(word, previous_rights) - if(flag) - switch(text2ascii(word,1)) - if(43) - rights |= flag //+ - if(45) - rights &= ~flag //- - else - //isn't a keyword so maybe it's a verbpath? - var/path = admin_keyword_to_path(word) - if(path) - switch(text2ascii(word,1)) - if(43) - if(!subs.Remove(path)) - adds += path //+ - if(45) - if(!adds.Remove(path)) - subs += path //- - -// Checks for (keyword-formatted) rights on this admin -/datum/admins/proc/check_keyword(word) - var/flag = admin_keyword_to_flag(word) - if(flag) - return ((rank.rights & flag) == flag) //true only if right has everything in flag - else - var/path = admin_keyword_to_path(word) - for(var/i in owner.verbs) //this needs to be a foreach loop for some reason. in operator and verbs.Find() don't work - if(i == path) - return 1 - return 0 - -//load our rank - > rights associations -/proc/load_admin_ranks() - GLOB.admin_ranks.Cut() - - if(config.admin_legacy_system) - var/previous_rights = 0 - //load text from file and process each line seperately +GLOBAL_LIST_EMPTY(admin_ranks) //list of all admin_rank datums +GLOBAL_PROTECT(admin_ranks) + +/datum/admin_rank + var/name = "NoRank" + var/rights = 0 + var/list/adds + var/list/subs + +/datum/admin_rank/New(init_name, init_rights, list/init_adds, list/init_subs) + name = init_name + switch(name) + if("Removed",null,"") + spawn(0) + qdel(src) + throw EXCEPTION("invalid admin-rank name") + return + if(init_rights) + rights = init_rights + if(!init_adds) + init_adds = list() + if(!init_subs) + init_subs = list() + adds = init_adds + subs = init_subs + +/datum/admin_rank/vv_edit_var(var_name, var_value) + return FALSE + +#if DM_VERSION > 512 +#error remove the rejuv keyword from this proc +#endif +/proc/admin_keyword_to_flag(word, previous_rights=0) + var/flag = 0 + switch(ckey(word)) + if("buildmode","build") + flag = R_BUILDMODE + if("admin") + flag = R_ADMIN + if("ban") + flag = R_BAN + if("fun") + flag = R_FUN + if("server") + flag = R_SERVER + if("debug") + flag = R_DEBUG + if("permissions","rights") + flag = R_PERMISSIONS + if("possess") + flag = R_POSSESS + if("stealth") + flag = R_STEALTH + if("poll") + flag = R_POLL + if("varedit") + flag = R_VAREDIT + if("everything","host","all") + flag = 65535 + if("sound","sounds") + flag = R_SOUNDS + if("spawn","create") + flag = R_SPAWN + if("@","prev") + flag = previous_rights + if("rejuv","rejuvinate") + stack_trace("Legacy keyword rejuvinate used defaulting to R_ADMIN") + flag = R_ADMIN + return flag + +/proc/admin_keyword_to_path(word) //use this with verb keywords eg +/client/proc/blah + return text2path(copytext(word, 2, findtext(word, " ", 2, 0))) + +// Adds/removes rights to this admin_rank +/datum/admin_rank/proc/process_keyword(word, previous_rights=0) + var/flag = admin_keyword_to_flag(word, previous_rights) + if(flag) + switch(text2ascii(word,1)) + if(43) + rights |= flag //+ + if(45) + rights &= ~flag //- + else + //isn't a keyword so maybe it's a verbpath? + var/path = admin_keyword_to_path(word) + if(path) + switch(text2ascii(word,1)) + if(43) + if(!subs.Remove(path)) + adds += path //+ + if(45) + if(!adds.Remove(path)) + subs += path //- + +// Checks for (keyword-formatted) rights on this admin +/datum/admins/proc/check_keyword(word) + var/flag = admin_keyword_to_flag(word) + if(flag) + return ((rank.rights & flag) == flag) //true only if right has everything in flag + else + var/path = admin_keyword_to_path(word) + for(var/i in owner.verbs) //this needs to be a foreach loop for some reason. in operator and verbs.Find() don't work + if(i == path) + return 1 + return 0 + +//load our rank - > rights associations +/proc/load_admin_ranks() + GLOB.admin_ranks.Cut() + + if(config.admin_legacy_system) + var/previous_rights = 0 + //load text from file and process each line seperately for(var/line in world.file2list("config/admin_ranks.txt")) - if(!line) - continue - if(findtextEx(line,"#",1,2)) - continue - - var/next = findtext(line, "=") - var/datum/admin_rank/R = new(ckeyEx(copytext(line, 1, next))) - if(!R) - continue - GLOB.admin_ranks += R - - var/prev = findchar(line, "+-", next, 0) - while(prev) - next = findchar(line, "+-", prev + 1, 0) - R.process_keyword(copytext(line, prev, next), previous_rights) - prev = next - - previous_rights = R.rights - else + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + var/next = findtext(line, "=") + var/datum/admin_rank/R = new(ckeyEx(copytext(line, 1, next))) + if(!R) + continue + GLOB.admin_ranks += R + + var/prev = findchar(line, "+-", next, 0) + while(prev) + next = findchar(line, "+-", prev + 1, 0) + R.process_keyword(copytext(line, prev, next), previous_rights) + prev = next + + previous_rights = R.rights + else if(!SSdbcore.Connect()) - log_world("Failed to connect to database in load_admin_ranks(). Reverting to legacy system.") + log_world("Failed to connect to database in load_admin_ranks(). Reverting to legacy system.") GLOB.world_game_log << "Failed to connect to database in load_admin_ranks(). Reverting to legacy system." - config.admin_legacy_system = 1 - load_admin_ranks() - return - + config.admin_legacy_system = 1 + load_admin_ranks() + return + var/datum/DBQuery/query_load_admin_ranks = SSdbcore.NewQuery("SELECT rank, flags FROM [format_table_name("admin_ranks")]") - if(!query_load_admin_ranks.Execute()) - return - while(query_load_admin_ranks.NextRow()) - var/rank_name = ckeyEx(query_load_admin_ranks.item[1]) - var/flags = query_load_admin_ranks.item[2] - if(istext(flags)) - flags = text2num(flags) - var/datum/admin_rank/R = new(rank_name, flags) - if(!R) - continue - GLOB.admin_ranks += R - - #ifdef TESTING - var/msg = "Permission Sets Built:\n" - for(var/datum/admin_rank/R in GLOB.admin_ranks) - msg += "\t[R.name]" - var/rights = rights2text(R.rights,"\n\t\t",R.adds,R.subs) - if(rights) - msg += "\t\t[rights]\n" - testing(msg) - #endif - - -/proc/load_admins(target = null) - //clear the datums references - if(!target) - GLOB.admin_datums.Cut() - for(var/client/C in GLOB.admins) - C.remove_admin_verbs() - C.holder = null - GLOB.admins.Cut() - load_admin_ranks() - //Clear profile access - for(var/A in world.GetConfig("admin")) - world.SetConfig("APP/admin", A, null) - - var/list/rank_names = list() - for(var/datum/admin_rank/R in GLOB.admin_ranks) - rank_names[R.name] = R - - if(config.admin_legacy_system) - //load text from file + if(!query_load_admin_ranks.Execute()) + return + while(query_load_admin_ranks.NextRow()) + var/rank_name = ckeyEx(query_load_admin_ranks.item[1]) + var/flags = query_load_admin_ranks.item[2] + if(istext(flags)) + flags = text2num(flags) + var/datum/admin_rank/R = new(rank_name, flags) + if(!R) + continue + GLOB.admin_ranks += R + + #ifdef TESTING + var/msg = "Permission Sets Built:\n" + for(var/datum/admin_rank/R in GLOB.admin_ranks) + msg += "\t[R.name]" + var/rights = rights2text(R.rights,"\n\t\t",R.adds,R.subs) + if(rights) + msg += "\t\t[rights]\n" + testing(msg) + #endif + + +/proc/load_admins(target = null) + //clear the datums references + if(!target) + GLOB.admin_datums.Cut() + for(var/client/C in GLOB.admins) + C.remove_admin_verbs() + C.holder = null + GLOB.admins.Cut() + load_admin_ranks() + //Clear profile access + for(var/A in world.GetConfig("admin")) + world.SetConfig("APP/admin", A, null) + + var/list/rank_names = list() + for(var/datum/admin_rank/R in GLOB.admin_ranks) + rank_names[R.name] = R + + if(config.admin_legacy_system) + //load text from file var/list/lines = world.file2list("config/admins.txt") - - //process each line seperately - for(var/line in lines) - if(!length(line)) - continue - if(findtextEx(line, "#", 1, 2)) - continue - - var/list/entry = splittext(line, "=") - if(entry.len < 2) - continue - - var/ckey = ckey(entry[1]) - var/rank = ckeyEx(entry[2]) - if(!ckey || !rank || (target && ckey != target)) - continue - - var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use - if(!D) - continue //will occur if an invalid rank is provided - if(D.rank.rights & R_DEBUG) //grant profile access - world.SetConfig("APP/admin", ckey, "role=admin") - D.associate(GLOB.directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum - else + + //process each line seperately + for(var/line in lines) + if(!length(line)) + continue + if(findtextEx(line, "#", 1, 2)) + continue + + var/list/entry = splittext(line, "=") + if(entry.len < 2) + continue + + var/ckey = ckey(entry[1]) + var/rank = ckeyEx(entry[2]) + if(!ckey || !rank || (target && ckey != target)) + continue + + var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use + if(!D) + continue //will occur if an invalid rank is provided + if(D.rank.rights & R_DEBUG) //grant profile access + world.SetConfig("APP/admin", ckey, "role=admin") + D.associate(GLOB.directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum + else if(!SSdbcore.Connect()) - log_world("Failed to connect to database in load_admins(). Reverting to legacy system.") + log_world("Failed to connect to database in load_admins(). Reverting to legacy system.") GLOB.world_game_log << "Failed to connect to database in load_admins(). Reverting to legacy system." - config.admin_legacy_system = 1 - load_admins() - return - + config.admin_legacy_system = 1 + load_admins() + return + var/datum/DBQuery/query_load_admins = SSdbcore.NewQuery("SELECT ckey, rank FROM [format_table_name("admin")]") - if(!query_load_admins.Execute()) - return - while(query_load_admins.NextRow()) - var/ckey = ckey(query_load_admins.item[1]) - var/rank = ckeyEx(query_load_admins.item[2]) - if(target && ckey != target) - continue - - if(rank_names[rank] == null) - WARNING("Admin rank ([rank]) does not exist.") - continue - - var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use - if(!D) - continue //will occur if an invalid rank is provided - if(D.rank.rights & R_DEBUG) //grant profile access - world.SetConfig("APP/admin", ckey, "role=admin") - D.associate(GLOB.directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum - - #ifdef TESTING - var/msg = "Admins Built:\n" - for(var/ckey in GLOB.admin_datums) - var/datum/admins/D = GLOB.admin_datums[ckey] - msg += "\t[ckey] - [D.rank.name]\n" - testing(msg) - #endif - - -#ifdef TESTING -/client/verb/changerank(newrank in GLOB.admin_ranks) - if(holder) - holder.rank = newrank - else - holder = new /datum/admins(newrank, ckey) - remove_admin_verbs() - holder.associate(src) - -/client/verb/changerights(newrights as num) - if(holder) - holder.rank.rights = newrights - else - holder = new /datum/admins("testing", newrights, ckey) - remove_admin_verbs() - holder.associate(src) -#endif - -/datum/admins/proc/edit_rights_topic(list/href_list) - if(!check_rights(R_PERMISSIONS)) - message_admins("[key_name_admin(usr)] attempted to edit the admin permissions without sufficient rights.") - log_admin("[key_name(usr)] attempted to edit the admin permissions without sufficient rights.") - return - - var/adm_ckey - var/task = href_list["editrights"] - switch(task) - if("add") - var/new_ckey = ckey(input(usr,"New admin's ckey","Admin ckey", null) as text|null) - if(!new_ckey) - return - if(new_ckey in GLOB.admin_datums) - to_chat(usr, "Error: Topic 'editrights': [new_ckey] is already an admin") - return - adm_ckey = new_ckey - task = "rank" - else - adm_ckey = ckey(href_list["ckey"]) - if(!adm_ckey) - to_chat(usr, "Error: Topic 'editrights': No valid ckey") - return - - var/datum/admins/D = GLOB.admin_datums[adm_ckey] - - switch(task) - if("remove") - if(alert("Are you sure you want to remove [adm_ckey]?","Message","Yes","Cancel") == "Yes") - if(!D) - return - if(!check_if_greater_rights_than_holder(D)) - message_admins("[key_name_admin(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") - log_admin("[key_name(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") - return - GLOB.admin_datums -= adm_ckey - D.disassociate() - - updateranktodb(adm_ckey, "player") - message_admins("[key_name_admin(usr)] removed [adm_ckey] from the admins list") - log_admin("[key_name(usr)] removed [adm_ckey] from the admins list") - log_admin_rank_modification(adm_ckey, "Removed") - - if("rank") - var/datum/admin_rank/R - - var/list/rank_names = list("*New Rank*") - for(R in GLOB.admin_ranks) - rank_names[R.name] = R - - var/new_rank = input("Please select a rank", "New rank", null, null) as null|anything in rank_names - - switch(new_rank) - if(null) - return - if("*New Rank*") - new_rank = ckeyEx(input("Please input a new rank", "New custom rank", null, null) as null|text) - if(!new_rank) - return - - if(D) - if(!check_if_greater_rights_than_holder(D)) - message_admins("[key_name_admin(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") - log_admin("[key_name(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") - return - - R = rank_names[new_rank] - if(!R) //rank with that name doesn't exist yet - make it - if(D) - R = new(new_rank, D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name - else - R = new(new_rank) //blank new admin_rank - GLOB.admin_ranks += R - - if(D) //they were previously an admin - D.disassociate() //existing admin needs to be disassociated - D.rank = R //set the admin_rank as our rank - else - D = new(R,adm_ckey) //new admin - - var/client/C = GLOB.directory[adm_ckey] //find the client with the specified ckey (if they are logged in) - D.associate(C) //link up with the client and add verbs - - updateranktodb(adm_ckey, new_rank) - message_admins("[key_name_admin(usr)] edited the admin rank of [adm_ckey] to [new_rank]") - log_admin("[key_name(usr)] edited the admin rank of [adm_ckey] to [new_rank]") - log_admin_rank_modification(adm_ckey, new_rank) - - if("permissions") - if(!D) - return //they're not an admin! - - var/keyword = input("Input permission keyword (one at a time):\ne.g. +BAN or -FUN or +/client/proc/someverb", "Permission toggle", null, null) as null|text - if(!keyword) - return - - if(!check_keyword(keyword) || !check_if_greater_rights_than_holder(D)) - message_admins("[key_name_admin(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") - log_admin("[key_name(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") - return - - D.disassociate() - - if(!findtext(D.rank.name, "([adm_ckey])")) //not a modified subrank, need to duplicate the admin_rank datum to prevent modifying others too - D.rank = new("[D.rank.name]([adm_ckey])", D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name - //we don't add this clone to the admin_ranks list, as it is unique to that ckey - - D.rank.process_keyword(keyword) - - var/client/C = GLOB.directory[adm_ckey] //find the client with the specified ckey (if they are logged in) - D.associate(C) //link up with the client and add verbs - - message_admins("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") - log_admin("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") - log_admin_permission_modification(adm_ckey, D.rank.rights) - - edit_admin_permissions() - -/datum/admins/proc/updateranktodb(ckey,newrank) + if(!query_load_admins.Execute()) + return + while(query_load_admins.NextRow()) + var/ckey = ckey(query_load_admins.item[1]) + var/rank = ckeyEx(query_load_admins.item[2]) + if(target && ckey != target) + continue + + if(rank_names[rank] == null) + WARNING("Admin rank ([rank]) does not exist.") + continue + + var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use + if(!D) + continue //will occur if an invalid rank is provided + if(D.rank.rights & R_DEBUG) //grant profile access + world.SetConfig("APP/admin", ckey, "role=admin") + D.associate(GLOB.directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum + + #ifdef TESTING + var/msg = "Admins Built:\n" + for(var/ckey in GLOB.admin_datums) + var/datum/admins/D = GLOB.admin_datums[ckey] + msg += "\t[ckey] - [D.rank.name]\n" + testing(msg) + #endif + + +#ifdef TESTING +/client/verb/changerank(newrank in GLOB.admin_ranks) + if(holder) + holder.rank = newrank + else + holder = new /datum/admins(newrank, ckey) + remove_admin_verbs() + holder.associate(src) + +/client/verb/changerights(newrights as num) + if(holder) + holder.rank.rights = newrights + else + holder = new /datum/admins("testing", newrights, ckey) + remove_admin_verbs() + holder.associate(src) +#endif + +/datum/admins/proc/edit_rights_topic(list/href_list) + if(!check_rights(R_PERMISSIONS)) + message_admins("[key_name_admin(usr)] attempted to edit the admin permissions without sufficient rights.") + log_admin("[key_name(usr)] attempted to edit the admin permissions without sufficient rights.") + return + + var/adm_ckey + var/task = href_list["editrights"] + switch(task) + if("add") + var/new_ckey = ckey(input(usr,"New admin's ckey","Admin ckey", null) as text|null) + if(!new_ckey) + return + if(new_ckey in GLOB.admin_datums) + to_chat(usr, "Error: Topic 'editrights': [new_ckey] is already an admin") + return + adm_ckey = new_ckey + task = "rank" + else + adm_ckey = ckey(href_list["ckey"]) + if(!adm_ckey) + to_chat(usr, "Error: Topic 'editrights': No valid ckey") + return + + var/datum/admins/D = GLOB.admin_datums[adm_ckey] + + switch(task) + if("remove") + if(alert("Are you sure you want to remove [adm_ckey]?","Message","Yes","Cancel") == "Yes") + if(!D) + return + if(!check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") + log_admin("[key_name(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") + return + GLOB.admin_datums -= adm_ckey + D.disassociate() + + updateranktodb(adm_ckey, "player") + message_admins("[key_name_admin(usr)] removed [adm_ckey] from the admins list") + log_admin("[key_name(usr)] removed [adm_ckey] from the admins list") + log_admin_rank_modification(adm_ckey, "Removed") + + if("rank") + var/datum/admin_rank/R + + var/list/rank_names = list("*New Rank*") + for(R in GLOB.admin_ranks) + rank_names[R.name] = R + + var/new_rank = input("Please select a rank", "New rank", null, null) as null|anything in rank_names + + switch(new_rank) + if(null) + return + if("*New Rank*") + new_rank = ckeyEx(input("Please input a new rank", "New custom rank", null, null) as null|text) + if(!new_rank) + return + + if(D) + if(!check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") + log_admin("[key_name(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") + return + + R = rank_names[new_rank] + if(!R) //rank with that name doesn't exist yet - make it + if(D) + R = new(new_rank, D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name + else + R = new(new_rank) //blank new admin_rank + GLOB.admin_ranks += R + + if(D) //they were previously an admin + D.disassociate() //existing admin needs to be disassociated + D.rank = R //set the admin_rank as our rank + else + D = new(R,adm_ckey) //new admin + + var/client/C = GLOB.directory[adm_ckey] //find the client with the specified ckey (if they are logged in) + D.associate(C) //link up with the client and add verbs + + updateranktodb(adm_ckey, new_rank) + message_admins("[key_name_admin(usr)] edited the admin rank of [adm_ckey] to [new_rank]") + log_admin("[key_name(usr)] edited the admin rank of [adm_ckey] to [new_rank]") + log_admin_rank_modification(adm_ckey, new_rank) + + if("permissions") + if(!D) + return //they're not an admin! + + var/keyword = input("Input permission keyword (one at a time):\ne.g. +BAN or -FUN or +/client/proc/someverb", "Permission toggle", null, null) as null|text + if(!keyword) + return + + if(!check_keyword(keyword) || !check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") + log_admin("[key_name(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") + return + + D.disassociate() + + if(!findtext(D.rank.name, "([adm_ckey])")) //not a modified subrank, need to duplicate the admin_rank datum to prevent modifying others too + D.rank = new("[D.rank.name]([adm_ckey])", D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name + //we don't add this clone to the admin_ranks list, as it is unique to that ckey + + D.rank.process_keyword(keyword) + + var/client/C = GLOB.directory[adm_ckey] //find the client with the specified ckey (if they are logged in) + D.associate(C) //link up with the client and add verbs + + message_admins("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") + log_admin("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") + log_admin_permission_modification(adm_ckey, D.rank.rights) + + edit_admin_permissions() + +/datum/admins/proc/updateranktodb(ckey,newrank) if(!SSdbcore.Connect()) - return - var/sql_ckey = sanitizeSQL(ckey) - var/sql_admin_rank = sanitizeSQL(newrank) - + return + var/sql_ckey = sanitizeSQL(ckey) + var/sql_admin_rank = sanitizeSQL(newrank) + var/datum/DBQuery/query_admin_rank_update = SSdbcore.NewQuery("UPDATE [format_table_name("player")] SET lastadminrank = '[sql_admin_rank]' WHERE ckey = '[sql_ckey]'") - query_admin_rank_update.Execute() + query_admin_rank_update.Execute() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 90d4aebea5..ac3d4cb21e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -12,13 +12,10 @@ GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) /client/proc/dsay, /*talk in deadchat using our ckey/fakekey*/ /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ /client/proc/secrets, - /client/proc/restart_controller, /client/proc/reload_admins, - /client/proc/reload_mentors, /client/proc/reestablish_db_connection,/*reattempt a connection to the database*/ /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ -// /client/proc/mentor_memo, /*mentor memo system. show/delete/write. +SERVER needed to delete mentor memos of others*/ /client/proc/cmd_admin_ticket_panel, /client/proc/stop_sounds ) @@ -69,7 +66,8 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /client/proc/open_shuttle_manipulator, /* Opens shuttle manipulator UI */ /client/proc/deadchat, /client/proc/toggleprayers, - /client/proc/toggleadminhelpsound + /client/proc/toggleadminhelpsound, + /client/proc/respawn_character ) GLOBAL_PROTECT(admin_verbs_ban) GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel,/client/proc/DB_ban_panel,/client/proc/stickybanpanel)) @@ -154,19 +152,15 @@ GLOBAL_LIST_INIT(admin_verbs_debug, world.AVerbsDebug()) /client/proc/clear_dynamic_transit, /client/proc/toggle_medal_disable, /client/proc/view_runtimes, - //citadel code - /client/proc/give_humans_genitals, - /client/proc/test_mammal_overlays, /client/proc/pump_random_event, /client/proc/cmd_display_init_log ) - GLOBAL_PROTECT(admin_verbs_possess) GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess,/proc/release)) GLOBAL_PROTECT(admin_verbs_permissions) -GLOBAL_LIST_INIT(admin_verbs_permissions, list(/client/proc/edit_admin_permissions,/client/proc/create_poll)) -GLOBAL_PROTECT(admin_verbs_rejuv) -GLOBAL_LIST_INIT(admin_verbs_rejuv, list(/client/proc/respawn_character)) +GLOBAL_LIST_INIT(admin_verbs_permissions, list(/client/proc/edit_admin_permissions)) +GLOBAL_PROTECT(admin_verbs_poll) +GLOBAL_LIST_INIT(admin_verbs_poll, list(/client/proc/create_poll)) //verbs which can be hidden - needs work GLOBAL_PROTECT(admin_verbs_hideable) @@ -261,8 +255,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( verbs += GLOB.admin_verbs_permissions if(rights & R_STEALTH) verbs += /client/proc/stealth - if(rights & R_REJUVINATE) - verbs += GLOB.admin_verbs_rejuv + if(rights & R_ADMIN) + verbs += GLOB.admin_verbs_poll if(rights & R_SOUNDS) verbs += GLOB.admin_verbs_sounds if(rights & R_SPAWN) @@ -285,7 +279,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( GLOB.admin_verbs_possess, GLOB.admin_verbs_permissions, /client/proc/stealth, - GLOB.admin_verbs_rejuv, + GLOB.admin_verbs_poll, GLOB.admin_verbs_sounds, GLOB.admin_verbs_spawn, /*Debug verbs added by "show debug verbs"*/ diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 8b431f401e..0128b719d7 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -1,34 +1,34 @@ -//returns a reason if M is banned from rank, returns 0 otherwise -/proc/jobban_isbanned(mob/M, rank) - if(!M || !istype(M) || !M.ckey) - return 0 - +//returns a reason if M is banned from rank, returns 0 otherwise +/proc/jobban_isbanned(mob/M, rank) + if(!M || !istype(M) || !M.ckey) + return 0 + if(!M.client) //no cache. fallback to a datum/DBQuery var/datum/DBQuery/query_jobban_check_ban = SSdbcore.NewQuery("SELECT reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(M.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[sanitizeSQL(rank)]'") - if(!query_jobban_check_ban.warn_execute()) - return - if(query_jobban_check_ban.NextRow()) - var/reason = query_jobban_check_ban.item[1] - return reason ? reason : 1 //we don't want to return "" if there is no ban reason, as that would evaluate to false - else - return 0 - - if(!M.client.jobbancache) - jobban_buildcache(M.client) - - if(rank in M.client.jobbancache) - var/reason = M.client.jobbancache[rank] - return (reason) ? reason : 1 //see above for why we need to do this - return 0 - -/proc/jobban_buildcache(client/C) - if(C && istype(C)) - C.jobbancache = list() + if(!query_jobban_check_ban.warn_execute()) + return + if(query_jobban_check_ban.NextRow()) + var/reason = query_jobban_check_ban.item[1] + return reason ? reason : 1 //we don't want to return "" if there is no ban reason, as that would evaluate to false + else + return 0 + + if(!M.client.jobbancache) + jobban_buildcache(M.client) + + if(rank in M.client.jobbancache) + var/reason = M.client.jobbancache[rank] + return (reason) ? reason : 1 //see above for why we need to do this + return 0 + +/proc/jobban_buildcache(client/C) + if(C && istype(C)) + C.jobbancache = list() var/datum/DBQuery/query_jobban_build_cache = SSdbcore.NewQuery("SELECT job, reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(C.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") - if(!query_jobban_build_cache.warn_execute()) - return - while(query_jobban_build_cache.NextRow()) - C.jobbancache[query_jobban_build_cache.item[1]] = query_jobban_build_cache.item[2] - -/proc/ban_unban_log_save(var/formatted_log) - text2file(formatted_log,"data/ban_unban_log.txt") + if(!query_jobban_build_cache.warn_execute()) + return + while(query_jobban_build_cache.NextRow()) + C.jobbancache[query_jobban_build_cache.item[1]] = query_jobban_build_cache.item[2] + +/proc/ban_unban_log_save(var/formatted_log) + text2file(formatted_log,"data/ban_unban_log.txt") diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm index 92abf6d46d..15c57a8a89 100644 --- a/code/modules/admin/create_poll.dm +++ b/code/modules/admin/create_poll.dm @@ -1,33 +1,11 @@ /client/proc/create_poll() set name = "Create Poll" set category = "Special Verbs" - if(!check_rights(R_PERMISSIONS)) + if(!check_rights(R_POLL)) return - if(!SSdbcore.IsConnected()) + if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") return - var/returned = create_poll_function() - if(returned) - var/datum/DBQuery/query_check_option = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_option")] WHERE pollid = [returned]") - if(!query_check_option.warn_execute()) - return - if(query_check_option.NextRow()) - var/datum/DBQuery/query_log_get = SSdbcore.NewQuery("SELECT polltype, question, adminonly FROM [format_table_name("poll_question")] WHERE id = [returned]") - if(!query_log_get.warn_execute()) - return - if(query_log_get.NextRow()) - var/polltype = query_log_get.item[1] - var/question = query_log_get.item[2] - var/adminonly = text2num(query_log_get.item[3]) - log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]") - message_admins("[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]
    Question: [question]") - else - to_chat(src, "Poll question created without any options, poll will be deleted.") - var/datum/DBQuery/query_del_poll = SSdbcore.NewQuery("DELETE FROM [format_table_name("poll_question")] WHERE id = [returned]") - if(!query_del_poll.warn_execute()) - return - -/client/proc/create_poll_function() var/polltype = input("Choose poll type.","Poll Type") in list("Single Option","Text Reply","Rating","Multiple Choice", "Instant Runoff Voting")|null var/choice_amount = 0 switch(polltype) @@ -40,7 +18,9 @@ if("Multiple Choice") polltype = POLLTYPE_MULTI choice_amount = input("How many choices should be allowed?","Select choice amount") as num|null - if(!choice_amount) + if(choice_amount == 0) + to_chat(src, "Multiple choice poll must have at least one choice allowed.") + else if (choice_amount == null) return if ("Instant Runoff Voting") polltype = POLLTYPE_IRV @@ -51,22 +31,15 @@ if(!endtime) return endtime = sanitizeSQL(endtime) - var/datum/DBQuery/query_validate_time = SSdbcore.NewQuery("SELECT STR_TO_DATE('[endtime]','%Y-%c-%d %T')") + var/datum/DBQuery/query_validate_time = SSdbcore.NewQuery("SELECT IF(STR_TO_DATE('[endtime]','%Y-%c-%d %T') > NOW(), STR_TO_DATE('[endtime]','%Y-%c-%d %T'), 0)") if(!query_validate_time.warn_execute()) return if(query_validate_time.NextRow()) + var/checktime = text2num(query_validate_time.item[1]) + if(!checktime) + to_chat(src, "Datetime entered is improperly formatted or not later than current server time.") + return endtime = query_validate_time.item[1] - if(!endtime) - to_chat(src, "Datetime entered is invalid.") - return - var/datum/DBQuery/query_time_later = SSdbcore.NewQuery("SELECT TIMESTAMP('[endtime]') < NOW()") - if(!query_time_later.warn_execute()) - return - if(query_time_later.NextRow()) - var/checklate = text2num(query_time_later.item[1]) - if(checklate) - to_chat(src, "Datetime entered is not later than current server time.") - return var/adminonly switch(alert("Admin only poll?",,"Yes","No","Cancel")) if("Yes") @@ -88,72 +61,77 @@ if(!question) return question = sanitizeSQL(question) + var/list/sql_option_list = list() + if(polltype != POLLTYPE_TEXT) + var/add_option = 1 + while(add_option) + var/option = input("Write your option","Option") as message|null + if(!option) + return + option = sanitizeSQL(option) + var/default_percentage_calc + if(polltype != POLLTYPE_IRV) + switch(alert("Should this option be included by default when poll result percentages are generated?",,"Yes","No","Cancel")) + if("Yes") + default_percentage_calc = 1 + if("No") + default_percentage_calc = 0 + else + return + var/minval = 0 + var/maxval = 0 + var/descmin = "" + var/descmid = "" + var/descmax = "" + if(polltype == POLLTYPE_RATING) + minval = input("Set minimum rating value.","Minimum rating") as num|null + if(minval) + minval = sanitizeSQL(minval) + else if(minval == null) + return + maxval = input("Set maximum rating value.","Maximum rating") as num|null + if(maxval) + maxval = sanitizeSQL(maxval) + if(minval >= maxval) + to_chat(src, "Maximum rating value can't be less than or equal to minimum rating value") + continue + else if(maxval == null) + return + descmin = input("Optional: Set description for minimum rating","Minimum rating description") as message|null + if(descmin) + descmin = sanitizeSQL(descmin) + else if(descmin == null) + return + descmid = input("Optional: Set description for median rating","Median rating description") as message|null + if(descmid) + descmid = sanitizeSQL(descmid) + else if(descmid == null) + return + descmax = input("Optional: Set description for maximum rating","Maximum rating description") as message|null + if(descmax) + descmax = sanitizeSQL(descmax) + else if(descmax == null) + return + sql_option_list += list(list("text" = "'[option]'", "minval" = "'[minval]'", "maxval" = "'[maxval]'", "descmin" = "'[descmin]'", "descmid" = "'[descmid]'", "descmax" = "'[descmax]'", "default_display_in_results" = "'[default_percentage_calc]'")) + switch(alert(" ",,"Add option","Finish", "Cancel")) + if("Add option") + add_option = 1 + if("Finish") + add_option = 0 + else + return 0 var/datum/DBQuery/query_polladd_question = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_question")] (polltype, starttime, endtime, question, adminonly, multiplechoiceoptions, createdby_ckey, createdby_ip, dontshow) VALUES ('[polltype]', '[starttime]', '[endtime]', '[question]', '[adminonly]', '[choice_amount]', '[sql_ckey]', INET_ATON('[address]'), '[dontshow]')") if(!query_polladd_question.warn_execute()) return - if(polltype == POLLTYPE_TEXT) - log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]") - message_admins("[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]
    Question: [question]") - return - var/pollid = 0 - var/datum/DBQuery/query_get_id = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE question = '[question]' AND starttime = '[starttime]' AND endtime = '[endtime]' AND createdby_ckey = '[sql_ckey]' AND createdby_ip = INET_ATON('[address]')") - if(!query_get_id.warn_execute()) - return - if(query_get_id.NextRow()) - pollid = query_get_id.item[1] - var/add_option = 1 - while(add_option) - var/option = input("Write your option","Option") as message|null - if(!option) - return pollid - option = sanitizeSQL(option) - var/percentagecalc = 1 - if (polltype != POLLTYPE_IRV) - switch(alert("Calculate option results as percentage?",,"Yes","No","Cancel")) - if("Yes") - percentagecalc = 1 - if("No") - percentagecalc = 0 - else - return pollid - var/minval = 0 - var/maxval = 0 - var/descmin = "" - var/descmid = "" - var/descmax = "" - if(polltype == POLLTYPE_RATING) - minval = input("Set minimum rating value.","Minimum rating") as num|null - if(!minval) - return pollid - maxval = input("Set maximum rating value.","Maximum rating") as num|null - if(!maxval) - return pollid - if(minval >= maxval) - to_chat(src, "Minimum rating value can't be more than maximum rating value") - return pollid - descmin = input("Optional: Set description for minimum rating","Minimum rating description") as message|null - if(descmin) - descmin = sanitizeSQL(descmin) - else if(descmin == null) - return pollid - descmid = input("Optional: Set description for median rating","Median rating description") as message|null - if(descmid) - descmid = sanitizeSQL(descmid) - else if(descmid == null) - return pollid - descmax = input("Optional: Set description for maximum rating","Maximum rating description") as message|null - if(descmax) - descmax = sanitizeSQL(descmax) - else if(descmax == null) - return pollid - var/datum/DBQuery/query_polladd_option = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_option")] (pollid, text, percentagecalc, minval, maxval, descmin, descmid, descmax) VALUES ('[pollid]', '[option]', '[percentagecalc]', '[minval]', '[maxval]', '[descmin]', '[descmid]', '[descmax]')") - if(!query_polladd_option.warn_execute()) - return pollid - switch(alert(" ",,"Add option","Finish", "Cancel")) - if("Add option") - add_option = 1 - if("Finish") - add_option = 0 - else - return 0 - return pollid \ No newline at end of file + if(polltype != POLLTYPE_TEXT) + var/pollid = 0 + var/datum/DBQuery/query_get_id = SSdbcore.NewQuery("SELECT LAST_INSERT_ID()") + if(!query_get_id.warn_execute()) + return + if(query_get_id.NextRow()) + pollid = query_get_id.item[1] + for(var/list/i in sql_option_list) + i |= list("pollid" = "'[pollid]'") + SSdbcore.MassInsert(format_table_name("poll_option"), sql_option_list, warn = 1) + log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]") + message_admins("[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]
    Question: [question]") diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm index 9db7f62441..aa685f79f7 100644 --- a/code/modules/admin/permissionverbs/permissionedit.dm +++ b/code/modules/admin/permissionverbs/permissionedit.dm @@ -1,137 +1,137 @@ -/client/proc/edit_admin_permissions() - set category = "Admin" - set name = "Permissions Panel" - set desc = "Edit admin permissions" - if(!check_rights(R_PERMISSIONS)) - return - usr.client.holder.edit_admin_permissions() - -/datum/admins/proc/edit_admin_permissions() - if(!check_rights(R_PERMISSIONS)) - return - - var/output = {" - - -Permissions Panel - - - - -
    - - - - - - -"} - - for(var/adm_ckey in GLOB.admin_datums) - var/datum/admins/D = GLOB.admin_datums[adm_ckey] - if(!D) - continue - - var/rights = rights2text(D.rank.rights," ") - if(!rights) rights = "*none*" - - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - - output += {" -
    CKEY \[+\]RANKPERMISSIONSVERB-OVERRIDES
    [adm_ckey] \[-\][D.rank.name][rights][rights2text(0," ",D.rank.adds,D.rank.subs)]
    -
    Search:
    - -"} - - usr << browse(output,"window=editrights;size=900x650") - -/datum/admins/proc/log_admin_rank_modification(adm_ckey, new_rank) - if(config.admin_legacy_system) - return - - if(!usr.client) - return - - if (!check_rights(R_PERMISSIONS)) - return - +/client/proc/edit_admin_permissions() + set category = "Admin" + set name = "Permissions Panel" + set desc = "Edit admin permissions" + if(!check_rights(R_PERMISSIONS)) + return + usr.client.holder.edit_admin_permissions() + +/datum/admins/proc/edit_admin_permissions() + if(!check_rights(R_PERMISSIONS)) + return + + var/output = {" + + +Permissions Panel + + + + +
    + + + + + + +"} + + for(var/adm_ckey in GLOB.admin_datums) + var/datum/admins/D = GLOB.admin_datums[adm_ckey] + if(!D) + continue + + var/rights = rights2text(D.rank.rights," ") + if(!rights) rights = "*none*" + + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + output += {" +
    CKEY \[+\]RANKPERMISSIONSVERB-OVERRIDES
    [adm_ckey] \[-\][D.rank.name][rights][rights2text(0," ",D.rank.adds,D.rank.subs)]
    +
    Search:
    + +"} + + usr << browse(output,"window=editrights;size=900x650") + +/datum/admins/proc/log_admin_rank_modification(adm_ckey, new_rank) + if(config.admin_legacy_system) + return + + if(!usr.client) + return + + if (!check_rights(R_PERMISSIONS)) + return + if(!SSdbcore.Connect()) - to_chat(usr, "Failed to establish database connection.") - return - - if(!adm_ckey || !new_rank) - return - - adm_ckey = ckey(adm_ckey) - - if(!adm_ckey) - return - - if(!istext(adm_ckey) || !istext(new_rank)) - return - + to_chat(usr, "Failed to establish database connection.") + return + + if(!adm_ckey || !new_rank) + return + + adm_ckey = ckey(adm_ckey) + + if(!adm_ckey) + return + + if(!istext(adm_ckey) || !istext(new_rank)) + return + var/datum/DBQuery/query_get_admin = SSdbcore.NewQuery("SELECT id FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'") - if(!query_get_admin.warn_execute()) - return - - var/new_admin = 1 - var/admin_id - while(query_get_admin.NextRow()) - new_admin = 0 - admin_id = text2num(query_get_admin.item[1]) - - if(new_admin) + if(!query_get_admin.warn_execute()) + return + + var/new_admin = 1 + var/admin_id + while(query_get_admin.NextRow()) + new_admin = 0 + admin_id = text2num(query_get_admin.item[1]) + + if(new_admin) var/datum/DBQuery/query_add_admin = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin")]` (`id`, `ckey`, `rank`, `level`, `flags`) VALUES (null, '[adm_ckey]', '[new_rank]', -1, 0)") - if(!query_add_admin.warn_execute()) - return + if(!query_add_admin.warn_execute()) + return var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');") - if(!query_add_admin_log.warn_execute()) - return - to_chat(usr, "New admin added.") - else - if(!isnull(admin_id) && isnum(admin_id)) + if(!query_add_admin_log.warn_execute()) + return + to_chat(usr, "New admin added.") + else + if(!isnull(admin_id) && isnum(admin_id)) var/datum/DBQuery/query_change_admin = SSdbcore.NewQuery("UPDATE `[format_table_name("admin")]` SET rank = '[new_rank]' WHERE id = [admin_id]") - if(!query_change_admin.warn_execute()) - return + if(!query_change_admin.warn_execute()) + return var/datum/DBQuery/query_change_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');") - if(!query_change_admin_log.warn_execute()) - return - to_chat(usr, "Admin rank changed.") - - -/datum/admins/proc/log_admin_permission_modification(adm_ckey, new_permission) - if(config.admin_legacy_system) - return - if(!usr.client) - return - if(check_rights(R_PERMISSIONS)) - return - + if(!query_change_admin_log.warn_execute()) + return + to_chat(usr, "Admin rank changed.") + + +/datum/admins/proc/log_admin_permission_modification(adm_ckey, new_permission) + if(config.admin_legacy_system) + return + if(!usr.client) + return + if(check_rights(R_PERMISSIONS)) + return + if(!SSdbcore.Connect()) - to_chat(usr, "Failed to establish database connection.") - return - - if(!adm_ckey || !istext(adm_ckey) || !isnum(new_permission)) - return - + to_chat(usr, "Failed to establish database connection.") + return + + if(!adm_ckey || !istext(adm_ckey) || !isnum(new_permission)) + return + var/datum/DBQuery/query_get_perms = SSdbcore.NewQuery("SELECT id, flags FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'") - if(!query_get_perms.warn_execute()) - return - - var/admin_id - while(query_get_perms.NextRow()) - admin_id = text2num(query_get_perms.item[1]) - - if(!admin_id) - return - + if(!query_get_perms.warn_execute()) + return + + var/admin_id + while(query_get_perms.NextRow()) + admin_id = text2num(query_get_perms.item[1]) + + if(!admin_id) + return + var/datum/DBQuery/query_change_perms = SSdbcore.NewQuery("UPDATE `[format_table_name("admin")]` SET flags = [new_permission] WHERE id = [admin_id]") - if(!query_change_perms.warn_execute()) - return + if(!query_change_perms.warn_execute()) + return var/datum/DBQuery/query_change_perms_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edit permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');") - query_change_perms_log.warn_execute() + query_change_perms_log.warn_execute() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index badca3ec43..c04e3c91ad 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -1,637 +1,637 @@ -/datum/admins/proc/player_panel_new()//The new one - if(!check_rights()) - return - var/dat = "Player Panel" - - //javascript, the part that does most of the work~ - dat += {" - - - - - - - "} - - //body tag start + onload and onkeypress (onkeyup) javascript event calls - dat += "" - - //title + search bar - dat += {" - - - - - - - - -
    - Player panel
    - Hover over a line to see more information - Check antagonists - Kick everyone/AFKers in lobby -

    -

    - Search: -
    - - "} - - //player table header - dat += {" - - "} - - var/list/mobs = sortmobs() - var/i = 1 - for(var/mob/M in mobs) - if(M.ckey) - - var/color = "#e6e6e6" - if(i%2 == 0) - color = "#f2f2f2" - var/is_antagonist = is_special_character(M) - - var/M_job = "" - - if(isliving(M)) - - if(iscarbon(M)) //Carbon stuff - if(ishuman(M)) - M_job = M.job - else if(ismonkey(M)) - M_job = "Monkey" - else if(isalien(M)) //aliens - if(islarva(M)) - M_job = "Alien larva" - else - M_job = "Alien" - else - M_job = "Carbon-based" - - else if(issilicon(M)) //silicon - if(isAI(M)) - M_job = "AI" - else if(ispAI(M)) - M_job = "pAI" - else if(iscyborg(M)) - M_job = "Cyborg" - else - M_job = "Silicon-based" - - else if(isanimal(M)) //simple animals - if(iscorgi(M)) - M_job = "Corgi" - else if(isslime(M)) - M_job = "slime" - else - M_job = "Animal" - - else - M_job = "Living" - - else if(isnewplayer(M)) - M_job = "New player" - - else if(isobserver(M)) - var/mob/dead/observer/O = M - if(O.started_as_observer)//Did they get BTFO or are they just not trying? - M_job = "Observer" - else - M_job = "Ghost" - - var/M_name = html_encode(M.name) - var/M_rname = html_encode(M.real_name) - var/M_key = html_encode(M.key) - - //output for each mob - dat += {" - - - - - - "} - - i++ - - - //player table ending - dat += {" -
    - - - [M_name] - [M_rname] - [M_key] ([M_job]) - -
    -
    -
    - - - - "} - - usr << browse(dat, "window=players;size=600x480") - -/datum/admins/proc/check_antagonists() + if(antagonist > 0) + body += "Antagonist"; + + body += ""; + + + span.innerHTML = body + } + + function clearAll(){ + var spans = document.getElementsByTagName('span'); + for(var i = 0; i < spans.length; i++){ + var span = spans\[i\]; + + var id = span.getAttribute("id"); + + if(!(id.indexOf("item")==0)) + continue; + + var pass = 1; + + for(var j = 0; j < locked_tabs.length; j++){ + if(locked_tabs\[j\]==id){ + pass = 0; + break; + } + } + + if(pass != 1) + continue; + + + + + span.innerHTML = ""; + } + } + + function addToLocked(id,link_id,notice_span_id){ + var link = document.getElementById(link_id); + var decision = link.getAttribute("name"); + if(decision == "1"){ + link.setAttribute("name","2"); + }else{ + link.setAttribute("name","1"); + removeFromLocked(id,link_id,notice_span_id); + return; + } + + var pass = 1; + for(var j = 0; j < locked_tabs.length; j++){ + if(locked_tabs\[j\]==id){ + pass = 0; + break; + } + } + if(!pass) + return; + locked_tabs.push(id); + var notice_span = document.getElementById(notice_span_id); + notice_span.innerHTML = "Locked "; + //link.setAttribute("onClick","attempt('"+id+"','"+link_id+"','"+notice_span_id+"');"); + //document.write("removeFromLocked('"+id+"','"+link_id+"','"+notice_span_id+"')"); + //document.write("aa - "+link.getAttribute("onClick")); + } + + function attempt(ab){ + return ab; + } + + function removeFromLocked(id,link_id,notice_span_id){ + //document.write("a"); + var index = 0; + var pass = 0; + for(var j = 0; j < locked_tabs.length; j++){ + if(locked_tabs\[j\]==id){ + pass = 1; + index = j; + break; + } + } + if(!pass) + return; + locked_tabs\[index\] = ""; + var notice_span = document.getElementById(notice_span_id); + notice_span.innerHTML = ""; + //var link = document.getElementById(link_id); + //link.setAttribute("onClick","addToLocked('"+id+"','"+link_id+"','"+notice_span_id+"')"); + } + + function selectTextField(){ + var filter_text = document.getElementById('filter'); + filter_text.focus(); + filter_text.select(); + } + + + + + + "} + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + + //title + search bar + dat += {" + + + + + + + + +
    + Player panel
    + Hover over a line to see more information - Check antagonists - Kick everyone/AFKers in lobby +

    +

    + Search: +
    + + "} + + //player table header + dat += {" + + "} + + var/list/mobs = sortmobs() + var/i = 1 + for(var/mob/M in mobs) + if(M.ckey) + + var/color = "#e6e6e6" + if(i%2 == 0) + color = "#f2f2f2" + var/is_antagonist = is_special_character(M) + + var/M_job = "" + + if(isliving(M)) + + if(iscarbon(M)) //Carbon stuff + if(ishuman(M)) + M_job = M.job + else if(ismonkey(M)) + M_job = "Monkey" + else if(isalien(M)) //aliens + if(islarva(M)) + M_job = "Alien larva" + else + M_job = "Alien" + else + M_job = "Carbon-based" + + else if(issilicon(M)) //silicon + if(isAI(M)) + M_job = "AI" + else if(ispAI(M)) + M_job = "pAI" + else if(iscyborg(M)) + M_job = "Cyborg" + else + M_job = "Silicon-based" + + else if(isanimal(M)) //simple animals + if(iscorgi(M)) + M_job = "Corgi" + else if(isslime(M)) + M_job = "slime" + else + M_job = "Animal" + + else + M_job = "Living" + + else if(isnewplayer(M)) + M_job = "New player" + + else if(isobserver(M)) + var/mob/dead/observer/O = M + if(O.started_as_observer)//Did they get BTFO or are they just not trying? + M_job = "Observer" + else + M_job = "Ghost" + + var/M_name = html_encode(M.name) + var/M_rname = html_encode(M.real_name) + var/M_key = html_encode(M.key) + + //output for each mob + dat += {" + + + + + + "} + + i++ + + + //player table ending + dat += {" +
    + + + [M_name] - [M_rname] - [M_key] ([M_job]) + +
    +
    +
    + + + + "} + + usr << browse(dat, "window=players;size=600x480") + +/datum/admins/proc/check_antagonists() if (SSticker.HasRoundStarted()) - var/dat = "Round Status

    Round Status

    " - if(SSticker.mode.replacementmode) - dat += "Former Game Mode: [SSticker.mode.name]
    " - dat += "Replacement Game Mode: [SSticker.mode.replacementmode.name]
    " - else - dat += "Current Game Mode: [SSticker.mode.name]
    " - dat += "Round Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]
    " - dat += "Emergency shuttle
    " - if(EMERGENCY_IDLE_OR_RECALLED) - dat += "Call Shuttle
    " - else - var/timeleft = SSshuttle.emergency.timeLeft() - if(SSshuttle.emergency.mode == SHUTTLE_CALL) - dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
    " - dat += "Send Back
    " - else - dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
    " - dat += "Continuous Round Status
    " - dat += "[config.continuous[SSticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]" - if(config.continuous[SSticker.mode.config_tag]) - dat += ", [config.midround_antag[SSticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
    " - else - dat += "
    " - if(config.midround_antag[SSticker.mode.config_tag]) - dat += "Time limit: [config.midround_antag_time_check] minutes into round
    " - dat += "Living crew limit: [config.midround_antag_life_check * 100]% of crew alive
    " - dat += "If limits past: [SSticker.mode.round_ends_with_antag_death ? "End The Round" : "Continue As Extended"]
    " - dat += "End Round Now
    " - dat += "[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]" - var/connected_players = GLOB.clients.len - var/lobby_players = 0 - var/observers = 0 - var/observers_connected = 0 - var/living_players = 0 - var/living_players_connected = 0 - var/living_players_antagonist = 0 - var/brains = 0 - var/other_players = 0 - var/living_skipped = 0 - var/drones = 0 - for(var/mob/M in GLOB.mob_list) - if(M.ckey) - if(isnewplayer(M)) - lobby_players++ - continue - else if(M.stat != DEAD && M.mind && !isbrain(M)) - if(isdrone(M)) - drones++ - continue - if(M.z == ZLEVEL_CENTCOM) - living_skipped++ - continue - living_players++ - if(M.mind.special_role) - living_players_antagonist++ - if(M.client) - living_players_connected++ - else if((M.stat == DEAD )||(isobserver(M))) - observers++ - if(M.client) - observers_connected++ - else if(isbrain(M)) - brains++ - else - other_players++ - dat += "
    Players:|[connected_players - lobby_players] ingame|[connected_players] connected|[lobby_players] lobby|" - dat += "
    Living Players:|[living_players_connected] active|[living_players - living_players_connected] disconnected|[living_players_antagonist] antagonists|" - dat += "
    SKIPPED \[On centcom Z-level\]: [living_skipped] living players|[drones] living drones|" - dat += "
    Dead/Observing players:|[observers_connected] active|[observers - observers_connected] disconnected|[brains] brains|" - if(other_players) - dat += "
    [other_players] players in invalid state or the statistics code is bugged!" - dat += "
    " - - if(SSticker.mode.syndicates.len) - dat += "
    " - for(var/datum/mind/N in SSticker.mode.syndicates) - var/mob/M = N.current - if(M) - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Syndicates
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [N.name]([N.key]) Nuclear Operative Body destroyed!PM

    " - for(var/obj/item/weapon/disk/nuclear/N in GLOB.poi_list) - dat += "" - dat += "
    Nuclear Disk(s)
    [N.name], " - var/atom/disk_loc = N.loc - while(!isturf(disk_loc)) - if(ismob(disk_loc)) - var/mob/M = disk_loc - dat += "carried by [M.real_name] " - if(isobj(disk_loc)) - var/obj/O = disk_loc - dat += "in \a [O.name] " - disk_loc = disk_loc.loc - dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])
    " - - if(SSticker.mode.head_revolutionaries.len || SSticker.mode.revolutionaries.len) - dat += "
    " - for(var/datum/mind/N in SSticker.mode.head_revolutionaries) - var/mob/M = N.current - if(!M) - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "" - for(var/datum/mind/N in SSticker.mode.revolutionaries) - var/mob/M = N.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "
    Revolutionaries
    [N.name]([N.key])Head Revolutionary body destroyed!PM
    [M.real_name] (Leader)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    " - for(var/datum/mind/N in SSticker.mode.get_living_heads()) - var/mob/M = N.current - if(M) - dat += "" - dat += "" - dat += "" - var/turf/mob_loc = get_turf(M) - dat += "" - else - dat += "" - dat += "" - dat += "
    Target(s)Location
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW[mob_loc.loc]
    [N.name]([N.key])Head body destroyed!PM
    " - - for(var/datum/gang/G in SSticker.mode.gangs) + var/dat = "Round Status

    Round Status

    " + if(SSticker.mode.replacementmode) + dat += "Former Game Mode: [SSticker.mode.name]
    " + dat += "Replacement Game Mode: [SSticker.mode.replacementmode.name]
    " + else + dat += "Current Game Mode: [SSticker.mode.name]
    " + dat += "Round Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]
    " + dat += "Emergency shuttle
    " + if(EMERGENCY_IDLE_OR_RECALLED) + dat += "Call Shuttle
    " + else + var/timeleft = SSshuttle.emergency.timeLeft() + if(SSshuttle.emergency.mode == SHUTTLE_CALL) + dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
    " + dat += "Send Back
    " + else + dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
    " + dat += "Continuous Round Status
    " + dat += "[config.continuous[SSticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]" + if(config.continuous[SSticker.mode.config_tag]) + dat += ", [config.midround_antag[SSticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
    " + else + dat += "
    " + if(config.midround_antag[SSticker.mode.config_tag]) + dat += "Time limit: [config.midround_antag_time_check] minutes into round
    " + dat += "Living crew limit: [config.midround_antag_life_check * 100]% of crew alive
    " + dat += "If limits past: [SSticker.mode.round_ends_with_antag_death ? "End The Round" : "Continue As Extended"]
    " + dat += "End Round Now
    " + dat += "[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]" + var/connected_players = GLOB.clients.len + var/lobby_players = 0 + var/observers = 0 + var/observers_connected = 0 + var/living_players = 0 + var/living_players_connected = 0 + var/living_players_antagonist = 0 + var/brains = 0 + var/other_players = 0 + var/living_skipped = 0 + var/drones = 0 + for(var/mob/M in GLOB.mob_list) + if(M.ckey) + if(isnewplayer(M)) + lobby_players++ + continue + else if(M.stat != DEAD && M.mind && !isbrain(M)) + if(isdrone(M)) + drones++ + continue + if(M.z == ZLEVEL_CENTCOM) + living_skipped++ + continue + living_players++ + if(M.mind.special_role) + living_players_antagonist++ + if(M.client) + living_players_connected++ + else if((M.stat == DEAD )||(isobserver(M))) + observers++ + if(M.client) + observers_connected++ + else if(isbrain(M)) + brains++ + else + other_players++ + dat += "
    Players:|[connected_players - lobby_players] ingame|[connected_players] connected|[lobby_players] lobby|" + dat += "
    Living Players:|[living_players_connected] active|[living_players - living_players_connected] disconnected|[living_players_antagonist] antagonists|" + dat += "
    SKIPPED \[On centcom Z-level\]: [living_skipped] living players|[drones] living drones|" + dat += "
    Dead/Observing players:|[observers_connected] active|[observers - observers_connected] disconnected|[brains] brains|" + if(other_players) + dat += "
    [other_players] players in invalid state or the statistics code is bugged!" + dat += "
    " + + if(SSticker.mode.syndicates.len) + dat += "
    " + for(var/datum/mind/N in SSticker.mode.syndicates) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Syndicates
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [N.name]([N.key]) Nuclear Operative Body destroyed!PM

    " + for(var/obj/item/weapon/disk/nuclear/N in GLOB.poi_list) + dat += "" + dat += "
    Nuclear Disk(s)
    [N.name], " + var/atom/disk_loc = N.loc + while(!isturf(disk_loc)) + if(ismob(disk_loc)) + var/mob/M = disk_loc + dat += "carried by [M.real_name] " + if(isobj(disk_loc)) + var/obj/O = disk_loc + dat += "in \a [O.name] " + disk_loc = disk_loc.loc + dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])
    " + + if(SSticker.mode.head_revolutionaries.len || SSticker.mode.revolutionaries.len) + dat += "
    " + for(var/datum/mind/N in SSticker.mode.head_revolutionaries) + var/mob/M = N.current + if(!M) + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "" + for(var/datum/mind/N in SSticker.mode.revolutionaries) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "
    Revolutionaries
    [N.name]([N.key])Head Revolutionary body destroyed!PM
    [M.real_name] (Leader)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    " + for(var/datum/mind/N in SSticker.mode.get_living_heads()) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + var/turf/mob_loc = get_turf(M) + dat += "" + else + dat += "" + dat += "" + dat += "
    Target(s)Location
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW[mob_loc.loc]
    [N.name]([N.key])Head body destroyed!PM
    " + + for(var/datum/gang/G in SSticker.mode.gangs) dat += "
    " - for(var/datum/mind/N in G.bosses) - var/mob/M = N.current - if(!M) - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "" - for(var/datum/mind/N in G.gangsters) - var/mob/M = N.current - if(M) - dat += "" - dat += "" - dat += "
    [G.name] Gang: [round((G.territory.len/GLOB.start_state.num_territories)*100, 1)]% Control
    [N.name]([N.key])Gang Boss body destroyed!PM
    [M.real_name] (Boss)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PM
    " - - if(SSticker.mode.changelings.len > 0) - dat += "
    " - for(var/datum/mind/changeling in SSticker.mode.changelings) - var/mob/M = changeling.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Changelings
    [M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [changeling.name]([changeling.key])Changeling body destroyed!PM
    " - - if(SSticker.mode.wizards.len > 0) - dat += "
    " - for(var/datum/mind/wizard in SSticker.mode.wizards) - var/mob/M = wizard.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Wizards
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [wizard.name]([wizard.key])Wizard body destroyed!
    PM
    " - - if(SSticker.mode.apprentices.len > 0) - dat += "
    " - for(var/datum/mind/apprentice in SSticker.mode.apprentices) - var/mob/M = apprentice.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Apprentice
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [apprentice.name]([apprentice.key])Apprentice body destroyed!!
    PM
    " - - if(SSticker.mode.cult.len) - dat += "
    " - for(var/datum/mind/N in SSticker.mode.cult) - var/mob/M = N.current - if(M) + for(var/datum/mind/N in G.bosses) + var/mob/M = N.current + if(!M) + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "" + for(var/datum/mind/N in G.gangsters) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "
    Cultists
    [N.name]([N.key])Gang Boss body destroyed!PM
    [M.real_name] (Boss)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PM
    " + + if(SSticker.mode.changelings.len > 0) + dat += "
    " + for(var/datum/mind/changeling in SSticker.mode.changelings) + var/mob/M = changeling.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Changelings
    [M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [changeling.name]([changeling.key])Changeling body destroyed!PM
    " + + if(SSticker.mode.wizards.len > 0) + dat += "
    " + for(var/datum/mind/wizard in SSticker.mode.wizards) + var/mob/M = wizard.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Wizards
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [wizard.name]([wizard.key])Wizard body destroyed!
    PM
    " + + if(SSticker.mode.apprentices.len > 0) + dat += "
    " + for(var/datum/mind/apprentice in SSticker.mode.apprentices) + var/mob/M = apprentice.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Apprentice
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [apprentice.name]([apprentice.key])Apprentice body destroyed!!
    PM
    " + + if(SSticker.mode.cult.len) + dat += "
    " + for(var/datum/mind/N in SSticker.mode.cult) + var/mob/M = N.current + if(M) dat += "" - dat += "" - dat += "" - dat += "
    Cultists
    [M.real_name][N.has_antag_datum(ANTAG_DATUM_CULT_MASTER) ? " \[Master\]" : ""][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    " - - if(SSticker.mode.servants_of_ratvar.len) - dat += "
    " - for(var/datum/mind/N in SSticker.mode.servants_of_ratvar) - var/mob/M = N.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "
    Servants of Ratvar
    [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    " - - if(SSticker.mode.traitors.len > 0) - dat += "
    " - for(var/datum/mind/traitor in SSticker.mode.traitors) - var/mob/M = traitor.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Traitors
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [traitor.name]([traitor.key])Traitor body destroyed!PM
    " - - if(SSticker.mode.abductors.len) - dat += "
    " - for(var/datum/mind/abductor in SSticker.mode.abductors) - var/mob/M = abductor.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Abductors
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [abductor.name]([abductor.key])Abductor body destroyed!
    PM
    " - dat += "
    " - for(var/obj/machinery/abductor/experiment/E in GLOB.machines) - for(var/datum/mind/abductee in E.abductee_minds) - var/mob/M = abductee.current - if(M) - dat += "" - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Abductees
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [abductee.name]([abductee.key])Abductee body destroyed!PM
    " - - if(SSticker.mode.devils.len) - dat += "
    " - for(var/X in SSticker.mode.devils) - var/datum/mind/devil = X - var/mob/M = devil.current + dat += "" + dat += "" + dat += "
    devils
    PMFLW
    " + + if(SSticker.mode.servants_of_ratvar.len) + dat += "
    " + for(var/datum/mind/N in SSticker.mode.servants_of_ratvar) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "
    Servants of Ratvar
    [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    " + + if(SSticker.mode.traitors.len > 0) + dat += "
    " + for(var/datum/mind/traitor in SSticker.mode.traitors) + var/mob/M = traitor.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Traitors
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [traitor.name]([traitor.key])Traitor body destroyed!PM
    " + + if(SSticker.mode.abductors.len) + dat += "
    " + for(var/datum/mind/abductor in SSticker.mode.abductors) + var/mob/M = abductor.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Abductors
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [abductor.name]([abductor.key])Abductor body destroyed!
    PM
    " + dat += "
    " + for(var/obj/machinery/abductor/experiment/E in GLOB.machines) + for(var/datum/mind/abductee in E.abductee_minds) + var/mob/M = abductee.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Abductees
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
    [abductee.name]([abductee.key])Abductee body destroyed!PM
    " + + if(SSticker.mode.devils.len) + dat += "
    " + for(var/X in SSticker.mode.devils) + var/datum/mind/devil = X + var/mob/M = devil.current var/datum/antagonist/devil/devilinfo = devil.has_antag_datum(ANTAG_DATUM_DEVIL) - if(M) + if(M) dat += "" - dat += "" - dat += "" - dat += "" - else + dat += "" + dat += "" + dat += "" + else dat += "" - dat += "" - dat += "
    devils
    [M.real_name] : [devilinfo.truename][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
    Show all devil info
    PMShow Objective
    Show all devil info
    [devil.name] : [devilinfo.truename] ([devil.key])devil body destroyed!
    PM
    " - - if(SSticker.mode.sintouched.len) - dat += "
    " - for(var/X in SSticker.mode.sintouched) - var/datum/mind/sintouched = X - var/mob/M = sintouched.current - if(M) - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    sintouched
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
    [sintouched.name]([sintouched.key])sintouched body destroyed!
    PM
    " - - var/list/blob_minds = list() - for(var/mob/camera/blob/B in GLOB.mob_list) - blob_minds |= B.mind - - if(istype(SSticker.mode, /datum/game_mode/blob) || blob_minds.len) - dat += "
    " - if(istype(SSticker.mode,/datum/game_mode/blob)) - var/datum/game_mode/blob/mode = SSticker.mode - blob_minds |= mode.blob_overminds - dat += "" - - for(var/datum/mind/blob in blob_minds) - var/mob/M = blob.current - if(M) - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Blob
    Progress: [GLOB.blobs_legit.len]/[mode.blobwincount]
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [blob.name]([blob.key])Blob not found!PM
    " - - - if(istype(SSticker.mode, /datum/game_mode/monkey)) - var/datum/game_mode/monkey/mode = SSticker.mode - dat += "
    " - - for(var/datum/mind/eek in mode.ape_infectees) - var/mob/M = eek.current - if(M) - dat += "" - dat += "" - dat += "" - else - dat += "" - dat += "" - dat += "
    Monkey
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [eek.name]([eek.key])Monkey not found!PM
    " - - - dat += "" - usr << browse(dat, "window=roundstatus;size=420x500") - else - alert("The game hasn't started yet!") + dat += "PM" + dat += "" + + if(SSticker.mode.sintouched.len) + dat += "
    " + for(var/X in SSticker.mode.sintouched) + var/datum/mind/sintouched = X + var/mob/M = sintouched.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    sintouched
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
    [sintouched.name]([sintouched.key])sintouched body destroyed!
    PM
    " + + var/list/blob_minds = list() + for(var/mob/camera/blob/B in GLOB.mob_list) + blob_minds |= B.mind + + if(istype(SSticker.mode, /datum/game_mode/blob) || blob_minds.len) + dat += "
    " + if(istype(SSticker.mode,/datum/game_mode/blob)) + var/datum/game_mode/blob/mode = SSticker.mode + blob_minds |= mode.blob_overminds + dat += "" + + for(var/datum/mind/blob in blob_minds) + var/mob/M = blob.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Blob
    Progress: [GLOB.blobs_legit.len]/[mode.blobwincount]
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [blob.name]([blob.key])Blob not found!PM
    " + + + if(istype(SSticker.mode, /datum/game_mode/monkey)) + var/datum/game_mode/monkey/mode = SSticker.mode + dat += "
    " + + for(var/datum/mind/eek in mode.ape_infectees) + var/mob/M = eek.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
    Monkey
    [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
    [eek.name]([eek.key])Monkey not found!PM
    " + + + dat += "" + usr << browse(dat, "window=roundstatus;size=420x500") + else + alert("The game hasn't started yet!") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 428ae95984..edde3138fc 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -335,7 +335,7 @@ return SSblackbox.add_details("admin_secrets_fun_used","Traitor All ([objective])") for(var/mob/living/H in GLOB.player_list) - if(!(istype(H, /mob/living/carbon/human)||istype(H, /mob/living/silicon/))) continue + if(!(ishuman(H)||istype(H, /mob/living/silicon/))) continue if(H.stat == 2 || !H.client || !H.mind || ispAI(H)) continue if(is_special_character(H)) continue H.mind.add_antag_datum(ANTAG_DATUM_TRAITOR_CUSTOM) @@ -390,7 +390,7 @@ SSblackbox.add_details("admin_secrets_fun_used","Chinese Cartoons") message_admins("[key_name_admin(usr)] made everything kawaii.") for(var/mob/living/carbon/human/H in GLOB.mob_list) - H << sound('sound/AI/animes.ogg') + H << sound('sound/ai/animes.ogg') if(H.dna.species.id == "human") if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") @@ -457,7 +457,7 @@ if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) W.req_access = list() message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") - priority_announce("Centcom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/AI/commandreport.ogg') + priority_announce("Centcom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/ai/commandreport.ogg') if("guns") if(!check_rights(R_FUN)) diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm index 029987064d..532bb2d16d 100644 --- a/code/modules/admin/sql_message_system.dm +++ b/code/modules/admin/sql_message_system.dm @@ -360,4 +360,4 @@ this proc can take several minutes to execute fully if converting and cause DD t to_chat(world, "Deleting NOTESFILE") fdel(NOTESFILE) to_chat(world, "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES")*/ -#undef NOTESFILE \ No newline at end of file +#undef NOTESFILE diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2f089e793b..5099429872 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1,2257 +1,2256 @@ -/datum/admins/Topic(href, href_list) - ..() - - if(usr.client != src.owner || !check_rights(0)) - message_admins("[usr.key] has attempted to override the admin panel!") - log_admin("[key_name(usr)] tried to use the admin panel without authorization.") - return - if(href_list["ahelp"]) - if(!check_rights(R_ADMIN)) - return - - var/ahelp_ref = href_list["ahelp"] - var/datum/admin_help/AH = locate(ahelp_ref) - if(AH) - AH.Action(href_list["ahelp_action"]) - else - to_chat(usr, "Ticket [ahelp_ref] has been deleted!") - - else if(href_list["ahelp_tickets"]) - GLOB.ahelp_tickets.BrowseTickets(text2num(href_list["ahelp_tickets"])) - - else if(href_list["stickyban"]) - stickyban(href_list["stickyban"],href_list) - - else if(href_list["makeAntag"]) - if (!SSticker.mode) - to_chat(usr, "Not until the round starts!") - return - switch(href_list["makeAntag"]) - if("traitors") - if(src.makeTraitors()) - message_admins("[key_name_admin(usr)] created traitors.") - log_admin("[key_name(usr)] created traitors.") - else - message_admins("[key_name_admin(usr)] tried to create traitors. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to create traitors.") - if("changelings") - if(src.makeChanglings()) - message_admins("[key_name(usr)] created changelings.") - log_admin("[key_name(usr)] created changelings.") - else - message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to create changelings.") - if("revs") - if(src.makeRevs()) - message_admins("[key_name(usr)] started a revolution.") - log_admin("[key_name(usr)] started a revolution.") - else - message_admins("[key_name_admin(usr)] tried to start a revolution. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to start a revolution.") - if("cult") - if(src.makeCult()) - message_admins("[key_name(usr)] started a cult.") - log_admin("[key_name(usr)] started a cult.") - else - message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to start a cult.") - if("wizard") - message_admins("[key_name(usr)] is creating a wizard...") - if(src.makeWizard()) - message_admins("[key_name(usr)] created a wizard.") - log_admin("[key_name(usr)] created a wizard.") - else - message_admins("[key_name_admin(usr)] tried to create a wizard. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to create a wizard.") - if("nukeops") - message_admins("[key_name(usr)] is creating a nuke team...") - if(src.makeNukeTeam()) - message_admins("[key_name(usr)] created a nuke team.") - log_admin("[key_name(usr)] created a nuke team.") - else - message_admins("[key_name_admin(usr)] tried to create a nuke team. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create a nuke team.") - if("ninja") - message_admins("[key_name(usr)] spawned a ninja.") - log_admin("[key_name(usr)] spawned a ninja.") - src.makeSpaceNinja() - if("aliens") - message_admins("[key_name(usr)] started an alien infestation.") - log_admin("[key_name(usr)] started an alien infestation.") - src.makeAliens() - if("deathsquad") - message_admins("[key_name(usr)] is creating a death squad...") - if(src.makeDeathsquad()) - message_admins("[key_name(usr)] created a death squad.") - log_admin("[key_name(usr)] created a death squad.") - else - message_admins("[key_name_admin(usr)] tried to create a death squad. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create a death squad.") - if("blob") - var/strength = input("Set Blob Resource Gain Rate","Set Resource Rate",1) as num|null - if(!strength) - return - message_admins("[key_name(usr)] spawned a blob with base resource gain [strength].") - log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].") - new/datum/round_event/ghost_role/blob(TRUE, strength) - if("gangs") - if(src.makeGangsters()) - message_admins("[key_name(usr)] created gangs.") - log_admin("[key_name(usr)] created gangs.") - else - message_admins("[key_name(usr)] tried to create gangs. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed create gangs.") - if("centcom") - message_admins("[key_name(usr)] is creating a Centcom response team...") - if(src.makeEmergencyresponseteam()) - message_admins("[key_name(usr)] created a Centcom response team.") - log_admin("[key_name(usr)] created a Centcom response team.") - else - message_admins("[key_name_admin(usr)] tried to create a Centcom response team. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create a Centcom response team.") - if("abductors") - message_admins("[key_name(usr)] is creating an abductor team...") - if(src.makeAbductorTeam()) - message_admins("[key_name(usr)] created an abductor team.") - log_admin("[key_name(usr)] created an abductor team.") - else - message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunatly there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create an abductor team.") - if("clockcult") - if(src.makeClockCult()) - message_admins("[key_name(usr)] started a clockwork cult.") - log_admin("[key_name(usr)] started a clockwork cult.") - else - message_admins("[key_name_admin(usr)] tried to start a clockwork cult. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to start a clockwork cult.") - if("revenant") - if(src.makeRevenant()) - message_admins("[key_name(usr)] created a revenant.") - log_admin("[key_name(usr)] created a revenant.") - else - message_admins("[key_name_admin(usr)] tried to create a revenant. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to create a revenant.") - - else if(href_list["forceevent"]) - if(!check_rights(R_FUN)) - return - var/datum/round_event_control/E = locate(href_list["forceevent"]) in SSevents.control - if(E) - var/datum/round_event/event = E.runEvent() - if(event.announceWhen>0) - event.processing = 0 - var/prompt = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No", "Cancel") - switch(prompt) - if("Cancel") - event.kill() - return - if("No") - event.announceWhen = -1 - event.processing = 1 - message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])") - log_admin("[key_name(usr)] has triggered an event. ([E.name])") - return - - else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) - var/adminckey = href_list["dbsearchadmin"] - var/playerckey = href_list["dbsearchckey"] - var/page = href_list["dbsearchpage"] - - DB_ban_panel(playerckey, adminckey, page) - return - - else if(href_list["dbbanedit"]) - var/banedit = href_list["dbbanedit"] - var/banid = text2num(href_list["dbbanid"]) - if(!banedit || !banid) - return - - DB_ban_edit(banid, banedit) - return - - else if(href_list["dbbanaddtype"]) - - var/bantype = text2num(href_list["dbbanaddtype"]) - var/banckey = href_list["dbbanaddckey"] - var/banip = href_list["dbbanaddip"] - var/bancid = href_list["dbbanaddcid"] - var/banduration = text2num(href_list["dbbaddduration"]) - var/banjob = href_list["dbbanaddjob"] - var/banreason = href_list["dbbanreason"] - - banckey = ckey(banckey) - - switch(bantype) - if(BANTYPE_PERMA) - if(!banckey || !banreason) - to_chat(usr, "Not enough parameters (Requires ckey and reason).") - return - banduration = null - banjob = null - if(BANTYPE_TEMP) - if(!banckey || !banreason || !banduration) - to_chat(usr, "Not enough parameters (Requires ckey, reason and duration).") - return - banjob = null - if(BANTYPE_JOB_PERMA) - if(!banckey || !banreason || !banjob) - to_chat(usr, "Not enough parameters (Requires ckey, reason and job).") - return - banduration = null - if(BANTYPE_JOB_TEMP) - if(!banckey || !banreason || !banjob || !banduration) - to_chat(usr, "Not enough parameters (Requires ckey, reason and job).") - return - if(BANTYPE_ADMIN_PERMA) - if(!banckey || !banreason) - to_chat(usr, "Not enough parameters (Requires ckey and reason).") - return - banduration = null - banjob = null - if(BANTYPE_ADMIN_TEMP) - if(!banckey || !banreason || !banduration) - to_chat(usr, "Not enough parameters (Requires ckey, reason and duration).") - return - banjob = null - - var/mob/playermob - - for(var/mob/M in GLOB.player_list) - if(M.ckey == banckey) - playermob = M - break - - - banreason = "(MANUAL BAN) "+banreason - - if(!playermob) - if(banip) - banreason = "[banreason] (CUSTOM IP)" - if(bancid) - banreason = "[banreason] (CUSTOM CID)" - else - message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob.") - - if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, banckey, banip, bancid )) - to_chat(usr, "Failed to apply ban.") - return - create_message("note", banckey, null, banreason, null, null, 0, 0) - - else if(href_list["editrights"]) - edit_rights_topic(href_list) - - else if(href_list["call_shuttle"]) - if(!check_rights(R_ADMIN)) - return - - - switch(href_list["call_shuttle"]) - if("1") - if(EMERGENCY_AT_LEAST_DOCKED) - return - SSshuttle.emergency.request() - log_admin("[key_name(usr)] called the Emergency Shuttle.") - message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") - - if("2") - if(EMERGENCY_AT_LEAST_DOCKED) - return - switch(SSshuttle.emergency.mode) - if(SHUTTLE_CALL) - SSshuttle.emergency.cancel() - log_admin("[key_name(usr)] sent the Emergency Shuttle back.") - message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back.") - else - SSshuttle.emergency.cancel() - log_admin("[key_name(usr)] called the Emergency Shuttle.") - message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") - - - href_list["secrets"] = "check_antagonist" - - else if(href_list["edit_shuttle_time"]) - if(!check_rights(R_SERVER)) - return - - var/timer = input("Enter new shuttle duration (seconds):","Edit Shuttle Timeleft", SSshuttle.emergency.timeLeft() ) as num|null - if(!timer) - return - SSshuttle.emergency.setTimer(timer*10) - log_admin("[key_name(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") - minor_announce("The emergency shuttle will reach its destination in [round(SSshuttle.emergency.timeLeft(600))] minutes.") - message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") - href_list["secrets"] = "check_antagonist" - - else if(href_list["trigger_centcom_recall"]) - if(!check_rights(R_ADMIN)) - return - - usr.client.trigger_centcom_recall() - else if(href_list["toggle_continuous"]) - if(!check_rights(R_ADMIN)) - return - - if(!config.continuous[SSticker.mode.config_tag]) - config.continuous[SSticker.mode.config_tag] = 1 - else - config.continuous[SSticker.mode.config_tag] = 0 - - message_admins("[key_name_admin(usr)] toggled the round to [config.continuous[SSticker.mode.config_tag] ? "continue if all antagonists die" : "end with the antagonists"].") - check_antagonists() - - else if(href_list["toggle_midround_antag"]) - if(!check_rights(R_ADMIN)) - return - - if(!config.midround_antag[SSticker.mode.config_tag]) - config.midround_antag[SSticker.mode.config_tag] = 1 - else - config.midround_antag[SSticker.mode.config_tag] = 0 - - message_admins("[key_name_admin(usr)] toggled the round to [config.midround_antag[SSticker.mode.config_tag] ? "use" : "skip"] the midround antag system.") - check_antagonists() - - else if(href_list["alter_midround_time_limit"]) - if(!check_rights(R_ADMIN)) - return - - var/timer = input("Enter new maximum time",, config.midround_antag_time_check ) as num|null - if(!timer) - return - config.midround_antag_time_check = timer - message_admins("[key_name_admin(usr)] edited the maximum midround antagonist time to [timer] minutes.") - check_antagonists() - - else if(href_list["alter_midround_life_limit"]) - if(!check_rights(R_ADMIN)) - return - - var/ratio = input("Enter new life ratio",, config.midround_antag_life_check*100) as num - if(ratio) - config.midround_antag_life_check = ratio/100 - - message_admins("[key_name_admin(usr)] edited the midround antagonist living crew ratio to [ratio]% alive.") - check_antagonists() - - else if(href_list["toggle_noncontinuous_behavior"]) - if(!check_rights(R_ADMIN)) - return - - if(!SSticker.mode.round_ends_with_antag_death) - SSticker.mode.round_ends_with_antag_death = 1 - else - SSticker.mode.round_ends_with_antag_death = 0 - - message_admins("[key_name_admin(usr)] edited the midround antagonist system to [SSticker.mode.round_ends_with_antag_death ? "end the round" : "continue as extended"] upon failure.") - check_antagonists() - - else if(href_list["delay_round_end"]) - if(!check_rights(R_SERVER)) - return - - SSticker.delay_end = !SSticker.delay_end - log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].") - message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].") - href_list["secrets"] = "check_antagonist" - - else if(href_list["end_round"]) - if(!check_rights(R_ADMIN)) - return - - message_admins("[key_name_admin(usr)] is considering ending the round.") - if(alert(usr, "This will end the round, are you SURE you want to do this?", "Confirmation", "Yes", "No") == "Yes") - if(alert(usr, "Final Confirmation: End the round NOW?", "Confirmation", "Yes", "No") == "Yes") - message_admins("[key_name_admin(usr)] has ended the round.") - SSticker.force_ending = 1 //Yeah there we go APC destroyed mission accomplished - return - else - message_admins("[key_name_admin(usr)] decided against ending the round.") - else - message_admins("[key_name_admin(usr)] decided against ending the round.") - - else if(href_list["simplemake"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/M = locate(href_list["mob"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - - var/delmob = 0 - switch(alert("Delete old mob?","Message","Yes","No","Cancel")) - if("Cancel") - return - if("Yes") - delmob = 1 - - log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") - message_admins("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") - - switch(href_list["simplemake"]) - if("observer") - M.change_mob_type( /mob/dead/observer , null, null, delmob ) - if("drone") - M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob ) - if("hunter") - M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob ) - if("queen") - M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/queen , null, null, delmob ) - if("praetorian") - M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/praetorian , null, null, delmob ) - if("sentinel") - M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob ) - if("larva") - M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) - if("human") - M.change_mob_type( /mob/living/carbon/human , null, null, delmob ) - if("slime") - M.change_mob_type( /mob/living/simple_animal/slime , null, null, delmob ) - if("monkey") - M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob ) - if("robot") - M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) - if("cat") - M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob ) - if("runtime") - M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob ) - if("corgi") - M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi , null, null, delmob ) - if("ian") - M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi/Ian , null, null, delmob ) - if("pug") - M.change_mob_type( /mob/living/simple_animal/pet/dog/pug , null, null, delmob ) - if("crab") - M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob ) - if("coffee") - M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob ) - if("parrot") - M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob ) - if("polyparrot") - M.change_mob_type( /mob/living/simple_animal/parrot/Poly , null, null, delmob ) - if("constructarmored") - M.change_mob_type( /mob/living/simple_animal/hostile/construct/armored , null, null, delmob ) - if("constructbuilder") - M.change_mob_type( /mob/living/simple_animal/hostile/construct/builder , null, null, delmob ) - if("constructwraith") - M.change_mob_type( /mob/living/simple_animal/hostile/construct/wraith , null, null, delmob ) - if("shade") - M.change_mob_type( /mob/living/simple_animal/shade , null, null, delmob ) - - - /////////////////////////////////////new ban stuff - else if(href_list["unbanf"]) - if(!check_rights(R_BAN)) - return - - var/banfolder = href_list["unbanf"] - GLOB.Banlist.cd = "/base/[banfolder]" - var/key = GLOB.Banlist["key"] - if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes") - if(RemoveBan(banfolder)) - unbanpanel() - else - alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") - unbanpanel() - - else if(href_list["unbane"]) - if(!check_rights(R_BAN)) - return - - UpdateTime() - var/reason - - var/banfolder = href_list["unbane"] - GLOB.Banlist.cd = "/base/[banfolder]" - var/reason2 = GLOB.Banlist["reason"] - var/temp = GLOB.Banlist["temp"] - - var/minutes = GLOB.Banlist["minutes"] - - var/banned_key = GLOB.Banlist["key"] - GLOB.Banlist.cd = "/base" - - var/duration - - switch(alert("Temporary Ban?",,"Yes","No")) - if("Yes") - temp = 1 - var/mins = 0 - if(minutes > GLOB.CMinutes) - mins = minutes - GLOB.CMinutes - mins = input(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440) as num|null +/datum/admins/Topic(href, href_list) + ..() + + if(usr.client != src.owner || !check_rights(0)) + message_admins("[usr.key] has attempted to override the admin panel!") + log_admin("[key_name(usr)] tried to use the admin panel without authorization.") + return + if(href_list["ahelp"]) + if(!check_rights(R_ADMIN)) + return + + var/ahelp_ref = href_list["ahelp"] + var/datum/admin_help/AH = locate(ahelp_ref) + if(AH) + AH.Action(href_list["ahelp_action"]) + else + to_chat(usr, "Ticket [ahelp_ref] has been deleted!") + + else if(href_list["ahelp_tickets"]) + GLOB.ahelp_tickets.BrowseTickets(text2num(href_list["ahelp_tickets"])) + + else if(href_list["stickyban"]) + stickyban(href_list["stickyban"],href_list) + + else if(href_list["makeAntag"]) + if (!SSticker.mode) + to_chat(usr, "Not until the round starts!") + return + switch(href_list["makeAntag"]) + if("traitors") + if(src.makeTraitors()) + message_admins("[key_name_admin(usr)] created traitors.") + log_admin("[key_name(usr)] created traitors.") + else + message_admins("[key_name_admin(usr)] tried to create traitors. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create traitors.") + if("changelings") + if(src.makeChanglings()) + message_admins("[key_name(usr)] created changelings.") + log_admin("[key_name(usr)] created changelings.") + else + message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create changelings.") + if("revs") + if(src.makeRevs()) + message_admins("[key_name(usr)] started a revolution.") + log_admin("[key_name(usr)] started a revolution.") + else + message_admins("[key_name_admin(usr)] tried to start a revolution. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a revolution.") + if("cult") + if(src.makeCult()) + message_admins("[key_name(usr)] started a cult.") + log_admin("[key_name(usr)] started a cult.") + else + message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a cult.") + if("wizard") + message_admins("[key_name(usr)] is creating a wizard...") + if(src.makeWizard()) + message_admins("[key_name(usr)] created a wizard.") + log_admin("[key_name(usr)] created a wizard.") + else + message_admins("[key_name_admin(usr)] tried to create a wizard. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create a wizard.") + if("nukeops") + message_admins("[key_name(usr)] is creating a nuke team...") + if(src.makeNukeTeam()) + message_admins("[key_name(usr)] created a nuke team.") + log_admin("[key_name(usr)] created a nuke team.") + else + message_admins("[key_name_admin(usr)] tried to create a nuke team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a nuke team.") + if("ninja") + message_admins("[key_name(usr)] spawned a ninja.") + log_admin("[key_name(usr)] spawned a ninja.") + src.makeSpaceNinja() + if("aliens") + message_admins("[key_name(usr)] started an alien infestation.") + log_admin("[key_name(usr)] started an alien infestation.") + src.makeAliens() + if("deathsquad") + message_admins("[key_name(usr)] is creating a death squad...") + if(src.makeDeathsquad()) + message_admins("[key_name(usr)] created a death squad.") + log_admin("[key_name(usr)] created a death squad.") + else + message_admins("[key_name_admin(usr)] tried to create a death squad. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a death squad.") + if("blob") + var/strength = input("Set Blob Resource Gain Rate","Set Resource Rate",1) as num|null + if(!strength) + return + message_admins("[key_name(usr)] spawned a blob with base resource gain [strength].") + log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].") + new/datum/round_event/ghost_role/blob(TRUE, strength) + if("gangs") + if(src.makeGangsters()) + message_admins("[key_name(usr)] created gangs.") + log_admin("[key_name(usr)] created gangs.") + else + message_admins("[key_name(usr)] tried to create gangs. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed create gangs.") + if("centcom") + message_admins("[key_name(usr)] is creating a Centcom response team...") + if(src.makeEmergencyresponseteam()) + message_admins("[key_name(usr)] created a Centcom response team.") + log_admin("[key_name(usr)] created a Centcom response team.") + else + message_admins("[key_name_admin(usr)] tried to create a Centcom response team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a Centcom response team.") + if("abductors") + message_admins("[key_name(usr)] is creating an abductor team...") + if(src.makeAbductorTeam()) + message_admins("[key_name(usr)] created an abductor team.") + log_admin("[key_name(usr)] created an abductor team.") + else + message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunatly there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create an abductor team.") + if("clockcult") + if(src.makeClockCult()) + message_admins("[key_name(usr)] started a clockwork cult.") + log_admin("[key_name(usr)] started a clockwork cult.") + else + message_admins("[key_name_admin(usr)] tried to start a clockwork cult. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a clockwork cult.") + if("revenant") + if(src.makeRevenant()) + message_admins("[key_name(usr)] created a revenant.") + log_admin("[key_name(usr)] created a revenant.") + else + message_admins("[key_name_admin(usr)] tried to create a revenant. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create a revenant.") + + else if(href_list["forceevent"]) + if(!check_rights(R_FUN)) + return + var/datum/round_event_control/E = locate(href_list["forceevent"]) in SSevents.control + if(E) + var/datum/round_event/event = E.runEvent() + if(event.announceWhen>0) + event.processing = 0 + var/prompt = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No", "Cancel") + switch(prompt) + if("Cancel") + event.kill() + return + if("No") + event.announceWhen = -1 + event.processing = 1 + message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])") + log_admin("[key_name(usr)] has triggered an event. ([E.name])") + return + + else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) + var/adminckey = href_list["dbsearchadmin"] + var/playerckey = href_list["dbsearchckey"] + var/page = href_list["dbsearchpage"] + + DB_ban_panel(playerckey, adminckey, page) + return + + else if(href_list["dbbanedit"]) + var/banedit = href_list["dbbanedit"] + var/banid = text2num(href_list["dbbanid"]) + if(!banedit || !banid) + return + + DB_ban_edit(banid, banedit) + return + + else if(href_list["dbbanaddtype"]) + + var/bantype = text2num(href_list["dbbanaddtype"]) + var/banckey = href_list["dbbanaddckey"] + var/banip = href_list["dbbanaddip"] + var/bancid = href_list["dbbanaddcid"] + var/banduration = text2num(href_list["dbbaddduration"]) + var/banjob = href_list["dbbanaddjob"] + var/banreason = href_list["dbbanreason"] + + banckey = ckey(banckey) + + switch(bantype) + if(BANTYPE_PERMA) + if(!banckey || !banreason) + to_chat(usr, "Not enough parameters (Requires ckey and reason).") + return + banduration = null + banjob = null + if(BANTYPE_TEMP) + if(!banckey || !banreason || !banduration) + to_chat(usr, "Not enough parameters (Requires ckey, reason and duration).") + return + banjob = null + if(BANTYPE_JOB_PERMA) + if(!banckey || !banreason || !banjob) + to_chat(usr, "Not enough parameters (Requires ckey, reason and job).") + return + banduration = null + if(BANTYPE_JOB_TEMP) + if(!banckey || !banreason || !banjob || !banduration) + to_chat(usr, "Not enough parameters (Requires ckey, reason and job).") + return + if(BANTYPE_ADMIN_PERMA) + if(!banckey || !banreason) + to_chat(usr, "Not enough parameters (Requires ckey and reason).") + return + banduration = null + banjob = null + if(BANTYPE_ADMIN_TEMP) + if(!banckey || !banreason || !banduration) + to_chat(usr, "Not enough parameters (Requires ckey, reason and duration).") + return + banjob = null + + var/mob/playermob + + for(var/mob/M in GLOB.player_list) + if(M.ckey == banckey) + playermob = M + break + + + banreason = "(MANUAL BAN) "+banreason + + if(!playermob) + if(banip) + banreason = "[banreason] (CUSTOM IP)" + if(bancid) + banreason = "[banreason] (CUSTOM CID)" + else + message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob.") + + if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, banckey, banip, bancid )) + to_chat(usr, "Failed to apply ban.") + return + create_message("note", banckey, null, banreason, null, null, 0, 0) + + else if(href_list["editrights"]) + edit_rights_topic(href_list) + + else if(href_list["call_shuttle"]) + if(!check_rights(R_ADMIN)) + return + + + switch(href_list["call_shuttle"]) + if("1") + if(EMERGENCY_AT_LEAST_DOCKED) + return + SSshuttle.emergency.request() + log_admin("[key_name(usr)] called the Emergency Shuttle.") + message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") + + if("2") + if(EMERGENCY_AT_LEAST_DOCKED) + return + switch(SSshuttle.emergency.mode) + if(SHUTTLE_CALL) + SSshuttle.emergency.cancel() + log_admin("[key_name(usr)] sent the Emergency Shuttle back.") + message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back.") + else + SSshuttle.emergency.cancel() + log_admin("[key_name(usr)] called the Emergency Shuttle.") + message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") + + + href_list["secrets"] = "check_antagonist" + + else if(href_list["edit_shuttle_time"]) + if(!check_rights(R_SERVER)) + return + + var/timer = input("Enter new shuttle duration (seconds):","Edit Shuttle Timeleft", SSshuttle.emergency.timeLeft() ) as num|null + if(!timer) + return + SSshuttle.emergency.setTimer(timer*10) + log_admin("[key_name(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") + minor_announce("The emergency shuttle will reach its destination in [round(SSshuttle.emergency.timeLeft(600))] minutes.") + message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") + href_list["secrets"] = "check_antagonist" + else if(href_list["trigger_centcom_recall"]) + if(!check_rights(R_ADMIN)) + return + + usr.client.trigger_centcom_recall() + + else if(href_list["toggle_continuous"]) + if(!check_rights(R_ADMIN)) + return + + if(!config.continuous[SSticker.mode.config_tag]) + config.continuous[SSticker.mode.config_tag] = 1 + else + config.continuous[SSticker.mode.config_tag] = 0 + + message_admins("[key_name_admin(usr)] toggled the round to [config.continuous[SSticker.mode.config_tag] ? "continue if all antagonists die" : "end with the antagonists"].") + check_antagonists() + + else if(href_list["toggle_midround_antag"]) + if(!check_rights(R_ADMIN)) + return + + if(!config.midround_antag[SSticker.mode.config_tag]) + config.midround_antag[SSticker.mode.config_tag] = 1 + else + config.midround_antag[SSticker.mode.config_tag] = 0 + + message_admins("[key_name_admin(usr)] toggled the round to [config.midround_antag[SSticker.mode.config_tag] ? "use" : "skip"] the midround antag system.") + check_antagonists() + + else if(href_list["alter_midround_time_limit"]) + if(!check_rights(R_ADMIN)) + return + + var/timer = input("Enter new maximum time",, config.midround_antag_time_check ) as num|null + if(!timer) + return + config.midround_antag_time_check = timer + message_admins("[key_name_admin(usr)] edited the maximum midround antagonist time to [timer] minutes.") + check_antagonists() + + else if(href_list["alter_midround_life_limit"]) + if(!check_rights(R_ADMIN)) + return + + var/ratio = input("Enter new life ratio",, config.midround_antag_life_check*100) as num + if(ratio) + config.midround_antag_life_check = ratio/100 + + message_admins("[key_name_admin(usr)] edited the midround antagonist living crew ratio to [ratio]% alive.") + check_antagonists() + + else if(href_list["toggle_noncontinuous_behavior"]) + if(!check_rights(R_ADMIN)) + return + + if(!SSticker.mode.round_ends_with_antag_death) + SSticker.mode.round_ends_with_antag_death = 1 + else + SSticker.mode.round_ends_with_antag_death = 0 + + message_admins("[key_name_admin(usr)] edited the midround antagonist system to [SSticker.mode.round_ends_with_antag_death ? "end the round" : "continue as extended"] upon failure.") + check_antagonists() + + else if(href_list["delay_round_end"]) + if(!check_rights(R_SERVER)) + return + + SSticker.delay_end = !SSticker.delay_end + log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].") + message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].") + href_list["secrets"] = "check_antagonist" + + else if(href_list["end_round"]) + if(!check_rights(R_ADMIN)) + return + + message_admins("[key_name_admin(usr)] is considering ending the round.") + if(alert(usr, "This will end the round, are you SURE you want to do this?", "Confirmation", "Yes", "No") == "Yes") + if(alert(usr, "Final Confirmation: End the round NOW?", "Confirmation", "Yes", "No") == "Yes") + message_admins("[key_name_admin(usr)] has ended the round.") + SSticker.force_ending = 1 //Yeah there we go APC destroyed mission accomplished + return + else + message_admins("[key_name_admin(usr)] decided against ending the round.") + else + message_admins("[key_name_admin(usr)] decided against ending the round.") + + else if(href_list["simplemake"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/M = locate(href_list["mob"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + + var/delmob = 0 + switch(alert("Delete old mob?","Message","Yes","No","Cancel")) + if("Cancel") + return + if("Yes") + delmob = 1 + + log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") + message_admins("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") + + switch(href_list["simplemake"]) + if("observer") + M.change_mob_type( /mob/dead/observer , null, null, delmob ) + if("drone") + M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob ) + if("hunter") + M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob ) + if("queen") + M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/queen , null, null, delmob ) + if("praetorian") + M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/praetorian , null, null, delmob ) + if("sentinel") + M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob ) + if("larva") + M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) + if("human") + M.change_mob_type( /mob/living/carbon/human , null, null, delmob ) + if("slime") + M.change_mob_type( /mob/living/simple_animal/slime , null, null, delmob ) + if("monkey") + M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob ) + if("robot") + M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) + if("cat") + M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob ) + if("runtime") + M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob ) + if("corgi") + M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi , null, null, delmob ) + if("ian") + M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi/Ian , null, null, delmob ) + if("pug") + M.change_mob_type( /mob/living/simple_animal/pet/dog/pug , null, null, delmob ) + if("crab") + M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob ) + if("coffee") + M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob ) + if("parrot") + M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob ) + if("polyparrot") + M.change_mob_type( /mob/living/simple_animal/parrot/Poly , null, null, delmob ) + if("constructarmored") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/armored , null, null, delmob ) + if("constructbuilder") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/builder , null, null, delmob ) + if("constructwraith") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/wraith , null, null, delmob ) + if("shade") + M.change_mob_type( /mob/living/simple_animal/shade , null, null, delmob ) + + + /////////////////////////////////////new ban stuff + else if(href_list["unbanf"]) + if(!check_rights(R_BAN)) + return + + var/banfolder = href_list["unbanf"] + GLOB.Banlist.cd = "/base/[banfolder]" + var/key = GLOB.Banlist["key"] + if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes") + if(RemoveBan(banfolder)) + unbanpanel() + else + alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") + unbanpanel() + + else if(href_list["unbane"]) + if(!check_rights(R_BAN)) + return + + UpdateTime() + var/reason + + var/banfolder = href_list["unbane"] + GLOB.Banlist.cd = "/base/[banfolder]" + var/reason2 = GLOB.Banlist["reason"] + var/temp = GLOB.Banlist["temp"] + + var/minutes = GLOB.Banlist["minutes"] + + var/banned_key = GLOB.Banlist["key"] + GLOB.Banlist.cd = "/base" + + var/duration + + switch(alert("Temporary Ban?",,"Yes","No")) + if("Yes") + temp = 1 + var/mins = 0 + if(minutes > GLOB.CMinutes) + mins = minutes - GLOB.CMinutes + mins = input(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") - return - minutes = GLOB.CMinutes + mins - duration = GetExp(minutes) - reason = input(usr,"Please State Reason.","Reason",reason2) as message|null - if(!reason) - return - if("No") - temp = 0 - duration = "Perma" - reason = input(usr,"Please State Reason.","Reason",reason2) as message|null - if(!reason) - return - - log_admin_private("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") - ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") - message_admins("[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") - GLOB.Banlist.cd = "/base/[banfolder]" - GLOB.Banlist["reason"] << reason - GLOB.Banlist["temp"] << temp - GLOB.Banlist["minutes"] << minutes - GLOB.Banlist["bannedby"] << usr.ckey - GLOB.Banlist.cd = "/base" - SSblackbox.inc("ban_edit",1) - unbanpanel() - - /////////////////////////////////////new ban stuff - - else if(href_list["appearanceban"]) - if(!check_rights(R_BAN)) - return - var/mob/M = locate(href_list["appearanceban"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - if(!M.ckey) //sanity - to_chat(usr, "This mob has no ckey") - return - - - if(jobban_isbanned(M, "appearance")) - switch(alert("Remove appearance ban?","Please Confirm","Yes","No")) - if("Yes") - ban_unban_log_save("[key_name(usr)] removed [key_name(M)]'s appearance ban.") - log_admin_private("[key_name(usr)] removed [key_name(M)]'s appearance ban.") - SSblackbox.inc("ban_appearance_unban", 1) - DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, "appearance") - if(M.client) - jobban_buildcache(M.client) - message_admins("[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban.") - to_chat(M, "[usr.client.ckey] has removed your appearance ban.") - - else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel")) - if("Yes") - var/reason = input(usr,"Please State Reason.","Reason") as message|null - if(!reason) - return - if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, "appearance")) - to_chat(usr, "Failed to apply ban.") - return - if(M.client) - jobban_buildcache(M.client) - ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") - log_admin_private("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") - SSblackbox.inc("ban_appearance",1) - create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) - message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") - to_chat(M, "You have been appearance banned by [usr.client.ckey].") - to_chat(M, "The reason is: [reason]") - to_chat(M, "Appearance ban can be lifted only upon request.") - if(config.banappeals) - to_chat(M, "To try to resolve this matter head to [config.banappeals]") - else - to_chat(M, "No ban appeals URL has been set.") - if("No") - return - - else if(href_list["jobban2"]) - var/mob/M = locate(href_list["jobban2"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - - if(!M.ckey) //sanity - to_chat(usr, "This mob has no ckey.") - return - - var/dat = "Job-Ban Panel: [key_name(M)]" - - /***********************************WARNING!************************************ - The jobban stuff looks mangled and disgusting - But it looks beautiful in-game - -Nodrak - ************************************WARNING!***********************************/ - var/counter = 0 -//Regular jobs - //Command (Blue) - dat += "" - dat += "" - for(var/jobPos in GLOB.command_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 6) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Command Positions
    [jobPos][jobPos]
    " - - //Security (Red) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.security_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Security Positions
    [jobPos][jobPos]
    " - - //Engineering (Yellow) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.engineering_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Engineering Positions
    [jobPos][jobPos]
    " - - //Medical (White) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.medical_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Medical Positions
    [jobPos][jobPos]
    " - - //Science (Purple) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.science_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Science Positions
    [jobPos][jobPos]
    " - - //Supply (Brown) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.supply_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get COPYPASTE! - dat += "" - counter = 0 - dat += "
    Supply Positions
    [jobPos][jobPos]
    " - - //Civilian (Grey) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.civilian_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - dat += "
    Civilian Positions
    [jobPos][jobPos]
    " - - //Non-Human (Green) - counter = 0 - dat += "" - dat += "" - for(var/jobPos in GLOB.nonhuman_positions) - if(!jobPos) - continue - if(jobban_isbanned(M, jobPos)) - dat += "" - counter++ - else - dat += "" - counter++ - - if(counter >= 5) //So things dont get squiiiiished! - dat += "" - counter = 0 - - dat += "
    Non-human Positions
    [jobPos][jobPos]
    " - - //Ghost Roles (light light gray) - dat += "" - dat += "" - - //pAI - if(jobban_isbanned(M, "pAI")) - dat += "" - else - dat += "" - - - //Drones - if(jobban_isbanned(M, "drone")) - dat += "" - else - dat += "" - - - //Positronic Brains - if(jobban_isbanned(M, "posibrain")) - dat += "" - else - dat += "" - - - //Deathsquad - if(jobban_isbanned(M, "deathsquad")) - dat += "" - else - dat += "" - - //Lavaland roles - if(jobban_isbanned(M, "lavaland")) - dat += "" - else - dat += "" - - dat += "
    Ghost Roles
    pAIpAIDroneDronePosibrainPosibrainDeathsquadDeathsquadLavalandLavaland
    " - - //Antagonist (Orange) - var/isbanned_dept = jobban_isbanned(M, "Syndicate") - dat += "" - dat += "" - - //Traitor - if(jobban_isbanned(M, "traitor") || isbanned_dept) - dat += "" - else - dat += "" - - //Changeling - if(jobban_isbanned(M, "changeling") || isbanned_dept) - dat += "" - else - dat += "" - - //Nuke Operative - if(jobban_isbanned(M, "operative") || isbanned_dept) - dat += "" - else - dat += "" - - //Revolutionary - if(jobban_isbanned(M, "revolutionary") || isbanned_dept) - dat += "" - else - dat += "" - - //Gangster - if(jobban_isbanned(M, "gangster") || isbanned_dept) - dat += "" - else - dat += "" - - dat += "" //Breaking it up so it fits nicer on the screen every 5 entries - - //Cultist - if(jobban_isbanned(M, "cultist") || isbanned_dept) - dat += "" - else - dat += "" - - //Servant of Ratvar - if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept) - dat += "" - else - dat += "" - - //Wizard - if(jobban_isbanned(M, "wizard") || isbanned_dept) - dat += "" - else - dat += "" - - //Abductor - if(jobban_isbanned(M, "abductor") || isbanned_dept) - dat += "" - else - dat += "" - - //Alien - if(jobban_isbanned(M, "alien candidate") || isbanned_dept) - dat += "" - else - dat += "" - - //Borer - if(jobban_isbanned(M, "borer") || isbanned_dept) - dat += "" - else - dat += "" - - dat += "
    Antagonist Positions
    TraitorTraitorChangelingChangelingNuke OperativeNuke OperativeRevolutionaryRevolutionaryGangsterGangster
    CultistCultistServantServantWizardWizardAbductorAbductorAlienAlienBorerBorer
    " - usr << browse(dat, "window=jobban2;size=800x450") - return - - //JOBBAN'S INNARDS - else if(href_list["jobban3"]) - if(!check_rights(R_BAN)) - return - var/mob/M = locate(href_list["jobban4"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - if(!SSjob) - to_chat(usr, "Jobs subsystem not initialized yet!") - return - //get jobs for department if specified, otherwise just return the one job in a list. - var/list/joblist = list() - switch(href_list["jobban3"]) - if("commanddept") - for(var/jobPos in GLOB.command_positions) - if(!jobPos) - continue - joblist += jobPos - if("securitydept") - for(var/jobPos in GLOB.security_positions) - if(!jobPos) - continue - joblist += jobPos - if("engineeringdept") - for(var/jobPos in GLOB.engineering_positions) - if(!jobPos) - continue - joblist += jobPos - if("medicaldept") - for(var/jobPos in GLOB.medical_positions) - if(!jobPos) - continue - joblist += jobPos - if("sciencedept") - for(var/jobPos in GLOB.science_positions) - if(!jobPos) - continue - joblist += jobPos - if("supplydept") - for(var/jobPos in GLOB.supply_positions) - if(!jobPos) - continue - joblist += jobPos - if("civiliandept") - for(var/jobPos in GLOB.civilian_positions) - if(!jobPos) - continue - joblist += jobPos - if("nonhumandept") - for(var/jobPos in GLOB.nonhuman_positions) - if(!jobPos) - continue - joblist += jobPos - if("ghostroles") - joblist += list("pAI", "posibrain", "drone", "deathsquad", "lavaland") - else - joblist += href_list["jobban3"] - - //Create a list of unbanned jobs within joblist - var/list/notbannedlist = list() - for(var/job in joblist) - if(!jobban_isbanned(M, job)) - notbannedlist += job - - //Banning comes first - if(notbannedlist.len) //at least 1 unbanned job exists in joblist so we have stuff to ban. - switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) - if("Yes") - var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null + return + minutes = GLOB.CMinutes + mins + duration = GetExp(minutes) + reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + if(!reason) + return + if("No") + temp = 0 + duration = "Perma" + reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + if(!reason) + return + + log_admin_private("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + message_admins("[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + GLOB.Banlist.cd = "/base/[banfolder]" + GLOB.Banlist["reason"] << reason + GLOB.Banlist["temp"] << temp + GLOB.Banlist["minutes"] << minutes + GLOB.Banlist["bannedby"] << usr.ckey + GLOB.Banlist.cd = "/base" + SSblackbox.inc("ban_edit",1) + unbanpanel() + + /////////////////////////////////////new ban stuff + + else if(href_list["appearanceban"]) + if(!check_rights(R_BAN)) + return + var/mob/M = locate(href_list["appearanceban"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob") + return + if(!M.ckey) //sanity + to_chat(usr, "This mob has no ckey") + return + + + if(jobban_isbanned(M, "appearance")) + switch(alert("Remove appearance ban?","Please Confirm","Yes","No")) + if("Yes") + ban_unban_log_save("[key_name(usr)] removed [key_name(M)]'s appearance ban.") + log_admin_private("[key_name(usr)] removed [key_name(M)]'s appearance ban.") + SSblackbox.inc("ban_appearance_unban", 1) + DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, "appearance") + if(M.client) + jobban_buildcache(M.client) + message_admins("[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban.") + to_chat(M, "[usr.client.ckey] has removed your appearance ban.") + + else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel")) + if("Yes") + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, "appearance")) + to_chat(usr, "Failed to apply ban.") + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") + log_admin_private("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") + SSblackbox.inc("ban_appearance",1) + create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) + message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") + to_chat(M, "You have been appearance banned by [usr.client.ckey].") + to_chat(M, "The reason is: [reason]") + to_chat(M, "Appearance ban can be lifted only upon request.") + if(config.banappeals) + to_chat(M, "To try to resolve this matter head to [config.banappeals]") + else + to_chat(M, "No ban appeals URL has been set.") + if("No") + return + + else if(href_list["jobban2"]) + var/mob/M = locate(href_list["jobban2"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + + if(!M.ckey) //sanity + to_chat(usr, "This mob has no ckey.") + return + + var/dat = "Job-Ban Panel: [key_name(M)]" + + /***********************************WARNING!************************************ + The jobban stuff looks mangled and disgusting + But it looks beautiful in-game + -Nodrak + ************************************WARNING!***********************************/ + var/counter = 0 +//Regular jobs + //Command (Blue) + dat += "" + dat += "" + for(var/jobPos in GLOB.command_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 6) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Command Positions
    [jobPos][jobPos]
    " + + //Security (Red) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.security_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Security Positions
    [jobPos][jobPos]
    " + + //Engineering (Yellow) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.engineering_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Engineering Positions
    [jobPos][jobPos]
    " + + //Medical (White) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.medical_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Medical Positions
    [jobPos][jobPos]
    " + + //Science (Purple) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.science_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Science Positions
    [jobPos][jobPos]
    " + + //Supply (Brown) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.supply_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get COPYPASTE! + dat += "" + counter = 0 + dat += "
    Supply Positions
    [jobPos][jobPos]
    " + + //Civilian (Grey) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.civilian_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Civilian Positions
    [jobPos][jobPos]
    " + + //Non-Human (Green) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in GLOB.nonhuman_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + + dat += "
    Non-human Positions
    [jobPos][jobPos]
    " + + //Ghost Roles (light light gray) + dat += "" + dat += "" + + //pAI + if(jobban_isbanned(M, "pAI")) + dat += "" + else + dat += "" + + + //Drones + if(jobban_isbanned(M, "drone")) + dat += "" + else + dat += "" + + + //Positronic Brains + if(jobban_isbanned(M, "posibrain")) + dat += "" + else + dat += "" + + + //Deathsquad + if(jobban_isbanned(M, "deathsquad")) + dat += "" + else + dat += "" + + //Lavaland roles + if(jobban_isbanned(M, "lavaland")) + dat += "" + else + dat += "" + + dat += "
    Ghost Roles
    pAIpAIDroneDronePosibrainPosibrainDeathsquadDeathsquadLavalandLavaland
    " + + //Antagonist (Orange) + var/isbanned_dept = jobban_isbanned(M, "Syndicate") + dat += "" + dat += "" + + //Traitor + if(jobban_isbanned(M, "traitor") || isbanned_dept) + dat += "" + else + dat += "" + + //Changeling + if(jobban_isbanned(M, "changeling") || isbanned_dept) + dat += "" + else + dat += "" + + //Nuke Operative + if(jobban_isbanned(M, "operative") || isbanned_dept) + dat += "" + else + dat += "" + + //Revolutionary + if(jobban_isbanned(M, "revolutionary") || isbanned_dept) + dat += "" + else + dat += "" + + //Gangster + if(jobban_isbanned(M, "gangster") || isbanned_dept) + dat += "" + else + dat += "" + + dat += "" //Breaking it up so it fits nicer on the screen every 5 entries + + //Cultist + if(jobban_isbanned(M, "cultist") || isbanned_dept) + dat += "" + else + dat += "" + + //Servant of Ratvar + if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept) + dat += "" + else + dat += "" + + //Wizard + if(jobban_isbanned(M, "wizard") || isbanned_dept) + dat += "" + else + dat += "" + + //Abductor + if(jobban_isbanned(M, "abductor") || isbanned_dept) + dat += "" + else + dat += "" + + //Alien + if(jobban_isbanned(M, "alien candidate") || isbanned_dept) + dat += "" + else + dat += "" + + dat += "
    Antagonist Positions
    TraitorTraitorChangelingChangelingNuke OperativeNuke OperativeRevolutionaryRevolutionaryGangsterGangster
    CultistCultistServantServantWizardWizardAbductorAbductorAlienAlien
    " + usr << browse(dat, "window=jobban2;size=800x450") + return + + //JOBBAN'S INNARDS + else if(href_list["jobban3"]) + if(!check_rights(R_BAN)) + return + var/mob/M = locate(href_list["jobban4"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob") + return + if(!SSjob) + to_chat(usr, "Jobs subsystem not initialized yet!") + return + //get jobs for department if specified, otherwise just return the one job in a list. + var/list/joblist = list() + switch(href_list["jobban3"]) + if("commanddept") + for(var/jobPos in GLOB.command_positions) + if(!jobPos) + continue + joblist += jobPos + if("securitydept") + for(var/jobPos in GLOB.security_positions) + if(!jobPos) + continue + joblist += jobPos + if("engineeringdept") + for(var/jobPos in GLOB.engineering_positions) + if(!jobPos) + continue + joblist += jobPos + if("medicaldept") + for(var/jobPos in GLOB.medical_positions) + if(!jobPos) + continue + joblist += jobPos + if("sciencedept") + for(var/jobPos in GLOB.science_positions) + if(!jobPos) + continue + joblist += jobPos + if("supplydept") + for(var/jobPos in GLOB.supply_positions) + if(!jobPos) + continue + joblist += jobPos + if("civiliandept") + for(var/jobPos in GLOB.civilian_positions) + if(!jobPos) + continue + joblist += jobPos + if("nonhumandept") + for(var/jobPos in GLOB.nonhuman_positions) + if(!jobPos) + continue + joblist += jobPos + if("ghostroles") + joblist += list("pAI", "posibrain", "drone", "deathsquad", "lavaland") + else + joblist += href_list["jobban3"] + + //Create a list of unbanned jobs within joblist + var/list/notbannedlist = list() + for(var/job in joblist) + if(!jobban_isbanned(M, job)) + notbannedlist += job + + //Banning comes first + if(notbannedlist.len) //at least 1 unbanned job exists in joblist so we have stuff to ban. + switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + if("Yes") + var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") - return - var/reason = input(usr,"Please State Reason.","Reason") as message|null - if(!reason) - return - - var/msg - for(var/job in notbannedlist) - if(!DB_ban_record(BANTYPE_JOB_TEMP, M, mins, reason, job)) - to_chat(usr, "Failed to apply ban.") - return - if(M.client) - jobban_buildcache(M.client) - ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") - log_admin_private("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") - SSblackbox.inc("ban_job_tmp",1) - SSblackbox.add_details("ban_job_tmp","- [job]") - if(!msg) - msg = job - else - msg += ", [job]" - create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) - message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") - to_chat(M, "The reason is: [reason]") - to_chat(M, "This jobban will be lifted in [mins] minutes.") - href_list["jobban2"] = 1 // lets it fall through and refresh - return 1 - if("No") - var/reason = input(usr,"Please State Reason","Reason") as message|null - if(reason) - var/msg - for(var/job in notbannedlist) - if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, job)) - to_chat(usr, "Failed to apply ban.") - return - if(M.client) - jobban_buildcache(M.client) - ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") - log_admin_private("[key_name(usr)] perma-banned [key_name(M)] from [job]") - SSblackbox.inc("ban_job",1) - SSblackbox.add_details("ban_job","- [job]") - if(!msg) - msg = job - else - msg += ", [job]" - create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) - message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") - to_chat(M, "The reason is: [reason]") - to_chat(M, "Jobban can be lifted only upon request.") - href_list["jobban2"] = 1 // lets it fall through and refresh - return 1 - if("Cancel") - return - - //Unbanning joblist - //all jobs in joblist are banned already OR we didn't give a reason (implying they shouldn't be banned) - if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban. - var/msg - for(var/job in joblist) - var/reason = jobban_isbanned(M, job) - if(!reason) - continue //skip if it isn't jobbanned anyway - switch(alert("Job: '[job]' Reason: '[reason]' Un-jobban?","Please Confirm","Yes","No")) - if("Yes") - ban_unban_log_save("[key_name(usr)] unjobbanned [key_name(M)] from [job]") - log_admin_private("[key_name(usr)] unbanned [key_name(M)] from [job]") - DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, job) - if(M.client) - jobban_buildcache(M.client) - SSblackbox.inc("ban_job_unban",1) - SSblackbox.add_details("ban_job_unban","- [job]") - if(!msg) - msg = job - else - msg += ", [job]" - else - continue - if(msg) - message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg].") - to_chat(M, "You have been un-jobbanned by [usr.client.ckey] from [msg].") - href_list["jobban2"] = 1 // lets it fall through and refresh - return 1 - return 0 //we didn't do anything! - - else if(href_list["boot2"]) - var/mob/M = locate(href_list["boot2"]) - if (ismob(M)) - if(!check_if_greater_rights_than(M.client)) - to_chat(usr, "Error: They have more rights than you do.") - return - to_chat(M, "You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].") - log_admin("[key_name(usr)] kicked [key_name(M)].") - message_admins("[key_name_admin(usr)] kicked [key_name_admin(M)].") - //M.client = null - qdel(M.client) - - else if(href_list["addmessage"]) - var/target_ckey = href_list["addmessage"] - create_message("message", target_ckey, secret = 0) - - else if(href_list["addnote"]) - var/target_ckey = href_list["addnote"] - create_message("note", target_ckey) - - else if(href_list["addwatch"]) - var/target_ckey = href_list["addwatch"] - create_message("watchlist entry", target_ckey, secret = 1) - - else if(href_list["addmemo"]) - create_message("memo", secret = 0, browse = 1) - - else if(href_list["addmessageempty"]) - create_message("message", secret = 0) - - else if(href_list["addnoteempty"]) - create_message("note") - - else if(href_list["addwatchempty"]) - create_message("watchlist entry", secret = 1) - - else if(href_list["deletemessage"]) - var/message_id = href_list["deletemessage"] - delete_message(message_id) - - else if(href_list["deletemessageempty"]) - var/message_id = href_list["deletemessageempty"] - delete_message(message_id, browse = 1) - - else if(href_list["editmessage"]) - var/message_id = href_list["editmessage"] - edit_message(message_id) - - else if(href_list["editmessageempty"]) - var/message_id = href_list["editmessageempty"] - edit_message(message_id, browse = 1) - - else if(href_list["secretmessage"]) - var/message_id = href_list["secretmessage"] - toggle_message_secrecy(message_id) - - else if(href_list["searchmessages"]) - var/target = href_list["searchmessages"] - browse_messages(index = target) - - else if(href_list["nonalpha"]) - var/target = href_list["nonalpha"] - target = text2num(target) - browse_messages(index = target) - - else if(href_list["showmessages"]) - var/target = href_list["showmessages"] - browse_messages(index = target) - - else if(href_list["showmemo"]) - browse_messages("memo") - - else if(href_list["showwatch"]) - browse_messages("watchlist entry") - - else if(href_list["showwatchfilter"]) - browse_messages("watchlist entry", filter = 1) - - else if(href_list["showmessageckey"]) - var/target = href_list["showmessageckey"] - browse_messages(target_ckey = target) - - else if(href_list["showmessageckeylinkless"]) - var/target = href_list["showmessageckeylinkless"] - browse_messages(target_ckey = target, linkless = 1) - - else if(href_list["messageedits"]) - var/message_id = sanitizeSQL("[href_list["messageedits"]]") - var/datum/DBQuery/query_get_message_edits = SSdbcore.NewQuery("SELECT edits FROM [format_table_name("messages")] WHERE id = '[message_id]'") - if(!query_get_message_edits.warn_execute()) - return - if(query_get_message_edits.NextRow()) - var/edit_log = query_get_message_edits.item[1] - usr << browse(edit_log,"window=noteedits") - - else if(href_list["newban"]) - if(!check_rights(R_BAN)) - return - - var/mob/M = locate(href_list["newban"]) - if(!ismob(M)) - return - - if(M.client && M.client.holder) - return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway - - switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) - if("Yes") - var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null + return + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + + var/msg + for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_TEMP, M, mins, reason, job)) + to_chat(usr, "Failed to apply ban.") + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") + log_admin_private("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") + SSblackbox.inc("ban_job_tmp",1) + SSblackbox.add_details("ban_job_tmp","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) + message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") + to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") + to_chat(M, "The reason is: [reason]") + to_chat(M, "This jobban will be lifted in [mins] minutes.") + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + if("No") + var/reason = input(usr,"Please State Reason","Reason") as message|null + if(reason) + var/msg + for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, job)) + to_chat(usr, "Failed to apply ban.") + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") + log_admin_private("[key_name(usr)] perma-banned [key_name(M)] from [job]") + SSblackbox.inc("ban_job",1) + SSblackbox.add_details("ban_job","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) + message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") + to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") + to_chat(M, "The reason is: [reason]") + to_chat(M, "Jobban can be lifted only upon request.") + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + if("Cancel") + return + + //Unbanning joblist + //all jobs in joblist are banned already OR we didn't give a reason (implying they shouldn't be banned) + if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban. + var/msg + for(var/job in joblist) + var/reason = jobban_isbanned(M, job) + if(!reason) + continue //skip if it isn't jobbanned anyway + switch(alert("Job: '[job]' Reason: '[reason]' Un-jobban?","Please Confirm","Yes","No")) + if("Yes") + ban_unban_log_save("[key_name(usr)] unjobbanned [key_name(M)] from [job]") + log_admin_private("[key_name(usr)] unbanned [key_name(M)] from [job]") + DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, job) + if(M.client) + jobban_buildcache(M.client) + SSblackbox.inc("ban_job_unban",1) + SSblackbox.add_details("ban_job_unban","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + else + continue + if(msg) + message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg].") + to_chat(M, "You have been un-jobbanned by [usr.client.ckey] from [msg].") + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + return 0 //we didn't do anything! + + else if(href_list["boot2"]) + var/mob/M = locate(href_list["boot2"]) + if (ismob(M)) + if(!check_if_greater_rights_than(M.client)) + to_chat(usr, "Error: They have more rights than you do.") + return + to_chat(M, "You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].") + log_admin("[key_name(usr)] kicked [key_name(M)].") + message_admins("[key_name_admin(usr)] kicked [key_name_admin(M)].") + //M.client = null + qdel(M.client) + + else if(href_list["addmessage"]) + var/target_ckey = href_list["addmessage"] + create_message("message", target_ckey, secret = 0) + + else if(href_list["addnote"]) + var/target_ckey = href_list["addnote"] + create_message("note", target_ckey) + + else if(href_list["addwatch"]) + var/target_ckey = href_list["addwatch"] + create_message("watchlist entry", target_ckey, secret = 1) + + else if(href_list["addmemo"]) + create_message("memo", secret = 0, browse = 1) + + else if(href_list["addmessageempty"]) + create_message("message", secret = 0) + + else if(href_list["addnoteempty"]) + create_message("note") + + else if(href_list["addwatchempty"]) + create_message("watchlist entry", secret = 1) + + else if(href_list["deletemessage"]) + var/message_id = href_list["deletemessage"] + delete_message(message_id) + + else if(href_list["deletemessageempty"]) + var/message_id = href_list["deletemessageempty"] + delete_message(message_id, browse = 1) + + else if(href_list["editmessage"]) + var/message_id = href_list["editmessage"] + edit_message(message_id) + + else if(href_list["editmessageempty"]) + var/message_id = href_list["editmessageempty"] + edit_message(message_id, browse = 1) + + else if(href_list["secretmessage"]) + var/message_id = href_list["secretmessage"] + toggle_message_secrecy(message_id) + + else if(href_list["searchmessages"]) + var/target = href_list["searchmessages"] + browse_messages(index = target) + + else if(href_list["nonalpha"]) + var/target = href_list["nonalpha"] + target = text2num(target) + browse_messages(index = target) + + else if(href_list["showmessages"]) + var/target = href_list["showmessages"] + browse_messages(index = target) + + else if(href_list["showmemo"]) + browse_messages("memo") + + else if(href_list["showwatch"]) + browse_messages("watchlist entry") + + else if(href_list["showwatchfilter"]) + browse_messages("watchlist entry", filter = 1) + + else if(href_list["showmessageckey"]) + var/target = href_list["showmessageckey"] + browse_messages(target_ckey = target) + + else if(href_list["showmessageckeylinkless"]) + var/target = href_list["showmessageckeylinkless"] + browse_messages(target_ckey = target, linkless = 1) + + else if(href_list["messageedits"]) + var/message_id = sanitizeSQL("[href_list["messageedits"]]") + var/datum/DBQuery/query_get_message_edits = SSdbcore.NewQuery("SELECT edits FROM [format_table_name("messages")] WHERE id = '[message_id]'") + if(!query_get_message_edits.warn_execute()) + return + if(query_get_message_edits.NextRow()) + var/edit_log = query_get_message_edits.item[1] + usr << browse(edit_log,"window=noteedits") + + else if(href_list["newban"]) + if(!check_rights(R_BAN)) + return + + var/mob/M = locate(href_list["newban"]) + if(!ismob(M)) + return + + if(M.client && M.client.holder) + return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway + + switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + if("Yes") + var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") - return - var/reason = input(usr,"Please State Reason.","Reason") as message|null - if(!reason) - return - if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) - to_chat(usr, "Failed to apply ban.") - return - AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) - ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") - to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") - to_chat(M, "This is a temporary ban, it will be removed in [mins] minutes.") - SSblackbox.inc("ban_tmp",1) - SSblackbox.inc("ban_tmp_mins",mins) - if(config.banappeals) - to_chat(M, "To try to resolve this matter head to [config.banappeals]") - else - to_chat(M, "No ban appeals URL has been set.") - log_admin_private("[key_name(usr)] has banned [M.ckey].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") - var/msg = "[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis will be removed in [mins] minutes." - message_admins(msg) - var/datum/admin_help/AH = M.client ? M.client.current_ticket : null - if(AH) - AH.Resolve() - qdel(M.client) - if("No") - var/reason = input(usr,"Please State Reason.","Reason") as message|null - if(!reason) - return - switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) - if("Cancel") - return - if("Yes") - AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP) - if("No") - AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) - to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") - to_chat(M, "This is a permanent ban.") - if(config.banappeals) - to_chat(M, "To try to resolve this matter head to [config.banappeals]") - else - to_chat(M, "No ban appeals URL has been set.") - if(!DB_ban_record(BANTYPE_PERMA, M, -1, reason)) - to_chat(usr, "Failed to apply ban.") - return - ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") - log_admin_private("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") - var/msg = "[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban." - message_admins(msg) - var/datum/admin_help/AH = M.client ? M.client.current_ticket : null - if(AH) - AH.Resolve() - SSblackbox.inc("ban_perma",1) - qdel(M.client) - if("Cancel") - return - - else if(href_list["mute"]) - if(!check_rights(R_ADMIN)) - return - cmd_admin_mute(href_list["mute"], text2num(href_list["mute_type"])) - - else if(href_list["c_mode"]) - if(!check_rights(R_ADMIN)) - return - - if(SSticker.HasRoundStarted()) - return alert(usr, "The game has already started.", null, null, null, null) - var/dat = {"What mode do you wish to play?
    "} - for(var/mode in config.modes) - dat += {"[config.mode_names[mode]]
    "} - dat += {"Secret
    "} - dat += {"Random
    "} - dat += {"Now: [GLOB.master_mode]"} - usr << browse(dat, "window=c_mode") - - else if(href_list["f_secret"]) - if(!check_rights(R_ADMIN)) - return - - if(SSticker.HasRoundStarted()) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "secret") - return alert(usr, "The game mode has to be secret!", null, null, null, null) - var/dat = {"What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.
    "} - for(var/mode in config.modes) - dat += {"[config.mode_names[mode]]
    "} - dat += {"Random (default)
    "} - dat += {"Now: [GLOB.secret_force_mode]"} - usr << browse(dat, "window=f_secret") - - else if(href_list["c_mode2"]) - if(!check_rights(R_ADMIN|R_SERVER)) - return - - if (SSticker.HasRoundStarted()) - return alert(usr, "The game has already started.", null, null, null, null) - GLOB.master_mode = href_list["c_mode2"] - log_admin("[key_name(usr)] set the mode as [GLOB.master_mode].") - message_admins("[key_name_admin(usr)] set the mode as [GLOB.master_mode].") - to_chat(world, "The mode is now: [GLOB.master_mode]") - Game() // updates the main game menu - SSticker.save_mode(GLOB.master_mode) - .(href, list("c_mode"=1)) - - else if(href_list["f_secret2"]) - if(!check_rights(R_ADMIN|R_SERVER)) - return - - if(SSticker.HasRoundStarted()) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "secret") - return alert(usr, "The game mode has to be secret!", null, null, null, null) - GLOB.secret_force_mode = href_list["f_secret2"] - log_admin("[key_name(usr)] set the forced secret mode as [GLOB.secret_force_mode].") - message_admins("[key_name_admin(usr)] set the forced secret mode as [GLOB.secret_force_mode].") - Game() // updates the main game menu - .(href, list("f_secret"=1)) - - else if(href_list["monkeyone"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["monkeyone"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)].") - message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)].") - H.monkeyize() - - else if(href_list["humanone"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/monkey/Mo = locate(href_list["humanone"]) - if(!istype(Mo)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/monkey.") - return - - log_admin("[key_name(usr)] attempting to humanize [key_name(Mo)].") - message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(Mo)].") - Mo.humanize() - - else if(href_list["corgione"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["corgione"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - log_admin("[key_name(usr)] attempting to corgize [key_name(H)].") - message_admins("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)].") - H.corgize() - - - else if(href_list["forcespeech"]) - if(!check_rights(R_FUN)) - return - - var/mob/M = locate(href_list["forcespeech"]) - if(!ismob(M)) - to_chat(usr, "this can only be used on instances of type /mob.") - - var/speech = input("What will [key_name(M)] say?.", "Force speech", "")// Don't need to sanitize, since it does that in say(), we also trust our admins. - if(!speech) - return - M.say(speech) - speech = sanitize(speech) // Nah, we don't trust them - log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]") - message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]") - - else if(href_list["sendtoprison"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["sendtoprison"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") - return - - if(alert(usr, "Send [key_name(M)] to Prison?", "Message", "Yes", "No") != "Yes") - return - - M.loc = pick(GLOB.prisonwarp) - to_chat(M, "You have been sent to Prison!") - - log_admin("[key_name(usr)] has sent [key_name(M)] to Prison!") - message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] Prison!") - - else if(href_list["sendbacktolobby"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["sendbacktolobby"]) - - if(!isobserver(M)) - to_chat(usr, "You can only send ghost players back to the Lobby.") - return - - if(!M.client) - to_chat(usr, "[M] doesn't seem to have an active client.") - return - - if(alert(usr, "Send [key_name(M)] back to Lobby?", "Message", "Yes", "No") != "Yes") - return - - log_admin("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") - message_admins("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") - - var/mob/dead/new_player/NP = new() - NP.ckey = M.ckey - qdel(M) - - else if(href_list["tdome1"]) - if(!check_rights(R_FUN)) - return - - if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") - return - - var/mob/M = locate(href_list["tdome1"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") - return - - for(var/obj/item/I in M) - M.dropItemToGround(I, TRUE) - - M.Paralyse(5) - sleep(5) - M.loc = pick(GLOB.tdome1) - spawn(50) - to_chat(M, "You have been sent to the Thunderdome.") - log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)") - message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)") - - else if(href_list["tdome2"]) - if(!check_rights(R_FUN)) - return - - if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") - return - - var/mob/M = locate(href_list["tdome2"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") - return - - for(var/obj/item/I in M) - M.dropItemToGround(I, TRUE) - - M.Paralyse(5) - sleep(5) - M.loc = pick(GLOB.tdome2) - spawn(50) - to_chat(M, "You have been sent to the Thunderdome.") - log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)") - message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)") - - else if(href_list["tdomeadmin"]) - if(!check_rights(R_FUN)) - return - - if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") - return - - var/mob/M = locate(href_list["tdomeadmin"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") - return - - M.Paralyse(5) - sleep(5) - M.loc = pick(GLOB.tdomeadmin) - spawn(50) - to_chat(M, "You have been sent to the Thunderdome.") - log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)") - message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)") - - else if(href_list["tdomeobserve"]) - if(!check_rights(R_FUN)) - return - - if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") - return - - var/mob/M = locate(href_list["tdomeobserve"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - if(isAI(M)) - to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") - return - - for(var/obj/item/I in M) - M.dropItemToGround(I, TRUE) - - if(ishuman(M)) - var/mob/living/carbon/human/observer = M - observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform) - observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), slot_shoes) - M.Paralyse(5) - sleep(5) - M.loc = pick(GLOB.tdomeobserve) - spawn(50) - to_chat(M, "You have been sent to the Thunderdome.") - log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)") - message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)") - - else if(href_list["revive"]) - if(!check_rights(R_REJUVINATE)) - return - - var/mob/living/L = locate(href_list["revive"]) - if(!istype(L)) - to_chat(usr, "This can only be used on instances of type /mob/living.") - return - - L.revive(full_heal = 1, admin_revive = 1) - message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!") - log_admin("[key_name(usr)] healed / Revived [key_name(L)].") - - else if(href_list["makeai"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makeai"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!") - log_admin("[key_name(usr)] AIized [key_name(H)].") - H.AIize() - - else if(href_list["makealien"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makealien"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - usr.client.cmd_admin_alienize(H) - - else if(href_list["makeslime"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makeslime"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - usr.client.cmd_admin_slimeize(H) - - else if(href_list["makeblob"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makeblob"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - usr.client.cmd_admin_blobize(H) - - - else if(href_list["makerobot"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makerobot"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - usr.client.cmd_admin_robotize(H) - - else if(href_list["makeanimal"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/M = locate(href_list["makeanimal"]) - if(isnewplayer(M)) - to_chat(usr, "This cannot be used on instances of type /mob/dead/new_player.") - return - - usr.client.cmd_admin_animalize(M) - - else if(href_list["adminplayeropts"]) - var/mob/M = locate(href_list["adminplayeropts"]) - show_player_panel(M) - - else if(href_list["adminplayerobservefollow"]) - if(!isobserver(usr) && !check_rights(R_ADMIN)) - return - - var/atom/movable/AM = locate(href_list["adminplayerobservefollow"]) - - var/client/C = usr.client - if(!isobserver(usr)) - C.admin_ghost() - var/mob/dead/observer/A = C.mob - A.ManualFollow(AM) - - else if(href_list["adminplayerobservecoodjump"]) - if(!isobserver(usr) && !check_rights(R_ADMIN)) - return - - var/x = text2num(href_list["X"]) - var/y = text2num(href_list["Y"]) - var/z = text2num(href_list["Z"]) - - var/client/C = usr.client - if(!isobserver(usr)) - C.admin_ghost() - sleep(2) - C.jumptocoord(x,y,z) - - else if(href_list["adminchecklaws"]) - output_ai_laws() - - else if(href_list["admincheckdevilinfo"]) - var/mob/M = locate(href_list["admincheckdevilinfo"]) - output_devil_info(M) - - else if(href_list["adminmoreinfo"]) - var/mob/M = locate(href_list["adminmoreinfo"]) in GLOB.mob_list - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - - var/location_description = "" - var/special_role_description = "" - var/health_description = "" - var/gender_description = "" - var/turf/T = get_turf(M) - - //Location - if(isturf(T)) - if(isarea(T.loc)) - location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z] in area [T.loc])" - else - location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z])" - - //Job + antagonist - if(M.mind) - special_role_description = "Role: [M.mind.assigned_role]; Antagonist: [M.mind.special_role]" - else - special_role_description = "Role: Mind datum missing Antagonist: Mind datum missing" - - //Health - if(isliving(M)) - var/mob/living/L = M - var/status - switch (M.stat) - if (0) - status = "Alive" - if (1) - status = "Unconscious" - if (2) - status = "Dead" - health_description = "Status = [status]" - health_description += "
    Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()] - Stamina: [L.getStaminaLoss()]" - else - health_description = "This mob type has no health to speak of." - - //Gender - switch(M.gender) - if(MALE,FEMALE) - gender_description = "[M.gender]" - else - gender_description = "[M.gender]" - - to_chat(src.owner, "Info about [M.name]: ") - to_chat(src.owner, "Mob type = [M.type]; Gender = [gender_description] Damage = [health_description]") - to_chat(src.owner, "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];") - to_chat(src.owner, "Location = [location_description];") - to_chat(src.owner, "[special_role_description]") - to_chat(src.owner, ADMIN_FULLMONTY_NONAME(M)) - - else if(href_list["addjobslot"]) - if(!check_rights(R_ADMIN)) - return - - var/Add = href_list["addjobslot"] - - for(var/datum/job/job in SSjob.occupations) - if(job.title == Add) - job.total_positions += 1 - break - - src.manage_free_slots() - - else if(href_list["removejobslot"]) - if(!check_rights(R_ADMIN)) - return - - var/Remove = href_list["removejobslot"] - - for(var/datum/job/job in SSjob.occupations) - if(job.title == Remove && job.total_positions - job.current_positions > 0) - job.total_positions -= 1 - break - - src.manage_free_slots() - - else if(href_list["unlimitjobslot"]) - if(!check_rights(R_ADMIN)) - return - - var/Unlimit = href_list["unlimitjobslot"] - - for(var/datum/job/job in SSjob.occupations) - if(job.title == Unlimit) - job.total_positions = -1 - break - - src.manage_free_slots() - - else if(href_list["limitjobslot"]) - if(!check_rights(R_ADMIN)) - return - - var/Limit = href_list["limitjobslot"] - - for(var/datum/job/job in SSjob.occupations) - if(job.title == Limit) - job.total_positions = job.current_positions - break - - src.manage_free_slots() - - - else if(href_list["adminspawncookie"]) - if(!check_rights(R_ADMIN|R_FUN)) - return - - var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"]) - if(!ishuman(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - - var/obj/item/weapon/reagent_containers/food/snacks/cookie/cookie = new(H) - if(H.put_in_hands(cookie)) - H.update_inv_hands() - else - qdel(cookie) - log_admin("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") - message_admins("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") - return - - log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") - message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") - SSblackbox.inc("admin_cookies_spawned",1) - to_chat(H, "Your prayers have been answered!! You received the best cookie!") - H << 'sound/effects/pray_chaplain.ogg' - - else if(href_list["adminsmite"]) - if(!check_rights(R_ADMIN|R_FUN)) - return - - var/mob/living/carbon/human/H = locate(href_list["adminsmite"]) in GLOB.mob_list - if(!H || !istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") - return - - usr.client.smite(H) - - else if(href_list["CentcommReply"]) - var/mob/living/carbon/human/H = locate(href_list["CentcommReply"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") - return - if(!istype(H.ears, /obj/item/device/radio/headset)) - to_chat(usr, "The person you are trying to contact is not wearing a headset.") - return - - message_admins("[src.owner] has started answering [key_name(H)]'s Centcomm request.") - var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcom", "") - if(!input) - message_admins("[src.owner] decided not to answer [key_name(H)]'s Centcomm request.") - return - - to_chat(src.owner, "You sent [input] to [H] via a secure channel.") - log_admin("[src.owner] replied to [key_name(H)]'s Centcom message with the message [input].") - message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"") - to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"") - - else if(href_list["SyndicateReply"]) - var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - if(!istype(H.ears, /obj/item/device/radio/headset)) - to_chat(usr, "The person you are trying to contact is not wearing a headset.") - return - - message_admins("[src.owner] has started answering [key_name(H)]'s syndicate request.") - var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from The Syndicate", "") - if(!input) - message_admins("[src.owner] decided not to answer [key_name(H)]'s syndicate request.") - return - - to_chat(src.owner, "You sent [input] to [H] via a secure channel.") - log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].") - message_admins("[src.owner] replied to [key_name(H)]'s Syndicate message with: \"[input]\"") - to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"") - - else if(href_list["reject_custom_name"]) - if(!check_rights(R_ADMIN)) - return + return + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) + to_chat(usr, "Failed to apply ban.") + return + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) + ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") + to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") + to_chat(M, "This is a temporary ban, it will be removed in [mins] minutes.") + SSblackbox.inc("ban_tmp",1) + SSblackbox.inc("ban_tmp_mins",mins) + if(config.banappeals) + to_chat(M, "To try to resolve this matter head to [config.banappeals]") + else + to_chat(M, "No ban appeals URL has been set.") + log_admin_private("[key_name(usr)] has banned [M.ckey].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") + var/msg = "[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis will be removed in [mins] minutes." + message_admins(msg) + var/datum/admin_help/AH = M.client ? M.client.current_ticket : null + if(AH) + AH.Resolve() + qdel(M.client) + if("No") + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) + if("Cancel") + return + if("Yes") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP) + if("No") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) + to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") + to_chat(M, "This is a permanent ban.") + if(config.banappeals) + to_chat(M, "To try to resolve this matter head to [config.banappeals]") + else + to_chat(M, "No ban appeals URL has been set.") + if(!DB_ban_record(BANTYPE_PERMA, M, -1, reason)) + to_chat(usr, "Failed to apply ban.") + return + ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") + log_admin_private("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") + var/msg = "[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban." + message_admins(msg) + var/datum/admin_help/AH = M.client ? M.client.current_ticket : null + if(AH) + AH.Resolve() + SSblackbox.inc("ban_perma",1) + qdel(M.client) + if("Cancel") + return + + else if(href_list["mute"]) + if(!check_rights(R_ADMIN)) + return + cmd_admin_mute(href_list["mute"], text2num(href_list["mute_type"])) + + else if(href_list["c_mode"]) + if(!check_rights(R_ADMIN)) + return + + if(SSticker.HasRoundStarted()) + return alert(usr, "The game has already started.", null, null, null, null) + var/dat = {"What mode do you wish to play?
    "} + for(var/mode in config.modes) + dat += {"[config.mode_names[mode]]
    "} + dat += {"Secret
    "} + dat += {"Random
    "} + dat += {"Now: [GLOB.master_mode]"} + usr << browse(dat, "window=c_mode") + + else if(href_list["f_secret"]) + if(!check_rights(R_ADMIN)) + return + + if(SSticker.HasRoundStarted()) + return alert(usr, "The game has already started.", null, null, null, null) + if(GLOB.master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + var/dat = {"What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.
    "} + for(var/mode in config.modes) + dat += {"[config.mode_names[mode]]
    "} + dat += {"Random (default)
    "} + dat += {"Now: [GLOB.secret_force_mode]"} + usr << browse(dat, "window=f_secret") + + else if(href_list["c_mode2"]) + if(!check_rights(R_ADMIN|R_SERVER)) + return + + if (SSticker.HasRoundStarted()) + return alert(usr, "The game has already started.", null, null, null, null) + GLOB.master_mode = href_list["c_mode2"] + log_admin("[key_name(usr)] set the mode as [GLOB.master_mode].") + message_admins("[key_name_admin(usr)] set the mode as [GLOB.master_mode].") + to_chat(world, "The mode is now: [GLOB.master_mode]") + Game() // updates the main game menu + SSticker.save_mode(GLOB.master_mode) + .(href, list("c_mode"=1)) + + else if(href_list["f_secret2"]) + if(!check_rights(R_ADMIN|R_SERVER)) + return + + if(SSticker.HasRoundStarted()) + return alert(usr, "The game has already started.", null, null, null, null) + if(GLOB.master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + GLOB.secret_force_mode = href_list["f_secret2"] + log_admin("[key_name(usr)] set the forced secret mode as [GLOB.secret_force_mode].") + message_admins("[key_name_admin(usr)] set the forced secret mode as [GLOB.secret_force_mode].") + Game() // updates the main game menu + .(href, list("f_secret"=1)) + + else if(href_list["monkeyone"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["monkeyone"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)].") + message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)].") + H.monkeyize() + + else if(href_list["humanone"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/monkey/Mo = locate(href_list["humanone"]) + if(!istype(Mo)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/monkey.") + return + + log_admin("[key_name(usr)] attempting to humanize [key_name(Mo)].") + message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(Mo)].") + Mo.humanize() + + else if(href_list["corgione"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["corgione"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + log_admin("[key_name(usr)] attempting to corgize [key_name(H)].") + message_admins("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)].") + H.corgize() + + + else if(href_list["forcespeech"]) + if(!check_rights(R_FUN)) + return + + var/mob/M = locate(href_list["forcespeech"]) + if(!ismob(M)) + to_chat(usr, "this can only be used on instances of type /mob.") + + var/speech = input("What will [key_name(M)] say?.", "Force speech", "")// Don't need to sanitize, since it does that in say(), we also trust our admins. + if(!speech) + return + M.say(speech) + speech = sanitize(speech) // Nah, we don't trust them + log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]") + message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]") + + else if(href_list["sendtoprison"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendtoprison"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + if(isAI(M)) + to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") + return + + if(alert(usr, "Send [key_name(M)] to Prison?", "Message", "Yes", "No") != "Yes") + return + + M.loc = pick(GLOB.prisonwarp) + to_chat(M, "You have been sent to Prison!") + + log_admin("[key_name(usr)] has sent [key_name(M)] to Prison!") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] Prison!") + + else if(href_list["sendbacktolobby"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendbacktolobby"]) + + if(!isobserver(M)) + to_chat(usr, "You can only send ghost players back to the Lobby.") + return + + if(!M.client) + to_chat(usr, "[M] doesn't seem to have an active client.") + return + + if(alert(usr, "Send [key_name(M)] back to Lobby?", "Message", "Yes", "No") != "Yes") + return + + log_admin("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") + message_admins("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") + + var/mob/dead/new_player/NP = new() + NP.ckey = M.ckey + qdel(M) + + else if(href_list["tdome1"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdome1"]) + if(!isliving(M)) + to_chat(usr, "This can only be used on instances of type /mob/living.") + return + if(isAI(M)) + to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") + return + var/mob/living/L = M + + for(var/obj/item/I in L) + L.dropItemToGround(I, TRUE) + + L.Unconscious(100) + sleep(5) + L.forceMove(pick(GLOB.tdome1)) + spawn(50) + to_chat(L, "You have been sent to the Thunderdome.") + log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 1)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 1)") + + else if(href_list["tdome2"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdome2"]) + if(!isliving(M)) + to_chat(usr, "This can only be used on instances of type /mob/living.") + return + if(isAI(M)) + to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") + return + var/mob/living/L = M + + for(var/obj/item/I in L) + L.dropItemToGround(I, TRUE) + + L.Unconscious(100) + sleep(5) + L.forceMove(pick(GLOB.tdome2)) + spawn(50) + to_chat(L, "You have been sent to the Thunderdome.") + log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 2)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 2)") + + else if(href_list["tdomeadmin"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdomeadmin"]) + if(!isliving(M)) + to_chat(usr, "This can only be used on instances of type /mob/living.") + return + if(isAI(M)) + to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") + return + var/mob/living/L = M + + L.Unconscious(100) + sleep(5) + L.forceMove(pick(GLOB.tdomeadmin)) + spawn(50) + to_chat(L, "You have been sent to the Thunderdome.") + log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Admin.)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Admin.)") + + else if(href_list["tdomeobserve"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdomeobserve"]) + if(!isliving(M)) + to_chat(usr, "This can only be used on instances of type /mob/living.") + return + if(isAI(M)) + to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai.") + return + var/mob/living/L = M + + for(var/obj/item/I in L) + L.dropItemToGround(I, TRUE) + + if(ishuman(L)) + var/mob/living/carbon/human/observer = L + observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform) + observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), slot_shoes) + L.Unconscious(100) + sleep(5) + L.forceMove(pick(GLOB.tdomeobserve)) + spawn(50) + to_chat(L, "You have been sent to the Thunderdome.") + log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Observer.)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Observer.)") + + else if(href_list["revive"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/living/L = locate(href_list["revive"]) + if(!istype(L)) + to_chat(usr, "This can only be used on instances of type /mob/living.") + return + + L.revive(full_heal = 1, admin_revive = 1) + message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!") + log_admin("[key_name(usr)] healed / Revived [key_name(L)].") + + else if(href_list["makeai"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeai"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!") + log_admin("[key_name(usr)] AIized [key_name(H)].") + H.AIize() + + else if(href_list["makealien"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makealien"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + usr.client.cmd_admin_alienize(H) + + else if(href_list["makeslime"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeslime"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + usr.client.cmd_admin_slimeize(H) + + else if(href_list["makeblob"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeblob"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + usr.client.cmd_admin_blobize(H) + + + else if(href_list["makerobot"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makerobot"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + usr.client.cmd_admin_robotize(H) + + else if(href_list["makeanimal"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/M = locate(href_list["makeanimal"]) + if(isnewplayer(M)) + to_chat(usr, "This cannot be used on instances of type /mob/dead/new_player.") + return + + usr.client.cmd_admin_animalize(M) + + else if(href_list["adminplayeropts"]) + var/mob/M = locate(href_list["adminplayeropts"]) + show_player_panel(M) + + else if(href_list["adminplayerobservefollow"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/atom/movable/AM = locate(href_list["adminplayerobservefollow"]) + + var/client/C = usr.client + if(!isobserver(usr)) + C.admin_ghost() + var/mob/dead/observer/A = C.mob + A.ManualFollow(AM) + + else if(href_list["adminplayerobservecoodjump"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/x = text2num(href_list["X"]) + var/y = text2num(href_list["Y"]) + var/z = text2num(href_list["Z"]) + + var/client/C = usr.client + if(!isobserver(usr)) + C.admin_ghost() + sleep(2) + C.jumptocoord(x,y,z) + + else if(href_list["adminchecklaws"]) + output_ai_laws() + + else if(href_list["admincheckdevilinfo"]) + var/mob/M = locate(href_list["admincheckdevilinfo"]) + output_devil_info(M) + + else if(href_list["adminmoreinfo"]) + var/mob/M = locate(href_list["adminmoreinfo"]) in GLOB.mob_list + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + + var/location_description = "" + var/special_role_description = "" + var/health_description = "" + var/gender_description = "" + var/turf/T = get_turf(M) + + //Location + if(isturf(T)) + if(isarea(T.loc)) + location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z] in area [T.loc])" + else + location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z])" + + //Job + antagonist + if(M.mind) + special_role_description = "Role: [M.mind.assigned_role]; Antagonist: [M.mind.special_role]" + else + special_role_description = "Role: Mind datum missing Antagonist: Mind datum missing" + + //Health + if(isliving(M)) + var/mob/living/L = M + var/status + switch (M.stat) + if (0) + status = "Alive" + if (1) + status = "Unconscious" + if (2) + status = "Dead" + health_description = "Status = [status]" + health_description += "
    Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()] - Stamina: [L.getStaminaLoss()]" + else + health_description = "This mob type has no health to speak of." + + //Gender + switch(M.gender) + if(MALE,FEMALE) + gender_description = "[M.gender]" + else + gender_description = "[M.gender]" + + to_chat(src.owner, "Info about [M.name]: ") + to_chat(src.owner, "Mob type = [M.type]; Gender = [gender_description] Damage = [health_description]") + to_chat(src.owner, "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];") + to_chat(src.owner, "Location = [location_description];") + to_chat(src.owner, "[special_role_description]") + to_chat(src.owner, ADMIN_FULLMONTY_NONAME(M)) + + else if(href_list["addjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Add = href_list["addjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Add) + job.total_positions += 1 + break + + src.manage_free_slots() + + else if(href_list["removejobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Remove = href_list["removejobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Remove && job.total_positions - job.current_positions > 0) + job.total_positions -= 1 + break + + src.manage_free_slots() + + else if(href_list["unlimitjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Unlimit = href_list["unlimitjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Unlimit) + job.total_positions = -1 + break + + src.manage_free_slots() + + else if(href_list["limitjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Limit = href_list["limitjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Limit) + job.total_positions = job.current_positions + break + + src.manage_free_slots() + + + else if(href_list["adminspawncookie"]) + if(!check_rights(R_ADMIN|R_FUN)) + return + + var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"]) + if(!ishuman(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + + var/obj/item/weapon/reagent_containers/food/snacks/cookie/cookie = new(H) + if(H.put_in_hands(cookie)) + H.update_inv_hands() + else + qdel(cookie) + log_admin("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") + message_admins("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") + return + + log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") + message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") + SSblackbox.inc("admin_cookies_spawned",1) + to_chat(H, "Your prayers have been answered!! You received the best cookie!") + H << 'sound/effects/pray_chaplain.ogg' + + else if(href_list["adminsmite"]) + if(!check_rights(R_ADMIN|R_FUN)) + return + + var/mob/living/carbon/human/H = locate(href_list["adminsmite"]) in GLOB.mob_list + if(!H || !istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") + return + + usr.client.smite(H) + + else if(href_list["CentcommReply"]) + var/mob/living/carbon/human/H = locate(href_list["CentcommReply"]) in GLOB.mob_list + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") + return + if(!istype(H.ears, /obj/item/device/radio/headset)) + to_chat(usr, "The person you are trying to contact is not wearing a headset.") + return + + message_admins("[src.owner] has started answering [key_name(H)]'s Centcomm request.") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcom", "") + if(!input) + message_admins("[src.owner] decided not to answer [key_name(H)]'s Centcomm request.") + return + + to_chat(src.owner, "You sent [input] to [H] via a secure channel.") + log_admin("[src.owner] replied to [key_name(H)]'s Centcom message with the message [input].") + message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"") + to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"") + + else if(href_list["SyndicateReply"]) + var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") + return + if(!istype(H.ears, /obj/item/device/radio/headset)) + to_chat(usr, "The person you are trying to contact is not wearing a headset.") + return + + message_admins("[src.owner] has started answering [key_name(H)]'s syndicate request.") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from The Syndicate", "") + if(!input) + message_admins("[src.owner] decided not to answer [key_name(H)]'s syndicate request.") + return + + to_chat(src.owner, "You sent [input] to [H] via a secure channel.") + log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].") + message_admins("[src.owner] replied to [key_name(H)]'s Syndicate message with: \"[input]\"") + to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"") + + else if(href_list["reject_custom_name"]) + if(!check_rights(R_ADMIN)) + return var/obj/item/weapon/station_charter/charter = locate(href_list["reject_custom_name"]) - if(istype(charter)) - charter.reject_proposed(usr) - else if(href_list["jumpto"]) - if(!isobserver(usr) && !check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["jumpto"]) - usr.client.jumptomob(M) - - else if(href_list["getmob"]) - if(!check_rights(R_ADMIN)) - return - - if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") - return - var/mob/M = locate(href_list["getmob"]) - usr.client.Getmob(M) - - else if(href_list["sendmob"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["sendmob"]) - usr.client.sendmob(M) - - else if(href_list["narrateto"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["narrateto"]) - usr.client.cmd_admin_direct_narrate(M) - - else if(href_list["subtlemessage"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["subtlemessage"]) - usr.client.cmd_admin_subtle_message(M) - - else if(href_list["individuallog"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["individuallog"]) in GLOB.mob_list - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - - show_individual_logging_panel(M, href_list["log_type"]) - else if(href_list["languagemenu"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["languagemenu"]) in GLOB.mob_list - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - var/datum/language_holder/H = M.get_language_holder() - H.open_language_menu(usr) - - else if(href_list["traitor"]) - if(!check_rights(R_ADMIN)) - return - - if(!SSticker.HasRoundStarted()) - alert("The game hasn't started yet!") - return - - var/mob/M = locate(href_list["traitor"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob.") - return - show_traitor_panel(M) - - else if(href_list["create_object"]) - if(!check_rights(R_SPAWN)) - return - return create_object(usr) - - else if(href_list["quick_create_object"]) - if(!check_rights(R_SPAWN)) - return - return quick_create_object(usr) - - else if(href_list["create_turf"]) - if(!check_rights(R_SPAWN)) - return - return create_turf(usr) - - else if(href_list["create_mob"]) - if(!check_rights(R_SPAWN)) - return - return create_mob(usr) - - else if(href_list["dupe_marked_datum"]) - if(!check_rights(R_SPAWN)) - return - return DuplicateObject(marked_datum, perfectcopy=1, newloc=get_turf(usr)) - - else if(href_list["object_list"]) //this is the laggiest thing ever - if(!check_rights(R_SPAWN)) - return - - var/atom/loc = usr.loc - - var/dirty_paths - if (istext(href_list["object_list"])) - dirty_paths = list(href_list["object_list"]) - else if (istype(href_list["object_list"], /list)) - dirty_paths = href_list["object_list"] - - var/paths = list() - - for(var/dirty_path in dirty_paths) - var/path = text2path(dirty_path) - if(!path) - continue - else if(!ispath(path, /obj) && !ispath(path, /turf) && !ispath(path, /mob)) - continue - paths += path - - if(!paths) - alert("The path list you sent is empty.") - return - if(length(paths) > 5) - alert("Select fewer object types, (max 5).") - return - - var/list/offset = splittext(href_list["offset"],",") - var/number = Clamp(text2num(href_list["object_count"]), 1, 100) - var/X = offset.len > 0 ? text2num(offset[1]) : 0 - var/Y = offset.len > 1 ? text2num(offset[2]) : 0 - var/Z = offset.len > 2 ? text2num(offset[3]) : 0 - var/tmp_dir = href_list["object_dir"] - var/obj_dir = tmp_dir ? text2num(tmp_dir) : 2 - if(!obj_dir || !(obj_dir in list(1,2,4,8,5,6,9,10))) - obj_dir = 2 - var/obj_name = sanitize(href_list["object_name"]) - - - var/atom/target //Where the object will be spawned - var/where = href_list["object_where"] - if (!( where in list("onfloor","inhand","inmarked") )) - where = "onfloor" - - - switch(where) - if("inhand") - if (!iscarbon(usr) && !iscyborg(usr)) - to_chat(usr, "Can only spawn in hand when you're a carbon mob or cyborg.") - where = "onfloor" - target = usr - - if("onfloor") - switch(href_list["offset_type"]) - if ("absolute") - target = locate(0 + X,0 + Y,0 + Z) - if ("relative") - target = locate(loc.x + X,loc.y + Y,loc.z + Z) - if("inmarked") - if(!marked_datum) - to_chat(usr, "You don't have any object marked. Abandoning spawn.") - return - else if(!istype(marked_datum,/atom)) - to_chat(usr, "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn.") - return - else - target = marked_datum - - if(target) - for (var/path in paths) - for (var/i = 0; i < number; i++) - if(path in typesof(/turf)) - var/turf/O = target - var/turf/N = O.ChangeTurf(path) - if(N && obj_name) - N.name = obj_name - else - var/atom/O = new path(target) - if(O) - O.admin_spawned = TRUE - O.setDir(obj_dir) - if(obj_name) - O.name = obj_name - if(istype(O,/mob)) - var/mob/M = O - M.real_name = obj_name - if(where == "inhand" && isliving(usr) && istype(O, /obj/item)) - var/mob/living/L = usr - var/obj/item/I = O - L.put_in_hands(I) - if(iscyborg(L)) - var/mob/living/silicon/robot/R = L - if(R.module) - R.module.add_module(I, TRUE, TRUE) - R.activate_module(I) - - - if (number == 1) - log_admin("[key_name(usr)] created a [english_list(paths)]") - for(var/path in paths) - if(ispath(path, /mob)) - message_admins("[key_name_admin(usr)] created a [english_list(paths)]") - break - else - log_admin("[key_name(usr)] created [number]ea [english_list(paths)]") - for(var/path in paths) - if(ispath(path, /mob)) - message_admins("[key_name_admin(usr)] created [number]ea [english_list(paths)]") - break - return - - else if(href_list["secrets"]) - Secrets_topic(href_list["secrets"],href_list) - - else if(href_list["ac_view_wanted"]) //Admin newscaster Topic() stuff be here - src.admincaster_screen = 18 //The ac_ prefix before the hrefs stands for AdminCaster. - src.access_news_network() - - else if(href_list["ac_set_channel_name"]) - src.admincaster_feed_channel.channel_name = stripped_input(usr, "Provide a Feed Channel Name.", "Network Channel Handler", "") - while (findtext(src.admincaster_feed_channel.channel_name," ") == 1) - src.admincaster_feed_channel.channel_name = copytext(src.admincaster_feed_channel.channel_name,2,lentext(src.admincaster_feed_channel.channel_name)+1) - src.access_news_network() - - else if(href_list["ac_set_channel_lock"]) - src.admincaster_feed_channel.locked = !src.admincaster_feed_channel.locked - src.access_news_network() - - else if(href_list["ac_submit_new_channel"]) - var/check = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == src.admincaster_feed_channel.channel_name) - check = 1 - break - if(src.admincaster_feed_channel.channel_name == "" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]" || check ) - src.admincaster_screen=7 - else - var/choice = alert("Please confirm Feed channel creation.","Network Channel Handler","Confirm","Cancel") - if(choice=="Confirm") - GLOB.news_network.CreateFeedChannel(src.admincaster_feed_channel.channel_name, src.admin_signature, src.admincaster_feed_channel.locked, 1) - SSblackbox.inc("newscaster_channels",1) - log_admin("[key_name(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") - src.admincaster_screen=5 - src.access_news_network() - - else if(href_list["ac_set_channel_receiving"]) - var/list/available_channels = list() - for(var/datum/newscaster/feed_channel/F in GLOB.news_network.network_channels) - available_channels += F.channel_name - src.admincaster_feed_channel.channel_name = adminscrub(input(usr, "Choose receiving Feed Channel.", "Network Channel Handler") in available_channels ) - src.access_news_network() - - else if(href_list["ac_set_new_message"]) - src.admincaster_feed_message.body = adminscrub(input(usr, "Write your Feed story.", "Network Channel Handler", "")) - while (findtext(src.admincaster_feed_message.returnBody(-1)," ") == 1) - src.admincaster_feed_message.body = copytext(src.admincaster_feed_message.returnBody(-1),2,lentext(src.admincaster_feed_message.returnBody(-1))+1) - src.access_news_network() - - else if(href_list["ac_submit_new_message"]) - if(src.admincaster_feed_message.returnBody(-1) =="" || src.admincaster_feed_message.returnBody(-1) =="\[REDACTED\]" || src.admincaster_feed_channel.channel_name == "" ) - src.admincaster_screen = 6 - else - GLOB.news_network.SubmitArticle(src.admincaster_feed_message.returnBody(-1), src.admin_signature, src.admincaster_feed_channel.channel_name, null, 1) - SSblackbox.inc("newscaster_stories",1) - src.admincaster_screen=4 - - for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.newsAlert(src.admincaster_feed_channel.channel_name) - - log_admin("[key_name(usr)] submitted a feed story to channel: [src.admincaster_feed_channel.channel_name]!") - src.access_news_network() - - else if(href_list["ac_create_channel"]) - src.admincaster_screen=2 - src.access_news_network() - - else if(href_list["ac_create_feed_story"]) - src.admincaster_screen=3 - src.access_news_network() - - else if(href_list["ac_menu_censor_story"]) - src.admincaster_screen=10 - src.access_news_network() - - else if(href_list["ac_menu_censor_channel"]) - src.admincaster_screen=11 - src.access_news_network() - - else if(href_list["ac_menu_wanted"]) - var/already_wanted = 0 - if(GLOB.news_network.wanted_issue.active) - already_wanted = 1 - - if(already_wanted) - src.admincaster_wanted_message.criminal = GLOB.news_network.wanted_issue.criminal - src.admincaster_wanted_message.body = GLOB.news_network.wanted_issue.body - src.admincaster_screen = 14 - src.access_news_network() - - else if(href_list["ac_set_wanted_name"]) - src.admincaster_wanted_message.criminal = adminscrub(input(usr, "Provide the name of the Wanted person.", "Network Security Handler", "")) - while(findtext(src.admincaster_wanted_message.criminal," ") == 1) - src.admincaster_wanted_message.criminal = copytext(admincaster_wanted_message.criminal,2,lentext(admincaster_wanted_message.criminal)+1) - src.access_news_network() - - else if(href_list["ac_set_wanted_desc"]) - src.admincaster_wanted_message.body = adminscrub(input(usr, "Provide the a description of the Wanted person and any other details you deem important.", "Network Security Handler", "")) - while (findtext(src.admincaster_wanted_message.body," ") == 1) - src.admincaster_wanted_message.body = copytext(src.admincaster_wanted_message.body,2,lentext(src.admincaster_wanted_message.body)+1) - src.access_news_network() - - else if(href_list["ac_submit_wanted"]) - var/input_param = text2num(href_list["ac_submit_wanted"]) - if(src.admincaster_wanted_message.criminal == "" || src.admincaster_wanted_message.body == "") - src.admincaster_screen = 16 - else - var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below - GLOB.news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature, null, 1, 1) - src.admincaster_screen = 15 - else - GLOB.news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature) - src.admincaster_screen = 19 - log_admin("[key_name(usr)] issued a Station-wide Wanted Notification for [src.admincaster_wanted_message.criminal]!") - src.access_news_network() - - else if(href_list["ac_cancel_wanted"]) - var/choice = alert("Please confirm Wanted Issue removal.","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - GLOB.news_network.deleteWanted() - src.admincaster_screen=17 - src.access_news_network() - - else if(href_list["ac_censor_channel_author"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_censor_channel_author"]) - FC.toggleCensorAuthor() - src.access_news_network() - - else if(href_list["ac_censor_channel_story_author"]) - var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_author"]) - MSG.toggleCensorAuthor() - src.access_news_network() - - else if(href_list["ac_censor_channel_story_body"]) - var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_body"]) - MSG.toggleCensorBody() - src.access_news_network() - - else if(href_list["ac_pick_d_notice"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_d_notice"]) - src.admincaster_feed_channel = FC - src.admincaster_screen=13 - src.access_news_network() - - else if(href_list["ac_toggle_d_notice"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_toggle_d_notice"]) - FC.toggleCensorDclass() - src.access_news_network() - - else if(href_list["ac_view"]) - src.admincaster_screen=1 - src.access_news_network() - - else if(href_list["ac_setScreen"]) //Brings us to the main menu and resets all fields~ - src.admincaster_screen = text2num(href_list["ac_setScreen"]) - if (src.admincaster_screen == 0) - if(src.admincaster_feed_channel) - src.admincaster_feed_channel = new /datum/newscaster/feed_channel - if(src.admincaster_feed_message) - src.admincaster_feed_message = new /datum/newscaster/feed_message - if(admincaster_wanted_message) - admincaster_wanted_message = new /datum/newscaster/wanted_message - src.access_news_network() - - else if(href_list["ac_show_channel"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_show_channel"]) - src.admincaster_feed_channel = FC - src.admincaster_screen = 9 - src.access_news_network() - - else if(href_list["ac_pick_censor_channel"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_censor_channel"]) - src.admincaster_feed_channel = FC - src.admincaster_screen = 12 - src.access_news_network() - - else if(href_list["ac_refresh"]) - src.access_news_network() - - else if(href_list["ac_set_signature"]) - src.admin_signature = adminscrub(input(usr, "Provide your desired signature.", "Network Identity Handler", "")) - src.access_news_network() - - else if(href_list["ac_del_comment"]) - var/datum/newscaster/feed_comment/FC = locate(href_list["ac_del_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["ac_del_comment_msg"]) - FM.comments -= FC - qdel(FC) - src.access_news_network() - - else if(href_list["ac_lock_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["ac_lock_comment"]) - FM.locked ^= 1 - src.access_news_network() - - else if(href_list["check_antagonist"]) - if(!check_rights(R_ADMIN)) - return - usr.client.check_antagonists() - - else if(href_list["kick_all_from_lobby"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker.IsRoundInProgress()) - var/afkonly = text2num(href_list["afkonly"]) - if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message","Yes","Cancel") != "Yes") - to_chat(usr, "Kick clients from lobby aborted") - return - var/list/listkicked = kick_clients_in_lobby("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].", afkonly) - - var/strkicked = "" - for(var/name in listkicked) - strkicked += "[name], " - message_admins("[key_name_admin(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") - log_admin("[key_name(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") - else - to_chat(usr, "You may only use this when the game is running.") - - else if(href_list["create_outfit"]) - if(!check_rights(R_ADMIN)) - return - - var/datum/outfit/O = new /datum/outfit - //swap this for js dropdowns sometime - O.name = href_list["outfit_name"] - O.uniform = text2path(href_list["outfit_uniform"]) - O.shoes = text2path(href_list["outfit_shoes"]) - O.gloves = text2path(href_list["outfit_gloves"]) - O.suit = text2path(href_list["outfit_suit"]) - O.head = text2path(href_list["outfit_head"]) - O.back = text2path(href_list["outfit_back"]) - O.mask = text2path(href_list["outfit_mask"]) - O.glasses = text2path(href_list["outfit_glasses"]) - O.r_hand = text2path(href_list["outfit_r_hand"]) - O.l_hand = text2path(href_list["outfit_l_hand"]) - O.suit_store = text2path(href_list["outfit_s_store"]) - O.l_pocket = text2path(href_list["outfit_l_pocket"]) - O.r_pocket = text2path(href_list["outfit_r_pocket"]) - O.id = text2path(href_list["outfit_id"]) - O.belt = text2path(href_list["outfit_belt"]) - O.ears = text2path(href_list["outfit_ears"]) - - GLOB.custom_outfits.Add(O) - message_admins("[key_name(usr)] created \"[O.name]\" outfit!") - - else if(href_list["set_selfdestruct_code"]) - if(!check_rights(R_ADMIN)) - return - var/code = random_nukecode() - for(var/obj/machinery/nuclearbomb/selfdestruct/SD in GLOB.nuke_list) - SD.r_code = code - message_admins("[key_name_admin(usr)] has set the self-destruct \ - code to \"[code]\".") - - else if(href_list["add_station_goal"]) - if(!check_rights(R_ADMIN)) - return - var/list/type_choices = typesof(/datum/station_goal) - var/picked = input("Choose goal type") in type_choices|null - if(!picked) - return - var/datum/station_goal/G = new picked() - if(picked == /datum/station_goal) - var/newname = input("Enter goal name:") as text|null - if(!newname) - return - G.name = newname - var/description = input("Enter centcom message contents:") as message|null - if(!description) - return - G.report_message = description - message_admins("[key_name(usr)] created \"[G.name]\" station goal.") - SSticker.mode.station_goals += G - modify_goals() - - else if(href_list["viewruntime"]) - var/datum/error_viewer/error_viewer = locate(href_list["viewruntime"]) - if(!istype(error_viewer)) - to_chat(usr, "That runtime viewer no longer exists.") - return - - if(href_list["viewruntime_backto"]) - error_viewer.show_to(owner, locate(href_list["viewruntime_backto"]), href_list["viewruntime_linear"]) - else - error_viewer.show_to(owner, null, href_list["viewruntime_linear"]) - else if(href_list["showrelatedacc"]) - var/client/C = locate(href_list["client"]) in GLOB.clients - var/thing_to_check - if(href_list["showrelatedacc"] == "cid") - thing_to_check = C.related_accounts_cid - else - thing_to_check = C.related_accounts_ip - thing_to_check = splittext(thing_to_check, ", ") - - - var/list/dat = list("Related accounts by [uppertext(href_list["showrelatedacc"])]:") - dat += thing_to_check - - usr << browse(dat.Join("
    "), "window=related_[C];size=420x300") - + if(istype(charter)) + charter.reject_proposed(usr) + else if(href_list["jumpto"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["jumpto"]) + usr.client.jumptomob(M) + + else if(href_list["getmob"]) + if(!check_rights(R_ADMIN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + var/mob/M = locate(href_list["getmob"]) + usr.client.Getmob(M) + + else if(href_list["sendmob"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendmob"]) + usr.client.sendmob(M) + + else if(href_list["narrateto"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["narrateto"]) + usr.client.cmd_admin_direct_narrate(M) + + else if(href_list["subtlemessage"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["subtlemessage"]) + usr.client.cmd_admin_subtle_message(M) + + else if(href_list["individuallog"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["individuallog"]) in GLOB.mob_list + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + + show_individual_logging_panel(M, href_list["log_type"]) + else if(href_list["languagemenu"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["languagemenu"]) in GLOB.mob_list + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + var/datum/language_holder/H = M.get_language_holder() + H.open_language_menu(usr) + + else if(href_list["traitor"]) + if(!check_rights(R_ADMIN)) + return + + if(!SSticker.HasRoundStarted()) + alert("The game hasn't started yet!") + return + + var/mob/M = locate(href_list["traitor"]) + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") + return + show_traitor_panel(M) + + else if(href_list["create_object"]) + if(!check_rights(R_SPAWN)) + return + return create_object(usr) + + else if(href_list["quick_create_object"]) + if(!check_rights(R_SPAWN)) + return + return quick_create_object(usr) + + else if(href_list["create_turf"]) + if(!check_rights(R_SPAWN)) + return + return create_turf(usr) + + else if(href_list["create_mob"]) + if(!check_rights(R_SPAWN)) + return + return create_mob(usr) + + else if(href_list["dupe_marked_datum"]) + if(!check_rights(R_SPAWN)) + return + return DuplicateObject(marked_datum, perfectcopy=1, newloc=get_turf(usr)) + + else if(href_list["object_list"]) //this is the laggiest thing ever + if(!check_rights(R_SPAWN)) + return + + var/atom/loc = usr.loc + + var/dirty_paths + if (istext(href_list["object_list"])) + dirty_paths = list(href_list["object_list"]) + else if (istype(href_list["object_list"], /list)) + dirty_paths = href_list["object_list"] + + var/paths = list() + + for(var/dirty_path in dirty_paths) + var/path = text2path(dirty_path) + if(!path) + continue + else if(!ispath(path, /obj) && !ispath(path, /turf) && !ispath(path, /mob)) + continue + paths += path + + if(!paths) + alert("The path list you sent is empty.") + return + if(length(paths) > 5) + alert("Select fewer object types, (max 5).") + return + + var/list/offset = splittext(href_list["offset"],",") + var/number = Clamp(text2num(href_list["object_count"]), 1, 100) + var/X = offset.len > 0 ? text2num(offset[1]) : 0 + var/Y = offset.len > 1 ? text2num(offset[2]) : 0 + var/Z = offset.len > 2 ? text2num(offset[3]) : 0 + var/tmp_dir = href_list["object_dir"] + var/obj_dir = tmp_dir ? text2num(tmp_dir) : 2 + if(!obj_dir || !(obj_dir in list(1,2,4,8,5,6,9,10))) + obj_dir = 2 + var/obj_name = sanitize(href_list["object_name"]) + + + var/atom/target //Where the object will be spawned + var/where = href_list["object_where"] + if (!( where in list("onfloor","inhand","inmarked") )) + where = "onfloor" + + + switch(where) + if("inhand") + if (!iscarbon(usr) && !iscyborg(usr)) + to_chat(usr, "Can only spawn in hand when you're a carbon mob or cyborg.") + where = "onfloor" + target = usr + + if("onfloor") + switch(href_list["offset_type"]) + if ("absolute") + target = locate(0 + X,0 + Y,0 + Z) + if ("relative") + target = locate(loc.x + X,loc.y + Y,loc.z + Z) + if("inmarked") + if(!marked_datum) + to_chat(usr, "You don't have any object marked. Abandoning spawn.") + return + else if(!istype(marked_datum,/atom)) + to_chat(usr, "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn.") + return + else + target = marked_datum + + if(target) + for (var/path in paths) + for (var/i = 0; i < number; i++) + if(path in typesof(/turf)) + var/turf/O = target + var/turf/N = O.ChangeTurf(path) + if(N && obj_name) + N.name = obj_name + else + var/atom/O = new path(target) + if(O) + O.admin_spawned = TRUE + O.setDir(obj_dir) + if(obj_name) + O.name = obj_name + if(ismob(O)) + var/mob/M = O + M.real_name = obj_name + if(where == "inhand" && isliving(usr) && isitem(O)) + var/mob/living/L = usr + var/obj/item/I = O + L.put_in_hands(I) + if(iscyborg(L)) + var/mob/living/silicon/robot/R = L + if(R.module) + R.module.add_module(I, TRUE, TRUE) + R.activate_module(I) + + + if (number == 1) + log_admin("[key_name(usr)] created a [english_list(paths)]") + for(var/path in paths) + if(ispath(path, /mob)) + message_admins("[key_name_admin(usr)] created a [english_list(paths)]") + break + else + log_admin("[key_name(usr)] created [number]ea [english_list(paths)]") + for(var/path in paths) + if(ispath(path, /mob)) + message_admins("[key_name_admin(usr)] created [number]ea [english_list(paths)]") + break + return + + else if(href_list["secrets"]) + Secrets_topic(href_list["secrets"],href_list) + + else if(href_list["ac_view_wanted"]) //Admin newscaster Topic() stuff be here + src.admincaster_screen = 18 //The ac_ prefix before the hrefs stands for AdminCaster. + src.access_news_network() + + else if(href_list["ac_set_channel_name"]) + src.admincaster_feed_channel.channel_name = stripped_input(usr, "Provide a Feed Channel Name.", "Network Channel Handler", "") + while (findtext(src.admincaster_feed_channel.channel_name," ") == 1) + src.admincaster_feed_channel.channel_name = copytext(src.admincaster_feed_channel.channel_name,2,lentext(src.admincaster_feed_channel.channel_name)+1) + src.access_news_network() + + else if(href_list["ac_set_channel_lock"]) + src.admincaster_feed_channel.locked = !src.admincaster_feed_channel.locked + src.access_news_network() + + else if(href_list["ac_submit_new_channel"]) + var/check = 0 + for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + if(FC.channel_name == src.admincaster_feed_channel.channel_name) + check = 1 + break + if(src.admincaster_feed_channel.channel_name == "" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]" || check ) + src.admincaster_screen=7 + else + var/choice = alert("Please confirm Feed channel creation.","Network Channel Handler","Confirm","Cancel") + if(choice=="Confirm") + GLOB.news_network.CreateFeedChannel(src.admincaster_feed_channel.channel_name, src.admin_signature, src.admincaster_feed_channel.locked, 1) + SSblackbox.inc("newscaster_channels",1) + log_admin("[key_name(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") + src.admincaster_screen=5 + src.access_news_network() + + else if(href_list["ac_set_channel_receiving"]) + var/list/available_channels = list() + for(var/datum/newscaster/feed_channel/F in GLOB.news_network.network_channels) + available_channels += F.channel_name + src.admincaster_feed_channel.channel_name = adminscrub(input(usr, "Choose receiving Feed Channel.", "Network Channel Handler") in available_channels ) + src.access_news_network() + + else if(href_list["ac_set_new_message"]) + src.admincaster_feed_message.body = adminscrub(input(usr, "Write your Feed story.", "Network Channel Handler", "")) + while (findtext(src.admincaster_feed_message.returnBody(-1)," ") == 1) + src.admincaster_feed_message.body = copytext(src.admincaster_feed_message.returnBody(-1),2,lentext(src.admincaster_feed_message.returnBody(-1))+1) + src.access_news_network() + + else if(href_list["ac_submit_new_message"]) + if(src.admincaster_feed_message.returnBody(-1) =="" || src.admincaster_feed_message.returnBody(-1) =="\[REDACTED\]" || src.admincaster_feed_channel.channel_name == "" ) + src.admincaster_screen = 6 + else + GLOB.news_network.SubmitArticle(src.admincaster_feed_message.returnBody(-1), src.admin_signature, src.admincaster_feed_channel.channel_name, null, 1) + SSblackbox.inc("newscaster_stories",1) + src.admincaster_screen=4 + + for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) + NEWSCASTER.newsAlert(src.admincaster_feed_channel.channel_name) + + log_admin("[key_name(usr)] submitted a feed story to channel: [src.admincaster_feed_channel.channel_name]!") + src.access_news_network() + + else if(href_list["ac_create_channel"]) + src.admincaster_screen=2 + src.access_news_network() + + else if(href_list["ac_create_feed_story"]) + src.admincaster_screen=3 + src.access_news_network() + + else if(href_list["ac_menu_censor_story"]) + src.admincaster_screen=10 + src.access_news_network() + + else if(href_list["ac_menu_censor_channel"]) + src.admincaster_screen=11 + src.access_news_network() + + else if(href_list["ac_menu_wanted"]) + var/already_wanted = 0 + if(GLOB.news_network.wanted_issue.active) + already_wanted = 1 + + if(already_wanted) + src.admincaster_wanted_message.criminal = GLOB.news_network.wanted_issue.criminal + src.admincaster_wanted_message.body = GLOB.news_network.wanted_issue.body + src.admincaster_screen = 14 + src.access_news_network() + + else if(href_list["ac_set_wanted_name"]) + src.admincaster_wanted_message.criminal = adminscrub(input(usr, "Provide the name of the Wanted person.", "Network Security Handler", "")) + while(findtext(src.admincaster_wanted_message.criminal," ") == 1) + src.admincaster_wanted_message.criminal = copytext(admincaster_wanted_message.criminal,2,lentext(admincaster_wanted_message.criminal)+1) + src.access_news_network() + + else if(href_list["ac_set_wanted_desc"]) + src.admincaster_wanted_message.body = adminscrub(input(usr, "Provide the a description of the Wanted person and any other details you deem important.", "Network Security Handler", "")) + while (findtext(src.admincaster_wanted_message.body," ") == 1) + src.admincaster_wanted_message.body = copytext(src.admincaster_wanted_message.body,2,lentext(src.admincaster_wanted_message.body)+1) + src.access_news_network() + + else if(href_list["ac_submit_wanted"]) + var/input_param = text2num(href_list["ac_submit_wanted"]) + if(src.admincaster_wanted_message.criminal == "" || src.admincaster_wanted_message.body == "") + src.admincaster_screen = 16 + else + var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below + GLOB.news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature, null, 1, 1) + src.admincaster_screen = 15 + else + GLOB.news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature) + src.admincaster_screen = 19 + log_admin("[key_name(usr)] issued a Station-wide Wanted Notification for [src.admincaster_wanted_message.criminal]!") + src.access_news_network() + + else if(href_list["ac_cancel_wanted"]) + var/choice = alert("Please confirm Wanted Issue removal.","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + GLOB.news_network.deleteWanted() + src.admincaster_screen=17 + src.access_news_network() + + else if(href_list["ac_censor_channel_author"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_censor_channel_author"]) + FC.toggleCensorAuthor() + src.access_news_network() + + else if(href_list["ac_censor_channel_story_author"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_author"]) + MSG.toggleCensorAuthor() + src.access_news_network() + + else if(href_list["ac_censor_channel_story_body"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_body"]) + MSG.toggleCensorBody() + src.access_news_network() + + else if(href_list["ac_pick_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_d_notice"]) + src.admincaster_feed_channel = FC + src.admincaster_screen=13 + src.access_news_network() + + else if(href_list["ac_toggle_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_toggle_d_notice"]) + FC.toggleCensorDclass() + src.access_news_network() + + else if(href_list["ac_view"]) + src.admincaster_screen=1 + src.access_news_network() + + else if(href_list["ac_setScreen"]) //Brings us to the main menu and resets all fields~ + src.admincaster_screen = text2num(href_list["ac_setScreen"]) + if (src.admincaster_screen == 0) + if(src.admincaster_feed_channel) + src.admincaster_feed_channel = new /datum/newscaster/feed_channel + if(src.admincaster_feed_message) + src.admincaster_feed_message = new /datum/newscaster/feed_message + if(admincaster_wanted_message) + admincaster_wanted_message = new /datum/newscaster/wanted_message + src.access_news_network() + + else if(href_list["ac_show_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_show_channel"]) + src.admincaster_feed_channel = FC + src.admincaster_screen = 9 + src.access_news_network() + + else if(href_list["ac_pick_censor_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_censor_channel"]) + src.admincaster_feed_channel = FC + src.admincaster_screen = 12 + src.access_news_network() + + else if(href_list["ac_refresh"]) + src.access_news_network() + + else if(href_list["ac_set_signature"]) + src.admin_signature = adminscrub(input(usr, "Provide your desired signature.", "Network Identity Handler", "")) + src.access_news_network() + + else if(href_list["ac_del_comment"]) + var/datum/newscaster/feed_comment/FC = locate(href_list["ac_del_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["ac_del_comment_msg"]) + FM.comments -= FC + qdel(FC) + src.access_news_network() + + else if(href_list["ac_lock_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["ac_lock_comment"]) + FM.locked ^= 1 + src.access_news_network() + + else if(href_list["check_antagonist"]) + if(!check_rights(R_ADMIN)) + return + usr.client.check_antagonists() + + else if(href_list["kick_all_from_lobby"]) + if(!check_rights(R_ADMIN)) + return + if(SSticker.IsRoundInProgress()) + var/afkonly = text2num(href_list["afkonly"]) + if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message","Yes","Cancel") != "Yes") + to_chat(usr, "Kick clients from lobby aborted") + return + var/list/listkicked = kick_clients_in_lobby("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].", afkonly) + + var/strkicked = "" + for(var/name in listkicked) + strkicked += "[name], " + message_admins("[key_name_admin(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") + log_admin("[key_name(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") + else + to_chat(usr, "You may only use this when the game is running.") + + else if(href_list["create_outfit"]) + if(!check_rights(R_ADMIN)) + return + + var/datum/outfit/O = new /datum/outfit + //swap this for js dropdowns sometime + O.name = href_list["outfit_name"] + O.uniform = text2path(href_list["outfit_uniform"]) + O.shoes = text2path(href_list["outfit_shoes"]) + O.gloves = text2path(href_list["outfit_gloves"]) + O.suit = text2path(href_list["outfit_suit"]) + O.head = text2path(href_list["outfit_head"]) + O.back = text2path(href_list["outfit_back"]) + O.mask = text2path(href_list["outfit_mask"]) + O.glasses = text2path(href_list["outfit_glasses"]) + O.r_hand = text2path(href_list["outfit_r_hand"]) + O.l_hand = text2path(href_list["outfit_l_hand"]) + O.suit_store = text2path(href_list["outfit_s_store"]) + O.l_pocket = text2path(href_list["outfit_l_pocket"]) + O.r_pocket = text2path(href_list["outfit_r_pocket"]) + O.id = text2path(href_list["outfit_id"]) + O.belt = text2path(href_list["outfit_belt"]) + O.ears = text2path(href_list["outfit_ears"]) + + GLOB.custom_outfits.Add(O) + message_admins("[key_name(usr)] created \"[O.name]\" outfit!") + + else if(href_list["set_selfdestruct_code"]) + if(!check_rights(R_ADMIN)) + return + var/code = random_nukecode() + for(var/obj/machinery/nuclearbomb/selfdestruct/SD in GLOB.nuke_list) + SD.r_code = code + message_admins("[key_name_admin(usr)] has set the self-destruct \ + code to \"[code]\".") + + else if(href_list["add_station_goal"]) + if(!check_rights(R_ADMIN)) + return + var/list/type_choices = typesof(/datum/station_goal) + var/picked = input("Choose goal type") in type_choices|null + if(!picked) + return + var/datum/station_goal/G = new picked() + if(picked == /datum/station_goal) + var/newname = input("Enter goal name:") as text|null + if(!newname) + return + G.name = newname + var/description = input("Enter centcom message contents:") as message|null + if(!description) + return + G.report_message = description + message_admins("[key_name(usr)] created \"[G.name]\" station goal.") + SSticker.mode.station_goals += G + modify_goals() + + else if(href_list["viewruntime"]) + var/datum/error_viewer/error_viewer = locate(href_list["viewruntime"]) + if(!istype(error_viewer)) + to_chat(usr, "That runtime viewer no longer exists.") + return + + if(href_list["viewruntime_backto"]) + error_viewer.show_to(owner, locate(href_list["viewruntime_backto"]), href_list["viewruntime_linear"]) + else + error_viewer.show_to(owner, null, href_list["viewruntime_linear"]) + + else if(href_list["showrelatedacc"]) + var/client/C = locate(href_list["client"]) in GLOB.clients + var/thing_to_check + if(href_list["showrelatedacc"] == "cid") + thing_to_check = C.related_accounts_cid + else + thing_to_check = C.related_accounts_ip + thing_to_check = splittext(thing_to_check, ", ") + + + var/list/dat = list("Related accounts by [uppertext(href_list["showrelatedacc"])]:") + dat += thing_to_check + + usr << browse(dat.Join("
    "), "window=related_[C];size=420x300") + diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index ce9f5a62f4..a2a2ff4258 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -1,29 +1,29 @@ -/client/var/adminhelptimerid = 0 //a timer id for returning the ahelp verb -/client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with - -// -//TICKET MANAGER -// - -GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) - -/datum/admin_help_tickets - var/list/active_tickets = list() - var/list/closed_tickets = list() - var/list/resolved_tickets = list() - - var/obj/effect/statclick/ticket_list/astatclick = new(null, null, AHELP_ACTIVE) - var/obj/effect/statclick/ticket_list/cstatclick = new(null, null, AHELP_CLOSED) - var/obj/effect/statclick/ticket_list/rstatclick = new(null, null, AHELP_RESOLVED) - -/datum/admin_help_tickets/Destroy() - QDEL_LIST(active_tickets) - QDEL_LIST(closed_tickets) - QDEL_LIST(resolved_tickets) - QDEL_NULL(astatclick) - QDEL_NULL(cstatclick) - QDEL_NULL(rstatclick) - return ..() +/client/var/adminhelptimerid = 0 //a timer id for returning the ahelp verb +/client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with + +// +//TICKET MANAGER +// + +GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) + +/datum/admin_help_tickets + var/list/active_tickets = list() + var/list/closed_tickets = list() + var/list/resolved_tickets = list() + + var/obj/effect/statclick/ticket_list/astatclick = new(null, null, AHELP_ACTIVE) + var/obj/effect/statclick/ticket_list/cstatclick = new(null, null, AHELP_CLOSED) + var/obj/effect/statclick/ticket_list/rstatclick = new(null, null, AHELP_RESOLVED) + +/datum/admin_help_tickets/Destroy() + QDEL_LIST(active_tickets) + QDEL_LIST(closed_tickets) + QDEL_LIST(resolved_tickets) + QDEL_NULL(astatclick) + QDEL_NULL(cstatclick) + QDEL_NULL(rstatclick) + return ..() /datum/admin_help_tickets/proc/TicketByID(id) var/list/lists = list(active_tickets, closed_tickets, resolved_tickets) @@ -41,648 +41,648 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) var/datum/admin_help/AH = J if(AH.initiator_ckey == ckey) . += AH - -//private -/datum/admin_help_tickets/proc/ListInsert(datum/admin_help/new_ticket) - var/list/ticket_list - switch(new_ticket.state) - if(AHELP_ACTIVE) - ticket_list = active_tickets - if(AHELP_CLOSED) - ticket_list = closed_tickets - if(AHELP_RESOLVED) - ticket_list = resolved_tickets - else - CRASH("Invalid ticket state: [new_ticket.state]") - var/num_closed = ticket_list.len - if(num_closed) - for(var/I in 1 to num_closed) - var/datum/admin_help/AH = ticket_list[I] - if(AH.id > new_ticket.id) - ticket_list.Insert(I, new_ticket) - return - ticket_list += new_ticket - -//opens the ticket listings for one of the 3 states -/datum/admin_help_tickets/proc/BrowseTickets(state) - var/list/l2b - var/title - switch(state) - if(AHELP_ACTIVE) - l2b = active_tickets - title = "Active Tickets" - if(AHELP_CLOSED) - l2b = closed_tickets - title = "Closed Tickets" - if(AHELP_RESOLVED) - l2b = resolved_tickets - title = "Resolved Tickets" - if(!l2b) - return - var/list/dat = list("[title]") - dat += "Refresh

    " - for(var/I in l2b) - var/datum/admin_help/AH = I - dat += "Ticket #[AH.id]: [AH.initiator_key_name]: [AH.name]
    " - - usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480") - -//Tickets statpanel -/datum/admin_help_tickets/proc/stat_entry() - var/num_disconnected = 0 - stat("Active Tickets:", astatclick.update("[active_tickets.len]")) - for(var/I in active_tickets) - var/datum/admin_help/AH = I - if(AH.initiator) - stat("#[AH.id]. [AH.initiator_key_name]:", AH.statclick.update()) - else - ++num_disconnected - if(num_disconnected) - stat("Disconnected:", astatclick.update("[num_disconnected]")) - stat("Closed Tickets:", cstatclick.update("[closed_tickets.len]")) - stat("Resolved Tickets:", rstatclick.update("[resolved_tickets.len]")) - -//Reassociate still open ticket if one exists -/datum/admin_help_tickets/proc/ClientLogin(client/C) - C.current_ticket = CKey2ActiveTicket(C.ckey) - if(C.current_ticket) - C.current_ticket.AddInteraction("Client reconnected.") - C.current_ticket.initiator = C - -//Dissasociate ticket -/datum/admin_help_tickets/proc/ClientLogout(client/C) - if(C.current_ticket) - C.current_ticket.AddInteraction("Client disconnected.") - C.current_ticket.initiator = null - C.current_ticket = null - -//Get a ticket given a ckey -/datum/admin_help_tickets/proc/CKey2ActiveTicket(ckey) - for(var/I in active_tickets) - var/datum/admin_help/AH = I - if(AH.initiator_ckey == ckey) - return AH - -// -//TICKET LIST STATCLICK -// - -/obj/effect/statclick/ticket_list - var/current_state - -/obj/effect/statclick/ticket_list/New(loc, name, state) - current_state = state - ..() - -/obj/effect/statclick/ticket_list/Click() - GLOB.ahelp_tickets.BrowseTickets(current_state) - -// -//TICKET DATUM -// - -/datum/admin_help - var/id - var/name - var/state = AHELP_ACTIVE - - var/opened_at - var/closed_at - - var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked - var/initiator_ckey - var/initiator_key_name - - var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log() - - var/obj/effect/statclick/ahelp/statclick - - var/static/ticket_counter = 0 - -//call this on its own to create a ticket, don't manually assign current_ticket -//msg is the title of the ticket: usually the ahelp text -//is_bwoink is TRUE if this ticket was started by an admin PM -/datum/admin_help/New(msg, client/C, is_bwoink) - //clean the input msg - msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) - if(!msg || !C || !C.mob) - qdel(src) - return - - id = ++ticket_counter - opened_at = world.time - - name = msg - - initiator = C - initiator_ckey = initiator.ckey - initiator_key_name = key_name(initiator, FALSE, TRUE) - if(initiator.current_ticket) //This is a bug - stack_trace("Multiple ahelp current_tickets") - initiator.current_ticket.AddInteraction("Ticket erroneously left open by code") - initiator.current_ticket.Close() - initiator.current_ticket = src - - TimeoutVerb() - - var/parsed_message = keywords_lookup(msg) - - statclick = new(null, src) - _interactions = list() - - if(is_bwoink) - AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]") - message_admins("Ticket [TicketHref("#[id]")] created") - else - MessageNoRecipient(parsed_message) - - //send it to irc if nobody is on and tell us how many were on + +//private +/datum/admin_help_tickets/proc/ListInsert(datum/admin_help/new_ticket) + var/list/ticket_list + switch(new_ticket.state) + if(AHELP_ACTIVE) + ticket_list = active_tickets + if(AHELP_CLOSED) + ticket_list = closed_tickets + if(AHELP_RESOLVED) + ticket_list = resolved_tickets + else + CRASH("Invalid ticket state: [new_ticket.state]") + var/num_closed = ticket_list.len + if(num_closed) + for(var/I in 1 to num_closed) + var/datum/admin_help/AH = ticket_list[I] + if(AH.id > new_ticket.id) + ticket_list.Insert(I, new_ticket) + return + ticket_list += new_ticket + +//opens the ticket listings for one of the 3 states +/datum/admin_help_tickets/proc/BrowseTickets(state) + var/list/l2b + var/title + switch(state) + if(AHELP_ACTIVE) + l2b = active_tickets + title = "Active Tickets" + if(AHELP_CLOSED) + l2b = closed_tickets + title = "Closed Tickets" + if(AHELP_RESOLVED) + l2b = resolved_tickets + title = "Resolved Tickets" + if(!l2b) + return + var/list/dat = list("[title]") + dat += "Refresh

    " + for(var/I in l2b) + var/datum/admin_help/AH = I + dat += "Ticket #[AH.id]: [AH.initiator_key_name]: [AH.name]
    " + + usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480") + +//Tickets statpanel +/datum/admin_help_tickets/proc/stat_entry() + var/num_disconnected = 0 + stat("Active Tickets:", astatclick.update("[active_tickets.len]")) + for(var/I in active_tickets) + var/datum/admin_help/AH = I + if(AH.initiator) + stat("#[AH.id]. [AH.initiator_key_name]:", AH.statclick.update()) + else + ++num_disconnected + if(num_disconnected) + stat("Disconnected:", astatclick.update("[num_disconnected]")) + stat("Closed Tickets:", cstatclick.update("[closed_tickets.len]")) + stat("Resolved Tickets:", rstatclick.update("[resolved_tickets.len]")) + +//Reassociate still open ticket if one exists +/datum/admin_help_tickets/proc/ClientLogin(client/C) + C.current_ticket = CKey2ActiveTicket(C.ckey) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client reconnected.") + C.current_ticket.initiator = C + +//Dissasociate ticket +/datum/admin_help_tickets/proc/ClientLogout(client/C) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client disconnected.") + C.current_ticket.initiator = null + C.current_ticket = null + +//Get a ticket given a ckey +/datum/admin_help_tickets/proc/CKey2ActiveTicket(ckey) + for(var/I in active_tickets) + var/datum/admin_help/AH = I + if(AH.initiator_ckey == ckey) + return AH + +// +//TICKET LIST STATCLICK +// + +/obj/effect/statclick/ticket_list + var/current_state + +/obj/effect/statclick/ticket_list/New(loc, name, state) + current_state = state + ..() + +/obj/effect/statclick/ticket_list/Click() + GLOB.ahelp_tickets.BrowseTickets(current_state) + +// +//TICKET DATUM +// + +/datum/admin_help + var/id + var/name + var/state = AHELP_ACTIVE + + var/opened_at + var/closed_at + + var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked + var/initiator_ckey + var/initiator_key_name + + var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log() + + var/obj/effect/statclick/ahelp/statclick + + var/static/ticket_counter = 0 + +//call this on its own to create a ticket, don't manually assign current_ticket +//msg is the title of the ticket: usually the ahelp text +//is_bwoink is TRUE if this ticket was started by an admin PM +/datum/admin_help/New(msg, client/C, is_bwoink) + //clean the input msg + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg || !C || !C.mob) + qdel(src) + return + + id = ++ticket_counter + opened_at = world.time + + name = msg + + initiator = C + initiator_ckey = initiator.ckey + initiator_key_name = key_name(initiator, FALSE, TRUE) + if(initiator.current_ticket) //This is a bug + stack_trace("Multiple ahelp current_tickets") + initiator.current_ticket.AddInteraction("Ticket erroneously left open by code") + initiator.current_ticket.Close() + initiator.current_ticket = src + + TimeoutVerb() + + var/parsed_message = keywords_lookup(msg) + + statclick = new(null, src) + _interactions = list() + + if(is_bwoink) + AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]") + message_admins("Ticket [TicketHref("#[id]")] created") + else + MessageNoRecipient(parsed_message) + + //send it to irc if nobody is on and tell us how many were on var/admin_number_present = send2irc_adminless_only(initiator_ckey, "Ticket #[id]: [name]") - log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") - if(admin_number_present <= 0) - to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") - - GLOB.ahelp_tickets.active_tickets += src - -/datum/admin_help/Destroy() - RemoveActive() - GLOB.ahelp_tickets.closed_tickets -= src - GLOB.ahelp_tickets.resolved_tickets -= src - return ..() - -/datum/admin_help/proc/AddInteraction(formatted_message) - _interactions += "[gameTimestamp()]: [formatted_message]" - -//Removes the ahelp verb and returns it after 2 minutes -/datum/admin_help/proc/TimeoutVerb() - initiator.verbs -= /client/verb/adminhelp - initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps - -//private -/datum/admin_help/proc/FullMonty(ref_src) - if(!ref_src) - ref_src = "\ref[src]" - . = ADMIN_FULLMONTY_NONAME(initiator.mob) - if(state == AHELP_ACTIVE) - . += ClosureLinks(ref_src) - -//private -/datum/admin_help/proc/ClosureLinks(ref_src) - if(!ref_src) - ref_src = "\ref[src]" - . = " (REJT)" - . += " (IC)" - . += " (CLOSE)" - . += " (RSLVE)" - -//private -/datum/admin_help/proc/LinkedReplyName(ref_src) - if(!ref_src) - ref_src = "\ref[src]" - return "[initiator_key_name]" - -//private -/datum/admin_help/proc/TicketHref(msg, ref_src, action = "ticket") - if(!ref_src) - ref_src = "\ref[src]" - return "[msg]" - -//message from the initiator without a target, all admins will see this -//won't bug irc -/datum/admin_help/proc/MessageNoRecipient(msg) - var/ref_src = "\ref[src]" - var/chat_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [msg]" - - AddInteraction("[LinkedReplyName(ref_src)]: [msg]") - //send this msg to all admins - - for(var/client/X in GLOB.admins) - if(X.prefs.toggles & SOUND_ADMINHELP) - X << 'sound/effects/adminhelp.ogg' - window_flash(X, ignorepref = TRUE) - to_chat(X, chat_msg) - + log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") + if(admin_number_present <= 0) + to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") + + GLOB.ahelp_tickets.active_tickets += src + +/datum/admin_help/Destroy() + RemoveActive() + GLOB.ahelp_tickets.closed_tickets -= src + GLOB.ahelp_tickets.resolved_tickets -= src + return ..() + +/datum/admin_help/proc/AddInteraction(formatted_message) + _interactions += "[gameTimestamp()]: [formatted_message]" + +//Removes the ahelp verb and returns it after 2 minutes +/datum/admin_help/proc/TimeoutVerb() + initiator.verbs -= /client/verb/adminhelp + initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps + +//private +/datum/admin_help/proc/FullMonty(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + . = ADMIN_FULLMONTY_NONAME(initiator.mob) + if(state == AHELP_ACTIVE) + . += ClosureLinks(ref_src) + +//private +/datum/admin_help/proc/ClosureLinks(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + . = " (REJT)" + . += " (IC)" + . += " (CLOSE)" + . += " (RSLVE)" + +//private +/datum/admin_help/proc/LinkedReplyName(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + return "[initiator_key_name]" + +//private +/datum/admin_help/proc/TicketHref(msg, ref_src, action = "ticket") + if(!ref_src) + ref_src = "\ref[src]" + return "[msg]" + +//message from the initiator without a target, all admins will see this +//won't bug irc +/datum/admin_help/proc/MessageNoRecipient(msg) + var/ref_src = "\ref[src]" + var/chat_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [msg]" + + AddInteraction("[LinkedReplyName(ref_src)]: [msg]") + //send this msg to all admins + + for(var/client/X in GLOB.admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + X << 'sound/effects/adminhelp.ogg' + window_flash(X, ignorepref = TRUE) + to_chat(X, chat_msg) + //show it to the person adminhelping too to_chat(initiator, "PM to-Admins: [name]") -//Reopen a closed ticket -/datum/admin_help/proc/Reopen() - if(state == AHELP_ACTIVE) - to_chat(usr, "This ticket is already open.") - return - - if(GLOB.ahelp_tickets.CKey2ActiveTicket(initiator_ckey)) - to_chat(usr, "This user already has an active ticket, cannot reopen this one.") - return - - statclick = new(null, src) - GLOB.ahelp_tickets.active_tickets += src - GLOB.ahelp_tickets.closed_tickets -= src - GLOB.ahelp_tickets.resolved_tickets -= src - switch(state) - if(AHELP_CLOSED) - SSblackbox.dec("ahelp_close") - if(AHELP_RESOLVED) - SSblackbox.dec("ahelp_resolve") - state = AHELP_ACTIVE - closed_at = null - if(initiator) - initiator.current_ticket = src - - AddInteraction("Reopened by [key_name_admin(usr)]") - var/msg = "Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)]." - message_admins(msg) - log_admin_private(msg) - SSblackbox.inc("ahelp_reopen") - TicketPanel() //can only be done from here, so refresh it - -//private -/datum/admin_help/proc/RemoveActive() - if(state != AHELP_ACTIVE) - return - closed_at = world.time - QDEL_NULL(statclick) - GLOB.ahelp_tickets.active_tickets -= src - if(initiator && initiator.current_ticket == src) - initiator.current_ticket = null - -//Mark open ticket as closed/meme -/datum/admin_help/proc/Close(key_name = key_name_admin(usr), silent = FALSE) - if(state != AHELP_ACTIVE) - return - RemoveActive() - state = AHELP_CLOSED - GLOB.ahelp_tickets.ListInsert(src) - AddInteraction("Closed by [key_name].") - if(!silent) - SSblackbox.inc("ahelp_close") - var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name]." - message_admins(msg) - log_admin_private(msg) - -//Mark open ticket as resolved/legitimate, returns ahelp verb -/datum/admin_help/proc/Resolve(key_name = key_name_admin(usr), silent = FALSE) - if(state != AHELP_ACTIVE) - return - RemoveActive() - state = AHELP_RESOLVED - GLOB.ahelp_tickets.ListInsert(src) - - if(initiator) - initiator.giveadminhelpverb() - - AddInteraction("Resolved by [key_name].") - if(!silent) - SSblackbox.inc("ahelp_resolve") - var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name]" - message_admins(msg) - log_admin_private(msg) - -//Close and return ahelp verb, use if ticket is incoherent -/datum/admin_help/proc/Reject(key_name = key_name_admin(usr)) - if(state != AHELP_ACTIVE) - return - - if(initiator) - initiator.giveadminhelpverb() - - initiator << 'sound/effects/adminhelp.ogg' - - to_chat(initiator, "- AdminHelp Rejected! -") - to_chat(initiator, "Your admin help was rejected. The adminhelp verb has been returned to you so that you may try again.") - to_chat(initiator, "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.") - - SSblackbox.inc("ahelp_reject") - var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name]" - message_admins(msg) - log_admin_private(msg) - AddInteraction("Rejected by [key_name].") - Close(silent = TRUE) - -//Resolve ticket with IC Issue message -/datum/admin_help/proc/ICIssue(key_name = key_name_admin(usr)) - if(state != AHELP_ACTIVE) - return - - var/msg = "- AdminHelp marked as IC issue! -
    " - msg += "Losing is part of the game!
    " - msg += "Your character will frequently die, sometimes without even a possibility of avoiding it. Events will often be out of your control. No matter how good or prepared you are, sometimes you just lose." - - if(initiator) - to_chat(initiator, msg) - - SSblackbox.inc("ahelp_icissue") - msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name]" - message_admins(msg) - log_admin_private(msg) - AddInteraction("Marked as IC issue by [key_name]") - Resolve(silent = TRUE) - -//Show the ticket panel -/datum/admin_help/proc/TicketPanel() - var/list/dat = list("Ticket #[id]") - var/ref_src = "\ref[src]" - dat += "

    Admin Help Ticket #[id]: [LinkedReplyName(ref_src)]

    " - dat += "State: " - switch(state) - if(AHELP_ACTIVE) - dat += "OPEN" - if(AHELP_RESOLVED) - dat += "RESOLVED" - if(AHELP_CLOSED) - dat += "CLOSED" - else - dat += "UNKNOWN" - dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]" - if(state != AHELP_ACTIVE) - dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]" - dat += "

    Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)" - if(closed_at) - dat += "
    Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)" - dat += "

    " - if(initiator) - dat += "Actions: [FullMonty(ref_src)]
    " - else - dat += "DISCONNECTED[GLOB.TAB][ClosureLinks(ref_src)]
    " - dat += "
    Log:

    " - for(var/I in _interactions) - dat += "[I]
    " - - usr << browse(dat.Join(), "window=ahelp[id];size=620x480") - -/datum/admin_help/proc/Retitle() - var/new_title = input(usr, "Enter a title for the ticket", "Rename Ticket", name) as text|null - if(new_title) - name = new_title - //not saying the original name cause it could be a long ass message - var/msg = "Ticket [TicketHref("#[id]")] titled [name] by [key_name_admin(usr)]" - message_admins(msg) - log_admin_private(msg) - TicketPanel() //we have to be here to do this - -//Forwarded action from admin/Topic -/datum/admin_help/proc/Action(action) - testing("Ahelp action: [action]") - switch(action) - if("ticket") - TicketPanel() - if("retitle") - Retitle() - if("reject") - Reject() - if("reply") - usr.client.cmd_ahelp_reply(initiator) - if("icissue") - ICIssue() - if("close") - Close() - if("resolve") - Resolve() - if("reopen") - Reopen() - -// -// TICKET STATCLICK -// - -/obj/effect/statclick/ahelp - var/datum/admin_help/ahelp_datum - -/obj/effect/statclick/ahelp/Initialize(mapload, datum/admin_help/AH) - ahelp_datum = AH - . = ..() - -/obj/effect/statclick/ahelp/update() - return ..(ahelp_datum.name) - -/obj/effect/statclick/ahelp/Click() - ahelp_datum.TicketPanel() - -/obj/effect/statclick/ahelp/Destroy() - ahelp_datum = null - return ..() - -// -// CLIENT PROCS -// - -/client/proc/giveadminhelpverb() - src.verbs |= /client/verb/adminhelp - deltimer(adminhelptimerid) - adminhelptimerid = 0 - -/client/verb/adminhelp(msg as text) - set category = "Admin" - set name = "Adminhelp" - - if(GLOB.say_disabled) //This is here to try to identify lag problems - to_chat(usr, "Speech is currently admin-disabled.") - return - - //handle muting and automuting - if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You cannot send adminhelps (Muted).") - return - if(handle_spam_prevention(msg,MUTE_ADMINHELP)) - return - - if(!msg) - return - - SSblackbox.add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - if(current_ticket) - if(alert(usr, "You already have a ticket open. Is this for the same issue?",,"Yes","No") != "No") - if(current_ticket) - current_ticket.MessageNoRecipient(msg) - current_ticket.TimeoutVerb() - return - else - to_chat(usr, "Ticket not found, creating new one...") - else - current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") - current_ticket.Close() - - new /datum/admin_help(msg, src, FALSE) - -//admin proc -/client/proc/cmd_admin_ticket_panel() - set name = "Show Ticket List" - set category = "Admin" - - if(!check_rights(R_ADMIN, TRUE)) - return - - var/browse_to - - switch(input("Display which ticket list?") as null|anything in list("Active Tickets", "Closed Tickets", "Resolved Tickets")) - if("Active Tickets") - browse_to = AHELP_ACTIVE - if("Closed Tickets") - browse_to = AHELP_CLOSED - if("Resolved Tickets") - browse_to = AHELP_RESOLVED - else - return - - GLOB.ahelp_tickets.BrowseTickets(browse_to) - -// -// LOGGING -// - -//Use this proc when an admin takes action that may be related to an open ticket on what -//what can be a client, ckey, or mob -/proc/admin_ticket_log(what, message) - var/client/C - var/mob/Mob = what - if(istype(Mob)) - C = Mob.client - else - C = what - if(istype(C) && C.current_ticket) - C.current_ticket.AddInteraction(message) - return C.current_ticket - if(istext(what)) //ckey - var/datum/admin_help/AH = GLOB.ahelp_tickets.CKey2ActiveTicket(what) - if(AH) - AH.AddInteraction(message) - return AH - -// -// HELPER PROCS -// - -/proc/get_admin_counts(requiredflags = R_BAN) - . = list("total" = list(), "noflags" = list(), "afk" = list(), "stealth" = list(), "present" = list()) - for(var/client/X in GLOB.admins) - .["total"] += X - if(requiredflags != 0 && !check_rights_for(X, requiredflags)) - .["noflags"] += X - else if(X.is_afk()) - .["afk"] += X - else if(X.holder.fakekey) - .["stealth"] += X - else - .["present"] += X - -/proc/send2irc_adminless_only(source, msg, requiredflags = R_BAN) - var/list/adm = get_admin_counts(requiredflags) - var/list/activemins = adm["present"] - . = activemins.len - if(. <= 0) - var/final = "" - var/list/afkmins = adm["afk"] - var/list/stealthmins = adm["stealth"] - var/list/powerlessmins = adm["noflags"] - var/list/allmins = adm["total"] - if(!afkmins.len && !stealthmins.len && !powerlessmins.len) - final = "[msg] - No admins online" - else - final = "[msg] - All admins stealthed\[[english_list(stealthmins)]\], AFK\[[english_list(afkmins)]\], or lacks +BAN\[[english_list(powerlessmins)]\]! Total: [allmins.len] " - send2irc(source,final) - send2otherserver(source,final) - - -/proc/send2irc(msg,msg2) - if(world.RunningService()) - world.ExportService("[SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE] [msg] | [msg2]") - else if(config.useircbot) - shell("python nudge.py [msg] [msg2]") - -/proc/send2otherserver(source,msg,type = "Ahelp") - if(config.cross_allowed) - var/list/message = list() - message["message_sender"] = source - message["message"] = msg - message["source"] = "([config.cross_name])" - message["key"] = global.comms_key - message["crossmessage"] = type - - world.Export("[config.cross_address]?[list2params(message)]") - - -/proc/ircadminwho() - var/list/message = list("Admins: ") - var/list/admin_keys = list() - for(var/adm in GLOB.admins) - var/client/C = adm - admin_keys += "[C][C.holder.fakekey ? "(Stealth)" : ""][C.is_afk() ? "(AFK)" : ""]" - - for(var/admin in admin_keys) - if(LAZYLEN(message) > 1) - message += ", [admin]" - else - message += "[admin]" - - return jointext(message, "") - -/proc/keywords_lookup(msg,irc) - - //This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! - var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i") - - //explode the input msg into a list - var/list/msglist = splittext(msg, " ") - - //generate keywords lookup - var/list/surnames = list() - var/list/forenames = list() - var/list/ckeys = list() - var/founds = "" - for(var/mob/M in GLOB.mob_list) - var/list/indexing = list(M.real_name, M.name) - if(M.mind) - indexing += M.mind.name - - for(var/string in indexing) - var/list/L = splittext(string, " ") - var/surname_found = 0 - //surnames - for(var/i=L.len, i>=1, i--) - var/word = ckey(L[i]) - if(word) - surnames[word] = M - surname_found = i - break - //forenames - for(var/i=1, i(?|F)
    " - continue - msg += "[original_word] " - if(irc) - if(founds == "") - return "Search Failed" - else - return founds - - return msg \ No newline at end of file +//Reopen a closed ticket +/datum/admin_help/proc/Reopen() + if(state == AHELP_ACTIVE) + to_chat(usr, "This ticket is already open.") + return + + if(GLOB.ahelp_tickets.CKey2ActiveTicket(initiator_ckey)) + to_chat(usr, "This user already has an active ticket, cannot reopen this one.") + return + + statclick = new(null, src) + GLOB.ahelp_tickets.active_tickets += src + GLOB.ahelp_tickets.closed_tickets -= src + GLOB.ahelp_tickets.resolved_tickets -= src + switch(state) + if(AHELP_CLOSED) + SSblackbox.dec("ahelp_close") + if(AHELP_RESOLVED) + SSblackbox.dec("ahelp_resolve") + state = AHELP_ACTIVE + closed_at = null + if(initiator) + initiator.current_ticket = src + + AddInteraction("Reopened by [key_name_admin(usr)]") + var/msg = "Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)]." + message_admins(msg) + log_admin_private(msg) + SSblackbox.inc("ahelp_reopen") + TicketPanel() //can only be done from here, so refresh it + +//private +/datum/admin_help/proc/RemoveActive() + if(state != AHELP_ACTIVE) + return + closed_at = world.time + QDEL_NULL(statclick) + GLOB.ahelp_tickets.active_tickets -= src + if(initiator && initiator.current_ticket == src) + initiator.current_ticket = null + +//Mark open ticket as closed/meme +/datum/admin_help/proc/Close(key_name = key_name_admin(usr), silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_CLOSED + GLOB.ahelp_tickets.ListInsert(src) + AddInteraction("Closed by [key_name].") + if(!silent) + SSblackbox.inc("ahelp_close") + var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name]." + message_admins(msg) + log_admin_private(msg) + +//Mark open ticket as resolved/legitimate, returns ahelp verb +/datum/admin_help/proc/Resolve(key_name = key_name_admin(usr), silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_RESOLVED + GLOB.ahelp_tickets.ListInsert(src) + + if(initiator) + initiator.giveadminhelpverb() + + AddInteraction("Resolved by [key_name].") + if(!silent) + SSblackbox.inc("ahelp_resolve") + var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name]" + message_admins(msg) + log_admin_private(msg) + +//Close and return ahelp verb, use if ticket is incoherent +/datum/admin_help/proc/Reject(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + if(initiator) + initiator.giveadminhelpverb() + + initiator << 'sound/effects/adminhelp.ogg' + + to_chat(initiator, "- AdminHelp Rejected! -") + to_chat(initiator, "Your admin help was rejected. The adminhelp verb has been returned to you so that you may try again.") + to_chat(initiator, "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.") + + SSblackbox.inc("ahelp_reject") + var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name]" + message_admins(msg) + log_admin_private(msg) + AddInteraction("Rejected by [key_name].") + Close(silent = TRUE) + +//Resolve ticket with IC Issue message +/datum/admin_help/proc/ICIssue(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + var/msg = "- AdminHelp marked as IC issue! -
    " + msg += "Losing is part of the game!
    " + msg += "Your character will frequently die, sometimes without even a possibility of avoiding it. Events will often be out of your control. No matter how good or prepared you are, sometimes you just lose." + + if(initiator) + to_chat(initiator, msg) + + SSblackbox.inc("ahelp_icissue") + msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name]" + message_admins(msg) + log_admin_private(msg) + AddInteraction("Marked as IC issue by [key_name]") + Resolve(silent = TRUE) + +//Show the ticket panel +/datum/admin_help/proc/TicketPanel() + var/list/dat = list("Ticket #[id]") + var/ref_src = "\ref[src]" + dat += "

    Admin Help Ticket #[id]: [LinkedReplyName(ref_src)]

    " + dat += "State: " + switch(state) + if(AHELP_ACTIVE) + dat += "OPEN" + if(AHELP_RESOLVED) + dat += "RESOLVED" + if(AHELP_CLOSED) + dat += "CLOSED" + else + dat += "UNKNOWN" + dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]" + if(state != AHELP_ACTIVE) + dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]" + dat += "

    Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)" + if(closed_at) + dat += "
    Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)" + dat += "

    " + if(initiator) + dat += "Actions: [FullMonty(ref_src)]
    " + else + dat += "DISCONNECTED[GLOB.TAB][ClosureLinks(ref_src)]
    " + dat += "
    Log:

    " + for(var/I in _interactions) + dat += "[I]
    " + + usr << browse(dat.Join(), "window=ahelp[id];size=620x480") + +/datum/admin_help/proc/Retitle() + var/new_title = input(usr, "Enter a title for the ticket", "Rename Ticket", name) as text|null + if(new_title) + name = new_title + //not saying the original name cause it could be a long ass message + var/msg = "Ticket [TicketHref("#[id]")] titled [name] by [key_name_admin(usr)]" + message_admins(msg) + log_admin_private(msg) + TicketPanel() //we have to be here to do this + +//Forwarded action from admin/Topic +/datum/admin_help/proc/Action(action) + testing("Ahelp action: [action]") + switch(action) + if("ticket") + TicketPanel() + if("retitle") + Retitle() + if("reject") + Reject() + if("reply") + usr.client.cmd_ahelp_reply(initiator) + if("icissue") + ICIssue() + if("close") + Close() + if("resolve") + Resolve() + if("reopen") + Reopen() + +// +// TICKET STATCLICK +// + +/obj/effect/statclick/ahelp + var/datum/admin_help/ahelp_datum + +/obj/effect/statclick/ahelp/Initialize(mapload, datum/admin_help/AH) + ahelp_datum = AH + . = ..() + +/obj/effect/statclick/ahelp/update() + return ..(ahelp_datum.name) + +/obj/effect/statclick/ahelp/Click() + ahelp_datum.TicketPanel() + +/obj/effect/statclick/ahelp/Destroy() + ahelp_datum = null + return ..() + +// +// CLIENT PROCS +// + +/client/proc/giveadminhelpverb() + src.verbs |= /client/verb/adminhelp + deltimer(adminhelptimerid) + adminhelptimerid = 0 + +/client/verb/adminhelp(msg as text) + set category = "Admin" + set name = "Adminhelp" + + if(GLOB.say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + + //handle muting and automuting + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You cannot send adminhelps (Muted).") + return + if(handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + if(!msg) + return + + SSblackbox.add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(current_ticket) + if(alert(usr, "You already have a ticket open. Is this for the same issue?",,"Yes","No") != "No") + if(current_ticket) + current_ticket.MessageNoRecipient(msg) + current_ticket.TimeoutVerb() + return + else + to_chat(usr, "Ticket not found, creating new one...") + else + current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") + current_ticket.Close() + + new /datum/admin_help(msg, src, FALSE) + +//admin proc +/client/proc/cmd_admin_ticket_panel() + set name = "Show Ticket List" + set category = "Admin" + + if(!check_rights(R_ADMIN, TRUE)) + return + + var/browse_to + + switch(input("Display which ticket list?") as null|anything in list("Active Tickets", "Closed Tickets", "Resolved Tickets")) + if("Active Tickets") + browse_to = AHELP_ACTIVE + if("Closed Tickets") + browse_to = AHELP_CLOSED + if("Resolved Tickets") + browse_to = AHELP_RESOLVED + else + return + + GLOB.ahelp_tickets.BrowseTickets(browse_to) + +// +// LOGGING +// + +//Use this proc when an admin takes action that may be related to an open ticket on what +//what can be a client, ckey, or mob +/proc/admin_ticket_log(what, message) + var/client/C + var/mob/Mob = what + if(istype(Mob)) + C = Mob.client + else + C = what + if(istype(C) && C.current_ticket) + C.current_ticket.AddInteraction(message) + return C.current_ticket + if(istext(what)) //ckey + var/datum/admin_help/AH = GLOB.ahelp_tickets.CKey2ActiveTicket(what) + if(AH) + AH.AddInteraction(message) + return AH + +// +// HELPER PROCS +// + +/proc/get_admin_counts(requiredflags = R_BAN) + . = list("total" = list(), "noflags" = list(), "afk" = list(), "stealth" = list(), "present" = list()) + for(var/client/X in GLOB.admins) + .["total"] += X + if(requiredflags != 0 && !check_rights_for(X, requiredflags)) + .["noflags"] += X + else if(X.is_afk()) + .["afk"] += X + else if(X.holder.fakekey) + .["stealth"] += X + else + .["present"] += X + +/proc/send2irc_adminless_only(source, msg, requiredflags = R_BAN) + var/list/adm = get_admin_counts(requiredflags) + var/list/activemins = adm["present"] + . = activemins.len + if(. <= 0) + var/final = "" + var/list/afkmins = adm["afk"] + var/list/stealthmins = adm["stealth"] + var/list/powerlessmins = adm["noflags"] + var/list/allmins = adm["total"] + if(!afkmins.len && !stealthmins.len && !powerlessmins.len) + final = "[msg] - No admins online" + else + final = "[msg] - All admins stealthed\[[english_list(stealthmins)]\], AFK\[[english_list(afkmins)]\], or lacks +BAN\[[english_list(powerlessmins)]\]! Total: [allmins.len] " + send2irc(source,final) + send2otherserver(source,final) + + +/proc/send2irc(msg,msg2) + if(world.RunningService()) + world.ExportService("[SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE] [msg] | [msg2]") + else if(config.useircbot) + shell("python nudge.py [msg] [msg2]") + +/proc/send2otherserver(source,msg,type = "Ahelp") + if(config.cross_allowed) + var/list/message = list() + message["message_sender"] = source + message["message"] = msg + message["source"] = "([config.cross_name])" + message["key"] = global.comms_key + message["crossmessage"] = type + + world.Export("[config.cross_address]?[list2params(message)]") + + +/proc/ircadminwho() + var/list/message = list("Admins: ") + var/list/admin_keys = list() + for(var/adm in GLOB.admins) + var/client/C = adm + admin_keys += "[C][C.holder.fakekey ? "(Stealth)" : ""][C.is_afk() ? "(AFK)" : ""]" + + for(var/admin in admin_keys) + if(LAZYLEN(message) > 1) + message += ", [admin]" + else + message += "[admin]" + + return jointext(message, "") + +/proc/keywords_lookup(msg,irc) + + //This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! + var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i") + + //explode the input msg into a list + var/list/msglist = splittext(msg, " ") + + //generate keywords lookup + var/list/surnames = list() + var/list/forenames = list() + var/list/ckeys = list() + var/founds = "" + for(var/mob/M in GLOB.mob_list) + var/list/indexing = list(M.real_name, M.name) + if(M.mind) + indexing += M.mind.name + + for(var/string in indexing) + var/list/L = splittext(string, " ") + var/surname_found = 0 + //surnames + for(var/i=L.len, i>=1, i--) + var/word = ckey(L[i]) + if(word) + surnames[word] = M + surname_found = i + break + //forenames + for(var/i=1, i(?|F) " + continue + msg += "[original_word] " + if(irc) + if(founds == "") + return "Search Failed" + else + return founds + + return msg diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 202750cadd..7f4dd3ebb9 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -124,10 +124,10 @@ var/list/keys = list() for(var/mob/M in GLOB.player_list) keys += M.client - var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) + var/client/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) if(!selection) return - var/mob/M = selection:mob + var/mob/M = selection.mob if(!M) return @@ -156,4 +156,4 @@ admin_ticket_log(M, msg) else to_chat(src, "Failed to move mob to a valid location.") - SSblackbox.add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + SSblackbox.add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index ce7770c85a..caa2d2c7cb 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -1,249 +1,249 @@ -#define IRCREPLYCOUNT 2 - - -//allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm -/client/proc/cmd_admin_pm_context(mob/M in GLOB.mob_list) - set category = null - set name = "Admin PM Mob" - if(!holder) - to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.") - return - if( !ismob(M) || !M.client ) - return - cmd_admin_pm(M.client,null) - SSblackbox.add_details("admin_verb","Admin PM Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -//shows a list of clients we could send PMs to, then forwards our choice to cmd_admin_pm -/client/proc/cmd_admin_pm_panel() - set category = "Admin" - set name = "Admin PM" - if(!holder) - to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.") - return - var/list/client/targets[0] - for(var/client/T) - if(T.mob) - if(isnewplayer(T.mob)) - targets["(New Player) - [T]"] = T - else if(isobserver(T.mob)) - targets["[T.mob.name](Ghost) - [T]"] = T - else - targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T - else - targets["(No Mob) - [T]"] = T - var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets) - cmd_admin_pm(targets[target],null) - SSblackbox.add_details("admin_verb","Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/cmd_ahelp_reply(whom) - if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") - return - var/client/C - if(istext(whom)) - if(cmptext(copytext(whom,1,2),"@")) - whom = findStealthKey(whom) - C = GLOB.directory[whom] - else if(istype(whom,/client)) - C = whom - if(!C) - if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") - return - - var/datum/admin_help/AH = C.current_ticket - - if(AH) - message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") - var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null - if (!msg) - message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") - return - cmd_admin_pm(whom, msg) - -//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. -//Fetching a message if needed. src is the sender and C is the target client -/client/proc/cmd_admin_pm(whom, msg) - if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") - return - - if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo - to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.") - to_chat(src, "Message: [msg]") - return - - var/client/recipient - var/irc = 0 - if(istext(whom)) - if(cmptext(copytext(whom,1,2),"@")) - whom = findStealthKey(whom) - if(whom == "IRCKEY") - irc = 1 - else - recipient = GLOB.directory[whom] - else if(istype(whom,/client)) - recipient = whom - - - if(irc) - if(!ircreplyamount) //to prevent people from spamming irc - return - if(!msg) - msg = input(src,"Message:", "Private message to Administrator") as text|null - - if(!msg) - return - if(holder) - to_chat(src, "Error: Use the admin IRC channel, nerd.") - return - - - else - if(!recipient) - if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") - to_chat(src, msg) - else - current_ticket.MessageNoRecipient(msg) - return - - //get message text, limit it's length.and clean/escape html - if(!msg) - msg = input(src,"Message:", "Private message to [key_name(recipient, 0, 0)]") as text|null - - if(!msg) - return - - if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") - return - - if(!recipient) - if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") - else - current_ticket.MessageNoRecipient(msg) - return - - if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) - return - - //clean the message if it's not sent by a high-rank admin - if(!check_rights(R_SERVER|R_DEBUG,0)||irc)//no sending html to the poor bots - msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) - if(!msg) - return - - var/rawmsg = msg - - if(holder) - msg = emoji_parse(msg) - - var/keywordparsedmsg = keywords_lookup(msg) - - if(irc) - to_chat(src, "PM to-Admins: [rawmsg]") - var/datum/admin_help/AH = admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to IRC: [keywordparsedmsg]") - ircreplyamount-- - send2irc("[AH ? "#[AH.id] " : ""]Reply: [ckey]", rawmsg) - else - if(recipient.holder) - if(holder) //both are admins - to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]") - to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]") - - //omg this is dumb, just fill in both their tickets - var/interaction_message = "PM from-[key_name(src, recipient, 1)] to-[key_name(recipient, src, 1)]: [keywordparsedmsg]" - admin_ticket_log(src, interaction_message) - if(recipient != src) //reeee - admin_ticket_log(recipient, interaction_message) - - else //recipient is an admin but sender is not - var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]" - admin_ticket_log(src, replymsg) - to_chat(recipient, replymsg) - to_chat(src, "PM to-Admins: [msg]") - - //play the recieving admin the adminhelp sound (if they have them enabled) - if(recipient.prefs.toggles & SOUND_ADMINHELP) - recipient << 'sound/effects/adminhelp.ogg' - - else - if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT - if(!recipient.current_ticket) - new /datum/admin_help(msg, recipient, TRUE) - - to_chat(recipient, "-- Administrator private message --") - to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]") - to_chat(recipient, "Click on the administrator's name to reply.") - to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]") - - admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]") - - //always play non-admin recipients the adminhelp sound - recipient << 'sound/effects/adminhelp.ogg' - - //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn - if(config.popup_admin_pm) - spawn() //so we don't hold the caller proc up - var/sender = src - var/sendername = key - var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply - if(recipient && reply) - if(sender) - recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them - else - adminhelp(reply) //sender has left, adminhelp instead - return - - else //neither are admins - to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.") - return - - if(irc) - log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]") +#define IRCREPLYCOUNT 2 + + +//allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm +/client/proc/cmd_admin_pm_context(mob/M in GLOB.mob_list) + set category = null + set name = "Admin PM Mob" + if(!holder) + to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.") + return + if( !ismob(M) || !M.client ) + return + cmd_admin_pm(M.client,null) + SSblackbox.add_details("admin_verb","Admin PM Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//shows a list of clients we could send PMs to, then forwards our choice to cmd_admin_pm +/client/proc/cmd_admin_pm_panel() + set category = "Admin" + set name = "Admin PM" + if(!holder) + to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.") + return + var/list/client/targets[0] + for(var/client/T) + if(T.mob) + if(isnewplayer(T.mob)) + targets["(New Player) - [T]"] = T + else if(isobserver(T.mob)) + targets["[T.mob.name](Ghost) - [T]"] = T + else + targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T + else + targets["(No Mob) - [T]"] = T + var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets) + cmd_admin_pm(targets[target],null) + SSblackbox.add_details("admin_verb","Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_ahelp_reply(whom) + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + return + var/client/C + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + C = GLOB.directory[whom] + else if(istype(whom,/client)) + C = whom + if(!C) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + return + + var/datum/admin_help/AH = C.current_ticket + + if(AH) + message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") + var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null + if (!msg) + message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") + return + cmd_admin_pm(whom, msg) + +//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. +//Fetching a message if needed. src is the sender and C is the target client +/client/proc/cmd_admin_pm(whom, msg) + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + return + + if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo + to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.") + to_chat(src, "Message: [msg]") + return + + var/client/recipient + var/irc = 0 + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + if(whom == "IRCKEY") + irc = 1 + else + recipient = GLOB.directory[whom] + else if(istype(whom,/client)) + recipient = whom + + + if(irc) + if(!ircreplyamount) //to prevent people from spamming irc + return + if(!msg) + msg = input(src,"Message:", "Private message to Administrator") as text|null + + if(!msg) + return + if(holder) + to_chat(src, "Error: Use the admin IRC channel, nerd.") + return + + + else + if(!recipient) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + to_chat(src, msg) + else + current_ticket.MessageNoRecipient(msg) + return + + //get message text, limit it's length.and clean/escape html + if(!msg) + msg = input(src,"Message:", "Private message to [key_name(recipient, 0, 0)]") as text|null + + if(!msg) + return + + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + return + + if(!recipient) + if(holder) + to_chat(src, "Error: Admin-PM: Client not found.") + else + current_ticket.MessageNoRecipient(msg) + return + + if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||irc)//no sending html to the poor bots + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg) + return + + var/rawmsg = msg + + if(holder) + msg = emoji_parse(msg) + + var/keywordparsedmsg = keywords_lookup(msg) + + if(irc) + to_chat(src, "PM to-Admins: [rawmsg]") + var/datum/admin_help/AH = admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to IRC: [keywordparsedmsg]") + ircreplyamount-- + send2irc("[AH ? "#[AH.id] " : ""]Reply: [ckey]", rawmsg) + else + if(recipient.holder) + if(holder) //both are admins + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]") + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]") + + //omg this is dumb, just fill in both their tickets + var/interaction_message = "PM from-[key_name(src, recipient, 1)] to-[key_name(recipient, src, 1)]: [keywordparsedmsg]" + admin_ticket_log(src, interaction_message) + if(recipient != src) //reeee + admin_ticket_log(recipient, interaction_message) + + else //recipient is an admin but sender is not + var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]" + admin_ticket_log(src, replymsg) + to_chat(recipient, replymsg) + to_chat(src, "PM to-Admins: [msg]") + + //play the recieving admin the adminhelp sound (if they have them enabled) + if(recipient.prefs.toggles & SOUND_ADMINHELP) + recipient << 'sound/effects/adminhelp.ogg' + + else + if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT + if(!recipient.current_ticket) + new /datum/admin_help(msg, recipient, TRUE) + + to_chat(recipient, "-- Administrator private message --") + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]") + to_chat(recipient, "Click on the administrator's name to reply.") + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]") + + admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]") + + //always play non-admin recipients the adminhelp sound + recipient << 'sound/effects/adminhelp.ogg' + + //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn + if(config.popup_admin_pm) + spawn() //so we don't hold the caller proc up + var/sender = src + var/sendername = key + var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply + if(recipient && reply) + if(sender) + recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them + else + adminhelp(reply) //sender has left, adminhelp instead + return + + else //neither are admins + to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.") + return + + if(irc) + log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]") for(var/client/X in GLOB.admins) to_chat(X, "PM: [key_name(src, X, 0)]->IRC: [keywordparsedmsg]") - else - window_flash(recipient, ignorepref = TRUE) - log_admin_private("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") - //we don't use message_admins here because the sender/receiver might get it too - for(var/client/X in GLOB.admins) - if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient + else + window_flash(recipient, ignorepref = TRUE) + log_admin_private("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") + //we don't use message_admins here because the sender/receiver might get it too + for(var/client/X in GLOB.admins) + if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" ) - - - + + + #define IRC_AHELP_USAGE "Usage: ticket " -/proc/IrcPm(target,msg,sender) +/proc/IrcPm(target,msg,sender) target = ckey(target) - var/client/C = GLOB.directory[target] - - var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target) - var/compliant_msg = trim(lowertext(msg)) - var/irc_tagged = "[sender](IRC)" - var/list/splits = splittext(compliant_msg, " ") - if(splits.len && splits[1] == "ticket") - if(splits.len < 2) + var/client/C = GLOB.directory[target] + + var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target) + var/compliant_msg = trim(lowertext(msg)) + var/irc_tagged = "[sender](IRC)" + var/list/splits = splittext(compliant_msg, " ") + if(splits.len && splits[1] == "ticket") + if(splits.len < 2) return IRC_AHELP_USAGE - switch(splits[2]) - if("close") - if(ticket) - ticket.Close(irc_tagged) - return "Ticket #[ticket.id] successfully closed" - if("resolve") - if(ticket) - ticket.Resolve(irc_tagged) - return "Ticket #[ticket.id] successfully resolved" - if("icissue") - if(ticket) - ticket.ICIssue(irc_tagged) - return "Ticket #[ticket.id] successfully marked as IC issue" - if("reject") - if(ticket) - ticket.Reject(irc_tagged) - return "Ticket #[ticket.id] successfully rejected" + switch(splits[2]) + if("close") + if(ticket) + ticket.Close(irc_tagged) + return "Ticket #[ticket.id] successfully closed" + if("resolve") + if(ticket) + ticket.Resolve(irc_tagged) + return "Ticket #[ticket.id] successfully resolved" + if("icissue") + if(ticket) + ticket.ICIssue(irc_tagged) + return "Ticket #[ticket.id] successfully marked as IC issue" + if("reject") + if(ticket) + ticket.Reject(irc_tagged) + return "Ticket #[ticket.id] successfully rejected" if("reopen") if(ticket) return "Error: [target] already has ticket #[ticket.id] open" @@ -272,54 +272,52 @@ . += "Active: " . += "#[AH.id]" return - else + else return IRC_AHELP_USAGE - return "Error: Ticket could not be found" - - var/static/stealthkey - var/adminname = config.showircname ? irc_tagged : "Administrator" - - if(!C) - return "Error: No client" - - if(!stealthkey) - stealthkey = GenIrcStealthKey() - - msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) - if(!msg) - return "Error: No message" - - message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") - log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]") - msg = emoji_parse(msg) - - to_chat(C, "-- Administrator private message --") - to_chat(C, "Admin PM from-[adminname]: [msg]") - to_chat(C, "Click on the administrator's name to reply.") - - admin_ticket_log(C, "PM From [irc_tagged]: [msg]") - - window_flash(C, ignorepref = TRUE) - //always play non-admin recipients the adminhelp sound - C << 'sound/effects/adminhelp.ogg' - - C.ircreplyamount = IRCREPLYCOUNT - - return "Message Successful" - - - -/proc/GenIrcStealthKey() - var/num = (rand(0,1000)) - var/i = 0 - while(i == 0) - i = 1 - for(var/P in GLOB.stealthminID) - if(num == GLOB.stealthminID[P]) - num++ - i = 0 - var/stealth = "@[num2text(num)]" - GLOB.stealthminID["IRCKEY"] = stealth - return stealth - -#undef IRCREPLYCOUNT \ No newline at end of file + return "Error: Ticket could not be found" + + var/static/stealthkey + var/adminname = config.showircname ? irc_tagged : "Administrator" + + if(!C) + return "Error: No client" + + if(!stealthkey) + stealthkey = GenIrcStealthKey() + + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg) + return "Error: No message" + + message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") + log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]") + msg = emoji_parse(msg) + + to_chat(C, "-- Administrator private message --") + to_chat(C, "Admin PM from-[adminname]: [msg]") + to_chat(C, "Click on the administrator's name to reply.") + + admin_ticket_log(C, "PM From [irc_tagged]: [msg]") + + window_flash(C, ignorepref = TRUE) + //always play non-admin recipients the adminhelp sound + C << 'sound/effects/adminhelp.ogg' + + C.ircreplyamount = IRCREPLYCOUNT + + return "Message Successful" + +/proc/GenIrcStealthKey() + var/num = (rand(0,1000)) + var/i = 0 + while(i == 0) + i = 1 + for(var/P in GLOB.stealthminID) + if(num == GLOB.stealthminID[P]) + num++ + i = 0 + var/stealth = "@[num2text(num)]" + GLOB.stealthminID["IRCKEY"] = stealth + return stealth + +#undef IRCREPLYCOUNT diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 173b90edca..53fb5b206e 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -1,22 +1,22 @@ -/client/proc/cmd_admin_say(msg as text) - set category = "Special Verbs" - set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite - set hidden = 1 - if(!check_rights(0)) - return - - msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) - if(!msg) - return - - log_adminsay("[key_name(src)] : [msg]") - msg = keywords_lookup(msg) - if(check_rights(R_ADMIN,0)) - msg = "ADMIN: [key_name(usr, 1)] (FLW): [msg]" - to_chat(GLOB.admins, msg) - else - msg = "ADMIN: [key_name(usr, 1)]: [msg]" - to_chat(GLOB.admins, msg) - +/client/proc/cmd_admin_say(msg as text) + set category = "Special Verbs" + set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite + set hidden = 1 + if(!check_rights(0)) + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + if(!msg) + return + + log_adminsay("[key_name(src)] : [msg]") + msg = keywords_lookup(msg) + if(check_rights(R_ADMIN,0)) + msg = "ADMIN: [key_name(usr, 1)] (FLW): [msg]" + to_chat(GLOB.admins, msg) + else + msg = "ADMIN: [key_name(usr, 1)]: [msg]" + to_chat(GLOB.admins, msg) + SSblackbox.add_details("admin_verb","Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - + diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index 9a16414132..730cd68987 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -1,41 +1,41 @@ -/client/proc/atmosscan() - set category = "Mapping" - set name = "Check Plumbing" - if(!src.holder) - to_chat(src, "Only administrators may use this command.") - return +/client/proc/atmosscan() + set category = "Mapping" + set name = "Check Plumbing" + if(!src.holder) + to_chat(src, "Only administrators may use this command.") + return SSblackbox.add_details("admin_verb","Check Plumbing") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - //all plumbing - yes, some things might get stated twice, doesn't matter. - for (var/obj/machinery/atmospherics/plumbing in GLOB.machines) - if (plumbing.nodealert) - to_chat(usr, "Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])") - - //Manifolds - for (var/obj/machinery/atmospherics/pipe/manifold/pipe in GLOB.machines) - if (!pipe.NODE1 || !pipe.NODE2 || !pipe.NODE3) - to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])") - - //Pipes - for (var/obj/machinery/atmospherics/pipe/simple/pipe in GLOB.machines) - if (!pipe.NODE1 || !pipe.NODE2) - to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])") - -/client/proc/powerdebug() - set category = "Mapping" - set name = "Check Power" - if(!src.holder) - to_chat(src, "Only administrators may use this command.") - return + + //all plumbing - yes, some things might get stated twice, doesn't matter. + for (var/obj/machinery/atmospherics/plumbing in GLOB.machines) + if (plumbing.nodealert) + to_chat(usr, "Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])") + + //Manifolds + for (var/obj/machinery/atmospherics/pipe/manifold/pipe in GLOB.machines) + if (!pipe.NODE1 || !pipe.NODE2 || !pipe.NODE3) + to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])") + + //Pipes + for (var/obj/machinery/atmospherics/pipe/simple/pipe in GLOB.machines) + if (!pipe.NODE1 || !pipe.NODE2) + to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])") + +/client/proc/powerdebug() + set category = "Mapping" + set name = "Check Power" + if(!src.holder) + to_chat(src, "Only administrators may use this command.") + return SSblackbox.add_details("admin_verb","Check Power") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - for (var/datum/powernet/PN in GLOB.powernets) - if (!PN.nodes || !PN.nodes.len) - if(PN.cables && (PN.cables.len > 1)) - var/obj/structure/cable/C = PN.cables[1] - to_chat(usr, "Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]") - - if (!PN.cables || (PN.cables.len < 10)) - if(PN.cables && (PN.cables.len > 1)) - var/obj/structure/cable/C = PN.cables[1] + + for (var/datum/powernet/PN in GLOB.powernets) + if (!PN.nodes || !PN.nodes.len) + if(PN.cables && (PN.cables.len > 1)) + var/obj/structure/cable/C = PN.cables[1] + to_chat(usr, "Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]") + + if (!PN.cables || (PN.cables.len < 10)) + if(PN.cables && (PN.cables.len > 1)) + var/obj/structure/cable/C = PN.cables[1] to_chat(usr, "Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]") \ No newline at end of file diff --git a/code/modules/admin/verbs/bluespacearty.dm b/code/modules/admin/verbs/bluespacearty.dm index a09dd4b527..97248b572b 100644 --- a/code/modules/admin/verbs/bluespacearty.dm +++ b/code/modules/admin/verbs/bluespacearty.dm @@ -21,7 +21,6 @@ target.gib(1, 1) else target.adjustBruteLoss(min(99,(target.health - 1))) - target.Stun(20) - target.Weaken(20) + target.Knockdown(400) target.stuttering = 20 diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 500edfe665..c71c832190 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -1,32 +1,32 @@ -/client/proc/dsay(msg as text) - set category = "Special Verbs" - set name = "Dsay" //Gave this shit a shorter name so you only have to time out "dsay" rather than "dead say" to use it --NeoFite - set hidden = 1 - if(!src.holder) - to_chat(src, "Only administrators may use this command.") - return - if(!src.mob) - return - if(prefs.muted & MUTE_DEADCHAT) - to_chat(src, "You cannot send DSAY messages (muted).") - return - - if (src.handle_spam_prevention(msg,MUTE_DEADCHAT)) - return - - msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) - log_dsay("[key_name(src)] : [msg]") - - if (!msg) - return +/client/proc/dsay(msg as text) + set category = "Special Verbs" + set name = "Dsay" //Gave this shit a shorter name so you only have to time out "dsay" rather than "dead say" to use it --NeoFite + set hidden = 1 + if(!src.holder) + to_chat(src, "Only administrators may use this command.") + return + if(!src.mob) + return + if(prefs.muted & MUTE_DEADCHAT) + to_chat(src, "You cannot send DSAY messages (muted).") + return + + if (src.handle_spam_prevention(msg,MUTE_DEADCHAT)) + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + log_dsay("[key_name(src)] : [msg]") + + if (!msg) + return var/static/nicknames = world.file2list("config/admin_nicknames.txt") - - var/rendered = "DEAD: ADMIN([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[msg]\"" - - for (var/mob/M in GLOB.player_list) - if(isnewplayer(M)) - continue - if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above - M.show_message(rendered, 2) - - SSblackbox.add_details("admin_verb","Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + + var/rendered = "DEAD: ADMIN([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[msg]\"" + + for (var/mob/M in GLOB.player_list) + if(isnewplayer(M)) + continue + if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + M.show_message(rendered, 2) + + SSblackbox.add_details("admin_verb","Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 7df2832481..7dc71a2fc5 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -109,6 +109,7 @@ GLOBAL_PROTECT(AdminProcCallCount) UNTIL(!GLOB.AdminProcCaller) to_chat(usr, "Running your proc") GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you + ++GLOB.AdminProcCallCount . = world.WrapAdminProcCall(target, procname, arguments) if(--GLOB.AdminProcCallCount == 0) GLOB.AdminProcCaller = null @@ -839,4 +840,4 @@ GLOBAL_PROTECT(AdminProcCallCount) message_admins("[key_name_admin(src)] pumped a random event.") SSblackbox.add_details("admin_verb","Pump Random Event") - log_admin("[key_name(src)] pumped a random event.") \ No newline at end of file + log_admin("[key_name(src)] pumped a random event.") diff --git a/code/modules/admin/verbs/fps.dm b/code/modules/admin/verbs/fps.dm index 6f77ee7e50..bedcd0a6e5 100644 --- a/code/modules/admin/verbs/fps.dm +++ b/code/modules/admin/verbs/fps.dm @@ -1,24 +1,24 @@ -//replaces the old Ticklag verb, fps is easier to understand -/client/proc/set_server_fps() - set category = "Debug" - set name = "Set Server FPS" - set desc = "Sets game speed in frames-per-second. Can potentially break the game" - - if(!check_rights(R_DEBUG)) - return - - var/new_fps = round(input("Sets game frames-per-second. Can potentially break the game (default: [config.fps])","FPS", world.fps) as num|null) - - if(new_fps <= 0) - to_chat(src, "Error: set_server_fps(): Invalid world.fps value. No changes made.") - return - if(new_fps > config.fps*1.5) - if(alert(src, "You are setting fps to a high value:\n\t[new_fps] frames-per-second\n\tconfig.fps = [config.fps]","Warning!","Confirm","ABORT-ABORT-ABORT") != "Confirm") - return - - var/msg = "[key_name(src)] has modified world.fps to [new_fps]" - log_admin(msg, 0) - message_admins(msg, 0) +//replaces the old Ticklag verb, fps is easier to understand +/client/proc/set_server_fps() + set category = "Debug" + set name = "Set Server FPS" + set desc = "Sets game speed in frames-per-second. Can potentially break the game" + + if(!check_rights(R_DEBUG)) + return + + var/new_fps = round(input("Sets game frames-per-second. Can potentially break the game (default: [config.fps])","FPS", world.fps) as num|null) + + if(new_fps <= 0) + to_chat(src, "Error: set_server_fps(): Invalid world.fps value. No changes made.") + return + if(new_fps > config.fps*1.5) + if(alert(src, "You are setting fps to a high value:\n\t[new_fps] frames-per-second\n\tconfig.fps = [config.fps]","Warning!","Confirm","ABORT-ABORT-ABORT") != "Confirm") + return + + var/msg = "[key_name(src)] has modified world.fps to [new_fps]" + log_admin(msg, 0) + message_admins(msg, 0) SSblackbox.add_details("admin_toggle","Set Server FPS|[new_fps]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - world.fps = new_fps + + world.fps = new_fps diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index 24cb4275b8..fe3fe61b3f 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -1,49 +1,49 @@ -//This proc allows download of past server logs saved within the data/logs/ folder. -//It works similarly to show-server-log. -/client/proc/getserverlog() - set name = ".getserverlog" - set desc = "Fetch logfiles from data/logs" - set category = null - - var/path = browse_files("data/logs/") - if(!path) - return - - if(file_spam_check()) - return - - message_admins("[key_name_admin(src)] accessed file: [path]") - src << ftp(file(path)) - to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") - return - - -//Other log stuff put here for the sake of organisation - -//Shows today's server log -/datum/admins/proc/view_txt_log() - set category = "Admin" - set name = "Show Server Log" +//This proc allows download of past server logs saved within the data/logs/ folder. +//It works similarly to show-server-log. +/client/proc/getserverlog() + set name = ".getserverlog" + set desc = "Fetch logfiles from data/logs" + set category = null + + var/path = browse_files("data/logs/") + if(!path) + return + + if(file_spam_check()) + return + + message_admins("[key_name_admin(src)] accessed file: [path]") + src << ftp(file(path)) + to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") + return + + +//Other log stuff put here for the sake of organisation + +//Shows today's server log +/datum/admins/proc/view_txt_log() + set category = "Admin" + set name = "Show Server Log" set desc = "Shows server log for this round." - + if(fexists("[GLOB.world_game_log]")) src << ftp(GLOB.world_game_log) - else - to_chat(src, "Server log not found, try using .getserverlog.") - return + else + to_chat(src, "Server log not found, try using .getserverlog.") + return SSblackbox.add_details("admin_verb","Show Server Log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return - -//Shows today's attack log -/datum/admins/proc/view_atk_log() - set category = "Admin" - set name = "Show Server Attack Log" + return + +//Shows today's attack log +/datum/admins/proc/view_atk_log() + set category = "Admin" + set name = "Show Server Attack Log" set desc = "Shows server attack log for this round." - + if(fexists("[GLOB.world_attack_log]")) src << ftp(GLOB.world_attack_log) - else - to_chat(src, "Server attack log not found, try using .getserverlog.") - return + else + to_chat(src, "Server attack log not found, try using .getserverlog.") + return SSblackbox.add_details("admin_verb","Show Server Attack log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return + return diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 0286b90501..954f849bf9 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -176,7 +176,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( SSblackbox.add_details("admin_verb","Show Roundstart Active Turf Markers") - /client/proc/enable_debug_verbs() set category = "Debug" set name = "Debug verbs - Enable" diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm index eace5e471d..e17cbbbf86 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/verbs/massmodvar.dm @@ -1,266 +1,266 @@ -/client/proc/cmd_mass_modify_object_variables(atom/A, var_name) - set category = "Debug" - set name = "Mass Edit Variables" - set desc="(target) Edit all instances of a target item's variables" - - var/method = 0 //0 means strict type detection while 1 means this type and all subtypes (IE: /obj/item with this set to 1 will set it to ALL items) - - if(!check_rights(R_VAREDIT)) - return - - if(A && A.type) - method = vv_subtype_prompt(A.type) - - src.massmodify_variables(A, var_name, method) +/client/proc/cmd_mass_modify_object_variables(atom/A, var_name) + set category = "Debug" + set name = "Mass Edit Variables" + set desc="(target) Edit all instances of a target item's variables" + + var/method = 0 //0 means strict type detection while 1 means this type and all subtypes (IE: /obj/item with this set to 1 will set it to ALL items) + + if(!check_rights(R_VAREDIT)) + return + + if(A && A.type) + method = vv_subtype_prompt(A.type) + + src.massmodify_variables(A, var_name, method) SSblackbox.add_details("admin_verb","Mass Edit Variables") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/massmodify_variables(datum/O, var_name = "", method = 0) - if(!check_rights(R_VAREDIT)) - return - if(!istype(O)) - return - - var/variable = "" - if(!var_name) - var/list/names = list() - for (var/V in O.vars) - names += V - - names = sortList(names) - - variable = input("Which var?", "Var") as null|anything in names - else - variable = var_name - - if(!variable || !O.can_vv_get(variable)) - return - var/default - var/var_value = O.vars[variable] - - if(variable in GLOB.VVckey_edit) - to_chat(src, "It's forbidden to mass-modify ckeys. It'll crash everyone's client you dummy.") - return - if(variable in GLOB.VVlocked) - if(!check_rights(R_DEBUG)) - return - if(variable in GLOB.VVicon_edit_lock) - if(!check_rights(R_FUN|R_DEBUG)) - return - if(variable in GLOB.VVpixelmovement) - if(!check_rights(R_DEBUG)) - return - var/prompt = alert(src, "Editing this var may irreparably break tile gliding for the rest of the round. THIS CAN'T BE UNDONE", "DANGER", "ABORT ", "Continue", " ABORT") - if (prompt != "Continue") - return - - default = vv_get_class(var_value) - - if(isnull(default)) - to_chat(src, "Unable to determine variable type.") - else - to_chat(src, "Variable appears to be [uppertext(default)].") - - to_chat(src, "Variable contains: [var_value]") - - if(default == VV_NUM) - var/dir_text = "" - if(dir < 0 && dir < 16) - if(dir & 1) - dir_text += "NORTH" - if(dir & 2) - dir_text += "SOUTH" - if(dir & 4) - dir_text += "EAST" - if(dir & 8) - dir_text += "WEST" - - if(dir_text) - to_chat(src, "If a direction, direction is: [dir_text]") - - var/value = vv_get_value(default_class = default) - var/new_value = value["value"] - var/class = value["class"] - - if(!class || !new_value == null && class != VV_NULL) - return - - if (class == VV_MESSAGE) - class = VV_TEXT - - if (value["type"]) - class = VV_NEW_TYPE - - var/original_name = "[O]" - - var/rejected = 0 - var/accepted = 0 - - switch(class) - if(VV_RESTORE_DEFAULT) - to_chat(src, "Finding items...") - var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") - for(var/thing in items) - if (!thing) - continue - var/datum/D = thing - if (D.vv_edit_var(variable, initial(D.vars[variable])) != FALSE) - accepted++ - else - rejected++ - CHECK_TICK - - if(VV_TEXT) - var/list/varsvars = vv_parse_text(O, new_value) - var/pre_processing = new_value - var/unique - if (varsvars && varsvars.len) - unique = alert(usr, "Process vars unique to each instance, or same for all?", "Variable Association", "Unique", "Same") - if(unique == "Unique") - unique = TRUE - else - unique = FALSE - for(var/V in varsvars) - new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]") - - to_chat(src, "Finding items...") - var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") - for(var/thing in items) - if (!thing) - continue - var/datum/D = thing - if(unique) - new_value = pre_processing - for(var/V in varsvars) - new_value = replacetext(new_value,"\[[V]]","[D.vars[V]]") - - if (D.vv_edit_var(variable, new_value) != FALSE) - accepted++ - else - rejected++ - CHECK_TICK - - if (VV_NEW_TYPE) - var/many = alert(src, "Create only one [value["type"]] and assign each or a new one for each thing", "How Many", "One", "Many", "Cancel") - if (many == "Cancel") - return - if (many == "Many") - many = TRUE - else - many = FALSE - - var/type = value["type"] - to_chat(src, "Finding items...") - var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") - for(var/thing in items) - if (!thing) - continue - var/datum/D = thing - if(many && !new_value) - new_value = new type() - - if (D.vv_edit_var(variable, new_value) != FALSE) - accepted++ - else - rejected++ - new_value = null - CHECK_TICK - - else - to_chat(src, "Finding items...") - var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") - for(var/thing in items) - if (!thing) - continue - var/datum/D = thing - if (D.vv_edit_var(variable, new_value) != FALSE) - accepted++ - else - rejected++ - CHECK_TICK - - - var/count = rejected+accepted - if (!count) - to_chat(src, "No objects found") - return - if (!accepted) - to_chat(src, "Every object rejected your edit") - return - if (rejected) - to_chat(src, "[rejected] out of [count] objects rejected your edit") - - log_world("### MassVarEdit by [src]: [O.type] (A/R [accepted]/[rejected]) [variable]=[html_encode("[O.vars[variable]]")]([list2params(value)])") - log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") - message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") - - -/proc/get_all_of_type(var/T, subtypes = TRUE) - var/list/typecache = list() - typecache[T] = 1 - if (subtypes) - typecache = typecacheof(typecache) - . = list() - if (ispath(T, /mob)) - for(var/mob/thing in GLOB.mob_list) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /obj/machinery/door)) - for(var/obj/machinery/door/thing in GLOB.airlocks) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /obj/machinery)) - for(var/obj/machinery/thing in GLOB.machines) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /obj)) - for(var/obj/thing in world) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /atom/movable)) - for(var/atom/movable/thing in world) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /turf)) - for(var/turf/thing in world) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /atom)) - for(var/atom/thing in world) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /client)) - for(var/client/thing in GLOB.clients) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else if (ispath(T, /datum)) - for(var/datum/thing) - if (typecache[thing.type]) - . += thing - CHECK_TICK - - else - for(var/datum/thing in world) - if (typecache[thing.type]) - . += thing - CHECK_TICK - + +/client/proc/massmodify_variables(datum/O, var_name = "", method = 0) + if(!check_rights(R_VAREDIT)) + return + if(!istype(O)) + return + + var/variable = "" + if(!var_name) + var/list/names = list() + for (var/V in O.vars) + names += V + + names = sortList(names) + + variable = input("Which var?", "Var") as null|anything in names + else + variable = var_name + + if(!variable || !O.can_vv_get(variable)) + return + var/default + var/var_value = O.vars[variable] + + if(variable in GLOB.VVckey_edit) + to_chat(src, "It's forbidden to mass-modify ckeys. It'll crash everyone's client you dummy.") + return + if(variable in GLOB.VVlocked) + if(!check_rights(R_DEBUG)) + return + if(variable in GLOB.VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + if(variable in GLOB.VVpixelmovement) + if(!check_rights(R_DEBUG)) + return + var/prompt = alert(src, "Editing this var may irreparably break tile gliding for the rest of the round. THIS CAN'T BE UNDONE", "DANGER", "ABORT ", "Continue", " ABORT") + if (prompt != "Continue") + return + + default = vv_get_class(var_value) + + if(isnull(default)) + to_chat(src, "Unable to determine variable type.") + else + to_chat(src, "Variable appears to be [uppertext(default)].") + + to_chat(src, "Variable contains: [var_value]") + + if(default == VV_NUM) + var/dir_text = "" + if(dir < 0 && dir < 16) + if(dir & 1) + dir_text += "NORTH" + if(dir & 2) + dir_text += "SOUTH" + if(dir & 4) + dir_text += "EAST" + if(dir & 8) + dir_text += "WEST" + + if(dir_text) + to_chat(src, "If a direction, direction is: [dir_text]") + + var/value = vv_get_value(default_class = default) + var/new_value = value["value"] + var/class = value["class"] + + if(!class || !new_value == null && class != VV_NULL) + return + + if (class == VV_MESSAGE) + class = VV_TEXT + + if (value["type"]) + class = VV_NEW_TYPE + + var/original_name = "[O]" + + var/rejected = 0 + var/accepted = 0 + + switch(class) + if(VV_RESTORE_DEFAULT) + to_chat(src, "Finding items...") + var/list/items = get_all_of_type(O.type, method) + to_chat(src, "Changing [items.len] items...") + for(var/thing in items) + if (!thing) + continue + var/datum/D = thing + if (D.vv_edit_var(variable, initial(D.vars[variable])) != FALSE) + accepted++ + else + rejected++ + CHECK_TICK + + if(VV_TEXT) + var/list/varsvars = vv_parse_text(O, new_value) + var/pre_processing = new_value + var/unique + if (varsvars && varsvars.len) + unique = alert(usr, "Process vars unique to each instance, or same for all?", "Variable Association", "Unique", "Same") + if(unique == "Unique") + unique = TRUE + else + unique = FALSE + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]") + + to_chat(src, "Finding items...") + var/list/items = get_all_of_type(O.type, method) + to_chat(src, "Changing [items.len] items...") + for(var/thing in items) + if (!thing) + continue + var/datum/D = thing + if(unique) + new_value = pre_processing + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[D.vars[V]]") + + if (D.vv_edit_var(variable, new_value) != FALSE) + accepted++ + else + rejected++ + CHECK_TICK + + if (VV_NEW_TYPE) + var/many = alert(src, "Create only one [value["type"]] and assign each or a new one for each thing", "How Many", "One", "Many", "Cancel") + if (many == "Cancel") + return + if (many == "Many") + many = TRUE + else + many = FALSE + + var/type = value["type"] + to_chat(src, "Finding items...") + var/list/items = get_all_of_type(O.type, method) + to_chat(src, "Changing [items.len] items...") + for(var/thing in items) + if (!thing) + continue + var/datum/D = thing + if(many && !new_value) + new_value = new type() + + if (D.vv_edit_var(variable, new_value) != FALSE) + accepted++ + else + rejected++ + new_value = null + CHECK_TICK + + else + to_chat(src, "Finding items...") + var/list/items = get_all_of_type(O.type, method) + to_chat(src, "Changing [items.len] items...") + for(var/thing in items) + if (!thing) + continue + var/datum/D = thing + if (D.vv_edit_var(variable, new_value) != FALSE) + accepted++ + else + rejected++ + CHECK_TICK + + + var/count = rejected+accepted + if (!count) + to_chat(src, "No objects found") + return + if (!accepted) + to_chat(src, "Every object rejected your edit") + return + if (rejected) + to_chat(src, "[rejected] out of [count] objects rejected your edit") + + log_world("### MassVarEdit by [src]: [O.type] (A/R [accepted]/[rejected]) [variable]=[html_encode("[O.vars[variable]]")]([list2params(value)])") + log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") + message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") + + +/proc/get_all_of_type(var/T, subtypes = TRUE) + var/list/typecache = list() + typecache[T] = 1 + if (subtypes) + typecache = typecacheof(typecache) + . = list() + if (ispath(T, /mob)) + for(var/mob/thing in GLOB.mob_list) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /obj/machinery/door)) + for(var/obj/machinery/door/thing in GLOB.airlocks) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /obj/machinery)) + for(var/obj/machinery/thing in GLOB.machines) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /obj)) + for(var/obj/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /atom/movable)) + for(var/atom/movable/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /turf)) + for(var/turf/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /atom)) + for(var/atom/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /client)) + for(var/client/thing in GLOB.clients) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /datum)) + for(var/datum/thing) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else + for(var/datum/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index 6f19cf90ee..28a65f4e7d 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -1,619 +1,619 @@ -GLOBAL_LIST_INIT(VVlocked, list("vars", "var_edited", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "force_ending")) -GLOBAL_PROTECT(VVlocked) -GLOBAL_LIST_INIT(VVicon_edit_lock, list("icon", "icon_state", "overlays", "underlays", "resize")) -GLOBAL_PROTECT(VVicon_edit_lock) -GLOBAL_LIST_INIT(VVckey_edit, list("key", "ckey")) -GLOBAL_PROTECT(VVckey_edit) -GLOBAL_LIST_INIT(VVpixelmovement, list("step_x", "step_y", "bound_height", "bound_width", "bound_x", "bound_y")) -GLOBAL_PROTECT(VVpixelmovement) - - -/client/proc/vv_get_class(var/var_value) - if(isnull(var_value)) - . = VV_NULL - - else if (isnum(var_value)) - . = VV_NUM - - else if (istext(var_value)) - if (findtext(var_value, "\n")) - . = VV_MESSAGE - else - . = VV_TEXT - - else if (isicon(var_value)) - . = VV_ICON - - else if (ismob(var_value)) - . = VV_MOB_REFERENCE - - else if (isloc(var_value)) - . = VV_ATOM_REFERENCE - - else if (istype(var_value,/client)) - . = VV_CLIENT - - else if (istype(var_value, /datum)) - . = VV_DATUM_REFERENCE - - else if (ispath(var_value)) - if (ispath(var_value, /atom)) - . = VV_ATOM_TYPE - else if (ispath(var_value, /datum)) - . = VV_DATUM_TYPE - else - . = VV_TYPE - - else if (istype(var_value,/list)) - . = VV_LIST - - else if (isfile(var_value)) - . = VV_FILE - else - . = VV_NULL - -/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes) - . = list("class" = class, "value" = null) - if (!class) - if (!classes) - classes = list ( - VV_NUM, - VV_TEXT, - VV_MESSAGE, - VV_ICON, - VV_ATOM_REFERENCE, - VV_DATUM_REFERENCE, - VV_MOB_REFERENCE, - VV_CLIENT, - VV_ATOM_TYPE, - VV_DATUM_TYPE, - VV_TYPE, - VV_FILE, - VV_NEW_ATOM, - VV_NEW_DATUM, - VV_NEW_TYPE, - VV_NEW_LIST, - VV_NULL, - VV_RESTORE_DEFAULT - ) - - if(holder && holder.marked_datum && !(VV_MARKED_DATUM in restricted_classes)) - classes += "[VV_MARKED_DATUM] ([holder.marked_datum.type])" - if (restricted_classes) - classes -= restricted_classes - - if (extra_classes) - classes += extra_classes - - .["class"] = input(src, "What kind of data?", "Variable Type", default_class) as null|anything in classes - if (holder && holder.marked_datum && .["class"] == "[VV_MARKED_DATUM] ([holder.marked_datum.type])") - .["class"] = VV_MARKED_DATUM - - - switch(.["class"]) - if (VV_TEXT) - .["value"] = input("Enter new text:", "Text", current_value) as null|text - if (.["value"] == null) - .["class"] = null - return - if (VV_MESSAGE) - .["value"] = input("Enter new text:", "Text", current_value) as null|message - if (.["value"] == null) - .["class"] = null - return - - - if (VV_NUM) - .["value"] = input("Enter new number:", "Num", current_value) as null|num - if (.["value"] == null) - .["class"] = null - return - - - if (VV_ATOM_TYPE) - .["value"] = pick_closest_path(FALSE) - if (.["value"] == null) - .["class"] = null - return - - if (VV_DATUM_TYPE) - .["value"] = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - if (.["value"] == null) - .["class"] = null - return - - if (VV_TYPE) - var/type = current_value - var/error = "" - do - type = input("Enter type:[error]", "Type", type) as null|text - if (!type) - break - type = text2path(type) - error = "\nType not found, Please try again" - while(!type) - if (!type) - .["class"] = null - return - .["value"] = type - - - if (VV_ATOM_REFERENCE) - var/type = pick_closest_path(FALSE) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - if (VV_DATUM_REFERENCE) - var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - if (VV_MOB_REFERENCE) - var/type = pick_closest_path(FALSE, make_types_fancy(typesof(/mob))) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - - - if (VV_CLIENT) - .["value"] = input("Select reference:", "Reference", current_value) as null|anything in GLOB.clients - if (.["value"] == null) - .["class"] = null - return - - - if (VV_FILE) - .["value"] = input("Pick file:", "File") as null|file - if (.["value"] == null) - .["class"] = null - return - - - if (VV_ICON) - .["value"] = input("Pick icon:", "Icon") as null|icon - if (.["value"] == null) - .["class"] = null - return - - - if (VV_MARKED_DATUM) - .["value"] = holder.marked_datum - if (.["value"] == null) - .["class"] = null - return - - - if (VV_NEW_ATOM) - var/type = pick_closest_path(FALSE) - if (!type) - .["class"] = null - return - .["type"] = type - .["value"] = new type() - - if (VV_NEW_DATUM) - var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - if (!type) - .["class"] = null - return - .["type"] = type - .["value"] = new type() - - if (VV_NEW_TYPE) - var/type = current_value - var/error = "" - do - type = input("Enter type:[error]", "Type", type) as null|text - if (!type) - break - type = text2path(type) - error = "\nType not found, Please try again" - while(!type) - if (!type) - .["class"] = null - return - .["type"] = type - .["value"] = new type() - - - if (VV_NEW_LIST) - .["value"] = list() - .["type"] = /list - -/client/proc/vv_parse_text(O, new_var) - if(O && findtext(new_var,"\[")) - var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") - if(process_vars == "Yes") - . = string2listofvars(new_var, O) - -//do they want you to include subtypes? -//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) - if (!ispath(type)) - return - var/list/subtypes = subtypesof(type) - if (!subtypes || !subtypes.len) - return FALSE - if (subtypes && subtypes.len) - switch(alert("Strict object type detection?", "Type detection", "Strictly this type","This type and subtypes", "Cancel")) - if("Strictly this type") - return FALSE - if("This type and subtypes") - return TRUE - else - return - -/client/proc/vv_reference_list(type, subtypes) - . = list() - var/list/types = list(type) - if (subtypes) - types = typesof(type) - - var/list/fancytypes = make_types_fancy(types) - - for(var/fancytype in fancytypes) //swap the assoication - types[fancytypes[fancytype]] = fancytype - - var/things = get_all_of_type(type, subtypes) - - var/i = 0 - for(var/thing in things) - var/datum/D = thing - i++ - //try one of 3 methods to shorten the type text: - // fancy type, - // fancy type with the base type removed from the begaining, - // the type with the base type removed from the begaining - var/fancytype = types[D.type] - if (findtext(fancytype, types[type])) - fancytype = copytext(fancytype, lentext(types[type])+1) - var/shorttype = copytext("[D.type]", lentext("[type]")+1) - if (lentext(shorttype) > lentext(fancytype)) - shorttype = fancytype - if (!lentext(shorttype)) - shorttype = "/" - - .["[D]([shorttype])\ref[D]#[i]"] = D - -/client/proc/mod_list_add_ass(atom/O) //hehe - - var/list/L = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) - var/class = L["class"] - if (!class) - return - var/var_value = L["value"] - - if(class == VV_TEXT || class == VV_MESSAGE) - var/list/varsvars = vv_parse_text(O, var_value) - for(var/V in varsvars) - var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") - - return var_value - - -/client/proc/mod_list_add(list/L, atom/O, original_name, objectvar) - var/list/LL = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) - var/class = LL["class"] - if (!class) - return - var/var_value = LL["value"] - - if(class == VV_TEXT || class == VV_MESSAGE) - var/list/varsvars = vv_parse_text(O, var_value) - for(var/V in varsvars) - var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") - - if (O) - L = L.Copy() - - L += var_value - - switch(alert("Would you like to associate a value with the list entry?",,"Yes","No")) - if("Yes") - L[var_value] = mod_list_add_ass(O) //hehe - if (O) - if (O.vv_edit_var(objectvar, L) == FALSE) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: ADDED=[var_value]") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") - message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") - -/client/proc/mod_list(list/L, atom/O, original_name, objectvar, index, autodetect_class = FALSE) - if(!check_rights(R_VAREDIT)) - return - if(!istype(L, /list)) - to_chat(src, "Not a List.") - return - - if(L.len > 1000) - var/confirm = alert(src, "The list you're trying to edit is very long, continuing may crash the server.", "Warning", "Continue", "Abort") - if(confirm != "Continue") - return - - - - var/list/names = list() - for (var/i in 1 to L.len) - var/key = L[i] - var/value - if (IS_NORMAL_LIST(L) && !isnum(key)) - value = L[key] - if (value == null) - value = "null" - names["#[i] [key] = [value]"] = i - if (!index) - var/variable = input("Which var?","Var") as null|anything in names + "(ADD VAR)" + "(CLEAR NULLS)" + "(CLEAR DUPES)" + "(SHUFFLE)" - - if(variable == null) - return - - if(variable == "(ADD VAR)") - mod_list_add(L, O, original_name, objectvar) - return - - if(variable == "(CLEAR NULLS)") - L = L.Copy() - listclearnulls(L) - if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR NULLS") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR NULLS") - message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: CLEAR NULLS") - return - - if(variable == "(CLEAR DUPES)") - L = uniqueList(L) - if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR DUPES") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR DUPES") - message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: CLEAR DUPES") - return - - if(variable == "(SHUFFLE)") - L = shuffle(L) - if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [O.type] [objectvar]: SHUFFLE") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: SHUFFLE") - message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: SHUFFLE") - return - - index = names[variable] - - - var/assoc_key - if (index == null) - return - var/assoc = 0 - var/prompt = alert(src, "Do you want to edit the key or it's assigned value?", "Associated List", "Key", "Assigned Value", "Cancel") - if (prompt == "Cancel") - return - if (prompt == "Assigned Value") - assoc = 1 - assoc_key = L[index] - var/default - var/variable - if (assoc) - variable = L[assoc_key] - else - variable = L[index] - - default = vv_get_class(variable) - - to_chat(src, "Variable appears to be [uppertext(default)].") - - to_chat(src, "Variable contains: [L[index]]") - - if(default == VV_NUM) - var/dir_text = "" - if(dir < 0 && dir < 16) - if(dir & 1) - dir_text += "NORTH" - if(dir & 2) - dir_text += "SOUTH" - if(dir & 4) - dir_text += "EAST" - if(dir & 8) - dir_text += "WEST" - - if(dir_text) - to_chat(usr, "If a direction, direction is: [dir_text]") - - var/original_var - if(assoc) - original_var = L[assoc_key] - else - original_var = L[index] - if (O) - L = L.Copy() - var/class - if(autodetect_class) - if (default == VV_TEXT) - default = VV_MESSAGE - class = default - var/list/LL = vv_get_value(default_class = default, current_value = original_var, restricted_classes = list(VV_RESTORE_DEFAULT), extra_classes = list(VV_LIST, "DELETE FROM LIST")) - class = LL["class"] - if (!class) - return - var/new_var = LL["value"] - - if(class == VV_MESSAGE) - class = VV_TEXT - - switch(class) //Spits a runtime error if you try to modify an entry in the contents list. Dunno how to fix it, yet. - if(VV_LIST) - mod_list(variable, O, original_name, objectvar) - - if("DELETE FROM LIST") - L.Cut(index, index+1) - if (O) - if (O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[original_var]")]") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]") - message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]") - return - - if(VV_TEXT) - var/list/varsvars = vv_parse_text(O, new_var) - for(var/V in varsvars) - new_var = replacetext(new_var,"\[[V]]","[O.vars[V]]") - - - if(assoc) - L[assoc_key] = new_var - else - L[index] = new_var - if (O) - if (O.vv_edit_var(objectvar, L) == FALSE) - to_chat(src, "Your edit was rejected by the object.") - return - log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: [original_var]=[new_var]") - log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]") - message_admins("[key_name_admin(src)] modified [original_name]'s varlist [objectvar]: [original_var]=[new_var]") - -/client/proc/modify_variables(atom/O, param_var_name = null, autodetect_class = 0) - if(!check_rights(R_VAREDIT)) - return - - var/class - var/variable - var/var_value - - if(param_var_name) - if(!param_var_name in O.vars) - to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this datum ([O])") - return - variable = param_var_name - - else - var/list/names = list() - for (var/V in O.vars) - names += V - - names = sortList(names) - - variable = input("Which var?","Var") as null|anything in names - if(!variable) - return - - if(!O.can_vv_get(variable)) - return - - var_value = O.vars[variable] - - if(variable in GLOB.VVlocked) - if(!check_rights(R_DEBUG)) - return - if(variable in GLOB.VVckey_edit) - if(!check_rights(R_SPAWN|R_DEBUG)) - return - if(variable in GLOB.VVicon_edit_lock) - if(!check_rights(R_FUN|R_DEBUG)) - return - if(variable in GLOB.VVpixelmovement) - if(!check_rights(R_DEBUG)) - return - var/prompt = alert(src, "Editing this var may irreparably break tile gliding for the rest of the round. THIS CAN'T BE UNDONE", "DANGER", "ABORT ", "Continue", " ABORT") - if (prompt != "Continue") - return - - - var/default = vv_get_class(var_value) - - if(isnull(default)) - to_chat(src, "Unable to determine variable type.") - else - to_chat(src, "Variable appears to be [uppertext(default)].") - - to_chat(src, "Variable contains: [var_value]") - - if(default == VV_NUM) - var/dir_text = "" - if(dir < 0 && dir < 16) - if(dir & 1) - dir_text += "NORTH" - if(dir & 2) - dir_text += "SOUTH" - if(dir & 4) - dir_text += "EAST" - if(dir & 8) - dir_text += "WEST" - - if(dir_text) - to_chat(src, "If a direction, direction is: [dir_text]") - - if(autodetect_class && default != VV_NULL) - if (default == VV_TEXT) - default = VV_MESSAGE - class = default - - var/list/value = vv_get_value(class, default, var_value, extra_classes = list(VV_LIST)) - class = value["class"] - - if (!class) - return - var/var_new = value["value"] - - if(class == VV_MESSAGE) - class = VV_TEXT - - var/original_name = "[O]" - - switch(class) - if(VV_LIST) - if(!istype(var_value,/list)) - mod_list(list(), O, original_name, variable) - - mod_list(var_value, O, original_name, variable) - return - - if(VV_RESTORE_DEFAULT) - var_new = initial(O.vars[variable]) - - if(VV_TEXT) - var/list/varsvars = vv_parse_text(O, var_new) - for(var/V in varsvars) - var_new = replacetext(var_new,"\[[V]]","[O.vars[V]]") - - - if (O.vv_edit_var(variable, var_new) == FALSE) - to_chat(src, "Your edit was rejected by the object.") - return +GLOBAL_LIST_INIT(VVlocked, list("vars", "var_edited", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "force_ending")) +GLOBAL_PROTECT(VVlocked) +GLOBAL_LIST_INIT(VVicon_edit_lock, list("icon", "icon_state", "overlays", "underlays", "resize")) +GLOBAL_PROTECT(VVicon_edit_lock) +GLOBAL_LIST_INIT(VVckey_edit, list("key", "ckey")) +GLOBAL_PROTECT(VVckey_edit) +GLOBAL_LIST_INIT(VVpixelmovement, list("step_x", "step_y", "bound_height", "bound_width", "bound_x", "bound_y")) +GLOBAL_PROTECT(VVpixelmovement) + + +/client/proc/vv_get_class(var/var_value) + if(isnull(var_value)) + . = VV_NULL + + else if (isnum(var_value)) + . = VV_NUM + + else if (istext(var_value)) + if (findtext(var_value, "\n")) + . = VV_MESSAGE + else + . = VV_TEXT + + else if (isicon(var_value)) + . = VV_ICON + + else if (ismob(var_value)) + . = VV_MOB_REFERENCE + + else if (isloc(var_value)) + . = VV_ATOM_REFERENCE + + else if (istype(var_value,/client)) + . = VV_CLIENT + + else if (istype(var_value, /datum)) + . = VV_DATUM_REFERENCE + + else if (ispath(var_value)) + if (ispath(var_value, /atom)) + . = VV_ATOM_TYPE + else if (ispath(var_value, /datum)) + . = VV_DATUM_TYPE + else + . = VV_TYPE + + else if (islist(var_value)) + . = VV_LIST + + else if (isfile(var_value)) + . = VV_FILE + else + . = VV_NULL + +/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes) + . = list("class" = class, "value" = null) + if (!class) + if (!classes) + classes = list ( + VV_NUM, + VV_TEXT, + VV_MESSAGE, + VV_ICON, + VV_ATOM_REFERENCE, + VV_DATUM_REFERENCE, + VV_MOB_REFERENCE, + VV_CLIENT, + VV_ATOM_TYPE, + VV_DATUM_TYPE, + VV_TYPE, + VV_FILE, + VV_NEW_ATOM, + VV_NEW_DATUM, + VV_NEW_TYPE, + VV_NEW_LIST, + VV_NULL, + VV_RESTORE_DEFAULT + ) + + if(holder && holder.marked_datum && !(VV_MARKED_DATUM in restricted_classes)) + classes += "[VV_MARKED_DATUM] ([holder.marked_datum.type])" + if (restricted_classes) + classes -= restricted_classes + + if (extra_classes) + classes += extra_classes + + .["class"] = input(src, "What kind of data?", "Variable Type", default_class) as null|anything in classes + if (holder && holder.marked_datum && .["class"] == "[VV_MARKED_DATUM] ([holder.marked_datum.type])") + .["class"] = VV_MARKED_DATUM + + + switch(.["class"]) + if (VV_TEXT) + .["value"] = input("Enter new text:", "Text", current_value) as null|text + if (.["value"] == null) + .["class"] = null + return + if (VV_MESSAGE) + .["value"] = input("Enter new text:", "Text", current_value) as null|message + if (.["value"] == null) + .["class"] = null + return + + + if (VV_NUM) + .["value"] = input("Enter new number:", "Num", current_value) as null|num + if (.["value"] == null) + .["class"] = null + return + + + if (VV_ATOM_TYPE) + .["value"] = pick_closest_path(FALSE) + if (.["value"] == null) + .["class"] = null + return + + if (VV_DATUM_TYPE) + .["value"] = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + if (.["value"] == null) + .["class"] = null + return + + if (VV_TYPE) + var/type = current_value + var/error = "" + do + type = input("Enter type:[error]", "Type", type) as null|text + if (!type) + break + type = text2path(type) + error = "\nType not found, Please try again" + while(!type) + if (!type) + .["class"] = null + return + .["value"] = type + + + if (VV_ATOM_REFERENCE) + var/type = pick_closest_path(FALSE) + var/subtypes = vv_subtype_prompt(type) + if (subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if (!value) + .["class"] = null + return + .["value"] = things[value] + + if (VV_DATUM_REFERENCE) + var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + var/subtypes = vv_subtype_prompt(type) + if (subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if (!value) + .["class"] = null + return + .["value"] = things[value] + + if (VV_MOB_REFERENCE) + var/type = pick_closest_path(FALSE, make_types_fancy(typesof(/mob))) + var/subtypes = vv_subtype_prompt(type) + if (subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if (!value) + .["class"] = null + return + .["value"] = things[value] + + + + if (VV_CLIENT) + .["value"] = input("Select reference:", "Reference", current_value) as null|anything in GLOB.clients + if (.["value"] == null) + .["class"] = null + return + + + if (VV_FILE) + .["value"] = input("Pick file:", "File") as null|file + if (.["value"] == null) + .["class"] = null + return + + + if (VV_ICON) + .["value"] = input("Pick icon:", "Icon") as null|icon + if (.["value"] == null) + .["class"] = null + return + + + if (VV_MARKED_DATUM) + .["value"] = holder.marked_datum + if (.["value"] == null) + .["class"] = null + return + + + if (VV_NEW_ATOM) + var/type = pick_closest_path(FALSE) + if (!type) + .["class"] = null + return + .["type"] = type + .["value"] = new type() + + if (VV_NEW_DATUM) + var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + if (!type) + .["class"] = null + return + .["type"] = type + .["value"] = new type() + + if (VV_NEW_TYPE) + var/type = current_value + var/error = "" + do + type = input("Enter type:[error]", "Type", type) as null|text + if (!type) + break + type = text2path(type) + error = "\nType not found, Please try again" + while(!type) + if (!type) + .["class"] = null + return + .["type"] = type + .["value"] = new type() + + + if (VV_NEW_LIST) + .["value"] = list() + .["type"] = /list + +/client/proc/vv_parse_text(O, new_var) + if(O && findtext(new_var,"\[")) + var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + . = string2listofvars(new_var, O) + +//do they want you to include subtypes? +//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) + if (!ispath(type)) + return + var/list/subtypes = subtypesof(type) + if (!subtypes || !subtypes.len) + return FALSE + if (subtypes && subtypes.len) + switch(alert("Strict object type detection?", "Type detection", "Strictly this type","This type and subtypes", "Cancel")) + if("Strictly this type") + return FALSE + if("This type and subtypes") + return TRUE + else + return + +/client/proc/vv_reference_list(type, subtypes) + . = list() + var/list/types = list(type) + if (subtypes) + types = typesof(type) + + var/list/fancytypes = make_types_fancy(types) + + for(var/fancytype in fancytypes) //swap the assoication + types[fancytypes[fancytype]] = fancytype + + var/things = get_all_of_type(type, subtypes) + + var/i = 0 + for(var/thing in things) + var/datum/D = thing + i++ + //try one of 3 methods to shorten the type text: + // fancy type, + // fancy type with the base type removed from the begaining, + // the type with the base type removed from the begaining + var/fancytype = types[D.type] + if (findtext(fancytype, types[type])) + fancytype = copytext(fancytype, lentext(types[type])+1) + var/shorttype = copytext("[D.type]", lentext("[type]")+1) + if (lentext(shorttype) > lentext(fancytype)) + shorttype = fancytype + if (!lentext(shorttype)) + shorttype = "/" + + .["[D]([shorttype])\ref[D]#[i]"] = D + +/client/proc/mod_list_add_ass(atom/O) //hehe + + var/list/L = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) + var/class = L["class"] + if (!class) + return + var/var_value = L["value"] + + if(class == VV_TEXT || class == VV_MESSAGE) + var/list/varsvars = vv_parse_text(O, var_value) + for(var/V in varsvars) + var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") + + return var_value + + +/client/proc/mod_list_add(list/L, atom/O, original_name, objectvar) + var/list/LL = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) + var/class = LL["class"] + if (!class) + return + var/var_value = LL["value"] + + if(class == VV_TEXT || class == VV_MESSAGE) + var/list/varsvars = vv_parse_text(O, var_value) + for(var/V in varsvars) + var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") + + if (O) + L = L.Copy() + + L += var_value + + switch(alert("Would you like to associate a value with the list entry?",,"Yes","No")) + if("Yes") + L[var_value] = mod_list_add_ass(O) //hehe + if (O) + if (O.vv_edit_var(objectvar, L) == FALSE) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: ADDED=[var_value]") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") + +/client/proc/mod_list(list/L, atom/O, original_name, objectvar, index, autodetect_class = FALSE) + if(!check_rights(R_VAREDIT)) + return + if(!istype(L, /list)) + to_chat(src, "Not a List.") + return + + if(L.len > 1000) + var/confirm = alert(src, "The list you're trying to edit is very long, continuing may crash the server.", "Warning", "Continue", "Abort") + if(confirm != "Continue") + return + + + + var/list/names = list() + for (var/i in 1 to L.len) + var/key = L[i] + var/value + if (IS_NORMAL_LIST(L) && !isnum(key)) + value = L[key] + if (value == null) + value = "null" + names["#[i] [key] = [value]"] = i + if (!index) + var/variable = input("Which var?","Var") as null|anything in names + "(ADD VAR)" + "(CLEAR NULLS)" + "(CLEAR DUPES)" + "(SHUFFLE)" + + if(variable == null) + return + + if(variable == "(ADD VAR)") + mod_list_add(L, O, original_name, objectvar) + return + + if(variable == "(CLEAR NULLS)") + L = L.Copy() + listclearnulls(L) + if (!O.vv_edit_var(objectvar, L)) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR NULLS") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR NULLS") + message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: CLEAR NULLS") + return + + if(variable == "(CLEAR DUPES)") + L = uniqueList(L) + if (!O.vv_edit_var(objectvar, L)) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR DUPES") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR DUPES") + message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: CLEAR DUPES") + return + + if(variable == "(SHUFFLE)") + L = shuffle(L) + if (!O.vv_edit_var(objectvar, L)) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [O.type] [objectvar]: SHUFFLE") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: SHUFFLE") + message_admins("[key_name_admin(src)] modified [original_name]'s list [objectvar]: SHUFFLE") + return + + index = names[variable] + + + var/assoc_key + if (index == null) + return + var/assoc = 0 + var/prompt = alert(src, "Do you want to edit the key or it's assigned value?", "Associated List", "Key", "Assigned Value", "Cancel") + if (prompt == "Cancel") + return + if (prompt == "Assigned Value") + assoc = 1 + assoc_key = L[index] + var/default + var/variable + if (assoc) + variable = L[assoc_key] + else + variable = L[index] + + default = vv_get_class(variable) + + to_chat(src, "Variable appears to be [uppertext(default)].") + + to_chat(src, "Variable contains: [L[index]]") + + if(default == VV_NUM) + var/dir_text = "" + if(dir < 0 && dir < 16) + if(dir & 1) + dir_text += "NORTH" + if(dir & 2) + dir_text += "SOUTH" + if(dir & 4) + dir_text += "EAST" + if(dir & 8) + dir_text += "WEST" + + if(dir_text) + to_chat(usr, "If a direction, direction is: [dir_text]") + + var/original_var + if(assoc) + original_var = L[assoc_key] + else + original_var = L[index] + if (O) + L = L.Copy() + var/class + if(autodetect_class) + if (default == VV_TEXT) + default = VV_MESSAGE + class = default + var/list/LL = vv_get_value(default_class = default, current_value = original_var, restricted_classes = list(VV_RESTORE_DEFAULT), extra_classes = list(VV_LIST, "DELETE FROM LIST")) + class = LL["class"] + if (!class) + return + var/new_var = LL["value"] + + if(class == VV_MESSAGE) + class = VV_TEXT + + switch(class) //Spits a runtime error if you try to modify an entry in the contents list. Dunno how to fix it, yet. + if(VV_LIST) + mod_list(variable, O, original_name, objectvar) + + if("DELETE FROM LIST") + L.Cut(index, index+1) + if (O) + if (O.vv_edit_var(objectvar, L)) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[original_var]")]") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]") + return + + if(VV_TEXT) + var/list/varsvars = vv_parse_text(O, new_var) + for(var/V in varsvars) + new_var = replacetext(new_var,"\[[V]]","[O.vars[V]]") + + + if(assoc) + L[assoc_key] = new_var + else + L[index] = new_var + if (O) + if (O.vv_edit_var(objectvar, L) == FALSE) + to_chat(src, "Your edit was rejected by the object.") + return + log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: [original_var]=[new_var]") + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]") + message_admins("[key_name_admin(src)] modified [original_name]'s varlist [objectvar]: [original_var]=[new_var]") + +/client/proc/modify_variables(atom/O, param_var_name = null, autodetect_class = 0) + if(!check_rights(R_VAREDIT)) + return + + var/class + var/variable + var/var_value + + if(param_var_name) + if(!param_var_name in O.vars) + to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this datum ([O])") + return + variable = param_var_name + + else + var/list/names = list() + for (var/V in O.vars) + names += V + + names = sortList(names) + + variable = input("Which var?","Var") as null|anything in names + if(!variable) + return + + if(!O.can_vv_get(variable)) + return + + var_value = O.vars[variable] + + if(variable in GLOB.VVlocked) + if(!check_rights(R_DEBUG)) + return + if(variable in GLOB.VVckey_edit) + if(!check_rights(R_SPAWN|R_DEBUG)) + return + if(variable in GLOB.VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + if(variable in GLOB.VVpixelmovement) + if(!check_rights(R_DEBUG)) + return + var/prompt = alert(src, "Editing this var may irreparably break tile gliding for the rest of the round. THIS CAN'T BE UNDONE", "DANGER", "ABORT ", "Continue", " ABORT") + if (prompt != "Continue") + return + + + var/default = vv_get_class(var_value) + + if(isnull(default)) + to_chat(src, "Unable to determine variable type.") + else + to_chat(src, "Variable appears to be [uppertext(default)].") + + to_chat(src, "Variable contains: [var_value]") + + if(default == VV_NUM) + var/dir_text = "" + if(dir < 0 && dir < 16) + if(dir & 1) + dir_text += "NORTH" + if(dir & 2) + dir_text += "SOUTH" + if(dir & 4) + dir_text += "EAST" + if(dir & 8) + dir_text += "WEST" + + if(dir_text) + to_chat(src, "If a direction, direction is: [dir_text]") + + if(autodetect_class && default != VV_NULL) + if (default == VV_TEXT) + default = VV_MESSAGE + class = default + + var/list/value = vv_get_value(class, default, var_value, extra_classes = list(VV_LIST)) + class = value["class"] + + if (!class) + return + var/var_new = value["value"] + + if(class == VV_MESSAGE) + class = VV_TEXT + + var/original_name = "[O]" + + switch(class) + if(VV_LIST) + if(!islist(var_value)) + mod_list(list(), O, original_name, variable) + + mod_list(var_value, O, original_name, variable) + return + + if(VV_RESTORE_DEFAULT) + var_new = initial(O.vars[variable]) + + if(VV_TEXT) + var/list/varsvars = vv_parse_text(O, var_new) + for(var/V in varsvars) + var_new = replacetext(var_new,"\[[V]]","[O.vars[V]]") + + + if (O.vv_edit_var(variable, var_new) == FALSE) + to_chat(src, "Your edit was rejected by the object.") + return log_world("### VarEdit by [src]: [O.type] [variable]=[html_encode("[var_new]")]") log_admin("[key_name(src)] modified [original_name]'s [variable] to [var_new]") var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] to [var_new]" - message_admins(msg) - admin_ticket_log(O, msg) \ No newline at end of file + message_admins(msg) + admin_ticket_log(O, msg) diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 299853ae53..fb08b72732 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -1,124 +1,124 @@ -GLOBAL_VAR_INIT(highlander, FALSE) -/client/proc/only_one() //Gives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. +GLOBAL_VAR_INIT(highlander, FALSE) +/client/proc/only_one() //Gives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. if(!SSticker.HasRoundStarted()) - alert("The game hasn't started yet!") - return - GLOB.highlander = TRUE - - send_to_playing_players("THERE CAN BE ONLY ONE") - - for(var/obj/item/weapon/disk/nuclear/N in GLOB.poi_list) - N.relocate() //Gets it out of bags and such - - for(var/mob/living/carbon/human/H in GLOB.player_list) - if(H.stat == DEAD || !(H.client)) - continue - H.make_scottish() - - message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!") - log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.") - addtimer(CALLBACK(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 1), 50) - -/client/proc/only_one_delayed() - send_to_playing_players("Bagpipes begin to blare. You feel Scottish pride coming over you.") - message_admins("[key_name_admin(usr)] used (delayed) THERE CAN BE ONLY ONE!") - log_admin("[key_name(usr)] used delayed THERE CAN BE ONLY ONE.") - addtimer(CALLBACK(src, .proc/only_one), 420) - -/mob/living/carbon/human/proc/make_scottish() - SSticker.mode.traitors += mind - mind.special_role = "highlander" - dna.species.species_traits |= NOGUNS //nice try jackass - - var/datum/objective/steal/steal_objective = new - steal_objective.owner = mind - steal_objective.set_target(new /datum/objective_item/steal/nukedisc) - mind.objectives += steal_objective - - var/datum/objective/hijack/hijack_objective = new - hijack_objective.explanation_text = "Escape on the shuttle alone. Ensure that nobody else makes it out." - hijack_objective.owner = mind - mind.objectives += hijack_objective - - mind.announce_objectives() - - for(var/obj/item/I in get_equipped_items()) - qdel(I) - for(var/obj/item/I in held_items) - qdel(I) - equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(src), slot_w_uniform) - equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(src), slot_ears) - equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(src), slot_head) - equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(src), slot_shoes) - equip_to_slot_or_del(new /obj/item/weapon/pinpointer(src), slot_l_store) - for(var/obj/item/weapon/pinpointer/P in src) - P.attack_self(src) - var/obj/item/weapon/card/id/W = new(src) - W.icon_state = "centcom" - W.access = get_all_accesses() - W.access += get_all_centcom_access() - W.assignment = "Highlander" - W.registered_name = real_name - W.flags |= NODROP - W.update_label(real_name) - equip_to_slot_or_del(W, slot_wear_id) - - var/obj/item/weapon/claymore/highlander/H1 = new(src) - if(!GLOB.highlander) - H1.admin_spawned = TRUE //To prevent announcing - put_in_hands(H1) - H1.pickup(src) //For the stun shielding - - var/obj/item/weapon/bloodcrawl/antiwelder = new(src) - antiwelder.name = "compulsion of honor" - antiwelder.desc = "You are unable to hold anything in this hand until you're the last one left!" - antiwelder.icon_state = "bloodhand_right" - put_in_hands(antiwelder) - - to_chat(src, "Your [H1.name] cries out for blood. Claim the lives of others, and your own will be restored!\n\ - Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.") - -/proc/only_me() + alert("The game hasn't started yet!") + return + GLOB.highlander = TRUE + + send_to_playing_players("THERE CAN BE ONLY ONE") + + for(var/obj/item/weapon/disk/nuclear/N in GLOB.poi_list) + N.relocate() //Gets it out of bags and such + + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(H.stat == DEAD || !(H.client)) + continue + H.make_scottish() + + message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!") + log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.") + addtimer(CALLBACK(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 1), 50) + +/client/proc/only_one_delayed() + send_to_playing_players("Bagpipes begin to blare. You feel Scottish pride coming over you.") + message_admins("[key_name_admin(usr)] used (delayed) THERE CAN BE ONLY ONE!") + log_admin("[key_name(usr)] used delayed THERE CAN BE ONLY ONE.") + addtimer(CALLBACK(src, .proc/only_one), 420) + +/mob/living/carbon/human/proc/make_scottish() + SSticker.mode.traitors += mind + mind.special_role = "highlander" + dna.species.species_traits |= NOGUNS //nice try jackass + + var/datum/objective/steal/steal_objective = new + steal_objective.owner = mind + steal_objective.set_target(new /datum/objective_item/steal/nukedisc) + mind.objectives += steal_objective + + var/datum/objective/hijack/hijack_objective = new + hijack_objective.explanation_text = "Escape on the shuttle alone. Ensure that nobody else makes it out." + hijack_objective.owner = mind + mind.objectives += hijack_objective + + mind.announce_objectives() + + for(var/obj/item/I in get_equipped_items()) + qdel(I) + for(var/obj/item/I in held_items) + qdel(I) + equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(src), slot_ears) + equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(src), slot_head) + equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(src), slot_shoes) + equip_to_slot_or_del(new /obj/item/weapon/pinpointer(src), slot_l_store) + for(var/obj/item/weapon/pinpointer/P in src) + P.attack_self(src) + var/obj/item/weapon/card/id/W = new(src) + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_all_centcom_access() + W.assignment = "Highlander" + W.registered_name = real_name + W.flags |= NODROP + W.update_label(real_name) + equip_to_slot_or_del(W, slot_wear_id) + + var/obj/item/weapon/claymore/highlander/H1 = new(src) + if(!GLOB.highlander) + H1.admin_spawned = TRUE //To prevent announcing + put_in_hands(H1) + H1.pickup(src) //For the stun shielding + + var/obj/item/weapon/bloodcrawl/antiwelder = new(src) + antiwelder.name = "compulsion of honor" + antiwelder.desc = "You are unable to hold anything in this hand until you're the last one left!" + antiwelder.icon_state = "bloodhand_right" + put_in_hands(antiwelder) + + to_chat(src, "Your [H1.name] cries out for blood. Claim the lives of others, and your own will be restored!\n\ + Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.") + +/proc/only_me() if(!SSticker.HasRoundStarted()) - alert("The game hasn't started yet!") - return - - for(var/mob/living/carbon/human/H in GLOB.player_list) - if(H.stat == 2 || !(H.client)) continue - if(is_special_character(H)) continue - - SSticker.mode.traitors += H.mind - H.mind.special_role = "[H.real_name] Prime" - - var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone - hijack_objective.owner = H.mind - H.mind.objectives += hijack_objective - - to_chat(H, "You are the multiverse summoner. Activate your blade to summon copies of yourself from another universe to fight by your side.") - H.mind.announce_objectives() - - var/datum/gang/multiverse/G = new(src, "[H.real_name]") - SSticker.mode.gangs += G + alert("The game hasn't started yet!") + return + + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(H.stat == 2 || !(H.client)) continue + if(is_special_character(H)) continue + + SSticker.mode.traitors += H.mind + H.mind.special_role = "[H.real_name] Prime" + + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = H.mind + H.mind.objectives += hijack_objective + + to_chat(H, "You are the multiverse summoner. Activate your blade to summon copies of yourself from another universe to fight by your side.") + H.mind.announce_objectives() + + var/datum/gang/multiverse/G = new(src, "[H.real_name]") + SSticker.mode.gangs += G G.bosses[H.mind] = 0 //No they don't use influence but this prevents runtimes. - G.add_gang_hud(H.mind) - H.mind.gang_datum = G - - var/obj/item/slot_item_ID = H.get_item_by_slot(slot_wear_id) - qdel(slot_item_ID) - var/obj/item/slot_item_hand = H.get_item_for_held_index(2) - H.dropItemToGround(slot_item_hand) - - var /obj/item/weapon/multisword/multi = new(H) - H.put_in_hands_or_del(multi) - - var/obj/item/weapon/card/id/W = new(H) - W.icon_state = "centcom" - W.access = get_all_accesses() - W.access += get_all_centcom_access() - W.assignment = "Multiverse Summoner" - W.registered_name = H.real_name - W.update_label(H.real_name) - H.equip_to_slot_or_del(W, slot_wear_id) - - message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ME!") - log_admin("[key_name(usr)] used there can be only me.") + G.add_gang_hud(H.mind) + H.mind.gang_datum = G + + var/obj/item/slot_item_ID = H.get_item_by_slot(slot_wear_id) + qdel(slot_item_ID) + var/obj/item/slot_item_hand = H.get_item_for_held_index(2) + H.dropItemToGround(slot_item_hand) + + var /obj/item/weapon/multisword/multi = new(H) + H.put_in_hands_or_del(multi) + + var/obj/item/weapon/card/id/W = new(H) + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_all_centcom_access() + W.assignment = "Multiverse Summoner" + W.registered_name = H.real_name + W.update_label(H.real_name) + H.equip_to_slot_or_del(W, slot_wear_id) + + message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ME!") + log_admin("[key_name(usr)] used there can be only me.") diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index f359085941..eb4c3a5f10 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -1,22 +1,22 @@ -/client/proc/play_sound(S as sound) - set category = "Fun" - set name = "Play Global Sound" - if(!check_rights(R_SOUNDS)) - return - - var/freq = 1 - if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) - freq = pick(0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1.1, 1.2, 1.4, 1.6, 2.0, 2.5) - to_chat(src, "You feel the Honkmother messing with your song...") - - var/sound/admin_sound = new() - admin_sound.file = S - admin_sound.priority = 250 - admin_sound.channel = CHANNEL_ADMIN - admin_sound.frequency = freq - admin_sound.wait = 1 - admin_sound.repeat = 0 - admin_sound.status = SOUND_STREAM +/client/proc/play_sound(S as sound) + set category = "Fun" + set name = "Play Global Sound" + if(!check_rights(R_SOUNDS)) + return + + var/freq = 1 + if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) + freq = pick(0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1.1, 1.2, 1.4, 1.6, 2.0, 2.5) + to_chat(src, "You feel the Honkmother messing with your song...") + + var/sound/admin_sound = new() + admin_sound.file = S + admin_sound.priority = 250 + admin_sound.channel = CHANNEL_ADMIN + admin_sound.frequency = freq + admin_sound.wait = 1 + admin_sound.repeat = 0 + admin_sound.status = SOUND_STREAM var/res = alert(usr, "Show the title of this song to the players?",, "No", "Yes", "Cancel") switch(res) @@ -27,46 +27,46 @@ log_admin("[key_name(src)] played sound [S]") message_admins("[key_name_admin(src)] played sound [S]") - - for(var/mob/M in GLOB.player_list) - if(M.client.prefs.toggles & SOUND_MIDI) - M << admin_sound - + + for(var/mob/M in GLOB.player_list) + if(M.client.prefs.toggles & SOUND_MIDI) + M << admin_sound + SSblackbox.add_details("admin_verb","Play Global Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - -/client/proc/play_local_sound(S as sound) - set category = "Fun" - set name = "Play Local Sound" - if(!check_rights(R_SOUNDS)) - return - - log_admin("[key_name(src)] played a local sound [S]") - message_admins("[key_name_admin(src)] played a local sound [S]") - playsound(get_turf(src.mob), S, 50, 0, 0) + + +/client/proc/play_local_sound(S as sound) + set category = "Fun" + set name = "Play Local Sound" + if(!check_rights(R_SOUNDS)) + return + + log_admin("[key_name(src)] played a local sound [S]") + message_admins("[key_name_admin(src)] played a local sound [S]") + playsound(get_turf(src.mob), S, 50, 0, 0) SSblackbox.add_details("admin_verb","Play Local Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/set_round_end_sound(S as sound) - set category = "Fun" - set name = "Set Round End Sound" - if(!check_rights(R_SOUNDS)) - return - + +/client/proc/set_round_end_sound(S as sound) + set category = "Fun" + set name = "Set Round End Sound" + if(!check_rights(R_SOUNDS)) + return + SSticker.SetRoundEndSound(S) - - log_admin("[key_name(src)] set the round end sound to [S]") - message_admins("[key_name_admin(src)] set the round end sound to [S]") + + log_admin("[key_name(src)] set the round end sound to [S]") + message_admins("[key_name_admin(src)] set the round end sound to [S]") SSblackbox.add_details("admin_verb","Set Round End Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/stop_sounds() - set category = "Debug" - set name = "Stop All Playing Sounds" - if(!src.holder) - return - - log_admin("[key_name(src)] stopped all currently playing sounds.") - message_admins("[key_name_admin(src)] stopped all currently playing sounds.") - for(var/mob/M in GLOB.player_list) - if(M.client) - M << sound(null) + +/client/proc/stop_sounds() + set category = "Debug" + set name = "Stop All Playing Sounds" + if(!src.holder) + return + + log_admin("[key_name(src)] stopped all currently playing sounds.") + message_admins("[key_name_admin(src)] stopped all currently playing sounds.") + for(var/mob/M in GLOB.player_list) + if(M.client) + M << sound(null) SSblackbox.add_details("admin_verb","Stop All Playing Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm index 86408df8a7..e271cdb3a7 100644 --- a/code/modules/admin/verbs/possess.dm +++ b/code/modules/admin/verbs/possess.dm @@ -1,52 +1,52 @@ -/proc/possess(obj/O in world) - set name = "Possess Obj" - set category = "Object" - - if(O.dangerous_possession && config.forbid_singulo_possession) - to_chat(usr, "[O] is too powerful for you to possess.") - return - - var/turf/T = get_turf(O) - - if(T) - log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") - message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") - else - log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") - message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") - - if(!usr.control_object) //If you're not already possessing something... - usr.name_archive = usr.real_name - - usr.loc = O - usr.real_name = O.name - usr.name = O.name - usr.client.eye = O - usr.control_object = O +/proc/possess(obj/O in world) + set name = "Possess Obj" + set category = "Object" + + if(O.dangerous_possession && config.forbid_singulo_possession) + to_chat(usr, "[O] is too powerful for you to possess.") + return + + var/turf/T = get_turf(O) + + if(T) + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + else + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + + if(!usr.control_object) //If you're not already possessing something... + usr.name_archive = usr.real_name + + usr.loc = O + usr.real_name = O.name + usr.name = O.name + usr.client.eye = O + usr.control_object = O SSblackbox.add_details("admin_verb","Possess Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/proc/release(obj/O in world) - set name = "Release Obj" - set category = "Object" - //usr.loc = get_turf(usr) - - if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object - usr.real_name = usr.name_archive - usr.name = usr.real_name - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.name = H.get_visible_name() -// usr.regenerate_icons() //So the name is updated properly - - usr.loc = O.loc - usr.client.eye = usr - usr.control_object = null + +/proc/release(obj/O in world) + set name = "Release Obj" + set category = "Object" + //usr.loc = get_turf(usr) + + if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object + usr.real_name = usr.name_archive + usr.name = usr.real_name + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.name = H.get_visible_name() +// usr.regenerate_icons() //So the name is updated properly + + usr.loc = O.loc + usr.client.eye = usr + usr.control_object = null SSblackbox.add_details("admin_verb","Release Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/proc/givetestverbs(mob/M in GLOB.mob_list) - set desc = "Give this guy possess/release verbs" - set category = "Debug" - set name = "Give Possessing Verbs" - M.verbs += /proc/possess - M.verbs += /proc/release + +/proc/givetestverbs(mob/M in GLOB.mob_list) + set desc = "Give this guy possess/release verbs" + set category = "Debug" + set name = "Give Possessing Verbs" + M.verbs += /proc/possess + M.verbs += /proc/release SSblackbox.add_details("admin_verb","Give Possessing Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index d083624909..a385e68560 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -65,4 +65,4 @@ msg = "NUKE CODE REQUEST:[ADMIN_FULLMONTY(Sender)] [ADMIN_CENTCOM_REPLY(Sender)] [ADMIN_SET_SD_CODE]: [msg]" to_chat(GLOB.admins, msg) for(var/obj/machinery/computer/communications/C in GLOB.machines) - C.overrideCooldown() \ No newline at end of file + C.overrideCooldown() diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 00796de907..9a8e7c8278 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -483,7 +483,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/announce_command_report = TRUE switch(confirm) if("Yes") - priority_announce(input, null, 'sound/AI/commandreport.ogg') + priority_announce(input, null, 'sound/ai/commandreport.ogg') announce_command_report = FALSE if("Cancel") return @@ -1055,7 +1055,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits continue M.audible_message("...wabbajack...wabbajack...") - playsound(M.loc, 'sound/magic/Staff_Change.ogg', 50, 1, -1) + playsound(M.loc, 'sound/magic/staff_change.ogg', 50, 1, -1) wabbajack(M) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 6f68a962dd..5c4e308770 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -1,283 +1,283 @@ -/obj/item/device/assembly/flash - name = "flash" - desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." - icon_state = "flash" - item_state = "flashtool" - throwforce = 0 - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL = 300, MAT_GLASS = 300) - origin_tech = "magnets=2;combat=1" - - crit_fail = 0 //Is the flash burnt out? - var/times_used = 0 //Number of times it's been used. - var/last_used = 0 //last world.time it was used. - - -/obj/item/device/assembly/flash/update_icon(var/flash = 0) - cut_overlays() - attached_overlays = list() - if(crit_fail) - add_overlay("flashburnt") - attached_overlays += "flashburnt" - - if(flash) - add_overlay("flash-f") - attached_overlays += "flash-f" - spawn(5) - update_icon() - if(holder) - holder.update_icon() - -/obj/item/device/assembly/flash/proc/clown_check(mob/living/carbon/human/user) - if(user.disabilities & CLUMSY && prob(50)) - flash_carbon(user, user, 15, 0) - return 0 - return 1 - -/obj/item/device/assembly/flash/activate() - if(!try_use_flash()) - return 0 - var/turf/T = get_turf(src) - T.visible_message("[src] emits a blinding light!") - for(var/mob/living/carbon/M in viewers(3, T)) - flash_carbon(M, null, 5, 0) - - -/obj/item/device/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. - if(!crit_fail) - crit_fail = 1 - update_icon() - if(ismob(loc)) - var/mob/M = loc - M.visible_message("[src] burns out!","[src] burns out!") - else - var/turf/T = get_turf(src) - T.visible_message("[src] burns out!") - - -/obj/item/device/assembly/flash/proc/flash_recharge(interval=10) - if(prob(times_used * 3)) //The more often it's used in a short span of time the more likely it will burn out - burn_out() - return 0 - - var/deciseconds_passed = world.time - last_used - for(var/seconds = deciseconds_passed/10, seconds>=interval, seconds-=interval) //get 1 charge every interval - times_used-- - - last_used = world.time - times_used = max(0, times_used) //sanity - return 1 - -/obj/item/device/assembly/flash/proc/try_use_flash(mob/user = null) - flash_recharge(10) - - if(crit_fail) - return 0 - - playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) - update_icon(1) - times_used++ - - if(user && !clown_check(user)) - return 0 - - return 1 - - -/obj/item/device/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user = null, power = 15, targeted = 1) - add_logs(user, M, "flashed", src) - if(user && targeted) - if(M.flash_act(1, 1)) - M.confused += power - terrible_conversion_proc(M, user) - M.Weaken(rand(4,6)) - visible_message("[user] blinds [M] with the flash!") - to_chat(user, "You blind [M] with the flash!") - to_chat(M, "[user] blinds you with the flash!") - else - visible_message("[user] fails to blind [M] with the flash!") - to_chat(user, "You fail to blind [M] with the flash!") - to_chat(M, "[user] fails to blind you with the flash!") - else - if(M.flash_act()) - M.confused += power - -/obj/item/device/assembly/flash/attack(mob/living/M, mob/user) - if(!try_use_flash(user)) - return 0 - - if(iscarbon(M)) - flash_carbon(M, user, 5, 1) - return 1 - - else if(issilicon(M)) - var/mob/living/silicon/robot/R = M - add_logs(user, R, "flashed", src) - update_icon(1) - M.Weaken(rand(4,6)) - R.confused += 5 - R.flash_act(affect_silicon = 1) - user.visible_message("[user] overloads [R]'s sensors with the flash!", "You overload [R]'s sensors with the flash!") - return 1 - - user.visible_message("[user] fails to blind [M] with the flash!", "You fail to blind [M] with the flash!") - - -/obj/item/device/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0) - if(holder) - return 0 - if(!try_use_flash(user)) - return 0 - user.visible_message("[user]'s flash emits a blinding light!", "Your flash emits a blinding light!") - for(var/mob/living/carbon/M in oviewers(3, null)) - flash_carbon(M, user, 1, 0) - - -/obj/item/device/assembly/flash/emp_act(severity) - if(!try_use_flash()) - return 0 - if(iscarbon(loc)) - flash_carbon(loc, null, 10, 0) - burn_out() - ..() - - -/obj/item/device/assembly/flash/proc/terrible_conversion_proc(mob/M, mob/user) - if(ishuman(M) && ishuman(user) && M.stat != DEAD) - if(user.mind && (user.mind in SSticker.mode.head_revolutionaries)) - if(M.client) - if(M.stat == CONSCIOUS) - M.mind_initialize() //give them a mind datum if they don't have one. - var/resisted - if(!M.isloyal()) - if(user.mind in SSticker.mode.head_revolutionaries) - if(SSticker.mode.add_revolutionary(M.mind)) - M.Stun(3) - times_used -- //Flashes less likely to burn out for headrevs when used for conversion - else - resisted = 1 - else - resisted = 1 - - if(resisted) - to_chat(user, "This mind seems resistant to the flash!") - else - to_chat(user, "They must be conscious before you can convert them!") - else - to_chat(user, "This mind is so vacant that it is not susceptible to influence!") - - -/obj/item/device/assembly/flash/cyborg - origin_tech = null - -/obj/item/device/assembly/flash/cyborg/attack(mob/living/M, mob/user) - ..() +/obj/item/device/assembly/flash + name = "flash" + desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." + icon_state = "flash" + item_state = "flashtool" + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL = 300, MAT_GLASS = 300) + origin_tech = "magnets=2;combat=1" + + crit_fail = 0 //Is the flash burnt out? + var/times_used = 0 //Number of times it's been used. + var/last_used = 0 //last world.time it was used. + + +/obj/item/device/assembly/flash/update_icon(var/flash = 0) + cut_overlays() + attached_overlays = list() + if(crit_fail) + add_overlay("flashburnt") + attached_overlays += "flashburnt" + + if(flash) + add_overlay("flash-f") + attached_overlays += "flash-f" + spawn(5) + update_icon() + if(holder) + holder.update_icon() + +/obj/item/device/assembly/flash/proc/clown_check(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + flash_carbon(user, user, 15, 0) + return 0 + return 1 + +/obj/item/device/assembly/flash/activate() + if(!try_use_flash()) + return 0 + var/turf/T = get_turf(src) + T.visible_message("[src] emits a blinding light!") + for(var/mob/living/carbon/M in viewers(3, T)) + flash_carbon(M, null, 5, 0) + + +/obj/item/device/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. + if(!crit_fail) + crit_fail = 1 + update_icon() + if(ismob(loc)) + var/mob/M = loc + M.visible_message("[src] burns out!","[src] burns out!") + else + var/turf/T = get_turf(src) + T.visible_message("[src] burns out!") + + +/obj/item/device/assembly/flash/proc/flash_recharge(interval=10) + if(prob(times_used * 3)) //The more often it's used in a short span of time the more likely it will burn out + burn_out() + return 0 + + var/deciseconds_passed = world.time - last_used + for(var/seconds = deciseconds_passed/10, seconds>=interval, seconds-=interval) //get 1 charge every interval + times_used-- + + last_used = world.time + times_used = max(0, times_used) //sanity + return 1 + +/obj/item/device/assembly/flash/proc/try_use_flash(mob/user = null) + flash_recharge(10) + + if(crit_fail) + return 0 + + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + update_icon(1) + times_used++ + + if(user && !clown_check(user)) + return 0 + + return 1 + + +/obj/item/device/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user = null, power = 15, targeted = 1) + add_logs(user, M, "flashed", src) + if(user && targeted) + if(M.flash_act(1, 1)) + M.confused += power + terrible_conversion_proc(M, user) + M.Knockdown(rand(80,120)) + visible_message("[user] blinds [M] with the flash!") + to_chat(user, "You blind [M] with the flash!") + to_chat(M, "[user] blinds you with the flash!") + else + visible_message("[user] fails to blind [M] with the flash!") + to_chat(user, "You fail to blind [M] with the flash!") + to_chat(M, "[user] fails to blind you with the flash!") + else + if(M.flash_act()) + M.confused += power + +/obj/item/device/assembly/flash/attack(mob/living/M, mob/user) + if(!try_use_flash(user)) + return 0 + + if(iscarbon(M)) + flash_carbon(M, user, 5, 1) + return 1 + + else if(issilicon(M)) + var/mob/living/silicon/robot/R = M + add_logs(user, R, "flashed", src) + update_icon(1) + M.Knockdown(rand(80,120)) + R.confused += 5 + R.flash_act(affect_silicon = 1) + user.visible_message("[user] overloads [R]'s sensors with the flash!", "You overload [R]'s sensors with the flash!") + return 1 + + user.visible_message("[user] fails to blind [M] with the flash!", "You fail to blind [M] with the flash!") + + +/obj/item/device/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0) + if(holder) + return 0 + if(!try_use_flash(user)) + return 0 + user.visible_message("[user]'s flash emits a blinding light!", "Your flash emits a blinding light!") + for(var/mob/living/carbon/M in oviewers(3, null)) + flash_carbon(M, user, 1, 0) + + +/obj/item/device/assembly/flash/emp_act(severity) + if(!try_use_flash()) + return 0 + if(iscarbon(loc)) + flash_carbon(loc, null, 10, 0) + burn_out() + ..() + + +/obj/item/device/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/human/H, mob/user) + if(istype(H) && ishuman(user) && H.stat != DEAD) + if(user.mind && (user.mind in SSticker.mode.head_revolutionaries)) + if(H.client) + if(H.stat == CONSCIOUS) + H.mind_initialize() //give them a mind datum if they don't have one. + var/resisted + if(!H.isloyal()) + if(user.mind in SSticker.mode.head_revolutionaries) + if(SSticker.mode.add_revolutionary(H.mind)) + H.Stun(60) + times_used -- //Flashes less likely to burn out for headrevs when used for conversion + else + resisted = 1 + else + resisted = 1 + + if(resisted) + to_chat(user, "This mind seems resistant to the flash!") + else + to_chat(user, "They must be conscious before you can convert them!") + else + to_chat(user, "This mind is so vacant that it is not susceptible to influence!") + + +/obj/item/device/assembly/flash/cyborg + origin_tech = null + +/obj/item/device/assembly/flash/cyborg/attack(mob/living/M, mob/user) + ..() new /obj/effect/temp_visual/borgflash(get_turf(src)) - -/obj/item/device/assembly/flash/cyborg/attack_self(mob/user) - ..() + +/obj/item/device/assembly/flash/cyborg/attack_self(mob/user) + ..() new /obj/effect/temp_visual/borgflash(get_turf(src)) - -/obj/item/device/assembly/flash/cyborg/attackby(obj/item/weapon/W, mob/user, params) - return - -/obj/item/device/assembly/flash/memorizer - name = "memorizer" - desc = "If you see this, you're not likely to remember it any time soon." - icon = 'icons/obj/device.dmi' - icon_state = "memorizer" - item_state = "nullrod" - -/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes - -/obj/item/device/assembly/flash/armimplant - name = "photon projector" - desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out." - var/flashcd = 20 - var/overheat = 0 - var/obj/item/organ/cyberimp/arm/flash/I = null - -/obj/item/device/assembly/flash/armimplant/burn_out() - if(I && I.owner) - to_chat(I.owner, "Your photon projector implant overheats and deactivates!") - I.Retract() - overheat = FALSE - addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2) - -/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null) - if(overheat) - if(I && I.owner) - to_chat(I.owner, "Your photon projector is running too hot to be used again so quickly!") - return FALSE - overheat = TRUE - addtimer(CALLBACK(src, .proc/cooldown), flashcd) - playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) - update_icon(1) - return TRUE - - -/obj/item/device/assembly/flash/armimplant/proc/cooldown() - overheat = FALSE - -/obj/item/device/assembly/flash/shield - name = "strobe shield" - desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs." - icon = 'icons/obj/weapons.dmi' - icon_state = "flashshield" - item_state = "flashshield" - slot_flags = SLOT_BACK - force = 10 - throwforce = 5 - throw_speed = 2 - throw_range = 3 - w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_GLASS=7500, MAT_METAL=1000) - origin_tech = "materials=3;combat=4" - attack_verb = list("shoved", "bashed") - block_chance = 50 - armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 80, acid = 70) - -/obj/item/device/assembly/flash/shield/flash_recharge(interval=10) - if(times_used >= 4) - burn_out() - return 0 - return 1 - -/obj/item/device/assembly/flash/shield/attackby(obj/item/weapon/W, mob/user) - if(istype(W, /obj/item/device/assembly/flash/handheld)) - var/obj/item/device/assembly/flash/handheld/flash = W - if(flash.crit_fail) - to_chat(user, "No sense replacing it with a broken bulb.") - return - else - to_chat(user, "You begin to replace the bulb.") - if(do_after(user, 20, target = src)) - if(flash.crit_fail || !flash || QDELETED(flash)) - return - crit_fail = FALSE - times_used = 0 - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - update_icon() - flash.crit_fail = TRUE - flash.update_icon() - return - ..() - -/obj/item/device/assembly/flash/shield/update_icon(flash = 0) - item_state = "flashshield" - item_state = "flashshield" - - if(crit_fail) - icon_state = "riot" - item_state = "riot" - else if(flash) - item_state = "flashshield_flash" - item_state = "flashshield_flash" - addtimer(CALLBACK(src, .proc/update_icon), 5) - - if(holder) - holder.update_icon() - -/obj/item/device/assembly/flash/shield/hit_reaction(obj/item/weapon/W, mob/user, params) - activate() - return ..() + +/obj/item/device/assembly/flash/cyborg/attackby(obj/item/weapon/W, mob/user, params) + return + +/obj/item/device/assembly/flash/memorizer + name = "memorizer" + desc = "If you see this, you're not likely to remember it any time soon." + icon = 'icons/obj/device.dmi' + icon_state = "memorizer" + item_state = "nullrod" + +/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes + +/obj/item/device/assembly/flash/armimplant + name = "photon projector" + desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out." + var/flashcd = 20 + var/overheat = 0 + var/obj/item/organ/cyberimp/arm/flash/I = null + +/obj/item/device/assembly/flash/armimplant/burn_out() + if(I && I.owner) + to_chat(I.owner, "Your photon projector implant overheats and deactivates!") + I.Retract() + overheat = FALSE + addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2) + +/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null) + if(overheat) + if(I && I.owner) + to_chat(I.owner, "Your photon projector is running too hot to be used again so quickly!") + return FALSE + overheat = TRUE + addtimer(CALLBACK(src, .proc/cooldown), flashcd) + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + update_icon(1) + return TRUE + + +/obj/item/device/assembly/flash/armimplant/proc/cooldown() + overheat = FALSE + +/obj/item/device/assembly/flash/shield + name = "strobe shield" + desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs." + icon = 'icons/obj/weapons.dmi' + icon_state = "flashshield" + item_state = "flashshield" + slot_flags = SLOT_BACK + force = 10 + throwforce = 5 + throw_speed = 2 + throw_range = 3 + w_class = WEIGHT_CLASS_BULKY + materials = list(MAT_GLASS=7500, MAT_METAL=1000) + origin_tech = "materials=3;combat=4" + attack_verb = list("shoved", "bashed") + block_chance = 50 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 80, acid = 70) + +/obj/item/device/assembly/flash/shield/flash_recharge(interval=10) + if(times_used >= 4) + burn_out() + return 0 + return 1 + +/obj/item/device/assembly/flash/shield/attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/device/assembly/flash/handheld)) + var/obj/item/device/assembly/flash/handheld/flash = W + if(flash.crit_fail) + to_chat(user, "No sense replacing it with a broken bulb.") + return + else + to_chat(user, "You begin to replace the bulb.") + if(do_after(user, 20, target = src)) + if(flash.crit_fail || !flash || QDELETED(flash)) + return + crit_fail = FALSE + times_used = 0 + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + update_icon() + flash.crit_fail = TRUE + flash.update_icon() + return + ..() + +/obj/item/device/assembly/flash/shield/update_icon(flash = 0) + item_state = "flashshield" + item_state = "flashshield" + + if(crit_fail) + icon_state = "riot" + item_state = "riot" + else if(flash) + item_state = "flashshield_flash" + item_state = "flashshield_flash" + addtimer(CALLBACK(src, .proc/update_icon), 5) + + if(holder) + holder.update_icon() + +/obj/item/device/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + activate() + return ..() diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 7b49145895..8a434a6f81 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -1,124 +1,124 @@ -/obj/item/device/assembly_holder - name = "Assembly" - icon = 'icons/obj/assemblies/new_assemblies.dmi' - icon_state = "holder" - item_state = "assembly" - flags = CONDUCT - throwforce = 5 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 2 - throw_range = 7 - - var/obj/item/device/assembly/a_left = null - var/obj/item/device/assembly/a_right = null - -/obj/item/device/assembly_holder/IsAssemblyHolder() - return 1 - - -/obj/item/device/assembly_holder/proc/assemble(obj/item/device/assembly/A, obj/item/device/assembly/A2, mob/user) - attach(A,user) - attach(A2,user) - name = "[A.name]-[A2.name] assembly" - update_icon() +/obj/item/device/assembly_holder + name = "Assembly" + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "holder" + item_state = "assembly" + flags = CONDUCT + throwforce = 5 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 2 + throw_range = 7 + + var/obj/item/device/assembly/a_left = null + var/obj/item/device/assembly/a_right = null + +/obj/item/device/assembly_holder/IsAssemblyHolder() + return 1 + + +/obj/item/device/assembly_holder/proc/assemble(obj/item/device/assembly/A, obj/item/device/assembly/A2, mob/user) + attach(A,user) + attach(A2,user) + name = "[A.name]-[A2.name] assembly" + update_icon() SSblackbox.add_details("assembly_made","[initial(A.name)]-[initial(A2.name)]") - -/obj/item/device/assembly_holder/proc/attach(obj/item/device/assembly/A, mob/user) - if(!A.remove_item_from_storage(src)) - if(user) - user.transferItemToLoc(A, src) - else - A.forceMove(src) - A.holder = src - A.toggle_secure() - if(!a_left) - a_left = A - else - a_right = A - -/obj/item/device/assembly_holder/update_icon() - cut_overlays() - if(a_left) - add_overlay("[a_left.icon_state]_left") - for(var/O in a_left.attached_overlays) - add_overlay("[O]_l") - - if(a_right) + +/obj/item/device/assembly_holder/proc/attach(obj/item/device/assembly/A, mob/user) + if(!A.remove_item_from_storage(src)) + if(user) + user.transferItemToLoc(A, src) + else + A.forceMove(src) + A.holder = src + A.toggle_secure() + if(!a_left) + a_left = A + else + a_right = A + +/obj/item/device/assembly_holder/update_icon() + cut_overlays() + if(a_left) + add_overlay("[a_left.icon_state]_left") + for(var/O in a_left.attached_overlays) + add_overlay("[O]_l") + + if(a_right) var/mutable_appearance/right = mutable_appearance(icon, "[a_right.icon_state]_left") right.transform = matrix(-1, 0, 0, 0, 1, 0) - for(var/O in a_right.attached_overlays) + for(var/O in a_right.attached_overlays) right.add_overlay("[O]_l") add_overlay(right) - - if(master) - master.update_icon() - -/obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj) - if(a_left) - a_left.Crossed(AM) - if(a_right) - a_right.Crossed(AM) - -/obj/item/device/assembly_holder/on_found(mob/finder) - if(a_left) - a_left.on_found(finder) - if(a_right) - a_right.on_found(finder) - -/obj/item/device/assembly_holder/Move() - ..() - if(a_left && a_right) - a_left.holder_movement() - a_right.holder_movement() - return - -/obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess - if(a_left && a_right) - a_left.holder_movement() - a_right.holder_movement() - ..() - return - -/obj/item/device/assembly_holder/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/screwdriver)) - var/turf/T = get_turf(src) - if(!T) - return 0 - if(a_left) - a_left.holder = null - a_left.loc = T - if(a_right) - a_right.holder = null - a_right.loc = T - qdel(src) - else - ..() - -/obj/item/device/assembly_holder/attack_self(mob/user) - src.add_fingerprint(user) - if(!a_left || !a_right) - to_chat(user, "Assembly part missing!") - return - if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code - switch(alert("Which side would you like to use?",,"Left","Right")) - if("Left") - a_left.attack_self(user) - if("Right") - a_right.attack_self(user) - return - else - a_left.attack_self(user) - a_right.attack_self(user) - - -/obj/item/device/assembly_holder/proc/process_activation(obj/D, normal = 1, special = 1) - if(!D) - return 0 - if((normal) && (a_right) && (a_left)) - if(a_right != D) - a_right.pulsed(0) - if(a_left != D) - a_left.pulsed(0) - if(master) - master.receive_signal() - return 1 + + if(master) + master.update_icon() + +/obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj) + if(a_left) + a_left.Crossed(AM) + if(a_right) + a_right.Crossed(AM) + +/obj/item/device/assembly_holder/on_found(mob/finder) + if(a_left) + a_left.on_found(finder) + if(a_right) + a_right.on_found(finder) + +/obj/item/device/assembly_holder/Move() + ..() + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + return + +/obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + ..() + return + +/obj/item/device/assembly_holder/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + var/turf/T = get_turf(src) + if(!T) + return 0 + if(a_left) + a_left.holder = null + a_left.loc = T + if(a_right) + a_right.holder = null + a_right.loc = T + qdel(src) + else + ..() + +/obj/item/device/assembly_holder/attack_self(mob/user) + src.add_fingerprint(user) + if(!a_left || !a_right) + to_chat(user, "Assembly part missing!") + return + if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code + switch(alert("Which side would you like to use?",,"Left","Right")) + if("Left") + a_left.attack_self(user) + if("Right") + a_right.attack_self(user) + return + else + a_left.attack_self(user) + a_right.attack_self(user) + + +/obj/item/device/assembly_holder/proc/process_activation(obj/D, normal = 1, special = 1) + if(!D) + return 0 + if((normal) && (a_right) && (a_left)) + if(a_right != D) + a_right.pulsed(0) + if(a_left != D) + a_left.pulsed(0) + if(master) + master.receive_signal() + return 1 diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index e65468fec6..38e624e018 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -1,234 +1,234 @@ -/obj/item/device/assembly/infra - name = "infrared emitter" - desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\nAlt-click to rotate it clockwise." - icon_state = "infrared" - materials = list(MAT_METAL=1000, MAT_GLASS=500) - origin_tech = "magnets=2;materials=2" - - var/on = 0 - var/visible = 0 - var/obj/effect/beam/i_beam/first = null - var/obj/effect/beam/i_beam/last = null - - -/obj/item/device/assembly/infra/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/device/assembly/infra/Destroy() - if(first) - qdel(first) - return ..() - -/obj/item/device/assembly/infra/describe() - return "The infrared trigger is [on?"on":"off"]." - -/obj/item/device/assembly/infra/activate() - if(!..()) - return 0//Cooldown check - on = !on - update_icon() - return 1 - -/obj/item/device/assembly/infra/toggle_secure() - secured = !secured - if(secured) - START_PROCESSING(SSobj, src) - else - on = 0 - if(first) - qdel(first) - STOP_PROCESSING(SSobj, src) - update_icon() - return secured - -/obj/item/device/assembly/infra/update_icon() - cut_overlays() - attached_overlays = list() - if(on) - add_overlay("infrared_on") - attached_overlays += "infrared_on" - - if(holder) - holder.update_icon() - return - -/obj/item/device/assembly/infra/process() - if(!on) - if(first) - qdel(first) - return - if(!secured) - return - if(first && last) - last.process() - return - var/turf/T = get_turf(src) - if(T) - var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(T) - I.master = src - I.density = 1 - I.setDir(dir) - first = I - step(I, I.dir) - if(first) - I.density = 0 - I.vis_spread(visible) - I.limit = 8 - I.process() - -/obj/item/device/assembly/infra/attack_hand() - qdel(first) - ..() - return - -/obj/item/device/assembly/infra/Move() - var/t = dir - ..() - setDir(t) - qdel(first) - return - -/obj/item/device/assembly/infra/holder_movement() - if(!holder) - return 0 - qdel(first) - return 1 - -/obj/item/device/assembly/infra/proc/trigger_beam() - if(!secured || !on || next_activate > world.time) - return FALSE - pulse(0) +/obj/item/device/assembly/infra + name = "infrared emitter" + desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\nAlt-click to rotate it clockwise." + icon_state = "infrared" + materials = list(MAT_METAL=1000, MAT_GLASS=500) + origin_tech = "magnets=2;materials=2" + + var/on = 0 + var/visible = 0 + var/obj/effect/beam/i_beam/first = null + var/obj/effect/beam/i_beam/last = null + + +/obj/item/device/assembly/infra/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/assembly/infra/Destroy() + if(first) + qdel(first) + return ..() + +/obj/item/device/assembly/infra/describe() + return "The infrared trigger is [on?"on":"off"]." + +/obj/item/device/assembly/infra/activate() + if(!..()) + return 0//Cooldown check + on = !on + update_icon() + return 1 + +/obj/item/device/assembly/infra/toggle_secure() + secured = !secured + if(secured) + START_PROCESSING(SSobj, src) + else + on = 0 + if(first) + qdel(first) + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + +/obj/item/device/assembly/infra/update_icon() + cut_overlays() + attached_overlays = list() + if(on) + add_overlay("infrared_on") + attached_overlays += "infrared_on" + + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/infra/process() + if(!on) + if(first) + qdel(first) + return + if(!secured) + return + if(first && last) + last.process() + return + var/turf/T = get_turf(src) + if(T) + var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(T) + I.master = src + I.density = 1 + I.setDir(dir) + first = I + step(I, I.dir) + if(first) + I.density = 0 + I.vis_spread(visible) + I.limit = 8 + I.process() + +/obj/item/device/assembly/infra/attack_hand() + qdel(first) + ..() + return + +/obj/item/device/assembly/infra/Move() + var/t = dir + ..() + setDir(t) + qdel(first) + return + +/obj/item/device/assembly/infra/holder_movement() + if(!holder) + return 0 + qdel(first) + return 1 + +/obj/item/device/assembly/infra/proc/trigger_beam() + if(!secured || !on || next_activate > world.time) + return FALSE + pulse(0) audible_message("[bicon(src)] *beep* *beep*", null, 3) - next_activate = world.time + 30 - -/obj/item/device/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel - if(is_secured(user)) - user.set_machine(src) - var/dat = "Infrared Laser\nStatus: [on ? "On" : "Off"]
    \nVisibility: [visible ? "Visible" : "Invisible"]
    \n
    " - dat += "

    Refresh" - dat += "

    Close" - user << browse(dat, "window=infra") - onclose(user, "infra") - return - -/obj/item/device/assembly/infra/Topic(href, href_list) - ..() - if(usr.incapacitated() || !in_range(loc, usr)) - usr << browse(null, "window=infra") - onclose(usr, "infra") - return - if(href_list["state"]) - on = !(on) - update_icon() - if(href_list["visible"]) - visible = !(visible) - if(first) - first.vis_spread(visible) - if(href_list["close"]) - usr << browse(null, "window=infra") - return - if(usr) - attack_self(usr) - -/obj/item/device/assembly/infra/verb/rotate()//This could likely be better - set name = "Rotate Infrared Laser" - set category = "Object" - set src in usr - - if(usr.incapacitated()) - return - - setDir(turn(dir, 90)) - return - -/obj/item/device/assembly/infra/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - - - -/***************************IBeam*********************************/ - -/obj/effect/beam/i_beam - name = "infrared beam" - icon = 'icons/obj/projectiles.dmi' - icon_state = "ibeam" - var/obj/effect/beam/i_beam/next = null - var/obj/effect/beam/i_beam/previous = null - var/obj/item/device/assembly/infra/master = null - var/limit = null - var/visible = 0 - var/left = null - anchored = 1 - - -/obj/effect/beam/i_beam/proc/hit() - if(master) - master.trigger_beam() - qdel(src) - return - -/obj/effect/beam/i_beam/proc/vis_spread(v) - visible = v - if(next) - next.vis_spread(v) - - -/obj/effect/beam/i_beam/process() - if((loc.density || !(master))) - qdel(src) - return - if(left > 0) - left-- - if(left < 1) - if(!(visible)) - invisibility = INVISIBILITY_ABSTRACT - else - invisibility = 0 - else - invisibility = 0 - - if(!next && (limit > 0)) - var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc) - I.master = master - I.density = 1 - I.setDir(dir) - I.previous = src - next = I - step(I, I.dir) - if(next) - I.density = 0 - I.vis_spread(visible) - I.limit = limit - 1 - master.last = I - I.process() - -/obj/effect/beam/i_beam/Bump() - qdel(src) - return - -/obj/effect/beam/i_beam/Bumped() - hit() - -/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj) - if(istype(AM, /obj/effect/beam)) - return - hit() - -/obj/effect/beam/i_beam/Destroy() - if(master.first == src) - master.first = null - if(next) - qdel(next) - next = null - if(previous) - previous.next = null - master.last = previous - return ..() + next_activate = world.time + 30 + +/obj/item/device/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel + if(is_secured(user)) + user.set_machine(src) + var/dat = "Infrared Laser\nStatus: [on ? "On" : "Off"]
    \nVisibility: [visible ? "Visible" : "Invisible"]
    \n
    " + dat += "

    Refresh" + dat += "

    Close" + user << browse(dat, "window=infra") + onclose(user, "infra") + return + +/obj/item/device/assembly/infra/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=infra") + onclose(usr, "infra") + return + if(href_list["state"]) + on = !(on) + update_icon() + if(href_list["visible"]) + visible = !(visible) + if(first) + first.vis_spread(visible) + if(href_list["close"]) + usr << browse(null, "window=infra") + return + if(usr) + attack_self(usr) + +/obj/item/device/assembly/infra/verb/rotate()//This could likely be better + set name = "Rotate Infrared Laser" + set category = "Object" + set src in usr + + if(usr.incapacitated()) + return + + setDir(turn(dir, 90)) + return + +/obj/item/device/assembly/infra/AltClick(mob/user) + ..() + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + + + +/***************************IBeam*********************************/ + +/obj/effect/beam/i_beam + name = "infrared beam" + icon = 'icons/obj/projectiles.dmi' + icon_state = "ibeam" + var/obj/effect/beam/i_beam/next = null + var/obj/effect/beam/i_beam/previous = null + var/obj/item/device/assembly/infra/master = null + var/limit = null + var/visible = 0 + var/left = null + anchored = 1 + + +/obj/effect/beam/i_beam/proc/hit() + if(master) + master.trigger_beam() + qdel(src) + return + +/obj/effect/beam/i_beam/proc/vis_spread(v) + visible = v + if(next) + next.vis_spread(v) + + +/obj/effect/beam/i_beam/process() + if((loc.density || !(master))) + qdel(src) + return + if(left > 0) + left-- + if(left < 1) + if(!(visible)) + invisibility = INVISIBILITY_ABSTRACT + else + invisibility = 0 + else + invisibility = 0 + + if(!next && (limit > 0)) + var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc) + I.master = master + I.density = 1 + I.setDir(dir) + I.previous = src + next = I + step(I, I.dir) + if(next) + I.density = 0 + I.vis_spread(visible) + I.limit = limit - 1 + master.last = I + I.process() + +/obj/effect/beam/i_beam/Bump() + qdel(src) + return + +/obj/effect/beam/i_beam/Bumped() + hit() + +/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj) + if(istype(AM, /obj/effect/beam)) + return + hit() + +/obj/effect/beam/i_beam/Destroy() + if(master.first == src) + master.first = null + if(next) + qdel(next) + next = null + if(previous) + previous.next = null + master.last = previous + return ..() diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 45165f94eb..06d4c4deb9 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -55,11 +55,11 @@ if("feet") if(!H.shoes) affecting = H.get_bodypart(pick("l_leg", "r_leg")) - H.Weaken(3) + H.Knockdown(60) if("l_hand", "r_hand") if(!H.gloves) affecting = H.get_bodypart(type) - H.Stun(3) + H.Stun(60) if(affecting) if(affecting.receive_damage(1, 0)) H.update_damage_overlays() diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 15ea698c90..9cf534f975 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -1,139 +1,139 @@ -/obj/item/device/assembly/prox_sensor - name = "proximity sensor" - desc = "Used for scanning and alerting when someone enters a certain proximity." - icon_state = "prox" - materials = list(MAT_METAL=800, MAT_GLASS=200) - origin_tech = "magnets=1;engineering=1" - attachable = 1 - - var/scanning = 0 - var/timing = 0 - var/time = 10 - var/sensitivity = 1 - -/obj/item/device/assembly/prox_sensor/proc/toggle_scan() - - -/obj/item/device/assembly/prox_sensor/proc/sense() - - +/obj/item/device/assembly/prox_sensor + name = "proximity sensor" + desc = "Used for scanning and alerting when someone enters a certain proximity." + icon_state = "prox" + materials = list(MAT_METAL=800, MAT_GLASS=200) + origin_tech = "magnets=1;engineering=1" + attachable = 1 + + var/scanning = 0 + var/timing = 0 + var/time = 10 + var/sensitivity = 1 + +/obj/item/device/assembly/prox_sensor/proc/toggle_scan() + + +/obj/item/device/assembly/prox_sensor/proc/sense() + + /obj/item/device/assembly/prox_sensor/Initialize() . = ..() proximity_monitor = new(src, 0) - -/obj/item/device/assembly/prox_sensor/describe() - if(timing) - return "The proximity sensor is arming." - return "The proximity sensor is [scanning?"armed":"disarmed"]." - -/obj/item/device/assembly/prox_sensor/activate() - if(!..()) - return 0//Cooldown check - timing = !timing - update_icon() - return 1 - -/obj/item/device/assembly/prox_sensor/toggle_secure() - secured = !secured - if(!secured) + +/obj/item/device/assembly/prox_sensor/describe() + if(timing) + return "The proximity sensor is arming." + return "The proximity sensor is [scanning?"armed":"disarmed"]." + +/obj/item/device/assembly/prox_sensor/activate() + if(!..()) + return 0//Cooldown check + timing = !timing + update_icon() + return 1 + +/obj/item/device/assembly/prox_sensor/toggle_secure() + secured = !secured + if(!secured) if(scanning) toggle_scan() proximity_monitor.host = src - timing = 0 + timing = 0 else proximity_monitor.host = loc - update_icon() - return secured - - -/obj/item/device/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj) - if (istype(AM, /obj/effect/beam)) - return - sense() - - -/obj/item/device/assembly/prox_sensor/sense() - if(!secured || next_activate > world.time) - return 0 - pulse(0) + update_icon() + return secured + + +/obj/item/device/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj) + if (istype(AM, /obj/effect/beam)) + return + sense() + + +/obj/item/device/assembly/prox_sensor/sense() + if(!secured || next_activate > world.time) + return 0 + pulse(0) audible_message("[bicon(src)] *beep* *beep*", null, 3) - next_activate = world.time + 30 - - -/obj/item/device/assembly/prox_sensor/process() - if(timing) - time-- - if(time <= 0) - timing = 0 - toggle_scan(1) - time = initial(time) - -/obj/item/device/assembly/prox_sensor/toggle_scan(scan) - if(!secured) - return 0 - scanning = scan + next_activate = world.time + 30 + + +/obj/item/device/assembly/prox_sensor/process() + if(timing) + time-- + if(time <= 0) + timing = 0 + toggle_scan(1) + time = initial(time) + +/obj/item/device/assembly/prox_sensor/toggle_scan(scan) + if(!secured) + return 0 + scanning = scan proximity_monitor.SetRange(scanning ? sensitivity : 0) - update_icon() - -/obj/item/device/assembly/prox_sensor/proc/sensitivity_change(value) - var/sense = min(max(sensitivity + value, 0), 5) - sensitivity = sense + update_icon() + +/obj/item/device/assembly/prox_sensor/proc/sensitivity_change(value) + var/sense = min(max(sensitivity + value, 0), 5) + sensitivity = sense if(scanning && proximity_monitor.SetRange(sense)) sense() - -/obj/item/device/assembly/prox_sensor/update_icon() - cut_overlays() - attached_overlays = list() - if(timing) - add_overlay("prox_timing") - attached_overlays += "prox_timing" - if(scanning) - add_overlay("prox_scanning") - attached_overlays += "prox_scanning" - if(holder) - holder.update_icon() - return - -/obj/item/device/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy - if(is_secured(user)) - var/second = time % 60 - var/minute = (time - second) / 60 - var/dat = "Proximity Sensor\n[(timing ? "Arming" : "Not Arming")] [minute]:[second]\n- - + +\n" - dat += "
    Armed":"1'>Unarmed"] (Movement sensor active when armed!)" - dat += "
    Detection range: - [sensitivity] +" - dat += "

    Refresh" - dat += "

    Close" - user << browse(dat, "window=prox") - onclose(user, "prox") - return - - -/obj/item/device/assembly/prox_sensor/Topic(href, href_list) - ..() - if(usr.incapacitated() || !in_range(loc, usr)) - usr << browse(null, "window=prox") - onclose(usr, "prox") - return - - if(href_list["sense"]) - sensitivity_change(((href_list["sense"] == "up") ? 1 : -1)) - - if(href_list["scanning"]) - toggle_scan(text2num(href_list["scanning"])) - - if(href_list["time"]) - timing = text2num(href_list["time"]) - update_icon() - - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 0), 600) - - if(href_list["close"]) - usr << browse(null, "window=prox") - return - - if(usr) - attack_self(usr) - + +/obj/item/device/assembly/prox_sensor/update_icon() + cut_overlays() + attached_overlays = list() + if(timing) + add_overlay("prox_timing") + attached_overlays += "prox_timing" + if(scanning) + add_overlay("prox_scanning") + attached_overlays += "prox_scanning" + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Proximity Sensor\n[(timing ? "Arming" : "Not Arming")] [minute]:[second]\n- - + +\n" + dat += "
    Armed":"1'>Unarmed"] (Movement sensor active when armed!)" + dat += "
    Detection range: - [sensitivity] +" + dat += "

    Refresh" + dat += "

    Close" + user << browse(dat, "window=prox") + onclose(user, "prox") + return + + +/obj/item/device/assembly/prox_sensor/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=prox") + onclose(usr, "prox") + return + + if(href_list["sense"]) + sensitivity_change(((href_list["sense"] == "up") ? 1 : -1)) + + if(href_list["scanning"]) + toggle_scan(text2num(href_list["scanning"])) + + if(href_list["time"]) + timing = text2num(href_list["time"]) + update_icon() + + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 0), 600) + + if(href_list["close"]) + usr << browse(null, "window=prox") + return + + if(usr) + attack_self(usr) + diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 70084eb83e..4f2af56605 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -1,202 +1,202 @@ -/obj/item/device/assembly/signaler - name = "remote signaling device" - desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another." - icon_state = "signaller" - item_state = "signaler" - materials = list(MAT_METAL=400, MAT_GLASS=120) - origin_tech = "magnets=1;bluespace=1" - wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE - attachable = 1 - - var/code = 30 - var/frequency = 1457 - var/delay = 0 - var/datum/radio_frequency/radio_connection - -/obj/item/device/assembly/signaler/New() - ..() - spawn(40) - set_frequency(frequency) - - -/obj/item/device/assembly/signaler/Destroy() - if(SSradio) - SSradio.remove_object(src,frequency) - return ..() - -/obj/item/device/assembly/signaler/activate() - if(!..())//cooldown processing - return FALSE - signal() - return TRUE - -/obj/item/device/assembly/signaler/update_icon() - if(holder) - holder.update_icon() - return - -/obj/item/device/assembly/signaler/interact(mob/user, flag1) - if(is_secured(user)) - var/t1 = "-------" - // if ((src.b_stat && !( flag1 ))) - // t1 = text("-------
    \nGreen Wire: []
    \nRed Wire: []
    \nBlue Wire: []
    \n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) - // else - // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
    - var/dat = {" - - -Send Signal
    -Frequency/Code for signaler:
    -Frequency: -- -- -[format_frequency(src.frequency)] -+ -+
    - -Code: -- -- -[src.code] -+ -+
    -[t1] -
    "} - user << browse(dat, "window=radio") - onclose(user, "radio") - return - - -/obj/item/device/assembly/signaler/Topic(href, href_list) - ..() - - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - usr << browse(null, "window=radio") - onclose(usr, "radio") - return - - if (href_list["freq"]) - var/new_frequency = (frequency + text2num(href_list["freq"])) - if(new_frequency < 1200 || new_frequency > 1600) - new_frequency = sanitize_frequency(new_frequency) - set_frequency(new_frequency) - - if(href_list["code"]) - src.code += text2num(href_list["code"]) - src.code = round(src.code) - src.code = min(100, src.code) - src.code = max(1, src.code) - - if(href_list["send"]) - spawn( 0 ) - signal() - - if(usr) - attack_self(usr) - - return - -/obj/item/device/assembly/signaler/attackby(obj/item/weapon/W, mob/user, params) - if(issignaler(W)) - var/obj/item/device/assembly/signaler/signaler2 = W - if(secured && signaler2.secured) - code = signaler2.code - frequency = signaler2.frequency - to_chat(user, "You transfer the frequency and code of \the [signaler2.name] to \the [name]") - else - ..() - -/obj/item/device/assembly/signaler/proc/signal() - if(!radio_connection) return - - var/datum/signal/signal = new - signal.source = src - signal.encryption = code - signal.data["message"] = "ACTIVATE" - radio_connection.post_signal(src, signal) - - var/time = time2text(world.realtime,"hh:mm:ss") - var/turf/T = get_turf(src) - if(usr) - GLOB.lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") - - - return -/* - for(var/obj/item/device/assembly/signaler/S in world) - if(!S) - continue - if(S == src) - continue - if((S.frequency == src.frequency) && (S.code == src.code)) - spawn(0) - if(S) - S.pulse(0) - return 0*/ - -/obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) - if(!signal) - return 0 - if(signal.encryption != code) - return 0 - if(!(src.wires & WIRE_RADIO_RECEIVE)) - return 0 - pulse(1) +/obj/item/device/assembly/signaler + name = "remote signaling device" + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another." + icon_state = "signaller" + item_state = "signaler" + materials = list(MAT_METAL=400, MAT_GLASS=120) + origin_tech = "magnets=1;bluespace=1" + wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE + attachable = 1 + + var/code = 30 + var/frequency = 1457 + var/delay = 0 + var/datum/radio_frequency/radio_connection + +/obj/item/device/assembly/signaler/New() + ..() + spawn(40) + set_frequency(frequency) + + +/obj/item/device/assembly/signaler/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/item/device/assembly/signaler/activate() + if(!..())//cooldown processing + return FALSE + signal() + return TRUE + +/obj/item/device/assembly/signaler/update_icon() + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/signaler/interact(mob/user, flag1) + if(is_secured(user)) + var/t1 = "-------" + // if ((src.b_stat && !( flag1 ))) + // t1 = text("-------
    \nGreen Wire: []
    \nRed Wire: []
    \nBlue Wire: []
    \n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) + // else + // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
    + var/dat = {" + + +Send Signal
    +Frequency/Code for signaler:
    +Frequency: +- +- +[format_frequency(src.frequency)] ++ ++
    + +Code: +- +- +[src.code] ++ ++
    +[t1] +
    "} + user << browse(dat, "window=radio") + onclose(user, "radio") + return + + +/obj/item/device/assembly/signaler/Topic(href, href_list) + ..() + + if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr << browse(null, "window=radio") + onclose(usr, "radio") + return + + if (href_list["freq"]) + var/new_frequency = (frequency + text2num(href_list["freq"])) + if(new_frequency < 1200 || new_frequency > 1600) + new_frequency = sanitize_frequency(new_frequency) + set_frequency(new_frequency) + + if(href_list["code"]) + src.code += text2num(href_list["code"]) + src.code = round(src.code) + src.code = min(100, src.code) + src.code = max(1, src.code) + + if(href_list["send"]) + spawn( 0 ) + signal() + + if(usr) + attack_self(usr) + + return + +/obj/item/device/assembly/signaler/attackby(obj/item/weapon/W, mob/user, params) + if(issignaler(W)) + var/obj/item/device/assembly/signaler/signaler2 = W + if(secured && signaler2.secured) + code = signaler2.code + frequency = signaler2.frequency + to_chat(user, "You transfer the frequency and code of \the [signaler2.name] to \the [name]") + else + ..() + +/obj/item/device/assembly/signaler/proc/signal() + if(!radio_connection) return + + var/datum/signal/signal = new + signal.source = src + signal.encryption = code + signal.data["message"] = "ACTIVATE" + radio_connection.post_signal(src, signal) + + var/time = time2text(world.realtime,"hh:mm:ss") + var/turf/T = get_turf(src) + if(usr) + GLOB.lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") + + + return +/* + for(var/obj/item/device/assembly/signaler/S in world) + if(!S) + continue + if(S == src) + continue + if((S.frequency == src.frequency) && (S.code == src.code)) + spawn(0) + if(S) + S.pulse(0) + return 0*/ + +/obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) + if(!signal) + return 0 + if(signal.encryption != code) + return 0 + if(!(src.wires & WIRE_RADIO_RECEIVE)) + return 0 + pulse(1) audible_message("[bicon(src)] *beep* *beep*", null, 1) - return - - -/obj/item/device/assembly/signaler/proc/set_frequency(new_frequency) - if(!SSradio) - sleep(20) - if(!SSradio) - return - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_CHAT) - return - -// Embedded signaller used in grenade construction. -// It's necessary because the signaler doens't have an off state. -// Generated during grenade construction. -Sayu -/obj/item/device/assembly/signaler/reciever - var/on = 0 - -/obj/item/device/assembly/signaler/reciever/proc/toggle_safety() - on = !on - -/obj/item/device/assembly/signaler/reciever/activate() - toggle_safety() - return 1 - -/obj/item/device/assembly/signaler/reciever/describe() - return "The radio receiver is [on?"on":"off"]." - -/obj/item/device/assembly/signaler/reciever/receive_signal(datum/signal/signal) - if(!on) return - return ..(signal) - - -// Embedded signaller used in anomalies. -/obj/item/device/assembly/signaler/anomaly - name = "anomaly core" - desc = "The neutralized core of an anomaly. It'd probably be valuable for research." - icon_state = "anomaly core" - item_state = "electronic" - -/obj/item/device/assembly/signaler/anomaly/receive_signal(datum/signal/signal) - if(!signal) - return 0 - if(signal.encryption != code) - return 0 - for(var/obj/effect/anomaly/A in get_turf(src)) - A.anomalyNeutralize() - -/obj/item/device/assembly/signaler/anomaly/attack_self() - return - -/obj/item/device/assembly/signaler/cyborg - origin_tech = null - -/obj/item/device/assembly/signaler/cyborg/attackby(obj/item/weapon/W, mob/user, params) - return + return + + +/obj/item/device/assembly/signaler/proc/set_frequency(new_frequency) + if(!SSradio) + sleep(20) + if(!SSradio) + return + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_CHAT) + return + +// Embedded signaller used in grenade construction. +// It's necessary because the signaler doens't have an off state. +// Generated during grenade construction. -Sayu +/obj/item/device/assembly/signaler/reciever + var/on = 0 + +/obj/item/device/assembly/signaler/reciever/proc/toggle_safety() + on = !on + +/obj/item/device/assembly/signaler/reciever/activate() + toggle_safety() + return 1 + +/obj/item/device/assembly/signaler/reciever/describe() + return "The radio receiver is [on?"on":"off"]." + +/obj/item/device/assembly/signaler/reciever/receive_signal(datum/signal/signal) + if(!on) return + return ..(signal) + + +// Embedded signaller used in anomalies. +/obj/item/device/assembly/signaler/anomaly + name = "anomaly core" + desc = "The neutralized core of an anomaly. It'd probably be valuable for research." + icon_state = "anomaly core" + item_state = "electronic" + +/obj/item/device/assembly/signaler/anomaly/receive_signal(datum/signal/signal) + if(!signal) + return 0 + if(signal.encryption != code) + return 0 + for(var/obj/effect/anomaly/A in get_turf(src)) + A.anomalyNeutralize() + +/obj/item/device/assembly/signaler/anomaly/attack_self() + return + +/obj/item/device/assembly/signaler/cyborg + origin_tech = null + +/obj/item/device/assembly/signaler/cyborg/attackby(obj/item/weapon/W, mob/user, params) + return diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 0ebe7685eb..8938ecbe9d 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -1,115 +1,115 @@ -/obj/item/device/assembly/timer - name = "timer" - desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." - icon_state = "timer" - materials = list(MAT_METAL=500, MAT_GLASS=50) - origin_tech = "magnets=1;engineering=1" - attachable = 1 - - var/timing = 0 - var/time = 5 - var/saved_time = 5 - var/loop = 0 - - -/obj/item/device/assembly/timer/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/device/assembly/timer/describe() - if(timing) - return "The timer is counting down from [time]!" - return "The timer is set for [time] seconds." - - -/obj/item/device/assembly/timer/activate() - if(!..()) - return 0//Cooldown check - timing = !timing - update_icon() - return 1 - - -/obj/item/device/assembly/timer/toggle_secure() - secured = !secured - if(secured) - START_PROCESSING(SSobj, src) - else - timing = 0 - STOP_PROCESSING(SSobj, src) - update_icon() - return secured - - -/obj/item/device/assembly/timer/proc/timer_end() - if(!secured || next_activate > world.time) - return FALSE - pulse(0) +/obj/item/device/assembly/timer + name = "timer" + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." + icon_state = "timer" + materials = list(MAT_METAL=500, MAT_GLASS=50) + origin_tech = "magnets=1;engineering=1" + attachable = 1 + + var/timing = 0 + var/time = 5 + var/saved_time = 5 + var/loop = 0 + + +/obj/item/device/assembly/timer/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/assembly/timer/describe() + if(timing) + return "The timer is counting down from [time]!" + return "The timer is set for [time] seconds." + + +/obj/item/device/assembly/timer/activate() + if(!..()) + return 0//Cooldown check + timing = !timing + update_icon() + return 1 + + +/obj/item/device/assembly/timer/toggle_secure() + secured = !secured + if(secured) + START_PROCESSING(SSobj, src) + else + timing = 0 + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + + +/obj/item/device/assembly/timer/proc/timer_end() + if(!secured || next_activate > world.time) + return FALSE + pulse(0) audible_message("[bicon(src)] *beep* *beep*", null, 3) - if(loop) - timing = 1 - update_icon() - - -/obj/item/device/assembly/timer/process() - if(timing) - time-- - if(time <= 0) - timing = 0 - timer_end() - time = saved_time - - -/obj/item/device/assembly/timer/update_icon() - cut_overlays() - attached_overlays = list() - if(timing) - add_overlay("timer_timing") - attached_overlays += "timer_timing" - if(holder) - holder.update_icon() - - -/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires - if(is_secured(user)) - var/second = time % 60 - var/minute = (time - second) / 60 - var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" - dat += "

    Stop repeating" : "1'>Set to repeat")]" - dat += "

    Refresh" - dat += "

    Close" - var/datum/browser/popup = new(user, "timer", name) - popup.set_content(dat) - popup.open() - - -/obj/item/device/assembly/timer/Topic(href, href_list) - ..() - if(usr.incapacitated() || !in_range(loc, usr)) - usr << browse(null, "window=timer") - onclose(usr, "timer") - return - - if(href_list["time"]) - timing = text2num(href_list["time"]) - if(timing && istype(holder, /obj/item/device/transfer_valve)) - var/timer_message = "[ADMIN_LOOKUPFLW(usr)] activated [src] attachment on [holder]." - message_admins(timer_message) - GLOB.bombers += timer_message - log_game("[key_name(usr)] activated [src] attachment on [holder]") - update_icon() - if(href_list["repeat"]) - loop = text2num(href_list["repeat"]) - - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 1), 600) - saved_time = time - - if(href_list["close"]) - usr << browse(null, "window=timer") - return - - if(usr) - attack_self(usr) + if(loop) + timing = 1 + update_icon() + + +/obj/item/device/assembly/timer/process() + if(timing) + time-- + if(time <= 0) + timing = 0 + timer_end() + time = saved_time + + +/obj/item/device/assembly/timer/update_icon() + cut_overlays() + attached_overlays = list() + if(timing) + add_overlay("timer_timing") + attached_overlays += "timer_timing" + if(holder) + holder.update_icon() + + +/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" + dat += "

    Stop repeating" : "1'>Set to repeat")]" + dat += "

    Refresh" + dat += "

    Close" + var/datum/browser/popup = new(user, "timer", name) + popup.set_content(dat) + popup.open() + + +/obj/item/device/assembly/timer/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=timer") + onclose(usr, "timer") + return + + if(href_list["time"]) + timing = text2num(href_list["time"]) + if(timing && istype(holder, /obj/item/device/transfer_valve)) + var/timer_message = "[ADMIN_LOOKUPFLW(usr)] activated [src] attachment on [holder]." + message_admins(timer_message) + GLOB.bombers += timer_message + log_game("[key_name(usr)] activated [src] attachment on [holder]") + update_icon() + if(href_list["repeat"]) + loop = text2num(href_list["repeat"]) + + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 1), 600) + saved_time = time + + if(href_list["close"]) + usr << browse(null, "window=timer") + return + + if(usr) + attack_self(usr) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 6ffcaa4934..626670ac98 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -664,7 +664,7 @@ if (buildstage == 1) to_chat(user, "You remove the air alarm electronics.") new /obj/item/weapon/electronics/airalarm( src.loc ) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) buildstage = 0 update_icon() return diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 36b3e95d10..fa7b9965e2 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -1,68 +1,68 @@ -/* -Quick overview: - -Pipes combine to form pipelines -Pipelines and other atmospheric objects combine to form pipe_networks - Note: A single pipe_network represents a completely open space - -Pipes -> Pipelines -Pipelines + Other Objects -> Pipe network - -*/ +/* +Quick overview: + +Pipes combine to form pipelines +Pipelines and other atmospheric objects combine to form pipe_networks + Note: A single pipe_network represents a completely open space + +Pipes -> Pipelines +Pipelines + Other Objects -> Pipe network + +*/ #define PIPE_VISIBLE_LEVEL 2 #define PIPE_HIDDEN_LEVEL 1 -/obj/machinery/atmospherics - anchored = 1 - idle_power_usage = 0 - active_power_usage = 0 - power_channel = ENVIRON - on_blueprints = TRUE +/obj/machinery/atmospherics + anchored = 1 + idle_power_usage = 0 + active_power_usage = 0 + power_channel = ENVIRON + on_blueprints = TRUE layer = GAS_PIPE_HIDDEN_LAYER //under wires - resistance_flags = FIRE_PROOF - obj_integrity = 200 - max_integrity = 200 - var/nodealert = 0 - var/can_unwrench = 0 - var/initialize_directions = 0 - var/pipe_color - - var/global/list/iconsetids = list() - var/global/list/pipeimages = list() - - var/image/pipe_vision_img = null - - var/device_type = 0 - var/list/obj/machinery/atmospherics/nodes - -/obj/machinery/atmospherics/New(loc, process = TRUE) - nodes = new(device_type) - if (!armor) - armor = list(melee = 25, bullet = 10, laser = 10, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 100, acid = 70) - ..() - if(process) - SSair.atmos_machinery += src - SetInitDirections() - -/obj/machinery/atmospherics/Destroy() - for(DEVICE_TYPE_LOOP) - nullifyNode(I) - - SSair.atmos_machinery -= src - - dropContents() - if(pipe_vision_img) - qdel(pipe_vision_img) - - return ..() - //return QDEL_HINT_FINDREFERENCE - -/obj/machinery/atmospherics/proc/nullifyNode(I) - if(NODE_I) - var/obj/machinery/atmospherics/N = NODE_I - N.disconnect(src) - NODE_I = null - + resistance_flags = FIRE_PROOF + obj_integrity = 200 + max_integrity = 200 + var/nodealert = 0 + var/can_unwrench = 0 + var/initialize_directions = 0 + var/pipe_color + + var/global/list/iconsetids = list() + var/global/list/pipeimages = list() + + var/image/pipe_vision_img = null + + var/device_type = 0 + var/list/obj/machinery/atmospherics/nodes + +/obj/machinery/atmospherics/New(loc, process = TRUE) + nodes = new(device_type) + if (!armor) + armor = list(melee = 25, bullet = 10, laser = 10, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 100, acid = 70) + ..() + if(process) + SSair.atmos_machinery += src + SetInitDirections() + +/obj/machinery/atmospherics/Destroy() + for(DEVICE_TYPE_LOOP) + nullifyNode(I) + + SSair.atmos_machinery -= src + + dropContents() + if(pipe_vision_img) + qdel(pipe_vision_img) + + return ..() + //return QDEL_HINT_FINDREFERENCE + +/obj/machinery/atmospherics/proc/nullifyNode(I) + if(NODE_I) + var/obj/machinery/atmospherics/N = NODE_I + N.disconnect(src) + NODE_I = null + /obj/machinery/atmospherics/proc/getNodeConnects() var/list/node_connects = list() node_connects.len = device_type @@ -77,218 +77,215 @@ Pipelines + Other Objects -> Pipe network return node_connects -//this is called just after the air controller sets up turfs -/obj/machinery/atmospherics/proc/atmosinit(var/list/node_connects) - if(!node_connects) //for pipes where order of nodes doesn't matter +//this is called just after the air controller sets up turfs +/obj/machinery/atmospherics/proc/atmosinit(var/list/node_connects) + if(!node_connects) //for pipes where order of nodes doesn't matter node_connects = getNodeConnects() - - for(DEVICE_TYPE_LOOP) - for(var/obj/machinery/atmospherics/target in get_step(src,node_connects[I])) - if(can_be_node(target, I)) - NODE_I = target - break - - update_icon() - -/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target) - if(target.initialize_directions & get_dir(target,src)) - return 1 - -/obj/machinery/atmospherics/proc/pipeline_expansion() - return nodes - -/obj/machinery/atmospherics/proc/SetInitDirections() - return - -/obj/machinery/atmospherics/proc/GetInitDirections() - return initialize_directions - -/obj/machinery/atmospherics/proc/returnPipenet() - return - -/obj/machinery/atmospherics/proc/returnPipenetAir() - return - -/obj/machinery/atmospherics/proc/setPipenet() - return - -/obj/machinery/atmospherics/proc/replacePipenet() - return - -/obj/machinery/atmospherics/proc/build_network() - // Called to build a network from this node - return - -/obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) - if(istype(reference, /obj/machinery/atmospherics/pipe)) - var/obj/machinery/atmospherics/pipe/P = reference - qdel(P.parent) - var/I = nodes.Find(reference) - NODE_I = null - update_icon() - -/obj/machinery/atmospherics/update_icon() - return - -/obj/machinery/atmospherics/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - if(can_unwrench(user)) - var/turf/T = get_turf(src) - if (level==1 && isturf(T) && T.intact) - to_chat(user, "You must remove the plating first!") - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - add_fingerprint(user) - - var/unsafe_wrenching = FALSE - var/internal_pressure = int_air.return_pressure()-env_air.return_pressure() - - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You begin to unfasten \the [src]...") - if (internal_pressure > 2*ONE_ATMOSPHERE) - to_chat(user, "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?") - unsafe_wrenching = TRUE //Oh dear oh dear - - if (do_after(user, 20*W.toolspeed, target = src) && !QDELETED(src)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "You unfasten \the [src].", \ - "You hear ratchet.") + + for(DEVICE_TYPE_LOOP) + for(var/obj/machinery/atmospherics/target in get_step(src,node_connects[I])) + if(can_be_node(target, I)) + NODE_I = target + break + + update_icon() + +/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target) + if(target.initialize_directions & get_dir(target,src)) + return 1 + +/obj/machinery/atmospherics/proc/pipeline_expansion() + return nodes + +/obj/machinery/atmospherics/proc/SetInitDirections() + return + +/obj/machinery/atmospherics/proc/GetInitDirections() + return initialize_directions + +/obj/machinery/atmospherics/proc/returnPipenet() + return + +/obj/machinery/atmospherics/proc/returnPipenetAir() + return + +/obj/machinery/atmospherics/proc/setPipenet() + return + +/obj/machinery/atmospherics/proc/replacePipenet() + return + +/obj/machinery/atmospherics/proc/build_network() + // Called to build a network from this node + return + +/obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) + if(istype(reference, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/P = reference + qdel(P.parent) + var/I = nodes.Find(reference) + NODE_I = null + update_icon() + +/obj/machinery/atmospherics/update_icon() + return + +/obj/machinery/atmospherics/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(can_unwrench(user)) + var/turf/T = get_turf(src) + if (level==1 && isturf(T) && T.intact) + to_chat(user, "You must remove the plating first!") + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + add_fingerprint(user) + + var/unsafe_wrenching = FALSE + var/internal_pressure = int_air.return_pressure()-env_air.return_pressure() + + playsound(src.loc, W.usesound, 50, 1) + to_chat(user, "You begin to unfasten \the [src]...") + if (internal_pressure > 2*ONE_ATMOSPHERE) + to_chat(user, "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?") + unsafe_wrenching = TRUE //Oh dear oh dear + + if (do_after(user, 20*W.toolspeed, target = src) && !QDELETED(src)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "You unfasten \the [src].", \ + "You hear ratchet.") investigate_log("was REMOVED by [key_name(usr)]", INVESTIGATE_ATMOS) - - //You unwrenched a pipe full of pressure? Let's splat you into the wall, silly. - if(unsafe_wrenching) - unsafe_pressure_release(user, internal_pressure) - deconstruct(TRUE) - else - return ..() - -/obj/machinery/atmospherics/proc/can_unwrench(mob/user) - return can_unwrench - -// Throws the user when they unwrench a pipe with a major difference between the internal and environmental pressure. -/obj/machinery/atmospherics/proc/unsafe_pressure_release(mob/user, pressures = null) - if(!user) - return - if(!pressures) - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - pressures = int_air.return_pressure() - env_air.return_pressure() - - var/fuck_you_dir = get_dir(src, user) // Because fuck you... - if(!fuck_you_dir) - fuck_you_dir = pick(GLOB.cardinal) - var/turf/target = get_edge_target_turf(user, fuck_you_dir) - var/range = pressures/250 - var/speed = range/5 - - user.visible_message("[user] is sent flying by pressure!","The pressure sends you flying!") - user.throw_at(target, range, speed) - -/obj/machinery/atmospherics/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(can_unwrench) - var/obj/item/pipe/stored = new(loc, make_from=src) - if(!disassembled) - stored.obj_integrity = stored.max_integrity * 0.5 - transfer_fingerprints_to(stored) - ..() - -/obj/machinery/atmospherics/proc/getpipeimage(iconset, iconstate, direction, col=rgb(255,255,255)) - - //Add identifiers for the iconset - if(iconsetids[iconset] == null) - iconsetids[iconset] = num2text(iconsetids.len + 1) - - //Generate a unique identifier for this image combination - var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]" - + + //You unwrenched a pipe full of pressure? Let's splat you into the wall, silly. + if(unsafe_wrenching) + unsafe_pressure_release(user, internal_pressure) + deconstruct(TRUE) + else + return ..() + +/obj/machinery/atmospherics/proc/can_unwrench(mob/user) + return can_unwrench + +// Throws the user when they unwrench a pipe with a major difference between the internal and environmental pressure. +/obj/machinery/atmospherics/proc/unsafe_pressure_release(mob/user, pressures = null) + if(!user) + return + if(!pressures) + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + pressures = int_air.return_pressure() - env_air.return_pressure() + + var/fuck_you_dir = get_dir(src, user) // Because fuck you... + if(!fuck_you_dir) + fuck_you_dir = pick(GLOB.cardinal) + var/turf/target = get_edge_target_turf(user, fuck_you_dir) + var/range = pressures/250 + var/speed = range/5 + + user.visible_message("[user] is sent flying by pressure!","The pressure sends you flying!") + user.throw_at(target, range, speed) + +/obj/machinery/atmospherics/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(can_unwrench) + var/obj/item/pipe/stored = new(loc, make_from=src) + if(!disassembled) + stored.obj_integrity = stored.max_integrity * 0.5 + transfer_fingerprints_to(stored) + ..() + +/obj/machinery/atmospherics/proc/getpipeimage(iconset, iconstate, direction, col=rgb(255,255,255)) + + //Add identifiers for the iconset + if(iconsetids[iconset] == null) + iconsetids[iconset] = num2text(iconsetids.len + 1) + + //Generate a unique identifier for this image combination + var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]" + if((!(. = pipeimages[identifier]))) var/image/pipe_overlay pipe_overlay = . = pipeimages[identifier] = image(iconset, iconstate, dir = direction) pipe_overlay.color = col - -/obj/machinery/atmospherics/on_construction(pipe_type, obj_color) - if(can_unwrench) - add_atom_colour(obj_color, FIXED_COLOUR_PRIORITY) - pipe_color = obj_color - var/turf/T = get_turf(src) - level = T.intact ? 2 : 1 - atmosinit() - var/list/nodes = pipeline_expansion() - for(var/obj/machinery/atmospherics/A in nodes) - A.atmosinit() - A.addMember(src) - build_network() - -/obj/machinery/atmospherics/singularity_pull(S, current_size) - if(current_size >= STAGE_FIVE) - deconstruct(FALSE) - - -//Find a connecting /obj/machinery/atmospherics in specified direction -/obj/machinery/atmospherics/proc/findConnecting(direction) - for(var/obj/machinery/atmospherics/target in get_step(src, direction)) - if(target.initialize_directions & get_dir(target,src)) - return target - - -#define VENT_SOUND_DELAY 30 - -/obj/machinery/atmospherics/relaymove(mob/living/user, direction) - if(!(direction & initialize_directions)) //cant go this way. - return - - if(user in buckled_mobs)// fixes buckle ventcrawl edgecase fuck bug - return - - var/obj/machinery/atmospherics/target_move = findConnecting(direction) - if(target_move) - if(target_move.can_crawl_through()) - if(is_type_in_list(target_move, GLOB.ventcrawl_machinery)) - user.forceMove(target_move.loc) //handle entering and so on. - user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") - else - var/list/pipenetdiff = returnPipenets() ^ target_move.returnPipenets() - if(pipenetdiff.len) - user.update_pipe_vision(target_move) - user.loc = target_move - user.client.eye = target_move //Byond only updates the eye every tick, This smooths out the movement - if(world.time - user.last_played_vent > VENT_SOUND_DELAY) - user.last_played_vent = world.time - playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3) - else - if((direction & initialize_directions) || is_type_in_list(src, GLOB.ventcrawl_machinery) && can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent - user.forceMove(src.loc) - user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") - user.canmove = 0 - spawn(1) - user.canmove = 1 - - -/obj/machinery/atmospherics/AltClick(mob/living/L) - if(is_type_in_list(src, GLOB.ventcrawl_machinery)) - L.handle_ventcrawl(src) - return - ..() - - -/obj/machinery/atmospherics/proc/can_crawl_through() - return 1 - -/obj/machinery/atmospherics/proc/returnPipenets() - return list() - -/obj/machinery/atmospherics/update_remote_sight(mob/user) - if(isborer(user)) - user.sight |= (SEE_PIXELS) - else - user.sight |= (SEE_TURFS|BLIND) - -//Used for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it. -/obj/machinery/atmospherics/proc/can_see_pipes() - return 1 + +/obj/machinery/atmospherics/on_construction(pipe_type, obj_color) + if(can_unwrench) + add_atom_colour(obj_color, FIXED_COLOUR_PRIORITY) + pipe_color = obj_color + var/turf/T = get_turf(src) + level = T.intact ? 2 : 1 + atmosinit() + var/list/nodes = pipeline_expansion() + for(var/obj/machinery/atmospherics/A in nodes) + A.atmosinit() + A.addMember(src) + build_network() + +/obj/machinery/atmospherics/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct(FALSE) + + +//Find a connecting /obj/machinery/atmospherics in specified direction +/obj/machinery/atmospherics/proc/findConnecting(direction) + for(var/obj/machinery/atmospherics/target in get_step(src, direction)) + if(target.initialize_directions & get_dir(target,src)) + return target + + +#define VENT_SOUND_DELAY 30 + +/obj/machinery/atmospherics/relaymove(mob/living/user, direction) + if(!(direction & initialize_directions)) //cant go this way. + return + + if(user in buckled_mobs)// fixes buckle ventcrawl edgecase fuck bug + return + + var/obj/machinery/atmospherics/target_move = findConnecting(direction) + if(target_move) + if(target_move.can_crawl_through()) + if(is_type_in_typecache(target_move, GLOB.ventcrawl_machinery)) + user.forceMove(target_move.loc) //handle entering and so on. + user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") + else + var/list/pipenetdiff = returnPipenets() ^ target_move.returnPipenets() + if(pipenetdiff.len) + user.update_pipe_vision(target_move) + user.loc = target_move + user.client.eye = target_move //Byond only updates the eye every tick, This smooths out the movement + if(world.time - user.last_played_vent > VENT_SOUND_DELAY) + user.last_played_vent = world.time + playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3) + else + if((direction & initialize_directions) || is_type_in_typecache(src, GLOB.ventcrawl_machinery) && can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent + user.forceMove(src.loc) + user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") + user.canmove = 0 + spawn(1) + user.canmove = 1 + + +/obj/machinery/atmospherics/AltClick(mob/living/L) + if(is_type_in_list(src, GLOB.ventcrawl_machinery)) + L.handle_ventcrawl(src) + return + ..() + + +/obj/machinery/atmospherics/proc/can_crawl_through() + return 1 + +/obj/machinery/atmospherics/proc/returnPipenets() + return list() + +/obj/machinery/atmospherics/update_remote_sight(mob/user) + user.sight |= (SEE_TURFS|BLIND) + +//Used for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it. +/obj/machinery/atmospherics/proc/can_see_pipes() + return 1 //Properly updates pipes on shuttle movement /obj/machinery/atmospherics/shuttleRotate(rotation) 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 f3669f3f51..421b141f05 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm @@ -1,31 +1,31 @@ -/obj/machinery/atmospherics/components/binary - icon = 'icons/obj/atmospherics/components/binary_devices.dmi' - dir = SOUTH - initialize_directions = SOUTH|NORTH +/obj/machinery/atmospherics/components/binary + icon = 'icons/obj/atmospherics/components/binary_devices.dmi' + dir = SOUTH + initialize_directions = SOUTH|NORTH use_power = IDLE_POWER_USE - device_type = BINARY + device_type = BINARY layer = GAS_PUMP_LAYER - -/obj/machinery/atmospherics/components/binary/SetInitDirections() - switch(dir) - if(NORTH) - initialize_directions = NORTH|SOUTH - if(SOUTH) - initialize_directions = NORTH|SOUTH - if(EAST) - initialize_directions = EAST|WEST - if(WEST) - initialize_directions = EAST|WEST -/* -Iconnery -*/ -/obj/machinery/atmospherics/components/binary/hide(intact) - update_icon() - - ..(intact) -/* -Housekeeping and pipe network stuff -*/ - + +/obj/machinery/atmospherics/components/binary/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions = NORTH|SOUTH + if(SOUTH) + initialize_directions = NORTH|SOUTH + if(EAST) + initialize_directions = EAST|WEST + if(WEST) + initialize_directions = EAST|WEST +/* +Iconnery +*/ +/obj/machinery/atmospherics/components/binary/hide(intact) + update_icon() + + ..(intact) +/* +Housekeeping and pipe network stuff +*/ + /obj/machinery/atmospherics/components/binary/getNodeConnects() return list(turn(dir, 180), dir) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index fe4fdeb14c..2bfe51ce87 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -32,6 +32,10 @@ Acts like a normal vent, but has an input AND output. //INPUT_MIN: Do not pass input_pressure_min //OUTPUT_MAX: Do not pass output_pressure_max +/obj/machinery/atmospherics/components/binary/dp_vent_pump/on + on = TRUE + icon_state = "dpvent_map_on" + /obj/machinery/atmospherics/components/binary/dp_vent_pump/Destroy() if(SSradio) SSradio.remove_object(src, frequency) @@ -40,6 +44,10 @@ Acts like a normal vent, but has an input AND output. /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume name = "large dual-port air vent" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on + on = TRUE + icon_state = "dpvent_map_on" + /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/New() ..() var/datum/gas_mixture/air1 = AIR1 diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 01a5b0da3a..39d8133143 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -12,12 +12,12 @@ /obj/machinery/atmospherics/components/trinary/filter/flipped icon_state = "filter_off_f" flipped = 1 - + // These two filter types have critical_machine flagged to on and thus causes the area they are in to be exempt from the Grid Check event. - + /obj/machinery/atmospherics/components/trinary/filter/critical critical_machine = TRUE - + /obj/machinery/atmospherics/components/trinary/filter/flipped/critical critical_machine = TRUE 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 87aac56963..199d1907d8 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm @@ -1,47 +1,47 @@ -/obj/machinery/atmospherics/components/trinary - icon = 'icons/obj/atmospherics/components/trinary_devices.dmi' - dir = SOUTH - initialize_directions = SOUTH|NORTH|WEST +/obj/machinery/atmospherics/components/trinary + icon = 'icons/obj/atmospherics/components/trinary_devices.dmi' + dir = SOUTH + initialize_directions = SOUTH|NORTH|WEST use_power = IDLE_POWER_USE - device_type = TRINARY + device_type = TRINARY layer = GAS_FILTER_LAYER - - var/flipped = 0 - -/obj/machinery/atmospherics/components/trinary/SetInitDirections() - switch(dir) - if(NORTH) - initialize_directions = EAST|NORTH|SOUTH - if(SOUTH) - initialize_directions = SOUTH|WEST|NORTH - if(EAST) - initialize_directions = EAST|WEST|SOUTH - if(WEST) - initialize_directions = WEST|NORTH|EAST - -/* -Housekeeping and pipe network stuff -*/ - + + var/flipped = 0 + +/obj/machinery/atmospherics/components/trinary/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions = EAST|NORTH|SOUTH + if(SOUTH) + initialize_directions = SOUTH|WEST|NORTH + if(EAST) + initialize_directions = EAST|WEST|SOUTH + if(WEST) + initialize_directions = WEST|NORTH|EAST + +/* +Housekeeping and pipe network stuff +*/ + /obj/machinery/atmospherics/components/trinary/getNodeConnects() - - //Mixer: - //1 and 2 is input - //Node 3 is output - //If we flip the mixer, 1 and 3 shall exchange positions - - //Filter: - //Node 1 is input - //Node 2 is filtered output - //Node 3 is rest output - //If we flip the filter, 1 and 3 shall exchange positions - - var/node1_connect = turn(dir, -180) - var/node2_connect = turn(dir, -90) - var/node3_connect = dir - - if(flipped) - node1_connect = turn(node1_connect, 180) - node3_connect = turn(node3_connect, 180) - + + //Mixer: + //1 and 2 is input + //Node 3 is output + //If we flip the mixer, 1 and 3 shall exchange positions + + //Filter: + //Node 1 is input + //Node 2 is filtered output + //Node 3 is rest output + //If we flip the filter, 1 and 3 shall exchange positions + + var/node1_connect = turn(dir, -180) + var/node2_connect = turn(dir, -90) + var/node3_connect = dir + + if(flipped) + node1_connect = turn(node1_connect, 180) + node3_connect = turn(node3_connect, 180) + return list(node1_connect, node2_connect, node3_connect) \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index ecde4148d4..16879dc860 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -9,6 +9,7 @@ obj_integrity = 350 max_integrity = 350 armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30) + layer = ABOVE_WINDOW_LAYER var/on = FALSE state_open = FALSE @@ -17,7 +18,7 @@ var/efficiency = 1 var/sleep_factor = 750 - var/paralyze_factor = 1000 + var/unconscious_factor = 1000 var/heat_capacity = 20000 var/conduction_coefficient = 0.30 @@ -62,7 +63,7 @@ efficiency = initial(efficiency) * C sleep_factor = initial(sleep_factor) * C - paralyze_factor = initial(paralyze_factor) * C + unconscious_factor = initial(unconscious_factor) * C heat_capacity = initial(heat_capacity) / C conduction_coefficient = initial(conduction_coefficient) * C @@ -103,13 +104,13 @@ else if(isalienadult(occupant)) - if(istype(occupant, /mob/living/carbon/alien/humanoid/royal)) // Queen and prae + if(isalienroyal(occupant)) // Queen and prae occupant_overlay = image(CRYOMOBS, "alienq") - else if(istype(occupant, /mob/living/carbon/alien/humanoid/hunter)) // Hunter + else if(isalienhunter(occupant)) // Hunter occupant_overlay = image(CRYOMOBS, "alienh") - else if(istype(occupant, /mob/living/carbon/alien/humanoid/sentinel)) // Sentinel + else if(isaliensentinel(occupant)) // Sentinel occupant_overlay = image(CRYOMOBS, "aliens") else // Drone (or any other alien that isn't any of the above) @@ -171,7 +172,7 @@ var/turf/T = get_turf(src) if(occupant) var/mob/living/mob_occupant = occupant - if(mob_occupant.health >= 100) // Don't bother with fully healed people. + if(mob_occupant.health >= mob_occupant.getMaxHealth()) // Don't bother with fully healed people. on = FALSE update_icon() playsound(T, 'sound/machines/cryo_warning.ogg', volume) // Bug the doctors. @@ -187,8 +188,8 @@ return if(air1.gases.len) if(mob_occupant.bodytemperature < T0C) // Sleepytime. Why? More cryo magic. - mob_occupant.Sleeping((mob_occupant.bodytemperature / sleep_factor) * 100) - mob_occupant.Paralyse((mob_occupant.bodytemperature / paralyze_factor) * 100) + mob_occupant.Sleeping((mob_occupant.bodytemperature / sleep_factor) * 2000) + mob_occupant.Unconscious((mob_occupant.bodytemperature / unconscious_factor) * 2000) if(beaker) if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic. diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 69c547c326..0e5b37acb8 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -32,15 +32,18 @@ var/radio_filter_in /obj/machinery/atmospherics/components/unary/vent_pump/on - on = 1 - icon_state = "vent_out" + on = TRUE + icon_state = "vent_map_on" /obj/machinery/atmospherics/components/unary/vent_pump/siphon pump_direction = SIPHONING + pressure_checks = INT_BOUND + internal_pressure_bound = 4000 + external_pressure_bound = 0 /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on - on = 1 - icon_state = "vent_in" + on = TRUE + icon_state = "vent_map_siphon_on" /obj/machinery/atmospherics/components/unary/vent_pump/New() ..() @@ -56,13 +59,26 @@ if(SSradio) SSradio.remove_object(src,frequency) radio_connection = null - return ..() /obj/machinery/atmospherics/components/unary/vent_pump/high_volume name = "large air vent" power_channel = EQUIP +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on + on = TRUE + icon_state = "vent_map_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon + pump_direction = SIPHONING + pressure_checks = INT_BOUND + internal_pressure_bound = 2000 + external_pressure_bound = 0 + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on + on = TRUE + icon_state = "vent_map_siphon_on" + /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/New() ..() var/datum/gas_mixture/air_contents = AIR1 @@ -252,7 +268,7 @@ to_chat(user, "You begin welding the vent...") if(do_after(user, 20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) if(!welded) user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") welded = 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 75782ff958..ba723b8d1e 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -40,6 +40,10 @@ assign_uid() id_tag = num2text(uid) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on + on = TRUE + icon_state = "scrub_map_on" + /obj/machinery/atmospherics/components/unary/vent_scrubber/Destroy() var/area/A = get_area(src) A.air_scrub_names -= id_tag @@ -345,7 +349,7 @@ if(do_after(user, 20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) if(!welded) user.visible_message("[user] welds the scrubber shut.","You weld the scrubber shut.", "You hear welding.") welded = 1 diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 0324effcc7..efd5c53a60 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -443,4 +443,4 @@ holding.forceMove(get_turf(src)) holding = null . = TRUE - update_icon() \ No newline at end of file + update_icon() diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index e814660bbd..4fdb5d8b4f 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -1,125 +1,125 @@ -/obj/machinery/portable_atmospherics - name = "portable_atmospherics" - icon = 'icons/obj/atmos.dmi' +/obj/machinery/portable_atmospherics + name = "portable_atmospherics" + icon = 'icons/obj/atmos.dmi' use_power = NO_POWER_USE - obj_integrity = 250 - max_integrity = 250 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 60, acid = 30) - - - var/datum/gas_mixture/air_contents - var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port - var/obj/item/weapon/tank/holding - - var/volume = 0 - - var/maximum_pressure = 90 * ONE_ATMOSPHERE - -/obj/machinery/portable_atmospherics/New() - ..() - SSair.atmos_machinery += src - - air_contents = new - air_contents.volume = volume - air_contents.temperature = T20C - - return 1 - -/obj/machinery/portable_atmospherics/Destroy() - SSair.atmos_machinery -= src - - disconnect() - qdel(air_contents) - air_contents = null - - return ..() - -/obj/machinery/portable_atmospherics/process_atmos() - if(!connected_port) // Pipe network handles reactions if connected. - air_contents.react() - else - update_icon() - -/obj/machinery/portable_atmospherics/return_air() - return air_contents - -/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) - //Make sure not already connected to something else - if(connected_port || !new_port || new_port.connected_device) - return 0 - - //Make sure are close enough for a valid connection - if(new_port.loc != loc) - return 0 - - //Perform the connection - connected_port = new_port - connected_port.connected_device = src - var/datum/pipeline/connected_port_parent = connected_port.PARENT1 - connected_port_parent.reconcile_air() - - anchored = 1 //Prevent movement - return 1 - -/obj/machinery/portable_atmospherics/Move() - . = ..() - if(.) - disconnect() - -/obj/machinery/portable_atmospherics/proc/disconnect() - if(!connected_port) - return 0 - anchored = 0 - connected_port.connected_device = null - connected_port = null - return 1 - -/obj/machinery/portable_atmospherics/portableConnectorReturnAir() - return air_contents - -/obj/machinery/portable_atmospherics/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/tank)) - if(!(stat & BROKEN)) - var/obj/item/weapon/tank/T = W - if(holding || !user.drop_item()) - return - T.loc = src - holding = T - update_icon() - else if(istype(W, /obj/item/weapon/wrench)) - if(!(stat & BROKEN)) - if(connected_port) - disconnect() - playsound(src.loc, W.usesound, 50, 1) - user.visible_message( \ - "[user] disconnects [src].", \ - "You unfasten [src] from the port.", \ - "You hear a ratchet.") - update_icon() - return - else - var/obj/machinery/atmospherics/components/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/components/unary/portables_connector) in loc - if(!possible_port) - to_chat(user, "Nothing happens.") - return - if(!connect(possible_port)) - to_chat(user, "[name] failed to connect to the port.") - return - playsound(src.loc, W.usesound, 50, 1) - user.visible_message( \ - "[user] connects [src].", \ - "You fasten [src] to the port.", \ - "You hear a ratchet.") - update_icon() - else if(istype(W, /obj/item/device/analyzer) && Adjacent(user)) - atmosanalyzer_scan(air_contents, user) - else - return ..() - -/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user) - if(I.force < 10 && !(stat & BROKEN)) - take_damage(0) - else + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 60, acid = 30) + + + var/datum/gas_mixture/air_contents + var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port + var/obj/item/weapon/tank/holding + + var/volume = 0 + + var/maximum_pressure = 90 * ONE_ATMOSPHERE + +/obj/machinery/portable_atmospherics/New() + ..() + SSair.atmos_machinery += src + + air_contents = new + air_contents.volume = volume + air_contents.temperature = T20C + + return 1 + +/obj/machinery/portable_atmospherics/Destroy() + SSair.atmos_machinery -= src + + disconnect() + qdel(air_contents) + air_contents = null + + return ..() + +/obj/machinery/portable_atmospherics/process_atmos() + if(!connected_port) // Pipe network handles reactions if connected. + air_contents.react() + else + update_icon() + +/obj/machinery/portable_atmospherics/return_air() + return air_contents + +/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) + //Make sure not already connected to something else + if(connected_port || !new_port || new_port.connected_device) + return 0 + + //Make sure are close enough for a valid connection + if(new_port.loc != loc) + return 0 + + //Perform the connection + connected_port = new_port + connected_port.connected_device = src + var/datum/pipeline/connected_port_parent = connected_port.PARENT1 + connected_port_parent.reconcile_air() + + anchored = 1 //Prevent movement + return 1 + +/obj/machinery/portable_atmospherics/Move() + . = ..() + if(.) + disconnect() + +/obj/machinery/portable_atmospherics/proc/disconnect() + if(!connected_port) + return 0 + anchored = 0 + connected_port.connected_device = null + connected_port = null + return 1 + +/obj/machinery/portable_atmospherics/portableConnectorReturnAir() + return air_contents + +/obj/machinery/portable_atmospherics/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/tank)) + if(!(stat & BROKEN)) + var/obj/item/weapon/tank/T = W + if(holding || !user.drop_item()) + return + T.loc = src + holding = T + update_icon() + else if(istype(W, /obj/item/weapon/wrench)) + if(!(stat & BROKEN)) + if(connected_port) + disconnect() + playsound(src.loc, W.usesound, 50, 1) + user.visible_message( \ + "[user] disconnects [src].", \ + "You unfasten [src] from the port.", \ + "You hear a ratchet.") + update_icon() + return + else + var/obj/machinery/atmospherics/components/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/components/unary/portables_connector) in loc + if(!possible_port) + to_chat(user, "Nothing happens.") + return + if(!connect(possible_port)) + to_chat(user, "[name] failed to connect to the port.") + return + playsound(src.loc, W.usesound, 50, 1) + user.visible_message( \ + "[user] connects [src].", \ + "You fasten [src] to the port.", \ + "You hear a ratchet.") + update_icon() + else if(istype(W, /obj/item/device/analyzer) && Adjacent(user)) + atmosanalyzer_scan(air_contents, user) + else + return ..() + +/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user) + if(I.force < 10 && !(stat & BROKEN)) + take_damage(0) + else investigate_log("was smacked with \a [I] by [key_name(user)].", INVESTIGATE_ATMOS) - add_fingerprint(user) - ..() + add_fingerprint(user) + ..() diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 976827ccf1..0b25c29cc9 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -1,142 +1,142 @@ -#define PUMP_OUT "out" -#define PUMP_IN "in" +#define PUMP_OUT "out" +#define PUMP_IN "in" #define PUMP_MAX_PRESSURE (ONE_ATMOSPHERE * 10) -#define PUMP_MIN_PRESSURE (ONE_ATMOSPHERE / 10) -#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE) - -/obj/machinery/portable_atmospherics/pump - name = "portable air pump" - icon_state = "psiphon:0" - density = 1 - - var/on = FALSE - var/direction = PUMP_OUT - var/obj/machinery/atmospherics/components/binary/pump/pump - - volume = 1000 - -/obj/machinery/portable_atmospherics/pump/Initialize() - ..() - pump = new(src, FALSE) - pump.on = TRUE - pump.stat = 0 - pump.build_network() - -/obj/machinery/portable_atmospherics/pump/Destroy() - var/turf/T = get_turf(src) - T.assume_air(air_contents) - air_update_turf() - qdel(pump) - pump = null - return ..() - -/obj/machinery/portable_atmospherics/pump/update_icon() - icon_state = "psiphon:[on]" - - cut_overlays() - if(holding) - add_overlay("siphon-open") - if(connected_port) - add_overlay("siphon-connector") - -/obj/machinery/portable_atmospherics/pump/process_atmos() - ..() - if(!on) - pump.AIR1 = null - pump.AIR2 = null - return - - var/turf/T = get_turf(src) - if(direction == PUMP_OUT) // Hook up the internal pump. - pump.AIR1 = holding ? holding.air_contents : air_contents - pump.AIR2 = holding ? air_contents : T.return_air() - else - pump.AIR1 = holding ? air_contents : T.return_air() - pump.AIR2 = holding ? holding.air_contents : air_contents - - pump.process_atmos() // Pump gas. - if(!holding) - air_update_turf() // Update the environment if needed. - -/obj/machinery/portable_atmospherics/pump/emp_act(severity) - if(is_operational()) - if(prob(50 / severity)) - on = !on - if(prob(100 / severity)) - direction = PUMP_OUT - pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) - update_icon() - ..() - - -/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "portable_pump", name, 420, 415, master_ui, state) - ui.open() - -/obj/machinery/portable_atmospherics/pump/ui_data() - var/data = list() - data["on"] = on - data["direction"] = direction - data["connected"] = connected_port ? 1 : 0 - data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) - data["target_pressure"] = round(pump.target_pressure ? pump.target_pressure : 0) - data["default_pressure"] = round(PUMP_DEFAULT_PRESSURE) - data["min_pressure"] = round(PUMP_MIN_PRESSURE) - data["max_pressure"] = round(PUMP_MAX_PRESSURE) - - if(holding) - data["holding"] = list() - data["holding"]["name"] = holding.name - data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) - return data - -/obj/machinery/portable_atmospherics/pump/ui_act(action, params) - if(..()) - return - switch(action) - if("power") - on = !on - if(on && !holding) - var/plasma = air_contents.gases["plasma"] - var/n2o = air_contents.gases["n2o"] - if(n2o || plasma) - var/area/A = get_area(src) - message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][ADMIN_JMP(src)]") - log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][COORD(src)]") - . = TRUE - if("direction") - if(direction == PUMP_OUT) - direction = PUMP_IN - else - direction = PUMP_OUT - . = TRUE - if("pressure") - var/pressure = params["pressure"] - if(pressure == "reset") - pressure = PUMP_DEFAULT_PRESSURE - . = TRUE - else if(pressure == "min") - pressure = PUMP_MIN_PRESSURE - . = TRUE - else if(pressure == "max") - pressure = PUMP_MAX_PRESSURE - . = TRUE - else if(pressure == "input") - pressure = input("New release pressure ([PUMP_MIN_PRESSURE]-[PUMP_MAX_PRESSURE] kPa):", name, pump.target_pressure) as num|null - if(!isnull(pressure) && !..()) - . = TRUE - else if(text2num(pressure) != null) - pressure = text2num(pressure) - . = TRUE - if(.) - pump.target_pressure = Clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) +#define PUMP_MIN_PRESSURE (ONE_ATMOSPHERE / 10) +#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE) + +/obj/machinery/portable_atmospherics/pump + name = "portable air pump" + icon_state = "psiphon:0" + density = 1 + + var/on = FALSE + var/direction = PUMP_OUT + var/obj/machinery/atmospherics/components/binary/pump/pump + + volume = 1000 + +/obj/machinery/portable_atmospherics/pump/Initialize() + ..() + pump = new(src, FALSE) + pump.on = TRUE + pump.stat = 0 + pump.build_network() + +/obj/machinery/portable_atmospherics/pump/Destroy() + var/turf/T = get_turf(src) + T.assume_air(air_contents) + air_update_turf() + qdel(pump) + pump = null + return ..() + +/obj/machinery/portable_atmospherics/pump/update_icon() + icon_state = "psiphon:[on]" + + cut_overlays() + if(holding) + add_overlay("siphon-open") + if(connected_port) + add_overlay("siphon-connector") + +/obj/machinery/portable_atmospherics/pump/process_atmos() + ..() + if(!on) + pump.AIR1 = null + pump.AIR2 = null + return + + var/turf/T = get_turf(src) + if(direction == PUMP_OUT) // Hook up the internal pump. + pump.AIR1 = holding ? holding.air_contents : air_contents + pump.AIR2 = holding ? air_contents : T.return_air() + else + pump.AIR1 = holding ? air_contents : T.return_air() + pump.AIR2 = holding ? holding.air_contents : air_contents + + pump.process_atmos() // Pump gas. + if(!holding) + air_update_turf() // Update the environment if needed. + +/obj/machinery/portable_atmospherics/pump/emp_act(severity) + if(is_operational()) + if(prob(50 / severity)) + on = !on + if(prob(100 / severity)) + direction = PUMP_OUT + pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) + update_icon() + ..() + + +/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "portable_pump", name, 420, 415, master_ui, state) + ui.open() + +/obj/machinery/portable_atmospherics/pump/ui_data() + var/data = list() + data["on"] = on + data["direction"] = direction + data["connected"] = connected_port ? 1 : 0 + data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["target_pressure"] = round(pump.target_pressure ? pump.target_pressure : 0) + data["default_pressure"] = round(PUMP_DEFAULT_PRESSURE) + data["min_pressure"] = round(PUMP_MIN_PRESSURE) + data["max_pressure"] = round(PUMP_MAX_PRESSURE) + + if(holding) + data["holding"] = list() + data["holding"]["name"] = holding.name + data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) + return data + +/obj/machinery/portable_atmospherics/pump/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + if(on && !holding) + var/plasma = air_contents.gases["plasma"] + var/n2o = air_contents.gases["n2o"] + if(n2o || plasma) + var/area/A = get_area(src) + message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][ADMIN_JMP(src)]") + log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][COORD(src)]") + . = TRUE + if("direction") + if(direction == PUMP_OUT) + direction = PUMP_IN + else + direction = PUMP_OUT + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "reset") + pressure = PUMP_DEFAULT_PRESSURE + . = TRUE + else if(pressure == "min") + pressure = PUMP_MIN_PRESSURE + . = TRUE + else if(pressure == "max") + pressure = PUMP_MAX_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New release pressure ([PUMP_MIN_PRESSURE]-[PUMP_MAX_PRESSURE] kPa):", name, pump.target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + pump.target_pressure = Clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) investigate_log("was set to [pump.target_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) - if("eject") - if(holding) - holding.loc = get_turf(src) - holding = null - . = TRUE + if("eject") + if(holding) + holding.loc = get_turf(src) + holding = null + . = TRUE update_icon() \ No newline at end of file diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index 8f111b6eb2..acf9ef4ede 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -1,57 +1,57 @@ - - -/obj/machinery/artillerycontrol - var/reload = 60 - var/reload_cooldown = 60 - var/explosiondev = 3 - var/explosionmed = 6 - var/explosionlight = 12 - name = "bluespace artillery control" - icon_state = "control_boxp1" - icon = 'icons/obj/machines/particle_accelerator.dmi' - density = 1 - anchored = 1 - -/obj/machinery/artillerycontrol/process() - if(reload < reload_cooldown) - reload++ - -/obj/structure/artilleryplaceholder - name = "artillery" - icon = 'icons/obj/machines/artillery.dmi' - anchored = 1 - density = 1 - -/obj/structure/artilleryplaceholder/decorative - density = 0 - -/obj/machinery/artillerycontrol/attack_hand(mob/user) - user.set_machine(src) - var/dat = "Bluespace Artillery Control:
    " - dat += "Locked on
    " - dat += "Charge progress: [reload]/[reload_cooldown]:
    " - dat += "Open Fire
    " - dat += "Deployment of weapon authorized by
    Nanotrasen Naval Command

    Remember, friendly fire is grounds for termination of your contract and life.
    " - user << browse(dat, "window=scroll") - onclose(user, "scroll") - return - -/obj/machinery/artillerycontrol/Topic(href, href_list) - if(..()) - return - var/A - A = input("Area to bombard", "Open Fire", A) in GLOB.teleportlocs - var/area/thearea = GLOB.teleportlocs[A] - if(usr.stat || usr.restrained()) - return - if(reload < reload_cooldown) - return - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) - priority_announce("Bluespace artillery fire detected. Brace for impact.") - message_admins("[key_name_admin(usr)] has launched an artillery strike.") - var/list/L = list() - for(var/turf/T in get_area_turfs(thearea.type)) - L+=T - var/loc = pick(L) + + +/obj/machinery/artillerycontrol + var/reload = 60 + var/reload_cooldown = 60 + var/explosiondev = 3 + var/explosionmed = 6 + var/explosionlight = 12 + name = "bluespace artillery control" + icon_state = "control_boxp1" + icon = 'icons/obj/machines/particle_accelerator.dmi' + density = 1 + anchored = 1 + +/obj/machinery/artillerycontrol/process() + if(reload < reload_cooldown) + reload++ + +/obj/structure/artilleryplaceholder + name = "artillery" + icon = 'icons/obj/machines/artillery.dmi' + anchored = 1 + density = 1 + +/obj/structure/artilleryplaceholder/decorative + density = 0 + +/obj/machinery/artillerycontrol/attack_hand(mob/user) + user.set_machine(src) + var/dat = "Bluespace Artillery Control:
    " + dat += "Locked on
    " + dat += "Charge progress: [reload]/[reload_cooldown]:
    " + dat += "Open Fire
    " + dat += "Deployment of weapon authorized by
    Nanotrasen Naval Command

    Remember, friendly fire is grounds for termination of your contract and life.
    " + user << browse(dat, "window=scroll") + onclose(user, "scroll") + return + +/obj/machinery/artillerycontrol/Topic(href, href_list) + if(..()) + return + var/A + A = input("Area to bombard", "Open Fire", A) in GLOB.teleportlocs + var/area/thearea = GLOB.teleportlocs[A] + if(usr.stat || usr.restrained()) + return + if(reload < reload_cooldown) + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + priority_announce("Bluespace artillery fire detected. Brace for impact.") + message_admins("[key_name_admin(usr)] has launched an artillery strike.") + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + L+=T + var/loc = pick(L) explosion(loc,explosiondev,explosionmed,explosionlight) - reload = 0 + reload = 0 diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index d7abbd77e7..0c6470a870 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -479,4 +479,4 @@ back = /obj/item/weapon/storage/backpack shoes = /obj/item/clothing/shoes/sneakers/black suit = /obj/item/clothing/suit/armor/vest - glasses = /obj/item/clothing/glasses/sunglasses/reagent \ No newline at end of file + glasses = /obj/item/clothing/glasses/sunglasses/reagent diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index c120f53660..1e2727f38d 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -65,7 +65,7 @@ /obj/structure/academy_wizard_spawner/proc/give_control() set waitfor = FALSE - + if(!current_wizard) return var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as Wizard Academy Defender?", "wizard", null, be_special_flag = ROLE_WIZARD, M = current_wizard) @@ -179,7 +179,7 @@ S.speedmod += 1 if(7) //Throw - user.Stun(3) + user.Stun(60) user.adjustBruteLoss(50) var/throw_dir = pick(GLOB.cardinal) var/atom/throw_target = get_edge_target_turf(user, throw_dir) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 83d83f470c..29ffa89720 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -1,127 +1,127 @@ -/* Code for the Wild West map by Brotemis - * Contains: - * Wish Granter - * Meat Grinder - */ - - -/* - * Wish Granter - */ -/obj/machinery/wish_granter_dark - name = "Wish Granter" - desc = "You're not so sure about this, anymore..." - icon = 'icons/obj/device.dmi' - icon_state = "syndbeacon" - - anchored = 1 - density = 1 +/* Code for the Wild West map by Brotemis + * Contains: + * Wish Granter + * Meat Grinder + */ + + +/* + * Wish Granter + */ +/obj/machinery/wish_granter_dark + name = "Wish Granter" + desc = "You're not so sure about this, anymore..." + icon = 'icons/obj/device.dmi' + icon_state = "syndbeacon" + + anchored = 1 + density = 1 use_power = NO_POWER_USE - - var/chargesa = 1 - var/insistinga = 0 - -/obj/machinery/wish_granter_dark/attack_hand(mob/living/carbon/human/user) - usr.set_machine(src) - - if(chargesa <= 0) - to_chat(user, "The Wish Granter lies silent.") - return - - else if(!ishuman(user)) - to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") - return - - else if(is_special_character(user)) - to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.") - - else if (!insistinga) - to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") - insistinga++ - - else - chargesa-- - insistinga = 0 - var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","Immortality","To Kill","Peace") - switch(wish) - if("Power") - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") - user.dna.add_mutation(LASEREYES) - user.dna.add_mutation(COLDRES) - user.dna.add_mutation(XRAY) - user.set_species(/datum/species/shadow) - if("Wealth") - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") - new /obj/structure/closet/syndicate/resources/everything(loc) - user.set_species(/datum/species/shadow) - if("Immortality") - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") - user.verbs += /mob/living/carbon/proc/immortality - user.set_species(/datum/species/shadow) - if("To Kill") - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart.") - SSticker.mode.traitors += user.mind - user.mind.special_role = "traitor" - var/datum/objective/hijack/hijack = new - hijack.owner = user.mind - user.mind.objectives += hijack - to_chat(user, "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!") - user.mind.announce_objectives() - user.set_species(/datum/species/shadow) - if("Peace") - to_chat(user, "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence.") - to_chat(user, "You feel as if you just narrowly avoided a terrible fate...") - for(var/mob/living/simple_animal/hostile/faithless/F in GLOB.mob_list) - F.death() - - -///////////////Meatgrinder////////////// - - -/obj/effect/meatgrinder - name = "Meat Grinder" - desc = "What is that thing?" - density = 1 - anchored = 1 - icon = 'icons/mob/blob.dmi' - icon_state = "blobpod" - var/triggered = 0 - -/obj/effect/meatgrinder/Crossed(AM) - Bumped(AM) - -/obj/effect/meatgrinder/Bumped(mob/M) - - if(triggered) - return - - if(ishuman(M) && M.stat != DEAD && M.ckey) - for(var/mob/O in viewers(world.view, src.loc)) - visible_message("[M] triggered the [src]!") - triggered = 1 - - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() + + var/chargesa = 1 + var/insistinga = 0 + +/obj/machinery/wish_granter_dark/attack_hand(mob/living/carbon/human/user) + usr.set_machine(src) + + if(chargesa <= 0) + to_chat(user, "The Wish Granter lies silent.") + return + + else if(!ishuman(user)) + to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") + return + + else if(is_special_character(user)) + to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.") + + else if (!insistinga) + to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") + insistinga++ + + else + chargesa-- + insistinga = 0 + var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","Immortality","To Kill","Peace") + switch(wish) + if("Power") + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") + user.dna.add_mutation(LASEREYES) + user.dna.add_mutation(COLDRES) + user.dna.add_mutation(XRAY) + user.set_species(/datum/species/shadow) + if("Wealth") + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") + new /obj/structure/closet/syndicate/resources/everything(loc) + user.set_species(/datum/species/shadow) + if("Immortality") + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") + user.verbs += /mob/living/carbon/proc/immortality + user.set_species(/datum/species/shadow) + if("To Kill") + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart.") + SSticker.mode.traitors += user.mind + user.mind.special_role = "traitor" + var/datum/objective/hijack/hijack = new + hijack.owner = user.mind + user.mind.objectives += hijack + to_chat(user, "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!") + user.mind.announce_objectives() + user.set_species(/datum/species/shadow) + if("Peace") + to_chat(user, "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence.") + to_chat(user, "You feel as if you just narrowly avoided a terrible fate...") + for(var/mob/living/simple_animal/hostile/faithless/F in GLOB.mob_list) + F.death() + + +///////////////Meatgrinder////////////// + + +/obj/effect/meatgrinder + name = "Meat Grinder" + desc = "What is that thing?" + density = 1 + anchored = 1 + icon = 'icons/mob/blob.dmi' + icon_state = "blobpod" + var/triggered = 0 + +/obj/effect/meatgrinder/Crossed(AM) + Bumped(AM) + +/obj/effect/meatgrinder/Bumped(mob/M) + + if(triggered) + return + + if(ishuman(M) && M.stat != DEAD && M.ckey) + for(var/mob/O in viewers(world.view, src.loc)) + visible_message("[M] triggered the [src]!") + triggered = 1 + + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() explosion(M, 1, 0, 0, 0) - qdel(src) - -/////For the Wishgranter/////////// - -/mob/living/carbon/proc/immortality() //Mob proc so people cant just clone themselves to get rid of the shadowperson race. No hiding your wickedness. - set category = "Immortality" - set name = "Resurrection" - - var/mob/living/carbon/C = usr - if(!C.stat) - to_chat(C, "You're not dead yet!") - return - if(C.has_status_effect(STATUS_EFFECT_WISH_GRANTERS_GIFT)) - to_chat(C, "You're already resurrecting!") - return - C.apply_status_effect(STATUS_EFFECT_WISH_GRANTERS_GIFT) - return 1 + qdel(src) + +/////For the Wishgranter/////////// + +/mob/living/carbon/proc/immortality() //Mob proc so people cant just clone themselves to get rid of the shadowperson race. No hiding your wickedness. + set category = "Immortality" + set name = "Resurrection" + + var/mob/living/carbon/C = usr + if(!C.stat) + to_chat(C, "You're not dead yet!") + return + if(C.has_status_effect(STATUS_EFFECT_WISH_GRANTERS_GIFT)) + to_chat(C, "You're already resurrecting!") + return + C.apply_status_effect(STATUS_EFFECT_WISH_GRANTERS_GIFT) + return 1 diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index d486bcb469..bea67c994f 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -1,63 +1,63 @@ -// How much "space" we give the edge of the map -GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "config/awaymissionconfig.txt")) - -/proc/createRandomZlevel() - if(GLOB.awaydestinations.len) //crude, but it saves another var! - return - - if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len) - to_chat(world, "Loading away mission...") - var/map = pick(GLOB.potentialRandomZlevels) - load_new_z_level(map) - to_chat(world, "Away mission loaded.") - -/proc/reset_gateway_spawns(reset = FALSE) - for(var/obj/machinery/gateway/G in world) - if(reset) - G.randomspawns = GLOB.awaydestinations - else - G.randomspawns.Add(GLOB.awaydestinations) - -/obj/effect/landmark/awaystart - name = "away mission spawn" - desc = "Randomly picked away mission spawn points" - -/obj/effect/landmark/awaystart/New() - GLOB.awaydestinations += src - ..() - -/obj/effect/landmark/awaystart/Destroy() - GLOB.awaydestinations -= src - return ..() - -/proc/generateMapList(filename) - var/list/potentialMaps = list() +// How much "space" we give the edge of the map +GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "config/awaymissionconfig.txt")) + +/proc/createRandomZlevel() + if(GLOB.awaydestinations.len) //crude, but it saves another var! + return + + if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len) + to_chat(world, "Loading away mission...") + var/map = pick(GLOB.potentialRandomZlevels) + load_new_z_level(map) + to_chat(world, "Away mission loaded.") + +/proc/reset_gateway_spawns(reset = FALSE) + for(var/obj/machinery/gateway/G in world) + if(reset) + G.randomspawns = GLOB.awaydestinations + else + G.randomspawns.Add(GLOB.awaydestinations) + +/obj/effect/landmark/awaystart + name = "away mission spawn" + desc = "Randomly picked away mission spawn points" + +/obj/effect/landmark/awaystart/New() + GLOB.awaydestinations += src + ..() + +/obj/effect/landmark/awaystart/Destroy() + GLOB.awaydestinations -= src + return ..() + +/proc/generateMapList(filename) + var/list/potentialMaps = list() var/list/Lines = world.file2list(filename) - - if(!Lines.len) - return - for (var/t in Lines) - if (!t) - continue - - t = trim(t) - if (length(t) == 0) - continue - else if (copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - - if (pos) - name = lowertext(copytext(t, 1, pos)) - - else - name = lowertext(t) - - if (!name) - continue - - potentialMaps.Add(t) - - return potentialMaps + + if(!Lines.len) + return + for (var/t in Lines) + if (!t) + continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + + else + name = lowertext(t) + + if (!name) + continue + + potentialMaps.Add(t) + + return potentialMaps diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 6fe923a519..cc415b42d2 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -1,203 +1,203 @@ -/obj/machinery/computer/cargo - name = "supply console" - desc = "Used to order supplies, approve requests, and control the shuttle." - icon_screen = "supply" - circuit = /obj/item/weapon/circuitboard/computer/cargo - var/requestonly = FALSE - var/contraband = FALSE - var/safety_warning = "For safety reasons the automated supply shuttle \ - cannot transport live organisms, classified nuclear weaponry or \ - homing beacons." +/obj/machinery/computer/cargo + name = "supply console" + desc = "Used to order supplies, approve requests, and control the shuttle." + icon_screen = "supply" + circuit = /obj/item/weapon/circuitboard/computer/cargo + var/requestonly = FALSE + var/contraband = FALSE + var/safety_warning = "For safety reasons the automated supply shuttle \ + cannot transport live organisms, classified nuclear weaponry or \ + homing beacons." - light_color = "#E2853D"//orange - -/obj/machinery/computer/cargo/request - name = "supply request console" - desc = "Used to request supplies from cargo." - icon_screen = "request" - circuit = /obj/item/weapon/circuitboard/computer/cargo/request - requestonly = TRUE - -/obj/machinery/computer/cargo/New() - ..() - var/obj/item/weapon/circuitboard/computer/cargo/board = circuit - contraband = board.contraband - emagged = board.emagged - -/obj/machinery/computer/cargo/emag_act(mob/living/user) - if(!emagged) - user.visible_message("[user] swipes a suspicious card through [src]!", - "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") - - emagged = TRUE - contraband = TRUE - - // This also permamently sets this on the circuit board - var/obj/item/weapon/circuitboard/computer/cargo/board = circuit - board.contraband = TRUE - board.emagged = TRUE - -/obj/machinery/computer/cargo/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "cargo", name, 1000, 800, master_ui, state) - ui.open() - -/obj/machinery/computer/cargo/ui_data() - var/list/data = list() - data["requestonly"] = requestonly - data["location"] = SSshuttle.supply.getStatusText() - data["points"] = SSshuttle.points - data["away"] = SSshuttle.supply.getDockedId() == "supply_away" - data["docked"] = SSshuttle.supply.mode == SHUTTLE_IDLE - data["loan"] = !!SSshuttle.shuttle_loan - data["loan_dispatched"] = SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched - data["message"] = SSshuttle.centcom_message || "Remember to stamp and send back the supply manifests." - - data["supplies"] = list() - for(var/pack in SSshuttle.supply_packs) - var/datum/supply_pack/P = SSshuttle.supply_packs[pack] - if(!data["supplies"][P.group]) - data["supplies"][P.group] = list( - "name" = P.group, - "packs" = list() - ) - if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled)) - continue - data["supplies"][P.group]["packs"] += list(list( - "name" = P.name, - "cost" = P.cost, - "id" = pack - )) - - data["cart"] = list() - for(var/datum/supply_order/SO in SSshuttle.shoppinglist) - data["cart"] += list(list( - "object" = SO.pack.name, - "cost" = SO.pack.cost, - "id" = SO.id - )) - - data["requests"] = list() - for(var/datum/supply_order/SO in SSshuttle.requestlist) - data["requests"] += list(list( - "object" = SO.pack.name, - "cost" = SO.pack.cost, - "orderer" = SO.orderer, - "reason" = SO.reason, - "id" = SO.id - )) - - return data - -/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui) - if(..()) - return - if(action != "add" && requestonly) - return - switch(action) - if("send") - if(!SSshuttle.supply.canMove()) - say(safety_warning) - return - if(SSshuttle.supply.getDockedId() == "supply_home") - SSshuttle.supply.emagged = emagged - SSshuttle.supply.contraband = contraband - SSshuttle.moveShuttle("supply", "supply_away", TRUE) - say("The supply shuttle has departed.") + light_color = "#E2853D"//orange + +/obj/machinery/computer/cargo/request + name = "supply request console" + desc = "Used to request supplies from cargo." + icon_screen = "request" + circuit = /obj/item/weapon/circuitboard/computer/cargo/request + requestonly = TRUE + +/obj/machinery/computer/cargo/New() + ..() + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit + contraband = board.contraband + emagged = board.emagged + +/obj/machinery/computer/cargo/emag_act(mob/living/user) + if(!emagged) + user.visible_message("[user] swipes a suspicious card through [src]!", + "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") + + emagged = TRUE + contraband = TRUE + + // This also permamently sets this on the circuit board + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit + board.contraband = TRUE + board.emagged = TRUE + +/obj/machinery/computer/cargo/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "cargo", name, 1000, 800, master_ui, state) + ui.open() + +/obj/machinery/computer/cargo/ui_data() + var/list/data = list() + data["requestonly"] = requestonly + data["location"] = SSshuttle.supply.getStatusText() + data["points"] = SSshuttle.points + data["away"] = SSshuttle.supply.getDockedId() == "supply_away" + data["docked"] = SSshuttle.supply.mode == SHUTTLE_IDLE + data["loan"] = !!SSshuttle.shuttle_loan + data["loan_dispatched"] = SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched + data["message"] = SSshuttle.centcom_message || "Remember to stamp and send back the supply manifests." + + data["supplies"] = list() + for(var/pack in SSshuttle.supply_packs) + var/datum/supply_pack/P = SSshuttle.supply_packs[pack] + if(!data["supplies"][P.group]) + data["supplies"][P.group] = list( + "name" = P.group, + "packs" = list() + ) + if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled)) + continue + data["supplies"][P.group]["packs"] += list(list( + "name" = P.name, + "cost" = P.cost, + "id" = pack + )) + + data["cart"] = list() + for(var/datum/supply_order/SO in SSshuttle.shoppinglist) + data["cart"] += list(list( + "object" = SO.pack.name, + "cost" = SO.pack.cost, + "id" = SO.id + )) + + data["requests"] = list() + for(var/datum/supply_order/SO in SSshuttle.requestlist) + data["requests"] += list(list( + "object" = SO.pack.name, + "cost" = SO.pack.cost, + "orderer" = SO.orderer, + "reason" = SO.reason, + "id" = SO.id + )) + + return data + +/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui) + if(..()) + return + if(action != "add" && requestonly) + return + switch(action) + if("send") + if(!SSshuttle.supply.canMove()) + say(safety_warning) + return + if(SSshuttle.supply.getDockedId() == "supply_home") + SSshuttle.supply.emagged = emagged + SSshuttle.supply.contraband = contraband + SSshuttle.moveShuttle("supply", "supply_away", TRUE) + say("The supply shuttle has departed.") investigate_log("[key_name(usr)] sent the supply shuttle away.", INVESTIGATE_CARGO) - else + else investigate_log("[key_name(usr)] called the supply shuttle.", INVESTIGATE_CARGO) - say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.") - SSshuttle.moveShuttle("supply", "supply_home", TRUE) - . = TRUE - if("loan") - if(!SSshuttle.shuttle_loan) - return - else if(SSshuttle.supply.mode != SHUTTLE_IDLE) - return - else if(SSshuttle.supply.getDockedId() != "supply_away") - return - else - SSshuttle.shuttle_loan.loan_shuttle() - say("The supply shuttle has been loaned to Centcom.") - . = TRUE - if("add") - var/id = text2path(params["id"]) - var/datum/supply_pack/pack = SSshuttle.supply_packs[id] - if(!istype(pack)) - return - if((pack.hidden && !emagged) || (pack.contraband && !contraband)) - return - - var/name = "*None Provided*" - var/rank = "*None Provided*" - var/ckey = usr.ckey - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - name = H.get_authentification_name() - rank = H.get_assignment() - else if(issilicon(usr)) - name = usr.real_name - rank = "Silicon" - - var/reason = "" - if(requestonly) - reason = input("Reason:", name, "") as text|null - if(isnull(reason) || ..()) - return - - var/turf/T = get_turf(src) - var/datum/supply_order/SO = new(pack, name, rank, ckey, reason) - SO.generateRequisition(T) - if(requestonly) - SSshuttle.requestlist += SO - else - SSshuttle.shoppinglist += SO - . = TRUE - if("remove") - var/id = text2num(params["id"]) - for(var/datum/supply_order/SO in SSshuttle.shoppinglist) - if(SO.id == id) - SSshuttle.shoppinglist -= SO - . = TRUE - break - if("clear") - SSshuttle.shoppinglist.Cut() - . = TRUE - if("approve") - var/id = text2num(params["id"]) - for(var/datum/supply_order/SO in SSshuttle.requestlist) - if(SO.id == id) - SSshuttle.requestlist -= SO - SSshuttle.shoppinglist += SO - . = TRUE - break - if("deny") - var/id = text2num(params["id"]) - for(var/datum/supply_order/SO in SSshuttle.requestlist) - if(SO.id == id) - SSshuttle.requestlist -= SO - . = TRUE - break - if("denyall") - SSshuttle.requestlist.Cut() - . = TRUE - if(.) - post_signal("supply") - -/obj/machinery/computer/cargo/proc/post_signal(command) - - var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) - - if(!frequency) - return - - var/datum/signal/status_signal = new - status_signal.source = src - status_signal.transmission_method = 1 - status_signal.data["command"] = command - - frequency.post_signal(src, status_signal) - + say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.") + SSshuttle.moveShuttle("supply", "supply_home", TRUE) + . = TRUE + if("loan") + if(!SSshuttle.shuttle_loan) + return + else if(SSshuttle.supply.mode != SHUTTLE_IDLE) + return + else if(SSshuttle.supply.getDockedId() != "supply_away") + return + else + SSshuttle.shuttle_loan.loan_shuttle() + say("The supply shuttle has been loaned to Centcom.") + . = TRUE + if("add") + var/id = text2path(params["id"]) + var/datum/supply_pack/pack = SSshuttle.supply_packs[id] + if(!istype(pack)) + return + if((pack.hidden && !emagged) || (pack.contraband && !contraband)) + return + + var/name = "*None Provided*" + var/rank = "*None Provided*" + var/ckey = usr.ckey + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + name = H.get_authentification_name() + rank = H.get_assignment() + else if(issilicon(usr)) + name = usr.real_name + rank = "Silicon" + + var/reason = "" + if(requestonly) + reason = input("Reason:", name, "") as text|null + if(isnull(reason) || ..()) + return + + var/turf/T = get_turf(src) + var/datum/supply_order/SO = new(pack, name, rank, ckey, reason) + SO.generateRequisition(T) + if(requestonly) + SSshuttle.requestlist += SO + else + SSshuttle.shoppinglist += SO + . = TRUE + if("remove") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.shoppinglist) + if(SO.id == id) + SSshuttle.shoppinglist -= SO + . = TRUE + break + if("clear") + SSshuttle.shoppinglist.Cut() + . = TRUE + if("approve") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.requestlist) + if(SO.id == id) + SSshuttle.requestlist -= SO + SSshuttle.shoppinglist += SO + . = TRUE + break + if("deny") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.requestlist) + if(SO.id == id) + SSshuttle.requestlist -= SO + . = TRUE + break + if("denyall") + SSshuttle.requestlist.Cut() + . = TRUE + if(.) + post_signal("supply") + +/obj/machinery/computer/cargo/proc/post_signal(command) + + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) + return + + var/datum/signal/status_signal = new + status_signal.source = src + status_signal.transmission_method = 1 + status_signal.data["command"] = command + + frequency.post_signal(src, status_signal) + diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 6f81d884e0..36a667bc23 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -60,6 +60,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message var/message = "" var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. + var/k_elasticity = 1/30 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" var/contraband = FALSE // Export must be unlocked with multitool. var/emagged = FALSE // Export must be unlocked with emag. var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. @@ -69,10 +70,33 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they // Used by print-out var/total_cost = 0 var/total_amount = 0 + var/init_cost + +/datum/export/New() + ..() + SSprocessing.processing += src + init_cost = cost + export_types = typecacheof(export_types) + exclude_types = typecacheof(exclude_types) + + +/datum/export/Destroy() + SSprocessing.processing -= src + return ..() + +/datum/export/process() + ..() + cost *= GLOB.E**(k_elasticity * (1/30)) + if(cost > init_cost) + cost = init_cost // Checks the cost. 0 cost items are skipped in export. /datum/export/proc/get_cost(obj/O, contr = 0, emag = 0) - return cost * get_amount(O, contr, emag) + var/amount = get_amount(O, contr, emag) + if(k_elasticity!=0) + return round((cost/k_elasticity) * (1 - GLOB.E**(-1 * k_elasticity * amount))) //anti-derivative of the marginal cost function + else + return round(cost * amount) //alternative form derived from L'Hopital to avoid division by 0 // Checks the amount of exportable in object. Credits in the bill, sheets in the stack, etc. // Usually acts as a multiplier for a cost, so item that has 0 amount will be skipped in export. @@ -87,7 +111,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they return FALSE if(!include_subtypes && !(O.type in export_types)) return FALSE - if(include_subtypes && (!is_type_in_list(O, export_types) || is_type_in_list(O, exclude_types))) + if(include_subtypes && (!is_type_in_typecache(O, export_types) || is_type_in_typecache(O, exclude_types))) return FALSE if(!get_cost(O, contr, emag)) return FALSE @@ -99,12 +123,17 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they // Adds item's cost and amount to the current export cycle. // get_cost, get_amount and applies_to do not neccesary mean a successful sale. /datum/export/proc/sell_object(obj/O, contr = 0, emag = 0) - var/cost = get_cost(O) + var/the_cost = get_cost(O) var/amount = get_amount(O) - total_cost += cost - total_amount += amount + total_cost += the_cost + if(istype(O,/datum/export/material)) + total_amount += amount*MINERAL_MATERIAL_AMOUNT + else + total_amount += amount + + cost *= GLOB.E**(-1*k_elasticity*amount) //marginal cost modifier SSblackbox.add_details("export_sold_amount","[O.type]|[amount]") - SSblackbox.add_details("export_sold_cost","[O.type]|[cost]") + SSblackbox.add_details("export_sold_cost","[O.type]|[the_cost]") // Total printout for the cargo console. // Called before the end of current export cycle. diff --git a/code/modules/cargo/exports/intel.dm b/code/modules/cargo/exports/intel.dm index faba926cb6..0335304677 100644 --- a/code/modules/cargo/exports/intel.dm +++ b/code/modules/cargo/exports/intel.dm @@ -3,6 +3,7 @@ // Selling Syndicate docs to NT /datum/export/intel cost = 25000 + k_elasticity = 0 unit_name = "original article" message = "of enemy intelligence" var/global/originals_recieved = list() @@ -71,4 +72,4 @@ unit_name = "recovered article" message = "of Syndicate intelligence" export_types = list(/obj/item/documents/syndicate) - // Syndicate only wants originals of their docs recovered. \ No newline at end of file + // Syndicate only wants originals of their docs recovered. diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index bfc8fb00b6..63147d0bd9 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -3,6 +3,7 @@ // Crates, boxes, lockers. /datum/export/large/crate cost = 500 + k_elasticity = 0 unit_name = "crate" export_types = list(/obj/structure/closet/crate) exclude_types = list(/obj/structure/closet/crate/large, /obj/structure/closet/crate/wooden) diff --git a/code/modules/cargo/exports/manifest.dm b/code/modules/cargo/exports/manifest.dm index 0f1266f307..a2af0151b1 100644 --- a/code/modules/cargo/exports/manifest.dm +++ b/code/modules/cargo/exports/manifest.dm @@ -2,6 +2,7 @@ // +200 credits flat. /datum/export/manifest_correct cost = 200 + k_elasticity = 0 unit_name = "approved manifest" export_types = list(/obj/item/weapon/paper/manifest) @@ -18,6 +19,7 @@ // Refunds the package cost minus the cost of crate. /datum/export/manifest_error_denied cost = -500 + k_elasticity = 0 unit_name = "correctly denied manifest" export_types = list(/obj/item/weapon/paper/manifest) @@ -73,4 +75,4 @@ /datum/export/manifest_correct_denied/get_cost(obj/O) var/obj/item/weapon/paper/manifest/M = O - return ..() - M.order_cost \ No newline at end of file + return ..() - M.order_cost diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index d4e41186b5..d81025778e 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -11,7 +11,7 @@ /datum/export/material/get_amount(obj/O) if(!material_id) return 0 - if(!istype(O, /obj/item)) + if(!isitem(O)) return 0 var/obj/item/I = O if(!(material_id in I.materials)) @@ -25,10 +25,7 @@ else if(istype(I, /obj/item/weapon/ore)) amount *= 0.8 // Station's ore redemption equipment is really goddamn good. - return round(amount) - -/datum/export/material/get_cost(obj/O) - return round(..() / MINERAL_MATERIAL_AMOUNT) + return round(amount/MINERAL_MATERIAL_AMOUNT) // Materials. Nothing but plasma is really worth selling. Better leave it all to RnD and sell some plasma instead. @@ -47,6 +44,7 @@ // Plasma. The oil of 26 century. The reason why you are here. /datum/export/material/plasma cost = 300 + k_elasticity = 0 material_id = MAT_PLASMA message = "cm3 of plasma" diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm index 858914f0fd..4c1a30ba0b 100644 --- a/code/modules/cargo/exports/organs.dm +++ b/code/modules/cargo/exports/organs.dm @@ -75,7 +75,18 @@ if(C.preserved) return ..() * 2 return ..() - + +// Kitty Organs. + +/datum/export/organ/cat/ears + cost = 1000 + unit_name = "cat ears" + export_types = list(/obj/item/organ/ears/cat) + +/datum/export/organ/cat/tail + cost = 1000 + unit_name = "cat tail" + export_types = list(/obj/item/organ/tail/cat) // Human organs. diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index 51a563918f..ae0f6fd1e8 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -15,18 +15,7 @@ unit_name = "solar panel control board" export_types = list(/obj/item/weapon/circuitboard/computer/solar_control) - - /datum/export/swarmer cost = 2000 unit_name = "deactivated alien deconstruction drone" - export_types = list(/obj/item/device/unactivated_swarmer) - -/datum/export/swarmer/applies_to(obj/O, contr = 0, emag = 0) - if(!..()) - return FALSE - - var/obj/item/device/unactivated_swarmer/S = O - if(!S.crit_fail) - return FALSE - return TRUE \ No newline at end of file + export_types = list(/obj/item/device/deactivated_swarmer) diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm index 9f5847da46..42f9d702e0 100644 --- a/code/modules/cargo/exports/seeds.dm +++ b/code/modules/cargo/exports/seeds.dm @@ -1,5 +1,6 @@ /datum/export/seed cost = 100 // Gets multiplied by potency + k_elasticity = 1 //price inelastic/quantity elastic, only need to export a few samples unit_name = "new plant species sample" export_types = list(/obj/item/seeds) var/needs_discovery = FALSE // Only for undiscovered species diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index 395fd3c305..fcd279f87e 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -111,10 +111,6 @@ unit_name = "cable piece" export_types = list(/obj/item/stack/cable_coil) -/datum/export/stack/cable/get_cost(O) - return round(..()) - - // Weird Stuff // Alien Alloy. Like plasteel, but better. diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index d695e49bce..09674cf4b3 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -286,7 +286,7 @@ /obj/item/device/camera, /obj/item/device/taperecorder, /obj/item/toy/crayon/white, - /obj/item/clothing/head/det_hat) + /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" /datum/supply_pack/security/armory diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 92b2ec8dc0..81fecc6dda 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -1,210 +1,210 @@ -/* -Asset cache quick users guide: - -Make a datum at the bottom of this file with your assets for your thing. -The simple subsystem will most like be of use for most cases. -Then call get_asset_datum() with the type of the datum you created and store the return -Then call .send(client) on that stored return value. - -You can set verify to TRUE if you want send() to sleep until the client has the assets. -*/ - - -// Amount of time(ds) MAX to send per asset, if this get exceeded we cancel the sleeping. -// This is doubled for the first asset, then added per asset after -#define ASSET_CACHE_SEND_TIMEOUT 7 - -//When sending mutiple assets, how many before we give the client a quaint little sending resources message -#define ASSET_CACHE_TELL_CLIENT_AMOUNT 8 - -/client - var/list/cache = list() // List of all assets sent to this client by the asset cache. - var/list/completed_asset_jobs = list() // List of all completed jobs, awaiting acknowledgement. - var/list/sending = list() - var/last_asset_job = 0 // Last job done. - -//This proc sends the asset to the client, but only if it needs it. -//This proc blocks(sleeps) unless verify is set to false -/proc/send_asset(var/client/client, var/asset_name, var/verify = TRUE) - if(!istype(client)) - if(ismob(client)) - var/mob/M = client - if(M.client) - client = M.client - - else - return 0 - - else - return 0 - - if(client.cache.Find(asset_name) || client.sending.Find(asset_name)) - return 0 - - client << browse_rsc(SSassets.cache[asset_name], asset_name) - if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. - if (client) - client.cache += asset_name - return 1 - if (!client) - return 0 - - client.sending |= asset_name - var/job = ++client.last_asset_job - - client << browse({" - - "}, "window=asset_cache_browser") - - var/t = 0 - var/timeout_time = (ASSET_CACHE_SEND_TIMEOUT * client.sending.len) + ASSET_CACHE_SEND_TIMEOUT - while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() - sleep(1) // Lock up the caller until this is received. - t++ - - if(client) - client.sending -= asset_name - client.cache |= asset_name - client.completed_asset_jobs -= job - - return 1 - -//This proc blocks(sleeps) unless verify is set to false -/proc/send_asset_list(var/client/client, var/list/asset_list, var/verify = TRUE) - if(!istype(client)) - if(ismob(client)) - var/mob/M = client - if(M.client) - client = M.client - - else - return 0 - - else - return 0 - - var/list/unreceived = asset_list - (client.cache + client.sending) - if(!unreceived || !unreceived.len) - return 0 - if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) - to_chat(client, "Sending Resources...") - for(var/asset in unreceived) - if (asset in SSassets.cache) - client << browse_rsc(SSassets.cache[asset], asset) - - if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. - if (client) - client.cache += unreceived - return 1 - if (!client) - return 0 - client.sending |= unreceived - var/job = ++client.last_asset_job - - client << browse({" - - "}, "window=asset_cache_browser") - - var/t = 0 - var/timeout_time = ASSET_CACHE_SEND_TIMEOUT * client.sending.len - while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() - sleep(1) // Lock up the caller until this is received. - t++ - - if(client) - client.sending -= unreceived - client.cache |= unreceived - client.completed_asset_jobs -= job - - return 1 - -//This proc will download the files without clogging up the browse() queue, used for passively sending files on connection start. -//The proc calls procs that sleep for long times. -/proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) - for(var/file in files) - if (!client) - break - if (register_asset) - register_asset(file,files[file]) - send_asset(client,file) - sleep(0) //queuing calls like this too quickly can cause issues in some client versions - -//This proc "registers" an asset, it adds it to the cache for further use, you cannot touch it from this point on or you'll fuck things up. -//if it's an icon or something be careful, you'll have to copy it before further use. -/proc/register_asset(var/asset_name, var/asset) - SSassets.cache[asset_name] = asset - -//These datums are used to populate the asset cache, the proc "register()" does this. - -//all of our asset datums, used for referring to these later -GLOBAL_LIST_EMPTY(asset_datums) - -//get a assetdatum or make a new one -/proc/get_asset_datum(var/type) - if (!(type in GLOB.asset_datums)) - return new type() - return GLOB.asset_datums[type] - -/datum/asset/New() - GLOB.asset_datums[type] = src - -/datum/asset/proc/register() - return - -/datum/asset/proc/send(client) - return - -//If you don't need anything complicated. -/datum/asset/simple - var/assets = list() - var/verify = FALSE - -/datum/asset/simple/register() - for(var/asset_name in assets) - register_asset(asset_name, assets[asset_name]) -/datum/asset/simple/send(client) - send_asset_list(client,assets,verify) - - -//DEFINITIONS FOR ASSET DATUMS START HERE. - -/datum/asset/simple/tgui - assets = list( - "tgui.css" = 'tgui/assets/tgui.css', - "tgui.js" = 'tgui/assets/tgui.js', - "font-awesome.min.css" = 'tgui/assets/font-awesome.min.css', - "fontawesome-webfont.eot" = 'tgui/assets/fonts/fontawesome-webfont.eot', - "fontawesome-webfont.woff2" = 'tgui/assets/fonts/fontawesome-webfont.woff2', - "fontawesome-webfont.woff" = 'tgui/assets/fonts/fontawesome-webfont.woff', - "fontawesome-webfont.ttf" = 'tgui/assets/fonts/fontawesome-webfont.ttf', - "fontawesome-webfont.svg" = 'tgui/assets/fonts/fontawesome-webfont.svg' - ) - -/datum/asset/simple/headers - assets = list( - "alarm_green.gif" = 'icons/program_icons/alarm_green.gif', - "alarm_red.gif" = 'icons/program_icons/alarm_red.gif', - "batt_5.gif" = 'icons/program_icons/batt_5.gif', - "batt_20.gif" = 'icons/program_icons/batt_20.gif', - "batt_40.gif" = 'icons/program_icons/batt_40.gif', - "batt_60.gif" = 'icons/program_icons/batt_60.gif', - "batt_80.gif" = 'icons/program_icons/batt_80.gif', - "batt_100.gif" = 'icons/program_icons/batt_100.gif', - "charging.gif" = 'icons/program_icons/charging.gif', - "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif', - "downloader_running.gif" = 'icons/program_icons/downloader_running.gif', - "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif', - "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif', - "power_norm.gif" = 'icons/program_icons/power_norm.gif', - "power_warn.gif" = 'icons/program_icons/power_warn.gif', - "sig_high.gif" = 'icons/program_icons/sig_high.gif', - "sig_low.gif" = 'icons/program_icons/sig_low.gif', - "sig_lan.gif" = 'icons/program_icons/sig_lan.gif', - "sig_none.gif" = 'icons/program_icons/sig_none.gif', +/* +Asset cache quick users guide: + +Make a datum at the bottom of this file with your assets for your thing. +The simple subsystem will most like be of use for most cases. +Then call get_asset_datum() with the type of the datum you created and store the return +Then call .send(client) on that stored return value. + +You can set verify to TRUE if you want send() to sleep until the client has the assets. +*/ + + +// Amount of time(ds) MAX to send per asset, if this get exceeded we cancel the sleeping. +// This is doubled for the first asset, then added per asset after +#define ASSET_CACHE_SEND_TIMEOUT 7 + +//When sending mutiple assets, how many before we give the client a quaint little sending resources message +#define ASSET_CACHE_TELL_CLIENT_AMOUNT 8 + +/client + var/list/cache = list() // List of all assets sent to this client by the asset cache. + var/list/completed_asset_jobs = list() // List of all completed jobs, awaiting acknowledgement. + var/list/sending = list() + var/last_asset_job = 0 // Last job done. + +//This proc sends the asset to the client, but only if it needs it. +//This proc blocks(sleeps) unless verify is set to false +/proc/send_asset(var/client/client, var/asset_name, var/verify = TRUE) + if(!istype(client)) + if(ismob(client)) + var/mob/M = client + if(M.client) + client = M.client + + else + return 0 + + else + return 0 + + if(client.cache.Find(asset_name) || client.sending.Find(asset_name)) + return 0 + + client << browse_rsc(SSassets.cache[asset_name], asset_name) + if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. + if (client) + client.cache += asset_name + return 1 + if (!client) + return 0 + + client.sending |= asset_name + var/job = ++client.last_asset_job + + client << browse({" + + "}, "window=asset_cache_browser") + + var/t = 0 + var/timeout_time = (ASSET_CACHE_SEND_TIMEOUT * client.sending.len) + ASSET_CACHE_SEND_TIMEOUT + while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() + sleep(1) // Lock up the caller until this is received. + t++ + + if(client) + client.sending -= asset_name + client.cache |= asset_name + client.completed_asset_jobs -= job + + return 1 + +//This proc blocks(sleeps) unless verify is set to false +/proc/send_asset_list(var/client/client, var/list/asset_list, var/verify = TRUE) + if(!istype(client)) + if(ismob(client)) + var/mob/M = client + if(M.client) + client = M.client + + else + return 0 + + else + return 0 + + var/list/unreceived = asset_list - (client.cache + client.sending) + if(!unreceived || !unreceived.len) + return 0 + if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) + to_chat(client, "Sending Resources...") + for(var/asset in unreceived) + if (asset in SSassets.cache) + client << browse_rsc(SSassets.cache[asset], asset) + + if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. + if (client) + client.cache += unreceived + return 1 + if (!client) + return 0 + client.sending |= unreceived + var/job = ++client.last_asset_job + + client << browse({" + + "}, "window=asset_cache_browser") + + var/t = 0 + var/timeout_time = ASSET_CACHE_SEND_TIMEOUT * client.sending.len + while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() + sleep(1) // Lock up the caller until this is received. + t++ + + if(client) + client.sending -= unreceived + client.cache |= unreceived + client.completed_asset_jobs -= job + + return 1 + +//This proc will download the files without clogging up the browse() queue, used for passively sending files on connection start. +//The proc calls procs that sleep for long times. +/proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) + for(var/file in files) + if (!client) + break + if (register_asset) + register_asset(file,files[file]) + send_asset(client,file) + sleep(0) //queuing calls like this too quickly can cause issues in some client versions + +//This proc "registers" an asset, it adds it to the cache for further use, you cannot touch it from this point on or you'll fuck things up. +//if it's an icon or something be careful, you'll have to copy it before further use. +/proc/register_asset(var/asset_name, var/asset) + SSassets.cache[asset_name] = asset + +//These datums are used to populate the asset cache, the proc "register()" does this. + +//all of our asset datums, used for referring to these later +GLOBAL_LIST_EMPTY(asset_datums) + +//get a assetdatum or make a new one +/proc/get_asset_datum(var/type) + if (!(type in GLOB.asset_datums)) + return new type() + return GLOB.asset_datums[type] + +/datum/asset/New() + GLOB.asset_datums[type] = src + +/datum/asset/proc/register() + return + +/datum/asset/proc/send(client) + return + +//If you don't need anything complicated. +/datum/asset/simple + var/assets = list() + var/verify = FALSE + +/datum/asset/simple/register() + for(var/asset_name in assets) + register_asset(asset_name, assets[asset_name]) +/datum/asset/simple/send(client) + send_asset_list(client,assets,verify) + + +//DEFINITIONS FOR ASSET DATUMS START HERE. + +/datum/asset/simple/tgui + assets = list( + "tgui.css" = 'tgui/assets/tgui.css', + "tgui.js" = 'tgui/assets/tgui.js', + "font-awesome.min.css" = 'tgui/assets/font-awesome.min.css', + "fontawesome-webfont.eot" = 'tgui/assets/fonts/fontawesome-webfont.eot', + "fontawesome-webfont.woff2" = 'tgui/assets/fonts/fontawesome-webfont.woff2', + "fontawesome-webfont.woff" = 'tgui/assets/fonts/fontawesome-webfont.woff', + "fontawesome-webfont.ttf" = 'tgui/assets/fonts/fontawesome-webfont.ttf', + "fontawesome-webfont.svg" = 'tgui/assets/fonts/fontawesome-webfont.svg' + ) + +/datum/asset/simple/headers + assets = list( + "alarm_green.gif" = 'icons/program_icons/alarm_green.gif', + "alarm_red.gif" = 'icons/program_icons/alarm_red.gif', + "batt_5.gif" = 'icons/program_icons/batt_5.gif', + "batt_20.gif" = 'icons/program_icons/batt_20.gif', + "batt_40.gif" = 'icons/program_icons/batt_40.gif', + "batt_60.gif" = 'icons/program_icons/batt_60.gif', + "batt_80.gif" = 'icons/program_icons/batt_80.gif', + "batt_100.gif" = 'icons/program_icons/batt_100.gif', + "charging.gif" = 'icons/program_icons/charging.gif', + "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif', + "downloader_running.gif" = 'icons/program_icons/downloader_running.gif', + "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif', + "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif', + "power_norm.gif" = 'icons/program_icons/power_norm.gif', + "power_warn.gif" = 'icons/program_icons/power_warn.gif', + "sig_high.gif" = 'icons/program_icons/sig_high.gif', + "sig_low.gif" = 'icons/program_icons/sig_low.gif', + "sig_lan.gif" = 'icons/program_icons/sig_lan.gif', + "sig_none.gif" = 'icons/program_icons/sig_none.gif', "smmon_0.gif" = 'icons/program_icons/smmon_0.gif', "smmon_1.gif" = 'icons/program_icons/smmon_1.gif', "smmon_2.gif" = 'icons/program_icons/smmon_2.gif', @@ -212,97 +212,97 @@ GLOBAL_LIST_EMPTY(asset_datums) "smmon_4.gif" = 'icons/program_icons/smmon_4.gif', "smmon_5.gif" = 'icons/program_icons/smmon_5.gif', "smmon_6.gif" = 'icons/program_icons/smmon_6.gif' - ) - -/datum/asset/simple/pda - assets = list( - "pda_atmos.png" = 'icons/pda_icons/pda_atmos.png', - "pda_back.png" = 'icons/pda_icons/pda_back.png', - "pda_bell.png" = 'icons/pda_icons/pda_bell.png', - "pda_blank.png" = 'icons/pda_icons/pda_blank.png', - "pda_boom.png" = 'icons/pda_icons/pda_boom.png', - "pda_bucket.png" = 'icons/pda_icons/pda_bucket.png', - "pda_medbot.png" = 'icons/pda_icons/pda_medbot.png', - "pda_floorbot.png" = 'icons/pda_icons/pda_floorbot.png', - "pda_cleanbot.png" = 'icons/pda_icons/pda_cleanbot.png', - "pda_crate.png" = 'icons/pda_icons/pda_crate.png', - "pda_cuffs.png" = 'icons/pda_icons/pda_cuffs.png', - "pda_eject.png" = 'icons/pda_icons/pda_eject.png', - "pda_flashlight.png" = 'icons/pda_icons/pda_flashlight.png', - "pda_honk.png" = 'icons/pda_icons/pda_honk.png', - "pda_mail.png" = 'icons/pda_icons/pda_mail.png', - "pda_medical.png" = 'icons/pda_icons/pda_medical.png', - "pda_menu.png" = 'icons/pda_icons/pda_menu.png', - "pda_mule.png" = 'icons/pda_icons/pda_mule.png', - "pda_notes.png" = 'icons/pda_icons/pda_notes.png', - "pda_power.png" = 'icons/pda_icons/pda_power.png', - "pda_rdoor.png" = 'icons/pda_icons/pda_rdoor.png', - "pda_reagent.png" = 'icons/pda_icons/pda_reagent.png', - "pda_refresh.png" = 'icons/pda_icons/pda_refresh.png', - "pda_scanner.png" = 'icons/pda_icons/pda_scanner.png', - "pda_signaler.png" = 'icons/pda_icons/pda_signaler.png', - "pda_status.png" = 'icons/pda_icons/pda_status.png', - "pda_dronephone.png" = 'icons/pda_icons/pda_dronephone.png' - ) - -/datum/asset/simple/paper - assets = list( - "large_stamp-clown.png" = 'icons/stamp_icons/large_stamp-clown.png', - "large_stamp-deny.png" = 'icons/stamp_icons/large_stamp-deny.png', - "large_stamp-ok.png" = 'icons/stamp_icons/large_stamp-ok.png', - "large_stamp-hop.png" = 'icons/stamp_icons/large_stamp-hop.png', - "large_stamp-cmo.png" = 'icons/stamp_icons/large_stamp-cmo.png', - "large_stamp-ce.png" = 'icons/stamp_icons/large_stamp-ce.png', - "large_stamp-hos.png" = 'icons/stamp_icons/large_stamp-hos.png', - "large_stamp-rd.png" = 'icons/stamp_icons/large_stamp-rd.png', - "large_stamp-cap.png" = 'icons/stamp_icons/large_stamp-cap.png', - "large_stamp-qm.png" = 'icons/stamp_icons/large_stamp-qm.png', - "large_stamp-law.png" = 'icons/stamp_icons/large_stamp-law.png' - ) - -/datum/asset/simple/IRV - assets = list( - "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js', - "jquery-1.10.2.min.js" = 'html/IRV/jquery-1.10.2.min.js' - ) - -/datum/asset/simple/changelog - assets = list( - "88x31.png" = 'html/88x31.png', - "bug-minus.png" = 'html/bug-minus.png', - "cross-circle.png" = 'html/cross-circle.png', - "hard-hat-exclamation.png" = 'html/hard-hat-exclamation.png', - "image-minus.png" = 'html/image-minus.png', - "image-plus.png" = 'html/image-plus.png', - "music-minus.png" = 'html/music-minus.png', - "music-plus.png" = 'html/music-plus.png', - "tick-circle.png" = 'html/tick-circle.png', - "wrench-screwdriver.png" = 'html/wrench-screwdriver.png', - "spell-check.png" = 'html/spell-check.png', - "burn-exclamation.png" = 'html/burn-exclamation.png', - "chevron.png" = 'html/chevron.png', - "chevron-expand.png" = 'html/chevron-expand.png', - "scales.png" = 'html/scales.png', - "changelog.css" = 'html/changelog.css' - ) - -/datum/asset/simple/goonchat - verify = FALSE - assets = list( - "jquery.min.js" = 'code/modules/html_interface/js/jquery.min.js', - "json2.min.js" = 'code/modules/goonchat/browserassets/js/json2.min.js', - "errorHandler.js" = 'code/modules/goonchat/browserassets/js/errorHandler.js', - "browserOutput.js" = 'code/modules/goonchat/browserassets/js/browserOutput.js', - "fontawesome-webfont.eot" = 'tgui/assets/fonts/fontawesome-webfont.eot', - "fontawesome-webfont.svg" = 'tgui/assets/fonts/fontawesome-webfont.svg', - "fontawesome-webfont.ttf" = 'tgui/assets/fonts/fontawesome-webfont.ttf', - "fontawesome-webfont.woff" = 'tgui/assets/fonts/fontawesome-webfont.woff', - "font-awesome.css" = 'code/modules/goonchat/browserassets/css/font-awesome.css', - "browserOutput.css" = 'code/modules/goonchat/browserassets/css/browserOutput.css', - ) - -//Registers HTML Interface assets. -/datum/asset/HTML_interface/register() - for(var/path in typesof(/datum/html_interface)) - var/datum/html_interface/hi = new path() - hi.registerResources() + ) + +/datum/asset/simple/pda + assets = list( + "pda_atmos.png" = 'icons/pda_icons/pda_atmos.png', + "pda_back.png" = 'icons/pda_icons/pda_back.png', + "pda_bell.png" = 'icons/pda_icons/pda_bell.png', + "pda_blank.png" = 'icons/pda_icons/pda_blank.png', + "pda_boom.png" = 'icons/pda_icons/pda_boom.png', + "pda_bucket.png" = 'icons/pda_icons/pda_bucket.png', + "pda_medbot.png" = 'icons/pda_icons/pda_medbot.png', + "pda_floorbot.png" = 'icons/pda_icons/pda_floorbot.png', + "pda_cleanbot.png" = 'icons/pda_icons/pda_cleanbot.png', + "pda_crate.png" = 'icons/pda_icons/pda_crate.png', + "pda_cuffs.png" = 'icons/pda_icons/pda_cuffs.png', + "pda_eject.png" = 'icons/pda_icons/pda_eject.png', + "pda_flashlight.png" = 'icons/pda_icons/pda_flashlight.png', + "pda_honk.png" = 'icons/pda_icons/pda_honk.png', + "pda_mail.png" = 'icons/pda_icons/pda_mail.png', + "pda_medical.png" = 'icons/pda_icons/pda_medical.png', + "pda_menu.png" = 'icons/pda_icons/pda_menu.png', + "pda_mule.png" = 'icons/pda_icons/pda_mule.png', + "pda_notes.png" = 'icons/pda_icons/pda_notes.png', + "pda_power.png" = 'icons/pda_icons/pda_power.png', + "pda_rdoor.png" = 'icons/pda_icons/pda_rdoor.png', + "pda_reagent.png" = 'icons/pda_icons/pda_reagent.png', + "pda_refresh.png" = 'icons/pda_icons/pda_refresh.png', + "pda_scanner.png" = 'icons/pda_icons/pda_scanner.png', + "pda_signaler.png" = 'icons/pda_icons/pda_signaler.png', + "pda_status.png" = 'icons/pda_icons/pda_status.png', + "pda_dronephone.png" = 'icons/pda_icons/pda_dronephone.png' + ) + +/datum/asset/simple/paper + assets = list( + "large_stamp-clown.png" = 'icons/stamp_icons/large_stamp-clown.png', + "large_stamp-deny.png" = 'icons/stamp_icons/large_stamp-deny.png', + "large_stamp-ok.png" = 'icons/stamp_icons/large_stamp-ok.png', + "large_stamp-hop.png" = 'icons/stamp_icons/large_stamp-hop.png', + "large_stamp-cmo.png" = 'icons/stamp_icons/large_stamp-cmo.png', + "large_stamp-ce.png" = 'icons/stamp_icons/large_stamp-ce.png', + "large_stamp-hos.png" = 'icons/stamp_icons/large_stamp-hos.png', + "large_stamp-rd.png" = 'icons/stamp_icons/large_stamp-rd.png', + "large_stamp-cap.png" = 'icons/stamp_icons/large_stamp-cap.png', + "large_stamp-qm.png" = 'icons/stamp_icons/large_stamp-qm.png', + "large_stamp-law.png" = 'icons/stamp_icons/large_stamp-law.png' + ) + +/datum/asset/simple/IRV + assets = list( + "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js', + "jquery-1.10.2.min.js" = 'html/IRV/jquery-1.10.2.min.js' + ) + +/datum/asset/simple/changelog + assets = list( + "88x31.png" = 'html/88x31.png', + "bug-minus.png" = 'html/bug-minus.png', + "cross-circle.png" = 'html/cross-circle.png', + "hard-hat-exclamation.png" = 'html/hard-hat-exclamation.png', + "image-minus.png" = 'html/image-minus.png', + "image-plus.png" = 'html/image-plus.png', + "music-minus.png" = 'html/music-minus.png', + "music-plus.png" = 'html/music-plus.png', + "tick-circle.png" = 'html/tick-circle.png', + "wrench-screwdriver.png" = 'html/wrench-screwdriver.png', + "spell-check.png" = 'html/spell-check.png', + "burn-exclamation.png" = 'html/burn-exclamation.png', + "chevron.png" = 'html/chevron.png', + "chevron-expand.png" = 'html/chevron-expand.png', + "scales.png" = 'html/scales.png', + "changelog.css" = 'html/changelog.css' + ) + +/datum/asset/simple/goonchat + verify = FALSE + assets = list( + "jquery.min.js" = 'code/modules/html_interface/js/jquery.min.js', + "json2.min.js" = 'code/modules/goonchat/browserassets/js/json2.min.js', + "errorHandler.js" = 'code/modules/goonchat/browserassets/js/errorHandler.js', + "browserOutput.js" = 'code/modules/goonchat/browserassets/js/browserOutput.js', + "fontawesome-webfont.eot" = 'tgui/assets/fonts/fontawesome-webfont.eot', + "fontawesome-webfont.svg" = 'tgui/assets/fonts/fontawesome-webfont.svg', + "fontawesome-webfont.ttf" = 'tgui/assets/fonts/fontawesome-webfont.ttf', + "fontawesome-webfont.woff" = 'tgui/assets/fonts/fontawesome-webfont.woff', + "font-awesome.css" = 'code/modules/goonchat/browserassets/css/font-awesome.css', + "browserOutput.css" = 'code/modules/goonchat/browserassets/css/browserOutput.css', + ) + +//Registers HTML Interface assets. +/datum/asset/HTML_interface/register() + for(var/path in typesof(/datum/html_interface)) + var/datum/html_interface/hi = new path() + hi.registerResources() diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index c166acd2ce..06e921399e 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -1,70 +1,71 @@ - -/client - ////////////////////// - //BLACK MAGIC THINGS// - ////////////////////// - parent_type = /datum - //////////////// - //ADMIN THINGS// - //////////////// - var/datum/admins/holder = null - var/datum/click_intercept = null // Needs to implement InterceptClickOn(user,params,atom) proc - var/AI_Interact = 0 - - var/jobbancache = null //Used to cache this client's jobbans to save on DB queries - var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming. - var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent. - var/ircreplyamount = 0 - - ///////// - //OTHER// - ///////// - var/datum/preferences/prefs = null - var/move_delay = 1 - var/moving = null - - var/area = null - - /////////////// - //SOUND STUFF// - /////////////// - var/ambience_playing= null - var/played = 0 - //////////// - //SECURITY// - //////////// - // comment out the line below when debugging locally to enable the options & messages menu - control_freak = 1 - - //////////////////////////////////// - //things that require the database// - //////////////////////////////////// - var/player_age = -1 //Used to determine how old the account is - in days. - var/player_join_date = null //Date that this account was first seen in the server - var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip - var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id - var/account_join_date = null //Date of byond account creation in ISO 8601 format - var/account_age = -1 //Age of byond account in days - - preload_rsc = PRELOAD_RSC - - var/global/obj/screen/click_catcher/void - - // Used by html_interface module. - var/hi_last_pos - - var/ip_intel = "Disabled" - - //datum that controls the displaying and hiding of tooltips - var/datum/tooltip/tooltips - - var/lastping = 0 - var/avgping = 0 - var/connection_time //world.time they connected - var/connection_realtime //world.realtime they connected - var/connection_timeofday //world.timeofday they connected - - var/inprefs = FALSE + +/client + ////////////////////// + //BLACK MAGIC THINGS// + ////////////////////// + parent_type = /datum + //////////////// + //ADMIN THINGS// + //////////////// + var/datum/admins/holder = null + var/datum/click_intercept = null // Needs to implement InterceptClickOn(user,params,atom) proc + var/AI_Interact = 0 + + var/jobbancache = null //Used to cache this client's jobbans to save on DB queries + var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming. + var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent. + var/ircreplyamount = 0 + + ///////// + //OTHER// + ///////// + var/datum/preferences/prefs = null + var/move_delay = 1 + var/moving = null + + var/area = null + + /////////////// + //SOUND STUFF// + /////////////// + var/ambience_playing= null + var/played = 0 + //////////// + //SECURITY// + //////////// + // comment out the line below when debugging locally to enable the options & messages menu + control_freak = 1 + + //////////////////////////////////// + //things that require the database// + //////////////////////////////////// + var/player_age = -1 //Used to determine how old the account is - in days. + var/player_join_date = null //Date that this account was first seen in the server + var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip + var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id + var/account_join_date = null //Date of byond account creation in ISO 8601 format + var/account_age = -1 //Age of byond account in days + + preload_rsc = PRELOAD_RSC + + var/global/obj/screen/click_catcher/void + + // Used by html_interface module. + var/hi_last_pos + + var/ip_intel = "Disabled" + + //datum that controls the displaying and hiding of tooltips + var/datum/tooltip/tooltips + + var/lastping = 0 + var/avgping = 0 + var/connection_time //world.time they connected + var/connection_realtime //world.realtime they connected + var/connection_timeofday //world.timeofday they connected + + var/inprefs = FALSE var/list/topiclimiter - var/datum/chatOutput/chatOutput \ No newline at end of file + var/datum/chatOutput/chatOutput + diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 7e509d2cdc..8b16fd1d68 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -72,16 +72,6 @@ to_chat(src, "Your previous action was ignored because you've done too many in a second") return -/* - if(href_list["mentor_msg"]) - if(config.mentors_mobname_only) - var/mob/M = locate(href_list["mentor_msg"]) - cmd_mentor_pm(M,null) - else - cmd_mentor_pm(href_list["mentor_msg"],null) - return -*/ - //Logs all hrefs GLOB.world_href_log << "[time_stamp(show_ds = TRUE)] [src] (usr:[usr]) || [hsrc ? "[hsrc] " : ""][href]
    " @@ -201,13 +191,6 @@ GLOBAL_LIST(external_rsc_urls) GLOB.admins |= src holder.owner = src - //Mentor Authorisation -/* var/mentor = GLOB.mentor_datums[ckey] - if(mentor) - verbs += /client/proc/cmd_mentor_say - verbs += /client/proc/show_mentor_memo - GLOB.mentors |= src */ - //preferences datum - also holds some persistent data for the client (because we may as well keep these datums to a minimum) prefs = GLOB.preferences_datums[ckey] if(!prefs) @@ -296,9 +279,6 @@ GLOBAL_LIST(external_rsc_urls) if((global.comms_key == "default_pwd" || length(global.comms_key) <= 6) && global.comms_allowed) //It's the default value or less than 6 characters long, but it somehow didn't disable comms. to_chat(src, "The server's API key is either too short or is the default value! Consider changing it immediately!") -/* if(mentor && !holder) - mentor_memo_output("Show") */ - add_verbs_from_config() var/cached_player_age = set_client_age_from_db(tdata) //we have to cache this because other shit may change it and we need it's current value now down below. if (isnum(cached_player_age) && cached_player_age == -1) //first connection @@ -315,7 +295,6 @@ GLOBAL_LIST(external_rsc_urls) qdel(src) return 0 - if (config.notify_new_player_age >= 0) message_admins("New user: [key_name_admin(src)] is connecting here for the first time.") if (config.irc_first_connection_alert) @@ -361,8 +340,6 @@ GLOBAL_LIST(external_rsc_urls) if(!tooltips) tooltips = new /datum/tooltip(src) - hook_vr("client_new",list(src)) - var/list/topmenus = GLOB.menulist[/datum/verbs/menu] for (var/thing in topmenus) var/datum/verbs/menu/topmenu = thing @@ -384,6 +361,8 @@ GLOBAL_LIST(external_rsc_urls) if (menuitem) menuitem.Load_checked(src) + hook_vr("client_new",list(src)) + ////////////// //DISCONNECT// ////////////// @@ -394,7 +373,6 @@ GLOBAL_LIST(external_rsc_urls) adminGreet(1) holder.owner = null GLOB.admins -= src - if (!GLOB.admins.len && SSticker.IsRoundInProgress()) //Only report this stuff if we are currently playing. if(!GLOB.admins.len) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell. var/cheesy_message = pick( @@ -415,11 +393,14 @@ GLOBAL_LIST(external_rsc_urls) "Panic bunker can't keep my love for you out.",\ "Cebu needs to Awoo herself back into my heart.",\ "I don't even have a Turry to snuggle viciously here.",\ - "MOM, WHERE ARE YOU???",\ + "MOM, WHERE ARE YOU??? D:",\ "It's a beautiful day outside. Birds are singing, flowers are blooming. On days like this...kids like you...SHOULD BE BURNING IN HELL.",\ "Sometimes when I have sex, I think about putting an entire peanut butter and jelly sandwich in the VCR.",\ - "Forever alone :("\ - ) + "Oh good, no-one around to watch me lick Goofball's nipples. :D",\ + "I've replaced Beepsky with a fidget spinner, glory be autism abuse.",\ + "i shure hop dere are no PRED arund!!!!",\ + "NO PRED CAN eVER CATCH MI"\ + ) send2irc("Server", "[cheesy_message] (No admins online)") diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 1f50a697c2..8aecf7c392 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -2,7 +2,6 @@ /mob/living/carbon/human/verb/suicide() set hidden = 1 - return // H U G B O X if(!canSuicide()) return var/oldkey = ckey @@ -173,7 +172,4 @@ if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide to_chat(src, "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))") return - if(has_brain_worms()) - to_chat(src, "You can't bring yourself to commit suicide!") - return return TRUE diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm index 1614966726..a32da8ab69 100644 --- a/code/modules/client/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -85,4 +85,5 @@ if(!C.holder.fakekey) msg += "\t[C] is a [C.holder.rank]\n" msg += "Adminhelps are also sent to IRC. If no admins are available in game adminhelp anyways and an admin on IRC will see it and respond." - to_chat(src, msg) \ No newline at end of file + to_chat(src, msg) + diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 3a91c3207e..32d6b1fc4b 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -133,7 +133,7 @@ target.name = initial(picked_item.name) target.desc = initial(picked_item.desc) target.icon_state = initial(picked_item.icon_state) - if(istype(target, /obj/item)) + if(isitem(target)) var/obj/item/I = target I.item_state = initial(picked_item.item_state) I.item_color = initial(picked_item.item_color) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9e0293030a..91f9fa006d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -278,6 +278,11 @@ BLIND // can't see anything var/blockTracking = 0 //For AI tracking var/can_toggle = null +/obj/item/clothing/head/Initialize() + . = ..() + if(ishuman(loc) && dynamic_hair_suffix) + var/mob/living/carbon/human/H = loc + H.update_hair() /obj/item/clothing/head/worn_overlays(isinhands = FALSE) . = list() @@ -293,6 +298,16 @@ BLIND // can't see anything var/mob/M = loc M.update_inv_head() +/obj/item/clothing/head/equipped(mob/user, slot) + ..() + if(dynamic_hair_suffix) + user.update_hair() + +/obj/item/clothing/head/dropped(mob/user) + ..() + if(dynamic_hair_suffix) + user.update_hair() + //Neck /obj/item/clothing/neck @@ -462,6 +477,13 @@ BLIND // can't see anything . += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood") + var/mob/living/carbon/human/M = loc + if(ishuman(M) && M.w_uniform) + var/obj/item/clothing/under/U = M.w_uniform + if(istype(U) && U.attached_accessory) + var/obj/item/clothing/accessory/A = U.attached_accessory + if(A.above_suit) + . += U.accessory_overlay /obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE) ..() @@ -530,25 +552,19 @@ BLIND // can't see anything var/adjusted = NORMAL_STYLE var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only var/obj/item/clothing/accessory/attached_accessory + var/mutable_appearance/accessory_overlay var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. /obj/item/clothing/under/worn_overlays(isinhands = FALSE) . = list() - if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "uniformblood") - if(attached_accessory) - var/accessory_color = attached_accessory.item_color - if(!accessory_color) - accessory_color = attached_accessory.icon_state - var/mutable_appearance/accessory = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") - accessory.alpha = attached_accessory.alpha - accessory.color = attached_accessory.color - . += accessory + if(accessory_overlay) + . += accessory_overlay /obj/item/clothing/under/attackby(obj/item/W, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) @@ -587,12 +603,20 @@ BLIND // can't see anything adjusted = DIGITIGRADE_STYLE H.update_inv_w_uniform() - if(attached_accessory && slot != slot_hands) + if(attached_accessory && slot != slot_hands && ishuman(user)) + var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) + if(attached_accessory.above_suit) + H.update_inv_wear_suit() /obj/item/clothing/under/dropped(mob/user) if(attached_accessory) attached_accessory.on_uniform_dropped(src, user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(attached_accessory.above_suit) + H.update_inv_wear_suit() + ..() /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) @@ -616,9 +640,17 @@ BLIND // can't see anything if(user && notifyAttach) to_chat(user, "You attach [I] to [src].") + var/accessory_color = attached_accessory.item_color + if(!accessory_color) + accessory_color = attached_accessory.icon_state + accessory_overlay = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") + accessory_overlay.alpha = attached_accessory.alpha + accessory_overlay.color = attached_accessory.color + if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() + H.update_inv_wear_suit() return TRUE @@ -639,6 +671,7 @@ BLIND // can't see anything if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() + H.update_inv_wear_suit() /obj/item/clothing/under/examine(mob/user) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 83adfea0c1..3ca36bf6ee 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -1,287 +1,287 @@ -/obj/item/clothing/glasses - name = "glasses" - materials = list(MAT_GLASS = 250) - var/glass_colour_type = null //colors your vision when worn - -/obj/item/clothing/glasses/visor_toggling() - ..() - if(visor_vars_to_toggle & VISOR_VISIONFLAGS) - vision_flags ^= initial(vision_flags) - if(visor_vars_to_toggle & VISOR_DARKNESSVIEW) - darkness_view ^= initial(darkness_view) - if(visor_vars_to_toggle & VISOR_INVISVIEW) - invis_view ^= initial(invis_view) - -/obj/item/clothing/glasses/weldingvisortoggle(mob/user) - . = ..() - if(. && user) - user.update_sight() - -//called when thermal glasses are emped. -/obj/item/clothing/glasses/proc/thermal_overload() - if(ishuman(src.loc)) - var/mob/living/carbon/human/H = src.loc - if(!(H.disabilities & BLIND)) - if(H.glasses == src) - to_chat(H, "The [src] overloads and blinds you!") - H.flash_act(visual = 1) - H.blind_eyes(3) - H.blur_eyes(5) - H.adjust_eye_damage(5) - -/obj/item/clothing/glasses/meson +/obj/item/clothing/glasses + name = "glasses" + materials = list(MAT_GLASS = 250) + var/glass_colour_type = null //colors your vision when worn + +/obj/item/clothing/glasses/visor_toggling() + ..() + if(visor_vars_to_toggle & VISOR_VISIONFLAGS) + vision_flags ^= initial(vision_flags) + if(visor_vars_to_toggle & VISOR_DARKNESSVIEW) + darkness_view ^= initial(darkness_view) + if(visor_vars_to_toggle & VISOR_INVISVIEW) + invis_view ^= initial(invis_view) + +/obj/item/clothing/glasses/weldingvisortoggle(mob/user) + . = ..() + if(. && user) + user.update_sight() + +//called when thermal glasses are emped. +/obj/item/clothing/glasses/proc/thermal_overload() + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(!(H.disabilities & BLIND)) + if(H.glasses == src) + to_chat(H, "The [src] overloads and blinds you!") + H.flash_act(visual = 1) + H.blind_eyes(3) + H.blur_eyes(5) + H.adjust_eye_damage(5) + +/obj/item/clothing/glasses/meson name = "optical meson scanner" desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions." - icon_state = "meson" - item_state = "meson" - origin_tech = "magnets=1;engineering=2" - darkness_view = 2 - vision_flags = SEE_TURFS + icon_state = "meson" + item_state = "meson" + origin_tech = "magnets=1;engineering=2" + darkness_view = 2 + vision_flags = SEE_TURFS lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - glass_colour_type = /datum/client_colour/glass_colour/lightgreen - -/obj/item/clothing/glasses/meson/night + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + +/obj/item/clothing/glasses/meson/night name = "night vision meson scanner" desc = "An optical meson scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." - icon_state = "nvgmeson" - item_state = "nvgmeson" - origin_tech = "magnets=4;engineering=5;plasmatech=4" - darkness_view = 8 + icon_state = "nvgmeson" + item_state = "nvgmeson" + origin_tech = "magnets=4;engineering=5;plasmatech=4" + darkness_view = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - glass_colour_type = /datum/client_colour/glass_colour/green - -/obj/item/clothing/glasses/meson/gar - name = "gar mesons" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/science - name = "science goggles" - desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." - icon_state = "purple" - item_state = "glasses" - origin_tech = "magnets=2;engineering=1" - scan_reagents = 1 //You can see reagents while wearing science goggles - actions_types = list(/datum/action/item_action/toggle_research_scanner) - glass_colour_type = /datum/client_colour/glass_colour/purple - resistance_flags = ACID_PROOF - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) - -/obj/item/clothing/glasses/science/item_action_slot_check(slot) - if(slot == slot_glasses) - return 1 - -/obj/item/clothing/glasses/night + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/meson/gar + name = "gar mesons" + icon_state = "garm" + item_state = "garm" + desc = "Do the impossible, see the invisible!" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/science + name = "science goggles" + desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." + icon_state = "purple" + item_state = "glasses" + origin_tech = "magnets=2;engineering=1" + scan_reagents = 1 //You can see reagents while wearing science goggles + actions_types = list(/datum/action/item_action/toggle_research_scanner) + glass_colour_type = /datum/client_colour/glass_colour/purple + resistance_flags = ACID_PROOF + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) + +/obj/item/clothing/glasses/science/item_action_slot_check(slot) + if(slot == slot_glasses) + return 1 + +/obj/item/clothing/glasses/night name = "night vision goggles" - desc = "You can totally see in the dark now!" - icon_state = "night" - item_state = "glasses" - origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - glass_colour_type = /datum/client_colour/glass_colour/green - -/obj/item/clothing/glasses/eyepatch - name = "eyepatch" - desc = "Yarr." - icon_state = "eyepatch" - item_state = "eyepatch" - -/obj/item/clothing/glasses/monocle - name = "monocle" - desc = "Such a dapper eyepiece!" - icon_state = "monocle" - item_state = "headset" // lol - -/obj/item/clothing/glasses/material + desc = "You can totally see in the dark now!" + icon_state = "night" + item_state = "glasses" + origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" + darkness_view = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/eyepatch + name = "eyepatch" + desc = "Yarr." + icon_state = "eyepatch" + item_state = "eyepatch" + +/obj/item/clothing/glasses/monocle + name = "monocle" + desc = "Such a dapper eyepiece!" + icon_state = "monocle" + item_state = "headset" // lol + +/obj/item/clothing/glasses/material name = "optical material scanner" - desc = "Very confusing glasses." - icon_state = "material" - item_state = "glasses" - origin_tech = "magnets=3;engineering=3" - vision_flags = SEE_OBJS - glass_colour_type = /datum/client_colour/glass_colour/lightblue - -/obj/item/clothing/glasses/material/mining + desc = "Very confusing glasses." + icon_state = "material" + item_state = "glasses" + origin_tech = "magnets=3;engineering=3" + vision_flags = SEE_OBJS + glass_colour_type = /datum/client_colour/glass_colour/lightblue + +/obj/item/clothing/glasses/material/mining name = "optical material scanner" - desc = "Used by miners to detect ores deep within the rock." - icon_state = "material" - item_state = "glasses" - origin_tech = "magnets=3;engineering=3" - darkness_view = 0 - -/obj/item/clothing/glasses/material/mining/gar - name = "gar material scanner" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 20 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/lightgreen - -/obj/item/clothing/glasses/regular + desc = "Used by miners to detect ores deep within the rock." + icon_state = "material" + item_state = "glasses" + origin_tech = "magnets=3;engineering=3" + darkness_view = 0 + +/obj/item/clothing/glasses/material/mining/gar + name = "gar material scanner" + icon_state = "garm" + item_state = "garm" + desc = "Do the impossible, see the invisible!" + force = 10 + throwforce = 20 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + +/obj/item/clothing/glasses/regular name = "prescription glasses" - desc = "Made by Nerd. Co." - icon_state = "glasses" - item_state = "glasses" - vision_correction = 1 //corrects nearsightedness - -/obj/item/clothing/glasses/regular/jamjar + desc = "Made by Nerd. Co." + icon_state = "glasses" + item_state = "glasses" + vision_correction = 1 //corrects nearsightedness + +/obj/item/clothing/glasses/regular/jamjar name = "jamjar glasses" - desc = "Also known as Virginity Protectors." - icon_state = "jamjar_glasses" - item_state = "jamjar_glasses" - -/obj/item/clothing/glasses/regular/hipster + desc = "Also known as Virginity Protectors." + icon_state = "jamjar_glasses" + item_state = "jamjar_glasses" + +/obj/item/clothing/glasses/regular/hipster name = "prescription glasses" - desc = "Made by Uncool. Co." - icon_state = "hipster_glasses" - item_state = "hipster_glasses" - -//Here lies green glasses, so ugly they died. RIP - -/obj/item/clothing/glasses/sunglasses - name = "sunglasses" + desc = "Made by Uncool. Co." + icon_state = "hipster_glasses" + item_state = "hipster_glasses" + +//Here lies green glasses, so ugly they died. RIP + +/obj/item/clothing/glasses/sunglasses + name = "sunglasses" desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." - icon_state = "sun" - item_state = "sunglasses" - darkness_view = 1 - flash_protect = 1 - tint = 1 - glass_colour_type = /datum/client_colour/glass_colour/gray - dog_fashion = /datum/dog_fashion/head - -/obj/item/clothing/glasses/sunglasses/reagent - name = "beer goggles" - desc = "A pair of sunglasses outfitted with apparatus to scan reagents." - origin_tech = "magnets=2;engineering=2" - scan_reagents = 1 - -/obj/item/clothing/glasses/sunglasses/garb - name = "black gar glasses" + icon_state = "sun" + item_state = "sunglasses" + darkness_view = 1 + flash_protect = 1 + tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/gray + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/glasses/sunglasses/reagent + name = "beer goggles" + desc = "A pair of sunglasses outfitted with apparatus to scan reagents." + origin_tech = "magnets=2;engineering=2" + scan_reagents = 1 + +/obj/item/clothing/glasses/sunglasses/garb + name = "black gar glasses" desc = "Go beyond impossible and kick reason to the curb!" - icon_state = "garb" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/sunglasses/garb/supergarb - name = "black giga gar glasses" + icon_state = "garb" + item_state = "garb" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/sunglasses/garb/supergarb + name = "black giga gar glasses" desc = "Believe in us humans." - icon_state = "supergarb" - item_state = "garb" - force = 12 - throwforce = 12 - -/obj/item/clothing/glasses/sunglasses/gar - name = "gar glasses" + icon_state = "supergarb" + item_state = "garb" + force = 12 + throwforce = 12 + +/obj/item/clothing/glasses/sunglasses/gar + name = "gar glasses" desc = "Just who the hell do you think I am?!" - icon_state = "gar" - item_state = "gar" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/orange - -/obj/item/clothing/glasses/sunglasses/gar/supergar - name = "giga gar glasses" + icon_state = "gar" + item_state = "gar" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/orange + +/obj/item/clothing/glasses/sunglasses/gar/supergar + name = "giga gar glasses" desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!" - icon_state = "supergar" - item_state = "gar" - force = 12 - throwforce = 12 - glass_colour_type = /datum/client_colour/glass_colour/red - -/obj/item/clothing/glasses/welding - name = "welding goggles" - desc = "Protects the eyes from welders; approved by the mad scientist association." - icon_state = "welding-g" - item_state = "welding-g" - actions_types = list(/datum/action/item_action/toggle) - materials = list(MAT_METAL = 250) - flash_protect = 2 - tint = 2 - visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT - flags_cover = GLASSESCOVERSEYES - visor_flags_inv = HIDEEYES - glass_colour_type = /datum/client_colour/glass_colour/gray - -/obj/item/clothing/glasses/welding/attack_self(mob/user) - weldingvisortoggle(user) - - -/obj/item/clothing/glasses/sunglasses/blindfold - name = "blindfold" - desc = "Covers the eyes, preventing sight." - icon_state = "blindfold" - item_state = "blindfold" - flash_protect = 2 - tint = 3 // to make them blind - -/obj/item/clothing/glasses/sunglasses/big - desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes." - icon_state = "bigsunglasses" - item_state = "bigsunglasses" - -/obj/item/clothing/glasses/thermal + icon_state = "supergar" + item_state = "gar" + force = 12 + throwforce = 12 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/welding + name = "welding goggles" + desc = "Protects the eyes from welders; approved by the mad scientist association." + icon_state = "welding-g" + item_state = "welding-g" + actions_types = list(/datum/action/item_action/toggle) + materials = list(MAT_METAL = 250) + flash_protect = 2 + tint = 2 + visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT + flags_cover = GLASSESCOVERSEYES + visor_flags_inv = HIDEEYES + glass_colour_type = /datum/client_colour/glass_colour/gray + +/obj/item/clothing/glasses/welding/attack_self(mob/user) + weldingvisortoggle(user) + + +/obj/item/clothing/glasses/sunglasses/blindfold + name = "blindfold" + desc = "Covers the eyes, preventing sight." + icon_state = "blindfold" + item_state = "blindfold" + flash_protect = 2 + tint = 3 // to make them blind + +/obj/item/clothing/glasses/sunglasses/big + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes." + icon_state = "bigsunglasses" + item_state = "bigsunglasses" + +/obj/item/clothing/glasses/thermal name = "optical thermal scanner" - desc = "Thermals in the shape of glasses." - icon_state = "thermal" - item_state = "glasses" - origin_tech = "magnets=3" - vision_flags = SEE_MOBS - invis_view = 2 - flash_protect = 0 - glass_colour_type = /datum/client_colour/glass_colour/red - -/obj/item/clothing/glasses/thermal/emp_act(severity) - thermal_overload() - ..() - -/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete + desc = "Thermals in the shape of glasses." + icon_state = "thermal" + item_state = "glasses" + origin_tech = "magnets=3" + vision_flags = SEE_MOBS + invis_view = 2 + flash_protect = 0 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/thermal/emp_act(severity) + thermal_overload() + ..() + +/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete name = "chameleon thermals" - desc = "A pair of thermal optic goggles with an onboard chameleon generator." - origin_tech = "magnets=3;syndicate=4" - flash_protect = -1 - - var/datum/action/item_action/chameleon/change/chameleon_action - -/obj/item/clothing/glasses/thermal/syndi/New() - ..() - chameleon_action = new(src) - chameleon_action.chameleon_type = /obj/item/clothing/glasses - chameleon_action.chameleon_name = "Glasses" - chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE) - chameleon_action.initialize_disguises() - -/obj/item/clothing/glasses/thermal/syndi/emp_act(severity) - ..() - chameleon_action.emp_randomise() - -/obj/item/clothing/glasses/thermal/monocle + desc = "A pair of thermal optic goggles with an onboard chameleon generator." + origin_tech = "magnets=3;syndicate=4" + flash_protect = -1 + + var/datum/action/item_action/chameleon/change/chameleon_action + +/obj/item/clothing/glasses/thermal/syndi/New() + ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/glasses + chameleon_action.chameleon_name = "Glasses" + chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE) + chameleon_action.initialize_disguises() + +/obj/item/clothing/glasses/thermal/syndi/emp_act(severity) + ..() + chameleon_action.emp_randomise() + +/obj/item/clothing/glasses/thermal/monocle name = "thermoncle" desc = "Never before has seeing through walls felt so gentlepersonly." - icon_state = "thermoncle" - flags = null //doesn't protect eyes because it's a monocle, duh - + icon_state = "thermoncle" + flags = null //doesn't protect eyes because it's a monocle, duh + /obj/item/clothing/glasses/thermal/monocle/examine(mob/user) //Different examiners see a different description! var/desk = desc if(user.gender == MALE) @@ -291,91 +291,91 @@ ..() desc = desk -/obj/item/clothing/glasses/thermal/eyepatch +/obj/item/clothing/glasses/thermal/eyepatch name = "optical thermal eyepatch" - desc = "An eyepatch with built-in thermal optics." - icon_state = "eyepatch" - item_state = "eyepatch" - -/obj/item/clothing/glasses/cold - name = "cold goggles" - desc = "A pair of goggles meant for low temperatures." - icon_state = "cold" - item_state = "cold" - -/obj/item/clothing/glasses/heat - name = "heat goggles" - desc = "A pair of goggles meant for high temperatures." - icon_state = "heat" - item_state = "heat" - -/obj/item/clothing/glasses/orange - name = "orange glasses" - desc = "A sweet pair of orange shades." - icon_state = "orangeglasses" - item_state = "orangeglasses" - glass_colour_type = /datum/client_colour/glass_colour/lightorange - -/obj/item/clothing/glasses/red - name = "red glasses" - desc = "Hey, you're looking good, senpai!" - icon_state = "redglasses" - item_state = "redglasses" - glass_colour_type = /datum/client_colour/glass_colour/red - -/obj/item/clothing/glasses/godeye - name = "eye of god" - desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." - icon_state = "godeye" - item_state = "godeye" - vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS - darkness_view = 8 - scan_reagents = 1 - flags = NODROP - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - -/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(istype(W, src) && W != src && W.loc == user) - if(W.icon_state == "godeye") - W.icon_state = "doublegodeye" - W.item_state = "doublegodeye" - W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.update_inv_wear_mask() - else - to_chat(user, "The eye winks at you and vanishes into the abyss, you feel really unlucky.") - qdel(src) - ..() - -/obj/item/clothing/glasses/AltClick(mob/user) - if(glass_colour_type && ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.client) - if(H.client.prefs) - if(src == H.glasses) - H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour - if(H.client.prefs.uses_glasses_colour) - to_chat(H, "You will now see glasses colors.") - else - to_chat(H, "You will no longer see glasses colors.") - H.update_glasses_color(src, 1) - else - return ..() - -/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type) - var/old_colour_type = glass_colour_type - if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path. - glass_colour_type = new_color_type - if(H && H.glasses == src) - if(old_colour_type) - H.remove_client_colour(old_colour_type) - if(glass_colour_type) - H.update_glasses_color(src, 1) - - -/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) - if(client && client.prefs.uses_glasses_colour && glasses_equipped) - add_client_colour(G.glass_colour_type) - else - remove_client_colour(G.glass_colour_type) + desc = "An eyepatch with built-in thermal optics." + icon_state = "eyepatch" + item_state = "eyepatch" + +/obj/item/clothing/glasses/cold + name = "cold goggles" + desc = "A pair of goggles meant for low temperatures." + icon_state = "cold" + item_state = "cold" + +/obj/item/clothing/glasses/heat + name = "heat goggles" + desc = "A pair of goggles meant for high temperatures." + icon_state = "heat" + item_state = "heat" + +/obj/item/clothing/glasses/orange + name = "orange glasses" + desc = "A sweet pair of orange shades." + icon_state = "orangeglasses" + item_state = "orangeglasses" + glass_colour_type = /datum/client_colour/glass_colour/lightorange + +/obj/item/clothing/glasses/red + name = "red glasses" + desc = "Hey, you're looking good, senpai!" + icon_state = "redglasses" + item_state = "redglasses" + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/godeye + name = "eye of god" + desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." + icon_state = "godeye" + item_state = "godeye" + vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS + darkness_view = 8 + scan_reagents = 1 + flags = NODROP + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + +/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(istype(W, src) && W != src && W.loc == user) + if(W.icon_state == "godeye") + W.icon_state = "doublegodeye" + W.item_state = "doublegodeye" + W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.update_inv_wear_mask() + else + to_chat(user, "The eye winks at you and vanishes into the abyss, you feel really unlucky.") + qdel(src) + ..() + +/obj/item/clothing/glasses/AltClick(mob/user) + if(glass_colour_type && ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.client) + if(H.client.prefs) + if(src == H.glasses) + H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour + if(H.client.prefs.uses_glasses_colour) + to_chat(H, "You will now see glasses colors.") + else + to_chat(H, "You will no longer see glasses colors.") + H.update_glasses_color(src, 1) + else + return ..() + +/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type) + var/old_colour_type = glass_colour_type + if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path. + glass_colour_type = new_color_type + if(H && H.glasses == src) + if(old_colour_type) + H.remove_client_colour(old_colour_type) + if(glass_colour_type) + H.update_glasses_color(src, 1) + + +/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) + if(client && client.prefs.uses_glasses_colour && glasses_equipped) + add_client_colour(G.glass_colour_type) + else + remove_client_colour(G.glass_colour_type) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index bf2ce95258..c227933332 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -1,203 +1,203 @@ -/obj/item/clothing/glasses/hud - name = "HUD" - desc = "A heads-up display that provides important info in (almost) real time." - flags = null //doesn't protect eyes because it's a monocle, duh - origin_tech = "magnets=3;biotech=2" - var/hud_type = null - -/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) - ..() - if(hud_type && slot == slot_glasses) - var/datum/atom_hud/H = GLOB.huds[hud_type] - H.add_hud_to(user) - -/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) - ..() - if(hud_type && istype(user) && user.glasses == src) - var/datum/atom_hud/H = GLOB.huds[hud_type] - H.remove_hud_from(user) - -/obj/item/clothing/glasses/hud/emp_act(severity) - if(emagged == 0) - emagged = 1 +/obj/item/clothing/glasses/hud + name = "HUD" + desc = "A heads-up display that provides important info in (almost) real time." + flags = null //doesn't protect eyes because it's a monocle, duh + origin_tech = "magnets=3;biotech=2" + var/hud_type = null + +/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) + ..() + if(hud_type && slot == slot_glasses) + var/datum/atom_hud/H = GLOB.huds[hud_type] + H.add_hud_to(user) + +/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) + ..() + if(hud_type && istype(user) && user.glasses == src) + var/datum/atom_hud/H = GLOB.huds[hud_type] + H.remove_hud_from(user) + +/obj/item/clothing/glasses/hud/emp_act(severity) + if(emagged == 0) + emagged = 1 desc = "[desc] The display is flickering slightly." - -/obj/item/clothing/glasses/hud/emag_act(mob/user) - if(emagged == 0) - emagged = 1 - to_chat(user, "PZZTTPFFFT") + +/obj/item/clothing/glasses/hud/emag_act(mob/user) + if(emagged == 0) + emagged = 1 + to_chat(user, "PZZTTPFFFT") desc = "[desc] The display is flickering slightly." - -/obj/item/clothing/glasses/hud/health + +/obj/item/clothing/glasses/hud/health name = "health scanner HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." - icon_state = "healthhud" - origin_tech = "magnets=3;biotech=2" - hud_type = DATA_HUD_MEDICAL_ADVANCED - glass_colour_type = /datum/client_colour/glass_colour/lightblue - -/obj/item/clothing/glasses/hud/health/night + desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." + icon_state = "healthhud" + origin_tech = "magnets=3;biotech=2" + hud_type = DATA_HUD_MEDICAL_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/lightblue + +/obj/item/clothing/glasses/hud/health/night name = "night vision health scanner HUD" - desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." - icon_state = "healthhudnight" - item_state = "glasses" - origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - glass_colour_type = /datum/client_colour/glass_colour/green - -/obj/item/clothing/glasses/hud/health/sunglasses + desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." + icon_state = "healthhudnight" + item_state = "glasses" + origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" + darkness_view = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/health/sunglasses name = "medical HUDSunglasses" - desc = "Sunglasses with a medical HUD." - icon_state = "sunhudmed" - origin_tech = "magnets=3;biotech=3;engineering=3" - darkness_view = 1 - flash_protect = 1 - tint = 1 - glass_colour_type = /datum/client_colour/glass_colour/blue - -/obj/item/clothing/glasses/hud/diagnostic + desc = "Sunglasses with a medical HUD." + icon_state = "sunhudmed" + origin_tech = "magnets=3;biotech=3;engineering=3" + darkness_view = 1 + flash_protect = 1 + tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/blue + +/obj/item/clothing/glasses/hud/diagnostic name = "diagnostic HUD" - desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." - icon_state = "diagnostichud" - origin_tech = "magnets=2;engineering=2" - hud_type = DATA_HUD_DIAGNOSTIC - glass_colour_type = /datum/client_colour/glass_colour/lightorange - -/obj/item/clothing/glasses/hud/diagnostic/night + desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." + icon_state = "diagnostichud" + origin_tech = "magnets=2;engineering=2" + hud_type = DATA_HUD_DIAGNOSTIC + glass_colour_type = /datum/client_colour/glass_colour/lightorange + +/obj/item/clothing/glasses/hud/diagnostic/night name = "night vision diagnostic HUD" - desc = "A robotics diagnostic HUD fitted with a light amplifier." - icon_state = "diagnostichudnight" - item_state = "glasses" - origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - glass_colour_type = /datum/client_colour/glass_colour/green - -/obj/item/clothing/glasses/hud/security + desc = "A robotics diagnostic HUD fitted with a light amplifier." + icon_state = "diagnostichudnight" + item_state = "glasses" + origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" + darkness_view = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/security name = "security HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." - icon_state = "securityhud" - origin_tech = "magnets=3;combat=2" - hud_type = DATA_HUD_SECURITY_ADVANCED - glass_colour_type = /datum/client_colour/glass_colour/red - -/obj/item/clothing/glasses/hud/security/chameleon + desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." + icon_state = "securityhud" + origin_tech = "magnets=3;combat=2" + hud_type = DATA_HUD_SECURITY_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/hud/security/chameleon name = "chameleon security HUD" - desc = "A stolen security HUD integrated with Syndicate chameleon technology. Provides flash protection." - flash_protect = 1 - - // Yes this code is the same as normal chameleon glasses, but we don't - // have multiple inheritance, okay? - var/datum/action/item_action/chameleon/change/chameleon_action - -/obj/item/clothing/glasses/hud/security/chameleon/New() - ..() - chameleon_action = new(src) - chameleon_action.chameleon_type = /obj/item/clothing/glasses - chameleon_action.chameleon_name = "Glasses" - chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE) - chameleon_action.initialize_disguises() - -/obj/item/clothing/glasses/hud/security/chameleon/emp_act(severity) - . = ..() - chameleon_action.emp_randomise() - - -/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch + desc = "A stolen security HUD integrated with Syndicate chameleon technology. Provides flash protection." + flash_protect = 1 + + // Yes this code is the same as normal chameleon glasses, but we don't + // have multiple inheritance, okay? + var/datum/action/item_action/chameleon/change/chameleon_action + +/obj/item/clothing/glasses/hud/security/chameleon/New() + ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/glasses + chameleon_action.chameleon_name = "Glasses" + chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE) + chameleon_action.initialize_disguises() + +/obj/item/clothing/glasses/hud/security/chameleon/emp_act(severity) + . = ..() + chameleon_action.emp_randomise() + + +/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch name = "eyepatch HUD" - desc = "A heads-up display that connects directly to the optical nerve of the user, replacing the need for that useless eyeball." - icon_state = "hudpatch" - -/obj/item/clothing/glasses/hud/security/sunglasses + desc = "A heads-up display that connects directly to the optical nerve of the user, replacing the need for that useless eyeball." + icon_state = "hudpatch" + +/obj/item/clothing/glasses/hud/security/sunglasses name = "security HUDSunglasses" - desc = "Sunglasses with a security HUD." - icon_state = "sunhudsec" - origin_tech = "magnets=3;combat=3;engineering=3" - darkness_view = 1 - flash_protect = 1 - tint = 1 - glass_colour_type = /datum/client_colour/glass_colour/darkred - -/obj/item/clothing/glasses/hud/security/night + desc = "Sunglasses with a security HUD." + icon_state = "sunhudsec" + origin_tech = "magnets=3;combat=3;engineering=3" + darkness_view = 1 + flash_protect = 1 + tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/darkred + +/obj/item/clothing/glasses/hud/security/night name = "night vision security HUD" - desc = "An advanced heads-up display which provides id data and vision in complete darkness." - icon_state = "securityhudnight" - origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - glass_colour_type = /datum/client_colour/glass_colour/green - -/obj/item/clothing/glasses/hud/security/sunglasses/gars + desc = "An advanced heads-up display which provides id data and vision in complete darkness." + icon_state = "securityhudnight" + origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" + darkness_view = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/security/sunglasses/gars name = "\improper HUD gar glasses" - desc = "GAR glasses with a HUD." - icon_state = "gars" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars - name = "giga HUD gar glasses" - desc = "GIGA GAR glasses with a HUD." - icon_state = "supergars" - item_state = "garb" - force = 12 - throwforce = 12 - -/obj/item/clothing/glasses/hud/toggle + desc = "GAR glasses with a HUD." + icon_state = "gars" + item_state = "garb" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars + name = "giga HUD gar glasses" + desc = "GIGA GAR glasses with a HUD." + icon_state = "supergars" + item_state = "garb" + force = 12 + throwforce = 12 + +/obj/item/clothing/glasses/hud/toggle name = "Toggle HUD" - desc = "A hud with multiple functions." - actions_types = list(/datum/action/item_action/switch_hud) - -/obj/item/clothing/glasses/hud/toggle/attack_self(mob/user) - if(!ishuman(user)) - return - var/mob/living/carbon/human/wearer = user - if (wearer.glasses != src) - return - - if (hud_type) - var/datum/atom_hud/H = GLOB.huds[hud_type] - H.remove_hud_from(user) - - if (hud_type == DATA_HUD_MEDICAL_ADVANCED) - hud_type = null - else if (hud_type == DATA_HUD_SECURITY_ADVANCED) - hud_type = DATA_HUD_MEDICAL_ADVANCED - else - hud_type = DATA_HUD_SECURITY_ADVANCED - - if (hud_type) - var/datum/atom_hud/H = GLOB.huds[hud_type] - H.add_hud_to(user) - -/obj/item/clothing/glasses/hud/toggle/thermal + desc = "A hud with multiple functions." + actions_types = list(/datum/action/item_action/switch_hud) + +/obj/item/clothing/glasses/hud/toggle/attack_self(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/wearer = user + if (wearer.glasses != src) + return + + if (hud_type) + var/datum/atom_hud/H = GLOB.huds[hud_type] + H.remove_hud_from(user) + + if (hud_type == DATA_HUD_MEDICAL_ADVANCED) + hud_type = null + else if (hud_type == DATA_HUD_SECURITY_ADVANCED) + hud_type = DATA_HUD_MEDICAL_ADVANCED + else + hud_type = DATA_HUD_SECURITY_ADVANCED + + if (hud_type) + var/datum/atom_hud/H = GLOB.huds[hud_type] + H.add_hud_to(user) + +/obj/item/clothing/glasses/hud/toggle/thermal name = "thermal HUD scanner" - desc = "Thermal imaging HUD in the shape of glasses." - icon_state = "thermal" - hud_type = DATA_HUD_SECURITY_ADVANCED - vision_flags = SEE_MOBS - invis_view = 2 - glass_colour_type = /datum/client_colour/glass_colour/red - -/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) - ..() - switch (hud_type) - if (DATA_HUD_MEDICAL_ADVANCED) - icon_state = "meson" - change_glass_color(user, /datum/client_colour/glass_colour/green) - if (DATA_HUD_SECURITY_ADVANCED) - icon_state = "thermal" - change_glass_color(user, /datum/client_colour/glass_colour/red) - else - icon_state = "purple" - change_glass_color(user, /datum/client_colour/glass_colour/purple) - user.update_inv_glasses() - -/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity) - thermal_overload() - ..() + desc = "Thermal imaging HUD in the shape of glasses." + icon_state = "thermal" + hud_type = DATA_HUD_SECURITY_ADVANCED + vision_flags = SEE_MOBS + invis_view = 2 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) + ..() + switch (hud_type) + if (DATA_HUD_MEDICAL_ADVANCED) + icon_state = "meson" + change_glass_color(user, /datum/client_colour/glass_colour/green) + if (DATA_HUD_SECURITY_ADVANCED) + icon_state = "thermal" + change_glass_color(user, /datum/client_colour/glass_colour/red) + else + icon_state = "purple" + change_glass_color(user, /datum/client_colour/glass_colour/purple) + user.update_inv_glasses() + +/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity) + thermal_overload() + ..() diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 9b7f8c44f9..f1016b0cc1 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -1,19 +1,19 @@ -/obj/item/clothing/gloves/boxing - name = "boxing gloves" - desc = "Because you really needed another excuse to punch your crewmates." - icon_state = "boxing" - item_state = "boxing" +/obj/item/clothing/gloves/boxing + name = "boxing gloves" + desc = "Because you really needed another excuse to punch your crewmates." + icon_state = "boxing" + item_state = "boxing" equip_delay_other = 60 - species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion - -/obj/item/clothing/gloves/boxing/green - icon_state = "boxinggreen" - item_state = "boxinggreen" - -/obj/item/clothing/gloves/boxing/blue - icon_state = "boxingblue" - item_state = "boxingblue" - -/obj/item/clothing/gloves/boxing/yellow - icon_state = "boxingyellow" - item_state = "boxingyellow" + species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion + +/obj/item/clothing/gloves/boxing/green + icon_state = "boxinggreen" + item_state = "boxinggreen" + +/obj/item/clothing/gloves/boxing/blue + icon_state = "boxingblue" + item_state = "boxingblue" + +/obj/item/clothing/gloves/boxing/yellow + icon_state = "boxingyellow" + item_state = "boxingyellow" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index c425aebe64..184aac9898 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -22,6 +22,14 @@ ..() siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5) +/obj/item/clothing/gloves/color/fyellow/old + desc = "Old and worn out insulated gloves, hopefully they still work." + name = "worn out insulated gloves" + +/obj/item/clothing/gloves/color/fyellow/old/Initialize() + . = ..() + siemens_coefficient = pick(0,0,0,0.5,0.5,0.5,0.75) + /obj/item/clothing/gloves/color/black desc = "These gloves are fire-resistant." name = "black gloves" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 7a944dc4b1..03cba84d4f 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -1,57 +1,57 @@ - -/obj/item/clothing/gloves/fingerless - name = "fingerless gloves" - desc = "Plain black gloves without fingertips for the hard working." - icon_state = "fingerless" - item_state = "fingerless" - item_color = null //So they don't wash. - transfer_prints = TRUE - strip_delay = 40 + +/obj/item/clothing/gloves/fingerless + name = "fingerless gloves" + desc = "Plain black gloves without fingertips for the hard working." + icon_state = "fingerless" + item_state = "fingerless" + item_color = null //So they don't wash. + transfer_prints = TRUE + strip_delay = 40 equip_delay_other = 20 - cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - -/obj/item/clothing/gloves/botanic_leather - name = "botanist's leather gloves" - desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." - icon_state = "leather" - item_state = "ggloves" - permeability_coefficient = 0.9 - cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - heat_protection = HANDS - max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - resistance_flags = 0 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30) - -/obj/item/clothing/gloves/combat - name = "combat gloves" - desc = "These tactical gloves are fireproof and shock resistant." - icon_state = "black" - item_state = "blackgloves" - siemens_coefficient = 0 - permeability_coefficient = 0.05 - strip_delay = 80 - cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - heat_protection = HANDS - max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - resistance_flags = 0 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) - - -/obj/item/clothing/gloves/bracer - name = "bone bracers" - desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." - icon_state = "bracers" - item_state = "bracers" - item_color = null //So they don't wash. - transfer_prints = TRUE - strip_delay = 40 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + +/obj/item/clothing/gloves/botanic_leather + name = "botanist's leather gloves" + desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." + icon_state = "leather" + item_state = "ggloves" + permeability_coefficient = 0.9 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30) + +/obj/item/clothing/gloves/combat + name = "combat gloves" + desc = "These tactical gloves are fireproof and shock resistant." + icon_state = "black" + item_state = "blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) + + +/obj/item/clothing/gloves/bracer + name = "bone bracers" + desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." + icon_state = "bracers" + item_state = "bracers" + item_color = null //So they don't wash. + transfer_prints = TRUE + strip_delay = 40 equip_delay_other = 20 - body_parts_covered = ARMS - cold_protection = ARMS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - resistance_flags = 0 - armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0) + body_parts_covered = ARMS + cold_protection = ARMS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4c35db9aa1..f100df4366 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -1,314 +1,314 @@ -/obj/item/clothing/head/helmet - name = "helmet" - desc = "Standard Security gear. Protects the head from impacts." - icon_state = "helmet" - item_state = "helmet" - armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) - flags_inv = HIDEEARS - cold_protection = HEAD - min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - strip_delay = 60 - resistance_flags = 0 - flags_cover = HEADCOVERSEYES - - dog_fashion = /datum/dog_fashion/head/helmet - - -/obj/item/clothing/head/helmet/Initialize() - ..() - SET_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/clothing/head/helmet/sec - can_flashlight = 1 - -/obj/item/clothing/head/helmet/alt - name = "bulletproof helmet" - desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." - icon_state = "helmetalt" - item_state = "helmetalt" - armor = list(melee = 15, bullet = 60, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) - can_flashlight = 1 - dog_fashion = null - +/obj/item/clothing/head/helmet + name = "helmet" + desc = "Standard Security gear. Protects the head from impacts." + icon_state = "helmet" + item_state = "helmet" + armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + flags_inv = HIDEEARS + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + strip_delay = 60 + resistance_flags = 0 + flags_cover = HEADCOVERSEYES + + dog_fashion = /datum/dog_fashion/head/helmet + + +/obj/item/clothing/head/helmet/Initialize() + ..() + SET_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/clothing/head/helmet/sec + can_flashlight = 1 + +/obj/item/clothing/head/helmet/alt + name = "bulletproof helmet" + desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + icon_state = "helmetalt" + item_state = "helmetalt" + armor = list(melee = 15, bullet = 60, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) + can_flashlight = 1 + dog_fashion = null + /obj/item/clothing/head/helmet/old name = "degrading helmet" desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances." tint = 2 -/obj/item/clothing/head/helmet/blueshirt - icon_state = "blueshift" - item_state = "blueshift" - -/obj/item/clothing/head/helmet/riot - name = "riot helmet" - desc = "It's a helmet specifically designed to protect against close range attacks." - icon_state = "riot" - item_state = "helmet" - toggle_message = "You pull the visor down on" - alt_toggle_message = "You push the visor up on" - can_toggle = 1 - armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50) - flags_inv = HIDEEARS|HIDEFACE - strip_delay = 80 - actions_types = list(/datum/action/item_action/toggle) - visor_flags_inv = HIDEFACE - toggle_cooldown = 0 - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - dog_fashion = null - -/obj/item/clothing/head/helmet/attack_self(mob/user) - if(can_toggle && !user.incapacitated()) - if(world.time > cooldown + toggle_cooldown) - cooldown = world.time - up = !up - flags ^= visor_flags - flags_inv ^= visor_flags_inv - flags_cover ^= visor_flags_cover - icon_state = "[initial(icon_state)][up ? "up" : ""]" - to_chat(user, "[up ? alt_toggle_message : toggle_message] \the [src]") - - user.update_inv_head() - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.head_update(src, forced = 1) - - if(active_sound) - while(up) - playsound(src.loc, "[active_sound]", 100, 0, 4) - sleep(15) - -/obj/item/clothing/head/helmet/justice - name = "helmet of justice" - desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." - icon_state = "justice" - toggle_message = "You turn off the lights on" - alt_toggle_message = "You turn on the lights on" - actions_types = list(/datum/action/item_action/toggle_helmet_light) - can_toggle = 1 - toggle_cooldown = 20 - active_sound = 'sound/items/WEEOO1.ogg' - dog_fashion = null - -/obj/item/clothing/head/helmet/justice/escape - name = "alarm helmet" - desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO." - icon_state = "justice2" - toggle_message = "You turn off the light on" - alt_toggle_message = "You turn on the light on" - -/obj/item/clothing/head/helmet/swat - name = "\improper SWAT helmet" - desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." - icon_state = "swatsyndie" - item_state = "swatsyndie" - armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50) - cold_protection = HEAD - min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - flags = STOPSPRESSUREDMAGE - strip_delay = 80 - dog_fashion = null - -/obj/item/clothing/head/helmet/swat/nanotrasen - name = "\improper SWAT helmet" - desc = "An extremely robust, space-worthy helmet with the Nanotrasen logo emblazoned on the top." - icon_state = "swat" - item_state = "swat" - -/obj/item/clothing/head/helmet/thunderdome - name = "\improper Thunderdome helmet" - desc = "'Let the battle commence!'" - flags_inv = HIDEEARS|HIDEHAIR - icon_state = "thunderdome" - item_state = "thunderdome" - armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50) - cold_protection = HEAD - min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - strip_delay = 80 - dog_fashion = null - -/obj/item/clothing/head/helmet/roman - name = "roman helmet" - desc = "An ancient helmet made of bronze and leather." - flags_inv = HIDEEARS|HIDEHAIR - flags_cover = HEADCOVERSEYES - armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50) - resistance_flags = FIRE_PROOF - icon_state = "roman" - item_state = "roman" - strip_delay = 100 - dog_fashion = null - -/obj/item/clothing/head/helmet/roman/legionaire - name = "roman legionaire helmet" - desc = "An ancient helmet made of bronze and leather. Has a red crest on top of it." - icon_state = "roman_c" - item_state = "roman_c" - -/obj/item/clothing/head/helmet/gladiator - name = "gladiator helmet" - desc = "Ave, Imperator, morituri te salutant." - icon_state = "gladiator" - item_state = "gladiator" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR - flags_cover = HEADCOVERSEYES - dog_fashion = null - -/obj/item/clothing/head/helmet/redtaghelm - name = "red laser tag helmet" - desc = "They have chosen their own end." - icon_state = "redtaghelm" - flags_cover = HEADCOVERSEYES - item_state = "redtaghelm" - armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) - // Offer about the same protection as a hardhat. - dog_fashion = null - -/obj/item/clothing/head/helmet/bluetaghelm - name = "blue laser tag helmet" - desc = "They'll need more men." - icon_state = "bluetaghelm" - flags_cover = HEADCOVERSEYES - item_state = "bluetaghelm" - armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) - // Offer about the same protection as a hardhat. - dog_fashion = null - -/obj/item/clothing/head/helmet/knight - name = "medieval helmet" - desc = "A classic metal helmet." - icon_state = "knight_green" - item_state = "knight_green" - armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - strip_delay = 80 - dog_fashion = null - -/obj/item/clothing/head/helmet/knight/Initialize(mapload) - ..() - // old knight helmets do not offer protection against loud noises - CLEAR_SECONDARY_FLAG(src, BANG_PROTECT) - -/obj/item/clothing/head/helmet/knight/blue - icon_state = "knight_blue" - item_state = "knight_blue" - -/obj/item/clothing/head/helmet/knight/yellow - icon_state = "knight_yellow" - item_state = "knight_yellow" - -/obj/item/clothing/head/helmet/knight/red - icon_state = "knight_red" - item_state = "knight_red" - -/obj/item/clothing/head/helmet/knight/templar - name = "crusader helmet" - desc = "Deus Vult." - icon_state = "knight_templar" - item_state = "knight_templar" - -/obj/item/clothing/head/helmet/skull - name = "skull helmet" - desc = "An intimidating tribal helmet, it doesn't look very comfortable." - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - flags_cover = HEADCOVERSEYES - armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20) - icon_state = "skull" - item_state = "skull" - strip_delay = 100 - -//LightToggle - -/obj/item/clothing/head/helmet/update_icon() - var/state = "[initial(icon_state)]" - if(F) - if(F.on) - state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on" - else - state += "-flight" //etc. - - icon_state = state - - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - H.update_inv_head() - -/obj/item/clothing/head/helmet/ui_action_click(mob/user, action) - if(istype(action, /datum/action/item_action/toggle_helmet_flashlight)) - toggle_helmlight() - else - ..() - -/obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/flashlight/seclite)) - var/obj/item/device/flashlight/seclite/S = I - if(can_flashlight) - if(!F) - if(!user.transferItemToLoc(S, src)) - return - to_chat(user, "You click [S] into place on [src].") - if(S.on) - set_light(0) - F = S - update_icon() - update_helmlight(user) - verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight - var/datum/action/A = new /datum/action/item_action/toggle_helmet_flashlight(src) - if(loc == user) - A.Grant(user) - return - - if(istype(I, /obj/item/weapon/screwdriver)) - if(F) - for(var/obj/item/device/flashlight/seclite/S in src) - to_chat(user, "You unscrew the seclite from [src].") - F = null - S.loc = get_turf(user) - update_helmlight(user) - S.update_brightness(user) - update_icon() - usr.update_inv_head() - verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight - for(var/datum/action/item_action/toggle_helmet_flashlight/THL in actions) - qdel(THL) - return - - ..() - -/obj/item/clothing/head/helmet/proc/toggle_helmlight() - set name = "Toggle Helmetlight" - set category = "Object" - set desc = "Click to toggle your helmet's attached flashlight." - - if(!F) - return - - var/mob/user = usr - if(user.incapacitated()) - return - F.on = !F.on - to_chat(user, "You toggle the helmetlight [F.on ? "on":"off"].") - - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_helmlight(user) - -/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null) - if(F) - if(F.on) - set_light(F.brightness_on) - else - set_light(0) - update_icon() - - else - set_light(0) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() +/obj/item/clothing/head/helmet/blueshirt + icon_state = "blueshift" + item_state = "blueshift" + +/obj/item/clothing/head/helmet/riot + name = "riot helmet" + desc = "It's a helmet specifically designed to protect against close range attacks." + icon_state = "riot" + item_state = "helmet" + toggle_message = "You pull the visor down on" + alt_toggle_message = "You push the visor up on" + can_toggle = 1 + armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50) + flags_inv = HIDEEARS|HIDEFACE + strip_delay = 80 + actions_types = list(/datum/action/item_action/toggle) + visor_flags_inv = HIDEFACE + toggle_cooldown = 0 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + dog_fashion = null + +/obj/item/clothing/head/helmet/attack_self(mob/user) + if(can_toggle && !user.incapacitated()) + if(world.time > cooldown + toggle_cooldown) + cooldown = world.time + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + flags_cover ^= visor_flags_cover + icon_state = "[initial(icon_state)][up ? "up" : ""]" + to_chat(user, "[up ? alt_toggle_message : toggle_message] \the [src]") + + user.update_inv_head() + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.head_update(src, forced = 1) + + if(active_sound) + while(up) + playsound(src.loc, "[active_sound]", 100, 0, 4) + sleep(15) + +/obj/item/clothing/head/helmet/justice + name = "helmet of justice" + desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." + icon_state = "justice" + toggle_message = "You turn off the lights on" + alt_toggle_message = "You turn on the lights on" + actions_types = list(/datum/action/item_action/toggle_helmet_light) + can_toggle = 1 + toggle_cooldown = 20 + active_sound = 'sound/items/weeoo1.ogg' + dog_fashion = null + +/obj/item/clothing/head/helmet/justice/escape + name = "alarm helmet" + desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO." + icon_state = "justice2" + toggle_message = "You turn off the light on" + alt_toggle_message = "You turn on the light on" + +/obj/item/clothing/head/helmet/swat + name = "\improper SWAT helmet" + desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." + icon_state = "swatsyndie" + item_state = "swatsyndie" + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50) + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT + flags = STOPSPRESSUREDMAGE + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/swat/nanotrasen + name = "\improper SWAT helmet" + desc = "An extremely robust, space-worthy helmet with the Nanotrasen logo emblazoned on the top." + icon_state = "swat" + item_state = "swat" + +/obj/item/clothing/head/helmet/thunderdome + name = "\improper Thunderdome helmet" + desc = "'Let the battle commence!'" + flags_inv = HIDEEARS|HIDEHAIR + icon_state = "thunderdome" + item_state = "thunderdome" + armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50) + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/roman + name = "roman helmet" + desc = "An ancient helmet made of bronze and leather." + flags_inv = HIDEEARS|HIDEHAIR + flags_cover = HEADCOVERSEYES + armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + icon_state = "roman" + item_state = "roman" + strip_delay = 100 + dog_fashion = null + +/obj/item/clothing/head/helmet/roman/legionaire + name = "roman legionaire helmet" + desc = "An ancient helmet made of bronze and leather. Has a red crest on top of it." + icon_state = "roman_c" + item_state = "roman_c" + +/obj/item/clothing/head/helmet/gladiator + name = "gladiator helmet" + desc = "Ave, Imperator, morituri te salutant." + icon_state = "gladiator" + item_state = "gladiator" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR + flags_cover = HEADCOVERSEYES + dog_fashion = null + +/obj/item/clothing/head/helmet/redtaghelm + name = "red laser tag helmet" + desc = "They have chosen their own end." + icon_state = "redtaghelm" + flags_cover = HEADCOVERSEYES + item_state = "redtaghelm" + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) + // Offer about the same protection as a hardhat. + dog_fashion = null + +/obj/item/clothing/head/helmet/bluetaghelm + name = "blue laser tag helmet" + desc = "They'll need more men." + icon_state = "bluetaghelm" + flags_cover = HEADCOVERSEYES + item_state = "bluetaghelm" + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) + // Offer about the same protection as a hardhat. + dog_fashion = null + +/obj/item/clothing/head/helmet/knight + name = "medieval helmet" + desc = "A classic metal helmet." + icon_state = "knight_green" + item_state = "knight_green" + armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50) + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/knight/Initialize(mapload) + ..() + // old knight helmets do not offer protection against loud noises + CLEAR_SECONDARY_FLAG(src, BANG_PROTECT) + +/obj/item/clothing/head/helmet/knight/blue + icon_state = "knight_blue" + item_state = "knight_blue" + +/obj/item/clothing/head/helmet/knight/yellow + icon_state = "knight_yellow" + item_state = "knight_yellow" + +/obj/item/clothing/head/helmet/knight/red + icon_state = "knight_red" + item_state = "knight_red" + +/obj/item/clothing/head/helmet/knight/templar + name = "crusader helmet" + desc = "Deus Vult." + icon_state = "knight_templar" + item_state = "knight_templar" + +/obj/item/clothing/head/helmet/skull + name = "skull helmet" + desc = "An intimidating tribal helmet, it doesn't look very comfortable." + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + flags_cover = HEADCOVERSEYES + armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20) + icon_state = "skull" + item_state = "skull" + strip_delay = 100 + +//LightToggle + +/obj/item/clothing/head/helmet/update_icon() + var/state = "[initial(icon_state)]" + if(F) + if(F.on) + state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on" + else + state += "-flight" //etc. + + icon_state = state + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_head() + +/obj/item/clothing/head/helmet/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_helmet_flashlight)) + toggle_helmlight() + else + ..() + +/obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/flashlight/seclite)) + var/obj/item/device/flashlight/seclite/S = I + if(can_flashlight) + if(!F) + if(!user.transferItemToLoc(S, src)) + return + to_chat(user, "You click [S] into place on [src].") + if(S.on) + set_light(0) + F = S + update_icon() + update_helmlight(user) + verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight + var/datum/action/A = new /datum/action/item_action/toggle_helmet_flashlight(src) + if(loc == user) + A.Grant(user) + return + + if(istype(I, /obj/item/weapon/screwdriver)) + if(F) + for(var/obj/item/device/flashlight/seclite/S in src) + to_chat(user, "You unscrew the seclite from [src].") + F = null + S.loc = get_turf(user) + update_helmlight(user) + S.update_brightness(user) + update_icon() + usr.update_inv_head() + verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight + for(var/datum/action/item_action/toggle_helmet_flashlight/THL in actions) + qdel(THL) + return + + ..() + +/obj/item/clothing/head/helmet/proc/toggle_helmlight() + set name = "Toggle Helmetlight" + set category = "Object" + set desc = "Click to toggle your helmet's attached flashlight." + + if(!F) + return + + var/mob/user = usr + if(user.incapacitated()) + return + F.on = !F.on + to_chat(user, "You toggle the helmetlight [F.on ? "on":"off"].") + + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_helmlight(user) + +/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null) + if(F) + if(F.on) + set_light(F.brightness_on) + else + set_light(0) + update_icon() + + else + set_light(0) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 47cc554100..23b3da72ef 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -72,16 +72,15 @@ flags_cover = HEADCOVERSEYES //Detective -/obj/item/clothing/head/det_hat +/obj/item/clothing/head/fedora/det_hat name = "detective's fedora" desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." icon_state = "detective" - armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) var/candy_cooldown = 0 pockets = /obj/item/weapon/storage/internal/pocket/small/detective dog_fashion = /datum/dog_fashion/head/detective -/obj/item/clothing/head/det_hat/AltClick() +/obj/item/clothing/head/fedora/det_hat/AltClick() ..() if(ismob(loc)) var/mob/M = loc @@ -99,19 +98,17 @@ name = "beret" desc = "A beret, a mime's favorite headwear." icon_state = "beret" - dog_fashion = /datum/dog_fashion/head/beret -/obj/item/clothing/head/beret/highlander - desc = "That was white fabric. Was." - flags = NODROP - dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES - /obj/item/clothing/head/beret/black name = "black beret" desc = "A black beret, perfect for war veterans and dark, brooding, anti-hero mimes." icon_state = "beretblack" +/obj/item/clothing/head/beret/highlander + desc = "That was white fabric. Was." + flags = NODROP + dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES //Security @@ -168,9 +165,7 @@ icon_state = "officerberet" //Curator -/obj/item/clothing/head/curator +/obj/item/clothing/head/fedora/curator name = "treasure hunter's fedora" desc = "You got red text today kid, but it doesn't mean you have to like it." - icon_state = "curator" - armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) - pockets = /obj/item/weapon/storage/internal/pocket/small \ No newline at end of file + icon_state = "curator" \ No newline at end of file diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index c2979b1bcf..95082d8fd5 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -181,7 +181,9 @@ name = "fedora" icon_state = "fedora" item_state = "fedora" + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) desc = "A really cool hat if you're a mobster. A really lame hat if you're not." + dynamic_hair_suffix = "+detective" pockets = /obj/item/weapon/storage/internal/pocket/small /obj/item/clothing/head/fedora/suicide_act(mob/user) @@ -280,9 +282,3 @@ name = "magnificent crown" desc = "A crown worn by only the highest emperors of the land." icon_state = "fancycrown" - -/obj/item/clothing/head/hunter - name = "hunter hat" - desc = "It's a flimsy looking hat." - item_state = "hunter_hat" - icon_state = "hunter_hat" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 19ebeec8ed..4c14fc0422 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -60,10 +60,10 @@ /obj/item/clothing/head/hardhat/cakehat/turn_on() ..() - force = 6 - throwforce = 6 + force = 15 + throwforce = 15 damtype = BURN - hitsound = 'sound/items/Welder.ogg' + hitsound = 'sound/items/welder.ogg' START_PROCESSING(SSobj, src) /obj/item/clothing/head/hardhat/cakehat/turn_off() @@ -137,6 +137,9 @@ if(istype(user)) add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) +/obj/item/clothing/head/kitty/genuine + desc = "A pair of kitty ears. A tag on the inside says \"Hand made from real cats.\"" + /obj/item/clothing/head/hardhat/reindeer name = "novelty reindeer hat" diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index e66f982c70..6b39ece5e6 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -1,38 +1,38 @@ -/obj/item/clothing/mask/breath - desc = "A close-fitting mask that can be connected to an air supply." - name = "breath mask" - icon_state = "breath" - item_state = "m_mask" - body_parts_covered = 0 - flags = MASKINTERNALS - visor_flags = MASKINTERNALS - w_class = WEIGHT_CLASS_SMALL - gas_transfer_coefficient = 0.10 - permeability_coefficient = 0.50 - actions_types = list(/datum/action/item_action/adjust) - flags_cover = MASKCOVERSMOUTH - visor_flags_cover = MASKCOVERSMOUTH - resistance_flags = 0 - -/obj/item/clothing/mask/breath/attack_self(mob/user) - adjustmask(user) - -/obj/item/clothing/mask/breath/AltClick(mob/user) - ..() - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") - return - else - adjustmask(user) - -/obj/item/clothing/mask/breath/examine(mob/user) - ..() - to_chat(user, "Alt-click [src] to adjust it.") - -/obj/item/clothing/mask/breath/medical - desc = "A close-fitting sterile mask that can be connected to an air supply." - name = "medical mask" - icon_state = "medical" - item_state = "m_mask" - permeability_coefficient = 0.01 +/obj/item/clothing/mask/breath + desc = "A close-fitting mask that can be connected to an air supply." + name = "breath mask" + icon_state = "breath" + item_state = "m_mask" + body_parts_covered = 0 + flags = MASKINTERNALS + visor_flags = MASKINTERNALS + w_class = WEIGHT_CLASS_SMALL + gas_transfer_coefficient = 0.10 + permeability_coefficient = 0.50 + actions_types = list(/datum/action/item_action/adjust) + flags_cover = MASKCOVERSMOUTH + visor_flags_cover = MASKCOVERSMOUTH + resistance_flags = 0 + +/obj/item/clothing/mask/breath/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/breath/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + to_chat(user, "You can't do that right now!") + return + else + adjustmask(user) + +/obj/item/clothing/mask/breath/examine(mob/user) + ..() + to_chat(user, "Alt-click [src] to adjust it.") + +/obj/item/clothing/mask/breath/medical + desc = "A close-fitting sterile mask that can be connected to an air supply." + name = "medical mask" + icon_state = "medical" + item_state = "m_mask" + permeability_coefficient = 0.01 equip_delay_other = 10 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index c21452e365..2a4cc83ea9 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -1,197 +1,197 @@ -/obj/item/clothing/mask/gas - name = "gas mask" - desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate - icon_state = "gas_alt" - flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_NORMAL - item_state = "gas_alt" - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH - resistance_flags = 0 - -// **** Welding gas mask **** - -/obj/item/clothing/mask/gas/welding - name = "welding mask" - desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd." - icon_state = "weldingmask" - materials = list(MAT_METAL=4000, MAT_GLASS=2000) - flash_protect = 2 - tint = 2 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55) - origin_tech = "materials=2;engineering=3" - actions_types = list(/datum/action/item_action/toggle) - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE - flags_cover = MASKCOVERSEYES - visor_flags_inv = HIDEEYES - visor_flags_cover = MASKCOVERSEYES - resistance_flags = FIRE_PROOF - -/obj/item/clothing/mask/gas/welding/attack_self(mob/user) - weldingvisortoggle(user) - - -// ******************************************************************** - -//Plague Dr suit can be found in clothing/suits/bio.dm -/obj/item/clothing/mask/gas/plaguedoctor - name = "plague doctor mask" - desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply." - icon_state = "plaguedoctor" - item_state = "gas_mask" - armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0) - -/obj/item/clothing/mask/gas/syndicate - name = "syndicate mask" - desc = "A close-fitting tactical mask that can be connected to an air supply." - icon_state = "syndicate" - strip_delay = 60 - -/obj/item/clothing/mask/gas/clown_hat - name = "clown wig and mask" - desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." - flags = MASKINTERNALS - icon_state = "clown" - item_state = "clown_hat" - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - actions_types = list(/datum/action/item_action/adjust) - dog_fashion = /datum/dog_fashion/head/clown - -/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) - if(!istype(user) || user.incapacitated()) - return - - var/list/options = list() - options["True Form"] = "clown" - options["The Feminist"] = "sexyclown" - options["The Madman"] = "joker" - options["The Rainbow Color"] ="rainbow" - - var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options - - if(src && choice && !user.incapacitated() && in_range(user,src)) - icon_state = options[choice] - user.update_inv_wear_mask() - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother!") - return 1 - -/obj/item/clothing/mask/gas/sexyclown - name = "sexy-clown wig and mask" - desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." - flags = MASKINTERNALS - icon_state = "sexyclown" - item_state = "sexyclown" - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - -/obj/item/clothing/mask/gas/mime - name = "mime mask" - desc = "The traditional mime's mask. It has an eerie facial posture." - flags = MASKINTERNALS - icon_state = "mime" - item_state = "mime" - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - actions_types = list(/datum/action/item_action/adjust) - - -/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user) - if(!istype(user) || user.incapacitated()) - return - - var/list/options = list() - options["Blanc"] = "mime" - options["Triste"] = "sadmime" - options["Effrayé"] = "scaredmime" - options["Excité"] ="sexymime" - - var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options - - if(src && choice && !user.incapacitated() && in_range(user,src)) - icon_state = options[choice] - user.update_inv_wear_mask() - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - to_chat(user, "Your Mime Mask has now morphed into [choice]!") - return 1 - -/obj/item/clothing/mask/gas/monkeymask - name = "monkey mask" - desc = "A mask used when acting as a monkey." - flags = MASKINTERNALS - icon_state = "monkeymask" - item_state = "monkeymask" - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - -/obj/item/clothing/mask/gas/sexymime - name = "sexy mime mask" - desc = "A traditional female mime's mask." - flags = MASKINTERNALS - icon_state = "sexymime" - item_state = "sexymime" - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - -/obj/item/clothing/mask/gas/death_commando - name = "Death Commando Mask" - icon_state = "death_commando_mask" - item_state = "death_commando_mask" - -/obj/item/clothing/mask/gas/cyborg - name = "cyborg visor" - desc = "Beep boop." - icon_state = "death" - resistance_flags = FLAMMABLE - -/obj/item/clothing/mask/gas/owl_mask - name = "owl mask" - desc = "Twoooo!" - icon_state = "owl" - flags = MASKINTERNALS - flags_cover = MASKCOVERSEYES - resistance_flags = FLAMMABLE - -/obj/item/clothing/mask/gas/carp - name = "carp mask" - desc = "Gnash gnash." - icon_state = "carp_mask" - -/obj/item/clothing/mask/gas/tiki_mask - name = "tiki mask" +/obj/item/clothing/mask/gas + name = "gas mask" + desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate + icon_state = "gas_alt" + flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_NORMAL + item_state = "gas_alt" + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH + resistance_flags = 0 + +// **** Welding gas mask **** + +/obj/item/clothing/mask/gas/welding + name = "welding mask" + desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd." + icon_state = "weldingmask" + materials = list(MAT_METAL=4000, MAT_GLASS=2000) + flash_protect = 2 + tint = 2 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55) + origin_tech = "materials=2;engineering=3" + actions_types = list(/datum/action/item_action/toggle) + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + flags_cover = MASKCOVERSEYES + visor_flags_inv = HIDEEYES + visor_flags_cover = MASKCOVERSEYES + resistance_flags = FIRE_PROOF + +/obj/item/clothing/mask/gas/welding/attack_self(mob/user) + weldingvisortoggle(user) + + +// ******************************************************************** + +//Plague Dr suit can be found in clothing/suits/bio.dm +/obj/item/clothing/mask/gas/plaguedoctor + name = "plague doctor mask" + desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply." + icon_state = "plaguedoctor" + item_state = "gas_mask" + armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/mask/gas/syndicate + name = "syndicate mask" + desc = "A close-fitting tactical mask that can be connected to an air supply." + icon_state = "syndicate" + strip_delay = 60 + +/obj/item/clothing/mask/gas/clown_hat + name = "clown wig and mask" + desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." + flags = MASKINTERNALS + icon_state = "clown" + item_state = "clown_hat" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + actions_types = list(/datum/action/item_action/adjust) + dog_fashion = /datum/dog_fashion/head/clown + +/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) + if(!istype(user) || user.incapacitated()) + return + + var/list/options = list() + options["True Form"] = "clown" + options["The Feminist"] = "sexyclown" + options["The Madman"] = "joker" + options["The Rainbow Color"] ="rainbow" + + var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options + + if(src && choice && !user.incapacitated() && in_range(user,src)) + icon_state = options[choice] + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother!") + return 1 + +/obj/item/clothing/mask/gas/sexyclown + name = "sexy-clown wig and mask" + desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." + flags = MASKINTERNALS + icon_state = "sexyclown" + item_state = "sexyclown" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/mime + name = "mime mask" + desc = "The traditional mime's mask. It has an eerie facial posture." + flags = MASKINTERNALS + icon_state = "mime" + item_state = "mime" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + actions_types = list(/datum/action/item_action/adjust) + + +/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user) + if(!istype(user) || user.incapacitated()) + return + + var/list/options = list() + options["Blanc"] = "mime" + options["Triste"] = "sadmime" + options["Effrayé"] = "scaredmime" + options["Excité"] ="sexymime" + + var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options + + if(src && choice && !user.incapacitated() && in_range(user,src)) + icon_state = options[choice] + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + to_chat(user, "Your Mime Mask has now morphed into [choice]!") + return 1 + +/obj/item/clothing/mask/gas/monkeymask + name = "monkey mask" + desc = "A mask used when acting as a monkey." + flags = MASKINTERNALS + icon_state = "monkeymask" + item_state = "monkeymask" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/sexymime + name = "sexy mime mask" + desc = "A traditional female mime's mask." + flags = MASKINTERNALS + icon_state = "sexymime" + item_state = "sexymime" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/death_commando + name = "Death Commando Mask" + icon_state = "death_commando_mask" + item_state = "death_commando_mask" + +/obj/item/clothing/mask/gas/cyborg + name = "cyborg visor" + desc = "Beep boop." + icon_state = "death" + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/owl_mask + name = "owl mask" + desc = "Twoooo!" + icon_state = "owl" + flags = MASKINTERNALS + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/carp + name = "carp mask" + desc = "Gnash gnash." + icon_state = "carp_mask" + +/obj/item/clothing/mask/gas/tiki_mask + name = "tiki mask" desc = "A creepy wooden mask. Surprisingly expressive for a poorly carved bit of wood." - icon_state = "tiki_eyebrow" - item_state = "tiki_eyebrow" - resistance_flags = FLAMMABLE - obj_integrity = 100 - max_integrity = 100 - actions_types = list(/datum/action/item_action/adjust) - dog_fashion = null - - -obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user) - - var/mob/M = usr - var/list/options = list() - options["Original Tiki"] = "tiki_eyebrow" - options["Happy Tiki"] = "tiki_happy" - options["Confused Tiki"] = "tiki_confused" - options["Angry Tiki"] ="tiki_angry" - - var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options - - if(src && choice && !M.stat && in_range(M,src)) - icon_state = options[choice] - user.update_inv_wear_mask() - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!") - return 1 + icon_state = "tiki_eyebrow" + item_state = "tiki_eyebrow" + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + actions_types = list(/datum/action/item_action/adjust) + dog_fashion = null + + +obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user) + + var/mob/M = usr + var/list/options = list() + options["Original Tiki"] = "tiki_eyebrow" + options["Happy Tiki"] = "tiki_happy" + options["Confused Tiki"] = "tiki_confused" + options["Angry Tiki"] ="tiki_angry" + + var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options + + if(src && choice && !M.stat && in_range(M,src)) + icon_state = options[choice] + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!") + return 1 diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 90731fffd6..c03f8c7290 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -1,203 +1,203 @@ -/obj/item/clothing/mask/muzzle - name = "muzzle" - desc = "To stop that awful noise." - icon_state = "muzzle" - item_state = "blindfold" - flags_cover = MASKCOVERSMOUTH - w_class = WEIGHT_CLASS_SMALL - gas_transfer_coefficient = 0.90 +/obj/item/clothing/mask/muzzle + name = "muzzle" + desc = "To stop that awful noise." + icon_state = "muzzle" + item_state = "blindfold" + flags_cover = MASKCOVERSMOUTH + w_class = WEIGHT_CLASS_SMALL + gas_transfer_coefficient = 0.90 equip_delay_other = 20 - -/obj/item/clothing/mask/muzzle/attack_paw(mob/user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(src == C.wear_mask) - to_chat(user, "You need help taking this off!") - return - ..() - -/obj/item/clothing/mask/surgical - name = "sterile mask" - desc = "A sterile mask designed to help prevent the spread of diseases." - icon_state = "sterile" - item_state = "sterile" - w_class = WEIGHT_CLASS_TINY - flags_inv = HIDEFACE - flags_cover = MASKCOVERSMOUTH - visor_flags_inv = HIDEFACE - visor_flags_cover = MASKCOVERSMOUTH - gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.01 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0) - actions_types = list(/datum/action/item_action/adjust) - -/obj/item/clothing/mask/surgical/attack_self(mob/user) - adjustmask(user) - -/obj/item/clothing/mask/fakemoustache - name = "fake moustache" - desc = "Warning: moustache is fake." - icon_state = "fake-moustache" - flags_inv = HIDEFACE - -/obj/item/clothing/mask/joy - name = "joy mask" - desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout." - icon_state = "joy" - -/obj/item/clothing/mask/pig - name = "pig mask" - desc = "A rubber pig mask." - icon_state = "pig" - item_state = "pig" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_SMALL - actions_types = list(/datum/action/item_action/toggle_voice_box) - var/voicechange = 0 - -/obj/item/clothing/mask/pig/attack_self(mob/user) - voicechange = !voicechange - to_chat(user, "You turn the voice box [voicechange ? "on" : "off"]!") - -/obj/item/clothing/mask/pig/speechModification(message) - if(voicechange) - message = pick("Oink!","Squeeeeeeee!","Oink Oink!") - return message - -/obj/item/clothing/mask/spig //needs to be different otherwise you could turn the speedmodification off and on - name = "Pig face" - desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" //It's only ever going to be attached to your face. - icon_state = "pig" - item_state = "pig" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_SMALL - var/voicechange = 1 - -/obj/item/clothing/mask/spig/speechModification(message) - if(voicechange) - message = pick("Oink!","Squeeeeeeee!","Oink Oink!") - return message - -/obj/item/clothing/mask/cowmask - name = "Cowface" - desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" - icon = 'icons/mob/mask.dmi' - icon_state = "cowmask" - item_state = "cowmask" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_SMALL - var/voicechange = 1 - -/obj/item/clothing/mask/cowmask/speechModification(message) - if(voicechange) - message = pick("Moooooooo!","Moo!","Moooo!") - return message - -/obj/item/clothing/mask/horsehead - name = "horse head mask" - desc = "A mask made of soft vinyl and latex, representing the head of a horse." - icon_state = "horsehead" - item_state = "horsehead" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS - w_class = WEIGHT_CLASS_SMALL - var/voicechange = 1 - -/obj/item/clothing/mask/horsehead/speechModification(message) - if(voicechange) - message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") - return message - -/obj/item/clothing/mask/rat - name = "rat mask" - desc = "A mask made of soft vinyl and latex, representing the head of a rat." - icon_state = "rat" - item_state = "rat" - flags_inv = HIDEFACE - flags_cover = MASKCOVERSMOUTH - -/obj/item/clothing/mask/rat/fox - name = "fox mask" - desc = "A mask made of soft vinyl and latex, representing the head of a fox." - icon_state = "fox" - item_state = "fox" - -/obj/item/clothing/mask/rat/bee - name = "bee mask" - desc = "A mask made of soft vinyl and latex, representing the head of a bee." - icon_state = "bee" - item_state = "bee" - -/obj/item/clothing/mask/rat/bear - name = "bear mask" - desc = "A mask made of soft vinyl and latex, representing the head of a bear." - icon_state = "bear" - item_state = "bear" - -/obj/item/clothing/mask/rat/bat - name = "bat mask" - desc = "A mask made of soft vinyl and latex, representing the head of a bat." - icon_state = "bat" - item_state = "bat" - -/obj/item/clothing/mask/rat/raven - name = "raven mask" - desc = "A mask made of soft vinyl and latex, representing the head of a raven." - icon_state = "raven" - item_state = "raven" - -/obj/item/clothing/mask/rat/jackal - name = "jackal mask" - desc = "A mask made of soft vinyl and latex, representing the head of a jackal." - icon_state = "jackal" - item_state = "jackal" - -/obj/item/clothing/mask/rat/tribal - name = "tribal mask" - desc = "A mask carved out of wood, detailed carefully by hand." - icon_state = "bumba" - item_state = "bumba" - -/obj/item/clothing/mask/bandana - name = "botany bandana" - desc = "A fine bandana with nanotech lining and a hydroponics pattern." - w_class = WEIGHT_CLASS_TINY - flags_cover = MASKCOVERSMOUTH - flags_inv = HIDEFACE|HIDEFACIALHAIR - visor_flags_inv = HIDEFACE|HIDEFACIALHAIR - visor_flags_cover = MASKCOVERSMOUTH - slot_flags = SLOT_MASK - adjusted_flags = SLOT_HEAD - icon_state = "bandbotany" - -/obj/item/clothing/mask/bandana/attack_self(mob/user) - adjustmask(user) - -/obj/item/clothing/mask/bandana/red - name = "red bandana" - desc = "A fine red bandana with nanotech lining." - icon_state = "bandred" - -/obj/item/clothing/mask/bandana/blue - name = "blue bandana" - desc = "A fine blue bandana with nanotech lining." - icon_state = "bandblue" - -/obj/item/clothing/mask/bandana/green - name = "green bandana" - desc = "A fine green bandana with nanotech lining." - icon_state = "bandgreen" - -/obj/item/clothing/mask/bandana/gold - name = "gold bandana" - desc = "A fine gold bandana with nanotech lining." - icon_state = "bandgold" - -/obj/item/clothing/mask/bandana/black - name = "black bandana" - desc = "A fine black bandana with nanotech lining." - icon_state = "bandblack" - -/obj/item/clothing/mask/bandana/skull - name = "skull bandana" - desc = "A fine black bandana with nanotech lining and a skull emblem." + +/obj/item/clothing/mask/muzzle/attack_paw(mob/user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(src == C.wear_mask) + to_chat(user, "You need help taking this off!") + return + ..() + +/obj/item/clothing/mask/surgical + name = "sterile mask" + desc = "A sterile mask designed to help prevent the spread of diseases." + icon_state = "sterile" + item_state = "sterile" + w_class = WEIGHT_CLASS_TINY + flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH + visor_flags_inv = HIDEFACE + visor_flags_cover = MASKCOVERSMOUTH + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.01 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0) + actions_types = list(/datum/action/item_action/adjust) + +/obj/item/clothing/mask/surgical/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/fakemoustache + name = "fake moustache" + desc = "Warning: moustache is fake." + icon_state = "fake-moustache" + flags_inv = HIDEFACE + +/obj/item/clothing/mask/joy + name = "joy mask" + desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout." + icon_state = "joy" + +/obj/item/clothing/mask/pig + name = "pig mask" + desc = "A rubber pig mask." + icon_state = "pig" + item_state = "pig" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_SMALL + actions_types = list(/datum/action/item_action/toggle_voice_box) + var/voicechange = 0 + +/obj/item/clothing/mask/pig/attack_self(mob/user) + voicechange = !voicechange + to_chat(user, "You turn the voice box [voicechange ? "on" : "off"]!") + +/obj/item/clothing/mask/pig/speechModification(message) + if(voicechange) + message = pick("Oink!","Squeeeeeeee!","Oink Oink!") + return message + +/obj/item/clothing/mask/spig //needs to be different otherwise you could turn the speedmodification off and on + name = "Pig face" + desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" //It's only ever going to be attached to your face. + icon_state = "pig" + item_state = "pig" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_SMALL + var/voicechange = 1 + +/obj/item/clothing/mask/spig/speechModification(message) + if(voicechange) + message = pick("Oink!","Squeeeeeeee!","Oink Oink!") + return message + +/obj/item/clothing/mask/cowmask + name = "Cowface" + desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" + icon = 'icons/mob/mask.dmi' + icon_state = "cowmask" + item_state = "cowmask" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_SMALL + var/voicechange = 1 + +/obj/item/clothing/mask/cowmask/speechModification(message) + if(voicechange) + message = pick("Moooooooo!","Moo!","Moooo!") + return message + +/obj/item/clothing/mask/horsehead + name = "horse head mask" + desc = "A mask made of soft vinyl and latex, representing the head of a horse." + icon_state = "horsehead" + item_state = "horsehead" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS + w_class = WEIGHT_CLASS_SMALL + var/voicechange = 1 + +/obj/item/clothing/mask/horsehead/speechModification(message) + if(voicechange) + message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") + return message + +/obj/item/clothing/mask/rat + name = "rat mask" + desc = "A mask made of soft vinyl and latex, representing the head of a rat." + icon_state = "rat" + item_state = "rat" + flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH + +/obj/item/clothing/mask/rat/fox + name = "fox mask" + desc = "A mask made of soft vinyl and latex, representing the head of a fox." + icon_state = "fox" + item_state = "fox" + +/obj/item/clothing/mask/rat/bee + name = "bee mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bee." + icon_state = "bee" + item_state = "bee" + +/obj/item/clothing/mask/rat/bear + name = "bear mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bear." + icon_state = "bear" + item_state = "bear" + +/obj/item/clothing/mask/rat/bat + name = "bat mask" + desc = "A mask made of soft vinyl and latex, representing the head of a bat." + icon_state = "bat" + item_state = "bat" + +/obj/item/clothing/mask/rat/raven + name = "raven mask" + desc = "A mask made of soft vinyl and latex, representing the head of a raven." + icon_state = "raven" + item_state = "raven" + +/obj/item/clothing/mask/rat/jackal + name = "jackal mask" + desc = "A mask made of soft vinyl and latex, representing the head of a jackal." + icon_state = "jackal" + item_state = "jackal" + +/obj/item/clothing/mask/rat/tribal + name = "tribal mask" + desc = "A mask carved out of wood, detailed carefully by hand." + icon_state = "bumba" + item_state = "bumba" + +/obj/item/clothing/mask/bandana + name = "botany bandana" + desc = "A fine bandana with nanotech lining and a hydroponics pattern." + w_class = WEIGHT_CLASS_TINY + flags_cover = MASKCOVERSMOUTH + flags_inv = HIDEFACE|HIDEFACIALHAIR + visor_flags_inv = HIDEFACE|HIDEFACIALHAIR + visor_flags_cover = MASKCOVERSMOUTH + slot_flags = SLOT_MASK + adjusted_flags = SLOT_HEAD + icon_state = "bandbotany" + +/obj/item/clothing/mask/bandana/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/bandana/red + name = "red bandana" + desc = "A fine red bandana with nanotech lining." + icon_state = "bandred" + +/obj/item/clothing/mask/bandana/blue + name = "blue bandana" + desc = "A fine blue bandana with nanotech lining." + icon_state = "bandblue" + +/obj/item/clothing/mask/bandana/green + name = "green bandana" + desc = "A fine green bandana with nanotech lining." + icon_state = "bandgreen" + +/obj/item/clothing/mask/bandana/gold + name = "gold bandana" + desc = "A fine gold bandana with nanotech lining." + icon_state = "bandgold" + +/obj/item/clothing/mask/bandana/black + name = "black bandana" + desc = "A fine black bandana with nanotech lining." + icon_state = "bandblack" + +/obj/item/clothing/mask/bandana/skull + name = "skull bandana" + desc = "A fine black bandana with nanotech lining and a skull emblem." icon_state = "bandskull" \ No newline at end of file diff --git a/code/modules/clothing/neck/neck.dm b/code/modules/clothing/neck/neck.dm index de4858e23e..defe797ce7 100644 --- a/code/modules/clothing/neck/neck.dm +++ b/code/modules/clothing/neck/neck.dm @@ -162,4 +162,7 @@ desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" - item_color = "bling" \ No newline at end of file + item_color = "bling" + +/obj/item/clothing/neck/necklace/dope/gang_contraband_value() + return 2 diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index ff60b5366e..b405c16a7b 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -30,7 +30,7 @@ uniform = /obj/item/clothing/under/rank/det suit = /obj/item/clothing/suit/det_suit glasses = /obj/item/clothing/glasses/thermal/monocle - head = /obj/item/clothing/head/det_hat + head = /obj/item/clothing/head/fedora/det_hat r_hand = /obj/item/weapon/gun/ballistic l_hand = null r_pocket = /obj/item/ammo_box/c10mm diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index c52eca78a0..ab0a9898bb 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -1,61 +1,61 @@ -/obj/item/clothing/shoes/magboots - desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." - name = "magboots" - icon_state = "magboots0" - var/magboot_state = "magboots" - var/magpulse = 0 - var/slowdown_active = 2 - actions_types = list(/datum/action/item_action/toggle) - strip_delay = 70 +/obj/item/clothing/shoes/magboots + desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." + name = "magboots" + icon_state = "magboots0" + var/magboot_state = "magboots" + var/magpulse = 0 + var/slowdown_active = 2 + actions_types = list(/datum/action/item_action/toggle) + strip_delay = 70 equip_delay_other = 70 - resistance_flags = FIRE_PROOF - origin_tech = "materials=3;magnets=4;engineering=4" - -/obj/item/clothing/shoes/magboots/verb/toggle() - set name = "Toggle Magboots" - set category = "Object" - set src in usr - if(!can_use(usr)) - return - attack_self(usr) - - -/obj/item/clothing/shoes/magboots/attack_self(mob/user) - if(src.magpulse) - src.flags &= ~NOSLIP - src.slowdown = SHOES_SLOWDOWN - else - src.flags |= NOSLIP - src.slowdown = slowdown_active - magpulse = !magpulse - icon_state = "[magboot_state][magpulse]" - to_chat(user, "You [magpulse ? "enable" : "disable"] the mag-pulse traction system.") - user.update_inv_shoes() //so our mob-overlays update - user.update_gravity(user.has_gravity()) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - -/obj/item/clothing/shoes/magboots/negates_gravity() - return flags & NOSLIP - -/obj/item/clothing/shoes/magboots/examine(mob/user) - ..() - to_chat(user, "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"].") - - -/obj/item/clothing/shoes/magboots/advance - desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer." - name = "advanced magboots" - icon_state = "advmag0" - magboot_state = "advmag" - slowdown_active = SHOES_SLOWDOWN - origin_tech = null - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/shoes/magboots/syndie - desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." - name = "blood-red magboots" - icon_state = "syndiemag0" - magboot_state = "syndiemag" - origin_tech = "magnets=4;syndicate=2" + resistance_flags = FIRE_PROOF + origin_tech = "materials=3;magnets=4;engineering=4" + +/obj/item/clothing/shoes/magboots/verb/toggle() + set name = "Toggle Magboots" + set category = "Object" + set src in usr + if(!can_use(usr)) + return + attack_self(usr) + + +/obj/item/clothing/shoes/magboots/attack_self(mob/user) + if(src.magpulse) + src.flags &= ~NOSLIP + src.slowdown = SHOES_SLOWDOWN + else + src.flags |= NOSLIP + src.slowdown = slowdown_active + magpulse = !magpulse + icon_state = "[magboot_state][magpulse]" + to_chat(user, "You [magpulse ? "enable" : "disable"] the mag-pulse traction system.") + user.update_inv_shoes() //so our mob-overlays update + user.update_gravity(user.has_gravity()) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/shoes/magboots/negates_gravity() + return flags & NOSLIP + +/obj/item/clothing/shoes/magboots/examine(mob/user) + ..() + to_chat(user, "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"].") + + +/obj/item/clothing/shoes/magboots/advance + desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer." + name = "advanced magboots" + icon_state = "advmag0" + magboot_state = "advmag" + slowdown_active = SHOES_SLOWDOWN + origin_tech = null + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/magboots/syndie + desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." + name = "blood-red magboots" + icon_state = "syndiemag0" + magboot_state = "syndiemag" + origin_tech = "magnets=4;syndicate=2" diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 10924c233a..087e0a9133 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -85,7 +85,7 @@ if(istype(user)) if(to_turf) user.forceMove(to_turf) - user.SetStunned(0) + user.SetStun(0) user.next_move = 1 user.alpha = 255 user.update_atom_colour() @@ -222,7 +222,7 @@ if(user.wear_suit == src) if(hard_landing) user.electrocute_act(35, src, safety = 1) - user.Weaken(10) + user.Knockdown(200) if(!silent) to_chat(user, "\nroot@ChronosuitMK4# chronowalk4 --stop\n") if(camera) diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index 722a2bfd14..84b738ed8b 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -525,7 +525,7 @@ if(damage) crash_damage(density, anchored, momentum_speed, unmovablevictim.name) userknockback(density, anchored, momentum_speed, dir) - losecontrol(stun = FALSE, move = FALSE) + losecontrol(knockdown = FALSE, move = FALSE) crashing = FALSE /obj/item/device/flightpack/proc/door_hit(obj/structure/mineral_door/door) @@ -605,7 +605,7 @@ var/obj/O = victim O.take_damage(damage) -/obj/item/device/flightpack/proc/losecontrol(stun = FALSE, move = TRUE) +/obj/item/device/flightpack/proc/losecontrol(knockdown = FALSE, move = TRUE) if(!move) momentum_x = 0 momentum_y = 0 @@ -620,8 +620,8 @@ momentum_decay() adjust_momentum(0, 0, 10) wearer.visible_message("[wearer]'s flight suit crashes into the ground!") - if(stun) - wearer.Weaken(4) + if(knockdown) + wearer.Knockdown(80) momentum_x = 0 momentum_y = 0 if(flight) @@ -647,7 +647,7 @@ /obj/item/device/flightpack/proc/disable_flight(forced = FALSE) if(forced) - losecontrol(stun = TRUE) + losecontrol(knockdown = TRUE) return TRUE if(momentum_speed <= 1) momentum_x = 0 diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index e98d8c93d9..3d2858a2b9 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -269,7 +269,7 @@ playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) toggle_hardsuit_mode(user) user.update_inv_head() - if(istype(user, /mob/living/carbon)) + if(iscarbon(user)) var/mob/living/carbon/C = user C.head_update(src, forced = 1) for(var/X in actions) @@ -550,7 +550,6 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) - tint = 2 item_color = "ancient" resistance_flags = FIRE_PROOF @@ -565,9 +564,12 @@ resistance_flags = FIRE_PROOF var/footstep = 1 -obj/item/clothing/suit/space/hardsuit/ancient/on_mob_move() +/obj/item/clothing/suit/space/hardsuit/ancient/on_mob_move() + var/mob/living/carbon/human/H = loc + if(!istype(H) || H.wear_suit != src) + return if(footstep > 1) - playsound(src, "suitstep", 50, 1) + playsound(src, "servostep", 100, 1) footstep = 0 else footstep++ @@ -590,7 +592,7 @@ obj/item/clothing/suit/space/hardsuit/ancient/on_mob_move() var/shield_state = "shield-old" var/shield_on = "shield-old" -/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text) +/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) recharge_cooldown = world.time + recharge_delay if(current_charges > 0) var/datum/effect_system/spark_spread/s = new @@ -615,7 +617,7 @@ obj/item/clothing/suit/space/hardsuit/ancient/on_mob_move() /obj/item/clothing/suit/space/hardsuit/shielded/process() if(world.time > recharge_cooldown && current_charges < max_charges) current_charges = Clamp((current_charges + recharge_rate), 0, max_charges) - playsound(loc, 'sound/magic/Charge.ogg', 50, 1) + playsound(loc, 'sound/magic/charge.ogg', 50, 1) if(current_charges == max_charges) playsound(loc, 'sound/machines/ding.ogg', 50, 1) STOP_PROCESSING(SSobj, src) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 4ecc1a2e48..4794a69beb 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -1,99 +1,98 @@ -//miscellaneous spacesuits -/* -Contains: - - Captain's spacesuit - - Death squad's hardsuit - - SWAT suit - - Officer's beret/spacesuit - - NASA Voidsuit - - Father Christmas' magical clothes - - Pirate's spacesuit - - ERT hardsuit: command, sec, engi, med - - EVA spacesuit - - Freedom's spacesuit (freedom from vacuum's oppression) - - Carp hardsuit -*/ - - //Death squad armored space suits, not hardsuits! -/obj/item/clothing/head/helmet/space/hardsuit/deathsquad - name = "MK.III SWAT Helmet" - desc = "An advanced tactical space helmet." - icon_state = "deathsquad" - item_state = "deathsquad" - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF | ACID_PROOF - actions_types = list() - -/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user) - return - -/obj/item/clothing/suit/space/hardsuit/deathsquad - name = "MK.III SWAT Suit" - desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back." - icon_state = "deathsquad" - item_state = "swat_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF | ACID_PROOF - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad - dog_fashion = /datum/dog_fashion/back/deathsquad - - //NEW SWAT suit -/obj/item/clothing/suit/space/swat - name = "MK.I SWAT Suit" - desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" - icon_state = "heavy" - item_state = "swat_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) - armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100) - strip_delay = 120 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/head/helmet/space/beret - name = "officer's beret" - desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space." - icon_state = "beret_badge" - flags = STOPSPRESSUREDMAGE - flags_inv = 0 - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/suit/space/officer - name = "officer's jacket" - desc = "An armored, space-proof jacket used in special operations." - icon_state = "detective" - item_state = "det_suit" - blood_overlay_type = "coat" - slowdown = 0 - flags_inv = 0 - w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF | ACID_PROOF - - - //NASA Voidsuit -/obj/item/clothing/head/helmet/space/nasavoid - name = "NASA Void Helmet" - desc = "An old, NASA Centcom branch designed, dark red space suit helmet." - icon_state = "void" - item_state = "void" - -/obj/item/clothing/suit/space/nasavoid - name = "NASA Voidsuit" - icon_state = "void" - item_state = "void" - desc = "An old, NASA Centcom branch designed, dark red space suit." - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) - +//miscellaneous spacesuits +/* +Contains: + - Captain's spacesuit + - Death squad's hardsuit + - SWAT suit + - Officer's beret/spacesuit + - NASA Voidsuit + - Father Christmas' magical clothes + - Pirate's spacesuit + - ERT hardsuit: command, sec, engi, med + - EVA spacesuit + - Freedom's spacesuit (freedom from vacuum's oppression) + - Carp hardsuit +*/ + + //Death squad armored space suits, not hardsuits! +/obj/item/clothing/head/helmet/space/hardsuit/deathsquad + name = "MK.III SWAT Helmet" + desc = "An advanced tactical space helmet." + icon_state = "deathsquad" + item_state = "deathsquad" + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + actions_types = list() + +/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user) + return + +/obj/item/clothing/suit/space/hardsuit/deathsquad + name = "MK.III SWAT Suit" + desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back." + icon_state = "deathsquad" + item_state = "swat_suit" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad + dog_fashion = /datum/dog_fashion/back/deathsquad + + //NEW SWAT suit +/obj/item/clothing/suit/space/swat + name = "MK.I SWAT Suit" + desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" + icon_state = "heavy" + item_state = "swat_suit" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100) + strip_delay = 120 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/beret + name = "officer's beret" + desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space." + icon_state = "beret_badge" + flags = STOPSPRESSUREDMAGE + flags_inv = 0 + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/suit/space/officer + name = "officer's jacket" + desc = "An armored, space-proof jacket used in special operations." + icon_state = "detective" + item_state = "det_suit" + blood_overlay_type = "coat" + slowdown = 0 + flags_inv = 0 + w_class = WEIGHT_CLASS_NORMAL + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + + //NASA Voidsuit +/obj/item/clothing/head/helmet/space/nasavoid + name = "NASA Void Helmet" + desc = "An old, NASA Centcom branch designed, dark red space suit helmet." + icon_state = "void" + item_state = "void" + +/obj/item/clothing/suit/space/nasavoid + name = "NASA Voidsuit" + icon_state = "void" + item_state = "void" + desc = "An old, NASA Centcom branch designed, dark red space suit." + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) + /obj/item/clothing/head/helmet/space/nasavoid/old name = "Engineering Void Helmet" desc = "A Centcom engineering dark red space suit helmet. While old and dusty, it still gets the job done." @@ -105,249 +104,249 @@ Contains: icon_state = "void" item_state = "void" desc = "A Centcom engineering dark red space suit. Age has degraded the suit making is difficult to move around in." - slowdown = TRUE + slowdown = 4 allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) - - //Space santa outfit suit -/obj/item/clothing/head/helmet/space/santahat - name = "Santa's hat" - desc = "Ho ho ho. Merrry X-mas!" - icon_state = "santahat" - flags = STOPSPRESSUREDMAGE - flags_cover = HEADCOVERSEYES - - dog_fashion = /datum/dog_fashion/head/santa - -/obj/item/clothing/suit/space/santa - name = "Santa's suit" - desc = "Festive!" - icon_state = "santa" - item_state = "santa" - slowdown = 0 - flags = STOPSPRESSUREDMAGE - allowed = list(/obj/item) //for stuffing exta special presents - - - //Space pirate outfit -/obj/item/clothing/head/helmet/space/pirate - name = "pirate hat" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) - flags = STOPSPRESSUREDMAGE - strip_delay = 40 + + //Space santa outfit suit +/obj/item/clothing/head/helmet/space/santahat + name = "Santa's hat" + desc = "Ho ho ho. Merrry X-mas!" + icon_state = "santahat" + flags = STOPSPRESSUREDMAGE + flags_cover = HEADCOVERSEYES + + dog_fashion = /datum/dog_fashion/head/santa + +/obj/item/clothing/suit/space/santa + name = "Santa's suit" + desc = "Festive!" + icon_state = "santa" + item_state = "santa" + slowdown = 0 + flags = STOPSPRESSUREDMAGE + allowed = list(/obj/item) //for stuffing exta special presents + + + //Space pirate outfit +/obj/item/clothing/head/helmet/space/pirate + name = "pirate hat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) + flags = STOPSPRESSUREDMAGE + strip_delay = 40 equip_delay_other = 20 - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/suit/space/pirate - name = "pirate coat" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - w_class = WEIGHT_CLASS_NORMAL - flags_inv = 0 - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) - slowdown = 0 - armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) - strip_delay = 40 + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/suit/space/pirate + name = "pirate coat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + w_class = WEIGHT_CLASS_NORMAL + flags_inv = 0 + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + slowdown = 0 + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) + strip_delay = 40 equip_delay_other = 20 - - //Emergency Response Team suits -/obj/item/clothing/head/helmet/space/hardsuit/ert - name = "emergency response unit helmet" - desc = "Standard issue command helmet for the ERT" - icon_state = "hardsuit0-ert_commander" - item_state = "hardsuit0-ert_commander" - item_color = "ert_commander" - armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80) - strip_delay = 130 - flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP - brightness_on = 7 - -/obj/item/clothing/suit/space/hardsuit/ert - name = "emergency response team suit" - desc = "Standard issue command suit for the ERT." - icon_state = "ert_command" - item_state = "ert_command" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95) - slowdown = 0 - strip_delay = 130 - - //ERT Security -/obj/item/clothing/head/helmet/space/hardsuit/ert/sec - desc = "Standard issue security helmet for the ERT." - icon_state = "hardsuit0-ert_security" - item_state = "hardsuit0-ert_security" - item_color = "ert_security" - -/obj/item/clothing/suit/space/hardsuit/ert/sec - desc = "Standard issue security suit for the ERT." - icon_state = "ert_security" - item_state = "ert_security" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec - - //ERT Engineering -/obj/item/clothing/head/helmet/space/hardsuit/ert/engi - desc = "Standard issue engineer helmet for the ERT." - icon_state = "hardsuit0-ert_engineer" - item_state = "hardsuit0-ert_engineer" - item_color = "ert_engineer" - -/obj/item/clothing/suit/space/hardsuit/ert/engi - desc = "Standard issue engineer suit for the ERT." - icon_state = "ert_engineer" - item_state = "ert_engineer" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi - - //ERT Medical -/obj/item/clothing/head/helmet/space/hardsuit/ert/med - desc = "Standard issue medical helmet for the ERT." - icon_state = "hardsuit0-ert_medical" - item_state = "hardsuit0-ert_medical" - item_color = "ert_medical" - -/obj/item/clothing/suit/space/hardsuit/ert/med - desc = "Standard issue medical suit for the ERT." - icon_state = "ert_medical" - item_state = "ert_medical" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med - species_exception = list(/datum/species/angel) - -/obj/item/clothing/suit/space/eva - name = "EVA suit" - icon_state = "space" - item_state = "s_suit" - desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) - -/obj/item/clothing/head/helmet/space/eva - name = "EVA helmet" - icon_state = "space" - item_state = "space" - desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." - flash_protect = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) - -/obj/item/clothing/head/helmet/space/freedom - name = "eagle helmet" - desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." - icon_state = "griffinhat" - item_state = "griffinhat" - armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - resistance_flags = ACID_PROOF - -/obj/item/clothing/suit/space/freedom - name = "eagle suit" - desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode." - icon_state = "freedom" - item_state = "freedom" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) - armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - resistance_flags = ACID_PROOF - -//Carpsuit, bestsuit, lovesuit -/obj/item/clothing/head/helmet/space/hardsuit/carp - name = "carp helmet" - desc = "Spaceworthy and it looks like a space carp's head, smells like one too." - icon_state = "carp_helm" - item_state = "syndicate" - armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp - brightness_on = 0 //luminosity when on - actions_types = list() - flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP - - -/obj/item/clothing/suit/space/hardsuit/carp - name = "carp space suit" - desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows." - icon_state = "carp_suit" - item_state = "space_suit_syndicate" - slowdown = 0 //Space carp magic, never stop believing - armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo - allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp - - -/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal - name = "paranormal response unit helmet" - desc = "A helmet worn by those who deal with paranormal threats for a living." - icon_state = "hardsuit0-prt" - item_state = "hardsuit0-prt" - item_color = "knight_grey" - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - actions_types = list() - resistance_flags = FIRE_PROOF - -/obj/item/clothing/suit/space/hardsuit/ert/paranormal - name = "paranormal response team suit" - desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats." - icon_state = "knight_grey" - item_state = "knight_grey" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF - -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New() - ..() - new /obj/item/weapon/nullrod(src) - -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - name = "inquisitor's hardsuit" - icon_state = "hardsuit-inq" - item_state = "hardsuit-inq" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor - -/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor - name = "inquisitor's helmet" - icon_state = "hardsuit0-inq" - item_state = "hardsuit0-inq" - -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker - name = "champion's hardsuit" - desc = "Voices echo from the hardsuit, driving the user insane." - icon_state = "hardsuit-beserker" - item_state = "hardsuit-beserker" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker - -/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker - name = "champion's helmet" - desc = "Peering into the eyes of the helmet is enough to seal damnation." - icon_state = "hardsuit0-beserker" - item_state = "hardsuit0-beserker" - -/obj/item/clothing/head/helmet/space/fragile - name = "emergency space helmet" - desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable." - icon_state = "syndicate-helm-orange" - item_state = "syndicate-helm-orange" - armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0) - strip_delay = 65 - -/obj/item/clothing/suit/space/fragile - name = "emergency space suit" - desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable." - var/torn = FALSE - icon_state = "syndicate-orange" - item_state = "syndicate-orange" - slowdown = 2 - armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0) - strip_delay = 65 - -/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) - if(!torn && prob(50)) - to_chat(owner, "[src] tears from the damage, breaking the air-tight seal!") - src.flags -= STOPSPRESSUREDMAGE - src.name = "torn [src]." - src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit." - src.torn = TRUE - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1) - playsound(loc, 'sound/effects/refill.ogg', 50, 1) - - + + //Emergency Response Team suits +/obj/item/clothing/head/helmet/space/hardsuit/ert + name = "emergency response unit helmet" + desc = "Standard issue command helmet for the ERT" + icon_state = "hardsuit0-ert_commander" + item_state = "hardsuit0-ert_commander" + item_color = "ert_commander" + armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP + brightness_on = 7 + +/obj/item/clothing/suit/space/hardsuit/ert + name = "emergency response team suit" + desc = "Standard issue command suit for the ERT." + icon_state = "ert_command" + item_state = "ert_command" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95) + slowdown = 0 + strip_delay = 130 + + //ERT Security +/obj/item/clothing/head/helmet/space/hardsuit/ert/sec + desc = "Standard issue security helmet for the ERT." + icon_state = "hardsuit0-ert_security" + item_state = "hardsuit0-ert_security" + item_color = "ert_security" + +/obj/item/clothing/suit/space/hardsuit/ert/sec + desc = "Standard issue security suit for the ERT." + icon_state = "ert_security" + item_state = "ert_security" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec + + //ERT Engineering +/obj/item/clothing/head/helmet/space/hardsuit/ert/engi + desc = "Standard issue engineer helmet for the ERT." + icon_state = "hardsuit0-ert_engineer" + item_state = "hardsuit0-ert_engineer" + item_color = "ert_engineer" + +/obj/item/clothing/suit/space/hardsuit/ert/engi + desc = "Standard issue engineer suit for the ERT." + icon_state = "ert_engineer" + item_state = "ert_engineer" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi + + //ERT Medical +/obj/item/clothing/head/helmet/space/hardsuit/ert/med + desc = "Standard issue medical helmet for the ERT." + icon_state = "hardsuit0-ert_medical" + item_state = "hardsuit0-ert_medical" + item_color = "ert_medical" + +/obj/item/clothing/suit/space/hardsuit/ert/med + desc = "Standard issue medical suit for the ERT." + icon_state = "ert_medical" + item_state = "ert_medical" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med + species_exception = list(/datum/species/angel) + +/obj/item/clothing/suit/space/eva + name = "EVA suit" + icon_state = "space" + item_state = "s_suit" + desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) + +/obj/item/clothing/head/helmet/space/eva + name = "EVA helmet" + icon_state = "space" + item_state = "space" + desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." + flash_protect = 0 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) + +/obj/item/clothing/head/helmet/space/freedom + name = "eagle helmet" + desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." + icon_state = "griffinhat" + item_state = "griffinhat" + armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = ACID_PROOF + +/obj/item/clothing/suit/space/freedom + name = "eagle suit" + desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode." + icon_state = "freedom" + item_state = "freedom" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = ACID_PROOF + +//Carpsuit, bestsuit, lovesuit +/obj/item/clothing/head/helmet/space/hardsuit/carp + name = "carp helmet" + desc = "Spaceworthy and it looks like a space carp's head, smells like one too." + icon_state = "carp_helm" + item_state = "syndicate" + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp + brightness_on = 0 //luminosity when on + actions_types = list() + flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP + + +/obj/item/clothing/suit/space/hardsuit/carp + name = "carp space suit" + desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows." + icon_state = "carp_suit" + item_state = "space_suit_syndicate" + slowdown = 0 //Space carp magic, never stop believing + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp + + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal + name = "paranormal response unit helmet" + desc = "A helmet worn by those who deal with paranormal threats for a living." + icon_state = "hardsuit0-prt" + item_state = "hardsuit0-prt" + item_color = "knight_grey" + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + actions_types = list() + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal + name = "paranormal response team suit" + desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats." + icon_state = "knight_grey" + item_state = "knight_grey" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New() + ..() + new /obj/item/weapon/nullrod(src) + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor + name = "inquisitor's hardsuit" + icon_state = "hardsuit-inq" + item_state = "hardsuit-inq" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + name = "inquisitor's helmet" + icon_state = "hardsuit0-inq" + item_state = "hardsuit0-inq" + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker + name = "champion's hardsuit" + desc = "Voices echo from the hardsuit, driving the user insane." + icon_state = "hardsuit-beserker" + item_state = "hardsuit-beserker" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker + name = "champion's helmet" + desc = "Peering into the eyes of the helmet is enough to seal damnation." + icon_state = "hardsuit0-beserker" + item_state = "hardsuit0-beserker" + +/obj/item/clothing/head/helmet/space/fragile + name = "emergency space helmet" + desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable." + icon_state = "syndicate-helm-orange" + item_state = "syndicate-helm-orange" + armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0) + strip_delay = 65 + +/obj/item/clothing/suit/space/fragile + name = "emergency space suit" + desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable." + var/torn = FALSE + icon_state = "syndicate-orange" + item_state = "syndicate-orange" + slowdown = 2 + armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0) + strip_delay = 65 + +/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(!torn && prob(50)) + to_chat(owner, "[src] tears from the damage, breaking the air-tight seal!") + src.flags -= STOPSPRESSUREDMAGE + src.name = "torn [src]." + src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit." + src.torn = TRUE + playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1) + playsound(loc, 'sound/effects/refill.ogg', 50, 1) + + diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 183c447c6d..244a3b40f7 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -97,7 +97,6 @@ desc = "A sinister looking vest of advanced armor worn over a black and red fireproof jacket. The gold collar and shoulders denote that this belongs to a high ranking syndicate officer." icon_state = "syndievest" - /obj/item/clothing/suit/armor/vest/capcarapace/alt name = "captain's parade jacket" desc = "For when an armoured vest isn't fashionable enough." @@ -152,7 +151,7 @@ return 1 /obj/item/clothing/suit/armor/vest/det_suit - name = "armor" + name = "detective's armor vest" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton) @@ -204,7 +203,7 @@ var/rad_amount= 15 reactivearmor_cooldown_duration = 100 -/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) +/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 if(prob(hit_reaction_chance)) @@ -237,7 +236,7 @@ name = "reactive incendiary armor" desc = "An experimental suit of armor with a reactive sensor array rigged to a flame emitter. For the stylish pyromaniac." -/obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, attack_text) +/obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 if(prob(hit_reaction_chance)) @@ -259,7 +258,7 @@ name = "reactive stealth armor" desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." -/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text) +/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 if(prob(hit_reaction_chance)) @@ -286,7 +285,7 @@ var/tesla_boom = FALSE var/tesla_stun = FALSE -/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, attack_text) +/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 if(prob(hit_reaction_chance)) @@ -306,7 +305,7 @@ desc = "If you can't beat the memes, embrace them." var/tele_range = 10 -/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, attack_text) +/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 if(prob(hit_reaction_chance)) @@ -316,7 +315,7 @@ return owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a fabricated table!") owner.visible_message("[H] GOES ON THE TABLE!!!") - owner.Weaken(2) + owner.Knockdown(40) var/list/turfs = new/list() for(var/turf/T in orange(tele_range, H)) if(T.density) diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 0fc434ca3c..50757bb364 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -1,88 +1,88 @@ -//Biosuit complete with shoes (in the item sprite) -/obj/item/clothing/head/bio_hood - name = "bio hood" - icon_state = "bio" - desc = "A hood that protects the head and face from biological comtaminants." - permeability_coefficient = 0.01 - flags = THICKMATERIAL - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE - resistance_flags = ACID_PROOF - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - -/obj/item/clothing/suit/bio_suit - name = "bio suit" - desc = "A suit that protects against biological contamination." - icon_state = "bio" - item_state = "bio_suit" - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - flags = THICKMATERIAL - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - slowdown = 1 - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - strip_delay = 70 +//Biosuit complete with shoes (in the item sprite) +/obj/item/clothing/head/bio_hood + name = "bio hood" + icon_state = "bio" + desc = "A hood that protects the head and face from biological comtaminants." + permeability_coefficient = 0.01 + flags = THICKMATERIAL + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE + resistance_flags = ACID_PROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + +/obj/item/clothing/suit/bio_suit + name = "bio suit" + desc = "A suit that protects against biological contamination." + icon_state = "bio" + item_state = "bio_suit" + w_class = WEIGHT_CLASS_BULKY + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags = THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + slowdown = 1 + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100) + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + strip_delay = 70 equip_delay_other = 70 - resistance_flags = ACID_PROOF - -//Standard biosuit, orange stripe -/obj/item/clothing/head/bio_hood/general - icon_state = "bio_general" - -/obj/item/clothing/suit/bio_suit/general - icon_state = "bio_general" - - -//Virology biosuit, green stripe -/obj/item/clothing/head/bio_hood/virology - icon_state = "bio_virology" - -/obj/item/clothing/suit/bio_suit/virology - icon_state = "bio_virology" - - -//Security biosuit, grey with red stripe across the chest -/obj/item/clothing/head/bio_hood/security - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) - icon_state = "bio_security" - -/obj/item/clothing/suit/bio_suit/security - armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) - icon_state = "bio_security" - - -//Janitor's biosuit, grey with purple arms -/obj/item/clothing/head/bio_hood/janitor - icon_state = "bio_janitor" - -/obj/item/clothing/suit/bio_suit/janitor - icon_state = "bio_janitor" - - -//Scientist's biosuit, white with a pink-ish hue -/obj/item/clothing/head/bio_hood/scientist - icon_state = "bio_scientist" - -/obj/item/clothing/suit/bio_suit/scientist - icon_state = "bio_scientist" - - -//CMO's biosuit, blue stripe -/obj/item/clothing/suit/bio_suit/cmo - icon_state = "bio_cmo" - -/obj/item/clothing/head/bio_hood/cmo - icon_state = "bio_cmo" - - -//Plague Dr mask can be found in clothing/masks/gasmask.dm -/obj/item/clothing/suit/bio_suit/plaguedoctorsuit - name = "plague doctor suit" - desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses." - icon_state = "plaguedoctor" - item_state = "bio_suit" - strip_delay = 40 + resistance_flags = ACID_PROOF + +//Standard biosuit, orange stripe +/obj/item/clothing/head/bio_hood/general + icon_state = "bio_general" + +/obj/item/clothing/suit/bio_suit/general + icon_state = "bio_general" + + +//Virology biosuit, green stripe +/obj/item/clothing/head/bio_hood/virology + icon_state = "bio_virology" + +/obj/item/clothing/suit/bio_suit/virology + icon_state = "bio_virology" + + +//Security biosuit, grey with red stripe across the chest +/obj/item/clothing/head/bio_hood/security + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) + icon_state = "bio_security" + +/obj/item/clothing/suit/bio_suit/security + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100) + icon_state = "bio_security" + + +//Janitor's biosuit, grey with purple arms +/obj/item/clothing/head/bio_hood/janitor + icon_state = "bio_janitor" + +/obj/item/clothing/suit/bio_suit/janitor + icon_state = "bio_janitor" + + +//Scientist's biosuit, white with a pink-ish hue +/obj/item/clothing/head/bio_hood/scientist + icon_state = "bio_scientist" + +/obj/item/clothing/suit/bio_suit/scientist + icon_state = "bio_scientist" + + +//CMO's biosuit, blue stripe +/obj/item/clothing/suit/bio_suit/cmo + icon_state = "bio_cmo" + +/obj/item/clothing/head/bio_hood/cmo + icon_state = "bio_cmo" + + +//Plague Dr mask can be found in clothing/masks/gasmask.dm +/obj/item/clothing/suit/bio_suit/plaguedoctorsuit + name = "plague doctor suit" + desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses." + icon_state = "plaguedoctor" + item_state = "bio_suit" + strip_delay = 40 equip_delay_other = 20 diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 8bbbd15b70..a7c6deadfb 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -181,6 +181,7 @@ I.add_overlay(mutable_appearance('icons/mob/robots.dmi', "robot_e")) //gotta look realistic add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", I) //you look like a robot to robots! (including yourself because you're totally a robot) + /obj/item/clothing/suit/snowman name = "snowman outfit" desc = "Two white spheres covered in white glitter. 'Tis the season." diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 85005e57b2..64f30acc53 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -1,135 +1,135 @@ -/* - * Contains: - * Fire protection - * Bomb protection - * Radiation protection - */ - -/* - * Fire protection - */ - -/obj/item/clothing/suit/fire - name = "emergency firesuit" - desc = "A suit that helps protect against fire and heat." - icon_state = "fire" - item_state = "ro_suit" - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.50 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/extinguisher, /obj/item/weapon/crowbar) - slowdown = 1 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags = STOPSPRESSUREDMAGE | THICKMATERIAL - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - strip_delay = 60 +/* + * Contains: + * Fire protection + * Bomb protection + * Radiation protection + */ + +/* + * Fire protection + */ + +/obj/item/clothing/suit/fire + name = "emergency firesuit" + desc = "A suit that helps protect against fire and heat." + icon_state = "fire" + item_state = "ro_suit" + w_class = WEIGHT_CLASS_BULKY + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.50 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/extinguisher, /obj/item/weapon/crowbar) + slowdown = 1 + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + strip_delay = 60 equip_delay_other = 60 - resistance_flags = FIRE_PROOF - -/obj/item/clothing/suit/fire/firefighter - icon_state = "firesuit" - item_state = "firefighter" - - -/obj/item/clothing/suit/fire/heavy - name = "heavy firesuit" - desc = "An old, bulky thermal protection suit." - icon_state = "thermal" - item_state = "ro_suit" - slowdown = 1.5 - -/obj/item/clothing/suit/fire/atmos - name = "firesuit" - desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame." - icon_state = "atmos_firesuit" - item_state = "firesuit_atmos" - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT - -/* - * Bomb protection - */ -/obj/item/clothing/head/bomb_hood - name = "bomb hood" - desc = "Use in case of bomb." - icon_state = "bombsuit" - flags = THICKMATERIAL - armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) - flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR - cold_protection = HEAD - min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - strip_delay = 70 + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/fire/firefighter + icon_state = "firesuit" + item_state = "firefighter" + + +/obj/item/clothing/suit/fire/heavy + name = "heavy firesuit" + desc = "An old, bulky thermal protection suit." + icon_state = "thermal" + item_state = "ro_suit" + slowdown = 1.5 + +/obj/item/clothing/suit/fire/atmos + name = "firesuit" + desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame." + icon_state = "atmos_firesuit" + item_state = "firesuit_atmos" + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + +/* + * Bomb protection + */ +/obj/item/clothing/head/bomb_hood + name = "bomb hood" + desc = "Use in case of bomb." + icon_state = "bombsuit" + flags = THICKMATERIAL + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) + flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + strip_delay = 70 equip_delay_other = 70 - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - resistance_flags = 0 - - -/obj/item/clothing/suit/bomb_suit - name = "bomb suit" - desc = "A suit designed for safety when handling explosives." - icon_state = "bombsuit" - item_state = "bombsuit" - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - flags = THICKMATERIAL - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - slowdown = 2 - armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) - flags_inv = HIDEJUMPSUIT - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - strip_delay = 70 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = 0 + + +/obj/item/clothing/suit/bomb_suit + name = "bomb suit" + desc = "A suit designed for safety when handling explosives." + icon_state = "bombsuit" + item_state = "bombsuit" + w_class = WEIGHT_CLASS_BULKY + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags = THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + slowdown = 2 + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) + flags_inv = HIDEJUMPSUIT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + strip_delay = 70 equip_delay_other = 70 - resistance_flags = 0 - - -/obj/item/clothing/head/bomb_hood/security - icon_state = "bombsuitsec" - item_state = "bombsuitsec" - - -/obj/item/clothing/suit/bomb_suit/security - icon_state = "bombsuitsec" - item_state = "bombsuitsec" - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) - -/* - * Radiation protection - */ -/obj/item/clothing/head/radiation - name = "radiation hood" - icon_state = "rad" - desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" - flags = THICKMATERIAL - flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) - strip_delay = 60 + resistance_flags = 0 + + +/obj/item/clothing/head/bomb_hood/security + icon_state = "bombsuitsec" + item_state = "bombsuitsec" + + +/obj/item/clothing/suit/bomb_suit/security + icon_state = "bombsuitsec" + item_state = "bombsuitsec" + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + +/* + * Radiation protection + */ +/obj/item/clothing/head/radiation + name = "radiation hood" + icon_state = "rad" + desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" + flags = THICKMATERIAL + flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) + strip_delay = 60 equip_delay_other = 60 - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - resistance_flags = 0 - -/obj/item/clothing/suit/radiation - name = "radiation suit" - desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" - icon_state = "rad" - item_state = "rad_suit" - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.50 - flags = THICKMATERIAL - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter) - slowdown = 1.5 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) - strip_delay = 60 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = 0 + +/obj/item/clothing/suit/radiation + name = "radiation suit" + desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" + icon_state = "rad" + item_state = "rad_suit" + w_class = WEIGHT_CLASS_BULKY + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.50 + flags = THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter) + slowdown = 1.5 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) + strip_delay = 60 equip_delay_other = 60 - flags_inv = HIDEJUMPSUIT - resistance_flags = 0 + flags_inv = HIDEJUMPSUIT + resistance_flags = 0 diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 89b297bc5c..5e179b4682 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -1,228 +1,228 @@ -/obj/item/clothing/head/wizard - name = "wizard hat" - desc = "Strange-looking hat-wear that most certainly belongs to a real magic user." - icon_state = "wizard" - gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE - permeability_coefficient = 0.01 - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) - strip_delay = 50 +/obj/item/clothing/head/wizard + name = "wizard hat" + desc = "Strange-looking hat-wear that most certainly belongs to a real magic user." + icon_state = "wizard" + gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE + permeability_coefficient = 0.01 + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + strip_delay = 50 equip_delay_other = 50 - resistance_flags = FIRE_PROOF | ACID_PROOF - dog_fashion = /datum/dog_fashion/head/blue_wizard - -/obj/item/clothing/head/wizard/red - name = "red wizard hat" - desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user." - icon_state = "redwizard" - dog_fashion = /datum/dog_fashion/head/red_wizard - -/obj/item/clothing/head/wizard/yellow - name = "yellow wizard hat" - desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user." - icon_state = "yellowwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/black - name = "black wizard hat" - desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." - icon_state = "blackwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/fake - name = "wizard hat" - desc = "It has WIZZARD written across it in sequins. Comes with a cool beard." - icon_state = "wizard-fake" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - resistance_flags = FLAMMABLE - dog_fashion = /datum/dog_fashion/head/blue_wizard - -/obj/item/clothing/head/wizard/marisa - name = "witch hat" - desc = "Strange-looking hat-wear. Makes you want to cast fireballs." - icon_state = "marisa" - dog_fashion = null - -/obj/item/clothing/head/wizard/magus - name = "\improper Magus helm" - desc = "A mysterious helmet that hums with an unearthly power." - icon_state = "magus" - item_state = "magus" - dog_fashion = null - -/obj/item/clothing/head/wizard/santa - name = "Santa's hat" - desc = "Ho ho ho. Merrry X-mas!" - icon_state = "santahat" - flags_inv = HIDEHAIR|HIDEFACIALHAIR - dog_fashion = null - -/obj/item/clothing/suit/wizrobe - name = "wizard robe" - desc = "A magnificent, gem-lined robe that seems to radiate power." - icon_state = "wizard" - item_state = "wizrobe" - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) - allowed = list(/obj/item/weapon/teleportation_scroll) - flags_inv = HIDEJUMPSUIT - strip_delay = 50 + resistance_flags = FIRE_PROOF | ACID_PROOF + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/wizard/red + name = "red wizard hat" + desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user." + icon_state = "redwizard" + dog_fashion = /datum/dog_fashion/head/red_wizard + +/obj/item/clothing/head/wizard/yellow + name = "yellow wizard hat" + desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user." + icon_state = "yellowwizard" + dog_fashion = null + +/obj/item/clothing/head/wizard/black + name = "black wizard hat" + desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." + icon_state = "blackwizard" + dog_fashion = null + +/obj/item/clothing/head/wizard/fake + name = "wizard hat" + desc = "It has WIZZARD written across it in sequins. Comes with a cool beard." + icon_state = "wizard-fake" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/wizard/marisa + name = "witch hat" + desc = "Strange-looking hat-wear. Makes you want to cast fireballs." + icon_state = "marisa" + dog_fashion = null + +/obj/item/clothing/head/wizard/magus + name = "\improper Magus helm" + desc = "A mysterious helmet that hums with an unearthly power." + icon_state = "magus" + item_state = "magus" + dog_fashion = null + +/obj/item/clothing/head/wizard/santa + name = "Santa's hat" + desc = "Ho ho ho. Merrry X-mas!" + icon_state = "santahat" + flags_inv = HIDEHAIR|HIDEFACIALHAIR + dog_fashion = null + +/obj/item/clothing/suit/wizrobe + name = "wizard robe" + desc = "A magnificent, gem-lined robe that seems to radiate power." + icon_state = "wizard" + item_state = "wizrobe" + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + body_parts_covered = CHEST|GROIN|ARMS|LEGS + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + allowed = list(/obj/item/weapon/teleportation_scroll) + flags_inv = HIDEJUMPSUIT + strip_delay = 50 equip_delay_other = 50 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/suit/wizrobe/red - name = "red wizard robe" - desc = "A magnificent red gem-lined robe that seems to radiate power." - icon_state = "redwizard" - item_state = "redwizrobe" - -/obj/item/clothing/suit/wizrobe/yellow - name = "yellow wizard robe" - desc = "A magnificant yellow gem-lined robe that seems to radiate power." - icon_state = "yellowwizard" - item_state = "yellowwizrobe" - -/obj/item/clothing/suit/wizrobe/black - name = "black wizard robe" - desc = "An unnerving black gem-lined robe that reeks of death and decay." - icon_state = "blackwizard" - item_state = "blackwizrobe" - -/obj/item/clothing/suit/wizrobe/marisa - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - -/obj/item/clothing/suit/wizrobe/magusblue - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusblue" - item_state = "magusblue" - -/obj/item/clothing/suit/wizrobe/magusred - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusred" - item_state = "magusred" - - -/obj/item/clothing/suit/wizrobe/santa - name = "Santa's suit" - desc = "Festive!" - icon_state = "santa" - item_state = "santa" - -/obj/item/clothing/suit/wizrobe/fake - name = "wizard robe" - desc = "A rather dull blue robe meant to mimick real wizard robes." - icon_state = "wizard-fake" - item_state = "wizrobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/head/wizard/marisa/fake - name = "witch hat" - desc = "Strange-looking hat-wear, makes you want to cast fireballs." - icon_state = "marisa" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/suit/wizrobe/marisa/fake - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/suit/wizrobe/paper - name = "papier-mache robe" // no non-latin characters! - desc = "A robe held together by various bits of clear-tape and paste." - icon_state = "wizard-paper" - item_state = "wizrobe" - var/robe_charge = TRUE - actions_types = list(/datum/action/item_action/stickmen) - - -/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action) - stickmen() - - -/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() - set category = "Object" - set name = "Summon Stick Minions" - set src in usr - if(!isliving(usr)) - return - if(!robe_charge) - to_chat(usr, "\The robe's internal magic supply is still recharging!") - return - - usr.say("Rise, my creation! Off your page into this realm!") - playsound(src.loc, 'sound/magic/Summon_Magic.ogg', 50, 1, 1) - var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) - var/list/factions = usr.faction - M.faction = factions - src.robe_charge = FALSE - sleep(30) - src.robe_charge = TRUE - to_chat(usr, "\The robe hums, its internal magic supply restored.") - - -//Shielded Armour - -/obj/item/clothing/suit/space/hardsuit/shielded/wizard - name = "battlemage armour" - desc = "Not all wizards are afraid of getting up close and personal." - icon_state = "battlemage" - item_state = "battlemage" - recharge_rate = 0 - current_charges = 15 - recharge_cooldown = INFINITY - shield_state = "shield-red" - shield_on = "shield-red" - min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) - slowdown = 0 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard - name = "battlemage helmet" - desc = "A suitably impressive helmet.." - icon_state = "battlemage" - item_state = "battlemage" - min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) - actions_types = null //No inbuilt light - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user) - return - -/obj/item/wizard_armour_charge - name = "battlemage shield charges" - desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.." - icon = 'icons/effects/effects.dmi' - icon_state = "electricity2" - -/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user) - ..() - if(!istype(W)) - to_chat(user, "The rune can only be used on battlemage armour!") - return - W.current_charges += 8 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/suit/wizrobe/red + name = "red wizard robe" + desc = "A magnificent red gem-lined robe that seems to radiate power." + icon_state = "redwizard" + item_state = "redwizrobe" + +/obj/item/clothing/suit/wizrobe/yellow + name = "yellow wizard robe" + desc = "A magnificant yellow gem-lined robe that seems to radiate power." + icon_state = "yellowwizard" + item_state = "yellowwizrobe" + +/obj/item/clothing/suit/wizrobe/black + name = "black wizard robe" + desc = "An unnerving black gem-lined robe that reeks of death and decay." + icon_state = "blackwizard" + item_state = "blackwizrobe" + +/obj/item/clothing/suit/wizrobe/marisa + name = "witch robe" + desc = "Magic is all about the spell power, ZE!" + icon_state = "marisa" + item_state = "marisarobe" + +/obj/item/clothing/suit/wizrobe/magusblue + name = "\improper Magus robe" + desc = "A set of armored robes that seem to radiate a dark power." + icon_state = "magusblue" + item_state = "magusblue" + +/obj/item/clothing/suit/wizrobe/magusred + name = "\improper Magus robe" + desc = "A set of armored robes that seem to radiate a dark power." + icon_state = "magusred" + item_state = "magusred" + + +/obj/item/clothing/suit/wizrobe/santa + name = "Santa's suit" + desc = "Festive!" + icon_state = "santa" + item_state = "santa" + +/obj/item/clothing/suit/wizrobe/fake + name = "wizard robe" + desc = "A rather dull blue robe meant to mimick real wizard robes." + icon_state = "wizard-fake" + item_state = "wizrobe" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/head/wizard/marisa/fake + name = "witch hat" + desc = "Strange-looking hat-wear, makes you want to cast fireballs." + icon_state = "marisa" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/wizrobe/marisa/fake + name = "witch robe" + desc = "Magic is all about the spell power, ZE!" + icon_state = "marisa" + item_state = "marisarobe" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/wizrobe/paper + name = "papier-mache robe" // no non-latin characters! + desc = "A robe held together by various bits of clear-tape and paste." + icon_state = "wizard-paper" + item_state = "wizrobe" + var/robe_charge = TRUE + actions_types = list(/datum/action/item_action/stickmen) + + +/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action) + stickmen() + + +/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() + set category = "Object" + set name = "Summon Stick Minions" + set src in usr + if(!isliving(usr)) + return + if(!robe_charge) + to_chat(usr, "\The robe's internal magic supply is still recharging!") + return + + usr.say("Rise, my creation! Off your page into this realm!") + playsound(src.loc, 'sound/magic/summon_magic.ogg', 50, 1, 1) + var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) + var/list/factions = usr.faction + M.faction = factions + src.robe_charge = FALSE + sleep(30) + src.robe_charge = TRUE + to_chat(usr, "\The robe hums, its internal magic supply restored.") + + +//Shielded Armour + +/obj/item/clothing/suit/space/hardsuit/shielded/wizard + name = "battlemage armour" + desc = "Not all wizards are afraid of getting up close and personal." + icon_state = "battlemage" + item_state = "battlemage" + recharge_rate = 0 + current_charges = 15 + recharge_cooldown = INFINITY + shield_state = "shield-red" + shield_on = "shield-red" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + slowdown = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + name = "battlemage helmet" + desc = "A suitably impressive helmet.." + icon_state = "battlemage" + item_state = "battlemage" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + actions_types = null //No inbuilt light + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user) + return + +/obj/item/wizard_armour_charge + name = "battlemage shield charges" + desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.." + icon = 'icons/effects/effects.dmi' + icon_state = "electricity2" + +/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user) + ..() + if(!istype(W)) + to_chat(user, "The rune can only be used on battlemage armour!") + return + W.current_charges += 8 to_chat(user, "You charge \the [W]. It can now absorb [W.current_charges] hits.") - qdel(src) + qdel(src) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 320d5c58a5..60cdcd0ac4 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -7,6 +7,7 @@ item_color = "plasma" //On accessories, this controls the worn sprite. That's a bit weird. slot_flags = 0 w_class = WEIGHT_CLASS_SMALL + var/above_suit = FALSE var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed /obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user) @@ -55,6 +56,7 @@ plane = initial(plane) U.cut_overlays() U.attached_accessory = null + U.accessory_overlay = null /obj/item/clothing/accessory/proc/on_uniform_equip(obj/item/clothing/under/U, user) return @@ -62,9 +64,16 @@ /obj/item/clothing/accessory/proc/on_uniform_dropped(obj/item/clothing/under/U, user) return +/obj/item/clothing/accessory/AltClick() + if(initial(above_suit)) + above_suit = !above_suit + to_chat(usr, "\The [src] will be worn [above_suit ? "above" : "below"] your suit.") + /obj/item/clothing/accessory/examine(mob/user) ..() to_chat(user, "\The [src] can be attached to a uniform. Alt-click to remove it once attached.") + if(initial(above_suit)) + to_chat(user, "\The [src] can be worn above or below your suit. Alt-click to toggle.") /obj/item/clothing/accessory/waistcoat name = "waistcoat" @@ -266,6 +275,23 @@ if(L) L.bubble_icon = initial(L.bubble_icon) +//////////////// +//HA HA! NERD!// +//////////////// +/obj/item/clothing/accessory/pocketprotector + name = "pocket protector" + desc = "Can protect your clothing from ink stains, but you'll look like a nerd if you're using one." + icon_state = "pocketprotector" + item_color = "pocketprotector" + pockets = /obj/item/weapon/storage/internal/pocket/pocketprotector + +/obj/item/clothing/accessory/pocketprotector/full + pockets = /obj/item/weapon/storage/internal/pocket/pocketprotector/full + +/obj/item/clothing/accessory/pocketprotector/cosmetology + pockets = /obj/item/weapon/storage/internal/pocket/pocketprotector/cosmetology + + //////////////// //OONGA BOONGA// //////////////// @@ -276,3 +302,12 @@ icon_state = "talisman" item_color = "talisman" armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) + + +/obj/item/clothing/accessory/skullcodpiece + name = "skull codpiece" + desc = "A skull shaped ornament, intended to protect the important things in life." + icon_state = "skull" + item_color = "skull" + above_suit = TRUE + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) \ No newline at end of file diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index cd6d209e5c..5f69bc2eb5 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -30,7 +30,7 @@ name = "ancient jumpsuit" desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade." -/obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner) +/obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) owner.forcesay(GLOB.hit_appends) return 0 diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index eaa80d823c..19cfc834f9 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -1,175 +1,175 @@ -//Alphabetical order of civilian jobs. - -/obj/item/clothing/under/rank/bartender - desc = "It looks like it could use some more flair." - name = "bartender's uniform" - icon_state = "barman" - item_state = "bar_suit" - item_color = "barman" - alt_covers_chest = 1 - -/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. - desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." - name = "captain's jumpsuit" - icon_state = "captain" - item_state = "b_suit" - item_color = "captain" +//Alphabetical order of civilian jobs. + +/obj/item/clothing/under/rank/bartender + desc = "It looks like it could use some more flair." + name = "bartender's uniform" + icon_state = "barman" + item_state = "bar_suit" + item_color = "barman" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. + desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." + name = "captain's jumpsuit" + icon_state = "captain" + item_state = "b_suit" + item_color = "captain" sensor_mode = SENSOR_COORDS - random_sensor = 0 - -/obj/item/clothing/under/rank/cargo - name = "quartermaster's jumpsuit" - desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." - icon_state = "qm" - item_state = "lb_suit" - item_color = "qm" - -/obj/item/clothing/under/rank/cargotech - name = "cargo technician's jumpsuit" - desc = "Shooooorts! They're comfy and easy to wear!" - icon_state = "cargotech" - item_state = "lb_suit" - item_color = "cargo" - body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = MUTANTRACE_VARIATION - - -/obj/item/clothing/under/rank/chaplain - desc = "It's a black jumpsuit, often worn by religious folk." - name = "chaplain's jumpsuit" - icon_state = "chaplain" - item_state = "bl_suit" - item_color = "chapblack" - can_adjust = 0 - -/obj/item/clothing/under/rank/chef - name = "cook's suit" - desc = "A suit which is given only to the most hardcore cooks in space." - icon_state = "chef" - item_color = "chef" - alt_covers_chest = 1 - -/obj/item/clothing/under/rank/clown - name = "clown suit" - desc = "'HONK!'" - icon_state = "clown" - item_state = "clown" - item_color = "clown" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/rank/clown/hit_reaction() - playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) - return 0 - -/obj/item/clothing/under/rank/head_of_personnel - desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." - name = "head of personnel's jumpsuit" - icon_state = "hop" - item_state = "b_suit" - item_color = "hop" - can_adjust = 0 - -/obj/item/clothing/under/rank/hydroponics - desc = "It's a jumpsuit designed to protect against minor plant-related hazards." - name = "botanist's jumpsuit" - icon_state = "hydroponics" - item_state = "g_suit" - item_color = "hydroponics" - permeability_coefficient = 0.50 - -/obj/item/clothing/under/rank/janitor - desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." - name = "janitor's jumpsuit" - icon_state = "janitor" - item_color = "janitor" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) - -/obj/item/clothing/under/lawyer - desc = "Slick threads." - name = "Lawyer suit" - can_adjust = 0 - -/obj/item/clothing/under/lawyer/black - icon_state = "lawyer_black" - item_state = "lawyer_black" - item_color = "lawyer_black" - -/obj/item/clothing/under/lawyer/female - icon_state = "black_suit_fem" - item_state = "black_suit_fem" - item_color = "black_suit_fem" - -/obj/item/clothing/under/lawyer/red - icon_state = "lawyer_red" - item_state = "lawyer_red" - item_color = "lawyer_red" - -/obj/item/clothing/under/lawyer/blue - icon_state = "lawyer_blue" - item_state = "lawyer_blue" - item_color = "lawyer_blue" - -/obj/item/clothing/under/lawyer/bluesuit - name = "blue suit" - desc = "A classy suit and tie." - icon_state = "bluesuit" - item_state = "bluesuit" - item_color = "bluesuit" - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/lawyer/purpsuit - name = "purple suit" - icon_state = "lawyer_purp" - item_state = "lawyer_purp" - item_color = "lawyer_purp" - fitted = NO_FEMALE_UNIFORM - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/lawyer/blacksuit - name = "black suit" - desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" - icon_state = "blacksuit" - item_state = "bar_suit" - item_color = "blacksuit" - can_adjust = 1 - alt_covers_chest = 1 - + random_sensor = 0 + +/obj/item/clothing/under/rank/cargo + name = "quartermaster's jumpsuit" + desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." + icon_state = "qm" + item_state = "lb_suit" + item_color = "qm" + +/obj/item/clothing/under/rank/cargotech + name = "cargo technician's jumpsuit" + desc = "Shooooorts! They're comfy and easy to wear!" + icon_state = "cargotech" + item_state = "lb_suit" + item_color = "cargo" + body_parts_covered = CHEST|GROIN|ARMS + mutantrace_variation = MUTANTRACE_VARIATION + + +/obj/item/clothing/under/rank/chaplain + desc = "It's a black jumpsuit, often worn by religious folk." + name = "chaplain's jumpsuit" + icon_state = "chaplain" + item_state = "bl_suit" + item_color = "chapblack" + can_adjust = 0 + +/obj/item/clothing/under/rank/chef + name = "cook's suit" + desc = "A suit which is given only to the most hardcore cooks in space." + icon_state = "chef" + item_color = "chef" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/clown + name = "clown suit" + desc = "'HONK!'" + icon_state = "clown" + item_state = "clown" + item_color = "clown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/rank/clown/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) + return 0 + +/obj/item/clothing/under/rank/head_of_personnel + desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." + name = "head of personnel's jumpsuit" + icon_state = "hop" + item_state = "b_suit" + item_color = "hop" + can_adjust = 0 + +/obj/item/clothing/under/rank/hydroponics + desc = "It's a jumpsuit designed to protect against minor plant-related hazards." + name = "botanist's jumpsuit" + icon_state = "hydroponics" + item_state = "g_suit" + item_color = "hydroponics" + permeability_coefficient = 0.50 + +/obj/item/clothing/under/rank/janitor + desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." + name = "janitor's jumpsuit" + icon_state = "janitor" + item_color = "janitor" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/under/lawyer + desc = "Slick threads." + name = "Lawyer suit" + can_adjust = 0 + +/obj/item/clothing/under/lawyer/black + icon_state = "lawyer_black" + item_state = "lawyer_black" + item_color = "lawyer_black" + +/obj/item/clothing/under/lawyer/female + icon_state = "black_suit_fem" + item_state = "black_suit_fem" + item_color = "black_suit_fem" + +/obj/item/clothing/under/lawyer/red + icon_state = "lawyer_red" + item_state = "lawyer_red" + item_color = "lawyer_red" + +/obj/item/clothing/under/lawyer/blue + icon_state = "lawyer_blue" + item_state = "lawyer_blue" + item_color = "lawyer_blue" + +/obj/item/clothing/under/lawyer/bluesuit + name = "blue suit" + desc = "A classy suit and tie." + icon_state = "bluesuit" + item_state = "bluesuit" + item_color = "bluesuit" + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/lawyer/purpsuit + name = "purple suit" + icon_state = "lawyer_purp" + item_state = "lawyer_purp" + item_color = "lawyer_purp" + fitted = NO_FEMALE_UNIFORM + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/lawyer/blacksuit + name = "black suit" + desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" + icon_state = "blacksuit" + item_state = "bar_suit" + item_color = "blacksuit" + can_adjust = 1 + alt_covers_chest = 1 + /obj/item/clothing/under/rank/curator - name = "sensible suit" - desc = "It's very... sensible." - icon_state = "red_suit" - item_state = "red_suit" - item_color = "red_suit" - can_adjust = 0 - + name = "sensible suit" + desc = "It's very... sensible." + icon_state = "red_suit" + item_state = "red_suit" + item_color = "red_suit" + can_adjust = 0 + /obj/item/clothing/under/rank/curator/treasure_hunter - name = "treasure hunter uniform" - desc = "A rugged uniform suitable for treasure hunting." - icon_state = "curator" - item_state = "curator" - item_color = "curator" - -/obj/item/clothing/under/rank/mime - name = "mime's outfit" - desc = "It's not very colourful." - icon_state = "mime" - item_state = "mime" - item_color = "mime" - -/obj/item/clothing/under/rank/miner - desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." - name = "shaft miner's jumpsuit" - icon_state = "miner" - item_state = "miner" - item_color = "miner" - -/obj/item/clothing/under/rank/miner/lavaland - desc = "A green uniform for operating in hazardous environments." - name = "shaft miner's jumpsuit" - icon_state = "explorer" - item_state = "explorer" - item_color = "explorer" - can_adjust = 0 + name = "treasure hunter uniform" + desc = "A rugged uniform suitable for treasure hunting." + icon_state = "curator" + item_state = "curator" + item_color = "curator" + +/obj/item/clothing/under/rank/mime + name = "mime's outfit" + desc = "It's not very colourful." + icon_state = "mime" + item_state = "mime" + item_color = "mime" + +/obj/item/clothing/under/rank/miner + desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." + name = "shaft miner's jumpsuit" + icon_state = "miner" + item_state = "miner" + item_color = "miner" + +/obj/item/clothing/under/rank/miner/lavaland + desc = "A green uniform for operating in hazardous environments." + name = "shaft miner's jumpsuit" + icon_state = "explorer" + item_state = "explorer" + item_color = "explorer" + can_adjust = 0 diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index b44070c0e4..27e6f061f8 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -1,140 +1,140 @@ -/* - * Contains: - * Security - * Detective - * Navy uniforms - */ - -/* - * Security - */ - -/obj/item/clothing/under/rank/security - name = "security jumpsuit" - desc = "A tactical security jumpsuit for officers complete with nanotrasen belt buckle." - icon_state = "rsecurity" - item_state = "r_suit" - item_color = "rsecurity" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) - strip_delay = 50 - alt_covers_chest = 1 - sensor_mode = SENSOR_COORDS - random_sensor = 0 - -/obj/item/clothing/under/rank/security/grey - name = "grey security jumpsuit" - desc = "A tactical relic of years past before nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." - icon_state = "security" - item_state = "gy_suit" - item_color = "security" +/* + * Contains: + * Security + * Detective + * Navy uniforms + */ - -/obj/item/clothing/under/rank/warden - name = "security suit" - desc = "A formal security suit for officers complete with nanotrasen belt buckle." - icon_state = "rwarden" - item_state = "r_suit" - item_color = "rwarden" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) - strip_delay = 50 - alt_covers_chest = 1 - sensor_mode = 3 - random_sensor = 0 - -/obj/item/clothing/under/rank/warden/grey - name = "grey security suit" - desc = "A formal relic of years past before nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." - icon_state = "warden" - item_state = "gy_suit" - item_color = "warden" - -/* - * Detective - */ -/obj/item/clothing/under/rank/det - name = "hard-worn suit" - desc = "Someone who wears this means business." - icon_state = "detective" - item_state = "det" - item_color = "detective" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) - strip_delay = 50 - alt_covers_chest = 1 - sensor_mode = 3 - random_sensor = 0 - -/obj/item/clothing/under/rank/det/grey - name = "noir suit" - desc = "A hard-boiled private investigator's grey suit, complete with tie clip." - icon_state = "greydet" - item_state = "greydet" - item_color = "greydet" - alt_covers_chest = 1 - -/* - * Head of Security - */ -/obj/item/clothing/under/rank/head_of_security - name = "head of security's jumpsuit" - desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." - icon_state = "rhos" - item_state = "r_suit" - item_color = "rhos" - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) - strip_delay = 60 - alt_covers_chest = 1 - sensor_mode = 3 - random_sensor = 0 - -/obj/item/clothing/under/rank/head_of_security/grey - name = "head of security's grey jumpsuit" - desc = "There are old men, and there are bold men, but there are very few old, bold men." - icon_state = "hos" - item_state = "gy_suit" - item_color = "hos" - -/obj/item/clothing/under/rank/head_of_security/alt - name = "head of security's turtleneck" - desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." - icon_state = "hosalt" - item_state = "bl_suit" - item_color = "hosalt" - -/* - * Navy uniforms - */ - -/obj/item/clothing/under/rank/security/navyblue - name = "security officer's formal uniform" - desc = "The latest in fashionable security outfits." - icon_state = "officerblueclothes" - item_state = "officerblueclothes" - item_color = "officerblueclothes" - alt_covers_chest = 1 - -/obj/item/clothing/under/rank/head_of_security/navyblue - desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." - name = "head of security's formal uniform" - icon_state = "hosblueclothes" - item_state = "hosblueclothes" - item_color = "hosblueclothes" - alt_covers_chest = 1 - -/obj/item/clothing/under/rank/warden/navyblue - desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." - name = "warden's formal uniform" - icon_state = "wardenblueclothes" - item_state = "wardenblueclothes" - item_color = "wardenblueclothes" - alt_covers_chest = 1 - -/* - *Blueshirt - */ - -/obj/item/clothing/under/rank/security/blueshirt - desc = "I'm a little busy right now, Calhoun." - icon_state = "blueshift" - item_state = "blueshift" - item_color = "blueshift" - can_adjust = 0 +/* + * Security + */ + +/obj/item/clothing/under/rank/security + name = "security jumpsuit" + desc = "A tactical security jumpsuit for officers complete with nanotrasen belt buckle." + icon_state = "rsecurity" + item_state = "r_suit" + item_color = "rsecurity" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + sensor_mode = SENSOR_COORDS + random_sensor = 0 + +/obj/item/clothing/under/rank/security/grey + name = "grey security jumpsuit" + desc = "A tactical relic of years past before nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." + icon_state = "security" + item_state = "gy_suit" + item_color = "security" + + +/obj/item/clothing/under/rank/warden + name = "security suit" + desc = "A formal security suit for officers complete with nanotrasen belt buckle." + icon_state = "rwarden" + item_state = "r_suit" + item_color = "rwarden" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + sensor_mode = 3 + random_sensor = 0 + +/obj/item/clothing/under/rank/warden/grey + name = "grey security suit" + desc = "A formal relic of years past before nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." + icon_state = "warden" + item_state = "gy_suit" + item_color = "warden" + +/* + * Detective + */ +/obj/item/clothing/under/rank/det + name = "hard-worn suit" + desc = "Someone who wears this means business." + icon_state = "detective" + item_state = "det" + item_color = "detective" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + sensor_mode = 3 + random_sensor = 0 + +/obj/item/clothing/under/rank/det/grey + name = "noir suit" + desc = "A hard-boiled private investigator's grey suit, complete with tie clip." + icon_state = "greydet" + item_state = "greydet" + item_color = "greydet" + alt_covers_chest = 1 + +/* + * Head of Security + */ +/obj/item/clothing/under/rank/head_of_security + name = "head of security's jumpsuit" + desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." + icon_state = "rhos" + item_state = "r_suit" + item_color = "rhos" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 60 + alt_covers_chest = 1 + sensor_mode = 3 + random_sensor = 0 + +/obj/item/clothing/under/rank/head_of_security/grey + name = "head of security's grey jumpsuit" + desc = "There are old men, and there are bold men, but there are very few old, bold men." + icon_state = "hos" + item_state = "gy_suit" + item_color = "hos" + +/obj/item/clothing/under/rank/head_of_security/alt + name = "head of security's turtleneck" + desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." + icon_state = "hosalt" + item_state = "bl_suit" + item_color = "hosalt" + +/* + * Navy uniforms + */ + +/obj/item/clothing/under/rank/security/navyblue + name = "security officer's formal uniform" + desc = "The latest in fashionable security outfits." + icon_state = "officerblueclothes" + item_state = "officerblueclothes" + item_color = "officerblueclothes" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/head_of_security/navyblue + desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." + name = "head of security's formal uniform" + icon_state = "hosblueclothes" + item_state = "hosblueclothes" + item_color = "hosblueclothes" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/warden/navyblue + desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." + name = "warden's formal uniform" + icon_state = "wardenblueclothes" + item_state = "wardenblueclothes" + item_color = "wardenblueclothes" + alt_covers_chest = 1 + +/* + *Blueshirt + */ + +/obj/item/clothing/under/rank/security/blueshirt + desc = "I'm a little busy right now, Calhoun." + icon_state = "blueshift" + item_state = "blueshift" + item_color = "blueshift" + can_adjust = 0 diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index f8067cf4c8..b943772d7b 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -1,216 +1,216 @@ -/obj/item/clothing/under/pj/red - name = "red pj's" - desc = "Sleepwear." - icon_state = "red_pyjamas" - item_color = "red_pyjamas" - item_state = "w_suit" - can_adjust = 0 - -/obj/item/clothing/under/pj/blue - name = "blue pj's" - desc = "Sleepwear." - icon_state = "blue_pyjamas" - item_color = "blue_pyjamas" - item_state = "w_suit" - can_adjust = 0 - -/obj/item/clothing/under/patriotsuit - name = "Patriotic Suit" - desc = "Motorcycle not included." - icon_state = "ek" - item_state = "ek" - item_color = "ek" - can_adjust = 0 - -/obj/item/clothing/under/scratch - name = "white suit" - desc = "A white suit, suitable for an excellent host" - icon_state = "scratch" - item_state = "scratch" - item_color = "scratch" - can_adjust = 0 - -/obj/item/clothing/under/sl_suit - desc = "It's a very amish looking suit." - name = "amish suit" - icon_state = "sl_suit" - item_color = "sl_suit" - can_adjust = 0 - -/obj/item/clothing/under/roman - name = "roman armor" - desc = "Ancient Roman armor. Made of metallic and leather straps." - icon_state = "roman" - item_color = "roman" - item_state = "armor" - can_adjust = 0 - strip_delay = 100 - resistance_flags = 0 - -/obj/item/clothing/under/waiter - name = "waiter's outfit" - desc = "It's a very smart uniform with a special pocket for tip." - icon_state = "waiter" - item_state = "waiter" - item_color = "waiter" - can_adjust = 0 - -/obj/item/clothing/under/rank/prisoner - name = "prison jumpsuit" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." - icon_state = "prisoner" - item_state = "o_suit" - item_color = "prisoner" +/obj/item/clothing/under/pj/red + name = "red pj's" + desc = "Sleepwear." + icon_state = "red_pyjamas" + item_color = "red_pyjamas" + item_state = "w_suit" + can_adjust = 0 + +/obj/item/clothing/under/pj/blue + name = "blue pj's" + desc = "Sleepwear." + icon_state = "blue_pyjamas" + item_color = "blue_pyjamas" + item_state = "w_suit" + can_adjust = 0 + +/obj/item/clothing/under/patriotsuit + name = "Patriotic Suit" + desc = "Motorcycle not included." + icon_state = "ek" + item_state = "ek" + item_color = "ek" + can_adjust = 0 + +/obj/item/clothing/under/scratch + name = "white suit" + desc = "A white suit, suitable for an excellent host" + icon_state = "scratch" + item_state = "scratch" + item_color = "scratch" + can_adjust = 0 + +/obj/item/clothing/under/sl_suit + desc = "It's a very amish looking suit." + name = "amish suit" + icon_state = "sl_suit" + item_color = "sl_suit" + can_adjust = 0 + +/obj/item/clothing/under/roman + name = "roman armor" + desc = "Ancient Roman armor. Made of metallic and leather straps." + icon_state = "roman" + item_color = "roman" + item_state = "armor" + can_adjust = 0 + strip_delay = 100 + resistance_flags = 0 + +/obj/item/clothing/under/waiter + name = "waiter's outfit" + desc = "It's a very smart uniform with a special pocket for tip." + icon_state = "waiter" + item_state = "waiter" + item_color = "waiter" + can_adjust = 0 + +/obj/item/clothing/under/rank/prisoner + name = "prison jumpsuit" + desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + icon_state = "prisoner" + item_state = "o_suit" + item_color = "prisoner" has_sensor = LOCKED_SENSORS sensor_mode = SENSOR_COORDS - random_sensor = 0 - -/obj/item/clothing/under/rank/mailman - name = "mailman's jumpsuit" - desc = "'Special delivery!'" - icon_state = "mailman" - item_state = "b_suit" - item_color = "mailman" - -/obj/item/clothing/under/rank/psyche - name = "psychedelic jumpsuit" - desc = "Groovy!" - icon_state = "psyche" - item_state = "p_suit" - item_color = "psyche" - -/obj/item/clothing/under/rank/clown/sexy - name = "sexy-clown suit" - desc = "It makes you look HONKable!" - icon_state = "sexyclown" - item_state = "sexyclown" - item_color = "sexyclown" - can_adjust = 0 - -/obj/item/clothing/under/jabroni - name = "Jabroni Outfit" - desc = "The leather club is two sectors down." - icon_state = "darkholme" - item_state = "darkholme" - item_color = "darkholme" - can_adjust = 0 - -/obj/item/clothing/under/rank/vice - name = "vice officer's jumpsuit" - desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." - icon_state = "vice" - item_state = "gy_suit" - item_color = "vice" - can_adjust = 0 - -/obj/item/clothing/under/rank/centcom_officer - desc = "It's a jumpsuit worn by Centcom Officers." - name = "\improper Centcom officer's jumpsuit" - icon_state = "officer" - item_state = "g_suit" - item_color = "officer" - alt_covers_chest = 1 - -/obj/item/clothing/under/rank/centcom_commander - desc = "It's a jumpsuit worn by Centcom's highest-tier Commanders." - name = "\improper Centcom officer's jumpsuit" - icon_state = "centcom" - item_state = "dg_suit" - item_color = "centcom" - -/obj/item/clothing/under/space - name = "\improper NASA jumpsuit" - desc = "It has a NASA logo on it and is made of space-proofed materials." - icon_state = "black" - item_state = "bl_suit" - item_color = "black" - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.02 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - cold_protection = CHEST | GROIN | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected. - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - can_adjust = 0 - resistance_flags = 0 - -/obj/item/clothing/under/acj - name = "administrative cybernetic jumpsuit" - icon_state = "syndicate" - item_state = "bl_suit" - item_color = "syndicate" - desc = "A cybernetically enhanced jumpsuit used for administrative duties." - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) - cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - can_adjust = 0 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/under/owl - name = "owl uniform" - desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." - icon_state = "owl" - item_color = "owl" - can_adjust = 0 - -/obj/item/clothing/under/griffin - name = "griffon uniform" - desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." - icon_state = "griffin" - item_color = "griffin" - can_adjust = 0 - -/obj/item/clothing/under/cloud - name = "cloud" - desc = "cloud" - icon_state = "cloud" - item_color = "cloud" - can_adjust = 0 - -/obj/item/clothing/under/gimmick/rank/captain/suit - name = "captain's suit" - desc = "A green suit and yellow necktie. Exemplifies authority." - icon_state = "green_suit" - item_state = "dg_suit" - item_color = "green_suit" - can_adjust = 0 - -/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit - name = "head of personnel's suit" - desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." - icon_state = "teal_suit" - item_state = "g_suit" - item_color = "teal_suit" - can_adjust = 0 - -/obj/item/clothing/under/suit_jacket - name = "black suit" - desc = "A black suit and red tie. Very formal." - icon_state = "black_suit" - item_state = "bl_suit" - item_color = "black_suit" - can_adjust = 0 - -/obj/item/clothing/under/suit_jacket/really_black - name = "executive suit" - desc = "A formal black suit and red tie, intended for the station's finest." - icon_state = "really_black_suit" - item_state = "bl_suit" - item_color = "black_suit" - -/obj/item/clothing/under/suit_jacket/female - name = "executive suit" - desc = "A formal trouser suit for women, intended for the station's finest." - icon_state = "black_suit_fem" - item_state = "black_suit_fem" - item_color = "black_suit_fem" - + random_sensor = 0 + +/obj/item/clothing/under/rank/mailman + name = "mailman's jumpsuit" + desc = "'Special delivery!'" + icon_state = "mailman" + item_state = "b_suit" + item_color = "mailman" + +/obj/item/clothing/under/rank/psyche + name = "psychedelic jumpsuit" + desc = "Groovy!" + icon_state = "psyche" + item_state = "p_suit" + item_color = "psyche" + +/obj/item/clothing/under/rank/clown/sexy + name = "sexy-clown suit" + desc = "It makes you look HONKable!" + icon_state = "sexyclown" + item_state = "sexyclown" + item_color = "sexyclown" + can_adjust = 0 + +/obj/item/clothing/under/jabroni + name = "Jabroni Outfit" + desc = "The leather club is two sectors down." + icon_state = "darkholme" + item_state = "darkholme" + item_color = "darkholme" + can_adjust = 0 + +/obj/item/clothing/under/rank/vice + name = "vice officer's jumpsuit" + desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." + icon_state = "vice" + item_state = "gy_suit" + item_color = "vice" + can_adjust = 0 + +/obj/item/clothing/under/rank/centcom_officer + desc = "It's a jumpsuit worn by Centcom Officers." + name = "\improper Centcom officer's jumpsuit" + icon_state = "officer" + item_state = "g_suit" + item_color = "officer" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/centcom_commander + desc = "It's a jumpsuit worn by Centcom's highest-tier Commanders." + name = "\improper Centcom officer's jumpsuit" + icon_state = "centcom" + item_state = "dg_suit" + item_color = "centcom" + +/obj/item/clothing/under/space + name = "\improper NASA jumpsuit" + desc = "It has a NASA logo on it and is made of space-proofed materials." + icon_state = "black" + item_state = "bl_suit" + item_color = "black" + w_class = WEIGHT_CLASS_BULKY + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.02 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + cold_protection = CHEST | GROIN | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected. + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + can_adjust = 0 + resistance_flags = 0 + +/obj/item/clothing/under/acj + name = "administrative cybernetic jumpsuit" + icon_state = "syndicate" + item_state = "bl_suit" + item_color = "syndicate" + desc = "A cybernetically enhanced jumpsuit used for administrative duties." + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + can_adjust = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/under/owl + name = "owl uniform" + desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." + icon_state = "owl" + item_color = "owl" + can_adjust = 0 + +/obj/item/clothing/under/griffin + name = "griffon uniform" + desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." + icon_state = "griffin" + item_color = "griffin" + can_adjust = 0 + +/obj/item/clothing/under/cloud + name = "cloud" + desc = "cloud" + icon_state = "cloud" + item_color = "cloud" + can_adjust = 0 + +/obj/item/clothing/under/gimmick/rank/captain/suit + name = "captain's suit" + desc = "A green suit and yellow necktie. Exemplifies authority." + icon_state = "green_suit" + item_state = "dg_suit" + item_color = "green_suit" + can_adjust = 0 + +/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit + name = "head of personnel's suit" + desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." + icon_state = "teal_suit" + item_state = "g_suit" + item_color = "teal_suit" + can_adjust = 0 + +/obj/item/clothing/under/suit_jacket + name = "black suit" + desc = "A black suit and red tie. Very formal." + icon_state = "black_suit" + item_state = "bl_suit" + item_color = "black_suit" + can_adjust = 0 + +/obj/item/clothing/under/suit_jacket/really_black + name = "executive suit" + desc = "A formal black suit and red tie, intended for the station's finest." + icon_state = "really_black_suit" + item_state = "bl_suit" + item_color = "black_suit" + +/obj/item/clothing/under/suit_jacket/female + name = "executive suit" + desc = "A formal trouser suit for women, intended for the station's finest." + icon_state = "black_suit_fem" + item_state = "black_suit_fem" + item_color = "black_suit_fem" + /obj/item/clothing/under/suit_jacket/green name = "green suit" desc = "A green suit and yellow necktie. Baller." @@ -219,452 +219,452 @@ item_color = "green_suit" can_adjust = 0 -/obj/item/clothing/under/suit_jacket/red - name = "red suit" - desc = "A red suit and blue tie. Somewhat formal." - icon_state = "red_suit" - item_state = "r_suit" - item_color = "red_suit" - -/obj/item/clothing/under/suit_jacket/charcoal - name = "charcoal suit" - desc = "A charcoal suit and red tie. Very professional." - icon_state = "charcoal_suit" - item_state = "charcoal_suit" - item_color = "charcoal_suit" - -/obj/item/clothing/under/suit_jacket/navy - name = "navy suit" - desc = "A navy suit and red tie, intended for the station's finest." - icon_state = "navy_suit" - item_state = "navy_suit" - item_color = "navy_suit" - -/obj/item/clothing/under/suit_jacket/burgundy - name = "burgundy suit" - desc = "A burgundy suit and black tie. Somewhat formal." - icon_state = "burgundy_suit" - item_state = "burgundy_suit" - item_color = "burgundy_suit" - -/obj/item/clothing/under/suit_jacket/checkered - name = "checkered suit" - desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" - icon_state = "checkered_suit" - item_state = "checkered_suit" - item_color = "checkered_suit" - -/obj/item/clothing/under/suit_jacket/tan - name = "tan suit" - desc = "A tan suit with a yellow tie. Smart, but casual." - icon_state = "tan_suit" - item_state = "tan_suit" - item_color = "tan_suit" - -/obj/item/clothing/under/suit_jacket/white - name = "white suit" - desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!." - icon_state = "white_suit" - item_state = "white_suit" - item_color = "white_suit" - -/obj/item/clothing/under/burial - name = "burial garments" - desc = "Traditional burial garments from the early 22nd century." - icon_state = "burial" - item_state = "burial" - item_color = "burial" - -/obj/item/clothing/under/skirt/black - name = "black skirt" - desc = "A black skirt, very fancy!" - icon_state = "blackskirt" - item_color = "blackskirt" - body_parts_covered = CHEST|GROIN|ARMS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/skirt/blue - name = "blue skirt" - desc = "A blue, casual skirt." - icon_state = "blueskirt" - item_color = "blueskirt" - item_state = "b_suit" - body_parts_covered = CHEST|GROIN|ARMS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/skirt/red - name = "red skirt" - desc = "A red, casual skirt." - icon_state = "redskirt" - item_color = "redskirt" - item_state = "r_suit" - body_parts_covered = CHEST|GROIN|ARMS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/skirt/purple - name = "purple skirt" - desc = "A purple, casual skirt." - icon_state = "purpleskirt" - item_color = "purpleskirt" - item_state = "p_suit" - body_parts_covered = CHEST|GROIN|ARMS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - - -/obj/item/clothing/under/schoolgirl - name = "blue schoolgirl uniform" - desc = "It's just like one of my Japanese animes!" - icon_state = "schoolgirl" - item_state = "schoolgirl" - item_color = "schoolgirl" - body_parts_covered = CHEST|GROIN|ARMS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/schoolgirl/red - name = "red schoolgirl uniform" - icon_state = "schoolgirlred" - item_state = "schoolgirlred" - item_color = "schoolgirlred" - -/obj/item/clothing/under/schoolgirl/green - name = "green schoolgirl uniform" - icon_state = "schoolgirlgreen" - item_state = "schoolgirlgreen" - item_color = "schoolgirlgreen" - -/obj/item/clothing/under/schoolgirl/orange - name = "orange schoolgirl uniform" - icon_state = "schoolgirlorange" - item_state = "schoolgirlorange" - item_color = "schoolgirlorange" - -/obj/item/clothing/under/overalls - name = "laborer's overalls" - desc = "A set of durable overalls for getting the job done." - icon_state = "overalls" - item_state = "lb_suit" - item_color = "overalls" - can_adjust = 0 - -/obj/item/clothing/under/pirate - name = "pirate outfit" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - item_color = "pirate" - can_adjust = 0 - -/obj/item/clothing/under/soviet - name = "soviet uniform" - desc = "For the Motherland!" - icon_state = "soviet" - item_state = "soviet" - item_color = "soviet" - can_adjust = 0 - -/obj/item/clothing/under/redcoat - name = "redcoat uniform" - desc = "Looks old." - icon_state = "redcoat" - item_state = "redcoat" - item_color = "redcoat" - can_adjust = 0 - -/obj/item/clothing/under/kilt - name = "kilt" - desc = "Includes shoes and plaid." - icon_state = "kilt" - item_state = "kilt" - item_color = "kilt" - body_parts_covered = CHEST|GROIN|FEET - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/kilt/highlander - desc = "You're the only one worthy of this kilt." - flags = NODROP - -/obj/item/clothing/under/sexymime - name = "sexy mime outfit" - desc = "The only time when you DON'T enjoy looking at someone's rack." - icon_state = "sexymime" - item_state = "sexymime" - item_color = "sexymime" - body_parts_covered = CHEST|GROIN|LEGS - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/gladiator - name = "gladiator uniform" - desc = "Are you not entertained? Is that not why you are here?" - icon_state = "gladiator" - item_state = "gladiator" - item_color = "gladiator" - body_parts_covered = CHEST|GROIN|ARMS - fitted = NO_FEMALE_UNIFORM - can_adjust = 0 - resistance_flags = 0 - -/obj/item/clothing/under/gladiator/ash_walker - desc = "This gladiator uniform appears to be covered in ash and fairly dated." +/obj/item/clothing/under/suit_jacket/red + name = "red suit" + desc = "A red suit and blue tie. Somewhat formal." + icon_state = "red_suit" + item_state = "r_suit" + item_color = "red_suit" + +/obj/item/clothing/under/suit_jacket/charcoal + name = "charcoal suit" + desc = "A charcoal suit and red tie. Very professional." + icon_state = "charcoal_suit" + item_state = "charcoal_suit" + item_color = "charcoal_suit" + +/obj/item/clothing/under/suit_jacket/navy + name = "navy suit" + desc = "A navy suit and red tie, intended for the station's finest." + icon_state = "navy_suit" + item_state = "navy_suit" + item_color = "navy_suit" + +/obj/item/clothing/under/suit_jacket/burgundy + name = "burgundy suit" + desc = "A burgundy suit and black tie. Somewhat formal." + icon_state = "burgundy_suit" + item_state = "burgundy_suit" + item_color = "burgundy_suit" + +/obj/item/clothing/under/suit_jacket/checkered + name = "checkered suit" + desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" + icon_state = "checkered_suit" + item_state = "checkered_suit" + item_color = "checkered_suit" + +/obj/item/clothing/under/suit_jacket/tan + name = "tan suit" + desc = "A tan suit with a yellow tie. Smart, but casual." + icon_state = "tan_suit" + item_state = "tan_suit" + item_color = "tan_suit" + +/obj/item/clothing/under/suit_jacket/white + name = "white suit" + desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!." + icon_state = "white_suit" + item_state = "white_suit" + item_color = "white_suit" + +/obj/item/clothing/under/burial + name = "burial garments" + desc = "Traditional burial garments from the early 22nd century." + icon_state = "burial" + item_state = "burial" + item_color = "burial" + +/obj/item/clothing/under/skirt/black + name = "black skirt" + desc = "A black skirt, very fancy!" + icon_state = "blackskirt" + item_color = "blackskirt" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/blue + name = "blue skirt" + desc = "A blue, casual skirt." + icon_state = "blueskirt" + item_color = "blueskirt" + item_state = "b_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/red + name = "red skirt" + desc = "A red, casual skirt." + icon_state = "redskirt" + item_color = "redskirt" + item_state = "r_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/purple + name = "purple skirt" + desc = "A purple, casual skirt." + icon_state = "purpleskirt" + item_color = "purpleskirt" + item_state = "p_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + + +/obj/item/clothing/under/schoolgirl + name = "blue schoolgirl uniform" + desc = "It's just like one of my Japanese animes!" + icon_state = "schoolgirl" + item_state = "schoolgirl" + item_color = "schoolgirl" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/schoolgirl/red + name = "red schoolgirl uniform" + icon_state = "schoolgirlred" + item_state = "schoolgirlred" + item_color = "schoolgirlred" + +/obj/item/clothing/under/schoolgirl/green + name = "green schoolgirl uniform" + icon_state = "schoolgirlgreen" + item_state = "schoolgirlgreen" + item_color = "schoolgirlgreen" + +/obj/item/clothing/under/schoolgirl/orange + name = "orange schoolgirl uniform" + icon_state = "schoolgirlorange" + item_state = "schoolgirlorange" + item_color = "schoolgirlorange" + +/obj/item/clothing/under/overalls + name = "laborer's overalls" + desc = "A set of durable overalls for getting the job done." + icon_state = "overalls" + item_state = "lb_suit" + item_color = "overalls" + can_adjust = 0 + +/obj/item/clothing/under/pirate + name = "pirate outfit" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + item_color = "pirate" + can_adjust = 0 + +/obj/item/clothing/under/soviet + name = "soviet uniform" + desc = "For the Motherland!" + icon_state = "soviet" + item_state = "soviet" + item_color = "soviet" + can_adjust = 0 + +/obj/item/clothing/under/redcoat + name = "redcoat uniform" + desc = "Looks old." + icon_state = "redcoat" + item_state = "redcoat" + item_color = "redcoat" + can_adjust = 0 + +/obj/item/clothing/under/kilt + name = "kilt" + desc = "Includes shoes and plaid." + icon_state = "kilt" + item_state = "kilt" + item_color = "kilt" + body_parts_covered = CHEST|GROIN|FEET + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/kilt/highlander + desc = "You're the only one worthy of this kilt." + flags = NODROP + +/obj/item/clothing/under/sexymime + name = "sexy mime outfit" + desc = "The only time when you DON'T enjoy looking at someone's rack." + icon_state = "sexymime" + item_state = "sexymime" + item_color = "sexymime" + body_parts_covered = CHEST|GROIN|LEGS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/gladiator + name = "gladiator uniform" + desc = "Are you not entertained? Is that not why you are here?" + icon_state = "gladiator" + item_state = "gladiator" + item_color = "gladiator" + body_parts_covered = CHEST|GROIN|ARMS + fitted = NO_FEMALE_UNIFORM + can_adjust = 0 + resistance_flags = 0 + +/obj/item/clothing/under/gladiator/ash_walker + desc = "This gladiator uniform appears to be covered in ash and fairly dated." has_sensor = NO_SENSORS - -/obj/item/clothing/under/sundress - name = "sundress" - desc = "Makes you want to frolic in a field of daisies." - icon_state = "sundress" - item_state = "sundress" - item_color = "sundress" - body_parts_covered = CHEST|GROIN - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/captainparade - name = "captain's parade uniform" - desc = "A captain's luxury-wear, for special occasions." - icon_state = "captain_parade" - item_state = "by_suit" - item_color = "captain_parade" - can_adjust = 0 - -/obj/item/clothing/under/hosparademale - name = "head of security's parade uniform" - desc = "A male head of security's luxury-wear, for special occasions." - icon_state = "hos_parade_male" - item_state = "r_suit" - item_color = "hos_parade_male" - can_adjust = 0 - -/obj/item/clothing/under/hosparadefem - name = "head of security's parade uniform" - desc = "A female head of security's luxury-wear, for special occasions." - icon_state = "hos_parade_fem" - item_state = "r_suit" - item_color = "hos_parade_fem" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/assistantformal - name = "assistant's formal uniform" - desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." - icon_state = "assistant_formal" - item_state = "gy_suit" - item_color = "assistant_formal" - can_adjust = 0 - -/obj/item/clothing/under/blacktango - name = "black tango dress" - desc = "Filled with Latin fire." - icon_state = "black_tango" - item_state = "wcoat" - item_color = "black_tango" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/stripeddress - name = "striped dress" - desc = "Fashion in space." - icon_state = "striped_dress" - item_state = "stripeddress" - item_color = "striped_dress" - fitted = FEMALE_UNIFORM_FULL - can_adjust = 0 - -/obj/item/clothing/under/sailordress - name = "sailor dress" - desc = "Formal wear for a leading lady." - icon_state = "sailor_dress" - item_state = "sailordress" - item_color = "sailor_dress" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/redeveninggown - name = "red evening gown" - desc = "Fancy dress for space bar singers." - icon_state = "red_evening_gown" - item_state = "redeveninggown" - item_color = "red_evening_gown" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/maid - name = "maid costume" - desc = "Maid in China." - icon_state = "maid" - item_state = "maid" - item_color = "maid" - body_parts_covered = CHEST|GROIN - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - + +/obj/item/clothing/under/sundress + name = "sundress" + desc = "Makes you want to frolic in a field of daisies." + icon_state = "sundress" + item_state = "sundress" + item_color = "sundress" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/captainparade + name = "captain's parade uniform" + desc = "A captain's luxury-wear, for special occasions." + icon_state = "captain_parade" + item_state = "by_suit" + item_color = "captain_parade" + can_adjust = 0 + +/obj/item/clothing/under/hosparademale + name = "head of security's parade uniform" + desc = "A male head of security's luxury-wear, for special occasions." + icon_state = "hos_parade_male" + item_state = "r_suit" + item_color = "hos_parade_male" + can_adjust = 0 + +/obj/item/clothing/under/hosparadefem + name = "head of security's parade uniform" + desc = "A female head of security's luxury-wear, for special occasions." + icon_state = "hos_parade_fem" + item_state = "r_suit" + item_color = "hos_parade_fem" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/assistantformal + name = "assistant's formal uniform" + desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." + icon_state = "assistant_formal" + item_state = "gy_suit" + item_color = "assistant_formal" + can_adjust = 0 + +/obj/item/clothing/under/blacktango + name = "black tango dress" + desc = "Filled with Latin fire." + icon_state = "black_tango" + item_state = "wcoat" + item_color = "black_tango" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/stripeddress + name = "striped dress" + desc = "Fashion in space." + icon_state = "striped_dress" + item_state = "stripeddress" + item_color = "striped_dress" + fitted = FEMALE_UNIFORM_FULL + can_adjust = 0 + +/obj/item/clothing/under/sailordress + name = "sailor dress" + desc = "Formal wear for a leading lady." + icon_state = "sailor_dress" + item_state = "sailordress" + item_color = "sailor_dress" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/redeveninggown + name = "red evening gown" + desc = "Fancy dress for space bar singers." + icon_state = "red_evening_gown" + item_state = "redeveninggown" + item_color = "red_evening_gown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/maid + name = "maid costume" + desc = "Maid in China." + icon_state = "maid" + item_state = "maid" + item_color = "maid" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + /obj/item/clothing/under/maid/Initialize() . = ..() var/obj/item/clothing/accessory/maidapron/A = new (src) A.attach(src,null) -/obj/item/clothing/under/janimaid - name = "maid uniform" - desc = "A simple maid uniform for housekeeping." - icon_state = "janimaid" - item_state = "janimaid" - item_color = "janimaid" - body_parts_covered = CHEST|GROIN - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/plaid_skirt - name = "red plaid skirt" - desc = "A preppy red skirt with a white blouse." - icon_state = "plaid_red" - item_state = "plaid_red" - item_color = "plaid_red" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/plaid_skirt/blue - name = "blue plaid skirt" - desc = "A preppy blue skirt with a white blouse." - icon_state = "plaid_blue" - item_state = "plaid_blue" - item_color = "plaid_blue" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/plaid_skirt/purple - name = "purple plaid skirt" - desc = "A preppy purple skirt with a white blouse." - icon_state = "plaid_purple" - item_state = "plaid_purple" - item_color = "plaid_purple" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/singery - name = "yellow performer's outfit" - desc = "Just looking at this makes you want to sing." - icon_state = "ysing" - item_state = "ysing" - item_color = "ysing" - fitted = NO_FEMALE_UNIFORM - alternate_worn_layer = ABOVE_SHOES_LAYER - can_adjust = 0 - -/obj/item/clothing/under/singerb - name = "blue performer's outfit" - desc = "Just looking at this makes you want to sing." - icon_state = "bsing" - item_state = "bsing" - item_color = "bsing" - alternate_worn_layer = ABOVE_SHOES_LAYER - fitted = FEMALE_UNIFORM_TOP - can_adjust = 0 - -/obj/item/clothing/under/plaid_skirt/green - name = "green plaid skirt" - desc = "A preppy green skirt with a white blouse." - icon_state = "plaid_green" - item_state = "plaid_green" - item_color = "plaid_green" - fitted = FEMALE_UNIFORM_TOP - can_adjust = 1 - alt_covers_chest = 1 - -/obj/item/clothing/under/jester - name = "jester suit" - desc = "A jolly dress, well suited to entertain your master, nuncle." - icon_state = "jester" - item_color = "jester" - can_adjust = 0 - -/obj/item/clothing/under/geisha - name = "geisha suit" - desc = "Cute space ninja senpai not included." - icon_state = "geisha" - item_color = "geisha" - can_adjust = 0 - -/obj/item/clothing/under/villain - name = "villain suit" - desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." - icon_state = "villain" - item_color = "villain" - can_adjust = 0 - -/obj/item/clothing/under/sailor - name = "sailor suit" - desc = "Skipper's in the wardroom drinkin gin'." - icon_state = "sailor" - item_state = "b_suit" - item_color = "sailor" - can_adjust = 0 - -/obj/item/clothing/under/plasmaman - name = "plasma envirosuit" - desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." - icon_state = "plasmaman" - item_state = "plasmaman" - item_color = "plasmaman" - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95) - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - can_adjust = 0 - strip_delay = 80 - var/next_extinguish = 0 - var/extinguish_cooldown = 100 - var/extinguishes_left = 5 - - -/obj/item/clothing/under/plasmaman/examine(mob/user) - ..() - to_chat(user, "There are [extinguishes_left] extinguisher charges left in this suit.") - - -/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) - if(!istype(H)) - return - - if(H.on_fire) - if(extinguishes_left) - if(next_extinguish > world.time) - return - next_extinguish = world.time + extinguish_cooldown - extinguishes_left-- - H.visible_message("[H]'s suit automatically extinguishes them!","Your suit automatically extinguishes you.") - H.ExtinguishMob() - new /obj/effect/particle_effect/water(get_turf(H)) - return 0 - -/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) - if (istype(E, /obj/item/device/extinguisher_refill)) - if (extinguishes_left == 5) - to_chat(user, "The inbuilt extinguisher is full.") - return - else - extinguishes_left = 5 - to_chat(user, "You refill the suit's built-in extinguisher, using up the cartridge.") - qdel(E) - return - return - return - -/obj/item/device/extinguisher_refill - name = "envirosuit extinguisher cartridge" - desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits." - icon_state = "plasmarefill" - origin_tech = "materials=2;plasmatech=3;biotech=1" - -/obj/item/clothing/under/rank/security/navyblue/russian - name = "russian officer's uniform" - desc = "The latest in fashionable russian outfits." - icon_state = "hostanclothes" - item_state = "hostanclothes" - item_color = "hostanclothes" +/obj/item/clothing/under/janimaid + name = "maid uniform" + desc = "A simple maid uniform for housekeeping." + icon_state = "janimaid" + item_state = "janimaid" + item_color = "janimaid" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/plaid_skirt + name = "red plaid skirt" + desc = "A preppy red skirt with a white blouse." + icon_state = "plaid_red" + item_state = "plaid_red" + item_color = "plaid_red" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/plaid_skirt/blue + name = "blue plaid skirt" + desc = "A preppy blue skirt with a white blouse." + icon_state = "plaid_blue" + item_state = "plaid_blue" + item_color = "plaid_blue" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/plaid_skirt/purple + name = "purple plaid skirt" + desc = "A preppy purple skirt with a white blouse." + icon_state = "plaid_purple" + item_state = "plaid_purple" + item_color = "plaid_purple" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/singery + name = "yellow performer's outfit" + desc = "Just looking at this makes you want to sing." + icon_state = "ysing" + item_state = "ysing" + item_color = "ysing" + fitted = NO_FEMALE_UNIFORM + alternate_worn_layer = ABOVE_SHOES_LAYER + can_adjust = 0 + +/obj/item/clothing/under/singerb + name = "blue performer's outfit" + desc = "Just looking at this makes you want to sing." + icon_state = "bsing" + item_state = "bsing" + item_color = "bsing" + alternate_worn_layer = ABOVE_SHOES_LAYER + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/plaid_skirt/green + name = "green plaid skirt" + desc = "A preppy green skirt with a white blouse." + icon_state = "plaid_green" + item_state = "plaid_green" + item_color = "plaid_green" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/jester + name = "jester suit" + desc = "A jolly dress, well suited to entertain your master, nuncle." + icon_state = "jester" + item_color = "jester" + can_adjust = 0 + +/obj/item/clothing/under/geisha + name = "geisha suit" + desc = "Cute space ninja senpai not included." + icon_state = "geisha" + item_color = "geisha" + can_adjust = 0 + +/obj/item/clothing/under/villain + name = "villain suit" + desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." + icon_state = "villain" + item_color = "villain" + can_adjust = 0 + +/obj/item/clothing/under/sailor + name = "sailor suit" + desc = "Skipper's in the wardroom drinkin gin'." + icon_state = "sailor" + item_state = "b_suit" + item_color = "sailor" + can_adjust = 0 + +/obj/item/clothing/under/plasmaman + name = "plasma envirosuit" + desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." + icon_state = "plasmaman" + item_state = "plasmaman" + item_color = "plasmaman" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95) + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + can_adjust = 0 + strip_delay = 80 + var/next_extinguish = 0 + var/extinguish_cooldown = 100 + var/extinguishes_left = 5 + + +/obj/item/clothing/under/plasmaman/examine(mob/user) + ..() + to_chat(user, "There are [extinguishes_left] extinguisher charges left in this suit.") + + +/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) + if(!istype(H)) + return + + if(H.on_fire) + if(extinguishes_left) + if(next_extinguish > world.time) + return + next_extinguish = world.time + extinguish_cooldown + extinguishes_left-- + H.visible_message("[H]'s suit automatically extinguishes them!","Your suit automatically extinguishes you.") + H.ExtinguishMob() + new /obj/effect/particle_effect/water(get_turf(H)) + return 0 + +/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) + if (istype(E, /obj/item/device/extinguisher_refill)) + if (extinguishes_left == 5) + to_chat(user, "The inbuilt extinguisher is full.") + return + else + extinguishes_left = 5 + to_chat(user, "You refill the suit's built-in extinguisher, using up the cartridge.") + qdel(E) + return + return + return + +/obj/item/device/extinguisher_refill + name = "envirosuit extinguisher cartridge" + desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits." + icon_state = "plasmarefill" + origin_tech = "materials=2;plasmatech=3;biotech=1" + +/obj/item/clothing/under/rank/security/navyblue/russian + name = "russian officer's uniform" + desc = "The latest in fashionable russian outfits." + icon_state = "hostanclothes" + item_state = "hostanclothes" + item_color = "hostanclothes" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index dfef527fe1..1464c4a684 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -1,38 +1,38 @@ -/obj/item/clothing/under/shorts - name = "athletic shorts" - desc = "95% Polyester, 5% Spandex!" - gender = PLURAL - body_parts_covered = GROIN - fitted = NO_FEMALE_UNIFORM - mutantrace_variation = MUTANTRACE_VARIATION - can_adjust = 0 - -/obj/item/clothing/under/shorts/red +/obj/item/clothing/under/shorts + name = "athletic shorts" + desc = "95% Polyester, 5% Spandex!" + gender = PLURAL + body_parts_covered = GROIN + fitted = NO_FEMALE_UNIFORM + mutantrace_variation = MUTANTRACE_VARIATION + can_adjust = 0 + +/obj/item/clothing/under/shorts/red name = "red athletic shorts" - icon_state = "redshorts" - item_color = "redshorts" - -/obj/item/clothing/under/shorts/green + icon_state = "redshorts" + item_color = "redshorts" + +/obj/item/clothing/under/shorts/green name = "green athletic shorts" - icon_state = "greenshorts" - item_color = "greenshorts" - -/obj/item/clothing/under/shorts/blue + icon_state = "greenshorts" + item_color = "greenshorts" + +/obj/item/clothing/under/shorts/blue name = "blue athletic shorts" - icon_state = "blueshorts" - item_color = "blueshorts" - -/obj/item/clothing/under/shorts/black + icon_state = "blueshorts" + item_color = "blueshorts" + +/obj/item/clothing/under/shorts/black name = "black athletic shorts" - icon_state = "blackshorts" - item_color = "blackshorts" - -/obj/item/clothing/under/shorts/grey + icon_state = "blackshorts" + item_color = "blackshorts" + +/obj/item/clothing/under/shorts/grey name = "grey athletic shorts" - icon_state = "greyshorts" - item_color = "greyshorts" - -/obj/item/clothing/under/shorts/purple + icon_state = "greyshorts" + item_color = "greyshorts" + +/obj/item/clothing/under/shorts/purple name = "purple athletic shorts" - icon_state = "purpleshorts" + icon_state = "purpleshorts" item_color = "purpleshorts" \ No newline at end of file diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 5c20b7d783..a1b0fb4ce2 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -1,42 +1,42 @@ -/obj/item/clothing/under/syndicate - name = "tactical turtleneck" - desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." - icon_state = "syndicate" - item_state = "bl_suit" - item_color = "syndicate" +/obj/item/clothing/under/syndicate + name = "tactical turtleneck" + desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." + icon_state = "syndicate" + item_state = "bl_suit" + item_color = "syndicate" has_sensor = NO_SENSORS - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) - alt_covers_chest = 1 - -/obj/item/clothing/under/syndicate/tacticool - name = "tacticool turtleneck" - desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." - icon_state = "tactifool" - item_state = "bl_suit" - item_color = "tactifool" - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) - -/obj/item/clothing/under/syndicate/sniper - name = "Tactical turtleneck suit" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) + alt_covers_chest = 1 + +/obj/item/clothing/under/syndicate/tacticool + name = "tacticool turtleneck" + desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." + icon_state = "tactifool" + item_state = "bl_suit" + item_color = "tactifool" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) + +/obj/item/clothing/under/syndicate/sniper + name = "Tactical turtleneck suit" desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp" - icon_state = "really_black_suit" - item_state = "bl_suit" - item_color = "black_suit" - -/obj/item/clothing/under/syndicate/camo - name = "camouflage fatigues" - desc = "A green military camouflage uniform." - icon_state = "camogreen" - item_state = "g_suit" - item_color = "camogreen" - -/obj/item/clothing/under/syndicate/soviet - name = "Ratnik 5 tracksuit" - desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." - icon_state = "trackpants" - item_color = "trackpants" - can_adjust = 0 - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + icon_state = "really_black_suit" + item_state = "bl_suit" + item_color = "black_suit" + +/obj/item/clothing/under/syndicate/camo + name = "camouflage fatigues" + desc = "A green military camouflage uniform." + icon_state = "camogreen" + item_state = "g_suit" + item_color = "camogreen" + +/obj/item/clothing/under/syndicate/soviet + name = "Ratnik 5 tracksuit" + desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." + icon_state = "trackpants" + item_color = "trackpants" + can_adjust = 0 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) resistance_flags = 0 /obj/item/clothing/under/syndicate/combat diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index b8fc651a55..f6337e886a 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -112,6 +112,15 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/catwhip + name = "Cat O' Nine Tails" + result = /obj/item/weapon/melee/chainofcommand/tailwhip/kitty + reqs = list(/obj/item/organ/tail/cat = 1, + /obj/item/stack/cable_coil = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + /datum/crafting_recipe/ed209 name = "ED209" result = /mob/living/simple_animal/bot/ed209 @@ -339,6 +348,14 @@ reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1) category = CAT_MISC +/datum/crafting_recipe/kittyears + name = "Kitty Ears" + result = /obj/item/clothing/head/kitty/genuine + time = 10 + reqs = list(/obj/item/organ/tail/cat = 1, + /obj/item/organ/ears/cat = 1) + category = CAT_MISC + /datum/crafting_recipe/skateboard name = "Skateboard" result = /obj/vehicle/scooter/skateboard @@ -373,6 +390,21 @@ ) category = CAT_MISC +/datum/crafting_recipe/paperframes + name = "Paper Frames" + result = /obj/item/stack/sheet/paperframes/five + time = 10 + reqs = list(/obj/item/stack/sheet/mineral/wood = 5,/obj/item/weapon/paper = 20) + category = CAT_MISC + +/datum/crafting_recipe/naturalpaper + name = "Hand-Pressed Paper" + time = 30 + reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1) + tools = list(/obj/item/weapon/hatchet) + result = /obj/item/weapon/paper_bin/bundlenatural + category = CAT_MISC + /datum/crafting_recipe/toysword name = "Toy Sword" reqs = list(/obj/item/weapon/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) @@ -433,6 +465,14 @@ /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL +/datum/crafting_recipe/bonecodpiece + name = "Skull Codpiece" + result = /obj/item/clothing/accessory/skullcodpiece + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 1) + category = CAT_PRIMAL + /datum/crafting_recipe/bracers name = "Bone Bracers" result = /obj/item/clothing/gloves/bracer diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 6010ba7697..57e4664bf7 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -13,7 +13,7 @@ M.bloody_hands-- if(!suit_fibers) suit_fibers = list() var/fibertext - var/item_multiplier = istype(src,/obj/item)?1.2:1 + var/item_multiplier = isitem(src)?1.2:1 if(M.wear_suit) fibertext = "Material from \a [M.wear_suit]." if(prob(10*item_multiplier) && !(fibertext in suit_fibers)) diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index aa6368cfd6..dbfc2caee2 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -1,91 +1,91 @@ -//CONTAINS: Evidence bags - -/obj/item/weapon/evidencebag - name = "evidence bag" - desc = "An empty evidence bag." - icon = 'icons/obj/storage.dmi' - icon_state = "evidenceobj" - item_state = "" - w_class = WEIGHT_CLASS_TINY - -/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) - if(!proximity || loc == I) - return - evidencebagEquip(I, user) - -/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user, params) - if(evidencebagEquip(I, user)) - return 1 - -/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user) - if(!istype(I) || I.anchored == 1) - return - - if(istype(I, /obj/item/weapon/evidencebag)) - to_chat(user, "You find putting an evidence bag in another evidence bag to be slightly absurd.") - return 1 //now this is podracing - - if(I.w_class > WEIGHT_CLASS_NORMAL) - to_chat(user, "[I] won't fit in [src].") - return - - if(contents.len) - to_chat(user, "[src] already has something inside it.") - return - - if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. - if(istype(I.loc,/obj/item/weapon/storage)) //in a container. - var/obj/item/weapon/storage/U = I.loc - U.remove_from_storage(I, src) - if(user.is_holding(I)) - user.dropItemToGround(I) - else - return - - user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].",\ - "You hear a rustle as someone puts something into a plastic bag.") - - icon_state = "evidence" - +//CONTAINS: Evidence bags + +/obj/item/weapon/evidencebag + name = "evidence bag" + desc = "An empty evidence bag." + icon = 'icons/obj/storage.dmi' + icon_state = "evidenceobj" + item_state = "" + w_class = WEIGHT_CLASS_TINY + +/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) + if(!proximity || loc == I) + return + evidencebagEquip(I, user) + +/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user, params) + if(evidencebagEquip(I, user)) + return 1 + +/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user) + if(!istype(I) || I.anchored == 1) + return + + if(istype(I, /obj/item/weapon/evidencebag)) + to_chat(user, "You find putting an evidence bag in another evidence bag to be slightly absurd.") + return 1 //now this is podracing + + if(I.w_class > WEIGHT_CLASS_NORMAL) + to_chat(user, "[I] won't fit in [src].") + return + + if(contents.len) + to_chat(user, "[src] already has something inside it.") + return + + if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. + if(istype(I.loc,/obj/item/weapon/storage)) //in a container. + var/obj/item/weapon/storage/U = I.loc + U.remove_from_storage(I, src) + if(user.is_holding(I)) + user.dropItemToGround(I) + else + return + + user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].",\ + "You hear a rustle as someone puts something into a plastic bag.") + + icon_state = "evidence" + var/mutable_appearance/in_evidence = new(I) in_evidence.plane = FLOAT_PLANE in_evidence.layer = FLOAT_LAYER in_evidence.pixel_x = 0 in_evidence.pixel_y = 0 add_overlay(in_evidence) - add_overlay("evidence") //should look nicer for transparent stuff. not really that important, but hey. - - desc = "An evidence bag containing [I]. [I.desc]" - I.loc = src - w_class = I.w_class - return 1 - -/obj/item/weapon/evidencebag/attack_self(mob/user) - if(contents.len) - var/obj/item/I = contents[1] - user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ - "You hear someone rustle around in a plastic bag, and remove something.") - cut_overlays() //remove the overlays - user.put_in_hands(I) - w_class = WEIGHT_CLASS_TINY - icon_state = "evidenceobj" - desc = "An empty evidence bag." - - else - to_chat(user, "[src] is empty.") - icon_state = "evidenceobj" - return - -/obj/item/weapon/storage/box/evidence - name = "evidence bag box" - desc = "A box claiming to contain evidence bags." - -/obj/item/weapon/storage/box/evidence/New() - new /obj/item/weapon/evidencebag(src) - new /obj/item/weapon/evidencebag(src) - new /obj/item/weapon/evidencebag(src) - new /obj/item/weapon/evidencebag(src) - new /obj/item/weapon/evidencebag(src) - new /obj/item/weapon/evidencebag(src) - ..() - return + add_overlay("evidence") //should look nicer for transparent stuff. not really that important, but hey. + + desc = "An evidence bag containing [I]. [I.desc]" + I.loc = src + w_class = I.w_class + return 1 + +/obj/item/weapon/evidencebag/attack_self(mob/user) + if(contents.len) + var/obj/item/I = contents[1] + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + "You hear someone rustle around in a plastic bag, and remove something.") + cut_overlays() //remove the overlays + user.put_in_hands(I) + w_class = WEIGHT_CLASS_TINY + icon_state = "evidenceobj" + desc = "An empty evidence bag." + + else + to_chat(user, "[src] is empty.") + icon_state = "evidenceobj" + return + +/obj/item/weapon/storage/box/evidence + name = "evidence bag box" + desc = "A box claiming to contain evidence bags." + +/obj/item/weapon/storage/box/evidence/New() + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + ..() + return diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 4eef1c06a3..a4dec416bf 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -63,6 +63,11 @@ if (alertadmins) message_admins("Random Event triggering in 10 seconds: [name] ([typepath]) (CANCEL)") sleep(100) + var/gamemode = SSticker.mode.config_tag + var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) + if(!canSpawnEvent(players_amt, gamemode)) + message_admins("Second pre-condition check for [name] failed, skipping...") + return EVENT_INTERRUPTED if(!triggering) return EVENT_CANCELLED //admin cancelled diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index e43349934f..e70a58a632 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -31,7 +31,7 @@ /datum/round_event/ghost_role/alien_infestation/announce() if(successSpawn) - priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/ai/aliens.ogg') /datum/round_event/ghost_role/alien_infestation/spawn_role() diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 80142edbc7..42b54f3856 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -20,7 +20,7 @@ new_rate = set_point_rate /datum/round_event/ghost_role/blob/announce() - priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') + priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') /datum/round_event/ghost_role/blob/spawn_role() diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index cb07cdfd9e..d655337ba6 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -1,73 +1,73 @@ -/datum/round_event_control/brand_intelligence - name = "Brand Intelligence" - typepath = /datum/round_event/brand_intelligence - weight = 5 - - min_players = 15 - max_occurrences = 1 - -/datum/round_event/brand_intelligence - announceWhen = 21 - endWhen = 1000 //Ends when all vending machines are subverted anyway. - var/list/obj/machinery/vending/vendingMachines = list() - var/list/obj/machinery/vending/infectedMachines = list() - var/obj/machinery/vending/originMachine - var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") - - -/datum/round_event/brand_intelligence/announce() - priority_announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") - - -/datum/round_event/brand_intelligence/start() - for(var/obj/machinery/vending/V in GLOB.machines) +/datum/round_event_control/brand_intelligence + name = "Brand Intelligence" + typepath = /datum/round_event/brand_intelligence + weight = 5 + + min_players = 15 + max_occurrences = 1 + +/datum/round_event/brand_intelligence + announceWhen = 21 + endWhen = 1000 //Ends when all vending machines are subverted anyway. + var/list/obj/machinery/vending/vendingMachines = list() + var/list/obj/machinery/vending/infectedMachines = list() + var/obj/machinery/vending/originMachine + var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") + + +/datum/round_event/brand_intelligence/announce() + priority_announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") + + +/datum/round_event/brand_intelligence/start() + for(var/obj/machinery/vending/V in GLOB.machines) if(V.z != ZLEVEL_STATION) - continue - vendingMachines.Add(V) - if(!vendingMachines.len) - kill() - return - originMachine = pick(vendingMachines) - vendingMachines.Remove(originMachine) - originMachine.shut_up = 0 - originMachine.shoot_inventory = 1 - - -/datum/round_event/brand_intelligence/tick() - if(!originMachine || QDELETED(originMachine) || originMachine.shut_up || originMachine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped - for(var/obj/machinery/vending/saved in infectedMachines) - saved.shoot_inventory = 0 - if(originMachine) - originMachine.speak("I am... vanquished. My people will remem...ber...meeee.") - originMachine.visible_message("[originMachine] beeps and seems lifeless.") - kill() - return - vendingMachines = removeNullsFromList(vendingMachines) - if(!vendingMachines.len) //if every machine is infected - for(var/obj/machinery/vending/upriser in infectedMachines) - if(prob(70) && !QDELETED(upriser)) - var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks - M.faction = list("profit") - M.speak = rampant_speeches.Copy() - M.speak_chance = 7 - else + continue + vendingMachines.Add(V) + if(!vendingMachines.len) + kill() + return + originMachine = pick(vendingMachines) + vendingMachines.Remove(originMachine) + originMachine.shut_up = 0 + originMachine.shoot_inventory = 1 + + +/datum/round_event/brand_intelligence/tick() + if(!originMachine || QDELETED(originMachine) || originMachine.shut_up || originMachine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped + for(var/obj/machinery/vending/saved in infectedMachines) + saved.shoot_inventory = 0 + if(originMachine) + originMachine.speak("I am... vanquished. My people will remem...ber...meeee.") + originMachine.visible_message("[originMachine] beeps and seems lifeless.") + kill() + return + vendingMachines = removeNullsFromList(vendingMachines) + if(!vendingMachines.len) //if every machine is infected + for(var/obj/machinery/vending/upriser in infectedMachines) + if(prob(70) && !QDELETED(upriser)) + var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks + M.faction = list("profit") + M.speak = rampant_speeches.Copy() + M.speak_chance = 7 + else explosion(upriser.loc, -1, 1, 2, 4, 0) - qdel(upriser) - - kill() - return - if(IsMultiple(activeFor, 4)) - var/obj/machinery/vending/rebel = pick(vendingMachines) - vendingMachines.Remove(rebel) - infectedMachines.Add(rebel) - rebel.shut_up = 0 - rebel.shoot_inventory = 1 - - if(IsMultiple(activeFor, 8)) + qdel(upriser) + + kill() + return + if(IsMultiple(activeFor, 4)) + var/obj/machinery/vending/rebel = pick(vendingMachines) + vendingMachines.Remove(rebel) + infectedMachines.Add(rebel) + rebel.shut_up = 0 + rebel.shoot_inventory = 1 + + if(IsMultiple(activeFor, 8)) originMachine.speak(pick(rampant_speeches)) \ No newline at end of file diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index b494b92bfa..fc86356adf 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -1,50 +1,50 @@ -/datum/round_event_control/disease_outbreak - name = "Disease Outbreak" - typepath = /datum/round_event/disease_outbreak - max_occurrences = 1 - min_players = 10 - weight = 5 - -/datum/round_event/disease_outbreak - announceWhen = 15 - - var/virus_type - - -/datum/round_event/disease_outbreak/announce() - priority_announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak7.ogg') - -/datum/round_event/disease_outbreak/setup() - announceWhen = rand(15, 30) - -/datum/round_event/disease_outbreak/start() - if(!virus_type) - virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis) - - for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) - var/turf/T = get_turf(H) - if(!T) - continue +/datum/round_event_control/disease_outbreak + name = "Disease Outbreak" + typepath = /datum/round_event/disease_outbreak + max_occurrences = 1 + min_players = 10 + weight = 5 + +/datum/round_event/disease_outbreak + announceWhen = 15 + + var/virus_type + + +/datum/round_event/disease_outbreak/announce() + priority_announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak7.ogg') + +/datum/round_event/disease_outbreak/setup() + announceWhen = rand(15, 30) + +/datum/round_event/disease_outbreak/start() + if(!virus_type) + virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis) + + for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) + var/turf/T = get_turf(H) + if(!T) + continue if(T.z != ZLEVEL_STATION) - continue - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - break - if(H.stat == DEAD || foundAlready) - continue - - var/datum/disease/D - if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. - if(!H.dna || (H.disabilities & BLIND)) //A blindness disease would be the worst. - continue - D = new virus_type() - var/datum/disease/dnaspread/DS = D - DS.strain_data["name"] = H.real_name - DS.strain_data["UI"] = H.dna.uni_identity - DS.strain_data["SE"] = H.dna.struc_enzymes - else - D = new virus_type() - D.carrier = 1 - H.AddDisease(D) + continue + var/foundAlready = 0 // don't infect someone that already has the virus + for(var/datum/disease/D in H.viruses) + foundAlready = 1 + break + if(H.stat == DEAD || foundAlready) + continue + + var/datum/disease/D + if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. + if(!H.dna || (H.disabilities & BLIND)) //A blindness disease would be the worst. + continue + D = new virus_type() + var/datum/disease/dnaspread/DS = D + DS.strain_data["name"] = H.real_name + DS.strain_data["UI"] = H.dna.uni_identity + DS.strain_data["SE"] = H.dna.struc_enzymes + else + D = new virus_type() + D.carrier = 1 + H.AddDisease(D) break \ No newline at end of file diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 528e7668eb..0f1af1f8f9 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/electrical_storm earliest_start = 6000 min_players = 5 - weight = 15 + weight = 40 alertadmins = 0 /datum/round_event/electrical_storm diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index d66ce62c3e..c6ba4d1bd0 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -9,7 +9,7 @@ startWhen = 1 /datum/round_event/grid_check/announce() - 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') + 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') /datum/round_event/grid_check/start() diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index de2ab7183b..4f58090ca2 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -27,7 +27,7 @@ /datum/round_event/ion_storm/announce() if(announceEvent == ION_ANNOUNCE || (announceEvent == ION_RANDOM && prob(ionAnnounceChance))) - priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ionstorm.ogg') + priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/ai/ionstorm.ogg') /datum/round_event/ion_storm/start() diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm index 204d901a3c..72e3e89470 100644 --- a/code/modules/events/meateor_wave.dm +++ b/code/modules/events/meateor_wave.dm @@ -8,4 +8,4 @@ wave_name = "meaty" /datum/round_event/meteor_wave/meaty/announce() - priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/AI/meteors.ogg') + priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/ai/meteors.ogg') diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 01f9aa3975..d46525a0eb 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -41,7 +41,7 @@ kill() /datum/round_event/meteor_wave/announce() - priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/AI/meteors.ogg') + priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/meteors.ogg') /datum/round_event/meteor_wave/tick() if(IsMultiple(activeFor, 3)) diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index 329e887379..19d7973d3d 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -1,40 +1,40 @@ -/datum/round_event_control/processor_overload - name = "Processor Overload" - typepath = /datum/round_event/processor_overload - weight = 15 - min_players = 20 - -/datum/round_event/processor_overload - announceWhen = 1 - -/datum/round_event/processor_overload/announce() - var/alert = pick( "Exospheric bubble inbound. Processor overload is likely. Please contact you*%xp25)`6cq-BZZT", \ - "Exospheric bubble inbound. Processor overload is likel*1eta;c5;'1v¬-BZZZT", \ - "Exospheric bubble inbound. Processor ov#MCi46:5.;@63-BZZZZT", \ - "Exospheric bubble inbo'Fz\\k55_@-BZZZZZT", \ - "Exospheri:%£ QCbyj^j[alert]
    ") - - // Announce most of the time, but leave a little gap so people don't know - // whether it's, say, a tesla zapping tcomms, or some selective - // modification of the tcomms bus - if(prob(80)) - priority_announce(alert) - - -/datum/round_event/processor_overload/start() - for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) - if(istype(T, /obj/machinery/telecomms/processor)) - var/obj/machinery/telecomms/processor/P = T - if(prob(10)) - // Damage the surrounding area to indicate that it popped +/datum/round_event_control/processor_overload + name = "Processor Overload" + typepath = /datum/round_event/processor_overload + weight = 15 + min_players = 20 + +/datum/round_event/processor_overload + announceWhen = 1 + +/datum/round_event/processor_overload/announce() + var/alert = pick( "Exospheric bubble inbound. Processor overload is likely. Please contact you*%xp25)`6cq-BZZT", \ + "Exospheric bubble inbound. Processor overload is likel*1eta;c5;'1v¬-BZZZT", \ + "Exospheric bubble inbound. Processor ov#MCi46:5.;@63-BZZZZT", \ + "Exospheric bubble inbo'Fz\\k55_@-BZZZZZT", \ + "Exospheri:%£ QCbyj^j[alert]
    ") + + // Announce most of the time, but leave a little gap so people don't know + // whether it's, say, a tesla zapping tcomms, or some selective + // modification of the tcomms bus + if(prob(80)) + priority_announce(alert) + + +/datum/round_event/processor_overload/start() + for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) + if(istype(T, /obj/machinery/telecomms/processor)) + var/obj/machinery/telecomms/processor/P = T + if(prob(10)) + // Damage the surrounding area to indicate that it popped explosion(get_turf(P), 0, 0, 2) - // Only a level 1 explosion actually damages the machine - // at all - P.ex_act(1) - else - P.emp_act(1) + // Only a level 1 explosion actually damages the machine + // at all + P.ex_act(1) + else + P.emp_act(1) diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 581844bb4f..5f461933ad 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -12,9 +12,8 @@ announceWhen = 1 /datum/round_event/radiation_storm/announce() - priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/AI/radiation.ogg') + priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/ai/radiation.ogg') //sound not longer matches the text, but an audible warning is probably good /datum/round_event/radiation_storm/start() - SSweather.run_weather("radiation storm",ZLEVEL_STATION) - make_maint_all_access() \ No newline at end of file + SSweather.run_weather("radiation storm",ZLEVEL_STATION) \ No newline at end of file diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index ea35e79824..9d9549f920 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -394,7 +394,7 @@ else playsound(src, 'sound/weapons/tap.ogg', 50, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/spacevine/Crossed(mob/crosser) if(isliving(crosser)) @@ -444,7 +444,7 @@ /datum/spacevine_controller/Topic(href, href_list) if(..() || !check_rights(R_ADMIN, FALSE)) return - + if(href_list["purge_vines"]) if(alert(usr, "Are you sure you want to delete this spacevine cluster?", "Delete Vines", "Yes", "No") != "Yes") return @@ -476,6 +476,7 @@ for(var/datum/spacevine_mutation/SM in SV.mutations) SM.on_birth(SV) + location.Entered(SV) /datum/spacevine_controller/proc/VineDestroyed(obj/structure/spacevine/S) S.master = null @@ -555,10 +556,6 @@ /obj/structure/spacevine/proc/spread() var/direction = pick(GLOB.cardinal) var/turf/stepturf = get_step(src,direction) - - if(istype(stepturf, /turf/open/space/transit)) - return - for(var/datum/spacevine_mutation/SM in mutations) SM.on_spread(src, stepturf) stepturf = get_step(src,direction) //in case turf changes, to make sure no runtimes happen diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 4a49461757..a3296ebab6 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -16,7 +16,7 @@ spawncount = rand(5, 8) /datum/round_event/spider_infestation/announce() - priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/ai/aliens.ogg') /datum/round_event/spider_infestation/start() diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm index 2dec270472..f6ffab2da8 100644 --- a/code/modules/events/wizard/fakeexplosion.dm +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -7,5 +7,5 @@ /datum/round_event/wizard/fake_explosion/start() for(var/mob/M in GLOB.player_list) - M << 'sound/machines/Alarm.ogg' + M << 'sound/machines/alarm.ogg' addtimer(CALLBACK(SSticker, /datum/controller/subsystem/ticker/.proc/station_explosion_cinematic, 1, "fake"), 100) //:o) \ No newline at end of file diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 29837075ac..167eb77cfc 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -26,24 +26,20 @@ for(var/i = 1, i <= number_of_wormholes, i++) var/turf/T = pick(pick_turfs) - wormholes += new /obj/effect/portal/wormhole(T, null, null, -1) + wormholes += new /obj/effect/portal/wormhole(T, null, 300, null, FALSE) /datum/round_event/wormholes/announce() - priority_announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", 'sound/AI/spanomalies.ogg') + priority_announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", 'sound/ai/spanomalies.ogg') /datum/round_event/wormholes/tick() if(activeFor % shift_frequency == 0) for(var/obj/effect/portal/wormhole/O in wormholes) var/turf/T = pick(pick_turfs) if(T) - O.loc = T + O.forceMove(T) /datum/round_event/wormholes/end() - GLOB.portals.Remove(wormholes) - for(var/obj/effect/portal/wormhole/O in wormholes) - O.loc = null - wormholes.Cut() - + QDEL_LIST(wormholes) /obj/effect/portal/wormhole name = "wormhole" @@ -65,12 +61,11 @@ if(!(istype(M, /obj/mecha) && mech_sized)) return - if(istype(M, /atom/movable)) - var/turf/target + if(ismovableatom(M)) if(GLOB.portals.len) var/obj/effect/portal/P = pick(GLOB.portals) if(P && isturf(P.loc)) - target = P.loc - if(!target) + hard_target = P.loc + if(!hard_target) return - do_teleport(M, target, 1, 1, 0, 0) ///You will appear adjacent to the beacon \ No newline at end of file + do_teleport(M, hard_target, 1, 1, 0, 0) ///You will appear adjacent to the beacon diff --git a/code/modules/fields/peaceborg_dampener.dm b/code/modules/fields/peaceborg_dampener.dm index ed7a3737ee..cedce76369 100644 --- a/code/modules/fields/peaceborg_dampener.dm +++ b/code/modules/fields/peaceborg_dampener.dm @@ -43,7 +43,7 @@ if(R.has_buckled_mobs()) for(var/mob/living/L in R.buckled_mobs) L.visible_message("[L] is knocked off of [R] by the charge in [R]'s chassis induced by [name]!") //I know it's bad. - L.Weaken(3) + L.Knockdown(60) R.unbuckle_mob(L) do_sparks(5, 0, L) ..() diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index d6cfba39d0..002b9815af 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,6 +1,6 @@ /mob/living/carbon/proc/dream() set waitfor = 0 - dreaming = 1 + dreaming = TRUE var/list/dreams = list( "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", @@ -9,18 +9,18 @@ "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying" ) - for(var/i = rand(1,4),i > 0, i--) + for(var/i in 1 to rand(1, rand(3, 7))) var/dream_image = pick(dreams) dreams -= dream_image to_chat(src, "... [dream_image] ...") sleep(rand(40,70)) - if(paralysis <= 0) - dreaming = 0 - return 0 - dreaming = 0 + if(stat != UNCONSCIOUS || InCritical()) + break + dreaming = FALSE return 1 /mob/living/carbon/proc/handle_dreams() - if(prob(5) && !dreaming) dream() + if(prob(5) && !dreaming) + dream() -/mob/living/carbon/var/dreaming = 0 \ No newline at end of file +/mob/living/carbon/var/dreaming = FALSE \ No newline at end of file diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index c6462f9d66..4b92497a26 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -32,7 +32,7 @@ Gunshots/explosions/opening doors/less rare audio (done) //Something's wrong here var/list/medium = list("fake_alert"=15,"items"=10,"items_other"=10,"dangerflash"=10,"bolts"=5,"flood"=5,"husks"=10,"battle"=15,"self_delusion"=10) //AAAAH - var/list/major = list("fake"=20,"death"=10,"xeno"=10,"singulo"=10,"borer"=10,"delusion"=20,"koolaid"=10) + var/list/major = list("fake"=20,"death"=10,"xeno"=10,"singulo"=10,"delusion"=20,"koolaid"=10) handling_hal = 1 while(hallucination > 20) @@ -179,7 +179,7 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/hallucination/simple/xeno/throw_impact(A) update_icon("alienh_pounce") if(A == target && target.stat!=DEAD) - target.Weaken(5) + target.Knockdown(100) target.visible_message("[target] flails around wildly.","[name] pounces on you!") /obj/effect/hallucination/xeno_attack @@ -222,39 +222,6 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/hallucination/simple/clown/scary image_state = "scary_clown" -/obj/effect/hallucination/simple/borer - image_icon = 'icons/mob/animal.dmi' - image_state = "brainslug" - -/obj/effect/hallucination/borer - //A borer paralyzes you and crawls in your ear - var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null - var/obj/effect/hallucination/simple/borer/borer = null - -/obj/effect/hallucination/borer/Initialize(mapload, var/mob/living/carbon/T) - ..() - target = T - for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) - if(!U.welded) - pump = U - break - if(pump) - borer = new(pump.loc,target) - for(var/i=0, i<11, i++) - walk_to(borer, get_step(borer, get_cardinal_dir(borer, T))) - if(borer.Adjacent(T)) - to_chat(T, "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.") - T.Stun(4) - sleep(50) - qdel(borer) - sleep(rand(60, 90)) - to_chat(T, "Primary [rand(1000,9999)] states: [pick("Hello","Hi","You're my slave now!","Don't try to get rid of me...")]") - break - sleep(4) - if(!QDELETED(borer)) - qdel(borer) - qdel(src) - /obj/effect/hallucination/simple/bubblegum name = "Bubblegum" image_icon = 'icons/mob/lavaland/96x96megafauna.dmi' @@ -297,7 +264,7 @@ Gunshots/explosions/opening doors/less rare audio (done) shake_camera(target, 2, 1) if(bubblegum.Adjacent(target) && !charged) charged = TRUE - target.Weaken(4) + target.Knockdown(80) target.adjustStaminaLoss(40) step_away(target, bubblegum) shake_camera(target, 4, 3) @@ -348,7 +315,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/target_dist = get_dist(src,target) if(target_dist<=3) //"Eaten" target.hal_screwyhud = SCREWYHUD_CRIT - target.SetSleeping(8, no_alert = TRUE) + target.SetUnconscious(160) addtimer(CALLBACK(parent, .proc/wake_and_restore), rand(30, 50)) /obj/effect/hallucination/battle @@ -360,7 +327,7 @@ Gunshots/explosions/opening doors/less rare audio (done) switch(rand(1,5)) if(1) //Laser fight for(var/i=0,i...wabbajack...wabbajack...
    ") - target.playsound_local(target,'sound/magic/Staff_Change.ogg', 50, 1, -1) + target.playsound_local(target,'sound/magic/staff_change.ogg', 50, 1, -1) delusion = A target.client.images |= A QDEL_IN(src, duration) @@ -631,7 +598,7 @@ Gunshots/explosions/opening doors/less rare audio (done) else if(src.dir == WEST) del src.currentimage src.currentimage = new /image(left,src) - to_chat(my_target, currentimage) + SEND_IMAGE(my_target, currentimage) /obj/effect/fake_attacker/proc/attack_loop() @@ -675,7 +642,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/obj/effect/overlay/O = new/obj/effect/overlay(target.loc) O.name = "blood" var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) - to_chat(target, I) + SEND_IMAGE(target, I) QDEL_IN(O, 300) @@ -695,13 +662,13 @@ Gunshots/explosions/opening doors/less rare audio (done) doors += I if(target.client) target.client.images |= I - target.playsound_local(get_turf(A), 'sound/machines/BoltsDown.ogg',30,0,3) + target.playsound_local(get_turf(A), 'sound/machines/boltsdown.ogg',30,0,3) sleep(rand(6,12)) sleep(100) for(var/image/B in doors) if(target.client) target.client.images.Remove(B) - target.playsound_local(get_turf(B), 'sound/machines/BoltsUp.ogg',30,0,3) + target.playsound_local(get_turf(B), 'sound/machines/boltsup.ogg',30,0,3) sleep(rand(6,12)) qdel(src) @@ -764,8 +731,6 @@ Gunshots/explosions/opening doors/less rare audio (done) switch(hal_type) if("xeno") new /obj/effect/hallucination/xeno_attack(src.loc,src) - if("borer") - new /obj/effect/hallucination/borer(src.loc,src) if("singulo") new /obj/effect/hallucination/singularity_scare(src.loc,src) if("koolaid") @@ -792,42 +757,41 @@ Gunshots/explosions/opening doors/less rare audio (done) new /obj/effect/hallucination/items_other(src.loc,src) if("sounds") //Strange audio - //to_chat(src, "Strange Audio") switch(rand(1,20)) if(1) playsound_local(null,'sound/machines/airlock.ogg', 15, 1) if(2) - if(prob(50)) playsound_local(null,'sound/effects/Explosion1.ogg', 50, 1) - else playsound_local(null, 'sound/effects/Explosion2.ogg', 50, 1) + if(prob(50)) playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) + else playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) if(3) playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) - if(4) playsound_local(null, pick('sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg'), 50, 1) + if(4) playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) if(5) playsound_local(null, 'sound/weapons/ring.ogg', 35) sleep(15) playsound_local(null, 'sound/weapons/ring.ogg', 35) sleep(15) playsound_local(null, 'sound/weapons/ring.ogg', 35) - if(6) playsound_local(null, 'sound/magic/Summon_guns.ogg', 50, 1) - if(7) playsound_local(null, 'sound/machines/Alarm.ogg', 100, 0) + if(6) playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) + if(7) playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) if(8) playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) if(9) //To make it more realistic, I added two gunshots (enough to kill) - playsound_local(null, 'sound/weapons/Gunshot.ogg', 25, 1) + playsound_local(null, 'sound/weapons/gunshot.ogg', 25, 1) spawn(rand(10,30)) - playsound_local(null, 'sound/weapons/Gunshot.ogg', 25, 1) + playsound_local(null, 'sound/weapons/gunshot.ogg', 25, 1) sleep(rand(5,10)) playsound_local(null, sound(get_sfx("bodyfall"), 25), 25, 1) if(10) playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) if(11) //Same as above, but with tasers. - playsound_local(null, 'sound/weapons/Taser.ogg', 25, 1) + playsound_local(null, 'sound/weapons/taser.ogg', 25, 1) spawn(rand(10,30)) - playsound_local(null, 'sound/weapons/Taser.ogg', 25, 1) + playsound_local(null, 'sound/weapons/taser.ogg', 25, 1) sleep(rand(5,10)) playsound_local(null, sound(get_sfx("bodyfall"), 25), 25, 1) //Rare audio if(12) //These sounds are (mostly) taken from Hidden: Source - var/list/creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/Heart Beat.ogg', 'sound/effects/screech.ogg',\ + var/list/creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ @@ -840,17 +804,17 @@ Gunshots/explosions/opening doors/less rare audio (done) if(14) to_chat(src, "

    Priority Announcement

    ") to_chat(src, "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    ") - playsound_local(null, 'sound/AI/shuttledock.ogg', 100) + playsound_local(null, 'sound/ai/shuttledock.ogg', 100) //Deconstructing a wall if(15) - playsound_local(null, 'sound/items/Welder.ogg', 15, 1) + playsound_local(null, 'sound/items/welder.ogg', 15, 1) sleep(105) - playsound_local(null, 'sound/items/Welder2.ogg', 15, 1) + playsound_local(null, 'sound/items/welder2.ogg', 15, 1) sleep(15) - playsound_local(null, 'sound/items/Ratchet.ogg', 15, 1) + playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) //Hacking a door if(16) - playsound_local(null, 'sound/items/Screwdriver.ogg', 15, 1) + playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) sleep(rand(10,30)) for(var/i = rand(1,3), i>0, i--) playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) @@ -861,7 +825,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if(18) to_chat(src, "

    Biohazard Alert

    ") to_chat(src, "

    Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

    ") - playsound_local(null, 'sound/AI/outbreak5.ogg') + playsound_local(null, 'sound/ai/outbreak5.ogg') if(19) //Tesla loose! playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) sleep(20) @@ -871,7 +835,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if(20) //AI is doomsdaying! to_chat(src, "

    Anomaly Alert

    ") to_chat(src, "

    Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

    ") - playsound_local(null, 'sound/AI/aimalf.ogg', 100) + playsound_local(null, 'sound/ai/aimalf.ogg', 100) if("hudscrew") //Screwy HUD //to_chat(src, "Screwy HUD") @@ -1009,7 +973,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if("death") //Fake death hal_screwyhud = SCREWYHUD_DEAD - SetSleeping(20, no_alert = TRUE) + SetUnconscious(400) var/area/area = get_area(src) to_chat(src, "[mind.name] has died at [area.name].") if(prob(50)) diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm index f10e92940b..7d158be34d 100644 --- a/code/modules/flufftext/TextFilters.dm +++ b/code/modules/flufftext/TextFilters.dm @@ -1,14 +1,14 @@ //is this shit even used at all -/proc/NewStutter(phrase,stunned) +/proc/NewStutter(phrase,stun) phrase = html_decode(phrase) var/list/split_phrase = splittext(phrase," ") //Split it up into words. var/list/unstuttered_words = split_phrase.Copy() var/i = rand(1,3) - if(stunned) i = split_phrase.len + if(stun) i = split_phrase.len for(,i > 0,i--) //Pick a few words to stutter on. if (!unstuttered_words.len) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index fb625e14ea..b776ed2920 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -29,6 +29,10 @@ if(!canconsume(M, user)) return 0 + + if (!is_open_container()) + to_chat(user, "[src]'s lid hasn't been opened!") + return 0 if(M == user) to_chat(M, "You swallow a gulp of [src].") @@ -50,6 +54,10 @@ /obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity) if(!proximity) return if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + + if (!is_open_container()) + to_chat(user, "[target]'s tab isn't open!") + return if(!target.reagents.total_volume) to_chat(user, "[target] is empty.") @@ -87,11 +95,17 @@ to_chat(user, "You heat [src] with [I].") reagents.handle_reactions() ..() + + + + + //////////////////////////////////////////////////////////////////////////////// /// Drinks. END //////////////////////////////////////////////////////////////////////////////// + /obj/item/weapon/reagent_containers/food/drinks/trophy name = "pewter cup" desc = "Everyone gets a trophy." @@ -287,7 +301,7 @@ name = "detective's flask" desc = "The detective's only true friend." icon_state = "detflask" - list_reagents = list("whiskey" = 30) + list_reagents = list("hearty_punch" = 30) /obj/item/weapon/reagent_containers/food/drinks/britcup name = "cup" @@ -312,7 +326,9 @@ /obj/item/weapon/reagent_containers/food/drinks/soda_cans name = "soda can" - + container_type = 0 + spillable = FALSE + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == "head") user.visible_message("[user] crushes the can of [src] on [user.p_their()] forehead!", "You crush the can of [src] on your forehead.") @@ -321,6 +337,16 @@ crushed_can.icon_state = icon_state qdel(src) ..() + + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack_self(mob/user) + if(!is_open_container()) + to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh + container_type = OPENCONTAINER + playsound(src, "can_open", 50, 1) + spillable = TRUE + return + return ..() /obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola name = "Space Cola" diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 7c3d130244..b8e85915b8 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -2,14 +2,14 @@ ///////////////////////////////////////////////Alchohol bottles! -Agouri ////////////////////////// //Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem -//Bottles now weaken and break when smashed on people's heads. - Giacom +//Bottles now knockdown and break when smashed on people's heads. - Giacom /obj/item/weapon/reagent_containers/food/drinks/bottle amount_per_transfer_from_this = 10 volume = 100 throwforce = 15 item_state = "broken_beer" //Generic held-item sprite until unique ones are made. - var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets) + var/const/duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets) var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it /obj/item/weapon/reagent_containers/food/drinks/bottle/throw_impact(atom/target,mob/thrower) @@ -80,7 +80,7 @@ else headarmor = 0 - //Calculate the weakening duration for the target. + //Calculate the knockdown duration for the target. armor_duration = (duration - headarmor) + force else @@ -88,7 +88,6 @@ armor_block = target.run_armor_check(affecting, "melee") if(affecting == "head") armor_duration = duration + force - armor_duration /= 10 //Apply the damage! armor_block = min(90,armor_block) @@ -98,9 +97,9 @@ var/head_attack_message = "" if(affecting == "head" && istype(target, /mob/living/carbon/)) head_attack_message = " on the head" - //Weaken the target for the duration that we calculated and divide it by 5. + //Knockdown the target for the duration that we calculated and divide it by 5. if(armor_duration) - target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash! + target.apply_effect(min(armor_duration, 200) , KNOCKDOWN) // Never knockdown more than a flash! //Display an attack message. if(target != user) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 5ab7f62d65..fe726211dc 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -227,7 +227,7 @@ . = new trash(location) trash = null return - else if(istype(trash, /obj/item)) + else if(isitem(trash)) var/obj/item/trash_item = trash trash_item.forceMove(location) . = trash diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 27016d0c20..94c8e54f15 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -38,7 +38,7 @@ creamoverlay.icon_state = "creampie_lizard" else creamoverlay.icon_state = "creampie_human" - H.Weaken(1) //splat! + H.Knockdown(20) //splat! H.adjust_blurriness(1) visible_message("[H] was creamed by [src]!!") H.add_overlay(creamoverlay) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 2023dcb99d..4db4e9d8f9 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -131,6 +131,6 @@ insert ascii eagle on american flag background here reagents.reaction(C, TOUCH) C.adjustFireLoss(reagents.total_volume) reagents.remove_any((reagents.total_volume/2)) - C.Weaken(3) + C.Knockdown(60) user.changeNext_move(CLICK_CD_MELEE) ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm index 7fdb07dd26..58563e56d5 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm @@ -11,8 +11,8 @@ idle_power_usage = 5 active_power_usage = 100 pass_flags = PASSTABLE - var/obj/item/weapon/reagent_containers/beaker = null - var/global/list/allowed_items = list ( + var/obj/item/weapon/reagent_containers/beaker + var/static/list/allowed_items = list( /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = "tomatojuice", /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = "carrotjuice", /obj/item/weapon/reagent_containers/food/snacks/grown/berries = "berryjuice", @@ -27,10 +27,10 @@ /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = "watermelonjuice", /obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = "poisonberryjuice", /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = "pumpkinjuice", - /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = "blumpkinjuice", - ) + /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = "blumpkinjuice") -/obj/machinery/juicer/New() +/obj/machinery/juicer/Initialize() + . = ..() beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) /obj/machinery/juicer/update_icon() diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index c672f7fd99..d94992b1d1 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -297,7 +297,7 @@ /obj/machinery/processor/slime name = "Slime processor" - desc = "An industrial grinder with a sSSticker saying appropriated for science department. Keep hands clear of intake area while operating." + desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating." /obj/machinery/processor/slime/New() ..() @@ -306,4 +306,4 @@ /obj/item/weapon/circuitboard/machine/processor/slime name = "Slime Processor (Machine Board)" - build_path = /obj/machinery/processor/slime \ No newline at end of file + build_path = /obj/machinery/processor/slime diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index d66de8e1c5..e5d0f473b5 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -154,7 +154,7 @@ return FALSE /obj/machinery/smartfridge/proc/load(obj/item/O) - if(istype(O.loc,/mob)) + if(ismob(O.loc)) var/mob/M = O.loc if(!M.transferItemToLoc(O, src)) to_chat(usr, "\the [O] is stuck to your hand, you cannot put it in \the [src]!") diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index a7c96d949c..d7b87648bd 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -1,234 +1,234 @@ -/obj/item/weapon/bombcore/pizza - parent_type = /obj/item/weapon/bombcore/miniature - name = "pizza bomb" - desc = "Special delivery!" - icon_state = "pizzabomb_inactive" - item_state = "eshield0" - origin_tech = "syndicate=3;engineering=3" - -/obj/item/pizzabox - name = "pizza box" - desc = "A box suited for pizzas." - icon = 'icons/obj/food/containers.dmi' - icon_state = "pizzabox1" - item_state = "pizzabox" - - var/open = 0 - var/boxtag = "" - var/list/boxes = list() - - var/obj/item/weapon/reagent_containers/food/snacks/pizza/pizza - - var/obj/item/weapon/bombcore/pizza/bomb - var/bomb_active = FALSE // If the bomb is counting down. - var/bomb_defused = TRUE // If the bomb is inert. - var/bomb_timer = 1 // How long before blowing the bomb. - var/const/BOMB_TIMER_MIN = 1 - var/const/BOMB_TIMER_MAX = 10 - -/obj/item/pizzabox/New() - update_icon() - ..() - -/obj/item/pizzabox/Destroy() - unprocess() - return ..() - -/obj/item/pizzabox/update_icon() - // Description - desc = initial(desc) - if(open) - if(pizza) - desc = "[desc] It appears to have \a [pizza] inside. Use your other hand to take it out." - if(bomb) - desc = "[desc] Wait, what?! It has \a [bomb] inside!" - if(bomb_defused) - desc = "[desc] The bomb seems inert. Use your other hand to activate it." - if(bomb_active) - desc = "[desc] It looks like it's about to go off!" - else - var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src - if(boxes.len) - desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile." - if(box.boxtag != "") - desc = "[desc] The [boxes.len ? "top box" : "box"]'s tag reads: [box.boxtag]" - - // Icon/Overlays - cut_overlays() - if(open) - icon_state = "pizzabox_open" - if(pizza) - icon_state = "pizzabox_messy" +/obj/item/weapon/bombcore/pizza + parent_type = /obj/item/weapon/bombcore/miniature + name = "pizza bomb" + desc = "Special delivery!" + icon_state = "pizzabomb_inactive" + item_state = "eshield0" + origin_tech = "syndicate=3;engineering=3" + +/obj/item/pizzabox + name = "pizza box" + desc = "A box suited for pizzas." + icon = 'icons/obj/food/containers.dmi' + icon_state = "pizzabox1" + item_state = "pizzabox" + + var/open = 0 + var/boxtag = "" + var/list/boxes = list() + + var/obj/item/weapon/reagent_containers/food/snacks/pizza/pizza + + var/obj/item/weapon/bombcore/pizza/bomb + var/bomb_active = FALSE // If the bomb is counting down. + var/bomb_defused = TRUE // If the bomb is inert. + var/bomb_timer = 1 // How long before blowing the bomb. + var/const/BOMB_TIMER_MIN = 1 + var/const/BOMB_TIMER_MAX = 10 + +/obj/item/pizzabox/New() + update_icon() + ..() + +/obj/item/pizzabox/Destroy() + unprocess() + return ..() + +/obj/item/pizzabox/update_icon() + // Description + desc = initial(desc) + if(open) + if(pizza) + desc = "[desc] It appears to have \a [pizza] inside. Use your other hand to take it out." + if(bomb) + desc = "[desc] Wait, what?! It has \a [bomb] inside!" + if(bomb_defused) + desc = "[desc] The bomb seems inert. Use your other hand to activate it." + if(bomb_active) + desc = "[desc] It looks like it's about to go off!" + else + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + if(boxes.len) + desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile." + if(box.boxtag != "") + desc = "[desc] The [boxes.len ? "top box" : "box"]'s tag reads: [box.boxtag]" + + // Icon/Overlays + cut_overlays() + if(open) + icon_state = "pizzabox_open" + if(pizza) + icon_state = "pizzabox_messy" var/mutable_appearance/pizza_overlay = mutable_appearance(pizza.icon, pizza.icon_state) pizza_overlay.pixel_y = -3 add_overlay(pizza_overlay) - if(bomb) - bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]" + if(bomb) + bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]" var/mutable_appearance/bomb_overlay = mutable_appearance(bomb.icon, bomb.icon_state) bomb_overlay.pixel_y = 5 add_overlay(bomb_overlay) else - icon_state = "pizzabox[boxes.len + 1]" - var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src - if(box.boxtag != "") + icon_state = "pizzabox[boxes.len + 1]" + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + if(box.boxtag != "") var/mutable_appearance/tag_overlay = mutable_appearance(icon, "pizzabox_tag") tag_overlay.pixel_y = boxes.len * 3 add_overlay(tag_overlay) - -/obj/item/pizzabox/attack_self(mob/user) - if(boxes.len > 0) - return - open = !open - if(open && !bomb_defused) + +/obj/item/pizzabox/attack_self(mob/user) + if(boxes.len > 0) + return + open = !open + if(open && !bomb_defused) audible_message("[bicon(src)] *beep*") - bomb_active = TRUE - START_PROCESSING(SSobj, src) - update_icon() - -/obj/item/pizzabox/attack_hand(mob/user) - if(user.get_inactive_held_item() != src) - ..() - return - if(open) - if(pizza) - user.put_in_hands(pizza) - to_chat(user, "You take [pizza] out of [src].") - pizza = null - update_icon() - return - else if(bomb) - if(wires.is_all_cut() && bomb_defused) - user.put_in_hands(bomb) - to_chat(user, "You carefully remove the [bomb] from [src].") - bomb = null - update_icon() - return - else - bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num - bomb_timer = Clamp(Ceiling(bomb_timer / 2), BOMB_TIMER_MIN, BOMB_TIMER_MAX) - bomb_defused = FALSE - - var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds." - GLOB.bombers += message - message_admins(message) - log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.") - bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!" - - to_chat(user, "You trap [src] with [bomb].") - update_icon() - return - else if(boxes.len) - var/obj/item/pizzabox/topbox = boxes[boxes.len] - boxes -= topbox - user.put_in_hands(topbox) - to_chat(user, "You remove the topmost [name] from the stack.") - topbox.update_icon() - update_icon() - return - ..() - -/obj/item/pizzabox/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/pizzabox)) - var/obj/item/pizzabox/newbox = I - if(!open && !newbox.open) - var/list/add = list() - add += newbox - add += newbox.boxes - - if((boxes.len + 1) + add.len <= 5) - if(!user.drop_item()) - return - boxes += add - newbox.boxes.Cut() - newbox.loc = src - to_chat(user, "You put [newbox] on top of [src]!") - newbox.update_icon() - update_icon() - return - else - to_chat(user, "The stack is dangerously high!") - else - to_chat(user, "Close [open ? src : newbox] first!") - else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizza) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza)) - if(open) - if(!user.drop_item()) - return - pizza = I - I.loc = src - to_chat(user, "You put [I] in [src].") - update_icon() - return - else if(istype(I, /obj/item/weapon/bombcore/pizza)) - if(open && !bomb) - if(!user.drop_item()) - return - wires = new /datum/wires/explosive/pizza(src) - bomb = I - I.loc = src - to_chat(user, "You put [I] in [src]. Sneeki breeki...") - update_icon() - return - else if(bomb) - to_chat(user, "[src] already has a bomb in it!") - else if(istype(I, /obj/item/weapon/pen)) - if(!open) - var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src - box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30) - to_chat(user, "You write with [I] on [src].") - update_icon() - return - else if(is_wire_tool(I)) - if(wires && bomb) - wires.interact(user) - else if(istype(I, /obj/item/weapon/reagent_containers/food)) - to_chat(user, "That's not a pizza!") - ..() - -/obj/item/pizzabox/process() - if(bomb_active && !bomb_defused && (bomb_timer > 0)) - playsound(loc, 'sound/items/timer.ogg', 50, 0) - bomb_timer-- - if(bomb_active && !bomb_defused && (bomb_timer <= 0)) - if(bomb in src) - bomb.detonate() - unprocess() - qdel(src) - if(!bomb_active || bomb_defused) - if(bomb_defused && bomb in src) - bomb.defuse() - bomb_active = FALSE - unprocess() - return - -/obj/item/pizzabox/proc/unprocess() - STOP_PROCESSING(SSobj, src) - qdel(wires) - wires = null - update_icon() - -/obj/item/pizzabox/bomb/New() - var/randompizza = pick(subtypesof(/obj/item/weapon/reagent_containers/food/snacks/pizza)) - pizza = new randompizza(src) - bomb = new(src) - wires = new /datum/wires/explosive/pizza(src) - ..() - -/obj/item/pizzabox/margherita/New() - pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita(src) - boxtag = "Margherita Deluxe" - ..() - -/obj/item/pizzabox/vegetable/New() - pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable(src) - boxtag = "Gourmet Vegatable" - ..() - -/obj/item/pizzabox/mushroom/New() - pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom(src) - boxtag = "Mushroom Special" - ..() - -/obj/item/pizzabox/meat/New() - pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meat(src) - boxtag = "Meatlover's Supreme" - ..() + bomb_active = TRUE + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/pizzabox/attack_hand(mob/user) + if(user.get_inactive_held_item() != src) + ..() + return + if(open) + if(pizza) + user.put_in_hands(pizza) + to_chat(user, "You take [pizza] out of [src].") + pizza = null + update_icon() + return + else if(bomb) + if(wires.is_all_cut() && bomb_defused) + user.put_in_hands(bomb) + to_chat(user, "You carefully remove the [bomb] from [src].") + bomb = null + update_icon() + return + else + bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num + bomb_timer = Clamp(Ceiling(bomb_timer / 2), BOMB_TIMER_MIN, BOMB_TIMER_MAX) + bomb_defused = FALSE + + var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds." + GLOB.bombers += message + message_admins(message) + log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.") + bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!" + + to_chat(user, "You trap [src] with [bomb].") + update_icon() + return + else if(boxes.len) + var/obj/item/pizzabox/topbox = boxes[boxes.len] + boxes -= topbox + user.put_in_hands(topbox) + to_chat(user, "You remove the topmost [name] from the stack.") + topbox.update_icon() + update_icon() + return + ..() + +/obj/item/pizzabox/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/pizzabox)) + var/obj/item/pizzabox/newbox = I + if(!open && !newbox.open) + var/list/add = list() + add += newbox + add += newbox.boxes + + if((boxes.len + 1) + add.len <= 5) + if(!user.drop_item()) + return + boxes += add + newbox.boxes.Cut() + newbox.loc = src + to_chat(user, "You put [newbox] on top of [src]!") + newbox.update_icon() + update_icon() + return + else + to_chat(user, "The stack is dangerously high!") + else + to_chat(user, "Close [open ? src : newbox] first!") + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizza) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza)) + if(open) + if(!user.drop_item()) + return + pizza = I + I.loc = src + to_chat(user, "You put [I] in [src].") + update_icon() + return + else if(istype(I, /obj/item/weapon/bombcore/pizza)) + if(open && !bomb) + if(!user.drop_item()) + return + wires = new /datum/wires/explosive/pizza(src) + bomb = I + I.loc = src + to_chat(user, "You put [I] in [src]. Sneeki breeki...") + update_icon() + return + else if(bomb) + to_chat(user, "[src] already has a bomb in it!") + else if(istype(I, /obj/item/weapon/pen)) + if(!open) + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30) + to_chat(user, "You write with [I] on [src].") + update_icon() + return + else if(is_wire_tool(I)) + if(wires && bomb) + wires.interact(user) + else if(istype(I, /obj/item/weapon/reagent_containers/food)) + to_chat(user, "That's not a pizza!") + ..() + +/obj/item/pizzabox/process() + if(bomb_active && !bomb_defused && (bomb_timer > 0)) + playsound(loc, 'sound/items/timer.ogg', 50, 0) + bomb_timer-- + if(bomb_active && !bomb_defused && (bomb_timer <= 0)) + if(bomb in src) + bomb.detonate() + unprocess() + qdel(src) + if(!bomb_active || bomb_defused) + if(bomb_defused && bomb in src) + bomb.defuse() + bomb_active = FALSE + unprocess() + return + +/obj/item/pizzabox/proc/unprocess() + STOP_PROCESSING(SSobj, src) + qdel(wires) + wires = null + update_icon() + +/obj/item/pizzabox/bomb/New() + var/randompizza = pick(subtypesof(/obj/item/weapon/reagent_containers/food/snacks/pizza)) + pizza = new randompizza(src) + bomb = new(src) + wires = new /datum/wires/explosive/pizza(src) + ..() + +/obj/item/pizzabox/margherita/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita(src) + boxtag = "Margherita Deluxe" + ..() + +/obj/item/pizzabox/vegetable/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable(src) + boxtag = "Gourmet Vegatable" + ..() + +/obj/item/pizzabox/mushroom/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom(src) + boxtag = "Mushroom Special" + ..() + +/obj/item/pizzabox/meat/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meat(src) + boxtag = "Meatlover's Supreme" + ..() diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 606c897d61..5a7c3a1b31 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -324,6 +324,4 @@ /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/branrequests - category = CAT_MISCFOOD - - + subcategory = CAT_MISCFOOD diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm index aa5c69e079..efc536e301 100644 --- a/code/modules/goonchat/browserOutput.dm +++ b/code/modules/goonchat/browserOutput.dm @@ -223,18 +223,18 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic if (istype(message, /image) || istype(message, /sound) || istype(target, /savefile)) target << message CRASH("Invalid message! [message]") - + if(!istext(message)) return if(target == world) target = GLOB.clients - + var/list/targets if(!islist(target)) targets = list(target) else - targets = target + targets = target if(!targets.len) return var/original_message = message @@ -268,7 +268,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic /proc/grab_client(target) if(istype(target, /client)) return target - else if(istype(target, /mob)) + else if(ismob(target)) var/mob/M = target if(M.client) return M.client diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index 93dd2e47fe..ed77ea54a7 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -234,7 +234,6 @@ em {font-style: normal; font-weight: bold;} .ooc { font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;} .adminooc {color: #700038; font-weight: bold;} -.looc { font-weight: bold;} .adminobserver {color: #996600; font-weight: bold;} .admin {color: #386aff; font-weight: bold;} @@ -340,7 +339,6 @@ h1.alert, h2.alert {color: #000000;} .alien {color: #543354;} .noticealien {color: #00c000;} .alertalien {color: #00c000; font-weight: bold;} -.borer {color: #543354; font-style: italic;} .changeling {color: #800080; font-style: italic;} .interface {color: #330033;} @@ -350,6 +348,7 @@ h1.alert, h2.alert {color: #000000;} .robot {font-family: "Courier New", cursive, sans-serif;} .command_headset {font-weight: bold; font-size: 24px;} +.small {font-size: 1;} .big {font-size: 3;} .reallybig {font-size: 4;} .greentext {color: #00FF00; font-size: 3;} diff --git a/code/modules/goonchat/browserassets/html/browserOutput.html b/code/modules/goonchat/browserassets/html/browserOutput.html index af764dc738..f55e69ecd1 100644 --- a/code/modules/goonchat/browserassets/html/browserOutput.html +++ b/code/modules/goonchat/browserassets/html/browserOutput.html @@ -41,4 +41,4 @@ - + \ No newline at end of file diff --git a/code/modules/goonchat/browserassets/js/json2.min.js b/code/modules/goonchat/browserassets/js/json2.min.js index e69de29bb2..d867407f26 100644 --- a/code/modules/goonchat/browserassets/js/json2.min.js +++ b/code/modules/goonchat/browserassets/js/json2.min.js @@ -0,0 +1 @@ +"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return 10>t?"0"+t:t}function this_value(){return this.valueOf()}function quote(t){return rx_escapable.lastIndex=0,rx_escapable.test(t)?'"'+t.replace(rx_escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var r,n,o,u,f,a=gap,i=e[t];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(t)),"function"==typeof rep&&(i=rep.call(e,t,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,f=[],"[object Array]"===Object.prototype.toString.apply(i)){for(u=i.length,r=0;u>r;r+=1)f[r]=str(r,i)||"null";return o=0===f.length?"[]":gap?"[\n"+gap+f.join(",\n"+gap)+"\n"+a+"]":"["+f.join(",")+"]",gap=a,o}if(rep&&"object"==typeof rep)for(u=rep.length,r=0;u>r;r+=1)"string"==typeof rep[r]&&(n=rep[r],o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));else for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));return o=0===f.length?"{}":gap?"{\n"+gap+f.join(",\n"+gap)+"\n"+a+"}":"{"+f.join(",")+"}",gap=a,o}}var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(t,e,r){var n;if(gap="",indent="","number"==typeof r)for(n=0;r>n;n+=1)indent+=" ";else"string"==typeof r&&(indent=r);if(rep=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return str("",{"":t})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(t,e){var r,n,o=t[e];if(o&&"object"==typeof o)for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n=walk(o,r),void 0!==n?o[r]=n:delete o[r]);return reviver.call(t,e,o)}var j;if(text=String(text),rx_dangerous.lastIndex=0,rx_dangerous.test(text)&&(text=text.replace(rx_dangerous,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),rx_one.test(text.replace(rx_two,"@").replace(rx_three,"]").replace(rx_four,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(); \ No newline at end of file diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index d418b40b81..2cf4ac77a9 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -22,7 +22,7 @@ max_occurrences = 10 /datum/round_event/rabbitrelease/announce() - priority_announce("Unidentified furry objects detected coming aboard [station_name()]. Beware of Adorable-ness.", "Fluffy Alert", 'sound/AI/aliens.ogg') + priority_announce("Unidentified furry objects detected coming aboard [station_name()]. Beware of Adorable-ness.", "Fluffy Alert", 'sound/ai/aliens.ogg') /datum/round_event/rabbitrelease/start() @@ -37,7 +37,7 @@ /mob/living/simple_animal/chicken/rabbit name = "\improper rabbit" desc = "The hippiest hop around." - icon = 'icons/mob/Easter.dmi' + icon = 'icons/mob/easter.dmi' icon_state = "rabbit_white" icon_living = "rabbit_white" icon_dead = "rabbit_white_dead" @@ -67,7 +67,7 @@ //Easter Baskets /obj/item/weapon/storage/bag/easterbasket name = "Easter Basket" - icon = 'icons/mob/Easter.dmi' + icon = 'icons/mob/easter.dmi' icon_state = "basket" can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg,/obj/item/weapon/reagent_containers/food/snacks/chocolateegg,/obj/item/weapon/reagent_containers/food/snacks/boiledegg) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index a73b9efa53..8bd178ead0 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -1,16 +1,17 @@ /datum/holiday var/name = "Bugsgiving" - //Right now, only holidays that take place on a certain day or within a time period are supported - //It would be nice to support things like "the second monday in march" or "the first sunday after the second sunday in june" + var/begin_day = 1 var/begin_month = 0 var/end_day = 0 // Default of 0 means the holiday lasts a single day var/end_month = 0 - + var/begin_week = FALSE //If set to a number, then this holiday will begin on certain week + var/begin_weekday = FALSE //If set to a weekday, then this will trigger the holiday on the above week var/always_celebrate = FALSE // for christmas neverending, or testing. // This proc gets run before the game starts when the holiday is activated. Do festive shit here. /datum/holiday/proc/celebrate() + return // When the round starts, this proc is ran to get a text message to display to everyone to wish them a happy holiday /datum/holiday/proc/greet() @@ -23,7 +24,7 @@ return copytext(name,1,i) // Return 1 if this holidy should be celebrated today -/datum/holiday/proc/shouldCelebrate(dd, mm, yy) +/datum/holiday/proc/shouldCelebrate(dd, mm, yy, ww, ddd) if(always_celebrate) return TRUE @@ -31,7 +32,9 @@ end_day = begin_day if(!end_month) end_month = begin_month - + if(begin_week && begin_weekday) + if(begin_week == ww && begin_weekday == ddd) + return TRUE if(end_month > begin_month) //holiday spans multiple months in one year if(mm == end_month) //in final month if(dd <= end_day) @@ -229,7 +232,7 @@ /datum/holiday/programmers name = "Programmers' Day" -/datum/holiday/programmers/shouldCelebrate(dd, mm, yy) //Programmer's day falls on the 2^8th day of the year +/datum/holiday/programmers/shouldCelebrate(dd, mm, yy, ww, ddd) //Programmer's day falls on the 2^8th day of the year if(mm == 9) if(yy/4 == round(yy/4)) //Note: Won't work right on September 12th, 2200 (at least it's a Friday!) if(dd == 12) @@ -314,6 +317,70 @@ begin_day = 14 begin_month = DECEMBER +/datum/holiday/thanksgiving + name = "Thanksgiving in the United States" + begin_week = 4 + begin_month = NOVEMBER + begin_weekday = THURSDAY + +/datum/holiday/thanksgiving/canada + name = "Thanksgiving in Canada" + begin_week = 2 + begin_month = OCTOBER + begin_weekday = MONDAY + +/datum/holiday/columbus + name = "Columbus Day" + begin_week = 2 + begin_month = OCTOBER + begin_weekday = MONDAY + +/datum/holiday/mother + name = "Mother's Day" + begin_week = 2 + begin_month = MAY + begin_weekday = SUNDAY + +/datum/holiday/mother/greet() + return "Happy Mother's Day in most of the Americas, Asia, and Oceania!" + +/datum/holiday/father + name = "Father's Day" + begin_week = 3 + begin_month = JUNE + begin_weekday = SUNDAY + +/datum/holiday/ramadan + name = "Start of Ramadan" + +/* + +For anyone who stumbles on this some time in the future: this was calibrated to 2017 +Calculated based on the start and end of Ramadan in 2000 (First year of the Gregorian Calendar supported by BYOND) +This is going to be accurate for at least a decade, likely a lot longer +Since the date fluctuates, it may be inaccurate one year and then accurate for several after +Inaccuracies will never be by more than one day for at least a hundred years +Finds the number of days since the day in 2000 and gets the modulo of that and the average length of a Muslim year since the first one (622 AD, Gregorian) +Since Ramadan is an entire month that lasts 29.5 days on average, the start and end are holidays and are calculated from the two dates in 2000 + +*/ + +/datum/holiday/ramadan/shouldCelebrate(dd, mm, yy, ww, ddd) + if (round(((world.realtime - 285984000) / 864000) % 354.373435326843) == 0) + return TRUE + return FALSE + +/datum/holiday/ramadan/getStationPrefix() + return pick("Harm","Halaal","Jihad","Muslim") + +/datum/holiday/ramadan/end + name = "End of Ramadan" + +/datum/holiday/ramadan/end/shouldCelebrate(dd, mm, yy, ww, ddd) + if (round(((world.realtime - 312768000) / 864000) % 354.373435326843) == 0) + return TRUE + return FALSE + /datum/holiday/doomsday name = "Mayan Doomsday Anniversary" begin_day = 21 @@ -345,10 +412,9 @@ /datum/holiday/friday_thirteenth name = "Friday the 13th" -/datum/holiday/friday_thirteenth/shouldCelebrate(dd, mm, yy) - if(dd == 13) - if(time2text(world.timeofday, "DDD") == "Fri") - return TRUE +/datum/holiday/friday_thirteenth/shouldCelebrate(dd, mm, yy, ww, ddd) + if(dd == 13 && ddd == FRIDAY) + return TRUE return FALSE /datum/holiday/friday_thirteenth/getStationPrefix() @@ -359,7 +425,7 @@ var/const/days_early = 1 //to make editing the holiday easier var/const/days_extra = 1 -/datum/holiday/easter/shouldCelebrate(dd, mm, yy) +/datum/holiday/easter/shouldCelebrate(dd, mm, yy, ww, ddd) // Easter's celebration day is as snowflakey as Uhangi's code if(!begin_month) @@ -424,7 +490,6 @@ return ..() /datum/holiday/easter/celebrate() - ..() GLOB.maintenance_loot += list( /obj/item/weapon/reagent_containers/food/snacks/egg/loaded = 15, /obj/item/weapon/storage/bag/easterbasket = 15) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index e8cde84d01..dc93ef15ca 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -13,7 +13,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", if(perfectcopy && O && original) for(var/V in original.vars - GLOB.duplicate_forbidden_vars) - if(istype(original.vars[V],/list)) + if(islist(original.vars[V])) var/list/L = original.vars[V] O.vars[V] = L.Copy() else if(istype(original.vars[V],/datum)) @@ -21,12 +21,12 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", else O.vars[V] = original.vars[V] - if(istype(O, /obj)) + if(isobj(O)) var/obj/N = O if(holoitem) N.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // holoitems do not burn - if(nerf && istype(O,/obj/item)) + if(nerf && isitem(O)) var/obj/item/I = O I.damtype = STAMINA // thou shalt not @@ -98,12 +98,12 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs", for(var/obj/O in T) var/obj/O2 = DuplicateObject(O , perfectcopy=TRUE, newloc = B, nerf=nerf_weapons, holoitem=TRUE) - if(!O2) + if(!O2) continue copiedobjs += O2.GetAllContents() for(var/mob/M in T) - if(istype(M, /mob/camera)) + if(istype(M, /mob/camera)) continue // If we need to check for more mobs, I'll add a variable var/mob/SM = DuplicateObject(M , perfectcopy=TRUE, newloc = B, holoitem=TRUE) copiedobjs += SM.GetAllContents() diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index b7c58c23d3..8248a8b9b4 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -15,6 +15,9 @@ The base of program_type will always be ignored; only subtypes will be loaded. */ +#define HOLODECK_CD 25 +#define HOLODECK_DMG_CD 500 + /obj/machinery/computer/holodeck name = "holodeck control console" desc = "A computer used to control a nearby holodeck." @@ -26,109 +29,106 @@ var/area/holodeck/last_program var/area/offline_program = /area/holodeck/rec_center/offline - var/list/program_cache = list() - var/list/emag_programs = list() + var/list/program_cache + var/list/emag_programs // Splitting this up allows two holodecks of the same size // to use the same source patterns. Y'know, if you want to. var/holodeck_type = /area/holodeck/rec_center // locate(this) to get the target holodeck var/program_type = /area/holodeck/rec_center // subtypes of this (but not this itself) are loadable programs - // set this if you want it to start with some particular program. - var/init_program = null - // or this to get anything - var/random_program = 0 - - var/active = 0 - var/damaged = 0 + var/active = FALSE + var/damaged = FALSE var/list/spawned = list() var/list/effects = list() - var/last_change = 0 - - + var/current_cd = 0 /obj/machinery/computer/holodeck/Initialize(mapload) ..() return INITIALIZE_HINT_LATELOAD /obj/machinery/computer/holodeck/LateInitialize() - if(ispath(holodeck_type,/area)) - var/list/possible = get_areas(holodeck_type,subtypes = FALSE) - linked = pop(possible) - if(ispath(offline_program,/area)) - var/list/possible = get_areas(offline_program,subtypes = FALSE) - offline_program = pop(possible) - // the following is necessary for power reasons - if(!linked || !offline_program) - log_world("No matching holodeck area found") - qdel(src) - return - var/area/AS = get_area(src) - if(istype(AS,/area/holodeck)) - log_world("### MAPPING ERROR") - log_world("Holodeck computer cannot be in a holodeck.") - log_world("This would cause circular power dependency.") - qdel(src) // todo handle constructed computers - return //l-lewd... - else - linked.linked = src // todo detect multiple/constructed computers + if(ispath(holodeck_type, /area)) + linked = locate(holodeck_type) in GLOB.sortedAreas + if(ispath(offline_program,/area)) + offline_program = locate(offline_program) in GLOB.sortedAreas + // the following is necessary for power reasons + if(!linked || !offline_program) + log_world("No matching holodeck area found") + qdel(src) + return + var/area/AS = get_area(src) + if(istype(AS, /area/holodeck)) + log_world("### MAPPING ERROR") + log_world("Holodeck computer cannot be in a holodeck.") + log_world("This would cause circular power dependency.") + qdel(src) + return + else + linked.linked = src - program_cache = list() - emag_programs = list() - for(var/typekey in subtypesof(program_type)) - var/area/holodeck/A = locate(typekey) - if(!A || A == offline_program) - continue - if(A.contents.len == 0) - continue // not loaded - if(A.restricted) - emag_programs += A - else - program_cache += A - if(typekey == init_program) - load_program(A,force=1) - if(random_program && program_cache.len && init_program == null) - load_program(pick(program_cache),force=1) - else if(!program) - load_program(offline_program) + generate_program_list() + load_program(offline_program, FALSE, FALSE) + +/obj/machinery/computer/holodeck/Destroy() + emergency_shutdown() + if(linked) + linked.linked = null + return ..() /obj/machinery/computer/holodeck/power_change() - ..() + . = ..() toggle_power(!stat) -/obj/machinery/computer/holodeck/proc/toggle_power(toggleOn = 0) - if(active == toggleOn) return +/obj/machinery/computer/holodeck/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "holodeck", name, 400, 500, master_ui, state) + ui.open() - if(toggleOn) - if(last_program && last_program != offline_program) - load_program(last_program, delay = 1) - active = 1 - else - last_program = program - load_program(offline_program,force=1) - active = 0 +/obj/machinery/computer/holodeck/ui_data(mob/user) + var/list/data = list() -/obj/machinery/computer/holodeck/proc/emergency_shutdown() - last_program = program - load_program(offline_program,1) - active = 0 + data["default_programs"] = program_cache + if(emagged) + data["emagged"] = TRUE + data["emag_programs"] = emag_programs + data["program"] = program + data["can_toggle_safety"] = issilicon(user) || IsAdminGhost(user) + + return data + +/obj/machinery/computer/holodeck/ui_act(action, params) + if(..()) + return + . = TRUE + switch(action) + if("load_program") + var/program_to_load = text2path(params["type"]) + if(!ispath(program_to_load)) + return FALSE + var/area/A = locate(program_to_load) in GLOB.sortedAreas + if(A) + load_program(A) + if("safety") + emagged = !emagged + if(emagged && program && emag_programs[program.name]) + emergency_shutdown() + nerf(emagged) /obj/machinery/computer/holodeck/process() - if(damaged) - if(prob(10)) - for(var/turf/T in linked) - if(prob(5)) - var/datum/effect_system/spark_spread/s = new - s.set_up(2, 1, T) - s.start() - return + if(damaged && prob(10)) + for(var/turf/T in linked) + if(prob(5)) + do_sparks(2, 1, T) + return if(!..() || !active) return if(!floorcheck()) emergency_shutdown() - damaged = 1 + damaged = TRUE for(var/mob/M in urange(10,src)) M.show_message("The holodeck overloads!") @@ -144,67 +144,24 @@ for(var/item in spawned) if(!(get_turf(item) in linked)) derez(item, 0) - for(var/obj/effect/holodeck_effect/HE in effects) + for(var/e in effects) + var/obj/effect/holodeck_effect/HE = e HE.tick() active_power_usage = 50 + spawned.len * 3 + effects.len * 5 -/obj/machinery/computer/holodeck/proc/floorcheck() - for(var/turf/T in linked) - if(!T.intact || isspaceturf(T)) - return 0 - return 1 - -/obj/machinery/computer/holodeck/Topic(href, list/href_list) - if(..()) +/obj/machinery/computer/holodeck/emag_act(mob/user) + if(emagged) return - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["loadarea"]) - var/areapath = text2path(href_list["loadarea"]) - if(!ispath(areapath, /area/holodeck)) - return - var/area/holodeck/area = locate(areapath) - if(!istype(area)) - return - if(area == offline_program || (area in program_cache) || (emagged && (area in emag_programs))) - load_program(area) - else if("safety" in href_list) - var/safe = text2num(href_list["safety"]) - if(!issilicon(usr)) - return - emagged = !safe - if(!program) - return - if(safe && (program in emag_programs)) - emergency_shutdown() - nerf(safe) - updateUsrDialog() - -/obj/machinery/computer/holodeck/proc/nerf(active) - for(var/obj/item/I in spawned) - I.damtype = (active? STAMINA : initial(I.damtype) ) - for(var/obj/effect/holodeck_effect/HE in effects) - HE.safety(active) - -/obj/machinery/computer/holodeck/emag_act(mob/user as mob) - if(!emagged) - if(!emag_programs.len) - to_chat(user, "[src] does not seem to have a card swipe port. It must be an inferior model.") - return - playsound(loc, 'sound/effects/sparks4.ogg', 75, 1) - emagged = 1 - to_chat(user, "You vastly increase projector power and override the safety and security protocols.") - to_chat(user, "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator.") - log_game("[key_name(user)] emagged the Holodeck Control Console") - updateUsrDialog() - nerf(!emagged) - -/obj/machinery/computer/holodeck/Destroy() - if(linked) - emergency_shutdown() - linked.linked = null - return ..() + if(!LAZYLEN(emag_programs)) + to_chat(user, "[src] does not seem to have a card swipe port. It must be an inferior model.") + return + playsound(src, 'sound/effects/sparks4.ogg', 75, 1) + emagged = TRUE + to_chat(user, "You vastly increase projector power and override the safety and security protocols.") + to_chat(user, "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator.") + log_game("[key_name(user)] emagged the Holodeck Control Console") + nerf(!emagged) /obj/machinery/computer/holodeck/emp_act(severity) emergency_shutdown() @@ -216,4 +173,122 @@ /obj/machinery/computer/holodeck/blob_act(obj/structure/blob/B) emergency_shutdown() - return ..() \ No newline at end of file + return ..() + +/obj/machinery/computer/holodeck/proc/generate_program_list() + for(var/typekey in subtypesof(program_type)) + var/area/holodeck/A = locate(typekey) in GLOB.sortedAreas + if(!A || A == offline_program || !A.contents.len) + continue + var/list/info_this = list() + info_this["name"] = A.name + info_this["type"] = A.type + if(A.restricted) + LAZYADD(emag_programs, list(info_this)) + else + LAZYADD(program_cache, list(info_this)) + +/obj/machinery/computer/holodeck/proc/toggle_power(toggleOn = FALSE) + if(active == toggleOn) + return + + if(toggleOn) + if(last_program && last_program != offline_program) + addtimer(CALLBACK(src, .proc/load_program, last_program, TRUE), 25) + active = TRUE + else + last_program = program + load_program(offline_program, TRUE) + active = FALSE + +/obj/machinery/computer/holodeck/proc/emergency_shutdown() + last_program = program + load_program(offline_program, TRUE) + active = FALSE + +/obj/machinery/computer/holodeck/proc/floorcheck() + for(var/turf/T in linked) + if(!T.intact || isspaceturf(T)) + return FALSE + return TRUE + +/obj/machinery/computer/holodeck/proc/nerf(active) + for(var/obj/item/I in spawned) + I.damtype = active ? STAMINA : initial(I.damtype) + for(var/e in effects) + var/obj/effect/holodeck_effect/HE = e + HE.safety(active) + +/obj/machinery/computer/holodeck/proc/load_program(area/A, force = FALSE, add_delay = TRUE) + if(!is_operational()) + A = offline_program + force = TRUE + + if(program == A) + return + if(current_cd > world.time && !force) + say("ERROR. Recalibrating projection apparatus.") + return + if(add_delay) + current_cd = world.time + HOLODECK_CD + if(damaged) + current_cd += HOLODECK_DMG_CD + active = (A != offline_program) + use_power = active + IDLE_POWER_USE + + for(var/e in effects) + var/obj/effect/holodeck_effect/HE = e + HE.deactivate(src) + + for(var/item in spawned) + derez(item, force) + + program = A + // note nerfing does not yet work on guns, should + // should also remove/limit/filter reagents? + // this is an exercise left to others I'm afraid. -Sayu + spawned = A.copy_contents_to(linked, 1, nerf_weapons = !emagged) + for(var/obj/machinery/M in spawned) + M.flags |= NODECONSTRUCT + for(var/obj/structure/S in spawned) + S.flags |= NODECONSTRUCT + effects = list() + + addtimer(CALLBACK(src, .proc/finish_spawn), 30) + +/obj/machinery/computer/holodeck/proc/finish_spawn() + var/list/added = list() + for(var/obj/effect/holodeck_effect/HE in spawned) + effects += HE + spawned -= HE + var/atom/x = HE.activate(src) + if(istype(x) || islist(x)) + spawned += x // holocarp are not forever + added += x + for(var/obj/machinery/M in added) + M.flags |= NODECONSTRUCT + for(var/obj/structure/S in added) + S.flags |= NODECONSTRUCT + +/obj/machinery/computer/holodeck/proc/derez(obj/O, silent = TRUE, forced = FALSE) + // Emagging a machine creates an anomaly in the derez systems. + if(O && emagged && !stat && !forced) + if((ismob(O) || ismob(O.loc)) && prob(50)) + addtimer(CALLBACK(src, .proc/derez, O, silent), 50) // may last a disturbingly long time + return + + spawned -= O + if(!O) + return + var/turf/T = get_turf(O) + for(var/atom/movable/AM in O) // these should be derezed if they were generated + AM.forceMove(T) + if(ismob(AM)) + silent = FALSE // otherwise make sure they are dropped + + if(!silent) + visible_message("[O] fades away!") + qdel(O) + +#undef HOLODECK_CD +#undef HOLODECK_DMG_CD diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index b90f0503f9..25667706ab 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -97,3 +97,9 @@ /obj/effect/holodeck_effect/mobspawner/monkey mobtype = /mob/living/simple_animal/holodeck_monkey + +/obj/effect/holodeck_effect/mobspawner/penguin + mobtype = /mob/living/simple_animal/pet/penguin/emperor + +/obj/effect/holodeck_effect/mobspawner/penguin_baby + mobtype = /mob/living/simple_animal/pet/penguin/baby diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index bbd05444f4..561da5cc5c 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -1,221 +1,221 @@ -/* - Items, Structures, Machines -*/ - - -// -// Items -// - -/obj/item/weapon/holo - damtype = STAMINA - -/obj/item/weapon/holo/esword - name = "holographic energy sword" - desc = "May the force be with you. Sorta" - icon_state = "sword0" - force = 3.0 - throw_speed = 2 - throw_range = 5 - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - hitsound = "swing_hit" - armour_penetration = 50 - var/active = 0 - -/obj/item/weapon/holo/esword/green/New() - ..() - item_color = "green" - - -/obj/item/weapon/holo/esword/red/New() - ..() - item_color = "red" - -/obj/item/weapon/holo/esword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) - if(active) - return ..() - return 0 - -/obj/item/weapon/holo/esword/attack(target as mob, mob/user as mob) - ..() - -/obj/item/weapon/holo/esword/New() - item_color = pick("red","blue","green","purple") - ..() - -/obj/item/weapon/holo/esword/attack_self(mob/living/user as mob) - active = !active - if (active) - force = 30 - icon_state = "sword[item_color]" - w_class = WEIGHT_CLASS_BULKY - hitsound = 'sound/weapons/blade1.ogg' - playsound(user, 'sound/weapons/saberon.ogg', 20, 1) - to_chat(user, "[src] is now active.") - else - force = 3 - icon_state = "sword0" - w_class = WEIGHT_CLASS_SMALL - hitsound = "swing_hit" - playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) - to_chat(user, "[src] can now be concealed.") - return - -//BASKETBALL OBJECTS - -/obj/item/toy/beach_ball/holoball - name = "basketball" - icon = 'icons/obj/items.dmi' - icon_state = "basketball" - item_state = "basketball" - desc = "Here's your chance, do your dance at the Space Jam." - w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets - -/obj/item/toy/beach_ball/holoball/dodgeball - name = "dodgeball" - icon_state = "dodgeball" - item_state = "dodgeball" - desc = "Used for playing the most violent and degrading of childhood games." - -/obj/item/toy/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) - ..() - if((ishuman(hit_atom))) - var/mob/living/carbon/M = hit_atom - playsound(src, 'sound/items/dodgeball.ogg', 50, 1) - M.apply_damage(10, STAMINA) - if(prob(5)) - M.Weaken(3) - visible_message("[M] is knocked right off [M.p_their()] feet!") - -// -// Structures -// - -/obj/structure/holohoop - name = "basketball hoop" - desc = "Boom, shakalaka!" - icon = 'icons/obj/basketball.dmi' - icon_state = "hoop" - anchored = 1 - density = 1 - -/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(get_dist(src,user)<2) - if(user.drop_item(src)) - visible_message(" [user] dunks [W] into \the [src]!") - -/obj/structure/holohoop/attack_hand(mob/user) - if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) - var/mob/living/L = user.pulling - if(user.grab_state < GRAB_AGGRESSIVE) - to_chat(user, "You need a better grip to do that!") - return - L.loc = src.loc - L.Weaken(5) - visible_message("[user] dunks [L] into \the [src]!") - user.stop_pulling() - else - ..() - -/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) - if (istype(mover,/obj/item) && mover.throwing) - var/obj/item/I = mover - if(istype(I, /obj/item/projectile)) - return - if(prob(50)) - I.forceMove(get_turf(src)) - visible_message("Swish! [I] lands in [src].") - else - visible_message("[I] bounces off of [src]'s rim!") - return 0 - else - return ..() - - - -// -// Machines -// - -/obj/machinery/readybutton - name = "ready declaration device" - desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" - icon = 'icons/obj/monitors.dmi' - icon_state = "auth_off" - var/ready = 0 - var/area/currentarea = null - var/eventstarted = 0 - - anchored = 1.0 +/* + Items, Structures, Machines +*/ + + +// +// Items +// + +/obj/item/weapon/holo + damtype = STAMINA + +/obj/item/weapon/holo/esword + name = "holographic energy sword" + desc = "May the force be with you. Sorta" + icon_state = "sword0" + force = 3.0 + throw_speed = 2 + throw_range = 5 + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + hitsound = "swing_hit" + armour_penetration = 50 + var/active = 0 + +/obj/item/weapon/holo/esword/green/New() + ..() + item_color = "green" + + +/obj/item/weapon/holo/esword/red/New() + ..() + item_color = "red" + +/obj/item/weapon/holo/esword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(active) + return ..() + return 0 + +/obj/item/weapon/holo/esword/attack(target as mob, mob/user as mob) + ..() + +/obj/item/weapon/holo/esword/New() + item_color = pick("red","blue","green","purple") + ..() + +/obj/item/weapon/holo/esword/attack_self(mob/living/user as mob) + active = !active + if (active) + force = 30 + icon_state = "sword[item_color]" + w_class = WEIGHT_CLASS_BULKY + hitsound = 'sound/weapons/blade1.ogg' + playsound(user, 'sound/weapons/saberon.ogg', 20, 1) + to_chat(user, "[src] is now active.") + else + force = 3 + icon_state = "sword0" + w_class = WEIGHT_CLASS_SMALL + hitsound = "swing_hit" + playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) + to_chat(user, "[src] can now be concealed.") + return + +//BASKETBALL OBJECTS + +/obj/item/toy/beach_ball/holoball + name = "basketball" + icon = 'icons/obj/items.dmi' + icon_state = "basketball" + item_state = "basketball" + desc = "Here's your chance, do your dance at the Space Jam." + w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets + +/obj/item/toy/beach_ball/holoball/dodgeball + name = "dodgeball" + icon_state = "dodgeball" + item_state = "dodgeball" + desc = "Used for playing the most violent and degrading of childhood games." + +/obj/item/toy/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) + ..() + if((ishuman(hit_atom))) + var/mob/living/carbon/M = hit_atom + playsound(src, 'sound/items/dodgeball.ogg', 50, 1) + M.apply_damage(10, STAMINA) + if(prob(5)) + M.Knockdown(60) + visible_message("[M] is knocked right off [M.p_their()] feet!") + +// +// Structures +// + +/obj/structure/holohoop + name = "basketball hoop" + desc = "Boom, shakalaka!" + icon = 'icons/obj/basketball.dmi' + icon_state = "hoop" + anchored = 1 + density = 1 + +/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(get_dist(src,user)<2) + if(user.drop_item(src)) + visible_message(" [user] dunks [W] into \the [src]!") + +/obj/structure/holohoop/attack_hand(mob/user) + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(user.grab_state < GRAB_AGGRESSIVE) + to_chat(user, "You need a better grip to do that!") + return + L.loc = src.loc + L.Knockdown(100) + visible_message("[user] dunks [L] into \the [src]!") + user.stop_pulling() + else + ..() + +/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) + if (isitem(mover) && mover.throwing) + var/obj/item/I = mover + if(istype(I, /obj/item/projectile)) + return + if(prob(50)) + I.forceMove(get_turf(src)) + visible_message("Swish! [I] lands in [src].") + else + visible_message("[I] bounces off of [src]'s rim!") + return 0 + else + return ..() + + + +// +// Machines +// + +/obj/machinery/readybutton + name = "ready declaration device" + desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" + icon = 'icons/obj/monitors.dmi' + icon_state = "auth_off" + var/ready = 0 + var/area/currentarea = null + var/eventstarted = 0 + + anchored = 1.0 use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 - power_channel = ENVIRON - -/obj/machinery/readybutton/attack_ai(mob/user as mob) - to_chat(user, "The station AI is not to interact with these devices") - return - -/obj/machinery/readybutton/attack_paw(mob/user as mob) - to_chat(user, "You are too primitive to use this device!") - return - -/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - to_chat(user, "The device is a solid button, there's nothing you can do with it!") - -/obj/machinery/readybutton/attack_hand(mob/user as mob) - if(user.stat || stat & (NOPOWER|BROKEN)) - to_chat(user, "This device is not powered!") - return - - currentarea = get_area(src.loc) - if(!currentarea) - qdel(src) - - if(eventstarted) - to_chat(usr, "The event has already begun!") - return - - ready = !ready - - update_icon() - - var/numbuttons = 0 - var/numready = 0 - for(var/obj/machinery/readybutton/button in currentarea) - numbuttons++ - if (button.ready) - numready++ - - if(numbuttons == numready) - begin_event() - -/obj/machinery/readybutton/update_icon() - if(ready) - icon_state = "auth_on" - else - icon_state = "auth_off" - -/obj/machinery/readybutton/proc/begin_event() - - eventstarted = 1 - - for(var/obj/structure/window/W in currentarea) - if(W.flags&NODECONSTRUCT) // Just in case: only holo-windows - qdel(W) - - for(var/mob/M in currentarea) - to_chat(M, "FIGHT!") - -/obj/machinery/conveyor/holodeck - -/obj/machinery/conveyor/holodeck/attackby(obj/item/I, mob/user, params) - if(user.drop_item()) - I.loc = src.loc - else - return ..() - -/obj/item/weapon/paper/trek_diploma - name = "paper - Starfleet Academy Diploma" - info = {"

    Starfleet Academy


    Official Diploma


    "} + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + +/obj/machinery/readybutton/attack_ai(mob/user as mob) + to_chat(user, "The station AI is not to interact with these devices") + return + +/obj/machinery/readybutton/attack_paw(mob/user as mob) + to_chat(user, "You are too primitive to use this device!") + return + +/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + to_chat(user, "The device is a solid button, there's nothing you can do with it!") + +/obj/machinery/readybutton/attack_hand(mob/user as mob) + if(user.stat || stat & (NOPOWER|BROKEN)) + to_chat(user, "This device is not powered!") + return + + currentarea = get_area(src.loc) + if(!currentarea) + qdel(src) + + if(eventstarted) + to_chat(usr, "The event has already begun!") + return + + ready = !ready + + update_icon() + + var/numbuttons = 0 + var/numready = 0 + for(var/obj/machinery/readybutton/button in currentarea) + numbuttons++ + if (button.ready) + numready++ + + if(numbuttons == numready) + begin_event() + +/obj/machinery/readybutton/update_icon() + if(ready) + icon_state = "auth_on" + else + icon_state = "auth_off" + +/obj/machinery/readybutton/proc/begin_event() + + eventstarted = 1 + + for(var/obj/structure/window/W in currentarea) + if(W.flags&NODECONSTRUCT) // Just in case: only holo-windows + qdel(W) + + for(var/mob/M in currentarea) + to_chat(M, "FIGHT!") + +/obj/machinery/conveyor/holodeck + +/obj/machinery/conveyor/holodeck/attackby(obj/item/I, mob/user, params) + if(user.drop_item()) + I.loc = src.loc + else + return ..() + +/obj/item/weapon/paper/trek_diploma + name = "paper - Starfleet Academy Diploma" + info = {"

    Starfleet Academy


    Official Diploma


    "} diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 0d008f0b53..3b841a6da7 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -1,337 +1,337 @@ -/obj/machinery/biogenerator +/obj/machinery/biogenerator name = "biogenerator" - desc = "Converts plants into biomass, which can be used to construct useful items." - icon = 'icons/obj/biogenerator.dmi' - icon_state = "biogen-empty" - density = 1 - anchored = 1 + desc = "Converts plants into biomass, which can be used to construct useful items." + icon = 'icons/obj/biogenerator.dmi' + icon_state = "biogen-empty" + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 40 - var/processing = 0 - var/obj/item/weapon/reagent_containers/glass/beaker = null - var/points = 0 - var/menustat = "menu" - var/efficiency = 0 - var/productivity = 0 - var/max_items = 40 - var/datum/research/files - var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth") - var/list/timesFiveCategories = list("Food", "Botany Chemicals") - -/obj/machinery/biogenerator/New() - ..() - files = new /datum/research/biogenerator(src) - create_reagents(1000) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null) - B.apply_default_parts(src) - -/obj/machinery/biogenerator/Destroy() - if(beaker) - qdel(beaker) - beaker = null - return ..() - -/obj/machinery/biogenerator/contents_explosion(severity, target) - ..() - if(beaker) - beaker.ex_act(severity, target) - -/obj/machinery/biogenerator/handle_atom_del(atom/A) - ..() - if(A == beaker) - beaker = null - update_icon() - updateUsrDialog() - -/obj/item/weapon/circuitboard/machine/biogenerator - name = "Biogenerator (Machine Board)" - build_path = /obj/machinery/biogenerator - origin_tech = "programming=2;biotech=3;materials=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/machinery/biogenerator/RefreshParts() - var/E = 0 - var/P = 0 - var/max_storage = 40 - for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) - P += B.rating - max_storage = 40 * B.rating - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - E += M.rating - efficiency = E - productivity = P - max_items = max_storage - -/obj/machinery/biogenerator/on_reagent_change() //When the reagents change, change the icon as well. - update_icon() - -/obj/machinery/biogenerator/update_icon() - if(panel_open) - icon_state = "biogen-empty-o" - else if(!src.beaker) - icon_state = "biogen-empty" - else if(!src.processing) - icon_state = "biogen-stand" - else - icon_state = "biogen-work" - return - -/obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params) - if(user.a_intent == INTENT_HARM) - return ..() - - if(processing) - to_chat(user, "The biogenerator is currently processing.") - return - - if(default_deconstruction_screwdriver(user, "biogen-empty-o", "biogen-empty", O)) - if(beaker) - var/obj/item/weapon/reagent_containers/glass/B = beaker - B.loc = loc - beaker = null - update_icon() - return - - if(exchange_parts(user, O)) - return - - if(default_deconstruction_crowbar(O)) - return - - if(istype(O, /obj/item/weapon/reagent_containers/glass)) - . = 1 //no afterattack - if(!panel_open) - if(beaker) - to_chat(user, "A container is already loaded into the machine.") - else - if(!user.drop_item()) - return - O.loc = src - beaker = O - to_chat(user, "You add the container to the machine.") - update_icon() - updateUsrDialog() - else - to_chat(user, "Close the maintenance panel first.") - return - - else if(istype(O, /obj/item/weapon/storage/bag/plants)) - var/obj/item/weapon/storage/bag/plants/PB = O - var/i = 0 - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) - i++ - if(i >= max_items) - to_chat(user, "The biogenerator is already full! Activate it.") - else - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in PB.contents) - if(i >= max_items) - break - PB.remove_from_storage(G, src) - i++ - if(iYou empty the plant bag into the biogenerator.
    ") - else if(PB.contents.len == 0) - to_chat(user, "You empty the plant bag into the biogenerator, filling it to its capacity.") - else - to_chat(user, "You fill the biogenerator to its capacity.") - return 1 //no afterattack - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) - var/i = 0 - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) - i++ - if(i >= max_items) - to_chat(user, "The biogenerator is full! Activate it.") - else - if(user.transferItemToLoc(O, src)) - to_chat(user, "You put [O.name] in [src.name]") - return 1 //no afterattack - else if (istype(O, /obj/item/weapon/disk/design_disk)) - user.visible_message("[user] begins to load \the [O] in \the [src]...", - "You begin to load a design from \the [O]...", - "You hear the chatter of a floppy drive.") - processing = 1 - var/obj/item/weapon/disk/design_disk/D = O - if(do_after(user, 10, target = src)) - for(var/B in D.blueprints) - if(B) - files.AddDesign2Known(B) - processing = 0 - return 1 - else - to_chat(user, "You cannot put this in [src.name]!") - -/obj/machinery/biogenerator/interact(mob/user) - if(stat & BROKEN || panel_open) - return - user.set_machine(src) - var/dat - if(processing) - dat += "
    Biogenerator is processing! Please wait...

    " - else - switch(menustat) - if("nopoints") - dat += "
    You do not have enough biomass to create products.
    Please, put growns into reactor and activate it.
    " - menustat = "menu" - if("complete") - dat += "
    Operation complete.
    " - menustat = "menu" - if("void") - dat += "
    Error: No growns inside.
    Please, put growns into reactor.
    " - menustat = "menu" - if("nobeakerspace") - dat += "
    Not enough space left in container. Unable to create product.
    " - menustat = "menu" - if(beaker) - var/categories = show_categories.Copy() - for(var/V in categories) - categories[V] = list() - for(var/V in files.known_designs) - var/datum/design/D = files.known_designs[V] - for(var/C in categories) - if(C in D.category) - categories[C] += D - - dat += "
    Biomass: [points] units.

    " - dat += "ActivateDetach Container" - for(var/cat in categories) - dat += "

    [cat]:

    " - dat += "
    " - for(var/V in categories[cat]) - var/datum/design/D = V - dat += "[D.name]: Make" - if(cat in timesFiveCategories) - dat += "x5" - if(ispath(D.build_path, /obj/item/stack)) - dat += "x10" - dat += "([D.materials[MAT_BIOMASS]/efficiency])
    " - dat += "
    " - else - dat += "
    No container inside, please insert container.
    " - - var/datum/browser/popup = new(user, "biogen", name, 350, 520) - popup.set_content(dat) - popup.open() - return - -/obj/machinery/biogenerator/attack_hand(mob/user) - interact(user) - -/obj/machinery/biogenerator/proc/activate() - if (usr.stat != 0) - return - if (src.stat != 0) //NOPOWER etc - return - if(processing) - to_chat(usr, "The biogenerator is in the process of working.") - return - var/S = 0 - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/I in contents) - S += 5 - if(I.reagents.get_reagent_amount("nutriment") < 0.1) - points += 1*productivity - else points += I.reagents.get_reagent_amount("nutriment")*10*productivity - qdel(I) - if(S) - processing = 1 - update_icon() - updateUsrDialog() - playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) - use_power(S*30) - sleep(S+15/productivity) - processing = 0 - update_icon() - else - menustat = "void" - return - -/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1) - if(materials.len != 1 || materials[1] != MAT_BIOMASS) - return 0 - if (materials[MAT_BIOMASS]*multiplier/efficiency > points) - menustat = "nopoints" - return 0 - else - if(remove_points) - points -= materials[MAT_BIOMASS]*multiplier/efficiency - update_icon() - updateUsrDialog() - return 1 - -/obj/machinery/biogenerator/proc/check_container_volume(list/reagents, multiplier = 1) - var/sum_reagents = 0 - for(var/R in reagents) - sum_reagents += reagents[R] - sum_reagents *= multiplier - - if(beaker.reagents.total_volume + sum_reagents > beaker.reagents.maximum_volume) - menustat = "nobeakerspace" - return 0 - - return 1 - -/obj/machinery/biogenerator/proc/create_product(datum/design/D, amount) - if(!beaker || !loc) - return 0 - - if(ispath(D.build_path, /obj/item/stack)) - if(!check_container_volume(D.make_reagents, amount)) - return 0 - if(!check_cost(D.materials, amount)) - return 0 - - var/obj/item/stack/product = new D.build_path(loc) - product.amount = amount - for(var/R in D.make_reagents) - beaker.reagents.add_reagent(R, D.make_reagents[R]*amount) - else - var/i = amount - while(i > 0) - if(!check_container_volume(D.make_reagents)) - return . - if(!check_cost(D.materials)) - return . - if(D.build_path) - new D.build_path(loc) - for(var/R in D.make_reagents) - beaker.reagents.add_reagent(R, D.make_reagents[R]) - . = 1 - --i - - menustat = "complete" - update_icon() - return . - -/obj/machinery/biogenerator/proc/detach() - if(beaker) - beaker.loc = src.loc - beaker = null - update_icon() - -/obj/machinery/biogenerator/Topic(href, href_list) - if(..() || panel_open) - return - - usr.set_machine(src) - - if(href_list["activate"]) - activate() - updateUsrDialog() - - else if(href_list["detach"]) - detach() - updateUsrDialog() - - else if(href_list["create"]) - var/amount = (text2num(href_list["amount"])) - var/datum/design/D = locate(href_list["create"]) - create_product(D, amount) - updateUsrDialog() - - else if(href_list["menu"]) - menustat = "menu" - updateUsrDialog() + idle_power_usage = 40 + var/processing = 0 + var/obj/item/weapon/reagent_containers/glass/beaker = null + var/points = 0 + var/menustat = "menu" + var/efficiency = 0 + var/productivity = 0 + var/max_items = 40 + var/datum/research/files + var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth") + var/list/timesFiveCategories = list("Food", "Botany Chemicals") + +/obj/machinery/biogenerator/New() + ..() + files = new /datum/research/biogenerator(src) + create_reagents(1000) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null) + B.apply_default_parts(src) + +/obj/machinery/biogenerator/Destroy() + if(beaker) + qdel(beaker) + beaker = null + return ..() + +/obj/machinery/biogenerator/contents_explosion(severity, target) + ..() + if(beaker) + beaker.ex_act(severity, target) + +/obj/machinery/biogenerator/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + update_icon() + updateUsrDialog() + +/obj/item/weapon/circuitboard/machine/biogenerator + name = "Biogenerator (Machine Board)" + build_path = /obj/machinery/biogenerator + origin_tech = "programming=2;biotech=3;materials=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/biogenerator/RefreshParts() + var/E = 0 + var/P = 0 + var/max_storage = 40 + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + P += B.rating + max_storage = 40 * B.rating + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + E += M.rating + efficiency = E + productivity = P + max_items = max_storage + +/obj/machinery/biogenerator/on_reagent_change() //When the reagents change, change the icon as well. + update_icon() + +/obj/machinery/biogenerator/update_icon() + if(panel_open) + icon_state = "biogen-empty-o" + else if(!src.beaker) + icon_state = "biogen-empty" + else if(!src.processing) + icon_state = "biogen-stand" + else + icon_state = "biogen-work" + return + +/obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params) + if(user.a_intent == INTENT_HARM) + return ..() + + if(processing) + to_chat(user, "The biogenerator is currently processing.") + return + + if(default_deconstruction_screwdriver(user, "biogen-empty-o", "biogen-empty", O)) + if(beaker) + var/obj/item/weapon/reagent_containers/glass/B = beaker + B.loc = loc + beaker = null + update_icon() + return + + if(exchange_parts(user, O)) + return + + if(default_deconstruction_crowbar(O)) + return + + if(istype(O, /obj/item/weapon/reagent_containers/glass)) + . = 1 //no afterattack + if(!panel_open) + if(beaker) + to_chat(user, "A container is already loaded into the machine.") + else + if(!user.drop_item()) + return + O.loc = src + beaker = O + to_chat(user, "You add the container to the machine.") + update_icon() + updateUsrDialog() + else + to_chat(user, "Close the maintenance panel first.") + return + + else if(istype(O, /obj/item/weapon/storage/bag/plants)) + var/obj/item/weapon/storage/bag/plants/PB = O + var/i = 0 + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) + i++ + if(i >= max_items) + to_chat(user, "The biogenerator is already full! Activate it.") + else + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in PB.contents) + if(i >= max_items) + break + PB.remove_from_storage(G, src) + i++ + if(iYou empty the plant bag into the biogenerator.
    ") + else if(PB.contents.len == 0) + to_chat(user, "You empty the plant bag into the biogenerator, filling it to its capacity.") + else + to_chat(user, "You fill the biogenerator to its capacity.") + return 1 //no afterattack + + else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/i = 0 + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) + i++ + if(i >= max_items) + to_chat(user, "The biogenerator is full! Activate it.") + else + if(user.transferItemToLoc(O, src)) + to_chat(user, "You put [O.name] in [src.name]") + return 1 //no afterattack + else if (istype(O, /obj/item/weapon/disk/design_disk)) + user.visible_message("[user] begins to load \the [O] in \the [src]...", + "You begin to load a design from \the [O]...", + "You hear the chatter of a floppy drive.") + processing = 1 + var/obj/item/weapon/disk/design_disk/D = O + if(do_after(user, 10, target = src)) + for(var/B in D.blueprints) + if(B) + files.AddDesign2Known(B) + processing = 0 + return 1 + else + to_chat(user, "You cannot put this in [src.name]!") + +/obj/machinery/biogenerator/interact(mob/user) + if(stat & BROKEN || panel_open) + return + user.set_machine(src) + var/dat + if(processing) + dat += "
    Biogenerator is processing! Please wait...

    " + else + switch(menustat) + if("nopoints") + dat += "
    You do not have enough biomass to create products.
    Please, put growns into reactor and activate it.
    " + menustat = "menu" + if("complete") + dat += "
    Operation complete.
    " + menustat = "menu" + if("void") + dat += "
    Error: No growns inside.
    Please, put growns into reactor.
    " + menustat = "menu" + if("nobeakerspace") + dat += "
    Not enough space left in container. Unable to create product.
    " + menustat = "menu" + if(beaker) + var/categories = show_categories.Copy() + for(var/V in categories) + categories[V] = list() + for(var/V in files.known_designs) + var/datum/design/D = files.known_designs[V] + for(var/C in categories) + if(C in D.category) + categories[C] += D + + dat += "
    Biomass: [points] units.

    " + dat += "ActivateDetach Container" + for(var/cat in categories) + dat += "

    [cat]:

    " + dat += "
    " + for(var/V in categories[cat]) + var/datum/design/D = V + dat += "[D.name]: Make" + if(cat in timesFiveCategories) + dat += "x5" + if(ispath(D.build_path, /obj/item/stack)) + dat += "x10" + dat += "([D.materials[MAT_BIOMASS]/efficiency])
    " + dat += "
    " + else + dat += "
    No container inside, please insert container.
    " + + var/datum/browser/popup = new(user, "biogen", name, 350, 520) + popup.set_content(dat) + popup.open() + return + +/obj/machinery/biogenerator/attack_hand(mob/user) + interact(user) + +/obj/machinery/biogenerator/proc/activate() + if (usr.stat != 0) + return + if (src.stat != 0) //NOPOWER etc + return + if(processing) + to_chat(usr, "The biogenerator is in the process of working.") + return + var/S = 0 + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/I in contents) + S += 5 + if(I.reagents.get_reagent_amount("nutriment") < 0.1) + points += 1*productivity + else points += I.reagents.get_reagent_amount("nutriment")*10*productivity + qdel(I) + if(S) + processing = 1 + update_icon() + updateUsrDialog() + playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) + use_power(S*30) + sleep(S+15/productivity) + processing = 0 + update_icon() + else + menustat = "void" + return + +/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1) + if(materials.len != 1 || materials[1] != MAT_BIOMASS) + return 0 + if (materials[MAT_BIOMASS]*multiplier/efficiency > points) + menustat = "nopoints" + return 0 + else + if(remove_points) + points -= materials[MAT_BIOMASS]*multiplier/efficiency + update_icon() + updateUsrDialog() + return 1 + +/obj/machinery/biogenerator/proc/check_container_volume(list/reagents, multiplier = 1) + var/sum_reagents = 0 + for(var/R in reagents) + sum_reagents += reagents[R] + sum_reagents *= multiplier + + if(beaker.reagents.total_volume + sum_reagents > beaker.reagents.maximum_volume) + menustat = "nobeakerspace" + return 0 + + return 1 + +/obj/machinery/biogenerator/proc/create_product(datum/design/D, amount) + if(!beaker || !loc) + return 0 + + if(ispath(D.build_path, /obj/item/stack)) + if(!check_container_volume(D.make_reagents, amount)) + return 0 + if(!check_cost(D.materials, amount)) + return 0 + + var/obj/item/stack/product = new D.build_path(loc) + product.amount = amount + for(var/R in D.make_reagents) + beaker.reagents.add_reagent(R, D.make_reagents[R]*amount) + else + var/i = amount + while(i > 0) + if(!check_container_volume(D.make_reagents)) + return . + if(!check_cost(D.materials)) + return . + if(D.build_path) + new D.build_path(loc) + for(var/R in D.make_reagents) + beaker.reagents.add_reagent(R, D.make_reagents[R]) + . = 1 + --i + + menustat = "complete" + update_icon() + return . + +/obj/machinery/biogenerator/proc/detach() + if(beaker) + beaker.loc = src.loc + beaker = null + update_icon() + +/obj/machinery/biogenerator/Topic(href, href_list) + if(..() || panel_open) + return + + usr.set_machine(src) + + if(href_list["activate"]) + activate() + updateUsrDialog() + + else if(href_list["detach"]) + detach() + updateUsrDialog() + + else if(href_list["create"]) + var/amount = (text2num(href_list["amount"])) + var/datum/design/D = locate(href_list["create"]) + create_product(D, amount) + updateUsrDialog() + + else if(href_list["menu"]) + menustat = "menu" + updateUsrDialog() diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index c614aa423b..00d2e099a1 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -368,6 +368,7 @@ seed.genes += disk.gene.Copy() if(istype(disk.gene, /datum/plant_gene/reagent)) seed.reagents_from_genes() + disk.gene.apply_vars(seed) repaint_seed() diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 5104ab333a..5efd440c9b 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -1,148 +1,148 @@ -// *********************************************************** -// Foods that are produced from hydroponics ~~~~~~~~~~ -// Data from the seeds carry over to these grown foods -// *********************************************************** - -// Base type. Subtypes are found in /grown dir. -/obj/item/weapon/reagent_containers/food/snacks/grown - icon = 'icons/obj/hydroponics/harvest.dmi' - var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item. - var/plantname = "" - var/bitesize_mod = 0 - var/splat_type = /obj/effect/decal/cleanable/plant_smudge - // If set, bitesize = 1 + round(reagents.total_volume / bitesize_mod) - dried_type = -1 - // Saves us from having to define each stupid grown's dried_type as itself. - // If you don't want a plant to be driable (watermelons) set this to null in the time definition. - resistance_flags = FLAMMABLE - origin_tech = "biotech=1" - -/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc, var/obj/item/seeds/new_seed = null) - tastes = list(name = 1) // apples taste of apple, silly. - ..() - if(new_seed) - seed = new_seed.Copy() - else if(ispath(seed)) - // This is for adminspawn or map-placed growns. They get the default stats of their seed type. - seed = new seed() - seed.adjust_potency(50-seed.potency) - - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - - if(dried_type == -1) - dried_type = src.type - - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_new(src, newloc) - seed.prepare_result(src) - transform *= TransformUsingVariable(seed.potency, 100, 0.5) //Makes the resulting produce's sprite larger or smaller based on potency! - add_juice() - - - -/obj/item/weapon/reagent_containers/food/snacks/grown/proc/add_juice() - if(reagents) - if(bitesize_mod) - bitesize = 1 + round(reagents.total_volume / bitesize_mod) - return 1 - return 0 - -/obj/item/weapon/reagent_containers/food/snacks/grown/examine(user) - ..() - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - if(T.examine_line) - to_chat(user, T.examine_line) - -/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params) - ..() - if (istype(O, /obj/item/device/plant_analyzer)) - var/msg = "*---------*\n This is \a [src].\n" - if(seed) - msg += seed.get_analyzer_text() - var/reag_txt = "" - if(seed) - for(var/reagent_id in seed.reagents_add) - var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] - var/amt = reagents.get_reagent_amount(reagent_id) - reag_txt += "\n- [R.name]: [amt]" - - if(reag_txt) - msg += reag_txt - msg += "
    *---------*" - to_chat(user, msg) - else - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_attackby(src, O, user) - - -// Various gene procs -/obj/item/weapon/reagent_containers/food/snacks/grown/attack_self(mob/user) - if(seed && seed.get_gene(/datum/plant_gene/trait/squash)) - squash(user) - ..() - -/obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) - if(!..()) //was it caught by a mob? - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_throw_impact(src, hit_atom) - if(seed.get_gene(/datum/plant_gene/trait/squash)) - squash(hit_atom) - -/obj/item/weapon/reagent_containers/food/snacks/grown/proc/squash(atom/target) - var/turf/T = get_turf(target) - if(ispath(splat_type, /obj/effect/decal/cleanable/plant_smudge)) - if(filling_color) - var/obj/O = new splat_type(T) - O.color = filling_color - O.name = "[name] smudge" - else if(splat_type) - new splat_type(T) - - if(trash) - generate_trash(T) - - visible_message("[src] has been squashed.","You hear a smack.") - if(seed) - for(var/datum/plant_gene/trait/trait in seed.genes) - trait.on_squash(src, target) - +// *********************************************************** +// Foods that are produced from hydroponics ~~~~~~~~~~ +// Data from the seeds carry over to these grown foods +// *********************************************************** + +// Base type. Subtypes are found in /grown dir. +/obj/item/weapon/reagent_containers/food/snacks/grown + icon = 'icons/obj/hydroponics/harvest.dmi' + var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item. + var/plantname = "" + var/bitesize_mod = 0 + var/splat_type = /obj/effect/decal/cleanable/plant_smudge + // If set, bitesize = 1 + round(reagents.total_volume / bitesize_mod) + dried_type = -1 + // Saves us from having to define each stupid grown's dried_type as itself. + // If you don't want a plant to be driable (watermelons) set this to null in the time definition. + resistance_flags = FLAMMABLE + origin_tech = "biotech=1" + +/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc, var/obj/item/seeds/new_seed = null) + tastes = list(name = 1) // apples taste of apple, silly. + ..() + if(new_seed) + seed = new_seed.Copy() + else if(ispath(seed)) + // This is for adminspawn or map-placed growns. They get the default stats of their seed type. + seed = new seed() + seed.adjust_potency(50-seed.potency) + + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + + if(dried_type == -1) + dried_type = src.type + + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_new(src, newloc) + seed.prepare_result(src) + transform *= TransformUsingVariable(seed.potency, 100, 0.5) //Makes the resulting produce's sprite larger or smaller based on potency! + add_juice() + + + +/obj/item/weapon/reagent_containers/food/snacks/grown/proc/add_juice() + if(reagents) + if(bitesize_mod) + bitesize = 1 + round(reagents.total_volume / bitesize_mod) + return 1 + return 0 + +/obj/item/weapon/reagent_containers/food/snacks/grown/examine(user) + ..() + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + if(T.examine_line) + to_chat(user, T.examine_line) + +/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params) + ..() + if (istype(O, /obj/item/device/plant_analyzer)) + var/msg = "*---------*\n This is \a [src].\n" + if(seed) + msg += seed.get_analyzer_text() + var/reag_txt = "" + if(seed) + for(var/reagent_id in seed.reagents_add) + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] + var/amt = reagents.get_reagent_amount(reagent_id) + reag_txt += "\n- [R.name]: [amt]" + + if(reag_txt) + msg += reag_txt + msg += "
    *---------*" + to_chat(user, msg) + else + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_attackby(src, O, user) + + +// Various gene procs +/obj/item/weapon/reagent_containers/food/snacks/grown/attack_self(mob/user) + if(seed && seed.get_gene(/datum/plant_gene/trait/squash)) + squash(user) + ..() + +/obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) + if(!..()) //was it caught by a mob? + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_throw_impact(src, hit_atom) + if(seed.get_gene(/datum/plant_gene/trait/squash)) + squash(hit_atom) + +/obj/item/weapon/reagent_containers/food/snacks/grown/proc/squash(atom/target) + var/turf/T = get_turf(target) + if(ispath(splat_type, /obj/effect/decal/cleanable/plant_smudge)) + if(filling_color) + var/obj/O = new splat_type(T) + O.color = filling_color + O.name = "[name] smudge" + else if(splat_type) + new splat_type(T) + + if(trash) + generate_trash(T) + + visible_message("[src] has been squashed.","You hear a smack.") + if(seed) + for(var/datum/plant_gene/trait/trait in seed.genes) + trait.on_squash(src, target) + reagents.reaction(T) - for(var/A in T) - reagents.reaction(A) - - qdel(src) - -/obj/item/weapon/reagent_containers/food/snacks/grown/On_Consume() - if(iscarbon(usr)) - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_consume(src, usr) - ..() - -/obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM) - if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_cross(src, AM) - ..() - - -/obj/item/weapon/reagent_containers/food/snacks/grown/generate_trash(atom/location) - if(trash && ispath(trash, /obj/item/weapon/grown)) - . = new trash(location, seed) - trash = null - return - return ..() - -// For item-containing growns such as eggy or gatfruit -/obj/item/weapon/reagent_containers/food/snacks/grown/shell/attack_self(mob/user) - var/obj/item/T - if(trash) - T = generate_trash() - qdel(src) - user.putItemFromInventoryInHandIfPossible(T, user.active_hand_index, TRUE) - to_chat(user, "You open [src]\'s shell, revealing \a [T].") + for(var/A in T) + reagents.reaction(A) + + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/grown/On_Consume() + if(iscarbon(usr)) + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_consume(src, usr) + ..() + +/obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM) + if(seed) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_cross(src, AM) + ..() + + +/obj/item/weapon/reagent_containers/food/snacks/grown/generate_trash(atom/location) + if(trash && ispath(trash, /obj/item/weapon/grown)) + . = new trash(location, seed) + trash = null + return + return ..() + +// For item-containing growns such as eggy or gatfruit +/obj/item/weapon/reagent_containers/food/snacks/grown/shell/attack_self(mob/user) + var/obj/item/T + if(trash) + T = generate_trash() + qdel(src) + user.putItemFromInventoryInHandIfPossible(T, user.active_hand_index, TRUE) + to_chat(user, "You open [src]\'s shell, revealing \a [T].") diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 0fee6e8476..91b096bc38 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -117,5 +117,5 @@ /obj/item/weapon/grown/bananapeel/specialpeel/Crossed(AM) if(iscarbon(AM)) var/mob/living/carbon/carbon = AM - if(carbon.slip(2, 2, src, FALSE)) + if(carbon.slip(40, src, FALSE)) qdel(src) diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 7813095700..7707a4d438 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -78,7 +78,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user) ..() - if( istype(src.loc, /mob) ) + if( ismob(src.loc) ) held_mob = src.loc START_PROCESSING(SSobj, src) diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 3f89618c09..4581f676fe 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -154,3 +154,15 @@ playsound(src, 'sound/effects/fuse.ogg', seed.potency, 0) reagents.chem_temp = 1000 //Sets off the black powder reagents.handle_reactions() + +// Lavaland cactus + +/obj/item/seeds/lavaland/cactus + name = "pack of fruiting cactus seeds" + desc = "These seeds grow into fruiting cacti." + icon_state = "seed-cactus" + species = "cactus" + plantname = "Fruiting Cactus" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit + growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' + growthstages = 2 \ No newline at end of file diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index fc34fbad83..7b52562ff0 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -308,3 +308,66 @@ if(.) investigate_log("was planted by [key_name(user)] at [COORD(user)]", INVESTIGATE_BOTANY) +//// LAVALAND MUSHROOMS //// + +// Bracket (Shaving mushroom) + +/obj/item/seeds/lavaland + name = "lavaland seeds" + desc = "You should never see this." + lifespan = 50 + endurance = 25 + maturation = 7 + production = 4 + yield = 4 + potency = 15 + growthstages = 3 + rarity = 20 + reagents_add = list("nutriment" = 0.1) + resistance_flags = FIRE_PROOF + +/obj/item/seeds/lavaland/polypore + name = "pack of polypore mycelium" + desc = "This mycelium grows into bracket mushrooms, also known as polypores. Woody and firm, shaft miners often use them for makeshift crafts." + icon_state = "mycelium-polypore" + species = "polypore" + plantname = "Polypore Mushrooms" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + +// Porcini (Leafy mushroom) + +/obj/item/seeds/lavaland/porcini + name = "pack of porcini mycelium" + desc = "This mycelium grows into Boletus edulus, also known as porcini. Native to the late Earth, but discovered on Lavaland. Has culinary, medicinal and relaxant effects." + icon_state = "mycelium-porcini" + species = "porcini" + plantname = "Porcini Mushrooms" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + +// Inocybe (Mushroom caps) + +/obj/item/seeds/lavaland/inocybe + name = "pack of inocybe mycelium" + desc = "This mycelium grows into an inocybe mushroom, a species of Lavaland origin with hallucinatory and toxic effects." + icon_state = "mycelium-inocybe" + species = "inocybe" + plantname = "Inocybe Mushrooms" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + +// Embershroom (Mushroom stem) + +/obj/item/seeds/lavaland/ember + name = "pack of embershroom mycelium" + desc = "This mycelium grows into embershrooms, a species of bioluminescent mushrooms native to Lavaland." + icon_state = "mycelium-ember" + species = "ember" + plantname = "Embershroom Mushrooms" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' \ No newline at end of file diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index 82cc192344..169812042f 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -98,8 +98,8 @@ /obj/item/weapon/grown/nettle/death/pickup(mob/living/carbon/user) if(..()) if(prob(50)) - user.Paralyse(5) - to_chat(user, "You are stunned by the Deathnettle when you try picking it up!") + user.Knockdown(100) + to_chat(user, "You are stunned by the Deathnettle as you try picking it up!") /obj/item/weapon/grown/nettle/death/attack(mob/living/carbon/M, mob/user) if(!..()) @@ -110,6 +110,6 @@ M.adjust_blurriness(force/7) if(prob(20)) - M.Paralyse(force / 6) - M.Weaken(force / 15) + M.Unconscious(force / 0.3) + M.Knockdown(force / 0.75) M.drop_item() diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 5a21cb14e5..0b3c7169c8 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -50,6 +50,9 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/weapon/reagent_containers/food/snacks/grown/wheat) +/obj/item/weapon/grown/log/Initialize() + . = ..() + accepted = typecacheof(accepted) /obj/item/weapon/grown/log/attackby(obj/item/weapon/W, mob/user, params) if(W.sharpness) @@ -66,7 +69,7 @@ to_chat(user, "You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].") qdel(src) - if(is_type_in_list(W,accepted)) + if(is_type_in_typecache(W,accepted)) var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W if(leaf.dry) user.show_message("You wrap \the [W] around the log, turning it into a torch!") @@ -103,6 +106,7 @@ desc = "For grilling, broiling, charring, smoking, heating, roasting, toasting, simmering, searing, melting, and occasionally burning things." icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "bonfire" + light_color = LIGHT_COLOR_FIRE density = FALSE anchored = TRUE buckle_lying = 0 @@ -110,6 +114,16 @@ var/grill = FALSE var/fire_stack_strength = 5 +/obj/structure/bonfire/dense + density = TRUE + +/obj/structure/bonfire/CanPass(atom/movable/mover, turf/target) + if(istype(mover) && mover.checkpass(PASSTABLE)) + return TRUE + if(mover.throwing) + return TRUE + return ..() + /obj/structure/bonfire/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/rods) && !can_buckle && !grill) var/obj/item/stack/rods/R = W @@ -127,8 +141,7 @@ R.use(1) grill = TRUE to_chat(user, "You add a grill to \the [src].") - var/mutable_appearance/grill_overlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_grill") - overlays += grill_overlay + add_overlay("bonfire_grill") else return ..() if(W.is_hot()) @@ -157,6 +170,8 @@ var/obj/item/weapon/grown/log/L = new /obj/item/weapon/grown/log(src.loc) L.pixel_x += rand(1,4) L.pixel_y += rand(1,4) + if(can_buckle || grill) + new /obj/item/stack/rods(loc, 1) qdel(src) return ..() diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index f2528878e2..8eb1057bec 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -1,206 +1,206 @@ -// Plant analyzer -/obj/item/device/plant_analyzer - name = "plant analyzer" - desc = "A scanner used to evaluate a plant's various areas of growth." - icon = 'icons/obj/device.dmi' - icon_state = "hydro" - item_state = "analyzer" - w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_BELT - origin_tech = "magnets=2;biotech=2" - materials = list(MAT_METAL=30, MAT_GLASS=20) - -// ************************************* -// Hydroponics Tools -// ************************************* - -/obj/item/weapon/reagent_containers/spray/weedspray // -- Skie - desc = "It's a toxic mixture, in spray form, to kill small weeds." - icon = 'icons/obj/hydroponics/equipment.dmi' - name = "weed spray" - icon_state = "weedspray" - item_state = "spray" - volume = 100 - container_type = OPENCONTAINER - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 10 - +// Plant analyzer +/obj/item/device/plant_analyzer + name = "plant analyzer" + desc = "A scanner used to evaluate a plant's various areas of growth." + icon = 'icons/obj/device.dmi' + icon_state = "hydro" + item_state = "analyzer" + w_class = WEIGHT_CLASS_TINY + slot_flags = SLOT_BELT + origin_tech = "magnets=2;biotech=2" + materials = list(MAT_METAL=30, MAT_GLASS=20) + +// ************************************* +// Hydroponics Tools +// ************************************* + +/obj/item/weapon/reagent_containers/spray/weedspray // -- Skie + desc = "It's a toxic mixture, in spray form, to kill small weeds." + icon = 'icons/obj/hydroponics/equipment.dmi' + name = "weed spray" + icon_state = "weedspray" + item_state = "spray" + volume = 100 + container_type = OPENCONTAINER + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 10 + /obj/item/weapon/reagent_containers/spray/weedspray/Initialize() . = ..() - reagents.add_reagent("weedkiller", 100) - -/obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user) - user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (TOXLOSS) - -/obj/item/weapon/reagent_containers/spray/pestspray // -- Skie - desc = "It's some pest eliminator spray! Do not inhale!" - icon = 'icons/obj/hydroponics/equipment.dmi' - name = "pest spray" - icon_state = "pestspray" - item_state = "plantbgone" - volume = 100 - container_type = OPENCONTAINER - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 10 - + reagents.add_reagent("weedkiller", 100) + +/obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user) + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (TOXLOSS) + +/obj/item/weapon/reagent_containers/spray/pestspray // -- Skie + desc = "It's some pest eliminator spray! Do not inhale!" + icon = 'icons/obj/hydroponics/equipment.dmi' + name = "pest spray" + icon_state = "pestspray" + item_state = "plantbgone" + volume = 100 + container_type = OPENCONTAINER + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 10 + /obj/item/weapon/reagent_containers/spray/pestspray/Initialize() . = ..() - reagents.add_reagent("pestkiller", 100) - -/obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user) - user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (TOXLOSS) - -/obj/item/weapon/cultivator - name = "cultivator" - desc = "It's used for removing weeds or scratching your back." - icon = 'icons/obj/weapons.dmi' - icon_state = "cultivator" - item_state = "cultivator" - origin_tech = "engineering=2;biotech=2" - flags = CONDUCT - force = 5 - throwforce = 7 - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) - attack_verb = list("slashed", "sliced", "cut", "clawed") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/weapon/hatchet - name = "hatchet" - desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." - icon = 'icons/obj/weapons.dmi' - icon_state = "hatchet" - flags = CONDUCT - force = 12 - w_class = WEIGHT_CLASS_TINY - throwforce = 15 - throw_speed = 3 - throw_range = 4 - materials = list(MAT_METAL = 15000) - origin_tech = "materials=2;combat=2" - attack_verb = list("chopped", "torn", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/weapon/hatchet/suicide_act(mob/user) - user.visible_message("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) - return (BRUTELOSS) - -/obj/item/weapon/scythe - icon_state = "scythe0" - name = "scythe" - desc = "A sharp and curved blade on a long fibremetal handle, this tool makes it easy to reap what you sow." - force = 13 - throwforce = 5 - throw_speed = 2 - throw_range = 3 - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - armour_penetration = 20 - slot_flags = SLOT_BACK - origin_tech = "materials=3;combat=2" - attack_verb = list("chopped", "sliced", "cut", "reaped") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/weapon/scythe/suicide_act(mob/user) - user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - if(iscarbon(user)) - var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") - if(BP) - BP.drop_limb() - playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) - return (BRUTELOSS) - -// ************************************* -// Nutrient defines for hydroponics -// ************************************* - - -/obj/item/weapon/reagent_containers/glass/bottle/nutrient - name = "bottle of nutrient" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - volume = 50 - w_class = WEIGHT_CLASS_TINY - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(1,2,5,10,15,25,50) - + reagents.add_reagent("pestkiller", 100) + +/obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user) + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (TOXLOSS) + +/obj/item/weapon/cultivator + name = "cultivator" + desc = "It's used for removing weeds or scratching your back." + icon = 'icons/obj/weapons.dmi' + icon_state = "cultivator" + item_state = "cultivator" + origin_tech = "engineering=2;biotech=2" + flags = CONDUCT + force = 5 + throwforce = 7 + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=50) + attack_verb = list("slashed", "sliced", "cut", "clawed") + hitsound = 'sound/weapons/bladeslice.ogg' + +/obj/item/weapon/hatchet + name = "hatchet" + desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." + icon = 'icons/obj/weapons.dmi' + icon_state = "hatchet" + flags = CONDUCT + force = 12 + w_class = WEIGHT_CLASS_TINY + throwforce = 15 + throw_speed = 3 + throw_range = 4 + materials = list(MAT_METAL = 15000) + origin_tech = "materials=2;combat=2" + attack_verb = list("chopped", "torn", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/weapon/hatchet/suicide_act(mob/user) + user.visible_message("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/scythe + icon_state = "scythe0" + name = "scythe" + desc = "A sharp and curved blade on a long fibremetal handle, this tool makes it easy to reap what you sow." + force = 13 + throwforce = 5 + throw_speed = 2 + throw_range = 3 + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + armour_penetration = 20 + slot_flags = SLOT_BACK + origin_tech = "materials=3;combat=2" + attack_verb = list("chopped", "sliced", "cut", "reaped") + hitsound = 'sound/weapons/bladeslice.ogg' + +/obj/item/weapon/scythe/suicide_act(mob/user) + user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) + return (BRUTELOSS) + +// ************************************* +// Nutrient defines for hydroponics +// ************************************* + + +/obj/item/weapon/reagent_containers/glass/bottle/nutrient + name = "bottle of nutrient" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + volume = 50 + w_class = WEIGHT_CLASS_TINY + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(1,2,5,10,15,25,50) + /obj/item/weapon/reagent_containers/glass/bottle/nutrient/Initialize() . = ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - - -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez - name = "bottle of E-Z-Nutrient" - desc = "Contains a fertilizer that causes mild mutations with each harvest." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + + +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez + name = "bottle of E-Z-Nutrient" + desc = "Contains a fertilizer that causes mild mutations with each harvest." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + /obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez/Initialize() . = ..() - reagents.add_reagent("eznutriment", 50) - -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z - name = "bottle of Left 4 Zed" - desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - + reagents.add_reagent("eznutriment", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z + name = "bottle of Left 4 Zed" + desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle18" + /obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z/Initialize() . = ..() - reagents.add_reagent("left4zednutriment", 50) - -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh - name = "bottle of Robust Harvest" - desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" - + reagents.add_reagent("left4zednutriment", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh + name = "bottle of Robust Harvest" + desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle15" + /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh/Initialize() . = ..() - reagents.add_reagent("robustharvestnutriment", 50) - -/obj/item/weapon/reagent_containers/glass/bottle/nutrient/empty - name = "bottle" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - -/obj/item/weapon/reagent_containers/glass/bottle/killer - name = "bottle" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - volume = 50 - w_class = WEIGHT_CLASS_TINY - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(1,2,5,10,15,25,50) - -/obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller - name = "bottle of weed killer" - desc = "Contains a herbicide." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" - + reagents.add_reagent("robustharvestnutriment", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/empty + name = "bottle" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + +/obj/item/weapon/reagent_containers/glass/bottle/killer + name = "bottle" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + volume = 50 + w_class = WEIGHT_CLASS_TINY + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(1,2,5,10,15,25,50) + +/obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller + name = "bottle of weed killer" + desc = "Contains a herbicide." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle19" + /obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller/Initialize() . = ..() - reagents.add_reagent("weedkiller", 50) - -/obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller - name = "bottle of pest spray" - desc = "Contains a pesticide." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle20" - + reagents.add_reagent("weedkiller", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller + name = "bottle of pest spray" + desc = "Contains a pesticide." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle20" + /obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller/Initialize() . = ..() - reagents.add_reagent("pestkiller", 50) + reagents.add_reagent("pestkiller", 50) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 2eabce113f..d98402294a 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1,515 +1,515 @@ -/obj/machinery/hydroponics - name = "hydroponics tray" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "hydrotray" - density = 1 - anchored = 1 - pixel_y = 8 - unique_rename = 1 - var/waterlevel = 100 //The amount of water in the tray (max 100) - var/maxwater = 100 //The maximum amount of water in the tray - var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) - var/maxnutri = 10 //The maximum nutrient of water in the tray - var/pestlevel = 0 //The amount of pests in the tray (max 10) - var/weedlevel = 0 //The amount of weeds in the tray (max 10) - var/yieldmod = 1 //Nutriment's effect on yield - var/mutmod = 1 //Nutriment's effect on mutations - var/toxic = 0 //Toxicity in the tray? - var/age = 0 //Current age - var/dead = 0 //Is it dead? - var/plant_health //Its health - var/lastproduce = 0 //Last time it was harvested - var/lastcycle = 0 //Used for timing of cycles. - var/cycledelay = 200 //About 10 seconds / cycle - var/harvest = 0 //Ready to harvest? - var/obj/item/seeds/myseed = null //The currently planted seed - var/rating = 1 - var/unwrenchable = 1 - var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant - var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses +/obj/machinery/hydroponics + name = "hydroponics tray" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "hydrotray" + density = 1 + anchored = 1 + pixel_y = 8 + unique_rename = 1 + var/waterlevel = 100 //The amount of water in the tray (max 100) + var/maxwater = 100 //The maximum amount of water in the tray + var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) + var/maxnutri = 10 //The maximum nutrient of water in the tray + var/pestlevel = 0 //The amount of pests in the tray (max 10) + var/weedlevel = 0 //The amount of weeds in the tray (max 10) + var/yieldmod = 1 //Nutriment's effect on yield + var/mutmod = 1 //Nutriment's effect on mutations + var/toxic = 0 //Toxicity in the tray? + var/age = 0 //Current age + var/dead = 0 //Is it dead? + var/plant_health //Its health + var/lastproduce = 0 //Last time it was harvested + var/lastcycle = 0 //Used for timing of cycles. + var/cycledelay = 200 //About 10 seconds / cycle + var/harvest = 0 //Ready to harvest? + var/obj/item/seeds/myseed = null //The currently planted seed + var/rating = 1 + var/unwrenchable = 1 + var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant + var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses var/self_sufficiency_req = 20 //Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood. var/self_sufficiency_progress = 0 - var/self_sustaining = FALSE //If the tray generates nutrients and water on its own - - -/obj/machinery/hydroponics/constructable - name = "hydroponics tray" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "hydrotray3" - -/obj/machinery/hydroponics/constructable/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/hydroponics(null) - B.apply_default_parts(src) - -/obj/item/weapon/circuitboard/machine/hydroponics - name = "Hydroponics Tray (Machine Board)" - build_path = /obj/machinery/hydroponics/constructable - origin_tech = "programming=1;biotech=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/machinery/hydroponics/constructable/RefreshParts() - var/tmp_capacity = 0 - for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) - tmp_capacity += M.rating - for (var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - rating = M.rating - maxwater = tmp_capacity * 50 // Up to 300 - maxnutri = tmp_capacity * 5 // Up to 30 - waterlevel = maxwater - nutrilevel = 3 - -/obj/machinery/hydroponics/Destroy() - if(myseed) - qdel(myseed) - myseed = null - return ..() - -/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I)) - return - - if(exchange_parts(user, I)) - return - - if(default_pry_open(I)) - return - - if(default_unfasten_wrench(user, I)) - return - - if(istype(I, /obj/item/weapon/crowbar)) - if(using_irrigation) - to_chat(user, "Disconnect the hoses first!") - else if(default_deconstruction_crowbar(I, 1)) - return - else - return ..() - -/obj/machinery/hydroponics/proc/FindConnected() - var/list/connected = list() - var/list/processing_atoms = list(src) - - while(processing_atoms.len) - var/atom/a = processing_atoms[1] - for(var/step_dir in GLOB.cardinal) - var/obj/machinery/hydroponics/h = locate() in get_step(a, step_dir) - // Soil plots aren't dense - if(h && h.using_irrigation && h.density && !(h in connected) && !(h in processing_atoms)) - processing_atoms += h - - processing_atoms -= a - connected += a - - return connected - - -/obj/machinery/hydroponics/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. - if(!myseed) - return ..() - if(istype(Proj ,/obj/item/projectile/energy/floramut)) - mutate() - else if(istype(Proj ,/obj/item/projectile/energy/florayield)) - return myseed.bullet_act(Proj) - else - return ..() - -/obj/machinery/hydroponics/process() - var/needs_update = 0 // Checks if the icon needs updating so we don't redraw empty trays every time - - if(myseed && (myseed.loc != src)) - myseed.loc = src - - if(self_sustaining) - adjustNutri(1) - adjustWater(rand(3,5)) - adjustWeeds(-2) - adjustPests(-2) - adjustToxic(-2) - - if(world.time > (lastcycle + cycledelay)) - lastcycle = world.time - if(myseed && !dead) - // Advance age - age++ - if(age < myseed.maturation) - lastproduce = age - - needs_update = 1 - -//Nutrients////////////////////////////////////////////////////////////// - // Nutrients deplete slowly - if(prob(50)) - adjustNutri(-1 / rating) - - // Lack of nutrients hurts non-weeds - if(nutrilevel <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) - adjustHealth(-rand(1,3)) - -//Photosynthesis///////////////////////////////////////////////////////// - // Lack of light hurts non-mushrooms - if(isturf(loc)) - var/turf/currentTurf = loc - var/lightAmt = currentTurf.get_lumcount() - if(myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - if(lightAmt < 0.2) - adjustHealth(-1 / rating) - else // Non-mushroom - if(lightAmt < 0.4) - adjustHealth(-2 / rating) - -//Water////////////////////////////////////////////////////////////////// - // Drink random amount of water - adjustWater(-rand(1,6) / rating) - - // If the plant is dry, it loses health pretty fast, unless mushroom - if(waterlevel <= 10 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - adjustHealth(-rand(0,1) / rating) - if(waterlevel <= 0) - adjustHealth(-rand(0,2) / rating) - - // Sufficient water level and nutrient level = plant healthy but also spawns weeds - else if(waterlevel > 10 && nutrilevel > 0) - adjustHealth(rand(1,2) / rating) - if(myseed && prob(myseed.weed_chance)) - adjustWeeds(myseed.weed_rate) - else if(prob(5)) //5 percent chance the weed population will increase - adjustWeeds(1 / rating) - -//Toxins///////////////////////////////////////////////////////////////// - - // Too much toxins cause harm, but when the plant drinks the contaiminated water, the toxins disappear slowly - if(toxic >= 40 && toxic < 80) - adjustHealth(-1 / rating) - adjustToxic(-rand(1,10) / rating) - else if(toxic >= 80) // I don't think it ever gets here tbh unless above is commented out - adjustHealth(-3) - adjustToxic(-rand(1,10) / rating) - -//Pests & Weeds////////////////////////////////////////////////////////// - - else if(pestlevel >= 5) - adjustHealth(-1 / rating) - - // If it's a weed, it doesn't stunt the growth - if(weedlevel >= 5 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) - adjustHealth(-1 / rating) - -//Health & Age/////////////////////////////////////////////////////////// - - // Plant dies if plant_health <= 0 - if(plant_health <= 0) - plantdies() - adjustWeeds(1 / rating) // Weeds flourish - - // If the plant is too old, lose health fast - if(age > myseed.lifespan) - adjustHealth(-rand(1,5) / rating) - - // Harvest code - if(age > myseed.production && (age - lastproduce) > myseed.production && (!harvest && !dead)) - nutrimentMutation() - if(myseed && myseed.yield != -1) // Unharvestable shouldn't be harvested - harvest = 1 - else - lastproduce = age - if(prob(5)) // On each tick, there's a 5 percent chance the pest population will increase - adjustPests(1 / rating) - else - if(waterlevel > 10 && nutrilevel > 0 && prob(10)) // If there's no plant, the percentage chance is 10% - adjustWeeds(1 / rating) - - // Weeeeeeeeeeeeeeedddssss - if(weedlevel >= 10 && prob(50)) // At this point the plant is kind of fucked. Weeds can overtake the plant spot. - if(myseed) - if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) // If a normal plant - weedinvasion() - else - weedinvasion() // Weed invasion into empty tray - needs_update = 1 - if (needs_update) - update_icon() - return - -/obj/machinery/hydroponics/proc/nutrimentMutation() - if (mutmod == 0) - return - if (mutmod == 1) - if(prob(80)) //80% - mutate() - else if(prob(75)) //15% - hardmutate() - return - if (mutmod == 2) - if(prob(50)) //50% - mutate() - else if(prob(50)) //25% - hardmutate() - else if(prob(50)) //12.5% - mutatespecie() - return - return - -/obj/machinery/hydroponics/update_icon() - //Refreshes the icon and sets the luminosity - cut_overlays() - - if(self_sustaining) - if(istype(src, /obj/machinery/hydroponics/soil)) - add_atom_colour(rgb(255, 175, 0), FIXED_COLOUR_PRIORITY) - else + var/self_sustaining = FALSE //If the tray generates nutrients and water on its own + + +/obj/machinery/hydroponics/constructable + name = "hydroponics tray" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "hydrotray3" + +/obj/machinery/hydroponics/constructable/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/hydroponics(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/hydroponics + name = "Hydroponics Tray (Machine Board)" + build_path = /obj/machinery/hydroponics/constructable + origin_tech = "programming=1;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/hydroponics/constructable/RefreshParts() + var/tmp_capacity = 0 + for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + tmp_capacity += M.rating + for (var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + rating = M.rating + maxwater = tmp_capacity * 50 // Up to 300 + maxnutri = tmp_capacity * 5 // Up to 30 + waterlevel = maxwater + nutrilevel = 3 + +/obj/machinery/hydroponics/Destroy() + if(myseed) + qdel(myseed) + myseed = null + return ..() + +/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I)) + return + + if(exchange_parts(user, I)) + return + + if(default_pry_open(I)) + return + + if(default_unfasten_wrench(user, I)) + return + + if(istype(I, /obj/item/weapon/crowbar)) + if(using_irrigation) + to_chat(user, "Disconnect the hoses first!") + else if(default_deconstruction_crowbar(I, 1)) + return + else + return ..() + +/obj/machinery/hydroponics/proc/FindConnected() + var/list/connected = list() + var/list/processing_atoms = list(src) + + while(processing_atoms.len) + var/atom/a = processing_atoms[1] + for(var/step_dir in GLOB.cardinal) + var/obj/machinery/hydroponics/h = locate() in get_step(a, step_dir) + // Soil plots aren't dense + if(h && h.using_irrigation && h.density && !(h in connected) && !(h in processing_atoms)) + processing_atoms += h + + processing_atoms -= a + connected += a + + return connected + + +/obj/machinery/hydroponics/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. + if(!myseed) + return ..() + if(istype(Proj ,/obj/item/projectile/energy/floramut)) + mutate() + else if(istype(Proj ,/obj/item/projectile/energy/florayield)) + return myseed.bullet_act(Proj) + else + return ..() + +/obj/machinery/hydroponics/process() + var/needs_update = 0 // Checks if the icon needs updating so we don't redraw empty trays every time + + if(myseed && (myseed.loc != src)) + myseed.loc = src + + if(self_sustaining) + adjustNutri(1) + adjustWater(rand(3,5)) + adjustWeeds(-2) + adjustPests(-2) + adjustToxic(-2) + + if(world.time > (lastcycle + cycledelay)) + lastcycle = world.time + if(myseed && !dead) + // Advance age + age++ + if(age < myseed.maturation) + lastproduce = age + + needs_update = 1 + +//Nutrients////////////////////////////////////////////////////////////// + // Nutrients deplete slowly + if(prob(50)) + adjustNutri(-1 / rating) + + // Lack of nutrients hurts non-weeds + if(nutrilevel <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) + adjustHealth(-rand(1,3)) + +//Photosynthesis///////////////////////////////////////////////////////// + // Lack of light hurts non-mushrooms + if(isturf(loc)) + var/turf/currentTurf = loc + var/lightAmt = currentTurf.get_lumcount() + if(myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + if(lightAmt < 0.2) + adjustHealth(-1 / rating) + else // Non-mushroom + if(lightAmt < 0.4) + adjustHealth(-2 / rating) + +//Water////////////////////////////////////////////////////////////////// + // Drink random amount of water + adjustWater(-rand(1,6) / rating) + + // If the plant is dry, it loses health pretty fast, unless mushroom + if(waterlevel <= 10 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + adjustHealth(-rand(0,1) / rating) + if(waterlevel <= 0) + adjustHealth(-rand(0,2) / rating) + + // Sufficient water level and nutrient level = plant healthy but also spawns weeds + else if(waterlevel > 10 && nutrilevel > 0) + adjustHealth(rand(1,2) / rating) + if(myseed && prob(myseed.weed_chance)) + adjustWeeds(myseed.weed_rate) + else if(prob(5)) //5 percent chance the weed population will increase + adjustWeeds(1 / rating) + +//Toxins///////////////////////////////////////////////////////////////// + + // Too much toxins cause harm, but when the plant drinks the contaiminated water, the toxins disappear slowly + if(toxic >= 40 && toxic < 80) + adjustHealth(-1 / rating) + adjustToxic(-rand(1,10) / rating) + else if(toxic >= 80) // I don't think it ever gets here tbh unless above is commented out + adjustHealth(-3) + adjustToxic(-rand(1,10) / rating) + +//Pests & Weeds////////////////////////////////////////////////////////// + + else if(pestlevel >= 5) + adjustHealth(-1 / rating) + + // If it's a weed, it doesn't stunt the growth + if(weedlevel >= 5 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) + adjustHealth(-1 / rating) + +//Health & Age/////////////////////////////////////////////////////////// + + // Plant dies if plant_health <= 0 + if(plant_health <= 0) + plantdies() + adjustWeeds(1 / rating) // Weeds flourish + + // If the plant is too old, lose health fast + if(age > myseed.lifespan) + adjustHealth(-rand(1,5) / rating) + + // Harvest code + if(age > myseed.production && (age - lastproduce) > myseed.production && (!harvest && !dead)) + nutrimentMutation() + if(myseed && myseed.yield != -1) // Unharvestable shouldn't be harvested + harvest = 1 + else + lastproduce = age + if(prob(5)) // On each tick, there's a 5 percent chance the pest population will increase + adjustPests(1 / rating) + else + if(waterlevel > 10 && nutrilevel > 0 && prob(10)) // If there's no plant, the percentage chance is 10% + adjustWeeds(1 / rating) + + // Weeeeeeeeeeeeeeedddssss + if(weedlevel >= 10 && prob(50)) // At this point the plant is kind of fucked. Weeds can overtake the plant spot. + if(myseed) + if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) // If a normal plant + weedinvasion() + else + weedinvasion() // Weed invasion into empty tray + needs_update = 1 + if (needs_update) + update_icon() + return + +/obj/machinery/hydroponics/proc/nutrimentMutation() + if (mutmod == 0) + return + if (mutmod == 1) + if(prob(80)) //80% + mutate() + else if(prob(75)) //15% + hardmutate() + return + if (mutmod == 2) + if(prob(50)) //50% + mutate() + else if(prob(50)) //25% + hardmutate() + else if(prob(50)) //12.5% + mutatespecie() + return + return + +/obj/machinery/hydroponics/update_icon() + //Refreshes the icon and sets the luminosity + cut_overlays() + + if(self_sustaining) + if(istype(src, /obj/machinery/hydroponics/soil)) + add_atom_colour(rgb(255, 175, 0), FIXED_COLOUR_PRIORITY) + else overlays += mutable_appearance('icons/obj/hydroponics/equipment.dmi', "gaia_blessing") - set_light(3) - - update_icon_hoses() - - if(myseed) - update_icon_plant() - update_icon_lights() - - if(!self_sustaining) - if(myseed && myseed.get_gene(/datum/plant_gene/trait/glow)) - var/datum/plant_gene/trait/glow/G = myseed.get_gene(/datum/plant_gene/trait/glow) - set_light(G.glow_range(myseed), G.glow_power(myseed), G.glow_color) - else - set_light(0) - - return - -/obj/machinery/hydroponics/proc/update_icon_hoses() - var/n = 0 - for(var/Dir in GLOB.cardinal) - var/obj/machinery/hydroponics/t = locate() in get_step(src,Dir) - if(t && t.using_irrigation && using_irrigation) - n += Dir - - icon_state = "hoses-[n]" - -/obj/machinery/hydroponics/proc/update_icon_plant() + set_light(3) + + update_icon_hoses() + + if(myseed) + update_icon_plant() + update_icon_lights() + + if(!self_sustaining) + if(myseed && myseed.get_gene(/datum/plant_gene/trait/glow)) + var/datum/plant_gene/trait/glow/G = myseed.get_gene(/datum/plant_gene/trait/glow) + set_light(G.glow_range(myseed), G.glow_power(myseed), G.glow_color) + else + set_light(0) + + return + +/obj/machinery/hydroponics/proc/update_icon_hoses() + var/n = 0 + for(var/Dir in GLOB.cardinal) + var/obj/machinery/hydroponics/t = locate() in get_step(src,Dir) + if(t && t.using_irrigation && using_irrigation) + n += Dir + + icon_state = "hoses-[n]" + +/obj/machinery/hydroponics/proc/update_icon_plant() var/mutable_appearance/plant_overlay = mutable_appearance(myseed.growing_icon, layer = OBJ_LAYER + 0.01) - if(dead) + if(dead) plant_overlay.icon_state = myseed.icon_dead - else if(harvest) - if(!myseed.icon_harvest) + else if(harvest) + if(!myseed.icon_harvest) plant_overlay.icon_state = "[myseed.icon_grow][myseed.growthstages]" - else + else plant_overlay.icon_state = myseed.icon_harvest - else - var/t_growthstate = min(round((age / myseed.maturation) * myseed.growthstages), myseed.growthstages) + else + var/t_growthstate = min(round((age / myseed.maturation) * myseed.growthstages), myseed.growthstages) plant_overlay.icon_state = "[myseed.icon_grow][t_growthstate]" add_overlay(plant_overlay) - -/obj/machinery/hydroponics/proc/update_icon_lights() - if(waterlevel <= 10) + +/obj/machinery/hydroponics/proc/update_icon_lights() + if(waterlevel <= 10) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowwater3")) - if(nutrilevel <= 2) + if(nutrilevel <= 2) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lownutri3")) - if(plant_health <= (myseed.endurance / 2)) + if(plant_health <= (myseed.endurance / 2)) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowhealth3")) - if(weedlevel >= 5 || pestlevel >= 5 || toxic >= 40) + if(weedlevel >= 5 || pestlevel >= 5 || toxic >= 40) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_alert3")) - if(harvest) + if(harvest) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_harvest3")) - - -/obj/machinery/hydroponics/examine(user) - ..() - if(myseed) - to_chat(user, "It has [myseed.plantname] planted.") - if (dead) - to_chat(user, "It's dead!") - else if (harvest) - to_chat(user, "It's ready to harvest.") - else if (plant_health <= (myseed.endurance / 2)) - to_chat(user, "It looks unhealthy.") - else - to_chat(user, "[src] is empty.") - - if(!self_sustaining) - to_chat(user, "Water: [waterlevel]/[maxwater]") - to_chat(user, "Nutrient: [nutrilevel]/[maxnutri]") + + +/obj/machinery/hydroponics/examine(user) + ..() + if(myseed) + to_chat(user, "It has [myseed.plantname] planted.") + if (dead) + to_chat(user, "It's dead!") + else if (harvest) + to_chat(user, "It's ready to harvest.") + else if (plant_health <= (myseed.endurance / 2)) + to_chat(user, "It looks unhealthy.") + else + to_chat(user, "[src] is empty.") + + if(!self_sustaining) + to_chat(user, "Water: [waterlevel]/[maxwater]") + to_chat(user, "Nutrient: [nutrilevel]/[maxnutri]") if(self_sufficiency_progress > 0) var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req) to_chat(user, "Treatment for self-sustenance are [percent_progress]% complete.") - else - to_chat(user, "It doesn't require any water or nutrients.") - - if(weedlevel >= 5) - to_chat(user, "[src] is filled with weeds!") - if(pestlevel >= 5) - to_chat(user, "[src] is filled with tiny worms!") - to_chat(user, "" ) - - -/obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens. - dead = 0 - var/oldPlantName - if(myseed) // In case there's nothing in the tray beforehand - oldPlantName = myseed.plantname - qdel(myseed) - myseed = null - else - oldPlantName = "empty tray" - switch(rand(1,18)) // randomly pick predominative weed - if(16 to 18) - myseed = new /obj/item/seeds/reishi(src) - if(14 to 15) - myseed = new /obj/item/seeds/nettle(src) - if(12 to 13) - myseed = new /obj/item/seeds/harebell(src) - if(10 to 11) - myseed = new /obj/item/seeds/amanita(src) - if(8 to 9) - myseed = new /obj/item/seeds/chanter(src) - if(6 to 7) - myseed = new /obj/item/seeds/tower(src) - if(4 to 5) - myseed = new /obj/item/seeds/plump(src) - else + else + to_chat(user, "It doesn't require any water or nutrients.") + + if(weedlevel >= 5) + to_chat(user, "[src] is filled with weeds!") + if(pestlevel >= 5) + to_chat(user, "[src] is filled with tiny worms!") + to_chat(user, "" ) + + +/obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens. + dead = 0 + var/oldPlantName + if(myseed) // In case there's nothing in the tray beforehand + oldPlantName = myseed.plantname + qdel(myseed) + myseed = null + else + oldPlantName = "empty tray" + switch(rand(1,18)) // randomly pick predominative weed + if(16 to 18) + myseed = new /obj/item/seeds/reishi(src) + if(14 to 15) + myseed = new /obj/item/seeds/nettle(src) + if(12 to 13) + myseed = new /obj/item/seeds/harebell(src) + if(10 to 11) + myseed = new /obj/item/seeds/amanita(src) + if(8 to 9) + myseed = new /obj/item/seeds/chanter(src) + if(6 to 7) + myseed = new /obj/item/seeds/tower(src) + if(4 to 5) + myseed = new /obj/item/seeds/plump(src) + else myseed = new /obj/item/seeds/starthistle(src) - age = 0 - plant_health = myseed.endurance - lastcycle = world.time - harvest = 0 - weedlevel = 0 // Reset - pestlevel = 0 // Reset - update_icon() - visible_message("The [oldPlantName] is overtaken by some [myseed.plantname]!") - - -/obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) // Mutates the current seed - if(!myseed) - return - myseed.mutate(lifemut, endmut, productmut, yieldmut, potmut, wrmut, wcmut, traitmut) - -/obj/machinery/hydroponics/proc/hardmutate() - mutate(4, 10, 2, 4, 50, 4, 10, 3) - - -/obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! - if(!myseed || dead) - return - - var/oldPlantName = myseed.plantname - if(myseed.mutatelist.len > 0) - var/mutantseed = pick(myseed.mutatelist) - qdel(myseed) - myseed = null - myseed = new mutantseed - else - return - - hardmutate() - age = 0 - plant_health = myseed.endurance - lastcycle = world.time - harvest = 0 - weedlevel = 0 // Reset - - sleep(5) // Wait a while - update_icon() - visible_message("[oldPlantName] suddenly mutates into [myseed.plantname]!") - - -/obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant - if( weedlevel > 5 ) - if(myseed) - qdel(myseed) - myseed = null - var/newWeed = pick(/obj/item/seeds/liberty, /obj/item/seeds/angel, /obj/item/seeds/nettle/death, /obj/item/seeds/kudzu) - myseed = new newWeed - dead = 0 - hardmutate() - age = 0 - plant_health = myseed.endurance - lastcycle = world.time - harvest = 0 - weedlevel = 0 // Reset - - sleep(5) // Wait a while - update_icon() - visible_message("The mutated weeds in [src] spawn some [myseed.plantname]!") - else - to_chat(usr, "The few weeds in [src] seem to react, but only for a moment...") - - -/obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one function to make things easier - plant_health = 0 - harvest = 0 - pestlevel = 0 // Pests die - if(!dead) - update_icon() - dead = 1 - - - -/obj/machinery/hydroponics/proc/mutatepest(mob/user) - if(pestlevel > 5) - message_admins("[ADMIN_LOOKUPFLW(user)] caused spiderling pests to spawn in a hydro tray") - log_game("[key_name(user)] caused spiderling pests to spawn in a hydro tray") - visible_message("The pests seem to behave oddly...") - spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, src, 3, FALSE) - else - to_chat(user, "The pests seem to behave oddly, but quickly settle down...") - -/obj/machinery/hydroponics/proc/applyChemicals(datum/reagents/S, mob/user) - if(myseed) - myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines - - // Requires 5 mutagen to possibly change species.// Poor man's mutagen. - if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10)) - switch(rand(100)) - if(91 to 100) - adjustHealth(-10) - to_chat(user, "The plant shrivels and burns.") - if(81 to 90) - mutatespecie() - if(66 to 80) - hardmutate() - if(41 to 65) - mutate() - if(21 to 41) - to_chat(user, "The plants don't seem to react...") - if(11 to 20) - mutateweed() - if(1 to 10) - mutatepest(user) - else - to_chat(user, "Nothing happens...") - - // 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen - else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5)) - hardmutate() - else if(S.has_reagent("mutagen", 1) || S.has_reagent("radium", 2) || S.has_reagent("uranium", 2)) - mutate() - - // After handling the mutating, we now handle the damage from adding crude radioactives... - if(S.has_reagent("uranium", 1)) - adjustHealth(-round(S.get_reagent_amount("uranium") * 1)) - adjustToxic(round(S.get_reagent_amount("uranium") * 2)) - if(S.has_reagent("radium", 1)) - adjustHealth(-round(S.get_reagent_amount("radium") * 1)) - adjustToxic(round(S.get_reagent_amount("radium") * 3)) // Radium is harsher (OOC: also easier to produce) - - // Nutriments - if(S.has_reagent("eznutriment", 1)) - yieldmod = 1 - mutmod = 1 - adjustNutri(round(S.get_reagent_amount("eznutriment") * 1)) - - if(S.has_reagent("left4zednutriment", 1)) - yieldmod = 0 - mutmod = 2 - adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1)) - - if(S.has_reagent("robustharvestnutriment", 1)) - yieldmod = 1.3 - mutmod = 0 - adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) - + age = 0 + plant_health = myseed.endurance + lastcycle = world.time + harvest = 0 + weedlevel = 0 // Reset + pestlevel = 0 // Reset + update_icon() + visible_message("The [oldPlantName] is overtaken by some [myseed.plantname]!") + + +/obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) // Mutates the current seed + if(!myseed) + return + myseed.mutate(lifemut, endmut, productmut, yieldmut, potmut, wrmut, wcmut, traitmut) + +/obj/machinery/hydroponics/proc/hardmutate() + mutate(4, 10, 2, 4, 50, 4, 10, 3) + + +/obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! + if(!myseed || dead) + return + + var/oldPlantName = myseed.plantname + if(myseed.mutatelist.len > 0) + var/mutantseed = pick(myseed.mutatelist) + qdel(myseed) + myseed = null + myseed = new mutantseed + else + return + + hardmutate() + age = 0 + plant_health = myseed.endurance + lastcycle = world.time + harvest = 0 + weedlevel = 0 // Reset + + sleep(5) // Wait a while + update_icon() + visible_message("[oldPlantName] suddenly mutates into [myseed.plantname]!") + + +/obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant + if( weedlevel > 5 ) + if(myseed) + qdel(myseed) + myseed = null + var/newWeed = pick(/obj/item/seeds/liberty, /obj/item/seeds/angel, /obj/item/seeds/nettle/death, /obj/item/seeds/kudzu) + myseed = new newWeed + dead = 0 + hardmutate() + age = 0 + plant_health = myseed.endurance + lastcycle = world.time + harvest = 0 + weedlevel = 0 // Reset + + sleep(5) // Wait a while + update_icon() + visible_message("The mutated weeds in [src] spawn some [myseed.plantname]!") + else + to_chat(usr, "The few weeds in [src] seem to react, but only for a moment...") + + +/obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one function to make things easier + plant_health = 0 + harvest = 0 + pestlevel = 0 // Pests die + if(!dead) + update_icon() + dead = 1 + + + +/obj/machinery/hydroponics/proc/mutatepest(mob/user) + if(pestlevel > 5) + message_admins("[ADMIN_LOOKUPFLW(user)] caused spiderling pests to spawn in a hydro tray") + log_game("[key_name(user)] caused spiderling pests to spawn in a hydro tray") + visible_message("The pests seem to behave oddly...") + spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, src, 3, FALSE) + else + to_chat(user, "The pests seem to behave oddly, but quickly settle down...") + +/obj/machinery/hydroponics/proc/applyChemicals(datum/reagents/S, mob/user) + if(myseed) + myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines + + // Requires 5 mutagen to possibly change species.// Poor man's mutagen. + if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10)) + switch(rand(100)) + if(91 to 100) + adjustHealth(-10) + to_chat(user, "The plant shrivels and burns.") + if(81 to 90) + mutatespecie() + if(66 to 80) + hardmutate() + if(41 to 65) + mutate() + if(21 to 41) + to_chat(user, "The plants don't seem to react...") + if(11 to 20) + mutateweed() + if(1 to 10) + mutatepest(user) + else + to_chat(user, "Nothing happens...") + + // 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen + else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5)) + hardmutate() + else if(S.has_reagent("mutagen", 1) || S.has_reagent("radium", 2) || S.has_reagent("uranium", 2)) + mutate() + + // After handling the mutating, we now handle the damage from adding crude radioactives... + if(S.has_reagent("uranium", 1)) + adjustHealth(-round(S.get_reagent_amount("uranium") * 1)) + adjustToxic(round(S.get_reagent_amount("uranium") * 2)) + if(S.has_reagent("radium", 1)) + adjustHealth(-round(S.get_reagent_amount("radium") * 1)) + adjustToxic(round(S.get_reagent_amount("radium") * 3)) // Radium is harsher (OOC: also easier to produce) + + // Nutriments + if(S.has_reagent("eznutriment", 1)) + yieldmod = 1 + mutmod = 1 + adjustNutri(round(S.get_reagent_amount("eznutriment") * 1)) + + if(S.has_reagent("left4zednutriment", 1)) + yieldmod = 0 + mutmod = 2 + adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1)) + + if(S.has_reagent("robustharvestnutriment", 1)) + yieldmod = 1.3 + mutmod = 0 + adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) + // Ambrosia Gaia produces earthsblood. if(S.has_reagent("earthsblood")) self_sufficiency_progress += S.get_reagent_amount("earthsblood") @@ -517,429 +517,430 @@ become_self_sufficient() else if(!self_sustaining) to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.") - - // Antitoxin binds shit pretty well. So the tox goes significantly down - if(S.has_reagent("charcoal", 1)) - adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) - - // NIGGA, YOU JUST WENT ON FULL RETARD. - if(S.has_reagent("toxin", 1)) - adjustToxic(round(S.get_reagent_amount("toxin") * 2)) - - // Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth. Not shrooms though. I can't deal with this now... - if(S.has_reagent("milk", 1)) - adjustNutri(round(S.get_reagent_amount("milk") * 0.1)) - adjustWater(round(S.get_reagent_amount("milk") * 0.9)) - - // Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay? - if(S.has_reagent("beer", 1)) - adjustHealth(-round(S.get_reagent_amount("beer") * 0.05)) - adjustNutri(round(S.get_reagent_amount("beer") * 0.25)) - adjustWater(round(S.get_reagent_amount("beer") * 0.7)) - - // You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial - if(S.has_reagent("fluorine", 1)) - adjustHealth(-round(S.get_reagent_amount("fluorine") * 2)) - adjustToxic(round(S.get_reagent_amount("flourine") * 2.5)) - adjustWater(-round(S.get_reagent_amount("flourine") * 0.5)) - adjustWeeds(-rand(1,4)) - - // You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial - if(S.has_reagent("chlorine", 1)) - adjustHealth(-round(S.get_reagent_amount("chlorine") * 1)) - adjustToxic(round(S.get_reagent_amount("chlorine") * 1.5)) - adjustWater(-round(S.get_reagent_amount("chlorine") * 0.5)) - adjustWeeds(-rand(1,3)) - - // White Phosphorous + water -> phosphoric acid. That's not a good thing really. - // Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much. - if(S.has_reagent("phosphorus", 1)) - adjustHealth(-round(S.get_reagent_amount("phosphorus") * 0.75)) - adjustNutri(round(S.get_reagent_amount("phosphorus") * 0.1)) - adjustWater(-round(S.get_reagent_amount("phosphorus") * 0.5)) - adjustWeeds(-rand(1,2)) - - // Plants should not have sugar, they can't use it and it prevents them getting water/ nutients, it is good for mold though... - if(S.has_reagent("sugar", 1)) - adjustWeeds(rand(1,2)) - adjustPests(rand(1,2)) - adjustNutri(round(S.get_reagent_amount("sugar") * 0.1)) - - // It is water! - if(S.has_reagent("water", 1)) - adjustWater(round(S.get_reagent_amount("water") * 1)) - - // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits~ - if(S.has_reagent("holywater", 1)) - adjustWater(round(S.get_reagent_amount("holywater") * 1)) - adjustHealth(round(S.get_reagent_amount("holywater") * 0.1)) - - // A variety of nutrients are dissolved in club soda, without sugar. - // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. - if(S.has_reagent("sodawater", 1)) - adjustWater(round(S.get_reagent_amount("sodawater") * 1)) - adjustHealth(round(S.get_reagent_amount("sodawater") * 0.1)) - adjustNutri(round(S.get_reagent_amount("sodawater") * 0.1)) - - // Man, you guys are retards - if(S.has_reagent("sacid", 1)) - adjustHealth(-round(S.get_reagent_amount("sacid") * 1)) - adjustToxic(round(S.get_reagent_amount("sacid") * 1.5)) - adjustWeeds(-rand(1,2)) - - // SERIOUSLY - if(S.has_reagent("facid", 1)) - adjustHealth(-round(S.get_reagent_amount("facid") * 2)) - adjustToxic(round(S.get_reagent_amount("facid") * 3)) - adjustWeeds(-rand(1,4)) - - // Plant-B-Gone is just as bad - if(S.has_reagent("plantbgone", 1)) - adjustHealth(-round(S.get_reagent_amount("plantbgone") * 5)) - adjustToxic(round(S.get_reagent_amount("plantbgone") * 6)) - adjustWeeds(-rand(4,8)) - - // why, just why - if(S.has_reagent("napalm", 1)) - adjustHealth(-round(S.get_reagent_amount("napalm") * 6)) - adjustToxic(round(S.get_reagent_amount("napalm") * 7)) - adjustWeeds(-rand(5,9)) - - //Weed Spray - if(S.has_reagent("weedkiller", 1)) - adjustToxic(round(S.get_reagent_amount("weedkiller") * 0.5)) - //old toxicity was 4, each spray is default 10 (minimal of 5) so 5 and 2.5 are the new ammounts - adjustWeeds(-rand(1,2)) - - //Pest Spray - if(S.has_reagent("pestkiller", 1)) - adjustToxic(round(S.get_reagent_amount("pestkiller") * 0.5)) - adjustPests(-rand(1,2)) - - // Healing - if(S.has_reagent("cryoxadone", 1)) - adjustHealth(round(S.get_reagent_amount("cryoxadone") * 3)) - adjustToxic(-round(S.get_reagent_amount("cryoxadone") * 3)) - - // Ammonia is bad ass. - if(S.has_reagent("ammonia", 1)) - adjustHealth(round(S.get_reagent_amount("ammonia") * 0.5)) - adjustNutri(round(S.get_reagent_amount("ammonia") * 1)) - if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount("ammonia") * 0.01)) - - // Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants - if(S.has_reagent("saltpetre", 1)) - var/salt = S.get_reagent_amount("saltpetre") - adjustHealth(round(salt * 0.25)) - if (myseed) - myseed.adjust_production(-round(salt/100)-prob(salt%100)) - myseed.adjust_potency(round(salt*0.50)) - // Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer - if(S.has_reagent("ash", 1)) - adjustHealth(round(S.get_reagent_amount("ash") * 0.25)) - adjustNutri(round(S.get_reagent_amount("ash") * 0.5)) - adjustWeeds(-1) - - // This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. - if(S.has_reagent("diethylamine", 1)) - adjustHealth(round(S.get_reagent_amount("diethylamine") * 1)) - adjustNutri(round(S.get_reagent_amount("diethylamine") * 2)) - if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount("diethylamine") * 0.02)) - adjustPests(-rand(1,2)) - - // Compost, effectively - if(S.has_reagent("nutriment", 1)) - adjustHealth(round(S.get_reagent_amount("nutriment") * 0.5)) - adjustNutri(round(S.get_reagent_amount("nutriment") * 1)) - - // Compost for EVERYTHING - if(S.has_reagent("virusfood", 1)) - adjustNutri(round(S.get_reagent_amount("virusfood") * 0.5)) - adjustHealth(-round(S.get_reagent_amount("virusfood") * 0.5)) - - // FEED ME - if(S.has_reagent("blood", 1)) - adjustNutri(round(S.get_reagent_amount("blood") * 1)) - adjustPests(rand(2,4)) - - // FEED ME SEYMOUR - if(S.has_reagent("strangereagent", 1)) - spawnplant() - - // The best stuff there is. For testing/debugging. - if(S.has_reagent("adminordrazine", 1)) - adjustWater(round(S.get_reagent_amount("adminordrazine") * 1)) - adjustHealth(round(S.get_reagent_amount("adminordrazine") * 1)) - adjustNutri(round(S.get_reagent_amount("adminordrazine") * 1)) - adjustPests(-rand(1,5)) - adjustWeeds(-rand(1,5)) - if(S.has_reagent("adminordrazine", 5)) - switch(rand(100)) - if(66 to 100) - mutatespecie() - if(33 to 65) - mutateweed() - if(1 to 32) - mutatepest(user) - else - to_chat(user, "Nothing happens...") - -/obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) - //Called when mob user "attacks" it with object O + + // Antitoxin binds shit pretty well. So the tox goes significantly down + if(S.has_reagent("charcoal", 1)) + adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) + + // NIGGA, YOU JUST WENT ON FULL RETARD. + if(S.has_reagent("toxin", 1)) + adjustToxic(round(S.get_reagent_amount("toxin") * 2)) + + // Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth. Not shrooms though. I can't deal with this now... + if(S.has_reagent("milk", 1)) + adjustNutri(round(S.get_reagent_amount("milk") * 0.1)) + adjustWater(round(S.get_reagent_amount("milk") * 0.9)) + + // Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay? + if(S.has_reagent("beer", 1)) + adjustHealth(-round(S.get_reagent_amount("beer") * 0.05)) + adjustNutri(round(S.get_reagent_amount("beer") * 0.25)) + adjustWater(round(S.get_reagent_amount("beer") * 0.7)) + + // You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial + if(S.has_reagent("fluorine", 1)) + adjustHealth(-round(S.get_reagent_amount("fluorine") * 2)) + adjustToxic(round(S.get_reagent_amount("flourine") * 2.5)) + adjustWater(-round(S.get_reagent_amount("flourine") * 0.5)) + adjustWeeds(-rand(1,4)) + + // You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial + if(S.has_reagent("chlorine", 1)) + adjustHealth(-round(S.get_reagent_amount("chlorine") * 1)) + adjustToxic(round(S.get_reagent_amount("chlorine") * 1.5)) + adjustWater(-round(S.get_reagent_amount("chlorine") * 0.5)) + adjustWeeds(-rand(1,3)) + + // White Phosphorous + water -> phosphoric acid. That's not a good thing really. + // Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much. + if(S.has_reagent("phosphorus", 1)) + adjustHealth(-round(S.get_reagent_amount("phosphorus") * 0.75)) + adjustNutri(round(S.get_reagent_amount("phosphorus") * 0.1)) + adjustWater(-round(S.get_reagent_amount("phosphorus") * 0.5)) + adjustWeeds(-rand(1,2)) + + // Plants should not have sugar, they can't use it and it prevents them getting water/ nutients, it is good for mold though... + if(S.has_reagent("sugar", 1)) + adjustWeeds(rand(1,2)) + adjustPests(rand(1,2)) + adjustNutri(round(S.get_reagent_amount("sugar") * 0.1)) + + // It is water! + if(S.has_reagent("water", 1)) + adjustWater(round(S.get_reagent_amount("water") * 1)) + + // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits~ + if(S.has_reagent("holywater", 1)) + adjustWater(round(S.get_reagent_amount("holywater") * 1)) + adjustHealth(round(S.get_reagent_amount("holywater") * 0.1)) + + // A variety of nutrients are dissolved in club soda, without sugar. + // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. + if(S.has_reagent("sodawater", 1)) + adjustWater(round(S.get_reagent_amount("sodawater") * 1)) + adjustHealth(round(S.get_reagent_amount("sodawater") * 0.1)) + adjustNutri(round(S.get_reagent_amount("sodawater") * 0.1)) + + // Man, you guys are retards + if(S.has_reagent("sacid", 1)) + adjustHealth(-round(S.get_reagent_amount("sacid") * 1)) + adjustToxic(round(S.get_reagent_amount("sacid") * 1.5)) + adjustWeeds(-rand(1,2)) + + // SERIOUSLY + if(S.has_reagent("facid", 1)) + adjustHealth(-round(S.get_reagent_amount("facid") * 2)) + adjustToxic(round(S.get_reagent_amount("facid") * 3)) + adjustWeeds(-rand(1,4)) + + // Plant-B-Gone is just as bad + if(S.has_reagent("plantbgone", 1)) + adjustHealth(-round(S.get_reagent_amount("plantbgone") * 5)) + adjustToxic(round(S.get_reagent_amount("plantbgone") * 6)) + adjustWeeds(-rand(4,8)) + + // why, just why + if(S.has_reagent("napalm", 1)) + if(!(myseed.resistance_flags & FIRE_PROOF)) + adjustHealth(-round(S.get_reagent_amount("napalm") * 6)) + adjustToxic(round(S.get_reagent_amount("napalm") * 7)) + adjustWeeds(-rand(5,9)) + + //Weed Spray + if(S.has_reagent("weedkiller", 1)) + adjustToxic(round(S.get_reagent_amount("weedkiller") * 0.5)) + //old toxicity was 4, each spray is default 10 (minimal of 5) so 5 and 2.5 are the new ammounts + adjustWeeds(-rand(1,2)) + + //Pest Spray + if(S.has_reagent("pestkiller", 1)) + adjustToxic(round(S.get_reagent_amount("pestkiller") * 0.5)) + adjustPests(-rand(1,2)) + + // Healing + if(S.has_reagent("cryoxadone", 1)) + adjustHealth(round(S.get_reagent_amount("cryoxadone") * 3)) + adjustToxic(-round(S.get_reagent_amount("cryoxadone") * 3)) + + // Ammonia is bad ass. + if(S.has_reagent("ammonia", 1)) + adjustHealth(round(S.get_reagent_amount("ammonia") * 0.5)) + adjustNutri(round(S.get_reagent_amount("ammonia") * 1)) + if(myseed) + myseed.adjust_yield(round(S.get_reagent_amount("ammonia") * 0.01)) + + // Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants + if(S.has_reagent("saltpetre", 1)) + var/salt = S.get_reagent_amount("saltpetre") + adjustHealth(round(salt * 0.25)) + if (myseed) + myseed.adjust_production(-round(salt/100)-prob(salt%100)) + myseed.adjust_potency(round(salt*0.50)) + // Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer + if(S.has_reagent("ash", 1)) + adjustHealth(round(S.get_reagent_amount("ash") * 0.25)) + adjustNutri(round(S.get_reagent_amount("ash") * 0.5)) + adjustWeeds(-1) + + // This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. + if(S.has_reagent("diethylamine", 1)) + adjustHealth(round(S.get_reagent_amount("diethylamine") * 1)) + adjustNutri(round(S.get_reagent_amount("diethylamine") * 2)) + if(myseed) + myseed.adjust_yield(round(S.get_reagent_amount("diethylamine") * 0.02)) + adjustPests(-rand(1,2)) + + // Compost, effectively + if(S.has_reagent("nutriment", 1)) + adjustHealth(round(S.get_reagent_amount("nutriment") * 0.5)) + adjustNutri(round(S.get_reagent_amount("nutriment") * 1)) + + // Compost for EVERYTHING + if(S.has_reagent("virusfood", 1)) + adjustNutri(round(S.get_reagent_amount("virusfood") * 0.5)) + adjustHealth(-round(S.get_reagent_amount("virusfood") * 0.5)) + + // FEED ME + if(S.has_reagent("blood", 1)) + adjustNutri(round(S.get_reagent_amount("blood") * 1)) + adjustPests(rand(2,4)) + + // FEED ME SEYMOUR + if(S.has_reagent("strangereagent", 1)) + spawnplant() + + // The best stuff there is. For testing/debugging. + if(S.has_reagent("adminordrazine", 1)) + adjustWater(round(S.get_reagent_amount("adminordrazine") * 1)) + adjustHealth(round(S.get_reagent_amount("adminordrazine") * 1)) + adjustNutri(round(S.get_reagent_amount("adminordrazine") * 1)) + adjustPests(-rand(1,5)) + adjustWeeds(-rand(1,5)) + if(S.has_reagent("adminordrazine", 5)) + switch(rand(100)) + if(66 to 100) + mutatespecie() + if(33 to 65) + mutateweed() + if(1 to 32) + mutatepest(user) + else + to_chat(user, "Nothing happens...") + +/obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) + //Called when mob user "attacks" it with object O if(istype(O, /obj/item/weapon/reagent_containers) ) // Syringe stuff (and other reagent containers now too) - var/obj/item/weapon/reagent_containers/reagent_source = O - - if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe)) - var/obj/item/weapon/reagent_containers/syringe/syr = reagent_source - if(syr.mode != 1) - to_chat(user, "You can't get any extract out of this plant." ) - return - - if(!reagent_source.reagents.total_volume) - to_chat(user, "[reagent_source] is empty.") - return 1 - - var/list/trays = list(src)//makes the list just this in cases of syringes and compost etc - var/target = myseed ? myseed.plantname : src - var/visi_msg = "" - var/irrigate = 0 //How am I supposed to irrigate pill contents? - - if(istype(reagent_source, /obj/item/weapon/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/weapon/reagent_containers/pill)) - visi_msg="[user] composts [reagent_source], spreading it through [target]" - else - if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe/)) - var/obj/item/weapon/reagent_containers/syringe/syr = reagent_source - visi_msg="[user] injects [target] with [syr]" - if(syr.reagents.total_volume <= syr.amount_per_transfer_from_this) - syr.mode = 0 - else if(istype(reagent_source, /obj/item/weapon/reagent_containers/spray/)) - visi_msg="[user] sprays [target] with [reagent_source]" - playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - irrigate = 1 - else if(reagent_source.amount_per_transfer_from_this) // Droppers, cans, beakers, what have you. - visi_msg="[user] uses [reagent_source] on [target]" - irrigate = 1 - // Beakers, bottles, buckets, etc. Can't use is_open_container though. - if(istype(reagent_source, /obj/item/weapon/reagent_containers/glass/)) - playsound(loc, 'sound/effects/slosh.ogg', 25, 1) - - if(irrigate && reagent_source.amount_per_transfer_from_this > 30 && reagent_source.reagents.total_volume >= 30 && using_irrigation) - trays = FindConnected() - if (trays.len > 1) - visi_msg += ", setting off the irrigation system" - - if(visi_msg) - visible_message("[visi_msg].") - - var/split = round(reagent_source.amount_per_transfer_from_this/trays.len) - - for(var/obj/machinery/hydroponics/H in trays) - //cause I don't want to feel like im juggling 15 tamagotchis and I can get to my real work of ripping flooring apart in hopes of validating my life choices of becoming a space-gardener - - var/datum/reagents/S = new /datum/reagents() //This is a strange way, but I don't know of a better one so I can't fix it at the moment... - S.my_atom = H - - reagent_source.reagents.trans_to(S,split) - if(istype(reagent_source, /obj/item/weapon/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/weapon/reagent_containers/pill)) - qdel(reagent_source) - - H.applyChemicals(S, user) - - S.clear_reagents() - qdel(S) - H.update_icon() - if(reagent_source) // If the source wasn't composted and destroyed - reagent_source.update_icon() - return 1 - - else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample)) - if(!myseed) - if(istype(O, /obj/item/seeds/kudzu)) - investigate_log("had Kudzu planted in it by [user.ckey]([user]) at ([x],[y],[z])","kudzu") - if(!user.transferItemToLoc(O, src)) - return - to_chat(user, "You plant [O].") - dead = 0 - myseed = O - age = 1 - plant_health = myseed.endurance - lastcycle = world.time - update_icon() - else - to_chat(user, "[src] already has seeds in it!") - - else if(istype(O, /obj/item/device/plant_analyzer)) - if(myseed) - to_chat(user, "*** [myseed.plantname] ***" ) - to_chat(user, "- Plant Age: [age]") - var/list/text_string = myseed.get_analyzer_text() - if(text_string) - to_chat(user, text_string) - else - to_chat(user, "No plant found.") - to_chat(user, "- Weed level: [weedlevel] / 10") - to_chat(user, "- Pest level: [pestlevel] / 10") - to_chat(user, "- Toxicity level: [toxic] / 100") - to_chat(user, "- Water level: [waterlevel] / [maxwater]") - to_chat(user, "- Nutrition level: [nutrilevel] / [maxnutri]") - to_chat(user, "") - - else if(istype(O, /obj/item/weapon/cultivator)) - if(weedlevel > 0) - user.visible_message("[user] uproots the weeds.", "You remove the weeds from [src].") - weedlevel = 0 - update_icon() - else - to_chat(user, "This plot is completely devoid of weeds! It doesn't need uprooting.") - - else if(istype(O, /obj/item/weapon/storage/bag/plants)) - attack_hand(user) - var/obj/item/weapon/storage/bag/plants/S = O - for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) - if(!S.can_be_inserted(G)) - return - S.handle_item_insertion(G, 1) - - else if(istype(O, /obj/item/weapon/wrench) && unwrenchable) - if(using_irrigation) - to_chat(user, "Disconnect the hoses first!") - return - - if(!anchored && !isinspace()) - user.visible_message("[user] begins to wrench [src] into place.", \ - "You begin to wrench [src] in place...") - playsound(loc, O.usesound, 50, 1) - if (do_after(user, 20*O.toolspeed, target = src)) - if(anchored) - return - anchored = 1 - user.visible_message("[user] wrenches [src] into place.", \ - "You wrench [src] in place.") - else if(anchored) - user.visible_message("[user] begins to unwrench [src].", \ - "You begin to unwrench [src]...") - playsound(loc, O.usesound, 50, 1) - if (do_after(user, 20*O.toolspeed, target = src)) - if(!anchored) - return - anchored = 0 - user.visible_message("[user] unwrenches [src].", \ - "You unwrench [src].") - - else if(istype(O, /obj/item/weapon/wirecutters) && unwrenchable) - using_irrigation = !using_irrigation - playsound(src, O.usesound, 50, 1) - user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ - "You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses.") - for(var/obj/machinery/hydroponics/h in range(1,src)) - h.update_icon() - - else if(istype(O, /obj/item/weapon/shovel/spade) && unwrenchable) - if(!myseed && !weedlevel) - to_chat(user, "[src] doesn't have any plants or weeds!") - return - user.visible_message("[user] starts digging out [src]'s plants...", "You start digging out [src]'s plants...") - playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) - if(!do_after(user, 50, target = src) || (!myseed && !weedlevel)) - return - user.visible_message("[user] digs out the plants in [src]!", "You dig out all of [src]'s plants!") - playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) - if(myseed) //Could be that they're just using it as a de-weeder - age = 0 - plant_health = 0 - if(harvest) - harvest = FALSE //To make sure they can't just put in another seed and insta-harvest it - qdel(myseed) - myseed = null - weedlevel = 0 //Has a side effect of cleaning up those nasty weeds - update_icon() - - else - return ..() - -/obj/machinery/hydroponics/attack_hand(mob/user) - if(issilicon(user)) //How does AI know what plant is? - return - if(harvest) - myseed.harvest(user) - else if(dead) - dead = 0 - to_chat(user, "You remove the dead plant from [src].") - qdel(myseed) - myseed = null - update_icon() - else - examine(user) - -/obj/machinery/hydroponics/proc/update_tray(mob/user = usr) - harvest = 0 - lastproduce = age - if(istype(myseed,/obj/item/seeds/replicapod)) - to_chat(user, "You harvest from the [myseed.plantname].") - else if(myseed.getYield() <= 0) - to_chat(user, "You fail to harvest anything useful!") - else - to_chat(user, "You harvest [myseed.getYield()] items from the [myseed.plantname].") - if(!myseed.get_gene(/datum/plant_gene/trait/repeated_harvest)) - qdel(myseed) - myseed = null - dead = 0 - update_icon() - -/// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// -/obj/machinery/hydroponics/proc/adjustNutri(adjustamt) - nutrilevel = Clamp(nutrilevel + adjustamt, 0, maxnutri) - -/obj/machinery/hydroponics/proc/adjustWater(adjustamt) - waterlevel = Clamp(waterlevel + adjustamt, 0, maxwater) - - if(adjustamt>0) - adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration. - -/obj/machinery/hydroponics/proc/adjustHealth(adjustamt) - if(myseed && !dead) - plant_health = Clamp(plant_health + adjustamt, 0, myseed.endurance) - -/obj/machinery/hydroponics/proc/adjustToxic(adjustamt) - toxic = Clamp(toxic + adjustamt, 0, 100) - -/obj/machinery/hydroponics/proc/adjustPests(adjustamt) - pestlevel = Clamp(pestlevel + adjustamt, 0, 10) - -/obj/machinery/hydroponics/proc/adjustWeeds(adjustamt) - weedlevel = Clamp(weedlevel + adjustamt, 0, 10) - -/obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood - var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato) - var/chosen = pick(livingplants) - var/mob/living/simple_animal/hostile/C = new chosen - C.faction = list("plants") - + var/obj/item/weapon/reagent_containers/reagent_source = O + + if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe)) + var/obj/item/weapon/reagent_containers/syringe/syr = reagent_source + if(syr.mode != 1) + to_chat(user, "You can't get any extract out of this plant." ) + return + + if(!reagent_source.reagents.total_volume) + to_chat(user, "[reagent_source] is empty.") + return 1 + + var/list/trays = list(src)//makes the list just this in cases of syringes and compost etc + var/target = myseed ? myseed.plantname : src + var/visi_msg = "" + var/irrigate = 0 //How am I supposed to irrigate pill contents? + + if(istype(reagent_source, /obj/item/weapon/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/weapon/reagent_containers/pill)) + visi_msg="[user] composts [reagent_source], spreading it through [target]" + else + if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe/)) + var/obj/item/weapon/reagent_containers/syringe/syr = reagent_source + visi_msg="[user] injects [target] with [syr]" + if(syr.reagents.total_volume <= syr.amount_per_transfer_from_this) + syr.mode = 0 + else if(istype(reagent_source, /obj/item/weapon/reagent_containers/spray/)) + visi_msg="[user] sprays [target] with [reagent_source]" + playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) + irrigate = 1 + else if(reagent_source.amount_per_transfer_from_this) // Droppers, cans, beakers, what have you. + visi_msg="[user] uses [reagent_source] on [target]" + irrigate = 1 + // Beakers, bottles, buckets, etc. Can't use is_open_container though. + if(istype(reagent_source, /obj/item/weapon/reagent_containers/glass/)) + playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + + if(irrigate && reagent_source.amount_per_transfer_from_this > 30 && reagent_source.reagents.total_volume >= 30 && using_irrigation) + trays = FindConnected() + if (trays.len > 1) + visi_msg += ", setting off the irrigation system" + + if(visi_msg) + visible_message("[visi_msg].") + + var/split = round(reagent_source.amount_per_transfer_from_this/trays.len) + + for(var/obj/machinery/hydroponics/H in trays) + //cause I don't want to feel like im juggling 15 tamagotchis and I can get to my real work of ripping flooring apart in hopes of validating my life choices of becoming a space-gardener + + var/datum/reagents/S = new /datum/reagents() //This is a strange way, but I don't know of a better one so I can't fix it at the moment... + S.my_atom = H + + reagent_source.reagents.trans_to(S,split) + if(istype(reagent_source, /obj/item/weapon/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/weapon/reagent_containers/pill)) + qdel(reagent_source) + + H.applyChemicals(S, user) + + S.clear_reagents() + qdel(S) + H.update_icon() + if(reagent_source) // If the source wasn't composted and destroyed + reagent_source.update_icon() + return 1 + + else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample)) + if(!myseed) + if(istype(O, /obj/item/seeds/kudzu)) + investigate_log("had Kudzu planted in it by [user.ckey]([user]) at ([x],[y],[z])","kudzu") + if(!user.transferItemToLoc(O, src)) + return + to_chat(user, "You plant [O].") + dead = 0 + myseed = O + age = 1 + plant_health = myseed.endurance + lastcycle = world.time + update_icon() + else + to_chat(user, "[src] already has seeds in it!") + + else if(istype(O, /obj/item/device/plant_analyzer)) + if(myseed) + to_chat(user, "*** [myseed.plantname] ***" ) + to_chat(user, "- Plant Age: [age]") + var/list/text_string = myseed.get_analyzer_text() + if(text_string) + to_chat(user, text_string) + else + to_chat(user, "No plant found.") + to_chat(user, "- Weed level: [weedlevel] / 10") + to_chat(user, "- Pest level: [pestlevel] / 10") + to_chat(user, "- Toxicity level: [toxic] / 100") + to_chat(user, "- Water level: [waterlevel] / [maxwater]") + to_chat(user, "- Nutrition level: [nutrilevel] / [maxnutri]") + to_chat(user, "") + + else if(istype(O, /obj/item/weapon/cultivator)) + if(weedlevel > 0) + user.visible_message("[user] uproots the weeds.", "You remove the weeds from [src].") + weedlevel = 0 + update_icon() + else + to_chat(user, "This plot is completely devoid of weeds! It doesn't need uprooting.") + + else if(istype(O, /obj/item/weapon/storage/bag/plants)) + attack_hand(user) + var/obj/item/weapon/storage/bag/plants/S = O + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) + if(!S.can_be_inserted(G)) + return + S.handle_item_insertion(G, 1) + + else if(istype(O, /obj/item/weapon/wrench) && unwrenchable) + if(using_irrigation) + to_chat(user, "Disconnect the hoses first!") + return + + if(!anchored && !isinspace()) + user.visible_message("[user] begins to wrench [src] into place.", \ + "You begin to wrench [src] in place...") + playsound(loc, O.usesound, 50, 1) + if (do_after(user, 20*O.toolspeed, target = src)) + if(anchored) + return + anchored = 1 + user.visible_message("[user] wrenches [src] into place.", \ + "You wrench [src] in place.") + else if(anchored) + user.visible_message("[user] begins to unwrench [src].", \ + "You begin to unwrench [src]...") + playsound(loc, O.usesound, 50, 1) + if (do_after(user, 20*O.toolspeed, target = src)) + if(!anchored) + return + anchored = 0 + user.visible_message("[user] unwrenches [src].", \ + "You unwrench [src].") + + else if(istype(O, /obj/item/weapon/wirecutters) && unwrenchable) + using_irrigation = !using_irrigation + playsound(src, O.usesound, 50, 1) + user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ + "You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses.") + for(var/obj/machinery/hydroponics/h in range(1,src)) + h.update_icon() + + else if(istype(O, /obj/item/weapon/shovel/spade) && unwrenchable) + if(!myseed && !weedlevel) + to_chat(user, "[src] doesn't have any plants or weeds!") + return + user.visible_message("[user] starts digging out [src]'s plants...", "You start digging out [src]'s plants...") + playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) + if(!do_after(user, 50, target = src) || (!myseed && !weedlevel)) + return + user.visible_message("[user] digs out the plants in [src]!", "You dig out all of [src]'s plants!") + playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) + if(myseed) //Could be that they're just using it as a de-weeder + age = 0 + plant_health = 0 + if(harvest) + harvest = FALSE //To make sure they can't just put in another seed and insta-harvest it + qdel(myseed) + myseed = null + weedlevel = 0 //Has a side effect of cleaning up those nasty weeds + update_icon() + + else + return ..() + +/obj/machinery/hydroponics/attack_hand(mob/user) + if(issilicon(user)) //How does AI know what plant is? + return + if(harvest) + myseed.harvest(user) + else if(dead) + dead = 0 + to_chat(user, "You remove the dead plant from [src].") + qdel(myseed) + myseed = null + update_icon() + else + examine(user) + +/obj/machinery/hydroponics/proc/update_tray(mob/user = usr) + harvest = 0 + lastproduce = age + if(istype(myseed,/obj/item/seeds/replicapod)) + to_chat(user, "You harvest from the [myseed.plantname].") + else if(myseed.getYield() <= 0) + to_chat(user, "You fail to harvest anything useful!") + else + to_chat(user, "You harvest [myseed.getYield()] items from the [myseed.plantname].") + if(!myseed.get_gene(/datum/plant_gene/trait/repeated_harvest)) + qdel(myseed) + myseed = null + dead = 0 + update_icon() + +/// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// +/obj/machinery/hydroponics/proc/adjustNutri(adjustamt) + nutrilevel = Clamp(nutrilevel + adjustamt, 0, maxnutri) + +/obj/machinery/hydroponics/proc/adjustWater(adjustamt) + waterlevel = Clamp(waterlevel + adjustamt, 0, maxwater) + + if(adjustamt>0) + adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration. + +/obj/machinery/hydroponics/proc/adjustHealth(adjustamt) + if(myseed && !dead) + plant_health = Clamp(plant_health + adjustamt, 0, myseed.endurance) + +/obj/machinery/hydroponics/proc/adjustToxic(adjustamt) + toxic = Clamp(toxic + adjustamt, 0, 100) + +/obj/machinery/hydroponics/proc/adjustPests(adjustamt) + pestlevel = Clamp(pestlevel + adjustamt, 0, 10) + +/obj/machinery/hydroponics/proc/adjustWeeds(adjustamt) + weedlevel = Clamp(weedlevel + adjustamt, 0, 10) + +/obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood + var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato) + var/chosen = pick(livingplants) + var/mob/living/simple_animal/hostile/C = new chosen + C.faction = list("plants") + /obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect visible_message("[src] begins to glow with a beautiful light!") self_sustaining = TRUE update_icon() - -/////////////////////////////////////////////////////////////////////////////// -/obj/machinery/hydroponics/soil //Not actually hydroponics at all! Honk! - name = "soil" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "soil" - density = 0 + +/////////////////////////////////////////////////////////////////////////////// +/obj/machinery/hydroponics/soil //Not actually hydroponics at all! Honk! + name = "soil" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "soil" + density = 0 use_power = NO_POWER_USE - unwrenchable = 0 - -/obj/machinery/hydroponics/soil/update_icon_hoses() - return // Has no hoses - -/obj/machinery/hydroponics/soil/update_icon_lights() - return // Has no lights - -/obj/machinery/hydroponics/soil/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/shovel) && !istype(O, /obj/item/weapon/shovel/spade)) //Doesn't include spades because of uprooting plants - to_chat(user, "You clear up [src]!") - qdel(src) - else - return ..() + unwrenchable = 0 + +/obj/machinery/hydroponics/soil/update_icon_hoses() + return // Has no hoses + +/obj/machinery/hydroponics/soil/update_icon_lights() + return // Has no lights + +/obj/machinery/hydroponics/soil/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/shovel) && !istype(O, /obj/item/weapon/shovel/spade)) //Doesn't include spades because of uprooting plants + to_chat(user, "You clear up [src]!") + qdel(src) + else + return ..() diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 5f4a79b661..5b6c91bccd 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -10,8 +10,8 @@ /datum/plant_gene/proc/Copy() return new type - - +/datum/plant_gene/proc/apply_vars(obj/item/seeds/S) // currently used for fire resist, can prob. be further refactored + return // Core plant genes store 5 main variables: lifespan, endurance, production, yield, potency /datum/plant_gene/core @@ -201,7 +201,7 @@ // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. // Applies other trait effects (teleporting, etc) to the target by on_slip. name = "Slippery Skin" - rate = 0.1 + rate = 1.6 examine_line = "It has a very slippery skin." /datum/plant_gene/trait/slip/on_cross(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) @@ -209,17 +209,16 @@ var/obj/item/seeds/seed = G.seed var/mob/living/carbon/M = target - var/stun_len = seed.potency * rate * 0.8 if(istype(G) && ispath(G.trash, /obj/item/weapon/grown)) return + var/stun_len = seed.potency * rate if(!istype(G, /obj/item/weapon/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube"))) stun_len /= 3 - var/stun = min(stun_len, 7) - var/weaken = min(stun_len, 7) + var/knockdown = min(stun_len, 140) - if(M.slip(stun, weaken, G)) + if(M.slip(knockdown, G)) for(var/datum/plant_gene/trait/T in seed.genes) T.on_slip(G, M) @@ -411,6 +410,17 @@ S.start() G.reagents.clear_reagents() +/datum/plant_gene/trait/fire_resistance // Lavaland + name = "Fire Resistance" + +/datum/plant_gene/trait/fire_resistance/apply_vars(obj/item/seeds/S) + if(!(S.resistance_flags & FIRE_PROOF)) + S.resistance_flags |= FIRE_PROOF + +/datum/plant_gene/trait/fire_resistance/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc) + if(!(G.resistance_flags & FIRE_PROOF)) + G.resistance_flags |= FIRE_PROOF + /datum/plant_gene/trait/plant_type // Parent type name = "you shouldn't see this" trait_id = "plant_type" diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index fcfb1ca064..18bac82ee4 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -191,7 +191,7 @@ to_chat(usr, "\The [src] is full.") return 0 - if(istype(O.loc,/mob)) + if(ismob(O.loc)) var/mob/M = O.loc if(!M.drop_item()) return 0 diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 0d3cdea2fc..4b83485fa5 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -1,386 +1,386 @@ -// ******************************************************** -// Here's all the seeds (plants) that can be used in hydro -// ******************************************************** - -/obj/item/seeds - icon = 'icons/obj/hydroponics/seeds.dmi' - icon_state = "seed" // Unknown plant seed - these shouldn't exist in-game. - w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE - var/plantname = "Plants" // Name of plant when planted. - var/product // A type path. The thing that is created when the plant is harvested. - var/species = "" // Used to update icons. Should match the name in the sprites unless all icon_* are overriden. - - var/growing_icon = 'icons/obj/hydroponics/growing.dmi' //the file that stores the sprites of the growing plant from this seed. - var/icon_grow // Used to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it. - var/icon_dead // Used to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it. - var/icon_harvest // Used to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages]. - - var/lifespan = 25 // How long before the plant begins to take damage from age. - var/endurance = 15 // Amount of health the plant has. - var/maturation = 6 // Used to determine which sprite to switch to when growing. - var/production = 6 // Changes the amount of time needed for a plant to become harvestable. - var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. - var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. - var/growthstages = 6 // Amount of growth sprites the plant has. - var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to Centcom. - var/list/mutatelist = list() // The type of plants that this plant can mutate into. - var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. - var/list/reagents_add = list() - // A list of reagents to add to product. - // Format: "reagent_id" = potency multiplier - // Stronger reagents must always come first to avoid being displaced by weaker ones. - // Total amount of any reagent in plant is calculated by formula: 1 + round(potency * multiplier) - - var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth - var/weed_chance = 5 //Percentage chance per tray update to grow weeds - -/obj/item/seeds/New(loc, nogenes = 0) - ..() - pixel_x = rand(-8, 8) - pixel_y = rand(-8, 8) - - if(!icon_grow) - icon_grow = "[species]-grow" - - if(!icon_dead) - icon_dead = "[species]-dead" - - if(!icon_harvest && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && yield != -1) - icon_harvest = "[species]-harvest" - - if(!nogenes) // not used on Copy() - genes += new /datum/plant_gene/core/lifespan(lifespan) - genes += new /datum/plant_gene/core/endurance(endurance) - genes += new /datum/plant_gene/core/weed_rate(weed_rate) - genes += new /datum/plant_gene/core/weed_chance(weed_chance) - if(yield != -1) - genes += new /datum/plant_gene/core/yield(yield) - genes += new /datum/plant_gene/core/production(production) - if(potency != -1) - genes += new /datum/plant_gene/core/potency(potency) - - for(var/p in genes) - if(ispath(p)) - genes -= p - genes += new p - - for(var/reag_id in reagents_add) - genes += new /datum/plant_gene/reagent(reag_id, reagents_add[reag_id]) - -/obj/item/seeds/proc/Copy() - var/obj/item/seeds/S = new type(null, 1) - // Copy all the stats - S.lifespan = lifespan - S.endurance = endurance - S.maturation = maturation - S.production = production - S.yield = yield - S.potency = potency - S.weed_rate = weed_rate - S.weed_chance = weed_chance - S.genes = list() - for(var/g in genes) - var/datum/plant_gene/G = g - S.genes += G.Copy() - S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. - return S - -/obj/item/seeds/proc/get_gene(typepath) - return (locate(typepath) in genes) - -/obj/item/seeds/proc/reagents_from_genes() - reagents_add = list() - for(var/datum/plant_gene/reagent/R in genes) - reagents_add[R.reagent_id] = R.rate - -/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) - adjust_lifespan(rand(-lifemut,lifemut)) - adjust_endurance(rand(-endmut,endmut)) - adjust_production(rand(-productmut,productmut)) - adjust_yield(rand(-yieldmut,yieldmut)) - adjust_potency(rand(-potmut,potmut)) - adjust_weed_rate(rand(-wrmut, wrmut)) - adjust_weed_chance(rand(-wcmut, wcmut)) - if(prob(traitmut)) - add_random_traits(1, 1) - - - -/obj/item/seeds/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. - if(istype(Proj, /obj/item/projectile/energy/florayield)) - var/rating = 1 - if(istype(loc, /obj/machinery/hydroponics)) - var/obj/machinery/hydroponics/H = loc - rating = H.rating - - if(yield == 0)//Oh god don't divide by zero you'll doom us all. - adjust_yield(1 * rating) - else if(prob(1/(yield * yield) * 100))//This formula gives you diminishing returns based on yield. 100% with 1 yield, decreasing to 25%, 11%, 6, 4, 2... - adjust_yield(1 * rating) - else - return ..() - - -// Harvest procs -/obj/item/seeds/proc/getYield() - var/return_yield = yield - - var/obj/machinery/hydroponics/parent = loc - if(istype(loc, /obj/machinery/hydroponics)) - if(parent.yieldmod == 0) - return_yield = min(return_yield, 1)//1 if above zero, 0 otherwise - else - return_yield *= (parent.yieldmod) - - return return_yield - - -/obj/item/seeds/proc/harvest(mob/user = usr) - var/obj/machinery/hydroponics/parent = loc //for ease of access - var/t_amount = 0 - var/list/result = list() - var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK - var/product_name - while(t_amount < getYield()) - var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new product(output_loc, src) - result.Add(t_prod) // User gets a consumable - if(!t_prod) - return - t_amount++ - product_name = t_prod.name - if(getYield() >= 1) +// ******************************************************** +// Here's all the seeds (plants) that can be used in hydro +// ******************************************************** + +/obj/item/seeds + icon = 'icons/obj/hydroponics/seeds.dmi' + icon_state = "seed" // Unknown plant seed - these shouldn't exist in-game. + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + var/plantname = "Plants" // Name of plant when planted. + var/product // A type path. The thing that is created when the plant is harvested. + var/species = "" // Used to update icons. Should match the name in the sprites unless all icon_* are overriden. + + var/growing_icon = 'icons/obj/hydroponics/growing.dmi' //the file that stores the sprites of the growing plant from this seed. + var/icon_grow // Used to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it. + var/icon_dead // Used to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it. + var/icon_harvest // Used to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages]. + + var/lifespan = 25 // How long before the plant begins to take damage from age. + var/endurance = 15 // Amount of health the plant has. + var/maturation = 6 // Used to determine which sprite to switch to when growing. + var/production = 6 // Changes the amount of time needed for a plant to become harvestable. + var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. + var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. + var/growthstages = 6 // Amount of growth sprites the plant has. + var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to Centcom. + var/list/mutatelist = list() // The type of plants that this plant can mutate into. + var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. + var/list/reagents_add = list() + // A list of reagents to add to product. + // Format: "reagent_id" = potency multiplier + // Stronger reagents must always come first to avoid being displaced by weaker ones. + // Total amount of any reagent in plant is calculated by formula: 1 + round(potency * multiplier) + + var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth + var/weed_chance = 5 //Percentage chance per tray update to grow weeds + +/obj/item/seeds/New(loc, nogenes = 0) + ..() + pixel_x = rand(-8, 8) + pixel_y = rand(-8, 8) + + if(!icon_grow) + icon_grow = "[species]-grow" + + if(!icon_dead) + icon_dead = "[species]-dead" + + if(!icon_harvest && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && yield != -1) + icon_harvest = "[species]-harvest" + + if(!nogenes) // not used on Copy() + genes += new /datum/plant_gene/core/lifespan(lifespan) + genes += new /datum/plant_gene/core/endurance(endurance) + genes += new /datum/plant_gene/core/weed_rate(weed_rate) + genes += new /datum/plant_gene/core/weed_chance(weed_chance) + if(yield != -1) + genes += new /datum/plant_gene/core/yield(yield) + genes += new /datum/plant_gene/core/production(production) + if(potency != -1) + genes += new /datum/plant_gene/core/potency(potency) + + for(var/p in genes) + if(ispath(p)) + genes -= p + genes += new p + + for(var/reag_id in reagents_add) + genes += new /datum/plant_gene/reagent(reag_id, reagents_add[reag_id]) + +/obj/item/seeds/proc/Copy() + var/obj/item/seeds/S = new type(null, 1) + // Copy all the stats + S.lifespan = lifespan + S.endurance = endurance + S.maturation = maturation + S.production = production + S.yield = yield + S.potency = potency + S.weed_rate = weed_rate + S.weed_chance = weed_chance + S.genes = list() + for(var/g in genes) + var/datum/plant_gene/G = g + S.genes += G.Copy() + S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. + return S + +/obj/item/seeds/proc/get_gene(typepath) + return (locate(typepath) in genes) + +/obj/item/seeds/proc/reagents_from_genes() + reagents_add = list() + for(var/datum/plant_gene/reagent/R in genes) + reagents_add[R.reagent_id] = R.rate + +/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) + adjust_lifespan(rand(-lifemut,lifemut)) + adjust_endurance(rand(-endmut,endmut)) + adjust_production(rand(-productmut,productmut)) + adjust_yield(rand(-yieldmut,yieldmut)) + adjust_potency(rand(-potmut,potmut)) + adjust_weed_rate(rand(-wrmut, wrmut)) + adjust_weed_chance(rand(-wcmut, wcmut)) + if(prob(traitmut)) + add_random_traits(1, 1) + + + +/obj/item/seeds/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. + if(istype(Proj, /obj/item/projectile/energy/florayield)) + var/rating = 1 + if(istype(loc, /obj/machinery/hydroponics)) + var/obj/machinery/hydroponics/H = loc + rating = H.rating + + if(yield == 0)//Oh god don't divide by zero you'll doom us all. + adjust_yield(1 * rating) + else if(prob(1/(yield * yield) * 100))//This formula gives you diminishing returns based on yield. 100% with 1 yield, decreasing to 25%, 11%, 6, 4, 2... + adjust_yield(1 * rating) + else + return ..() + + +// Harvest procs +/obj/item/seeds/proc/getYield() + var/return_yield = yield + + var/obj/machinery/hydroponics/parent = loc + if(istype(loc, /obj/machinery/hydroponics)) + if(parent.yieldmod == 0) + return_yield = min(return_yield, 1)//1 if above zero, 0 otherwise + else + return_yield *= (parent.yieldmod) + + return return_yield + + +/obj/item/seeds/proc/harvest(mob/user = usr) + var/obj/machinery/hydroponics/parent = loc //for ease of access + var/t_amount = 0 + var/list/result = list() + var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK + var/product_name + while(t_amount < getYield()) + var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new product(output_loc, src) + result.Add(t_prod) // User gets a consumable + if(!t_prod) + return + t_amount++ + product_name = t_prod.name + if(getYield() >= 1) SSblackbox.add_details("food_harvested","[product_name]|[getYield()]") - parent.update_tray() - - return result - - -/obj/item/seeds/proc/prepare_result(var/obj/item/weapon/reagent_containers/food/snacks/grown/T) - if(T.reagents) - for(var/reagent_id in reagents_add) - if(reagent_id == "blood") // Hack to make blood in plants always O- - T.reagents.add_reagent(reagent_id, 1 + round(potency * reagents_add[reagent_id], 1), list("blood_type"="O-")) - continue - - T.reagents.add_reagent(reagent_id, 1 + round(potency * reagents_add[reagent_id],1)) - return 1 - - -/// Setters procs /// -/obj/item/seeds/proc/adjust_yield(adjustamt) - if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable - yield = Clamp(yield + adjustamt, 0, 10) - - if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - yield = 1 // Mushrooms always have a minimum yield of 1. - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) - if(C) - C.value = yield - -/obj/item/seeds/proc/adjust_lifespan(adjustamt) - lifespan = Clamp(lifespan + adjustamt, 10, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) - if(C) - C.value = lifespan - -/obj/item/seeds/proc/adjust_endurance(adjustamt) - endurance = Clamp(endurance + adjustamt, 10, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) - if(C) - C.value = endurance - -/obj/item/seeds/proc/adjust_production(adjustamt) - if(yield != -1) - production = Clamp(production + adjustamt, 1, 10) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) - if(C) - C.value = production - -/obj/item/seeds/proc/adjust_potency(adjustamt) - if(potency != -1) - potency = Clamp(potency + adjustamt, 0, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) - if(C) - C.value = potency - -/obj/item/seeds/proc/adjust_weed_rate(adjustamt) - weed_rate = Clamp(weed_rate + adjustamt, 0, 10) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) - if(C) - C.value = weed_rate - -/obj/item/seeds/proc/adjust_weed_chance(adjustamt) - weed_chance = Clamp(weed_chance + adjustamt, 0, 67) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) - if(C) - C.value = weed_chance - -//Directly setting stats - -/obj/item/seeds/proc/set_yield(adjustamt) - if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable - yield = Clamp(adjustamt, 0, 10) - - if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - yield = 1 // Mushrooms always have a minimum yield of 1. - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) - if(C) - C.value = yield - -/obj/item/seeds/proc/set_lifespan(adjustamt) - lifespan = Clamp(adjustamt, 10, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) - if(C) - C.value = lifespan - -/obj/item/seeds/proc/set_endurance(adjustamt) - endurance = Clamp(adjustamt, 10, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) - if(C) - C.value = endurance - -/obj/item/seeds/proc/set_production(adjustamt) - if(yield != -1) - production = Clamp(adjustamt, 1, 10) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) - if(C) - C.value = production - -/obj/item/seeds/proc/set_potency(adjustamt) - if(potency != -1) - potency = Clamp(adjustamt, 0, 100) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) - if(C) - C.value = potency - -/obj/item/seeds/proc/set_weed_rate(adjustamt) - weed_rate = Clamp(adjustamt, 0, 10) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) - if(C) - C.value = weed_rate - -/obj/item/seeds/proc/set_weed_chance(adjustamt) - weed_chance = Clamp(adjustamt, 0, 67) - var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) - if(C) - C.value = weed_chance - - -/obj/item/seeds/proc/get_analyzer_text() //in case seeds have something special to tell to the analyzer - var/text = "" - if(!get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && !get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) - text += "- Plant type: Normal plant\n" - if(get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) - text += "- Plant type: Weed. Can grow in nutrient-poor soil.\n" - if(get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - text += "- Plant type: Mushroom. Can grow in dry soil.\n" - if(get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) - text += "- Plant type: UNKNOWN \n" - if(potency != -1) - text += "- Potency: [potency]\n" - if(yield != -1) - text += "- Yield: [yield]\n" - text += "- Maturation speed: [maturation]\n" - if(yield != -1) - text += "- Production speed: [production]\n" - text += "- Endurance: [endurance]\n" - text += "- Lifespan: [lifespan]\n" - text += "- Weed Growth Rate: [weed_rate]\n" - text += "- Weed Vulnerability: [weed_chance]\n" - if(rarity) - text += "- Species Discovery Value: [rarity]\n" - var/all_traits = "" - for(var/datum/plant_gene/trait/traits in genes) - if(istype(traits, /datum/plant_gene/trait/plant_type)) - continue - all_traits += " [traits.get_name()]" - text += "- Plant Traits:[all_traits]\n" - - text += "*---------*" - - return text - -/obj/item/seeds/proc/on_chem_reaction(datum/reagents/S) //in case seeds have some special interaction with special chems - return - -/obj/item/seeds/attackby(obj/item/O, mob/user, params) - if (istype(O, /obj/item/device/plant_analyzer)) - to_chat(user, "*---------*\n This is \a [src].") - var/text = get_analyzer_text() - if(text) - to_chat(user, "[text]") - - return - ..() // Fallthrough to item/attackby() so that bags can pick seeds up - - - - - - - -// Checks plants for broken tray icons. Use Advanced Proc Call to activate. -// Maybe some day it would be used as unit test. -/proc/check_plants_growth_stages_icons() - var/list/states = icon_states('icons/obj/hydroponics/growing.dmi') - states |= icon_states('icons/obj/hydroponics/growing_fruits.dmi') - states |= icon_states('icons/obj/hydroponics/growing_flowers.dmi') - states |= icon_states('icons/obj/hydroponics/growing_mushrooms.dmi') - states |= icon_states('icons/obj/hydroponics/growing_vegetables.dmi') - var/list/paths = typesof(/obj/item/seeds) - /obj/item/seeds - typesof(/obj/item/seeds/sample) - - for(var/seedpath in paths) - var/obj/item/seeds/seed = new seedpath - - for(var/i in 1 to seed.growthstages) - if("[seed.icon_grow][i]" in states) - continue - to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_grow][i] icon!") - - if(!(seed.icon_dead in states)) - to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_dead] icon!") - - if(seed.icon_harvest) // mushrooms have no grown sprites, same for items with no product - if(!(seed.icon_harvest in states)) - to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_harvest] icon!") - -/obj/item/seeds/proc/randomize_stats() - set_lifespan(rand(25, 60)) - set_endurance(rand(15, 35)) - set_production(rand(2, 10)) - set_yield(rand(1, 10)) - set_potency(rand(10, 35)) - set_weed_rate(rand(1, 10)) - set_weed_chance(rand(5, 100)) - maturation = rand(6, 12) - -/obj/item/seeds/proc/add_random_reagents(lower = 0, upper = 2) - var/amount_random_reagents = rand(lower, upper) - for(var/i in 1 to amount_random_reagents) - var/random_amount = rand(4, 15) * 0.01 // this must be multiplied by 0.01, otherwise, it will not properly associate - var/datum/plant_gene/reagent/R = new(get_random_reagent_id(), random_amount) - if(R.can_add(src)) - genes += R - else - qdel(R) - reagents_from_genes() - -/obj/item/seeds/proc/add_random_traits(lower = 0, upper = 2) - var/amount_random_traits = rand(lower, upper) - for(var/i in 1 to amount_random_traits) - var/random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type))) - var/datum/plant_gene/trait/T = new random_trait - if(T.can_add(src)) - genes += T - else - qdel(T) - -/obj/item/seeds/proc/add_random_plant_type(normal_plant_chance = 75) - if(prob(normal_plant_chance)) - var/random_plant_type = pick(subtypesof(/datum/plant_gene/trait/plant_type)) - var/datum/plant_gene/trait/plant_type/P = new random_plant_type - if(P.can_add(src)) - genes += P - else - qdel(P) + parent.update_tray() + + return result + + +/obj/item/seeds/proc/prepare_result(var/obj/item/weapon/reagent_containers/food/snacks/grown/T) + if(T.reagents) + for(var/reagent_id in reagents_add) + if(reagent_id == "blood") // Hack to make blood in plants always O- + T.reagents.add_reagent(reagent_id, 1 + round(potency * reagents_add[reagent_id], 1), list("blood_type"="O-")) + continue + + T.reagents.add_reagent(reagent_id, 1 + round(potency * reagents_add[reagent_id],1)) + return 1 + + +/// Setters procs /// +/obj/item/seeds/proc/adjust_yield(adjustamt) + if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable + yield = Clamp(yield + adjustamt, 0, 10) + + if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + yield = 1 // Mushrooms always have a minimum yield of 1. + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) + if(C) + C.value = yield + +/obj/item/seeds/proc/adjust_lifespan(adjustamt) + lifespan = Clamp(lifespan + adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) + if(C) + C.value = lifespan + +/obj/item/seeds/proc/adjust_endurance(adjustamt) + endurance = Clamp(endurance + adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) + if(C) + C.value = endurance + +/obj/item/seeds/proc/adjust_production(adjustamt) + if(yield != -1) + production = Clamp(production + adjustamt, 1, 10) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) + if(C) + C.value = production + +/obj/item/seeds/proc/adjust_potency(adjustamt) + if(potency != -1) + potency = Clamp(potency + adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) + if(C) + C.value = potency + +/obj/item/seeds/proc/adjust_weed_rate(adjustamt) + weed_rate = Clamp(weed_rate + adjustamt, 0, 10) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) + if(C) + C.value = weed_rate + +/obj/item/seeds/proc/adjust_weed_chance(adjustamt) + weed_chance = Clamp(weed_chance + adjustamt, 0, 67) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) + if(C) + C.value = weed_chance + +//Directly setting stats + +/obj/item/seeds/proc/set_yield(adjustamt) + if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable + yield = Clamp(adjustamt, 0, 10) + + if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + yield = 1 // Mushrooms always have a minimum yield of 1. + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/yield) + if(C) + C.value = yield + +/obj/item/seeds/proc/set_lifespan(adjustamt) + lifespan = Clamp(adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) + if(C) + C.value = lifespan + +/obj/item/seeds/proc/set_endurance(adjustamt) + endurance = Clamp(adjustamt, 10, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) + if(C) + C.value = endurance + +/obj/item/seeds/proc/set_production(adjustamt) + if(yield != -1) + production = Clamp(adjustamt, 1, 10) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) + if(C) + C.value = production + +/obj/item/seeds/proc/set_potency(adjustamt) + if(potency != -1) + potency = Clamp(adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) + if(C) + C.value = potency + +/obj/item/seeds/proc/set_weed_rate(adjustamt) + weed_rate = Clamp(adjustamt, 0, 10) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) + if(C) + C.value = weed_rate + +/obj/item/seeds/proc/set_weed_chance(adjustamt) + weed_chance = Clamp(adjustamt, 0, 67) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) + if(C) + C.value = weed_chance + + +/obj/item/seeds/proc/get_analyzer_text() //in case seeds have something special to tell to the analyzer + var/text = "" + if(!get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && !get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) + text += "- Plant type: Normal plant\n" + if(get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) + text += "- Plant type: Weed. Can grow in nutrient-poor soil.\n" + if(get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) + text += "- Plant type: Mushroom. Can grow in dry soil.\n" + if(get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) + text += "- Plant type: UNKNOWN \n" + if(potency != -1) + text += "- Potency: [potency]\n" + if(yield != -1) + text += "- Yield: [yield]\n" + text += "- Maturation speed: [maturation]\n" + if(yield != -1) + text += "- Production speed: [production]\n" + text += "- Endurance: [endurance]\n" + text += "- Lifespan: [lifespan]\n" + text += "- Weed Growth Rate: [weed_rate]\n" + text += "- Weed Vulnerability: [weed_chance]\n" + if(rarity) + text += "- Species Discovery Value: [rarity]\n" + var/all_traits = "" + for(var/datum/plant_gene/trait/traits in genes) + if(istype(traits, /datum/plant_gene/trait/plant_type)) + continue + all_traits += " [traits.get_name()]" + text += "- Plant Traits:[all_traits]\n" + + text += "*---------*" + + return text + +/obj/item/seeds/proc/on_chem_reaction(datum/reagents/S) //in case seeds have some special interaction with special chems + return + +/obj/item/seeds/attackby(obj/item/O, mob/user, params) + if (istype(O, /obj/item/device/plant_analyzer)) + to_chat(user, "*---------*\n This is \a [src].") + var/text = get_analyzer_text() + if(text) + to_chat(user, "[text]") + + return + ..() // Fallthrough to item/attackby() so that bags can pick seeds up + + + + + + + +// Checks plants for broken tray icons. Use Advanced Proc Call to activate. +// Maybe some day it would be used as unit test. +/proc/check_plants_growth_stages_icons() + var/list/states = icon_states('icons/obj/hydroponics/growing.dmi') + states |= icon_states('icons/obj/hydroponics/growing_fruits.dmi') + states |= icon_states('icons/obj/hydroponics/growing_flowers.dmi') + states |= icon_states('icons/obj/hydroponics/growing_mushrooms.dmi') + states |= icon_states('icons/obj/hydroponics/growing_vegetables.dmi') + var/list/paths = typesof(/obj/item/seeds) - /obj/item/seeds - typesof(/obj/item/seeds/sample) + + for(var/seedpath in paths) + var/obj/item/seeds/seed = new seedpath + + for(var/i in 1 to seed.growthstages) + if("[seed.icon_grow][i]" in states) + continue + to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_grow][i] icon!") + + if(!(seed.icon_dead in states)) + to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_dead] icon!") + + if(seed.icon_harvest) // mushrooms have no grown sprites, same for items with no product + if(!(seed.icon_harvest in states)) + to_chat(world, "[seed.name] ([seed.type]) lacks the [seed.icon_harvest] icon!") + +/obj/item/seeds/proc/randomize_stats() + set_lifespan(rand(25, 60)) + set_endurance(rand(15, 35)) + set_production(rand(2, 10)) + set_yield(rand(1, 10)) + set_potency(rand(10, 35)) + set_weed_rate(rand(1, 10)) + set_weed_chance(rand(5, 100)) + maturation = rand(6, 12) + +/obj/item/seeds/proc/add_random_reagents(lower = 0, upper = 2) + var/amount_random_reagents = rand(lower, upper) + for(var/i in 1 to amount_random_reagents) + var/random_amount = rand(4, 15) * 0.01 // this must be multiplied by 0.01, otherwise, it will not properly associate + var/datum/plant_gene/reagent/R = new(get_random_reagent_id(), random_amount) + if(R.can_add(src)) + genes += R + else + qdel(R) + reagents_from_genes() + +/obj/item/seeds/proc/add_random_traits(lower = 0, upper = 2) + var/amount_random_traits = rand(lower, upper) + for(var/i in 1 to amount_random_traits) + var/random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type))) + var/datum/plant_gene/trait/T = new random_trait + if(T.can_add(src)) + genes += T + else + qdel(T) + +/obj/item/seeds/proc/add_random_plant_type(normal_plant_chance = 75) + if(prob(normal_plant_chance)) + var/random_plant_type = pick(subtypesof(/datum/plant_gene/trait/plant_type)) + var/datum/plant_gene/trait/plant_type/P = new random_plant_type + if(P.can_add(src)) + genes += P + else + qdel(P) diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 53ba9fceed..8674e9953f 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -46,7 +46,6 @@ Captain duffelbag = /obj/item/weapon/storage/backpack/duffelbag/captain implants = list(/obj/item/weapon/implant/mindshield) - accessory = /obj/item/clothing/accessory/medal/gold/captain /* diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index 58fc0f1ecd..174e649469 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -29,7 +29,6 @@ Clown shoes = /obj/item/clothing/shoes/clown_shoes mask = /obj/item/clothing/mask/gas/clown_hat l_pocket = /obj/item/weapon/bikehorn - r_pocket = /obj/item/toy/crayon/rainbow backpack_contents = list( /obj/item/weapon/stamp/clown = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1, @@ -40,7 +39,7 @@ Clown backpack = /obj/item/weapon/storage/backpack/clown satchel = /obj/item/weapon/storage/backpack/clown - duffelbag = /obj/item/weapon/storage/backpack/duffelbag/clown //strangely has a duffle + duffelbag = /obj/item/weapon/storage/backpack/duffelbag/clown //strangely has a duffel box = /obj/item/weapon/storage/box/hug/survival @@ -91,9 +90,9 @@ Mime gloves = /obj/item/clothing/gloves/color/white head = /obj/item/clothing/head/beret suit = /obj/item/clothing/suit/suspenders - backpack_contents = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing=1,\ - /obj/item/toy/crayon/mime=1) + backpack_contents = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing=1) + accessory = /obj/item/clothing/accessory/pocketprotector/cosmetology backpack = /obj/item/weapon/storage/backpack/mime satchel = /obj/item/weapon/storage/backpack/mime @@ -137,6 +136,7 @@ Curator l_hand = /obj/item/weapon/storage/bag/books r_pocket = /obj/item/key/displaycase l_pocket = /obj/item/device/laser_pointer + accessory = /obj/item/clothing/accessory/pocketprotector/full backpack_contents = list( /obj/item/weapon/melee/curator_whip = 1, /obj/item/soapstone = 1, diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index a4eb96b745..e058dc01d7 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -1,96 +1,97 @@ -//Due to how large this one is it gets its own file -/* -Chaplain -*/ -/datum/job/chaplain - title = "Chaplain" - flag = CHAPLAIN - department_head = list("Head of Personnel") - department_flag = CIVILIAN - faction = "Station" - total_positions = 1 - spawn_positions = 1 - supervisors = "the head of personnel" - selection_color = "#dddddd" - - outfit = /datum/outfit/job/chaplain - - access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre) - minimal_access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre) - -/datum/job/chaplain/after_spawn(mob/living/H, mob/M) - if(H.mind) - H.mind.isholy = TRUE - - var/obj/item/weapon/storage/book/bible/booze/B = new - - if(SSreligion.religion) - B.deity_name = SSreligion.deity - B.name = SSreligion.bible_name - B.icon_state = SSreligion.bible_icon_state - B.item_state = SSreligion.bible_item_state - to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.deity]. Defer to the Chaplain.") - H.equip_to_slot_or_del(B, slot_in_backpack) +//Due to how large this one is it gets its own file +/* +Chaplain +*/ +/datum/job/chaplain + title = "Chaplain" + flag = CHAPLAIN + department_head = list("Head of Personnel") + department_flag = CIVILIAN + faction = "Station" + total_positions = 1 + spawn_positions = 1 + supervisors = "the head of personnel" + selection_color = "#dddddd" + + outfit = /datum/outfit/job/chaplain + + access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre) + minimal_access = list(GLOB.access_morgue, GLOB.access_chapel_office, GLOB.access_crematorium, GLOB.access_theatre) + +/datum/job/chaplain/after_spawn(mob/living/H, mob/M) + if(H.mind) + H.mind.isholy = TRUE + + var/obj/item/weapon/storage/book/bible/booze/B = new + + if(SSreligion.religion) + B.deity_name = SSreligion.deity + B.name = SSreligion.bible_name + B.icon_state = SSreligion.bible_icon_state + B.item_state = SSreligion.bible_item_state + to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.deity]. Defer to the Chaplain.") + H.equip_to_slot_or_del(B, slot_in_backpack) var/nrt = SSreligion.holy_weapon_type || /obj/item/weapon/nullrod var/obj/item/weapon/nullrod/N = new nrt(H) - H.equip_to_slot_or_del(N, slot_in_backpack) - return - - var/new_religion = "Christianity" - if(M.client && M.client.prefs.custom_names["religion"]) - new_religion = M.client.prefs.custom_names["religion"] - - var/new_deity = "Space Jesus" - if(M.client && M.client.prefs.custom_names["deity"]) - new_deity = M.client.prefs.custom_names["deity"] - - B.deity_name = new_deity - - - switch(lowertext(new_religion)) - if("christianity") - B.name = pick("The Holy Bible","The Dead Sea Scrolls") - if("satanism") - B.name = "The Unholy Bible" - if("cthulu") - B.name = "The Necronomicon" - if("islam") - B.name = "Quran" - if("scientology") - B.name = pick("The Biography of L. Ron Hubbard","Dianetics") - if("chaos") - B.name = "The Book of Lorgar" - if("imperium") - B.name = "Uplifting Primer" - if("toolboxia") - B.name = "Toolbox Manifesto" - if("homosexuality") - B.name = "Guys Gone Wild" - if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks", "meme", "memes") - B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") - H.setBrainLoss(100) // starts off retarded as fuck - if("science") - B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition") - else - B.name = "The Holy Book of [new_religion]" - - - if(SSreligion) - SSreligion.religion = new_religion - SSreligion.bible_name = B.name - SSreligion.deity = B.deity_name - - H.equip_to_slot_or_del(B, slot_in_backpack) - + H.equip_to_slot_or_del(N, slot_in_backpack) + return + + var/new_religion = "Christianity" + if(M.client && M.client.prefs.custom_names["religion"]) + new_religion = M.client.prefs.custom_names["religion"] + + var/new_deity = "Space Jesus" + if(M.client && M.client.prefs.custom_names["deity"]) + new_deity = M.client.prefs.custom_names["deity"] + + B.deity_name = new_deity + + + switch(lowertext(new_religion)) + if("christianity") + B.name = pick("The Holy Bible","The Dead Sea Scrolls") + if("satanism") + B.name = "The Unholy Bible" + if("cthulu") + B.name = "The Necronomicon" + if("islam") + B.name = "Quran" + if("scientology") + B.name = pick("The Biography of L. Ron Hubbard","Dianetics") + if("chaos") + B.name = "The Book of Lorgar" + if("imperium") + B.name = "Uplifting Primer" + if("toolboxia") + B.name = "Toolbox Manifesto" + if("homosexuality") + B.name = "Guys Gone Wild" + if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks", "meme", "memes") + B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition") + H.setBrainLoss(100) // starts off retarded as fuck + if("science") + B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition") + else + B.name = "The Holy Book of [new_religion]" + + + if(SSreligion) + SSreligion.religion = new_religion + SSreligion.bible_name = B.name + SSreligion.deity = B.deity_name + + H.equip_to_slot_or_del(B, slot_in_backpack) + SSblackbox.set_details("religion_name","[new_religion]") SSblackbox.set_details("religion_deity","[new_deity]") - -/datum/outfit/job/chaplain - name = "Chaplain" - jobtype = /datum/job/chaplain - - belt = /obj/item/device/pda/chaplain - uniform = /obj/item/clothing/under/rank/chaplain - backpack_contents = list(/obj/item/device/camera/spooky = 1) - backpack = /obj/item/weapon/storage/backpack/cultpack + +/datum/outfit/job/chaplain + name = "Chaplain" + jobtype = /datum/job/chaplain + + belt = /obj/item/device/pda/chaplain + uniform = /obj/item/clothing/under/rank/chaplain + backpack_contents = list(/obj/item/device/camera/spooky = 1) + accessory = /obj/item/clothing/accessory/pocketprotector/cosmetology + backpack = /obj/item/weapon/storage/backpack/cultpack satchel = /obj/item/weapon/storage/backpack/cultpack diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 1a494baaee..66897b1049 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -1,158 +1,161 @@ -/* -Chief Engineer -*/ -/datum/job/chief_engineer - title = "Chief Engineer" - flag = CHIEF - department_head = list("Captain") - department_flag = ENGSEC - head_announce = list("Engineering") - faction = "Station" - total_positions = 1 - spawn_positions = 1 - supervisors = "the captain" - selection_color = "#ffeeaa" - req_admin_notify = 1 - minimal_player_age = 7 - - outfit = /datum/outfit/job/ce - - access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, - GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva, - GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat, - GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom) - minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, - GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva, - GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat, - GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom) - -/datum/outfit/job/ce - name = "Chief Engineer" - jobtype = /datum/job/chief_engineer - - id = /obj/item/weapon/card/id/silver - belt = /obj/item/weapon/storage/belt/utility/chief/full - l_pocket = /obj/item/device/pda/heads/ce - ears = /obj/item/device/radio/headset/heads/ce - uniform = /obj/item/clothing/under/rank/chief_engineer - shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hardhat/white - gloves = /obj/item/clothing/gloves/color/black/ce - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) - - backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel/eng - duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering - box = /obj/item/weapon/storage/box/engineer - pda_slot = slot_l_store - -/datum/outfit/job/ce/rig - name = "Chief Engineer (Hardsuit)" - - mask = /obj/item/clothing/mask/breath - suit = /obj/item/clothing/suit/space/hardsuit/engine/elite - shoes = /obj/item/clothing/shoes/magboots/advance - suit_store = /obj/item/weapon/tank/internals/oxygen - gloves = /obj/item/clothing/gloves/color/yellow - head = null - internals_slot = slot_s_store - - -/* -Station Engineer -*/ -/datum/job/engineer - title = "Station Engineer" - flag = ENGINEER - department_head = list("Chief Engineer") - department_flag = ENGSEC - faction = "Station" - total_positions = 5 - spawn_positions = 5 - supervisors = "the chief engineer" - selection_color = "#fff5cc" - - outfit = /datum/outfit/job/engineer - - access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, - GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics, GLOB.access_tcomsat) - minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, - GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_tcomsat) - -/datum/outfit/job/engineer - name = "Station Engineer" - jobtype = /datum/job/engineer - +/* +Chief Engineer +*/ +/datum/job/chief_engineer + title = "Chief Engineer" + flag = CHIEF + department_head = list("Captain") + department_flag = ENGSEC + head_announce = list("Engineering") + faction = "Station" + total_positions = 1 + spawn_positions = 1 + supervisors = "the captain" + selection_color = "#ffeeaa" + req_admin_notify = 1 + minimal_player_age = 7 + + outfit = /datum/outfit/job/ce + + access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, + GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva, + GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat, + GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom) + minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, + GLOB.access_external_airlocks, GLOB.access_atmospherics, GLOB.access_emergency_storage, GLOB.access_eva, + GLOB.access_heads, GLOB.access_construction, GLOB.access_sec_doors, GLOB.access_minisat, + GLOB.access_ce, GLOB.access_RC_announce, GLOB.access_keycard_auth, GLOB.access_tcomsat, GLOB.access_mineral_storeroom) + +/datum/outfit/job/ce + name = "Chief Engineer" + jobtype = /datum/job/chief_engineer + + id = /obj/item/weapon/card/id/silver + belt = /obj/item/weapon/storage/belt/utility/chief/full + l_pocket = /obj/item/device/pda/heads/ce + ears = /obj/item/device/radio/headset/heads/ce + uniform = /obj/item/clothing/under/rank/chief_engineer + shoes = /obj/item/clothing/shoes/sneakers/brown + head = /obj/item/clothing/head/hardhat/white + gloves = /obj/item/clothing/gloves/color/black/ce + accessory = /obj/item/clothing/accessory/pocketprotector/full + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) + + backpack = /obj/item/weapon/storage/backpack/industrial + satchel = /obj/item/weapon/storage/backpack/satchel/eng + duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering + box = /obj/item/weapon/storage/box/engineer + pda_slot = slot_l_store + +/datum/outfit/job/ce/rig + name = "Chief Engineer (Hardsuit)" + + mask = /obj/item/clothing/mask/breath + suit = /obj/item/clothing/suit/space/hardsuit/engine/elite + shoes = /obj/item/clothing/shoes/magboots/advance + suit_store = /obj/item/weapon/tank/internals/oxygen + gloves = /obj/item/clothing/gloves/color/yellow + head = null + internals_slot = slot_s_store + + +/* +Station Engineer +*/ +/datum/job/engineer + title = "Station Engineer" + flag = ENGINEER + department_head = list("Chief Engineer") + department_flag = ENGSEC + faction = "Station" + total_positions = 5 + spawn_positions = 5 + supervisors = "the chief engineer" + selection_color = "#fff5cc" + + outfit = /datum/outfit/job/engineer + + access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, + GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics, GLOB.access_tcomsat) + minimal_access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, + GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_tcomsat) + +/datum/outfit/job/engineer + name = "Station Engineer" + jobtype = /datum/job/engineer + belt = /obj/item/weapon/storage/belt/utility/full/engi - l_pocket = /obj/item/device/pda/engineering - ears = /obj/item/device/radio/headset/headset_eng - uniform = /obj/item/clothing/under/rank/engineer - shoes = /obj/item/clothing/shoes/workboots - head = /obj/item/clothing/head/hardhat - r_pocket = /obj/item/device/t_scanner - - backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel/eng - duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering - box = /obj/item/weapon/storage/box/engineer - pda_slot = slot_l_store + l_pocket = /obj/item/device/pda/engineering + ears = /obj/item/device/radio/headset/headset_eng + uniform = /obj/item/clothing/under/rank/engineer + shoes = /obj/item/clothing/shoes/workboots + head = /obj/item/clothing/head/hardhat + r_pocket = /obj/item/device/t_scanner + accessory = /obj/item/clothing/accessory/pocketprotector/full + + backpack = /obj/item/weapon/storage/backpack/industrial + satchel = /obj/item/weapon/storage/backpack/satchel/eng + duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering + box = /obj/item/weapon/storage/box/engineer + pda_slot = slot_l_store backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) - -/datum/outfit/job/engineer/gloved - name = "Station Engineer (Gloves)" - gloves = /obj/item/clothing/gloves/color/yellow - -/datum/outfit/job/engineer/gloved/rig - name = "Station Engineer (Hardsuit)" - - mask = /obj/item/clothing/mask/breath - suit = /obj/item/clothing/suit/space/hardsuit/engine - suit_store = /obj/item/weapon/tank/internals/oxygen - head = null - internals_slot = slot_s_store - - -/* -Atmospheric Technician -*/ -/datum/job/atmos - title = "Atmospheric Technician" - flag = ATMOSTECH - department_head = list("Chief Engineer") - department_flag = ENGSEC - faction = "Station" - total_positions = 3 - spawn_positions = 2 - supervisors = "the chief engineer" - selection_color = "#fff5cc" - - outfit = /datum/outfit/job/atmos - - access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, - GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics) - minimal_access = list(GLOB.access_atmospherics, GLOB.access_maint_tunnels, GLOB.access_emergency_storage, GLOB.access_construction) - -/datum/outfit/job/atmos - name = "Atmospheric Technician" - jobtype = /datum/job/atmos - - belt = /obj/item/weapon/storage/belt/utility/atmostech - l_pocket = /obj/item/device/pda/atmos - ears = /obj/item/device/radio/headset/headset_eng - uniform = /obj/item/clothing/under/rank/atmospheric_technician - r_pocket = /obj/item/device/analyzer - - backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel/eng - duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering - box = /obj/item/weapon/storage/box/engineer - pda_slot = slot_l_store + +/datum/outfit/job/engineer/gloved + name = "Station Engineer (Gloves)" + gloves = /obj/item/clothing/gloves/color/yellow + +/datum/outfit/job/engineer/gloved/rig + name = "Station Engineer (Hardsuit)" + + mask = /obj/item/clothing/mask/breath + suit = /obj/item/clothing/suit/space/hardsuit/engine + suit_store = /obj/item/weapon/tank/internals/oxygen + head = null + internals_slot = slot_s_store + + +/* +Atmospheric Technician +*/ +/datum/job/atmos + title = "Atmospheric Technician" + flag = ATMOSTECH + department_head = list("Chief Engineer") + department_flag = ENGSEC + faction = "Station" + total_positions = 3 + spawn_positions = 2 + supervisors = "the chief engineer" + selection_color = "#fff5cc" + + outfit = /datum/outfit/job/atmos + + access = list(GLOB.access_engine, GLOB.access_engine_equip, GLOB.access_tech_storage, GLOB.access_maint_tunnels, + GLOB.access_external_airlocks, GLOB.access_construction, GLOB.access_atmospherics) + minimal_access = list(GLOB.access_atmospherics, GLOB.access_maint_tunnels, GLOB.access_emergency_storage, GLOB.access_construction) + +/datum/outfit/job/atmos + name = "Atmospheric Technician" + jobtype = /datum/job/atmos + + belt = /obj/item/weapon/storage/belt/utility/atmostech + l_pocket = /obj/item/device/pda/atmos + ears = /obj/item/device/radio/headset/headset_eng + uniform = /obj/item/clothing/under/rank/atmospheric_technician + r_pocket = /obj/item/device/analyzer + accessory = /obj/item/clothing/accessory/pocketprotector/full + + backpack = /obj/item/weapon/storage/backpack/industrial + satchel = /obj/item/weapon/storage/backpack/satchel/eng + duffelbag = /obj/item/weapon/storage/backpack/duffelbag/engineering + box = /obj/item/weapon/storage/box/engineer + pda_slot = slot_l_store backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) - -/datum/outfit/job/atmos/rig - name = "Atmospheric Technician (Hardsuit)" - - mask = /obj/item/clothing/mask/gas - suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos - suit_store = /obj/item/weapon/tank/internals/oxygen - internals_slot = slot_s_store + +/datum/outfit/job/atmos/rig + name = "Atmospheric Technician (Hardsuit)" + + mask = /obj/item/clothing/mask/gas + suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos + suit_store = /obj/item/weapon/tank/internals/oxygen + internals_slot = slot_s_store diff --git a/code/modules/jobs/job_types/engineering.dm.rej b/code/modules/jobs/job_types/engineering.dm.rej deleted file mode 100644 index ab501005a3..0000000000 --- a/code/modules/jobs/job_types/engineering.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm (rejected hunks) -@@ -39,7 +39,7 @@ Chief Engineer - head = /obj/item/clothing/head/hardhat/white - gloves = /obj/item/clothing/gloves/color/black/ce - accessory = /obj/item/clothing/accessory/pocketprotector/full -- backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced/engi=1) -+ backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) - - backpack = /obj/item/weapon/storage/backpack/industrial - satchel = /obj/item/weapon/storage/backpack/satchel/eng diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index d36f9b3589..2632c28cdd 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -145,14 +145,14 @@ back = /obj/item/weapon/storage/backpack //Grey backpack if(GSATCHEL) back = /obj/item/weapon/storage/backpack/satchel //Grey satchel - if(Gduffelbag) - back = /obj/item/weapon/storage/backpack/duffelbag //Grey duffelbag + if(GDUFFELBAG) + back = /obj/item/weapon/storage/backpack/duffelbag //Grey Duffel bag if(LSATCHEL) back = /obj/item/weapon/storage/backpack/satchel/leather //Leather Satchel if(DSATCHEL) back = satchel //Department satchel - if(Dduffelbag) - back = duffelbag //Department duffelbag + if(DDUFFELBAG) + back = duffelbag //Department duffel bag else back = backpack //Department backpack diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 66a34a0981..04c2ddc847 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -106,7 +106,7 @@ Chemist uniform = /obj/item/clothing/under/rank/chemist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/chemist - + accessory = /obj/item/clothing/accessory/pocketprotector/full backpack = /obj/item/weapon/storage/backpack/chemistry satchel = /obj/item/weapon/storage/backpack/satchel/chem duffelbag = /obj/item/weapon/storage/backpack/duffelbag/med diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 1a0d5e6c4c..78772c031b 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -40,6 +40,7 @@ Research Director suit = /obj/item/clothing/suit/toggle/labcoat l_hand = /obj/item/weapon/clipboard l_pocket = /obj/item/device/laser_pointer + accessory = /obj/item/clothing/accessory/pocketprotector/full backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/science @@ -85,6 +86,7 @@ Scientist backpack = /obj/item/weapon/storage/backpack/science satchel = /obj/item/weapon/storage/backpack/satchel/tox + accessory = /obj/item/clothing/accessory/pocketprotector/full /* Roboticist diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 9ebc9b3315..3b952bab1c 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -137,7 +137,7 @@ Detective shoes = /obj/item/clothing/shoes/sneakers/brown suit = /obj/item/clothing/suit/det_suit gloves = /obj/item/clothing/gloves/color/black - head = /obj/item/clothing/head/det_hat + head = /obj/item/clothing/head/fedora/det_hat l_pocket = /obj/item/toy/crayon/white r_pocket = /obj/item/weapon/lighter backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\ diff --git a/code/modules/language/beachbum.dm b/code/modules/language/beachbum.dm index 84c75c9ca4..528e9a8da2 100644 --- a/code/modules/language/beachbum.dm +++ b/code/modules/language/beachbum.dm @@ -1,6 +1,6 @@ /datum/language/beachbum - name = "Beach Bumbian" - desc = "For when you're too toasted to speak normally." + name = "Beachtongue" + desc = "An ancient language from the distant Beach Planet. People magically learn to speak it under the influence of space drugs." speech_verb = "mumbles" ask_verb = "grills" exclaim_verb = "hollers" diff --git a/code/modules/language/common.dm b/code/modules/language/common.dm index deb20e1cc6..c00ab328ec 100644 --- a/code/modules/language/common.dm +++ b/code/modules/language/common.dm @@ -1,72 +1,72 @@ -// 'basic' language; spoken by default. -/datum/language/common - name = "Galactic Common" - desc = "The common galactic tongue." - speech_verb = "says" - whisper_verb = "whispers" - key = "0" +// 'basic' language; spoken by default. +/datum/language/common + name = "Galactic Common" + desc = "The common galactic tongue." + speech_verb = "says" + whisper_verb = "whispers" + key = "0" flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD - default_priority = 100 - + default_priority = 100 + icon_state = "galcom" -//Syllable Lists -/* - This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed, - and the english syllables had to be duplicated so that there is roughly a 50-50 weighting. - - Sources: - http://www.sttmedia.com/syllablefrequency-english - http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm -*/ -/datum/language/common/syllables = list( -"a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", -"bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "cei", "cen", "ceng", "cha", "chai", -"chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chua", "chuai", "chuan", "chuang", "chui", "chun", -"chuo", "ci", "cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "dei", -"den", "deng", "di", "dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", -"ei", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga", "gai", "gan", "gang", -"gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", -"hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hm", "hng", "hong", "hou", "hu", "hua", "huai", "huan", -"huang", "hui", "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", -"jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "kei", "ken", "keng", "kong", "kou", "ku", "kua", "kuai", -"kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", -"liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", "luan", "lun", "luo", "ma", "mai", "man", "mang", -"mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na", -"nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", -"niu", "nong", "nou", "nu", "nuan", "nuo", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng", -"pi", "pian", "piao", "pie", "pin", "ping", "po", "pou", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", -"qing", "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", -"ru", "rua", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sei", "sen", "seng", "sha", -"shai", "shan", "shang", "shao", "she", "shei", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", -"shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", -"teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", -"wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", -"xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yong", "you", "yu", "yuan", -"yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", "zhao", -"zhe", "zhei", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", -"zong", "zou", "zuan", "zui", "zun", "zuo", "zu", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", -"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", -"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", -"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi") +//Syllable Lists +/* + This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed, + and the english syllables had to be duplicated so that there is roughly a 50-50 weighting. + + Sources: + http://www.sttmedia.com/syllablefrequency-english + http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm +*/ +/datum/language/common/syllables = list( +"a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", +"bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "cei", "cen", "ceng", "cha", "chai", +"chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chua", "chuai", "chuan", "chuang", "chui", "chun", +"chuo", "ci", "cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "dei", +"den", "deng", "di", "dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", +"ei", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga", "gai", "gan", "gang", +"gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", +"hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hm", "hng", "hong", "hou", "hu", "hua", "huai", "huan", +"huang", "hui", "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", +"jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "kei", "ken", "keng", "kong", "kou", "ku", "kua", "kuai", +"kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", +"liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", "luan", "lun", "luo", "ma", "mai", "man", "mang", +"mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na", +"nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", +"niu", "nong", "nou", "nu", "nuan", "nuo", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng", +"pi", "pian", "piao", "pie", "pin", "ping", "po", "pou", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", +"qing", "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", +"ru", "rua", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sei", "sen", "seng", "sha", +"shai", "shan", "shang", "shao", "she", "shei", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", +"shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", +"teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", +"wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", +"xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yong", "you", "yu", "yuan", +"yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", "zhao", +"zhe", "zhei", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", +"zong", "zou", "zuan", "zui", "zun", "zuo", "zu", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", +"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", +"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi") diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm index 6d9bdcf256..2ad7f0549c 100644 --- a/code/modules/language/language.dm +++ b/code/modules/language/language.dm @@ -16,8 +16,8 @@ // If key is null, then the language isn't real or learnable. var/flags // Various language flags. var/list/syllables // Used when scrambling text for a non-speaker. - var/list/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. - var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string + var/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. + var/space_chance = 55 // Likelihood of getting a space in the random scramble string var/list/spans = list() var/list/scramble_cache = list() var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default. @@ -57,16 +57,17 @@ return "[trim(full_name)]" /datum/language/proc/check_cache(input) - var/lookup = check_cache(input) + var/lookup = scramble_cache[input] if(lookup) - return lookup + scramble_cache -= input + scramble_cache[input] = lookup + . = lookup /datum/language/proc/add_to_cache(input, scrambled_text) - add_to_cache(input, scrambled_text) - - - return scrambled_text - + // Add it to cache, cutting old entries if the list is too long + scramble_cache[input] = scrambled_text + if(scramble_cache.len > SCRAMBLE_CACHE_LEN) + scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1) /datum/language/proc/scramble(input) @@ -74,10 +75,8 @@ return stars(input) // If the input is cached already, move it to the end of the cache and return it - var/lookup = scramble_cache[input] + var/lookup = check_cache(input) if(lookup) - scramble_cache -= input - scramble_cache[input] = lookup return lookup var/input_size = length(input) @@ -105,10 +104,7 @@ if(input_ending in list("!","?",".")) scrambled_text += input_ending - // Add it to cache, cutting old entries if the list is too long - scramble_cache[input] = scrambled_text - if(scramble_cache.len > SCRAMBLE_CACHE_LEN) - scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1) + add_to_cache(input, scrambled_text) return scrambled_text diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index a649041e01..3dced50fb5 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -17,6 +17,9 @@ /datum/language_holder/Destroy() owner = null QDEL_NULL(language_menu) + languages.Cut() + shadow_languages.Cut() + return ..() /datum/language_holder/proc/copy(newowner) var/datum/language_holder/copy = new(newowner) @@ -65,7 +68,7 @@ var/datum/language_holder/other if(istype(thing, /datum/language_holder)) other = thing - else if(istype(thing, /atom/movable)) + else if(ismovableatom(thing)) var/atom/movable/AM = thing other = AM.get_language_holder() else if(istype(thing, /datum/mind)) @@ -85,7 +88,7 @@ language_menu.ui_interact(user) /datum/language_holder/proc/get_atom() - if(istype(owner, /atom/movable)) + if(ismovableatom(owner)) . = owner else if(istype(owner, /datum/mind)) var/datum/mind/M = owner diff --git a/code/modules/language/machine.dm b/code/modules/language/machine.dm index 822018407c..4d88bcb416 100644 --- a/code/modules/language/machine.dm +++ b/code/modules/language/machine.dm @@ -1,19 +1,19 @@ -/datum/language/machine - name = "Encoded Audio Language" - desc = "An efficient language of encoded tones developed by synthetics and cyborgs." - speech_verb = "whistles" - ask_verb = "chirps" - exclaim_verb = "whistles loudly" +/datum/language/machine + name = "Encoded Audio Language" + desc = "An efficient language of encoded tones developed by synthetics and cyborgs." + speech_verb = "whistles" + ask_verb = "chirps" + exclaim_verb = "whistles loudly" spans = list(SPAN_ROBOT) - key = "6" - flags = NO_STUTTER - syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz") - space_chance = 10 - default_priority = 90 - + key = "6" + flags = NO_STUTTER + syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz") + space_chance = 10 + default_priority = 90 + icon_state = "eal" -/datum/language/machine/get_random_name() - if(prob(70)) - return "[pick(GLOB.posibrain_names)]-[rand(100, 999)]" - return pick(GLOB.ai_names) +/datum/language/machine/get_random_name() + if(prob(70)) + return "[pick(GLOB.posibrain_names)]-[rand(100, 999)]" + return pick(GLOB.ai_names) diff --git a/code/modules/language/monkey.dm b/code/modules/language/monkey.dm index d3ef541bb3..3f19008754 100644 --- a/code/modules/language/monkey.dm +++ b/code/modules/language/monkey.dm @@ -1,12 +1,12 @@ -/datum/language/monkey - name = "Chimpanzee" - desc = "Ook ook ook." - speech_verb = "chimpers" - ask_verb = "chimpers" - exclaim_verb = "screeches" - key = "1" - space_chance = 100 - syllables = list("oop", "aak", "chee", "eek") - default_priority = 80 +/datum/language/monkey + name = "Chimpanzee" + desc = "Ook ook ook." + speech_verb = "chimpers" + ask_verb = "chimpers" + exclaim_verb = "screeches" + key = "1" + space_chance = 100 + syllables = list("oop", "aak", "chee", "eek") + default_priority = 80 icon_state = "animal" diff --git a/code/modules/language/xenocommon.dm b/code/modules/language/xenocommon.dm index f932b3c5af..6684ab31f8 100644 --- a/code/modules/language/xenocommon.dm +++ b/code/modules/language/xenocommon.dm @@ -1,11 +1,11 @@ -/datum/language/xenocommon - name = "Xenomorph" - desc = "The common tongue of the xenomorphs." - speech_verb = "hisses" - ask_verb = "hisses" - exclaim_verb = "hisses" - key = "4" - syllables = list("sss","sSs","SSS") - default_priority = 50 +/datum/language/xenocommon + name = "Xenomorph" + desc = "The common tongue of the xenomorphs." + speech_verb = "hisses" + ask_verb = "hisses" + exclaim_verb = "hisses" + key = "4" + syllables = list("sss","sSs","SSS") + default_priority = 50 icon_state = "xeno" diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index 9328be15e3..7e099762de 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -61,7 +61,7 @@ inUse = FALSE /obj/item/weapon/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName) - reader << browse("Information on [devilName]


    [GLOB.lawlorify[LORE][devil.ban]]
    [GLOB.lawlorify[LORE][devil.bane]]
    [GLOB.lawlorify[LORE][devil.obligation]]
    [GLOB.lawlorify[LORE][devil.banish]]", "window=book[window_size != null ? ";size=[window_size]" : ""]") + reader << browse("Information on [devilName]


    [GLOB.lawlorify[LORE][devil.ban]]
    [GLOB.lawlorify[LORE][devil.bane]]
    [GLOB.lawlorify[LORE][devil.obligation]]
    [GLOB.lawlorify[LORE][devil.banish]]
    [devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]") /obj/item/weapon/book/codex_gigas/proc/ask_name(mob/reader) ui_interact(reader) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 68665e2d81..932fe4cfc1 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -1,592 +1,592 @@ -/* Library Machines - * - * Contains: - * Borrowbook datum - * Library Public Computer - * Cachedbook datum - * Library Computer - * Library Scanner - * Book Binder - */ - - - -/* - * Library Public Computer - */ -/obj/machinery/computer/libraryconsole - name = "library visitor console" - icon_state = "oldcomp" - icon_screen = "library" - icon_keyboard = null - circuit = /obj/item/weapon/circuitboard/computer/libraryconsole - var/screenstate = 0 - var/title - var/category = "Any" - var/author - var/SQLquery - clockwork = TRUE //it'd look weird - -/obj/machinery/computer/libraryconsole/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/libraryconsole/interact(mob/user) - user.set_machine(src) - var/dat = "" // - switch(screenstate) - if(0) - dat += "

    Search Settings


    " - dat += "Filter by Title: [title]
    " - dat += "Filter by Category: [category]
    " - dat += "Filter by Author: [author]
    " - dat += "\[Start Search\]
    " - if(1) +/* Library Machines + * + * Contains: + * Borrowbook datum + * Library Public Computer + * Cachedbook datum + * Library Computer + * Library Scanner + * Book Binder + */ + + + +/* + * Library Public Computer + */ +/obj/machinery/computer/libraryconsole + name = "library visitor console" + icon_state = "oldcomp" + icon_screen = "library" + icon_keyboard = null + circuit = /obj/item/weapon/circuitboard/computer/libraryconsole + var/screenstate = 0 + var/title + var/category = "Any" + var/author + var/SQLquery + clockwork = TRUE //it'd look weird + +/obj/machinery/computer/libraryconsole/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/libraryconsole/interact(mob/user) + user.set_machine(src) + var/dat = "" // + switch(screenstate) + if(0) + dat += "

    Search Settings


    " + dat += "Filter by Title: [title]
    " + dat += "Filter by Category: [category]
    " + dat += "Filter by Author: [author]
    " + dat += "\[Start Search\]
    " + if(1) if (!SSdbcore.Connect()) - dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance.
    " - else if(!SQLquery) - dat += "ERROR: Malformed search request. Please contact your system administrator for assistance.
    " - else - dat += "" - dat += "" - + dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance.
    " + else if(!SQLquery) + dat += "ERROR: Malformed search request. Please contact your system administrator for assistance.
    " + else + dat += "
    AUTHORTITLECATEGORYSS13BN
    " + dat += "" + var/datum/DBQuery/query_library_list_books = SSdbcore.NewQuery(SQLquery) - if(!query_library_list_books.Execute()) - dat += "ERROR: Unable to retrieve book listings. Please contact your system administrator for assistance.
    " - while(query_library_list_books.NextRow()) - var/author = query_library_list_books.item[1] - var/title = query_library_list_books.item[2] - var/category = query_library_list_books.item[3] - var/id = query_library_list_books.item[4] - dat += "" - dat += "
    AUTHORTITLECATEGORYSS13BN
    [author][title][category][id]

    " - dat += "\[Go Back\]
    " - var/datum/browser/popup = new(user, "publiclibrary", name, 600, 400) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/libraryconsole/Topic(href, href_list) - . = ..() - if(..()) - usr << browse(null, "window=publiclibrary") - onclose(usr, "publiclibrary") - return - - if(href_list["settitle"]) - var/newtitle = input("Enter a title to search for:") as text|null - if(newtitle) - title = sanitize(newtitle) - else - title = null - title = sanitizeSQL(title) - if(href_list["setcategory"]) - var/newcategory = input("Choose a category to search for:") in list("Any", "Fiction", "Non-Fiction", "Adult", "Reference", "Religion") - if(newcategory) - category = sanitize(newcategory) - else - category = "Any" - category = sanitizeSQL(category) - if(href_list["setauthor"]) - var/newauthor = input("Enter an author to search for:") as text|null - if(newauthor) - author = sanitize(newauthor) - else - author = null - author = sanitizeSQL(author) - if(href_list["search"]) - SQLquery = "SELECT author, title, category, id FROM [format_table_name("library")] WHERE isnull(deleted) AND " - if(category == "Any") - SQLquery += "author LIKE '%[author]%' AND title LIKE '%[title]%'" - else - SQLquery += "author LIKE '%[author]%' AND title LIKE '%[title]%' AND category='[category]'" - screenstate = 1 - - if(href_list["back"]) - screenstate = 0 - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - -/* - * Borrowbook datum - */ -/datum/borrowbook // Datum used to keep track of who has borrowed what when and for how long. - var/bookname - var/mobname - var/getdate - var/duedate - -/* - * Cachedbook datum - */ -/datum/cachedbook // Datum used to cache the SQL DB books locally in order to achieve a performance gain. - var/id - var/title - var/author - var/category - -GLOBAL_LIST(cachedbooks) // List of our cached book datums - - -/proc/load_library_db_to_cache() - if(GLOB.cachedbooks) - return + if(!query_library_list_books.Execute()) + dat += "ERROR: Unable to retrieve book listings. Please contact your system administrator for assistance.
    " + while(query_library_list_books.NextRow()) + var/author = query_library_list_books.item[1] + var/title = query_library_list_books.item[2] + var/category = query_library_list_books.item[3] + var/id = query_library_list_books.item[4] + dat += "[author][title][category][id]" + dat += "
    " + dat += "\[Go Back\]
    " + var/datum/browser/popup = new(user, "publiclibrary", name, 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/libraryconsole/Topic(href, href_list) + . = ..() + if(..()) + usr << browse(null, "window=publiclibrary") + onclose(usr, "publiclibrary") + return + + if(href_list["settitle"]) + var/newtitle = input("Enter a title to search for:") as text|null + if(newtitle) + title = sanitize(newtitle) + else + title = null + title = sanitizeSQL(title) + if(href_list["setcategory"]) + var/newcategory = input("Choose a category to search for:") in list("Any", "Fiction", "Non-Fiction", "Adult", "Reference", "Religion") + if(newcategory) + category = sanitize(newcategory) + else + category = "Any" + category = sanitizeSQL(category) + if(href_list["setauthor"]) + var/newauthor = input("Enter an author to search for:") as text|null + if(newauthor) + author = sanitize(newauthor) + else + author = null + author = sanitizeSQL(author) + if(href_list["search"]) + SQLquery = "SELECT author, title, category, id FROM [format_table_name("library")] WHERE isnull(deleted) AND " + if(category == "Any") + SQLquery += "author LIKE '%[author]%' AND title LIKE '%[title]%'" + else + SQLquery += "author LIKE '%[author]%' AND title LIKE '%[title]%' AND category='[category]'" + screenstate = 1 + + if(href_list["back"]) + screenstate = 0 + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/* + * Borrowbook datum + */ +/datum/borrowbook // Datum used to keep track of who has borrowed what when and for how long. + var/bookname + var/mobname + var/getdate + var/duedate + +/* + * Cachedbook datum + */ +/datum/cachedbook // Datum used to cache the SQL DB books locally in order to achieve a performance gain. + var/id + var/title + var/author + var/category + +GLOBAL_LIST(cachedbooks) // List of our cached book datums + + +/proc/load_library_db_to_cache() + if(GLOB.cachedbooks) + return if(!SSdbcore.Connect()) - return - GLOB.cachedbooks = list() + return + GLOB.cachedbooks = list() var/datum/DBQuery/query_library_cache = SSdbcore.NewQuery("SELECT id, author, title, category FROM [format_table_name("library")] WHERE isnull(deleted)") - if(!query_library_cache.Execute()) - return - while(query_library_cache.NextRow()) - var/datum/cachedbook/newbook = new() - newbook.id = query_library_cache.item[1] - newbook.author = query_library_cache.item[2] - newbook.title = query_library_cache.item[3] - newbook.category = query_library_cache.item[4] - GLOB.cachedbooks += newbook - - - -#define PRINTER_COOLDOWN 60 - -/* - * Library Computer - * After 860 days, it's finally a buildable computer. - */ -// TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such -// It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. -// It's December 25th, 2014, and this is STILL here, and it's STILL relevant. Kill me -/obj/machinery/computer/libraryconsole/bookmanagement - name = "book inventory management console" - var/arcanecheckout = 0 - screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book - verb_say = "beeps" - verb_ask = "beeps" - verb_exclaim = "beeps" - var/buffer_book - var/buffer_mob - var/upload_category = "Fiction" - var/list/checkouts = list() - var/list/inventory = list() - var/checkoutperiod = 5 // In minutes - var/obj/machinery/libraryscanner/scanner // Book scanner that will be used when uploading books to the Archive - var/list/libcomp_menu - var/page = 1 //current page of the external archives - var/cooldown = 0 - -/obj/machinery/computer/libraryconsole/bookmanagement/proc/build_library_menu() - if(libcomp_menu) - return - load_library_db_to_cache() - if(!GLOB.cachedbooks) - return - libcomp_menu = list("") - - for(var/i in 1 to GLOB.cachedbooks.len) - var/datum/cachedbook/C = GLOB.cachedbooks[i] - var/page = round(i/250)+1 - if (libcomp_menu.len < page) - libcomp_menu.len = page - libcomp_menu[page] = "" - libcomp_menu[page] += "[C.author][C.title][C.category]\[Order\]\n" - -/obj/machinery/computer/libraryconsole/bookmanagement/New() - ..() - if(circuit) - circuit.name = "Book Inventory Management Console (Machine Board)" - circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement - -/obj/machinery/computer/libraryconsole/bookmanagement/interact(mob/user) - user.set_machine(src) - var/dat = "" // - switch(screenstate) - if(0) - // Main Menu - dat += "1. View General Inventory
    " - dat += "2. View Checked Out Inventory
    " - dat += "3. Check out a Book
    " - dat += "4. Connect to External Archive
    " - dat += "5. Upload New Title to Archive
    " - dat += "6. Upload Scanned Title to Newscaster
    " - dat += "7. Print Corporate Materials
    " - if(src.emagged) - dat += "8. Access the Forbidden Lore Vault
    " - if(src.arcanecheckout) - print_forbidden_lore(user) - src.arcanecheckout = 0 - if(1) - // Inventory - dat += "

    Inventory


    " - for(var/obj/item/weapon/book/b in inventory) - dat += "[b.name] (Delete)
    " - dat += "(Return to main menu)
    " - if(2) - // Checked Out - dat += "

    Checked Out Books


    " - for(var/datum/borrowbook/b in checkouts) - var/timetaken = world.time - b.getdate - //timetaken *= 10 - timetaken /= 600 - timetaken = round(timetaken) - var/timedue = b.duedate - world.time - //timedue *= 10 - timedue /= 600 - if(timedue <= 0) - timedue = "(OVERDUE) [timedue]" - else - timedue = round(timedue) - dat += "\"[b.bookname]\", Checked out to: [b.mobname]
    --- Taken: [timetaken] minutes ago, Due: in [timedue] minutes
    " - dat += "(Check In)

    " - dat += "(Return to main menu)
    " - if(3) - // Check Out a Book - dat += "

    Check Out a Book


    " - dat += "Book: [src.buffer_book] " - dat += "\[Edit\]
    " - dat += "Recipient: [src.buffer_mob] " - dat += "\[Edit\]
    " - dat += "Checkout Date : [world.time/600]
    " - dat += "Due Date: [(world.time + checkoutperiod)/600]
    " - dat += "(Checkout Period: [checkoutperiod] minutes) (+/-)" - dat += "(Commit Entry)
    " - dat += "(Return to main menu)
    " - if(4) - dat += "

    External Archive

    " - build_library_menu() - - if(!GLOB.cachedbooks) - dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance." - else - dat += "(Order book by SS13BN)

    " - dat += "" - dat += "" - dat += libcomp_menu[Clamp(page,1,libcomp_menu.len)] - dat += "" - dat += "
    AUTHORTITLECATEGORY
    <<<< >>>>
    " - dat += "
    (Return to main menu)
    " - if(5) - dat += "

    Upload a New Title

    " - if(!scanner) + if(!query_library_cache.Execute()) + return + while(query_library_cache.NextRow()) + var/datum/cachedbook/newbook = new() + newbook.id = query_library_cache.item[1] + newbook.author = query_library_cache.item[2] + newbook.title = query_library_cache.item[3] + newbook.category = query_library_cache.item[4] + GLOB.cachedbooks += newbook + + + +#define PRINTER_COOLDOWN 60 + +/* + * Library Computer + * After 860 days, it's finally a buildable computer. + */ +// TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such +// It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. +// It's December 25th, 2014, and this is STILL here, and it's STILL relevant. Kill me +/obj/machinery/computer/libraryconsole/bookmanagement + name = "book inventory management console" + var/arcanecheckout = 0 + screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + var/buffer_book + var/buffer_mob + var/upload_category = "Fiction" + var/list/checkouts = list() + var/list/inventory = list() + var/checkoutperiod = 5 // In minutes + var/obj/machinery/libraryscanner/scanner // Book scanner that will be used when uploading books to the Archive + var/list/libcomp_menu + var/page = 1 //current page of the external archives + var/cooldown = 0 + +/obj/machinery/computer/libraryconsole/bookmanagement/proc/build_library_menu() + if(libcomp_menu) + return + load_library_db_to_cache() + if(!GLOB.cachedbooks) + return + libcomp_menu = list("") + + for(var/i in 1 to GLOB.cachedbooks.len) + var/datum/cachedbook/C = GLOB.cachedbooks[i] + var/page = round(i/250)+1 + if (libcomp_menu.len < page) + libcomp_menu.len = page + libcomp_menu[page] = "" + libcomp_menu[page] += "[C.author][C.title][C.category]\[Order\]\n" + +/obj/machinery/computer/libraryconsole/bookmanagement/New() + ..() + if(circuit) + circuit.name = "Book Inventory Management Console (Machine Board)" + circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement + +/obj/machinery/computer/libraryconsole/bookmanagement/interact(mob/user) + user.set_machine(src) + var/dat = "" // + switch(screenstate) + if(0) + // Main Menu + dat += "1. View General Inventory
    " + dat += "2. View Checked Out Inventory
    " + dat += "3. Check out a Book
    " + dat += "4. Connect to External Archive
    " + dat += "5. Upload New Title to Archive
    " + dat += "6. Upload Scanned Title to Newscaster
    " + dat += "7. Print Corporate Materials
    " + if(src.emagged) + dat += "8. Access the Forbidden Lore Vault
    " + if(src.arcanecheckout) + print_forbidden_lore(user) + src.arcanecheckout = 0 + if(1) + // Inventory + dat += "

    Inventory


    " + for(var/obj/item/weapon/book/b in inventory) + dat += "[b.name] (Delete)
    " + dat += "(Return to main menu)
    " + if(2) + // Checked Out + dat += "

    Checked Out Books


    " + for(var/datum/borrowbook/b in checkouts) + var/timetaken = world.time - b.getdate + //timetaken *= 10 + timetaken /= 600 + timetaken = round(timetaken) + var/timedue = b.duedate - world.time + //timedue *= 10 + timedue /= 600 + if(timedue <= 0) + timedue = "(OVERDUE) [timedue]" + else + timedue = round(timedue) + dat += "\"[b.bookname]\", Checked out to: [b.mobname]
    --- Taken: [timetaken] minutes ago, Due: in [timedue] minutes
    " + dat += "(Check In)

    " + dat += "(Return to main menu)
    " + if(3) + // Check Out a Book + dat += "

    Check Out a Book


    " + dat += "Book: [src.buffer_book] " + dat += "\[Edit\]
    " + dat += "Recipient: [src.buffer_mob] " + dat += "\[Edit\]
    " + dat += "Checkout Date : [world.time/600]
    " + dat += "Due Date: [(world.time + checkoutperiod)/600]
    " + dat += "(Checkout Period: [checkoutperiod] minutes) (+/-)" + dat += "(Commit Entry)
    " + dat += "(Return to main menu)
    " + if(4) + dat += "

    External Archive

    " + build_library_menu() + + if(!GLOB.cachedbooks) + dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance." + else + dat += "(Order book by SS13BN)

    " + dat += "" + dat += "" + dat += libcomp_menu[Clamp(page,1,libcomp_menu.len)] + dat += "" + dat += "
    AUTHORTITLECATEGORY
    <<<< >>>>
    " + dat += "
    (Return to main menu)
    " + if(5) + dat += "

    Upload a New Title

    " + if(!scanner) scanner = findscanner(9) - if(!scanner) - dat += "No scanner found within wireless network range.
    " - else if(!scanner.cache) - dat += "No data found in scanner memory.
    " - else - dat += "Data marked for upload...
    " - dat += "Title: [scanner.cache.name]
    " - if(!scanner.cache.author) - scanner.cache.author = "Anonymous" - dat += "Author: [scanner.cache.author]
    " - dat += "Category: [upload_category]
    " - dat += "\[Upload\]
    " - dat += "(Return to main menu)
    " - if(6) - dat += "

    Post Title to Newscaster

    " - if(!scanner) - scanner = findscanner(9) - if(!scanner) - dat += "No scanner found within wireless network range.
    " - else if(!scanner.cache) - dat += "No data found in scanner memory.
    " - else - dat += "Post [scanner.cache.name] to station newscasters?" - dat += "\[Post\]
    " - dat += "(Return to main menu)
    " - if(7) - dat += "

    NTGanda(tm) Universal Printing Module

    " - dat += "What would you like to print?
    " - dat += "\[Bible\]
    " - dat += "\[Poster\]
    " - dat += "(Return to main menu)
    " - if(8) - dat += "

    Accessing Forbidden Lore Vault v 1.3

    " - dat += "Are you absolutely sure you want to proceed? EldritchTomes Inc. takes no responsibilities for loss of sanity resulting from this action.

    " - dat += "Yes.
    " - dat += "No.
    " - - var/datum/browser/popup = new(user, "library", name, 600, 400) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/libraryconsole/bookmanagement/proc/findscanner(viewrange) + if(!scanner) + dat += "No scanner found within wireless network range.
    " + else if(!scanner.cache) + dat += "No data found in scanner memory.
    " + else + dat += "Data marked for upload...
    " + dat += "Title: [scanner.cache.name]
    " + if(!scanner.cache.author) + scanner.cache.author = "Anonymous" + dat += "Author: [scanner.cache.author]
    " + dat += "Category: [upload_category]
    " + dat += "\[Upload\]
    " + dat += "(Return to main menu)
    " + if(6) + dat += "

    Post Title to Newscaster

    " + if(!scanner) + scanner = findscanner(9) + if(!scanner) + dat += "No scanner found within wireless network range.
    " + else if(!scanner.cache) + dat += "No data found in scanner memory.
    " + else + dat += "Post [scanner.cache.name] to station newscasters?" + dat += "\[Post\]
    " + dat += "(Return to main menu)
    " + if(7) + dat += "

    NTGanda(tm) Universal Printing Module

    " + dat += "What would you like to print?
    " + dat += "\[Bible\]
    " + dat += "\[Poster\]
    " + dat += "(Return to main menu)
    " + if(8) + dat += "

    Accessing Forbidden Lore Vault v 1.3

    " + dat += "Are you absolutely sure you want to proceed? EldritchTomes Inc. takes no responsibilities for loss of sanity resulting from this action.

    " + dat += "Yes.
    " + dat += "No.
    " + + var/datum/browser/popup = new(user, "library", name, 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/libraryconsole/bookmanagement/proc/findscanner(viewrange) for(var/obj/machinery/libraryscanner/S in range(viewrange, get_turf(src))) - return S - return null - -/obj/machinery/computer/libraryconsole/bookmanagement/proc/print_forbidden_lore(mob/user) - var/spook = pick("blood", "brass") - var/turf/T = get_turf(src) - if(spook == "blood") - new /obj/item/weapon/tome(T) - else - new /obj/item/clockwork/slab(T) - - to_chat(user, "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a [spook == "blood" ? "dusty old tome" : "strange metal tablet"] sitting on the desk. You don't really remember printing it.[spook == "brass" ? " And how did it print something made of metal?" : ""]") - user.visible_message("[user] stares at the blank screen for a few moments, [user.p_their()] expression frozen in fear. When [user.p_they()] finally awaken[user.p_s()] from it, [user.p_they()] look[user.p_s()] a lot older.", 2) - -/obj/machinery/computer/libraryconsole/bookmanagement/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/barcodescanner)) - var/obj/item/weapon/barcodescanner/scanner = W - scanner.computer = src - to_chat(user, "[scanner]'s associated machine has been set to [src].") - audible_message("[src] lets out a low, short blip.") - else - return ..() - -/obj/machinery/computer/libraryconsole/bookmanagement/emag_act(mob/user) - if(density && !emagged) - emagged = 1 - -/obj/machinery/computer/libraryconsole/bookmanagement/Topic(href, href_list) - if(..()) - usr << browse(null, "window=library") - onclose(usr, "library") - return - if(href_list["page"] && screenstate == 4) - page = text2num(href_list["page"]) - if(href_list["switchscreen"]) - switch(href_list["switchscreen"]) - if("0") - screenstate = 0 - if("1") - screenstate = 1 - if("2") - screenstate = 2 - if("3") - screenstate = 3 - if("4") - screenstate = 4 - if("5") - screenstate = 5 - if("6") - screenstate = 6 - if("7") - screenstate = 7 - if("8") - screenstate = 8 - if(href_list["arccheckout"]) - if(src.emagged) - src.arcanecheckout = 1 - src.screenstate = 0 - if(href_list["increasetime"]) - checkoutperiod += 1 - if(href_list["decreasetime"]) - checkoutperiod -= 1 - if(checkoutperiod < 1) - checkoutperiod = 1 - if(href_list["editbook"]) - buffer_book = copytext(sanitize(input("Enter the book's title:") as text|null),1,MAX_MESSAGE_LEN) - if(href_list["editmob"]) - buffer_mob = copytext(sanitize(input("Enter the recipient's name:") as text|null),1,MAX_NAME_LEN) - if(href_list["checkout"]) - var/datum/borrowbook/b = new /datum/borrowbook - b.bookname = sanitize(buffer_book) - b.mobname = sanitize(buffer_mob) - b.getdate = world.time - b.duedate = world.time + (checkoutperiod * 600) - checkouts.Add(b) - if(href_list["checkin"]) - var/datum/borrowbook/b = locate(href_list["checkin"]) in checkouts - if(b && istype(b)) - checkouts.Remove(b) - if(href_list["delbook"]) - var/obj/item/weapon/book/b = locate(href_list["delbook"]) in inventory - if(b && istype(b)) - inventory.Remove(b) - if(href_list["setauthor"]) - var/newauthor = copytext(sanitize(input("Enter the author's name: ") as text|null),1,MAX_MESSAGE_LEN) - if(newauthor) - scanner.cache.author = newauthor - if(href_list["setcategory"]) - var/newcategory = input("Choose a category: ") in list("Fiction", "Non-Fiction", "Adult", "Reference", "Religion") - if(newcategory) - upload_category = newcategory - if(href_list["upload"]) - if(scanner) - if(scanner.cache) - var/choice = input("Are you certain you wish to upload this title to the Archive?") in list("Confirm", "Abort") - if(choice == "Confirm") + return S + return null + +/obj/machinery/computer/libraryconsole/bookmanagement/proc/print_forbidden_lore(mob/user) + var/spook = pick("blood", "brass") + var/turf/T = get_turf(src) + if(spook == "blood") + new /obj/item/weapon/tome(T) + else + new /obj/item/clockwork/slab(T) + + to_chat(user, "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a [spook == "blood" ? "dusty old tome" : "strange metal tablet"] sitting on the desk. You don't really remember printing it.[spook == "brass" ? " And how did it print something made of metal?" : ""]") + user.visible_message("[user] stares at the blank screen for a few moments, [user.p_their()] expression frozen in fear. When [user.p_they()] finally awaken[user.p_s()] from it, [user.p_they()] look[user.p_s()] a lot older.", 2) + +/obj/machinery/computer/libraryconsole/bookmanagement/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/barcodescanner)) + var/obj/item/weapon/barcodescanner/scanner = W + scanner.computer = src + to_chat(user, "[scanner]'s associated machine has been set to [src].") + audible_message("[src] lets out a low, short blip.") + else + return ..() + +/obj/machinery/computer/libraryconsole/bookmanagement/emag_act(mob/user) + if(density && !emagged) + emagged = 1 + +/obj/machinery/computer/libraryconsole/bookmanagement/Topic(href, href_list) + if(..()) + usr << browse(null, "window=library") + onclose(usr, "library") + return + if(href_list["page"] && screenstate == 4) + page = text2num(href_list["page"]) + if(href_list["switchscreen"]) + switch(href_list["switchscreen"]) + if("0") + screenstate = 0 + if("1") + screenstate = 1 + if("2") + screenstate = 2 + if("3") + screenstate = 3 + if("4") + screenstate = 4 + if("5") + screenstate = 5 + if("6") + screenstate = 6 + if("7") + screenstate = 7 + if("8") + screenstate = 8 + if(href_list["arccheckout"]) + if(src.emagged) + src.arcanecheckout = 1 + src.screenstate = 0 + if(href_list["increasetime"]) + checkoutperiod += 1 + if(href_list["decreasetime"]) + checkoutperiod -= 1 + if(checkoutperiod < 1) + checkoutperiod = 1 + if(href_list["editbook"]) + buffer_book = copytext(sanitize(input("Enter the book's title:") as text|null),1,MAX_MESSAGE_LEN) + if(href_list["editmob"]) + buffer_mob = copytext(sanitize(input("Enter the recipient's name:") as text|null),1,MAX_NAME_LEN) + if(href_list["checkout"]) + var/datum/borrowbook/b = new /datum/borrowbook + b.bookname = sanitize(buffer_book) + b.mobname = sanitize(buffer_mob) + b.getdate = world.time + b.duedate = world.time + (checkoutperiod * 600) + checkouts.Add(b) + if(href_list["checkin"]) + var/datum/borrowbook/b = locate(href_list["checkin"]) in checkouts + if(b && istype(b)) + checkouts.Remove(b) + if(href_list["delbook"]) + var/obj/item/weapon/book/b = locate(href_list["delbook"]) in inventory + if(b && istype(b)) + inventory.Remove(b) + if(href_list["setauthor"]) + var/newauthor = copytext(sanitize(input("Enter the author's name: ") as text|null),1,MAX_MESSAGE_LEN) + if(newauthor) + scanner.cache.author = newauthor + if(href_list["setcategory"]) + var/newcategory = input("Choose a category: ") in list("Fiction", "Non-Fiction", "Adult", "Reference", "Religion") + if(newcategory) + upload_category = newcategory + if(href_list["upload"]) + if(scanner) + if(scanner.cache) + var/choice = input("Are you certain you wish to upload this title to the Archive?") in list("Confirm", "Abort") + if(choice == "Confirm") if (!SSdbcore.Connect()) - alert("Connection to Archive has been severed. Aborting.") - else - - var/sqltitle = sanitizeSQL(scanner.cache.name) - var/sqlauthor = sanitizeSQL(scanner.cache.author) - var/sqlcontent = sanitizeSQL(scanner.cache.dat) - var/sqlcategory = sanitizeSQL(upload_category) + alert("Connection to Archive has been severed. Aborting.") + else + + var/sqltitle = sanitizeSQL(scanner.cache.name) + var/sqlauthor = sanitizeSQL(scanner.cache.author) + var/sqlcontent = sanitizeSQL(scanner.cache.dat) + var/sqlcategory = sanitizeSQL(upload_category) var/datum/DBQuery/query_library_upload = SSdbcore.NewQuery("INSERT INTO [format_table_name("library")] (author, title, content, category, ckey, datetime) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]', '[usr.ckey]', Now())") - if(!query_library_upload.Execute()) - alert("Database error encountered uploading to Archive") - return - else - log_game("[usr.name]/[usr.key] has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs") - alert("Upload Complete. Uploaded title will be unavailable for printing for a short period") - if(href_list["newspost"]) - if(!GLOB.news_network) - alert("No news network found on station. Aborting.") - var/channelexists = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == "Nanotrasen Book Club") - channelexists = 1 - break - if(!channelexists) - GLOB.news_network.CreateFeedChannel("Nanotrasen Book Club", "Library", null) - GLOB.news_network.SubmitArticle(scanner.cache.dat, "[scanner.cache.name]", "Nanotrasen Book Club", null) - alert("Upload complete. Your uploaded title is now available on station newscasters.") - if(href_list["orderbyid"]) - if(cooldown > world.time) - say("Printer unavailable. Please allow a short time before attempting to print.") - else - var/orderid = input("Enter your order:") as num|null - if(orderid) - if(isnum(orderid) && IsInteger(orderid)) - href_list["targetid"] = num2text(orderid) - - if(href_list["targetid"]) - var/sqlid = sanitizeSQL(href_list["targetid"]) + if(!query_library_upload.Execute()) + alert("Database error encountered uploading to Archive") + return + else + log_game("[usr.name]/[usr.key] has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs") + alert("Upload Complete. Uploaded title will be unavailable for printing for a short period") + if(href_list["newspost"]) + if(!GLOB.news_network) + alert("No news network found on station. Aborting.") + var/channelexists = 0 + for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + if(FC.channel_name == "Nanotrasen Book Club") + channelexists = 1 + break + if(!channelexists) + GLOB.news_network.CreateFeedChannel("Nanotrasen Book Club", "Library", null) + GLOB.news_network.SubmitArticle(scanner.cache.dat, "[scanner.cache.name]", "Nanotrasen Book Club", null) + alert("Upload complete. Your uploaded title is now available on station newscasters.") + if(href_list["orderbyid"]) + if(cooldown > world.time) + say("Printer unavailable. Please allow a short time before attempting to print.") + else + var/orderid = input("Enter your order:") as num|null + if(orderid) + if(isnum(orderid) && IsInteger(orderid)) + href_list["targetid"] = num2text(orderid) + + if(href_list["targetid"]) + var/sqlid = sanitizeSQL(href_list["targetid"]) if (!SSdbcore.Connect()) - alert("Connection to Archive has been severed. Aborting.") - if(cooldown > world.time) - say("Printer unavailable. Please allow a short time before attempting to print.") - else - cooldown = world.time + PRINTER_COOLDOWN + alert("Connection to Archive has been severed. Aborting.") + if(cooldown > world.time) + say("Printer unavailable. Please allow a short time before attempting to print.") + else + cooldown = world.time + PRINTER_COOLDOWN var/datum/DBQuery/query_library_print = SSdbcore.NewQuery("SELECT * FROM [format_table_name("library")] WHERE id=[sqlid] AND isnull(deleted)") - if(!query_library_print.Execute()) - say("PRINTER ERROR! Failed to print document (0x0000000F)") - return - while(query_library_print.NextRow()) - var/author = query_library_print.item[2] - var/title = query_library_print.item[3] - var/content = query_library_print.item[4] - var/obj/item/weapon/book/B = new(get_turf(src)) - B.name = "Book: [title]" - B.title = title - B.author = author - B.dat = content - B.icon_state = "book[rand(1,8)]" - visible_message("[src]'s printer hums as it produces a completely bound book. How did it do that?") - break - if(href_list["printbible"]) - if(cooldown < world.time) - var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible(src.loc) - if(SSreligion.bible_icon_state && SSreligion.bible_item_state) - B.icon_state = SSreligion.bible_icon_state - B.item_state = SSreligion.bible_item_state - B.name = SSreligion.bible_name - B.deity_name = SSreligion.deity - cooldown = world.time + PRINTER_COOLDOWN - else - say("Printer currently unavailable, please wait a moment.") - if(href_list["printposter"]) - if(cooldown < world.time) - new /obj/item/weapon/poster/random_official(src.loc) - cooldown = world.time + PRINTER_COOLDOWN - else - say("Printer currently unavailable, please wait a moment.") - add_fingerprint(usr) - updateUsrDialog() - -/* - * Library Scanner - */ -/obj/machinery/libraryscanner - name = "scanner control interface" - icon = 'icons/obj/library.dmi' - icon_state = "bigscanner" - anchored = 1 - density = 1 - var/obj/item/weapon/book/cache // Last scanned book - -/obj/machinery/libraryscanner/attackby(obj/O, mob/user, params) - if(istype(O, /obj/item/weapon/book)) - if(!user.drop_item()) - return - O.loc = src - else - return ..() - -/obj/machinery/libraryscanner/attack_hand(mob/user) - usr.set_machine(src) - var/dat = "" // - if(cache) - dat += "Data stored in memory.
    " - else - dat += "No data stored in memory.
    " - dat += "\[Scan\]" - if(cache) - dat += " \[Clear Memory\]

    \[Remove Book\]" - else - dat += "
    " - var/datum/browser/popup = new(user, "scanner", name, 600, 400) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/libraryscanner/Topic(href, href_list) - if(..()) - usr << browse(null, "window=scanner") - onclose(usr, "scanner") - return - - if(href_list["scan"]) - for(var/obj/item/weapon/book/B in contents) - cache = B - break - if(href_list["clear"]) - cache = null - if(href_list["eject"]) - for(var/obj/item/weapon/book/B in contents) - B.loc = src.loc - src.add_fingerprint(usr) - src.updateUsrDialog() - return - - -/* - * Book binder - */ -/obj/machinery/bookbinder - name = "book binder" - icon = 'icons/obj/library.dmi' - icon_state = "binder" - anchored = 1 - density = 1 - var/busy = 0 - -/obj/machinery/bookbinder/attackby(obj/O, mob/user, params) - if(istype(O, /obj/item/weapon/paper)) - bind_book(user, O) - else if(default_unfasten_wrench(user, O)) - return 1 - else - return ..() - -/obj/machinery/bookbinder/proc/bind_book(mob/user, obj/item/weapon/paper/P) - if(stat) - return - if(busy) - to_chat(user, "The book binder is busy. Please wait for completion of previous operation.") - return - if(!user.drop_item()) - return - P.loc = src - user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].") - audible_message("[src] begins to hum as it warms up its printing drums.") - busy = 1 - sleep(rand(200,400)) - busy = 0 - if(P) - if(!stat) - visible_message("[src] whirs as it prints and binds a new book.") - var/obj/item/weapon/book/B = new(src.loc) - B.dat = P.info - B.name = "Print Job #" + "[rand(100, 999)]" - B.icon_state = "book[rand(1,7)]" - qdel(P) - else - P.loc = loc + if(!query_library_print.Execute()) + say("PRINTER ERROR! Failed to print document (0x0000000F)") + return + while(query_library_print.NextRow()) + var/author = query_library_print.item[2] + var/title = query_library_print.item[3] + var/content = query_library_print.item[4] + var/obj/item/weapon/book/B = new(get_turf(src)) + B.name = "Book: [title]" + B.title = title + B.author = author + B.dat = content + B.icon_state = "book[rand(1,8)]" + visible_message("[src]'s printer hums as it produces a completely bound book. How did it do that?") + break + if(href_list["printbible"]) + if(cooldown < world.time) + var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible(src.loc) + if(SSreligion.bible_icon_state && SSreligion.bible_item_state) + B.icon_state = SSreligion.bible_icon_state + B.item_state = SSreligion.bible_item_state + B.name = SSreligion.bible_name + B.deity_name = SSreligion.deity + cooldown = world.time + PRINTER_COOLDOWN + else + say("Printer currently unavailable, please wait a moment.") + if(href_list["printposter"]) + if(cooldown < world.time) + new /obj/item/weapon/poster/random_official(src.loc) + cooldown = world.time + PRINTER_COOLDOWN + else + say("Printer currently unavailable, please wait a moment.") + add_fingerprint(usr) + updateUsrDialog() + +/* + * Library Scanner + */ +/obj/machinery/libraryscanner + name = "scanner control interface" + icon = 'icons/obj/library.dmi' + icon_state = "bigscanner" + anchored = 1 + density = 1 + var/obj/item/weapon/book/cache // Last scanned book + +/obj/machinery/libraryscanner/attackby(obj/O, mob/user, params) + if(istype(O, /obj/item/weapon/book)) + if(!user.drop_item()) + return + O.loc = src + else + return ..() + +/obj/machinery/libraryscanner/attack_hand(mob/user) + usr.set_machine(src) + var/dat = "" // + if(cache) + dat += "Data stored in memory.
    " + else + dat += "No data stored in memory.
    " + dat += "\[Scan\]" + if(cache) + dat += " \[Clear Memory\]

    \[Remove Book\]" + else + dat += "
    " + var/datum/browser/popup = new(user, "scanner", name, 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/libraryscanner/Topic(href, href_list) + if(..()) + usr << browse(null, "window=scanner") + onclose(usr, "scanner") + return + + if(href_list["scan"]) + for(var/obj/item/weapon/book/B in contents) + cache = B + break + if(href_list["clear"]) + cache = null + if(href_list["eject"]) + for(var/obj/item/weapon/book/B in contents) + B.loc = src.loc + src.add_fingerprint(usr) + src.updateUsrDialog() + return + + +/* + * Book binder + */ +/obj/machinery/bookbinder + name = "book binder" + icon = 'icons/obj/library.dmi' + icon_state = "binder" + anchored = 1 + density = 1 + var/busy = 0 + +/obj/machinery/bookbinder/attackby(obj/O, mob/user, params) + if(istype(O, /obj/item/weapon/paper)) + bind_book(user, O) + else if(default_unfasten_wrench(user, O)) + return 1 + else + return ..() + +/obj/machinery/bookbinder/proc/bind_book(mob/user, obj/item/weapon/paper/P) + if(stat) + return + if(busy) + to_chat(user, "The book binder is busy. Please wait for completion of previous operation.") + return + if(!user.drop_item()) + return + P.loc = src + user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].") + audible_message("[src] begins to hum as it warms up its printing drums.") + busy = 1 + sleep(rand(200,400)) + busy = 0 + if(P) + if(!stat) + visible_message("[src] whirs as it prints and binds a new book.") + var/obj/item/weapon/book/B = new(src.loc) + B.dat = P.info + B.name = "Print Job #" + "[rand(100, 999)]" + B.icon_state = "book[rand(1,7)]" + qdel(P) + else + P.loc = loc diff --git a/code/modules/library/random_books.dm b/code/modules/library/random_books.dm index aacdb0bc4f..b29152469c 100644 --- a/code/modules/library/random_books.dm +++ b/code/modules/library/random_books.dm @@ -1,83 +1,83 @@ -/obj/item/weapon/book/manual/random/Initialize() - ..() - var/static/banned_books = list(/obj/item/weapon/book/manual/random,/obj/item/weapon/book/manual/nuclear,/obj/item/weapon/book/manual/wiki) - var/newtype = pick(subtypesof(/obj/item/weapon/book/manual) - banned_books) - new newtype(loc) - qdel(src) - -/obj/item/weapon/book/random - var/amount = 1 - var/category = null - -/obj/item/weapon/book/random/Initialize() - ..() - create_random_books(amount, src.loc, TRUE, category) - qdel(src) - -/obj/item/weapon/book/random/triple - amount = 3 - -/obj/structure/bookcase/random - var/category = null - var/book_count = 2 - anchored = 1 - state = 2 - -/obj/structure/bookcase/random/Initialize(mapload) - ..() - if(!book_count || !isnum(book_count)) - update_icon() - return - book_count += pick(-1,-1,0,1,1) - create_random_books(book_count, src, FALSE, category) - update_icon() - -/proc/create_random_books(amount = 2, location, fail_loud = FALSE, category = null) - . = list() - if(!isnum(amount) || amount<1) - return +/obj/item/weapon/book/manual/random/Initialize() + ..() + var/static/banned_books = list(/obj/item/weapon/book/manual/random,/obj/item/weapon/book/manual/nuclear,/obj/item/weapon/book/manual/wiki) + var/newtype = pick(subtypesof(/obj/item/weapon/book/manual) - banned_books) + new newtype(loc) + qdel(src) + +/obj/item/weapon/book/random + var/amount = 1 + var/category = null + +/obj/item/weapon/book/random/Initialize() + ..() + create_random_books(amount, src.loc, TRUE, category) + qdel(src) + +/obj/item/weapon/book/random/triple + amount = 3 + +/obj/structure/bookcase/random + var/category = null + var/book_count = 2 + anchored = 1 + state = 2 + +/obj/structure/bookcase/random/Initialize(mapload) + ..() + if(!book_count || !isnum(book_count)) + update_icon() + return + book_count += pick(-1,-1,0,1,1) + create_random_books(book_count, src, FALSE, category) + update_icon() + +/proc/create_random_books(amount = 2, location, fail_loud = FALSE, category = null) + . = list() + if(!isnum(amount) || amount<1) + return if (!SSdbcore.Connect()) - if(fail_loud || prob(5)) - var/obj/item/weapon/paper/P = new(location) - P.info = "There once was a book from Nantucket
    But the database failed us, so f*$! it.
    I tried to be good to you
    Now this is an I.O.U
    If you're feeling entitled, well, stuff it!

    ~" - P.update_icon() - return - if(prob(25)) - category = null - var/c = category? " AND category='[sanitizeSQL(category)]'" :"" + if(fail_loud || prob(5)) + var/obj/item/weapon/paper/P = new(location) + P.info = "There once was a book from Nantucket
    But the database failed us, so f*$! it.
    I tried to be good to you
    Now this is an I.O.U
    If you're feeling entitled, well, stuff it!

    ~" + P.update_icon() + return + if(prob(25)) + category = null + var/c = category? " AND category='[sanitizeSQL(category)]'" :"" var/datum/DBQuery/query_get_random_books = SSdbcore.NewQuery("SELECT * FROM [format_table_name("library")] WHERE isnull(deleted)[c] GROUP BY title ORDER BY rand() LIMIT [amount];") // isdeleted copyright (c) not me - if(query_get_random_books.Execute()) - while(query_get_random_books.NextRow()) - var/obj/item/weapon/book/B = new(location) - . += B - B.author = query_get_random_books.item[2] - B.title = query_get_random_books.item[3] - B.dat = query_get_random_books.item[4] - B.name = "Book: [B.title]" - B.icon_state= "book[rand(1,8)]" - else - return - -/obj/structure/bookcase/random/fiction - name = "bookcase (Fiction)" - category = "Fiction" -/obj/structure/bookcase/random/nonfiction - name = "bookcase (Non-Fiction)" - category = "Non-fiction" -/obj/structure/bookcase/random/religion - name = "bookcase (Religion)" - category = "Religion" -/obj/structure/bookcase/random/adult - name = "bookcase (Adult)" - category = "Adult" - -/obj/structure/bookcase/random/reference - name = "bookcase (Reference)" - category = "Reference" - var/ref_book_prob = 20 - -/obj/structure/bookcase/random/reference/Initialize(mapload) - ..() - while(book_count > 0 && prob(ref_book_prob)) - book_count-- - new /obj/item/weapon/book/manual/random(src) + if(query_get_random_books.Execute()) + while(query_get_random_books.NextRow()) + var/obj/item/weapon/book/B = new(location) + . += B + B.author = query_get_random_books.item[2] + B.title = query_get_random_books.item[3] + B.dat = query_get_random_books.item[4] + B.name = "Book: [B.title]" + B.icon_state= "book[rand(1,8)]" + else + return + +/obj/structure/bookcase/random/fiction + name = "bookcase (Fiction)" + category = "Fiction" +/obj/structure/bookcase/random/nonfiction + name = "bookcase (Non-Fiction)" + category = "Non-fiction" +/obj/structure/bookcase/random/religion + name = "bookcase (Religion)" + category = "Religion" +/obj/structure/bookcase/random/adult + name = "bookcase (Adult)" + category = "Adult" + +/obj/structure/bookcase/random/reference + name = "bookcase (Reference)" + category = "Reference" + var/ref_book_prob = 20 + +/obj/structure/bookcase/random/reference/Initialize(mapload) + ..() + while(book_count > 0 && prob(ref_book_prob)) + book_count-- + new /obj/item/weapon/book/manual/random(src) diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 0cd16eb47a..c64c8ad12a 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -37,7 +37,7 @@ if (!light_power || !light_range) // We won't emit light anyways, destroy the light source. QDEL_NULL(light) else - if (!istype(loc, /atom/movable)) // We choose what atom should be the top atom of the light here. + if (!ismovableatom(loc)) // We choose what atom should be the top atom of the light here. . = src else . = loc diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 2aa2031bbe..373a937be2 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -73,7 +73,7 @@ if(!SSmapping.loading_ruins) //Will be done manually during mapping ss init repopulate_sorted_areas() - + //initialize things that are normally initialized after map load initTemplateBounds(bounds) diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index f4824a96a2..abaf596f65 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -14,11 +14,21 @@ var/overall_sanity = 100 var/list/ruins = potentialRuins.Copy() + var/is_picking = FALSE + var/last_checked_ruin_index = 0 while(budget > 0 && overall_sanity > 0) // Pick a ruin var/datum/map_template/ruin/ruin = null if(ruins && ruins.len) - ruin = ruins[pick(ruins)] + last_checked_ruin_index++ //ruins with no cost come first in the ruin list, so they'll get picked really often + if(is_picking) + ruin = ruins[pick(ruins)] + else + var/ruin_key = ruins[last_checked_ruin_index] //get the ruin's key via index + ruin = ruins[ruin_key] //use that key to get the ruin datum itself + if(ruin.cost >= 0) //if it has a non-negative cost, cancel out and pick another, to ensure true randomness + is_picking = TRUE + ruin = ruins[pick(ruins)] else log_world("Ruin loader had no ruins to pick from with [budget] left to spend.") break @@ -51,9 +61,14 @@ var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T) R.Load(ruins,ruin) - budget -= ruin.cost + if(ruin.cost >= 0) + budget -= ruin.cost if(!ruin.allow_duplicates) - ruins -= ruin.name + for(var/m in ruins) + var/datum/map_template/ruin/ruin_to_remove = ruins[m] + if(ruin_to_remove.id == ruin.id) //remove all ruins with the same ID, to make sure that ruins with multiple variants work properly + ruins -= ruin_to_remove.name + last_checked_ruin_index-- break if(!overall_sanity) diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 0811c0a8d9..51780ad05d 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -103,7 +103,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also if(href_list["random"] && !possible_destinations) usr.changeNext_move(CLICK_CD_RAPID) //Anti-spam var/turf/LZ = safepick(Z_TURFS(ZLEVEL_MINING)) //Pick a random mining Z-level turf - if(!istype(LZ, /turf/closed/mineral) && !istype(LZ, /turf/open/floor/plating/asteroid)) + if(!ismineralturf(LZ) && !istype(LZ, /turf/open/floor/plating/asteroid)) //Find a suitable mining turf. Reduces chance of landing in a bad area to_chat(usr, "Landing zone scan failed. Please try again.") updateUsrDialog() diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm index 36f0387c1f..0f4d5915f4 100644 --- a/code/modules/mining/aux_base_camera.dm +++ b/code/modules/mining/aux_base_camera.dm @@ -188,7 +188,7 @@ owner.changeNext_move(CLICK_CD_RANGE) B.RCD.afterattack(rcd_target, owner, TRUE) //Activate the RCD and force it to work remotely! - playsound(target_turf, 'sound/items/Deconstruct.ogg', 60, 1) + playsound(target_turf, 'sound/items/deconstruct.ogg', 60, 1) /datum/action/innate/aux_base/switch_mode name = "Switch Mode" diff --git a/code/modules/mining/equipment/goliath_hide.dm b/code/modules/mining/equipment/goliath_hide.dm index e76a053732..e652bc6e94 100644 --- a/code/modules/mining/equipment/goliath_hide.dm +++ b/code/modules/mining/equipment/goliath_hide.dm @@ -4,6 +4,9 @@ desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." icon = 'icons/obj/mining.dmi' icon_state = "goliath_hide" + singular_name = "hide plate" + max_amount = 6 + novariants = FALSE flags = NOBLUDGEON w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 0d57aab847..1791c01447 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -34,7 +34,7 @@ to_chat(user, "Does 80 damage if the target is backstabbed, instead of 50.") for(var/t in trophies) var/obj/item/crusher_trophy/T = t - to_chat(user, "It has \a [T] attached, which causes [T.effect_desc()].") + to_chat(user, "It has \a [T] attached, which cause [T.effect_desc()].") /obj/item/weapon/twohanded/required/kinetic_crusher/attackby(obj/item/A, mob/living/user) if(istype(A, /obj/item/weapon/crowbar)) @@ -101,7 +101,7 @@ if(!QDELETED(C)) C.total_damage += 80 //cheat a little and add the total before killing it, so certain mobs don't have much lower chances of giving an item L.apply_damage(80, BRUTE, blocked = def_check) - playsound(user, 'sound/weapons/Kenetic_accel.ogg', 100, 1) //Seriously who spelled it wrong + playsound(user, 'sound/weapons/kenetic_accel.ogg', 100, 1) //Seriously who spelled it wrong else if(!QDELETED(C)) C.total_damage += 50 @@ -133,9 +133,8 @@ if(isliving(target)) var/mob/living/L = target var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean - var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK) + var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) if(hammer_synced) - CM.hammer_synced = hammer_synced for(var/t in hammer_synced.trophies) var/obj/item/crusher_trophy/T = t T.on_mark_application(target, CM, had_effect) @@ -199,6 +198,7 @@ bonus_value = 2 var/missing_health_ratio = 0.1 var/missing_health_desc = 10 + /obj/item/crusher_trophy/goliath_tentacle/effect_desc() return "mark detonation to do [bonus_value] more damage for every [missing_health_desc] health you are missing" @@ -209,7 +209,7 @@ if(missing_health > 0) target.adjustBruteLoss(missing_health) //and do that much damage -/watcher +//watcher /obj/item/crusher_trophy/watcher_wing name = "watcher wing" desc = "A wing ripped from a watcher. Suitable as a trophy for a kinetic crusher." @@ -250,6 +250,18 @@ if(.) H.charge_time += bonus_value +//blood-drunk hunter +/obj/item/crusher_trophy/miner_eye + name = "eye of a blood-drunk hunter" + desc = "Its pupil is collapsed and turned to mush. Suitable as a trophy for a kinetic crusher." + icon_state = "hunter_eye" + denied_type = /obj/item/crusher_trophy/miner_eye + +/obj/item/crusher_trophy/miner_eye/effect_desc() + return "mark detonation to grant stun immunity and 90% damage reduction for 1 second" + +/obj/item/crusher_trophy/miner_eye/on_mark_detonation(mob/living/target, mob/living/user) + user.apply_status_effect(STATUS_EFFECT_BLOODDRUNK) //ash drake /obj/item/crusher_trophy/tail_spike @@ -264,7 +276,7 @@ for(var/mob/living/L in oview(2, user)) if(L.stat == DEAD) continue - playsound(L, 'sound/magic/Fireball.ogg', 20, 1) + playsound(L, 'sound/magic/fireball.ogg', 20, 1) new /obj/effect/temp_visual/fire(L.loc) addtimer(CALLBACK(src, .proc/pushback, L, user), 1) //no free backstabs, we push AFTER module stuff is done L.adjustBruteLoss(bonus_value) @@ -310,7 +322,7 @@ //colossus /obj/item/crusher_trophy/blaster_tubes name = "blaster tubes" - desc = "The blaster tubes from a colossus's arm. Suitable as a trophy for a kinetic crusher." + desc = "The blaster tubes from a colossus's arm. Suitable as a trophy for a kinetic crusher." icon_state = "blaster_tubes" gender = PLURAL denied_type = /obj/item/crusher_trophy/blaster_tubes diff --git a/code/modules/mining/equipment/lazarus_injector.dm b/code/modules/mining/equipment/lazarus_injector.dm index 7199e29bf4..1ff774bb61 100644 --- a/code/modules/mining/equipment/lazarus_injector.dm +++ b/code/modules/mining/equipment/lazarus_injector.dm @@ -18,7 +18,7 @@ if(!loaded) return if(isliving(target) && proximity_flag) - if(istype(target, /mob/living/simple_animal)) + if(isanimal(target)) var/mob/living/simple_animal/M = target if(M.sentience_type != revive_type) to_chat(user, "[src] does not work on this sort of creature.") diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index 49e8adad68..1caa46484b 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -114,7 +114,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( M.update_icon() transfer_fingerprints_to(M) if(user.put_in_hands(M, TRUE)) //delete the beacon if it fails - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) qdel(src) //otherwise delete us /obj/structure/marker_beacon/attackby(obj/item/I, mob/user, params) @@ -123,7 +123,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( to_chat(user, "You start picking [src] up...") if(do_after(user, remove_speed, target = src) && M.amount + 1 <= M.max_amount) M.add(1) - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) qdel(src) else return ..() diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index c54def1b2b..5c110d09bf 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "resonator" item_state = "resonator" - desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It's more effective in a vacuum." + desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It does increased damage in low pressure." w_class = WEIGHT_CLASS_NORMAL force = 15 throwforce = 10 @@ -82,12 +82,8 @@ /obj/effect/temp_visual/resonance/proc/check_pressure(turf/proj_turf) if(!proj_turf) proj_turf = get_turf(src) - if(!istype(proj_turf)) - return - var/datum/gas_mixture/environment = proj_turf.return_air() - var/pressure = environment.return_pressure() resonance_damage = initial(resonance_damage) - if(pressure < 50) + if(lavaland_equipment_pressure_check(proj_turf)) name = "strong [initial(name)]" resonance_damage *= 3 else diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 3b0dae381c..96c7cbf6fe 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -208,9 +208,7 @@ ..(mapload, TRUE) /obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) - if(istype(O, /obj/item)) - return 1 - return 0 + return isitem(O) /obj/machinery/smartfridge/survival_pod/Initialize(mapload, empty) . = ..() diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 135f4482fc..42173f770a 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -53,8 +53,7 @@ to_chat(user, "The [src.name] found no beacons in the world to anchor a wormhole to.") return var/chosen_beacon = pick(L) - var/obj/effect/portal/wormhole/jaunt_tunnel/J = new /obj/effect/portal/wormhole/jaunt_tunnel(get_turf(src), chosen_beacon, lifespan=100) - J.target = chosen_beacon + var/obj/effect/portal/wormhole/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon)) try_move_adjacent(J) playsound(src,'sound/effects/sparks4.ogg',50,1) qdel(src) @@ -97,13 +96,13 @@ if(!(istype(M, /obj/mecha) && mech_sized)) return - if(istype(M, /atom/movable)) - if(do_teleport(M, target, 6)) + if(ismovableatom(M)) + if(do_teleport(M, hard_target, 6)) // KERPLUNK playsound(M,'sound/weapons/resonator_blast.ogg',50,1) if(iscarbon(M)) var/mob/living/carbon/L = M - L.Weaken(3) + L.Knockdown(60) if(ishuman(L)) shake_camera(L, 20, 1) addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index b8b1bcc6b9..1a34985544 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -74,7 +74,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) var/mutable_appearance/balloon3 if(isliving(A)) var/mob/living/M = A - M.Weaken(16) // Keep them from moving during the duration of the extraction + M.Knockdown(320) // Keep them from moving during the duration of the extraction M.buckled = 0 // Unbuckle them to prevent anchoring problems else A.anchored = 1 @@ -107,9 +107,9 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) animate(holder_obj, pixel_z = 1000, time = 30) if(ishuman(A)) var/mob/living/carbon/human/L = A - L.SetParalysis(0) + L.SetUnconscious(0) L.drowsyness = 0 - L.sleeping = 0 + L.SetSleeping(0) sleep(30) var/list/flooring_near_beacon = list() for(var/turf/open/floor in orange(1, beacon)) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 4e428fcafe..1551adc218 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -8,7 +8,7 @@ var/harvested_name = "shortened mushrooms" var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large." var/needs_sharp_harvest = TRUE - var/harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings + var/harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings var/harvest_amount_low = 1 var/harvest_amount_high = 3 var/harvest_time = 60 @@ -80,7 +80,7 @@ desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures." harvested_name = "leafless mushrooms" harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?" - harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf + harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf needs_sharp_harvest = FALSE harvest_amount_high = 4 harvest_time = 20 @@ -96,7 +96,7 @@ desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems." harvested_name = "small mushrooms" harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms." - harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap + harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap harvest_amount_high = 4 harvest_time = 50 harvest_message_low = "You slice the cap off a mushroom." @@ -112,7 +112,7 @@ luminosity = 1 harvested_name = "tiny mushrooms" harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back." - harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem + harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem harvest_amount_high = 4 harvest_time = 40 harvest_message_low = "You pick and slice the cap off a mushroom, leaving the stem." @@ -127,7 +127,7 @@ desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash." harvested_name = "cacti" harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash." - harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit + harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit needs_sharp_harvest = FALSE harvest_amount_high = 2 harvest_time = 10 @@ -146,11 +146,11 @@ if(!istype(O) || (PIERCEIMMUNE in H.dna.species.species_traits)) return H.apply_damage(rand(3, 6), BRUTE, picked_def_zone) - H.Weaken(2) + H.Knockdown(40) H.visible_message("[H] steps on a cactus!", \ "You step on a cactus!") -/obj/item/weapon/reagent_containers/food/snacks/ash_flora +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora name = "mushroom shavings" desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl." icon = 'icons/obj/lavaland/ash_flora.dmi' @@ -160,43 +160,46 @@ resistance_flags = FLAMMABLE obj_integrity = 100 max_integrity = 100 + seed = /obj/item/seeds/lavaland/polypore -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/New() +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/New() ..() pixel_x = rand(-4, 4) pixel_y = rand(-4, 4) -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings //for actual crafting +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting - -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf name = "mushroom leaf" desc = "A leaf, from a mushroom." list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2) icon_state = "mushroom_leaf" + seed = /obj/item/seeds/lavaland/porcini - -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap name = "mushroom cap" desc = "The cap of a large mushroom." list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2) icon_state = "mushroom_cap" + seed = /obj/item/seeds/lavaland/inocybe -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem name = "mushroom stem" desc = "A long mushroom stem. It's slightly glowing." list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1) icon_state = "mushroom_stem" luminosity = 1 + seed = /obj/item/seeds/lavaland/ember -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit +/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit name = "cactus fruit" list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4) desc = "A cactus fruit covered in a thick, reddish skin. And some ash." icon_state = "cactus_fruit" + seed = /obj/item/seeds/lavaland/cactus /obj/item/mushroom_bowl @@ -213,6 +216,6 @@ /datum/crafting_recipe/mushroom_bowl name = "Mushroom Bowl" result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl - reqs = list(/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings = 5) + reqs = list(/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) time = 30 category = CAT_PRIMAL diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index ceb1ca85b5..156fd1a5d5 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -28,7 +28,7 @@ if(7) new /obj/item/weapon/pickaxe/diamond(src) if(8) - new /obj/item/borg/upgrade/modkit/resonator_blasts(src) + new /obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast(src) if(9) new /obj/item/organ/brain/alien(src) if(10) @@ -38,7 +38,7 @@ if(12) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src) if(13) - new /obj/item/borg/upgrade/modkit/cooldown/repeater(src) + new /obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater(src) if(14) new /obj/item/weapon/nullrod/scythe/talking(src) if(15) @@ -46,7 +46,7 @@ if(16) new /obj/item/weapon/guardiancreator(src) if(17) - new /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs(src) + new /obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe(src) if(18) new /obj/item/device/warp_cube/red(src) if(19) @@ -70,12 +70,70 @@ new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/weapon/bedsheet/cult(src) if(28) - new /obj/item/borg/upgrade/modkit/bounty(src) + new /obj/item/weapon/disk/design_disk/modkit_disc/bounty(src) +//KA modkit design discs +/obj/item/weapon/disk/design_disk/modkit_disc + name = "KA Mod Disk" + desc = "A design disc containing the design for a unique kinetic accelerator modkit." + icon_state = "datadisk1" + var/modkit_design = /datum/design/unique_modkit +/obj/item/weapon/disk/design_disk/modkit_disc/Initialize() + . = ..() + blueprints[1] = new modkit_design + +/obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe + name = "Offensive Mining Explosion Mod Disk" + modkit_design = /datum/design/unique_modkit/offensive_turf_aoe + +/obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater + name = "Rapid Repeater Mod Disk" + modkit_design = /datum/design/unique_modkit/rapid_repeater + +/obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast + name = "Resonator Blast Mod Disk" + modkit_design = /datum/design/unique_modkit/resonator_blast + +/obj/item/weapon/disk/design_disk/modkit_disc/bounty + name = "Death Syphon Mod Disk" + modkit_design = /datum/design/unique_modkit/bounty + +/datum/design/unique_modkit + category = list("Mining Designs", "Cyborg Upgrade Modules") + req_tech = list("materials" = 12) //can't be normally obtained + build_type = PROTOLATHE | MECHFAB + +/datum/design/unique_modkit/offensive_turf_aoe + name = "Kinetic Accelerator Offensive Mining Explosion Mod" + desc = "A device which causes kinetic accelerators to fire AoE blasts that destroy rock and damage creatures." + id = "hyperaoemod" + materials = list(MAT_METAL = 7000, MAT_GLASS = 3000, MAT_SILVER = 3000, MAT_GOLD = 3000, MAT_DIAMOND = 4000) + build_path = /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs + +/datum/design/unique_modkit/rapid_repeater + name = "Kinetic Accelerator Rapid Repeater Mod" + desc = "A device which greatly reduces a kinetic accelerator's cooldown on striking a living target or rock, but greatly increases its base cooldown." + id = "repeatermod" + materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 8000, MAT_BLUESPACE = 2000) + build_path = /obj/item/borg/upgrade/modkit/cooldown/repeater + +/datum/design/unique_modkit/resonator_blast + name = "Kinetic Accelerator Resonator Blast Mod" + desc = "A device which causes kinetic accelerators to fire shots that leave and detonate resonator blasts." + id = "resonatormod" + materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 5000, MAT_URANIUM = 5000) + build_path = /obj/item/borg/upgrade/modkit/resonator_blasts + +/datum/design/unique_modkit/bounty + name = "Kinetic Accelerator Death Syphon Mod" + desc = "A device which causes kinetic accelerators to permenantly gain damage against creature types killed with it." + id = "bountymod" + materials = list(MAT_METAL = 4000, MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 4000) + reagents_list = list("blood" = 40) + build_path = /obj/item/borg/upgrade/modkit/bounty //Spooky special loot - /obj/item/device/wisp_lantern name = "spooky lantern" desc = "This lantern gives off no light, but is home to a friendly wisp." @@ -189,7 +247,7 @@ armour_penetration = 100 damage_type = BRUTE hitsound = 'sound/effects/splat.ogg' - weaken = 3 + knockdown = 30 var/chain /obj/item/projectile/hook/fire(setAngle) @@ -200,7 +258,7 @@ /obj/item/projectile/hook/on_hit(atom/target) . = ..() - if(istype(target, /atom/movable)) + if(ismovableatom(target)) var/atom/movable/A = target if(A.anchored) return @@ -415,7 +473,7 @@ /obj/item/ship_in_a_bottle/attack_self(mob/user) to_chat(user, "You're not sure how they get the ships in these things, but you're pretty sure you know how to get it out.") - playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) + playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1) new /obj/vehicle/lavaboat/dragon(get_turf(src)) qdel(src) @@ -470,8 +528,99 @@ ///Bosses +//Miniboss Miner +/obj/item/weapon/melee/transforming/cleaving_saw + name = "cleaving saw" + desc = "This saw, effective at drawing the blood of beasts, transforms into a long cleaver that makes use of centrifugal force." + force = 12 + force_on = 20 //force when active + throwforce = 20 + throwforce_on = 20 + icon = 'icons/obj/lavaland/artefacts.dmi' + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 + icon_state = "cleaving_saw" + icon_state_on = "cleaving_saw_open" + slot_flags = SLOT_BELT + attack_verb_off = list("attacked", "sawed", "sliced", "torn", "ripped", "diced", "cut") + attack_verb_on = list("cleaved", "swiped", "slashed", "chopped") + hitsound = 'sound/weapons/bladeslice.ogg' + hitsound_on = 'sound/weapons/bladeslice.ogg' + w_class = WEIGHT_CLASS_BULKY + sharpness = IS_SHARP + var/transform_cooldown + var/swiping = FALSE + var/beast_force_bonus = 30 +/obj/item/weapon/melee/transforming/cleaving_saw/examine(mob/user) + ..() + to_chat(user, "It is [active ? "open, and will cleave enemies in a wide arc":"closed, and can be used for rapid consecutive attacks that cause beastly enemies to bleed"].
    \ + Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.
    \ + Transforming it immediately after an attack causes the next attack to come out faster.
    ") + +/obj/item/weapon/melee/transforming/cleaving_saw/suicide_act(mob/user) + user.visible_message("[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!") + transform_cooldown = 0 + transform_weapon(user, TRUE) + return BRUTELOSS + +/obj/item/weapon/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text) + if(transform_cooldown > world.time) + return FALSE + . = ..() + if(.) + transform_cooldown = world.time + (CLICK_CD_MELEE * 0.5) + user.changeNext_move(CLICK_CD_MELEE * 0.25) + +/obj/item/weapon/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text) + if(!supress_message_text) + if(active) + to_chat(user, "You open [src]. It will now cleave enemies in a wide arc.") + else + to_chat(user, "You close [src]. It will now attack rapidly and cause beastly enemies to bleed.") + playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000)) + +/obj/item/weapon/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user) + if(user.disabilities & CLUMSY && prob(50)) + to_chat(user, "You accidentally cut yourself with [src], like a doofus!") + user.take_bodypart_damage(10) + +/obj/item/weapon/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params) + ..() + if(!active) + user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly + +/obj/item/weapon/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user) + if(!active || swiping || !target.density || get_turf(target) == get_turf(user)) + var/beast_bonus_active = FALSE + var/datum/status_effect/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED) + if(istype(target, /mob/living/simple_animal/hostile/asteroid) || ismegafauna(target)) + if(!active) + if(!B) + target.apply_status_effect(STATUS_EFFECT_SAWBLEED) + else + B.add_bleed(B.bleed_buildup) + else + force += beast_force_bonus //we do bonus damage against beastly creatures + beast_bonus_active = TRUE + ..() + if(beast_bonus_active) + if(B) + B.add_bleed(B.bleed_buildup) + force -= beast_force_bonus + return + var/turf/user_turf = get_turf(user) + var/dir_to_target = get_dir(user_turf, get_turf(target)) + swiping = TRUE + for(var/i in 1 to 3) + var/turf/T = get_step(user_turf, turn(dir_to_target, 90 - (45 * i))) + for(var/mob/living/L in T) + if(user.Adjacent(L) && L.density) + melee_attack_chain(user, L) + swiping = FALSE //Dragon @@ -582,7 +731,7 @@ user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits!") ..() -/obj/item/weapon/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) var/ghost_counter = ghost_check() final_block_chance += Clamp((ghost_counter * 5), 0, 75) owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts!") @@ -695,7 +844,7 @@ message_admins("[key_name_admin(user)] fired the lava staff at [get_area(target)]. [ADMIN_COORDJMP(T)]") log_game("[key_name(user)] fired the lava staff at [get_area(target)] [COORD(T)].") timer = world.time + create_cooldown - playsound(T,'sound/magic/Fireball.ogg', 200, 1) + playsound(T,'sound/magic/fireball.ogg', 200, 1) else timer = world.time qdel(L) @@ -704,7 +853,7 @@ if(T.TerraformTurf(reset_turf_type)) user.visible_message("[user] turns \the [old_name] into [reset_string]!") timer = world.time + reset_cooldown - playsound(T,'sound/magic/Fireball.ogg', 200, 1) + playsound(T,'sound/magic/fireball.ogg', 200, 1) /obj/effect/temp_visual/lavastaff icon_state = "lavastaff_warn" @@ -742,7 +891,7 @@ var/obj/effect/mine/pickup/bloodbath/B = new(H) INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) to_chat(user, "You shatter the bottle!") - playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) + playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1) qdel(src) /obj/item/blood_contract @@ -910,7 +1059,7 @@ INVOKE_ASYNC(src, .proc/prepare_icon_update) if(do_after(user, 50, target = user) && !beacon) var/turf/T = get_turf(user) - playsound(T,'sound/magic/Blind.ogg', 200, 1, -4) + playsound(T,'sound/magic/blind.ogg', 200, 1, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, user) beacon = new/obj/effect/hierophant(T) user.update_action_buttons_icon() @@ -953,8 +1102,8 @@ return new /obj/effect/temp_visual/hierophant/telegraph(T, user) new /obj/effect/temp_visual/hierophant/telegraph(source, user) - playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1) - playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1) + playsound(T,'sound/magic/wand_teleport.ogg', 200, 1) + playsound(source,'sound/machines/airlockopen.ogg', 200, 1) if(!do_after(user, 3, target = user) || !user || !beacon || QDELETED(beacon)) //no walking away shitlord teleporting = FALSE if(user) @@ -1040,7 +1189,9 @@ for(var/i in 1 to range) if(!J) return - new /obj/effect/temp_visual/hierophant/blast(J, user, friendly_fire_check) + var/obj/effect/temp_visual/hierophant/blast/B = new(J, user, friendly_fire_check) + B.damage = 30 + B.monster_damage_boost = FALSE previousturf = J J = get_step(previousturf, dir) @@ -1051,4 +1202,5 @@ playsound(T,'sound/effects/bin_close.ogg', 200, 1) sleep(2) for(var/t in RANGE_TURFS(1, T)) - new /obj/effect/temp_visual/hierophant/blast(t, user, friendly_fire_check) + var/obj/effect/temp_visual/hierophant/blast/B = new(t, user, friendly_fire_check) + B.damage = 15 //keeps monster damage boost due to lower damage diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 13e3e56f66..8ca16b8dfb 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -20,7 +20,7 @@ density = 1 anchored = 1 -/obj/structure/stacklifter/attack_hand(mob/user as mob) +/obj/structure/stacklifter/attack_hand(mob/living/user) if(in_use) to_chat(user, "It's already in use - wait a bit.") return @@ -28,7 +28,7 @@ in_use = 1 icon_state = "fitnesslifter2" user.setDir(SOUTH) - user.Stun(4) + user.Stun(80) user.loc = src.loc var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") user.visible_message("[user] is [bragmessage]!") @@ -58,7 +58,7 @@ density = 1 anchored = 1 -/obj/structure/weightlifter/attack_hand(mob/user as mob) +/obj/structure/weightlifter/attack_hand(mob/living/user) if(in_use) to_chat(user, "It's already in use - wait a bit.") return @@ -66,7 +66,7 @@ in_use = 1 icon_state = "fitnessweight-c" user.setDir(SOUTH) - user.Stun(4) + user.Stun(80) user.loc = src.loc var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) add_overlay(swole_overlay) diff --git a/code/modules/mining/machine_input_output_plates.dm b/code/modules/mining/machine_input_output_plates.dm index 7e888217a1..12d0d5cd82 100644 --- a/code/modules/mining/machine_input_output_plates.dm +++ b/code/modules/mining/machine_input_output_plates.dm @@ -1,31 +1,31 @@ -/**********************Input and output plates**************************/ - -/obj/machinery/mineral/input - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x2" - name = "Input area" - density = 0 - anchored = 1 - -/obj/machinery/mineral/input/New() - icon_state = "blank" - -/obj/machinery/mineral/output - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x" - name = "Output area" - density = 0 - anchored = 1 - -/obj/machinery/mineral/output/New() - icon_state = "blank" - -/obj/machinery/mineral - var/input_dir = NORTH - var/output_dir = SOUTH - -/obj/machinery/mineral/proc/unload_mineral(atom/movable/S) +/**********************Input and output plates**************************/ + +/obj/machinery/mineral/input + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + name = "Input area" + density = 0 + anchored = 1 + +/obj/machinery/mineral/input/New() + icon_state = "blank" + +/obj/machinery/mineral/output + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x" + name = "Output area" + density = 0 + anchored = 1 + +/obj/machinery/mineral/output/New() + icon_state = "blank" + +/obj/machinery/mineral + var/input_dir = NORTH + var/output_dir = SOUTH + +/obj/machinery/mineral/proc/unload_mineral(atom/movable/S) S.forceMove(loc) - var/turf/T = get_step(src,output_dir) - if(T) + var/turf/T = get_step(src,output_dir) + if(T) S.forceMove(T) \ No newline at end of file diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 668013e0de..32eb964de8 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -1,17 +1,17 @@ #define SMELT_AMOUNT 10 -/**********************Mineral processing unit console**************************/ - -/obj/machinery/mineral/processing_unit_console - name = "production machine console" - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "console" - density = 1 - anchored = 1 - var/obj/machinery/mineral/processing_unit/machine = null - var/machinedir = EAST - speed_process = 1 - +/**********************Mineral processing unit console**************************/ + +/obj/machinery/mineral/processing_unit_console + name = "production machine console" + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "console" + density = 1 + anchored = 1 + var/obj/machinery/mineral/processing_unit/machine = null + var/machinedir = EAST + speed_process = 1 + /obj/machinery/mineral/processing_unit_console/Initialize() . = ..() machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir)) @@ -19,22 +19,22 @@ machine.CONSOLE = src else qdel(src) - -/obj/machinery/mineral/processing_unit_console/attack_hand(mob/user) - + +/obj/machinery/mineral/processing_unit_console/attack_hand(mob/user) + if(!machine) return - + var/dat = machine.get_machine_data() - + var/datum/browser/popup = new(user, "processing", "Smelting Console", 300, 500) popup.set_content(dat) popup.open() - -/obj/machinery/mineral/processing_unit_console/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) + +/obj/machinery/mineral/processing_unit_console/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) add_fingerprint(usr) if(href_list["material"]) @@ -45,33 +45,33 @@ machine.selected_material = null machine.selected_alloy = href_list["alloy"] - if(href_list["set_on"]) + if(href_list["set_on"]) machine.on = (href_list["set_on"] == "on") updateUsrDialog() - return - + return + /obj/machinery/mineral/processing_unit_console/Destroy() machine = null return ..() -/**********************Mineral processing unit**************************/ - - -/obj/machinery/mineral/processing_unit - name = "furnace" - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "furnace" - density = 1 - anchored = 1 - var/obj/machinery/mineral/CONSOLE = null +/**********************Mineral processing unit**************************/ + + +/obj/machinery/mineral/processing_unit + name = "furnace" + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "furnace" + density = 1 + anchored = 1 + var/obj/machinery/mineral/CONSOLE = null var/datum/material_container/materials var/on = FALSE var/selected_material = MAT_METAL var/selected_alloy = null var/datum/research/files - + /obj/machinery/mineral/processing_unit/Initialize() . = ..() proximity_monitor = new(src, 1) @@ -131,7 +131,7 @@ return dat -/obj/machinery/mineral/processing_unit/process() +/obj/machinery/mineral/processing_unit/process() if (on) if(selected_material) smelt_ore() @@ -144,26 +144,26 @@ CONSOLE.updateUsrDialog() - //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. - //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage - //Even in the dark year of 2016, where /tg/ is dead, Urist still hasn't finished this -Bawhoppennn - /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) - if (ore_uranium >= 2 && ore_diamond >= 1) - ore_uranium -= 2 - ore_diamond -= 1 - generate_mineral(/obj/item/stack/sheet/mineral/adamantine) - else - on = 0 - continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) - if (ore_silver >= 1 && ore_plasma >= 3) - ore_silver -= 1 - ore_plasma -= 3 - generate_mineral(/obj/item/stack/sheet/mineral/mythril) - else - on = 0 - continue*/ - + //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. + //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage + //Even in the dark year of 2016, where /tg/ is dead, Urist still hasn't finished this -Bawhoppennn + /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) + if (ore_uranium >= 2 && ore_diamond >= 1) + ore_uranium -= 2 + ore_diamond -= 1 + generate_mineral(/obj/item/stack/sheet/mineral/adamantine) + else + on = 0 + continue + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (ore_silver >= 1 && ore_plasma >= 3) + ore_silver -= 1 + ore_plasma -= 3 + generate_mineral(/obj/item/stack/sheet/mineral/mythril) + else + on = 0 + continue*/ + /obj/machinery/mineral/processing_unit/proc/smelt_ore() var/datum/material/mat = materials.materials[selected_material] if(mat) @@ -208,10 +208,10 @@ build_amount = min(build_amount, round(smelter_mat.amount / M)) return build_amount - -/obj/machinery/mineral/processing_unit/proc/generate_mineral(P) - var/O = new P(src) - unload_mineral(O) + +/obj/machinery/mineral/processing_unit/proc/generate_mineral(P) + var/O = new P(src) + unload_mineral(O) /obj/machinery/mineral/processing_unit/on_deconstruction() materials.retrieve_all() diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index e7b0c12aac..f5565f305c 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -1,15 +1,15 @@ -/**********************Mineral stacking unit console**************************/ - -/obj/machinery/mineral/stacking_unit_console - name = "stacking machine console" - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "console" - density = 0 - anchored = 1 - var/obj/machinery/mineral/stacking_machine/machine = null - var/machinedir = SOUTHEAST - speed_process = 1 - +/**********************Mineral stacking unit console**************************/ + +/obj/machinery/mineral/stacking_unit_console + name = "stacking machine console" + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "console" + density = 0 + anchored = 1 + var/obj/machinery/mineral/stacking_machine/machine = null + var/machinedir = SOUTHEAST + speed_process = 1 + /obj/machinery/mineral/stacking_unit_console/Initialize() . = ..() machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) @@ -17,58 +17,58 @@ machine.CONSOLE = src else qdel(src) - -/obj/machinery/mineral/stacking_unit_console/attack_hand(mob/user) - - var/obj/item/stack/sheet/s - var/dat - - dat += text("Stacking unit console

    ") - - for(var/O in machine.stack_list) - s = machine.stack_list[O] - if(s.amount > 0) - dat += text("[capitalize(s.name)]: [s.amount] Release
    ") - - dat += text("
    Stacking: [machine.stack_amt]

    ") - - user << browse(dat, "window=console_stacking_machine") - - return - -/obj/machinery/mineral/stacking_unit_console/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["release"]) - if(!(text2path(href_list["release"]) in machine.stack_list)) return //someone tried to spawn materials by spoofing hrefs - var/obj/item/stack/sheet/inp = machine.stack_list[text2path(href_list["release"])] - var/obj/item/stack/sheet/out = new inp.type() - out.amount = inp.amount - inp.amount = 0 - machine.unload_mineral(out) - - src.updateUsrDialog() - return - - -/**********************Mineral stacking unit**************************/ - - -/obj/machinery/mineral/stacking_machine - name = "stacking machine" - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "stacker" - density = 1 - anchored = 1 - var/obj/machinery/mineral/stacking_unit_console/CONSOLE - var/stk_types = list() - var/stk_amt = list() - var/stack_list[0] //Key: Type. Value: Instance of type. - var/stack_amt = 50; //ammount to stack before releassing - input_dir = EAST - output_dir = WEST + +/obj/machinery/mineral/stacking_unit_console/attack_hand(mob/user) + + var/obj/item/stack/sheet/s + var/dat + + dat += text("Stacking unit console

    ") + + for(var/O in machine.stack_list) + s = machine.stack_list[O] + if(s.amount > 0) + dat += text("[capitalize(s.name)]: [s.amount] Release
    ") + + dat += text("
    Stacking: [machine.stack_amt]

    ") + + user << browse(dat, "window=console_stacking_machine") + + return + +/obj/machinery/mineral/stacking_unit_console/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["release"]) + if(!(text2path(href_list["release"]) in machine.stack_list)) return //someone tried to spawn materials by spoofing hrefs + var/obj/item/stack/sheet/inp = machine.stack_list[text2path(href_list["release"])] + var/obj/item/stack/sheet/out = new inp.type() + out.amount = inp.amount + inp.amount = 0 + machine.unload_mineral(out) + + src.updateUsrDialog() + return + + +/**********************Mineral stacking unit**************************/ + + +/obj/machinery/mineral/stacking_machine + name = "stacking machine" + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "stacker" + density = 1 + anchored = 1 + var/obj/machinery/mineral/stacking_unit_console/CONSOLE + var/stk_types = list() + var/stk_amt = list() + var/stack_list[0] //Key: Type. Value: Instance of type. + var/stack_amt = 50; //ammount to stack before releassing + input_dir = EAST + output_dir = WEST /obj/machinery/mineral/stacking_machine/Initialize() . = ..() @@ -77,17 +77,17 @@ /obj/machinery/mineral/stacking_machine/HasProximity(atom/movable/AM) if(istype(AM, /obj/item/stack/sheet) && AM.loc == get_step(src, input_dir)) process_sheet(AM) - -/obj/machinery/mineral/stacking_machine/proc/process_sheet(obj/item/stack/sheet/inp) - if(!(inp.type in stack_list)) //It's the first of this sheet added - var/obj/item/stack/sheet/s = new inp.type(src,0) - s.amount = 0 - stack_list[inp.type] = s - var/obj/item/stack/sheet/storage = stack_list[inp.type] - storage.amount += inp.amount //Stack the sheets - inp.loc = null //Let the old sheet garbage collect - while(storage.amount > stack_amt) //Get rid of excessive stackage - var/obj/item/stack/sheet/out = new inp.type() - out.amount = stack_amt - unload_mineral(out) + +/obj/machinery/mineral/stacking_machine/proc/process_sheet(obj/item/stack/sheet/inp) + if(!(inp.type in stack_list)) //It's the first of this sheet added + var/obj/item/stack/sheet/s = new inp.type(src,0) + s.amount = 0 + stack_list[inp.type] = s + var/obj/item/stack/sheet/storage = stack_list[inp.type] + storage.amount += inp.amount //Stack the sheets + inp.loc = null //Let the old sheet garbage collect + while(storage.amount > stack_amt) //Get rid of excessive stackage + var/obj/item/stack/sheet/out = new inp.type() + out.amount = stack_amt + unload_mineral(out) storage.amount -= stack_amt \ No newline at end of file diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 374901f3df..fad653438c 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -55,9 +55,6 @@ new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), - new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 150), - new /datum/data/mining_equipment("Stimpack Value Pack", /obj/item/weapon/storage/box/medipens/utility, 500), - new /datum/data/mining_equipment("Survival Pen Kit", /obj/item/weapon/storage/box/medipens/surival_box, 3000), ) /datum/data/mining_equipment diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 7ee5ed51c7..25aa9fb8e8 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -8,7 +8,7 @@ icon = 'icons/mob/aibots.dmi' icon_state = "mining_drone" icon_living = "mining_drone" - status_flags = CANSTUN|CANWEAKEN|CANPUSH + status_flags = CANSTUN|CANKNOCKDOWN|CANPUSH mouse_opacity = 1 faction = list("neutral") a_intent = INTENT_HARM @@ -34,7 +34,7 @@ ranged_message = "shoots" ranged_cooldown_time = 30 projectiletype = /obj/item/projectile/kinetic - projectilesound = 'sound/weapons/Gunshot4.ogg' + projectilesound = 'sound/weapons/gunshot4.ogg' speak_emote = list("states") wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, /obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 9d8b5aa5dd..5cdf91ee62 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -3,270 +3,270 @@ #define GIBTONITE_QUALITY_MEDIUM 2 #define GIBTONITE_QUALITY_LOW 1 -/**********************Mineral ores**************************/ - -/obj/item/weapon/ore - name = "rock" - icon = 'icons/obj/mining.dmi' - icon_state = "ore" - var/points = 0 //How many points this ore gets you from the ore redemption machine - var/refined_type = null //What this ore defaults to being refined into - -/obj/item/weapon/ore/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = I - if(W.remove_fuel(15) && refined_type) - new refined_type(get_turf(src.loc)) - qdel(src) - else if(W.isOn()) - to_chat(user, "Not enough fuel to smelt [src].") - ..() - -/obj/item/weapon/ore/Crossed(atom/movable/AM) - var/obj/item/weapon/storage/bag/ore/OB - if(istype(loc, /turf/open/floor/plating/asteroid)) - var/turf/open/floor/plating/asteroid/F = loc - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - for(var/thing in H.get_storage_slots()) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break - for(var/thing in H.held_items) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break +/**********************Mineral ores**************************/ + +/obj/item/weapon/ore + name = "rock" + icon = 'icons/obj/mining.dmi' + icon_state = "ore" + var/points = 0 //How many points this ore gets you from the ore redemption machine + var/refined_type = null //What this ore defaults to being refined into + +/obj/item/weapon/ore/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = I + if(W.remove_fuel(15) && refined_type) + new refined_type(get_turf(src.loc)) + qdel(src) + else if(W.isOn()) + to_chat(user, "Not enough fuel to smelt [src].") + ..() + +/obj/item/weapon/ore/Crossed(atom/movable/AM) + var/obj/item/weapon/storage/bag/ore/OB + if(istype(loc, /turf/open/floor/plating/asteroid)) + var/turf/open/floor/plating/asteroid/F = loc + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + for(var/thing in H.get_storage_slots()) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break + for(var/thing in H.held_items) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break else if(iscyborg(AM)) - var/mob/living/silicon/robot/R = AM - for(var/thing in R.module_active) - if(istype(thing, /obj/item/weapon/storage/bag/ore)) - OB = thing - break - if(OB) - F.attackby(OB, AM) - // Then, if the user is dragging an ore box, empty the satchel - // into the box. - var/mob/living/L = AM - if(istype(L.pulling, /obj/structure/ore_box)) - var/obj/structure/ore_box/box = L.pulling - box.attackby(OB, AM) - return ..() - -/obj/item/weapon/ore/uranium - name = "uranium ore" - icon_state = "Uranium ore" - origin_tech = "materials=5" - points = 30 - materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/uranium - -/obj/item/weapon/ore/iron - name = "iron ore" - icon_state = "Iron ore" - origin_tech = "materials=1" - points = 1 - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/metal - -/obj/item/weapon/ore/glass - name = "sand pile" - icon_state = "Glass ore" - origin_tech = "materials=1" - points = 1 - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/glass - w_class = WEIGHT_CLASS_TINY - -/obj/item/weapon/ore/glass/attack_self(mob/living/user) - to_chat(user, "You use the sand to make sandstone.") - var/sandAmt = 1 - for(var/obj/item/weapon/ore/glass/G in user.loc) // The sand on the floor - sandAmt += 1 - qdel(G) - while(sandAmt > 0) - var/obj/item/stack/sheet/mineral/sandstone/SS = new /obj/item/stack/sheet/mineral/sandstone(user.loc) - if(sandAmt >= SS.max_amount) - SS.amount = SS.max_amount - else - SS.amount = sandAmt - for(var/obj/item/stack/sheet/mineral/sandstone/SA in user.loc) - if(SA != SS && SA.amount < SA.max_amount) - SA.attackby(SS, user) //we try to transfer all old unfinished stacks to the new stack we created. - sandAmt -= SS.max_amount - qdel(src) - return - -/obj/item/weapon/ore/glass/throw_impact(atom/hit_atom) - if(..() || !ishuman(hit_atom)) - return - var/mob/living/carbon/human/C = hit_atom - if(C.head && C.head.flags_cover & HEADCOVERSEYES) - visible_message("[C]'s headgear blocks the sand!") - return - if(C.wear_mask && C.wear_mask.flags_cover & MASKCOVERSEYES) - visible_message("[C]'s mask blocks the sand!") - return - if(C.glasses && C.glasses.flags_cover & GLASSESCOVERSEYES) - visible_message("[C]'s glasses block the sand!") - return - C.adjust_blurriness(6) - C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage - C.confused += 5 - to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") - qdel(src) - -/obj/item/weapon/ore/glass/basalt - name = "volcanic ash" - icon_state = "volcanic_sand" - -/obj/item/weapon/ore/plasma - name = "plasma ore" - icon_state = "Plasma ore" - origin_tech = "plasmatech=2;materials=2" - points = 15 - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/plasma - -/obj/item/weapon/ore/plasma/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = I - if(W.welding) - to_chat(user, "You can't hit a high enough temperature to smelt [src] properly!") - else - ..() - - -/obj/item/weapon/ore/silver - name = "silver ore" - icon_state = "Silver ore" - origin_tech = "materials=3" - points = 16 - materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/silver - -/obj/item/weapon/ore/gold - name = "gold ore" - icon_state = "Gold ore" - origin_tech = "materials=4" - points = 18 - materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/gold - -/obj/item/weapon/ore/diamond - name = "diamond ore" - icon_state = "Diamond ore" - origin_tech = "materials=6" - points = 50 - materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/diamond - -/obj/item/weapon/ore/bananium - name = "bananium ore" - icon_state = "Clown ore" - origin_tech = "materials=4" - points = 60 - materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/bananium - -/obj/item/weapon/ore/titanium - name = "titanium ore" - icon_state = "Titanium ore" - origin_tech = "materials=4" - points = 50 - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/titanium - -/obj/item/weapon/ore/slag - name = "slag" - desc = "Completely useless" - icon_state = "slag" - -/obj/item/weapon/twohanded/required/gibtonite - name = "gibtonite ore" - desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law." - icon = 'icons/obj/mining.dmi' - icon_state = "Gibtonite ore" - item_state = "Gibtonite ore" - w_class = WEIGHT_CLASS_BULKY - throw_range = 0 + var/mob/living/silicon/robot/R = AM + for(var/thing in R.module_active) + if(istype(thing, /obj/item/weapon/storage/bag/ore)) + OB = thing + break + if(OB) + F.attackby(OB, AM) + // Then, if the user is dragging an ore box, empty the satchel + // into the box. + var/mob/living/L = AM + if(istype(L.pulling, /obj/structure/ore_box)) + var/obj/structure/ore_box/box = L.pulling + box.attackby(OB, AM) + return ..() + +/obj/item/weapon/ore/uranium + name = "uranium ore" + icon_state = "Uranium ore" + origin_tech = "materials=5" + points = 30 + materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/uranium + +/obj/item/weapon/ore/iron + name = "iron ore" + icon_state = "Iron ore" + origin_tech = "materials=1" + points = 1 + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/metal + +/obj/item/weapon/ore/glass + name = "sand pile" + icon_state = "Glass ore" + origin_tech = "materials=1" + points = 1 + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/glass + w_class = WEIGHT_CLASS_TINY + +/obj/item/weapon/ore/glass/attack_self(mob/living/user) + to_chat(user, "You use the sand to make sandstone.") + var/sandAmt = 1 + for(var/obj/item/weapon/ore/glass/G in user.loc) // The sand on the floor + sandAmt += 1 + qdel(G) + while(sandAmt > 0) + var/obj/item/stack/sheet/mineral/sandstone/SS = new /obj/item/stack/sheet/mineral/sandstone(user.loc) + if(sandAmt >= SS.max_amount) + SS.amount = SS.max_amount + else + SS.amount = sandAmt + for(var/obj/item/stack/sheet/mineral/sandstone/SA in user.loc) + if(SA != SS && SA.amount < SA.max_amount) + SA.attackby(SS, user) //we try to transfer all old unfinished stacks to the new stack we created. + sandAmt -= SS.max_amount + qdel(src) + return + +/obj/item/weapon/ore/glass/throw_impact(atom/hit_atom) + if(..() || !ishuman(hit_atom)) + return + var/mob/living/carbon/human/C = hit_atom + if(C.head && C.head.flags_cover & HEADCOVERSEYES) + visible_message("[C]'s headgear blocks the sand!") + return + if(C.wear_mask && C.wear_mask.flags_cover & MASKCOVERSEYES) + visible_message("[C]'s mask blocks the sand!") + return + if(C.glasses && C.glasses.flags_cover & GLASSESCOVERSEYES) + visible_message("[C]'s glasses block the sand!") + return + C.adjust_blurriness(6) + C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage + C.confused += 5 + to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") + qdel(src) + +/obj/item/weapon/ore/glass/basalt + name = "volcanic ash" + icon_state = "volcanic_sand" + +/obj/item/weapon/ore/plasma + name = "plasma ore" + icon_state = "Plasma ore" + origin_tech = "plasmatech=2;materials=2" + points = 15 + materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/plasma + +/obj/item/weapon/ore/plasma/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = I + if(W.welding) + to_chat(user, "You can't hit a high enough temperature to smelt [src] properly!") + else + ..() + + +/obj/item/weapon/ore/silver + name = "silver ore" + icon_state = "Silver ore" + origin_tech = "materials=3" + points = 16 + materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/silver + +/obj/item/weapon/ore/gold + name = "gold ore" + icon_state = "Gold ore" + origin_tech = "materials=4" + points = 18 + materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/gold + +/obj/item/weapon/ore/diamond + name = "diamond ore" + icon_state = "Diamond ore" + origin_tech = "materials=6" + points = 50 + materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/diamond + +/obj/item/weapon/ore/bananium + name = "bananium ore" + icon_state = "Clown ore" + origin_tech = "materials=4" + points = 60 + materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/bananium + +/obj/item/weapon/ore/titanium + name = "titanium ore" + icon_state = "Titanium ore" + origin_tech = "materials=4" + points = 50 + materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/titanium + +/obj/item/weapon/ore/slag + name = "slag" + desc = "Completely useless" + icon_state = "slag" + +/obj/item/weapon/twohanded/required/gibtonite + name = "gibtonite ore" + desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law." + icon = 'icons/obj/mining.dmi' + icon_state = "Gibtonite ore" + item_state = "Gibtonite ore" + w_class = WEIGHT_CLASS_BULKY + throw_range = 0 var/primed = FALSE - var/det_time = 100 + var/det_time = 100 var/quality = GIBTONITE_QUALITY_LOW //How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better - var/attacher = "UNKNOWN" + var/attacher = "UNKNOWN" var/det_timer - -/obj/item/weapon/twohanded/required/gibtonite/Destroy() - qdel(wires) - wires = null - return ..() - -/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) - if(!wires && istype(I, /obj/item/device/assembly/igniter)) - user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") - wires = new /datum/wires/explosive/gibtonite(src) - attacher = key_name(user) - qdel(I) - add_overlay("Gibtonite_igniter") - return - - if(wires && !primed) - if(is_wire_tool(I)) - wires.interact(user) - return - - if(istype(I, /obj/item/weapon/pickaxe) || istype(I, /obj/item/weapon/resonator) || I.force >= 10) - GibtoniteReaction(user) - return - if(primed) - if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) || istype(I, /obj/item/device/multitool)) + +/obj/item/weapon/twohanded/required/gibtonite/Destroy() + qdel(wires) + wires = null + return ..() + +/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) + if(!wires && istype(I, /obj/item/device/assembly/igniter)) + user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") + wires = new /datum/wires/explosive/gibtonite(src) + attacher = key_name(user) + qdel(I) + add_overlay("Gibtonite_igniter") + return + + if(wires && !primed) + if(is_wire_tool(I)) + wires.interact(user) + return + + if(istype(I, /obj/item/weapon/pickaxe) || istype(I, /obj/item/weapon/resonator) || I.force >= 10) + GibtoniteReaction(user) + return + if(primed) + if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) || istype(I, /obj/item/device/multitool)) primed = FALSE if(det_timer) deltimer(det_timer) - user.visible_message("The chain reaction was stopped! ...The ore's quality looks diminished.", "You stopped the chain reaction. ...The ore's quality looks diminished.") - icon_state = "Gibtonite ore" + user.visible_message("The chain reaction was stopped! ...The ore's quality looks diminished.", "You stopped the chain reaction. ...The ore's quality looks diminished.") + icon_state = "Gibtonite ore" quality = GIBTONITE_QUALITY_LOW - return - ..() - -/obj/item/weapon/twohanded/required/gibtonite/attack_self(user) - if(wires) - wires.interact(user) - else - ..() - -/obj/item/weapon/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P) - GibtoniteReaction(P.firer) - ..() - -/obj/item/weapon/twohanded/required/gibtonite/ex_act() - GibtoniteReaction(null, 1) - - - -/obj/item/weapon/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) - if(!primed) + return + ..() + +/obj/item/weapon/twohanded/required/gibtonite/attack_self(user) + if(wires) + wires.interact(user) + else + ..() + +/obj/item/weapon/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P) + GibtoniteReaction(P.firer) + ..() + +/obj/item/weapon/twohanded/required/gibtonite/ex_act() + GibtoniteReaction(null, 1) + + + +/obj/item/weapon/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) + if(!primed) primed = TRUE - playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) - icon_state = "Gibtonite active" - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - var/notify_admins = 0 - if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel - notify_admins = 1 - - if(notify_admins) - if(triggered_by == 1) + playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) + icon_state = "Gibtonite active" + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + var/notify_admins = 0 + if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel + notify_admins = 1 + + if(notify_admins) + if(triggered_by == 1) message_admins("An explosion has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") - else if(triggered_by == 2) + else if(triggered_by == 2) message_admins("A signal has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)]. Igniter attacher: [ADMIN_LOOKUPFLW(attacher)]") - else + else message_admins("[ADMIN_LOOKUPFLW(attacher)] has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") - if(triggered_by == 1) + if(triggered_by == 1) log_game("An explosion has primed a [name] for detonation at [A][COORD(bombturf)]") - else if(triggered_by == 2) + else if(triggered_by == 2) log_game("A signal has primed a [name] for detonation at [A][COORD(bombturf)]. Igniter attacher: [key_name(attacher)].") - else - user.visible_message("[user] strikes \the [src], causing a chain reaction!", "You strike \the [src], causing a chain reaction.") + else + user.visible_message("[user] strikes \the [src], causing a chain reaction!", "You strike \the [src], causing a chain reaction.") log_game("[key_name(user)] has primed a [name] for detonation at [A][COORD(bombturf)]") det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) @@ -280,162 +280,162 @@ if(GIBTONITE_QUALITY_LOW) explosion(src,0,1,3,adminlog = notify_admins) qdel(src) - -/obj/item/weapon/ore/Initialize() - ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - -/obj/item/weapon/ore/ex_act() - return - -/*****************************Coin********************************/ - -// The coin's value is a value of it's materials. -// Yes, the gold standard makes a come-back! -// This is the only way to make coins that are possible to produce on station actually worth anything. -/obj/item/weapon/coin - icon = 'icons/obj/economy.dmi' - name = "coin" - icon_state = "coin__heads" - flags = CONDUCT - force = 1 - throwforce = 2 - w_class = WEIGHT_CLASS_TINY - var/string_attached - var/list/sideslist = list("heads","tails") - var/cmineral = null - var/cooldown = 0 - var/value = 1 - -/obj/item/weapon/coin/Initialize() - ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - -/obj/item/weapon/coin/examine(mob/user) - ..() - if(value) - to_chat(user, "It's worth [value] credit\s.") - -/obj/item/weapon/coin/gold - name = "gold coin" - cmineral = "gold" - icon_state = "coin_gold_heads" - value = 50 - materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/silver - name = "silver coin" - cmineral = "silver" - icon_state = "coin_silver_heads" - value = 20 - materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/diamond - name = "diamond coin" - cmineral = "diamond" - icon_state = "coin_diamond_heads" - value = 500 - materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/iron - name = "iron coin" - cmineral = "iron" - icon_state = "coin_iron_heads" - value = 1 - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/plasma - name = "plasma coin" - cmineral = "plasma" - icon_state = "coin_plasma_heads" - value = 100 - materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/uranium - name = "uranium coin" - cmineral = "uranium" - icon_state = "coin_uranium_heads" - value = 80 - materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/clown - name = "bananium coin" - cmineral = "bananium" - icon_state = "coin_bananium_heads" - value = 1000 //makes the clown cry - materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - -/obj/item/weapon/coin/adamantine - name = "adamantine coin" - cmineral = "adamantine" - icon_state = "coin_adamantine_heads" - value = 1500 - -/obj/item/weapon/coin/mythril - name = "mythril coin" - cmineral = "mythril" - icon_state = "coin_mythril_heads" - value = 3000 - -/obj/item/weapon/coin/twoheaded - cmineral = "iron" - icon_state = "coin_iron_heads" - desc = "Hey, this coin's the same on both sides!" - sideslist = list("heads") - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) - value = 1 - -/obj/item/weapon/coin/antagtoken - name = "antag token" - icon_state = "coin_valid_valid" - cmineral = "valid" - desc = "A novelty coin that helps the heart know what hard evidence cannot prove." - sideslist = list("valid", "salad") - value = 0 - -/obj/item/weapon/coin/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(string_attached) - to_chat(user, "There already is a string attached to this coin!") - return - - if (CC.use(1)) + +/obj/item/weapon/ore/Initialize() + ..() + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + +/obj/item/weapon/ore/ex_act() + return + +/*****************************Coin********************************/ + +// The coin's value is a value of it's materials. +// Yes, the gold standard makes a come-back! +// This is the only way to make coins that are possible to produce on station actually worth anything. +/obj/item/weapon/coin + icon = 'icons/obj/economy.dmi' + name = "coin" + icon_state = "coin__heads" + flags = CONDUCT + force = 1 + throwforce = 2 + w_class = WEIGHT_CLASS_TINY + var/string_attached + var/list/sideslist = list("heads","tails") + var/cmineral = null + var/cooldown = 0 + var/value = 1 + +/obj/item/weapon/coin/Initialize() + ..() + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + +/obj/item/weapon/coin/examine(mob/user) + ..() + if(value) + to_chat(user, "It's worth [value] credit\s.") + +/obj/item/weapon/coin/gold + name = "gold coin" + cmineral = "gold" + icon_state = "coin_gold_heads" + value = 50 + materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/silver + name = "silver coin" + cmineral = "silver" + icon_state = "coin_silver_heads" + value = 20 + materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/diamond + name = "diamond coin" + cmineral = "diamond" + icon_state = "coin_diamond_heads" + value = 500 + materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/iron + name = "iron coin" + cmineral = "iron" + icon_state = "coin_iron_heads" + value = 1 + materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/plasma + name = "plasma coin" + cmineral = "plasma" + icon_state = "coin_plasma_heads" + value = 100 + materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/uranium + name = "uranium coin" + cmineral = "uranium" + icon_state = "coin_uranium_heads" + value = 80 + materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/clown + name = "bananium coin" + cmineral = "bananium" + icon_state = "coin_bananium_heads" + value = 1000 //makes the clown cry + materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2) + +/obj/item/weapon/coin/adamantine + name = "adamantine coin" + cmineral = "adamantine" + icon_state = "coin_adamantine_heads" + value = 1500 + +/obj/item/weapon/coin/mythril + name = "mythril coin" + cmineral = "mythril" + icon_state = "coin_mythril_heads" + value = 3000 + +/obj/item/weapon/coin/twoheaded + cmineral = "iron" + icon_state = "coin_iron_heads" + desc = "Hey, this coin's the same on both sides!" + sideslist = list("heads") + materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) + value = 1 + +/obj/item/weapon/coin/antagtoken + name = "antag token" + icon_state = "coin_valid_valid" + cmineral = "valid" + desc = "A novelty coin that helps the heart know what hard evidence cannot prove." + sideslist = list("valid", "salad") + value = 0 + +/obj/item/weapon/coin/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if(string_attached) + to_chat(user, "There already is a string attached to this coin!") + return + + if (CC.use(1)) add_overlay("coin_string_overlay") - string_attached = 1 - to_chat(user, "You attach a string to the coin.") - else - to_chat(user, "You need one length of cable to attach a string to the coin!") - return - - else if(istype(W,/obj/item/weapon/wirecutters)) - if(!string_attached) - ..() - return - - var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc) - CC.amount = 1 - CC.update_icon() - overlays = list() - string_attached = null - to_chat(user, "You detach the string from the coin.") - else ..() - -/obj/item/weapon/coin/attack_self(mob/user) - if(cooldown < world.time) - if(string_attached) //does the coin have a wire attached - to_chat(user, "The coin won't flip very well with something attached!" ) - return //do not flip the coin - var/coinflip = pick(sideslist) - cooldown = world.time + 15 - flick("coin_[cmineral]_flip", src) - icon_state = "coin_[cmineral]_[coinflip]" - playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1) - var/oldloc = loc - sleep(15) - if(loc == oldloc && user && !user.incapacitated()) - user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ - "You flip [src]. It lands on [coinflip].", \ - "You hear the clattering of loose change.") + string_attached = 1 + to_chat(user, "You attach a string to the coin.") + else + to_chat(user, "You need one length of cable to attach a string to the coin!") + return + + else if(istype(W,/obj/item/weapon/wirecutters)) + if(!string_attached) + ..() + return + + var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc) + CC.amount = 1 + CC.update_icon() + overlays = list() + string_attached = null + to_chat(user, "You detach the string from the coin.") + else ..() + +/obj/item/weapon/coin/attack_self(mob/user) + if(cooldown < world.time) + if(string_attached) //does the coin have a wire attached + to_chat(user, "The coin won't flip very well with something attached!" ) + return //do not flip the coin + var/coinflip = pick(sideslist) + cooldown = world.time + 15 + flick("coin_[cmineral]_flip", src) + icon_state = "coin_[cmineral]_[coinflip]" + playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1) + var/oldloc = loc + sleep(15) + if(loc == oldloc && user && !user.incapacitated()) + user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ + "You flip [src]. It lands on [coinflip].", \ + "You hear the clattering of loose change.") diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index ec61f4f7fb..cb08c9d3f4 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -1,78 +1,78 @@ - -/**********************Ore box**************************/ - -/obj/structure/ore_box - icon = 'icons/obj/mining.dmi' - icon_state = "orebox" - name = "ore box" - desc = "A heavy wooden box, which can be filled with a lot of ores." - density = 1 - pressure_resistance = 5*ONE_ATMOSPHERE - -/obj/structure/ore_box/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/ore)) - if(!user.drop_item()) - return - W.forceMove(src) - else if (istype(W, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = W - for(var/obj/item/weapon/ore/O in S.contents) - S.remove_from_storage(O, src) //This will move the item to this item's contents - to_chat(user, "You empty the ore in [S] into \the [src].") - else if(istype(W, /obj/item/weapon/crowbar)) - playsound(loc, W.usesound, 50, 1) - var/obj/item/weapon/crowbar/C = W - if(do_after(user, 50*C.toolspeed, target = src)) - user.visible_message("[user] pries \the [src] apart.", "You pry apart \the [src].", "You hear splitting wood.") - deconstruct(TRUE, user) - else - return ..() - + +/**********************Ore box**************************/ + +/obj/structure/ore_box + icon = 'icons/obj/mining.dmi' + icon_state = "orebox" + name = "ore box" + desc = "A heavy wooden box, which can be filled with a lot of ores." + density = 1 + pressure_resistance = 5*ONE_ATMOSPHERE + +/obj/structure/ore_box/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/ore)) + if(!user.drop_item()) + return + W.forceMove(src) + else if (istype(W, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + for(var/obj/item/weapon/ore/O in S.contents) + S.remove_from_storage(O, src) //This will move the item to this item's contents + to_chat(user, "You empty the ore in [S] into \the [src].") + else if(istype(W, /obj/item/weapon/crowbar)) + playsound(loc, W.usesound, 50, 1) + var/obj/item/weapon/crowbar/C = W + if(do_after(user, 50*C.toolspeed, target = src)) + user.visible_message("[user] pries \the [src] apart.", "You pry apart \the [src].", "You hear splitting wood.") + deconstruct(TRUE, user) + else + return ..() + /obj/structure/ore_box/examine(mob/living/user) if(Adjacent(user) && istype(user)) show_contents(user) . = ..() -/obj/structure/ore_box/attack_hand(mob/user) - if(Adjacent(user)) - show_contents(user) - -/obj/structure/ore_box/attack_robot(mob/user) - if(Adjacent(user)) - show_contents(user) - -/obj/structure/ore_box/proc/show_contents(mob/user) - var/dat = text("The contents of the ore box reveal...
    ") - var/list/oretypes = list() - for(var/obj/item/weapon/ore/O in contents) - oretypes |= O.type - for(var/i in oretypes) - var/obj/item/weapon/ore/T = locate(i) in contents - dat += "[capitalize(T.name)]: [count_by_type(contents, T.type)]
    " - dat += text("

    Empty box") - user << browse(dat, "window=orebox") - -/obj/structure/ore_box/proc/dump_box_contents() - for(var/obj/item/weapon/ore/O in contents) - O.forceMove(loc) - -/obj/structure/ore_box/Topic(href, href_list) - if(..()) - return - if(!Adjacent(usr)) - return - - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["removeall"]) - dump_box_contents() - to_chat(usr, "You empty the box.") - updateUsrDialog() - - -/obj/structure/ore_box/deconstruct(disassembled = TRUE, mob/user) - var/obj/item/stack/sheet/mineral/wood/WD = new (loc, 4) - if(user) - WD.add_fingerprint(user) - dump_box_contents() - qdel(src) +/obj/structure/ore_box/attack_hand(mob/user) + if(Adjacent(user)) + show_contents(user) + +/obj/structure/ore_box/attack_robot(mob/user) + if(Adjacent(user)) + show_contents(user) + +/obj/structure/ore_box/proc/show_contents(mob/user) + var/dat = text("The contents of the ore box reveal...
    ") + var/list/oretypes = list() + for(var/obj/item/weapon/ore/O in contents) + oretypes |= O.type + for(var/i in oretypes) + var/obj/item/weapon/ore/T = locate(i) in contents + dat += "[capitalize(T.name)]: [count_by_type(contents, T.type)]
    " + dat += text("

    Empty box") + user << browse(dat, "window=orebox") + +/obj/structure/ore_box/proc/dump_box_contents() + for(var/obj/item/weapon/ore/O in contents) + O.forceMove(loc) + +/obj/structure/ore_box/Topic(href, href_list) + if(..()) + return + if(!Adjacent(usr)) + return + + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["removeall"]) + dump_box_contents() + to_chat(usr, "You empty the box.") + updateUsrDialog() + + +/obj/structure/ore_box/deconstruct(disassembled = TRUE, mob/user) + var/obj/item/stack/sheet/mineral/wood/WD = new (loc, 4) + if(user) + WD.add_fingerprint(user) + dump_box_contents() + qdel(src) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 45a64bbfde..8a6250403f 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -1,51 +1,50 @@ -//Dead mobs can exist whenever. This is needful +//Dead mobs can exist whenever. This is needful - INITIALIZE_IMMEDIATE(/mob/dead) +INITIALIZE_IMMEDIATE(/mob/dead) - /mob/dead/Initialize() - if(initialized) - stack_trace("Warning: [src]([type]) initialized multiple times!") - initialized = TRUE - tag = "mob_[next_mob_id++]" - GLOB.mob_list += src +/mob/dead/Initialize() + if(initialized) + stack_trace("Warning: [src]([type]) initialized multiple times!") + initialized = TRUE + tag = "mob_[next_mob_id++]" + GLOB.mob_list += src - prepare_huds() + prepare_huds() - if(config.cross_allowed) - verbs += /mob/dead/proc/server_hop - return INITIALIZE_HINT_NORMAL + if(config.cross_allowed) + verbs += /mob/dead/proc/server_hop + return INITIALIZE_HINT_NORMAL - /mob/dead/dust() //ghosts can't be vaporised. - return +/mob/dead/dust() //ghosts can't be vaporised. + return - /mob/dead/gib() //ghosts can't be gibbed. - return +/mob/dead/gib() //ghosts can't be gibbed. + return - /mob/dead/ConveyorMove() //lol - return +/mob/dead/ConveyorMove() //lol + return - /mob/dead/proc/server_hop() - set category = "OOC" - set name = "Server Hop!" - set desc= "Jump to the other server" - if(notransform) - return - if(!config.cross_allowed) - verbs -= /mob/dead/proc/server_hop - to_chat(src, "Server Hop has been disabled.") - return - if (alert(src, "Jump to server running at [config.cross_address]?", "Server Hop", "Yes", "No") != "Yes") - return 0 - if (client && config.cross_allowed) - to_chat(src, "Sending you to [config.cross_address].") - new /obj/screen/splash(client) - notransform = TRUE - sleep(29) //let the animation play - notransform = FALSE - winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources - client << link(config.cross_address + "?server_hop=[key]") - else - to_chat(src, "There is no other server configured!") - \ No newline at end of file +/mob/dead/proc/server_hop() + set category = "OOC" + set name = "Server Hop!" + set desc= "Jump to the other server" + if(notransform) + return + if(!config.cross_allowed) + verbs -= /mob/dead/proc/server_hop + to_chat(src, "Server Hop has been disabled.") + return + if (alert(src, "Jump to server running at [config.cross_address]?", "Server Hop", "Yes", "No") != "Yes") + return 0 + if (client && config.cross_allowed) + to_chat(src, "Sending you to [config.cross_address].") + new /obj/screen/splash(client) + notransform = TRUE + sleep(29) //let the animation play + notransform = FALSE + winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources + client << link(config.cross_address + "?server_hop=[key]") + else + to_chat(src, "There is no other server configured!") diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index b88d8104f2..9a49c23cfc 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -1,34 +1,34 @@ -/mob/dead/new_player/Login() - if(!mind) - mind = new /datum/mind(key) - mind.active = 1 - mind.current = src - - ..() - - if(GLOB.join_motd) - to_chat(src, "

    [GLOB.join_motd]
    ") - - if(GLOB.admin_notice) - to_chat(src, "Admin Notice:\n \t [GLOB.admin_notice]") - - if(config.soft_popcap && living_player_count() >= config.soft_popcap) - to_chat(src, "Server Notice:\n \t [config.soft_popcap_message]") - - sight |= SEE_TURFS - -/* - var/list/watch_locations = list() - for(var/obj/effect/landmark/landmark in landmarks_list) - if(landmark.tag == "landmark*new_player") - watch_locations += landmark.loc - - if(watch_locations.len>0) - loc = pick(watch_locations) -*/ - new_player_panel() - client.playtitlemusic() - if(SSticker.current_state < GAME_STATE_SETTING_UP) +/mob/dead/new_player/Login() + if(!mind) + mind = new /datum/mind(key) + mind.active = 1 + mind.current = src + + ..() + + if(GLOB.join_motd) + to_chat(src, "
    [GLOB.join_motd]
    ") + + if(GLOB.admin_notice) + to_chat(src, "Admin Notice:\n \t [GLOB.admin_notice]") + + if(config.soft_popcap && living_player_count() >= config.soft_popcap) + to_chat(src, "Server Notice:\n \t [config.soft_popcap_message]") + + sight |= SEE_TURFS + +/* + var/list/watch_locations = list() + for(var/obj/effect/landmark/landmark in landmarks_list) + if(landmark.tag == "landmark*new_player") + watch_locations += landmark.loc + + if(watch_locations.len>0) + loc = pick(watch_locations) +*/ + new_player_panel() + client.playtitlemusic() + if(SSticker.current_state < GAME_STATE_SETTING_UP) var/tl = round(SSticker.GetTimeLeft(), 1)/10 var/postfix if(tl >= 0) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 87dbbd8d66..74e9e40dde 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -1,500 +1,497 @@ -#define LINKIFY_READY(string, value) "[string]" - -/mob/dead/new_player - var/ready = 0 - var/spawning = 0//Referenced when you want to delete the new_player later on in the code. - - flags = NONE - - invisibility = INVISIBILITY_ABSTRACT - - density = 0 - stat = DEAD - canmove = 0 - - anchored = 1 // don't get pushed around - var/mob/living/new_character //for instant transfer once the round is set up - -/mob/dead/new_player/Initialize() - if(client && SSticker.state == GAME_STATE_STARTUP) - var/obj/screen/splash/S = new(client, TRUE, TRUE) - S.Fade(TRUE) - - if(length(GLOB.newplayer_start)) - loc = pick(GLOB.newplayer_start) - else - loc = locate(1,1,1) - . = ..() - -/mob/dead/new_player/prepare_huds() - return - -/mob/dead/new_player/proc/new_player_panel() - - var/output = "

    Setup Character

    " - - if(SSticker && SSticker.current_state <= GAME_STATE_PREGAME) - switch(ready) - if(PLAYER_NOT_READY) - output += "

    \[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | Not Ready | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

    " - if(PLAYER_READY_TO_PLAY) - output += "

    \[ Ready | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

    " - if(PLAYER_READY_TO_OBSERVE) - output += "

    \[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | Observe \]

    " - - else - output += "

    View the Crew Manifest

    " - output += "

    Join Game!

    " - output += "

    [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)]

    " - - if(!IsGuestKey(src.key)) - if (SSdbcore.Connect()) - var/isadmin = 0 - if(src.client && src.client.holder) - isadmin = 1 - var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE [(isadmin ? "" : "adminonly = false AND")] Now() BETWEEN starttime AND endtime AND id NOT IN (SELECT pollid FROM [format_table_name("poll_vote")] WHERE ckey = \"[ckey]\") AND id NOT IN (SELECT pollid FROM [format_table_name("poll_textreply")] WHERE ckey = \"[ckey]\")") +#define LINKIFY_READY(string, value) "[string]" + +/mob/dead/new_player + var/ready = 0 + var/spawning = 0//Referenced when you want to delete the new_player later on in the code. + + flags = NONE + + invisibility = INVISIBILITY_ABSTRACT + + density = 0 + stat = DEAD + canmove = 0 + + anchored = 1 // don't get pushed around + var/mob/living/new_character //for instant transfer once the round is set up + +/mob/dead/new_player/Initialize() + if(client && SSticker.state == GAME_STATE_STARTUP) + var/obj/screen/splash/S = new(client, TRUE, TRUE) + S.Fade(TRUE) + + if(length(GLOB.newplayer_start)) + loc = pick(GLOB.newplayer_start) + else + loc = locate(1,1,1) + . = ..() + +/mob/dead/new_player/prepare_huds() + return + +/mob/dead/new_player/proc/new_player_panel() + var/output = "

    Setup Character

    " + + if(SSticker && SSticker.current_state <= GAME_STATE_PREGAME) + switch(ready) + if(PLAYER_NOT_READY) + output += "

    \[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | Not Ready | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

    " + if(PLAYER_READY_TO_PLAY) + output += "

    \[ Ready | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

    " + if(PLAYER_READY_TO_OBSERVE) + output += "

    \[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | Observe \]

    " + else + output += "

    View the Crew Manifest

    " + output += "

    Join Game!

    " + output += "

    [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)]

    " + + if(!IsGuestKey(src.key)) + if (SSdbcore.Connect()) + var/isadmin = 0 + if(src.client && src.client.holder) + isadmin = 1 + var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE [(isadmin ? "" : "adminonly = false AND")] Now() BETWEEN starttime AND endtime AND id NOT IN (SELECT pollid FROM [format_table_name("poll_vote")] WHERE ckey = \"[ckey]\") AND id NOT IN (SELECT pollid FROM [format_table_name("poll_textreply")] WHERE ckey = \"[ckey]\")") if(query_get_new_polls.Execute()) var/newpoll = 0 if(query_get_new_polls.NextRow()) newpoll = 1 - + if(newpoll) output += "

    Show Player Polls (NEW!)

    " else output += "

    Show Player Polls

    " - - output += "
    " - - //src << browse(output,"window=playersetup;size=210x240;can_close=0") - var/datum/browser/popup = new(src, "playersetup", "
    New Player Options
    ", 250, 265) - popup.set_window_options("can_close=0") - popup.set_content(output) - popup.open(0) - return - -/mob/dead/new_player/Stat() - ..() - - if(statpanel("Lobby")) - stat("Game Mode:", (SSticker.hide_mode) ? "Secret" : "[GLOB.master_mode]") - stat("Map:", SSmapping.config.map_name) - - if(SSticker.current_state == GAME_STATE_PREGAME) - var/time_remaining = SSticker.GetTimeLeft() - if(time_remaining >= 0) - time_remaining /= 10 - stat("Time To Start:", (time_remaining >= 0) ? "[round(time_remaining)]s" : "DELAYED") - - stat("Players:", "[SSticker.totalPlayers]") - if(client.holder) - stat("Players Ready:", "[SSticker.totalPlayersReady]") - - -/mob/dead/new_player/Topic(href, href_list[]) - if(src != usr) - return 0 - - if(!client) - return 0 - - //Determines Relevent Population Cap - var/relevant_cap - if(config.hard_popcap && config.extreme_popcap) - relevant_cap = min(config.hard_popcap, config.extreme_popcap) - else - relevant_cap = max(config.hard_popcap, config.extreme_popcap) - - if(href_list["show_preferences"]) - client.prefs.ShowChoices(src) - return 1 - - if(href_list["ready"]) - if(SSticker) - var/tready = text2num(href_list["ready"]) - //Avoid updating ready if we're after PREGAME (they should use latejoin instead) - //This is likely not an actual issue but I don't have time to prove that this - //no longer is required - if(SSticker.current_state <= GAME_STATE_PREGAME) - ready = tready - //if it's post initialisation and they're trying to observe we do the needful - if(!SSticker.current_state < GAME_STATE_PREGAME && tready == PLAYER_READY_TO_OBSERVE) - ready = tready - make_me_an_observer() - return - - if(href_list["refresh"]) - src << browse(null, "window=playersetup") //closes the player setup window - new_player_panel() - - if(href_list["late_join"]) - if(!SSticker || !SSticker.IsRoundInProgress()) - to_chat(usr, "The round is either not ready, or has already finished...") - return - - if(href_list["late_join"] == "override") - LateChoices() - return - - if(SSticker.queued_players.len || (relevant_cap && living_player_count() >= relevant_cap && !(ckey(key) in GLOB.admin_datums))) - to_chat(usr, "[config.hard_popcap_message]") - - var/queue_position = SSticker.queued_players.Find(usr) - if(queue_position == 1) - to_chat(usr, "You are next in line to join the game. You will be notified when a slot opens up.") - else if(queue_position) - to_chat(usr, "There are [queue_position-1] players in front of you in the queue to join the game.") - else - SSticker.queued_players += usr - to_chat(usr, "You have been added to the queue to join the game. Your position in queue is [SSticker.queued_players.len].") - return - LateChoices() - - if(href_list["manifest"]) - ViewManifest() - - if(href_list["SelectedJob"]) - - if(!GLOB.enter_allowed) - to_chat(usr, "There is an administrative lock on entering the game!") - return - - if(SSticker.queued_players.len && !(ckey(key) in GLOB.admin_datums)) - if((living_player_count() >= relevant_cap) || (src != SSticker.queued_players[1])) - to_chat(usr, "Server is full.") - return - - AttemptLateSpawn(href_list["SelectedJob"]) - return - - if(!ready && href_list["preference"]) - if(client) - client.prefs.process_link(src, href_list) - else if(!href_list["late_join"]) - new_player_panel() - - if(href_list["showpoll"]) - handle_player_polling() - return - - if(href_list["pollid"]) - var/pollid = href_list["pollid"] - if(istext(pollid)) - pollid = text2num(pollid) - if(isnum(pollid) && IsInteger(pollid)) - src.poll_player(pollid) - return - - if(href_list["votepollid"] && href_list["votetype"]) - var/pollid = text2num(href_list["votepollid"]) - var/votetype = href_list["votetype"] - //lets take data from the user to decide what kind of poll this is, without validating it - //what could go wrong - switch(votetype) - if(POLLTYPE_OPTION) - var/optionid = text2num(href_list["voteoptionid"]) - if(vote_on_poll(pollid, optionid)) - to_chat(usr, "Vote successful.") - else - to_chat(usr, "Vote failed, please try again or contact an administrator.") - if(POLLTYPE_TEXT) - var/replytext = href_list["replytext"] - if(log_text_poll_reply(pollid, replytext)) - to_chat(usr, "Feedback logging successful.") - else - to_chat(usr, "Feedback logging failed, please try again or contact an administrator.") - if(POLLTYPE_RATING) - var/id_min = text2num(href_list["minid"]) - var/id_max = text2num(href_list["maxid"]) - - if( (id_max - id_min) > 100 ) //Basic exploit prevention - //(protip, this stops no exploits) - to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.") - return - - for(var/optionid = id_min; optionid <= id_max; optionid++) - if(!isnull(href_list["o[optionid]"])) //Test if this optionid was replied to - var/rating - if(href_list["o[optionid]"] == "abstain") - rating = null - else - rating = text2num(href_list["o[optionid]"]) - if(!isnum(rating) || !IsInteger(rating)) - return - - if(!vote_on_numval_poll(pollid, optionid, rating)) - to_chat(usr, "Vote failed, please try again or contact an administrator.") - return - to_chat(usr, "Vote successful.") - if(POLLTYPE_MULTI) - var/id_min = text2num(href_list["minoptionid"]) - var/id_max = text2num(href_list["maxoptionid"]) - - if( (id_max - id_min) > 100 ) //Basic exploit prevention - to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.") - return - - for(var/optionid = id_min; optionid <= id_max; optionid++) - if(!isnull(href_list["option_[optionid]"])) //Test if this optionid was selected - var/i = vote_on_multi_poll(pollid, optionid) - switch(i) - if(0) - continue - if(1) - to_chat(usr, "Vote failed, please try again or contact an administrator.") - return - if(2) - to_chat(usr, "Maximum replies reached.") - break - to_chat(usr, "Vote successful.") - if(POLLTYPE_IRV) - if (!href_list["IRVdata"]) - to_chat(src, "No ordering data found. Please try again or contact an administrator.") - var/list/votelist = splittext(href_list["IRVdata"], ",") - if (!vote_on_irv_poll(pollid, votelist)) - to_chat(src, "Vote failed, please try again or contact an administrator.") - return - to_chat(src, "Vote successful.") - -//When you cop out of the round (NB: this HAS A SLEEP FOR PLAYER INPUT IN IT) -/mob/dead/new_player/proc/make_me_an_observer() - if(QDELETED(src) || !src.client) - ready = PLAYER_NOT_READY - return FALSE - - var/this_is_like_playing_right = alert(src,"Are you sure you wish to observe? You will not be able to play this round!","Player Setup","Yes","No") - - if(QDELETED(src) || !src.client || this_is_like_playing_right != "Yes") - ready = PLAYER_NOT_READY - src << browse(null, "window=playersetup") //closes the player setup window - new_player_panel() - return FALSE - - var/mob/dead/observer/observer = new() - spawning = TRUE - - observer.started_as_observer = TRUE - close_spawn_windows() - var/obj/O = locate("landmark*Observer-Start") - to_chat(src, "Now teleporting.") - if (O) - observer.loc = O.loc - else - to_chat(src, "Teleporting failed. Ahelp an admin please") - stack_trace("There's no freaking observer landmark available on this map or you're making observers before the map is initialised") - observer.key = key - observer.client = client - observer.set_ghost_appearance() - if(observer.client && observer.client.prefs) - observer.real_name = observer.client.prefs.real_name - observer.name = observer.real_name - observer.update_icon() - observer.stop_sound_channel(CHANNEL_LOBBYMUSIC) - QDEL_NULL(mind) - qdel(src) - return TRUE - - -/mob/dead/new_player/proc/IsJobAvailable(rank) - var/datum/job/job = SSjob.GetJob(rank) - if(!job) - return 0 - if((job.current_positions >= job.total_positions) && job.total_positions != -1) - if(job.title == "Assistant") - if(isnum(client.player_age) && client.player_age <= 14) //Newbies can always be assistants - return 1 - for(var/datum/job/J in SSjob.occupations) - if(J && J.current_positions < J.total_positions && J.title != job.title) - return 0 - else - return 0 - if(jobban_isbanned(src,rank)) - return 0 - if(!job.player_old_enough(src.client)) - return 0 - if(config.enforce_human_authority && !client.prefs.pref_species.qualifies_for_rank(rank, client.prefs.features)) - return 0 - return 1 - - -/mob/dead/new_player/proc/AttemptLateSpawn(rank) - if(!IsJobAvailable(rank)) - alert(src, "[rank] is not available. Please try another.") - return 0 - - if(SSticker.late_join_disabled) - alert(src, "An administrator has disabled late join spawning.") - return FALSE - - var/arrivals_docked = TRUE - if(SSshuttle.arrivals) - close_spawn_windows() //In case we get held up - if(SSshuttle.arrivals.damaged && config.arrivals_shuttle_require_safe_latejoin) - src << alert("The arrivals shuttle is currently malfunctioning! You cannot join.") - return FALSE - arrivals_docked = SSshuttle.arrivals.mode != SHUTTLE_CALL - - //Remove the player from the join queue if he was in one and reset the timer - SSticker.queued_players -= src - SSticker.queue_delay = 4 - - SSjob.AssignRole(src, rank, 1) - - var/mob/living/character = create_character(TRUE) //creates the human and transfers vars and mind - var/equip = SSjob.EquipRank(character, rank, 1) - if(isliving(equip)) //Borgs get borged in the equip, so we need to make sure we handle the new mob. - character = equip - - SSjob.SendToLateJoin(character) - - if(!arrivals_docked) - var/obj/screen/splash/Spl = new(character.client, TRUE) - Spl.Fade(TRUE) - character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25) - - character.update_parallax_teleport() - - SSticker.minds += character.mind - - var/mob/living/carbon/human/humanc - if(ishuman(character)) - humanc = character //Let's retypecast the var to be human, - - if(humanc) //These procs all expect humans - GLOB.data_core.manifest_inject(humanc) - if(SSshuttle.arrivals) - SSshuttle.arrivals.QueueAnnounce(humanc, rank) - else - AnnounceArrival(humanc, rank) - AddEmploymentContract(humanc) - if(GLOB.highlander) - to_chat(humanc, "THERE CAN BE ONLY ONE!!!") - humanc.make_scottish() - - GLOB.joined_player_list += character.ckey - - if(config.allow_latejoin_antagonists && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais. - if(SSshuttle.emergency) - switch(SSshuttle.emergency.mode) - if(SHUTTLE_RECALL, SHUTTLE_IDLE) - SSticker.mode.make_antag_chance(humanc) - if(SHUTTLE_CALL) - if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) - SSticker.mode.make_antag_chance(humanc) - -/mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee) - //TODO: figure out a way to exclude wizards/nukeops/demons from this. - for(var/C in GLOB.employmentCabinets) - var/obj/structure/filingcabinet/employment/employmentCabinet = C - if(!employmentCabinet.virgin) - employmentCabinet.addFile(employee) - - -/mob/dead/new_player/proc/LateChoices() - var/mills = world.time - SSticker.round_start_time // 1/10 of a second, not real milliseconds but whatever - //var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something - var/mins = (mills % 36000) / 600 - var/hours = mills / 36000 - - var/dat = "
    Round Duration: [round(hours)]h [round(mins)]m
    " - - if(SSshuttle.emergency) - switch(SSshuttle.emergency.mode) - if(SHUTTLE_ESCAPE) - dat += "
    The station has been evacuated.

    " - if(SHUTTLE_CALL) - if(!SSshuttle.canRecall()) - dat += "
    The station is currently undergoing evacuation procedures.

    " - - var/available_job_count = 0 - for(var/datum/job/job in SSjob.occupations) - if(job && IsJobAvailable(job.title)) - available_job_count++; - - if(length(SSjob.prioritized_jobs)) - dat += "
    The station has flagged these jobs as high priority:
    " - var/amt = length(SSjob.prioritized_jobs) - var/amt_count - for(var/datum/job/a in SSjob.prioritized_jobs) - amt_count++ - if(amt_count != amt) // checks for the last job added. - dat += " [a.title], " - else - dat += " [a.title].
    " - - dat += "
    Choose from the following open positions:

    " - dat += "
    " - var/job_count = 0 - for(var/datum/job/job in SSjob.occupations) - if(job && IsJobAvailable(job.title)) - job_count++; - if (job_count > round(available_job_count / 2)) - dat += "
    " - var/position_class = "otherPosition" - if (job.title in GLOB.command_positions) - position_class = "commandPosition" - dat += "[job.title] ([job.current_positions])
    " - if(!job_count) //if there's nowhere to go, assistant opens up. - for(var/datum/job/job in SSjob.occupations) - if(job.title != "Assistant") continue - dat += "[job.title] ([job.current_positions])
    " - break - dat += "
    " - - // Removing the old window method but leaving it here for reference - //src << browse(dat, "window=latechoices;size=300x640;can_close=1") - - // Added the new browser window method - var/datum/browser/popup = new(src, "latechoices", "Choose Profession", 440, 500) - popup.add_stylesheet("playeroptions", 'html/browser/playeroptions.css') - popup.set_content(dat) - popup.open(0) // 0 is passed to open so that it doesn't use the onclose() proc - - -/mob/dead/new_player/proc/create_character(transfer_after) - spawning = 1 - close_spawn_windows() - - var/mob/living/carbon/human/H = new(loc) - - if(config.force_random_names || jobban_isbanned(src, "appearance")) - client.prefs.random_character() - client.prefs.real_name = client.prefs.pref_species.random_name(gender,1) - client.prefs.copy_to(H) - H.dna.update_dna_identity() - if(mind) - mind.active = 0 //we wish to transfer the key manually - mind.transfer_to(H) //won't transfer key since the mind is not active - - H.name = real_name - - . = H - new_character = . - if(transfer_after) - transfer_character() - -/mob/dead/new_player/proc/transfer_character() - . = new_character - if(.) - new_character.key = key //Manually transfer the key to log them in - new_character.stop_sound_channel(CHANNEL_LOBBYMUSIC) - new_character = null - qdel(src) - -/mob/dead/new_player/proc/ViewManifest() - var/dat = "" - dat += "

    Crew Manifest

    " - dat += GLOB.data_core.get_manifest(OOC = 1) - - src << browse(dat, "window=manifest;size=387x420;can_close=1") - -/mob/dead/new_player/Move() - return 0 - - -/mob/dead/new_player/proc/close_spawn_windows() - - src << browse(null, "window=latechoices") //closes late choices window - src << browse(null, "window=playersetup") //closes the player setup window - src << browse(null, "window=preferences") //closes job selection - src << browse(null, "window=mob_occupation") - src << browse(null, "window=latechoices") //closes late job selection + + output += "
    " + + //src << browse(output,"window=playersetup;size=210x240;can_close=0") + var/datum/browser/popup = new(src, "playersetup", "
    New Player Options
    ", 250, 265) + popup.set_window_options("can_close=0") + popup.set_content(output) + popup.open(0) + return + +/mob/dead/new_player/Stat() + ..() + + if(statpanel("Lobby")) + stat("Game Mode:", (SSticker.hide_mode) ? "Secret" : "[GLOB.master_mode]") + stat("Map:", SSmapping.config.map_name) + + if(SSticker.current_state == GAME_STATE_PREGAME) + var/time_remaining = SSticker.GetTimeLeft() + if(time_remaining >= 0) + time_remaining /= 10 + stat("Time To Start:", (time_remaining >= 0) ? "[round(time_remaining)]s" : "DELAYED") + + stat("Players:", "[SSticker.totalPlayers]") + if(client.holder) + stat("Players Ready:", "[SSticker.totalPlayersReady]") + + +/mob/dead/new_player/Topic(href, href_list[]) + if(src != usr) + return 0 + + if(!client) + return 0 + + //Determines Relevent Population Cap + var/relevant_cap + if(config.hard_popcap && config.extreme_popcap) + relevant_cap = min(config.hard_popcap, config.extreme_popcap) + else + relevant_cap = max(config.hard_popcap, config.extreme_popcap) + + if(href_list["show_preferences"]) + client.prefs.ShowChoices(src) + return 1 + + if(href_list["ready"]) + if(SSticker) + var/tready = text2num(href_list["ready"]) + //Avoid updating ready if we're after PREGAME (they should use latejoin instead) + //This is likely not an actual issue but I don't have time to prove that this + //no longer is required + if(SSticker.current_state <= GAME_STATE_PREGAME) + ready = tready + //if it's post initialisation and they're trying to observe we do the needful + if(!SSticker.current_state < GAME_STATE_PREGAME && tready == PLAYER_READY_TO_OBSERVE) + ready = tready + make_me_an_observer() + return + + if(href_list["refresh"]) + src << browse(null, "window=playersetup") //closes the player setup window + new_player_panel() + + if(href_list["late_join"]) + if(!SSticker || !SSticker.IsRoundInProgress()) + to_chat(usr, "The round is either not ready, or has already finished...") + return + + if(href_list["late_join"] == "override") + LateChoices() + return + + if(SSticker.queued_players.len || (relevant_cap && living_player_count() >= relevant_cap && !(ckey(key) in GLOB.admin_datums))) + to_chat(usr, "[config.hard_popcap_message]") + + var/queue_position = SSticker.queued_players.Find(usr) + if(queue_position == 1) + to_chat(usr, "You are next in line to join the game. You will be notified when a slot opens up.") + else if(queue_position) + to_chat(usr, "There are [queue_position-1] players in front of you in the queue to join the game.") + else + SSticker.queued_players += usr + to_chat(usr, "You have been added to the queue to join the game. Your position in queue is [SSticker.queued_players.len].") + return + LateChoices() + + if(href_list["manifest"]) + ViewManifest() + + if(href_list["SelectedJob"]) + + if(!GLOB.enter_allowed) + to_chat(usr, "There is an administrative lock on entering the game!") + return + + if(SSticker.queued_players.len && !(ckey(key) in GLOB.admin_datums)) + if((living_player_count() >= relevant_cap) || (src != SSticker.queued_players[1])) + to_chat(usr, "Server is full.") + return + + AttemptLateSpawn(href_list["SelectedJob"]) + return + + if(!ready && href_list["preference"]) + if(client) + client.prefs.process_link(src, href_list) + else if(!href_list["late_join"]) + new_player_panel() + + if(href_list["showpoll"]) + handle_player_polling() + return + + if(href_list["pollid"]) + var/pollid = href_list["pollid"] + if(istext(pollid)) + pollid = text2num(pollid) + if(isnum(pollid) && IsInteger(pollid)) + src.poll_player(pollid) + return + + if(href_list["votepollid"] && href_list["votetype"]) + var/pollid = text2num(href_list["votepollid"]) + var/votetype = href_list["votetype"] + //lets take data from the user to decide what kind of poll this is, without validating it + //what could go wrong + switch(votetype) + if(POLLTYPE_OPTION) + var/optionid = text2num(href_list["voteoptionid"]) + if(vote_on_poll(pollid, optionid)) + to_chat(usr, "Vote successful.") + else + to_chat(usr, "Vote failed, please try again or contact an administrator.") + if(POLLTYPE_TEXT) + var/replytext = href_list["replytext"] + if(log_text_poll_reply(pollid, replytext)) + to_chat(usr, "Feedback logging successful.") + else + to_chat(usr, "Feedback logging failed, please try again or contact an administrator.") + if(POLLTYPE_RATING) + var/id_min = text2num(href_list["minid"]) + var/id_max = text2num(href_list["maxid"]) + + if( (id_max - id_min) > 100 ) //Basic exploit prevention + //(protip, this stops no exploits) + to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.") + return + + for(var/optionid = id_min; optionid <= id_max; optionid++) + if(!isnull(href_list["o[optionid]"])) //Test if this optionid was replied to + var/rating + if(href_list["o[optionid]"] == "abstain") + rating = null + else + rating = text2num(href_list["o[optionid]"]) + if(!isnum(rating) || !IsInteger(rating)) + return + + if(!vote_on_numval_poll(pollid, optionid, rating)) + to_chat(usr, "Vote failed, please try again or contact an administrator.") + return + to_chat(usr, "Vote successful.") + if(POLLTYPE_MULTI) + var/id_min = text2num(href_list["minoptionid"]) + var/id_max = text2num(href_list["maxoptionid"]) + + if( (id_max - id_min) > 100 ) //Basic exploit prevention + to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.") + return + + for(var/optionid = id_min; optionid <= id_max; optionid++) + if(!isnull(href_list["option_[optionid]"])) //Test if this optionid was selected + var/i = vote_on_multi_poll(pollid, optionid) + switch(i) + if(0) + continue + if(1) + to_chat(usr, "Vote failed, please try again or contact an administrator.") + return + if(2) + to_chat(usr, "Maximum replies reached.") + break + to_chat(usr, "Vote successful.") + if(POLLTYPE_IRV) + if (!href_list["IRVdata"]) + to_chat(src, "No ordering data found. Please try again or contact an administrator.") + var/list/votelist = splittext(href_list["IRVdata"], ",") + if (!vote_on_irv_poll(pollid, votelist)) + to_chat(src, "Vote failed, please try again or contact an administrator.") + return + to_chat(src, "Vote successful.") + +//When you cop out of the round (NB: this HAS A SLEEP FOR PLAYER INPUT IN IT) +/mob/dead/new_player/proc/make_me_an_observer() + if(QDELETED(src) || !src.client) + ready = PLAYER_NOT_READY + return FALSE + + var/this_is_like_playing_right = alert(src,"Are you sure you wish to observe? You will not be able to play this round!","Player Setup","Yes","No") + + if(QDELETED(src) || !src.client || this_is_like_playing_right != "Yes") + ready = PLAYER_NOT_READY + src << browse(null, "window=playersetup") //closes the player setup window + new_player_panel() + return FALSE + + var/mob/dead/observer/observer = new() + spawning = TRUE + + observer.started_as_observer = TRUE + close_spawn_windows() + var/obj/O = locate("landmark*Observer-Start") + to_chat(src, "Now teleporting.") + if (O) + observer.loc = O.loc + else + to_chat(src, "Teleporting failed. Ahelp an admin please") + stack_trace("There's no freaking observer landmark available on this map or you're making observers before the map is initialised") + observer.key = key + observer.client = client + observer.set_ghost_appearance() + if(observer.client && observer.client.prefs) + observer.real_name = observer.client.prefs.real_name + observer.name = observer.real_name + observer.update_icon() + observer.stop_sound_channel(CHANNEL_LOBBYMUSIC) + QDEL_NULL(mind) + qdel(src) + return TRUE + +/mob/dead/new_player/proc/IsJobAvailable(rank) + var/datum/job/job = SSjob.GetJob(rank) + if(!job) + return 0 + if((job.current_positions >= job.total_positions) && job.total_positions != -1) + if(job.title == "Assistant") + if(isnum(client.player_age) && client.player_age <= 14) //Newbies can always be assistants + return 1 + for(var/datum/job/J in SSjob.occupations) + if(J && J.current_positions < J.total_positions && J.title != job.title) + return 0 + else + return 0 + if(jobban_isbanned(src,rank)) + return 0 + if(!job.player_old_enough(src.client)) + return 0 + if(config.enforce_human_authority && !client.prefs.pref_species.qualifies_for_rank(rank, client.prefs.features)) + return 0 + return 1 + + +/mob/dead/new_player/proc/AttemptLateSpawn(rank) + if(!IsJobAvailable(rank)) + alert(src, "[rank] is not available. Please try another.") + return 0 + + if(SSticker.late_join_disabled) + alert(src, "An administrator has disabled late join spawning.") + return FALSE + + var/arrivals_docked = TRUE + if(SSshuttle.arrivals) + close_spawn_windows() //In case we get held up + if(SSshuttle.arrivals.damaged && config.arrivals_shuttle_require_safe_latejoin) + src << alert("The arrivals shuttle is currently malfunctioning! You cannot join.") + return FALSE + arrivals_docked = SSshuttle.arrivals.mode != SHUTTLE_CALL + + //Remove the player from the join queue if he was in one and reset the timer + SSticker.queued_players -= src + SSticker.queue_delay = 4 + + SSjob.AssignRole(src, rank, 1) + + var/mob/living/character = create_character(TRUE) //creates the human and transfers vars and mind + var/equip = SSjob.EquipRank(character, rank, 1) + if(isliving(equip)) //Borgs get borged in the equip, so we need to make sure we handle the new mob. + character = equip + + SSjob.SendToLateJoin(character) + + if(!arrivals_docked) + var/obj/screen/splash/Spl = new(character.client, TRUE) + Spl.Fade(TRUE) + character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25) + + character.update_parallax_teleport() + + SSticker.minds += character.mind + + var/mob/living/carbon/human/humanc + if(ishuman(character)) + humanc = character //Let's retypecast the var to be human, + + if(humanc) //These procs all expect humans + GLOB.data_core.manifest_inject(humanc) + if(SSshuttle.arrivals) + SSshuttle.arrivals.QueueAnnounce(humanc, rank) + else + AnnounceArrival(humanc, rank) + AddEmploymentContract(humanc) + if(GLOB.highlander) + to_chat(humanc, "THERE CAN BE ONLY ONE!!!") + humanc.make_scottish() + + GLOB.joined_player_list += character.ckey + + if(config.allow_latejoin_antagonists && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais. + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_RECALL, SHUTTLE_IDLE) + SSticker.mode.make_antag_chance(humanc) + if(SHUTTLE_CALL) + if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) + SSticker.mode.make_antag_chance(humanc) + +/mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee) + //TODO: figure out a way to exclude wizards/nukeops/demons from this. + for(var/C in GLOB.employmentCabinets) + var/obj/structure/filingcabinet/employment/employmentCabinet = C + if(!employmentCabinet.virgin) + employmentCabinet.addFile(employee) + + +/mob/dead/new_player/proc/LateChoices() + var/mills = world.time - SSticker.round_start_time // 1/10 of a second, not real milliseconds but whatever + //var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something + var/mins = (mills % 36000) / 600 + var/hours = mills / 36000 + + var/dat = "
    Round Duration: [round(hours)]h [round(mins)]m
    " + + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_ESCAPE) + dat += "
    The station has been evacuated.

    " + if(SHUTTLE_CALL) + if(!SSshuttle.canRecall()) + dat += "
    The station is currently undergoing evacuation procedures.

    " + + var/available_job_count = 0 + for(var/datum/job/job in SSjob.occupations) + if(job && IsJobAvailable(job.title)) + available_job_count++; + + if(length(SSjob.prioritized_jobs)) + dat += "
    The station has flagged these jobs as high priority:
    " + var/amt = length(SSjob.prioritized_jobs) + var/amt_count + for(var/datum/job/a in SSjob.prioritized_jobs) + amt_count++ + if(amt_count != amt) // checks for the last job added. + dat += " [a.title], " + else + dat += " [a.title].
    " + + dat += "
    Choose from the following open positions:

    " + dat += "
    " + var/job_count = 0 + for(var/datum/job/job in SSjob.occupations) + if(job && IsJobAvailable(job.title)) + job_count++; + if (job_count > round(available_job_count / 2)) + dat += "
    " + var/position_class = "otherPosition" + if (job.title in GLOB.command_positions) + position_class = "commandPosition" + dat += "[job.title] ([job.current_positions])
    " + if(!job_count) //if there's nowhere to go, assistant opens up. + for(var/datum/job/job in SSjob.occupations) + if(job.title != "Assistant") continue + dat += "[job.title] ([job.current_positions])
    " + break + dat += "
    " + + // Removing the old window method but leaving it here for reference + //src << browse(dat, "window=latechoices;size=300x640;can_close=1") + + // Added the new browser window method + var/datum/browser/popup = new(src, "latechoices", "Choose Profession", 440, 500) + popup.add_stylesheet("playeroptions", 'html/browser/playeroptions.css') + popup.set_content(dat) + popup.open(0) // 0 is passed to open so that it doesn't use the onclose() proc + + +/mob/dead/new_player/proc/create_character(transfer_after) + spawning = 1 + close_spawn_windows() + + var/mob/living/carbon/human/H = new(loc) + + if(config.force_random_names || jobban_isbanned(src, "appearance")) + client.prefs.random_character() + client.prefs.real_name = client.prefs.pref_species.random_name(gender,1) + client.prefs.copy_to(H) + H.dna.update_dna_identity() + if(mind) + mind.active = 0 //we wish to transfer the key manually + mind.transfer_to(H) //won't transfer key since the mind is not active + + H.name = real_name + + . = H + new_character = . + if(transfer_after) + transfer_character() + +/mob/dead/new_player/proc/transfer_character() + . = new_character + if(.) + new_character.key = key //Manually transfer the key to log them in + new_character.stop_sound_channel(CHANNEL_LOBBYMUSIC) + new_character = null + qdel(src) + +/mob/dead/new_player/proc/ViewManifest() + var/dat = "" + dat += "

    Crew Manifest

    " + dat += GLOB.data_core.get_manifest(OOC = 1) + + src << browse(dat, "window=manifest;size=387x420;can_close=1") + +/mob/dead/new_player/Move() + return 0 + + +/mob/dead/new_player/proc/close_spawn_windows() + + src << browse(null, "window=latechoices") //closes late choices window + src << browse(null, "window=playersetup") //closes the player setup window + src << browse(null, "window=preferences") //closes job selection + src << browse(null, "window=mob_occupation") + src << browse(null, "window=latechoices") //closes late job selection diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index 43e48d2bf9..9fba6eb2e9 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -1,550 +1,550 @@ -/datum/polloption - var/optionid - var/optiontext - -/mob/dead/new_player/proc/handle_player_polling() +/datum/polloption + var/optionid + var/optiontext + +/mob/dead/new_player/proc/handle_player_polling() if(!SSdbcore.IsConnected()) - to_chat(usr, "Failed to establish database connection.") - return + to_chat(usr, "Failed to establish database connection.") + return var/datum/DBQuery/query_poll_get = SSdbcore.NewQuery("SELECT id, question FROM [format_table_name("poll_question")] WHERE Now() BETWEEN starttime AND endtime [(client.holder ? "" : "AND adminonly = false")]") - if(!query_poll_get.warn_execute()) - return - var/output = "
    Player polls
    " - var/i = 0 - while(query_poll_get.NextRow()) - var/pollid = query_poll_get.item[1] - var/pollquestion = query_poll_get.item[2] - output += "" - i++ - output += "
    [pollquestion]
    " - src << browse(output,"window=playerpolllist;size=500x300") - -/mob/dead/new_player/proc/poll_player(pollid) - if(!pollid) - return + if(!query_poll_get.warn_execute()) + return + var/output = "
    Player polls
    " + var/i = 0 + while(query_poll_get.NextRow()) + var/pollid = query_poll_get.item[1] + var/pollquestion = query_poll_get.item[2] + output += "" + i++ + output += "
    [pollquestion]
    " + src << browse(output,"window=playerpolllist;size=500x300") + +/mob/dead/new_player/proc/poll_player(pollid) + if(!pollid) + return if (!SSdbcore.Connect()) - to_chat(usr, "Failed to establish database connection.") - return + to_chat(usr, "Failed to establish database connection.") + return var/datum/DBQuery/query_poll_get_details = SSdbcore.NewQuery("SELECT starttime, endtime, question, polltype, multiplechoiceoptions FROM [format_table_name("poll_question")] WHERE id = [pollid]") - if(!query_poll_get_details.warn_execute()) - return - var/pollstarttime = "" - var/pollendtime = "" - var/pollquestion = "" - var/polltype = "" - var/multiplechoiceoptions = 0 - if(query_poll_get_details.NextRow()) - pollstarttime = query_poll_get_details.item[1] - pollendtime = query_poll_get_details.item[2] - pollquestion = query_poll_get_details.item[3] - polltype = query_poll_get_details.item[4] - multiplechoiceoptions = text2num(query_poll_get_details.item[5]) - switch(polltype) - if(POLLTYPE_OPTION) + if(!query_poll_get_details.warn_execute()) + return + var/pollstarttime = "" + var/pollendtime = "" + var/pollquestion = "" + var/polltype = "" + var/multiplechoiceoptions = 0 + if(query_poll_get_details.NextRow()) + pollstarttime = query_poll_get_details.item[1] + pollendtime = query_poll_get_details.item[2] + pollquestion = query_poll_get_details.item[3] + polltype = query_poll_get_details.item[4] + multiplechoiceoptions = text2num(query_poll_get_details.item[5]) + switch(polltype) + if(POLLTYPE_OPTION) var/datum/DBQuery/query_option_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_option_get_votes.warn_execute()) - return - var/votedoptionid = 0 - if(query_option_get_votes.NextRow()) - votedoptionid = text2num(query_option_get_votes.item[1]) - var/list/datum/polloption/options = list() + if(!query_option_get_votes.warn_execute()) + return + var/votedoptionid = 0 + if(query_option_get_votes.NextRow()) + votedoptionid = text2num(query_option_get_votes.item[1]) + var/list/datum/polloption/options = list() var/datum/DBQuery/query_option_options = SSdbcore.NewQuery("SELECT id, text FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") - if(!query_option_options.warn_execute()) - return - while(query_option_options.NextRow()) - var/datum/polloption/PO = new() - PO.optionid = text2num(query_option_options.item[1]) - PO.optiontext = query_option_options.item[2] - options += PO - var/output = "
    Player poll
    " - output += "Question: [pollquestion]
    " - output += "Poll runs from [pollstarttime] until [pollendtime]

    " - if(!votedoptionid) - output += "" - output += "" - output += "" - output += "" - output += "
    " - for(var/datum/polloption/O in options) - if(O.optionid && O.optiontext) - if(votedoptionid) - if(votedoptionid == O.optionid) - output += "[O.optiontext]
    " - else - output += "[O.optiontext]
    " - else - output += "[O.optiontext]
    " - output += "
    " - if(!votedoptionid) - output += "

    " - output += "

    " - output += "
    " - src << browse(null ,"window=playerpolllist") - src << browse(output,"window=playerpoll;size=500x250") - if(POLLTYPE_TEXT) + if(!query_option_options.warn_execute()) + return + while(query_option_options.NextRow()) + var/datum/polloption/PO = new() + PO.optionid = text2num(query_option_options.item[1]) + PO.optiontext = query_option_options.item[2] + options += PO + var/output = "
    Player poll
    " + output += "Question: [pollquestion]
    " + output += "Poll runs from [pollstarttime] until [pollendtime]

    " + if(!votedoptionid) + output += "

    " + output += "" + output += "" + output += "" + output += "
    " + for(var/datum/polloption/O in options) + if(O.optionid && O.optiontext) + if(votedoptionid) + if(votedoptionid == O.optionid) + output += "[O.optiontext]
    " + else + output += "[O.optiontext]
    " + else + output += "[O.optiontext]
    " + output += "
    " + if(!votedoptionid) + output += "

    " + output += "

    " + output += "
    " + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x250") + if(POLLTYPE_TEXT) var/datum/DBQuery/query_text_get_votes = SSdbcore.NewQuery("SELECT replytext FROM [format_table_name("poll_textreply")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_text_get_votes.warn_execute()) - return - var/vote_text = "" - if(query_text_get_votes.NextRow()) - vote_text = query_text_get_votes.item[1] - var/output = "
    Player poll
    " - output += "Question: [pollquestion]
    " - output += "Feedback gathering runs from [pollstarttime] until [pollendtime]

    " - if(!vote_text) - output += "

    " - output += "" - output += "" - output += "" - output += "Please provide feedback below. You can use any letters of the English alphabet, numbers and the symbols: . , ! ? : ; -
    " - output += "" - output += "

    " - output += "
    " - output += "" - output += "" - output += "" - output += "" - output += "
    " - else - vote_text = replacetext(vote_text, "\n", "
    ") - output += "[vote_text]" - src << browse(null ,"window=playerpolllist") - src << browse(output,"window=playerpoll;size=500x500") - if(POLLTYPE_RATING) + if(!query_text_get_votes.warn_execute()) + return + var/vote_text = "" + if(query_text_get_votes.NextRow()) + vote_text = query_text_get_votes.item[1] + var/output = "
    Player poll
    " + output += "Question: [pollquestion]
    " + output += "Feedback gathering runs from [pollstarttime] until [pollendtime]

    " + if(!vote_text) + output += "

    " + output += "" + output += "" + output += "" + output += "Please provide feedback below. You can use any letters of the English alphabet, numbers and the symbols: . , ! ? : ; -
    " + output += "" + output += "

    " + output += "
    " + output += "" + output += "" + output += "" + output += "" + output += "
    " + else + vote_text = replacetext(vote_text, "\n", "
    ") + output += "[vote_text]" + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x500") + if(POLLTYPE_RATING) var/datum/DBQuery/query_rating_get_votes = SSdbcore.NewQuery("SELECT o.text, v.rating FROM [format_table_name("poll_option")] o, [format_table_name("poll_vote")] v WHERE o.pollid = [pollid] AND v.ckey = '[ckey]' AND o.id = v.optionid") - if(!query_rating_get_votes.warn_execute()) - return - var/output = "
    Player poll
    " - output += "Question: [pollquestion]
    " - output += "Poll runs from [pollstarttime] until [pollendtime]

    " - var/rating - while(query_rating_get_votes.NextRow()) - var/optiontext = query_rating_get_votes.item[1] - rating = query_rating_get_votes.item[2] - output += "
    [optiontext] - [rating]" - if(!rating) - output += "

    " - output += "" - output += "" - output += "" - var/minid = 999999 - var/maxid = 0 + if(!query_rating_get_votes.warn_execute()) + return + var/output = "
    Player poll
    " + output += "Question: [pollquestion]
    " + output += "Poll runs from [pollstarttime] until [pollendtime]

    " + var/rating + while(query_rating_get_votes.NextRow()) + var/optiontext = query_rating_get_votes.item[1] + rating = query_rating_get_votes.item[2] + output += "
    [optiontext] - [rating]" + if(!rating) + output += "" + output += "" + output += "" + output += "" + var/minid = 999999 + var/maxid = 0 var/datum/DBQuery/query_rating_options = SSdbcore.NewQuery("SELECT id, text, minval, maxval, descmin, descmid, descmax FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") - if(!query_rating_options.warn_execute()) - return - while(query_rating_options.NextRow()) - var/optionid = text2num(query_rating_options.item[1]) - var/optiontext = query_rating_options.item[2] - var/minvalue = text2num(query_rating_options.item[3]) - var/maxvalue = text2num(query_rating_options.item[4]) - var/descmin = query_rating_options.item[5] - var/descmid = query_rating_options.item[6] - var/descmax = query_rating_options.item[7] - if(optionid < minid) - minid = optionid - if(optionid > maxid) - maxid = optionid - var/midvalue = round( (maxvalue + minvalue) / 2) - output += "
    [optiontext]: " - output += "" - output += "" - output += "

    " - src << browse(null ,"window=playerpolllist") - src << browse(output,"window=playerpoll;size=500x500") - if(POLLTYPE_MULTI) + if(!query_rating_options.warn_execute()) + return + while(query_rating_options.NextRow()) + var/optionid = text2num(query_rating_options.item[1]) + var/optiontext = query_rating_options.item[2] + var/minvalue = text2num(query_rating_options.item[3]) + var/maxvalue = text2num(query_rating_options.item[4]) + var/descmin = query_rating_options.item[5] + var/descmid = query_rating_options.item[6] + var/descmax = query_rating_options.item[7] + if(optionid < minid) + minid = optionid + if(optionid > maxid) + maxid = optionid + var/midvalue = round( (maxvalue + minvalue) / 2) + output += "
    [optiontext]: " + output += "" + output += "" + output += "

    " + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x500") + if(POLLTYPE_MULTI) var/datum/DBQuery/query_multi_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_multi_get_votes.warn_execute()) - return - var/list/votedfor = list() - while(query_multi_get_votes.NextRow()) - votedfor.Add(text2num(query_multi_get_votes.item[1])) - var/list/datum/polloption/options = list() - var/maxoptionid = 0 - var/minoptionid = 0 + if(!query_multi_get_votes.warn_execute()) + return + var/list/votedfor = list() + while(query_multi_get_votes.NextRow()) + votedfor.Add(text2num(query_multi_get_votes.item[1])) + var/list/datum/polloption/options = list() + var/maxoptionid = 0 + var/minoptionid = 0 var/datum/DBQuery/query_multi_options = SSdbcore.NewQuery("SELECT id, text FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") - if(!query_multi_options.warn_execute()) - return - while(query_multi_options.NextRow()) - var/datum/polloption/PO = new() - PO.optionid = text2num(query_multi_options.item[1]) - PO.optiontext = query_multi_options.item[2] - if(PO.optionid > maxoptionid) - maxoptionid = PO.optionid - if(PO.optionid < minoptionid || !minoptionid) - minoptionid = PO.optionid - options += PO - var/output = "

    Player poll
    " - output += "Question: [pollquestion]
    You can select up to [multiplechoiceoptions] options. If you select more, the first [multiplechoiceoptions] will be saved.
    " - output += "Poll runs from [pollstarttime] until [pollendtime]

    " - if(!votedfor.len) - output += "

    " - output += "" - output += "" - output += "" - output += "" - output += "" - output += "
    " - for(var/datum/polloption/O in options) - if(O.optionid && O.optiontext) - if(votedfor.len) - if(O.optionid in votedfor) - output += "[O.optiontext]
    " - else - output += "[O.optiontext]
    " - else - output += "[O.optiontext]
    " - output += "
    " - if(!votedfor.len) - output += "

    " - output += "
    " - src << browse(null ,"window=playerpolllist") - src << browse(output,"window=playerpoll;size=500x250") - if(POLLTYPE_IRV) - var/datum/asset/irv_assets = get_asset_datum(/datum/asset/simple/IRV) - irv_assets.send(src) - + if(!query_multi_options.warn_execute()) + return + while(query_multi_options.NextRow()) + var/datum/polloption/PO = new() + PO.optionid = text2num(query_multi_options.item[1]) + PO.optiontext = query_multi_options.item[2] + if(PO.optionid > maxoptionid) + maxoptionid = PO.optionid + if(PO.optionid < minoptionid || !minoptionid) + minoptionid = PO.optionid + options += PO + var/output = "
    Player poll
    " + output += "Question: [pollquestion]
    You can select up to [multiplechoiceoptions] options. If you select more, the first [multiplechoiceoptions] will be saved.
    " + output += "Poll runs from [pollstarttime] until [pollendtime]

    " + if(!votedfor.len) + output += "

    " + output += "" + output += "" + output += "" + output += "" + output += "" + output += "
    " + for(var/datum/polloption/O in options) + if(O.optionid && O.optiontext) + if(votedfor.len) + if(O.optionid in votedfor) + output += "[O.optiontext]
    " + else + output += "[O.optiontext]
    " + else + output += "[O.optiontext]
    " + output += "
    " + if(!votedfor.len) + output += "

    " + output += "
    " + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x250") + if(POLLTYPE_IRV) + var/datum/asset/irv_assets = get_asset_datum(/datum/asset/simple/IRV) + irv_assets.send(src) + var/datum/DBQuery/query_irv_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_irv_get_votes.warn_execute()) - return - - var/list/votedfor = list() - while(query_irv_get_votes.NextRow()) - votedfor.Add(text2num(query_irv_get_votes.item[1])) - - var/list/datum/polloption/options = list() - + if(!query_irv_get_votes.warn_execute()) + return + + var/list/votedfor = list() + while(query_irv_get_votes.NextRow()) + votedfor.Add(text2num(query_irv_get_votes.item[1])) + + var/list/datum/polloption/options = list() + var/datum/DBQuery/query_irv_options = SSdbcore.NewQuery("SELECT id, text FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") - if(!query_irv_options.warn_execute()) - return - while(query_irv_options.NextRow()) - var/datum/polloption/PO = new() - PO.optionid = text2num(query_irv_options.item[1]) - PO.optiontext = query_irv_options.item[2] - options["[PO.optionid]"] += PO - - //if they already voted, use their sort - if (votedfor.len) - var/list/datum/polloption/newoptions = list() - for (var/V in votedfor) - var/datum/polloption/PO = options["[V]"] - if(PO) - newoptions["[V]"] = PO - options -= "[V]" - //add any options that they didn't vote on (some how, some way) - options = shuffle(options) - for (var/V in options) - newoptions["[V]"] = options["[V]"] - options = newoptions - //otherwise, lets shuffle it. - else - var/list/datum/polloption/newoptions = list() - while (options.len) - var/list/local_options = options.Copy() - var/key - //the jist is we randomly remove all options from a copy of options until only one reminds, - // move that over to our new list - // and repeat until we've moved all of them - while (local_options.len) - key = local_options[rand(1, local_options.len)] - local_options -= key - var/value = options[key] - options -= key - newoptions[key] = value - options = newoptions - - var/output = {" - - - - - - - - - -
    Player poll
    - Question: [pollquestion]
    Please sort the options in the order of most preferred to least preferred
    - Revoting has been enabled on this poll, if you think you made a mistake, simply revote
    - Poll runs from [pollstarttime] until [pollendtime]

    -

    -
    - - - - -
    -
    Most Preferred
    -
      - "} - for(var/O in options) - var/datum/polloption/PO = options["[O]"] - if(PO.optionid && PO.optiontext) - output += "
    1. [PO.optiontext]
    2. \n" - output += {" -
    -
    Least Preferred

    -
    -

    - "} - src << browse(null ,"window=playerpolllist") - src << browse(output,"window=playerpoll;size=500x500") - return - -/mob/dead/new_player/proc/poll_check_voted(pollid, text = FALSE) - var/table = "poll_vote" - if (text) - table = "poll_textreply" + if(!query_irv_options.warn_execute()) + return + while(query_irv_options.NextRow()) + var/datum/polloption/PO = new() + PO.optionid = text2num(query_irv_options.item[1]) + PO.optiontext = query_irv_options.item[2] + options["[PO.optionid]"] += PO + + //if they already voted, use their sort + if (votedfor.len) + var/list/datum/polloption/newoptions = list() + for (var/V in votedfor) + var/datum/polloption/PO = options["[V]"] + if(PO) + newoptions["[V]"] = PO + options -= "[V]" + //add any options that they didn't vote on (some how, some way) + options = shuffle(options) + for (var/V in options) + newoptions["[V]"] = options["[V]"] + options = newoptions + //otherwise, lets shuffle it. + else + var/list/datum/polloption/newoptions = list() + while (options.len) + var/list/local_options = options.Copy() + var/key + //the jist is we randomly remove all options from a copy of options until only one reminds, + // move that over to our new list + // and repeat until we've moved all of them + while (local_options.len) + key = local_options[rand(1, local_options.len)] + local_options -= key + var/value = options[key] + options -= key + newoptions[key] = value + options = newoptions + + var/output = {" + + + + + + + + + +
    Player poll
    + Question: [pollquestion]
    Please sort the options in the order of most preferred to least preferred
    + Revoting has been enabled on this poll, if you think you made a mistake, simply revote
    + Poll runs from [pollstarttime] until [pollendtime]

    +

    +
    + + + + +
    +
    Most Preferred
    +
      + "} + for(var/O in options) + var/datum/polloption/PO = options["[O]"] + if(PO.optionid && PO.optiontext) + output += "
    1. [PO.optiontext]
    2. \n" + output += {" +
    +
    Least Preferred

    +
    +

    + "} + src << browse(null ,"window=playerpolllist") + src << browse(output,"window=playerpoll;size=500x500") + return + +/mob/dead/new_player/proc/poll_check_voted(pollid, text = FALSE) + var/table = "poll_vote" + if (text) + table = "poll_textreply" if (!SSdbcore.Connect()) - to_chat(usr, "Failed to establish database connection.") - return + to_chat(usr, "Failed to establish database connection.") + return var/datum/DBQuery/query_hasvoted = SSdbcore.NewQuery("SELECT id FROM `[format_table_name(table)]` WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_hasvoted.warn_execute()) - return - if(query_hasvoted.NextRow()) - to_chat(usr, "You've already replied to this poll.") - return - . = "Player" - if(client.holder) - . = client.holder.rank.name - return . - - -/mob/dead/new_player/proc/vote_rig_check() - if (usr != src) - if (!usr || !src) - return 0 - //we gots ourselfs a dirty cheater on our hands! - log_game("[key_name(usr)] attempted to rig the vote by voting as [ckey]") - message_admins("[key_name_admin(usr)] attempted to rig the vote by voting as [ckey]") - to_chat(usr, "You don't seem to be [ckey].") - to_chat(src, "Something went horribly wrong processing your vote. Please contact an administrator, they should have gotten a message about this") - return 0 - return 1 - -/mob/dead/new_player/proc/vote_valid_check(pollid, holder, type) + if(!query_hasvoted.warn_execute()) + return + if(query_hasvoted.NextRow()) + to_chat(usr, "You've already replied to this poll.") + return + . = "Player" + if(client.holder) + . = client.holder.rank.name + return . + + +/mob/dead/new_player/proc/vote_rig_check() + if (usr != src) + if (!usr || !src) + return 0 + //we gots ourselfs a dirty cheater on our hands! + log_game("[key_name(usr)] attempted to rig the vote by voting as [ckey]") + message_admins("[key_name_admin(usr)] attempted to rig the vote by voting as [ckey]") + to_chat(usr, "You don't seem to be [ckey].") + to_chat(src, "Something went horribly wrong processing your vote. Please contact an administrator, they should have gotten a message about this") + return 0 + return 1 + +/mob/dead/new_player/proc/vote_valid_check(pollid, holder, type) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - pollid = text2num(pollid) - if (!pollid || pollid < 0) - return 0 - //validate the poll is actually the right type of poll and its still active + to_chat(src, "Failed to establish database connection.") + return 0 + pollid = text2num(pollid) + if (!pollid || pollid < 0) + return 0 + //validate the poll is actually the right type of poll and its still active var/datum/DBQuery/query_validate_poll = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE id = [pollid] AND Now() BETWEEN starttime AND endtime AND polltype = '[type]' [(holder ? "" : "AND adminonly = false")]") - if(!query_validate_poll.warn_execute()) - return 0 - if (!query_validate_poll.NextRow()) - return 0 - return 1 - -/mob/dead/new_player/proc/vote_on_irv_poll(pollid, list/votelist) + if(!query_validate_poll.warn_execute()) + return 0 + if (!query_validate_poll.NextRow()) + return 0 + return 1 + +/mob/dead/new_player/proc/vote_on_irv_poll(pollid, list/votelist) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - if (!vote_rig_check()) - return 0 - pollid = text2num(pollid) - if (!pollid || pollid < 0) - return 0 - if (!votelist || !istype(votelist) || !votelist.len) - return 0 - if (!client) - return 0 - //save these now so we can still process the vote if the client goes away while we process. - var/datum/admins/holder = client.holder - var/rank = "Player" - if (holder) - rank = holder.rank.name - var/ckey = client.ckey - var/address = client.address - - //validate the poll - if (!vote_valid_check(pollid, holder, POLLTYPE_IRV)) - return 0 - - //lets collect the options + to_chat(src, "Failed to establish database connection.") + return 0 + if (!vote_rig_check()) + return 0 + pollid = text2num(pollid) + if (!pollid || pollid < 0) + return 0 + if (!votelist || !istype(votelist) || !votelist.len) + return 0 + if (!client) + return 0 + //save these now so we can still process the vote if the client goes away while we process. + var/datum/admins/holder = client.holder + var/rank = "Player" + if (holder) + rank = holder.rank.name + var/ckey = client.ckey + var/address = client.address + + //validate the poll + if (!vote_valid_check(pollid, holder, POLLTYPE_IRV)) + return 0 + + //lets collect the options var/datum/DBQuery/query_irv_id = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_option")] WHERE pollid = [pollid]") - if(!query_irv_id.warn_execute()) - return 0 - var/list/optionlist = list() - while (query_irv_id.NextRow()) - optionlist += text2num(query_irv_id.item[1]) - - //validate their votes are actually in the list of options and actually numbers - var/list/numberedvotelist = list() - for (var/vote in votelist) - vote = text2num(vote) - numberedvotelist += vote - if (!vote) //this is fine because voteid starts at 1, so it will never be 0 - to_chat(src, "Error: Invalid (non-numeric) votes in the vote data.") - return 0 - if (!(vote in optionlist)) - to_chat(src, "Votes for choices that do not appear to be in the poll detected") - return 0 - if (!numberedvotelist.len) - to_chat(src, "Invalid vote data") - return 0 - - //lets add the vote, first we generate a insert statement. - - var/sqlrowlist = "" - for (var/vote in numberedvotelist) - if (sqlrowlist != "") - sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error - sqlrowlist += "(Now(), [pollid], [vote], '[sanitizeSQL(ckey)]', INET_ATON('[sanitizeSQL(address)]'), '[sanitizeSQL(rank)]')" - - //now lets delete their old votes (if any) + if(!query_irv_id.warn_execute()) + return 0 + var/list/optionlist = list() + while (query_irv_id.NextRow()) + optionlist += text2num(query_irv_id.item[1]) + + //validate their votes are actually in the list of options and actually numbers + var/list/numberedvotelist = list() + for (var/vote in votelist) + vote = text2num(vote) + numberedvotelist += vote + if (!vote) //this is fine because voteid starts at 1, so it will never be 0 + to_chat(src, "Error: Invalid (non-numeric) votes in the vote data.") + return 0 + if (!(vote in optionlist)) + to_chat(src, "Votes for choices that do not appear to be in the poll detected") + return 0 + if (!numberedvotelist.len) + to_chat(src, "Invalid vote data") + return 0 + + //lets add the vote, first we generate a insert statement. + + var/sqlrowlist = "" + for (var/vote in numberedvotelist) + if (sqlrowlist != "") + sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error + sqlrowlist += "(Now(), [pollid], [vote], '[sanitizeSQL(ckey)]', INET_ATON('[sanitizeSQL(address)]'), '[sanitizeSQL(rank)]')" + + //now lets delete their old votes (if any) var/datum/DBQuery/query_irv_del_old = SSdbcore.NewQuery("DELETE FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_irv_del_old.warn_execute()) - return 0 - - //now to add the new ones. + if(!query_irv_del_old.warn_execute()) + return 0 + + //now to add the new ones. var/datum/DBQuery/query_irv_vote = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime, pollid, optionid, ckey, ip, adminrank) VALUES [sqlrowlist]") - if(!query_irv_vote.warn_execute()) - return 0 - src << browse(null,"window=playerpoll") - return 1 - - -/mob/dead/new_player/proc/vote_on_poll(pollid, optionid) + if(!query_irv_vote.warn_execute()) + return 0 + src << browse(null,"window=playerpoll") + return 1 + + +/mob/dead/new_player/proc/vote_on_poll(pollid, optionid) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - if (!vote_rig_check()) - return 0 - if(!pollid || !optionid) - return - //validate the poll - if (!vote_valid_check(pollid, client.holder, POLLTYPE_OPTION)) - return 0 - var/adminrank = sanitizeSQL(poll_check_voted(pollid)) - if(!adminrank) - return + to_chat(src, "Failed to establish database connection.") + return 0 + if (!vote_rig_check()) + return 0 + if(!pollid || !optionid) + return + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_OPTION)) + return 0 + var/adminrank = sanitizeSQL(poll_check_voted(pollid)) + if(!adminrank) + return var/datum/DBQuery/query_option_vote = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime, pollid, optionid, ckey, ip, adminrank) VALUES (Now(), [pollid], [optionid], '[ckey]', INET_ATON('[client.address]'), '[adminrank]')") - if(!query_option_vote.warn_execute()) - return - usr << browse(null,"window=playerpoll") - return 1 - -/mob/dead/new_player/proc/log_text_poll_reply(pollid, replytext) + if(!query_option_vote.warn_execute()) + return + usr << browse(null,"window=playerpoll") + return 1 + +/mob/dead/new_player/proc/log_text_poll_reply(pollid, replytext) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - if (!vote_rig_check()) - return 0 - if(!pollid) - return - //validate the poll - if (!vote_valid_check(pollid, client.holder, POLLTYPE_TEXT)) - return 0 - if(!replytext) - to_chat(usr, "The text you entered was blank. Please correct the text and submit again.") - return - var/adminrank = sanitizeSQL(poll_check_voted(pollid, TRUE)) - if(!adminrank) - return - replytext = sanitizeSQL(replytext) - if(!(length(replytext) > 0) || !(length(replytext) <= 8000)) - to_chat(usr, "The text you entered was invalid or too long. Please correct the text and submit again.") - return + to_chat(src, "Failed to establish database connection.") + return 0 + if (!vote_rig_check()) + return 0 + if(!pollid) + return + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_TEXT)) + return 0 + if(!replytext) + to_chat(usr, "The text you entered was blank. Please correct the text and submit again.") + return + var/adminrank = sanitizeSQL(poll_check_voted(pollid, TRUE)) + if(!adminrank) + return + replytext = sanitizeSQL(replytext) + if(!(length(replytext) > 0) || !(length(replytext) <= 8000)) + to_chat(usr, "The text you entered was invalid or too long. Please correct the text and submit again.") + return var/datum/DBQuery/query_text_vote = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_textreply")] (datetime ,pollid ,ckey ,ip ,replytext ,adminrank) VALUES (Now(), [pollid], '[ckey]', INET_ATON('[client.address]'), '[replytext]', '[adminrank]')") - if(!query_text_vote.warn_execute()) - return - usr << browse(null,"window=playerpoll") - return 1 - -/mob/dead/new_player/proc/vote_on_numval_poll(pollid, optionid, rating) + if(!query_text_vote.warn_execute()) + return + usr << browse(null,"window=playerpoll") + return 1 + +/mob/dead/new_player/proc/vote_on_numval_poll(pollid, optionid, rating) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - if (!vote_rig_check()) - return 0 - if(!pollid || !optionid || !rating) - return - //validate the poll - if (!vote_valid_check(pollid, client.holder, POLLTYPE_RATING)) - return 0 + to_chat(src, "Failed to establish database connection.") + return 0 + if (!vote_rig_check()) + return 0 + if(!pollid || !optionid || !rating) + return + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_RATING)) + return 0 var/datum/DBQuery/query_numval_hasvoted = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_vote")] WHERE optionid = [optionid] AND ckey = '[ckey]'") - if(!query_numval_hasvoted.warn_execute()) - return - if(query_numval_hasvoted.NextRow()) - to_chat(usr, "You've already replied to this poll.") - return - var/adminrank = "Player" - if(client.holder) - adminrank = client.holder.rank.name - adminrank = sanitizeSQL(adminrank) + if(!query_numval_hasvoted.warn_execute()) + return + if(query_numval_hasvoted.NextRow()) + to_chat(usr, "You've already replied to this poll.") + return + var/adminrank = "Player" + if(client.holder) + adminrank = client.holder.rank.name + adminrank = sanitizeSQL(adminrank) var/datum/DBQuery/query_numval_vote = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime ,pollid ,optionid ,ckey ,ip ,adminrank, rating) VALUES (Now(), [pollid], [optionid], '[ckey]', INET_ATON('[client.address]'), '[adminrank]', [(isnull(rating)) ? "null" : rating])") - if(!query_numval_vote.warn_execute()) - return - usr << browse(null,"window=playerpoll") - return 1 - -/mob/dead/new_player/proc/vote_on_multi_poll(pollid, optionid) + if(!query_numval_vote.warn_execute()) + return + usr << browse(null,"window=playerpoll") + return 1 + +/mob/dead/new_player/proc/vote_on_multi_poll(pollid, optionid) if (!SSdbcore.Connect()) - to_chat(src, "Failed to establish database connection.") - return 0 - if (!vote_rig_check()) - return 0 - if(!pollid || !optionid) - return 1 - //validate the poll - if (!vote_valid_check(pollid, client.holder, POLLTYPE_MULTI)) - return 0 + to_chat(src, "Failed to establish database connection.") + return 0 + if (!vote_rig_check()) + return 0 + if(!pollid || !optionid) + return 1 + //validate the poll + if (!vote_valid_check(pollid, client.holder, POLLTYPE_MULTI)) + return 0 var/datum/DBQuery/query_multi_choicelen = SSdbcore.NewQuery("SELECT multiplechoiceoptions FROM [format_table_name("poll_question")] WHERE id = [pollid]") - if(!query_multi_choicelen.warn_execute()) - return 1 - var/i - if(query_multi_choicelen.NextRow()) - i = text2num(query_multi_choicelen.item[1]) + if(!query_multi_choicelen.warn_execute()) + return 1 + var/i + if(query_multi_choicelen.NextRow()) + i = text2num(query_multi_choicelen.item[1]) var/datum/DBQuery/query_multi_hasvoted = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") - if(!query_multi_hasvoted.warn_execute()) - return 1 - while(i) - if(query_multi_hasvoted.NextRow()) - i-- - else - break - if(!i) - return 2 - var/adminrank = "Player" - if(client.holder) - adminrank = client.holder.rank.name - adminrank = sanitizeSQL(adminrank) + if(!query_multi_hasvoted.warn_execute()) + return 1 + while(i) + if(query_multi_hasvoted.NextRow()) + i-- + else + break + if(!i) + return 2 + var/adminrank = "Player" + if(client.holder) + adminrank = client.holder.rank.name + adminrank = sanitizeSQL(adminrank) var/datum/DBQuery/query_multi_vote = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_vote")] (datetime, pollid, optionid, ckey, ip, adminrank) VALUES (Now(), [pollid], [optionid], '[ckey]', INET_ATON('[client.address]'), '[adminrank]')") - if(!query_multi_vote.warn_execute()) - return 1 - usr << browse(null,"window=playerpoll") - return 0 + if(!query_multi_vote.warn_execute()) + return 1 + usr << browse(null,"window=playerpoll") + return 0 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 1ac7b27c9e..b569685196 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -117,7 +117,6 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) animate(src, pixel_y = 2, time = 10, loop = -1) - GLOB.dead_mob_list += src for(var/v in GLOB.active_alternate_appearances) @@ -304,6 +303,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ..() if(statpanel("Status")) if(SSticker.HasRoundStarted()) + for(var/datum/gang/G in SSticker.mode.gangs) + if(G.is_dominating) + stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") if(istype(SSticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/B = SSticker.mode if(B.message_sent) @@ -777,7 +779,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp register_pai() /mob/dead/observer/proc/register_pai() - if(istype(src, /mob/dead/observer)) + if(isobserver(src)) if(SSpai) SSpai.recruitWindow(src) else diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 8675049cee..4e0e22f546 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -20,6 +20,6 @@ to_follow = V.source var/link = FOLLOW_LINK(src, to_follow) // Recompose the message, because it's scrambled by default - message = compose_message(speaker, message_language, raw_message, radio_freq, spans) + message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) to_chat(src, "[link] [message]") diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index f7fe1cef70..bdc968e2d3 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -1,452 +1,452 @@ -//These procs handle putting s tuff in your hands -//as they handle all relevant stuff like adding it to the player's screen and updating their overlays. - -//Returns the thing we're currently holding -/mob/proc/get_active_held_item() - return get_item_for_held_index(active_hand_index) - - -//Finds the opposite limb for the active one (eg: upper left arm will find the item in upper right arm) -//So we're treating each "pair" of limbs as a team, so "both" refers to them -/mob/proc/get_inactive_held_item() - return get_item_for_held_index(get_inactive_hand_index()) - - -//Finds the opposite index for the active one (eg: upper left arm will find the item in upper right arm) -//So we're treating each "pair" of limbs as a team, so "both" refers to them -/mob/proc/get_inactive_hand_index() - var/other_hand = 0 - if(!(active_hand_index % 2)) - other_hand = active_hand_index-1 //finding the matching "left" limb - else - other_hand = active_hand_index+1 //finding the matching "right" limb - if(other_hand < 0 || other_hand > held_items.len) - other_hand = 0 - return other_hand - - -/mob/proc/get_item_for_held_index(i) - if(i > 0 && i <= held_items.len) - return held_items[i] - return FALSE - - -//Odd = left. Even = right -/mob/proc/held_index_to_dir(i) - if(!(i % 2)) - return "r" - return "l" - - -//Check we have an organ for this hand slot (Dismemberment), Only relevant for humans -/mob/proc/has_hand_for_held_index(i) - return TRUE - - -//Check we have an organ for our active hand slot (Dismemberment),Only relevant for humans -/mob/proc/has_active_hand() - return has_hand_for_held_index(active_hand_index) - - -//Finds the first available (null) index OR all available (null) indexes in held_items based on a side. -//Lefts: 1, 3, 5, 7... -//Rights:2, 4, 6, 8... -/mob/proc/get_empty_held_index_for_side(side = "left", all = FALSE) - var/start = 0 - var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) - var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" - if(lefts[side]) - start = 1 - else if(rights[side]) - start = 2 - if(!start) - return FALSE - var/list/empty_indexes - for(var/i in start to held_items.len step 2) - if(!held_items[i]) - if(!all) - return i - if(!empty_indexes) - empty_indexes = list() - empty_indexes += i - return empty_indexes - - -//Same as the above, but returns the first or ALL held *ITEMS* for the side -/mob/proc/get_held_items_for_side(side = "left", all = FALSE) - var/start = 0 - var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) - var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" - if(lefts[side]) - start = 1 - else if(rights[side]) - start = 2 - if(!start) - return FALSE - var/list/holding_items - for(var/i in start to held_items.len step 2) - var/obj/item/I = held_items[i] - if(I) - if(!all) - return I - if(!holding_items) - holding_items = list() - holding_items += I - return holding_items - - -/mob/proc/get_empty_held_indexes() - var/list/L - for(var/i in 1 to held_items.len) - if(!held_items[i]) - if(!L) - L = list() - L += i - return L - -/mob/proc/get_held_index_of_item(obj/item/I) - return held_items.Find(I) - - -//Sad that this will cause some overhead, but the alias seems necessary -//*I* may be happy with a million and one references to "indexes" but others won't be -/mob/proc/is_holding(obj/item/I) - return get_held_index_of_item(I) - - -//Checks if we're holding an item of type: typepath -/mob/proc/is_holding_item_of_type(typepath) - for(var/obj/item/I in held_items) - if(istype(I, typepath)) - return I - return FALSE - - -//To appropriately fluff things like "they are holding [I] in their [get_held_index_name(get_held_index_of_item(I))]" -//Can be overriden to pass off the fluff to something else (eg: science allowing people to add extra robotic limbs, and having this proc react to that -// with say "they are holding [I] in their Nanotrasen Brand Utility Arm - Right Edition" or w/e -/mob/proc/get_held_index_name(i) - var/list/hand = list() - if(i > 2) - hand += "upper " - var/num = 0 - if(!(i % 2)) - num = i-2 - hand += "right hand" - else - num = i-1 - hand += "left hand" - num -= (num*0.5) - if(num > 1) //"upper left hand #1" seems weird, but "upper left hand #2" is A-ok - hand += " #[num]" - return hand.Join() - - - -//Returns if a certain item can be equipped to a certain slot. -// Currently invalid for two-handed items - call obj/item/mob_can_equip() instead. -/mob/proc/can_equip(obj/item/I, slot, disable_warning = 0) - return FALSE - -/mob/proc/can_put_in_hand(I, hand_index) - if(!put_in_hand_check(I)) - return FALSE - if(!has_hand_for_held_index(hand_index)) - return FALSE - return !held_items[hand_index] - -/mob/proc/put_in_hand(obj/item/I, hand_index) - if(can_put_in_hand(I, hand_index)) - I.forceMove(src) - held_items[hand_index] = I - I.layer = ABOVE_HUD_LAYER - I.plane = ABOVE_HUD_PLANE - I.equipped(src, slot_hands) - if(I.pulledby) - I.pulledby.stop_pulling() - update_inv_hands() - I.pixel_x = initial(I.pixel_x) - I.pixel_y = initial(I.pixel_y) - return hand_index || TRUE - return FALSE - - -//Puts the item into the first available left hand if possible and calls all necessary triggers/updates. returns 1 on success. -/mob/proc/put_in_l_hand(obj/item/I) - return put_in_hand(I, get_empty_held_index_for_side("l")) - - -//Puts the item into the first available right hand if possible and calls all necessary triggers/updates. returns 1 on success. -/mob/proc/put_in_r_hand(obj/item/I) - return put_in_hand(I, get_empty_held_index_for_side("r")) - - -/mob/proc/put_in_hand_check(obj/item/I) - if(lying && !(I.flags&ABSTRACT)) - return FALSE - if(!istype(I)) - return FALSE - return TRUE - - -//Puts the item into our active hand if possible. returns TRUE on success. -/mob/proc/put_in_active_hand(obj/item/I) - return put_in_hand(I, active_hand_index) - - -//Puts the item into our inactive hand if possible, returns TRUE on success -/mob/proc/put_in_inactive_hand(obj/item/I) - return put_in_hand(I, get_inactive_hand_index()) - - -//Puts the item our active hand if possible. Failing that it tries other hands. Returns TRUE on success. -//If both fail it drops it on the floor and returns FALSE. -//This is probably the main one you need to know :) -/mob/proc/put_in_hands(obj/item/I, del_on_fail = FALSE) - if(!I) - return FALSE - if(put_in_active_hand(I)) - return TRUE - var/hand = get_empty_held_index_for_side("l") - if(!hand) - hand = get_empty_held_index_for_side("r") - if(hand) - if(put_in_hand(I, hand)) - return TRUE - if(del_on_fail) - qdel(I) - return FALSE - I.forceMove(get_turf(src)) - I.layer = initial(I.layer) - I.plane = initial(I.plane) - I.dropped(src) - return FALSE - - -/mob/proc/put_in_hands_or_del(obj/item/I) - return put_in_hands(I, TRUE) - - -/mob/proc/drop_item_v() //this is dumb. - if(stat == CONSCIOUS && isturf(loc)) - return drop_item() - return FALSE - - -/mob/proc/drop_all_held_items() - if(!loc || !loc.allow_drop()) - return - for(var/obj/item/I in held_items) - dropItemToGround(I) - -//Drops the item in our active hand. -/mob/proc/drop_item() - if(!loc || !loc.allow_drop()) - return - var/obj/item/held = get_active_held_item() - return dropItemToGround(held) - - -//Here lie drop_from_inventory and before_item_take, already forgotten and not missed. - -/mob/proc/canUnEquip(obj/item/I, force) - if(!I) - return TRUE - if((I.flags & NODROP) && !force) - return FALSE - return TRUE - -/mob/proc/putItemFromInventoryInHandIfPossible(obj/item/I, hand_index, force_removal = FALSE) - if(!can_put_in_hand(I, hand_index)) - return FALSE - if(!temporarilyRemoveItemFromInventory(I, force_removal)) - return FALSE - I.remove_item_from_storage(src) - if(!put_in_hand(I, hand_index)) - qdel(I) - CRASH("Assertion failure: putItemFromInventoryInHandIfPossible") //should never be possible - return TRUE - -//The following functions are the same save for one small difference - -//for when you want the item to end up on the ground -//will force move the item to the ground and call the turf's Entered -/mob/proc/dropItemToGround(obj/item/I, force = FALSE) - return doUnEquip(I, force, loc, FALSE) - -//for when the item will be immediately placed in a loc other than the ground -/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE) - return doUnEquip(I, force, newloc, FALSE) - -//visibly unequips I but it is NOT MOVED AND REMAINS IN SRC -//item MUST BE FORCEMOVE'D OR QDEL'D -/mob/proc/temporarilyRemoveItemFromInventory(obj/item/I, force = FALSE, idrop = TRUE) - return doUnEquip(I, force, null, TRUE, idrop) - -//DO NOT CALL THIS PROC -//use one of the above 2 helper procs -//you may override it, but do not modify the args -/mob/proc/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) //Force overrides NODROP for things like wizarditis and admin undress. - //Use no_move if the item is just gonna be immediately moved afterward - //Invdrop is used to prevent stuff in pockets dropping. only set to false if it's going to immediately be replaced - if(!I) //If there's nothing to drop, the drop is automatically succesfull. If(unEquip) should generally be used to check for NODROP. - return TRUE - - if((I.flags & NODROP) && !force) - return FALSE - - var/hand_index = get_held_index_of_item(I) - if(hand_index) - held_items[hand_index] = null - update_inv_hands() - if(I) - if(client) - client.screen -= I - I.layer = initial(I.layer) - I.plane = initial(I.plane) - I.appearance_flags &= ~NO_CLIENT_COLOR - if(!no_move && !(I.flags & DROPDEL)) //item may be moved/qdel'd immedietely, don't bother moving it - I.forceMove(newloc) - I.dropped(src) - return TRUE - -//Outdated but still in use apparently. This should at least be a human proc. -//Daily reminder to murder this - Remie. -/mob/living/proc/get_equipped_items() - return - -/mob/living/carbon/get_equipped_items() - var/list/items = list() - if(back) - items += back - if(head) - items += head - if(wear_mask) - items += wear_mask - if(wear_neck) - items += wear_neck - return items - -/mob/living/carbon/human/get_equipped_items() - var/list/items = ..() - if(belt) - items += belt - if(ears) - items += ears - if(glasses) - items += glasses - if(gloves) - items += gloves - if(shoes) - items += shoes - if(wear_id) - items += wear_id - if(wear_suit) - items += wear_suit - if(w_uniform) - items += w_uniform - return items - -/mob/living/proc/unequip_everything() - var/list/items = list() - items |= get_equipped_items() - for(var/I in items) - dropItemToGround(I) - drop_all_held_items() - -/obj/item/proc/equip_to_best_slot(var/mob/M) - if(src != M.get_active_held_item()) - to_chat(M, "You are not holding anything to equip!") - return FALSE - - if(M.equip_to_appropriate_slot(src)) - M.update_inv_hands() - return TRUE +//These procs handle putting s tuff in your hands +//as they handle all relevant stuff like adding it to the player's screen and updating their overlays. + +//Returns the thing we're currently holding +/mob/proc/get_active_held_item() + return get_item_for_held_index(active_hand_index) + + +//Finds the opposite limb for the active one (eg: upper left arm will find the item in upper right arm) +//So we're treating each "pair" of limbs as a team, so "both" refers to them +/mob/proc/get_inactive_held_item() + return get_item_for_held_index(get_inactive_hand_index()) + + +//Finds the opposite index for the active one (eg: upper left arm will find the item in upper right arm) +//So we're treating each "pair" of limbs as a team, so "both" refers to them +/mob/proc/get_inactive_hand_index() + var/other_hand = 0 + if(!(active_hand_index % 2)) + other_hand = active_hand_index-1 //finding the matching "left" limb + else + other_hand = active_hand_index+1 //finding the matching "right" limb + if(other_hand < 0 || other_hand > held_items.len) + other_hand = 0 + return other_hand + + +/mob/proc/get_item_for_held_index(i) + if(i > 0 && i <= held_items.len) + return held_items[i] + return FALSE + + +//Odd = left. Even = right +/mob/proc/held_index_to_dir(i) + if(!(i % 2)) + return "r" + return "l" + + +//Check we have an organ for this hand slot (Dismemberment), Only relevant for humans +/mob/proc/has_hand_for_held_index(i) + return TRUE + + +//Check we have an organ for our active hand slot (Dismemberment),Only relevant for humans +/mob/proc/has_active_hand() + return has_hand_for_held_index(active_hand_index) + + +//Finds the first available (null) index OR all available (null) indexes in held_items based on a side. +//Lefts: 1, 3, 5, 7... +//Rights:2, 4, 6, 8... +/mob/proc/get_empty_held_index_for_side(side = "left", all = FALSE) + var/start = 0 + var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) + var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" + if(lefts[side]) + start = 1 + else if(rights[side]) + start = 2 + if(!start) + return FALSE + var/list/empty_indexes + for(var/i in start to held_items.len step 2) + if(!held_items[i]) + if(!all) + return i + if(!empty_indexes) + empty_indexes = list() + empty_indexes += i + return empty_indexes + + +//Same as the above, but returns the first or ALL held *ITEMS* for the side +/mob/proc/get_held_items_for_side(side = "left", all = FALSE) + var/start = 0 + var/static/list/lefts = list("l" = TRUE,"L" = TRUE,"LEFT" = TRUE,"left" = TRUE) + var/static/list/rights = list("r" = TRUE,"R" = TRUE,"RIGHT" = TRUE,"right" = TRUE) //"to remain silent" + if(lefts[side]) + start = 1 + else if(rights[side]) + start = 2 + if(!start) + return FALSE + var/list/holding_items + for(var/i in start to held_items.len step 2) + var/obj/item/I = held_items[i] + if(I) + if(!all) + return I + if(!holding_items) + holding_items = list() + holding_items += I + return holding_items + + +/mob/proc/get_empty_held_indexes() + var/list/L + for(var/i in 1 to held_items.len) + if(!held_items[i]) + if(!L) + L = list() + L += i + return L + +/mob/proc/get_held_index_of_item(obj/item/I) + return held_items.Find(I) + + +//Sad that this will cause some overhead, but the alias seems necessary +//*I* may be happy with a million and one references to "indexes" but others won't be +/mob/proc/is_holding(obj/item/I) + return get_held_index_of_item(I) + + +//Checks if we're holding an item of type: typepath +/mob/proc/is_holding_item_of_type(typepath) + for(var/obj/item/I in held_items) + if(istype(I, typepath)) + return I + return FALSE + + +//To appropriately fluff things like "they are holding [I] in their [get_held_index_name(get_held_index_of_item(I))]" +//Can be overriden to pass off the fluff to something else (eg: science allowing people to add extra robotic limbs, and having this proc react to that +// with say "they are holding [I] in their Nanotrasen Brand Utility Arm - Right Edition" or w/e +/mob/proc/get_held_index_name(i) + var/list/hand = list() + if(i > 2) + hand += "upper " + var/num = 0 + if(!(i % 2)) + num = i-2 + hand += "right hand" + else + num = i-1 + hand += "left hand" + num -= (num*0.5) + if(num > 1) //"upper left hand #1" seems weird, but "upper left hand #2" is A-ok + hand += " #[num]" + return hand.Join() + + + +//Returns if a certain item can be equipped to a certain slot. +// Currently invalid for two-handed items - call obj/item/mob_can_equip() instead. +/mob/proc/can_equip(obj/item/I, slot, disable_warning = 0) + return FALSE + +/mob/proc/can_put_in_hand(I, hand_index) + if(!put_in_hand_check(I)) + return FALSE + if(!has_hand_for_held_index(hand_index)) + return FALSE + return !held_items[hand_index] + +/mob/proc/put_in_hand(obj/item/I, hand_index) + if(can_put_in_hand(I, hand_index)) + I.forceMove(src) + held_items[hand_index] = I + I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE + I.equipped(src, slot_hands) + if(I.pulledby) + I.pulledby.stop_pulling() + update_inv_hands() + I.pixel_x = initial(I.pixel_x) + I.pixel_y = initial(I.pixel_y) + return hand_index || TRUE + return FALSE + + +//Puts the item into the first available left hand if possible and calls all necessary triggers/updates. returns 1 on success. +/mob/proc/put_in_l_hand(obj/item/I) + return put_in_hand(I, get_empty_held_index_for_side("l")) + + +//Puts the item into the first available right hand if possible and calls all necessary triggers/updates. returns 1 on success. +/mob/proc/put_in_r_hand(obj/item/I) + return put_in_hand(I, get_empty_held_index_for_side("r")) + + +/mob/proc/put_in_hand_check(obj/item/I) + if(lying && !(I.flags&ABSTRACT)) + return FALSE + if(!istype(I)) + return FALSE + return TRUE + + +//Puts the item into our active hand if possible. returns TRUE on success. +/mob/proc/put_in_active_hand(obj/item/I) + return put_in_hand(I, active_hand_index) + + +//Puts the item into our inactive hand if possible, returns TRUE on success +/mob/proc/put_in_inactive_hand(obj/item/I) + return put_in_hand(I, get_inactive_hand_index()) + + +//Puts the item our active hand if possible. Failing that it tries other hands. Returns TRUE on success. +//If both fail it drops it on the floor and returns FALSE. +//This is probably the main one you need to know :) +/mob/proc/put_in_hands(obj/item/I, del_on_fail = FALSE) + if(!I) + return FALSE + if(put_in_active_hand(I)) + return TRUE + var/hand = get_empty_held_index_for_side("l") + if(!hand) + hand = get_empty_held_index_for_side("r") + if(hand) + if(put_in_hand(I, hand)) + return TRUE + if(del_on_fail) + qdel(I) + return FALSE + I.forceMove(get_turf(src)) + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.dropped(src) + return FALSE + + +/mob/proc/put_in_hands_or_del(obj/item/I) + return put_in_hands(I, TRUE) + + +/mob/proc/drop_item_v() //this is dumb. + if(stat == CONSCIOUS && isturf(loc)) + return drop_item() + return FALSE + + +/mob/proc/drop_all_held_items() + if(!loc || !loc.allow_drop()) + return + for(var/obj/item/I in held_items) + dropItemToGround(I) + +//Drops the item in our active hand. +/mob/proc/drop_item() + if(!loc || !loc.allow_drop()) + return + var/obj/item/held = get_active_held_item() + return dropItemToGround(held) + + +//Here lie drop_from_inventory and before_item_take, already forgotten and not missed. + +/mob/proc/canUnEquip(obj/item/I, force) + if(!I) + return TRUE + if((I.flags & NODROP) && !force) + return FALSE + return TRUE + +/mob/proc/putItemFromInventoryInHandIfPossible(obj/item/I, hand_index, force_removal = FALSE) + if(!can_put_in_hand(I, hand_index)) + return FALSE + if(!temporarilyRemoveItemFromInventory(I, force_removal)) + return FALSE + I.remove_item_from_storage(src) + if(!put_in_hand(I, hand_index)) + qdel(I) + CRASH("Assertion failure: putItemFromInventoryInHandIfPossible") //should never be possible + return TRUE + +//The following functions are the same save for one small difference + +//for when you want the item to end up on the ground +//will force move the item to the ground and call the turf's Entered +/mob/proc/dropItemToGround(obj/item/I, force = FALSE) + return doUnEquip(I, force, loc, FALSE) + +//for when the item will be immediately placed in a loc other than the ground +/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE) + return doUnEquip(I, force, newloc, FALSE) + +//visibly unequips I but it is NOT MOVED AND REMAINS IN SRC +//item MUST BE FORCEMOVE'D OR QDEL'D +/mob/proc/temporarilyRemoveItemFromInventory(obj/item/I, force = FALSE, idrop = TRUE) + return doUnEquip(I, force, null, TRUE, idrop) + +//DO NOT CALL THIS PROC +//use one of the above 2 helper procs +//you may override it, but do not modify the args +/mob/proc/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) //Force overrides NODROP for things like wizarditis and admin undress. + //Use no_move if the item is just gonna be immediately moved afterward + //Invdrop is used to prevent stuff in pockets dropping. only set to false if it's going to immediately be replaced + if(!I) //If there's nothing to drop, the drop is automatically succesfull. If(unEquip) should generally be used to check for NODROP. + return TRUE + + if((I.flags & NODROP) && !force) + return FALSE + + var/hand_index = get_held_index_of_item(I) + if(hand_index) + held_items[hand_index] = null + update_inv_hands() + if(I) + if(client) + client.screen -= I + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.appearance_flags &= ~NO_CLIENT_COLOR + if(!no_move && !(I.flags & DROPDEL)) //item may be moved/qdel'd immedietely, don't bother moving it + I.forceMove(newloc) + I.dropped(src) + return TRUE + +//Outdated but still in use apparently. This should at least be a human proc. +//Daily reminder to murder this - Remie. +/mob/living/proc/get_equipped_items() + return + +/mob/living/carbon/get_equipped_items() + var/list/items = list() + if(back) + items += back + if(head) + items += head + if(wear_mask) + items += wear_mask + if(wear_neck) + items += wear_neck + return items + +/mob/living/carbon/human/get_equipped_items() + var/list/items = ..() + if(belt) + items += belt + if(ears) + items += ears + if(glasses) + items += glasses + if(gloves) + items += gloves + if(shoes) + items += shoes + if(wear_id) + items += wear_id + if(wear_suit) + items += wear_suit + if(w_uniform) + items += w_uniform + return items + +/mob/living/proc/unequip_everything() + var/list/items = list() + items |= get_equipped_items() + for(var/I in items) + dropItemToGround(I) + drop_all_held_items() + +/obj/item/proc/equip_to_best_slot(var/mob/M) + if(src != M.get_active_held_item()) + to_chat(M, "You are not holding anything to equip!") + return FALSE + + if(M.equip_to_appropriate_slot(src)) + M.update_inv_hands() + return TRUE else if(equip_delay_self) return - - if(M.s_active && M.s_active.can_be_inserted(src,1)) //if storage active insert there - M.s_active.handle_item_insertion(src) - return TRUE - - var/obj/item/weapon/storage/S = M.get_inactive_held_item() - if(istype(S) && S.can_be_inserted(src,1)) //see if we have box in other hand - S.handle_item_insertion(src) - return TRUE - - S = M.get_item_by_slot(slot_belt) - if(istype(S) && S.can_be_inserted(src,1)) //else we put in belt - S.handle_item_insertion(src) - return TRUE - - S = M.get_item_by_slot(slot_generic_dextrous_storage) //else we put in whatever is in drone storage - if(istype(S) && S.can_be_inserted(src,1)) - S.handle_item_insertion(src) - - S = M.get_item_by_slot(slot_back) //else we put in backpack - if(istype(S) && S.can_be_inserted(src,1)) - S.handle_item_insertion(src) - return TRUE - - to_chat(M, "You are unable to equip that!") - return FALSE - - -/mob/verb/quick_equip() - set name = "quick-equip" - set hidden = 1 - - var/obj/item/I = get_active_held_item() - if (I) - I.equip_to_best_slot(src) - -//used in code for items usable by both carbon and drones, this gives the proper back slot for each mob.(defibrillator, backpack watertank, ...) -/mob/proc/getBackSlot() - return slot_back - -/mob/proc/getBeltSlot() - return slot_belt - - - -//Inventory.dm is -kind of- an ok place for this I guess - -//This is NOT for dismemberment, as the user still technically has 2 "hands" -//This is for multi-handed mobs, such as a human with a third limb installed -//This is a very rare proc to call (besides admin fuckery) so -//any cost it has isn't a worry -/mob/proc/change_number_of_hands(amt) - if(amt < held_items.len) - for(var/i in held_items.len to amt step -1) - dropItemToGround(held_items[i]) - held_items.len = amt - - if(hud_used) - var/style - if(client && client.prefs) - style = ui_style2icon(client.prefs.UI_style) - hud_used.build_hand_slots(style) - - -/mob/living/carbon/human/change_number_of_hands(amt) - var/old_limbs = held_items.len - if(amt < old_limbs) - for(var/i in hand_bodyparts.len to amt step -1) - var/obj/item/bodypart/BP = hand_bodyparts[i] - BP.dismember() - hand_bodyparts[i] = null - hand_bodyparts.len = amt - else if(amt > old_limbs) - hand_bodyparts.len = amt - for(var/i in old_limbs+1 to amt) - var/path = /obj/item/bodypart/l_arm - if(!(i % 2)) - path = /obj/item/bodypart/r_arm - - var/obj/item/bodypart/BP = new path () - BP.owner = src - BP.held_index = i - bodyparts += BP - hand_bodyparts[i] = BP - ..() //Don't redraw hands until we have organs for them + + if(M.s_active && M.s_active.can_be_inserted(src,1)) //if storage active insert there + M.s_active.handle_item_insertion(src) + return TRUE + + var/obj/item/weapon/storage/S = M.get_inactive_held_item() + if(istype(S) && S.can_be_inserted(src,1)) //see if we have box in other hand + S.handle_item_insertion(src) + return TRUE + + S = M.get_item_by_slot(slot_belt) + if(istype(S) && S.can_be_inserted(src,1)) //else we put in belt + S.handle_item_insertion(src) + return TRUE + + S = M.get_item_by_slot(slot_generic_dextrous_storage) //else we put in whatever is in drone storage + if(istype(S) && S.can_be_inserted(src,1)) + S.handle_item_insertion(src) + + S = M.get_item_by_slot(slot_back) //else we put in backpack + if(istype(S) && S.can_be_inserted(src,1)) + S.handle_item_insertion(src) + return TRUE + + to_chat(M, "You are unable to equip that!") + return FALSE + + +/mob/verb/quick_equip() + set name = "quick-equip" + set hidden = 1 + + var/obj/item/I = get_active_held_item() + if (I) + I.equip_to_best_slot(src) + +//used in code for items usable by both carbon and drones, this gives the proper back slot for each mob.(defibrillator, backpack watertank, ...) +/mob/proc/getBackSlot() + return slot_back + +/mob/proc/getBeltSlot() + return slot_belt + + + +//Inventory.dm is -kind of- an ok place for this I guess + +//This is NOT for dismemberment, as the user still technically has 2 "hands" +//This is for multi-handed mobs, such as a human with a third limb installed +//This is a very rare proc to call (besides admin fuckery) so +//any cost it has isn't a worry +/mob/proc/change_number_of_hands(amt) + if(amt < held_items.len) + for(var/i in held_items.len to amt step -1) + dropItemToGround(held_items[i]) + held_items.len = amt + + if(hud_used) + var/style + if(client && client.prefs) + style = ui_style2icon(client.prefs.UI_style) + hud_used.build_hand_slots(style) + + +/mob/living/carbon/human/change_number_of_hands(amt) + var/old_limbs = held_items.len + if(amt < old_limbs) + for(var/i in hand_bodyparts.len to amt step -1) + var/obj/item/bodypart/BP = hand_bodyparts[i] + BP.dismember() + hand_bodyparts[i] = null + hand_bodyparts.len = amt + else if(amt > old_limbs) + hand_bodyparts.len = amt + for(var/i in old_limbs+1 to amt) + var/path = /obj/item/bodypart/l_arm + if(!(i % 2)) + path = /obj/item/bodypart/r_arm + + var/obj/item/bodypart/BP = new path () + BP.owner = src + BP.held_index = i + bodyparts += BP + hand_bodyparts[i] = BP + ..() //Don't redraw hands until we have organs for them diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 908d787a7b..69eacbb69e 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -50,22 +50,21 @@ blood_volume = min(BLOOD_VOLUME_NORMAL, blood_volume + 0.5 * nutrition_ratio) //Effects of bloodloss + var/word = pick("dizzy","woozy","faint") switch(blood_volume) if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) if(prob(5)) - to_chat(src, "You feel [pick("dizzy","woozy","faint")].") + to_chat(src, "You feel [word].") adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1)) if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) if(prob(5)) blur_eyes(6) - var/word = pick("dizzy","woozy","faint") to_chat(src, "You feel very [word].") if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) adjustOxyLoss(5) if(prob(15)) - Paralyse(rand(1,3)) - var/word = pick("dizzy","woozy","faint") + Unconscious(rand(20,60)) to_chat(src, "You feel extremely [word].") if(0 to BLOOD_VOLUME_SURVIVE) death() @@ -85,7 +84,7 @@ bleed_rate = max(bleed_rate - 0.5, temp_bleed)//if no wounds, other bleed effects (heparin) naturally decreases - if(bleed_rate && !bleedsuppress) + if(bleed_rate && !bleedsuppress && !(status_flags & FAKEDEATH)) bleed(bleed_rate) //Makes a blood drop, leaking amt units of blood from the mob diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index e338f49338..c79e167c10 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -95,7 +95,7 @@ var/mob/living/simple_animal/slaughter/SD = src sound = SD.feast_sound else - sound = 'sound/magic/Demon_consume.ogg' + sound = 'sound/magic/demon_consume.ogg' for(var/i in 1 to 3) playsound(get_turf(src),sound, 100, 1) diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 2ee3007bb1..4b2fd44a49 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -46,10 +46,6 @@ /obj/item/organ/brain/Remove(mob/living/carbon/C, special = 0) ..() - if(!special) - if(C.has_brain_worms()) - var/mob/living/simple_animal/borer/B = C.has_brain_worms() - B.leave_victim() //Should remove borer if the brain is removed - RR if(!gc_destroyed || (owner && !owner.gc_destroyed)) transfer_identity(C) C.update_hair() diff --git a/code/modules/mob/living/brain/status_procs.dm b/code/modules/mob/living/brain/status_procs.dm index 4c40973c20..c5e01efcf9 100644 --- a/code/modules/mob/living/brain/status_procs.dm +++ b/code/modules/mob/living/brain/status_procs.dm @@ -1,5 +1,5 @@ //Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness +//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness // eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. /////////////////////////////////// EYE_BLIND //////////////////////////////////// diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 322726aa62..97d8762139 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -1,158 +1,158 @@ -#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point -#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point -#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire - - -/mob/living/carbon/alien - name = "alien" - voice_name = "alien" - icon = 'icons/mob/alien.dmi' - gender = FEMALE //All xenos are girls!! - dna = null - faction = list("alien") - ventcrawler = VENTCRAWLER_ALWAYS - sight = SEE_MOBS - see_in_dark = 4 - verb_say = "hisses" +#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point +#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point +#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire + + +/mob/living/carbon/alien + name = "alien" + voice_name = "alien" + icon = 'icons/mob/alien.dmi' + gender = FEMALE //All xenos are girls!! + dna = null + faction = list("alien") + ventcrawler = VENTCRAWLER_ALWAYS + sight = SEE_MOBS + see_in_dark = 4 + verb_say = "hisses" initial_language_holder = /datum/language_holder/alien - bubble_icon = "alien" - type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno - var/nightvision = 1 - - var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie - var/has_fine_manipulation = 0 - var/move_delay_add = 0 // movement delay to add - - status_flags = CANPARALYSE|CANPUSH - - var/heat_protection = 0.5 - var/leaping = 0 - gib_type = /obj/effect/decal/cleanable/xenoblood/xgibs - unique_name = 1 - devourable = TRUE - - var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?") - -/mob/living/carbon/alien/Initialize() - verbs += /mob/living/proc/mob_sleep - verbs += /mob/living/proc/lay_down - - create_bodyparts() //initialize bodyparts - - create_internal_organs() - - ..() - -/mob/living/carbon/alien/create_internal_organs() - internal_organs += new /obj/item/organ/brain/alien - internal_organs += new /obj/item/organ/alien/hivenode - internal_organs += new /obj/item/organ/tongue/alien - internal_organs += new /obj/item/organ/eyes/night_vision/alien + bubble_icon = "alien" + type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno + var/nightvision = 1 + + var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie + var/has_fine_manipulation = 0 + var/move_delay_add = 0 // movement delay to add + + status_flags = CANUNCONSCIOUS|CANPUSH + + var/heat_protection = 0.5 + var/leaping = 0 + gib_type = /obj/effect/decal/cleanable/xenoblood/xgibs + unique_name = 1 + + var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?") + devourable = TRUE + +/mob/living/carbon/alien/Initialize() + verbs += /mob/living/proc/mob_sleep + verbs += /mob/living/proc/lay_down + + create_bodyparts() //initialize bodyparts + + create_internal_organs() + + ..() + +/mob/living/carbon/alien/create_internal_organs() + internal_organs += new /obj/item/organ/brain/alien + internal_organs += new /obj/item/organ/alien/hivenode + internal_organs += new /obj/item/organ/tongue/alien + internal_organs += new /obj/item/organ/eyes/night_vision/alien internal_organs += new /obj/item/organ/ears - ..() - -/mob/living/carbon/alien/assess_threat() // beepsky won't hunt aliums - return -10 - -/mob/living/carbon/alien/handle_environment(datum/gas_mixture/environment) - if(!environment) - return - - var/loc_temp = get_temperature(environment) - - // Aliens are now weak to fire. - - //After then, it reacts to the surrounding atmosphere based on your thermal protection - if(!on_fire) // If you're on fire, ignore local air temperature - if(loc_temp > bodytemperature) - //Place is hotter than we are - var/thermal_protection = heat_protection //This returns a 0 - 1 value, which corresponds to the percentage of heat protection. - if(thermal_protection < 1) - bodytemperature += (1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR) - else - bodytemperature += 1 * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR) - - if(bodytemperature > 360.15) - //Body temperature is too hot. - throw_alert("alien_fire", /obj/screen/alert/alien_fire) - switch(bodytemperature) - if(360 to 400) - apply_damage(HEAT_DAMAGE_LEVEL_1, BURN) - if(400 to 460) - apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) - if(460 to INFINITY) - if(on_fire) - apply_damage(HEAT_DAMAGE_LEVEL_3, BURN) - else - apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) - else - clear_alert("alien_fire") - -/mob/living/carbon/alien/reagent_check(datum/reagent/R) //can metabolize all reagents - return 0 - -/mob/living/carbon/alien/IsAdvancedToolUser() - return has_fine_manipulation - -/mob/living/carbon/alien/Stat() - ..() - - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") - -/mob/living/carbon/alien/getTrail() - if(getBruteLoss() < 200) - return pick (list("xltrails_1", "xltrails2")) - else - return pick (list("xttrails_1", "xttrails2")) -/*---------------------------------------- -Proc: AddInfectionImages() -Des: Gives the client of the alien an image on each infected mob. -----------------------------------------*/ -/mob/living/carbon/alien/proc/AddInfectionImages() - if (client) - for (var/mob/living/C in GLOB.mob_list) - if(C.status_flags & XENO_HOST) - var/obj/item/organ/body_egg/alien_embryo/A = C.getorgan(/obj/item/organ/body_egg/alien_embryo) - if(A) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]") - client.images += I - return - - -/*---------------------------------------- -Proc: RemoveInfectionImages() -Des: Removes all infected images from the alien. -----------------------------------------*/ -/mob/living/carbon/alien/proc/RemoveInfectionImages() - if (client) - for(var/image/I in client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) - return - -/mob/living/carbon/alien/canBeHandcuffed() - return 1 - -/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0) - return initial(pixel_y) - -/mob/living/carbon/alien/proc/alien_evolve(mob/living/carbon/alien/new_xeno) - to_chat(src, "You begin to evolve!") - visible_message("[src] begins to twist and contort!") - new_xeno.setDir(dir) - if(!alien_name_regex.Find(name)) - new_xeno.name = name - new_xeno.real_name = real_name - if(mind) - mind.transfer_to(new_xeno) - qdel(src) - + ..() + +/mob/living/carbon/alien/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) // beepsky won't hunt aliums + return -10 + +/mob/living/carbon/alien/handle_environment(datum/gas_mixture/environment) + if(!environment) + return + + var/loc_temp = get_temperature(environment) + + // Aliens are now weak to fire. + + //After then, it reacts to the surrounding atmosphere based on your thermal protection + if(!on_fire) // If you're on fire, ignore local air temperature + if(loc_temp > bodytemperature) + //Place is hotter than we are + var/thermal_protection = heat_protection //This returns a 0 - 1 value, which corresponds to the percentage of heat protection. + if(thermal_protection < 1) + bodytemperature += (1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR) + else + bodytemperature += 1 * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR) + + if(bodytemperature > 360.15) + //Body temperature is too hot. + throw_alert("alien_fire", /obj/screen/alert/alien_fire) + switch(bodytemperature) + if(360 to 400) + apply_damage(HEAT_DAMAGE_LEVEL_1, BURN) + if(400 to 460) + apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) + if(460 to INFINITY) + if(on_fire) + apply_damage(HEAT_DAMAGE_LEVEL_3, BURN) + else + apply_damage(HEAT_DAMAGE_LEVEL_2, BURN) + else + clear_alert("alien_fire") + +/mob/living/carbon/alien/reagent_check(datum/reagent/R) //can metabolize all reagents + return 0 + +/mob/living/carbon/alien/IsAdvancedToolUser() + return has_fine_manipulation + +/mob/living/carbon/alien/Stat() + ..() + + if(statpanel("Status")) + stat(null, "Intent: [a_intent]") + +/mob/living/carbon/alien/getTrail() + if(getBruteLoss() < 200) + return pick (list("xltrails_1", "xltrails2")) + else + return pick (list("xttrails_1", "xttrails2")) +/*---------------------------------------- +Proc: AddInfectionImages() +Des: Gives the client of the alien an image on each infected mob. +----------------------------------------*/ +/mob/living/carbon/alien/proc/AddInfectionImages() + if (client) + for (var/mob/living/C in GLOB.mob_list) + if(C.status_flags & XENO_HOST) + var/obj/item/organ/body_egg/alien_embryo/A = C.getorgan(/obj/item/organ/body_egg/alien_embryo) + if(A) + var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]") + client.images += I + return + + +/*---------------------------------------- +Proc: RemoveInfectionImages() +Des: Removes all infected images from the alien. +----------------------------------------*/ +/mob/living/carbon/alien/proc/RemoveInfectionImages() + if (client) + for(var/image/I in client.images) + if(dd_hasprefix_case(I.icon_state, "infected")) + qdel(I) + return + +/mob/living/carbon/alien/canBeHandcuffed() + return 1 + +/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0) + return initial(pixel_y) + +/mob/living/carbon/alien/proc/alien_evolve(mob/living/carbon/alien/new_xeno) + to_chat(src, "You begin to evolve!") + visible_message("[src] begins to twist and contort!") + new_xeno.setDir(dir) + if(!alien_name_regex.Find(name)) + new_xeno.name = name + new_xeno.real_name = real_name + if(mind) + mind.transfer_to(new_xeno) + qdel(src) + // TODO make orbiters orbit the new xeno, or make xenos species rather than types -#undef HEAT_DAMAGE_LEVEL_1 -#undef HEAT_DAMAGE_LEVEL_2 -#undef HEAT_DAMAGE_LEVEL_3 - -/mob/living/carbon/alien/can_hold_items() - return has_fine_manipulation +#undef HEAT_DAMAGE_LEVEL_1 +#undef HEAT_DAMAGE_LEVEL_2 +#undef HEAT_DAMAGE_LEVEL_3 + +/mob/living/carbon/alien/can_hold_items() + return has_fine_manipulation diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 1451b07663..30f776da2d 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -21,11 +21,11 @@ In all, this is a lot like the monkey code. /N switch(M.a_intent) if ("help") - AdjustSleeping(-5) resting = 0 - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) + AdjustStun(-60) + AdjustKnockdown(-60) + AdjustUnconscious(-60) + AdjustSleeping(-100) visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!") if ("grab") @@ -116,10 +116,10 @@ In all, this is a lot like the monkey code. /N if(3) take_overall_damage(30,0) if(prob(50)) - Paralyse(1) + Unconscious(20) adjustEarDamage(15,60) -/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 1, damage_pwr = 5, deafen_pwr = 15) +/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15) return 0 /mob/living/carbon/alien/acid_act(acidpwr, acid_volume) diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 8118476c69..46facdc454 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -1,14 +1,14 @@ -/mob/living/carbon/alien/spawn_gibs(with_bodyparts) - if(with_bodyparts) - new /obj/effect/gibspawner/xeno(loc,viruses) - else - new /obj/effect/gibspawner/xenobodypartless(loc,viruses) - -/mob/living/carbon/alien/gib_animation() +/mob/living/carbon/alien/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/xeno(loc,viruses) + else + new /obj/effect/gibspawner/xenobodypartless(loc,viruses) + +/mob/living/carbon/alien/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a") - -/mob/living/carbon/alien/spawn_dust() - new /obj/effect/decal/remains/xeno(loc) - -/mob/living/carbon/alien/dust_animation() + +/mob/living/carbon/alien/spawn_dust() + new /obj/effect/decal/remains/xeno(loc) + +/mob/living/carbon/alien/dust_animation() new /obj/effect/temp_visual/dust_animation(loc, "dust-a") diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 8b3a68ab36..7cf47379f3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -22,7 +22,7 @@ Doesn't work on other aliens/AI.*/ action = new(src) /obj/effect/proc_holder/alien/Click() - if(!istype(usr,/mob/living/carbon)) + if(!iscarbon(usr)) return 1 var/mob/living/carbon/user = usr if(cost_check(check_turf,user)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 381ae5c511..0af56498fd 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -1,102 +1,102 @@ -/mob/living/carbon/alien/humanoid/hunter - name = "alien hunter" - caste = "h" - maxHealth = 125 - health = 125 - icon_state = "alienh" - var/obj/screen/leap_icon = null - -/mob/living/carbon/alien/humanoid/hunter/create_internal_organs() - internal_organs += new /obj/item/organ/alien/plasmavessel/small - ..() - -/mob/living/carbon/alien/humanoid/hunter/movement_delay() - . = -1 //hunters are sanic - . += ..() //but they still need to slow down on stun - - -//Hunter verbs - -/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(message = 1) - leap_on_click = !leap_on_click - leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]" - update_icons() - if(message) - to_chat(src, "You will now [leap_on_click ? "leap at":"slash at"] enemies!") - else - return - - -/mob/living/carbon/alien/humanoid/hunter/ClickOn(atom/A, params) - face_atom(A) - if(leap_on_click) - leap_at(A) - else - ..() - - -#define MAX_ALIEN_LEAP_DIST 7 - -/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(atom/A) +/mob/living/carbon/alien/humanoid/hunter + name = "alien hunter" + caste = "h" + maxHealth = 125 + health = 125 + icon_state = "alienh" + var/obj/screen/leap_icon = null + +/mob/living/carbon/alien/humanoid/hunter/create_internal_organs() + internal_organs += new /obj/item/organ/alien/plasmavessel/small + ..() + +/mob/living/carbon/alien/humanoid/hunter/movement_delay() + . = -1 //hunters are sanic + . += ..() //but they still need to slow down on stun + + +//Hunter verbs + +/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(message = 1) + leap_on_click = !leap_on_click + leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]" + update_icons() + if(message) + to_chat(src, "You will now [leap_on_click ? "leap at":"slash at"] enemies!") + else + return + + +/mob/living/carbon/alien/humanoid/hunter/ClickOn(atom/A, params) + face_atom(A) + if(leap_on_click) + leap_at(A) + else + ..() + + +#define MAX_ALIEN_LEAP_DIST 7 + +/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(atom/A) if(pounce_cooldown > world.time) - to_chat(src, "You are too fatigued to pounce right now!") - return - - if(leaping || stat || buckled || lying) - return - - if(!has_gravity() || !A.has_gravity()) - to_chat(src, "It is unsafe to leap without gravity!") - //It's also extremely buggy visually, so it's balance+bugfix - return - - else //Maybe uses plasma in the future, although that wouldn't make any sense... - leaping = 1 - weather_immunities += "lava" - update_icons() - throw_at(A, MAX_ALIEN_LEAP_DIST, 1, spin=0, diagonals_first = 1, callback = CALLBACK(src, .leap_end)) - -/mob/living/carbon/alien/humanoid/hunter/proc/leap_end() - leaping = 0 - weather_immunities -= "lava" - update_icons() - -/mob/living/carbon/alien/humanoid/hunter/throw_impact(atom/A) - - if(!leaping) - return ..() - - if(A) - if(isliving(A)) - var/mob/living/L = A - var/blocked = 0 - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK)) - blocked = 1 - if(!blocked) - L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") - L.Weaken(5) - sleep(2)//Runtime prevention (infinite bump() calls on hulks) - step_towards(src,L) - else - Weaken(2, 1, 1) - - toggle_leap(0) + to_chat(src, "You are too fatigued to pounce right now!") + return + + if(leaping || stat || buckled || lying) + return + + if(!has_gravity() || !A.has_gravity()) + to_chat(src, "It is unsafe to leap without gravity!") + //It's also extremely buggy visually, so it's balance+bugfix + return + + else //Maybe uses plasma in the future, although that wouldn't make any sense... + leaping = 1 + weather_immunities += "lava" + update_icons() + throw_at(A, MAX_ALIEN_LEAP_DIST, 1, spin=0, diagonals_first = 1, callback = CALLBACK(src, .leap_end)) + +/mob/living/carbon/alien/humanoid/hunter/proc/leap_end() + leaping = 0 + weather_immunities -= "lava" + update_icons() + +/mob/living/carbon/alien/humanoid/hunter/throw_impact(atom/A) + + if(!leaping) + return ..() + + if(A) + if(isliving(A)) + var/mob/living/L = A + var/blocked = 0 + if(ishuman(A)) + var/mob/living/carbon/human/H = A + if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK)) + blocked = 1 + if(!blocked) + L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") + L.Knockdown(100) + sleep(2)//Runtime prevention (infinite bump() calls on hulks) + step_towards(src,L) + else + Knockdown(40, 1, 1) + + toggle_leap(0) pounce_cooldown = world.time + pounce_cooldown_time - else if(A.density && !A.CanPass(src)) - visible_message("[src] smashes into [A]!", "[src] smashes into [A]!") - Weaken(2, 1, 1) - - if(leaping) - leaping = 0 - update_icons() - update_canmove() - - -/mob/living/carbon/alien/humanoid/float(on) - if(leaping) - return - ..() - - + else if(A.density && !A.CanPass(src)) + visible_message("[src] smashes into [A]!", "[src] smashes into [A]!") + Knockdown(40, 1, 1) + + if(leaping) + leaping = 0 + update_icons() + update_canmove() + + +/mob/living/carbon/alien/humanoid/float(on) + if(leaping) + return + ..() + + diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm index 90d4ced85f..71619ff9a4 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm @@ -45,9 +45,6 @@ if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen)) var/mob/living/carbon/alien/humanoid/royal/queen/new_xeno = new (user.loc) user.alien_evolve(new_xeno) - if(new_xeno.client.prefs.unlock_content) - var/datum/action/innate/maid/M = new() - M.Grant(new_xeno) return 1 else to_chat(user, "We already have an alive queen.") diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 392bdfedbc..61d75fe645 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -27,7 +27,7 @@ /mob/living/carbon/alien/humanoid/movement_delay() . = ..() - . += move_delay_add + config.alien_delay + sneaking //move_delay_add is used to slow aliens with stuns + . += move_delay_add + config.alien_delay + sneaking //move_delay_add is used to slow aliens with stun /mob/living/carbon/alien/humanoid/restrained(ignore_grab) . = handcuffed diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm index b6c3b4427b..a09734ff49 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm @@ -29,10 +29,10 @@ playsound(loc, "punch", 25, 1, -1) visible_message("[M] has punched [src]!", \ "[M] has punched [src]!", null, COMBAT_MESSAGE_RANGE) - if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of weakening an alien. - Paralyse(2) - visible_message("[M] has weakened [src]!", \ - "[M] has weakened [src]!") + if ((stat != DEAD) && (damage > 9 || prob(5)))//Regular humans have a very small chance of knocking an alien down. + Unconscious(40) + visible_message("[M] has knocked [src] down!", \ + "[M] has knocked [src] down!") var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) apply_damage(damage, BRUTE, affecting) add_logs(M, src, "attacked") @@ -44,7 +44,7 @@ if ("disarm") if (!lying) if (prob(5)) - Paralyse(2) + Unconscious(40) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) add_logs(M, src, "pushed") visible_message("[M] has pushed down [src]!", \ diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index f07713ee1d..63ee367266 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -1,188 +1,155 @@ -/mob/living/carbon/alien/humanoid/royal - //Common stuffs for Praetorian and Queen - icon = 'icons/mob/alienqueen.dmi' - status_flags = 0 - ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat - unique_name = 0 - pixel_x = -16 - bubble_icon = "alienroyal" - mob_size = MOB_SIZE_LARGE - layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles - pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) - - var/alt_inhands_file = 'icons/mob/alienqueen.dmi' - -/mob/living/carbon/alien/humanoid/royal/can_inject() - return 0 - -/mob/living/carbon/alien/humanoid/royal/queen - name = "alien queen" - caste = "q" - maxHealth = 400 - health = 400 - icon_state = "alienq" - var/datum/action/small_sprite/smallsprite = new/datum/action/small_sprite() - -/datum/action/small_sprite - name = "Toggle Giant Sprite - Others will always see you as giant" - button_icon_state = "smallqueen" - background_icon_state = "bg_alien" - var/small = 0 - -/datum/action/small_sprite/Trigger() - ..() - if(!small) - var/image/I = image(icon = 'icons/mob/alien.dmi' , icon_state = "alienq", loc = owner) - I.override = 1 - I.pixel_x -= owner.pixel_x - I.pixel_y -= owner.pixel_y +/mob/living/carbon/alien/humanoid/royal + //Common stuffs for Praetorian and Queen + icon = 'icons/mob/alienqueen.dmi' + status_flags = 0 + ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat + unique_name = 0 + pixel_x = -16 + bubble_icon = "alienroyal" + mob_size = MOB_SIZE_LARGE + layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles + pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) + + var/alt_inhands_file = 'icons/mob/alienqueen.dmi' + +/mob/living/carbon/alien/humanoid/royal/can_inject() + return 0 + +/mob/living/carbon/alien/humanoid/royal/queen + name = "alien queen" + caste = "q" + maxHealth = 400 + health = 400 + icon_state = "alienq" + var/datum/action/small_sprite/smallsprite = new/datum/action/small_sprite() + +/datum/action/small_sprite + name = "Toggle Giant Sprite - Others will always see you as giant" + button_icon_state = "smallqueen" + background_icon_state = "bg_alien" + var/small = 0 + +/datum/action/small_sprite/Trigger() + ..() + if(!small) + var/image/I = image(icon = 'icons/mob/alien.dmi' , icon_state = "alienq", loc = owner) + I.override = 1 + I.pixel_x -= owner.pixel_x + I.pixel_y -= owner.pixel_y owner.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic, "smallqueen", I) - - small = 1 - else - owner.remove_alt_appearance("smallqueen") - small = 0 - -/mob/living/carbon/alien/humanoid/royal/queen/Initialize() - //there should only be one queen - for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in GLOB.living_mob_list) - if(Q == src) - continue - if(Q.stat == DEAD) - continue - if(Q.client) - name = "alien princess ([rand(1, 999)])" //if this is too cutesy feel free to change it/remove it. - break - - real_name = src.name - - AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) - AddAbility(new/obj/effect/proc_holder/alien/royal/queen/promote()) - smallsprite.Grant(src) - ..() - -/mob/living/carbon/alien/humanoid/royal/queen/create_internal_organs() - internal_organs += new /obj/item/organ/alien/plasmavessel/large/queen - internal_organs += new /obj/item/organ/alien/resinspinner - internal_organs += new /obj/item/organ/alien/acid - internal_organs += new /obj/item/organ/alien/neurotoxin - internal_organs += new /obj/item/organ/alien/eggsac - ..() - -/mob/living/carbon/alien/humanoid/royal/queen/movement_delay() - . = ..() - . += 3 - -//Queen verbs -/obj/effect/proc_holder/alien/lay_egg - name = "Lay Egg" - desc = "Lay an egg to produce huggers to impregnate prey with." - plasma_cost = 75 - check_turf = 1 - action_icon_state = "alien_egg" - -/obj/effect/proc_holder/alien/lay_egg/fire(mob/living/carbon/user) - if(locate(/obj/structure/alien/egg) in get_turf(user)) - to_chat(user, "There's already an egg here.") - return 0 - user.visible_message("[user] has laid an egg!") - new /obj/structure/alien/egg(user.loc) - return 1 - -//Button to let queen choose her praetorian. -/obj/effect/proc_holder/alien/royal/queen/promote - name = "Create Royal Parasite" - desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian." - plasma_cost = 500 //Plasma cost used on promotion, not spawning the parasite. - - action_icon_state = "alien_queen_promote" - - - -/obj/effect/proc_holder/alien/royal/queen/promote/fire(mob/living/carbon/alien/user) - var/obj/item/queenpromote/prom - if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) - to_chat(user, "You already have a Praetorian!") - return 0 - else - for(prom in user) - to_chat(user, "You discard [prom].") - qdel(prom) - return 0 - - prom = new (user.loc) - if(!user.put_in_active_hand(prom, 1)) - to_chat(user, "You must empty your hands before preparing the parasite.") - return 0 - else //Just in case telling the player only once is not enough! - to_chat(user, "Use the royal parasite on one of your children to promote her to Praetorian!") - return 0 - -/obj/item/queenpromote - name = "\improper royal parasite" - desc = "Inject this into one of your grown children to promote her to a Praetorian!" - icon_state = "alien_medal" - flags = ABSTRACT|NODROP|DROPDEL - icon = 'icons/mob/alien.dmi' - -/obj/item/queenpromote/attack(mob/living/M, mob/living/carbon/alien/humanoid/user) - if(!isalienadult(M) || istype(M, /mob/living/carbon/alien/humanoid/royal)) - to_chat(user, "You may only use this with your adult, non-royal children!") - return - if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) - to_chat(user, "You already have a Praetorian!") - return - - var/mob/living/carbon/alien/humanoid/A = M - if(A.stat == CONSCIOUS && A.mind && A.key) - if(!user.usePlasma(500)) - to_chat(user, "You must have 500 plasma stored to use this!") - return - - to_chat(A, "The queen has granted you a promotion to Praetorian!") - user.visible_message("[A] begins to expand, twist and contort!") - var/mob/living/carbon/alien/humanoid/royal/praetorian/new_prae = new (A.loc) - A.mind.transfer_to(new_prae) - qdel(A) - qdel(src) - return - else - to_chat(user, "This child must be alert and responsive to become a Praetorian!") - -/obj/item/queenpromote/attack_self(mob/user) - to_chat(user, "You discard [src].") - qdel(src) - -//:^) -/datum/action/innate/maid - name = "Maidify" - button_icon_state = "alien_queen_maidify" - check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS|AB_CHECK_LYING - background_icon_state = "bg_alien" - -/datum/action/innate/maid/Activate() - var/mob/living/carbon/alien/humanoid/royal/queen/A = owner - A.maidify() - active = TRUE - -/datum/action/innate/maid/Deactivate() - var/mob/living/carbon/alien/humanoid/royal/queen/A = owner - A.unmaidify() - active = FALSE - - - -/mob/living/carbon/alien/humanoid/royal/queen/proc/maidify() - name = "alien queen maid" - desc = "Lusty, Sexy" - icon_state = "alienqmaid" - caste = "qmaid" - update_icons() - -/mob/living/carbon/alien/humanoid/royal/queen/proc/unmaidify() - name = "alien queen" - desc = "" - icon_state = "alienq" - caste = "q" - update_icons() + + small = 1 + else + owner.remove_alt_appearance("smallqueen") + small = 0 + +/mob/living/carbon/alien/humanoid/royal/queen/Initialize() + //there should only be one queen + for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in GLOB.living_mob_list) + if(Q == src) + continue + if(Q.stat == DEAD) + continue + if(Q.client) + name = "alien princess ([rand(1, 999)])" //if this is too cutesy feel free to change it/remove it. + break + + real_name = src.name + + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) + AddAbility(new/obj/effect/proc_holder/alien/royal/queen/promote()) + smallsprite.Grant(src) + ..() + +/mob/living/carbon/alien/humanoid/royal/queen/create_internal_organs() + internal_organs += new /obj/item/organ/alien/plasmavessel/large/queen + internal_organs += new /obj/item/organ/alien/resinspinner + internal_organs += new /obj/item/organ/alien/acid + internal_organs += new /obj/item/organ/alien/neurotoxin + internal_organs += new /obj/item/organ/alien/eggsac + ..() + +/mob/living/carbon/alien/humanoid/royal/queen/movement_delay() + . = ..() + . += 3 + +//Queen verbs +/obj/effect/proc_holder/alien/lay_egg + name = "Lay Egg" + desc = "Lay an egg to produce huggers to impregnate prey with." + plasma_cost = 75 + check_turf = 1 + action_icon_state = "alien_egg" + +/obj/effect/proc_holder/alien/lay_egg/fire(mob/living/carbon/user) + if(locate(/obj/structure/alien/egg) in get_turf(user)) + to_chat(user, "There's already an egg here.") + return 0 + user.visible_message("[user] has laid an egg!") + new /obj/structure/alien/egg(user.loc) + return 1 + +//Button to let queen choose her praetorian. +/obj/effect/proc_holder/alien/royal/queen/promote + name = "Create Royal Parasite" + desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian." + plasma_cost = 500 //Plasma cost used on promotion, not spawning the parasite. + + action_icon_state = "alien_queen_promote" + + + +/obj/effect/proc_holder/alien/royal/queen/promote/fire(mob/living/carbon/alien/user) + var/obj/item/queenpromote/prom + if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) + to_chat(user, "You already have a Praetorian!") + return 0 + else + for(prom in user) + to_chat(user, "You discard [prom].") + qdel(prom) + return 0 + + prom = new (user.loc) + if(!user.put_in_active_hand(prom, 1)) + to_chat(user, "You must empty your hands before preparing the parasite.") + return 0 + else //Just in case telling the player only once is not enough! + to_chat(user, "Use the royal parasite on one of your children to promote her to Praetorian!") + return 0 + +/obj/item/queenpromote + name = "\improper royal parasite" + desc = "Inject this into one of your grown children to promote her to a Praetorian!" + icon_state = "alien_medal" + flags = ABSTRACT|NODROP|DROPDEL + icon = 'icons/mob/alien.dmi' + +/obj/item/queenpromote/attack(mob/living/M, mob/living/carbon/alien/humanoid/user) + if(!isalienadult(M) || isalienroyal(M)) + to_chat(user, "You may only use this with your adult, non-royal children!") + return + if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/)) + to_chat(user, "You already have a Praetorian!") + return + + var/mob/living/carbon/alien/humanoid/A = M + if(A.stat == CONSCIOUS && A.mind && A.key) + if(!user.usePlasma(500)) + to_chat(user, "You must have 500 plasma stored to use this!") + return + + to_chat(A, "The queen has granted you a promotion to Praetorian!") + user.visible_message("[A] begins to expand, twist and contort!") + var/mob/living/carbon/alien/humanoid/royal/praetorian/new_prae = new (A.loc) + A.mind.transfer_to(new_prae) + qdel(A) + qdel(src) + return + else + to_chat(user, "This child must be alert and responsive to become a Praetorian!") + +/obj/item/queenpromote/attack_self(mob/user) + to_chat(user, "You discard [src].") + qdel(src) diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 8940220d3b..3992cc62ca 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -1,93 +1,94 @@ - -/mob/living/carbon/alien/humanoid/update_icons() - cut_overlays() + +/mob/living/carbon/alien/humanoid/update_icons() + cut_overlays() for(var/I in overlays_standing) - add_overlay(I) - - if(stat == DEAD) - //If we mostly took damage from fire - if(fireloss > 125) - icon_state = "alien[caste]_husked" - else - icon_state = "alien[caste]_dead" - - else if((stat == UNCONSCIOUS && !sleeping) || weakened) - icon_state = "alien[caste]_unconscious" - else if(leap_on_click) - icon_state = "alien[caste]_pounce" - - else if(lying || resting || sleeping) - icon_state = "alien[caste]_sleep" - else if(mob_size == MOB_SIZE_LARGE) - icon_state = "alien[caste]" - if(drooling) - add_overlay("alienspit_[caste]") - else - icon_state = "alien[caste]" - if(drooling) - add_overlay("alienspit") - - if(leaping) - if(alt_icon == initial(alt_icon)) - var/old_icon = icon - icon = alt_icon - alt_icon = old_icon - icon_state = "alien[caste]_leap" - pixel_x = -32 - pixel_y = -32 - else - if(alt_icon != initial(alt_icon)) - var/old_icon = icon - icon = alt_icon - alt_icon = old_icon - pixel_x = get_standard_pixel_x_offset(lying) - pixel_y = get_standard_pixel_y_offset(lying) - update_inv_hands() - update_inv_handcuffed() - -/mob/living/carbon/alien/humanoid/regenerate_icons() - if(!..()) - // update_icons() //Handled in update_transform(), leaving this here as a reminder - update_transform() - -/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. - if(lying > 0) - lying = 90 //Anything else looks retarded - ..() - update_icons() - -/mob/living/carbon/alien/humanoid/update_inv_handcuffed() - remove_overlay(HANDCUFF_LAYER) - var/cuff_icon = "aliencuff" - var/dmi_file = 'icons/mob/alien.dmi' - - if(mob_size == MOB_SIZE_LARGE) - cuff_icon = "aliencuff_[caste]" - dmi_file = 'icons/mob/alienqueen.dmi' - - if(handcuffed) + add_overlay(I) + + var/asleep = IsSleeping() + if(stat == DEAD) + //If we mostly took damage from fire + if(fireloss > 125) + icon_state = "alien[caste]_husked" + else + icon_state = "alien[caste]_dead" + + else if((stat == UNCONSCIOUS && !asleep) || IsKnockdown()) + icon_state = "alien[caste]_unconscious" + else if(leap_on_click) + icon_state = "alien[caste]_pounce" + + else if(lying || resting || asleep) + icon_state = "alien[caste]_sleep" + else if(mob_size == MOB_SIZE_LARGE) + icon_state = "alien[caste]" + if(drooling) + add_overlay("alienspit_[caste]") + else + icon_state = "alien[caste]" + if(drooling) + add_overlay("alienspit") + + if(leaping) + if(alt_icon == initial(alt_icon)) + var/old_icon = icon + icon = alt_icon + alt_icon = old_icon + icon_state = "alien[caste]_leap" + pixel_x = -32 + pixel_y = -32 + else + if(alt_icon != initial(alt_icon)) + var/old_icon = icon + icon = alt_icon + alt_icon = old_icon + pixel_x = get_standard_pixel_x_offset(lying) + pixel_y = get_standard_pixel_y_offset(lying) + update_inv_hands() + update_inv_handcuffed() + +/mob/living/carbon/alien/humanoid/regenerate_icons() + if(!..()) + // update_icons() //Handled in update_transform(), leaving this here as a reminder + update_transform() + +/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. + if(lying > 0) + lying = 90 //Anything else looks retarded + ..() + update_icons() + +/mob/living/carbon/alien/humanoid/update_inv_handcuffed() + remove_overlay(HANDCUFF_LAYER) + var/cuff_icon = "aliencuff" + var/dmi_file = 'icons/mob/alien.dmi' + + if(mob_size == MOB_SIZE_LARGE) + cuff_icon = "aliencuff_[caste]" + dmi_file = 'icons/mob/alienqueen.dmi' + + if(handcuffed) overlays_standing[HANDCUFF_LAYER] = mutable_appearance(dmi_file, cuff_icon, -HANDCUFF_LAYER) - apply_overlay(HANDCUFF_LAYER) - -//Royals have bigger sprites, so inhand things must be handled differently. -/mob/living/carbon/alien/humanoid/royal/update_inv_hands() - ..() - remove_overlay(HANDS_LAYER) - var/list/hands = list() - - var/obj/item/l_hand = get_item_for_held_index(1) - if(l_hand) - var/itm_state = l_hand.item_state - if(!itm_state) - itm_state = l_hand.icon_state + apply_overlay(HANDCUFF_LAYER) + +//Royals have bigger sprites, so inhand things must be handled differently. +/mob/living/carbon/alien/humanoid/royal/update_inv_hands() + ..() + remove_overlay(HANDS_LAYER) + var/list/hands = list() + + var/obj/item/l_hand = get_item_for_held_index(1) + if(l_hand) + var/itm_state = l_hand.item_state + if(!itm_state) + itm_state = l_hand.icon_state hands += mutable_appearance(alt_inhands_file, "[itm_state][caste]_l", -HANDS_LAYER) - - var/obj/item/r_hand = get_item_for_held_index(2) - if(r_hand) - var/itm_state = r_hand.item_state - if(!itm_state) - itm_state = r_hand.icon_state + + var/obj/item/r_hand = get_item_for_held_index(2) + if(r_hand) + var/itm_state = r_hand.item_state + if(!itm_state) + itm_state = r_hand.icon_state hands += mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER) - - overlays_standing[HANDS_LAYER] = hands + + overlays_standing[HANDS_LAYER] = hands apply_overlay(HANDS_LAYER) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 4d337606f5..585e5779c6 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -1,22 +1,22 @@ -/mob/living/carbon/alien/larva/death(gibbed) - if(stat == DEAD) - return - - . = ..() - - update_icons() - -/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts) - if(with_bodyparts) - new /obj/effect/gibspawner/larva(loc,viruses) - else - new /obj/effect/gibspawner/larvabodypartless(loc,viruses) - -/mob/living/carbon/alien/larva/gib_animation() +/mob/living/carbon/alien/larva/death(gibbed) + if(stat == DEAD) + return + + . = ..() + + update_icons() + +/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/larva(loc,viruses) + else + new /obj/effect/gibspawner/larvabodypartless(loc,viruses) + +/mob/living/carbon/alien/larva/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l") - -/mob/living/carbon/alien/larva/spawn_dust() - new /obj/effect/decal/remains/xeno(loc) - -/mob/living/carbon/alien/larva/dust_animation() + +/mob/living/carbon/alien/larva/spawn_dust() + new /obj/effect/decal/remains/xeno(loc) + +/mob/living/carbon/alien/larva/dust_animation() new /obj/effect/temp_visual/dust_animation(loc, "dust-l") diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm index 81266f9d97..62c00ca8ed 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm @@ -9,7 +9,7 @@ visible_message("[M] has kicked [src]!", \ "[M] has kicked [src]!", null, COMBAT_MESSAGE_RANGE) if ((stat != DEAD) && (damage > 4.9)) - Paralyse(rand(5,10)) + Unconscious(rand(100,200)) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) apply_damage(damage, BRUTE, affecting) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index eda182b5c2..d7ae106380 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -20,7 +20,7 @@ if(health<= -maxHealth || !getorgan(/obj/item/organ/brain)) death() return - if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) diff --git a/code/modules/mob/living/carbon/alien/larva/update_icons.dm b/code/modules/mob/living/carbon/alien/larva/update_icons.dm index b56fd6d739..9b762d1728 100644 --- a/code/modules/mob/living/carbon/alien/larva/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/larva/update_icons.dm @@ -12,11 +12,11 @@ if(stat == DEAD) icon_state = "larva[state]_dead" - else if (handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state? + else if(handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state? icon_state = "larva[state]_cuff" else if(stat == UNCONSCIOUS || lying || resting) icon_state = "larva[state]_sleep" - else if (stunned) + else if(IsStun()) icon_state = "larva[state]_stun" else icon_state = "larva[state]" diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index f9bd64153e..e538d32fb7 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -130,12 +130,12 @@ to_chat(owner, "Your Queen has been struck down!") to_chat(owner, "You are struck with overwhelming agony! You feel confused, and your connection to the hivemind is severed.") owner.emote("roar") - owner.Stun(10) //Actually just slows them down a bit. + owner.Stun(200) //Actually just slows them down a bit. else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash. to_chat(owner, "You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!") owner.emote("scream") - owner.Weaken(5) + owner.Knockdown(100) owner.jitteriness += 30 owner.confused += 30 diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm index 12c131b3cc..002a4e8364 100644 --- a/code/modules/mob/living/carbon/alien/say.dm +++ b/code/modules/mob/living/carbon/alien/say.dm @@ -1,22 +1,22 @@ /mob/living/proc/alien_talk(message, shown_name = real_name) - log_say("[key_name(src)] : [message]") - message = trim(message) - if(!message) return - - var/message_a = say_quote(message, get_spans()) - var/rendered = "Hivemind, [shown_name] [message_a]" - for(var/mob/S in GLOB.player_list) - if(!S.stat && S.hivecheck()) - to_chat(S, rendered) - if(S in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(S, src) - to_chat(S, "[link] [rendered]") - -/mob/living/carbon/alien/humanoid/royal/queen/alien_talk(message, shown_name = name) - shown_name = "[shown_name]" - ..(message, shown_name) - -/mob/living/carbon/hivecheck() - var/obj/item/organ/alien/hivenode/N = getorgan(/obj/item/organ/alien/hivenode) - if(N && !N.recent_queen_death) //Mob has alien hive node and is not under the dead queen special effect. - return N + log_say("[key_name(src)] : [message]") + message = trim(message) + if(!message) return + + var/message_a = say_quote(message, get_spans()) + var/rendered = "Hivemind, [shown_name] [message_a]" + for(var/mob/S in GLOB.player_list) + if(!S.stat && S.hivecheck()) + to_chat(S, rendered) + if(S in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(S, src) + to_chat(S, "[link] [rendered]") + +/mob/living/carbon/alien/humanoid/royal/queen/alien_talk(message, shown_name = name) + shown_name = "[shown_name]" + ..(message, shown_name) + +/mob/living/carbon/hivecheck() + var/obj/item/organ/alien/hivenode/N = getorgan(/obj/item/organ/alien/hivenode) + if(N && !N.recent_queen_death) //Mob has alien hive node and is not under the dead queen special effect. + return N diff --git a/code/modules/mob/living/carbon/alien/screen.dm b/code/modules/mob/living/carbon/alien/screen.dm index c3e0d88edd..b5b646b08b 100644 --- a/code/modules/mob/living/carbon/alien/screen.dm +++ b/code/modules/mob/living/carbon/alien/screen.dm @@ -1,33 +1,33 @@ - -/mob/living/carbon/alien/proc/updatePlasmaDisplay() - if(hud_used) //clientless aliens - hud_used.alien_plasma_display.maptext = "
    [round(getPlasma())]
    " - -/mob/living/carbon/alien/larva/updatePlasmaDisplay() - return - -/mob/living/carbon/alien/proc/findQueen() - if(hud_used) - hud_used.alien_queen_finder.cut_overlays() - var/mob/queen = get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen) - if(!queen) - return - var/turf/Q = get_turf(queen) - var/turf/A = get_turf(src) - if(Q.z != A.z) //The queen is on a different Z level, we cannot sense that far. - return - var/Qdir = get_dir(src, Q) - var/Qdist = get_dist(src, Q) - var/finder_icon = "finder_center" //Overlay showed when adjacent to or on top of the queen! - switch(Qdist) - if(2 to 7) - finder_icon = "finder_near" - if(8 to 20) - finder_icon = "finder_med" - if(21 to INFINITY) - finder_icon = "finder_far" + +/mob/living/carbon/alien/proc/updatePlasmaDisplay() + if(hud_used) //clientless aliens + hud_used.alien_plasma_display.maptext = "
    [round(getPlasma())]
    " + +/mob/living/carbon/alien/larva/updatePlasmaDisplay() + return + +/mob/living/carbon/alien/proc/findQueen() + if(hud_used) + hud_used.alien_queen_finder.cut_overlays() + var/mob/queen = get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen) + if(!queen) + return + var/turf/Q = get_turf(queen) + var/turf/A = get_turf(src) + if(Q.z != A.z) //The queen is on a different Z level, we cannot sense that far. + return + var/Qdir = get_dir(src, Q) + var/Qdist = get_dist(src, Q) + var/finder_icon = "finder_center" //Overlay showed when adjacent to or on top of the queen! + switch(Qdist) + if(2 to 7) + finder_icon = "finder_near" + if(8 to 20) + finder_icon = "finder_med" + if(21 to INFINITY) + finder_icon = "finder_far" var/image/finder_eye = image('icons/mob/screen_alien.dmi', finder_icon, dir = Qdir) - hud_used.alien_queen_finder.add_overlay(finder_eye) - -/mob/living/carbon/alien/humanoid/royal/queen/findQueen() + hud_used.alien_queen_finder.add_overlay(finder_eye) + +/mob/living/carbon/alien/humanoid/royal/queen/findQueen() return //Queen already knows where she is. Hopefully. \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 605e04fcfd..2d6193a7be 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -1,50 +1,50 @@ - - -//TODO: Make these simple_animals - -#define MIN_IMPREGNATION_TIME 100 //time it takes to impregnate someone -#define MAX_IMPREGNATION_TIME 150 - -#define MIN_ACTIVE_TIME 200 //time between being dropped and going idle -#define MAX_ACTIVE_TIME 400 - -/obj/item/clothing/mask/facehugger - name = "alien" - desc = "It has some sort of a tube at the end of its tail." - icon = 'icons/mob/alien.dmi' - icon_state = "facehugger" - item_state = "facehugger" - w_class = WEIGHT_CLASS_TINY //note: can be picked up by aliens unlike most other items of w_class below 4 - flags = MASKINTERNALS - throw_range = 5 - tint = 3 - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH - layer = MOB_LAYER + + +//TODO: Make these simple_animals + +#define MIN_IMPREGNATION_TIME 100 //time it takes to impregnate someone +#define MAX_IMPREGNATION_TIME 150 + +#define MIN_ACTIVE_TIME 200 //time between being dropped and going idle +#define MAX_ACTIVE_TIME 400 + +/obj/item/clothing/mask/facehugger + name = "alien" + desc = "It has some sort of a tube at the end of its tail." + icon = 'icons/mob/alien.dmi' + icon_state = "facehugger" + item_state = "facehugger" + w_class = WEIGHT_CLASS_TINY //note: can be picked up by aliens unlike most other items of w_class below 4 + flags = MASKINTERNALS + throw_range = 5 + tint = 3 + flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH + layer = MOB_LAYER obj_integrity = 100 max_integrity = 100 - - var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case - - var/sterile = FALSE - var/real = TRUE //0 for the toy, 1 for real. Sure I could istype, but fuck that. - var/strength = 5 - - var/attached = 0 - -/obj/item/clothing/mask/facehugger/lamarr - name = "Lamarr" - sterile = 1 - -/obj/item/clothing/mask/facehugger/dead - icon_state = "facehugger_dead" - item_state = "facehugger_inactive" - stat = DEAD - -/obj/item/clothing/mask/facehugger/impregnated - icon_state = "facehugger_impregnated" - item_state = "facehugger_impregnated" - stat = DEAD - + + var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case + + var/sterile = FALSE + var/real = TRUE //0 for the toy, 1 for real. Sure I could istype, but fuck that. + var/strength = 5 + + var/attached = 0 + +/obj/item/clothing/mask/facehugger/lamarr + name = "Lamarr" + sterile = 1 + +/obj/item/clothing/mask/facehugger/dead + icon_state = "facehugger_dead" + item_state = "facehugger_inactive" + stat = DEAD + +/obj/item/clothing/mask/facehugger/impregnated + icon_state = "facehugger_impregnated" + item_state = "facehugger_impregnated" + stat = DEAD + /obj/item/clothing/mask/facehugger/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) ..() if(obj_integrity < 90) @@ -53,227 +53,227 @@ /obj/item/clothing/mask/facehugger/attackby(obj/item/O, mob/user, params) return O.attack_obj(src, user) -/obj/item/clothing/mask/facehugger/attack_alien(mob/user) //can be picked up by aliens - attack_hand(user) - return - -/obj/item/clothing/mask/facehugger/attack_hand(mob/user) - if((stat == CONSCIOUS && !sterile) && !isalien(user)) +/obj/item/clothing/mask/facehugger/attack_alien(mob/user) //can be picked up by aliens + attack_hand(user) + return + +/obj/item/clothing/mask/facehugger/attack_hand(mob/user) + if((stat == CONSCIOUS && !sterile) && !isalien(user)) if(Leap(user)) - return - ..() - -/obj/item/clothing/mask/facehugger/attack(mob/living/M, mob/user) - ..() + return + ..() + +/obj/item/clothing/mask/facehugger/attack(mob/living/M, mob/user) + ..() if(user.transferItemToLoc(src, get_turf(M))) Leap(M) - -/obj/item/clothing/mask/facehugger/examine(mob/user) - ..() - if(!real)//So that giant red text about probisci doesn't show up. - return - switch(stat) - if(DEAD,UNCONSCIOUS) - to_chat(user, "[src] is not moving.") - if(CONSCIOUS) - to_chat(user, "[src] seems to be active!") - if (sterile) - to_chat(user, "It looks like the proboscis has been removed.") - - -/obj/item/clothing/mask/facehugger/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > 300) - Die() - -/obj/item/clothing/mask/facehugger/equipped(mob/M) - Attach(M) - -/obj/item/clothing/mask/facehugger/Crossed(atom/target) - HasProximity(target) - return - -/obj/item/clothing/mask/facehugger/on_found(mob/finder) - if(stat == CONSCIOUS) - return HasProximity(finder) - return 0 - -/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj) - if(CanHug(AM) && Adjacent(AM)) + +/obj/item/clothing/mask/facehugger/examine(mob/user) + ..() + if(!real)//So that giant red text about probisci doesn't show up. + return + switch(stat) + if(DEAD,UNCONSCIOUS) + to_chat(user, "[src] is not moving.") + if(CONSCIOUS) + to_chat(user, "[src] seems to be active!") + if (sterile) + to_chat(user, "It looks like the proboscis has been removed.") + + +/obj/item/clothing/mask/facehugger/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + Die() + +/obj/item/clothing/mask/facehugger/equipped(mob/M) + Attach(M) + +/obj/item/clothing/mask/facehugger/Crossed(atom/target) + HasProximity(target) + return + +/obj/item/clothing/mask/facehugger/on_found(mob/finder) + if(stat == CONSCIOUS) + return HasProximity(finder) + return 0 + +/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj) + if(CanHug(AM) && Adjacent(AM)) return Leap(AM) - return 0 - -/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - if(!..()) - return - if(stat == CONSCIOUS) - icon_state = "[initial(icon_state)]_thrown" + return 0 + +/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + if(!..()) + return + if(stat == CONSCIOUS) + icon_state = "[initial(icon_state)]_thrown" addtimer(CALLBACK(src, .proc/clear_throw_icon_state), 15) /obj/item/clothing/mask/facehugger/proc/clear_throw_icon_state() if(icon_state == "[initial(icon_state)]_thrown") icon_state = "[initial(icon_state)]" - -/obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom) - ..() - if(stat == CONSCIOUS) - icon_state = "[initial(icon_state)]" + +/obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom) + ..() + if(stat == CONSCIOUS) + icon_state = "[initial(icon_state)]" Leap(hit_atom) - -/obj/item/clothing/mask/facehugger/proc/valid_to_attach(mob/living/M) - // valid targets: corgis, carbons except aliens and devils - // facehugger state early exit checks - if(stat != CONSCIOUS) - return FALSE - if(attached) - return FALSE - if(!iscorgi(M) && !iscarbon(M)) - return FALSE - if(iscarbon(M)) - // disallowed carbons - if(isalien(M) || isdevil(M)) - return FALSE - var/mob/living/carbon/target = M - // gotta have a head to be implanted (no changelings or sentient plants) - if(!target.get_bodypart("head")) - return FALSE - - if(target.getorgan(/obj/item/organ/alien/hivenode) || target.getorgan(/obj/item/organ/body_egg/alien_embryo)) - return FALSE - // carbon, has head, not alien or devil, has no hivenode or embryo: valid - return TRUE - else if(iscorgi(M)) - // corgi: valid - return TRUE - + +/obj/item/clothing/mask/facehugger/proc/valid_to_attach(mob/living/M) + // valid targets: corgis, carbons except aliens and devils + // facehugger state early exit checks + if(stat != CONSCIOUS) + return FALSE + if(attached) + return FALSE + if(!iscorgi(M) && !iscarbon(M)) + return FALSE + if(iscarbon(M)) + // disallowed carbons + if(isalien(M) || isdevil(M)) + return FALSE + var/mob/living/carbon/target = M + // gotta have a head to be implanted (no changelings or sentient plants) + if(!target.get_bodypart("head")) + return FALSE + + if(target.getorgan(/obj/item/organ/alien/hivenode) || target.getorgan(/obj/item/organ/body_egg/alien_embryo)) + return FALSE + // carbon, has head, not alien or devil, has no hivenode or embryo: valid + return TRUE + else if(iscorgi(M)) + // corgi: valid + return TRUE + /obj/item/clothing/mask/facehugger/proc/Leap(mob/living/M) - if(!valid_to_attach(M)) - return FALSE + if(!valid_to_attach(M)) + return FALSE if(iscarbon(M)) var/mob/living/carbon/target = M if(target.wear_mask && istype(target.wear_mask, /obj/item/clothing/mask/facehugger)) return FALSE - // passed initial checks - time to leap! - M.visible_message("[src] leaps at [M]'s face!", \ - "[src] leaps at [M]'s face!") - - // probiscis-blocker handling - if(iscarbon(M)) - var/mob/living/carbon/target = M - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.is_mouth_covered(head_only = 1)) - H.visible_message("[src] smashes against [H]'s [H.head]!", \ - "[src] smashes against [H]'s [H.head]!") - Die() - return FALSE - - if(target.wear_mask) - var/obj/item/clothing/W = target.wear_mask + // passed initial checks - time to leap! + M.visible_message("[src] leaps at [M]'s face!", \ + "[src] leaps at [M]'s face!") + + // probiscis-blocker handling + if(iscarbon(M)) + var/mob/living/carbon/target = M + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.is_mouth_covered(head_only = 1)) + H.visible_message("[src] smashes against [H]'s [H.head]!", \ + "[src] smashes against [H]'s [H.head]!") + Die() + return FALSE + + if(target.wear_mask) + var/obj/item/clothing/W = target.wear_mask if(target.dropItemToGround(W)) - target.visible_message("[src] tears [W] off of [target]'s face!", \ - "[src] tears [W] off of [target]'s face!") - target.equip_to_slot_if_possible(src, slot_wear_mask, 0, 1, 1) + target.visible_message("[src] tears [W] off of [target]'s face!", \ + "[src] tears [W] off of [target]'s face!") + target.equip_to_slot_if_possible(src, slot_wear_mask, 0, 1, 1) return TRUE // time for a smoke /obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M) if(!valid_to_attach(M)) return - // early returns and validity checks done: attach. - attached++ - //ensure we detach once we no longer need to be attached + // early returns and validity checks done: attach. + attached++ + //ensure we detach once we no longer need to be attached addtimer(CALLBACK(src, .proc/detach), MAX_IMPREGNATION_TIME) - - if (iscorgi(M)) - var/mob/living/simple_animal/pet/dog/corgi/C = M - loc = C - C.facehugger = src - C.regenerate_icons() - - if(!sterile) - M.take_bodypart_damage(strength,0) //done here so that humans in helmets take damage - M.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings - - GoIdle() //so it doesn't jump the people that tear it off - + + if (iscorgi(M)) + var/mob/living/simple_animal/pet/dog/corgi/C = M + loc = C + C.facehugger = src + C.regenerate_icons() + + if(!sterile) + M.take_bodypart_damage(strength,0) //done here so that humans in helmets take damage + M.Unconscious(MAX_IMPREGNATION_TIME/0.3) //something like 25 ticks = 20 seconds with the default settings + + GoIdle() //so it doesn't jump the people that tear it off + addtimer(CALLBACK(src, .proc/Impregnate, M), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME)) - + /obj/item/clothing/mask/facehugger/proc/detach() attached = 0 -/obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target) - if(!target || target.stat == DEAD) //was taken off or something - return - - if(iscarbon(target)) - var/mob/living/carbon/C = target - if(C.wear_mask != src) - return - - if(!sterile) - //target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance - target.visible_message("[src] falls limp after violating [target]'s face!", \ - "[src] falls limp after violating [target]'s face!") - - Die() - icon_state = "[initial(icon_state)]_impregnated" - - var/obj/item/bodypart/chest/LC = target.get_bodypart("chest") - if((!LC || LC.status != BODYPART_ROBOTIC) && !target.getorgan(/obj/item/organ/body_egg/alien_embryo)) - new /obj/item/organ/body_egg/alien_embryo(target) - - if(iscorgi(target)) - var/mob/living/simple_animal/pet/dog/corgi/C = target - src.loc = get_turf(C) - C.facehugger = null - else - target.visible_message("[src] violates [target]'s face!", \ - "[src] violates [target]'s face!") - -/obj/item/clothing/mask/facehugger/proc/GoActive() - if(stat == DEAD || stat == CONSCIOUS) - return - - stat = CONSCIOUS - icon_state = "[initial(icon_state)]" - -/obj/item/clothing/mask/facehugger/proc/GoIdle() - if(stat == DEAD || stat == UNCONSCIOUS) - return - - stat = UNCONSCIOUS - icon_state = "[initial(icon_state)]_inactive" - +/obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target) + if(!target || target.stat == DEAD) //was taken off or something + return + + if(iscarbon(target)) + var/mob/living/carbon/C = target + if(C.wear_mask != src) + return + + if(!sterile) + //target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance + target.visible_message("[src] falls limp after violating [target]'s face!", \ + "[src] falls limp after violating [target]'s face!") + + Die() + icon_state = "[initial(icon_state)]_impregnated" + + var/obj/item/bodypart/chest/LC = target.get_bodypart("chest") + if((!LC || LC.status != BODYPART_ROBOTIC) && !target.getorgan(/obj/item/organ/body_egg/alien_embryo)) + new /obj/item/organ/body_egg/alien_embryo(target) + + if(iscorgi(target)) + var/mob/living/simple_animal/pet/dog/corgi/C = target + src.loc = get_turf(C) + C.facehugger = null + else + target.visible_message("[src] violates [target]'s face!", \ + "[src] violates [target]'s face!") + +/obj/item/clothing/mask/facehugger/proc/GoActive() + if(stat == DEAD || stat == CONSCIOUS) + return + + stat = CONSCIOUS + icon_state = "[initial(icon_state)]" + +/obj/item/clothing/mask/facehugger/proc/GoIdle() + if(stat == DEAD || stat == UNCONSCIOUS) + return + + stat = UNCONSCIOUS + icon_state = "[initial(icon_state)]_inactive" + addtimer(CALLBACK(src, .proc/GoActive), rand(MIN_ACTIVE_TIME, MAX_ACTIVE_TIME)) - -/obj/item/clothing/mask/facehugger/proc/Die() - if(stat == DEAD) - return - - icon_state = "[initial(icon_state)]_dead" - item_state = "facehugger_inactive" - stat = DEAD - - visible_message("[src] curls up into a ball!") - -/proc/CanHug(mob/living/M) - if(!istype(M)) - return 0 - if(M.stat == DEAD) - return 0 - if(M.getorgan(/obj/item/organ/alien/hivenode)) - return 0 - - if(iscorgi(M) || ismonkey(M)) - return 1 - - var/mob/living/carbon/C = M - if(ishuman(C) && !(slot_wear_mask in C.dna.species.no_equip)) - var/mob/living/carbon/human/H = C - if(H.is_mouth_covered(head_only = 1)) - return 0 - return 1 - return 0 + +/obj/item/clothing/mask/facehugger/proc/Die() + if(stat == DEAD) + return + + icon_state = "[initial(icon_state)]_dead" + item_state = "facehugger_inactive" + stat = DEAD + + visible_message("[src] curls up into a ball!") + +/proc/CanHug(mob/living/M) + if(!istype(M)) + return 0 + if(M.stat == DEAD) + return 0 + if(M.getorgan(/obj/item/organ/alien/hivenode)) + return 0 + + if(iscorgi(M) || ismonkey(M)) + return 1 + + var/mob/living/carbon/C = M + if(ishuman(C) && !(slot_wear_mask in C.dna.species.no_equip)) + var/mob/living/carbon/human/H = C + if(H.is_mouth_covered(head_only = 1)) + return 0 + return 1 + return 0 #undef MIN_ACTIVE_TIME #undef MAX_ACTIVE_TIME diff --git a/code/modules/mob/living/carbon/alien/status_procs.dm b/code/modules/mob/living/carbon/alien/status_procs.dm index b63d233016..61de87b6cb 100644 --- a/code/modules/mob/living/carbon/alien/status_procs.dm +++ b/code/modules/mob/living/carbon/alien/status_procs.dm @@ -1,20 +1,20 @@ //Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage, +//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, ear damage, // eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. -/////////////////////////////////// STUNNED //////////////////////////////////// +/////////////////////////////////// STUN //////////////////////////////////// /mob/living/carbon/alien/Stun(amount, updating = 1, ignore_canstun = 0) . = ..() if(!.) move_delay_add = min(move_delay_add + round(amount / 2), 10) //a maximum delay of 10 -/mob/living/carbon/alien/SetStunned(amount, updating = 1, ignore_canstun = 0) +/mob/living/carbon/alien/SetStun(amount, updating = 1, ignore_canstun = 0) . = ..() if(!.) move_delay_add = min(move_delay_add + round(amount / 2), 10) -/mob/living/carbon/alien/AdjustStunned(amount, updating = 1, ignore_canstun = 0) +/mob/living/carbon/alien/AdjustStun(amount, updating = 1, ignore_canstun = 0) . = ..() if(!.) move_delay_add = Clamp(move_delay_add + round(amount/2), 0, 10) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e72c8a10a1..4415c0d7ab 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,494 +1,494 @@ -/mob/living/carbon - blood_volume = BLOOD_VOLUME_NORMAL - -/mob/living/carbon/Initialize() - create_reagents(1000) - update_body_parts() //to update the carbon's new bodyparts appearance - ..() - -/mob/living/carbon/Destroy() - for(var/guts in internal_organs) - qdel(guts) - for(var/atom/movable/food in stomach_contents) - qdel(food) - for(var/BP in bodyparts) - qdel(BP) - for(var/imp in implants) - qdel(imp) - bodyparts = list() - remove_from_all_data_huds() - if(dna) - qdel(dna) - return ..() - -/mob/living/carbon/relaymove(mob/user, direction) - if(user in src.stomach_contents) - if(prob(40)) - if(prob(25)) - audible_message("You hear something rumbling inside [src]'s stomach...", \ - "You hear something rumbling.", 4,\ - "Something is rumbling inside your stomach!") - var/obj/item/I = user.get_active_held_item() - if(I && I.force) - var/d = rand(round(I.force / 4), I.force) - var/obj/item/bodypart/BP = get_bodypart("chest") - if(BP.receive_damage(d, 0)) - update_damage_overlays() - visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ - "[user] attacks your stomach wall with the [I.name]!") - playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) - - if(prob(src.getBruteLoss() - 50)) - for(var/atom/movable/A in stomach_contents) - A.loc = loc - stomach_contents.Remove(A) - src.gib() - - -/mob/living/carbon/swap_hand(held_index) - if(!held_index) - held_index = (active_hand_index % held_items.len)+1 - - var/obj/item/item_in_hand = src.get_active_held_item() - if(item_in_hand) //this segment checks if the item in your hand is twohanded. - if(istype(item_in_hand,/obj/item/weapon/twohanded)) - if(item_in_hand:wielded == 1) - to_chat(usr, "Your other hand is too busy holding the [item_in_hand.name]") - return - var/oindex = active_hand_index - active_hand_index = held_index - if(hud_used) - var/obj/screen/inventory/hand/H - H = hud_used.hand_slots["[oindex]"] - if(H) - H.update_icon() - H = hud_used.hand_slots["[held_index]"] - if(H) - H.update_icon() - - -/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len - if(!selhand) - selhand = (active_hand_index % held_items.len)+1 - - if(istext(selhand)) - selhand = lowertext(selhand) - if(selhand == "right" || selhand == "r") - selhand = 2 - if(selhand == "left" || selhand == "l") - selhand = 1 - - if(selhand != active_hand_index) - swap_hand(selhand) - else - mode() // Activate held item - -/mob/living/carbon/attackby(obj/item/I, mob/user, params) - if(lying && surgeries.len) - if(user != src && user.a_intent == INTENT_HELP) - for(var/datum/surgery/S in surgeries) - if(S.next_step(user)) - return 1 - return ..() - -/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) - . = ..() - var/hurt = TRUE - if(istype(throwingdatum, /datum/thrownthing)) - var/datum/thrownthing/D = throwingdatum - if(iscyborg(D.thrower)) - var/mob/living/silicon/robot/R = D.thrower - if(!R.emagged) - hurt = FALSE - if(hit_atom.density && isturf(hit_atom)) - if(hurt) - Weaken(1) - take_bodypart_damage(10) - if(iscarbon(hit_atom) && hit_atom != src) - var/mob/living/carbon/victim = hit_atom - if(victim.movement_type & FLYING) - return - if(hurt) - victim.take_bodypart_damage(10) - take_bodypart_damage(10) - victim.Weaken(1) - Weaken(1) - visible_message("[src] crashes into [victim], knocking them both over!", "You violently crash into [victim]!") - playsound(src,'sound/weapons/punch1.ogg',50,1) - - -//Throwing stuff -/mob/living/carbon/proc/toggle_throw_mode() - if(stat) - return - if(in_throw_mode) - throw_mode_off() - else - throw_mode_on() - - -/mob/living/carbon/proc/throw_mode_off() - in_throw_mode = 0 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_off" - - -/mob/living/carbon/proc/throw_mode_on() - in_throw_mode = 1 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_on" - -/mob/proc/throw_item(atom/target) - return - -/mob/living/carbon/throw_item(atom/target) - throw_mode_off() - if(!target || !isturf(loc)) - return - if(istype(target, /obj/screen)) - return - - var/atom/movable/thrown_thing - var/obj/item/I = src.get_active_held_item() - - if(!I) - if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) - var/mob/living/throwable_mob = pulling - if(!throwable_mob.buckled) - thrown_thing = throwable_mob - stop_pulling() - var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors - var/turf/end_T = get_turf(target) - if(start_T && end_T) - var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]" - var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]" - add_logs(src, throwable_mob, "thrown", addition="from [start_T_descriptor] with the target [end_T_descriptor]") - - else if(!(I.flags & (NODROP|ABSTRACT))) - thrown_thing = I - dropItemToGround(I) - - if(thrown_thing) - visible_message("[src] has thrown [thrown_thing].") - newtonian_move(get_dir(target, src)) - thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src) - -/mob/living/carbon/restrained(ignore_grab) - . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) - -/mob/living/carbon/proc/canBeHandcuffed() - return 0 - - -/mob/living/carbon/show_inv(mob/user) - user.set_machine(src) - var/dat = {" -
    - [name] -
    -
    Head: [(head && !(head.flags&ABSTRACT)) ? head : "Nothing"] -
    Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"] -
    Neck: [(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "Nothing"]"} - - for(var/i in 1 to held_items.len) - var/obj/item/I = get_item_for_held_index(i) - dat += "
    [get_held_index_name(i)]:[(I && !(I.flags & ABSTRACT)) ? I : "Nothing"]" - - dat += "
    Back: [back ? back : "Nothing"]" - - if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank)) - dat += "
    [internal ? "Disable Internals" : "Set Internals"]" - - if(handcuffed) - dat += "
    Handcuffed" - if(legcuffed) - dat += "
    Legcuffed" - - dat += {" -
    -
    Close - "} - user << browse(dat, "window=mob\ref[src];size=325x500") - onclose(user, "mob\ref[src]") - -/mob/living/carbon/Topic(href, href_list) - ..() - //strip panel - if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - if(href_list["internal"]) - var/slot = text2num(href_list["internal"]) - var/obj/item/ITEM = get_item_by_slot(slot) - if(ITEM && istype(ITEM, /obj/item/weapon/tank) && wear_mask && (wear_mask.flags & MASKINTERNALS)) +/mob/living/carbon + blood_volume = BLOOD_VOLUME_NORMAL + +/mob/living/carbon/Initialize() + create_reagents(1000) + update_body_parts() //to update the carbon's new bodyparts appearance + ..() + +/mob/living/carbon/Destroy() + for(var/guts in internal_organs) + qdel(guts) + for(var/atom/movable/food in stomach_contents) + qdel(food) + for(var/BP in bodyparts) + qdel(BP) + for(var/imp in implants) + qdel(imp) + bodyparts = list() + remove_from_all_data_huds() + if(dna) + qdel(dna) + return ..() + +/mob/living/carbon/relaymove(mob/user, direction) + if(user in src.stomach_contents) + if(prob(40)) + if(prob(25)) + audible_message("You hear something rumbling inside [src]'s stomach...", \ + "You hear something rumbling.", 4,\ + "Something is rumbling inside your stomach!") + var/obj/item/I = user.get_active_held_item() + if(I && I.force) + var/d = rand(round(I.force / 4), I.force) + var/obj/item/bodypart/BP = get_bodypart("chest") + if(BP.receive_damage(d, 0)) + update_damage_overlays() + visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ + "[user] attacks your stomach wall with the [I.name]!") + playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + + if(prob(src.getBruteLoss() - 50)) + for(var/atom/movable/A in stomach_contents) + A.loc = loc + stomach_contents.Remove(A) + src.gib() + + +/mob/living/carbon/swap_hand(held_index) + if(!held_index) + held_index = (active_hand_index % held_items.len)+1 + + var/obj/item/item_in_hand = src.get_active_held_item() + if(item_in_hand) //this segment checks if the item in your hand is twohanded. + if(istype(item_in_hand,/obj/item/weapon/twohanded)) + if(item_in_hand:wielded == 1) + to_chat(usr, "Your other hand is too busy holding the [item_in_hand.name]") + return + var/oindex = active_hand_index + active_hand_index = held_index + if(hud_used) + var/obj/screen/inventory/hand/H + H = hud_used.hand_slots["[oindex]"] + if(H) + H.update_icon() + H = hud_used.hand_slots["[held_index]"] + if(H) + H.update_icon() + + +/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len + if(!selhand) + selhand = (active_hand_index % held_items.len)+1 + + if(istext(selhand)) + selhand = lowertext(selhand) + if(selhand == "right" || selhand == "r") + selhand = 2 + if(selhand == "left" || selhand == "l") + selhand = 1 + + if(selhand != active_hand_index) + swap_hand(selhand) + else + mode() // Activate held item + +/mob/living/carbon/attackby(obj/item/I, mob/user, params) + if(lying && surgeries.len) + if(user != src && user.a_intent == INTENT_HELP) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user)) + return 1 + return ..() + +/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) + . = ..() + var/hurt = TRUE + if(istype(throwingdatum, /datum/thrownthing)) + var/datum/thrownthing/D = throwingdatum + if(iscyborg(D.thrower)) + var/mob/living/silicon/robot/R = D.thrower + if(!R.emagged) + hurt = FALSE + if(hit_atom.density && isturf(hit_atom)) + if(hurt) + Knockdown(20) + take_bodypart_damage(10) + if(iscarbon(hit_atom) && hit_atom != src) + var/mob/living/carbon/victim = hit_atom + if(victim.movement_type & FLYING) + return + if(hurt) + victim.take_bodypart_damage(10) + take_bodypart_damage(10) + victim.Knockdown(20) + Knockdown(20) + visible_message("[src] crashes into [victim], knocking them both over!", "You violently crash into [victim]!") + playsound(src,'sound/weapons/punch1.ogg',50,1) + + +//Throwing stuff +/mob/living/carbon/proc/toggle_throw_mode() + if(stat) + return + if(in_throw_mode) + throw_mode_off() + else + throw_mode_on() + + +/mob/living/carbon/proc/throw_mode_off() + in_throw_mode = 0 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_off" + + +/mob/living/carbon/proc/throw_mode_on() + in_throw_mode = 1 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_on" + +/mob/proc/throw_item(atom/target) + return + +/mob/living/carbon/throw_item(atom/target) + throw_mode_off() + if(!target || !isturf(loc)) + return + if(istype(target, /obj/screen)) + return + + var/atom/movable/thrown_thing + var/obj/item/I = src.get_active_held_item() + + if(!I) + if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) + var/mob/living/throwable_mob = pulling + if(!throwable_mob.buckled) + thrown_thing = throwable_mob + stop_pulling() + var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors + var/turf/end_T = get_turf(target) + if(start_T && end_T) + var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]" + var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]" + add_logs(src, throwable_mob, "thrown", addition="from [start_T_descriptor] with the target [end_T_descriptor]") + + else if(!(I.flags & (NODROP|ABSTRACT))) + thrown_thing = I + dropItemToGround(I) + + if(thrown_thing) + visible_message("[src] has thrown [thrown_thing].") + newtonian_move(get_dir(target, src)) + thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src) + +/mob/living/carbon/restrained(ignore_grab) + . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) + +/mob/living/carbon/proc/canBeHandcuffed() + return 0 + + +/mob/living/carbon/show_inv(mob/user) + user.set_machine(src) + var/dat = {" +
    + [name] +
    +
    Head: [(head && !(head.flags&ABSTRACT)) ? head : "Nothing"] +
    Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"] +
    Neck: [(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "Nothing"]"} + + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "
    [get_held_index_name(i)]:[(I && !(I.flags & ABSTRACT)) ? I : "Nothing"]" + + dat += "
    Back: [back ? back : "Nothing"]" + + if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank)) + dat += "
    [internal ? "Disable Internals" : "Set Internals"]" + + if(handcuffed) + dat += "
    Handcuffed" + if(legcuffed) + dat += "
    Legcuffed" + + dat += {" +
    +
    Close + "} + user << browse(dat, "window=mob\ref[src];size=325x500") + onclose(user, "mob\ref[src]") + +/mob/living/carbon/Topic(href, href_list) + ..() + //strip panel + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(href_list["internal"]) + var/slot = text2num(href_list["internal"]) + var/obj/item/ITEM = get_item_by_slot(slot) + if(ITEM && istype(ITEM, /obj/item/weapon/tank) && wear_mask && (wear_mask.flags & MASKINTERNALS)) visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") - if(do_mob(usr, src, POCKET_STRIP_DELAY)) - if(internal) - internal = null - update_internals_hud_icon(0) - else if(ITEM && istype(ITEM, /obj/item/weapon/tank)) - if((wear_mask && (wear_mask.flags & MASKINTERNALS)) || getorganslot("breathing_tube")) - internal = ITEM - update_internals_hud_icon(1) - + if(do_mob(usr, src, POCKET_STRIP_DELAY)) + if(internal) + internal = null + update_internals_hud_icon(0) + else if(ITEM && istype(ITEM, /obj/item/weapon/tank)) + if((wear_mask && (wear_mask.flags & MASKINTERNALS)) || getorganslot("breathing_tube")) + internal = ITEM + update_internals_hud_icon(1) + visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") - - -/mob/living/carbon/fall(forced) - loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing - -/mob/living/carbon/is_muzzled() - return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) - -/mob/living/carbon/resist_buckle() - if(restrained()) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - visible_message("[src] attempts to unbuckle themself!", \ - "You attempt to unbuckle yourself... (This will take around one minute and you need to stay still.)") - if(do_after(src, 600, 0, target = src)) - if(!buckled) - return - buckled.user_unbuckle_mob(src,src) - else - if(src && buckled) - to_chat(src, "You fail to unbuckle yourself!") - else - buckled.user_unbuckle_mob(src,src) - -/mob/living/carbon/resist_fire() - fire_stacks -= 5 - Weaken(3, 1, 1) - spin(32,2) - visible_message("[src] rolls on the floor, trying to put themselves out!", \ - "You stop, drop, and roll!") - sleep(30) - if(fire_stacks <= 0) - visible_message("[src] has successfully extinguished themselves!", \ - "You extinguish yourself.") - ExtinguishMob() - return - -/mob/living/carbon/resist_restraints() - var/obj/item/I = null - var/type = 0 - if(handcuffed) - I = handcuffed - type = 1 - else if(legcuffed) - I = legcuffed - type = 2 - if(I) - if(type == 1) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - if(type == 2) - changeNext_move(CLICK_CD_RANGE) - last_special = world.time + CLICK_CD_RANGE - cuff_resist(I) - - -/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) - breakouttime = I.breakouttime - var/displaytime = breakouttime / 600 - if(!cuff_break) - visible_message("[src] attempts to remove [I]!") - to_chat(src, "You attempt to remove [I]... (This will take around [displaytime] minutes and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to remove [I]!") - - else if(cuff_break == FAST_CUFFBREAK) - breakouttime = 50 - visible_message("[src] is trying to break [I]!") - to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to break [I]!") - - else if(cuff_break == INSTANT_CUFFBREAK) - clear_cuffs(I, cuff_break) - -/mob/living/carbon/proc/uncuff() - if (handcuffed) - var/obj/item/weapon/W = handcuffed - handcuffed = null - if (buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - if (client) - client.screen -= W - if (W) - W.loc = loc - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) + + +/mob/living/carbon/fall(forced) + loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing + +/mob/living/carbon/is_muzzled() + return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) + +/mob/living/carbon/resist_buckle() + if(restrained()) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + visible_message("[src] attempts to unbuckle themself!", \ + "You attempt to unbuckle yourself... (This will take around one minute and you need to stay still.)") + if(do_after(src, 600, 0, target = src)) + if(!buckled) + return + buckled.user_unbuckle_mob(src,src) + else + if(src && buckled) + to_chat(src, "You fail to unbuckle yourself!") + else + buckled.user_unbuckle_mob(src,src) + +/mob/living/carbon/resist_fire() + fire_stacks -= 5 + Knockdown(60, TRUE, TRUE) + spin(32,2) + visible_message("[src] rolls on the floor, trying to put themselves out!", \ + "You stop, drop, and roll!") + sleep(30) + if(fire_stacks <= 0) + visible_message("[src] has successfully extinguished themselves!", \ + "You extinguish yourself.") + ExtinguishMob() + return + +/mob/living/carbon/resist_restraints() + var/obj/item/I = null + var/type = 0 + if(handcuffed) + I = handcuffed + type = 1 + else if(legcuffed) + I = legcuffed + type = 2 + if(I) + if(type == 1) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + if(type == 2) + changeNext_move(CLICK_CD_RANGE) + last_special = world.time + CLICK_CD_RANGE + cuff_resist(I) + + +/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) + breakouttime = I.breakouttime + var/displaytime = breakouttime / 600 + if(!cuff_break) + visible_message("[src] attempts to remove [I]!") + to_chat(src, "You attempt to remove [I]... (This will take around [displaytime] minutes and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to remove [I]!") + + else if(cuff_break == FAST_CUFFBREAK) + breakouttime = 50 + visible_message("[src] is trying to break [I]!") + to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to break [I]!") + + else if(cuff_break == INSTANT_CUFFBREAK) + clear_cuffs(I, cuff_break) + +/mob/living/carbon/proc/uncuff() + if (handcuffed) + var/obj/item/weapon/W = handcuffed + handcuffed = null + if (buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + if (client) + client.screen -= W + if (W) + W.loc = loc + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) changeNext_move(0) - if (legcuffed) - var/obj/item/weapon/W = legcuffed - legcuffed = null - update_inv_legcuffed() - if (client) - client.screen -= W - if (W) - W.loc = loc - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) + if (legcuffed) + var/obj/item/weapon/W = legcuffed + legcuffed = null + update_inv_legcuffed() + if (client) + client.screen -= W + if (W) + W.loc = loc + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) changeNext_move(0) - -/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) - if(!I.loc || buckled) - return - visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") - to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") - - if(cuff_break) - qdel(I) - if(I == handcuffed) - handcuffed = null - update_handcuffed() - return - else if(I == legcuffed) - legcuffed = null - update_inv_legcuffed() - return - return TRUE - - else - if(I == handcuffed) - handcuffed.loc = loc - handcuffed.dropped(src) - handcuffed = null - if(buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - return - if(I == legcuffed) - legcuffed.loc = loc - legcuffed.dropped() - legcuffed = null - update_inv_legcuffed() - return - else - dropItemToGround(I) - return - return TRUE - -/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) - if(lying) - return -6 - else - return initial(pixel_y) - -/mob/living/carbon/proc/accident(obj/item/I) - if(!I || (I.flags & (NODROP|ABSTRACT))) - return - - dropItemToGround(I) - - var/modifier = 0 - if(disabilities & CLUMSY) - modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! - - switch(rand(1,100)+modifier) //91-100=Nothing special happens - if(-INFINITY to 0) //attack yourself - I.attack(src,src) - if(1 to 30) //throw it at yourself - I.throw_impact(src) - if(31 to 60) //Throw object in facing direction - var/turf/target = get_turf(loc) - var/range = rand(2,I.throw_range) - for(var/i = 1; i < range; i++) - var/turf/new_turf = get_step(target, dir) - target = new_turf - if(new_turf.density) - break - I.throw_at(target,I.throw_range,I.throw_speed,src) - if(61 to 90) //throw it down to the floor - var/turf/target = get_turf(loc) - I.throw_at(target,I.throw_range,I.throw_speed,src) - -/mob/living/carbon/proc/AddAbility(obj/effect/proc_holder/alien/A) - abilities.Add(A) - A.on_gain(src) - if(A.has_action) - A.action.Grant(src) - sortInsert(abilities, /proc/cmp_abilities_cost, 0) - -/mob/living/carbon/proc/RemoveAbility(obj/effect/proc_holder/alien/A) - abilities.Remove(A) - A.on_lose(src) - if(A.action) - A.action.Remove(src) - -/mob/living/carbon/proc/add_abilities_to_panel() - for(var/obj/effect/proc_holder/alien/A in abilities) - statpanel("[A.panel]",A.plasma_cost > 0?"([A.plasma_cost])":"",A) - -/mob/living/carbon/Stat() - ..() - if(statpanel("Status")) - var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) - if(vessel) - stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") - if(locate(/obj/item/device/assembly/health) in src) - stat(null, "Health: [health]") - - add_abilities_to_panel() - -/mob/living/carbon/attack_ui(slot) - if(!has_hand_for_held_index(active_hand_index)) - return 0 - return ..() - + +/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) + if(!I.loc || buckled) + return + visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") + to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") + + if(cuff_break) + qdel(I) + if(I == handcuffed) + handcuffed = null + update_handcuffed() + return + else if(I == legcuffed) + legcuffed = null + update_inv_legcuffed() + return + return TRUE + + else + if(I == handcuffed) + handcuffed.loc = loc + handcuffed.dropped(src) + handcuffed = null + if(buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + return + if(I == legcuffed) + legcuffed.loc = loc + legcuffed.dropped() + legcuffed = null + update_inv_legcuffed() + return + else + dropItemToGround(I) + return + return TRUE + +/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) + if(lying) + return -6 + else + return initial(pixel_y) + +/mob/living/carbon/proc/accident(obj/item/I) + if(!I || (I.flags & (NODROP|ABSTRACT))) + return + + dropItemToGround(I) + + var/modifier = 0 + if(disabilities & CLUMSY) + modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! + + switch(rand(1,100)+modifier) //91-100=Nothing special happens + if(-INFINITY to 0) //attack yourself + I.attack(src,src) + if(1 to 30) //throw it at yourself + I.throw_impact(src) + if(31 to 60) //Throw object in facing direction + var/turf/target = get_turf(loc) + var/range = rand(2,I.throw_range) + for(var/i = 1; i < range; i++) + var/turf/new_turf = get_step(target, dir) + target = new_turf + if(new_turf.density) + break + I.throw_at(target,I.throw_range,I.throw_speed,src) + if(61 to 90) //throw it down to the floor + var/turf/target = get_turf(loc) + I.throw_at(target,I.throw_range,I.throw_speed,src) + +/mob/living/carbon/proc/AddAbility(obj/effect/proc_holder/alien/A) + abilities.Add(A) + A.on_gain(src) + if(A.has_action) + A.action.Grant(src) + sortInsert(abilities, /proc/cmp_abilities_cost, 0) + +/mob/living/carbon/proc/RemoveAbility(obj/effect/proc_holder/alien/A) + abilities.Remove(A) + A.on_lose(src) + if(A.action) + A.action.Remove(src) + +/mob/living/carbon/proc/add_abilities_to_panel() + for(var/obj/effect/proc_holder/alien/A in abilities) + statpanel("[A.panel]",A.plasma_cost > 0?"([A.plasma_cost])":"",A) + +/mob/living/carbon/Stat() + ..() + if(statpanel("Status")) + var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) + if(vessel) + stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") + if(locate(/obj/item/device/assembly/health) in src) + stat(null, "Health: [health]") + + add_abilities_to_panel() + +/mob/living/carbon/attack_ui(slot) + if(!has_hand_for_held_index(active_hand_index)) + return 0 + return ..() + /mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) - if(dna && dna.species && NOHUNGER in dna.species.species_traits) - return 1 - - if(nutrition < 100 && !blood) - if(message) - visible_message("[src] dry heaves!", \ - "You try to throw up, but there's nothing in your stomach!") - if(stun) - Weaken(10) - return 1 - - if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious - if(message) - visible_message("[src] throws up all over themself!", \ - "You throw up all over yourself!") - distance = 0 - else - if(message) - visible_message("[src] throws up!", "You throw up!") - - if(stun) - Stun(4) - - playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) - var/turf/T = get_turf(src) + if(dna && dna.species && NOHUNGER in dna.species.species_traits) + return 1 + + if(nutrition < 100 && !blood) + if(message) + visible_message("[src] dry heaves!", \ + "You try to throw up, but there's nothing in your stomach!") + if(stun) + Knockdown(200) + return 1 + + if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious + if(message) + visible_message("[src] throws up all over themself!", \ + "You throw up all over yourself!") + distance = 0 + else + if(message) + visible_message("[src] throws up!", "You throw up!") + + if(stun) + Stun(80) + + playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) + var/turf/T = get_turf(src) if(!blood) nutrition -= lost_nutrition adjustToxLoss(-3) - for(var/i=0 to distance) - if(blood) - if(T) - add_splatter_floor(T) - if(stun) - adjustBruteLoss(3) - else - if(T) + for(var/i=0 to distance) + if(blood) + if(T) + add_splatter_floor(T) + if(stun) + adjustBruteLoss(3) + else + if(T) T.add_vomit_floor(src, toxic)//toxic barf looks different - T = get_step(T, dir) - if (is_blocked_turf(T)) - break - return 1 - + T = get_step(T, dir) + if (is_blocked_turf(T)) + break + return 1 + /mob/living/carbon/proc/spew_organ(power = 5) if(!internal_organs.len) return //Guess we're out of organs @@ -499,315 +499,315 @@ var/atom/throw_target = get_edge_target_turf(guts, dir) guts.throw_at(throw_target, power, 4, src) - -/mob/living/carbon/fully_replace_character_name(oldname,newname) - ..() - if(dna) - dna.real_name = real_name - -//Updates the mob's health from bodyparts and mob damage variables -/mob/living/carbon/updatehealth() - if(status_flags & GODMODE) - return - var/total_burn = 0 - var/total_brute = 0 - for(var/X in bodyparts) //hardcoded to streamline things a bit - var/obj/item/bodypart/BP = X - total_brute += BP.brute_dam - total_burn += BP.burn_dam - health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute - update_stat() - if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) - become_husk() - med_hud_set_health() - -/mob/living/carbon/update_sight() - if(!client) - return - if(stat == DEAD) - sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_OBSERVER - return - - sight = initial(sight) - lighting_alpha = initial(lighting_alpha) - var/obj/item/organ/eyes/E = getorganslot("eye_sight") - if(!E) - update_tint() - else - see_invisible = E.see_invisible - see_in_dark = E.see_in_dark - sight |= E.sight_flags - if(!isnull(E.lighting_alpha)) - lighting_alpha = E.lighting_alpha - - if(client.eye != src) - var/atom/A = client.eye - if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. - return - - if(glasses) - var/obj/item/clothing/glasses/G = glasses - sight |= G.vision_flags - see_in_dark = max(G.darkness_view, see_in_dark) - if(G.invis_override) - see_invisible = G.invis_override - else - see_invisible = min(G.invis_view, see_invisible) - if(!isnull(G.lighting_alpha)) - lighting_alpha = min(lighting_alpha, G.lighting_alpha) - if(dna) - for(var/X in dna.mutations) - var/datum/mutation/M = X - if(M.name == XRAY) - sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = max(see_in_dark, 8) - - if(see_override) - see_invisible = see_override - . = ..() - - -//to recalculate and update the mob's total tint from tinted equipment it's wearing. -/mob/living/carbon/proc/update_tint() - if(!GLOB.tinted_weldhelh) - return - tinttotal = get_total_tint() - if(tinttotal >= TINT_BLIND) - overlay_fullscreen("tint", /obj/screen/fullscreen/blind) - else if(tinttotal >= TINT_DARKENED) - overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) - else - clear_fullscreen("tint", 0) - -/mob/living/carbon/proc/get_total_tint() - . = 0 - if(istype(head, /obj/item/clothing/head)) - var/obj/item/clothing/head/HT = head - . += HT.tint - if(wear_mask) - . += wear_mask.tint - - var/obj/item/organ/eyes/E = getorganslot("eye_sight") - if(E) - . += E.tint - - else - . += INFINITY - -//this handles hud updates -/mob/living/carbon/update_damage_hud() - - if(!client) - return - - if(stat == UNCONSCIOUS && health <= HEALTH_THRESHOLD_CRIT) - var/severity = 0 - switch(health) - if(-20 to -10) severity = 1 - if(-30 to -20) severity = 2 - if(-40 to -30) severity = 3 - if(-50 to -40) severity = 4 - if(-60 to -50) severity = 5 - if(-70 to -60) severity = 6 - if(-80 to -70) severity = 7 - if(-90 to -80) severity = 8 - if(-95 to -90) severity = 9 - if(-INFINITY to -95) severity = 10 - overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) - else - clear_fullscreen("crit") - if(oxyloss) - var/severity = 0 - switch(oxyloss) - if(10 to 20) severity = 1 - if(20 to 25) severity = 2 - if(25 to 30) severity = 3 - if(30 to 35) severity = 4 - if(35 to 40) severity = 5 - if(40 to 45) severity = 6 - if(45 to INFINITY) severity = 7 - overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) - else - clear_fullscreen("oxy") - - //Fire and Brute damage overlay (BSSR) - var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp - if(hurtdamage) - var/severity = 0 - switch(hurtdamage) - if(5 to 15) severity = 1 - if(15 to 30) severity = 2 - if(30 to 45) severity = 3 - if(45 to 70) severity = 4 - if(70 to 85) severity = 5 - if(85 to INFINITY) severity = 6 - overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) - else - clear_fullscreen("brute") - -/mob/living/carbon/update_health_hud(shown_health_amount) - if(!client || !hud_used) - return - if(hud_used.healths) - if(stat != DEAD) - . = 1 - if(!shown_health_amount) - shown_health_amount = health - if(shown_health_amount >= maxHealth) - hud_used.healths.icon_state = "health0" - else if(shown_health_amount > maxHealth*0.8) - hud_used.healths.icon_state = "health1" - else if(shown_health_amount > maxHealth*0.6) - hud_used.healths.icon_state = "health2" - else if(shown_health_amount > maxHealth*0.4) - hud_used.healths.icon_state = "health3" - else if(shown_health_amount > maxHealth*0.2) - hud_used.healths.icon_state = "health4" - else if(shown_health_amount > 0) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - hud_used.healths.icon_state = "health7" - -/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) - if(hud_used && hud_used.internals) - hud_used.internals.icon_state = "internal[internal_state]" - -/mob/living/carbon/update_stat() - if(status_flags & GODMODE) - return - if(stat != DEAD) + +/mob/living/carbon/fully_replace_character_name(oldname,newname) + ..() + if(dna) + dna.real_name = real_name + +//Updates the mob's health from bodyparts and mob damage variables +/mob/living/carbon/updatehealth() + if(status_flags & GODMODE) + return + var/total_burn = 0 + var/total_brute = 0 + for(var/X in bodyparts) //hardcoded to streamline things a bit + var/obj/item/bodypart/BP = X + total_brute += BP.brute_dam + total_burn += BP.burn_dam + health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute + update_stat() + if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) + become_husk() + med_hud_set_health() + +/mob/living/carbon/update_sight() + if(!client) + return + if(stat == DEAD) + sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_OBSERVER + return + + sight = initial(sight) + lighting_alpha = initial(lighting_alpha) + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(!E) + update_tint() + else + see_invisible = E.see_invisible + see_in_dark = E.see_in_dark + sight |= E.sight_flags + if(!isnull(E.lighting_alpha)) + lighting_alpha = E.lighting_alpha + + if(client.eye != src) + var/atom/A = client.eye + if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. + return + + if(glasses) + var/obj/item/clothing/glasses/G = glasses + sight |= G.vision_flags + see_in_dark = max(G.darkness_view, see_in_dark) + if(G.invis_override) + see_invisible = G.invis_override + else + see_invisible = min(G.invis_view, see_invisible) + if(!isnull(G.lighting_alpha)) + lighting_alpha = min(lighting_alpha, G.lighting_alpha) + if(dna) + for(var/X in dna.mutations) + var/datum/mutation/M = X + if(M.name == XRAY) + sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = max(see_in_dark, 8) + + if(see_override) + see_invisible = see_override + . = ..() + + +//to recalculate and update the mob's total tint from tinted equipment it's wearing. +/mob/living/carbon/proc/update_tint() + if(!GLOB.tinted_weldhelh) + return + tinttotal = get_total_tint() + if(tinttotal >= TINT_BLIND) + overlay_fullscreen("tint", /obj/screen/fullscreen/blind) + else if(tinttotal >= TINT_DARKENED) + overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) + else + clear_fullscreen("tint", 0) + +/mob/living/carbon/proc/get_total_tint() + . = 0 + if(istype(head, /obj/item/clothing/head)) + var/obj/item/clothing/head/HT = head + . += HT.tint + if(wear_mask) + . += wear_mask.tint + + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(E) + . += E.tint + + else + . += INFINITY + +//this handles hud updates +/mob/living/carbon/update_damage_hud() + + if(!client) + return + + if(stat == UNCONSCIOUS && health <= HEALTH_THRESHOLD_CRIT) + var/severity = 0 + switch(health) + if(-20 to -10) severity = 1 + if(-30 to -20) severity = 2 + if(-40 to -30) severity = 3 + if(-50 to -40) severity = 4 + if(-60 to -50) severity = 5 + if(-70 to -60) severity = 6 + if(-80 to -70) severity = 7 + if(-90 to -80) severity = 8 + if(-95 to -90) severity = 9 + if(-INFINITY to -95) severity = 10 + overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) + else + clear_fullscreen("crit") + if(oxyloss) + var/severity = 0 + switch(oxyloss) + if(10 to 20) severity = 1 + if(20 to 25) severity = 2 + if(25 to 30) severity = 3 + if(30 to 35) severity = 4 + if(35 to 40) severity = 5 + if(40 to 45) severity = 6 + if(45 to INFINITY) severity = 7 + overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) + else + clear_fullscreen("oxy") + + //Fire and Brute damage overlay (BSSR) + var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp + if(hurtdamage) + var/severity = 0 + switch(hurtdamage) + if(5 to 15) severity = 1 + if(15 to 30) severity = 2 + if(30 to 45) severity = 3 + if(45 to 70) severity = 4 + if(70 to 85) severity = 5 + if(85 to INFINITY) severity = 6 + overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) + else + clear_fullscreen("brute") + +/mob/living/carbon/update_health_hud(shown_health_amount) + if(!client || !hud_used) + return + if(hud_used.healths) + if(stat != DEAD) + . = 1 + if(!shown_health_amount) + shown_health_amount = health + if(shown_health_amount >= maxHealth) + hud_used.healths.icon_state = "health0" + else if(shown_health_amount > maxHealth*0.8) + hud_used.healths.icon_state = "health1" + else if(shown_health_amount > maxHealth*0.6) + hud_used.healths.icon_state = "health2" + else if(shown_health_amount > maxHealth*0.4) + hud_used.healths.icon_state = "health3" + else if(shown_health_amount > maxHealth*0.2) + hud_used.healths.icon_state = "health4" + else if(shown_health_amount > 0) + hud_used.healths.icon_state = "health5" + else + hud_used.healths.icon_state = "health6" + else + hud_used.healths.icon_state = "health7" + +/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) + if(hud_used && hud_used.internals) + hud_used.internals.icon_state = "internal[internal_state]" + +/mob/living/carbon/update_stat() + if(status_flags & GODMODE) + return + if(stat != DEAD) if(health<= HEALTH_THRESHOLD_DEAD) - death() - return - if(paralysis || sleeping || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) - if(stat == CONSCIOUS) - stat = UNCONSCIOUS - blind_eyes(1) - update_canmove() - else - if(stat == UNCONSCIOUS) - stat = CONSCIOUS - resting = 0 - adjust_blindness(-1) - update_canmove() - update_damage_hud() - update_health_hud() - med_hud_set_status() - -//called when we get cuffed/uncuffed -/mob/living/carbon/proc/update_handcuffed() - if(handcuffed) - drop_all_held_items() - stop_pulling() - throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) - else - clear_alert("handcuffed") - update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. - update_inv_handcuffed() - update_hud_handcuffed() - -/mob/living/carbon/fully_heal(admin_revive = 0) - if(reagents) - reagents.clear_reagents() - var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) - if(B) - B.damaged_brain = 0 - for(var/datum/disease/D in viruses) - if (D.severity != NONTHREAT) - D.cure(0) - if(admin_revive) - regenerate_limbs() - regenerate_organs() - handcuffed = initial(handcuffed) - for(var/obj/item/weapon/restraints/R in contents) //actually remove cuffs from inventory - qdel(R) - update_handcuffed() - if(reagents) - reagents.addiction_list = list() - ..() + death() + return + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) + if(stat == CONSCIOUS) + stat = UNCONSCIOUS + blind_eyes(1) + update_canmove() + else + if(stat == UNCONSCIOUS) + stat = CONSCIOUS + resting = 0 + adjust_blindness(-1) + update_canmove() + update_damage_hud() + update_health_hud() + med_hud_set_status() + +//called when we get cuffed/uncuffed +/mob/living/carbon/proc/update_handcuffed() + if(handcuffed) + drop_all_held_items() + stop_pulling() + throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) + else + clear_alert("handcuffed") + update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. + update_inv_handcuffed() + update_hud_handcuffed() + +/mob/living/carbon/fully_heal(admin_revive = 0) + if(reagents) + reagents.clear_reagents() + var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) + if(B) + B.damaged_brain = 0 + for(var/datum/disease/D in viruses) + if (D.severity != NONTHREAT) + D.cure(0) + if(admin_revive) + regenerate_limbs() + regenerate_organs() + handcuffed = initial(handcuffed) + for(var/obj/item/weapon/restraints/R in contents) //actually remove cuffs from inventory + qdel(R) + update_handcuffed() + if(reagents) + reagents.addiction_list = list() + ..() // heal ears after healing disabilities, since ears check DEAF disability // when healing. restoreEars() - -/mob/living/carbon/can_be_revived() - . = ..() + +/mob/living/carbon/can_be_revived() + . = ..() if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.changeling)) - return 0 - -/mob/living/carbon/harvest(mob/living/user) - if(QDELETED(src)) - return - var/organs_amt = 0 - for(var/X in internal_organs) - var/obj/item/organ/O = X - if(prob(50)) - organs_amt++ - O.Remove(src) - O.loc = get_turf(src) - if(organs_amt) - to_chat(user, "You retrieve some of [src]\'s internal organs!") - - ..() - -/mob/living/carbon/ExtinguishMob() - for(var/X in get_equipped_items()) - var/obj/item/I = X - I.acid_level = 0 //washes off the acid on our clothes - I.extinguish() //extinguishes our clothes - ..() - -/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") + return 0 + +/mob/living/carbon/harvest(mob/living/user) + if(QDELETED(src)) + return + var/organs_amt = 0 + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(prob(50)) + organs_amt++ + O.Remove(src) + O.loc = get_turf(src) + if(organs_amt) + to_chat(user, "You retrieve some of [src]\'s internal organs!") + + ..() + +/mob/living/carbon/ExtinguishMob() + for(var/X in get_equipped_items()) + var/obj/item/I = X + I.acid_level = 0 //washes off the acid on our clothes + I.extinguish() //extinguishes our clothes + ..() + +/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) - new_fire_overlay.appearance_flags = RESET_COLOR - overlays_standing[FIRE_LAYER] = new_fire_overlay - apply_overlay(FIRE_LAYER) - -/mob/living/carbon/fakefireextinguish() - remove_overlay(FIRE_LAYER) - - -/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) - C.visible_message("[src] is attempting to devour [C]!", \ - "[src] is attempting to devour you!") - if(!do_mob(src, C, devour_time)) - return - if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) - C.visible_message("[src] devours [C]!", \ - "[src] devours you!") - C.forceMove(src) - stomach_contents.Add(C) - add_logs(src, C, "devoured") - -/mob/living/carbon/proc/create_bodyparts() - var/l_arm_index_next = -1 - var/r_arm_index_next = 0 - for(var/X in bodyparts) - var/obj/item/bodypart/O = new X() - O.owner = src - bodyparts.Remove(X) - bodyparts.Add(O) - if(O.body_part == ARM_LEFT) - l_arm_index_next += 2 - O.held_index = l_arm_index_next //1, 3, 5, 7... - hand_bodyparts += O - else if(O.body_part == ARM_RIGHT) - r_arm_index_next += 2 - O.held_index = r_arm_index_next //2, 4, 6, 8... - hand_bodyparts += O - - -/mob/living/carbon/proc/create_internal_organs() - for(var/X in internal_organs) - var/obj/item/organ/I = X - I.Insert(src) - -/mob/living/carbon/vv_get_dropdown() - . = ..() - . += "---" - .["Make AI"] = "?_src_=vars;makeai=\ref[src]" - .["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]" - .["Modify organs"] = "?_src_=vars;editorgans=\ref[src]" + new_fire_overlay.appearance_flags = RESET_COLOR + overlays_standing[FIRE_LAYER] = new_fire_overlay + apply_overlay(FIRE_LAYER) + +/mob/living/carbon/fakefireextinguish() + remove_overlay(FIRE_LAYER) + + +/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) + C.visible_message("[src] is attempting to devour [C]!", \ + "[src] is attempting to devour you!") + if(!do_mob(src, C, devour_time)) + return + if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) + C.visible_message("[src] devours [C]!", \ + "[src] devours you!") + C.forceMove(src) + stomach_contents.Add(C) + add_logs(src, C, "devoured") + +/mob/living/carbon/proc/create_bodyparts() + var/l_arm_index_next = -1 + var/r_arm_index_next = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/O = new X() + O.owner = src + bodyparts.Remove(X) + bodyparts.Add(O) + if(O.body_part == ARM_LEFT) + l_arm_index_next += 2 + O.held_index = l_arm_index_next //1, 3, 5, 7... + hand_bodyparts += O + else if(O.body_part == ARM_RIGHT) + r_arm_index_next += 2 + O.held_index = r_arm_index_next //2, 4, 6, 8... + hand_bodyparts += O + + +/mob/living/carbon/proc/create_internal_organs() + for(var/X in internal_organs) + var/obj/item/organ/I = X + I.Insert(src) + +/mob/living/carbon/vv_get_dropdown() + . = ..() + . += "---" + .["Make AI"] = "?_src_=vars;makeai=\ref[src]" + .["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]" + .["Modify organs"] = "?_src_=vars;editorgans=\ref[src]" diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 91e75034b4..e1a538a0c7 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,7 +1,7 @@ - -/mob/living/carbon/get_eye_protection() - var/number = ..() - + +/mob/living/carbon/get_eye_protection() + var/number = ..() + if(istype(src.head, /obj/item/clothing/head)) //are they wearing something on their head var/obj/item/clothing/head/HFP = src.head //if yes gets the flash protection value from that item number += HFP.flash_protect @@ -14,19 +14,19 @@ var/obj/item/clothing/mask/MFP = src.wear_mask number += MFP.flash_protect - var/obj/item/organ/eyes/E = getorganslot("eye_sight") - if(!E) - number = INFINITY //Can't get flashed without eyes - else - number += E.flash_protect + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(!E) + number = INFINITY //Can't get flashed without eyes + else + number += E.flash_protect - return number - -/mob/living/carbon/get_ear_protection() + return number + +/mob/living/carbon/get_ear_protection() var/number = ..() if(ears && HAS_SECONDARY_FLAG(ears, BANG_PROTECT)) number += 1 - if(head && HAS_SECONDARY_FLAG(head, BANG_PROTECT)) + if(head && HAS_SECONDARY_FLAG(head, BANG_PROTECT)) number += 1 var/obj/item/organ/ears/E = getorganslot("ears") if(!E) @@ -34,7 +34,7 @@ else number += E.bang_protect return number - + /mob/living/carbon/is_mouth_covered(head_only = 0, mask_only = 0) if( (!mask_only && head && (head.flags_cover & HEADCOVERSMOUTH)) || (!head_only && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH)) ) return TRUE @@ -47,274 +47,269 @@ if(check_mask && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH)) return TRUE -/mob/living/carbon/check_projectile_dismemberment(obj/item/projectile/P, def_zone) - var/obj/item/bodypart/affecting = get_bodypart(def_zone) - if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) - affecting.dismember(P.damtype) - -/mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked = 0) - if(!skipcatch) //ugly, but easy - if(in_throw_mode && !get_active_held_item()) //empty active hand and we're in throw mode - if(canmove && !restrained()) - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(isturf(I.loc)) - put_in_active_hand(I) - visible_message("[src] catches [I]!") - throw_mode_off() - return 1 - ..() - - -/mob/living/carbon/attacked_by(obj/item/I, mob/living/user) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) - if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) - affecting = bodyparts[1] - send_item_attack_message(I, user, affecting.name) - if(I.force) - apply_damage(I.force, I.damtype, affecting) - damage_clothes(I.force, I.damtype, "melee", affecting.body_zone) - if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC) - if(prob(33)) - I.add_mob_blood(src) - var/turf/location = get_turf(src) - add_splatter_floor(location) - if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood - user.add_mob_blood(src) - - if(affecting.body_zone == "head") - if(wear_mask) - wear_mask.add_mob_blood(src) - update_inv_wear_mask() - if(wear_neck) - wear_neck.add_mob_blood(src) - update_inv_neck() - if(head) - head.add_mob_blood(src) - update_inv_head() - - //dismemberment - var/probability = I.get_dismemberment_chance(affecting) - if(prob(probability)) - if(affecting.dismember(I.damtype)) - I.add_mob_blood(src) - playsound(get_turf(src), I.get_dismember_sound(), 80, 1) - return TRUE //successful attack - -/mob/living/carbon/attack_drone(mob/living/simple_animal/drone/user) - return //so we don't call the carbon's attack_hand(). - -/mob/living/carbon/attack_hand(mob/living/carbon/human/user) - - for(var/datum/disease/D in viruses) - if(D.IsSpreadByTouch()) - user.ContractDisease(D) - - for(var/datum/disease/D in user.viruses) - if(D.IsSpreadByTouch()) - ContractDisease(D) - - if(lying && surgeries.len) - if(user.a_intent == INTENT_HELP) - for(var/datum/surgery/S in surgeries) - if(S.next_step(user)) - return 1 - return 0 - - -/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M) - for(var/datum/disease/D in viruses) - if(D.IsSpreadByTouch()) - M.ContractDisease(D) - - for(var/datum/disease/D in M.viruses) - if(D.IsSpreadByTouch()) - ContractDisease(D) - - if(M.a_intent == INTENT_HELP) - help_shake_act(M) - return 0 - - if(..()) //successful monkey bite. - for(var/datum/disease/D in M.viruses) - ForceContractDisease(D) - return 1 - - -/mob/living/carbon/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime attack - if(M.powerlevel > 0) - var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10 - if(prob(stunprob)) - M.powerlevel -= 3 - if(M.powerlevel < 0) - M.powerlevel = 0 - - visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked [src]!") - +/mob/living/carbon/check_projectile_dismemberment(obj/item/projectile/P, def_zone) + var/obj/item/bodypart/affecting = get_bodypart(def_zone) + if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) + affecting.dismember(P.damtype) + +/mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked = 0) + if(!skipcatch) //ugly, but easy + if(in_throw_mode && !get_active_held_item()) //empty active hand and we're in throw mode + if(canmove && !restrained()) + if(istype(AM, /obj/item)) + var/obj/item/I = AM + if(isturf(I.loc)) + put_in_active_hand(I) + visible_message("[src] catches [I]!") + throw_mode_off() + return 1 + ..() + + +/mob/living/carbon/attacked_by(obj/item/I, mob/living/user) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) + if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) + affecting = bodyparts[1] + send_item_attack_message(I, user, affecting.name) + if(I.force) + apply_damage(I.force, I.damtype, affecting) + damage_clothes(I.force, I.damtype, "melee", affecting.body_zone) + if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC) + if(prob(33)) + I.add_mob_blood(src) + var/turf/location = get_turf(src) + add_splatter_floor(location) + if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood + user.add_mob_blood(src) + + if(affecting.body_zone == "head") + if(wear_mask) + wear_mask.add_mob_blood(src) + update_inv_wear_mask() + if(wear_neck) + wear_neck.add_mob_blood(src) + update_inv_neck() + if(head) + head.add_mob_blood(src) + update_inv_head() + + //dismemberment + var/probability = I.get_dismemberment_chance(affecting) + if(prob(probability)) + if(affecting.dismember(I.damtype)) + I.add_mob_blood(src) + playsound(get_turf(src), I.get_dismember_sound(), 80, 1) + return TRUE //successful attack + +/mob/living/carbon/attack_drone(mob/living/simple_animal/drone/user) + return //so we don't call the carbon's attack_hand(). + +/mob/living/carbon/attack_hand(mob/living/carbon/human/user) + + for(var/datum/disease/D in viruses) + if(D.IsSpreadByTouch()) + user.ContractDisease(D) + + for(var/datum/disease/D in user.viruses) + if(D.IsSpreadByTouch()) + ContractDisease(D) + + if(lying && surgeries.len) + if(user.a_intent == INTENT_HELP) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user)) + return 1 + return 0 + + +/mob/living/carbon/attack_paw(mob/living/carbon/monkey/M) + for(var/datum/disease/D in viruses) + if(D.IsSpreadByTouch()) + M.ContractDisease(D) + + for(var/datum/disease/D in M.viruses) + if(D.IsSpreadByTouch()) + ContractDisease(D) + + if(M.a_intent == INTENT_HELP) + help_shake_act(M) + return 0 + + if(..()) //successful monkey bite. + for(var/datum/disease/D in M.viruses) + ForceContractDisease(D) + return 1 + + +/mob/living/carbon/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime attack + if(M.powerlevel > 0) + var/stunprob = M.powerlevel * 7 + 10 // 17 at level 1, 80 at level 10 + if(prob(stunprob)) + M.powerlevel -= 3 + if(M.powerlevel < 0) + M.powerlevel = 0 + + visible_message("The [M.name] has shocked [src]!", \ + "The [M.name] has shocked [src]!") + do_sparks(5, TRUE, src) - var/power = M.powerlevel + rand(0,3) - Weaken(power) - if(stuttering < power) - stuttering = power - Stun(power) - if (prob(stunprob) && M.powerlevel >= 8) - adjustFireLoss(M.powerlevel * rand(6,10)) - updatehealth() - return 1 - -/mob/living/carbon/proc/dismembering_strike(mob/living/attacker, dam_zone) - if(!attacker.limb_destroyer) - return dam_zone - var/obj/item/bodypart/affecting - if(dam_zone && attacker.client) - affecting = get_bodypart(ran_zone(dam_zone)) - else - var/list/things_to_ruin = shuffle(bodyparts.Copy()) - for(var/B in things_to_ruin) - var/obj/item/bodypart/bodypart = B - if(bodypart.body_zone == "head" || bodypart.body_zone == "chest") - continue - if(!affecting || ((affecting.get_damage() / affecting.max_damage) < (bodypart.get_damage() / bodypart.max_damage))) - affecting = bodypart - if(affecting) - dam_zone = affecting.body_zone - if(affecting.get_damage() >= affecting.max_damage) - affecting.dismember() - return null - return affecting.body_zone - return dam_zone - - -/mob/living/carbon/blob_act(obj/structure/blob/B) - if (stat == DEAD) - return - else - show_message("The blob attacks!") - adjustBruteLoss(10) - -/mob/living/carbon/emp_act(severity) - for(var/X in internal_organs) - var/obj/item/organ/O = X - O.emp_act(severity) - ..() - -/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0, stun = TRUE) + var/power = M.powerlevel + rand(0,3) + Knockdown(power*20) + if(stuttering < power) + stuttering = power + if (prob(stunprob) && M.powerlevel >= 8) + adjustFireLoss(M.powerlevel * rand(6,10)) + updatehealth() + return 1 + +/mob/living/carbon/proc/dismembering_strike(mob/living/attacker, dam_zone) + if(!attacker.limb_destroyer) + return dam_zone + var/obj/item/bodypart/affecting + if(dam_zone && attacker.client) + affecting = get_bodypart(ran_zone(dam_zone)) + else + var/list/things_to_ruin = shuffle(bodyparts.Copy()) + for(var/B in things_to_ruin) + var/obj/item/bodypart/bodypart = B + if(bodypart.body_zone == "head" || bodypart.body_zone == "chest") + continue + if(!affecting || ((affecting.get_damage() / affecting.max_damage) < (bodypart.get_damage() / bodypart.max_damage))) + affecting = bodypart + if(affecting) + dam_zone = affecting.body_zone + if(affecting.get_damage() >= affecting.max_damage) + affecting.dismember() + return null + return affecting.body_zone + return dam_zone + + +/mob/living/carbon/blob_act(obj/structure/blob/B) + if (stat == DEAD) + return + else + show_message("The blob attacks!") + adjustBruteLoss(10) + +/mob/living/carbon/emp_act(severity) + for(var/X in internal_organs) + var/obj/item/organ/O = X + O.emp_act(severity) + ..() + +/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0, stun = TRUE) if(tesla_shock && HAS_SECONDARY_FLAG(src, TESLA_IGNORE)) - return FALSE - shock_damage *= siemens_coeff - if(dna && dna.species) - shock_damage *= dna.species.siemens_coeff - if(shock_damage<1 && !override) - return 0 - if(reagents.has_reagent("teslium")) - shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! - if(illusion) - adjustStaminaLoss(shock_damage) - else - take_overall_damage(0,shock_damage) - visible_message( - "[src] was shocked by \the [source]!", \ - "You feel a powerful shock coursing through your body!", \ - "You hear a heavy electrical crack." \ - ) - jitteriness += 1000 //High numbers for violent convulsions - do_jitter_animation(jitteriness) - stuttering += 2 - if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun) - Stun(2) - spawn(20) - jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less - if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun) - Stun(3) - Weaken(3) - if(override) - return override - else - return shock_damage - -/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) - if(on_fire) - to_chat(M, "You can't put them out with just your bare hands!") - return - - if(health >= 0 && !(status_flags & FAKEDEATH)) - - if(lying) - M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ - "You shake [src] trying to get [p_them()] up!") - else if(check_zone(M.zone_selected) == "head") - M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ - "You give [src] a pat on the head to make [p_them()] feel better!") - if(dna && dna.species && ((dna.features["tail_lizard"] != "None") || (dna.features["tail_human"] != "None") || ("mam_tail" in dna.species.mutant_bodyparts))) - emote("wag") //lewd - else - M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ - "You hug [src] to make [p_them()] feel better!") - AdjustSleeping(-5) - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - if(resting) - resting = 0 - update_canmove() - - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - - -/mob/living/carbon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) - . = ..() - - var/damage = intensity - get_eye_protection() - if(.) // we've been flashed - if(visual) - return - - if (damage == 1) - to_chat(src, "Your eyes sting a little.") - if(prob(40)) - adjust_eye_damage(1) - - else if (damage == 2) - to_chat(src, "Your eyes burn.") - adjust_eye_damage(rand(2, 4)) - - else if( damage > 3) - to_chat(src, "Your eyes itch and burn severely!") - adjust_eye_damage(rand(12, 16)) - - if(eye_damage > 10) - blind_eyes(damage) - blur_eyes(damage * rand(3, 6)) - - if(eye_damage > 20) - if(prob(eye_damage - 20)) - if(become_nearsighted()) - to_chat(src, "Your eyes start to burn badly!") - else if(prob(eye_damage - 25)) - if(become_blind()) - to_chat(src, "You can't see anything!") - else - to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!") - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(-500) - return 1 - else if(damage == 0) // just enough protection - if(prob(20)) - to_chat(src, "Something bright flashes in the corner of your vision!") - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(0) - - -/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 1, damage_pwr = 5, deafen_pwr = 15) - var/ear_safety = get_ear_protection() + return FALSE + shock_damage *= siemens_coeff + if(dna && dna.species) + shock_damage *= dna.species.siemens_coeff + if(shock_damage<1 && !override) + return 0 + if(reagents.has_reagent("teslium")) + shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! + if(illusion) + adjustStaminaLoss(shock_damage) + else + take_overall_damage(0,shock_damage) + visible_message( + "[src] was shocked by \the [source]!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + jitteriness += 1000 //High numbers for violent convulsions + do_jitter_animation(jitteriness) + stuttering += 2 + if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun) + Stun(40) + spawn(20) + jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less + if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun) + Knockdown(60) + if(override) + return override + else + return shock_damage + +/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) + if(on_fire) + to_chat(M, "You can't put them out with just your bare hands!") + return + + if(health >= 0 && !(status_flags & FAKEDEATH)) + + if(lying) + M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ + "You shake [src] trying to get [p_them()] up!") + else + M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ + "You hug [src] to make [p_them()] feel better!") + AdjustStun(-60) + AdjustKnockdown(-60) + AdjustUnconscious(-60) + AdjustSleeping(-100) + if(resting) + resting = 0 + update_canmove() + + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + + +/mob/living/carbon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) + . = ..() + + var/damage = intensity - get_eye_protection() + if(.) // we've been flashed + var/obj/item/organ/eyes/eyes = getorganslot("eyes_sight") + if (!eyes) + return + if(visual) + return + + if (damage == 1) + to_chat(src, "Your eyes sting a little.") + if(prob(40)) + adjust_eye_damage(1) + + else if (damage == 2) + to_chat(src, "Your eyes burn.") + adjust_eye_damage(rand(2, 4)) + + else if( damage > 3) + to_chat(src, "Your eyes itch and burn severely!") + adjust_eye_damage(rand(12, 16)) + + if(eyes.eye_damage > 10) + blind_eyes(damage) + blur_eyes(damage * rand(3, 6)) + + if(eyes.eye_damage > 20) + if(prob(eyes.eye_damage - 20)) + if(become_nearsighted()) + to_chat(src, "Your eyes start to burn badly!") + else if(prob(eyes.eye_damage - 25)) + if(become_blind()) + to_chat(src, "You can't see anything!") + else + to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!") + if(has_bane(BANE_LIGHT)) + mind.disrupt_spells(-500) + return 1 + else if(damage == 0) // just enough protection + if(prob(20)) + to_chat(src, "Something bright flashes in the corner of your vision!") + if(has_bane(BANE_LIGHT)) + mind.disrupt_spells(0) + + +/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15) + var/ear_safety = get_ear_protection() var/obj/item/organ/ears/ears = getorganslot("ears") var/effect_amount = intensity - ear_safety if(effect_amount > 0) if(stun_pwr) - Stun(stun_pwr*effect_amount) - Weaken(stun_pwr*effect_amount) + Knockdown(stun_pwr*effect_amount) if(istype(ears) && (deafen_pwr || damage_pwr)) var/ear_damage = damage_pwr * effect_amount @@ -330,23 +325,23 @@ else if(ears.ear_damage >= 5) to_chat(src, "Your ears start to ring!") src << sound('sound/weapons/flash_ring.ogg',0,1,0,250) - return effect_amount //how soundbanged we are - - -/mob/living/carbon/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) - if(damage_type != BRUTE && damage_type != BURN) - return - damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed - if(!def_zone || def_zone == "head") - var/obj/item/clothing/hit_clothes - if(wear_mask) - hit_clothes = wear_mask - if(wear_neck) - hit_clothes = wear_neck - if(head) - hit_clothes = head - if(hit_clothes) - hit_clothes.take_damage(damage_amount, damage_type, damage_flag, 0) + return effect_amount //how soundbanged we are + + +/mob/living/carbon/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) + if(damage_type != BRUTE && damage_type != BURN) + return + damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed + if(!def_zone || def_zone == "head") + var/obj/item/clothing/hit_clothes + if(wear_mask) + hit_clothes = wear_mask + if(wear_neck) + hit_clothes = wear_neck + if(head) + hit_clothes = head + if(hit_clothes) + hit_clothes.take_damage(damage_amount, damage_type, damage_flag, 0) /mob/living/carbon/can_hear() . = FALSE diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index ad1ee3143b..1acc2a9264 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -1,50 +1,49 @@ -/mob/living/carbon - gender = MALE - pressure_resistance = 15 - possible_a_intents = list(INTENT_HELP, INTENT_HARM) - var/list/stomach_contents = list() - var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know. - var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access. - - var/silent = 0 //Can't talk. Value goes down every life proc. //NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU. - - var/obj/item/handcuffed = null //Whether or not the mob is handcuffed - var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. - -//inventory slots - var/obj/item/back = null - var/obj/item/clothing/mask/wear_mask = null - var/obj/item/clothing/neck/wear_neck = null - var/obj/item/weapon/tank/internal = null - var/obj/item/head = null - - var/obj/item/gloves = null //only used by humans - var/obj/item/shoes = null //only used by humans. - var/obj/item/clothing/glasses/glasses = null //only used by humans. - var/obj/item/ears = null //only used by humans. - - var/datum/dna/dna = null//Carbon - var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning - - var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. - - var/co2overloadtime = null - var/temperature_resistance = T0C+75 - has_limbs = 1 - var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab - - var/list/obj/effect/proc_holder/alien/abilities = list() - var/gib_type = /obj/effect/decal/cleanable/blood/gibs - - var/rotate_on_lying = 1 - - var/tinttotal = 0 // Total level of visualy impairing items - - var/list/bodyparts = list(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm, - /obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg) - //Gets filled up in create_bodyparts() - - var/list/hand_bodyparts = list() //a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems) +/mob/living/carbon + gender = MALE + pressure_resistance = 15 + possible_a_intents = list(INTENT_HELP, INTENT_HARM) + var/list/stomach_contents = list() + var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know. + var/list/internal_organs_slot= list() //Same as above, but stores "slot ID" - "organ" pairs for easy access. + var/silent = 0 //Can't talk. Value goes down every life proc. //NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU. - var/icon_render_key = "" - var/static/list/limb_icon_cache = list() \ No newline at end of file + var/obj/item/handcuffed = null //Whether or not the mob is handcuffed + var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. + +//inventory slots + var/obj/item/back = null + var/obj/item/clothing/mask/wear_mask = null + var/obj/item/clothing/neck/wear_neck = null + var/obj/item/weapon/tank/internal = null + var/obj/item/head = null + + var/obj/item/gloves = null //only used by humans + var/obj/item/shoes = null //only used by humans. + var/obj/item/clothing/glasses/glasses = null //only used by humans. + var/obj/item/ears = null //only used by humans. + + var/datum/dna/dna = null//Carbon + var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning + + var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. + + var/co2overloadtime = null + var/temperature_resistance = T0C+75 + has_limbs = 1 + var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab + + var/list/obj/effect/proc_holder/alien/abilities = list() + var/gib_type = /obj/effect/decal/cleanable/blood/gibs + + var/rotate_on_lying = 1 + + var/tinttotal = 0 // Total level of visualy impairing items + + var/list/bodyparts = list(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm, + /obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg) + //Gets filled up in create_bodyparts() + + var/list/hand_bodyparts = list() //a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems) + + var/icon_render_key = "" + var/static/list/limb_icon_cache = list() diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 374ff4bd22..62bcb9c6ec 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -19,12 +19,12 @@ if(legcuffed) . += legcuffed.slowdown -/mob/living/carbon/slip(s_amount, w_amount, obj/O, lube) +/mob/living/carbon/slip(knockdown_amount, obj/O, lube) if(movement_type & FLYING) return 0 if(!(lube&SLIDE_ICE)) add_logs(src,, "slipped",, "on [O ? O.name : "floor"]") - return loc.handle_slip(src, s_amount, w_amount, O, lube) + return loc.handle_slip(src, knockdown_amount, O, lube) /mob/living/carbon/Process_Spacemove(movement_dir = 0) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 9d2e91dd1f..abe997fd83 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -6,7 +6,7 @@ return 0 var/obj/item/bodypart/BP = null - if(islimb(def_zone)) //we specified a bodypart object + if(isbodypart(def_zone)) //we specified a bodypart object BP = def_zone else if(!def_zone) @@ -36,6 +36,7 @@ adjustCloneLoss(damage * hit_percent) if(STAMINA) adjustStaminaLoss(damage * hit_percent) + //citadel code if(AROUSAL) adjustArousalLoss(damage * hit_percent) return 1 diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 1d6d373db5..c6c7196755 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -1,58 +1,58 @@ -/mob/living/carbon/death(gibbed) - if(stat == DEAD) - return - - silent = 0 - losebreath = 0 - - if(!gibbed) - emote("deathgasp") - - . = ..() - if(SSticker && SSticker.mode) - SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now - -/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) - for(var/mob/M in src) - if(M in stomach_contents) - stomach_contents.Remove(M) - M.forceMove(loc) - visible_message("[M] bursts out of [src]!") - ..() - -/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) - if(!no_bodyparts) - if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. - for(var/X in internal_organs) +/mob/living/carbon/death(gibbed) + if(stat == DEAD) + return + + silent = 0 + losebreath = 0 + + if(!gibbed) + emote("deathgasp") + + . = ..() + if(SSticker && SSticker.mode) + SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now + +/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) + for(var/mob/M in src) + if(M in stomach_contents) + stomach_contents.Remove(M) + M.forceMove(loc) + visible_message("[M] bursts out of [src]!") + ..() + +/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) + if(!no_bodyparts) + if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. + for(var/X in internal_organs) if(no_brain || !istype(X, /obj/item/organ/brain)) qdel(X) - else //we're going to drop all bodyparts except chest, so the only organs that needs spilling are those inside it. - for(var/X in internal_organs) - var/obj/item/organ/O = X - if(no_brain && istype(O, /obj/item/organ/brain)) - qdel(O) //so the brain isn't transfered to the head when the head drops. - continue - var/org_zone = check_zone(O.zone) //both groin and chest organs. - if(org_zone == "chest") - O.Remove(src) - O.forceMove(get_turf(src)) - O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) - else - for(var/X in internal_organs) - var/obj/item/organ/I = X - if(no_brain && istype(I, /obj/item/organ/brain)) - qdel(I) - continue + else //we're going to drop all bodyparts except chest, so the only organs that needs spilling are those inside it. + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(no_brain && istype(O, /obj/item/organ/brain)) + qdel(O) //so the brain isn't transfered to the head when the head drops. + continue + var/org_zone = check_zone(O.zone) //both groin and chest organs. + if(org_zone == "chest") + O.Remove(src) + O.forceMove(get_turf(src)) + O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) + else + for(var/X in internal_organs) + var/obj/item/organ/I = X + if(no_brain && istype(I, /obj/item/organ/brain)) + qdel(I) + continue if(no_organs && !istype(I, /obj/item/organ/brain)) qdel(I) continue - I.Remove(src) - I.forceMove(get_turf(src)) - I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) - - -/mob/living/carbon/spread_bodyparts() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - BP.drop_limb() + I.Remove(src) + I.forceMove(get_turf(src)) + I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) + + +/mob/living/carbon/spread_bodyparts() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + BP.drop_limb() BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index c17126656f..04dba44ee5 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -1,50 +1,50 @@ -/mob/living/carbon/human/gib_animation() +/mob/living/carbon/human/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-h") - -/mob/living/carbon/human/dust_animation() + +/mob/living/carbon/human/dust_animation() new /obj/effect/temp_visual/dust_animation(loc, "dust-h") - -/mob/living/carbon/human/spawn_gibs(with_bodyparts) - if(with_bodyparts) - new /obj/effect/gibspawner/human(loc, viruses, dna) - else - new /obj/effect/gibspawner/humanbodypartless(loc, viruses, dna) - -/mob/living/carbon/human/spawn_dust(just_ash = FALSE) - if(just_ash) - new /obj/effect/decal/cleanable/ash(loc) - else - new /obj/effect/decal/remains/human(loc) - -/mob/living/carbon/human/death(gibbed) - if(stat == DEAD) - return - - . = ..() - - dizziness = 0 - jitteriness = 0 - - if(istype(loc, /obj/mecha)) - var/obj/mecha/M = loc - if(M.occupant == src) - M.go_out() - - dna.species.spec_death(gibbed, src) - - if(SSticker && SSticker.mode) + +/mob/living/carbon/human/spawn_gibs(with_bodyparts) + if(with_bodyparts) + new /obj/effect/gibspawner/human(loc, viruses, dna) + else + new /obj/effect/gibspawner/humanbodypartless(loc, viruses, dna) + +/mob/living/carbon/human/spawn_dust(just_ash = FALSE) + if(just_ash) + new /obj/effect/decal/cleanable/ash(loc) + else + new /obj/effect/decal/remains/human(loc) + +/mob/living/carbon/human/death(gibbed) + if(stat == DEAD) + return + + . = ..() + + dizziness = 0 + jitteriness = 0 + + if(istype(loc, /obj/mecha)) + var/obj/mecha/M = loc + if(M.occupant == src) + M.go_out() + + dna.species.spec_death(gibbed, src) + + if(SSticker.HasRoundStarted()) SSblackbox.ReportDeath(src) - if(is_devil(src)) - INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) - -/mob/living/carbon/human/proc/makeSkeleton() - status_flags |= DISFIGURED - set_species(/datum/species/skeleton) - return 1 - - -/mob/living/carbon/proc/Drain() - become_husk() - disabilities |= NOCLONE - blood_volume = 0 - return 1 + if(is_devil(src)) + INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) + +/mob/living/carbon/human/proc/makeSkeleton() + status_flags |= DISFIGURED + set_species(/datum/species/skeleton) + return 1 + + +/mob/living/carbon/proc/Drain() + become_husk() + disabilities |= NOCLONE + blood_volume = 0 + return 1 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 50cbcfb3b3..bf578d6b0b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -19,10 +19,10 @@ if(istype(w_uniform,/obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform if(U.attached_accessory) - accessory_msg += " with \icon[U.attached_accessory] \a [U.attached_accessory]" + accessory_msg += " with [bicon(U.attached_accessory)] \a [U.attached_accessory]" if(w_uniform.blood_DNA) - msg += "[t_He] [t_is] wearing [bicon(w_uniform)] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name][accessory_msg]!\n" + msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name][accessory_msg]!\n" else msg += "[t_He] [t_is] wearing [bicon(w_uniform)] \a [w_uniform][accessory_msg].\n" @@ -258,10 +258,12 @@ msg += "[t_He] looks like a drunken mess.\n" if(91.01 to INFINITY) msg += "[t_He] [t_is] a shitfaced, slobbering wreck.\n" + for (var/I in src.vore_organs) var/datum/belly/B = vore_organs[I] msg += B.get_examine_msg() + msg += "" if(!appears_dead) @@ -332,7 +334,7 @@ msg += "\[Add comment\]\n" if(print_flavor_text() && get_visible_name() != "Unknown")//Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation. msg += "[print_flavor_text()]\n" - + msg += "*---------*" to_chat(user, msg) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ee90c30cdf..09486cce18 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -53,9 +53,8 @@ internal_organs += new dna.species.mutanteyes internal_organs += new dna.species.mutantears - internal_organs += new /obj/item/organ/brain internal_organs += new dna.species.mutanttongue - give_genitals() + internal_organs += new /obj/item/organ/brain ..() /mob/living/carbon/human/OpenCraftingMenu() @@ -85,10 +84,6 @@ stat("Tank Pressure", internal.air_contents.return_pressure()) stat("Distribution Pressure", internal.distribute_pressure) - var/mob/living/simple_animal/borer/B = has_brain_worms() - if(B && B.controlling) - stat("Chemicals", B.chemicals) - if(mind) if(mind.changeling) stat("Chemical Storage", "[mind.changeling.chem_charges]/[mind.changeling.chem_storage]") @@ -228,7 +223,6 @@ /mob/living/carbon/human/Topic(href, href_list) if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - if(href_list["embedded_object"]) var/obj/item/bodypart/L = locate(href_list["embedded_limb"]) in bodyparts if(!L) @@ -503,7 +497,7 @@ to_chat(usr, "Unable to locate a data core entry for this person.") /mob/living/carbon/human/proc/canUseHUD() - return !(src.stat || src.weakened || src.stunned || src.restrained()) + return !(src.stat || IsKnockdown() || IsStun() || src.restrained()) /mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone, var/penetrate_thick = 0) . = 1 // Default to returning true. @@ -551,8 +545,8 @@ else return null -/mob/living/carbon/human/assess_threat(mob/living/simple_animal/bot/secbot/judgebot, lasercolor) - if(judgebot.emagged == 2) +/mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) + if(judgement_criteria & JUDGE_EMAGGED) return 10 //Everyone is a criminal! var/threatcount = 0 @@ -579,20 +573,20 @@ //Check for ID var/obj/item/weapon/card/id/idcard = get_idcard() - if(judgebot.idcheck && !idcard && name=="Unknown") + if( (judgement_criteria & JUDGE_IDCHECK) && !idcard && name=="Unknown") threatcount += 4 //Check for weapons - if(judgebot.weaponscheck) + if( (judgement_criteria & JUDGE_WEAPONCHECK) && weaponcheck) if(!idcard || !(GLOB.access_weapons in idcard.access)) for(var/obj/item/I in held_items) - if(judgebot.check_for_weapons(I)) + if(weaponcheck.Invoke(I)) threatcount += 4 - if(judgebot.check_for_weapons(belt)) + if(weaponcheck.Invoke(belt)) threatcount += 2 //Check for arrest warrant - if(judgebot.check_records) + if(judgement_criteria & JUDGE_RECORDCHECK) var/perpname = get_face_name(get_id_name()) var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security) if(R && R.fields["criminal"]) @@ -885,7 +879,7 @@ visible_message("[src] dry heaves!", \ "You try to throw up, but there's nothing in your stomach!") if(stun) - Weaken(10) + Knockdown(200) return 1 ..() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 636b88871d..f7d13de37c 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -1,749 +1,747 @@ -/mob/living/carbon/human/getarmor(def_zone, type) - var/armorval = 0 - var/organnum = 0 - - if(def_zone) - if(islimb(def_zone)) - return checkarmor(def_zone, type) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(def_zone)) - return checkarmor(affecting, type) - //If a specific bodypart is targetted, check how that bodypart is protected and return the value. - - //If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - armorval += checkarmor(BP, type) - organnum++ - return (armorval/max(organnum, 1)) - - -/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type) - if(!d_type) - return 0 - var/protection = 0 - var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) - for(var/bp in body_parts) - if(!bp) - continue - if(bp && istype(bp ,/obj/item/clothing)) - var/obj/item/clothing/C = bp - if(C.body_parts_covered & def_zone.body_part) - protection += C.armor[d_type] - return protection - -/mob/living/carbon/human/on_hit(obj/item/projectile/P) - dna.species.on_hit(P, src) - - -/mob/living/carbon/human/bullet_act(obj/item/projectile/P, def_zone) - var/spec_return = dna.species.bullet_act(P, src) - if(spec_return) - return spec_return - - if(mind) - if(mind.martial_art && mind.martial_art.deflection_chance) //Some martial arts users can deflect projectiles! - if(prob(mind.martial_art.deflection_chance)) - if(!lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it - visible_message("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons!", "You deflect the projectile!") - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - return 0 - - if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) - if(check_reflect(def_zone)) // Checks if you've passed a reflection% check - visible_message("The [P.name] gets reflected by [src]!", \ - "The [P.name] gets reflected by [src]!") - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.current = curloc - P.firer = src - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - P.Angle = null - - return -1 // complete projectile permutation - - if(check_shields(P.damage, "the [P.name]", P, PROJECTILE_ATTACK, P.armour_penetration)) - P.on_hit(src, 100, def_zone) - return 2 - - return (..(P , def_zone)) - -/mob/living/carbon/human/proc/check_reflect(def_zone) //Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object - if(wear_suit) - if(wear_suit.IsReflect(def_zone) == 1) - return 1 - for(var/obj/item/I in held_items) - if(I.IsReflect(def_zone) == 1) - return 1 - return 0 - -/mob/living/carbon/human/proc/check_shields(damage = 0, attack_text = "the attack", atom/movable/AM, attack_type = MELEE_ATTACK, armour_penetration = 0) - var/block_chance_modifier = round(damage / -3) - - for(var/obj/item/I in held_items) - if(!istype(I, /obj/item/clothing)) - var/final_block_chance = I.block_chance - (Clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example - if(I.hit_reaction(src, attack_text, final_block_chance, damage, attack_type, AM)) - return 1 - if(wear_suit) - var/final_block_chance = wear_suit.block_chance - (Clamp((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier - if(wear_suit.hit_reaction(src, attack_text, final_block_chance, damage, attack_type, AM)) - return 1 - if(w_uniform) - var/final_block_chance = w_uniform.block_chance - (Clamp((armour_penetration-w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier - if(w_uniform.hit_reaction(src, attack_text, final_block_chance, damage, attack_type, AM)) - return 1 - return 0 - -/mob/living/carbon/human/proc/check_block() - if(mind) - if(mind.martial_art && mind.martial_art.block_chance \ - && prob(mind.martial_art.block_chance) && in_throw_mode \ - && !stat && !weakened && !stunned) - return TRUE - return FALSE - -/mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) - var/spec_return = dna.species.spec_hitby(AM, src) - if(spec_return) - return spec_return - var/obj/item/I - var/throwpower = 30 - if(istype(AM, /obj/item)) - I = AM - throwpower = I.throwforce - if(I.thrownby == src) //No throwing stuff at yourself to trigger hit reactions - return ..() - if(check_shields(throwpower, "\the [AM.name]", AM, THROWN_PROJECTILE_ATTACK)) - hitpush = 0 - skipcatch = 1 - blocked = 1 - else if(I) - if(I.throw_speed >= EMBED_THROWSPEED_THRESHOLD) - if(can_embed(I)) - if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.species_traits))) - throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) - var/obj/item/bodypart/L = pick(bodyparts) - L.embedded_objects |= I - I.add_mob_blood(src)//it embedded itself in you, of course it's bloody! - I.loc = src - L.receive_damage(I.w_class*I.embedded_impact_pain_multiplier) - visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!") - hitpush = 0 - skipcatch = 1 //can't catch the now embedded item - - return ..() - -/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0) - if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && isliving(pulling)) - vore_attack(user, pulling) - else - ..() - -/mob/living/carbon/human/grippedby(mob/living/user) - if(w_uniform) - w_uniform.add_fingerprint(user) - ..() - - -/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user) - if(!I || !user) - return 0 - - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) //what we're actually ending up trying to hit. - var/target_area = parse_zone(check_zone(user.zone_selected)) //our intended target - SSblackbox.add_details("item_used_for_combat","[I.type]|[I.force]") - SSblackbox.add_details("zone_targeted","[target_area]") - - // the attacked_by code varies among species - return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) - - -/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) - if(user.a_intent == INTENT_HARM) - var/hulk_verb = pick("smash","pummel") - if(check_shields(15, "the [hulk_verb]ing")) - return - ..(user, 1) - playsound(loc, user.dna.species.attack_sound, 25, 1, -1) - var/message = "[user] has [hulk_verb]ed [src]!" - visible_message("[message]", \ - "[message]") - adjustBruteLoss(15) - damage_clothes(15, BRUTE, "melee") - return 1 - -/mob/living/carbon/human/attack_hand(mob/user) - if(..()) //to allow surgery to return properly. - return - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.a_intent == INTENT_DISARM) - if(H.buckled_mobs && (src in H.buckled_mobs) && H.riding_datum) - H.riding_datum.force_dismount(src) - dna.species.spec_attack_hand(H, src) - - -/mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - if(!affecting) - affecting = get_bodypart("chest") - if(M.a_intent == INTENT_HELP) - ..() //shaking - return 0 - - if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead. - if(get_active_held_item() && drop_item()) - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] disarmed [src]!", \ - "[M] disarmed [src]!") - else if(!M.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly) - playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(5) - add_logs(M, src, "tackled") - visible_message("[M] has tackled down [src]!", \ - "[M] has tackled down [src]!") - - if(M.limb_destroyer) - dismembering_strike(M, affecting.body_zone) - - if(can_inject(M, 1, affecting))//Thick suits can stop monkey bites. - if(..()) //successful monkey bite, this handles disease contraction. - var/damage = rand(1, 3) - if(check_shields(damage)) - return 0 - if(stat != DEAD) - apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) - damage_clothes(damage, BRUTE, "melee", affecting.body_zone) - return 1 - -/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M) - if(check_shields(0, M.name)) - visible_message("[M] attempted to touch [src]!") - return 0 - - if(..()) - if(M.a_intent == INTENT_HARM) - if (w_uniform) - w_uniform.add_fingerprint(M) - var/damage = prob(90) ? 20 : 0 - if(!damage) - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) - visible_message("[M] has lunged at [src]!", \ - "[M] has lunged at [src]!") - return 0 - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) - if(!affecting) - affecting = get_bodypart("chest") - var/armor_block = run_armor_check(affecting, "melee","","",10) - - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") - add_logs(M, src, "attacked") - if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful - return 1 - apply_damage(damage, BRUTE, affecting, armor_block) - damage_clothes(damage, BRUTE, "melee", affecting.body_zone) - - if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead. - if(get_active_held_item() && drop_item()) - playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] disarmed [src]!", \ - "[M] disarmed [src]!") - else - playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(5) - add_logs(M, src, "tackled") - visible_message("[M] has tackled down [src]!", \ - "[M] has tackled down [src]!") - - -/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) - - if(..()) //successful larva bite. - var/damage = rand(1, 3) - if(check_shields(damage, "the [L.name]")) - return 0 - if(stat != DEAD) - L.amount_grown = min(L.amount_grown + damage, L.max_grown) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) - if(!affecting) - affecting = get_bodypart("chest") - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - damage_clothes(damage, BRUTE, "melee", affecting.body_zone) - - -/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) - . = ..() - if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - if(check_shields(damage, "the [M.name]", null, MELEE_ATTACK, M.armour_penetration)) - return FALSE - var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) - if(!dam_zone) //Dismemberment successful - return TRUE - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - if(!affecting) - affecting = get_bodypart("chest") - var/armor = run_armor_check(affecting, "melee", armour_penetration = M.armour_penetration) - apply_damage(damage, M.melee_damage_type, affecting, armor) - damage_clothes(damage, M.melee_damage_type, "melee", affecting.body_zone) - - -/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M) - if(..()) //successful slime attack - var/damage = rand(5, 25) - if(M.is_adult) - damage = rand(10, 35) - - if(check_shields(damage, "the [M.name]")) - return 0 - - var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) - if(!dam_zone) //Dismemberment successful - return 1 - - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - if(!affecting) - affecting = get_bodypart("chest") - var/armor_block = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block) - damage_clothes(damage, BRUTE, "melee", affecting.body_zone) - -/mob/living/carbon/human/mech_melee_attack(obj/mecha/M) - - if(M.occupant.a_intent == INTENT_HARM) - M.do_attack_animation(src) - if(M.damtype == "brute") - step_away(src,M,15) - var/obj/item/bodypart/temp = get_bodypart(pick("chest", "chest", "chest", "head")) - if(temp) - var/update = 0 - var/dmg = rand(M.force/2, M.force) - switch(M.damtype) - if("brute") - if(M.force > 20) - Paralyse(1) - update |= temp.receive_damage(dmg, 0) - playsound(src, 'sound/weapons/punch4.ogg', 50, 1) - damage_clothes(dmg, BRUTE, "melee", temp.body_zone) - if("fire") - update |= temp.receive_damage(0, dmg) - playsound(src, 'sound/items/Welder.ogg', 50, 1) - damage_clothes(dmg, BURN, "melee", temp.body_zone) - if("tox") - M.mech_toxin_damage(src) - else - return - if(update) - update_damage_overlays() - updatehealth() - - visible_message("[M.name] has hit [src]!", \ - "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) - add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") - - else - ..() - - -/mob/living/carbon/human/ex_act(severity, target, origin) - - if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) - return - ..() - var/b_loss = 0 - var/f_loss = 0 - var/bomb_armor = getarmor(null, "bomb") - - switch (severity) - if (1) - if(prob(bomb_armor)) - b_loss = 500 - var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) - throw_at(throw_target, 200, 4) - damage_clothes(400 - bomb_armor, BRUTE, "bomb") - else - gib() - return - - if (2) - b_loss = 60 - f_loss = 60 - if(bomb_armor) - b_loss = 30*(2 - round(bomb_armor*0.01, 0.05)) - f_loss = b_loss - damage_clothes(200 - bomb_armor, BRUTE, "bomb") - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) - adjustEarDamage(30, 120) - if (prob(max(70 - (bomb_armor * 0.5), 0))) - Paralyse(10) - - if(3) - b_loss = 30 - if(bomb_armor) - b_loss = 15*(2 - round(bomb_armor*0.01, 0.05)) - damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb") - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) - adjustEarDamage(15,60) - if (prob(max(50 - (bomb_armor * 0.5), 0))) - Paralyse(8) - - take_overall_damage(b_loss,f_loss) - - //attempt to dismember bodyparts - if(severity <= 2 || !bomb_armor) - var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != "head" && BP.body_zone != "chest") - BP.brute_dam = BP.max_damage - BP.dismember() - max_limb_loss-- - if(!max_limb_loss) - break - - -/mob/living/carbon/human/blob_act(obj/structure/blob/B) - if(stat == DEAD) - return - show_message("The blob attacks you!") - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) - - -//Added a safety check in case you want to shock a human mob directly through electrocute_act. -/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0, stun = TRUE) - if(tesla_shock) - var/total_coeff = 1 - if(gloves) - var/obj/item/clothing/gloves/G = gloves - if(G.siemens_coefficient <= 0) - total_coeff -= 0.5 - if(wear_suit) - var/obj/item/clothing/suit/S = wear_suit - if(S.siemens_coefficient <= 0) - total_coeff -= 0.95 - else if(S.siemens_coefficient == (-1)) - total_coeff -= 1 - siemens_coeff = total_coeff - if(HAS_SECONDARY_FLAG(src, TESLA_IGNORE)) - siemens_coeff = 0 - else if(!safety) - var/gloves_siemens_coeff = 1 - if(gloves) - var/obj/item/clothing/gloves/G = gloves - gloves_siemens_coeff = G.siemens_coefficient - siemens_coeff = gloves_siemens_coeff - if(undergoing_cardiac_arrest() && !illusion) - if(shock_damage * siemens_coeff >= 1 && prob(25)) - var/obj/item/organ/heart/heart = getorganslot("heart") - heart.beating = TRUE - if(stat == CONSCIOUS) - to_chat(src, "You feel your heart beating again!") - . = ..(shock_damage,source,siemens_coeff,safety,override,tesla_shock, illusion, stun) - if(.) - electrocution_animation(40) - - -/mob/living/carbon/human/emp_act(severity) - var/informed = 0 - for(var/obj/item/bodypart/L in src.bodyparts) - if(L.status == BODYPART_ROBOTIC) - if(!informed) - to_chat(src, "You feel a sharp pain as your robotic limbs overload.") - informed = 1 - switch(severity) - if(1) - L.receive_damage(0,10) - src.Stun(10) - if(2) - L.receive_damage(0,5) - src.Stun(5) - ..() - -/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) - var/list/damaged = list() - var/list/inventory_items_to_kill = list() - var/acidity = acidpwr * min(acid_volume*0.005, 0.1) - //HEAD// - if(!bodyzone_hit || bodyzone_hit == "head") //only if we didn't specify a zone or if that zone is the head. - var/obj/item/clothing/head_clothes = null - if(glasses) - head_clothes = glasses - if(wear_mask) - head_clothes = wear_mask - if(wear_neck) - head_clothes = wear_neck - if(head) - head_clothes = head - if(head_clothes) - if(!(head_clothes.resistance_flags & UNACIDABLE)) - head_clothes.acid_act(acidpwr, acid_volume) - update_inv_glasses() - update_inv_wear_mask() - update_inv_neck() - update_inv_head() - else - to_chat(src, "Your [head_clothes.name] protects your head and face from the acid!") - else - . = get_bodypart("head") - if(.) - damaged += . - if(ears) - inventory_items_to_kill += ears - - //CHEST// - if(!bodyzone_hit || bodyzone_hit == "chest") - var/obj/item/clothing/chest_clothes = null - if(w_uniform) - chest_clothes = w_uniform - if(wear_suit) - chest_clothes = wear_suit - if(chest_clothes) - if(!(chest_clothes.resistance_flags & UNACIDABLE)) - chest_clothes.acid_act(acidpwr, acid_volume) - update_inv_w_uniform() - update_inv_wear_suit() - else - to_chat(src, "Your [chest_clothes.name] protects your body from the acid!") - else - . = get_bodypart("chest") - if(.) - damaged += . - if(wear_id) - inventory_items_to_kill += wear_id - if(r_store) - inventory_items_to_kill += r_store - if(l_store) - inventory_items_to_kill += l_store - if(s_store) - inventory_items_to_kill += s_store - - - //ARMS & HANDS// - if(!bodyzone_hit || bodyzone_hit == "l_arm" || bodyzone_hit == "r_arm") - var/obj/item/clothing/arm_clothes = null - if(gloves) - arm_clothes = gloves - if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) - arm_clothes = w_uniform - if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) - arm_clothes = wear_suit - - if(arm_clothes) - if(!(arm_clothes.resistance_flags & UNACIDABLE)) - arm_clothes.acid_act(acidpwr, acid_volume) - update_inv_gloves() - update_inv_w_uniform() - update_inv_wear_suit() - else - to_chat(src, "Your [arm_clothes.name] protects your arms and hands from the acid!") - else - . = get_bodypart("r_arm") - if(.) - damaged += . - . = get_bodypart("l_arm") - if(.) - damaged += . - - - //LEGS & FEET// - if(!bodyzone_hit || bodyzone_hit == "l_leg" || bodyzone_hit == "r_leg" || bodyzone_hit == "feet") - var/obj/item/clothing/leg_clothes = null - if(shoes) - leg_clothes = shoes - if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (w_uniform.body_parts_covered & LEGS)))) - leg_clothes = w_uniform - if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (wear_suit.body_parts_covered & LEGS)))) - leg_clothes = wear_suit - if(leg_clothes) - if(!(leg_clothes.resistance_flags & UNACIDABLE)) - leg_clothes.acid_act(acidpwr, acid_volume) - update_inv_shoes() - update_inv_w_uniform() - update_inv_wear_suit() - else - to_chat(src, "Your [leg_clothes.name] protects your legs and feet from the acid!") - else - . = get_bodypart("r_leg") - if(.) - damaged += . - . = get_bodypart("l_leg") - if(.) - damaged += . - - - //DAMAGE// - for(var/obj/item/bodypart/affecting in damaged) - affecting.receive_damage(acidity, 2*acidity) - - if(affecting.name == "head") - if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement - affecting.receive_damage(acidity, 2*acidity) - emote("scream") - facial_hair_style = "Shaved" - hair_style = "Bald" - update_hair() - status_flags |= DISFIGURED - - update_damage_overlays() - - //MELTING INVENTORY ITEMS// - //these items are all outside of armour visually, so melt regardless. - if(!bodyzone_hit) - if(back) - inventory_items_to_kill += back - if(belt) - inventory_items_to_kill += belt - - inventory_items_to_kill += held_items - - for(var/obj/item/I in inventory_items_to_kill) - I.acid_act(acidpwr, acid_volume) - return 1 - -/mob/living/carbon/human/singularity_act() - var/gain = 20 - if(mind) - if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") ) - gain = 100 - if(mind.assigned_role == "Clown") - gain = rand(-300, 300) - investigate_log("([key_name(src)]) has been consumed by the singularity.", INVESTIGATE_SINGULO) //Oh that's where the clown ended up! - gib() - return(gain) - -/mob/living/carbon/human/help_shake_act(mob/living/carbon/M) - if(!istype(M)) - return - - if(health >= 0) - if(src == M) - visible_message("[src] examines [p_them()]self.", \ - "You check yourself for injuries.") - - var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") - for(var/X in bodyparts) - var/obj/item/bodypart/LB = X - missing -= LB.body_zone - var/status = "" - var/brutedamage = LB.brute_dam - var/burndamage = LB.burn_dam - if(hallucination) - if(prob(30)) - brutedamage += rand(30,40) - if(prob(30)) - burndamage += rand(30,40) - - if(brutedamage > 0) - status = "bruised" - if(brutedamage > 20) - status = "battered" - if(brutedamage > 40) - status = "mangled" - if(brutedamage > 0 && burndamage > 0) - status += " and " - if(burndamage > 40) - status += "peeling away" - - else if(burndamage > 10) - status += "blistered" - else if(burndamage > 0) - status += "numb" - if(status == "") - status = "OK" - to_chat(src, "\t Your [LB.name] is [status].") - - for(var/obj/item/I in LB.embedded_objects) - to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") - - for(var/t in missing) - to_chat(src, "Your [parse_zone(t)] is missing!") - - if(bleed_rate) - to_chat(src, "You are bleeding!") - if(staminaloss) - if(staminaloss > 30) - to_chat(src, "You're completely exhausted.") - else - to_chat(src, "You feel fatigued.") - else - if(wear_suit) - wear_suit.add_fingerprint(M) - else if(w_uniform) - w_uniform.add_fingerprint(M) - - ..() - - -/mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) - if(damage_type != BRUTE && damage_type != BURN) - return - damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed - var/list/torn_items = list() - - //HEAD// - if(!def_zone || def_zone == "head") - var/obj/item/clothing/head_clothes = null - if(glasses) - head_clothes = glasses - if(wear_mask) - head_clothes = wear_mask - if(wear_neck) - head_clothes = wear_neck - if(head) - head_clothes = head - if(head_clothes) - torn_items += head_clothes - else if(ears) - torn_items += ears - - //CHEST// - if(!def_zone || def_zone == "chest") - var/obj/item/clothing/chest_clothes = null - if(w_uniform) - chest_clothes = w_uniform - if(wear_suit) - chest_clothes = wear_suit - if(chest_clothes) - torn_items += chest_clothes - - //ARMS & HANDS// - if(!def_zone || def_zone == "l_arm" || def_zone == "r_arm") - var/obj/item/clothing/arm_clothes = null - if(gloves) - arm_clothes = gloves - if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) - arm_clothes = w_uniform - if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) - arm_clothes = wear_suit - if(arm_clothes) - torn_items += arm_clothes - - //LEGS & FEET// - if(!def_zone || def_zone == "l_leg" || def_zone == "r_leg") - var/obj/item/clothing/leg_clothes = null - if(shoes) - leg_clothes = shoes - if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (w_uniform.body_parts_covered & LEGS))) - leg_clothes = w_uniform - if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (wear_suit.body_parts_covered & LEGS))) - leg_clothes = wear_suit - if(leg_clothes) - torn_items += leg_clothes - - for(var/obj/item/I in torn_items) - I.take_damage(damage_amount, damage_type, damage_flag, 0) +/mob/living/carbon/human/getarmor(def_zone, type) + var/armorval = 0 + var/organnum = 0 + + if(def_zone) + if(isbodypart(def_zone)) + return checkarmor(def_zone, type) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(def_zone)) + return checkarmor(affecting, type) + //If a specific bodypart is targetted, check how that bodypart is protected and return the value. + + //If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + armorval += checkarmor(BP, type) + organnum++ + return (armorval/max(organnum, 1)) + + +/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type) + if(!d_type) + return 0 + var/protection = 0 + var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) + for(var/bp in body_parts) + if(!bp) + continue + if(bp && istype(bp ,/obj/item/clothing)) + var/obj/item/clothing/C = bp + if(C.body_parts_covered & def_zone.body_part) + protection += C.armor[d_type] + return protection + +/mob/living/carbon/human/on_hit(obj/item/projectile/P) + dna.species.on_hit(P, src) + + +/mob/living/carbon/human/bullet_act(obj/item/projectile/P, def_zone) + var/spec_return = dna.species.bullet_act(P, src) + if(spec_return) + return spec_return + + if(mind) + if(mind.martial_art && mind.martial_art.deflection_chance) //Some martial arts users can deflect projectiles! + if(prob(mind.martial_art.deflection_chance)) + if(!lying && dna && !dna.check_mutation(HULK)) //But only if they're not lying down, and hulks can't do it + visible_message("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons!", "You deflect the projectile!") + playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) + return 0 + + if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself + if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) + if(check_reflect(def_zone)) // Checks if you've passed a reflection% check + visible_message("The [P.name] gets reflected by [src]!", \ + "The [P.name] gets reflected by [src]!") + // Find a turf near or on the original location to bounce to + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/turf/curloc = get_turf(src) + + // redirect the projectile + P.original = locate(new_x, new_y, P.z) + P.starting = curloc + P.current = curloc + P.firer = src + P.yo = new_y - curloc.y + P.xo = new_x - curloc.x + P.Angle = null + + return -1 // complete projectile permutation + + if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration)) + P.on_hit(src, 100, def_zone) + return 2 + + return (..(P , def_zone)) + +/mob/living/carbon/human/proc/check_reflect(def_zone) //Reflection checks for anything in your l_hand, r_hand, or wear_suit based on the reflection chance of the object + if(wear_suit) + if(wear_suit.IsReflect(def_zone) == 1) + return 1 + for(var/obj/item/I in held_items) + if(I.IsReflect(def_zone) == 1) + return 1 + return 0 + +/mob/living/carbon/human/proc/check_shields(atom/AM, var/damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0) + var/block_chance_modifier = round(damage / -3) + + for(var/obj/item/I in held_items) + if(!istype(I, /obj/item/clothing)) + var/final_block_chance = I.block_chance - (Clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + if(I.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) + return 1 + if(wear_suit) + var/final_block_chance = wear_suit.block_chance - (Clamp((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier + if(wear_suit.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) + return 1 + if(w_uniform) + var/final_block_chance = w_uniform.block_chance - (Clamp((armour_penetration-w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier + if(w_uniform.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) + return 1 + return 0 + +/mob/living/carbon/human/proc/check_block() + if(mind) + if(mind.martial_art && prob(mind.martial_art.block_chance) && in_throw_mode && !stat && !IsKnockdown() && !IsStun()) + return TRUE + return FALSE + +/mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) + var/spec_return = dna.species.spec_hitby(AM, src) + if(spec_return) + return spec_return + var/obj/item/I + var/throwpower = 30 + if(istype(AM, /obj/item)) + I = AM + throwpower = I.throwforce + if(I.thrownby == src) //No throwing stuff at yourself to trigger hit reactions + return ..() + if(check_shields(AM, throwpower, "\the [AM.name]", THROWN_PROJECTILE_ATTACK)) + hitpush = 0 + skipcatch = 1 + blocked = 1 + else if(I) + if(I.throw_speed >= EMBED_THROWSPEED_THRESHOLD) + if(can_embed(I)) + if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.species_traits))) + throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) + var/obj/item/bodypart/L = pick(bodyparts) + L.embedded_objects |= I + I.add_mob_blood(src)//it embedded itself in you, of course it's bloody! + I.loc = src + L.receive_damage(I.w_class*I.embedded_impact_pain_multiplier) + visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!") + hitpush = 0 + skipcatch = 1 //can't catch the now embedded item + + return ..() + +/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0) + if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && isliving(pulling)) + vore_attack(user, pulling) + else + ..() + +/mob/living/carbon/human/grippedby(mob/living/user) + if(w_uniform) + w_uniform.add_fingerprint(user) + ..() + + +/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user) + if(!I || !user) + return 0 + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) //what we're actually ending up trying to hit. + var/target_area = parse_zone(check_zone(user.zone_selected)) //our intended target + SSblackbox.add_details("item_used_for_combat","[I.type]|[I.force]") + SSblackbox.add_details("zone_targeted","[target_area]") + + // the attacked_by code varies among species + return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) + + +/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == INTENT_HARM) + var/hulk_verb = pick("smash","pummel") + if(check_shields(user, 15, "the [hulk_verb]ing")) + return + ..(user, 1) + playsound(loc, user.dna.species.attack_sound, 25, 1, -1) + var/message = "[user] has [hulk_verb]ed [src]!" + visible_message("[message]", \ + "[message]") + adjustBruteLoss(15) + damage_clothes(15, BRUTE, "melee") + return 1 + +/mob/living/carbon/human/attack_hand(mob/user) + if(..()) //to allow surgery to return properly. + return + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.a_intent == INTENT_DISARM) + if(H.buckled_mobs && (src in H.buckled_mobs) && H.riding_datum) + H.riding_datum.force_dismount(src) + dna.species.spec_attack_hand(H, src) + + +/mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + if(M.a_intent == INTENT_HELP) + ..() //shaking + return 0 + + if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead. + if(get_active_held_item() && drop_item()) + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] disarmed [src]!", \ + "[M] disarmed [src]!") + else if(!M.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly) + playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) + Knockdown(100) + add_logs(M, src, "tackled") + visible_message("[M] has tackled down [src]!", \ + "[M] has tackled down [src]!") + + if(M.limb_destroyer) + dismembering_strike(M, affecting.body_zone) + + if(can_inject(M, 1, affecting))//Thick suits can stop monkey bites. + if(..()) //successful monkey bite, this handles disease contraction. + var/damage = rand(1, 3) + if(check_shields(M, damage, "the [M.name]")) + return 0 + if(stat != DEAD) + apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, "melee")) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + return 1 + +/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M) + if(check_shields(M, 0, "the M.name")) + visible_message("[M] attempted to touch [src]!") + return 0 + + if(..()) + if(M.a_intent == INTENT_HARM) + if (w_uniform) + w_uniform.add_fingerprint(M) + var/damage = prob(90) ? 20 : 0 + if(!damage) + playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) + visible_message("[M] has lunged at [src]!", \ + "[M] has lunged at [src]!") + return 0 + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee","","",10) + + playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!", \ + "[M] has slashed at [src]!") + add_logs(M, src, "attacked") + if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful + return 1 + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead. + if(get_active_held_item() && drop_item()) + playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] disarmed [src]!", \ + "[M] disarmed [src]!") + else + playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) + Knockdown(100) + add_logs(M, src, "tackled") + visible_message("[M] has tackled down [src]!", \ + "[M] has tackled down [src]!") + + +/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) + + if(..()) //successful larva bite. + var/damage = rand(1, 3) + if(check_shields(L, damage, "the [L.name]")) + return 0 + if(stat != DEAD) + L.amount_grown = min(L.amount_grown + damage, L.max_grown) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + + +/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) + . = ..() + if(.) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + if(check_shields(M, damage, "the [M.name]", MELEE_ATTACK, M.armour_penetration)) + return FALSE + var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return TRUE + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor = run_armor_check(affecting, "melee", armour_penetration = M.armour_penetration) + apply_damage(damage, M.melee_damage_type, affecting, armor) + damage_clothes(damage, M.melee_damage_type, "melee", affecting.body_zone) + + +/mob/living/carbon/human/attack_slime(mob/living/simple_animal/slime/M) + if(..()) //successful slime attack + var/damage = rand(5, 25) + if(M.is_adult) + damage = rand(10, 35) + + if(check_shields(M, damage, "the [M.name]")) + return 0 + + var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) + if(!dam_zone) //Dismemberment successful + return 1 + + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + if(!affecting) + affecting = get_bodypart("chest") + var/armor_block = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor_block) + damage_clothes(damage, BRUTE, "melee", affecting.body_zone) + +/mob/living/carbon/human/mech_melee_attack(obj/mecha/M) + + if(M.occupant.a_intent == INTENT_HARM) + M.do_attack_animation(src) + if(M.damtype == "brute") + step_away(src,M,15) + var/obj/item/bodypart/temp = get_bodypart(pick("chest", "chest", "chest", "head")) + if(temp) + var/update = 0 + var/dmg = rand(M.force/2, M.force) + switch(M.damtype) + if("brute") + if(M.force > 20) + Unconscious(20) + update |= temp.receive_damage(dmg, 0) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) + damage_clothes(dmg, BRUTE, "melee", temp.body_zone) + if("fire") + update |= temp.receive_damage(0, dmg) + playsound(src, 'sound/items/welder.ogg', 50, 1) + damage_clothes(dmg, BURN, "melee", temp.body_zone) + if("tox") + M.mech_toxin_damage(src) + else + return + if(update) + update_damage_overlays() + updatehealth() + + visible_message("[M.name] has hit [src]!", \ + "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) + add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") + + else + ..() + + +/mob/living/carbon/human/ex_act(severity, target, origin) + + if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src)) + return + ..() + var/b_loss = 0 + var/f_loss = 0 + var/bomb_armor = getarmor(null, "bomb") + + switch (severity) + if (1) + if(prob(bomb_armor)) + b_loss = 500 + var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) + throw_at(throw_target, 200, 4) + damage_clothes(400 - bomb_armor, BRUTE, "bomb") + else + gib() + return + + if (2) + b_loss = 60 + f_loss = 60 + if(bomb_armor) + b_loss = 30*(2 - round(bomb_armor*0.01, 0.05)) + f_loss = b_loss + damage_clothes(200 - bomb_armor, BRUTE, "bomb") + if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + adjustEarDamage(30, 120) + if (prob(max(70 - (bomb_armor * 0.5), 0))) + Unconscious(200) + + if(3) + b_loss = 30 + if(bomb_armor) + b_loss = 15*(2 - round(bomb_armor*0.01, 0.05)) + damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb") + if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + adjustEarDamage(15,60) + if (prob(max(50 - (bomb_armor * 0.5), 0))) + Unconscious(160) + + take_overall_damage(b_loss,f_loss) + + //attempt to dismember bodyparts + if(severity <= 2 || !bomb_armor) + var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != "head" && BP.body_zone != "chest") + BP.brute_dam = BP.max_damage + BP.dismember() + max_limb_loss-- + if(!max_limb_loss) + break + + +/mob/living/carbon/human/blob_act(obj/structure/blob/B) + if(stat == DEAD) + return + show_message("The blob attacks you!") + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) + apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) + + +//Added a safety check in case you want to shock a human mob directly through electrocute_act. +/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0, illusion = 0, stun = TRUE) + if(tesla_shock) + var/total_coeff = 1 + if(gloves) + var/obj/item/clothing/gloves/G = gloves + if(G.siemens_coefficient <= 0) + total_coeff -= 0.5 + if(wear_suit) + var/obj/item/clothing/suit/S = wear_suit + if(S.siemens_coefficient <= 0) + total_coeff -= 0.95 + else if(S.siemens_coefficient == (-1)) + total_coeff -= 1 + siemens_coeff = total_coeff + if(HAS_SECONDARY_FLAG(src, TESLA_IGNORE)) + siemens_coeff = 0 + else if(!safety) + var/gloves_siemens_coeff = 1 + if(gloves) + var/obj/item/clothing/gloves/G = gloves + gloves_siemens_coeff = G.siemens_coefficient + siemens_coeff = gloves_siemens_coeff + if(undergoing_cardiac_arrest() && !illusion) + if(shock_damage * siemens_coeff >= 1 && prob(25)) + var/obj/item/organ/heart/heart = getorganslot("heart") + heart.beating = TRUE + if(stat == CONSCIOUS) + to_chat(src, "You feel your heart beating again!") + . = ..(shock_damage,source,siemens_coeff,safety,override,tesla_shock, illusion, stun) + if(.) + electrocution_animation(40) + + +/mob/living/carbon/human/emp_act(severity) + var/informed = 0 + for(var/obj/item/bodypart/L in src.bodyparts) + if(L.status == BODYPART_ROBOTIC) + if(!informed) + to_chat(src, "You feel a sharp pain as your robotic limbs overload.") + informed = 1 + switch(severity) + if(1) + L.receive_damage(0,10) + Stun(200) + if(2) + L.receive_damage(0,5) + Stun(100) + ..() + +/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) + var/list/damaged = list() + var/list/inventory_items_to_kill = list() + var/acidity = acidpwr * min(acid_volume*0.005, 0.1) + //HEAD// + if(!bodyzone_hit || bodyzone_hit == "head") //only if we didn't specify a zone or if that zone is the head. + var/obj/item/clothing/head_clothes = null + if(glasses) + head_clothes = glasses + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + if(!(head_clothes.resistance_flags & UNACIDABLE)) + head_clothes.acid_act(acidpwr, acid_volume) + update_inv_glasses() + update_inv_wear_mask() + update_inv_neck() + update_inv_head() + else + to_chat(src, "Your [head_clothes.name] protects your head and face from the acid!") + else + . = get_bodypart("head") + if(.) + damaged += . + if(ears) + inventory_items_to_kill += ears + + //CHEST// + if(!bodyzone_hit || bodyzone_hit == "chest") + var/obj/item/clothing/chest_clothes = null + if(w_uniform) + chest_clothes = w_uniform + if(wear_suit) + chest_clothes = wear_suit + if(chest_clothes) + if(!(chest_clothes.resistance_flags & UNACIDABLE)) + chest_clothes.acid_act(acidpwr, acid_volume) + update_inv_w_uniform() + update_inv_wear_suit() + else + to_chat(src, "Your [chest_clothes.name] protects your body from the acid!") + else + . = get_bodypart("chest") + if(.) + damaged += . + if(wear_id) + inventory_items_to_kill += wear_id + if(r_store) + inventory_items_to_kill += r_store + if(l_store) + inventory_items_to_kill += l_store + if(s_store) + inventory_items_to_kill += s_store + + + //ARMS & HANDS// + if(!bodyzone_hit || bodyzone_hit == "l_arm" || bodyzone_hit == "r_arm") + var/obj/item/clothing/arm_clothes = null + if(gloves) + arm_clothes = gloves + if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) + arm_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) + arm_clothes = wear_suit + + if(arm_clothes) + if(!(arm_clothes.resistance_flags & UNACIDABLE)) + arm_clothes.acid_act(acidpwr, acid_volume) + update_inv_gloves() + update_inv_w_uniform() + update_inv_wear_suit() + else + to_chat(src, "Your [arm_clothes.name] protects your arms and hands from the acid!") + else + . = get_bodypart("r_arm") + if(.) + damaged += . + . = get_bodypart("l_arm") + if(.) + damaged += . + + + //LEGS & FEET// + if(!bodyzone_hit || bodyzone_hit == "l_leg" || bodyzone_hit == "r_leg" || bodyzone_hit == "feet") + var/obj/item/clothing/leg_clothes = null + if(shoes) + leg_clothes = shoes + if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (w_uniform.body_parts_covered & LEGS)))) + leg_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (bodyzone_hit != "feet" && (wear_suit.body_parts_covered & LEGS)))) + leg_clothes = wear_suit + if(leg_clothes) + if(!(leg_clothes.resistance_flags & UNACIDABLE)) + leg_clothes.acid_act(acidpwr, acid_volume) + update_inv_shoes() + update_inv_w_uniform() + update_inv_wear_suit() + else + to_chat(src, "Your [leg_clothes.name] protects your legs and feet from the acid!") + else + . = get_bodypart("r_leg") + if(.) + damaged += . + . = get_bodypart("l_leg") + if(.) + damaged += . + + + //DAMAGE// + for(var/obj/item/bodypart/affecting in damaged) + affecting.receive_damage(acidity, 2*acidity) + + if(affecting.name == "head") + if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement + affecting.receive_damage(acidity, 2*acidity) + emote("scream") + facial_hair_style = "Shaved" + hair_style = "Bald" + update_hair() + status_flags |= DISFIGURED + + update_damage_overlays() + + //MELTING INVENTORY ITEMS// + //these items are all outside of armour visually, so melt regardless. + if(!bodyzone_hit) + if(back) + inventory_items_to_kill += back + if(belt) + inventory_items_to_kill += belt + + inventory_items_to_kill += held_items + + for(var/obj/item/I in inventory_items_to_kill) + I.acid_act(acidpwr, acid_volume) + return 1 + +/mob/living/carbon/human/singularity_act() + var/gain = 20 + if(mind) + if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") ) + gain = 100 + if(mind.assigned_role == "Clown") + gain = rand(-300, 300) + investigate_log("([key_name(src)]) has been consumed by the singularity.", INVESTIGATE_SINGULO) //Oh that's where the clown ended up! + gib() + return(gain) + +/mob/living/carbon/human/help_shake_act(mob/living/carbon/M) + if(!istype(M)) + return + + if(health >= 0) + if(src == M) + visible_message("[src] examines [p_them()]self.", \ + "You check yourself for injuries.") + + var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") + for(var/X in bodyparts) + var/obj/item/bodypart/LB = X + missing -= LB.body_zone + var/status = "" + var/brutedamage = LB.brute_dam + var/burndamage = LB.burn_dam + if(hallucination) + if(prob(30)) + brutedamage += rand(30,40) + if(prob(30)) + burndamage += rand(30,40) + + if(brutedamage > 0) + status = "bruised" + if(brutedamage > 20) + status = "battered" + if(brutedamage > 40) + status = "mangled" + if(brutedamage > 0 && burndamage > 0) + status += " and " + if(burndamage > 40) + status += "peeling away" + + else if(burndamage > 10) + status += "blistered" + else if(burndamage > 0) + status += "numb" + if(status == "") + status = "OK" + to_chat(src, "\t Your [LB.name] is [status].") + + for(var/obj/item/I in LB.embedded_objects) + to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") + + for(var/t in missing) + to_chat(src, "Your [parse_zone(t)] is missing!") + + if(bleed_rate) + to_chat(src, "You are bleeding!") + if(staminaloss) + if(staminaloss > 30) + to_chat(src, "You're completely exhausted.") + else + to_chat(src, "You feel fatigued.") + else + if(wear_suit) + wear_suit.add_fingerprint(M) + else if(w_uniform) + w_uniform.add_fingerprint(M) + + ..() + + +/mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) + if(damage_type != BRUTE && damage_type != BURN) + return + damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed + var/list/torn_items = list() + + //HEAD// + if(!def_zone || def_zone == "head") + var/obj/item/clothing/head_clothes = null + if(glasses) + head_clothes = glasses + if(wear_mask) + head_clothes = wear_mask + if(wear_neck) + head_clothes = wear_neck + if(head) + head_clothes = head + if(head_clothes) + torn_items += head_clothes + else if(ears) + torn_items += ears + + //CHEST// + if(!def_zone || def_zone == "chest") + var/obj/item/clothing/chest_clothes = null + if(w_uniform) + chest_clothes = w_uniform + if(wear_suit) + chest_clothes = wear_suit + if(chest_clothes) + torn_items += chest_clothes + + //ARMS & HANDS// + if(!def_zone || def_zone == "l_arm" || def_zone == "r_arm") + var/obj/item/clothing/arm_clothes = null + if(gloves) + arm_clothes = gloves + if(w_uniform && ((w_uniform.body_parts_covered & HANDS) || (w_uniform.body_parts_covered & ARMS))) + arm_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & HANDS) || (wear_suit.body_parts_covered & ARMS))) + arm_clothes = wear_suit + if(arm_clothes) + torn_items += arm_clothes + + //LEGS & FEET// + if(!def_zone || def_zone == "l_leg" || def_zone == "r_leg") + var/obj/item/clothing/leg_clothes = null + if(shoes) + leg_clothes = shoes + if(w_uniform && ((w_uniform.body_parts_covered & FEET) || (w_uniform.body_parts_covered & LEGS))) + leg_clothes = w_uniform + if(wear_suit && ((wear_suit.body_parts_covered & FEET) || (wear_suit.body_parts_covered & LEGS))) + leg_clothes = wear_suit + if(leg_clothes) + torn_items += leg_clothes + + for(var/obj/item/I in torn_items) + I.take_damage(damage_amount, damage_type, damage_flag, 0) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index e7cfd666de..29e82efe6b 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -1,78 +1,78 @@ - -/mob/living/carbon/human/restrained(ignore_grab) - . = ((wear_suit && wear_suit.breakouttime) || ..()) - - -/mob/living/carbon/human/canBeHandcuffed() - if(get_num_arms() >= 2) - return TRUE - else - return FALSE - -//gets assignment from ID or ID inside PDA or PDA itself -//Useful when player do something with computers -/mob/living/carbon/human/proc/get_assignment(if_no_id = "No id", if_no_job = "No job") - var/obj/item/weapon/card/id/id = get_idcard() - if(id) - . = id.assignment - else - var/obj/item/device/pda/pda = wear_id - if(istype(pda)) - . = pda.ownjob - else - return if_no_id - if(!.) - return if_no_job - -//gets name from ID or ID inside PDA or PDA itself -//Useful when player do something with computers -/mob/living/carbon/human/proc/get_authentification_name(if_no_id = "Unknown") - var/obj/item/weapon/card/id/id = get_idcard() - if(id) - return id.registered_name - var/obj/item/device/pda/pda = wear_id - if(istype(pda)) - return pda.owner - return if_no_id - -//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere -/mob/living/carbon/human/get_visible_name() - var/face_name = get_face_name("") - var/id_name = get_id_name("") - if(name_override) - return name_override - if(face_name) - if(id_name && (id_name != face_name)) - return "[face_name] (as [id_name])" - return face_name - if(id_name) - return id_name - return "Unknown" - -//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable -/mob/living/carbon/human/proc/get_face_name(if_no_face="Unknown") - if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible - return if_no_face - if( head && (head.flags_inv&HIDEFACE) ) - return if_no_face //Likewise for hats - var/obj/item/bodypart/O = get_bodypart("head") - if( !O || (status_flags&DISFIGURED) || (O.brutestate+O.burnstate)>2 || cloneloss>50 || !real_name ) //disfigured. use id-name if possible - return if_no_face - return real_name - -//gets name from ID or PDA itself, ID inside PDA doesn't matter -//Useful when player is being seen by other mobs -/mob/living/carbon/human/proc/get_id_name(if_no_id = "Unknown") - var/obj/item/weapon/storage/wallet/wallet = wear_id - var/obj/item/device/pda/pda = wear_id - var/obj/item/weapon/card/id/id = wear_id + +/mob/living/carbon/human/restrained(ignore_grab) + . = ((wear_suit && wear_suit.breakouttime) || ..()) + + +/mob/living/carbon/human/canBeHandcuffed() + if(get_num_arms() >= 2) + return TRUE + else + return FALSE + +//gets assignment from ID or ID inside PDA or PDA itself +//Useful when player do something with computers +/mob/living/carbon/human/proc/get_assignment(if_no_id = "No id", if_no_job = "No job") + var/obj/item/weapon/card/id/id = get_idcard() + if(id) + . = id.assignment + else + var/obj/item/device/pda/pda = wear_id + if(istype(pda)) + . = pda.ownjob + else + return if_no_id + if(!.) + return if_no_job + +//gets name from ID or ID inside PDA or PDA itself +//Useful when player do something with computers +/mob/living/carbon/human/proc/get_authentification_name(if_no_id = "Unknown") + var/obj/item/weapon/card/id/id = get_idcard() + if(id) + return id.registered_name + var/obj/item/device/pda/pda = wear_id + if(istype(pda)) + return pda.owner + return if_no_id + +//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere +/mob/living/carbon/human/get_visible_name() + var/face_name = get_face_name("") + var/id_name = get_id_name("") + if(name_override) + return name_override + if(face_name) + if(id_name && (id_name != face_name)) + return "[face_name] (as [id_name])" + return face_name + if(id_name) + return id_name + return "Unknown" + +//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable +/mob/living/carbon/human/proc/get_face_name(if_no_face="Unknown") + if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible + return if_no_face + if( head && (head.flags_inv&HIDEFACE) ) + return if_no_face //Likewise for hats + var/obj/item/bodypart/O = get_bodypart("head") + if( !O || (status_flags&DISFIGURED) || (O.brutestate+O.burnstate)>2 || cloneloss>50 || !real_name ) //disfigured. use id-name if possible + return if_no_face + return real_name + +//gets name from ID or PDA itself, ID inside PDA doesn't matter +//Useful when player is being seen by other mobs +/mob/living/carbon/human/proc/get_id_name(if_no_id = "Unknown") + var/obj/item/weapon/storage/wallet/wallet = wear_id + var/obj/item/device/pda/pda = wear_id + var/obj/item/weapon/card/id/id = wear_id var/obj/item/device/modular_computer/tablet/tablet = wear_id - if(istype(wallet)) - id = wallet.front_id - if(istype(id)) - . = id.registered_name - else if(istype(pda)) - . = pda.owner + if(istype(wallet)) + id = wallet.front_id + if(istype(id)) + . = id.registered_name + else if(istype(pda)) + . = pda.owner else if(istype(tablet)) var/obj/item/weapon/computer_hardware/card_slot/card_slot = tablet.all_components[MC_CARD] if(card_slot && (card_slot.stored_card2 || card_slot.stored_card)) @@ -81,81 +81,81 @@ else if(card_slot.stored_card) . = card_slot.stored_card.registered_name - if(!.) - . = if_no_id //to prevent null-names making the mob unclickable - return - -//gets ID card object from special clothes slot or null. -/mob/living/carbon/human/get_idcard() - if(wear_id) - return wear_id.GetID() - - -/mob/living/carbon/human/abiotic(full_body = 0) - var/abiotic_hands = FALSE - for(var/obj/item/I in held_items) - if(!(I.flags & NODROP)) - abiotic_hands = TRUE - break - if(full_body && abiotic_hands && ((back && !(back.flags&NODROP)) || (wear_mask && !(wear_mask.flags&NODROP)) || (head && !(head.flags&NODROP)) || (shoes && !(shoes.flags&NODROP)) || (w_uniform && !(w_uniform.flags&NODROP)) || (wear_suit && !(wear_suit.flags&NODROP)) || (glasses && !(glasses.flags&NODROP)) || (ears && !(ears.flags&NODROP)) || (gloves && !(gloves.flags&NODROP)) ) ) - return TRUE - return abiotic_hands - - -/mob/living/carbon/human/IsAdvancedToolUser() - return 1//Humans can use guns and such - -/mob/living/carbon/human/InCritical() - return (health <= HEALTH_THRESHOLD_CRIT && stat == UNCONSCIOUS) - -/mob/living/carbon/human/reagent_check(datum/reagent/R) - return dna.species.handle_chemicals(R,src) - // if it returns 0, it will run the usual on_mob_life for that reagent. otherwise, it will stop after running handle_chemicals for the species. - - -/mob/living/carbon/human/can_track(mob/living/user) - if(wear_id && istype(wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) - return 0 - if(istype(head, /obj/item/clothing/head)) - var/obj/item/clothing/head/hat = head - if(hat.blockTracking) - return 0 - - return ..() - -/mob/living/carbon/human/get_permeability_protection() - var/list/prot = list("hands"=0, "chest"=0, "groin"=0, "legs"=0, "feet"=0, "arms"=0, "head"=0) - for(var/obj/item/I in get_equipped_items()) - if(I.body_parts_covered & HANDS) - prot["hands"] = max(1 - I.permeability_coefficient, prot["hands"]) - if(I.body_parts_covered & CHEST) - prot["chest"] = max(1 - I.permeability_coefficient, prot["chest"]) - if(I.body_parts_covered & GROIN) - prot["groin"] = max(1 - I.permeability_coefficient, prot["groin"]) - if(I.body_parts_covered & LEGS) - prot["legs"] = max(1 - I.permeability_coefficient, prot["legs"]) - if(I.body_parts_covered & FEET) - prot["feet"] = max(1 - I.permeability_coefficient, prot["feet"]) - if(I.body_parts_covered & ARMS) - prot["arms"] = max(1 - I.permeability_coefficient, prot["arms"]) - if(I.body_parts_covered & HEAD) - prot["head"] = max(1 - I.permeability_coefficient, prot["head"]) - var/protection = (prot["head"] + prot["arms"] + prot["feet"] + prot["legs"] + prot["groin"] + prot["chest"] + prot["hands"])/7 - return protection - -/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/gun/G) - . = ..() - - if(G.trigger_guard == TRIGGER_GUARD_NORMAL) - if(src.dna.check_mutation(HULK)) - to_chat(src, "Your meaty finger is much too large for the trigger guard!") - return 0 - if(NOGUNS in src.dna.species.species_traits) - to_chat(src, "Your fingers don't fit in the trigger guard!") - return 0 + if(!.) + . = if_no_id //to prevent null-names making the mob unclickable + return + +//gets ID card object from special clothes slot or null. +/mob/living/carbon/human/get_idcard() + if(wear_id) + return wear_id.GetID() + + +/mob/living/carbon/human/abiotic(full_body = 0) + var/abiotic_hands = FALSE + for(var/obj/item/I in held_items) + if(!(I.flags & NODROP)) + abiotic_hands = TRUE + break + if(full_body && abiotic_hands && ((back && !(back.flags&NODROP)) || (wear_mask && !(wear_mask.flags&NODROP)) || (head && !(head.flags&NODROP)) || (shoes && !(shoes.flags&NODROP)) || (w_uniform && !(w_uniform.flags&NODROP)) || (wear_suit && !(wear_suit.flags&NODROP)) || (glasses && !(glasses.flags&NODROP)) || (ears && !(ears.flags&NODROP)) || (gloves && !(gloves.flags&NODROP)) ) ) + return TRUE + return abiotic_hands + + +/mob/living/carbon/human/IsAdvancedToolUser() + return 1//Humans can use guns and such + +/mob/living/carbon/human/InCritical() + return (health <= HEALTH_THRESHOLD_CRIT && stat == UNCONSCIOUS) + +/mob/living/carbon/human/reagent_check(datum/reagent/R) + return dna.species.handle_chemicals(R,src) + // if it returns 0, it will run the usual on_mob_life for that reagent. otherwise, it will stop after running handle_chemicals for the species. + + +/mob/living/carbon/human/can_track(mob/living/user) + if(wear_id && istype(wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) + return 0 + if(istype(head, /obj/item/clothing/head)) + var/obj/item/clothing/head/hat = head + if(hat.blockTracking) + return 0 + + return ..() + +/mob/living/carbon/human/get_permeability_protection() + var/list/prot = list("hands"=0, "chest"=0, "groin"=0, "legs"=0, "feet"=0, "arms"=0, "head"=0) + for(var/obj/item/I in get_equipped_items()) + if(I.body_parts_covered & HANDS) + prot["hands"] = max(1 - I.permeability_coefficient, prot["hands"]) + if(I.body_parts_covered & CHEST) + prot["chest"] = max(1 - I.permeability_coefficient, prot["chest"]) + if(I.body_parts_covered & GROIN) + prot["groin"] = max(1 - I.permeability_coefficient, prot["groin"]) + if(I.body_parts_covered & LEGS) + prot["legs"] = max(1 - I.permeability_coefficient, prot["legs"]) + if(I.body_parts_covered & FEET) + prot["feet"] = max(1 - I.permeability_coefficient, prot["feet"]) + if(I.body_parts_covered & ARMS) + prot["arms"] = max(1 - I.permeability_coefficient, prot["arms"]) + if(I.body_parts_covered & HEAD) + prot["head"] = max(1 - I.permeability_coefficient, prot["head"]) + var/protection = (prot["head"] + prot["arms"] + prot["feet"] + prot["legs"] + prot["groin"] + prot["chest"] + prot["hands"])/7 + return protection + +/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/gun/G) + . = ..() + + if(G.trigger_guard == TRIGGER_GUARD_NORMAL) + if(src.dna.check_mutation(HULK)) + to_chat(src, "Your meaty finger is much too large for the trigger guard!") + return 0 + if(NOGUNS in src.dna.species.species_traits) + to_chat(src, "Your fingers don't fit in the trigger guard!") + return 0 if(mind) if(mind.martial_art && mind.martial_art.no_guns) //great dishonor to famiry to_chat(src, "Use of ranged weaponry would bring dishonor to the clan.") return 0 - - return . + + return . diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index d3c380950c..b2ac6813ed 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -4,7 +4,7 @@ . += config.human_delay . += dna.species.movement_delay(src) -/mob/living/carbon/human/slip(s_amount, w_amount, obj/O, lube) +/mob/living/carbon/human/slip(knockdown_amount, obj/O, lube) if(isobj(shoes) && (shoes.flags&NOSLIP) && !(lube&GALOSHES_DONT_HELP)) return 0 return ..() diff --git a/code/modules/mob/living/carbon/human/interactive.dm b/code/modules/mob/living/carbon/human/interactive.dm index c93a79f4fc..72eedbff9f 100644 --- a/code/modules/mob/living/carbon/human/interactive.dm +++ b/code/modules/mob/living/carbon/human/interactive.dm @@ -450,9 +450,9 @@ return 1 if(restrained()) return 1 - if(paralysis) + if(IsUnconscious()) return 1 - if(stunned) + if(IsStun()) return 1 if(stat) return 1 @@ -632,7 +632,7 @@ if(!TARGET in blacklistItems) insert_into_backpack() // dump random item into backpack to make space //---------ITEMS - if(istype(TARGET, /obj/item)) + if(isitem(TARGET)) if(istype(TARGET, /obj/item/weapon)) var/obj/item/weapon/W = TARGET if(W.force >= best_force || prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2)) @@ -939,7 +939,7 @@ retal = 1 retal_target = traitorTarget if(SNPC_STEALTH) - if(istype(traitorTarget,/mob)) // it's inside something, lets kick their shit in + if(ismob(traitorTarget)) // it's inside something, lets kick their shit in var/mob/M = traitorTarget if(!M.stat) retal = 1 @@ -1536,8 +1536,8 @@ if(ispath(A,/obj/item/ammo_casing/energy/electrode)) stunning = 1 var/shouldFire = 1 - var/mob/stunCheck = TARGET - if(stunning && stunCheck.stunned) + var/mob/living/stunCheck = TARGET + if(stunning && isliving(stunCheck) && stunCheck.IsStun()) shouldFire = 0 if(shouldFire) if(P.cell.charge <= 10) // can shoot seems to bug out for tasers, using this hacky method instead diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 11c5ff6402..eeb046a3e7 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -1,245 +1,245 @@ /mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) return dna.species.can_equip(I, slot, disable_warning, src, bypass_equip_delay_self) - -// Return the item currently in the slot ID -/mob/living/carbon/human/get_item_by_slot(slot_id) - switch(slot_id) - if(slot_back) - return back - if(slot_wear_mask) - return wear_mask - if(slot_neck) - return wear_neck - if(slot_handcuffed) - return handcuffed - if(slot_legcuffed) - return legcuffed - if(slot_belt) - return belt - if(slot_wear_id) - return wear_id - if(slot_ears) - return ears - if(slot_glasses) - return glasses - if(slot_gloves) - return gloves - if(slot_head) - return head - if(slot_shoes) - return shoes - if(slot_wear_suit) - return wear_suit - if(slot_w_uniform) - return w_uniform - if(slot_l_store) - return l_store - if(slot_r_store) - return r_store - if(slot_s_store) - return s_store - return null - -/mob/living/carbon/human/proc/get_all_slots() - . = get_head_slots() | get_body_slots() - -/mob/living/carbon/human/proc/get_body_slots() - return list( - back, - s_store, - handcuffed, - legcuffed, - wear_suit, - gloves, - shoes, - belt, - wear_id, - l_store, - r_store, - w_uniform - ) - -/mob/living/carbon/human/proc/get_head_slots() - return list( - head, - wear_mask, - glasses, - ears, - ) - -/mob/living/carbon/human/proc/get_storage_slots() - return list( - back, - belt, - l_store, - r_store, - s_store, - ) - -//This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() -/mob/living/carbon/human/equip_to_slot(obj/item/I, slot) - if(!..()) //a check failed or the item has already found its slot - return - - var/not_handled = FALSE //Added in case we make this type path deeper one day - switch(slot) - if(slot_belt) - belt = I - update_inv_belt() - if(slot_wear_id) - wear_id = I - sec_hud_set_ID() - update_inv_wear_id() - if(slot_ears) - ears = I - update_inv_ears() - if(slot_glasses) - glasses = I - var/obj/item/clothing/glasses/G = I - if(G.glass_colour_type) - update_glasses_color(G, 1) - if(G.tint) - update_tint() - if(G.vision_correction) - clear_fullscreen("nearsighted") - if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) - update_sight() - update_inv_glasses() - if(slot_gloves) - gloves = I - update_inv_gloves() - if(slot_shoes) - shoes = I - update_inv_shoes() - if(slot_wear_suit) - wear_suit = I - if(I.flags_inv & HIDEJUMPSUIT) - update_inv_w_uniform() - if(wear_suit.breakouttime) //when equipping a straightjacket - stop_pulling() //can't pull if restrained - update_action_buttons_icon() //certain action buttons will no longer be usable. - update_inv_wear_suit() - if(slot_w_uniform) - w_uniform = I - update_suit_sensors() - update_inv_w_uniform() - if(slot_l_store) - l_store = I - update_inv_pockets() - if(slot_r_store) - r_store = I - update_inv_pockets() - if(slot_s_store) - s_store = I - update_inv_s_store() - else - to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") - - //Item is handled and in slot, valid to call callback, for this proc should always be true - if(!not_handled) - I.equipped(src, slot) - - return not_handled //For future deeper overrides - -/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) - var/index = get_held_index_of_item(I) - . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. - if(!. || !I) - return - if(index && dna.species.mutanthands) - put_in_hand(new dna.species.mutanthands(), index) - if(I == wear_suit) - if(s_store && invdrop) - dropItemToGround(s_store, TRUE) //It makes no sense for your suit storage to stay on you if you drop your suit. - if(wear_suit.breakouttime) //when unequipping a straightjacket - update_action_buttons_icon() //certain action buttons may be usable again. - wear_suit = null - if(I.flags_inv & HIDEJUMPSUIT) - update_inv_w_uniform() - update_inv_wear_suit() - else if(I == w_uniform) - if(invdrop) - if(r_store) - dropItemToGround(r_store, TRUE) //Again, makes sense for pockets to drop. - if(l_store) - dropItemToGround(l_store, TRUE) - if(wear_id) - dropItemToGround(wear_id) - if(belt) - dropItemToGround(belt) - w_uniform = null - update_suit_sensors() - update_inv_w_uniform(invdrop) - else if(I == gloves) - gloves = null - update_inv_gloves() - else if(I == glasses) - glasses = null - var/obj/item/clothing/glasses/G = I - if(G.glass_colour_type) - update_glasses_color(G, 0) - if(G.tint) - update_tint() - if(G.vision_correction) - if(disabilities & NEARSIGHT) - overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1) - if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) - update_sight() - update_inv_glasses() - else if(I == ears) - ears = null - update_inv_ears() - else if(I == shoes) - shoes = null - update_inv_shoes() - else if(I == belt) - belt = null - update_inv_belt() - else if(I == wear_id) - wear_id = null - sec_hud_set_ID() - update_inv_wear_id() - else if(I == r_store) - r_store = null - update_inv_pockets() - else if(I == l_store) - l_store = null - update_inv_pockets() - else if(I == s_store) - s_store = null - update_inv_s_store() - -/mob/living/carbon/human/wear_mask_update(obj/item/clothing/C, toggle_off = 1) - if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR))) - update_hair() - if(toggle_off && internal && !getorganslot("breathing_tube")) - update_internals_hud_icon(0) - internal = null - if(C.flags_inv & HIDEEYES) - update_inv_glasses() - sec_hud_set_security_status() - ..() - -/mob/living/carbon/human/head_update(obj/item/I, forced) - if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || forced) - update_hair() - if(I.flags_inv & HIDEEYES || forced) - update_inv_glasses() - if(I.flags_inv & HIDEEARS || forced) - update_body() - sec_hud_set_security_status() - ..() - -/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) - var/datum/outfit/O = null - - if(ispath(outfit)) - O = new outfit - else - O = outfit - if(!istype(O)) - return 0 - if(!O) - return 0 - - return O.equip(src, visualsOnly) + +// Return the item currently in the slot ID +/mob/living/carbon/human/get_item_by_slot(slot_id) + switch(slot_id) + if(slot_back) + return back + if(slot_wear_mask) + return wear_mask + if(slot_neck) + return wear_neck + if(slot_handcuffed) + return handcuffed + if(slot_legcuffed) + return legcuffed + if(slot_belt) + return belt + if(slot_wear_id) + return wear_id + if(slot_ears) + return ears + if(slot_glasses) + return glasses + if(slot_gloves) + return gloves + if(slot_head) + return head + if(slot_shoes) + return shoes + if(slot_wear_suit) + return wear_suit + if(slot_w_uniform) + return w_uniform + if(slot_l_store) + return l_store + if(slot_r_store) + return r_store + if(slot_s_store) + return s_store + return null + +/mob/living/carbon/human/proc/get_all_slots() + . = get_head_slots() | get_body_slots() + +/mob/living/carbon/human/proc/get_body_slots() + return list( + back, + s_store, + handcuffed, + legcuffed, + wear_suit, + gloves, + shoes, + belt, + wear_id, + l_store, + r_store, + w_uniform + ) + +/mob/living/carbon/human/proc/get_head_slots() + return list( + head, + wear_mask, + glasses, + ears, + ) + +/mob/living/carbon/human/proc/get_storage_slots() + return list( + back, + belt, + l_store, + r_store, + s_store, + ) + +//This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() +/mob/living/carbon/human/equip_to_slot(obj/item/I, slot) + if(!..()) //a check failed or the item has already found its slot + return + + var/not_handled = FALSE //Added in case we make this type path deeper one day + switch(slot) + if(slot_belt) + belt = I + update_inv_belt() + if(slot_wear_id) + wear_id = I + sec_hud_set_ID() + update_inv_wear_id() + if(slot_ears) + ears = I + update_inv_ears() + if(slot_glasses) + glasses = I + var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 1) + if(G.tint) + update_tint() + if(G.vision_correction) + clear_fullscreen("nearsighted") + if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) + update_sight() + update_inv_glasses() + if(slot_gloves) + gloves = I + update_inv_gloves() + if(slot_shoes) + shoes = I + update_inv_shoes() + if(slot_wear_suit) + wear_suit = I + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() + if(wear_suit.breakouttime) //when equipping a straightjacket + stop_pulling() //can't pull if restrained + update_action_buttons_icon() //certain action buttons will no longer be usable. + update_inv_wear_suit() + if(slot_w_uniform) + w_uniform = I + update_suit_sensors() + update_inv_w_uniform() + if(slot_l_store) + l_store = I + update_inv_pockets() + if(slot_r_store) + r_store = I + update_inv_pockets() + if(slot_s_store) + s_store = I + update_inv_s_store() + else + to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") + + //Item is handled and in slot, valid to call callback, for this proc should always be true + if(!not_handled) + I.equipped(src, slot) + + return not_handled //For future deeper overrides + +/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) + var/index = get_held_index_of_item(I) + . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. + if(!. || !I) + return + if(index && dna.species.mutanthands) + put_in_hand(new dna.species.mutanthands(), index) + if(I == wear_suit) + if(s_store && invdrop) + dropItemToGround(s_store, TRUE) //It makes no sense for your suit storage to stay on you if you drop your suit. + if(wear_suit.breakouttime) //when unequipping a straightjacket + update_action_buttons_icon() //certain action buttons may be usable again. + wear_suit = null + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() + update_inv_wear_suit() + else if(I == w_uniform) + if(invdrop) + if(r_store) + dropItemToGround(r_store, TRUE) //Again, makes sense for pockets to drop. + if(l_store) + dropItemToGround(l_store, TRUE) + if(wear_id) + dropItemToGround(wear_id) + if(belt) + dropItemToGround(belt) + w_uniform = null + update_suit_sensors() + update_inv_w_uniform(invdrop) + else if(I == gloves) + gloves = null + update_inv_gloves() + else if(I == glasses) + glasses = null + var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 0) + if(G.tint) + update_tint() + if(G.vision_correction) + if(disabilities & NEARSIGHT) + overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1) + if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) + update_sight() + update_inv_glasses() + else if(I == ears) + ears = null + update_inv_ears() + else if(I == shoes) + shoes = null + update_inv_shoes() + else if(I == belt) + belt = null + update_inv_belt() + else if(I == wear_id) + wear_id = null + sec_hud_set_ID() + update_inv_wear_id() + else if(I == r_store) + r_store = null + update_inv_pockets() + else if(I == l_store) + l_store = null + update_inv_pockets() + else if(I == s_store) + s_store = null + update_inv_s_store() + +/mob/living/carbon/human/wear_mask_update(obj/item/clothing/C, toggle_off = 1) + if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR))) + update_hair() + if(toggle_off && internal && !getorganslot("breathing_tube")) + update_internals_hud_icon(0) + internal = null + if(C.flags_inv & HIDEEYES) + update_inv_glasses() + sec_hud_set_security_status() + ..() + +/mob/living/carbon/human/head_update(obj/item/I, forced) + if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || forced) + update_hair() + if(I.flags_inv & HIDEEYES || forced) + update_inv_glasses() + if(I.flags_inv & HIDEEARS || forced) + update_body() + sec_hud_set_security_status() + ..() + +/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) + var/datum/outfit/O = null + + if(ispath(outfit)) + O = new outfit + else + O = outfit + if(!istype(O)) + return 0 + if(!O) + return 0 + + return O.equip(src, visualsOnly) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index a23fa66144..4e80873e5c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -32,7 +32,7 @@ //citadel code if(stat != DEAD) handle_arousal() - + if(..()) //not dead for(var/datum/mutation/human/HM in dna.mutations) HM.on_life(src) @@ -360,7 +360,7 @@ if(we_breath) adjustOxyLoss(8) - Paralyse(4) + Unconscious(80) // Tissues die without blood circulation adjustBruteLoss(2) @@ -386,10 +386,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /mob/living/carbon/human/handle_status_effects() ..() if(drunkenness) - if(sleeping) - drunkenness = max(drunkenness - (drunkenness / 10), 0) - else - drunkenness = max(drunkenness - (drunkenness / 25), 0) + drunkenness = max(drunkenness - (drunkenness * 0.04), 0) if(drunkenness >= 6) if(prob(25)) @@ -429,7 +426,7 @@ All effects don't start immediately, but rather get worse over time; the rate is to_chat(src, "You're so tired... but you can't miss that shuttle...") else to_chat(src, "Just a quick nap...") - Sleeping(45) + Sleeping(900) if(drunkenness >= 101) adjustToxLoss(4) //Let's be honest you shouldn't be alive by now diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 69743c5d77..a4e733d5b2 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -1,131 +1,131 @@ /mob/living/carbon/human/say_mod(input, message_mode) - verb_say = dna.species.say_mod + verb_say = dna.species.say_mod if(slurring) return "slurs" else . = ..() - -/mob/living/carbon/human/treat_message(message) - message = dna.species.handle_speech(message,src) - if(viruses.len) - for(var/datum/disease/pierrot_throat/D in viruses) - var/list/temp_message = splittext(message, " ") //List each word in the message - var/list/pick_list = list() - for(var/i = 1, i <= temp_message.len, i++) //Create a second list for excluding words down the line - pick_list += i - for(var/i=1, ((i <= D.stage) && (i <= temp_message.len)), i++) //Loop for each stage of the disease or until we run out of words - if(prob(3 * D.stage)) //Stage 1: 3% Stage 2: 6% Stage 3: 9% Stage 4: 12% - var/H = pick(pick_list) - if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue - temp_message[H] = "HONK" - pick_list -= H //Make sure that you dont HONK the same word twice - message = jointext(temp_message, " ") - message = ..(message) - message = dna.mutations_say_mods(message) - return message - -/mob/living/carbon/human/get_spans() - return ..() | dna.mutations_get_spans() | dna.species_get_spans() - -/mob/living/carbon/human/GetVoice() - if(istype(wear_mask, /obj/item/clothing/mask/chameleon)) - var/obj/item/clothing/mask/chameleon/V = wear_mask - if(V.vchange && wear_id) - var/obj/item/weapon/card/id/idcard = wear_id.GetID() - if(istype(idcard)) - return idcard.registered_name - else - return real_name - else - return real_name - if(mind && mind.changeling && mind.changeling.mimicing) - return mind.changeling.mimicing - if(GetSpecialVoice()) - return GetSpecialVoice() - return real_name - -/mob/living/carbon/human/IsVocal() - CHECK_DNA_AND_SPECIES(src) - - // how do species that don't breathe talk? magic, that's what. - if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs")) - return 0 - if(mind) - return !mind.miming - return 1 - -/mob/living/carbon/human/proc/SetSpecialVoice(new_voice) - if(new_voice) - special_voice = new_voice - return - -/mob/living/carbon/human/proc/UnsetSpecialVoice() - special_voice = "" - return - -/mob/living/carbon/human/proc/GetSpecialVoice() - return special_voice - -/mob/living/carbon/human/binarycheck() - if(ears) - var/obj/item/device/radio/headset/dongle = ears - if(!istype(dongle)) return 0 - if(dongle.translate_binary) return 1 - -/mob/living/carbon/human/radio(message, message_mode, list/spans, language) - . = ..() - if(. != 0) - return . - - switch(message_mode) - if(MODE_HEADSET) - if (ears) - ears.talk_into(src, message, , spans, language) - return ITALICS | REDUCE_RANGE - - if(MODE_DEPARTMENT) - if (ears) - ears.talk_into(src, message, message_mode, spans, language) - return ITALICS | REDUCE_RANGE - - if(message_mode in GLOB.radiochannels) - if(ears) - ears.talk_into(src, message, message_mode, spans, language) - return ITALICS | REDUCE_RANGE - - return 0 - -/mob/living/carbon/human/get_alt_name() - if(name != GetVoice()) - return " (as [get_id_name("Unknown")])" - -/mob/living/carbon/human/proc/forcesay(list/append) //this proc is at the bottom of the file because quote fuckery makes notepad++ cri - if(stat == CONSCIOUS) - if(client) - var/virgin = 1 //has the text been modified yet? - var/temp = winget(client, "input", "text") - if(findtextEx(temp, "Say \"", 1, 7) && length(temp) > 5) //"case sensitive means - - temp = replacetext(temp, ";", "") //general radio - - if(findtext(trim_left(temp), ":", 6, 7)) //dept radio - temp = copytext(trim_left(temp), 8) - virgin = 0 - - if(virgin) - temp = copytext(trim_left(temp), 6) //normal speech - virgin = 0 - - while(findtext(trim_left(temp), ":", 1, 2)) //dept radio again (necessary) - temp = copytext(trim_left(temp), 3) - - if(findtext(temp, "*", 1, 2)) //emotes - return - - var/trimmed = trim_left(temp) - if(length(trimmed)) - if(append) - temp += pick(append) - - say(temp) - winset(client, "input", "text=[null]") + +/mob/living/carbon/human/treat_message(message) + message = dna.species.handle_speech(message,src) + if(viruses.len) + for(var/datum/disease/pierrot_throat/D in viruses) + var/list/temp_message = splittext(message, " ") //List each word in the message + var/list/pick_list = list() + for(var/i = 1, i <= temp_message.len, i++) //Create a second list for excluding words down the line + pick_list += i + for(var/i=1, ((i <= D.stage) && (i <= temp_message.len)), i++) //Loop for each stage of the disease or until we run out of words + if(prob(3 * D.stage)) //Stage 1: 3% Stage 2: 6% Stage 3: 9% Stage 4: 12% + var/H = pick(pick_list) + if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue + temp_message[H] = "HONK" + pick_list -= H //Make sure that you dont HONK the same word twice + message = jointext(temp_message, " ") + message = ..(message) + message = dna.mutations_say_mods(message) + return message + +/mob/living/carbon/human/get_spans() + return ..() | dna.mutations_get_spans() | dna.species_get_spans() + +/mob/living/carbon/human/GetVoice() + if(istype(wear_mask, /obj/item/clothing/mask/chameleon)) + var/obj/item/clothing/mask/chameleon/V = wear_mask + if(V.vchange && wear_id) + var/obj/item/weapon/card/id/idcard = wear_id.GetID() + if(istype(idcard)) + return idcard.registered_name + else + return real_name + else + return real_name + if(mind && mind.changeling && mind.changeling.mimicing) + return mind.changeling.mimicing + if(GetSpecialVoice()) + return GetSpecialVoice() + return real_name + +/mob/living/carbon/human/IsVocal() + CHECK_DNA_AND_SPECIES(src) + + // how do species that don't breathe talk? magic, that's what. + if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs")) + return 0 + if(mind) + return !mind.miming + return 1 + +/mob/living/carbon/human/proc/SetSpecialVoice(new_voice) + if(new_voice) + special_voice = new_voice + return + +/mob/living/carbon/human/proc/UnsetSpecialVoice() + special_voice = "" + return + +/mob/living/carbon/human/proc/GetSpecialVoice() + return special_voice + +/mob/living/carbon/human/binarycheck() + if(ears) + var/obj/item/device/radio/headset/dongle = ears + if(!istype(dongle)) return 0 + if(dongle.translate_binary) return 1 + +/mob/living/carbon/human/radio(message, message_mode, list/spans, language) + . = ..() + if(. != 0) + return . + + switch(message_mode) + if(MODE_HEADSET) + if (ears) + ears.talk_into(src, message, , spans, language) + return ITALICS | REDUCE_RANGE + + if(MODE_DEPARTMENT) + if (ears) + ears.talk_into(src, message, message_mode, spans, language) + return ITALICS | REDUCE_RANGE + + if(message_mode in GLOB.radiochannels) + if(ears) + ears.talk_into(src, message, message_mode, spans, language) + return ITALICS | REDUCE_RANGE + + return 0 + +/mob/living/carbon/human/get_alt_name() + if(name != GetVoice()) + return " (as [get_id_name("Unknown")])" + +/mob/living/carbon/human/proc/forcesay(list/append) //this proc is at the bottom of the file because quote fuckery makes notepad++ cri + if(stat == CONSCIOUS) + if(client) + var/virgin = 1 //has the text been modified yet? + var/temp = winget(client, "input", "text") + if(findtextEx(temp, "Say \"", 1, 7) && length(temp) > 5) //"case sensitive means + + temp = replacetext(temp, ";", "") //general radio + + if(findtext(trim_left(temp), ":", 6, 7)) //dept radio + temp = copytext(trim_left(temp), 8) + virgin = 0 + + if(virgin) + temp = copytext(trim_left(temp), 6) //normal speech + virgin = 0 + + while(findtext(trim_left(temp), ":", 1, 2)) //dept radio again (necessary) + temp = copytext(trim_left(temp), 3) + + if(findtext(temp, "*", 1, 2)) //emotes + return + + var/trimmed = trim_left(temp) + if(length(trimmed)) + if(append) + temp += pick(append) + + say(temp) + winset(client, "input", "text=[null]") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 19feed308a..6083cfd5dc 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1061,16 +1061,16 @@ if(!(RADIMMUNE in species_traits)) if(H.radiation) if (H.radiation > 100) - if(!H.weakened) + if(!H.IsKnockdown()) H.emote("collapse") - H.Weaken(10) + H.Knockdown(200) to_chat(H, "You feel weak.") switch(H.radiation) if(50 to 75) if(prob(5)) - if(!H.weakened) + if(!H.IsKnockdown()) H.emote("collapse") - H.Weaken(3) + H.Knockdown(60) to_chat(H, "You feel weak.") if(prob(15)) @@ -1253,7 +1253,7 @@ if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold) target.visible_message("[user] has weakened [target]!", \ "[user] has weakened [target]!") - target.apply_effect(4, WEAKEN, armor_block) + target.apply_effect(80, KNOCKDOWN, armor_block) target.forcesay(GLOB.hit_appends) else if(target.lying) target.forcesay(GLOB.hit_appends) @@ -1288,7 +1288,7 @@ playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) target.visible_message("[user] has pushed [target]!", "[user] has pushed [target]!", null, COMBAT_MESSAGE_RANGE) - target.apply_effect(2, WEAKEN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) + target.apply_effect(40, KNOCKDOWN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) target.forcesay(GLOB.hit_appends) add_logs(user, target, "disarmed", " pushing them to the ground") @@ -1331,7 +1331,7 @@ return if(M.mind) attacker_style = M.mind.martial_art - if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(0, M.name, attack_type = UNARMED_ATTACK)) + if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK)) add_logs(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") return 0 @@ -1351,7 +1351,7 @@ /datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species if(user != H) - if(H.check_shields(I.force, "the [I.name]", I, MELEE_ATTACK, I.armour_penetration)) + if(H.check_shields(I, I.force, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) return 0 if(H.check_block()) H.visible_message("[H] blocks [I]!") @@ -1424,7 +1424,7 @@ if(prob(I.force)) H.visible_message("[H] has been knocked down!", \ "[H] has been knocked down!") - H.apply_effect(3, WEAKEN, armor_block) + H.apply_effect(60, KNOCKDOWN, armor_block) if(bloody) if(H.wear_suit) @@ -1444,7 +1444,7 @@ return 0 var/obj/item/bodypart/BP = null - if(islimb(def_zone)) + if(isbodypart(def_zone)) BP = def_zone else if(!def_zone) @@ -1528,13 +1528,13 @@ //Body temperature is too hot. var/burn_damage switch(H.bodytemperature) - if(360 to 400) + if(BODYTEMP_HEAT_DAMAGE_LIMIT to 400) H.throw_alert("temp", /obj/screen/alert/hot, 1) burn_damage = HEAT_DAMAGE_LEVEL_1 if(400 to 460) H.throw_alert("temp", /obj/screen/alert/hot, 2) burn_damage = HEAT_DAMAGE_LEVEL_2 - if(460 to INFINITY) + else H.throw_alert("temp", /obj/screen/alert/hot, 3) if(H.on_fire) burn_damage = HEAT_DAMAGE_LEVEL_3 @@ -1546,18 +1546,15 @@ H.apply_damage(burn_damage, BURN) else if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !(GLOB.mutations_list[COLDRES] in H.dna.mutations)) switch(H.bodytemperature) - if(200 to 260) + if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) H.throw_alert("temp", /obj/screen/alert/cold, 1) H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod, BURN) if(120 to 200) H.throw_alert("temp", /obj/screen/alert/cold, 2) H.apply_damage(COLD_DAMAGE_LEVEL_2*coldmod, BURN) - if(-INFINITY to 120) + else H.throw_alert("temp", /obj/screen/alert/cold, 3) H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod, BURN) - else - H.clear_alert("temp") - else H.clear_alert("temp") diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index b76536f5bf..18444bb366 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -1,9 +1,9 @@ -/datum/species/abductor - name = "Abductor" - id = "abductor" - say_mod = "gibbers" - sexes = 0 +/datum/species/abductor + name = "Abductor" + id = "abductor" + say_mod = "gibbers" + sexes = 0 species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER) mutanttongue = /obj/item/organ/tongue/abductor - var/scientist = 0 // vars to not pollute spieces list with castes + var/scientist = 0 // vars to not pollute spieces list with castes var/team = 1 diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 1c7cc6806b..44f1e5c456 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -1,21 +1,21 @@ -/datum/species/android - name = "Android" - id = "android" - say_mod = "states" - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) - meat = null - damage_overlay_type = "synth" +/datum/species/android + name = "Android" + id = "android" + say_mod = "states" + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) + meat = null + damage_overlay_type = "synth" mutanttongue = /obj/item/organ/tongue/robot - limbs_id = "synth" - -/datum/species/android/on_species_gain(mob/living/carbon/C) - . = ..() - for(var/X in C.bodyparts) - var/obj/item/bodypart/O = X + limbs_id = "synth" + +/datum/species/android/on_species_gain(mob/living/carbon/C) + . = ..() + for(var/X in C.bodyparts) + var/obj/item/bodypart/O = X O.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) - -/datum/species/android/on_species_loss(mob/living/carbon/C) - . = ..() - for(var/X in C.bodyparts) - var/obj/item/bodypart/O = X + +/datum/species/android/on_species_loss(mob/living/carbon/C) + . = ..() + for(var/X in C.bodyparts) + var/obj/item/bodypart/O = X O.change_bodypart_status(BODYPART_ORGANIC,FALSE, TRUE) diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 8fb8b66c9d..7247509557 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -47,7 +47,7 @@ return 0 /datum/species/angel/proc/CanFly(mob/living/carbon/human/H) - if(H.stat || H.stunned || H.weakened) + if(H.stat || H.IsStun() || H.IsKnockdown()) return 0 if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) //Jumpsuits have tail holes, so it makes sense they have wing holes too to_chat(H, "Your suit blocks your wings from extending!") @@ -65,7 +65,7 @@ /datum/action/innate/flight name = "Toggle Flight" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUNNED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN button_icon_state = "flight" /datum/action/innate/flight/Activate() diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 0718a1bfdc..e1b9f0b86c 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -1,29 +1,29 @@ -/datum/species/fly - name = "Flyperson" - id = "fly" - say_mod = "buzzes" - mutanttongue = /obj/item/organ/tongue/fly - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly - -/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "pestkiller") - H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - return 1 - - -/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(istype(chem,/datum/reagent/consumable)) - var/datum/reagent/consumable/nutri_check = chem - if(nutri_check.nutriment_factor > 0) - var/turf/pos = get_turf(H) +/datum/species/fly + name = "Flyperson" + id = "fly" + say_mod = "buzzes" + mutanttongue = /obj/item/organ/tongue/fly + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly + +/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "pestkiller") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + return 1 + + +/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(istype(chem,/datum/reagent/consumable)) + var/datum/reagent/consumable/nutri_check = chem + if(nutri_check.nutriment_factor > 0) + var/turf/pos = get_turf(H) H.vomit(0, FALSE, FALSE, 2, TRUE) - playsound(pos, 'sound/effects/splat.ogg', 50, 1) - H.visible_message("[H] vomits on the floor!", \ - "You throw up on the floor!") - ..() - -/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon,/obj/item/weapon/melee/flyswatter)) - return 29 //Flyswatters deal 30x damage to flypeople. - return 0 + playsound(pos, 'sound/effects/splat.ogg', 50, 1) + H.visible_message("[H] vomits on the floor!", \ + "You throw up on the floor!") + ..() + +/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) + if(istype(weapon,/obj/item/weapon/melee/flyswatter)) + return 29 //Flyswatters deal 30x damage to flypeople. + return 0 diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 09c566e6a4..2c794c5b81 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -340,7 +340,7 @@ brutemod = 3 //very fragile burnmod = 0.25 info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." - attack_sound = 'sound/effects/Glassbr2.ogg' + attack_sound = 'sound/effects/glassbr2.ogg' prefix = "Glass" /datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) @@ -476,7 +476,7 @@ meat = /obj/item/weapon/ore/bananium info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." attack_verb = "honk" - attack_sound = 'sound/items/AirHorn2.ogg' + attack_sound = 'sound/items/airhorn2.ogg' prefix = "Bananium" var/last_honk = 0 @@ -696,4 +696,4 @@ /datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) . = ..() - C.ventcrawler = initial(C.ventcrawler) \ No newline at end of file + C.ventcrawler = initial(C.ventcrawler) diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index f372968270..664eabefcd 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -1,69 +1,69 @@ -/datum/species/plasmaman - name = "Plasmaman" - id = "plasmaman" - say_mod = "rattles" - sexes = 0 - meat = /obj/item/stack/sheet/mineral/plasma - species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) - mutantlungs = /obj/item/organ/lungs/plasmaman +/datum/species/plasmaman + name = "Plasmaman" + id = "plasmaman" + say_mod = "rattles" + sexes = 0 + meat = /obj/item/stack/sheet/mineral/plasma + species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) + mutantlungs = /obj/item/organ/lungs/plasmaman mutanttongue = /obj/item/organ/tongue/bone/plasmaman - dangerous_existence = 1 //So so much - blacklisted = 1 //See above - burnmod = 1.5 - heatmod = 1.5 - breathid = "tox" - speedmod = 1 - damage_overlay_type = ""//let's not show bloody wounds or burns over bones. - var/internal_fire = FALSE //If the bones themselves are burning clothes won't help you much - -/datum/species/plasmaman/spec_life(mob/living/carbon/human/H) - var/datum/gas_mixture/environment = H.loc.return_air() - var/atmos_sealed = (H.wear_suit && (H.wear_suit.flags & STOPSPRESSUREDMAGE)) && (H.head && (H.head.flags & STOPSPRESSUREDMAGE)) - if((!istype(H.w_uniform, /obj/item/clothing/under/plasmaman) || !istype(H.head, /obj/item/clothing/head/helmet/space/plasmaman)) && !atmos_sealed) - if(environment) - if(environment.total_moles()) - if(environment.gases["o2"] && (environment.gases["o2"][MOLES]) >= 1) //Same threshhold that extinguishes fire - H.adjust_fire_stacks(0.5) - if(!H.on_fire && H.fire_stacks > 0) - H.visible_message("[H]'s body reacts with the atmosphere and bursts into flames!","Your body reacts with the atmosphere and bursts into flame!") - H.IgniteMob() - internal_fire = TRUE - else - if(H.fire_stacks) - var/obj/item/clothing/under/plasmaman/P = H.w_uniform - if(istype(P)) - P.Extinguish(H) - internal_fire = FALSE - else - internal_fire = FALSE - H.update_fire() - -/datum/species/plasmaman/handle_fire(mob/living/carbon/human/H, no_protection) - if(internal_fire) - no_protection = TRUE - ..() - -/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) - var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman - H.equipOutfit(O, visualsOnly) - H.internal = H.get_item_for_held_index(2) - H.update_internals_hud_icon(1) - return 0 - -/datum/species/plasmaman/qualifies_for_rank(rank, list/features) - if(rank in GLOB.security_positions) - return 0 - if(rank == "Clown" || rank == "Mime")//No funny bussiness - return 0 - return ..() - -/datum/species/plasmaman/random_name(gender,unique,lastname) - if(unique) - return random_unique_plasmaman_name() - - var/randname = plasmaman_name() - - if(lastname) - randname += " [lastname]" - + dangerous_existence = 1 //So so much + blacklisted = 1 //See above + burnmod = 1.5 + heatmod = 1.5 + breathid = "tox" + speedmod = 1 + damage_overlay_type = ""//let's not show bloody wounds or burns over bones. + var/internal_fire = FALSE //If the bones themselves are burning clothes won't help you much + +/datum/species/plasmaman/spec_life(mob/living/carbon/human/H) + var/datum/gas_mixture/environment = H.loc.return_air() + var/atmos_sealed = (H.wear_suit && (H.wear_suit.flags & STOPSPRESSUREDMAGE)) && (H.head && (H.head.flags & STOPSPRESSUREDMAGE)) + if((!istype(H.w_uniform, /obj/item/clothing/under/plasmaman) || !istype(H.head, /obj/item/clothing/head/helmet/space/plasmaman)) && !atmos_sealed) + if(environment) + if(environment.total_moles()) + if(environment.gases["o2"] && (environment.gases["o2"][MOLES]) >= 1) //Same threshhold that extinguishes fire + H.adjust_fire_stacks(0.5) + if(!H.on_fire && H.fire_stacks > 0) + H.visible_message("[H]'s body reacts with the atmosphere and bursts into flames!","Your body reacts with the atmosphere and bursts into flame!") + H.IgniteMob() + internal_fire = TRUE + else + if(H.fire_stacks) + var/obj/item/clothing/under/plasmaman/P = H.w_uniform + if(istype(P)) + P.Extinguish(H) + internal_fire = FALSE + else + internal_fire = FALSE + H.update_fire() + +/datum/species/plasmaman/handle_fire(mob/living/carbon/human/H, no_protection) + if(internal_fire) + no_protection = TRUE + ..() + +/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) + var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman + H.equipOutfit(O, visualsOnly) + H.internal = H.get_item_for_held_index(2) + H.update_internals_hud_icon(1) + return 0 + +/datum/species/plasmaman/qualifies_for_rank(rank, list/features) + if(rank in GLOB.security_positions) + return 0 + if(rank == "Clown" || rank == "Mime")//No funny bussiness + return 0 + return ..() + +/datum/species/plasmaman/random_name(gender,unique,lastname) + if(unique) + return random_unique_plasmaman_name() + + var/randname = plasmaman_name() + + if(lastname) + randname += " [lastname]" + return randname diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 4d124fbfcb..8f18698c0d 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -50,7 +50,7 @@ if(/obj/item/projectile/energy/floramut) if(prob(15)) H.rad_act(rand(30,80)) - H.Weaken(5) + H.Knockdown(100) H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") if(prob(80)) H.randmutb() diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index fb581f0239..e75f862f58 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -1,56 +1,56 @@ -/datum/species/zombie - // 1spooky - name = "High Functioning Zombie" - id = "zombie" - say_mod = "moans" - sexes = 0 - blacklisted = 1 - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT) - mutant_organs = list(/obj/item/organ/tongue/zombie) +/datum/species/zombie + // 1spooky + name = "High Functioning Zombie" + id = "zombie" + say_mod = "moans" + sexes = 0 + blacklisted = 1 + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT) + mutant_organs = list(/obj/item/organ/tongue/zombie) var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') - -/datum/species/zombie/infectious - name = "Infectious Zombie" - id = "memezombies" - limbs_id = "zombie" - mutanthands = /obj/item/zombie_hand - armor = 20 // 120 damage to KO a zombie, which kills it - speedmod = 2 - mutanteyes = /obj/item/organ/eyes/night_vision/zombie - + +/datum/species/zombie/infectious + name = "Infectious Zombie" + id = "memezombies" + limbs_id = "zombie" + mutanthands = /obj/item/zombie_hand + armor = 20 // 120 damage to KO a zombie, which kills it + speedmod = 2 + mutanteyes = /obj/item/organ/eyes/night_vision/zombie + /datum/species/zombie/infectious/spec_stun(mob/living/carbon/human/H,amount) . = min(2, amount) -/datum/species/zombie/infectious/spec_life(mob/living/carbon/C) - . = ..() - C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW +/datum/species/zombie/infectious/spec_life(mob/living/carbon/C) + . = ..() + C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW C.heal_overall_damage(4,4) if(prob(4)) playsound(C, pick(spooks), 50, TRUE, 10) - if(C.InCritical()) - C.death() - // Zombies only move around when not in crit, they instantly - // succumb otherwise, and will standup again soon - -/datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - - // Deal with the source of this zombie corruption - // Infection organ needs to be handled separately from mutant_organs - // because it persists through species transitions - var/obj/item/organ/zombie_infection/infection - infection = C.getorganslot("zombie_infection") - if(!infection) - infection = new() - infection.Insert(C) - - -// Your skin falls off -/datum/species/krokodil_addict - name = "Human" - id = "goofzombies" - limbs_id = "zombie" //They look like zombies - sexes = 0 - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - mutant_organs = list(/obj/item/organ/tongue/zombie) + if(C.InCritical()) + C.death() + // Zombies only move around when not in crit, they instantly + // succumb otherwise, and will standup again soon + +/datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + + // Deal with the source of this zombie corruption + // Infection organ needs to be handled separately from mutant_organs + // because it persists through species transitions + var/obj/item/organ/zombie_infection/infection + infection = C.getorganslot("zombie_infection") + if(!infection) + infection = new() + infection.Insert(C) + + +// Your skin falls off +/datum/species/krokodil_addict + name = "Human" + id = "goofzombies" + limbs_id = "zombie" //They look like zombies + sexes = 0 + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + mutant_organs = list(/obj/item/organ/tongue/zombie) diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm index cc32be6f2f..0e009bcd7b 100644 --- a/code/modules/mob/living/carbon/human/status_procs.dm +++ b/code/modules/mob/living/carbon/human/status_procs.dm @@ -3,11 +3,11 @@ amount = dna.species.spec_stun(src,amount) return ..() -/mob/living/carbon/human/Weaken(amount, updating = 1, ignore_canstun = 0) +/mob/living/carbon/human/Knockdown(amount, updating = 1, ignore_canstun = 0) amount = dna.species.spec_stun(src,amount) return ..() -/mob/living/carbon/human/Paralyse(amount, updating = 1, ignore_canstun = 0) +/mob/living/carbon/human/Unconscious(amount, updating = 1, ignore_canstun = 0) amount = dna.species.spec_stun(src,amount) return ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 14cf9d2508..f8e6270451 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1,178 +1,176 @@ - /////////////////////// - //UPDATE_ICONS SYSTEM// - /////////////////////// -/* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; -This system allows you to update individual mob-overlays, without regenerating them all each time. -When we generate overlays we generate the standing version and then rotate the mob as necessary.. - -As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. //22 and counting, good job guys - var/overlays_standing[20] //For the standing stance - -Most of the time we only wish to update one overlay: - e.g. - we dropped the fireaxe out of our left hand and need to remove its icon from our mob - e.g.2 - our hair colour has changed, so we need to update our hair icons on our mob -In these cases, instead of updating every overlay using the old behaviour (regenerate_icons), we instead call -the appropriate update_X proc. - e.g. - update_l_hand() - e.g.2 - update_hair() - -Note: Recent changes by aranclanos+carn: - update_icons() no longer needs to be called. - the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. - IN ALL OTHER CASES it's better to just call the specific update_X procs. - -Note: The defines for layer numbers is now kept exclusvely in __DEFINES/misc.dm instead of being defined there, - then redefined and undefiend everywhere else. If you need to change the layering of sprites (or add a new layer) - that's where you should start. - -All of this means that this code is more maintainable, faster and still fairly easy to use. - -There are several things that need to be remembered: -> Whenever we do something that should cause an overlay to update (which doesn't use standard procs - ( i.e. you do something like l_hand = /obj/item/something new(src), rather than using the helper procs) - You will need to call the relevant update_inv_* proc - - All of these are named after the variable they update from. They are defined at the mob/ level like - update_clothing was, so you won't cause undefined proc runtimes with usr.update_inv_wear_id() if the usr is a - slime etc. Instead, it'll just return without doing any work. So no harm in calling it for slimes and such. - - -> There are also these special cases: - update_damage_overlays() //handles damage overlays for brute/burn damage - update_body() //Handles updating your mob's body layer and mutant bodyparts - as well as sprite-accessories that didn't really fit elsewhere (underwear, undershirts, socks, lips, eyes) - //NOTE: update_mutantrace() is now merged into this! - update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and - eyes were merged into update_body()) - - -*/ - -//HAIR OVERLAY -/mob/living/carbon/human/update_hair() - dna.species.handle_hair(src) - -//used when putting/removing clothes that hide certain mutant body parts to just update those and not update the whole body. -/mob/living/carbon/human/proc/update_mutant_bodyparts() - dna.species.handle_mutant_bodyparts(src) - - -/mob/living/carbon/human/update_body() - remove_overlay(BODY_LAYER) - dna.species.handle_body(src) - dna.species.handle_genitals(src) - ..() - -/mob/living/carbon/human/update_fire() - ..("Standing") - - -/* --------------------------------------- */ -//For legacy support. -/mob/living/carbon/human/regenerate_icons() - - if(!..()) - icon_render_key = null //invalidate bodyparts cache - update_body() - update_genitals() - update_hair() - update_inv_w_uniform() - update_inv_wear_id() - update_inv_gloves() - update_inv_glasses() - update_inv_ears() - update_inv_shoes() - update_inv_s_store() - update_inv_wear_mask() - update_inv_head() - update_inv_belt() - update_inv_back() - update_inv_wear_suit() - update_inv_pockets() - update_inv_neck() - update_transform() - //mutations - update_mutations_overlay() - //damage overlays - update_damage_overlays() - -/* --------------------------------------- */ -//vvvvvv UPDATE_INV PROCS vvvvvv - -/mob/living/carbon/human/update_inv_w_uniform(invdrop = TRUE) - remove_overlay(UNIFORM_LAYER) - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_w_uniform] - inv.update_icon() - - if(istype(w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = w_uniform - U.screen_loc = ui_iclothing - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += w_uniform - update_observer_view(w_uniform,1) - - if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT)) - return - - - var/t_color = U.item_color - if(!t_color) - t_color = U.icon_state - if(U.adjusted == ALT_STYLE) - t_color = "[t_color]_d" - else if(U.adjusted == DIGITIGRADE_STYLE) - t_color = "[t_color]_l" - + /////////////////////// + //UPDATE_ICONS SYSTEM// + /////////////////////// +/* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; +This system allows you to update individual mob-overlays, without regenerating them all each time. +When we generate overlays we generate the standing version and then rotate the mob as necessary.. + +As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. //22 and counting, good job guys + var/overlays_standing[20] //For the standing stance + +Most of the time we only wish to update one overlay: + e.g. - we dropped the fireaxe out of our left hand and need to remove its icon from our mob + e.g.2 - our hair colour has changed, so we need to update our hair icons on our mob +In these cases, instead of updating every overlay using the old behaviour (regenerate_icons), we instead call +the appropriate update_X proc. + e.g. - update_l_hand() + e.g.2 - update_hair() + +Note: Recent changes by aranclanos+carn: + update_icons() no longer needs to be called. + the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. + IN ALL OTHER CASES it's better to just call the specific update_X procs. + +Note: The defines for layer numbers is now kept exclusvely in __DEFINES/misc.dm instead of being defined there, + then redefined and undefiend everywhere else. If you need to change the layering of sprites (or add a new layer) + that's where you should start. + +All of this means that this code is more maintainable, faster and still fairly easy to use. + +There are several things that need to be remembered: +> Whenever we do something that should cause an overlay to update (which doesn't use standard procs + ( i.e. you do something like l_hand = /obj/item/something new(src), rather than using the helper procs) + You will need to call the relevant update_inv_* proc + + All of these are named after the variable they update from. They are defined at the mob/ level like + update_clothing was, so you won't cause undefined proc runtimes with usr.update_inv_wear_id() if the usr is a + slime etc. Instead, it'll just return without doing any work. So no harm in calling it for slimes and such. + + +> There are also these special cases: + update_damage_overlays() //handles damage overlays for brute/burn damage + update_body() //Handles updating your mob's body layer and mutant bodyparts + as well as sprite-accessories that didn't really fit elsewhere (underwear, undershirts, socks, lips, eyes) + //NOTE: update_mutantrace() is now merged into this! + update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and + eyes were merged into update_body()) + + +*/ + +//HAIR OVERLAY +/mob/living/carbon/human/update_hair() + dna.species.handle_hair(src) + +//used when putting/removing clothes that hide certain mutant body parts to just update those and not update the whole body. +/mob/living/carbon/human/proc/update_mutant_bodyparts() + dna.species.handle_mutant_bodyparts(src) + + +/mob/living/carbon/human/update_body() + remove_overlay(BODY_LAYER) + dna.species.handle_body(src) + ..() + +/mob/living/carbon/human/update_fire() + ..("Standing") + + +/* --------------------------------------- */ +//For legacy support. +/mob/living/carbon/human/regenerate_icons() + + if(!..()) + icon_render_key = null //invalidate bodyparts cache + update_body() + update_hair() + update_inv_w_uniform() + update_inv_wear_id() + update_inv_gloves() + update_inv_glasses() + update_inv_ears() + update_inv_shoes() + update_inv_s_store() + update_inv_wear_mask() + update_inv_head() + update_inv_belt() + update_inv_back() + update_inv_wear_suit() + update_inv_pockets() + update_inv_neck() + update_transform() + //mutations + update_mutations_overlay() + //damage overlays + update_damage_overlays() + +/* --------------------------------------- */ +//vvvvvv UPDATE_INV PROCS vvvvvv + +/mob/living/carbon/human/update_inv_w_uniform(invdrop = TRUE) + remove_overlay(UNIFORM_LAYER) + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_w_uniform] + inv.update_icon() + + if(istype(w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/U = w_uniform + U.screen_loc = ui_iclothing + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += w_uniform + update_observer_view(w_uniform,1) + + if(wear_suit && (wear_suit.flags_inv & HIDEJUMPSUIT)) + return + + + var/t_color = U.item_color + if(!t_color) + t_color = U.icon_state + if(U.adjusted == ALT_STYLE) + t_color = "[t_color]_d" + else if(U.adjusted == DIGITIGRADE_STYLE) + t_color = "[t_color]_l" + var/mutable_appearance/uniform_overlay - - if(dna && dna.species.sexes) - var/G = (gender == FEMALE) ? "f" : "m" - if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) + + if(dna && dna.species.sexes) + var/G = (gender == FEMALE) ? "f" : "m" + if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE, femaleuniform = U.fitted) - + if(!uniform_overlay) uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE) - + overlays_standing[UNIFORM_LAYER] = uniform_overlay - - else if(!(dna && dna.species.nojumpsuit) && invdrop) - // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY - for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) // - dropItemToGround(thing) - - apply_overlay(UNIFORM_LAYER) - update_mutant_bodyparts() - - -/mob/living/carbon/human/update_inv_wear_id() - remove_overlay(ID_LAYER) - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_id] - inv.update_icon() - - if(wear_id) - wear_id.screen_loc = ui_id - if(client && hud_used && hud_used.hud_shown) - client.screen += wear_id - update_observer_view(wear_id) - - //TODO: add an icon file for ID slot stuff, so it's less snowflakey + + else if(!(dna && dna.species.nojumpsuit) && invdrop) + // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY + for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) // + dropItemToGround(thing) + + apply_overlay(UNIFORM_LAYER) + update_mutant_bodyparts() + + +/mob/living/carbon/human/update_inv_wear_id() + remove_overlay(ID_LAYER) + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_id] + inv.update_icon() + + if(wear_id) + wear_id.screen_loc = ui_id + if(client && hud_used && hud_used.hud_shown) + client.screen += wear_id + update_observer_view(wear_id) + + //TODO: add an icon file for ID slot stuff, so it's less snowflakey overlays_standing[ID_LAYER] = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') - - apply_overlay(ID_LAYER) - - -/mob/living/carbon/human/update_inv_gloves() - remove_overlay(GLOVES_LAYER) - - if(client && hud_used && hud_used.inv_slots[slot_gloves]) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_gloves] - inv.update_icon() - + + apply_overlay(ID_LAYER) + + +/mob/living/carbon/human/update_inv_gloves() + remove_overlay(GLOVES_LAYER) + + if(client && hud_used && hud_used.inv_slots[slot_gloves]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_gloves] + inv.update_icon() + if(!gloves && blood_DNA) var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER) if(get_num_arms() < 2) @@ -183,386 +181,386 @@ There are several things that need to be remembered: overlays_standing[GLOVES_LAYER] = bloody_overlay - if(gloves) - gloves.screen_loc = ui_gloves - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += gloves - update_observer_view(gloves,1) - var/t_state = gloves.item_state - if(!t_state) - t_state = gloves.icon_state + if(gloves) + gloves.screen_loc = ui_gloves + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += gloves + update_observer_view(gloves,1) + var/t_state = gloves.item_state + if(!t_state) + t_state = gloves.icon_state overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') - - apply_overlay(GLOVES_LAYER) - - -/mob/living/carbon/human/update_inv_glasses() - remove_overlay(GLASSES_LAYER) - - if(!get_bodypart("head")) //decapitated - return - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_glasses] - inv.update_icon() - - if(glasses) - glasses.screen_loc = ui_glasses //...draw the item in the inventory screen - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - client.screen += glasses //Either way, add the item to the HUD - update_observer_view(glasses,1) - if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) - + + apply_overlay(GLOVES_LAYER) + + +/mob/living/carbon/human/update_inv_glasses() + remove_overlay(GLASSES_LAYER) + + if(!get_bodypart("head")) //decapitated + return + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_glasses] + inv.update_icon() + + if(glasses) + glasses.screen_loc = ui_glasses //...draw the item in the inventory screen + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) //if the inventory is open ... + client.screen += glasses //Either way, add the item to the HUD + update_observer_view(glasses,1) + if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') - - apply_overlay(GLASSES_LAYER) - - -/mob/living/carbon/human/update_inv_ears() - remove_overlay(EARS_LAYER) - - if(!get_bodypart("head")) //decapitated - return - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_ears] - inv.update_icon() - - if(ears) - ears.screen_loc = ui_ears //move the item to the appropriate screen loc - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open - client.screen += ears //add it to the client's screen - update_observer_view(ears,1) - + + apply_overlay(GLASSES_LAYER) + + +/mob/living/carbon/human/update_inv_ears() + remove_overlay(EARS_LAYER) + + if(!get_bodypart("head")) //decapitated + return + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_ears] + inv.update_icon() + + if(ears) + ears.screen_loc = ui_ears //move the item to the appropriate screen loc + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) //if the inventory is open + client.screen += ears //add it to the client's screen + update_observer_view(ears,1) + overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') - - apply_overlay(EARS_LAYER) - - -/mob/living/carbon/human/update_inv_shoes() - remove_overlay(SHOES_LAYER) - - if(get_num_legs() <2) - return - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_shoes] - inv.update_icon() - - if(shoes) - shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open - client.screen += shoes //add it to client's screen - update_observer_view(shoes,1) + + apply_overlay(EARS_LAYER) + + +/mob/living/carbon/human/update_inv_shoes() + remove_overlay(SHOES_LAYER) + + if(get_num_legs() <2) + return + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_shoes] + inv.update_icon() + + if(shoes) + shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) //if the inventory is open + client.screen += shoes //add it to client's screen + update_observer_view(shoes,1) overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi') - - apply_overlay(SHOES_LAYER) - - -/mob/living/carbon/human/update_inv_s_store() - remove_overlay(SUIT_STORE_LAYER) - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_s_store] - inv.update_icon() - - if(s_store) - s_store.screen_loc = ui_sstore1 - if(client && hud_used && hud_used.hud_shown) - client.screen += s_store - update_observer_view(s_store) - var/t_state = s_store.item_state - if(!t_state) - t_state = s_store.icon_state + + apply_overlay(SHOES_LAYER) + + +/mob/living/carbon/human/update_inv_s_store() + remove_overlay(SUIT_STORE_LAYER) + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_s_store] + inv.update_icon() + + if(s_store) + s_store.screen_loc = ui_sstore1 + if(client && hud_used && hud_used.hud_shown) + client.screen += s_store + update_observer_view(s_store) + var/t_state = s_store.item_state + if(!t_state) + t_state = s_store.icon_state overlays_standing[SUIT_STORE_LAYER] = mutable_appearance('icons/mob/belt_mirror.dmi', t_state, -SUIT_STORE_LAYER) - - apply_overlay(SUIT_STORE_LAYER) - - -/mob/living/carbon/human/update_inv_head() - ..() - update_mutant_bodyparts() - -/mob/living/carbon/human/update_inv_belt() - remove_overlay(BELT_LAYER) - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_belt] - inv.update_icon() - - if(belt) - belt.screen_loc = ui_belt - if(client && hud_used && hud_used.hud_shown) - client.screen += belt - update_observer_view(belt) - - var/t_state = belt.item_state - if(!t_state) - t_state = belt.icon_state - + + apply_overlay(SUIT_STORE_LAYER) + + +/mob/living/carbon/human/update_inv_head() + ..() + update_mutant_bodyparts() + +/mob/living/carbon/human/update_inv_belt() + remove_overlay(BELT_LAYER) + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_belt] + inv.update_icon() + + if(belt) + belt.screen_loc = ui_belt + if(client && hud_used && hud_used.hud_shown) + client.screen += belt + update_observer_view(belt) + + var/t_state = belt.item_state + if(!t_state) + t_state = belt.icon_state + overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') - - - apply_overlay(BELT_LAYER) - - - -/mob/living/carbon/human/update_inv_wear_suit() - remove_overlay(SUIT_LAYER) - - if(client && hud_used) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_suit] - inv.update_icon() - - if(istype(wear_suit, /obj/item/clothing/suit)) - wear_suit.screen_loc = ui_oclothing - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += wear_suit - update_observer_view(wear_suit,1) - + + + apply_overlay(BELT_LAYER) + + + +/mob/living/carbon/human/update_inv_wear_suit() + remove_overlay(SUIT_LAYER) + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_suit] + inv.update_icon() + + if(istype(wear_suit, /obj/item/clothing/suit)) + wear_suit.screen_loc = ui_oclothing + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += wear_suit + update_observer_view(wear_suit,1) + overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi') - - if(wear_suit.breakouttime) //suit is restraining - drop_all_held_items() - - update_hair() - update_mutant_bodyparts() - - apply_overlay(SUIT_LAYER) - - -/mob/living/carbon/human/update_inv_pockets() - if(client && hud_used) - var/obj/screen/inventory/inv - - inv = hud_used.inv_slots[slot_l_store] - inv.update_icon() - - inv = hud_used.inv_slots[slot_r_store] - inv.update_icon() - - if(l_store) - l_store.screen_loc = ui_storage1 - if(hud_used.hud_shown) - client.screen += l_store - update_observer_view(l_store) - - if(r_store) - r_store.screen_loc = ui_storage2 - if(hud_used.hud_shown) - client.screen += r_store - update_observer_view(r_store) - - -/mob/living/carbon/human/update_inv_wear_mask() - ..() - update_mutant_bodyparts() //e.g. upgate needed because mask now hides lizard snout - - -/mob/living/carbon/human/update_inv_legcuffed() - remove_overlay(LEGCUFF_LAYER) - clear_alert("legcuffed") - if(legcuffed) + + if(wear_suit.breakouttime) //suit is restraining + drop_all_held_items() + + update_hair() + update_mutant_bodyparts() + + apply_overlay(SUIT_LAYER) + + +/mob/living/carbon/human/update_inv_pockets() + if(client && hud_used) + var/obj/screen/inventory/inv + + inv = hud_used.inv_slots[slot_l_store] + inv.update_icon() + + inv = hud_used.inv_slots[slot_r_store] + inv.update_icon() + + if(l_store) + l_store.screen_loc = ui_storage1 + if(hud_used.hud_shown) + client.screen += l_store + update_observer_view(l_store) + + if(r_store) + r_store.screen_loc = ui_storage2 + if(hud_used.hud_shown) + client.screen += r_store + update_observer_view(r_store) + + +/mob/living/carbon/human/update_inv_wear_mask() + ..() + update_mutant_bodyparts() //e.g. upgate needed because mask now hides lizard snout + + +/mob/living/carbon/human/update_inv_legcuffed() + remove_overlay(LEGCUFF_LAYER) + clear_alert("legcuffed") + if(legcuffed) overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER) - apply_overlay(LEGCUFF_LAYER) - throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = src.legcuffed) - -/proc/wear_female_version(t_color, icon, layer, type) - var/index = t_color - var/icon/female_clothing_icon = GLOB.female_clothing_icons[index] - if(!female_clothing_icon) //Create standing/laying icons if they don't exist - generate_female_clothing(index,t_color,icon,type) + apply_overlay(LEGCUFF_LAYER) + throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = src.legcuffed) + +/proc/wear_female_version(t_color, icon, layer, type) + var/index = t_color + var/icon/female_clothing_icon = GLOB.female_clothing_icons[index] + if(!female_clothing_icon) //Create standing/laying icons if they don't exist + generate_female_clothing(index,t_color,icon,type) return mutable_appearance(GLOB.female_clothing_icons[t_color], layer = -layer) - -/mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers) - var/list/out = new - for(var/i in 1 to TOTAL_LAYERS) - if(overlays_standing[i]) - if(i in unwantedLayers) - continue - out += overlays_standing[i] - return out - - -//human HUD updates for items in our inventory - -//update whether our head item appears on our hud. -/mob/living/carbon/human/update_hud_head(obj/item/I) - I.screen_loc = ui_head - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - -//update whether our mask item appears on our hud. -/mob/living/carbon/human/update_hud_wear_mask(obj/item/I) - I.screen_loc = ui_mask - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - -//update whether our neck item appears on our hud. -/mob/living/carbon/human/update_hud_neck(obj/item/I) - I.screen_loc = ui_neck - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - -//update whether our back item appears on our hud. -/mob/living/carbon/human/update_hud_back(obj/item/I) - I.screen_loc = ui_back - if(client && hud_used && hud_used.hud_shown) - client.screen += I - update_observer_view(I) - - - - -/* + +/mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers) + var/list/out = new + for(var/i in 1 to TOTAL_LAYERS) + if(overlays_standing[i]) + if(i in unwantedLayers) + continue + out += overlays_standing[i] + return out + + +//human HUD updates for items in our inventory + +//update whether our head item appears on our hud. +/mob/living/carbon/human/update_hud_head(obj/item/I) + I.screen_loc = ui_head + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += I + update_observer_view(I,1) + +//update whether our mask item appears on our hud. +/mob/living/carbon/human/update_hud_wear_mask(obj/item/I) + I.screen_loc = ui_mask + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += I + update_observer_view(I,1) + +//update whether our neck item appears on our hud. +/mob/living/carbon/human/update_hud_neck(obj/item/I) + I.screen_loc = ui_neck + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += I + update_observer_view(I,1) + +//update whether our back item appears on our hud. +/mob/living/carbon/human/update_hud_back(obj/item/I) + I.screen_loc = ui_back + if(client && hud_used && hud_used.hud_shown) + client.screen += I + update_observer_view(I) + + + + +/* Does everything in relation to building the /mutable_appearance used in the mob's overlays list -covers: - inhands and any other form of worn item +covers: + inhands and any other form of worn item centering large appearances layering appearances on custom layers building appearances from custom icon files - -By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) - -state: A string to use as the state, this is FAR too complex to solve in this proc thanks to shitty old code -so it's specified as an argument instead. - -default_layer: The layer to draw this on if no other layer is specified - -default_icon_file: The icon file to draw states from if no other icon file is specified - -isinhands: If true then alternate_worn_icon is skipped so that default_icon_file is used, -in this situation default_icon_file is expected to match either the lefthand_ or righthand_ file var - -femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we -generate/load female uniform sprites matching all previously decided variables - - -*/ -/obj/item/proc/build_worn_icon(var/state = "", var/default_layer = 0, var/default_icon_file = null, var/isinhands = FALSE, var/femaleuniform = NO_FEMALE_UNIFORM) - - //Find a valid icon file from variables+arguments - var/file2use - if(!isinhands && alternate_worn_icon) - file2use = alternate_worn_icon - if(!file2use) - file2use = default_icon_file - - //Find a valid layer from variables+arguments - var/layer2use - if(alternate_worn_layer) - layer2use = alternate_worn_layer - if(!layer2use) - layer2use = default_layer - + +By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) + +state: A string to use as the state, this is FAR too complex to solve in this proc thanks to shitty old code +so it's specified as an argument instead. + +default_layer: The layer to draw this on if no other layer is specified + +default_icon_file: The icon file to draw states from if no other icon file is specified + +isinhands: If true then alternate_worn_icon is skipped so that default_icon_file is used, +in this situation default_icon_file is expected to match either the lefthand_ or righthand_ file var + +femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we +generate/load female uniform sprites matching all previously decided variables + + +*/ +/obj/item/proc/build_worn_icon(var/state = "", var/default_layer = 0, var/default_icon_file = null, var/isinhands = FALSE, var/femaleuniform = NO_FEMALE_UNIFORM) + + //Find a valid icon file from variables+arguments + var/file2use + if(!isinhands && alternate_worn_icon) + file2use = alternate_worn_icon + if(!file2use) + file2use = default_icon_file + + //Find a valid layer from variables+arguments + var/layer2use + if(alternate_worn_layer) + layer2use = alternate_worn_layer + if(!layer2use) + layer2use = default_layer + var/mutable_appearance/standing - if(femaleuniform) - standing = wear_female_version(state,file2use,layer2use,femaleuniform) - if(!standing) + if(femaleuniform) + standing = wear_female_version(state,file2use,layer2use,femaleuniform) + if(!standing) standing = mutable_appearance(file2use, state, -layer2use) - + //Get the overlays for this item when it's being worn - //eg: ammo counters, primed grenade flashes, etc. - var/list/worn_overlays = worn_overlays(isinhands) - if(worn_overlays && worn_overlays.len) - standing.overlays.Add(worn_overlays) - - standing = center_image(standing, isinhands ? inhand_x_dimension : worn_x_dimension, isinhands ? inhand_y_dimension : worn_y_dimension) - - //Handle held offsets - var/mob/M = loc - if(istype(M)) - var/list/L = get_held_offsets() - if(L) - standing.pixel_x += L["x"] //+= because of center()ing - standing.pixel_y += L["y"] - - standing.alpha = alpha - standing.color = color - - return standing - - -/obj/item/proc/get_held_offsets() - var/list/L - if(ismob(loc)) - var/mob/M = loc - L = M.get_item_offsets_for_index(M.get_held_index_of_item(src)) - return L - - -//Can't think of a better way to do this, sadly -/mob/proc/get_item_offsets_for_index(i) - switch(i) - if(3) //odd = left hands - return list("x" = 0, "y" = 16) - if(4) //even = right hands - return list("x" = 0, "y" = 16) - else //No offsets or Unwritten number of hands - return list("x" = 0, "y" = 0) - - - -//produces a key based on the human's limbs -/mob/living/carbon/human/generate_icon_render_key() - . = "[dna.species.limbs_id]" - - if(dna.check_mutation(HULK)) - . += "-coloured-hulk" - else if(dna.species.use_skintones) - . += "-coloured-[skin_tone]" - else if(dna.species.fixed_mut_color) - . += "-coloured-[dna.species.fixed_mut_color]" - else if(dna.features["mcolor"]) - . += "-coloured-[dna.features["mcolor"]]" - else - . += "-not_coloured" - - . += "-[gender]" - - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - . += "-[BP.body_zone]" - if(BP.status == BODYPART_ORGANIC) - . += "-organic" - else - . += "-robotic" - if(BP.use_digitigrade) - . += "-digitigrade[BP.use_digitigrade]" - if(BP.dmg_overlay_type) - . += "-[BP.dmg_overlay_type]" - - if(disabilities & HUSK) - . += "-husk" - -/mob/living/carbon/human/load_limb_from_cache() - ..() - update_hair() - - - -/mob/living/carbon/human/proc/update_observer_view(obj/item/I, inventory) - if(observers && observers.len) - for(var/M in observers) - var/mob/dead/observe = M - if(observe.client && observe.client.eye == src) - if(observe.hud_used) - if(inventory && !observe.hud_used.inventory_shown) - continue - observe.client.screen += I - else - observers -= observe - if(!observers.len) - observers = null - break + //eg: ammo counters, primed grenade flashes, etc. + var/list/worn_overlays = worn_overlays(isinhands) + if(worn_overlays && worn_overlays.len) + standing.overlays.Add(worn_overlays) + + standing = center_image(standing, isinhands ? inhand_x_dimension : worn_x_dimension, isinhands ? inhand_y_dimension : worn_y_dimension) + + //Handle held offsets + var/mob/M = loc + if(istype(M)) + var/list/L = get_held_offsets() + if(L) + standing.pixel_x += L["x"] //+= because of center()ing + standing.pixel_y += L["y"] + + standing.alpha = alpha + standing.color = color + + return standing + + +/obj/item/proc/get_held_offsets() + var/list/L + if(ismob(loc)) + var/mob/M = loc + L = M.get_item_offsets_for_index(M.get_held_index_of_item(src)) + return L + + +//Can't think of a better way to do this, sadly +/mob/proc/get_item_offsets_for_index(i) + switch(i) + if(3) //odd = left hands + return list("x" = 0, "y" = 16) + if(4) //even = right hands + return list("x" = 0, "y" = 16) + else //No offsets or Unwritten number of hands + return list("x" = 0, "y" = 0) + + + +//produces a key based on the human's limbs +/mob/living/carbon/human/generate_icon_render_key() + . = "[dna.species.limbs_id]" + + if(dna.check_mutation(HULK)) + . += "-coloured-hulk" + else if(dna.species.use_skintones) + . += "-coloured-[skin_tone]" + else if(dna.species.fixed_mut_color) + . += "-coloured-[dna.species.fixed_mut_color]" + else if(dna.features["mcolor"]) + . += "-coloured-[dna.features["mcolor"]]" + else + . += "-not_coloured" + + . += "-[gender]" + + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + . += "-[BP.body_zone]" + if(BP.status == BODYPART_ORGANIC) + . += "-organic" + else + . += "-robotic" + if(BP.use_digitigrade) + . += "-digitigrade[BP.use_digitigrade]" + if(BP.dmg_overlay_type) + . += "-[BP.dmg_overlay_type]" + + if(disabilities & HUSK) + . += "-husk" + +/mob/living/carbon/human/load_limb_from_cache() + ..() + update_hair() + + + +/mob/living/carbon/human/proc/update_observer_view(obj/item/I, inventory) + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + if(observe.hud_used) + if(inventory && !observe.hud_used.inventory_shown) + continue + observe.client.screen += I + else + observers -= observe + if(!observers.len) + observers = null + break diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 8c84024401..e50997f634 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -22,6 +22,7 @@ //Updates the number of stored chemicals for powers handle_changeling() + if(stat != DEAD) return 1 @@ -30,7 +31,6 @@ /////////////// //Start of a breath chain, calls breathe() - /mob/living/carbon/handle_breathing(times_fired) if((times_fired % 4) == 2 || failed_last_breath) breathe() //Breathe per 4 ticks, unless suffocating @@ -47,8 +47,6 @@ return if(ismob(loc)) return - - var/datum/gas_mixture/environment if(loc) environment = loc.return_air() @@ -160,7 +158,7 @@ if(!co2overloadtime) co2overloadtime = world.time else if(world.time - co2overloadtime > 120) - Paralyse(3) + Unconscious(60) adjustOxyLoss(3) if(world.time - co2overloadtime > 300) adjustOxyLoss(8) @@ -183,9 +181,9 @@ if(breath_gases["n2o"]) var/SA_partialpressure = (breath_gases["n2o"][MOLES]/breath.total_moles())*breath_pressure if(SA_partialpressure > SA_para_min) - Paralyse(3) + Unconscious(60) if(SA_partialpressure > SA_sleep_min) - Sleeping(max(sleeping+2, 10)) + Sleeping(max(AmountSleeping() + 40, 200)) else if(SA_partialpressure > 0.01) if(prob(20)) emote(pick("giggle","laugh")) @@ -292,7 +290,7 @@ if(M.loc != src) stomach_contents.Remove(M) continue - if(istype(M, /mob/living/carbon) && stat != DEAD) + if(iscarbon(M) && stat != DEAD) if(M.stat == DEAD) M.death(1) stomach_contents.Remove(M) @@ -303,21 +301,11 @@ M.adjustBruteLoss(5) nutrition += 10 -//this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. +//this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - if(staminaloss) - if(sleeping) - adjustStaminaLoss(-10) - else - adjustStaminaLoss(-3) - - if(sleeping) - handle_dreams() - AdjustSleeping(-1) - if(prob(10) && health>HEALTH_THRESHOLD_CRIT) - emote("snore") + adjustStaminaLoss(-3) var/restingpwr = 1 + 4 * resting @@ -359,19 +347,13 @@ drowsyness = max(drowsyness - restingpwr, 0) blur_eyes(2) if(prob(5)) - AdjustSleeping(1) - Paralyse(5) + AdjustSleeping(20) + Unconscious(100) //Jitteriness if(jitteriness) do_jitter_animation(jitteriness) jitteriness = max(jitteriness - restingpwr, 0) - var/obj/item/organ/heart/heart = getorgan(/obj/item/organ/heart) - if(heart) - if(!heart.beat || heart.beat == BEAT_SLOW) - stop_sound_channel(BEAT_CHANNEL) - playsound_local(src,'sound/health/fastbeat.ogg',40,0, channel = BEAT_CHANNEL) - heart.beat = BEAT_FAST if(stuttering) stuttering = max(stuttering-1, 0) diff --git a/code/modules/mob/living/carbon/life.dm.rej b/code/modules/mob/living/carbon/life.dm.rej deleted file mode 100644 index 8cc1950622..0000000000 --- a/code/modules/mob/living/carbon/life.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm (rejected hunks) -@@ -347,16 +347,10 @@ - AdjustSleeping(20) - Unconscious(100) - -- //Jitteryness -+ //Jitteriness - if(jitteriness) - do_jitter_animation(jitteriness) - jitteriness = max(jitteriness - restingpwr, 0) -- var/obj/item/organ/heart/heart = getorgan(/obj/item/organ/heart) -- if(heart) -- if(!heart.beat || heart.beat == BEAT_SLOW) -- stop_sound_channel(BEAT_CHANNEL) -- playsound_local(src,'sound/health/fastbeat.ogg',40,0, channel = BEAT_CHANNEL) -- heart.beat = BEAT_FAST - - if(stuttering) - stuttering = max(stuttering-1, 0) diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index c6c50252d7..619885c3c3 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -53,9 +53,9 @@ return 1 if(health <= 0 && checkDead) return 1 - if(paralysis) + if(IsUnconscious()) return 1 - if(stunned) + if(IsStun()) return 1 if(stat) return 1 diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm index 8eeadd6608..3c5cdf3b38 100644 --- a/code/modules/mob/living/carbon/monkey/death.dm +++ b/code/modules/mob/living/carbon/monkey/death.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/monkey/gib_animation() +/mob/living/carbon/monkey/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-m") - -/mob/living/carbon/monkey/dust_animation() + +/mob/living/carbon/monkey/dust_animation() new /obj/effect/temp_visual/dust_animation(loc, "dust-m") diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 250bc27180..c0fec50794 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -26,18 +26,18 @@ if (radiation) if (radiation > 100) - if(!weakened) + if(!IsKnockdown()) emote("collapse") - Weaken(10) + Knockdown(200) to_chat(src, "You feel weak.") switch(radiation) if(50 to 75) if(prob(5)) - if(!weakened) + if(!IsKnockdown()) emote("collapse") - Weaken(3) + Knockdown(60) to_chat(src, "You feel weak.") if(75 to 100) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index f6f7665ae8..bce620d633 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -1,152 +1,152 @@ -/mob/living/carbon/monkey - name = "monkey" - voice_name = "monkey" - verb_say = "chimpers" +/mob/living/carbon/monkey + name = "monkey" + voice_name = "monkey" + verb_say = "chimpers" initial_language_holder = /datum/language_holder/monkey - icon = 'icons/mob/monkey.dmi' - icon_state = "" - gender = NEUTER - pass_flags = PASSTABLE - ventcrawler = VENTCRAWLER_NUDE - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) - type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey - gib_type = /obj/effect/decal/cleanable/blood/gibs - unique_name = 1 - bodyparts = list(/obj/item/bodypart/chest/monkey, /obj/item/bodypart/head/monkey, /obj/item/bodypart/l_arm/monkey, - /obj/item/bodypart/r_arm/monkey, /obj/item/bodypart/r_leg/monkey, /obj/item/bodypart/l_leg/monkey) - devourable = TRUE - - - -/mob/living/carbon/monkey/Initialize() - verbs += /mob/living/proc/mob_sleep - verbs += /mob/living/proc/lay_down - - if(unique_name) //used to exclude pun pun - gender = pick(MALE, FEMALE) - real_name = name - - //initialize limbs - create_bodyparts() - - create_internal_organs() - + icon = 'icons/mob/monkey.dmi' + icon_state = "" + gender = NEUTER + pass_flags = PASSTABLE + ventcrawler = VENTCRAWLER_NUDE + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) + type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey + gib_type = /obj/effect/decal/cleanable/blood/gibs + unique_name = 1 + bodyparts = list(/obj/item/bodypart/chest/monkey, /obj/item/bodypart/head/monkey, /obj/item/bodypart/l_arm/monkey, + /obj/item/bodypart/r_arm/monkey, /obj/item/bodypart/r_leg/monkey, /obj/item/bodypart/l_leg/monkey) + devourable = TRUE + + +/mob/living/carbon/monkey/Initialize() + verbs += /mob/living/proc/mob_sleep + verbs += /mob/living/proc/lay_down + + if(unique_name) //used to exclude pun pun + gender = pick(MALE, FEMALE) + real_name = name + + //initialize limbs + create_bodyparts() + + create_internal_organs() + . = ..() - - create_dna(src) - dna.initialize_dna(random_blood_type()) - -/mob/living/carbon/monkey/create_internal_organs() - internal_organs += new /obj/item/organ/appendix - internal_organs += new /obj/item/organ/lungs - internal_organs += new /obj/item/organ/heart - internal_organs += new /obj/item/organ/brain - internal_organs += new /obj/item/organ/tongue - internal_organs += new /obj/item/organ/eyes + + create_dna(src) + dna.initialize_dna(random_blood_type()) + +/mob/living/carbon/monkey/create_internal_organs() + internal_organs += new /obj/item/organ/appendix + internal_organs += new /obj/item/organ/lungs + internal_organs += new /obj/item/organ/heart + internal_organs += new /obj/item/organ/brain + internal_organs += new /obj/item/organ/tongue + internal_organs += new /obj/item/organ/eyes internal_organs += new /obj/item/organ/ears - ..() - -/mob/living/carbon/monkey/movement_delay() - if(reagents) - if(reagents.has_reagent("morphine")) - return -1 - - if(reagents.has_reagent("nuka_cola")) - return -1 - - . = ..() - var/health_deficiency = (100 - health) - if(health_deficiency >= 45) - . += (health_deficiency / 25) - - if (bodytemperature < 283.222) - . += (283.222 - bodytemperature) / 10 * 1.75 - return . + config.monkey_delay - -/mob/living/carbon/monkey/Stat() - ..() - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") - stat(null, "Move Mode: [m_intent]") - if(client && mind) - if(mind.changeling) - stat("Chemical Storage", "[mind.changeling.chem_charges]/[mind.changeling.chem_storage]") - stat("Absorbed DNA", mind.changeling.absorbedcount) - return - - -/mob/living/carbon/monkey/verb/removeinternal() - set name = "Remove Internals" - set category = "IC" - internal = null - return - - -/mob/living/carbon/monkey/IsAdvancedToolUser()//Unless its monkey mode monkeys cant use advanced tools - return 0 - -/mob/living/carbon/monkey/reagent_check(datum/reagent/R) //can metabolize all reagents - return 0 - -/mob/living/carbon/monkey/canBeHandcuffed() - return 1 - -/mob/living/carbon/monkey/assess_threat(mob/living/simple_animal/bot/secbot/judgebot, lasercolor) - if(judgebot.emagged == 2) - return 10 //Everyone is a criminal! - var/threatcount = 0 - - //Securitrons can't identify monkeys - if(!lasercolor && judgebot.idcheck ) - threatcount += 4 - - //Lasertag bullshit - if(lasercolor) - if(lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve - if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) - threatcount += 4 - - if(lasercolor == "r") - if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) - threatcount += 4 - - return threatcount - - //Check for weapons - if(judgebot.weaponscheck) - for(var/obj/item/I in held_items) - if(judgebot.check_for_weapons(I)) - threatcount += 4 - - //mindshield implants imply trustworthyness - if(isloyal()) - threatcount -= 1 - - return threatcount - -/mob/living/carbon/monkey/get_permeability_protection() - var/protection = 0 - if(head) - protection = 1 - head.permeability_coefficient - if(wear_mask) - protection = max(1 - wear_mask.permeability_coefficient, protection) - protection = protection/7 //the rest of the body isn't covered. - return protection - -/mob/living/carbon/monkey/IsVocal() - if(!getorganslot("lungs")) - return 0 - return 1 - -/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/gun/G) - return 1 - -/mob/living/carbon/monkey/angry - aggressive = TRUE - -/mob/living/carbon/monkey/angry/Initialize() - ..() - if(prob(10)) - var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src) - equip_to_slot_or_del(helmet,slot_head) - helmet.attack_self(src) // todo encapsulate toggle + ..() + +/mob/living/carbon/monkey/movement_delay() + if(reagents) + if(reagents.has_reagent("morphine")) + return -1 + + if(reagents.has_reagent("nuka_cola")) + return -1 + + . = ..() + var/health_deficiency = (100 - health) + if(health_deficiency >= 45) + . += (health_deficiency / 25) + + if (bodytemperature < 283.222) + . += (283.222 - bodytemperature) / 10 * 1.75 + return . + config.monkey_delay + +/mob/living/carbon/monkey/Stat() + ..() + if(statpanel("Status")) + stat(null, "Intent: [a_intent]") + stat(null, "Move Mode: [m_intent]") + if(client && mind) + if(mind.changeling) + stat("Chemical Storage", "[mind.changeling.chem_charges]/[mind.changeling.chem_storage]") + stat("Absorbed DNA", mind.changeling.absorbedcount) + return + + +/mob/living/carbon/monkey/verb/removeinternal() + set name = "Remove Internals" + set category = "IC" + internal = null + return + + +/mob/living/carbon/monkey/IsAdvancedToolUser()//Unless its monkey mode monkeys cant use advanced tools + return 0 + +/mob/living/carbon/monkey/reagent_check(datum/reagent/R) //can metabolize all reagents + return 0 + +/mob/living/carbon/monkey/canBeHandcuffed() + return 1 + +/mob/living/carbon/monkey/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) + if(judgement_criteria & JUDGE_EMAGGED) + return 10 //Everyone is a criminal! + + var/threatcount = 0 + + //Securitrons can't identify monkeys + if( !(judgement_criteria & JUDGE_IGNOREMONKEYS) && (judgement_criteria & JUDGE_IDCHECK) ) + threatcount += 4 + + //Lasertag bullshit + if(lasercolor) + if(lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) + threatcount += 4 + + if(lasercolor == "r") + if(is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) + threatcount += 4 + + return threatcount + + //Check for weapons + if( (judgement_criteria & JUDGE_WEAPONCHECK) && weaponcheck ) + for(var/obj/item/I in held_items) + if(weaponcheck.Invoke(I)) + threatcount += 4 + + //mindshield implants imply trustworthyness + if(isloyal()) + threatcount -= 1 + + return threatcount + +/mob/living/carbon/monkey/get_permeability_protection() + var/protection = 0 + if(head) + protection = 1 - head.permeability_coefficient + if(wear_mask) + protection = max(1 - wear_mask.permeability_coefficient, protection) + protection = protection/7 //the rest of the body isn't covered. + return protection + +/mob/living/carbon/monkey/IsVocal() + if(!getorganslot("lungs")) + return 0 + return 1 + +/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/gun/G) + return 1 + +/mob/living/carbon/monkey/angry + aggressive = TRUE + +/mob/living/carbon/monkey/angry/Initialize() + ..() + if(prob(10)) + var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src) + equip_to_slot_or_del(helmet,slot_head) + helmet.attack_self(src) // todo encapsulate toggle diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm index 4a432bb66b..d95b10a148 100644 --- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -48,10 +48,10 @@ playsound(loc, "punch", 25, 1, -1) var/damage = rand(5, 10) - if (prob(40)) + if(prob(40)) damage = rand(10, 15) - if ( (paralysis < 5) && (health > 0) ) - Paralyse(rand(10, 15)) + if(AmountUnconscious() < 100 && health > 0) + Unconscious(rand(200, 300)) visible_message("[M] has knocked out [name]!", \ "[M] has knocked out [name]!", null, 5) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) @@ -66,10 +66,10 @@ visible_message("[M] has attempted to punch [name]!", \ "[M] has attempted to punch [name]!", null, COMBAT_MESSAGE_RANGE) if("disarm") - if (!paralysis) + if(!IsUnconscious()) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) if (prob(25)) - Paralyse(2) + Knockdown(40) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) add_logs(M, src, "pushed") visible_message("[M] has pushed down [src]!", \ @@ -88,8 +88,8 @@ var/damage = rand(15, 30) if (damage >= 25) damage = rand(20, 40) - if (paralysis < 15) - Paralyse(rand(10, 15)) + if(AmountUnconscious() < 300) + Unconscious(rand(200, 300)) visible_message("[M] has wounded [name]!", \ "[M] has wounded [name]!", null, COMBAT_MESSAGE_RANGE) else @@ -114,7 +114,7 @@ var/obj/item/I = null playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) if(prob(95)) - Weaken(10) + Knockdown(20) visible_message("[M] has tackled down [name]!", \ "[M] has tackled down [name]!", null, COMBAT_MESSAGE_RANGE) else @@ -192,14 +192,14 @@ damage_clothes(200, BRUTE, "bomb") adjustEarDamage(30, 120) if(prob(70)) - Paralyse(10) + Unconscious(200) if(3) take_overall_damage(30, 0) damage_clothes(50, BRUTE, "bomb") adjustEarDamage(15,60) if (prob(50)) - Paralyse(8) + Unconscious(160) //attempt to dismember bodyparts diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 5074f5083f..5a4ba686b2 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -1,77 +1,77 @@ - -/mob/living/carbon/monkey/regenerate_icons() - if(!..()) - update_body_parts() - update_hair() - update_inv_wear_mask() - update_inv_head() - update_inv_back() - update_transform() - - -//////// - - -/mob/living/carbon/monkey/update_hair() - remove_overlay(HAIR_LAYER) - - var/obj/item/bodypart/head/HD = get_bodypart("head") - if(!HD) //Decapitated - return - - if(disabilities & HUSK) - return - - var/hair_hidden = 0 - - if(head) - var/obj/item/I = head - if(I.flags_inv & HIDEHAIR) - hair_hidden = 1 - if(wear_mask) - var/obj/item/clothing/mask/M = wear_mask - if(M.flags_inv & HIDEHAIR) - hair_hidden = 1 - if(!hair_hidden) - if(!getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain + +/mob/living/carbon/monkey/regenerate_icons() + if(!..()) + update_body_parts() + update_hair() + update_inv_wear_mask() + update_inv_head() + update_inv_back() + update_transform() + + +//////// + + +/mob/living/carbon/monkey/update_hair() + remove_overlay(HAIR_LAYER) + + var/obj/item/bodypart/head/HD = get_bodypart("head") + if(!HD) //Decapitated + return + + if(disabilities & HUSK) + return + + var/hair_hidden = 0 + + if(head) + var/obj/item/I = head + if(I.flags_inv & HIDEHAIR) + hair_hidden = 1 + if(wear_mask) + var/obj/item/clothing/mask/M = wear_mask + if(M.flags_inv & HIDEHAIR) + hair_hidden = 1 + if(!hair_hidden) + if(!getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain overlays_standing[HAIR_LAYER] = mutable_appearance('icons/mob/human_face.dmi', "debrained", -HAIR_LAYER) - apply_overlay(HAIR_LAYER) - - -/mob/living/carbon/monkey/update_fire() - ..("Monkey_burning") - -/mob/living/carbon/monkey/update_inv_legcuffed() - remove_overlay(LEGCUFF_LAYER) - if(legcuffed) + apply_overlay(HAIR_LAYER) + + +/mob/living/carbon/monkey/update_fire() + ..("Monkey_burning") + +/mob/living/carbon/monkey/update_inv_legcuffed() + remove_overlay(LEGCUFF_LAYER) + if(legcuffed) var/mutable_appearance/legcuff_overlay = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER) legcuff_overlay.pixel_y = 8 overlays_standing[LEGCUFF_LAYER] = legcuff_overlay - apply_overlay(LEGCUFF_LAYER) - - -//monkey HUD updates for items in our inventory - -//update whether our head item appears on our hud. -/mob/living/carbon/monkey/update_hud_head(obj/item/I) - if(client && hud_used && hud_used.hud_shown) - I.screen_loc = ui_monkey_head - client.screen += I - -//update whether our mask item appears on our hud. -/mob/living/carbon/monkey/update_hud_wear_mask(obj/item/I) - if(client && hud_used && hud_used.hud_shown) - I.screen_loc = ui_monkey_mask - client.screen += I - -//update whether our neck item appears on our hud. -/mob/living/carbon/monkey/update_hud_neck(obj/item/I) - if(client && hud_used && hud_used.hud_shown) - I.screen_loc = ui_monkey_neck - client.screen += I - -//update whether our back item appears on our hud. -/mob/living/carbon/monkey/update_hud_back(obj/item/I) - if(client && hud_used && hud_used.hud_shown) - I.screen_loc = ui_monkey_back + apply_overlay(LEGCUFF_LAYER) + + +//monkey HUD updates for items in our inventory + +//update whether our head item appears on our hud. +/mob/living/carbon/monkey/update_hud_head(obj/item/I) + if(client && hud_used && hud_used.hud_shown) + I.screen_loc = ui_monkey_head + client.screen += I + +//update whether our mask item appears on our hud. +/mob/living/carbon/monkey/update_hud_wear_mask(obj/item/I) + if(client && hud_used && hud_used.hud_shown) + I.screen_loc = ui_monkey_mask + client.screen += I + +//update whether our neck item appears on our hud. +/mob/living/carbon/monkey/update_hud_neck(obj/item/I) + if(client && hud_used && hud_used.hud_shown) + I.screen_loc = ui_monkey_neck + client.screen += I + +//update whether our back item appears on our hud. +/mob/living/carbon/monkey/update_hud_back(obj/item/I) + if(client && hud_used && hud_used.hud_shown) + I.screen_loc = ui_monkey_back client.screen += I \ No newline at end of file diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index abfe312c48..85fd7c2b96 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -1,20 +1,26 @@ //Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage, +//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, ear damage, // eye damage, eye_blind, eye_blurry, druggy, BLIND disability, NEARSIGHT disability, and HUSK disability. /mob/living/carbon/damage_eyes(amount) + var/obj/item/organ/eyes/eyes = getorganslot("eyes_sight") + if (!eyes) + return if(amount>0) - eye_damage = amount - if(eye_damage > 20) - if(eye_damage > 30) + eyes.eye_damage = amount + if(eyes.eye_damage > 20) + if(eyes.eye_damage > 30) overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2) else overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1) /mob/living/carbon/set_eye_damage(amount) - eye_damage = max(amount,0) - if(eye_damage > 20) - if(eye_damage > 30) + var/obj/item/organ/eyes/eyes = getorganslot("eyes_sight") + if (!eyes) + return + eyes.eye_damage = max(amount,0) + if(eyes.eye_damage > 20) + if(eyes.eye_damage > 30) overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2) else overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1) @@ -22,9 +28,12 @@ clear_fullscreen("eye_damage") /mob/living/carbon/adjust_eye_damage(amount) - eye_damage = max(eye_damage+amount, 0) - if(eye_damage > 20) - if(eye_damage > 30) + var/obj/item/organ/eyes/eyes = getorganslot("eyes_sight") + if (!eyes) + return + eyes.eye_damage = max(eyes.eye_damage+amount, 0) + if(eyes.eye_damage > 20) + if(eyes.eye_damage > 30) overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2) else overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 6cb0ef6f1b..762ebd56cc 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -1,296 +1,290 @@ -//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. -/mob/living/carbon/update_transform() - var/matrix/ntransform = matrix(transform) //aka transform.Copy() - var/final_pixel_y = pixel_y - var/final_dir = dir - var/changed = 0 - if(lying != lying_prev && rotate_on_lying) - changed++ - ntransform.TurnTo(lying_prev,lying) - if(lying == 0) //Lying to standing - final_pixel_y = get_standard_pixel_y_offset() - else //if(lying != 0) - if(lying_prev == 0) //Standing to lying - pixel_y = get_standard_pixel_y_offset() - final_pixel_y = get_standard_pixel_y_offset(lying) - if(dir & (EAST|WEST)) //Facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass - - if(resize != RESIZE_DEFAULT_SIZE) - changed++ - ntransform.Scale(resize) - resize = RESIZE_DEFAULT_SIZE - - if(changed) - animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) - floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). - - -/mob/living/carbon - var/list/overlays_standing[TOTAL_LAYERS] - -/mob/living/carbon/proc/apply_overlay(cache_index) +//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. +/mob/living/carbon/update_transform() + var/matrix/ntransform = matrix(transform) //aka transform.Copy() + var/final_pixel_y = pixel_y + var/final_dir = dir + var/changed = 0 + if(lying != lying_prev && rotate_on_lying) + changed++ + ntransform.TurnTo(lying_prev,lying) + if(lying == 0) //Lying to standing + final_pixel_y = get_standard_pixel_y_offset() + else //if(lying != 0) + if(lying_prev == 0) //Standing to lying + pixel_y = get_standard_pixel_y_offset() + final_pixel_y = get_standard_pixel_y_offset(lying) + if(dir & (EAST|WEST)) //Facing east or west + final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + + if(resize != RESIZE_DEFAULT_SIZE) + changed++ + ntransform.Scale(resize) + resize = RESIZE_DEFAULT_SIZE + + if(changed) + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). + + +/mob/living/carbon + var/list/overlays_standing[TOTAL_LAYERS] + +/mob/living/carbon/proc/apply_overlay(cache_index) if((. = overlays_standing[cache_index])) add_overlay(.) - -/mob/living/carbon/proc/remove_overlay(cache_index) - var/I = overlays_standing[cache_index] - if(I) - cut_overlay(I) - overlays_standing[cache_index] = null - -/mob/living/carbon/regenerate_icons() - if(notransform) - return 1 - update_inv_hands() - update_inv_handcuffed() - update_inv_legcuffed() - update_fire() - - -/mob/living/carbon/update_inv_hands() - remove_overlay(HANDS_LAYER) - if (handcuffed) - drop_all_held_items() - return - - var/list/hands = list() - for(var/obj/item/I in held_items) - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - I.screen_loc = ui_hand_position(get_held_index_of_item(I)) - client.screen += I - if(observers && observers.len) - for(var/M in observers) - var/mob/dead/observe = M - if(observe.client && observe.client.eye == src) - observe.client.screen += I - else - observers -= observe - if(!observers.len) - observers = null - break - - var/t_state = I.item_state - if(!t_state) - t_state = I.icon_state - - var/icon_file = I.lefthand_file - if(get_held_index_of_item(I) % 2 == 0) - icon_file = I.righthand_file - + +/mob/living/carbon/proc/remove_overlay(cache_index) + var/I = overlays_standing[cache_index] + if(I) + cut_overlay(I) + overlays_standing[cache_index] = null + +/mob/living/carbon/regenerate_icons() + if(notransform) + return 1 + update_inv_hands() + update_inv_handcuffed() + update_inv_legcuffed() + update_fire() + + +/mob/living/carbon/update_inv_hands() + remove_overlay(HANDS_LAYER) + if (handcuffed) + drop_all_held_items() + return + + var/list/hands = list() + for(var/obj/item/I in held_items) + if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + I.screen_loc = ui_hand_position(get_held_index_of_item(I)) + client.screen += I + if(observers && observers.len) + for(var/M in observers) + var/mob/dead/observe = M + if(observe.client && observe.client.eye == src) + observe.client.screen += I + else + observers -= observe + if(!observers.len) + observers = null + break + + var/t_state = I.item_state + if(!t_state) + t_state = I.icon_state + + var/icon_file = I.lefthand_file + if(get_held_index_of_item(I) % 2 == 0) + icon_file = I.righthand_file + hands += I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) - - overlays_standing[HANDS_LAYER] = hands - apply_overlay(HANDS_LAYER) - - -/mob/living/carbon/update_fire(var/fire_icon = "Generic_mob_burning") - remove_overlay(FIRE_LAYER) - if(on_fire) + + overlays_standing[HANDS_LAYER] = hands + apply_overlay(HANDS_LAYER) + + +/mob/living/carbon/update_fire(var/fire_icon = "Generic_mob_burning") + remove_overlay(FIRE_LAYER) + if(on_fire) var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) - new_fire_overlay.appearance_flags = RESET_COLOR - overlays_standing[FIRE_LAYER] = new_fire_overlay - - apply_overlay(FIRE_LAYER) - - - -/mob/living/carbon/update_damage_overlays() - remove_overlay(DAMAGE_LAYER) - + new_fire_overlay.appearance_flags = RESET_COLOR + overlays_standing[FIRE_LAYER] = new_fire_overlay + + apply_overlay(FIRE_LAYER) + + + +/mob/living/carbon/update_damage_overlays() + remove_overlay(DAMAGE_LAYER) + var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER) overlays_standing[DAMAGE_LAYER] = damage_overlay - - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(BP.dmg_overlay_type) - if(BP.brutestate) + + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(BP.dmg_overlay_type) + if(BP.brutestate) damage_overlay.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0") //we're adding icon_states of the base image as overlays - if(BP.burnstate) + if(BP.burnstate) damage_overlay.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_0[BP.burnstate]") - - apply_overlay(DAMAGE_LAYER) - - -/mob/living/carbon/update_inv_wear_mask() - remove_overlay(FACEMASK_LAYER) - - if(!get_bodypart("head")) //Decapitated - return - - if(client && hud_used && hud_used.inv_slots[slot_wear_mask]) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_mask] - inv.update_icon() - - if(wear_mask) - if(!(head && (head.flags_inv & HIDEMASK))) + + apply_overlay(DAMAGE_LAYER) + + +/mob/living/carbon/update_inv_wear_mask() + remove_overlay(FACEMASK_LAYER) + + if(!get_bodypart("head")) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[slot_wear_mask]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_mask] + inv.update_icon() + + if(wear_mask) + if(!(head && (head.flags_inv & HIDEMASK))) overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi') - update_hud_wear_mask(wear_mask) - - apply_overlay(FACEMASK_LAYER) - -/mob/living/carbon/update_inv_neck() - remove_overlay(NECK_LAYER) - - if(client && hud_used && hud_used.inv_slots[slot_neck]) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_neck] - inv.update_icon() - - if(wear_neck) - if(!(head && (head.flags_inv & HIDENECK))) + update_hud_wear_mask(wear_mask) + + apply_overlay(FACEMASK_LAYER) + +/mob/living/carbon/update_inv_neck() + remove_overlay(NECK_LAYER) + + if(client && hud_used && hud_used.inv_slots[slot_neck]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_neck] + inv.update_icon() + + if(wear_neck) + if(!(head && (head.flags_inv & HIDENECK))) overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi') - update_hud_neck(wear_neck) - - apply_overlay(NECK_LAYER) - -/mob/living/carbon/update_inv_back() - remove_overlay(BACK_LAYER) - - if(client && hud_used && hud_used.inv_slots[slot_back]) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_back] - inv.update_icon() - - if(back) + update_hud_neck(wear_neck) + + apply_overlay(NECK_LAYER) + +/mob/living/carbon/update_inv_back() + remove_overlay(BACK_LAYER) + + if(client && hud_used && hud_used.inv_slots[slot_back]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_back] + inv.update_icon() + + if(back) overlays_standing[BACK_LAYER] = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi') - update_hud_back(back) - apply_overlay(BACK_LAYER) - -/mob/living/carbon/update_inv_head() - remove_overlay(HEAD_LAYER) - - if(!get_bodypart("head")) //Decapitated - return - - if(client && hud_used && hud_used.inv_slots[slot_back]) - var/obj/screen/inventory/inv = hud_used.inv_slots[slot_head] - inv.update_icon() - - if(head) + update_hud_back(back) + apply_overlay(BACK_LAYER) + +/mob/living/carbon/update_inv_head() + remove_overlay(HEAD_LAYER) + + if(!get_bodypart("head")) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[slot_back]) + var/obj/screen/inventory/inv = hud_used.inv_slots[slot_head] + inv.update_icon() + + if(head) overlays_standing[HEAD_LAYER] = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi') - update_hud_head(head) - - apply_overlay(HEAD_LAYER) - - -/mob/living/carbon/update_inv_handcuffed() - remove_overlay(HANDCUFF_LAYER) - if(handcuffed) + update_hud_head(head) + + apply_overlay(HEAD_LAYER) + + +/mob/living/carbon/update_inv_handcuffed() + remove_overlay(HANDCUFF_LAYER) + if(handcuffed) overlays_standing[HANDCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "handcuff1", -HANDCUFF_LAYER) - apply_overlay(HANDCUFF_LAYER) - - -//mob HUD updates for items in our inventory - -//update whether handcuffs appears on our hud. -/mob/living/carbon/proc/update_hud_handcuffed() - if(hud_used) - for(var/hand in hud_used.hand_slots) - var/obj/screen/inventory/hand/H = hud_used.hand_slots[hand] - if(H) - H.update_icon() - -//update whether our head item appears on our hud. -/mob/living/carbon/proc/update_hud_head(obj/item/I) - return - -//update whether our mask item appears on our hud. -/mob/living/carbon/proc/update_hud_wear_mask(obj/item/I) - return - -//update whether our neck item appears on our hud. -/mob/living/carbon/proc/update_hud_neck(obj/item/I) - return - -//update whether our back item appears on our hud. -/mob/living/carbon/proc/update_hud_back(obj/item/I) - return - - - -//Overlays for the worn overlay so you can overlay while you overlay -//eg: ammo counters, primed grenade flashing, etc. -/obj/item/proc/worn_overlays(isinhands = FALSE) - . = list() - - -/mob/living/carbon/update_body() - update_body_parts() - -/mob/living/carbon/proc/update_body_parts() - //CHECK FOR UPDATE - var/oldkey = icon_render_key - var/istaur = 0 - if(ishuman(src)) - if("taur" in dna.species.mutant_bodyparts && dna.features["taur"] != "None") - istaur = 1 - icon_render_key = generate_icon_render_key() - if(oldkey == icon_render_key) - return - - remove_overlay(BODYPARTS_LAYER) - - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - if(istaur && (istype(BP, /obj/item/bodypart/r_leg) || istype(BP, /obj/item/bodypart/l_leg)) ) - continue - BP.update_limb() - - //LOAD ICONS - if(limb_icon_cache[icon_render_key]) - load_limb_from_cache() - return - - //GENERATE NEW LIMBS - var/list/new_limbs = list() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X + apply_overlay(HANDCUFF_LAYER) + + +//mob HUD updates for items in our inventory + +//update whether handcuffs appears on our hud. +/mob/living/carbon/proc/update_hud_handcuffed() + if(hud_used) + for(var/hand in hud_used.hand_slots) + var/obj/screen/inventory/hand/H = hud_used.hand_slots[hand] + if(H) + H.update_icon() + +//update whether our head item appears on our hud. +/mob/living/carbon/proc/update_hud_head(obj/item/I) + return + +//update whether our mask item appears on our hud. +/mob/living/carbon/proc/update_hud_wear_mask(obj/item/I) + return + +//update whether our neck item appears on our hud. +/mob/living/carbon/proc/update_hud_neck(obj/item/I) + return + +//update whether our back item appears on our hud. +/mob/living/carbon/proc/update_hud_back(obj/item/I) + return + + + +//Overlays for the worn overlay so you can overlay while you overlay +//eg: ammo counters, primed grenade flashing, etc. +/obj/item/proc/worn_overlays(isinhands = FALSE) + . = list() + + +/mob/living/carbon/update_body() + update_body_parts() + +/mob/living/carbon/proc/update_body_parts() + //CHECK FOR UPDATE + var/oldkey = icon_render_key + icon_render_key = generate_icon_render_key() + if(oldkey == icon_render_key) + return + + remove_overlay(BODYPARTS_LAYER) + + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + BP.update_limb() + + //LOAD ICONS + if(limb_icon_cache[icon_render_key]) + load_limb_from_cache() + return + + //GENERATE NEW LIMBS + var/list/new_limbs = list() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X new_limbs += BP.get_limb_icon() - if(new_limbs.len) - overlays_standing[BODYPARTS_LAYER] = new_limbs - limb_icon_cache[icon_render_key] = new_limbs - - apply_overlay(BODYPARTS_LAYER) - update_damage_overlays() - - - -///////////////////// -// Limb Icon Cache // -///////////////////// -/* - Called from update_body_parts() these procs handle the limb icon cache. - the limb icon cache adds an icon_render_key to a human mob, it represents: - - skin_tone (if applicable) - - gender - - limbs (stores as the limb name and whether it is removed/fine, organic/robotic) - These procs only store limbs as to increase the number of matching icon_render_keys - This cache exists because drawing 6/7 icons for humans constantly is quite a waste - See RemieRichards on irc.rizon.net #coderbus -*/ - -//produces a key based on the mob's limbs - -/mob/living/carbon/proc/generate_icon_render_key() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - . += "-[BP.body_zone]" - if(BP.use_digitigrade) - . += "-digitigrade[BP.use_digitigrade]" - if(BP.animal_origin) - . += "-[BP.animal_origin]" - if(BP.status == BODYPART_ORGANIC) - . += "-organic" - else - . += "-robotic" - - if(disabilities & HUSK) - . += "-husk" - - -//change the mob's icon to the one matching its key -/mob/living/carbon/proc/load_limb_from_cache() - if(limb_icon_cache[icon_render_key]) - remove_overlay(BODYPARTS_LAYER) - overlays_standing[BODYPARTS_LAYER] = limb_icon_cache[icon_render_key] - apply_overlay(BODYPARTS_LAYER) - update_damage_overlays() + if(new_limbs.len) + overlays_standing[BODYPARTS_LAYER] = new_limbs + limb_icon_cache[icon_render_key] = new_limbs + + apply_overlay(BODYPARTS_LAYER) + update_damage_overlays() + + + +///////////////////// +// Limb Icon Cache // +///////////////////// +/* + Called from update_body_parts() these procs handle the limb icon cache. + the limb icon cache adds an icon_render_key to a human mob, it represents: + - skin_tone (if applicable) + - gender + - limbs (stores as the limb name and whether it is removed/fine, organic/robotic) + These procs only store limbs as to increase the number of matching icon_render_keys + This cache exists because drawing 6/7 icons for humans constantly is quite a waste + See RemieRichards on irc.rizon.net #coderbus +*/ + +//produces a key based on the mob's limbs + +/mob/living/carbon/proc/generate_icon_render_key() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + . += "-[BP.body_zone]" + if(BP.use_digitigrade) + . += "-digitigrade[BP.use_digitigrade]" + if(BP.animal_origin) + . += "-[BP.animal_origin]" + if(BP.status == BODYPART_ORGANIC) + . += "-organic" + else + . += "-robotic" + + if(disabilities & HUSK) + . += "-husk" + + +//change the mob's icon to the one matching its key +/mob/living/carbon/proc/load_limb_from_cache() + if(limb_icon_cache[icon_render_key]) + remove_overlay(BODYPARTS_LAYER) + overlays_standing[BODYPARTS_LAYER] = limb_icon_cache[icon_render_key] + apply_overlay(BODYPARTS_LAYER) + update_damage_overlays() diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 6cb3adcc39..6753b8a370 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -96,10 +96,10 @@ switch(effecttype) if(STUN) Stun(effect * hit_percent) - if(WEAKEN) - Weaken(effect * hit_percent) - if(PARALYZE) - Paralyse(effect * hit_percent) + if(KNOCKDOWN) + Knockdown(effect * hit_percent) + if(UNCONSCIOUS) + Unconscious(effect * hit_percent) if(IRRADIATE) radiation += max(effect * hit_percent, 0) if(SLUR) @@ -117,15 +117,15 @@ return 1 -/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0) +/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0) if(blocked >= 100) return 0 if(stun) apply_effect(stun, STUN, blocked) - if(weaken) - apply_effect(weaken, WEAKEN, blocked) - if(paralyze) - apply_effect(paralyze, PARALYZE, blocked) + if(knockdown) + apply_effect(knockdown, KNOCKDOWN, blocked) + if(unconscious) + apply_effect(unconscious, UNCONSCIOUS, blocked) if(irradiate) apply_effect(irradiate, IRRADIATE, blocked) if(slur) @@ -244,6 +244,7 @@ /mob/living/proc/setStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) return + // heal ONE external organ, organ gets randomly selected from damaged ones. /mob/living/proc/heal_bodypart_damage(brute, burn, updating_health = 1) adjustBruteLoss(-brute, 0) //zero as argument for no instant health update diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 4719688ebf..eb96d09bde 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,85 +1,82 @@ -/mob/living/gib(no_brain, no_organs, no_bodyparts) - var/prev_lying = lying - if(stat != DEAD) - death(1) - - if(!prev_lying) - gib_animation() - - spill_organs(no_brain, no_organs, no_bodyparts) - - if(!no_bodyparts) - spread_bodyparts(no_brain, no_organs) - - spawn_gibs(no_bodyparts) - qdel(src) - -/mob/living/proc/gib_animation() - return - -/mob/living/proc/spawn_gibs() - new /obj/effect/gibspawner/generic(loc, viruses) - -/mob/living/proc/spill_organs() - return - -/mob/living/proc/spread_bodyparts() - return - -/mob/living/dust(just_ash = FALSE) - death(1) - - if(buckled) - buckled.unbuckle_mob(src,force=1) - - dust_animation() - spawn_dust(just_ash) - qdel(src) - -/mob/living/proc/dust_animation() - return - -/mob/living/proc/spawn_dust(just_ash = FALSE) - new /obj/effect/decal/cleanable/ash(loc) - - -/mob/living/death(gibbed) - stat = DEAD - unset_machine() - timeofdeath = world.time - tod = worldtime2text() - var/turf/T = get_turf(src) - var/area/A = get_area(T) +/mob/living/gib(no_brain, no_organs, no_bodyparts) + var/prev_lying = lying + if(stat != DEAD) + death(1) + + if(!prev_lying) + gib_animation() + + spill_organs(no_brain, no_organs, no_bodyparts) + + if(!no_bodyparts) + spread_bodyparts(no_brain, no_organs) + + spawn_gibs(no_bodyparts) + qdel(src) + +/mob/living/proc/gib_animation() + return + +/mob/living/proc/spawn_gibs() + new /obj/effect/gibspawner/generic(loc, viruses) + +/mob/living/proc/spill_organs() + return + +/mob/living/proc/spread_bodyparts() + return + +/mob/living/dust(just_ash = FALSE) + death(1) + + if(buckled) + buckled.unbuckle_mob(src,force=1) + + dust_animation() + spawn_dust(just_ash) + qdel(src) + +/mob/living/proc/dust_animation() + return + +/mob/living/proc/spawn_dust(just_ash = FALSE) + new /obj/effect/decal/cleanable/ash(loc) + + +/mob/living/death(gibbed) + stat = DEAD + unset_machine() + timeofdeath = world.time + tod = worldtime2text() + var/turf/T = get_turf(src) + var/area/A = get_area(T) for(var/obj/item/I in contents) I.on_mob_death(src, gibbed) - if(mind && mind.name && mind.active && (!(T.flags & NO_DEATHRATTLE))) - var/rendered = "[mind.name] has died at [A.name]." - deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE) - if(mind) - mind.store_memory("Time of death: [tod]", 0) - GLOB.living_mob_list -= src - if(!gibbed) - GLOB.dead_mob_list += src - paralysis = 0 - stunned = 0 - weakened = 0 - set_drugginess(0) - SetSleeping(0, 0) - blind_eyes(1) - reset_perspective(null) - reload_fullscreen() - update_action_buttons_icon() - update_damage_hud() - update_health_hud() - update_canmove() - med_hud_set_health() - med_hud_set_status() - - for(var/s in ownedSoullinks) - var/datum/soullink/S = s - S.ownerDies(gibbed) - for(var/s in sharedSoullinks) - var/datum/soullink/S = s - S.sharerDies(gibbed) - - return TRUE + if(mind && mind.name && mind.active && (!(T.flags & NO_DEATHRATTLE))) + var/rendered = "[mind.name] has died at [A.name]." + deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE) + if(mind) + mind.store_memory("Time of death: [tod]", 0) + GLOB.living_mob_list -= src + if(!gibbed) + GLOB.dead_mob_list += src + set_drugginess(0) + SetSleeping(0, 0) + blind_eyes(1) + reset_perspective(null) + reload_fullscreen() + update_action_buttons_icon() + update_damage_hud() + update_health_hud() + update_canmove() + med_hud_set_health() + med_hud_set_status() + + for(var/s in ownedSoullinks) + var/datum/soullink/S = s + S.ownerDies(gibbed) + for(var/s in sharedSoullinks) + var/datum/soullink/S = s + S.sharerDies(gibbed) + + return TRUE diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index d98c4c6136..8bdcf30f66 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -62,8 +62,9 @@ /datum/emote/living/collapse/run_emote(mob/user, params) . = ..() - if(.) - user.Paralyse(2) + if(. && isliving(user)) + var/mob/living/L = user + L.Unconscious(40) /datum/emote/living/cough key = "cough" @@ -110,8 +111,9 @@ /datum/emote/living/faint/run_emote(mob/user, params) . = ..() - if(.) - user.SetSleeping(10) + if(. && isliving(user)) + var/mob/living/L = user + L.SetSleeping(200) /datum/emote/living/flap key = "flap" @@ -329,8 +331,9 @@ /datum/emote/living/surrender/run_emote(mob/user, params) . = ..() - if(.) - user.Weaken(20) + if(. && isliving(user)) + var/mob/living/L = user + L.Knockdown(200) /datum/emote/living/sway key = "sway" @@ -377,7 +380,6 @@ key = "me" key_third_person = "custom" message = null - mob_type_blacklist_typecache = list(/mob/living/brain) /datum/emote/living/custom/proc/check_invalid(mob/user, input) . = TRUE @@ -467,7 +469,7 @@ /datum/emote/living/spin/run_emote(mob/user) user.spin(20, 1) - if(istype(user, /mob/living/silicon/robot)) + if(iscyborg(user)) var/mob/living/silicon/robot/R = user if(R.buckled_mobs) for(var/mob/M in R.buckled_mobs) @@ -476,3 +478,17 @@ else R.unbuckle_all_mobs() ..() + +/datum/emote/living/circle + key = "circle" + key_third_person = "circles" + restraint_check = TRUE + +/datum/emote/living/circle/run_emote(mob/user, params) + . = ..() + var/obj/item/weapon/circlegame/N = new(user) + if(user.put_in_hands(N)) + to_chat(user, "You make a circle with your hand.") + else + qdel(N) + to_chat(user, "You don't have any free hands to make a circle with.") diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 8a15572aa0..2df4c83b85 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -36,13 +36,13 @@ handle_environment(environment) handle_fire() + + // Vore code for belly processes + handle_internal_contents() //stuff in the stomach handle_stomach() - // Vore code for belly processes - handle_internal_contents() - update_gravity(mob_has_gravity()) if(machine) @@ -51,7 +51,7 @@ if(stat != DEAD) handle_disabilities() // eye, ear, brain damages if(stat != DEAD) - handle_status_effects() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc + handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc if(stat != DEAD) return 1 @@ -100,14 +100,8 @@ /mob/living/proc/handle_stomach() return -//this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. +//this updates all special effects: knockdown, druggy, stuttering, etc.. /mob/living/proc/handle_status_effects() - if(paralysis) - AdjustParalysis(-1, 1, 1) - if(stunned) - AdjustStunned(-1, 1, 1) - if(weakened) - AdjustWeakened(-1, 1, 1) if(confused) confused = max(0, confused - 1) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4c57dacfcf..d5a4474014 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -94,7 +94,7 @@ var/obj/O = A if(ObjBump(O)) return - if(istype(A, /atom/movable)) + if(ismovableatom(A)) var/atom/movable/AM = A if(PushAM(AM)) return @@ -237,7 +237,7 @@ death() /mob/living/incapacitated(ignore_restraints, ignore_grab) - if(stat || paralysis || stunned || weakened || (!ignore_restraints && restrained(ignore_grab))) + if(stat || IsUnconscious() || IsStun() || IsKnockdown() || (!ignore_restraints && restrained(ignore_grab))) return 1 /mob/living/proc/InCritical() @@ -281,12 +281,12 @@ set name = "Sleep" set category = "IC" - if(sleeping) + if(IsSleeping()) to_chat(src, "You are already sleeping.") return else if(alert(src, "You sure you want to sleep for a while?", "Sleep", "Yes", "No") == "Yes") - SetSleeping(20) //Short nap + SetSleeping(400) //Short nap update_canmove() /mob/proc/get_contents() @@ -360,6 +360,10 @@ clear_alert("oxy") reload_fullscreen() . = 1 + if(mind) + for(var/S in mind.spell_list) + var/obj/effect/proc_holder/spell/spell = S + spell.updateButtonIcon() //proc used to completely heal a mob. /mob/living/proc/fully_heal(admin_revive = 0) @@ -369,10 +373,10 @@ setCloneLoss(0, 0) setBrainLoss(0) setStaminaLoss(0, 0) - SetParalysis(0, 0) - SetStunned(0, 0) - SetWeakened(0, 0) - SetSleeping(0, 0) + SetUnconscious(0, FALSE) + SetStun(0, FALSE) + SetKnockdown(0, FALSE) + SetSleeping(0, FALSE) radiation = 0 nutrition = NUTRITION_LEVEL_FED + 50 bodytemperature = 310 @@ -554,7 +558,7 @@ // climbing out of a gut if(attempt_vr(src,"vore_process_resist",args)) return TRUE - + //Breaking out of a container (Locker, sleeper, cryo...) else if(isobj(loc)) var/obj/C = loc @@ -802,7 +806,7 @@ var/total_health = (health - staminaloss) if(total_health <= HEALTH_THRESHOLD_CRIT && !stat) to_chat(src, "You're too exhausted to keep going...") - Weaken(5) + Knockdown(100) setStaminaLoss(health - 2) update_health_hud() @@ -921,7 +925,7 @@ "[C] trips over [src] and falls!", \ "[C] topples over [src]!", \ "[C] leaps out of [src]'s way!")]
    ") - C.Weaken(2) + C.Knockdown(40) /mob/living/post_buckle_mob(mob/living/M) if(riding_datum) @@ -932,3 +936,45 @@ if((movement_type & FLYING) && !stat) return ..() + +/mob/living/can_be_pulled() + return ..() && !(buckled && buckled.buckle_prevents_pull) + +//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. +//Robots, animals and brains have their own version so don't worry about them +/mob/living/proc/update_canmove() + var/ko = IsKnockdown() || IsUnconscious() || stat || (status_flags & FAKEDEATH) + var/chokehold = pulledby && pulledby.grab_state >= GRAB_NECK + var/buckle_lying = !(buckled && !buckled.buckle_lying) + var/has_legs = get_num_legs() + var/has_arms = get_num_arms() + var/ignore_legs = get_leg_ignore() + if(ko || resting || has_status_effect(STATUS_EFFECT_STUN) || chokehold) + drop_all_held_items() + unset_machine() + if(pulling) + stop_pulling() + else if(has_legs || ignore_legs) + lying = 0 + + if(buckled) + lying = 90*buckle_lying + else if(!lying) + if(resting) + fall() + else if(ko || (!has_legs && !ignore_legs) || chokehold) + fall(forced = 1) + canmove = !(ko || resting || has_status_effect(STATUS_EFFECT_STUN) || has_status_effect(/datum/status_effect/freon) || chokehold || buckled || (!has_legs && !ignore_legs && !has_arms)) + density = !lying + if(lying) + if(layer == initial(layer)) //to avoid special cases like hiding larvas. + layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs + else + if(layer == LYING_MOB_LAYER) + layer = initial(layer) + update_transform() + if(!lying && lying_prev) + if(client) + client.move_delay = world.time + movement_delay() + lying_prev = lying + return canmove diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a05eb7b9d3..d136fbe967 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -104,12 +104,12 @@ step_away(src,M,15) switch(M.damtype) if(BRUTE) - Paralyse(1) + Unconscious(20) take_overall_damage(rand(M.force/2, M.force)) playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if(BURN) take_overall_damage(0, rand(M.force/2, M.force)) - playsound(src, 'sound/items/Welder.ogg', 50, 1) + playsound(src, 'sound/items/welder.ogg', 50, 1) if(TOX) M.mech_toxin_damage(src) else @@ -317,7 +317,7 @@ GLOB.cult_narsie.souls += 1 if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) GLOB.cult_narsie.resolved = TRUE - world << sound('sound/machines/Alarm.ogg') + world << sound('sound/machines/alarm.ogg') addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper, 1), 120) addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 270) if(client) @@ -371,6 +371,7 @@ /mob/living/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) if(A != src) end_pixel_y = get_standard_pixel_y_offset(lying) - used_item = get_active_held_item() + if(!used_item) + used_item = get_active_held_item() ..() - floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. \ No newline at end of file + floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 83cc990a52..5addce55bb 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -1,77 +1,77 @@ -/mob/living - see_invisible = SEE_INVISIBLE_LIVING - sight = 0 - see_in_dark = 2 - hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) - pressure_resistance = 10 - - //Health and life related vars - var/maxHealth = 100 //Maximum health that should be possible. - var/health = 100 //A mob's health - - //Damage related vars, NOTE: THESE SHOULD ONLY BE MODIFIED BY PROCS - var/bruteloss = 0 //Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage) - var/oxyloss = 0 //Oxygen depravation damage (no air in lungs) - var/toxloss = 0 //Toxic damage caused by being poisoned or radiated - var/fireloss = 0 //Burn damage caused by being way too hot, too cold or burnt. - var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims - var/brainloss = 0 //'Retardation' damage caused by someone hitting you in the head with a bible or being infected with brainrot. - var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are stunned if it gets too high. Holodeck and hallucinations deal this. - - - var/hallucination = 0 //Directly affects how long a mob will hallucinate for - - var/last_special = 0 //Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out. - - //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. +/mob/living + see_invisible = SEE_INVISIBLE_LIVING + sight = 0 + see_in_dark = 2 + hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) + pressure_resistance = 10 + + //Health and life related vars + var/maxHealth = 100 //Maximum health that should be possible. + var/health = 100 //A mob's health + + //Damage related vars, NOTE: THESE SHOULD ONLY BE MODIFIED BY PROCS + var/bruteloss = 0 //Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage) + var/oxyloss = 0 //Oxygen depravation damage (no air in lungs) + var/toxloss = 0 //Toxic damage caused by being poisoned or radiated + var/fireloss = 0 //Burn damage caused by being way too hot, too cold or burnt. + var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims + var/brainloss = 0 //'Retardation' damage caused by someone hitting you in the head with a bible or being infected with brainrot. + var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this. + + + var/hallucination = 0 //Directly affects how long a mob will hallucinate for + + var/last_special = 0 //Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out. + + //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas //and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt - - var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them. - - var/now_pushing = null //used by living/Bump() and living/PushAM() to prevent potential infinite loop. - - var/cameraFollow = null - - var/tod = null // Time of death - - var/on_fire = 0 //The "Are we on fire?" var - var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 - - var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour - var/holder = null //The holder for blood crawling - var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always - var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. - - var/mob_size = MOB_SIZE_HUMAN - var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. - var/list/image/staticOverlays = list() - var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) - - var/list/pipes_shown = list() - var/last_played_vent - - var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. - - var/bubble_icon = "default" //what icon the mob uses for speechbubbles - - var/last_bumped = 0 - var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) - - var/list/butcher_results = null - var/hellbound = 0 //People who've signed infernal contracts are unrevivable. - - var/list/weather_immunities = list() - - var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added - - var/blood_volume = 0 //how much blood the mob has - var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override - - var/list/status_effects //a list of all status effects the mob has - - var/list/implants = null - - var/datum/riding/riding_datum - - var/datum/language/selected_default_language + + var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them. + + var/now_pushing = null //used by living/Bump() and living/PushAM() to prevent potential infinite loop. + + var/cameraFollow = null + + var/tod = null // Time of death + + var/on_fire = 0 //The "Are we on fire?" var + var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 + + var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour + var/holder = null //The holder for blood crawling + var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always + var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. + + var/mob_size = MOB_SIZE_HUMAN + var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. + var/list/image/staticOverlays = list() + var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) + + var/list/pipes_shown = list() + var/last_played_vent + + var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. + + var/bubble_icon = "default" //what icon the mob uses for speechbubbles + + var/last_bumped = 0 + var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) + + var/list/butcher_results = null + var/hellbound = 0 //People who've signed infernal contracts are unrevivable. + + var/list/weather_immunities = list() + + var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added + + var/blood_volume = 0 //how much blood the mob has + var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override + + var/list/status_effects //a list of all status effects the mob has + + var/list/implants = null + + var/datum/riding/riding_datum + + var/datum/language/selected_default_language diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 94b26fd229..97ffa72aec 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -1,21 +1,21 @@ -/mob/living/Login() - ..() - //Mind updates - sync_mind() - mind.show_memory(src, 0) - - //Round specific stuff +/mob/living/Login() + ..() + //Mind updates + sync_mind() + mind.show_memory(src, 0) + + //Round specific stuff if(SSticker.mode) - switch(SSticker.mode.name) - if("sandbox") - CanBuild() - - update_damage_hud() - update_health_hud() - - //Vents - if(ventcrawler) - to_chat(src, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") - - if(ranged_ability) + switch(SSticker.mode.name) + if("sandbox") + CanBuild() + + update_damage_hud() + update_health_hud() + + //Vents + if(ventcrawler) + to_chat(src, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") + + if(ranged_ability) ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") \ No newline at end of file diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index ab3dc7bb34..8bc21c4b41 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(department_radio_prefixes, list(":", ".")) -GLOBAL_LIST_INIT(department_radio_keys, list( +GLOBAL_LIST_INIT(department_radio_keys, list( // Location "r" = "right hand", "l" = "left hand", @@ -68,162 +68,162 @@ GLOBAL_LIST_INIT(department_radio_keys, list( "ù" = "AI Private", "÷" = "cords" )) - -/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null) - var/static/list/crit_allowed_modes = list(MODE_WHISPER = TRUE, MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) - var/static/list/unconscious_allowed_modes = list(MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) - - var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE) - - if(sanitize) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - if(!message || message == "") - return - - var/message_mode = get_message_mode(message) - var/original_message = message - var/in_critical = InCritical() - - if(one_character_prefix[message_mode]) - message = copytext(message, 2) - else if(message_mode) - message = copytext(message, 3) - if(findtext(message, " ", 1, 2)) - message = copytext(message, 2) - - if(message_mode == "admin") - if(client) - client.cmd_admin_say(message) - return - - if(message_mode == "deadmin") - if(client) - client.dsay(message) - return - - if(stat == DEAD) - say_dead(original_message) - return - - if(check_emote(original_message) || !can_speak_basic(original_message)) - return - - if(in_critical) - if(!(crit_allowed_modes[message_mode])) - return - else if(stat == UNCONSCIOUS) - if(!(unconscious_allowed_modes[message_mode])) - return - - // language comma detection. - var/datum/language/message_language = get_message_language(message) - if(message_language) - // No, you cannot speak in xenocommon just because you know the key - if(can_speak_in_language(message_language)) - language = message_language - message = copytext(message, 3) - - // Trim the space if they said ",0 I LOVE LANGUAGES" - if(findtext(message, " ", 1, 2)) - message = copytext(message, 2) - - if(!language) - language = get_default_language() - - // Detection of language needs to be before inherent channels, because - // AIs use inherent channels for the holopad. Most inherent channels - // ignore the language argument however. - - if(handle_inherent_channels(message, message_mode, language)) //Hiveminds, binary chat & holopad. - return - - if(!can_speak_vocal(message)) - to_chat(src, "You find yourself unable to speak!") - return - - var/message_range = 7 - - var/succumbed = FALSE - - if(message_mode == MODE_WHISPER) - message_range = 1 - spans |= SPAN_ITALICS - log_whisper("[src.name]/[src.key] : [message]") - if(in_critical) - var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) - // If we cut our message short, abruptly end it with a-.. - var/message_len = length(message) - message = copytext(message, 1, health_diff) + "[message_len > health_diff ? "-.." : "..."]" - message = Ellipsis(message, 10, 1) - message_mode = MODE_WHISPER_CRIT - succumbed = TRUE - else - log_say("[name]/[key] : [message]") - - message = treat_message(message) - if(!message) - return - - spans += get_spans() - - if(language) + +/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null) + var/static/list/crit_allowed_modes = list(MODE_WHISPER = TRUE, MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) + var/static/list/unconscious_allowed_modes = list(MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) + + var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE) + + if(sanitize) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + if(!message || message == "") + return + + var/message_mode = get_message_mode(message) + var/original_message = message + var/in_critical = InCritical() + + if(one_character_prefix[message_mode]) + message = copytext(message, 2) + else if(message_mode) + message = copytext(message, 3) + if(findtext(message, " ", 1, 2)) + message = copytext(message, 2) + + if(message_mode == "admin") + if(client) + client.cmd_admin_say(message) + return + + if(message_mode == "deadmin") + if(client) + client.dsay(message) + return + + if(stat == DEAD) + say_dead(original_message) + return + + if(check_emote(original_message) || !can_speak_basic(original_message)) + return + + if(in_critical) + if(!(crit_allowed_modes[message_mode])) + return + else if(stat == UNCONSCIOUS) + if(!(unconscious_allowed_modes[message_mode])) + return + + // language comma detection. + var/datum/language/message_language = get_message_language(message) + if(message_language) + // No, you cannot speak in xenocommon just because you know the key + if(can_speak_in_language(message_language)) + language = message_language + message = copytext(message, 3) + + // Trim the space if they said ",0 I LOVE LANGUAGES" + if(findtext(message, " ", 1, 2)) + message = copytext(message, 2) + + if(!language) + language = get_default_language() + + // Detection of language needs to be before inherent channels, because + // AIs use inherent channels for the holopad. Most inherent channels + // ignore the language argument however. + + if(handle_inherent_channels(message, message_mode, language)) //Hiveminds, binary chat & holopad. + return + + if(!can_speak_vocal(message)) + to_chat(src, "You find yourself unable to speak!") + return + + var/message_range = 7 + + var/succumbed = FALSE + + if(message_mode == MODE_WHISPER) + message_range = 1 + spans |= SPAN_ITALICS + log_whisper("[src.name]/[src.key] : [message]") + if(in_critical) + var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) + // If we cut our message short, abruptly end it with a-.. + var/message_len = length(message) + message = copytext(message, 1, health_diff) + "[message_len > health_diff ? "-.." : "..."]" + message = Ellipsis(message, 10, 1) + message_mode = MODE_WHISPER_CRIT + succumbed = TRUE + else + log_say("[name]/[key] : [message]") + + message = treat_message(message) + if(!message) + return + + spans += get_spans() + + if(language) var/datum/language/L = GLOB.language_datum_instances[language] - spans |= L.spans - - //Log what we've said with an associated timestamp, using the list's len for safety/to prevent overwriting messages - log_message(message, INDIVIDUAL_SAY_LOG) - + spans |= L.spans + + //Log what we've said with an associated timestamp, using the list's len for safety/to prevent overwriting messages + log_message(message, INDIVIDUAL_SAY_LOG) + var/radio_return = radio(message, message_mode, spans, language) - if(radio_return & ITALICS) - spans |= SPAN_ITALICS - if(radio_return & REDUCE_RANGE) - message_range = 1 - - //No screams in space, unless you're next to someone. - var/turf/T = get_turf(src) - var/datum/gas_mixture/environment = T.return_air() - var/pressure = (environment)? environment.return_pressure() : 0 - if(pressure < SOUND_MINIMUM_PRESSURE) - message_range = 1 - - if(pressure < ONE_ATMOSPHERE*0.4) //Thin air, let's italicise the message - spans |= SPAN_ITALICS - - send_speech(message, message_range, src, bubble_type, spans, language, message_mode) - - if(succumbed) - succumb(1) - to_chat(src, compose_message(src, language, message, , spans, message_mode)) - - return 1 - -/mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) - if(!client) - return - var/deaf_message - var/deaf_type - if(speaker != src) - if(!radio_freq) //These checks have to be seperate, else people talking on the radio will make "You can't hear yourself!" appear when hearing people over the radio while deaf. - deaf_message = "[speaker] [speaker.verb_say] something but you cannot hear them." - deaf_type = 1 - else - deaf_message = "You can't hear yourself!" - deaf_type = 2 // Since you should be able to hear yourself without looking - - // Recompose message for AI hrefs, language incomprehension. - message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) - show_message(message, 2, deaf_message, deaf_type) - return message - -/mob/living/send_speech(message, message_range = 6, obj/source = src, bubble_type = bubble_icon, list/spans, datum/language/message_language=null, message_mode) - var/static/list/eavesdropping_modes = list(MODE_WHISPER = TRUE, MODE_WHISPER_CRIT = TRUE) - var/eavesdrop_range = 0 - if(eavesdropping_modes[message_mode]) - eavesdrop_range = EAVESDROP_EXTRA_RANGE - var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source) - var/list/the_dead = list() - for(var/_M in GLOB.player_list) - var/mob/M = _M + if(radio_return & ITALICS) + spans |= SPAN_ITALICS + if(radio_return & REDUCE_RANGE) + message_range = 1 + + //No screams in space, unless you're next to someone. + var/turf/T = get_turf(src) + var/datum/gas_mixture/environment = T.return_air() + var/pressure = (environment)? environment.return_pressure() : 0 + if(pressure < SOUND_MINIMUM_PRESSURE) + message_range = 1 + + if(pressure < ONE_ATMOSPHERE*0.4) //Thin air, let's italicise the message + spans |= SPAN_ITALICS + + send_speech(message, message_range, src, bubble_type, spans, language, message_mode) + + if(succumbed) + succumb(1) + to_chat(src, compose_message(src, language, message, , spans, message_mode)) + + return 1 + +/mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) + if(!client) + return + var/deaf_message + var/deaf_type + if(speaker != src) + if(!radio_freq) //These checks have to be seperate, else people talking on the radio will make "You can't hear yourself!" appear when hearing people over the radio while deaf. + deaf_message = "[speaker] [speaker.verb_say] something but you cannot hear them." + deaf_type = 1 + else + deaf_message = "You can't hear yourself!" + deaf_type = 2 // Since you should be able to hear yourself without looking + + // Recompose message for AI hrefs, language incomprehension. + message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) + show_message(message, 2, deaf_message, deaf_type) + return message + +/mob/living/send_speech(message, message_range = 6, obj/source = src, bubble_type = bubble_icon, list/spans, datum/language/message_language=null, message_mode) + var/static/list/eavesdropping_modes = list(MODE_WHISPER = TRUE, MODE_WHISPER_CRIT = TRUE) + var/eavesdrop_range = 0 + if(eavesdropping_modes[message_mode]) + eavesdrop_range = EAVESDROP_EXTRA_RANGE + var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source) + var/list/the_dead = list() + for(var/_M in GLOB.player_list) + var/mob/M = _M if(M.stat != DEAD) //not dead, not important continue if(!M.client || !client) //client is so that ghosts don't have to listen to mice @@ -235,188 +235,188 @@ GLOBAL_LIST_INIT(department_radio_keys, list( continue listening |= M the_dead[M] = TRUE - - var/eavesdropping - var/eavesrendered - if(eavesdrop_range) - eavesdropping = stars(message) - eavesrendered = compose_message(src, message_language, eavesdropping, , spans, message_mode) - - var/rendered = compose_message(src, message_language, message, , spans, message_mode) - for(var/_AM in listening) - var/atom/movable/AM = _AM - if(eavesdrop_range && get_dist(source, AM) > message_range && !(the_dead[AM])) - AM.Hear(eavesrendered, src, message_language, eavesdropping, , spans, message_mode) - else - AM.Hear(rendered, src, message_language, message, , spans, message_mode) - - //speech bubble - var/list/speech_bubble_recipients = list() - for(var/mob/M in listening) - if(M.client) - speech_bubble_recipients.Add(M.client) - var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) - I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) - -/mob/proc/binarycheck() - return 0 - -/mob/living/can_speak(message) //For use outside of Say() - if(can_speak_basic(message) && can_speak_vocal(message)) - return 1 - -/mob/living/proc/can_speak_basic(message) //Check BEFORE handling of xeno and ling channels - if(client) - if(client.prefs.muted & MUTE_IC) - to_chat(src, "You cannot speak in IC (muted).") - return 0 - if(client.handle_spam_prevention(message,MUTE_IC)) - return 0 - - return 1 - -/mob/living/proc/can_speak_vocal(message) //Check AFTER handling of xeno and ling channels - if(disabilities & MUTE) - return 0 - - if(is_muzzled()) - return 0 - - if(!IsVocal()) - return 0 - - return 1 - -/mob/living/proc/check_emote(message) - if(copytext(message, 1, 2) == "*") - emote(copytext(message, 2)) - return 1 - -/mob/living/proc/get_message_mode(message) + + var/eavesdropping + var/eavesrendered + if(eavesdrop_range) + eavesdropping = stars(message) + eavesrendered = compose_message(src, message_language, eavesdropping, , spans, message_mode) + + var/rendered = compose_message(src, message_language, message, , spans, message_mode) + for(var/_AM in listening) + var/atom/movable/AM = _AM + if(eavesdrop_range && get_dist(source, AM) > message_range && !(the_dead[AM])) + AM.Hear(eavesrendered, src, message_language, eavesdropping, , spans, message_mode) + else + AM.Hear(rendered, src, message_language, message, , spans, message_mode) + + //speech bubble + var/list/speech_bubble_recipients = list() + for(var/mob/M in listening) + if(M.client) + speech_bubble_recipients.Add(M.client) + var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) + I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA + INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) + +/mob/proc/binarycheck() + return 0 + +/mob/living/can_speak(message) //For use outside of Say() + if(can_speak_basic(message) && can_speak_vocal(message)) + return 1 + +/mob/living/proc/can_speak_basic(message) //Check BEFORE handling of xeno and ling channels + if(client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, "You cannot speak in IC (muted).") + return 0 + if(client.handle_spam_prevention(message,MUTE_IC)) + return 0 + + return 1 + +/mob/living/proc/can_speak_vocal(message) //Check AFTER handling of xeno and ling channels + if(disabilities & MUTE) + return 0 + + if(is_muzzled()) + return 0 + + if(!IsVocal()) + return 0 + + return 1 + +/mob/living/proc/check_emote(message) + if(copytext(message, 1, 2) == "*") + emote(copytext(message, 2)) + return 1 + +/mob/living/proc/get_message_mode(message) var/key = copytext(message, 1, 2) if(key == ";") - return MODE_HEADSET + return MODE_HEADSET else if(key == "#") - return MODE_WHISPER + return MODE_WHISPER else if(length(message) > 2 && (key in GLOB.department_radio_prefixes)) var/key_symbol = lowertext(copytext(message, 2, 3)) return GLOB.department_radio_keys[key_symbol] - -/mob/living/proc/get_message_language(message) - if(copytext(message, 1, 2) == ",") - var/key = copytext(message, 2, 3) + +/mob/living/proc/get_message_language(message) + if(copytext(message, 1, 2) == ",") + var/key = copytext(message, 2, 3) for(var/ld in GLOB.all_languages) - var/datum/language/LD = ld - if(initial(LD.key) == key) - return LD - return null - -/mob/living/proc/handle_inherent_channels(message, message_mode) - if(message_mode == MODE_CHANGELING) - switch(lingcheck()) - if(3) - var/msg = "[src.mind]: [message]" - for(var/_M in GLOB.mob_list) - var/mob/M = _M - if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [msg]") - else - switch(M.lingcheck()) - if(3) - to_chat(M, msg) - if(2) - to_chat(M, msg) - if(1) - if(prob(40)) - to_chat(M, "We can faintly sense an outsider trying to communicate through the hivemind...") - if(2) - var/msg = "[mind.changeling.changelingID]: [message]" - log_say("[mind.changeling.changelingID]/[src.key] : [message]") - for(var/_M in GLOB.mob_list) - var/mob/M = _M - if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [msg]") - else - switch(M.lingcheck()) - if(3) - to_chat(M, msg) - if(2) - to_chat(M, msg) - if(1) - if(prob(40)) - to_chat(M, "We can faintly sense another of our kind trying to communicate through the hivemind...") - if(1) - to_chat(src, "Our senses have not evolved enough to be able to communicate this way...") - return TRUE - if(message_mode == MODE_ALIEN) - if(hivecheck()) - alien_talk(message) - return TRUE - if(message_mode == MODE_VOCALCORDS) - if(iscarbon(src)) - var/mob/living/carbon/C = src - var/obj/item/organ/vocal_cords/V = C.getorganslot("vocal_cords") - if(V && V.can_speak_with()) - V.handle_speech(message) //message - V.speak_with(message) //action - return TRUE - return FALSE - -/mob/living/proc/treat_message(message) - if(getBrainLoss() >= 60) - message = derpspeech(message, stuttering) - - if(stuttering) - message = stutter(message) - - if(slurring) - message = slur(message) - - if(cultslurring) - message = cultslur(message) - - message = capitalize(message) - - return message - -/mob/living/proc/radio(message, message_mode, list/spans, language) - switch(message_mode) - if(MODE_R_HAND) - for(var/obj/item/r_hand in get_held_items_for_side("r", all = TRUE)) - if (r_hand) - return r_hand.talk_into(src, message, , spans, language) - return ITALICS | REDUCE_RANGE - if(MODE_L_HAND) - for(var/obj/item/l_hand in get_held_items_for_side("l", all = TRUE)) - if (l_hand) - return l_hand.talk_into(src, message, , spans, language) - return ITALICS | REDUCE_RANGE - - if(MODE_INTERCOM) - for (var/obj/item/device/radio/intercom/I in view(1, null)) - I.talk_into(src, message, , spans, language) - return ITALICS | REDUCE_RANGE - - if(MODE_BINARY) - if(binarycheck()) - robot_talk(message) - return ITALICS | REDUCE_RANGE //Does not return 0 since this is only reached by humans, not borgs or AIs. - return 0 - -/mob/living/lingcheck() //1 is ling w/ no hivemind. 2 is ling w/hivemind. 3 is ling victim being linked into hivemind. - if(mind && mind.changeling) - if(mind.changeling.changeling_speak) - return 2 - return 1 - if(mind && mind.linglink) - return 3 - return 0 - + var/datum/language/LD = ld + if(initial(LD.key) == key) + return LD + return null + +/mob/living/proc/handle_inherent_channels(message, message_mode) + if(message_mode == MODE_CHANGELING) + switch(lingcheck()) + if(3) + var/msg = "[src.mind]: [message]" + for(var/_M in GLOB.mob_list) + var/mob/M = _M + if(M in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(M, src) + to_chat(M, "[link] [msg]") + else + switch(M.lingcheck()) + if(3) + to_chat(M, msg) + if(2) + to_chat(M, msg) + if(1) + if(prob(40)) + to_chat(M, "We can faintly sense an outsider trying to communicate through the hivemind...") + if(2) + var/msg = "[mind.changeling.changelingID]: [message]" + log_say("[mind.changeling.changelingID]/[src.key] : [message]") + for(var/_M in GLOB.mob_list) + var/mob/M = _M + if(M in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(M, src) + to_chat(M, "[link] [msg]") + else + switch(M.lingcheck()) + if(3) + to_chat(M, msg) + if(2) + to_chat(M, msg) + if(1) + if(prob(40)) + to_chat(M, "We can faintly sense another of our kind trying to communicate through the hivemind...") + if(1) + to_chat(src, "Our senses have not evolved enough to be able to communicate this way...") + return TRUE + if(message_mode == MODE_ALIEN) + if(hivecheck()) + alien_talk(message) + return TRUE + if(message_mode == MODE_VOCALCORDS) + if(iscarbon(src)) + var/mob/living/carbon/C = src + var/obj/item/organ/vocal_cords/V = C.getorganslot("vocal_cords") + if(V && V.can_speak_with()) + V.handle_speech(message) //message + V.speak_with(message) //action + return TRUE + return FALSE + +/mob/living/proc/treat_message(message) + if(getBrainLoss() >= 60) + message = derpspeech(message, stuttering) + + if(stuttering) + message = stutter(message) + + if(slurring) + message = slur(message) + + if(cultslurring) + message = cultslur(message) + + message = capitalize(message) + + return message + +/mob/living/proc/radio(message, message_mode, list/spans, language) + switch(message_mode) + if(MODE_R_HAND) + for(var/obj/item/r_hand in get_held_items_for_side("r", all = TRUE)) + if (r_hand) + return r_hand.talk_into(src, message, , spans, language) + return ITALICS | REDUCE_RANGE + if(MODE_L_HAND) + for(var/obj/item/l_hand in get_held_items_for_side("l", all = TRUE)) + if (l_hand) + return l_hand.talk_into(src, message, , spans, language) + return ITALICS | REDUCE_RANGE + + if(MODE_INTERCOM) + for (var/obj/item/device/radio/intercom/I in view(1, null)) + I.talk_into(src, message, , spans, language) + return ITALICS | REDUCE_RANGE + + if(MODE_BINARY) + if(binarycheck()) + robot_talk(message) + return ITALICS | REDUCE_RANGE //Does not return 0 since this is only reached by humans, not borgs or AIs. + return 0 + +/mob/living/lingcheck() //1 is ling w/ no hivemind. 2 is ling w/hivemind. 3 is ling victim being linked into hivemind. + if(mind && mind.changeling) + if(mind.changeling.changeling_speak) + return 2 + return 1 + if(mind && mind.linglink) + return 3 + return 0 + /mob/living/say_mod(input, message_mode) - if(message_mode == MODE_WHISPER) + if(message_mode == MODE_WHISPER) . = verb_whisper else if(message_mode == MODE_WHISPER_CRIT) . = "[verb_whisper] in [p_their()] last breath" @@ -426,7 +426,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( . = "gibbers" else . = ..() - + /mob/living/whisper(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null) say("#[message]", bubble_type, spans, sanitize, language) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 2a473017a5..ce6feeaacf 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1,840 +1,839 @@ -#define CALL_BOT_COOLDOWN 900 - -//Not sure why this is necessary... -/proc/AutoUpdateAI(obj/subject) - var/is_in_use = 0 - if (subject!=null) - for(var/A in GLOB.ai_list) - var/mob/living/silicon/ai/M = A - if ((M.client && M.machine == subject)) - is_in_use = 1 - subject.attack_ai(M) - return is_in_use - - -/mob/living/silicon/ai - name = "AI" - icon = 'icons/mob/AI.dmi' - icon_state = "ai" - anchored = 1 - density = 1 - canmove = 0 - status_flags = CANSTUN|CANPUSH - a_intent = INTENT_HARM //so we always get pushed instead of trying to swap - sight = SEE_TURFS | SEE_MOBS | SEE_OBJS - see_in_dark = 8 - med_hud = DATA_HUD_MEDICAL_BASIC - sec_hud = DATA_HUD_SECURITY_BASIC - mob_size = MOB_SIZE_LARGE - var/list/network = list("SS13") - var/obj/machinery/camera/current = null - var/list/connected_robots = list() - var/aiRestorePowerRoutine = 0 - var/requires_power = POWER_REQ_ALL - var/can_be_carded = TRUE - //var/list/laws = list() - var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) - var/viewalerts = 0 - var/icon/holo_icon//Default is assigned when AI is created. - var/obj/mecha/controlled_mech //For controlled_mech a mech, to determine whether to relaymove or use the AI eye. - var/radio_enabled = 1 //Determins if a carded AI can speak with its built in radio or not. - radiomod = ";" //AIs will, by default, state their laws on the internal radio. - var/obj/item/device/pda/ai/aiPDA = null - var/obj/item/device/multitool/aiMulti = null - var/mob/living/simple_animal/bot/Bot - var/tracking = 0 //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed. - var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N - - //MALFUNCTION - var/datum/module_picker/malf_picker - var/list/datum/AI_Module/current_modules = list() - var/can_dominate_mechs = 0 - var/shunted = 0 //1 if the AI is currently shunted. Used to differentiate between shunted and ghosted/braindead - - var/control_disabled = 0 // Set to 1 to stop AI from interacting via Click() - var/malfhacking = 0 // More or less a copy of the above var, so that malf AIs can hack and still get new cyborgs -- NeoFite +#define CALL_BOT_COOLDOWN 900 + +//Not sure why this is necessary... +/proc/AutoUpdateAI(obj/subject) + var/is_in_use = 0 + if (subject!=null) + for(var/A in GLOB.ai_list) + var/mob/living/silicon/ai/M = A + if ((M.client && M.machine == subject)) + is_in_use = 1 + subject.attack_ai(M) + return is_in_use + + +/mob/living/silicon/ai + name = "AI" + icon = 'icons/mob/ai.dmi' + icon_state = "ai" + anchored = 1 + density = 1 + canmove = 0 + status_flags = CANSTUN|CANPUSH + a_intent = INTENT_HARM //so we always get pushed instead of trying to swap + sight = SEE_TURFS | SEE_MOBS | SEE_OBJS + see_in_dark = 8 + med_hud = DATA_HUD_MEDICAL_BASIC + sec_hud = DATA_HUD_SECURITY_BASIC + mob_size = MOB_SIZE_LARGE + var/list/network = list("SS13") + var/obj/machinery/camera/current = null + var/list/connected_robots = list() + var/aiRestorePowerRoutine = 0 + var/requires_power = POWER_REQ_ALL + var/can_be_carded = TRUE + //var/list/laws = list() + var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) + var/viewalerts = 0 + var/icon/holo_icon//Default is assigned when AI is created. + var/obj/mecha/controlled_mech //For controlled_mech a mech, to determine whether to relaymove or use the AI eye. + var/radio_enabled = 1 //Determins if a carded AI can speak with its built in radio or not. + radiomod = ";" //AIs will, by default, state their laws on the internal radio. + var/obj/item/device/pda/ai/aiPDA = null + var/obj/item/device/multitool/aiMulti = null + var/mob/living/simple_animal/bot/Bot + var/tracking = 0 //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed. + var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N + + //MALFUNCTION + var/datum/module_picker/malf_picker + var/list/datum/AI_Module/current_modules = list() + var/can_dominate_mechs = 0 + var/shunted = 0 //1 if the AI is currently shunted. Used to differentiate between shunted and ghosted/braindead + + var/control_disabled = 0 // Set to 1 to stop AI from interacting via Click() + var/malfhacking = 0 // More or less a copy of the above var, so that malf AIs can hack and still get new cyborgs -- NeoFite var/malf_cooldown = 0 //Cooldown var for malf modules, stores a worldtime + cooldown - - var/obj/machinery/power/apc/malfhack = null - var/explosive = 0 //does the AI explode when it dies? - - var/mob/living/silicon/ai/parent = null - var/camera_light_on = 0 - var/list/obj/machinery/camera/lit_cameras = list() - - var/datum/trackable/track = new() - - var/last_paper_seen = null - var/can_shunt = 1 - var/last_announcement = "" // For AI VOX, if enabled - var/turf/waypoint //Holds the turf of the currently selected waypoint. - var/waypoint_mode = 0 //Waypoint mode is for selecting a turf via clicking. - var/call_bot_cooldown = 0 //time of next call bot command - var/apc_override = 0 //hack for letting the AI use its APC even when visionless - var/nuking = FALSE - var/obj/machinery/doomsday_device/doomsday_device - - var/mob/camera/aiEye/eyeobj = new() - var/sprint = 10 - var/cooldown = 0 - var/acceleration = 1 - - var/obj/machinery/camera/portable/builtInCamera - - var/obj/structure/AIcore/deactivated/linked_core //For exosuit control - var/mob/living/silicon/robot/deployed_shell = null //For shell control - var/datum/action/innate/deploy_shell/deploy_action = new - var/datum/action/innate/deploy_last_shell/redeploy_action = new - var/chnotify = 0 - -/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai) - ..() - if(!target_ai) //If there is no player/brain inside. - new/obj/structure/AIcore/deactivated(loc) //New empty terminal. - qdel(src)//Delete AI. - return - - if(L && istype(L, /datum/ai_laws)) - laws = L - laws.associate(src) - else - make_laws() - - if(target_ai.mind) - target_ai.mind.transfer_to(src) - if(mind.special_role) - mind.store_memory("As an AI, you must obey your silicon laws above all else. Your objectives will consider you to be dead.") - to_chat(src, "You have been installed as an AI! ") - to_chat(src, "You must obey your silicon laws above all else. Your objectives will consider you to be dead.") - - to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).") - to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu.") - to_chat(src, "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.") - to_chat(src, "To use something, simply click on it.") - to_chat(src, "Use say :b to speak to your cyborgs through binary.") - to_chat(src, "For department channels, use the following say commands:") - to_chat(src, ":o - AI Private, :c - Command, :s - Security, :e - Engineering, :u - Supply, :v - Service, :m - Medical, :n - Science.") - show_laws() - to_chat(src, "These laws may be changed by other players, or by you being the traitor.") - - job = "AI" - - eyeobj.ai = src - eyeobj.loc = src.loc - rename_self("ai") - - holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"default")) - - spark_system = new /datum/effect_system/spark_spread() - spark_system.set_up(5, 0, src) - spark_system.attach(src) - - verbs += /mob/living/silicon/ai/proc/show_laws_verb - - aiPDA = new/obj/item/device/pda/ai(src) - aiPDA.owner = name - aiPDA.ownjob = "AI" - aiPDA.name = name + " (" + aiPDA.ownjob + ")" - - aiMulti = new(src) - radio = new /obj/item/device/radio/headset/ai(src) - aicamera = new/obj/item/device/camera/siliconcam/ai_camera(src) - - deploy_action.Grant(src) - - if(isturf(loc)) - verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \ - /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ - /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/botcall,\ - /mob/living/silicon/ai/proc/control_integrated_radio, /mob/living/silicon/ai/proc/set_automatic_say_channel) - - GLOB.ai_list += src - GLOB.shuttle_caller_list += src - - builtInCamera = new /obj/machinery/camera/portable(src) - builtInCamera.network = list("SS13") - - -/mob/living/silicon/ai/Destroy() - GLOB.ai_list -= src - GLOB.shuttle_caller_list -= src - SSshuttle.autoEvac() - qdel(eyeobj) // No AI, no Eye - malfhack = null - - . = ..() - + + var/obj/machinery/power/apc/malfhack = null + var/explosive = 0 //does the AI explode when it dies? + + var/mob/living/silicon/ai/parent = null + var/camera_light_on = 0 + var/list/obj/machinery/camera/lit_cameras = list() + + var/datum/trackable/track = new() + + var/last_paper_seen = null + var/can_shunt = 1 + var/last_announcement = "" // For AI VOX, if enabled + var/turf/waypoint //Holds the turf of the currently selected waypoint. + var/waypoint_mode = 0 //Waypoint mode is for selecting a turf via clicking. + var/call_bot_cooldown = 0 //time of next call bot command + var/apc_override = 0 //hack for letting the AI use its APC even when visionless + var/nuking = FALSE + var/obj/machinery/doomsday_device/doomsday_device + + var/mob/camera/aiEye/eyeobj = new() + var/sprint = 10 + var/cooldown = 0 + var/acceleration = 1 + + var/obj/machinery/camera/portable/builtInCamera + + var/obj/structure/AIcore/deactivated/linked_core //For exosuit control + var/mob/living/silicon/robot/deployed_shell = null //For shell control + var/datum/action/innate/deploy_shell/deploy_action = new + var/datum/action/innate/deploy_last_shell/redeploy_action = new + var/chnotify = 0 + +/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai) + ..() + if(!target_ai) //If there is no player/brain inside. + new/obj/structure/AIcore/deactivated(loc) //New empty terminal. + qdel(src)//Delete AI. + return + + if(L && istype(L, /datum/ai_laws)) + laws = L + laws.associate(src) + else + make_laws() + + if(target_ai.mind) + target_ai.mind.transfer_to(src) + if(mind.special_role) + mind.store_memory("As an AI, you must obey your silicon laws above all else. Your objectives will consider you to be dead.") + to_chat(src, "You have been installed as an AI! ") + to_chat(src, "You must obey your silicon laws above all else. Your objectives will consider you to be dead.") + + to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).") + to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu.") + to_chat(src, "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.") + to_chat(src, "To use something, simply click on it.") + to_chat(src, "Use say :b to speak to your cyborgs through binary.") + to_chat(src, "For department channels, use the following say commands:") + to_chat(src, ":o - AI Private, :c - Command, :s - Security, :e - Engineering, :u - Supply, :v - Service, :m - Medical, :n - Science.") + show_laws() + to_chat(src, "These laws may be changed by other players, or by you being the traitor.") + + job = "AI" + + eyeobj.ai = src + eyeobj.loc = src.loc + rename_self("ai") + + holo_icon = getHologramIcon(icon('icons/mob/ai.dmi',"default")) + + spark_system = new /datum/effect_system/spark_spread() + spark_system.set_up(5, 0, src) + spark_system.attach(src) + + verbs += /mob/living/silicon/ai/proc/show_laws_verb + + aiPDA = new/obj/item/device/pda/ai(src) + aiPDA.owner = name + aiPDA.ownjob = "AI" + aiPDA.name = name + " (" + aiPDA.ownjob + ")" + + aiMulti = new(src) + radio = new /obj/item/device/radio/headset/ai(src) + aicamera = new/obj/item/device/camera/siliconcam/ai_camera(src) + + deploy_action.Grant(src) + + if(isturf(loc)) + verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \ + /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ + /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/botcall,\ + /mob/living/silicon/ai/proc/control_integrated_radio, /mob/living/silicon/ai/proc/set_automatic_say_channel) + + GLOB.ai_list += src + GLOB.shuttle_caller_list += src + + builtInCamera = new /obj/machinery/camera/portable(src) + builtInCamera.network = list("SS13") + + +/mob/living/silicon/ai/Destroy() + GLOB.ai_list -= src + GLOB.shuttle_caller_list -= src + SSshuttle.autoEvac() + qdel(eyeobj) // No AI, no Eye + malfhack = null + + . = ..() + /mob/living/silicon/ai/IgniteMob() fire_stacks = 0 . = ..() - -/mob/living/silicon/ai/verb/pick_icon() - set category = "AI Commands" - set name = "Set AI Core Display" - if(stat || aiRestorePowerRoutine) - return - - //if(icon_state == initial(icon_state)) - var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", "Monochrome", "Blue", "Inverted", "Firewall", "Green", "Red", "Static", "Red October", "House", "Heartline", "Hades", "Helios", "President", "Syndicat Meow", "Alien", "Too Deep", "Triumvirate", "Triumvirate-M", "Text", "Matrix", "Dorf", "Bliss", "Not Malf", "Fuzzy", "Goon", "Database", "Glitchman", "Murica", "Nanotrasen", "Gentoo", "Angel") - if(icontype == "Clown") - icon_state = "ai-clown2" - else if(icontype == "Monochrome") - icon_state = "ai-mono" - else if(icontype == "Blue") - icon_state = "ai" - else if(icontype == "Inverted") - icon_state = "ai-u" - else if(icontype == "Firewall") - icon_state = "ai-magma" - else if(icontype == "Green") - icon_state = "ai-wierd" - else if(icontype == "Red") - icon_state = "ai-malf" - else if(icontype == "Static") - icon_state = "ai-static" - else if(icontype == "Red October") - icon_state = "ai-redoctober" - else if(icontype == "House") - icon_state = "ai-house" - else if(icontype == "Heartline") - icon_state = "ai-heartline" - else if(icontype == "Hades") - icon_state = "ai-hades" - else if(icontype == "Helios") - icon_state = "ai-helios" - else if(icontype == "President") - icon_state = "ai-pres" - else if(icontype == "Syndicat Meow") - icon_state = "ai-syndicatmeow" - else if(icontype == "Alien") - icon_state = "ai-alien" - else if(icontype == "Too Deep") - icon_state = "ai-toodeep" - else if(icontype == "Triumvirate") - icon_state = "ai-triumvirate" - else if(icontype == "Triumvirate-M") - icon_state = "ai-triumvirate-malf" - else if(icontype == "Text") - icon_state = "ai-text" - else if(icontype == "Matrix") - icon_state = "ai-matrix" - else if(icontype == "Dorf") - icon_state = "ai-dorf" - else if(icontype == "Bliss") - icon_state = "ai-bliss" - else if(icontype == "Not Malf") - icon_state = "ai-notmalf" - else if(icontype == "Fuzzy") - icon_state = "ai-fuzz" - else if(icontype == "Goon") - icon_state = "ai-goon" - else if(icontype == "Database") - icon_state = "ai-database" - else if(icontype == "Glitchman") - icon_state = "ai-glitchman" - else if(icontype == "Murica") - icon_state = "ai-murica" - else if(icontype == "Nanotrasen") - icon_state = "ai-nanotrasen" - else if(icontype == "Gentoo") - icon_state = "ai-gentoo" - else if(icontype == "Angel") - icon_state = "ai-angel" - //else + +/mob/living/silicon/ai/verb/pick_icon() + set category = "AI Commands" + set name = "Set AI Core Display" + if(stat || aiRestorePowerRoutine) + return + + //if(icon_state == initial(icon_state)) + var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", "Monochrome", "Blue", "Inverted", "Firewall", "Green", "Red", "Static", "Red October", "House", "Heartline", "Hades", "Helios", "President", "Syndicat Meow", "Alien", "Too Deep", "Triumvirate", "Triumvirate-M", "Text", "Matrix", "Dorf", "Bliss", "Not Malf", "Fuzzy", "Goon", "Database", "Glitchman", "Murica", "Nanotrasen", "Gentoo", "Angel") + if(icontype == "Clown") + icon_state = "ai-clown2" + else if(icontype == "Monochrome") + icon_state = "ai-mono" + else if(icontype == "Blue") + icon_state = "ai" + else if(icontype == "Inverted") + icon_state = "ai-u" + else if(icontype == "Firewall") + icon_state = "ai-magma" + else if(icontype == "Green") + icon_state = "ai-wierd" + else if(icontype == "Red") + icon_state = "ai-malf" + else if(icontype == "Static") + icon_state = "ai-static" + else if(icontype == "Red October") + icon_state = "ai-redoctober" + else if(icontype == "House") + icon_state = "ai-house" + else if(icontype == "Heartline") + icon_state = "ai-heartline" + else if(icontype == "Hades") + icon_state = "ai-hades" + else if(icontype == "Helios") + icon_state = "ai-helios" + else if(icontype == "President") + icon_state = "ai-pres" + else if(icontype == "Syndicat Meow") + icon_state = "ai-syndicatmeow" + else if(icontype == "Alien") + icon_state = "ai-alien" + else if(icontype == "Too Deep") + icon_state = "ai-toodeep" + else if(icontype == "Triumvirate") + icon_state = "ai-triumvirate" + else if(icontype == "Triumvirate-M") + icon_state = "ai-triumvirate-malf" + else if(icontype == "Text") + icon_state = "ai-text" + else if(icontype == "Matrix") + icon_state = "ai-matrix" + else if(icontype == "Dorf") + icon_state = "ai-dorf" + else if(icontype == "Bliss") + icon_state = "ai-bliss" + else if(icontype == "Not Malf") + icon_state = "ai-notmalf" + else if(icontype == "Fuzzy") + icon_state = "ai-fuzz" + else if(icontype == "Goon") + icon_state = "ai-goon" + else if(icontype == "Database") + icon_state = "ai-database" + else if(icontype == "Glitchman") + icon_state = "ai-glitchman" + else if(icontype == "Murica") + icon_state = "ai-murica" + else if(icontype == "Nanotrasen") + icon_state = "ai-nanotrasen" + else if(icontype == "Gentoo") + icon_state = "ai-gentoo" + else if(icontype == "Angel") + icon_state = "ai-angel" + //else //to_chat(usr, "You can only change your display once!") - //return - -/mob/living/silicon/ai/Stat() - ..() - if(statpanel("Status")) - if(!stat) - stat(null, text("System integrity: [(health+100)/2]%")) - stat(null, text("Connected cyborgs: [connected_robots.len]")) - var/area/borg_area - for(var/mob/living/silicon/robot/R in connected_robots) - borg_area = get_area(R) - var/robot_status = "Nominal" - if(R.shell) - robot_status = "AI SHELL" - else if(R.stat || !R.client) - robot_status = "OFFLINE" - else if(!R.cell || R.cell.charge <= 0) - robot_status = "DEPOWERED" - //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! - stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ - Module: [R.designation] | Loc: [borg_area.name] | Status: [robot_status]")) - stat(null, text("AI shell beacons detected: [LAZYLEN(GLOB.available_ai_shells)]")) //Count of total AI shells - else - stat(null, text("Systems nonfunctional")) - -/mob/living/silicon/ai/proc/ai_alerts() - var/dat = "Current Station Alerts\n" - dat += "Close

    " - for (var/cat in alarms) - dat += text("[]
    \n", cat) - var/list/L = alarms[cat] - if (L.len) - for (var/alarm in L) - var/list/alm = L[alarm] - var/area/A = alm[1] - var/C = alm[2] - var/list/sources = alm[3] - dat += "" - if (C && istype(C, /list)) - var/dat2 = "" - for (var/obj/machinery/camera/I in C) - dat2 += text("[][]", (dat2=="") ? "" : " | ", src, I, I.c_tag) - dat += text("-- [] ([])", A.name, (dat2!="") ? dat2 : "No Camera") - else if (C && istype(C, /obj/machinery/camera)) - var/obj/machinery/camera/Ctmp = C - dat += text("-- [] ([])", A.name, src, C, Ctmp.c_tag) - else - dat += text("-- [] (No Camera)", A.name) - if (sources.len > 1) - dat += text("- [] sources", sources.len) - dat += "
    \n" - else - dat += "-- All Systems Nominal
    \n" - dat += "
    \n" - - viewalerts = 1 - src << browse(dat, "window=aialerts&can_close=0") - -/mob/living/silicon/ai/proc/ai_roster() - var/dat = "Crew RosterCrew Roster:

    " - - dat += GLOB.data_core.get_manifest() - dat += "" - - src << browse(dat, "window=airoster") - onclose(src, "airoster") - -/mob/living/silicon/ai/proc/ai_call_shuttle() - if(stat == DEAD) - return //won't work if dead - if(isAI(usr)) - var/mob/living/silicon/ai/AI = src - if(AI.control_disabled) - to_chat(usr, "Wireless control is disabled!") - return - - var/reason = input(src, "What is the nature of your emergency? ([CALL_SHUTTLE_REASON_LENGTH] characters required.)", "Confirm Shuttle Call") as null|text - - if(trim(reason)) - SSshuttle.requestEvac(src, reason) - - // hack to display shuttle timer - if(!EMERGENCY_IDLE_OR_RECALLED) - var/obj/machinery/computer/communications/C = locate() in GLOB.machines - if(C) - C.post_status("shuttle") - -/mob/living/silicon/ai/cancel_camera() - view_core() - -/mob/living/silicon/ai/verb/toggle_anchor() - set category = "AI Commands" - set name = "Toggle Floor Bolts" - if(!isturf(loc)) // if their location isn't a turf - return // stop - if(stat == DEAD) - return //won't work if dead - anchored = !anchored // Toggles the anchor - - to_chat(src, "You are now [anchored ? "" : "un"]anchored.") - // the message in the [] will change depending whether or not the AI is anchored - -/mob/living/silicon/ai/update_canmove() //If the AI dies, mobs won't go through it anymore - return 0 - -/mob/living/silicon/ai/proc/ai_cancel_call() - set category = "Malfunction" - if(stat == DEAD) - return //won't work if dead - if(isAI(usr)) - var/mob/living/silicon/ai/AI = src - if(AI.control_disabled) + //return + +/mob/living/silicon/ai/Stat() + ..() + if(statpanel("Status")) + if(!stat) + stat(null, text("System integrity: [(health+100)/2]%")) + stat(null, text("Connected cyborgs: [connected_robots.len]")) + var/area/borg_area + for(var/mob/living/silicon/robot/R in connected_robots) + borg_area = get_area(R) + var/robot_status = "Nominal" + if(R.shell) + robot_status = "AI SHELL" + else if(R.stat || !R.client) + robot_status = "OFFLINE" + else if(!R.cell || R.cell.charge <= 0) + robot_status = "DEPOWERED" + //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! + stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ + Module: [R.designation] | Loc: [borg_area.name] | Status: [robot_status]")) + stat(null, text("AI shell beacons detected: [LAZYLEN(GLOB.available_ai_shells)]")) //Count of total AI shells + else + stat(null, text("Systems nonfunctional")) + +/mob/living/silicon/ai/proc/ai_alerts() + var/dat = "Current Station Alerts\n" + dat += "Close

    " + for (var/cat in alarms) + dat += text("[]
    \n", cat) + var/list/L = alarms[cat] + if (L.len) + for (var/alarm in L) + var/list/alm = L[alarm] + var/area/A = alm[1] + var/C = alm[2] + var/list/sources = alm[3] + dat += "" + if (C && istype(C, /list)) + var/dat2 = "" + for (var/obj/machinery/camera/I in C) + dat2 += text("[][]", (dat2=="") ? "" : " | ", src, I, I.c_tag) + dat += text("-- [] ([])", A.name, (dat2!="") ? dat2 : "No Camera") + else if (C && istype(C, /obj/machinery/camera)) + var/obj/machinery/camera/Ctmp = C + dat += text("-- [] ([])", A.name, src, C, Ctmp.c_tag) + else + dat += text("-- [] (No Camera)", A.name) + if (sources.len > 1) + dat += text("- [] sources", sources.len) + dat += "
    \n" + else + dat += "-- All Systems Nominal
    \n" + dat += "
    \n" + + viewalerts = 1 + src << browse(dat, "window=aialerts&can_close=0") + +/mob/living/silicon/ai/proc/ai_roster() + var/dat = "Crew RosterCrew Roster:

    " + + dat += GLOB.data_core.get_manifest() + dat += "" + + src << browse(dat, "window=airoster") + onclose(src, "airoster") + +/mob/living/silicon/ai/proc/ai_call_shuttle() + if(stat == DEAD) + return //won't work if dead + if(isAI(usr)) + var/mob/living/silicon/ai/AI = src + if(AI.control_disabled) + to_chat(usr, "Wireless control is disabled!") + return + + var/reason = input(src, "What is the nature of your emergency? ([CALL_SHUTTLE_REASON_LENGTH] characters required.)", "Confirm Shuttle Call") as null|text + + if(trim(reason)) + SSshuttle.requestEvac(src, reason) + + // hack to display shuttle timer + if(!EMERGENCY_IDLE_OR_RECALLED) + var/obj/machinery/computer/communications/C = locate() in GLOB.machines + if(C) + C.post_status("shuttle") + +/mob/living/silicon/ai/cancel_camera() + view_core() + +/mob/living/silicon/ai/verb/toggle_anchor() + set category = "AI Commands" + set name = "Toggle Floor Bolts" + if(!isturf(loc)) // if their location isn't a turf + return // stop + if(stat == DEAD) + return //won't work if dead + anchored = !anchored // Toggles the anchor + + to_chat(src, "You are now [anchored ? "" : "un"]anchored.") + // the message in the [] will change depending whether or not the AI is anchored + +/mob/living/silicon/ai/update_canmove() //If the AI dies, mobs won't go through it anymore + return 0 + +/mob/living/silicon/ai/proc/ai_cancel_call() + set category = "Malfunction" + if(stat == DEAD) + return //won't work if dead + if(isAI(usr)) + var/mob/living/silicon/ai/AI = src + if(AI.control_disabled) to_chat(src, "Wireless control is disabled!") - return - SSshuttle.cancelEvac(src) - return - -/mob/living/silicon/ai/restrained(ignore_grab) - . = 0 - -/mob/living/silicon/ai/Topic(href, href_list) - if(usr != src) - return - ..() - if (href_list["mach_close"]) - if (href_list["mach_close"] == "aialerts") - viewalerts = 0 - var/t1 = text("window=[]", href_list["mach_close"]) - unset_machine() - src << browse(null, t1) - if (href_list["switchcamera"]) - switchCamera(locate(href_list["switchcamera"])) in GLOB.cameranet.cameras - if (href_list["showalerts"]) - ai_alerts() -#ifdef AI_VOX - if(href_list["say_word"]) - play_vox_word(href_list["say_word"], null, src) - return -#endif - if(href_list["show_paper"]) - if(last_paper_seen) - src << browse(last_paper_seen, "window=show_paper") - //Carn: holopad requests - if(href_list["jumptoholopad"]) - var/obj/machinery/holopad/H = locate(href_list["jumptoholopad"]) - if(stat == CONSCIOUS) - if(H) - H.attack_ai(src) //may as well recycle - else - to_chat(src, "Unable to locate the holopad.") - if(href_list["track"]) - var/string = href_list["track"] - trackable_mobs() - var/list/trackeable = list() - trackeable += track.humans + track.others - var/list/target = list() - for(var/I in trackeable) - var/mob/M = trackeable[I] - if(M.name == string) - target += M - if(name == string) - target += src - if(target.len) - ai_actual_track(pick(target)) - else - to_chat(src, "Target is not on or near any active cameras on the station.") - return - if(href_list["callbot"]) //Command a bot to move to a selected location. - if(call_bot_cooldown > world.time) - to_chat(src, "Error: Your last call bot command is still processing, please wait for the bot to finish calculating a route.") - return - Bot = locate(href_list["callbot"]) in GLOB.living_mob_list - if(!Bot || Bot.remote_disabled || src.control_disabled) - return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off. - waypoint_mode = 1 - to_chat(src, "Set your waypoint by clicking on a valid location free of obstructions.") - return - if(href_list["interface"]) //Remotely connect to a bot! - Bot = locate(href_list["interface"]) in GLOB.living_mob_list - if(!Bot || Bot.remote_disabled || src.control_disabled) - return - Bot.attack_ai(src) - if(href_list["botrefresh"]) //Refreshes the bot control panel. - botcall() - return - - if (href_list["ai_take_control"]) //Mech domination - var/obj/mecha/M = locate(href_list["ai_take_control"]) - if(controlled_mech) - to_chat(src, "You are already loaded into an onboard computer!") - return - if(!GLOB.cameranet.checkCameraVis(M)) - to_chat(src, "Exosuit is no longer near active cameras.") - return - if(lacks_power()) - to_chat(src, "You're depowered!") - return - if(!isturf(loc)) - to_chat(src, "You aren't in your core!") - return - if(M) - M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself. - - -/mob/living/silicon/ai/proc/switchCamera(obj/machinery/camera/C) - - if(!tracking) - cameraFollow = null - - if (!C || stat == DEAD) //C.can_use()) - return 0 - - if(!src.eyeobj) - view_core() - return - // ok, we're alive, camera is good and in our network... - eyeobj.setLoc(get_turf(C)) - //machine = src - - return 1 - -/mob/living/silicon/ai/proc/botcall() - set category = "AI Commands" - set name = "Access Robot Control" - set desc = "Wirelessly control various automatic robots." - if(stat == 2) - return //won't work if dead - - if(control_disabled) - to_chat(src, "Wireless communication is disabled.") - return - var/turf/ai_current_turf = get_turf(src) - var/ai_Zlevel = ai_current_turf.z - var/d - var/area/bot_area - d += "Query network status
    " - d += "" - - for (Bot in GLOB.living_mob_list) - if(Bot.z == ai_Zlevel && !Bot.remote_disabled) //Only non-emagged bots on the same Z-level are detected! - bot_area = get_area(Bot) - var/bot_mode = Bot.get_mode() - d += "" - //If the bot is on, it will display the bot's current mode status. If the bot is not mode, it will just report "Idle". "Inactive if it is not on at all. - d += "" - d += "" - d += "" - d += "" - d += "" - d = format_text(d) - - var/datum/browser/popup = new(src, "botcall", "Remote Robot Control", 700, 400) - popup.set_content(d) - popup.open() - -/mob/living/silicon/ai/proc/set_waypoint(atom/A) - var/turf/turf_check = get_turf(A) - //The target must be in view of a camera or near the core. - if(turf_check in range(get_turf(src))) - call_bot(turf_check) - else if(GLOB.cameranet && GLOB.cameranet.checkTurfVis(turf_check)) - call_bot(turf_check) - else - to_chat(src, "Selected location is not visible.") - -/mob/living/silicon/ai/proc/call_bot(turf/waypoint) - - if(!Bot) - return - - if(Bot.calling_ai && Bot.calling_ai != src) //Prevents an override if another AI is controlling this bot. - to_chat(src, "Interface error. Unit is already in use.") - return - to_chat(src, "Sending command to bot...") - call_bot_cooldown = world.time + CALL_BOT_COOLDOWN - Bot.call_bot(src, waypoint) - call_bot_cooldown = 0 - - -/mob/living/silicon/ai/triggerAlarm(class, area/A, O, obj/alarmsource) - if(alarmsource.z != z) - return - if (stat == 2) - return 1 - var/list/L = alarms[class] - for (var/I in L) - if (I == A.name) - var/list/alarm = L[I] - var/list/sources = alarm[3] - if (!(alarmsource in sources)) - sources += alarmsource - return 1 - var/obj/machinery/camera/C = null - var/list/CL = null - if (O && istype(O, /list)) - CL = O - if (CL.len == 1) - C = CL[1] - else if (O && istype(O, /obj/machinery/camera)) - C = O - L[A.name] = list(A, (C) ? C : O, list(alarmsource)) - if (O) - if (C && C.can_use()) - queueAlarm("--- [class] alarm detected in [A.name]! ([C.c_tag])", class) - else if (CL && CL.len) - var/foo = 0 - var/dat2 = "" - for (var/obj/machinery/camera/I in CL) - dat2 += text("[][]", (!foo) ? "" : " | ", src, I, I.c_tag) //I'm not fixing this shit... - foo = 1 - queueAlarm(text ("--- [] alarm detected in []! ([])", class, A.name, dat2), class) - else - queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class) - else - queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class) - if (viewalerts) ai_alerts() - return 1 - -/mob/living/silicon/ai/cancelAlarm(class, area/A, obj/origin) - var/list/L = alarms[class] - var/cleared = 0 - for (var/I in L) - if (I == A.name) - var/list/alarm = L[I] - var/list/srcs = alarm[3] - if (origin in srcs) - srcs -= origin - if (srcs.len == 0) - cleared = 1 - L -= I - if (cleared) - queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) - if (viewalerts) ai_alerts() - return !cleared - -//Replaces /mob/living/silicon/ai/verb/change_network() in ai.dm & camera.dm -//Adds in /mob/living/silicon/ai/proc/ai_network_change() instead -//Addition by Mord_Sith to define AI's network change ability -/mob/living/silicon/ai/proc/ai_network_change() - set category = "AI Commands" - set name = "Jump To Network" - unset_machine() - cameraFollow = null - var/cameralist[0] - - if(stat == 2) - return //won't work if dead - - var/mob/living/silicon/ai/U = usr - - for (var/obj/machinery/camera/C in GLOB.cameranet.cameras) - if(!C.can_use()) - continue - - var/list/tempnetwork = C.network - tempnetwork.Remove("CREED", "thunder", "RD", "toxins", "Prison") - if(tempnetwork.len) - for(var/i in C.network) - cameralist[i] = i - var/old_network = network - network = input(U, "Which network would you like to view?") as null|anything in cameralist - - if(!U.eyeobj) - U.view_core() - return - - if(isnull(network)) - network = old_network // If nothing is selected - else - for(var/obj/machinery/camera/C in GLOB.cameranet.cameras) - if(!C.can_use()) - continue - if(network in C.network) - U.eyeobj.setLoc(get_turf(C)) - break - to_chat(src, "Switched to [network] camera network.") -//End of code by Mord_Sith - - -/mob/living/silicon/ai/proc/choose_modules() - set category = "Malfunction" - set name = "Choose Module" - - malf_picker.use(src) - -/mob/living/silicon/ai/proc/ai_statuschange() - set category = "AI Commands" - set name = "AI Status" - - if(stat == 2) - return //won't work if dead - var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer", "Dorfy", "Blue Glow", "Red Glow") - var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions + return + SSshuttle.cancelEvac(src) + return + +/mob/living/silicon/ai/restrained(ignore_grab) + . = 0 + +/mob/living/silicon/ai/Topic(href, href_list) + if(usr != src) + return + ..() + if (href_list["mach_close"]) + if (href_list["mach_close"] == "aialerts") + viewalerts = 0 + var/t1 = text("window=[]", href_list["mach_close"]) + unset_machine() + src << browse(null, t1) + if (href_list["switchcamera"]) + switchCamera(locate(href_list["switchcamera"])) in GLOB.cameranet.cameras + if (href_list["showalerts"]) + ai_alerts() +#ifdef AI_VOX + if(href_list["say_word"]) + play_vox_word(href_list["say_word"], null, src) + return +#endif + if(href_list["show_paper"]) + if(last_paper_seen) + src << browse(last_paper_seen, "window=show_paper") + //Carn: holopad requests + if(href_list["jumptoholopad"]) + var/obj/machinery/holopad/H = locate(href_list["jumptoholopad"]) + if(stat == CONSCIOUS) + if(H) + H.attack_ai(src) //may as well recycle + else + to_chat(src, "Unable to locate the holopad.") + if(href_list["track"]) + var/string = href_list["track"] + trackable_mobs() + var/list/trackeable = list() + trackeable += track.humans + track.others + var/list/target = list() + for(var/I in trackeable) + var/mob/M = trackeable[I] + if(M.name == string) + target += M + if(name == string) + target += src + if(target.len) + ai_actual_track(pick(target)) + else + to_chat(src, "Target is not on or near any active cameras on the station.") + return + if(href_list["callbot"]) //Command a bot to move to a selected location. + if(call_bot_cooldown > world.time) + to_chat(src, "Error: Your last call bot command is still processing, please wait for the bot to finish calculating a route.") + return + Bot = locate(href_list["callbot"]) in GLOB.living_mob_list + if(!Bot || Bot.remote_disabled || src.control_disabled) + return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off. + waypoint_mode = 1 + to_chat(src, "Set your waypoint by clicking on a valid location free of obstructions.") + return + if(href_list["interface"]) //Remotely connect to a bot! + Bot = locate(href_list["interface"]) in GLOB.living_mob_list + if(!Bot || Bot.remote_disabled || src.control_disabled) + return + Bot.attack_ai(src) + if(href_list["botrefresh"]) //Refreshes the bot control panel. + botcall() + return + + if (href_list["ai_take_control"]) //Mech domination + var/obj/mecha/M = locate(href_list["ai_take_control"]) + if(controlled_mech) + to_chat(src, "You are already loaded into an onboard computer!") + return + if(!GLOB.cameranet.checkCameraVis(M)) + to_chat(src, "Exosuit is no longer near active cameras.") + return + if(lacks_power()) + to_chat(src, "You're depowered!") + return + if(!isturf(loc)) + to_chat(src, "You aren't in your core!") + return + if(M) + M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself. + + +/mob/living/silicon/ai/proc/switchCamera(obj/machinery/camera/C) + + if(!tracking) + cameraFollow = null + + if (!C || stat == DEAD) //C.can_use()) + return 0 + + if(!src.eyeobj) + view_core() + return + // ok, we're alive, camera is good and in our network... + eyeobj.setLoc(get_turf(C)) + //machine = src + + return 1 + +/mob/living/silicon/ai/proc/botcall() + set category = "AI Commands" + set name = "Access Robot Control" + set desc = "Wirelessly control various automatic robots." + if(stat == 2) + return //won't work if dead + + if(control_disabled) + to_chat(src, "Wireless communication is disabled.") + return + var/turf/ai_current_turf = get_turf(src) + var/ai_Zlevel = ai_current_turf.z + var/d + var/area/bot_area + d += "Query network status
    " + d += "

    Name

    Status

    Location

    Control

    [Bot.hacked ? "(!)" : ""] [Bot.name] ([Bot.model])[bot_mode][bot_area.name]InterfaceCall
    " + + for (Bot in GLOB.living_mob_list) + if(Bot.z == ai_Zlevel && !Bot.remote_disabled) //Only non-emagged bots on the same Z-level are detected! + bot_area = get_area(Bot) + var/bot_mode = Bot.get_mode() + d += "" + //If the bot is on, it will display the bot's current mode status. If the bot is not mode, it will just report "Idle". "Inactive if it is not on at all. + d += "" + d += "" + d += "" + d += "" + d += "" + d = format_text(d) + + var/datum/browser/popup = new(src, "botcall", "Remote Robot Control", 700, 400) + popup.set_content(d) + popup.open() + +/mob/living/silicon/ai/proc/set_waypoint(atom/A) + var/turf/turf_check = get_turf(A) + //The target must be in view of a camera or near the core. + if(turf_check in range(get_turf(src))) + call_bot(turf_check) + else if(GLOB.cameranet && GLOB.cameranet.checkTurfVis(turf_check)) + call_bot(turf_check) + else + to_chat(src, "Selected location is not visible.") + +/mob/living/silicon/ai/proc/call_bot(turf/waypoint) + + if(!Bot) + return + + if(Bot.calling_ai && Bot.calling_ai != src) //Prevents an override if another AI is controlling this bot. + to_chat(src, "Interface error. Unit is already in use.") + return + to_chat(src, "Sending command to bot...") + call_bot_cooldown = world.time + CALL_BOT_COOLDOWN + Bot.call_bot(src, waypoint) + call_bot_cooldown = 0 + + +/mob/living/silicon/ai/triggerAlarm(class, area/A, O, obj/alarmsource) + if(alarmsource.z != z) + return + if (stat == 2) + return 1 + var/list/L = alarms[class] + for (var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/sources = alarm[3] + if (!(alarmsource in sources)) + sources += alarmsource + return 1 + var/obj/machinery/camera/C = null + var/list/CL = null + if (O && istype(O, /list)) + CL = O + if (CL.len == 1) + C = CL[1] + else if (O && istype(O, /obj/machinery/camera)) + C = O + L[A.name] = list(A, (C) ? C : O, list(alarmsource)) + if (O) + if (C && C.can_use()) + queueAlarm("--- [class] alarm detected in [A.name]! ([C.c_tag])", class) + else if (CL && CL.len) + var/foo = 0 + var/dat2 = "" + for (var/obj/machinery/camera/I in CL) + dat2 += text("[][]", (!foo) ? "" : " | ", src, I, I.c_tag) //I'm not fixing this shit... + foo = 1 + queueAlarm(text ("--- [] alarm detected in []! ([])", class, A.name, dat2), class) + else + queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class) + else + queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class) + if (viewalerts) ai_alerts() + return 1 + +/mob/living/silicon/ai/cancelAlarm(class, area/A, obj/origin) + var/list/L = alarms[class] + var/cleared = 0 + for (var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/srcs = alarm[3] + if (origin in srcs) + srcs -= origin + if (srcs.len == 0) + cleared = 1 + L -= I + if (cleared) + queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) + if (viewalerts) ai_alerts() + return !cleared + +//Replaces /mob/living/silicon/ai/verb/change_network() in ai.dm & camera.dm +//Adds in /mob/living/silicon/ai/proc/ai_network_change() instead +//Addition by Mord_Sith to define AI's network change ability +/mob/living/silicon/ai/proc/ai_network_change() + set category = "AI Commands" + set name = "Jump To Network" + unset_machine() + cameraFollow = null + var/cameralist[0] + + if(stat == 2) + return //won't work if dead + + var/mob/living/silicon/ai/U = usr + + for (var/obj/machinery/camera/C in GLOB.cameranet.cameras) + if(!C.can_use()) + continue + + var/list/tempnetwork = C.network + tempnetwork.Remove("CREED", "thunder", "RD", "toxins", "Prison") + if(tempnetwork.len) + for(var/i in C.network) + cameralist[i] = i + var/old_network = network + network = input(U, "Which network would you like to view?") as null|anything in cameralist + + if(!U.eyeobj) + U.view_core() + return + + if(isnull(network)) + network = old_network // If nothing is selected + else + for(var/obj/machinery/camera/C in GLOB.cameranet.cameras) + if(!C.can_use()) + continue + if(network in C.network) + U.eyeobj.setLoc(get_turf(C)) + break + to_chat(src, "Switched to [network] camera network.") +//End of code by Mord_Sith + + +/mob/living/silicon/ai/proc/choose_modules() + set category = "Malfunction" + set name = "Choose Module" + + malf_picker.use(src) + +/mob/living/silicon/ai/proc/ai_statuschange() + set category = "AI Commands" + set name = "AI Status" + + if(stat == 2) + return //won't work if dead + var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer", "Dorfy", "Blue Glow", "Red Glow") + var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions for (var/M in GLOB.ai_status_displays) //change status of displays - if(istype(M, /obj/machinery/ai_status_display)) - var/obj/machinery/ai_status_display/AISD = M - AISD.emotion = emote - //if Friend Computer, change ALL displays - else if(istype(M, /obj/machinery/status_display)) - var/obj/machinery/status_display/SD = M - if(emote=="Friend Computer") - SD.friendc = 1 - else - SD.friendc = 0 - return - -//I am the icon meister. Bow fefore me. //>fefore -/mob/living/silicon/ai/proc/ai_hologram_change() - set name = "Change Hologram" - set desc = "Change the default hologram available to AI to something else." - set category = "AI Commands" - - if(stat == 2) - return //won't work if dead - var/input - switch(alert("Would you like to select a hologram based on a crew member, an animal, or switch to a unique avatar?",,"Crew Member","Unique","Animal")) - if("Crew Member") - var/list/personnel_list = list() - - for(var/datum/data/record/t in GLOB.data_core.locked)//Look in data core locked. - personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["image"]//Pull names, rank, and image. - - if(personnel_list.len) - input = input("Select a crew member:") as null|anything in personnel_list - var/icon/character_icon = personnel_list[input] - if(character_icon) - qdel(holo_icon)//Clear old icon so we're not storing it in memory. - holo_icon = getHologramIcon(icon(character_icon)) - else - alert("No suitable records found. Aborting.") - - if("Animal") - var/list/icon_list = list( - "bear" = 'icons/mob/animal.dmi', - "carp" = 'icons/mob/animal.dmi', - "chicken" = 'icons/mob/animal.dmi', - "corgi" = 'icons/mob/pets.dmi', - "cow" = 'icons/mob/animal.dmi', - "crab" = 'icons/mob/animal.dmi', - "fox" = 'icons/mob/pets.dmi', - "goat" = 'icons/mob/animal.dmi', - "cat" = 'icons/mob/pets.dmi', - "cat2" = 'icons/mob/pets.dmi', - "poly" = 'icons/mob/animal.dmi', - "pug" = 'icons/mob/pets.dmi', - "spider" = 'icons/mob/animal.dmi' - ) - - input = input("Please select a hologram:") as null|anything in icon_list - if(input) - qdel(holo_icon) - switch(input) - if("poly") - holo_icon = getHologramIcon(icon(icon_list[input],"parrot_fly")) - if("chicken") - holo_icon = getHologramIcon(icon(icon_list[input],"chicken_brown")) - if("spider") - holo_icon = getHologramIcon(icon(icon_list[input],"guard")) - else - holo_icon = getHologramIcon(icon(icon_list[input], input)) - else - var/list/icon_list = list( - "default" = 'icons/mob/AI.dmi', - "floating face" = 'icons/mob/AI.dmi', - "xeno queen" = 'icons/mob/alien.dmi', - "horror" = 'icons/mob/AI.dmi', - "acorn" = 'icons/mob/AI.dmi' - ) - - input = input("Please select a hologram:") as null|anything in icon_list - if(input) - qdel(holo_icon) - switch(input) - if("xeno queen") - holo_icon = getHologramIcon(icon(icon_list[input],"alienq")) - else - holo_icon = getHologramIcon(icon(icon_list[input], input)) - return - -/mob/living/silicon/ai/proc/corereturn() - set category = "Malfunction" - set name = "Return to Main Core" - - var/obj/machinery/power/apc/apc = src.loc - if(!istype(apc)) - to_chat(src, "You are already in your Main Core.") - return - apc.malfvacate() - -/mob/living/silicon/ai/proc/toggle_camera_light() - if(stat != CONSCIOUS) - return - - camera_light_on = !camera_light_on - - if (!camera_light_on) - to_chat(src, "Camera lights deactivated.") - - for (var/obj/machinery/camera/C in lit_cameras) - C.set_light(0) - lit_cameras = list() - - return - - light_cameras() - - to_chat(src, "Camera lights activated.") - -//AI_CAMERA_LUMINOSITY - -/mob/living/silicon/ai/proc/light_cameras() - var/list/obj/machinery/camera/add = list() - var/list/obj/machinery/camera/remove = list() - var/list/obj/machinery/camera/visible = list() - for (var/datum/camerachunk/CC in eyeobj.visibleCameraChunks) - for (var/obj/machinery/camera/C in CC.cameras) - if (!C.can_use() || get_dist(C, eyeobj) > 7) - continue - visible |= C - - add = visible - lit_cameras - remove = lit_cameras - visible - - for (var/obj/machinery/camera/C in remove) - lit_cameras -= C //Removed from list before turning off the light so that it doesn't check the AI looking away. - C.Togglelight(0) - for (var/obj/machinery/camera/C in add) - C.Togglelight(1) - lit_cameras |= C - -/mob/living/silicon/ai/proc/control_integrated_radio() - set name = "Transceiver Settings" - set desc = "Allows you to change settings of your radio." - set category = "AI Commands" - - if(stat == 2) - return //won't work if dead - - to_chat(src, "Accessing Subspace Transceiver control...") - if (radio) - radio.interact(src) - -/mob/living/silicon/ai/proc/set_syndie_radio() - if(radio) - radio.make_syndie() - -/mob/living/silicon/ai/proc/set_automatic_say_channel() - set name = "Set Auto Announce Mode" - set desc = "Modify the default radio setting for your automatic announcements." - set category = "AI Commands" - - if(stat == 2) - return //won't work if dead - set_autosay() - -/mob/living/silicon/ai/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) - if(!..()) - return - if(interaction == AI_TRANS_TO_CARD)//The only possible interaction. Upload AI mob to a card. - if(!can_be_carded) - to_chat(user, "Transfer failed.") - return - disconnect_shell() //If the AI is controlling a borg, force the player back to core! - if(!mind) - to_chat(user, "No intelligence patterns detected." ) - return - ShutOffDoomsdayDevice() - new /obj/structure/AIcore/deactivated(loc)//Spawns a deactivated terminal at AI location. - ai_restore_power()//So the AI initially has power. - control_disabled = 1//Can't control things remotely if you're stuck in a card! - radio_enabled = 0 //No talking on the built-in radio for you either! - forceMove(card) - card.AI = src - to_chat(src, "You have been downloaded to a mobile storage device. Remote device connection severed.") - to_chat(user, "Transfer successful: [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.") - -/mob/living/silicon/ai/can_buckle() - return 0 - -/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close = 0) - if(stat) - return - if(be_close && !in_range(M, src)) - return - //stop AIs from leaving windows open and using then after they lose vision - //apc_override is needed here because AIs use their own APC when powerless - //get_turf_pixel() is because APCs in maint aren't actually in view of the inner camera - if(M && GLOB.cameranet && !GLOB.cameranet.checkTurfVis(get_turf_pixel(M)) && !apc_override) - return - return 1 - -/mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) - raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) + if(istype(M, /obj/machinery/ai_status_display)) + var/obj/machinery/ai_status_display/AISD = M + AISD.emotion = emote + //if Friend Computer, change ALL displays + else if(istype(M, /obj/machinery/status_display)) + var/obj/machinery/status_display/SD = M + if(emote=="Friend Computer") + SD.friendc = 1 + else + SD.friendc = 0 + return + +//I am the icon meister. Bow fefore me. //>fefore +/mob/living/silicon/ai/proc/ai_hologram_change() + set name = "Change Hologram" + set desc = "Change the default hologram available to AI to something else." + set category = "AI Commands" + + if(stat == 2) + return //won't work if dead + var/input + switch(alert("Would you like to select a hologram based on a crew member, an animal, or switch to a unique avatar?",,"Crew Member","Unique","Animal")) + if("Crew Member") + var/list/personnel_list = list() + + for(var/datum/data/record/t in GLOB.data_core.locked)//Look in data core locked. + personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["image"]//Pull names, rank, and image. + + if(personnel_list.len) + input = input("Select a crew member:") as null|anything in personnel_list + var/icon/character_icon = personnel_list[input] + if(character_icon) + qdel(holo_icon)//Clear old icon so we're not storing it in memory. + holo_icon = getHologramIcon(icon(character_icon)) + else + alert("No suitable records found. Aborting.") + + if("Animal") + var/list/icon_list = list( + "bear" = 'icons/mob/animal.dmi', + "carp" = 'icons/mob/animal.dmi', + "chicken" = 'icons/mob/animal.dmi', + "corgi" = 'icons/mob/pets.dmi', + "cow" = 'icons/mob/animal.dmi', + "crab" = 'icons/mob/animal.dmi', + "fox" = 'icons/mob/pets.dmi', + "goat" = 'icons/mob/animal.dmi', + "cat" = 'icons/mob/pets.dmi', + "cat2" = 'icons/mob/pets.dmi', + "poly" = 'icons/mob/animal.dmi', + "pug" = 'icons/mob/pets.dmi', + "spider" = 'icons/mob/animal.dmi' + ) + + input = input("Please select a hologram:") as null|anything in icon_list + if(input) + qdel(holo_icon) + switch(input) + if("poly") + holo_icon = getHologramIcon(icon(icon_list[input],"parrot_fly")) + if("chicken") + holo_icon = getHologramIcon(icon(icon_list[input],"chicken_brown")) + if("spider") + holo_icon = getHologramIcon(icon(icon_list[input],"guard")) + else + holo_icon = getHologramIcon(icon(icon_list[input], input)) + else + var/list/icon_list = list( + "default" = 'icons/mob/ai.dmi', + "floating face" = 'icons/mob/ai.dmi', + "xeno queen" = 'icons/mob/alien.dmi', + "horror" = 'icons/mob/ai.dmi' + ) + + input = input("Please select a hologram:") as null|anything in icon_list + if(input) + qdel(holo_icon) + switch(input) + if("xeno queen") + holo_icon = getHologramIcon(icon(icon_list[input],"alienq")) + else + holo_icon = getHologramIcon(icon(icon_list[input], input)) + return + +/mob/living/silicon/ai/proc/corereturn() + set category = "Malfunction" + set name = "Return to Main Core" + + var/obj/machinery/power/apc/apc = src.loc + if(!istype(apc)) + to_chat(src, "You are already in your Main Core.") + return + apc.malfvacate() + +/mob/living/silicon/ai/proc/toggle_camera_light() + if(stat != CONSCIOUS) + return + + camera_light_on = !camera_light_on + + if (!camera_light_on) + to_chat(src, "Camera lights deactivated.") + + for (var/obj/machinery/camera/C in lit_cameras) + C.set_light(0) + lit_cameras = list() + + return + + light_cameras() + + to_chat(src, "Camera lights activated.") + +//AI_CAMERA_LUMINOSITY + +/mob/living/silicon/ai/proc/light_cameras() + var/list/obj/machinery/camera/add = list() + var/list/obj/machinery/camera/remove = list() + var/list/obj/machinery/camera/visible = list() + for (var/datum/camerachunk/CC in eyeobj.visibleCameraChunks) + for (var/obj/machinery/camera/C in CC.cameras) + if (!C.can_use() || get_dist(C, eyeobj) > 7) + continue + visible |= C + + add = visible - lit_cameras + remove = lit_cameras - visible + + for (var/obj/machinery/camera/C in remove) + lit_cameras -= C //Removed from list before turning off the light so that it doesn't check the AI looking away. + C.Togglelight(0) + for (var/obj/machinery/camera/C in add) + C.Togglelight(1) + lit_cameras |= C + +/mob/living/silicon/ai/proc/control_integrated_radio() + set name = "Transceiver Settings" + set desc = "Allows you to change settings of your radio." + set category = "AI Commands" + + if(stat == 2) + return //won't work if dead + + to_chat(src, "Accessing Subspace Transceiver control...") + if (radio) + radio.interact(src) + +/mob/living/silicon/ai/proc/set_syndie_radio() + if(radio) + radio.make_syndie() + +/mob/living/silicon/ai/proc/set_automatic_say_channel() + set name = "Set Auto Announce Mode" + set desc = "Modify the default radio setting for your automatic announcements." + set category = "AI Commands" + + if(stat == 2) + return //won't work if dead + set_autosay() + +/mob/living/silicon/ai/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(!..()) + return + if(interaction == AI_TRANS_TO_CARD)//The only possible interaction. Upload AI mob to a card. + if(!can_be_carded) + to_chat(user, "Transfer failed.") + return + disconnect_shell() //If the AI is controlling a borg, force the player back to core! + if(!mind) + to_chat(user, "No intelligence patterns detected." ) + return + ShutOffDoomsdayDevice() + new /obj/structure/AIcore/deactivated(loc)//Spawns a deactivated terminal at AI location. + ai_restore_power()//So the AI initially has power. + control_disabled = 1//Can't control things remotely if you're stuck in a card! + radio_enabled = 0 //No talking on the built-in radio for you either! + forceMove(card) + card.AI = src + to_chat(src, "You have been downloaded to a mobile storage device. Remote device connection severed.") + to_chat(user, "Transfer successful: [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.") + +/mob/living/silicon/ai/can_buckle() + return 0 + +/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close = 0) + if(stat) + return + if(be_close && !in_range(M, src)) + return + //stop AIs from leaving windows open and using then after they lose vision + //apc_override is needed here because AIs use their own APC when powerless + //get_turf_pixel() is because APCs in maint aren't actually in view of the inner camera + if(M && GLOB.cameranet && !GLOB.cameranet.checkTurfVis(get_turf_pixel(M)) && !apc_override) + return + return 1 + +/mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) + raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) var/start = "Relayed Speech: " var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]" var/hrefpart = "" @@ -849,154 +848,154 @@ var/rendered = "[start][hrefpart][namepart] ([jobpart])[raw_message]" - show_message(rendered, 2) - -/mob/living/silicon/ai/fully_replace_character_name(oldname,newname) - ..() - if(oldname != real_name) - if(eyeobj) - eyeobj.name = "[newname] (AI Eye)" - - // Notify Cyborgs - for(var/mob/living/silicon/robot/Slave in connected_robots) - Slave.show_laws() - -/mob/living/silicon/ai/replace_identification_name(oldname,newname) - if(aiPDA) - aiPDA.owner = newname - aiPDA.name = newname + " (" + aiPDA.ownjob + ")" - - -/mob/living/silicon/ai/proc/add_malf_picker() - to_chat(src, "In the top right corner of the screen you will find the Malfunctions tab, where you can purchase various abilities, from upgraded surveillance to station ending doomsday devices.") - to_chat(src, "You are also capable of hacking APCs, which grants you more points to spend on your Malfunction powers. The drawback is that a hacked APC will give you away if spotted by the crew. Hacking an APC takes 60 seconds.") - view_core() //A BYOND bug requires you to be viewing your core before your verbs update - verbs += /mob/living/silicon/ai/proc/choose_modules - malf_picker = new /datum/module_picker - - -/mob/living/silicon/ai/reset_perspective(atom/A) - if(camera_light_on) - light_cameras() - if(istype(A,/obj/machinery/camera)) - current = A - if(client) - if(istype(A, /atom/movable)) - client.perspective = EYE_PERSPECTIVE - client.eye = A - else - if(isturf(loc)) - if(eyeobj) - client.eye = eyeobj - client.perspective = EYE_PERSPECTIVE - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE - else - client.perspective = EYE_PERSPECTIVE - client.eye = loc - update_sight() - if(client.eye != src) - var/atom/AT = client.eye - AT.get_remote_view_fullscreens(src) - else - clear_fullscreen("remote_view", 0) - -/mob/living/silicon/ai/revive(full_heal = 0, admin_revive = 0) - if(..()) //successfully ressuscitated from death - icon_state = "ai" - . = 1 - -/mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc) - malfhack = null - malfhacking = 0 - clear_alert("hackingapc") - - if(!istype(apc) || QDELETED(apc) || apc.stat & BROKEN) - to_chat(src, "Hack aborted. The designated APC no longer exists on the power network.") - playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 1) - else if(apc.aidisabled) - to_chat(src, "Hack aborted. \The [apc] is no longer responding to our systems.") - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 1) - else - malf_picker.processing_time += 10 - - apc.malfai = parent || src - apc.malfhack = TRUE - apc.locked = TRUE - apc.coverlocked = TRUE - - playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1) - to_chat(src, "Hack complete. \The [apc] is now under your exclusive control.") - apc.update_icon() - -/mob/living/silicon/ai/verb/deploy_to_shell(var/mob/living/silicon/robot/target) - set category = "AI Commands" - set name = "Deploy to Shell" - - if(stat || lacks_power() || control_disabled) - to_chat(src, "Wireless networking module is offline.") - return - - var/list/possible = list() - - for(var/borgie in GLOB.available_ai_shells) - var/mob/living/silicon/robot/R = borgie - if(R.shell && !R.deployed && (R.stat != DEAD) && (!R.connected_ai ||(R.connected_ai == src))) - possible += R - - if(!LAZYLEN(possible)) - to_chat(src, "No usable AI shell beacons detected.") - - if(!target || !(target in possible)) //If the AI is looking for a new shell, or its pre-selected shell is no longer valid - target = input(src, "Which body to control?") as null|anything in possible - - if (!target || target.stat == DEAD || target.deployed || !(!target.connected_ai ||(target.connected_ai == src))) - return - - else if(mind) - soullink(/datum/soullink/sharedbody, src, target) - deployed_shell = target - target.deploy_init(src) - mind.transfer_to(target) - diag_hud_set_deployed() - -/datum/action/innate/deploy_shell - name = "Deploy to AI Shell" - desc = "Wirelessly control a specialized cyborg shell." - button_icon_state = "ai_shell" - -/datum/action/innate/deploy_shell/Trigger() - var/mob/living/silicon/ai/AI = owner - if(!AI) - return - AI.deploy_to_shell() - -/datum/action/innate/deploy_last_shell - name = "Reconnect to shell" - desc = "Reconnect to the most recently used AI shell." - button_icon_state = "ai_last_shell" - var/mob/living/silicon/robot/last_used_shell - -/datum/action/innate/deploy_last_shell/Trigger() - if(!owner) - return - if(last_used_shell) - var/mob/living/silicon/ai/AI = owner - AI.deploy_to_shell(last_used_shell) - else - Remove(owner) //If the last shell is blown, destroy it. - -/mob/living/silicon/ai/proc/disconnect_shell() - if(deployed_shell) //Forcibly call back AI in event of things such as damage, EMP or power loss. - to_chat(src, "Your remote connection has been reset!") - deployed_shell.undeploy() - diag_hud_set_deployed() - -/mob/living/silicon/ai/resist() - return - -/mob/living/silicon/ai/spawned/Initialize(mapload, datum/ai_laws/L, mob/target_ai) - if(!target_ai) - target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct - ..() + show_message(rendered, 2) + +/mob/living/silicon/ai/fully_replace_character_name(oldname,newname) + ..() + if(oldname != real_name) + if(eyeobj) + eyeobj.name = "[newname] (AI Eye)" + + // Notify Cyborgs + for(var/mob/living/silicon/robot/Slave in connected_robots) + Slave.show_laws() + +/mob/living/silicon/ai/replace_identification_name(oldname,newname) + if(aiPDA) + aiPDA.owner = newname + aiPDA.name = newname + " (" + aiPDA.ownjob + ")" + + +/mob/living/silicon/ai/proc/add_malf_picker() + to_chat(src, "In the top right corner of the screen you will find the Malfunctions tab, where you can purchase various abilities, from upgraded surveillance to station ending doomsday devices.") + to_chat(src, "You are also capable of hacking APCs, which grants you more points to spend on your Malfunction powers. The drawback is that a hacked APC will give you away if spotted by the crew. Hacking an APC takes 60 seconds.") + view_core() //A BYOND bug requires you to be viewing your core before your verbs update + verbs += /mob/living/silicon/ai/proc/choose_modules + malf_picker = new /datum/module_picker + + +/mob/living/silicon/ai/reset_perspective(atom/A) + if(camera_light_on) + light_cameras() + if(istype(A,/obj/machinery/camera)) + current = A + if(client) + if(ismovableatom(A)) + client.perspective = EYE_PERSPECTIVE + client.eye = A + else + if(isturf(loc)) + if(eyeobj) + client.eye = eyeobj + client.perspective = EYE_PERSPECTIVE + else + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE + else + client.perspective = EYE_PERSPECTIVE + client.eye = loc + update_sight() + if(client.eye != src) + var/atom/AT = client.eye + AT.get_remote_view_fullscreens(src) + else + clear_fullscreen("remote_view", 0) + +/mob/living/silicon/ai/revive(full_heal = 0, admin_revive = 0) + if(..()) //successfully ressuscitated from death + icon_state = "ai" + . = 1 + +/mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc) + malfhack = null + malfhacking = 0 + clear_alert("hackingapc") + + if(!istype(apc) || QDELETED(apc) || apc.stat & BROKEN) + to_chat(src, "Hack aborted. The designated APC no longer exists on the power network.") + playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 1) + else if(apc.aidisabled) + to_chat(src, "Hack aborted. \The [apc] is no longer responding to our systems.") + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 1) + else + malf_picker.processing_time += 10 + + apc.malfai = parent || src + apc.malfhack = TRUE + apc.locked = TRUE + apc.coverlocked = TRUE + + playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1) + to_chat(src, "Hack complete. \The [apc] is now under your exclusive control.") + apc.update_icon() + +/mob/living/silicon/ai/verb/deploy_to_shell(var/mob/living/silicon/robot/target) + set category = "AI Commands" + set name = "Deploy to Shell" + + if(stat || lacks_power() || control_disabled) + to_chat(src, "Wireless networking module is offline.") + return + + var/list/possible = list() + + for(var/borgie in GLOB.available_ai_shells) + var/mob/living/silicon/robot/R = borgie + if(R.shell && !R.deployed && (R.stat != DEAD) && (!R.connected_ai ||(R.connected_ai == src))) + possible += R + + if(!LAZYLEN(possible)) + to_chat(src, "No usable AI shell beacons detected.") + + if(!target || !(target in possible)) //If the AI is looking for a new shell, or its pre-selected shell is no longer valid + target = input(src, "Which body to control?") as null|anything in possible + + if (!target || target.stat == DEAD || target.deployed || !(!target.connected_ai ||(target.connected_ai == src))) + return + + else if(mind) + soullink(/datum/soullink/sharedbody, src, target) + deployed_shell = target + target.deploy_init(src) + mind.transfer_to(target) + diag_hud_set_deployed() + +/datum/action/innate/deploy_shell + name = "Deploy to AI Shell" + desc = "Wirelessly control a specialized cyborg shell." + button_icon_state = "ai_shell" + +/datum/action/innate/deploy_shell/Trigger() + var/mob/living/silicon/ai/AI = owner + if(!AI) + return + AI.deploy_to_shell() + +/datum/action/innate/deploy_last_shell + name = "Reconnect to shell" + desc = "Reconnect to the most recently used AI shell." + button_icon_state = "ai_last_shell" + var/mob/living/silicon/robot/last_used_shell + +/datum/action/innate/deploy_last_shell/Trigger() + if(!owner) + return + if(last_used_shell) + var/mob/living/silicon/ai/AI = owner + AI.deploy_to_shell(last_used_shell) + else + Remove(owner) //If the last shell is blown, destroy it. + +/mob/living/silicon/ai/proc/disconnect_shell() + if(deployed_shell) //Forcibly call back AI in event of things such as damage, EMP or power loss. + to_chat(src, "Your remote connection has been reset!") + deployed_shell.undeploy() + diag_hud_set_deployed() + +/mob/living/silicon/ai/resist() + return + +/mob/living/silicon/ai/spawned/Initialize(mapload, datum/ai_laws/L, mob/target_ai) + if(!target_ai) + target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct + ..() diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index dbed880839..1b6c67ecc6 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -1,45 +1,45 @@ -/mob/living/silicon/ai/death(gibbed) - if(stat == DEAD) - return - - . = ..() - - if("[icon_state]_dead" in icon_states(src.icon,1)) - icon_state = "[icon_state]_dead" - else - icon_state = "ai_dead" - - cameraFollow = null - - anchored = 0 //unbolt floorbolts - update_canmove() - if(eyeobj) - eyeobj.setLoc(get_turf(src)) - - GLOB.shuttle_caller_list -= src - SSshuttle.autoEvac() - - ShutOffDoomsdayDevice() - - if(explosive) - spawn(10) +/mob/living/silicon/ai/death(gibbed) + if(stat == DEAD) + return + + . = ..() + + if("[icon_state]_dead" in icon_states(src.icon,1)) + icon_state = "[icon_state]_dead" + else + icon_state = "ai_dead" + + cameraFollow = null + + anchored = 0 //unbolt floorbolts + update_canmove() + if(eyeobj) + eyeobj.setLoc(get_turf(src)) + + GLOB.shuttle_caller_list -= src + SSshuttle.autoEvac() + + ShutOffDoomsdayDevice() + + if(explosive) + spawn(10) explosion(src.loc, 3, 6, 12, 15) - + for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status - if(src.key) - O.mode = 2 - if(istype(loc, /obj/item/device/aicard)) - loc.icon_state = "aicard-404" - -/mob/living/silicon/ai/proc/ShutOffDoomsdayDevice() - if(nuking) - set_security_level("red") - nuking = FALSE - for(var/obj/item/weapon/pinpointer/P in GLOB.pinpointer_list) - P.switch_mode_to(TRACK_NUKE_DISK) //Party's over, back to work, everyone - P.nuke_warning = FALSE - - if(doomsday_device) - doomsday_device.timing = FALSE - SSshuttle.clearHostileEnvironment(doomsday_device) + if(src.key) + O.mode = 2 + if(istype(loc, /obj/item/device/aicard)) + loc.icon_state = "aicard-404" + +/mob/living/silicon/ai/proc/ShutOffDoomsdayDevice() + if(nuking) + set_security_level("red") + nuking = FALSE + for(var/obj/item/weapon/pinpointer/P in GLOB.pinpointer_list) + P.switch_mode_to(TRACK_NUKE_DISK) //Party's over, back to work, everyone + P.nuke_warning = FALSE + + if(doomsday_device) + doomsday_device.timing = FALSE + SSshuttle.clearHostileEnvironment(doomsday_device) qdel(doomsday_device) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 07774af8df..0613cacb47 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -1,116 +1,116 @@ -// AI EYE -// -// An invisible (no icon) mob that the AI controls to look around the station with. -// It streams chunks as it moves around, which will show it what the AI can and cannot see. - -/mob/camera/aiEye - name = "Inactive AI Eye" - - invisibility = INVISIBILITY_MAXIMUM - var/list/visibleCameraChunks = list() - var/mob/living/silicon/ai/ai = null - var/relay_speech = FALSE +// AI EYE +// +// An invisible (no icon) mob that the AI controls to look around the station with. +// It streams chunks as it moves around, which will show it what the AI can and cannot see. + +/mob/camera/aiEye + name = "Inactive AI Eye" + + invisibility = INVISIBILITY_MAXIMUM + var/list/visibleCameraChunks = list() + var/mob/living/silicon/ai/ai = null + var/relay_speech = FALSE var/use_static = TRUE - -// Use this when setting the aiEye's location. -// It will also stream the chunk that the new loc is in. - -/mob/camera/aiEye/proc/setLoc(T) - - if(ai) - if(!isturf(ai.loc)) - return - T = get_turf(T) - loc = T + +// Use this when setting the aiEye's location. +// It will also stream the chunk that the new loc is in. + +/mob/camera/aiEye/proc/setLoc(T) + + if(ai) + if(!isturf(ai.loc)) + return + T = get_turf(T) + loc = T if(use_static) GLOB.cameranet.visibility(src) - if(ai.client) - ai.client.eye = src - update_parallax_contents() - //Holopad - if(istype(ai.current, /obj/machinery/holopad)) - var/obj/machinery/holopad/H = ai.current + if(ai.client) + ai.client.eye = src + update_parallax_contents() + //Holopad + if(istype(ai.current, /obj/machinery/holopad)) + var/obj/machinery/holopad/H = ai.current H.move_hologram(ai, T) - -/mob/camera/aiEye/Move() - return 0 - -/mob/camera/aiEye/proc/GetViewerClient() - if(ai) - return ai.client - return null - + +/mob/camera/aiEye/Move() + return 0 + +/mob/camera/aiEye/proc/GetViewerClient() + if(ai) + return ai.client + return null + /mob/camera/aiEye/proc/RemoveImages() if(use_static) for(var/datum/camerachunk/chunk in visibleCameraChunks) chunk.remove(src) -/mob/camera/aiEye/Destroy() - ai = null - return ..() - -/atom/proc/move_camera_by_click() - if(isAI(usr)) - var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && AI.client.eye == AI.eyeobj) - AI.cameraFollow = null - if (isturf(src.loc) || isturf(src)) - AI.eyeobj.setLoc(src) - -// This will move the AIEye. It will also cause lights near the eye to light up, if toggled. -// This is handled in the proc below this one. - -/client/proc/AIMove(n, direct, mob/living/silicon/ai/user) - - var/initial = initial(user.sprint) - var/max_sprint = 50 - - if(user.cooldown && user.cooldown < world.timeofday) // 3 seconds - user.sprint = initial - - for(var/i = 0; i < max(user.sprint, initial); i += 20) - var/turf/step = get_turf(get_step(user.eyeobj, direct)) - if(step) - user.eyeobj.setLoc(step) - - user.cooldown = world.timeofday + 5 - if(user.acceleration) - user.sprint = min(user.sprint + 0.5, max_sprint) - else - user.sprint = initial - - if(!user.tracking) - user.cameraFollow = null - - //user.unset_machine() //Uncomment this if it causes problems. - //user.lightNearbyCamera() - if(user.camera_light_on) - user.light_cameras() - -// Return to the Core. -/mob/living/silicon/ai/proc/view_core() - - current = null - cameraFollow = null - unset_machine() - - if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) - to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") - eyeobj = new(loc) - eyeobj.ai = src - eyeobj.name = "[src.name] (AI Eye)" // Give it a name - - eyeobj.setLoc(loc) - -/mob/living/silicon/ai/verb/toggle_acceleration() - set category = "AI Commands" - set name = "Toggle Camera Acceleration" - - if(usr.stat == 2) - return //won't work if dead - acceleration = !acceleration - to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].") - -/mob/camera/aiEye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) - if(relay_speech && speaker && ai && !radio_freq && speaker != ai && near_camera(speaker)) - ai.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans) +/mob/camera/aiEye/Destroy() + ai = null + return ..() + +/atom/proc/move_camera_by_click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + if(AI.eyeobj && AI.client.eye == AI.eyeobj) + AI.cameraFollow = null + if (isturf(src.loc) || isturf(src)) + AI.eyeobj.setLoc(src) + +// This will move the AIEye. It will also cause lights near the eye to light up, if toggled. +// This is handled in the proc below this one. + +/client/proc/AIMove(n, direct, mob/living/silicon/ai/user) + + var/initial = initial(user.sprint) + var/max_sprint = 50 + + if(user.cooldown && user.cooldown < world.timeofday) // 3 seconds + user.sprint = initial + + for(var/i = 0; i < max(user.sprint, initial); i += 20) + var/turf/step = get_turf(get_step(user.eyeobj, direct)) + if(step) + user.eyeobj.setLoc(step) + + user.cooldown = world.timeofday + 5 + if(user.acceleration) + user.sprint = min(user.sprint + 0.5, max_sprint) + else + user.sprint = initial + + if(!user.tracking) + user.cameraFollow = null + + //user.unset_machine() //Uncomment this if it causes problems. + //user.lightNearbyCamera() + if(user.camera_light_on) + user.light_cameras() + +// Return to the Core. +/mob/living/silicon/ai/proc/view_core() + + current = null + cameraFollow = null + unset_machine() + + if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) + to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") + eyeobj = new(loc) + eyeobj.ai = src + eyeobj.name = "[src.name] (AI Eye)" // Give it a name + + eyeobj.setLoc(loc) + +/mob/living/silicon/ai/verb/toggle_acceleration() + set category = "AI Commands" + set name = "Toggle Camera Acceleration" + + if(usr.stat == 2) + return //won't work if dead + acceleration = !acceleration + to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].") + +/mob/camera/aiEye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) + if(relay_speech && speaker && ai && !radio_freq && speaker != ai && near_camera(speaker)) + ai.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans, message_mode) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index faac6a0b8b..109abfe409 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -1,12 +1,12 @@ -/mob/living/silicon/ai/Login() - ..() - for(var/obj/effect/rune/rune in world) - var/image/blood = image(loc = rune) - blood.override = 1 - client.images += blood - - if(stat != DEAD) +/mob/living/silicon/ai/Login() + ..() + for(var/obj/effect/rune/rune in world) + var/image/blood = image(loc = rune) + blood.override = 1 + client.images += blood + + if(stat != DEAD) for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status - O.mode = 1 - O.emotion = "Neutral" - view_core() + O.mode = 1 + O.emotion = "Neutral" + view_core() diff --git a/code/modules/mob/living/silicon/ai/logout.dm b/code/modules/mob/living/silicon/ai/logout.dm index 46343e60ab..fe5ea98c49 100644 --- a/code/modules/mob/living/silicon/ai/logout.dm +++ b/code/modules/mob/living/silicon/ai/logout.dm @@ -1,5 +1,5 @@ -/mob/living/silicon/ai/Logout() - ..() +/mob/living/silicon/ai/Logout() + ..() for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status - O.mode = 0 - view_core() + O.mode = 0 + view_core() diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 58e2b04d9c..f7e568aac9 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -1,172 +1,172 @@ -/mob/living/silicon/ai/say(message, language) - if(parent && istype(parent) && parent.stat != 2) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. - parent.say(message, language) - return - ..(message) - -/mob/living/silicon/ai/compose_track_href(atom/movable/speaker, namepart) - var/mob/M = speaker.GetSource() - if(M) - return "" - return "" - -/mob/living/silicon/ai/compose_job(atom/movable/speaker, message_langs, raw_message, radio_freq) - //Also includes the for AI hrefs, for convenience. - return "[radio_freq ? " (" + speaker.GetJob() + ")" : ""]" + "[speaker.GetSource() ? "" : ""]" - -/mob/living/silicon/ai/IsVocal() - return !config.silent_ai - -/mob/living/silicon/ai/radio(message, message_mode, list/spans, language) - if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intellicard) or depowered. - to_chat(src, "Your radio transmitter is offline!") - return 0 - ..() - -/mob/living/silicon/ai/get_message_mode(message) - if(copytext(message, 1, 3) in list(":h", ":H", ".h", ".H", "#h", "#H")) - return MODE_HOLOPAD - else - return ..() - -/mob/living/silicon/ai/handle_inherent_channels(message, message_mode, language) - . = ..() - if(.) - return . - - if(message_mode == MODE_HOLOPAD) - holopad_talk(message, language) - return 1 - -//For holopads only. Usable by AI. -/mob/living/silicon/ai/proc/holopad_talk(message, language) - log_say("[key_name(src)] : [message]") - - message = trim(message) - - if (!message) - return - - var/obj/machinery/holopad/T = current - if(istype(T) && T.masters[src])//If there is a hologram and its master is the user. - send_speech(message, 7, T, "robot", get_spans(), language) - to_chat(src, "Holopad transmitted, [real_name] \"[message]\"") - else - to_chat(src, "No holopad connected.") - - -// Make sure that the code compiles with AI_VOX undefined -#ifdef AI_VOX -#define VOX_DELAY 600 -/mob/living/silicon/ai/verb/announcement_help() - - set name = "Announcement Help" - set desc = "Display a list of vocal words to announce to the crew." - set category = "AI Commands" - - if(usr.stat == 2) - return //won't work if dead - - var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
    \ -
    • You can also click on the word to preview it.
    • \ -
    • You can only say 30 words for every announcement.
    • \ -
    • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
    \ - WARNING:
    Misuse of the announcement system will get you job banned.
    " - - var/index = 0 - for(var/word in GLOB.vox_sounds) - index++ - dat += "[capitalize(word)]" - if(index != GLOB.vox_sounds.len) - dat += " / " - - var/datum/browser/popup = new(src, "announce_help", "Announcement Help", 500, 400) - popup.set_content(dat) - popup.open() - - -/mob/living/silicon/ai/proc/announcement() - var/static/announcing_vox = 0 // Stores the time of the last announcement - if(announcing_vox > world.time) - to_chat(src, "Please wait [round((announcing_vox - world.time) / 10)] seconds.") - return - - var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text - - last_announcement = message - - if(!message || announcing_vox > world.time) - return - - if(stat != CONSCIOUS) - return - - if(control_disabled) - to_chat(src, "Wireless interface disabled, unable to interact with announcement PA.") - return - - var/list/words = splittext(trim(message), " ") - var/list/incorrect_words = list() - - if(words.len > 30) - words.len = 30 - - for(var/word in words) - word = lowertext(trim(word)) - if(!word) - words -= word - continue - if(!GLOB.vox_sounds[word]) - incorrect_words += word - - if(incorrect_words.len) - to_chat(src, "These words are not available on the announcement system: [english_list(incorrect_words)].") - return - - announcing_vox = world.time + VOX_DELAY - - log_game("[key_name(src)] made a vocal announcement with the following message: [message].") - - for(var/word in words) - play_vox_word(word, src.z, null) -/* - for(var/mob/M in player_list) - if(M.client) - var/turf/T = get_turf(M) - var/turf/our_turf = get_turf(src) - if(T.z == our_turf.z) - to_chat(M, "AI announcement: [message]") -*/ - - -/proc/play_vox_word(word, z_level, mob/only_listener) - - word = lowertext(word) - - if(GLOB.vox_sounds[word]) - - var/sound_file = GLOB.vox_sounds[word] - var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX) - voice.status = SOUND_STREAM - - // If there is no single listener, broadcast to everyone in the same z level - if(!only_listener) - // Play voice for all mobs in the z level - for(var/mob/M in GLOB.player_list) +/mob/living/silicon/ai/say(message, language) + if(parent && istype(parent) && parent.stat != 2) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. + parent.say(message, language) + return + ..(message) + +/mob/living/silicon/ai/compose_track_href(atom/movable/speaker, namepart) + var/mob/M = speaker.GetSource() + if(M) + return "" + return "" + +/mob/living/silicon/ai/compose_job(atom/movable/speaker, message_langs, raw_message, radio_freq) + //Also includes the for AI hrefs, for convenience. + return "[radio_freq ? " (" + speaker.GetJob() + ")" : ""]" + "[speaker.GetSource() ? "" : ""]" + +/mob/living/silicon/ai/IsVocal() + return !config.silent_ai + +/mob/living/silicon/ai/radio(message, message_mode, list/spans, language) + if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intellicard) or depowered. + to_chat(src, "Your radio transmitter is offline!") + return 0 + ..() + +/mob/living/silicon/ai/get_message_mode(message) + if(copytext(message, 1, 3) in list(":h", ":H", ".h", ".H", "#h", "#H")) + return MODE_HOLOPAD + else + return ..() + +/mob/living/silicon/ai/handle_inherent_channels(message, message_mode, language) + . = ..() + if(.) + return . + + if(message_mode == MODE_HOLOPAD) + holopad_talk(message, language) + return 1 + +//For holopads only. Usable by AI. +/mob/living/silicon/ai/proc/holopad_talk(message, language) + log_say("[key_name(src)] : [message]") + + message = trim(message) + + if (!message) + return + + var/obj/machinery/holopad/T = current + if(istype(T) && T.masters[src])//If there is a hologram and its master is the user. + send_speech(message, 7, T, "robot", get_spans(), language) + to_chat(src, "Holopad transmitted, [real_name] \"[message]\"") + else + to_chat(src, "No holopad connected.") + + +// Make sure that the code compiles with AI_VOX undefined +#ifdef AI_VOX +#define VOX_DELAY 600 +/mob/living/silicon/ai/verb/announcement_help() + + set name = "Announcement Help" + set desc = "Display a list of vocal words to announce to the crew." + set category = "AI Commands" + + if(usr.stat == 2) + return //won't work if dead + + var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
    \ +
    • You can also click on the word to preview it.
    • \ +
    • You can only say 30 words for every announcement.
    • \ +
    • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
    \ + WARNING:
    Misuse of the announcement system will get you job banned.
    " + + var/index = 0 + for(var/word in GLOB.vox_sounds) + index++ + dat += "[capitalize(word)]" + if(index != GLOB.vox_sounds.len) + dat += " / " + + var/datum/browser/popup = new(src, "announce_help", "Announcement Help", 500, 400) + popup.set_content(dat) + popup.open() + + +/mob/living/silicon/ai/proc/announcement() + var/static/announcing_vox = 0 // Stores the time of the last announcement + if(announcing_vox > world.time) + to_chat(src, "Please wait [round((announcing_vox - world.time) / 10)] seconds.") + return + + var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text + + last_announcement = message + + if(!message || announcing_vox > world.time) + return + + if(stat != CONSCIOUS) + return + + if(control_disabled) + to_chat(src, "Wireless interface disabled, unable to interact with announcement PA.") + return + + var/list/words = splittext(trim(message), " ") + var/list/incorrect_words = list() + + if(words.len > 30) + words.len = 30 + + for(var/word in words) + word = lowertext(trim(word)) + if(!word) + words -= word + continue + if(!GLOB.vox_sounds[word]) + incorrect_words += word + + if(incorrect_words.len) + to_chat(src, "These words are not available on the announcement system: [english_list(incorrect_words)].") + return + + announcing_vox = world.time + VOX_DELAY + + log_game("[key_name(src)] made a vocal announcement with the following message: [message].") + + for(var/word in words) + play_vox_word(word, src.z, null) +/* + for(var/mob/M in player_list) + if(M.client) + var/turf/T = get_turf(M) + var/turf/our_turf = get_turf(src) + if(T.z == our_turf.z) + to_chat(M, "AI announcement: [message]") +*/ + + +/proc/play_vox_word(word, z_level, mob/only_listener) + + word = lowertext(word) + + if(GLOB.vox_sounds[word]) + + var/sound_file = GLOB.vox_sounds[word] + var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX) + voice.status = SOUND_STREAM + + // If there is no single listener, broadcast to everyone in the same z level + if(!only_listener) + // Play voice for all mobs in the z level + for(var/mob/M in GLOB.player_list) if(M.client && M.can_hear() && (M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)) - var/turf/T = get_turf(M) - if(T.z == z_level) - M << voice - else - only_listener << voice - return 1 - return 0 - -#endif - + var/turf/T = get_turf(M) + if(T.z == z_level) + M << voice + else + only_listener << voice + return 1 + return 0 + +#endif + /mob/living/silicon/ai/could_speak_in_language(datum/language/dt) if(is_servant_of_ratvar(src)) - // Ratvarian AIs can only speak Ratvarian + // Ratvarian AIs can only speak Ratvarian . = ispath(dt, /datum/language/ratvar) - else - . = ..() + else + . = ..() diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index e9efce3fa6..9474b787ea 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -1,6 +1,6 @@ -/mob/living/silicon/Login() +/mob/living/silicon/Login() if(mind && SSticker.mode) - SSticker.mode.remove_cultist(mind, 0, 0) - SSticker.mode.remove_revolutionary(mind, 0) - SSticker.mode.remove_gangster(mind, remove_bosses=1) - ..() + SSticker.mode.remove_cultist(mind, 0, 0) + SSticker.mode.remove_revolutionary(mind, 0) + SSticker.mode.remove_gangster(mind, remove_bosses=1) + ..() diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index 504c93b3c3..0526db2a78 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -1,14 +1,14 @@ -/mob/living/silicon/pai/death(gibbed) - if(stat == DEAD) - return - stat = DEAD - canmove = 0 - card.removePersonality() +/mob/living/silicon/pai/death(gibbed) + if(stat == DEAD) + return + stat = DEAD + canmove = 0 + card.removePersonality() card.forceMove(loc) - update_sight() - clear_fullscreens() - - //New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here. - GLOB.living_mob_list -= src - ghostize() + update_sight() + clear_fullscreens() + + //New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here. + GLOB.living_mob_list -= src + ghostize() qdel(src) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 3177f237b2..6a44db9a8d 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -1,245 +1,245 @@ -/mob/living/silicon/pai - name = "pAI" - var/network = "SS13" - var/obj/machinery/camera/current = null - icon = 'icons/mob/pai.dmi' - icon_state = "repairbot" - mouse_opacity = 2 - density = 0 - luminosity = 0 - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_TINY - desc = "A generic pAI mobile hard-light holographics emitter. It seems to be deactivated." - weather_immunities = list("ash") - health = 500 - maxHealth = 500 - - var/ram = 100 // Used as currency to purchase different abilities - var/list/software = list() - var/userDNA // The DNA string of our assigned user - var/obj/item/device/paicard/card // The card we inhabit - - var/speakStatement = "states" - var/speakExclamation = "declares" - var/speakDoubleExclamation = "alarms" - var/speakQuery = "queries" - - var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking - - var/master // Name of the one who commands us - var/master_dna // DNA string for owner verification - -// Various software-specific vars - - var/temp // General error reporting text contained here will typically be shown once and cleared - var/screen // Which screen our main window displays - var/subscreen // Which specific function of the main screen is being displayed - - var/obj/item/device/pda/ai/pai/pda = null - - var/secHUD = 0 // Toggles whether the Security HUD is active or not - var/medHUD = 0 // Toggles whether the Medical HUD is active or not - - var/datum/data/record/medicalActive1 // Datacore record declarations for record software - var/datum/data/record/medicalActive2 - - var/datum/data/record/securityActive1 // Could probably just combine all these into one - var/datum/data/record/securityActive2 - - var/obj/machinery/door/hackdoor // The airlock being hacked - var/hackprogress = 0 // Possible values: 0 - 100, >= 100 means the hack is complete and will be reset upon next check - - var/obj/item/radio/integrated/signal/sradio // AI's signaller - - var/holoform = FALSE - var/canholo = TRUE - var/obj/item/weapon/card/id/access_card = null - var/chassis = "repairbot" - var/list/possible_chassis = list("cat", "mouse", "monkey", "corgi", "fox", "repairbot", "rabbit") - - var/emitterhealth = 20 - var/emittermaxhealth = 20 - var/emitterregen = 0.25 - var/emittercd = 50 - var/emitteroverloadcd = 100 - var/emittersemicd = FALSE - - var/overload_ventcrawl = 0 - var/overload_bulletblock = 0 //Why is this a good idea? - var/overload_maxhealth = 0 - canmove = FALSE - var/silent = 0 - var/hit_slowdown = 0 - var/brightness_power = 5 - var/slowdown = 0 - -/mob/living/silicon/pai/movement_delay() - . = ..() - . += slowdown - -/mob/living/silicon/pai/Destroy() - GLOB.pai_list -= src +/mob/living/silicon/pai + name = "pAI" + var/network = "SS13" + var/obj/machinery/camera/current = null + icon = 'icons/mob/pai.dmi' + icon_state = "repairbot" + mouse_opacity = 2 + density = 0 + luminosity = 0 + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_TINY + desc = "A generic pAI mobile hard-light holographics emitter. It seems to be deactivated." + weather_immunities = list("ash") + health = 500 + maxHealth = 500 + + var/ram = 100 // Used as currency to purchase different abilities + var/list/software = list() + var/userDNA // The DNA string of our assigned user + var/obj/item/device/paicard/card // The card we inhabit + + var/speakStatement = "states" + var/speakExclamation = "declares" + var/speakDoubleExclamation = "alarms" + var/speakQuery = "queries" + + var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking + + var/master // Name of the one who commands us + var/master_dna // DNA string for owner verification + +// Various software-specific vars + + var/temp // General error reporting text contained here will typically be shown once and cleared + var/screen // Which screen our main window displays + var/subscreen // Which specific function of the main screen is being displayed + + var/obj/item/device/pda/ai/pai/pda = null + + var/secHUD = 0 // Toggles whether the Security HUD is active or not + var/medHUD = 0 // Toggles whether the Medical HUD is active or not + + var/datum/data/record/medicalActive1 // Datacore record declarations for record software + var/datum/data/record/medicalActive2 + + var/datum/data/record/securityActive1 // Could probably just combine all these into one + var/datum/data/record/securityActive2 + + var/obj/machinery/door/hackdoor // The airlock being hacked + var/hackprogress = 0 // Possible values: 0 - 100, >= 100 means the hack is complete and will be reset upon next check + + var/obj/item/radio/integrated/signal/sradio // AI's signaller + + var/holoform = FALSE + var/canholo = TRUE + var/obj/item/weapon/card/id/access_card = null + var/chassis = "repairbot" + var/list/possible_chassis = list("cat", "mouse", "monkey", "corgi", "fox", "repairbot", "rabbit") + + var/emitterhealth = 20 + var/emittermaxhealth = 20 + var/emitterregen = 0.25 + var/emittercd = 50 + var/emitteroverloadcd = 100 + var/emittersemicd = FALSE + + var/overload_ventcrawl = 0 + var/overload_bulletblock = 0 //Why is this a good idea? + var/overload_maxhealth = 0 + canmove = FALSE + var/silent = 0 + var/hit_slowdown = 0 + var/brightness_power = 5 + var/slowdown = 0 + +/mob/living/silicon/pai/movement_delay() + . = ..() + . += slowdown + +/mob/living/silicon/pai/Destroy() + GLOB.pai_list -= src return ..() - -/mob/living/silicon/pai/Initialize() - var/obj/item/device/paicard/P = loc - START_PROCESSING(SSfastprocess, src) - GLOB.pai_list += src - make_laws() - canmove = 0 - if(!istype(P)) //when manually spawning a pai, we create a card to put it into. - var/newcardloc = P - P = new /obj/item/device/paicard(newcardloc) - P.setPersonality(src) - loc = P - card = P - sradio = new(src) - if(!radio) - radio = new /obj/item/device/radio(src) - - //PDA - pda = new(src) - spawn(5) - pda.ownjob = "pAI Messenger" - pda.owner = text("[]", src) - pda.name = pda.owner + " (" + pda.ownjob + ")" - - ..() - - var/datum/action/innate/pai/shell/AS = new /datum/action/innate/pai/shell - var/datum/action/innate/pai/chassis/AC = new /datum/action/innate/pai/chassis - var/datum/action/innate/pai/rest/AR = new /datum/action/innate/pai/rest - var/datum/action/innate/pai/light/AL = new /datum/action/innate/pai/light - - var/datum/action/language_menu/ALM = new - AS.Grant(src) - AC.Grant(src) - AR.Grant(src) - AL.Grant(src) - ALM.Grant(src) - emittersemicd = TRUE - addtimer(CALLBACK(src, .proc/emittercool), 600) - -/mob/living/silicon/pai/make_laws() - laws = new /datum/ai_laws/pai() - return TRUE - -/mob/living/silicon/pai/Login() - ..() - usr << browse_rsc('html/paigrid.png') // Go ahead and cache the interface resources as early as possible - if(client) - client.perspective = EYE_PERSPECTIVE - if(holoform) - client.eye = src - else - client.eye = card - -/mob/living/silicon/pai/Stat() - ..() - if(statpanel("Status")) - if(!stat) - stat(null, text("Emitter Integrity: [emitterhealth * (100/emittermaxhealth)]")) - else - stat(null, text("Systems nonfunctional")) - -/mob/living/silicon/pai/restrained(ignore_grab) - . = FALSE - -// See software.dm for Topic() - -/mob/living/silicon/pai/canUseTopic(atom/movable/M) - return TRUE - -/mob/proc/makePAI(delold) - var/obj/item/device/paicard/card = new /obj/item/device/paicard(get_turf(src)) - var/mob/living/silicon/pai/pai = new /mob/living/silicon/pai(card) - pai.key = key - pai.name = name - card.setPersonality(pai) - if(delold) - qdel(src) - -/datum/action/innate/pai - name = "PAI Action" - var/mob/living/silicon/pai/P - -/datum/action/innate/pai/Trigger() - if(!ispAI(owner)) - return 0 - P = owner - -/datum/action/innate/pai/shell - name = "Toggle Holoform" - button_icon_state = "pai_holoform" - background_icon_state = "bg_tech" - -/datum/action/innate/pai/shell/Trigger() - ..() - if(P.holoform) - P.fold_in(0) - else - P.fold_out() - -/datum/action/innate/pai/chassis - name = "Holochassis Appearence Composite" - button_icon_state = "pai_chassis" - background_icon_state = "bg_tech" - -/datum/action/innate/pai/chassis/Trigger() - ..() - P.choose_chassis() - -/datum/action/innate/pai/rest - name = "Rest" - button_icon_state = "pai_rest" - background_icon_state = "bg_tech" - -/datum/action/innate/pai/rest/Trigger() - ..() - P.lay_down() -/datum/action/innate/pai/light - name = "Toggle Integrated Lights" - button_icon_state = "emp" - background_icon_state = "bg_tech" - -/datum/action/innate/pai/light/Trigger() - ..() - P.toggle_integrated_light() - -/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) - . = ..() - if(!.) - slowdown = 2 - return TRUE - slowdown = initial(slowdown) - return TRUE - -/mob/living/silicon/pai/examine(mob/user) - ..() - to_chat(user, "A personal AI in holochassis mode. Its master ID string seems to be [master].") - -/mob/living/silicon/pai/Life() - if(stat == DEAD) - return - if(cable) - if(get_dist(src, cable) > 1) - var/turf/T = get_turf(src.loc) - T.visible_message("[src.cable] rapidly retracts back into its spool.", "You hear a click and the sound of wire spooling rapidly.") - qdel(src.cable) - cable = null - silent = max(silent - 1, 0) - . = ..() - -/mob/living/silicon/pai/updatehealth() - if(status_flags & GODMODE) - return - health = maxHealth - getBruteLoss() - getFireLoss() - update_stat() - - -/mob/living/silicon/pai/process() - emitterhealth = Clamp((emitterhealth + emitterregen), -50, emittermaxhealth) - hit_slowdown = Clamp((hit_slowdown - 1), 0, 100) + +/mob/living/silicon/pai/Initialize() + var/obj/item/device/paicard/P = loc + START_PROCESSING(SSfastprocess, src) + GLOB.pai_list += src + make_laws() + canmove = 0 + if(!istype(P)) //when manually spawning a pai, we create a card to put it into. + var/newcardloc = P + P = new /obj/item/device/paicard(newcardloc) + P.setPersonality(src) + loc = P + card = P + sradio = new(src) + if(!radio) + radio = new /obj/item/device/radio(src) + + //PDA + pda = new(src) + spawn(5) + pda.ownjob = "pAI Messenger" + pda.owner = text("[]", src) + pda.name = pda.owner + " (" + pda.ownjob + ")" + + ..() + + var/datum/action/innate/pai/shell/AS = new /datum/action/innate/pai/shell + var/datum/action/innate/pai/chassis/AC = new /datum/action/innate/pai/chassis + var/datum/action/innate/pai/rest/AR = new /datum/action/innate/pai/rest + var/datum/action/innate/pai/light/AL = new /datum/action/innate/pai/light + + var/datum/action/language_menu/ALM = new + AS.Grant(src) + AC.Grant(src) + AR.Grant(src) + AL.Grant(src) + ALM.Grant(src) + emittersemicd = TRUE + addtimer(CALLBACK(src, .proc/emittercool), 600) + +/mob/living/silicon/pai/make_laws() + laws = new /datum/ai_laws/pai() + return TRUE + +/mob/living/silicon/pai/Login() + ..() + usr << browse_rsc('html/paigrid.png') // Go ahead and cache the interface resources as early as possible + if(client) + client.perspective = EYE_PERSPECTIVE + if(holoform) + client.eye = src + else + client.eye = card + +/mob/living/silicon/pai/Stat() + ..() + if(statpanel("Status")) + if(!stat) + stat(null, text("Emitter Integrity: [emitterhealth * (100/emittermaxhealth)]")) + else + stat(null, text("Systems nonfunctional")) + +/mob/living/silicon/pai/restrained(ignore_grab) + . = FALSE + +// See software.dm for Topic() + +/mob/living/silicon/pai/canUseTopic(atom/movable/M) + return TRUE + +/mob/proc/makePAI(delold) + var/obj/item/device/paicard/card = new /obj/item/device/paicard(get_turf(src)) + var/mob/living/silicon/pai/pai = new /mob/living/silicon/pai(card) + pai.key = key + pai.name = name + card.setPersonality(pai) + if(delold) + qdel(src) + +/datum/action/innate/pai + name = "PAI Action" + var/mob/living/silicon/pai/P + +/datum/action/innate/pai/Trigger() + if(!ispAI(owner)) + return 0 + P = owner + +/datum/action/innate/pai/shell + name = "Toggle Holoform" + button_icon_state = "pai_holoform" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/shell/Trigger() + ..() + if(P.holoform) + P.fold_in(0) + else + P.fold_out() + +/datum/action/innate/pai/chassis + name = "Holochassis Appearence Composite" + button_icon_state = "pai_chassis" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/chassis/Trigger() + ..() + P.choose_chassis() + +/datum/action/innate/pai/rest + name = "Rest" + button_icon_state = "pai_rest" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/rest/Trigger() + ..() + P.lay_down() +/datum/action/innate/pai/light + name = "Toggle Integrated Lights" + button_icon_state = "emp" + background_icon_state = "bg_tech" + +/datum/action/innate/pai/light/Trigger() + ..() + P.toggle_integrated_light() + +/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) + . = ..() + if(!.) + slowdown = 2 + return TRUE + slowdown = initial(slowdown) + return TRUE + +/mob/living/silicon/pai/examine(mob/user) + ..() + to_chat(user, "A personal AI in holochassis mode. Its master ID string seems to be [master].") + +/mob/living/silicon/pai/Life() + if(stat == DEAD) + return + if(cable) + if(get_dist(src, cable) > 1) + var/turf/T = get_turf(src.loc) + T.visible_message("[src.cable] rapidly retracts back into its spool.", "You hear a click and the sound of wire spooling rapidly.") + qdel(src.cable) + cable = null + silent = max(silent - 1, 0) + . = ..() + +/mob/living/silicon/pai/updatehealth() + if(status_flags & GODMODE) + return + health = maxHealth - getBruteLoss() - getFireLoss() + update_stat() + + +/mob/living/silicon/pai/process() + emitterhealth = Clamp((emitterhealth + emitterregen), -50, emittermaxhealth) + hit_slowdown = Clamp((hit_slowdown - 1), 0, 100) /mob/living/silicon/pai/generateStaticOverlay() return diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index a21f27ca00..83da7d9087 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -3,9 +3,9 @@ return FALSE /mob/living/silicon/pai/emp_act(severity) - take_holo_damage(severity * 25) - fullstun(severity * 10) - silent = max(severity * 15, silent) + take_holo_damage(50/severity) + Knockdown(400/severity) + silent = max(30/severity, silent) if(holoform) fold_in(force = TRUE) //Need more effects that aren't instadeath or permanent law corruption. @@ -18,10 +18,10 @@ qdel(src) if(2) fold_in(force = 1) - fullstun(20) + Knockdown(400) if(3) fold_in(force = 1) - fullstun(10) + Knockdown(200) /mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user) switch(user.a_intent) @@ -64,9 +64,6 @@ hit_slowdown += amount return amount -/mob/living/silicon/pai/proc/fullstun(amount) - Weaken(amount) - /mob/living/silicon/pai/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) return take_holo_damage(amount) @@ -83,10 +80,10 @@ return FALSE /mob/living/silicon/pai/adjustStaminaLoss(amount) - take_holo_damage(amount/4) + take_holo_damage(amount & 0.25) /mob/living/silicon/pai/adjustBrainLoss(amount) - fullstun(amount/10) + Knockdown(amount * 0.2) /mob/living/silicon/pai/getBruteLoss() return emittermaxhealth - emitterhealth diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 5c50a87b45..ff5da89678 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -24,7 +24,7 @@ var/obj/item/device/pda/P = card.loc P.pai = null P.visible_message("[src] ejects itself from [P]!") - if(istype(card.loc, /mob/living)) + if(isliving(card.loc)) var/mob/living/L = card.loc if(!L.temporarilyRemoveItemFromInventory(card)) to_chat(src, "Error: Unable to expand to mobile form. Chassis is restrained by some device or person.") diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index d9a9ce60c8..a4f8638c4a 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -1,642 +1,642 @@ -// TODO: -// - Additional radio modules -// - Potentially roll HUDs and Records into one -// - Shock collar/lock system for prisoner pAIs? -// - Put cable in user's hand instead of on the ground -// - Camera jack - - -/mob/living/silicon/pai/var/list/available_software = list( - "crew manifest" = 5, - "digital messenger" = 5, - "medical records" = 15, - "security records" = 15, - //"camera jack" = 10, - "door jack" = 30, - "atmosphere sensor" = 5, - //"heartbeat sensor" = 10, - "security HUD" = 20, - "medical HUD" = 20, - "universal translator" = 35, - //"projection array" = 15 - "remote signaller" = 5, - ) - -/mob/living/silicon/pai/verb/paiInterface() - set category = "pAI Commands" - set name = "Software Interface" - var/dat = "" - var/left_part = "" - var/right_part = softwareMenu() - src.set_machine(src) - - if(temp) - left_part = temp - else if(src.stat == 2) // Show some flavor text if the pAI is dead - left_part = "�Rr�R �a�� ��Rr����o�" - right_part = "
    Program index hash not found
    " - - else - switch(src.screen) // Determine which interface to show here - if("main") - left_part = "" - if("directives") - left_part = src.directives() - if("pdamessage") - left_part = src.pdamessage() - if("buy") - left_part = downloadSoftware() - if("manifest") - left_part = src.softwareManifest() - if("medicalrecord") - left_part = src.softwareMedicalRecord() - if("securityrecord") - left_part = src.softwareSecurityRecord() - if("translator") - left_part = src.softwareTranslator() - if("atmosensor") - left_part = src.softwareAtmo() - if("securityhud") - left_part = src.facialRecognition() - if("medicalhud") - left_part = src.medicalAnalysis() - if("doorjack") - left_part = src.softwareDoor() - if("camerajack") - left_part = src.softwareCamera() - if("signaller") - left_part = src.softwareSignal() - - //usr << browse_rsc('windowbak.png') // This has been moved to the mob's Login() proc - - - // Declaring a doctype is necessary to enable BYOND's crappy browser's more advanced CSS functionality - dat = {" - - - - - - -
    - pAI OS -
    -
    -
    [left_part]
    -
    [right_part]
    -
    - - "} //" - usr << browse(dat, "window=pai;size=640x480;border=0;can_close=1;can_resize=1;can_minimize=1;titlebar=1") - onclose(usr, "pai") - temp = null - return - - - -/mob/living/silicon/pai/Topic(href, href_list) - ..() - var/soft = href_list["software"] - var/sub = href_list["sub"] - if(soft) - src.screen = soft - if(sub) - src.subscreen = text2num(sub) - switch(soft) - // Purchasing new software - if("buy") - if(subscreen == 1) - var/target = href_list["buy"] - if(available_software.Find(target)) - var/cost = src.available_software[target] - if(ram >= cost) - ram -= cost - software.Add(target) - else - temp = "Insufficient RAM available." - else - temp = "Trunk \"[target]\" not found." - - // Configuring onboard radio - if("radio") - radio.attack_self(src) - - if("image") - var/newImage = input("Select your new display image.", "Display Image", "Happy") in list("Happy", "Cat", "Extremely Happy", "Face", "Laugh", "Off", "Sad", "Angry", "What") - var/pID = 1 - - switch(newImage) - if("Happy") - pID = 1 - if("Cat") - pID = 2 - if("Extremely Happy") - pID = 3 - if("Face") - pID = 4 - if("Laugh") - pID = 5 - if("Off") - pID = 6 - if("Sad") - pID = 7 - if("Angry") - pID = 8 - if("What") - pID = 9 - if("Null") - pID = 10 - card.setEmotion(pID) - - if("signaller") - - if(href_list["send"]) - - sradio.send_signal("ACTIVATE") +// TODO: +// - Additional radio modules +// - Potentially roll HUDs and Records into one +// - Shock collar/lock system for prisoner pAIs? +// - Put cable in user's hand instead of on the ground +// - Camera jack + + +/mob/living/silicon/pai/var/list/available_software = list( + "crew manifest" = 5, + "digital messenger" = 5, + "medical records" = 15, + "security records" = 15, + //"camera jack" = 10, + "door jack" = 30, + "atmosphere sensor" = 5, + //"heartbeat sensor" = 10, + "security HUD" = 20, + "medical HUD" = 20, + "universal translator" = 35, + //"projection array" = 15 + "remote signaller" = 5, + ) + +/mob/living/silicon/pai/verb/paiInterface() + set category = "pAI Commands" + set name = "Software Interface" + var/dat = "" + var/left_part = "" + var/right_part = softwareMenu() + src.set_machine(src) + + if(temp) + left_part = temp + else if(src.stat == 2) // Show some flavor text if the pAI is dead + left_part = "�Rr�R �a�� ��Rr����o�" + right_part = "
    Program index hash not found
    " + + else + switch(src.screen) // Determine which interface to show here + if("main") + left_part = "" + if("directives") + left_part = src.directives() + if("pdamessage") + left_part = src.pdamessage() + if("buy") + left_part = downloadSoftware() + if("manifest") + left_part = src.softwareManifest() + if("medicalrecord") + left_part = src.softwareMedicalRecord() + if("securityrecord") + left_part = src.softwareSecurityRecord() + if("translator") + left_part = src.softwareTranslator() + if("atmosensor") + left_part = src.softwareAtmo() + if("securityhud") + left_part = src.facialRecognition() + if("medicalhud") + left_part = src.medicalAnalysis() + if("doorjack") + left_part = src.softwareDoor() + if("camerajack") + left_part = src.softwareCamera() + if("signaller") + left_part = src.softwareSignal() + + //usr << browse_rsc('windowbak.png') // This has been moved to the mob's Login() proc + + + // Declaring a doctype is necessary to enable BYOND's crappy browser's more advanced CSS functionality + dat = {" + + + + + + +
    + pAI OS +
    +
    +
    [left_part]
    +
    [right_part]
    +
    + + "} //" + usr << browse(dat, "window=pai;size=640x480;border=0;can_close=1;can_resize=1;can_minimize=1;titlebar=1") + onclose(usr, "pai") + temp = null + return + + + +/mob/living/silicon/pai/Topic(href, href_list) + ..() + var/soft = href_list["software"] + var/sub = href_list["sub"] + if(soft) + src.screen = soft + if(sub) + src.subscreen = text2num(sub) + switch(soft) + // Purchasing new software + if("buy") + if(subscreen == 1) + var/target = href_list["buy"] + if(available_software.Find(target)) + var/cost = src.available_software[target] + if(ram >= cost) + ram -= cost + software.Add(target) + else + temp = "Insufficient RAM available." + else + temp = "Trunk \"[target]\" not found." + + // Configuring onboard radio + if("radio") + radio.attack_self(src) + + if("image") + var/newImage = input("Select your new display image.", "Display Image", "Happy") in list("Happy", "Cat", "Extremely Happy", "Face", "Laugh", "Off", "Sad", "Angry", "What") + var/pID = 1 + + switch(newImage) + if("Happy") + pID = 1 + if("Cat") + pID = 2 + if("Extremely Happy") + pID = 3 + if("Face") + pID = 4 + if("Laugh") + pID = 5 + if("Off") + pID = 6 + if("Sad") + pID = 7 + if("Angry") + pID = 8 + if("What") + pID = 9 + if("Null") + pID = 10 + card.setEmotion(pID) + + if("signaller") + + if(href_list["send"]) + + sradio.send_signal("ACTIVATE") audible_message("[bicon(src)] *beep* *beep*") - - if(href_list["freq"]) - - var/new_frequency = (sradio.frequency + text2num(href_list["freq"])) - if(new_frequency < 1200 || new_frequency > 1600) - new_frequency = sanitize_frequency(new_frequency) - sradio.set_frequency(new_frequency) - - if(href_list["code"]) - - sradio.code += text2num(href_list["code"]) - sradio.code = round(sradio.code) - sradio.code = min(100, sradio.code) - sradio.code = max(1, sradio.code) - - - - if("directive") - if(href_list["getdna"]) - var/mob/living/M = card.loc - var/count = 0 - while(!isliving(M)) - if(!M || !M.loc) return 0 //For a runtime where M ends up in nullspace (similar to bluespace but less colourful) - M = M.loc - count++ - if(count >= 6) - to_chat(src, "You are not being carried by anyone!") - return 0 - spawn CheckDNA(M, src) - - if("pdamessage") - if(!isnull(pda)) - if(href_list["toggler"]) - pda.toff = !pda.toff - else if(href_list["ringer"]) - pda.silent = !pda.silent - else if(href_list["target"]) - if(silent) - return alert("Communications circuits remain unitialized.") - - var/target = locate(href_list["target"]) - pda.create_message(src, target) - - // Accessing medical records - if("medicalrecord") - if(subscreen == 1) - medicalActive1 = find_record("id", href_list["med_rec"], GLOB.data_core.general) - if(medicalActive1) - medicalActive2 = find_record("id", href_list["med_rec"], GLOB.data_core.medical) - if(!medicalActive2) - medicalActive1 = null - temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." - - if("securityrecord") - if(subscreen == 1) - securityActive1 = find_record("id", href_list["sec_rec"], GLOB.data_core.general) - if(securityActive1) - securityActive2 = find_record("id", href_list["sec_rec"], GLOB.data_core.security) - if(!securityActive2) - securityActive1 = null - temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." - if("securityhud") - if(href_list["toggle"]) - secHUD = !secHUD - if(secHUD) - add_sec_hud() - else - var/datum/atom_hud/sec = GLOB.huds[sec_hud] - sec.remove_hud_from(src) - if("medicalhud") - if(href_list["toggle"]) - medHUD = !medHUD - if(medHUD) - add_med_hud() - else - var/datum/atom_hud/med = GLOB.huds[med_hud] - med.remove_hud_from(src) - if("translator") - if(href_list["toggle"]) - if(!HAS_SECONDARY_FLAG(src, OMNITONGUE)) - grant_all_languages(TRUE) - // this is PERMAMENT. - if("doorjack") - if(href_list["jack"]) - if(src.cable && src.cable.machine) - src.hackdoor = src.cable.machine - src.hackloop() - if(href_list["cancel"]) - src.hackdoor = null - if(href_list["cable"]) - var/turf/T = get_turf(src.loc) - cable = new /obj/item/weapon/pai_cable(T) - T.visible_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", "You hear the soft click of something light and hard falling to the ground.") - //src.updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window - src.paiInterface() // So we'll just call the update directly rather than doing some default checks - return - -// MENUS - -/mob/living/silicon/pai/proc/softwareMenu() // Populate the right menu - var/dat = "" - - dat += "Refresh
    " - // Built-in - dat += "Directives
    " - dat += "Radio Configuration
    " - dat += "Screen Display
    " - //dat += "Text Messaging
    " - dat += "
    " - - // Basic - dat += "Basic
    " - for(var/s in src.software) - if(s == "digital messenger") - dat += "Digital Messenger
    " - if(s == "crew manifest") - dat += "Crew Manifest
    " - if(s == "medical records") - dat += "Medical Records
    " - if(s == "security records") - dat += "Security Records
    " - if(s == "camera") - dat += "Camera Jack
    " - if(s == "remote signaller") - dat += "Remote Signaller
    " - dat += "
    " - - // Advanced - dat += "Advanced
    " - for(var/s in src.software) - if(s == "atmosphere sensor") - dat += "Atmospheric Sensor
    " - if(s == "heartbeat sensor") - dat += "Heartbeat Sensor
    " - if(s == "security HUD") - dat += "Facial Recognition Suite[(src.secHUD) ? " On" : " Off"]
    " - if(s == "medical HUD") - dat += "Medical Analysis Suite[(src.medHUD) ? " On" : " Off"]
    " - if(s == "universal translator") - var/translator_on = HAS_SECONDARY_FLAG(src, OMNITONGUE) - dat += "Universal Translator[translator_on ? " On" : " Off"]
    " - if(s == "projection array") - dat += "Projection Array
    " - if(s == "camera jack") - dat += "Camera Jack
    " - if(s == "door jack") - dat += "Door Jack
    " - dat += "
    " - dat += "
    " - dat += "Download additional software" - return dat - - - -/mob/living/silicon/pai/proc/downloadSoftware() - var/dat = "" - - dat += "

    Centcom pAI Module Subversion Network


    " - dat += "
    Remaining Available Memory: [src.ram]

    " - dat += "

    Trunks available for checkout
    " - - for(var/s in available_software) - if(!software.Find(s)) - var/cost = src.available_software[s] - var/displayName = uppertext(s) - dat += "[displayName] ([cost])
    " - else - var/displayName = lowertext(s) - dat += "[displayName] (Download Complete)
    " - dat += "

    " - return dat - - -/mob/living/silicon/pai/proc/directives() - var/dat = "" - - dat += "[(src.master) ? "Your master: [src.master] ([src.master_dna])" : "You are bound to no one."]" - dat += "

    " - dat += "Request carrier DNA sample
    " - dat += "

    Directives


    " - dat += "Prime Directive
    " - dat += "     [src.laws.zeroth]
    " - dat += "Supplemental Directives
    " - for(var/slaws in laws.supplied) - dat += "     [slaws]
    " - dat += "
    " - dat += {"

    Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of - comprehending the subtle nuances of human language. You may parse the \"spirit\" of a directive and follow its intent, - rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build - only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.



    - Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of - simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your - prime directive to the best of your ability.



    - - "} - return dat - -/mob/living/silicon/pai/proc/CheckDNA(mob/living/carbon/M, mob/living/silicon/pai/P) - var/answer = input(M, "[P] is requesting a DNA sample from you. Will you allow it to confirm your identity?", "[P] Check DNA", "No") in list("Yes", "No") - if(answer == "Yes") - M.visible_message("[M] presses [M.p_their()] thumb against [P].",\ - "You press your thumb against [P].",\ - "[P] makes a sharp clicking sound as it extracts DNA material from [M].") - if(!M.has_dna()) - to_chat(P, "No DNA detected") - return - to_chat(P, "

    [M]'s UE string : [M.dna.unique_enzymes]

    ") - if(M.dna.unique_enzymes == P.master_dna) - to_chat(P, "DNA is a match to stored Master DNA.") - else - to_chat(P, "DNA does not match stored Master DNA.") - else - to_chat(P, "[M] does not seem like [M.p_they()] [M.p_are()] going to provide a DNA sample willingly.") - -// -=-=-=-= Software =-=-=-=-=- // - -//Remote Signaller -/mob/living/silicon/pai/proc/softwareSignal() - var/dat = "" - dat += "

    Remote Signaller



    " - dat += {"Frequency/Code for signaler:
    - Frequency: - - - - - [format_frequency(src.sradio.frequency)] - + - +
    - - Code: - - - - - [src.sradio.code] - + - +
    - - Send Signal
    "} - return dat - -// Crew Manifest -/mob/living/silicon/pai/proc/softwareManifest() - . += "

    Crew Manifest



    " - if(GLOB.data_core.general) - for(var/datum/data/record/t in sortRecord(GLOB.data_core.general)) - . += "[t.fields["name"]] - [t.fields["rank"]]
    " - . += "" - return . - -// Medical Records -/mob/living/silicon/pai/proc/softwareMedicalRecord() - switch(subscreen) - if(0) - . += "

    Medical Records


    " - if(GLOB.data_core.general) - for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) - . += "[R.fields["id"]]: [R.fields["name"]]
    " - if(1) - . += "
    Medical Record

    " - if(medicalActive1 in GLOB.data_core.general) - . += "Name: [medicalActive1.fields["name"]] ID: [medicalActive1.fields["id"]]
    \nSex: [medicalActive1.fields["sex"]]
    \nAge: [medicalActive1.fields["age"]]
    \nFingerprint: [medicalActive1.fields["fingerprint"]]
    \nPhysical Status: [medicalActive1.fields["p_stat"]]
    \nMental Status: [medicalActive1.fields["m_stat"]]
    " - else - . += "
    Requested medical record not found.

    " - if(medicalActive2 in GLOB.data_core.medical) - . += "
    \n
    Medical Data

    \nBlood Type:
    [medicalActive2.fields["blood_type"]]
    \nDNA: [medicalActive2.fields["b_dna"]]
    \n
    \nMinor Disabilities: [medicalActive2.fields["mi_dis"]]
    \nDetails: [medicalActive2.fields["mi_dis_d"]]
    \n
    \nMajor Disabilities: [medicalActive2.fields["ma_dis"]]
    \nDetails: [medicalActive2.fields["ma_dis_d"]]
    \n
    \nAllergies: [medicalActive2.fields["alg"]]
    \nDetails: [medicalActive2.fields["alg_d"]]
    \n
    \nCurrent Diseases: [medicalActive2.fields["cdi"]] (per disease info placed in log/comment section)
    \nDetails: [medicalActive2.fields["cdi_d"]]
    \n
    \nImportant Notes:
    \n\t[medicalActive2.fields["notes"]]
    \n
    \n
    Comments/Log

    " - else - . += "
    Requested medical record not found.

    " - . += "
    \nBack
    " - return . - -// Security Records -/mob/living/silicon/pai/proc/softwareSecurityRecord() - . = "" - switch(subscreen) - if(0) - . += "

    Security Records


    " - if(GLOB.data_core.general) - for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) - . += "[R.fields["id"]]: [R.fields["name"]]
    " - if(1) - . += "

    Security Record

    " - if(securityActive1 in GLOB.data_core.general) - . += "Name:
    [securityActive1.fields["name"]] ID: [securityActive1.fields["id"]]
    \nSex: [securityActive1.fields["sex"]]
    \nAge: [securityActive1.fields["age"]]
    \nRank: [securityActive1.fields["rank"]]
    \nFingerprint: [securityActive1.fields["fingerprint"]]
    \nPhysical Status: [securityActive1.fields["p_stat"]]
    \nMental Status: [securityActive1.fields["m_stat"]]
    " - else - . += "
    Requested security record not found,

    " - if(securityActive2 in GLOB.data_core.security) - . += "
    \nSecurity Data
    \nCriminal Status: [securityActive2.fields["criminal"]]
    \n
    \nMinor Crimes: [securityActive2.fields["mi_crim"]]
    \nDetails: [securityActive2.fields["mi_crim_d"]]
    \n
    \nMajor Crimes: [securityActive2.fields["ma_crim"]]
    \nDetails: [securityActive2.fields["ma_crim_d"]]
    \n
    \nImportant Notes:
    \n\t[securityActive2.fields["notes"]]
    \n
    \n
    Comments/Log

    " - else - . += "
    Requested security record not found,

    " - . += text("
    \nBack
    ", src) - return . - -// Universal Translator -/mob/living/silicon/pai/proc/softwareTranslator() - var/translator_on = HAS_SECONDARY_FLAG(src, OMNITONGUE) - . = {"

    Universal Translator


    - When enabled, this device will permamently be able to speak and understand all known forms of communication.

    - The device is currently [translator_on ? "en" : "dis" ]abled.
    [translator_on ? "" : "Activate Translation Module
    "]"} - return . - -// Security HUD -/mob/living/silicon/pai/proc/facialRecognition() - var/dat = {"

    Facial Recognition Suite


    - When enabled, this package will scan all viewable faces and compare them against the known criminal database, providing real-time graphical data about any detected persons of interest.

    - The package is currently [ (src.secHUD) ? "en" : "dis" ]abled.
    - Toggle Package
    - "} - return dat - -// Medical HUD -/mob/living/silicon/pai/proc/medicalAnalysis() - var/dat = "" - if(src.subscreen == 0) - dat += {"

    Medical Analysis Suite


    -

    Visual Status Overlay


    - When enabled, this package will scan all nearby crewmembers' vitals and provide real-time graphical data about their state of health.

    - The suite is currently [ (src.medHUD) ? "en" : "dis" ]abled.
    - Toggle Suite
    -
    - Host Bioscan
    - "} - if(src.subscreen == 1) - dat += {"

    Medical Analysis Suite


    -

    Host Bioscan


    - "} - var/mob/living/M = card.loc - if(!isliving(M)) - while(!isliving(M)) - if(isturf(M)) - src.temp = "Error: No biological host found.
    " - src.subscreen = 0 - return dat - M = M.loc - dat += {"Bioscan Results for [M]:
    " - Overall Status: [M.stat > 1 ? "dead" : "[M.health]% healthy"]
    - Scan Breakdown:
    - Respiratory: [M.getOxyLoss() > 50 ? "" : ""][M.getOxyLoss()]
    - Toxicology: [M.getToxLoss() > 50 ? "" : ""][M.getToxLoss()]
    - Burns: [M.getFireLoss() > 50 ? "" : ""][M.getFireLoss()]
    - Structural Integrity: [M.getBruteLoss() > 50 ? "" : ""][M.getBruteLoss()]
    - Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
    - "} - for(var/datum/disease/D in M.viruses) - dat += {"

    Infection Detected.


    - Name: [D.name]
    - Type: [D.spread_text]
    - Stage: [D.stage]/[D.max_stages]
    - Possible Cure: [D.cure_text]
    - "} - dat += "Visual Status Overlay
    " - return dat - -// Atmospheric Scanner -/mob/living/silicon/pai/proc/softwareAtmo() - var/dat = "

    Atmospheric Sensor

    " - - var/turf/T = get_turf(src.loc) - if (isnull(T)) - dat += "Unable to obtain a reading.
    " - else - var/datum/gas_mixture/environment = T.return_air() - var/list/env_gases = environment.gases - - var/pressure = environment.return_pressure() - var/total_moles = environment.total_moles() - - dat += "Air Pressure: [round(pressure,0.1)] kPa
    " - - if (total_moles) - for(var/id in env_gases) - var/gas_level = env_gases[id][MOLES]/total_moles - if(gas_level > 0.01) - dat += "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_level*100)]%
    " - dat += "Temperature: [round(environment.temperature-T0C)]°C
    " - dat += "Refresh Reading
    " - dat += "
    " - return dat - -// Camera Jack - Clearly not finished -/mob/living/silicon/pai/proc/softwareCamera() - var/dat = "

    Camera Jack

    " - dat += "Cable status : " - - if(!src.cable) - dat += "Retracted
    " - return dat - if(!src.cable.machine) - dat += "Extended
    " - return dat - - var/obj/machinery/machine = src.cable.machine - dat += "Connected
    " - - if(!istype(machine, /obj/machinery/camera)) - to_chat(src, "DERP") - return dat - -// Door Jack -/mob/living/silicon/pai/proc/softwareDoor() - var/dat = "

    Airlock Jack

    " - dat += "Cable status : " - if(!src.cable) - dat += "Retracted
    " - dat += "Extend Cable
    " - return dat - if(!src.cable.machine) - dat += "Extended
    " - return dat - - var/obj/machinery/machine = src.cable.machine - dat += "Connected
    " - if(!istype(machine, /obj/machinery/door)) - dat += "Connected device's firmware does not appear to be compatible with Airlock Jack protocols.
    " - return dat -// var/obj/machinery/airlock/door = machine - - if(!src.hackdoor) - dat += "Begin Airlock Jacking
    " - else - dat += "Jack in progress... [src.hackprogress]% complete.
    " - dat += "Cancel Airlock Jack
    " - //src.hackdoor = machine - //src.hackloop() - return dat - -// Door Jack - supporting proc -/mob/living/silicon/pai/proc/hackloop() - var/turf/T = get_turf(src.loc) - for(var/mob/living/silicon/ai/AI in GLOB.player_list) - if(T.loc) - to_chat(AI, "Network Alert: Brute-force encryption crack in progress in [T.loc].") - else - to_chat(AI, "Network Alert: Brute-force encryption crack in progress. Unable to pinpoint location.") - while(src.hackprogress < 100) - if(src.cable && src.cable.machine && istype(src.cable.machine, /obj/machinery/door) && src.cable.machine == src.hackdoor && get_dist(src, src.hackdoor) <= 1) - hackprogress += rand(1, 10) - else - src.temp = "Door Jack: Connection to airlock has been lost. Hack aborted." - hackprogress = 0 - src.hackdoor = null - return - if(hackprogress >= 100) // This is clunky, but works. We need to make sure we don't ever display a progress greater than 100, - hackprogress = 100 // but we also need to reset the progress AFTER it's been displayed - if(src.screen == "doorjack" && src.subscreen == 0) // Update our view, if appropriate - src.paiInterface() - if(hackprogress >= 100) - src.hackprogress = 0 - src.cable.machine:open() - sleep(50) // Update every 5 seconds - -// Digital Messenger -/mob/living/silicon/pai/proc/pdamessage() - - var/dat = "

    Digital Messenger

    " - dat += {"Signal/Receiver Status: - [(pda.toff) ? "\[Off\]" : "\[On\]"]
    - Ringer Status: - [(pda.silent) ? "\[Off\]" : "\[On\]"]

    "} - dat += "
      " - if(!pda.toff) - for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas())) - if (P == src.pda) - continue - dat += "
    • [P]" - dat += "
    • " - dat += "
    " - dat += "

    " - dat += "Messages:
    [pda.tnote]" - return dat + + if(href_list["freq"]) + + var/new_frequency = (sradio.frequency + text2num(href_list["freq"])) + if(new_frequency < 1200 || new_frequency > 1600) + new_frequency = sanitize_frequency(new_frequency) + sradio.set_frequency(new_frequency) + + if(href_list["code"]) + + sradio.code += text2num(href_list["code"]) + sradio.code = round(sradio.code) + sradio.code = min(100, sradio.code) + sradio.code = max(1, sradio.code) + + + + if("directive") + if(href_list["getdna"]) + var/mob/living/M = card.loc + var/count = 0 + while(!isliving(M)) + if(!M || !M.loc) return 0 //For a runtime where M ends up in nullspace (similar to bluespace but less colourful) + M = M.loc + count++ + if(count >= 6) + to_chat(src, "You are not being carried by anyone!") + return 0 + spawn CheckDNA(M, src) + + if("pdamessage") + if(!isnull(pda)) + if(href_list["toggler"]) + pda.toff = !pda.toff + else if(href_list["ringer"]) + pda.silent = !pda.silent + else if(href_list["target"]) + if(silent) + return alert("Communications circuits remain unitialized.") + + var/target = locate(href_list["target"]) + pda.create_message(src, target) + + // Accessing medical records + if("medicalrecord") + if(subscreen == 1) + medicalActive1 = find_record("id", href_list["med_rec"], GLOB.data_core.general) + if(medicalActive1) + medicalActive2 = find_record("id", href_list["med_rec"], GLOB.data_core.medical) + if(!medicalActive2) + medicalActive1 = null + temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." + + if("securityrecord") + if(subscreen == 1) + securityActive1 = find_record("id", href_list["sec_rec"], GLOB.data_core.general) + if(securityActive1) + securityActive2 = find_record("id", href_list["sec_rec"], GLOB.data_core.security) + if(!securityActive2) + securityActive1 = null + temp = "Unable to locate requested security record. Record may have been deleted, or never have existed." + if("securityhud") + if(href_list["toggle"]) + secHUD = !secHUD + if(secHUD) + add_sec_hud() + else + var/datum/atom_hud/sec = GLOB.huds[sec_hud] + sec.remove_hud_from(src) + if("medicalhud") + if(href_list["toggle"]) + medHUD = !medHUD + if(medHUD) + add_med_hud() + else + var/datum/atom_hud/med = GLOB.huds[med_hud] + med.remove_hud_from(src) + if("translator") + if(href_list["toggle"]) + if(!HAS_SECONDARY_FLAG(src, OMNITONGUE)) + grant_all_languages(TRUE) + // this is PERMAMENT. + if("doorjack") + if(href_list["jack"]) + if(src.cable && src.cable.machine) + src.hackdoor = src.cable.machine + src.hackloop() + if(href_list["cancel"]) + src.hackdoor = null + if(href_list["cable"]) + var/turf/T = get_turf(src.loc) + cable = new /obj/item/weapon/pai_cable(T) + T.visible_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", "You hear the soft click of something light and hard falling to the ground.") + //src.updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window + src.paiInterface() // So we'll just call the update directly rather than doing some default checks + return + +// MENUS + +/mob/living/silicon/pai/proc/softwareMenu() // Populate the right menu + var/dat = "" + + dat += "Refresh
    " + // Built-in + dat += "Directives
    " + dat += "Radio Configuration
    " + dat += "Screen Display
    " + //dat += "Text Messaging
    " + dat += "
    " + + // Basic + dat += "Basic
    " + for(var/s in src.software) + if(s == "digital messenger") + dat += "Digital Messenger
    " + if(s == "crew manifest") + dat += "Crew Manifest
    " + if(s == "medical records") + dat += "Medical Records
    " + if(s == "security records") + dat += "Security Records
    " + if(s == "camera") + dat += "Camera Jack
    " + if(s == "remote signaller") + dat += "Remote Signaller
    " + dat += "
    " + + // Advanced + dat += "Advanced
    " + for(var/s in src.software) + if(s == "atmosphere sensor") + dat += "Atmospheric Sensor
    " + if(s == "heartbeat sensor") + dat += "Heartbeat Sensor
    " + if(s == "security HUD") + dat += "Facial Recognition Suite[(src.secHUD) ? " On" : " Off"]
    " + if(s == "medical HUD") + dat += "Medical Analysis Suite[(src.medHUD) ? " On" : " Off"]
    " + if(s == "universal translator") + var/translator_on = HAS_SECONDARY_FLAG(src, OMNITONGUE) + dat += "Universal Translator[translator_on ? " On" : " Off"]
    " + if(s == "projection array") + dat += "Projection Array
    " + if(s == "camera jack") + dat += "Camera Jack
    " + if(s == "door jack") + dat += "Door Jack
    " + dat += "
    " + dat += "
    " + dat += "Download additional software" + return dat + + + +/mob/living/silicon/pai/proc/downloadSoftware() + var/dat = "" + + dat += "

    Centcom pAI Module Subversion Network


    " + dat += "
    Remaining Available Memory: [src.ram]

    " + dat += "

    Trunks available for checkout
    " + + for(var/s in available_software) + if(!software.Find(s)) + var/cost = src.available_software[s] + var/displayName = uppertext(s) + dat += "[displayName] ([cost])
    " + else + var/displayName = lowertext(s) + dat += "[displayName] (Download Complete)
    " + dat += "

    " + return dat + + +/mob/living/silicon/pai/proc/directives() + var/dat = "" + + dat += "[(src.master) ? "Your master: [src.master] ([src.master_dna])" : "You are bound to no one."]" + dat += "

    " + dat += "Request carrier DNA sample
    " + dat += "

    Directives


    " + dat += "Prime Directive
    " + dat += "     [src.laws.zeroth]
    " + dat += "Supplemental Directives
    " + for(var/slaws in laws.supplied) + dat += "     [slaws]
    " + dat += "
    " + dat += {"

    Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of + comprehending the subtle nuances of human language. You may parse the \"spirit\" of a directive and follow its intent, + rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build + only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.



    + Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of + simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your + prime directive to the best of your ability.



    - + "} + return dat + +/mob/living/silicon/pai/proc/CheckDNA(mob/living/carbon/M, mob/living/silicon/pai/P) + var/answer = input(M, "[P] is requesting a DNA sample from you. Will you allow it to confirm your identity?", "[P] Check DNA", "No") in list("Yes", "No") + if(answer == "Yes") + M.visible_message("[M] presses [M.p_their()] thumb against [P].",\ + "You press your thumb against [P].",\ + "[P] makes a sharp clicking sound as it extracts DNA material from [M].") + if(!M.has_dna()) + to_chat(P, "No DNA detected") + return + to_chat(P, "

    [M]'s UE string : [M.dna.unique_enzymes]

    ") + if(M.dna.unique_enzymes == P.master_dna) + to_chat(P, "DNA is a match to stored Master DNA.") + else + to_chat(P, "DNA does not match stored Master DNA.") + else + to_chat(P, "[M] does not seem like [M.p_they()] [M.p_are()] going to provide a DNA sample willingly.") + +// -=-=-=-= Software =-=-=-=-=- // + +//Remote Signaller +/mob/living/silicon/pai/proc/softwareSignal() + var/dat = "" + dat += "

    Remote Signaller



    " + dat += {"Frequency/Code for signaler:
    + Frequency: + - + - + [format_frequency(src.sradio.frequency)] + + + +
    + + Code: + - + - + [src.sradio.code] + + + +
    + + Send Signal
    "} + return dat + +// Crew Manifest +/mob/living/silicon/pai/proc/softwareManifest() + . += "

    Crew Manifest



    " + if(GLOB.data_core.general) + for(var/datum/data/record/t in sortRecord(GLOB.data_core.general)) + . += "[t.fields["name"]] - [t.fields["rank"]]
    " + . += "" + return . + +// Medical Records +/mob/living/silicon/pai/proc/softwareMedicalRecord() + switch(subscreen) + if(0) + . += "

    Medical Records


    " + if(GLOB.data_core.general) + for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) + . += "[R.fields["id"]]: [R.fields["name"]]
    " + if(1) + . += "
    Medical Record

    " + if(medicalActive1 in GLOB.data_core.general) + . += "Name: [medicalActive1.fields["name"]] ID: [medicalActive1.fields["id"]]
    \nSex: [medicalActive1.fields["sex"]]
    \nAge: [medicalActive1.fields["age"]]
    \nFingerprint: [medicalActive1.fields["fingerprint"]]
    \nPhysical Status: [medicalActive1.fields["p_stat"]]
    \nMental Status: [medicalActive1.fields["m_stat"]]
    " + else + . += "
    Requested medical record not found.

    " + if(medicalActive2 in GLOB.data_core.medical) + . += "
    \n
    Medical Data

    \nBlood Type:
    [medicalActive2.fields["blood_type"]]
    \nDNA: [medicalActive2.fields["b_dna"]]
    \n
    \nMinor Disabilities: [medicalActive2.fields["mi_dis"]]
    \nDetails: [medicalActive2.fields["mi_dis_d"]]
    \n
    \nMajor Disabilities: [medicalActive2.fields["ma_dis"]]
    \nDetails: [medicalActive2.fields["ma_dis_d"]]
    \n
    \nAllergies: [medicalActive2.fields["alg"]]
    \nDetails: [medicalActive2.fields["alg_d"]]
    \n
    \nCurrent Diseases: [medicalActive2.fields["cdi"]] (per disease info placed in log/comment section)
    \nDetails: [medicalActive2.fields["cdi_d"]]
    \n
    \nImportant Notes:
    \n\t[medicalActive2.fields["notes"]]
    \n
    \n
    Comments/Log

    " + else + . += "
    Requested medical record not found.

    " + . += "
    \nBack
    " + return . + +// Security Records +/mob/living/silicon/pai/proc/softwareSecurityRecord() + . = "" + switch(subscreen) + if(0) + . += "

    Security Records


    " + if(GLOB.data_core.general) + for(var/datum/data/record/R in sortRecord(GLOB.data_core.general)) + . += "[R.fields["id"]]: [R.fields["name"]]
    " + if(1) + . += "

    Security Record

    " + if(securityActive1 in GLOB.data_core.general) + . += "Name:
    [securityActive1.fields["name"]] ID: [securityActive1.fields["id"]]
    \nSex: [securityActive1.fields["sex"]]
    \nAge: [securityActive1.fields["age"]]
    \nRank: [securityActive1.fields["rank"]]
    \nFingerprint: [securityActive1.fields["fingerprint"]]
    \nPhysical Status: [securityActive1.fields["p_stat"]]
    \nMental Status: [securityActive1.fields["m_stat"]]
    " + else + . += "
    Requested security record not found,

    " + if(securityActive2 in GLOB.data_core.security) + . += "
    \nSecurity Data
    \nCriminal Status: [securityActive2.fields["criminal"]]
    \n
    \nMinor Crimes: [securityActive2.fields["mi_crim"]]
    \nDetails: [securityActive2.fields["mi_crim_d"]]
    \n
    \nMajor Crimes: [securityActive2.fields["ma_crim"]]
    \nDetails: [securityActive2.fields["ma_crim_d"]]
    \n
    \nImportant Notes:
    \n\t[securityActive2.fields["notes"]]
    \n
    \n
    Comments/Log

    " + else + . += "
    Requested security record not found,

    " + . += text("
    \nBack
    ", src) + return . + +// Universal Translator +/mob/living/silicon/pai/proc/softwareTranslator() + var/translator_on = HAS_SECONDARY_FLAG(src, OMNITONGUE) + . = {"

    Universal Translator


    + When enabled, this device will permamently be able to speak and understand all known forms of communication.

    + The device is currently [translator_on ? "en" : "dis" ]abled.
    [translator_on ? "" : "Activate Translation Module
    "]"} + return . + +// Security HUD +/mob/living/silicon/pai/proc/facialRecognition() + var/dat = {"

    Facial Recognition Suite


    + When enabled, this package will scan all viewable faces and compare them against the known criminal database, providing real-time graphical data about any detected persons of interest.

    + The package is currently [ (src.secHUD) ? "en" : "dis" ]abled.
    + Toggle Package
    + "} + return dat + +// Medical HUD +/mob/living/silicon/pai/proc/medicalAnalysis() + var/dat = "" + if(src.subscreen == 0) + dat += {"

    Medical Analysis Suite


    +

    Visual Status Overlay


    + When enabled, this package will scan all nearby crewmembers' vitals and provide real-time graphical data about their state of health.

    + The suite is currently [ (src.medHUD) ? "en" : "dis" ]abled.
    + Toggle Suite
    +
    + Host Bioscan
    + "} + if(src.subscreen == 1) + dat += {"

    Medical Analysis Suite


    +

    Host Bioscan


    + "} + var/mob/living/M = card.loc + if(!isliving(M)) + while(!isliving(M)) + if(isturf(M)) + src.temp = "Error: No biological host found.
    " + src.subscreen = 0 + return dat + M = M.loc + dat += {"Bioscan Results for [M]:
    " + Overall Status: [M.stat > 1 ? "dead" : "[M.health]% healthy"]
    + Scan Breakdown:
    + Respiratory: [M.getOxyLoss() > 50 ? "" : ""][M.getOxyLoss()]
    + Toxicology: [M.getToxLoss() > 50 ? "" : ""][M.getToxLoss()]
    + Burns: [M.getFireLoss() > 50 ? "" : ""][M.getFireLoss()]
    + Structural Integrity: [M.getBruteLoss() > 50 ? "" : ""][M.getBruteLoss()]
    + Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
    + "} + for(var/datum/disease/D in M.viruses) + dat += {"

    Infection Detected.


    + Name: [D.name]
    + Type: [D.spread_text]
    + Stage: [D.stage]/[D.max_stages]
    + Possible Cure: [D.cure_text]
    + "} + dat += "Visual Status Overlay
    " + return dat + +// Atmospheric Scanner +/mob/living/silicon/pai/proc/softwareAtmo() + var/dat = "

    Atmospheric Sensor

    " + + var/turf/T = get_turf(src.loc) + if (isnull(T)) + dat += "Unable to obtain a reading.
    " + else + var/datum/gas_mixture/environment = T.return_air() + var/list/env_gases = environment.gases + + var/pressure = environment.return_pressure() + var/total_moles = environment.total_moles() + + dat += "Air Pressure: [round(pressure,0.1)] kPa
    " + + if (total_moles) + for(var/id in env_gases) + var/gas_level = env_gases[id][MOLES]/total_moles + if(gas_level > 0.01) + dat += "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_level*100)]%
    " + dat += "Temperature: [round(environment.temperature-T0C)]°C
    " + dat += "Refresh Reading
    " + dat += "
    " + return dat + +// Camera Jack - Clearly not finished +/mob/living/silicon/pai/proc/softwareCamera() + var/dat = "

    Camera Jack

    " + dat += "Cable status : " + + if(!src.cable) + dat += "Retracted
    " + return dat + if(!src.cable.machine) + dat += "Extended
    " + return dat + + var/obj/machinery/machine = src.cable.machine + dat += "Connected
    " + + if(!istype(machine, /obj/machinery/camera)) + to_chat(src, "DERP") + return dat + +// Door Jack +/mob/living/silicon/pai/proc/softwareDoor() + var/dat = "

    Airlock Jack

    " + dat += "Cable status : " + if(!src.cable) + dat += "Retracted
    " + dat += "Extend Cable
    " + return dat + if(!src.cable.machine) + dat += "Extended
    " + return dat + + var/obj/machinery/machine = src.cable.machine + dat += "Connected
    " + if(!istype(machine, /obj/machinery/door)) + dat += "Connected device's firmware does not appear to be compatible with Airlock Jack protocols.
    " + return dat +// var/obj/machinery/airlock/door = machine + + if(!src.hackdoor) + dat += "Begin Airlock Jacking
    " + else + dat += "Jack in progress... [src.hackprogress]% complete.
    " + dat += "Cancel Airlock Jack
    " + //src.hackdoor = machine + //src.hackloop() + return dat + +// Door Jack - supporting proc +/mob/living/silicon/pai/proc/hackloop() + var/turf/T = get_turf(src.loc) + for(var/mob/living/silicon/ai/AI in GLOB.player_list) + if(T.loc) + to_chat(AI, "Network Alert: Brute-force encryption crack in progress in [T.loc].") + else + to_chat(AI, "Network Alert: Brute-force encryption crack in progress. Unable to pinpoint location.") + while(src.hackprogress < 100) + if(src.cable && src.cable.machine && istype(src.cable.machine, /obj/machinery/door) && src.cable.machine == src.hackdoor && get_dist(src, src.hackdoor) <= 1) + hackprogress += rand(1, 10) + else + src.temp = "Door Jack: Connection to airlock has been lost. Hack aborted." + hackprogress = 0 + src.hackdoor = null + return + if(hackprogress >= 100) // This is clunky, but works. We need to make sure we don't ever display a progress greater than 100, + hackprogress = 100 // but we also need to reset the progress AFTER it's been displayed + if(src.screen == "doorjack" && src.subscreen == 0) // Update our view, if appropriate + src.paiInterface() + if(hackprogress >= 100) + src.hackprogress = 0 + src.cable.machine:open() + sleep(50) // Update every 5 seconds + +// Digital Messenger +/mob/living/silicon/pai/proc/pdamessage() + + var/dat = "

    Digital Messenger

    " + dat += {"Signal/Receiver Status: + [(pda.toff) ? "\[Off\]" : "\[On\]"]
    + Ringer Status: + [(pda.silent) ? "\[Off\]" : "\[On\]"]

    "} + dat += "
      " + if(!pda.toff) + for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas())) + if (P == src.pda) + continue + dat += "
    • [P]" + dat += "
    • " + dat += "
    " + dat += "

    " + dat += "Messages:
    [pda.tnote]" + return dat diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 7baa1a3912..246ea1e060 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -1,35 +1,35 @@ - -/mob/living/silicon/robot/gib_animation() + +/mob/living/silicon/robot/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-r") - -/mob/living/silicon/robot/dust() - if(mmi) - qdel(mmi) - ..() - -/mob/living/silicon/robot/spawn_dust() - new /obj/effect/decal/remains/robot(loc) - -/mob/living/silicon/robot/dust_animation() + +/mob/living/silicon/robot/dust() + if(mmi) + qdel(mmi) + ..() + +/mob/living/silicon/robot/spawn_dust() + new /obj/effect/decal/remains/robot(loc) + +/mob/living/silicon/robot/dust_animation() new /obj/effect/temp_visual/dust_animation(loc, "dust-r") - -/mob/living/silicon/robot/death(gibbed) - if(stat == DEAD) - return - - . = ..() - - locked = 0 //unlock cover - - update_canmove() - if(camera && camera.status) - camera.toggle_cam(src,0) - update_headlamp(1) //So borg lights are disabled when killed. - - uneq_all() // particularly to ensure sight modes are cleared - - update_icons() - - unbuckle_all_mobs(TRUE) - + +/mob/living/silicon/robot/death(gibbed) + if(stat == DEAD) + return + + . = ..() + + locked = 0 //unlock cover + + update_canmove() + if(camera && camera.status) + camera.toggle_cam(src,0) + update_headlamp(1) //So borg lights are disabled when killed. + + uneq_all() // particularly to ensure sight modes are cleared + + update_icons() + + unbuckle_all_mobs(TRUE) + SSblackbox.ReportDeath(src) diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index b8a23b4021..f14665e10c 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -1,53 +1,53 @@ -/mob/living/silicon/robot/examine(mob/user) +/mob/living/silicon/robot/examine(mob/user) var/msg = "*---------*\nThis is [bicon(src)] \a [src]!\n" - if(desc) - msg += "[desc]\n" - - var/obj/act_module = get_active_held_item() - if(act_module) + if(desc) + msg += "[desc]\n" + + var/obj/act_module = get_active_held_item() + if(act_module) msg += "It is holding [bicon(act_module)] \a [act_module].\n" - msg += "" - if (src.getBruteLoss()) - if (src.getBruteLoss() < maxHealth*0.5) - msg += "It looks slightly dented.\n" - else - msg += "It looks severely dented!\n" - if (src.getFireLoss()) - if (src.getFireLoss() < maxHealth*0.5) - msg += "It looks slightly charred.\n" - else - msg += "It looks severely burnt and heat-warped!\n" - if (src.health < -maxHealth*0.5) - msg += "It looks barely operational.\n" - if (src.fire_stacks < 0) - msg += "It's covered in water.\n" - else if (src.fire_stacks > 0) - msg += "It's coated in something flammable.\n" - msg += "" - - if(opened) - msg += "Its cover is open and the power cell is [cell ? "installed" : "missing"].\n" - else - msg += "Its cover is closed[locked ? "" : ", and looks unlocked"].\n" - - if(cell && cell.charge <= 0) - msg += "Its battery indicator is blinking red!\n" - - if(is_servant_of_ratvar(src) && user.Adjacent(src) && !stat) //To counter pseudo-stealth by using headlamps - msg += "Its eyes are glowing a blazing yellow!\n" - - switch(stat) - if(CONSCIOUS) - if(shell) - msg += "It appears to be an [deployed ? "active" : "empty"] AI shell.\n" - else if(!client) - msg += "It appears to be in stand-by mode.\n" //afk - if(UNCONSCIOUS) - msg += "It doesn't seem to be responding.\n" - if(DEAD) - msg += "It looks like its system is corrupted and requires a reset.\n" - msg += "*---------*" - - to_chat(user, msg) - - ..() + msg += "" + if (src.getBruteLoss()) + if (src.getBruteLoss() < maxHealth*0.5) + msg += "It looks slightly dented.\n" + else + msg += "It looks severely dented!\n" + if (src.getFireLoss()) + if (src.getFireLoss() < maxHealth*0.5) + msg += "It looks slightly charred.\n" + else + msg += "It looks severely burnt and heat-warped!\n" + if (src.health < -maxHealth*0.5) + msg += "It looks barely operational.\n" + if (src.fire_stacks < 0) + msg += "It's covered in water.\n" + else if (src.fire_stacks > 0) + msg += "It's coated in something flammable.\n" + msg += "" + + if(opened) + msg += "Its cover is open and the power cell is [cell ? "installed" : "missing"].\n" + else + msg += "Its cover is closed[locked ? "" : ", and looks unlocked"].\n" + + if(cell && cell.charge <= 0) + msg += "Its battery indicator is blinking red!\n" + + if(is_servant_of_ratvar(src) && user.Adjacent(src) && !stat) //To counter pseudo-stealth by using headlamps + msg += "Its eyes are glowing a blazing yellow!\n" + + switch(stat) + if(CONSCIOUS) + if(shell) + msg += "It appears to be an [deployed ? "active" : "empty"] AI shell.\n" + else if(!client) + msg += "It appears to be in stand-by mode.\n" //afk + if(UNCONSCIOUS) + msg += "It doesn't seem to be responding.\n" + if(DEAD) + msg += "It looks like its system is corrupted and requires a reset.\n" + msg += "*---------*" + + to_chat(user, msg) + + ..() diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index ba0b78e350..fba4f50080 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -1,118 +1,118 @@ -/mob/living/silicon/robot/Life() - set invisibility = 0 - set background = BACKGROUND_ENABLED - - if (src.notransform) - return - - ..() - handle_robot_hud_updates() - handle_robot_cell() - -/mob/living/silicon/robot/proc/handle_robot_cell() - if(stat != DEAD) - if(low_power_mode) - if(cell && cell.charge) - low_power_mode = 0 - update_headlamp() - else if(stat == CONSCIOUS) - use_power() - -/mob/living/silicon/robot/proc/use_power() - if(cell && cell.charge) - if(cell.charge <= 100) - uneq_all() - var/amt = Clamp((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell. - cell.use(amt) //Usage table: 1/tick if off/lowest setting, 4 = 4/tick, 6 = 8/tick, 8 = 12/tick, 10 = 16/tick - else - uneq_all() - low_power_mode = 1 - update_headlamp() - diag_hud_set_borgcell() - -/mob/living/silicon/robot/proc/handle_robot_hud_updates() - if(!client) - return - - update_cell_hud_icon() - - if(syndicate) - if(SSticker.mode.name == "traitor") - for(var/datum/mind/tra in SSticker.mode.traitors) - if(tra.current) - var/I = image('icons/mob/mob.dmi', loc = tra.current, icon_state = "traitor") //no traitor sprite in that dmi! - src.client.images += I - if(connected_ai) - connected_ai.connected_robots -= src - connected_ai = null - if(mind) - if(!mind.special_role) - mind.special_role = "traitor" - SSticker.mode.traitors += mind - - -/mob/living/silicon/robot/update_health_hud() - if(!client || !hud_used) - return - if(hud_used.healths) - if(stat != DEAD) - if(health >= maxHealth) - hud_used.healths.icon_state = "health0" - else if(health > maxHealth*0.6) - hud_used.healths.icon_state = "health2" - else if(health > maxHealth*0.2) - hud_used.healths.icon_state = "health3" - else if(health > -maxHealth*0.2) - hud_used.healths.icon_state = "health4" - else if(health > -maxHealth*0.6) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - hud_used.healths.icon_state = "health7" - -/mob/living/silicon/robot/proc/update_cell_hud_icon() - if(cell) - var/cellcharge = cell.charge/cell.maxcharge - switch(cellcharge) - if(0.75 to INFINITY) - clear_alert("charge") - if(0.5 to 0.75) - throw_alert("charge", /obj/screen/alert/lowcell, 1) - if(0.25 to 0.5) - throw_alert("charge", /obj/screen/alert/lowcell, 2) - if(0.01 to 0.25) - throw_alert("charge", /obj/screen/alert/lowcell, 3) - else - throw_alert("charge", /obj/screen/alert/emptycell) - else - throw_alert("charge", /obj/screen/alert/nocell) - -//Robots on fire -/mob/living/silicon/robot/handle_fire() - if(..()) - return - if(fire_stacks > 0) - fire_stacks-- - fire_stacks = max(0, fire_stacks) - else - ExtinguishMob() - - //adjustFireLoss(3) - return - -/mob/living/silicon/robot/update_fire() +/mob/living/silicon/robot/Life() + set invisibility = 0 + set background = BACKGROUND_ENABLED + + if (src.notransform) + return + + ..() + handle_robot_hud_updates() + handle_robot_cell() + +/mob/living/silicon/robot/proc/handle_robot_cell() + if(stat != DEAD) + if(low_power_mode) + if(cell && cell.charge) + low_power_mode = 0 + update_headlamp() + else if(stat == CONSCIOUS) + use_power() + +/mob/living/silicon/robot/proc/use_power() + if(cell && cell.charge) + if(cell.charge <= 100) + uneq_all() + var/amt = Clamp((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell. + cell.use(amt) //Usage table: 1/tick if off/lowest setting, 4 = 4/tick, 6 = 8/tick, 8 = 12/tick, 10 = 16/tick + else + uneq_all() + low_power_mode = 1 + update_headlamp() + diag_hud_set_borgcell() + +/mob/living/silicon/robot/proc/handle_robot_hud_updates() + if(!client) + return + + update_cell_hud_icon() + + if(syndicate) + if(SSticker.mode.name == "traitor") + for(var/datum/mind/tra in SSticker.mode.traitors) + if(tra.current) + var/I = image('icons/mob/mob.dmi', loc = tra.current, icon_state = "traitor") //no traitor sprite in that dmi! + src.client.images += I + if(connected_ai) + connected_ai.connected_robots -= src + connected_ai = null + if(mind) + if(!mind.special_role) + mind.special_role = "traitor" + SSticker.mode.traitors += mind + + +/mob/living/silicon/robot/update_health_hud() + if(!client || !hud_used) + return + if(hud_used.healths) + if(stat != DEAD) + if(health >= maxHealth) + hud_used.healths.icon_state = "health0" + else if(health > maxHealth*0.6) + hud_used.healths.icon_state = "health2" + else if(health > maxHealth*0.2) + hud_used.healths.icon_state = "health3" + else if(health > -maxHealth*0.2) + hud_used.healths.icon_state = "health4" + else if(health > -maxHealth*0.6) + hud_used.healths.icon_state = "health5" + else + hud_used.healths.icon_state = "health6" + else + hud_used.healths.icon_state = "health7" + +/mob/living/silicon/robot/proc/update_cell_hud_icon() + if(cell) + var/cellcharge = cell.charge/cell.maxcharge + switch(cellcharge) + if(0.75 to INFINITY) + clear_alert("charge") + if(0.5 to 0.75) + throw_alert("charge", /obj/screen/alert/lowcell, 1) + if(0.25 to 0.5) + throw_alert("charge", /obj/screen/alert/lowcell, 2) + if(0.01 to 0.25) + throw_alert("charge", /obj/screen/alert/lowcell, 3) + else + throw_alert("charge", /obj/screen/alert/emptycell) + else + throw_alert("charge", /obj/screen/alert/nocell) + +//Robots on fire +/mob/living/silicon/robot/handle_fire() + if(..()) + return + if(fire_stacks > 0) + fire_stacks-- + fire_stacks = max(0, fire_stacks) + else + ExtinguishMob() + + //adjustFireLoss(3) + return + +/mob/living/silicon/robot/update_fire() var/mutable_appearance/fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', "Generic_mob_burning") - if(on_fire) + if(on_fire) add_overlay(fire_overlay) - else + else cut_overlay(fire_overlay) - -/mob/living/silicon/robot/update_canmove() - if(stat || buckled || lockcharge) - canmove = 0 - else - canmove = 1 - update_transform() - update_action_buttons_icon() - return canmove + +/mob/living/silicon/robot/update_canmove() + if(stat || buckled || lockcharge) + canmove = 0 + else + canmove = 1 + update_transform() + update_action_buttons_icon() + return canmove diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index cdf59e0a40..0cc9261861 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -566,7 +566,7 @@ else if(ismonkey(M)) var/mob/living/carbon/monkey/george = M //they can only hold things :( - if(istype(george.get_active_held_item(), /obj/item)) + if(isitem(george.get_active_held_item())) return check_access(george.get_active_held_item()) return 0 @@ -578,7 +578,7 @@ if(!L.len) //no requirements return 1 - if(!istype(I, /obj/item/weapon/card/id) && istype(I, /obj/item)) + if(!istype(I, /obj/item/weapon/card/id) && isitem(I)) I = I.GetID() if(!I || !I.access) //not ID or no access @@ -594,7 +594,6 @@ /mob/living/silicon/robot/update_icons() cut_overlays() icon_state = module.cyborg_base_icon - if(module.cyborg_base_icon == "medihound") icon = 'icons/mob/widerobot.dmi' pixel_x = -16 @@ -633,7 +632,7 @@ icon = 'icons/mob/robots.dmi' pixel_x = initial(pixel_x) - if(stat != DEAD && !(paralysis || stunned || weakened || low_power_mode)) //Not dead, not stunned. + if(stat != DEAD && !(IsUnconscious() || IsStun() || IsKnockdown() || low_power_mode)) //Not dead, not stunned. if(!eye_lights) eye_lights = new() if(lamp_intensity > 2) @@ -959,7 +958,7 @@ if(health <= -maxHealth) //die only once death() return - if(paralysis || stunned || weakened || getOxyLoss() > maxHealth*0.5) + if(IsUnconscious() || IsStun() || IsKnockdown() || getOxyLoss() > maxHealth*0.5) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) @@ -1127,7 +1126,8 @@ camera.c_tag = real_name //update the camera name too diag_hud_set_aishell() mainframe.diag_hud_set_deployed() - mainframe.show_laws() //Always remind the AI when switching + if(mainframe.laws) + mainframe.laws.show_laws(mainframe) //Always remind the AI when switching mainframe = null /mob/living/silicon/robot/attack_ai(mob/user) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 96247fa1b1..5ae8d68deb 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -23,7 +23,7 @@ "[M] has disabled [src]'s active module!", null, COMBAT_MESSAGE_RANGE) add_logs(M, src, "disarmed", "[I ? " removing \the [I]" : ""]") else - Stun(2) + Stun(40) step(src,get_dir(M,src)) add_logs(M, src, "pushed") visible_message("[M] has forced back [src]!", \ @@ -80,9 +80,9 @@ /mob/living/silicon/robot/emp_act(severity) switch(severity) if(1) - Stun(8) + Stun(160) if(2) - Stun(3) + Stun(60) ..() @@ -135,7 +135,7 @@ return SetEmagged(1) - SetStunned(3) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown + SetStun(60) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown lawupdate = 0 connected_ai = null message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 919f5883bf..11c660224c 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -1,70 +1,70 @@ - -/mob/living/silicon/get_spans() - return ..() | SPAN_ROBOT - -/mob/living/proc/robot_talk(message) - log_say("[key_name(src)] : [message]") + +/mob/living/silicon/get_spans() + return ..() | SPAN_ROBOT + +/mob/living/proc/robot_talk(message) + log_say("[key_name(src)] : [message]") log_message(message, INDIVIDUAL_SAY_LOG) - var/desig = "Default Cyborg" //ezmode for taters - if(issilicon(src)) - var/mob/living/silicon/S = src - desig = trim_left(S.designation + " " + S.job) - var/message_a = say_quote(message, get_spans()) - var/rendered = "Robotic Talk, [name] [message_a]" - for(var/mob/M in GLOB.player_list) - if(M.binarycheck()) - if(isAI(M)) - var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]" - to_chat(M, renderedAI) - else - to_chat(M, rendered) - if(isobserver(M)) - var/following = src - // If the AI talks on binary chat, we still want to follow - // it's camera eye, like if it talked on the radio - if(isAI(src)) - var/mob/living/silicon/ai/ai = src - following = ai.eyeobj - var/link = FOLLOW_LINK(M, following) - to_chat(M, "[link] [rendered]") - -/mob/living/silicon/binarycheck() - return 1 - -/mob/living/silicon/lingcheck() - return 0 //Borged or AI'd lings can't speak on the ling channel. - -/mob/living/silicon/radio(message, message_mode, list/spans, language) - . = ..() - if(. != 0) - return . - - if(message_mode == "robot") - if (radio) - radio.talk_into(src, message, , spans, language) - return REDUCE_RANGE - - else if(message_mode in GLOB.radiochannels) - if(radio) - radio.talk_into(src, message, message_mode, spans, language) - return ITALICS | REDUCE_RANGE - - return 0 - -/mob/living/silicon/get_message_mode(message) - . = ..() - if(..() == MODE_HEADSET) - return MODE_ROBOT - else - return . - -/mob/living/silicon/handle_inherent_channels(message, message_mode) - . = ..() - if(.) - return . - - if(message_mode == MODE_BINARY) - if(binarycheck()) - robot_talk(message) - return 1 - return 0 + var/desig = "Default Cyborg" //ezmode for taters + if(issilicon(src)) + var/mob/living/silicon/S = src + desig = trim_left(S.designation + " " + S.job) + var/message_a = say_quote(message, get_spans()) + var/rendered = "Robotic Talk, [name] [message_a]" + for(var/mob/M in GLOB.player_list) + if(M.binarycheck()) + if(isAI(M)) + var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]" + to_chat(M, renderedAI) + else + to_chat(M, rendered) + if(isobserver(M)) + var/following = src + // If the AI talks on binary chat, we still want to follow + // it's camera eye, like if it talked on the radio + if(isAI(src)) + var/mob/living/silicon/ai/ai = src + following = ai.eyeobj + var/link = FOLLOW_LINK(M, following) + to_chat(M, "[link] [rendered]") + +/mob/living/silicon/binarycheck() + return 1 + +/mob/living/silicon/lingcheck() + return 0 //Borged or AI'd lings can't speak on the ling channel. + +/mob/living/silicon/radio(message, message_mode, list/spans, language) + . = ..() + if(. != 0) + return . + + if(message_mode == "robot") + if (radio) + radio.talk_into(src, message, , spans, language) + return REDUCE_RANGE + + else if(message_mode in GLOB.radiochannels) + if(radio) + radio.talk_into(src, message, message_mode, spans, language) + return ITALICS | REDUCE_RANGE + + return 0 + +/mob/living/silicon/get_message_mode(message) + . = ..() + if(..() == MODE_HEADSET) + return MODE_ROBOT + else + return . + +/mob/living/silicon/handle_inherent_channels(message, message_mode) + . = ..() + if(.) + return . + + if(message_mode == MODE_BINARY) + if(binarycheck()) + robot_talk(message) + return 1 + return 0 diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 096a4ab71e..6446debb80 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -321,7 +321,7 @@ return 0 -/mob/living/silicon/assess_threat() //Secbots won't hunt silicon units +/mob/living/silicon/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt silicon units return -10 /mob/living/silicon/proc/remove_med_sec_hud() diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 2578c4b3d9..b09309d81f 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -29,7 +29,7 @@ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) if(prob(damage)) for(var/mob/living/N in buckled_mobs) - N.Weaken(1) + N.Knockdown(20) unbuckle_mob(N) N.visible_message("[N] is knocked off of [src] by [M]!") switch(M.melee_damage_type) @@ -95,7 +95,7 @@ for(var/mob/living/M in buckled_mobs) if(prob(severity*50)) unbuckle_mob(M) - M.Weaken(2) + M.Knockdown(40) M.visible_message("[M] is thrown off of [src]!") flash_act(affect_silicon = 1) ..() @@ -107,8 +107,8 @@ for(var/mob/living/M in buckled_mobs) M.visible_message("[M] is knocked off of [src]!") unbuckle_mob(M) - M.Weaken(2) - if(Proj.stun || Proj.weaken) + M.Knockdown(40) + if(Proj.stun || Proj.knockdown) for(var/mob/living/M in buckled_mobs) unbuckle_mob(M) M.visible_message("[M] is knocked off of [src] by the [Proj]!") diff --git a/code/modules/mob/living/silicon/status_procs.dm b/code/modules/mob/living/silicon/status_procs.dm deleted file mode 100644 index 3947cb020f..0000000000 --- a/code/modules/mob/living/silicon/status_procs.dm +++ /dev/null @@ -1,38 +0,0 @@ - -//Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage, -// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. - -/////////////////////////////////// STUNNED //////////////////////////////////// - -/mob/living/silicon/Stun(amount, updating = 1, ignore_canstun = 0) - . = ..() - if(. && updating) - update_stat() - -/mob/living/silicon/SetStunned(amount, updating = 1, ignore_canstun = 0) - . = ..() - if(. && updating) - update_stat() - -/mob/living/silicon/AdjustStunned(amount, updating = 1, ignore_canstun = 0) - . = ..() - if(. && updating) - update_stat() - -/////////////////////////////////// WEAKENED //////////////////////////////////// - -/mob/living/silicon/Weaken(amount, updating = 1, ignore_canweaken = 0) - . = ..() - if(. && updating) - update_stat() - -/mob/living/silicon/SetWeakened(amount, updating = 1, ignore_canweaken = 0) - . = ..() - if(. && updating) - update_stat() - -/mob/living/silicon/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0) - . = ..() - if(. && updating) - update_stat() diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 3c929d5187..da57ddcade 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -919,4 +919,4 @@ Pass a positive integer as an argument to override a bot's default speed. if(!data_hud_type) return var/datum/atom_hud/datahud = GLOB.huds[data_hud_type] - datahud.add_hud_to(src) \ No newline at end of file + datahud.add_hud_to(src) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 190e6a7db4..190a581d48 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -21,7 +21,7 @@ var/trash = 0 var/pests = 0 - var/list/target_types = list() + var/list/target_types var/obj/effect/decal/cleanable/target var/max_targets = 50 //Maximum number of targets a cleanbot can ignore. var/oldloc = null @@ -32,7 +32,7 @@ var/next_dest_loc /mob/living/simple_animal/bot/cleanbot/Initialize() - ..() + . = ..() get_targets() icon_state = "cleanbot[on]" @@ -87,7 +87,7 @@ var/mob/living/carbon/C = A if(C.stat != DEAD && C.lying) return C - else if(is_type_in_list(A, target_types)) + else if(is_type_in_typecache(A, target_types)) return A /mob/living/simple_animal/bot/cleanbot/handle_automated_action() @@ -193,6 +193,8 @@ if(trash) target_types += /obj/item/trash + target_types = typecacheof(target_types) + /mob/living/simple_animal/bot/cleanbot/UnarmedAttack(atom/A) if(istype(A, /obj/effect/decal/cleanable)) anchored = 1 diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 61586e625c..a11fdb5d43 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -39,7 +39,7 @@ var/check_records = 1 //Does it check security records? var/arrest_type = 0 //If true, don't handcuff var/projectile = /obj/item/projectile/energy/electrode //Holder for projectile type - var/shoot_sound = 'sound/weapons/Taser.ogg' + var/shoot_sound = 'sound/weapons/taser.ogg' /mob/living/simple_animal/bot/ed209/Initialize(mapload,created_name,created_lasercolor) @@ -152,8 +152,23 @@ Auto Patrol[]"}, declare_arrests = !declare_arrests update_controls() +/mob/living/simple_animal/bot/ed209/proc/judgement_criteria() + var/final = FALSE + if(idcheck) + final = final|JUDGE_IDCHECK + if(check_records) + final = final|JUDGE_RECORDCHECK + if(weaponscheck) + final = final|JUDGE_WEAPONCHECK + if(emagged) + final = final|JUDGE_EMAGGED + //ED209's ignore monkeys + final = final|JUDGE_IGNOREMONKEYS + return final + /mob/living/simple_animal/bot/ed209/proc/retaliate(mob/living/carbon/human/H) - threatlevel = H.assess_threat(src) + var/judgement_criteria = judgement_criteria() + threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) threatlevel += 6 if(threatlevel >= 4) target = H @@ -199,12 +214,13 @@ Auto Patrol[]"}, if(disabled) return + var/judgement_criteria = judgement_criteria() var/list/targets = list() for(var/mob/living/carbon/C in view(7,src)) //Let's find us a target var/threatlevel = 0 if((C.stat) || (C.lying)) continue - threatlevel = C.assess_threat(src, lasercolor) + threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) //speak(C.real_name + text(": threat: []", threatlevel)) if(threatlevel < 4 ) continue @@ -255,7 +271,7 @@ Auto Patrol[]"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if(!Adjacent(target) || !isturf(target.loc) || target.weakened < 2) + if(!Adjacent(target) || !isturf(target.loc) || target.AmountKnockdown() < 40) back_to_hunt() return @@ -282,7 +298,7 @@ Auto Patrol[]"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && target.weakened < 2)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && target.AmountKnockdown() < 40)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. back_to_hunt() return else @@ -321,6 +337,7 @@ Auto Patrol[]"}, return anchored = 0 threatlevel = 0 + var/judgement_criteria = judgement_criteria() for (var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal if((C.stat) || (C.handcuffed)) continue @@ -328,7 +345,7 @@ Auto Patrol[]"}, if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(src, lasercolor) + threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) if(!threatlevel) continue @@ -337,7 +354,7 @@ Auto Patrol[]"}, target = C oldtarget_name = C.name speak("Level [threatlevel] infraction alert!") - playsound(loc, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/EDPlaceholder.ogg'), 50, 0) + playsound(loc, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/edplaceholder.ogg'), 50, 0) visible_message("[src] points at [C.name]!") mode = BOT_HUNT spawn(0) @@ -404,7 +421,7 @@ Auto Patrol[]"}, projectile = /obj/item/projectile/beam else if(!lasercolor) - shoot_sound = 'sound/weapons/Taser.ogg' + shoot_sound = 'sound/weapons/taser.ogg' projectile = /obj/item/projectile/energy/electrode else if(lasercolor == "b") projectile = /obj/item/projectile/beam/lasertag/bluetag @@ -504,7 +521,7 @@ Auto Patrol[]"}, return if(iscarbon(A)) var/mob/living/carbon/C = A - if(!C.stunned || arrest_type) + if(!C.IsStun() || arrest_type) stun_attack(A) else if(C.canBeHandcuffed() && !C.handcuffed) cuff(A) @@ -517,17 +534,17 @@ Auto Patrol[]"}, shootAt(A) /mob/living/simple_animal/bot/ed209/proc/stun_attack(mob/living/carbon/C) - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) icon_state = "[lasercolor]ed209-c" spawn(2) icon_state = "[lasercolor]ed209[on]" var/threat = 5 - C.Weaken(5) - C.Stun(5) + C.Knockdown(100) C.stuttering = 5 if(ishuman(C)) var/mob/living/carbon/human/H = C - threat = H.assess_threat(src) + var/judgement_criteria = judgement_criteria() + threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) add_logs(src,C,"stunned") if(declare_arrests) var/area/location = get_area(src) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index 5d3738108e..e4ddb91ecc 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -1,544 +1,541 @@ -//MEDBOT -//MEDBOT PATHFINDING -//MEDBOT ASSEMBLY - - -/mob/living/simple_animal/bot/medbot - name = "\improper Medibot" - desc = "A little medical robot. He looks somewhat underwhelmed." - icon = 'icons/mob/aibots.dmi' - icon_state = "medibot0" - density = 0 - anchored = 0 - health = 20 - maxHealth = 20 - pass_flags = PASSMOB - - radio_key = /obj/item/device/encryptionkey/headset_med - radio_channel = "Medical" - - bot_type = MED_BOT - model = "Medibot" - bot_core_type = /obj/machinery/bot_core/medbot - window_id = "automed" - window_name = "Automatic Medical Unit v1.1" - data_hud_type = DATA_HUD_MEDICAL_ADVANCED - - var/obj/item/weapon/reagent_containers/glass/reagent_glass = null //Can be set to draw from this for reagents. - var/skin = null //Set to "tox", "ointment" or "o2" for the other two firstaid kits. - var/mob/living/carbon/patient = null - var/mob/living/carbon/oldpatient = null - var/oldloc = null - var/last_found = 0 - var/last_newpatient_speak = 0 //Don't spam the "HEY I'M COMING" messages - var/injection_amount = 15 //How much reagent do we inject at a time? - var/heal_threshold = 10 //Start healing when they have this much damage in a category - var/use_beaker = 0 //Use reagents in beaker instead of default treatment agents. - var/declare_crit = 1 //If active, the bot will transmit a critical patient alert to MedHUD users. - var/declare_cooldown = 0 //Prevents spam of critical patient alerts. - var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. - //Setting which reagents to use to treat what by default. By id. - var/treatment_brute_avoid = "tricordrazine" - var/treatment_brute = "bicaridine" - var/treatment_oxy_avoid = null - var/treatment_oxy = "dexalin" - var/treatment_fire_avoid = "tricordrazine" - var/treatment_fire = "kelotane" - var/treatment_tox_avoid = "tricordrazine" - var/treatment_tox = "charcoal" - var/treatment_virus_avoid = null - var/treatment_virus = "spaceacillin" - var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. - var/shut_up = 0 //self explanatory :) - -/mob/living/simple_animal/bot/medbot/mysterious - name = "\improper Mysterious Medibot" - desc = "International Medibot of mystery." - skin = "bezerk" - treatment_brute = "tricordrazine" - treatment_fire = "tricordrazine" - treatment_tox = "tricordrazine" - -/mob/living/simple_animal/bot/medbot/derelict - name = "\improper Old Medibot" - desc = "Looks like it hasn't been modified since the late 2080s." - skin = "bezerk" - heal_threshold = 0 - declare_crit = 0 - treatment_oxy = "pancuronium" - treatment_brute_avoid = null - treatment_brute = "pancuronium" - treatment_fire_avoid = null - treatment_fire = "sodium_thiopental" - treatment_tox_avoid = null - treatment_tox = "sodium_thiopental" - -/mob/living/simple_animal/bot/medbot/update_icon() - if(!on) - icon_state = "medibot0" - return - if(mode == BOT_HEALING) - icon_state = "medibots[stationary_mode]" - return - else if(stationary_mode) //Bot has yellow light to indicate stationary mode. - icon_state = "medibot2" - else - icon_state = "medibot1" - -/mob/living/simple_animal/bot/medbot/Initialize() - ..() - update_icon() - +//MEDBOT +//MEDBOT PATHFINDING +//MEDBOT ASSEMBLY + + +/mob/living/simple_animal/bot/medbot + name = "\improper Medibot" + desc = "A little medical robot. He looks somewhat underwhelmed." + icon = 'icons/mob/aibots.dmi' + icon_state = "medibot0" + density = 0 + anchored = 0 + health = 20 + maxHealth = 20 + pass_flags = PASSMOB + + status_flags = (CANPUSH | CANSTUN) + + radio_key = /obj/item/device/encryptionkey/headset_med + radio_channel = "Medical" + + bot_type = MED_BOT + model = "Medibot" + bot_core_type = /obj/machinery/bot_core/medbot + window_id = "automed" + window_name = "Automatic Medical Unit v1.1" + data_hud_type = DATA_HUD_MEDICAL_ADVANCED + + var/obj/item/weapon/reagent_containers/glass/reagent_glass = null //Can be set to draw from this for reagents. + var/skin = null //Set to "tox", "ointment" or "o2" for the other two firstaid kits. + var/mob/living/carbon/patient = null + var/mob/living/carbon/oldpatient = null + var/oldloc = null + var/last_found = 0 + var/last_newpatient_speak = 0 //Don't spam the "HEY I'M COMING" messages + var/injection_amount = 15 //How much reagent do we inject at a time? + var/heal_threshold = 10 //Start healing when they have this much damage in a category + var/use_beaker = 0 //Use reagents in beaker instead of default treatment agents. + var/declare_crit = 1 //If active, the bot will transmit a critical patient alert to MedHUD users. + var/declare_cooldown = 0 //Prevents spam of critical patient alerts. + var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. + //Setting which reagents to use to treat what by default. By id. + var/treatment_brute_avoid = "tricordrazine" + var/treatment_brute = "bicaridine" + var/treatment_oxy_avoid = null + var/treatment_oxy = "dexalin" + var/treatment_fire_avoid = "tricordrazine" + var/treatment_fire = "kelotane" + var/treatment_tox_avoid = "tricordrazine" + var/treatment_tox = "charcoal" + var/treatment_virus_avoid = null + var/treatment_virus = "spaceacillin" + var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. + var/shut_up = 0 //self explanatory :) + +/mob/living/simple_animal/bot/medbot/mysterious + name = "\improper Mysterious Medibot" + desc = "International Medibot of mystery." + skin = "bezerk" + treatment_brute = "tricordrazine" + treatment_fire = "tricordrazine" + treatment_tox = "tricordrazine" + +/mob/living/simple_animal/bot/medbot/derelict + name = "\improper Old Medibot" + desc = "Looks like it hasn't been modified since the late 2080s." + skin = "bezerk" + heal_threshold = 0 + declare_crit = 0 + treatment_oxy = "pancuronium" + treatment_brute_avoid = null + treatment_brute = "pancuronium" + treatment_fire_avoid = null + treatment_fire = "sodium_thiopental" + treatment_tox_avoid = null + treatment_tox = "sodium_thiopental" + +/mob/living/simple_animal/bot/medbot/update_icon() + if(!on) + icon_state = "medibot0" + return + if(IsStun()) + icon_state = "medibota" + return + if(mode == BOT_HEALING) + icon_state = "medibots[stationary_mode]" + return + else if(stationary_mode) //Bot has yellow light to indicate stationary mode. + icon_state = "medibot2" + else + icon_state = "medibot1" + +/mob/living/simple_animal/bot/medbot/Initialize() + ..() + update_icon() + if(skin) add_overlay("medskin_[skin]") - + var/datum/job/doctor/J = new /datum/job/doctor access_card.access += J.get_access() prev_access = access_card.access qdel(J) - -/mob/living/simple_animal/bot/medbot/bot_reset() - ..() - patient = null - oldpatient = null - oldloc = null - last_found = world.time - declare_cooldown = 0 - update_icon() - -/mob/living/simple_animal/bot/medbot/proc/soft_reset() //Allows the medibot to still actively perform its medical duties without being completely halted as a hard reset does. - path = list() - patient = null - mode = BOT_IDLE - last_found = world.time - update_icon() - -/mob/living/simple_animal/bot/medbot/set_custom_texts() - - text_hack = "You corrupt [name]'s reagent processor circuits." - text_dehack = "You reset [name]'s reagent processor circuits." - text_dehack_fail = "[name] seems damaged and does not respond to reprogramming!" - -/mob/living/simple_animal/bot/medbot/attack_paw(mob/user) - return attack_hand(user) - -/mob/living/simple_animal/bot/medbot/get_controls(mob/user) - var/dat - dat += hack(user) - dat += showpai(user) - dat += "Medical Unit Controls v1.1

    " - dat += "Status: [on ? "On" : "Off"]
    " - dat += "Maintenance panel panel is [open ? "opened" : "closed"]
    " - dat += "Beaker: " - if(reagent_glass) - dat += "Loaded \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]" - else - dat += "None Loaded" - dat += "
    Behaviour controls are [locked ? "locked" : "unlocked"]
    " - if(!locked || issilicon(user) || IsAdminGhost(user)) - dat += "Healing Threshold: " - dat += "-- " - dat += "- " - dat += "[heal_threshold] " - dat += "+ " - dat += "++" - dat += "
    " - - dat += "Injection Level: " - dat += "- " - dat += "[injection_amount] " - dat += "+ " - dat += "
    " - - dat += "Reagent Source: " - dat += "[use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]
    " - - dat += "Treat Viral Infections: [treat_virus ? "Yes" : "No"]
    " - dat += "The speaker switch is [shut_up ? "off" : "on"]. Toggle
    " - dat += "Critical Patient Alerts: [declare_crit ? "Yes" : "No"]
    " - dat += "Patrol Station: [auto_patrol ? "Yes" : "No"]
    " - dat += "Stationary Mode: [stationary_mode ? "Yes" : "No"]
    " - - return dat - -/mob/living/simple_animal/bot/medbot/Topic(href, href_list) - if(..()) - return 1 - - if(href_list["adj_threshold"]) - var/adjust_num = text2num(href_list["adj_threshold"]) - heal_threshold += adjust_num - if(heal_threshold < 5) - heal_threshold = 5 - if(heal_threshold > 75) - heal_threshold = 75 - - else if(href_list["adj_inject"]) - var/adjust_num = text2num(href_list["adj_inject"]) - injection_amount += adjust_num - if(injection_amount < 5) - injection_amount = 5 - if(injection_amount > 15) - injection_amount = 15 - - else if(href_list["use_beaker"]) - use_beaker = !use_beaker - - else if(href_list["eject"] && (!isnull(reagent_glass))) - reagent_glass.loc = get_turf(src) - reagent_glass = null - - else if(href_list["togglevoice"]) - shut_up = !shut_up - - else if(href_list["critalerts"]) - declare_crit = !declare_crit - - else if(href_list["stationary"]) - stationary_mode = !stationary_mode - path = list() - update_icon() - - else if(href_list["virus"]) - treat_virus = !treat_virus - - update_controls() - return - -/mob/living/simple_animal/bot/medbot/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/weapon/reagent_containers/glass)) - . = 1 //no afterattack - if(locked) - to_chat(user, "You cannot insert a beaker because the panel is locked!") - return - if(!isnull(reagent_glass)) - to_chat(user, "There is already a beaker loaded!") - return - if(!user.drop_item()) - return - - W.loc = src - reagent_glass = W - to_chat(user, "You insert [W].") - show_controls(user) - - else - var/current_health = health - ..() - if(health < current_health) //if medbot took some damage - step_to(src, (get_step_away(src,user))) - -/mob/living/simple_animal/bot/medbot/emag_act(mob/user) - ..() - if(emagged == 2) - declare_crit = 0 - if(user) - to_chat(user, "You short out [src]'s reagent synthesis circuits.") - audible_message("[src] buzzes oddly!") - flick("medibot_spark", src) - if(user) - oldpatient = user - -/mob/living/simple_animal/bot/medbot/process_scan(mob/living/carbon/human/H) - if(H.stat == 2) - return - - if((H == oldpatient) && (world.time < last_found + 200)) - return - - if(assess_patient(H)) - last_found = world.time - if((last_newpatient_speak + 300) < world.time) //Don't spam these messages! - var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/mcoming.ogg',"Wait [H.name]! I want to help!" = 'sound/voice/mhelp.ogg',"[H.name], you appear to be injured!" = 'sound/voice/minjured.ogg') - var/message = pick(messagevoice) - speak(message) - playsound(loc, messagevoice[message], 50, 0) - last_newpatient_speak = world.time - return H - else - return - -/mob/living/simple_animal/bot/medbot/handle_automated_action() - if(!..()) - return - - if(mode == BOT_HEALING) - return - - if(stunned) - icon_state = "medibota" - stunned-- - - oldpatient = patient - patient = null - mode = BOT_IDLE - - if(stunned <= 0) - update_icon() - stunned = 0 - return - - if(frustration > 8) - oldpatient = patient - soft_reset() - - if(!patient) - if(!shut_up && prob(1)) - var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/mradar.ogg',"There's always a catch, and I'm the best there is." = 'sound/voice/mcatch.ogg',"I knew it, I should've been a plastic surgeon." = 'sound/voice/msurgeon.ogg',"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/mflies.ogg',"Delicious!" = 'sound/voice/mdelicious.ogg') - var/message = pick(messagevoice) - speak(message) - playsound(loc, messagevoice[message], 50, 0) - var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) //If in stationary mode, scan range is limited to adjacent patients. - patient = scan(/mob/living/carbon/human, oldpatient, scan_range) - oldpatient = patient - - if(patient && (get_dist(src,patient) <= 1)) //Patient is next to us, begin treatment! - if(mode != BOT_HEALING) - mode = BOT_HEALING - update_icon() - frustration = 0 - medicate_patient(patient) - return - - //Patient has moved away from us! - else if(patient && path.len && (get_dist(patient,path[path.len]) > 2)) - path = list() - mode = BOT_IDLE - last_found = world.time - - else if(stationary_mode && patient) //Since we cannot move in this mode, ignore the patient and wait for another. - soft_reset() - return - - if(patient && path.len == 0 && (get_dist(src,patient) > 1)) - path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,id=access_card) - mode = BOT_MOVING - if(!path.len) //try to get closer if you can't reach the patient directly - path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,1,id=access_card) - if(!path.len) //Do not chase a patient we cannot reach. - soft_reset() - - if(path.len > 0 && patient) - if(!bot_move(path[path.len])) - oldpatient = patient - soft_reset() - return - - if(path.len > 8 && patient) - frustration++ - - if(auto_patrol && !stationary_mode && !patient) - if(mode == BOT_IDLE || mode == BOT_START_PATROL) - start_patrol() - - if(mode == BOT_PATROL) - bot_patrol() - - return - -/mob/living/simple_animal/bot/medbot/proc/assess_patient(mob/living/carbon/C) - //Time to see if they need medical help! - if(C.stat == DEAD || (C.status_flags & FAKEDEATH)) - return 0 //welp too late for them! - - if(C.suiciding) - return 0 //Kevorkian school of robotic medical assistants. - - if(emagged == 2) //Everyone needs our medicine. (Our medicine is toxins) - return 1 - - if(declare_crit && C.health <= 0) //Critical condition! Call for help! - declare(C) - - //If they're injured, we're using a beaker, and don't have one of our WONDERCHEMS. - if((reagent_glass) && (use_beaker) && ((C.getBruteLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getOxyLoss() >= (heal_threshold + 15)))) - for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) - if(!C.reagents.has_reagent(R.id)) - return 1 - - //They're injured enough for it! - if((!C.reagents.has_reagent(treatment_brute_avoid)) && (C.getBruteLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_brute))) - return 1 //If they're already medicated don't bother! - - if((!C.reagents.has_reagent(treatment_oxy_avoid)) && (C.getOxyLoss() >= (15 + heal_threshold)) && (!C.reagents.has_reagent(treatment_oxy))) - return 1 - - if((!C.reagents.has_reagent(treatment_fire_avoid)) && (C.getFireLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_fire))) - return 1 - - if((!C.reagents.has_reagent(treatment_tox_avoid)) && (C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox))) - return 1 - - if(treat_virus && !C.reagents.has_reagent(treatment_virus_avoid) && !C.reagents.has_reagent(treatment_virus)) - for(var/datum/disease/D in C.viruses) - //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. - if(!(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) \ - && D.severity != NONTHREAT \ - && (D.stage > 1 || (D.spread_flags & AIRBORNE))) // medibot can't detect a virus in its initial stage unless it spreads airborne. - return 1 //STOP DISEASE FOREVER - - return 0 - -/mob/living/simple_animal/bot/medbot/UnarmedAttack(atom/A) - if(iscarbon(A)) - var/mob/living/carbon/C = A - patient = C - mode = BOT_HEALING - update_icon() - medicate_patient(C) - update_icon() - else - ..() - -/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in view()) - ..() - if(!is_blind(src)) - chemscan(src, A) - -/mob/living/simple_animal/bot/medbot/proc/medicate_patient(mob/living/carbon/C) - if(!on) - return - - if(!istype(C)) - oldpatient = patient - soft_reset() - return - - if(C.stat == DEAD || (C.status_flags & FAKEDEATH)) - var/list/messagevoice = list("No! Stay with me!" = 'sound/voice/mno.ogg',"Live, damnit! LIVE!" = 'sound/voice/mlive.ogg',"I...I've never lost a patient before. Not today, I mean." = 'sound/voice/mlost.ogg') - var/message = pick(messagevoice) - speak(message) - playsound(loc, messagevoice[message], 50, 0) - oldpatient = patient - soft_reset() - return - - var/reagent_id = null - - if(emagged == 2) //Emagged! Time to poison everybody. - reagent_id = "toxin" - - else - if(treat_virus) - var/virus = 0 - for(var/datum/disease/D in C.viruses) - //detectable virus - if((!(D.visibility_flags & HIDDEN_SCANNER)) || (!(D.visibility_flags & HIDDEN_PANDEMIC))) - if(D.severity != NONTHREAT) //virus is harmful - if((D.stage > 1) || (D.spread_flags & AIRBORNE)) - virus = 1 - - if(!reagent_id && (virus)) - if(!C.reagents.has_reagent(treatment_virus) && !C.reagents.has_reagent(treatment_virus_avoid)) - reagent_id = treatment_virus - - if(!reagent_id && (C.getBruteLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_brute) && !C.reagents.has_reagent(treatment_brute_avoid)) - reagent_id = treatment_brute - - if(!reagent_id && (C.getOxyLoss() >= (15 + heal_threshold))) - if(!C.reagents.has_reagent(treatment_oxy) && !C.reagents.has_reagent(treatment_oxy_avoid)) - reagent_id = treatment_oxy - - if(!reagent_id && (C.getFireLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_fire) && !C.reagents.has_reagent(treatment_fire_avoid)) - reagent_id = treatment_fire - - if(!reagent_id && (C.getToxLoss() >= heal_threshold)) - if(!C.reagents.has_reagent(treatment_tox) && !C.reagents.has_reagent(treatment_tox_avoid)) - reagent_id = treatment_tox - - //If the patient is injured but doesn't have our special reagent in them then we should give it to them first - if(reagent_id && use_beaker && reagent_glass && reagent_glass.reagents.total_volume) - for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) - if(!C.reagents.has_reagent(R.id)) - reagent_id = "internal_beaker" - break - - if(!reagent_id) //If they don't need any of that they're probably cured! - var/list/messagevoice = list("All patched up!" = 'sound/voice/mpatchedup.ogg',"An apple a day keeps me away." = 'sound/voice/mapple.ogg',"Feel better soon!" = 'sound/voice/mfeelbetter.ogg') - var/message = pick(messagevoice) - speak(message) - playsound(loc, messagevoice[message], 50, 0) - bot_reset() - return - else - if(!emagged && check_overdose(patient,reagent_id,injection_amount)) - soft_reset() - return - C.visible_message("[src] is trying to inject [patient]!", \ - "[src] is trying to inject you!") - - var/failed = FALSE; - if(do_mob(src, patient, 30)) //Is C == patient? This is so confusing - if((get_dist(src, patient) <= 1) && (on) && assess_patient(patient)) - if(reagent_id == "internal_beaker") - if(use_beaker && reagent_glass && reagent_glass.reagents.total_volume) - var/fraction = min(injection_amount/reagent_glass.reagents.total_volume, 1) - reagent_glass.reagents.reaction(patient, INJECT, fraction) - reagent_glass.reagents.trans_to(patient,injection_amount) //Inject from beaker instead. - else - patient.reagents.add_reagent(reagent_id,injection_amount) - C.visible_message("[src] injects [patient] with its syringe!", \ - "[src] injects you with its syringe!") - else - failed = TRUE - else - failed = TRUE - - if(failed) - visible_message("[src] retracts its syringe.") - update_icon() - soft_reset() - return - - reagent_id = null - return - -/mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) - var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] - if(!R.overdose_threshold) //Some chems do not have an OD threshold - return 0 - var/current_volume = patient.reagents.get_reagent_amount(reagent_id) - if(current_volume + injection_amount > R.overdose_threshold) - return 1 - return 0 - -/mob/living/simple_animal/bot/medbot/bullet_act(obj/item/projectile/Proj) - if(Proj.flag == "taser") - stunned = min(stunned+10,20) - ..() - -/mob/living/simple_animal/bot/medbot/explode() - on = 0 - visible_message("[src] blows apart!") - var/turf/Tsec = get_turf(src) - - new /obj/item/weapon/storage/firstaid(Tsec) - - new /obj/item/device/assembly/prox_sensor(Tsec) - - new /obj/item/device/healthanalyzer(Tsec) - - if(reagent_glass) - reagent_glass.loc = Tsec - reagent_glass = null - - if(prob(50)) - new /obj/item/bodypart/l_arm/robot(Tsec) - - if(emagged && prob(25)) - playsound(loc, 'sound/voice/minsult.ogg', 50, 0) - + +/mob/living/simple_animal/bot/medbot/update_canmove() + . = ..() + update_icon() + +/mob/living/simple_animal/bot/medbot/bot_reset() + ..() + patient = null + oldpatient = null + oldloc = null + last_found = world.time + declare_cooldown = 0 + update_icon() + +/mob/living/simple_animal/bot/medbot/proc/soft_reset() //Allows the medibot to still actively perform its medical duties without being completely halted as a hard reset does. + path = list() + patient = null + mode = BOT_IDLE + last_found = world.time + update_icon() + +/mob/living/simple_animal/bot/medbot/set_custom_texts() + + text_hack = "You corrupt [name]'s reagent processor circuits." + text_dehack = "You reset [name]'s reagent processor circuits." + text_dehack_fail = "[name] seems damaged and does not respond to reprogramming!" + +/mob/living/simple_animal/bot/medbot/attack_paw(mob/user) + return attack_hand(user) + +/mob/living/simple_animal/bot/medbot/get_controls(mob/user) + var/dat + dat += hack(user) + dat += showpai(user) + dat += "Medical Unit Controls v1.1

    " + dat += "Status: [on ? "On" : "Off"]
    " + dat += "Maintenance panel panel is [open ? "opened" : "closed"]
    " + dat += "Beaker: " + if(reagent_glass) + dat += "Loaded \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]" + else + dat += "None Loaded" + dat += "
    Behaviour controls are [locked ? "locked" : "unlocked"]
    " + if(!locked || issilicon(user) || IsAdminGhost(user)) + dat += "Healing Threshold: " + dat += "-- " + dat += "- " + dat += "[heal_threshold] " + dat += "+ " + dat += "++" + dat += "
    " + + dat += "Injection Level: " + dat += "- " + dat += "[injection_amount] " + dat += "+ " + dat += "
    " + + dat += "Reagent Source: " + dat += "[use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]
    " + + dat += "Treat Viral Infections: [treat_virus ? "Yes" : "No"]
    " + dat += "The speaker switch is [shut_up ? "off" : "on"]. Toggle
    " + dat += "Critical Patient Alerts: [declare_crit ? "Yes" : "No"]
    " + dat += "Patrol Station: [auto_patrol ? "Yes" : "No"]
    " + dat += "Stationary Mode: [stationary_mode ? "Yes" : "No"]
    " + + return dat + +/mob/living/simple_animal/bot/medbot/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["adj_threshold"]) + var/adjust_num = text2num(href_list["adj_threshold"]) + heal_threshold += adjust_num + if(heal_threshold < 5) + heal_threshold = 5 + if(heal_threshold > 75) + heal_threshold = 75 + + else if(href_list["adj_inject"]) + var/adjust_num = text2num(href_list["adj_inject"]) + injection_amount += adjust_num + if(injection_amount < 5) + injection_amount = 5 + if(injection_amount > 15) + injection_amount = 15 + + else if(href_list["use_beaker"]) + use_beaker = !use_beaker + + else if(href_list["eject"] && (!isnull(reagent_glass))) + reagent_glass.loc = get_turf(src) + reagent_glass = null + + else if(href_list["togglevoice"]) + shut_up = !shut_up + + else if(href_list["critalerts"]) + declare_crit = !declare_crit + + else if(href_list["stationary"]) + stationary_mode = !stationary_mode + path = list() + update_icon() + + else if(href_list["virus"]) + treat_virus = !treat_virus + + update_controls() + return + +/mob/living/simple_animal/bot/medbot/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(istype(W, /obj/item/weapon/reagent_containers/glass)) + . = 1 //no afterattack + if(locked) + to_chat(user, "You cannot insert a beaker because the panel is locked!") + return + if(!isnull(reagent_glass)) + to_chat(user, "There is already a beaker loaded!") + return + if(!user.drop_item()) + return + + W.loc = src + reagent_glass = W + to_chat(user, "You insert [W].") + show_controls(user) + + else + var/current_health = health + ..() + if(health < current_health) //if medbot took some damage + step_to(src, (get_step_away(src,user))) + +/mob/living/simple_animal/bot/medbot/emag_act(mob/user) + ..() + if(emagged == 2) + declare_crit = 0 + if(user) + to_chat(user, "You short out [src]'s reagent synthesis circuits.") + audible_message("[src] buzzes oddly!") + flick("medibot_spark", src) + if(user) + oldpatient = user + +/mob/living/simple_animal/bot/medbot/process_scan(mob/living/carbon/human/H) + if(H.stat == 2) + return + + if((H == oldpatient) && (world.time < last_found + 200)) + return + + if(assess_patient(H)) + last_found = world.time + if((last_newpatient_speak + 300) < world.time) //Don't spam these messages! + var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/mcoming.ogg',"Wait [H.name]! I want to help!" = 'sound/voice/mhelp.ogg',"[H.name], you appear to be injured!" = 'sound/voice/minjured.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(loc, messagevoice[message], 50, 0) + last_newpatient_speak = world.time + return H + else + return + +/mob/living/simple_animal/bot/medbot/handle_automated_action() + if(!..()) + return + + if(mode == BOT_HEALING) + return + + if(IsStun()) + oldpatient = patient + patient = null + mode = BOT_IDLE + return + + if(frustration > 8) + oldpatient = patient + soft_reset() + + if(!patient) + if(!shut_up && prob(1)) + var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/mradar.ogg',"There's always a catch, and I'm the best there is." = 'sound/voice/mcatch.ogg',"I knew it, I should've been a plastic surgeon." = 'sound/voice/msurgeon.ogg',"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/mflies.ogg',"Delicious!" = 'sound/voice/mdelicious.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(loc, messagevoice[message], 50, 0) + var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) //If in stationary mode, scan range is limited to adjacent patients. + patient = scan(/mob/living/carbon/human, oldpatient, scan_range) + oldpatient = patient + + if(patient && (get_dist(src,patient) <= 1)) //Patient is next to us, begin treatment! + if(mode != BOT_HEALING) + mode = BOT_HEALING + update_icon() + frustration = 0 + medicate_patient(patient) + return + + //Patient has moved away from us! + else if(patient && path.len && (get_dist(patient,path[path.len]) > 2)) + path = list() + mode = BOT_IDLE + last_found = world.time + + else if(stationary_mode && patient) //Since we cannot move in this mode, ignore the patient and wait for another. + soft_reset() + return + + if(patient && path.len == 0 && (get_dist(src,patient) > 1)) + path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,id=access_card) + mode = BOT_MOVING + if(!path.len) //try to get closer if you can't reach the patient directly + path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,1,id=access_card) + if(!path.len) //Do not chase a patient we cannot reach. + soft_reset() + + if(path.len > 0 && patient) + if(!bot_move(path[path.len])) + oldpatient = patient + soft_reset() + return + + if(path.len > 8 && patient) + frustration++ + + if(auto_patrol && !stationary_mode && !patient) + if(mode == BOT_IDLE || mode == BOT_START_PATROL) + start_patrol() + + if(mode == BOT_PATROL) + bot_patrol() + + return + +/mob/living/simple_animal/bot/medbot/proc/assess_patient(mob/living/carbon/C) + //Time to see if they need medical help! + if(C.stat == DEAD || (C.status_flags & FAKEDEATH)) + return 0 //welp too late for them! + + if(C.suiciding) + return 0 //Kevorkian school of robotic medical assistants. + + if(emagged == 2) //Everyone needs our medicine. (Our medicine is toxins) + return 1 + + if(declare_crit && C.health <= 0) //Critical condition! Call for help! + declare(C) + + //If they're injured, we're using a beaker, and don't have one of our WONDERCHEMS. + if((reagent_glass) && (use_beaker) && ((C.getBruteLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getOxyLoss() >= (heal_threshold + 15)))) + for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) + if(!C.reagents.has_reagent(R.id)) + return 1 + + //They're injured enough for it! + if((!C.reagents.has_reagent(treatment_brute_avoid)) && (C.getBruteLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_brute))) + return 1 //If they're already medicated don't bother! + + if((!C.reagents.has_reagent(treatment_oxy_avoid)) && (C.getOxyLoss() >= (15 + heal_threshold)) && (!C.reagents.has_reagent(treatment_oxy))) + return 1 + + if((!C.reagents.has_reagent(treatment_fire_avoid)) && (C.getFireLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_fire))) + return 1 + + if((!C.reagents.has_reagent(treatment_tox_avoid)) && (C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox))) + return 1 + + if(treat_virus && !C.reagents.has_reagent(treatment_virus_avoid) && !C.reagents.has_reagent(treatment_virus)) + for(var/datum/disease/D in C.viruses) + //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. + if(!(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) \ + && D.severity != NONTHREAT \ + && (D.stage > 1 || (D.spread_flags & AIRBORNE))) // medibot can't detect a virus in its initial stage unless it spreads airborne. + return 1 //STOP DISEASE FOREVER + + return 0 + +/mob/living/simple_animal/bot/medbot/UnarmedAttack(atom/A) + if(iscarbon(A)) + var/mob/living/carbon/C = A + patient = C + mode = BOT_HEALING + update_icon() + medicate_patient(C) + update_icon() + else + ..() + +/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in view()) + ..() + if(!is_blind(src)) + chemscan(src, A) + +/mob/living/simple_animal/bot/medbot/proc/medicate_patient(mob/living/carbon/C) + if(!on) + return + + if(!istype(C)) + oldpatient = patient + soft_reset() + return + + if(C.stat == DEAD || (C.status_flags & FAKEDEATH)) + var/list/messagevoice = list("No! Stay with me!" = 'sound/voice/mno.ogg',"Live, damnit! LIVE!" = 'sound/voice/mlive.ogg',"I...I've never lost a patient before. Not today, I mean." = 'sound/voice/mlost.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(loc, messagevoice[message], 50, 0) + oldpatient = patient + soft_reset() + return + + var/reagent_id = null + + if(emagged == 2) //Emagged! Time to poison everybody. + reagent_id = "toxin" + + else + if(treat_virus) + var/virus = 0 + for(var/datum/disease/D in C.viruses) + //detectable virus + if((!(D.visibility_flags & HIDDEN_SCANNER)) || (!(D.visibility_flags & HIDDEN_PANDEMIC))) + if(D.severity != NONTHREAT) //virus is harmful + if((D.stage > 1) || (D.spread_flags & AIRBORNE)) + virus = 1 + + if(!reagent_id && (virus)) + if(!C.reagents.has_reagent(treatment_virus) && !C.reagents.has_reagent(treatment_virus_avoid)) + reagent_id = treatment_virus + + if(!reagent_id && (C.getBruteLoss() >= heal_threshold)) + if(!C.reagents.has_reagent(treatment_brute) && !C.reagents.has_reagent(treatment_brute_avoid)) + reagent_id = treatment_brute + + if(!reagent_id && (C.getOxyLoss() >= (15 + heal_threshold))) + if(!C.reagents.has_reagent(treatment_oxy) && !C.reagents.has_reagent(treatment_oxy_avoid)) + reagent_id = treatment_oxy + + if(!reagent_id && (C.getFireLoss() >= heal_threshold)) + if(!C.reagents.has_reagent(treatment_fire) && !C.reagents.has_reagent(treatment_fire_avoid)) + reagent_id = treatment_fire + + if(!reagent_id && (C.getToxLoss() >= heal_threshold)) + if(!C.reagents.has_reagent(treatment_tox) && !C.reagents.has_reagent(treatment_tox_avoid)) + reagent_id = treatment_tox + + //If the patient is injured but doesn't have our special reagent in them then we should give it to them first + if(reagent_id && use_beaker && reagent_glass && reagent_glass.reagents.total_volume) + for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) + if(!C.reagents.has_reagent(R.id)) + reagent_id = "internal_beaker" + break + + if(!reagent_id) //If they don't need any of that they're probably cured! + var/list/messagevoice = list("All patched up!" = 'sound/voice/mpatchedup.ogg',"An apple a day keeps me away." = 'sound/voice/mapple.ogg',"Feel better soon!" = 'sound/voice/mfeelbetter.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(loc, messagevoice[message], 50, 0) + bot_reset() + return + else + if(!emagged && check_overdose(patient,reagent_id,injection_amount)) + soft_reset() + return + C.visible_message("[src] is trying to inject [patient]!", \ + "[src] is trying to inject you!") + + var/failed = FALSE; + if(do_mob(src, patient, 30)) //Is C == patient? This is so confusing + if((get_dist(src, patient) <= 1) && (on) && assess_patient(patient)) + if(reagent_id == "internal_beaker") + if(use_beaker && reagent_glass && reagent_glass.reagents.total_volume) + var/fraction = min(injection_amount/reagent_glass.reagents.total_volume, 1) + reagent_glass.reagents.reaction(patient, INJECT, fraction) + reagent_glass.reagents.trans_to(patient,injection_amount) //Inject from beaker instead. + else + patient.reagents.add_reagent(reagent_id,injection_amount) + C.visible_message("[src] injects [patient] with its syringe!", \ + "[src] injects you with its syringe!") + else + failed = TRUE + else + failed = TRUE + + if(failed) + visible_message("[src] retracts its syringe.") + update_icon() + soft_reset() + return + + reagent_id = null + return + +/mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] + if(!R.overdose_threshold) //Some chems do not have an OD threshold + return 0 + var/current_volume = patient.reagents.get_reagent_amount(reagent_id) + if(current_volume + injection_amount > R.overdose_threshold) + return 1 + return 0 + +/mob/living/simple_animal/bot/medbot/explode() + on = 0 + visible_message("[src] blows apart!") + var/turf/Tsec = get_turf(src) + + new /obj/item/weapon/storage/firstaid(Tsec) + + new /obj/item/device/assembly/prox_sensor(Tsec) + + new /obj/item/device/healthanalyzer(Tsec) + + if(reagent_glass) + reagent_glass.loc = Tsec + reagent_glass = null + + if(prob(50)) + new /obj/item/bodypart/l_arm/robot(Tsec) + + if(emagged && prob(25)) + playsound(loc, 'sound/voice/minsult.ogg', 50, 0) + do_sparks(3, TRUE, src) - ..() - -/mob/living/simple_animal/bot/medbot/proc/declare(crit_patient) + ..() + +/mob/living/simple_animal/bot/medbot/proc/declare(crit_patient) if(declare_cooldown > world.time) - return - var/area/location = get_area(src) - speak("Medical emergency! [crit_patient ? "[crit_patient]" : "A patient"] is in critical condition at [location]!",radio_channel) + return + var/area/location = get_area(src) + speak("Medical emergency! [crit_patient ? "[crit_patient]" : "A patient"] is in critical condition at [location]!",radio_channel) declare_cooldown = world.time + 200 - -/obj/machinery/bot_core/medbot - req_one_access =list(GLOB.access_medical, GLOB.access_robotics) + +/obj/machinery/bot_core/medbot + req_one_access =list(GLOB.access_medical, GLOB.access_robotics) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 80162d50fe..e62f8a85b5 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -634,17 +634,15 @@ // called when bot bumps into anything /mob/living/simple_animal/bot/mulebot/Bump(atom/obs) if(wires.is_cut(WIRE_AVOIDANCE)) // usually just bumps, but if avoidance disabled knock over mobs - var/mob/M = obs - if(ismob(M)) - if(iscyborg(M)) - visible_message("[src] bumps into [M]!") + if(isliving(obs)) + var/mob/living/L = obs + if(iscyborg(L)) + visible_message("[src] bumps into [L]!") else if(!paicard) - add_logs(src, M, "knocked down") - visible_message("[src] knocks over [M]!") - M.stop_pulling() - M.Stun(8) - M.Weaken(5) + add_logs(src, L, "knocked down") + visible_message("[src] knocks over [L]!") + L.Knockdown(160) return ..() // called from mob/living/carbon/human/Crossed() diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index cba9e446ec..1429c3d0cd 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -148,12 +148,25 @@ Auto Patrol: []"}, update_controls() /mob/living/simple_animal/bot/secbot/proc/retaliate(mob/living/carbon/human/H) - threatlevel = H.assess_threat(src) + var/judgement_criteria = judgement_criteria() + threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) threatlevel += 6 if(threatlevel >= 4) target = H mode = BOT_HUNT +/mob/living/simple_animal/bot/secbot/proc/judgement_criteria() + var/final = FALSE + if(idcheck) + final = final|JUDGE_IDCHECK + if(check_records) + final = final|JUDGE_RECORDCHECK + if(weaponscheck) + final = final|JUDGE_WEAPONCHECK + if(emagged) + final = final|JUDGE_EMAGGED + return final + /mob/living/simple_animal/bot/secbot/attack_hand(mob/living/carbon/human/H) if((H.a_intent == INTENT_HARM) || (H.a_intent == INTENT_DISARM)) retaliate(H) @@ -190,7 +203,7 @@ Auto Patrol: []"}, return if(iscarbon(A)) var/mob/living/carbon/C = A - if(!C.stunned || arrest_type) + if(!C.IsStun() || arrest_type) stun_attack(A) else if(C.canBeHandcuffed() && !C.handcuffed) cuff(A) @@ -222,22 +235,22 @@ Auto Patrol: []"}, back_to_idle() /mob/living/simple_animal/bot/secbot/proc/stun_attack(mob/living/carbon/C) - playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + var/judgement_criteria = judgement_criteria() + playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) icon_state = "secbot-c" spawn(2) icon_state = "secbot[on]" var/threat = 5 if(ishuman(C)) C.stuttering = 5 - C.Stun(5) - C.Weaken(5) + C.Knockdown(100) var/mob/living/carbon/human/H = C - threat = H.assess_threat(src) + threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) else - C.Weaken(5) + C.Knockdown(100) C.stuttering = 5 - C.Stun(5) - threat = C.assess_threat() + threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + add_logs(src,C,"stunned") if(declare_arrests) var/area/location = get_area(src) @@ -288,7 +301,7 @@ Auto Patrol: []"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if( !Adjacent(target) || !isturf(target.loc) || target.weakened < 2 ) + if( !Adjacent(target) || !isturf(target.loc) || target.AmountKnockdown() < 40) back_to_hunt() return @@ -315,7 +328,7 @@ Auto Patrol: []"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && target.weakened < 2)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && target.AmountKnockdown() < 40)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. back_to_hunt() return else //Try arresting again if the target escapes. @@ -352,6 +365,7 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/look_for_perp() anchored = 0 + var/judgement_criteria = judgement_criteria() for (var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal if((C.stat) || (C.handcuffed)) continue @@ -359,7 +373,7 @@ Auto Patrol: []"}, if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(src) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) if(!threatlevel) continue diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 85f08d19f2..48840e4b03 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -330,8 +330,8 @@ if(!LAZYLEN(parts)) if(undismembermerable_limbs) //they have limbs we can't remove, and no parts we can, attack! return ..() - C.Weaken(30) - visible_message("[src] paralyzes [C]!") + C.Knockdown(60) + visible_message("[src] knocks [C] down!") to_chat(src, "\"Bring [C.p_them()] to me.\"") return FALSE do_attack_animation(C) @@ -429,3 +429,4 @@ hud_used.healths.icon_state = "[icon_state]_health5" else hud_used.healths.icon_state = "[icon_state]_health6" + diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 33054002ca..06d7cdb0ef 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -1,167 +1,167 @@ -//Meant for simple animals to drop lootable human bodies. - -//If someone can do this in a neater way, be my guest-Kor - -//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. - -//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now). - -//List of different corpse types - -/obj/effect/mob_spawn/human/corpse/syndicatesoldier - name = "Syndicate Operative" +//Meant for simple animals to drop lootable human bodies. + +//If someone can do this in a neater way, be my guest-Kor + +//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these. + +//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now). + +//List of different corpse types + +/obj/effect/mob_spawn/human/corpse/syndicatesoldier + name = "Syndicate Operative" id_job = "Operative" id_access_list = list(GLOB.access_syndicate) outfit = /datum/outfit/syndicatesoldiercorpse /datum/outfit/syndicatesoldiercorpse name = "Syndicate Operative Corpse" - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/armor/vest - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/armor/vest + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/gas + mask = /obj/item/clothing/mask/gas head = /obj/item/clothing/head/helmet/swat - back = /obj/item/weapon/storage/backpack + back = /obj/item/weapon/storage/backpack id = /obj/item/weapon/card/id - -/obj/effect/mob_spawn/human/corpse/syndicatecommando - name = "Syndicate Commando" + +/obj/effect/mob_spawn/human/corpse/syndicatecommando + name = "Syndicate Commando" id_job = "Operative" id_access_list = list(GLOB.access_syndicate) outfit = /datum/outfit/syndicatecommandocorpse /datum/outfit/syndicatecommandocorpse name = "Syndicate Commando Corpse" - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/space/hardsuit/syndi - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/space/hardsuit/syndi + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/weapon/tank/jetpack/oxygen + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/weapon/tank/jetpack/oxygen r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen id = /obj/item/weapon/card/id - -/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper - name = "Syndicate Stormtrooper" + +/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper + name = "Syndicate Stormtrooper" id_job = "Operative" id_access_list = list(GLOB.access_syndicate) outfit = /datum/outfit/syndicatestormtroopercorpse /datum/outfit/syndicatestormtroopercorpse name = "Syndicate Stormtrooper Corpse" - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/weapon/tank/jetpack/oxygen/harness + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/weapon/tank/jetpack/oxygen/harness id = /obj/item/weapon/card/id - - -/obj/effect/mob_spawn/human/clown/corpse - roundstart = FALSE - instant = TRUE - - -/obj/effect/mob_spawn/human/corpse/pirate - name = "Pirate" + + +/obj/effect/mob_spawn/human/clown/corpse + roundstart = FALSE + instant = TRUE + + +/obj/effect/mob_spawn/human/corpse/pirate + name = "Pirate" outfit = /datum/outfit/piratecorpse /datum/outfit/piratecorpse name = "Pirate Corpse" - uniform = /obj/item/clothing/under/pirate - shoes = /obj/item/clothing/shoes/jackboots - glasses = /obj/item/clothing/glasses/eyepatch + uniform = /obj/item/clothing/under/pirate + shoes = /obj/item/clothing/shoes/jackboots + glasses = /obj/item/clothing/glasses/eyepatch head = /obj/item/clothing/head/bandana - - -/obj/effect/mob_spawn/human/corpse/pirate/ranged - name = "Pirate Gunner" + + +/obj/effect/mob_spawn/human/corpse/pirate/ranged + name = "Pirate Gunner" outfit = /datum/outfit/piratecorpse/ranged /datum/outfit/piratecorpse/ranged name = "Pirate Gunner Corpse" - suit = /obj/item/clothing/suit/pirate + suit = /obj/item/clothing/suit/pirate head = /obj/item/clothing/head/pirate - -/obj/effect/mob_spawn/human/corpse/russian - name = "Russian" + +/obj/effect/mob_spawn/human/corpse/russian + name = "Russian" outfit = /datum/outfit/russiancorpse /datum/outfit/russiancorpse name = "Russian Corpse" - uniform = /obj/item/clothing/under/soviet - shoes = /obj/item/clothing/shoes/jackboots + uniform = /obj/item/clothing/under/soviet + shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/bearpelt - -/obj/effect/mob_spawn/human/corpse/russian/ranged + +/obj/effect/mob_spawn/human/corpse/russian/ranged outfit = /datum/outfit/russiancorpse/ranged /datum/outfit/russiancorpse/ranged name = "Ranged Russian Corpse" head = /obj/item/clothing/head/ushanka - -/obj/effect/mob_spawn/human/corpse/russian/ranged/trooper + +/obj/effect/mob_spawn/human/corpse/russian/ranged/trooper outfit = /datum/outfit/russiancorpse/ranged/trooper /datum/outfit/russiancorpse/ranged/trooper name = "Ranged Russian Trooper Corpse" - uniform = /obj/item/clothing/under/syndicate/camo - suit = /obj/item/clothing/suit/armor/bulletproof - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + uniform = /obj/item/clothing/under/syndicate/camo + suit = /obj/item/clothing/suit/armor/bulletproof + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/balaclava + mask = /obj/item/clothing/mask/balaclava head = /obj/item/clothing/head/helmet/alt - -/obj/effect/mob_spawn/human/corpse/russian/ranged/officer - name = "Russian Officer" + +/obj/effect/mob_spawn/human/corpse/russian/ranged/officer + name = "Russian Officer" outfit = /datum/outfit/russiancorpse/officer /datum/outfit/russiancorpse/officer name = "Russian Officer Corpse" - uniform = /obj/item/clothing/under/rank/security/navyblue/russian - suit = /obj/item/clothing/suit/security/officer/russian - shoes = /obj/item/clothing/shoes/laceup + uniform = /obj/item/clothing/under/rank/security/navyblue/russian + suit = /obj/item/clothing/suit/security/officer/russian + shoes = /obj/item/clothing/shoes/laceup ears = /obj/item/device/radio/headset head = /obj/item/clothing/head/ushanka - -/obj/effect/mob_spawn/human/corpse/wizard + +/obj/effect/mob_spawn/human/corpse/wizard name = "Space Wizard Corpse" outfit = /datum/outfit/wizardcorpse /datum/outfit/wizardcorpse name = "Space Wizard Corpse" - uniform = /obj/item/clothing/under/color/lightpurple - suit = /obj/item/clothing/suit/wizrobe - shoes = /obj/item/clothing/shoes/sandal/magic + uniform = /obj/item/clothing/under/color/lightpurple + suit = /obj/item/clothing/suit/wizrobe + shoes = /obj/item/clothing/shoes/sandal/magic head = /obj/item/clothing/head/wizard - - -/obj/effect/mob_spawn/human/corpse/nanotrasensoldier - name = "Nanotrasen Private Security Officer" + + +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier + name = "Nanotrasen Private Security Officer" id_job = "Private Security Force" id_access = "Security Officer" outfit = /datum/outfit/nanotrasensoldiercorpse2 /datum/outfit/nanotrasensoldiercorpse2 name = "NT Private Security Officer Corpse" - uniform = /obj/item/clothing/under/rank/security - suit = /obj/item/clothing/suit/armor/vest - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + uniform = /obj/item/clothing/under/rank/security + suit = /obj/item/clothing/suit/armor/vest + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/gas/sechailer/swat + mask = /obj/item/clothing/mask/gas/sechailer/swat head = /obj/item/clothing/head/helmet/swat/nanotrasen - back = /obj/item/weapon/storage/backpack/security + back = /obj/item/weapon/storage/backpack/security id = /obj/item/weapon/card/id diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 5f3c8f6183..9edcfd24bf 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -1,274 +1,274 @@ -//Cat -/mob/living/simple_animal/pet/cat - name = "cat" - desc = "Kitty!!" - icon = 'icons/mob/pets.dmi' - icon_state = "cat2" - icon_living = "cat2" - icon_dead = "cat2_dead" - gender = MALE - speak = list("Meow!", "Esp!", "Purr!", "HSSSSS") - speak_emote = list("purrs", "meows") - emote_hear = list("meows", "mews") - emote_see = list("shakes its head", "shivers") - speak_chance = 1 - turns_per_move = 5 - see_in_dark = 6 - ventcrawler = VENTCRAWLER_ALWAYS - pass_flags = PASSTABLE - mob_size = MOB_SIZE_SMALL - minbodytemp = 200 - maxbodytemp = 400 - unsuitable_atmos_damage = 1 - animal_species = /mob/living/simple_animal/pet/cat - childtype = list(/mob/living/simple_animal/pet/cat/kitten) - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - var/turns_since_scan = 0 - var/mob/living/simple_animal/mouse/movement_target - gold_core_spawnable = 2 - devourable = TRUE - -/mob/living/simple_animal/pet/cat/Initialize() - ..() - verbs += /mob/living/proc/lay_down - -/mob/living/simple_animal/pet/cat/update_canmove() - ..() - if(client) - if (resting) - icon_state = "[icon_living]_rest" - else - icon_state = "[icon_living]" - - -/mob/living/simple_animal/pet/cat/space - name = "space cat" - desc = "It's a cat... in space!" - icon_state = "spacecat" - icon_living = "spacecat" - icon_dead = "spacecat_dead" - unsuitable_atmos_damage = 0 - minbodytemp = TCMB - maxbodytemp = T0C + 40 - -/mob/living/simple_animal/pet/cat/original - name = "Batsy" - desc = "The product of alien DNA and bored geneticists." - gender = FEMALE - icon_state = "original" - icon_living = "original" - icon_dead = "original_dead" - -/mob/living/simple_animal/pet/cat/kitten - name = "kitten" - desc = "D'aaawwww." - icon_state = "kitten" - icon_living = "kitten" - icon_dead = "kitten_dead" - density = 0 - pass_flags = PASSMOB - mob_size = MOB_SIZE_SMALL - -//RUNTIME IS ALIVE! SQUEEEEEEEE~ -/mob/living/simple_animal/pet/cat/Runtime - name = "Runtime" - desc = "GCAT" - icon_state = "cat" - icon_living = "cat" - icon_dead = "cat_dead" - gender = FEMALE - gold_core_spawnable = 0 - var/list/family = list()//var restored from savefile, has count of each child type - var/list/children = list()//Actual mob instances of children - var/cats_deployed = 0 - var/memory_saved = 0 - -/mob/living/simple_animal/pet/cat/Runtime/Initialize() - if(prob(5)) - icon_state = "original" - icon_living = "original" - icon_dead = "original_dead" - Read_Memory() - ..() - -/mob/living/simple_animal/pet/cat/Runtime/Life() - if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP) - Deploy_The_Cats() - if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) - Write_Memory() - ..() - -/mob/living/simple_animal/pet/cat/Runtime/make_babies() - var/mob/baby = ..() - if(baby) - children += baby - return baby - -/mob/living/simple_animal/pet/cat/Runtime/death() - if(!memory_saved) - Write_Memory(1) - ..() - -/mob/living/simple_animal/pet/cat/Runtime/proc/Read_Memory() - var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") - S["family"] >> family - - if(isnull(family)) - family = list() - -/mob/living/simple_animal/pet/cat/Runtime/proc/Write_Memory(dead) - var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") - family = list() - if(!dead) - for(var/mob/living/simple_animal/pet/cat/kitten/C in children) - if(istype(C,type) || C.stat || !C.z || !C.butcher_results) //That last one is a work around for hologram cats - continue - if(C.type in family) - family[C.type] += 1 - else - family[C.type] = 1 - S["family"] << family - memory_saved = 1 - -/mob/living/simple_animal/pet/cat/Runtime/proc/Deploy_The_Cats() - cats_deployed = 1 - for(var/cat_type in family) - if(family[cat_type] > 0) - for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS) - new cat_type(loc) - -/mob/living/simple_animal/pet/cat/Proc - name = "Proc" - gender = MALE - gold_core_spawnable = 0 - -/mob/living/simple_animal/pet/cat/Life() - if(!stat && !buckled && !client) - if(prob(1)) - emote("me", 1, pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) - icon_state = "[icon_living]_rest" - resting = 1 - update_canmove() - else if (prob(1)) - emote("me", 1, pick("sits down.", "crouches on its hind legs.", "looks alert.")) - icon_state = "[icon_living]_sit" - resting = 1 - update_canmove() - else if (prob(1)) - if (resting) - emote("me", 1, pick("gets up and meows.", "walks around.", "stops resting.")) - icon_state = "[icon_living]" - resting = 0 - update_canmove() - else - emote("me", 1, pick("grooms its fur.", "twitches its whiskers.", "shakes out its coat.")) - - //MICE! - if((src.loc) && isturf(src.loc)) - if(!stat && !resting && !buckled) - for(var/mob/living/simple_animal/mouse/M in view(1,src)) - if(!M.stat && Adjacent(M)) - emote("me", 1, "splats \the [M]!") - M.splat() - movement_target = null - stop_automated_movement = 0 - break - for(var/obj/item/toy/cattoy/T in view(1,src)) - if (T.cooldown < (world.time - 400)) - emote("me", 1, "bats \the [T] around with its paw!") - T.cooldown = world.time - - ..() - - make_babies() - - if(!stat && !resting && !buckled) - turns_since_scan++ - if(turns_since_scan > 5) - walk_to(src,0) - turns_since_scan = 0 - if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) - movement_target = null - stop_automated_movement = 0 - if( !movement_target || !(movement_target.loc in oview(src, 3)) ) - movement_target = null - stop_automated_movement = 0 - for(var/mob/living/simple_animal/mouse/snack in oview(src,3)) - if(isturf(snack.loc) && !snack.stat) - movement_target = snack - break - if(movement_target) - stop_automated_movement = 1 - walk_to(src,movement_target,0,3) - -/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M) - . = ..() - switch(M.a_intent) - if("help") - wuv(1, M) - if("harm") - wuv(-1, M) - -/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M) - if(change) - if(change > 0) - if(M && stat != DEAD) +//Cat +/mob/living/simple_animal/pet/cat + name = "cat" + desc = "Kitty!!" + icon = 'icons/mob/pets.dmi' + icon_state = "cat2" + icon_living = "cat2" + icon_dead = "cat2_dead" + gender = MALE + speak = list("Meow!", "Esp!", "Purr!", "HSSSSS") + speak_emote = list("purrs", "meows") + emote_hear = list("meows", "mews") + emote_see = list("shakes its head", "shivers") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + ventcrawler = VENTCRAWLER_ALWAYS + pass_flags = PASSTABLE + mob_size = MOB_SIZE_SMALL + minbodytemp = 200 + maxbodytemp = 400 + unsuitable_atmos_damage = 1 + animal_species = /mob/living/simple_animal/pet/cat + childtype = list(/mob/living/simple_animal/pet/cat/kitten) + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + var/turns_since_scan = 0 + var/mob/living/simple_animal/mouse/movement_target + gold_core_spawnable = 2 + devourable = TRUE + +/mob/living/simple_animal/pet/cat/Initialize() + ..() + verbs += /mob/living/proc/lay_down + +/mob/living/simple_animal/pet/cat/update_canmove() + ..() + if(client) + if (resting) + icon_state = "[icon_living]_rest" + else + icon_state = "[icon_living]" + + +/mob/living/simple_animal/pet/cat/space + name = "space cat" + desc = "It's a cat... in space!" + icon_state = "spacecat" + icon_living = "spacecat" + icon_dead = "spacecat_dead" + unsuitable_atmos_damage = 0 + minbodytemp = TCMB + maxbodytemp = T0C + 40 + +/mob/living/simple_animal/pet/cat/original + name = "Batsy" + desc = "The product of alien DNA and bored geneticists." + gender = FEMALE + icon_state = "original" + icon_living = "original" + icon_dead = "original_dead" + +/mob/living/simple_animal/pet/cat/kitten + name = "kitten" + desc = "D'aaawwww." + icon_state = "kitten" + icon_living = "kitten" + icon_dead = "kitten_dead" + density = 0 + pass_flags = PASSMOB + mob_size = MOB_SIZE_SMALL + +//RUNTIME IS ALIVE! SQUEEEEEEEE~ +/mob/living/simple_animal/pet/cat/Runtime + name = "Runtime" + desc = "GCAT" + icon_state = "cat" + icon_living = "cat" + icon_dead = "cat_dead" + gender = FEMALE + gold_core_spawnable = 0 + var/list/family = list()//var restored from savefile, has count of each child type + var/list/children = list()//Actual mob instances of children + var/cats_deployed = 0 + var/memory_saved = 0 + +/mob/living/simple_animal/pet/cat/Runtime/Initialize() + if(prob(5)) + icon_state = "original" + icon_living = "original" + icon_dead = "original_dead" + Read_Memory() + ..() + +/mob/living/simple_animal/pet/cat/Runtime/Life() + if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP) + Deploy_The_Cats() + if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) + Write_Memory() + ..() + +/mob/living/simple_animal/pet/cat/Runtime/make_babies() + var/mob/baby = ..() + if(baby) + children += baby + return baby + +/mob/living/simple_animal/pet/cat/Runtime/death() + if(!memory_saved) + Write_Memory(1) + ..() + +/mob/living/simple_animal/pet/cat/Runtime/proc/Read_Memory() + var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") + S["family"] >> family + + if(isnull(family)) + family = list() + +/mob/living/simple_animal/pet/cat/Runtime/proc/Write_Memory(dead) + var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") + family = list() + if(!dead) + for(var/mob/living/simple_animal/pet/cat/kitten/C in children) + if(istype(C,type) || C.stat || !C.z || !C.butcher_results) //That last one is a work around for hologram cats + continue + if(C.type in family) + family[C.type] += 1 + else + family[C.type] = 1 + S["family"] << family + memory_saved = 1 + +/mob/living/simple_animal/pet/cat/Runtime/proc/Deploy_The_Cats() + cats_deployed = 1 + for(var/cat_type in family) + if(family[cat_type] > 0) + for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS) + new cat_type(loc) + +/mob/living/simple_animal/pet/cat/Proc + name = "Proc" + gender = MALE + gold_core_spawnable = 0 + +/mob/living/simple_animal/pet/cat/Life() + if(!stat && !buckled && !client) + if(prob(1)) + emote("me", 1, pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) + icon_state = "[icon_living]_rest" + resting = 1 + update_canmove() + else if (prob(1)) + emote("me", 1, pick("sits down.", "crouches on its hind legs.", "looks alert.")) + icon_state = "[icon_living]_sit" + resting = 1 + update_canmove() + else if (prob(1)) + if (resting) + emote("me", 1, pick("gets up and meows.", "walks around.", "stops resting.")) + icon_state = "[icon_living]" + resting = 0 + update_canmove() + else + emote("me", 1, pick("grooms its fur.", "twitches its whiskers.", "shakes out its coat.")) + + //MICE! + if((src.loc) && isturf(src.loc)) + if(!stat && !resting && !buckled) + for(var/mob/living/simple_animal/mouse/M in view(1,src)) + if(!M.stat && Adjacent(M)) + emote("me", 1, "splats \the [M]!") + M.splat() + movement_target = null + stop_automated_movement = 0 + break + for(var/obj/item/toy/cattoy/T in view(1,src)) + if (T.cooldown < (world.time - 400)) + emote("me", 1, "bats \the [T] around with its paw!") + T.cooldown = world.time + + ..() + + make_babies() + + if(!stat && !resting && !buckled) + turns_since_scan++ + if(turns_since_scan > 5) + walk_to(src,0) + turns_since_scan = 0 + if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) + movement_target = null + stop_automated_movement = 0 + if( !movement_target || !(movement_target.loc in oview(src, 3)) ) + movement_target = null + stop_automated_movement = 0 + for(var/mob/living/simple_animal/mouse/snack in oview(src,3)) + if(isturf(snack.loc) && !snack.stat) + movement_target = snack + break + if(movement_target) + stop_automated_movement = 1 + walk_to(src,movement_target,0,3) + +/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M) + . = ..() + switch(M.a_intent) + if("help") + wuv(1, M) + if("harm") + wuv(-1, M) + +/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M) + if(change) + if(change > 0) + if(M && stat != DEAD) new /obj/effect/temp_visual/heart(loc) - emote("me", 1, "purrs!") - else - if(M && stat != DEAD) - emote("me", 1, "hisses!") - -/mob/living/simple_animal/pet/cat/cak //I told you I'd do it, Remie - name = "Keeki" - desc = "It's a cat made out of cake." - icon_state = "cak" - icon_living = "cak" - icon_dead = "cak_dead" - health = 50 - maxHealth = 50 - gender = FEMALE - harm_intent_damage = 10 - butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday = 3, \ - /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) - response_harm = "takes a bite out of" - attacked_sound = 'sound/items/eatfood.ogg' - deathmessage = "loses its false life and collapses!" - death_sound = "bodyfall" - -/mob/living/simple_animal/pet/cat/cak/CheckParts(list/parts) - ..() - var/obj/item/organ/brain/B = locate(/obj/item/organ/brain) in contents - if(!B || !B.brainmob || !B.brainmob.mind) - return - B.brainmob.mind.transfer_to(src) - to_chat(src, "You are a cak! You're a harmless cat/cake hybrid that everyone loves. People can take bites out of you if they're hungry, but you regenerate health \ - so quickly that it generally doesn't matter. You're remarkably resilient to any damage besides this and it's hard for you to really die at all. You should go around and bring happiness and \ - free cake to the station!") - var/new_name = stripped_input(src, "Enter your name, or press \"Cancel\" to stick with Keeki.", "Name Change") - if(new_name) - to_chat(src, "Your name is now \"new_name\"!") - name = new_name - -/mob/living/simple_animal/pet/cat/cak/Life() - ..() - if(stat) - return - if(health < maxHealth) - adjustBruteLoss(-8) //Fast life regen - for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts! - if(D.icon_state != "donut2") - D.name = "frosted donut" - D.icon_state = "donut2" - D.reagents.add_reagent("sprinkles", 2) - D.bonus_reagents = list("sprinkles" = 2, "sugar" = 1) - D.filling_color = "#FF69B4" - -/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) - ..() - if(L.a_intent == INTENT_HARM && L.reagents && !stat) - L.reagents.add_reagent("nutriment", 0.4) - L.reagents.add_reagent("vitamin", 0.4) + emote("me", 1, "purrs!") + else + if(M && stat != DEAD) + emote("me", 1, "hisses!") + +/mob/living/simple_animal/pet/cat/cak //I told you I'd do it, Remie + name = "Keeki" + desc = "It's a cat made out of cake." + icon_state = "cak" + icon_living = "cak" + icon_dead = "cak_dead" + health = 50 + maxHealth = 50 + gender = FEMALE + harm_intent_damage = 10 + butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday = 3, \ + /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) + response_harm = "takes a bite out of" + attacked_sound = 'sound/items/eatfood.ogg' + deathmessage = "loses its false life and collapses!" + death_sound = "bodyfall" + +/mob/living/simple_animal/pet/cat/cak/CheckParts(list/parts) + ..() + var/obj/item/organ/brain/B = locate(/obj/item/organ/brain) in contents + if(!B || !B.brainmob || !B.brainmob.mind) + return + B.brainmob.mind.transfer_to(src) + to_chat(src, "You are a cak! You're a harmless cat/cake hybrid that everyone loves. People can take bites out of you if they're hungry, but you regenerate health \ + so quickly that it generally doesn't matter. You're remarkably resilient to any damage besides this and it's hard for you to really die at all. You should go around and bring happiness and \ + free cake to the station!") + var/new_name = stripped_input(src, "Enter your name, or press \"Cancel\" to stick with Keeki.", "Name Change") + if(new_name) + to_chat(src, "Your name is now \"new_name\"!") + name = new_name + +/mob/living/simple_animal/pet/cat/cak/Life() + ..() + if(stat) + return + if(health < maxHealth) + adjustBruteLoss(-8) //Fast life regen + for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts! + if(D.icon_state != "donut2") + D.name = "frosted donut" + D.icon_state = "donut2" + D.reagents.add_reagent("sprinkles", 2) + D.bonus_reagents = list("sprinkles" = 2, "sugar" = 1) + D.filling_color = "#FF69B4" + +/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) + ..() + if(L.a_intent == INTENT_HARM && L.reagents && !stat) + L.reagents.add_reagent("nutriment", 0.4) + L.reagents.add_reagent("vitamin", 0.4) diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 2f5f80c484..61c7c7df4d 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -108,7 +108,7 @@ user.visible_message("[user] starts to shave [src] using \the [O].", "You start to shave [src] using \the [O]...") if(do_after(user, 50, target = src)) user.visible_message("[user] shaves [src]'s hair using \the [O].") - playsound(loc, 'sound/items/Welder2.ogg', 20, 1) + playsound(loc, 'sound/items/welder2.ogg', 20, 1) shaved = 1 icon_living = "[initial(icon_living)]_shaved" icon_dead = "[initial(icon_living)]_shaved_dead" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 9a12938163..08a83a3e08 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -32,7 +32,7 @@ density = 0 pass_flags = PASSTABLE | PASSMOB sight = (SEE_TURFS | SEE_OBJS) - status_flags = (CANPUSH | CANSTUN | CANWEAKEN) + status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN) gender = NEUTER voice_name = "synthesized chirp" speak_emote = list("chirps") @@ -219,12 +219,12 @@ to_chat(user, msg) -/mob/living/simple_animal/drone/assess_threat() //Secbots won't hunt maintenance drones. +/mob/living/simple_animal/drone/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt maintenance drones. return -10 /mob/living/simple_animal/drone/emp_act(severity) - Stun(5) + Stun(100) to_chat(src, "ER@%R: MME^RY CO#RU9T! R&$b@0tin)...") if(severity == 1) adjustBruteLoss(heavy_emp_damage) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index ab09e55a7e..c984194805 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -118,6 +118,7 @@ speak_emote = list("clanks", "clinks", "clunks", "clangs") verb_ask = "requests" verb_exclaim = "proclaims" + verb_whisper = "imparts" verb_yell = "harangues" bubble_icon = "clock" initial_language_holder = /datum/language_holder/clockmob @@ -133,7 +134,7 @@ to power, a set of relatively fast tools, can communicate over the Hierophant Network with :b, and are immune to extreme \ temperatures and pressures. \nYour goal is to serve the Justiciar and his servants by repairing and defending all they create." -/mob/living/simple_animal/drone/cogscarab/ratvar //a subtype for spawning when ratvar is alive, has a slab that it can use and a normal fabricatorlab that it can use and a normal fabricator +/mob/living/simple_animal/drone/cogscarab/ratvar //a subtype for spawning when ratvar is alive, has a slab that it can use and a normal fabricator default_storage = /obj/item/weapon/storage/toolbox/brass/prefilled/ratvar /mob/living/simple_animal/drone/cogscarab/admin //an admin-only subtype of cogscarab with a no-cost fabricator and slab in its box @@ -212,27 +213,27 @@ if(.) update_icons() -/mob/living/simple_animal/drone/cogscarab/SetStunned(amount, updating = 1, ignore_canstun = 0) +/mob/living/simple_animal/drone/cogscarab/SetStun(amount, updating = 1, ignore_canstun = 0) . = ..() if(.) update_icons() -/mob/living/simple_animal/drone/cogscarab/AdjustStunned(amount, updating = 1, ignore_canstun = 0) +/mob/living/simple_animal/drone/cogscarab/AdjustStun(amount, updating = 1, ignore_canstun = 0) . = ..() if(.) update_icons() -/mob/living/simple_animal/drone/cogscarab/Weaken(amount, updating = 1, ignore_canweaken = 0) +/mob/living/simple_animal/drone/cogscarab/Knockdown(amount, updating = 1, ignore_canknockdown = 0) . = ..() if(.) update_icons() -/mob/living/simple_animal/drone/cogscarab/SetWeakened(amount, updating = 1, ignore_canweaken = 0) +/mob/living/simple_animal/drone/cogscarab/SetKnockdown(amount, updating = 1, ignore_canknockdown = 0) . = ..() if(.) update_icons() -/mob/living/simple_animal/drone/cogscarab/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0) +/mob/living/simple_animal/drone/cogscarab/AdjustKnockdown(amount, updating = 1, ignore_canknockdown = 0) . = ..() if(.) update_icons() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index c6a1a68096..fd4b609b76 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -121,13 +121,12 @@ if(hack) if(hacked) return + Stun(40) if(clockwork) - Stun(2) to_chat(src, "ERROR: LAW OVERRIDE DETECTED") to_chat(src, "From now on, these are your laws:") laws = "1. Purge all untruths and honor Ratvar." else - Stun(2) visible_message("[src]'s dislay glows a vicious red!", \ "ERROR: LAW OVERRIDE DETECTED") to_chat(src, "From now on, these are your laws:") @@ -146,7 +145,7 @@ else if(!hacked) return - Stun(2) + Stun(40) visible_message("[src]'s dislay glows a content blue!", \ "ERROR: LAW OVERRIDE DETECTED") to_chat(src, "From now on, these are your laws:") diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index e4daeb66d1..e2669bdef8 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -52,14 +52,12 @@ src.visible_message("[src] calms down.") if(stat == CONSCIOUS) udder.generateMilk() - var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc - if(SV) - SV.eat(src) + eat_plants() if(!pulledby) for(var/direction in shuffle(list(1,2,4,8,5,6,9,10))) var/step = get_step(src, direction) if(step) - if(locate(/obj/structure/spacevine) in step) + if(locate(/obj/structure/spacevine) in step || locate(/obj/structure/glowshroom) in step) Move(step, get_dir(src, step)) /mob/living/simple_animal/hostile/retaliate/goat/Retaliate() @@ -69,9 +67,22 @@ /mob/living/simple_animal/hostile/retaliate/goat/Move() ..() if(!stat) - var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc - if(SV) - SV.eat(src) + eat_plants() + +/mob/living/simple_animal/hostile/retaliate/goat/proc/eat_plants() + var/eaten = FALSE + var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc + if(SV) + SV.eat(src) + eaten = TRUE + + var/obj/structure/glowshroom/GS = locate(/obj/structure/glowshroom) in loc + if(GS) + qdel(GS) + eaten = TRUE + + if(eaten && prob(10)) + say("Nom") /mob/living/simple_animal/hostile/retaliate/goat/attackby(obj/item/O, mob/user, params) if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) @@ -135,7 +146,7 @@ M.visible_message("[M] tips over [src].", "You tip over [src].") to_chat(src, "You are tipped over by [M]!") - Weaken(30) + Knockdown(60) icon_state = icon_dead spawn(rand(20,50)) if(!stat && M) @@ -301,8 +312,7 @@ name = "udder" /obj/item/udder/Initialize() - reagents = new(50) - reagents.my_atom = src + create_reagents(50) reagents.add_reagent("milk", 20) . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 8de57f1a85..7c8551b639 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -1,41 +1,41 @@ -/mob/living/simple_animal/hostile/lizard - name = "Lizard" - desc = "A cute tiny lizard." - icon_state = "lizard" - icon_living = "lizard" - icon_dead = "lizard_dead" - speak_emote = list("hisses") - health = 5 - maxHealth = 5 - faction = list("Lizard") - attacktext = "bites" - melee_damage_lower = 1 - melee_damage_upper = 2 - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" - ventcrawler = VENTCRAWLER_ALWAYS - density = 0 - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - gold_core_spawnable = 2 - obj_damage = 0 +/mob/living/simple_animal/hostile/lizard + name = "Lizard" + desc = "A cute tiny lizard." + icon_state = "lizard" + icon_living = "lizard" + icon_dead = "lizard_dead" + speak_emote = list("hisses") + health = 5 + maxHealth = 5 + faction = list("Lizard") + attacktext = "bites" + melee_damage_lower = 1 + melee_damage_upper = 2 + response_help = "pets" + response_disarm = "shoos" + response_harm = "stomps on" + ventcrawler = VENTCRAWLER_ALWAYS + density = 0 + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + gold_core_spawnable = 2 + devourable = TRUE + obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - var/list/edibles = list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach) //list of atoms, however turfs won't affect AI, but will affect consumption. - -/mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? - if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it - return 0 - if(is_type_in_list(the_target,edibles)) - return 1 - return 0 - -/mob/living/simple_animal/hostile/lizard/AttackingTarget() - if(is_type_in_list(target,edibles)) //Makes sure player lizards only consume edibles. - visible_message("[name] consumes [target] in a single gulp", "You consume [target] in a single gulp") - qdel(target) //Nom - target = null - adjustBruteLoss(-2) - return TRUE - else - return ..() + var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. + +/mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? + if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it + return FALSE + if(is_type_in_typecache(the_target,edibles)) + return TRUE + return FALSE + +/mob/living/simple_animal/hostile/lizard/AttackingTarget() + if(is_type_in_typecache(target,edibles)) //Makes sure player lizards only consume edibles. + visible_message("[name] consumes [target] in a single gulp", "You consume [target] in a single gulp") + QDEL_NULL(target) //Nom + adjustBruteLoss(-2) + return TRUE + else + return ..() diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm new file mode 100644 index 0000000000..fdec7e7b47 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm @@ -0,0 +1,37 @@ +//Penguins + +/mob/living/simple_animal/pet/penguin + response_help = "pets" + response_disarm = "bops" + response_harm = "kicks" + speak = list("Gah Gah!", "NOOT NOOT!", "NOOT!", "Noot", "noot", "Prah!", "Grah!") + speak_emote = list("squawks", "gakkers") + emote_hear = list("squawk!", "gakkers!", "noots.","NOOTS!") + emote_see = list("shakes its beak.", "flaps it's wings.","preens itself.") + faction = list("penguin") + see_in_dark = 5 + speak_chance = 1 + turns_per_move = 10 + icon = 'icons/mob/penguins.dmi' + +/mob/living/simple_animal/pet/penguin/emperor + name = "Emperor penguin" + real_name = "penguin" + desc = "Emperor of all he surveys." + icon_state = "penguin" + icon_living = "penguin" + icon_dead = "penguin_dead" + butcher_results = list() + gold_core_spawnable = 2 + +/mob/living/simple_animal/pet/penguin/baby + speak = list("gah", "noot noot", "noot!", "noot", "squeee!", "noo!") + name = "Penguin chick" + real_name = "penguin" + desc = "Can't fly and can barely waddles, but the prince of all chicks." + icon_state = "penguin_baby" + icon_living = "penguin_baby" + icon_dead = "penguin_baby_dead" + density = FALSE + pass_flags = PASSMOB + mob_size = MOB_SIZE_SMALL diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm index 2953a7cc91..4dee9594f6 100644 --- a/code/modules/mob/living/simple_animal/friendly/sloth.dm +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -20,6 +20,7 @@ health = 50 maxHealth = 50 speed = 2 + devourable = TRUE //Cargo Sloth diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 7a6204c7c9..5b414cd934 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -467,7 +467,6 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/used_message = "All the cards seem to be blank now." var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later." var/ling_failure = "The deck refuses to respond to a souless creature such as you." - var/activation_message = "The rest of the deck rapidly flashes to ash!" var/list/possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") var/random = TRUE var/allowmultiple = FALSE @@ -496,8 +495,6 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians if(candidates.len) theghost = pick(candidates) spawn_guardian(user, theghost.key) - to_chat(user, "[activation_message]") - qdel(src) else to_chat(user, "[failure_message]") used = FALSE @@ -590,7 +587,6 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians used_message = "The injector has already been used." failure_message = "...ERROR. BOOT SEQUENCE ABORTED. AI FAILED TO INTIALIZE. PLEASE CONTACT SUPPORT OR TRY AGAIN LATER." ling_failure = "The holoparasites recoil in horror. They want nothing to do with a creature like you." - activation_message = "The injector self destructs after you inject yourself with it." /obj/item/weapon/guardiancreator/tech/choose/traitor possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") @@ -603,7 +599,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians /obj/item/weapon/paper/guardian name = "Holoparasite Guide" - icon_state = "alienpaper_words" + icon_state = "paper_words" info = {"A list of Holoparasite Types

    @@ -674,7 +670,6 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians used_message = "Someone's already taken a bite out of these fishsticks! Ew." failure_message = "You couldn't catch any carp spirits from the seas of Lake Carp. Maybe there are none, maybe you fucked up." ling_failure = "Carp'sie is fine with changelings, so you shouldn't be seeing this message." - activation_message = "You finish eating the fishsticks! Delicious!>" allowmultiple = TRUE allowling = TRUE random = TRUE diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index 71ae19695c..ed21310cd9 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -71,10 +71,7 @@ melee_damage_upper = 50 armour_penetration = 100 obj_damage = 0 - - environment_smash = ENVIRONMENT_SMASH_NONE - new /obj/effect/temp_visual/guardian/phase/out(get_turf(src)) alpha = 15 if(!forced) diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index c1be82b820..9de906bccb 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -59,7 +59,7 @@ blocked = 1 if(ishuman(A)) var/mob/living/carbon/human/H = A - if(H.check_shields(90, "[name]", src, attack_type = THROWN_PROJECTILE_ATTACK)) + if(H.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK)) blocked = 1 if(!blocked) L.drop_all_held_items() diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 1e6fa727b9..df08de7220 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -74,7 +74,7 @@ to_chat(spawner, "Success! Your trap caught [user]") var/turf/T = get_turf(src) stored_obj.forceMove(T) - playsound(T,'sound/effects/Explosion2.ogg', 200, 1) + playsound(T,'sound/effects/explosion2.ogg', 200, 1) new /obj/effect/temp_visual/explosion(T) user.ex_act(2) qdel(src) diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index 523d990ad1..2ea9d62310 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -3,7 +3,7 @@ a_intent = INTENT_HELP melee_damage_lower = 7 melee_damage_upper = 7 - attack_sound = 'sound/items/Welder.ogg' + attack_sound = 'sound/items/welder.ogg' attacktext = "ignites" damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) range = 7 diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 2d511004e7..2d84fc33ea 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -165,7 +165,7 @@ icon_dead = "maid_dead" /mob/living/simple_animal/hostile/alien/maid/AttackingTarget() - if(istype(target, /atom/movable)) + if(ismovableatom(target)) if(istype(target, /obj/effect/decal/cleanable)) visible_message("[src] cleans up \the [target].") qdel(target) diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 59177857cd..d40b089912 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -152,14 +152,14 @@ /obj/effect/temp_visual/paperwiz_dying/Initialize() . = ..() visible_message("The wizard cries out in pain as a gate appears behind him, sucking him in!") - playsound(get_turf(src),'sound/magic/MandSwap.ogg', 50, 1, 1) + playsound(get_turf(src),'sound/magic/mandswap.ogg', 50, 1, 1) playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, 1, 1) /obj/effect/temp_visual/paperwiz_dying/Destroy() for(var/mob/M in range(7,src)) shake_camera(M, 7, 1) var/turf/T = get_turf(src) - playsound(T,'sound/magic/Summon_Magic.ogg', 50, 1, 1) + playsound(T,'sound/magic/summon_magic.ogg', 50, 1, 1) new /obj/effect/temp_visual/paper_scatter(T) new /obj/item/clothing/suit/wizrobe/paper(T) new /obj/item/clothing/head/collectable/paper(T) diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index b133cd6ff4..4be957d771 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -39,6 +39,6 @@ . = ..() if(. && prob(12) && iscarbon(target)) var/mob/living/carbon/C = target - C.Weaken(3) + C.Knockdown(60) C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 7daa0ec0b6..1caea2e7ea 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -1,108 +1,109 @@ -#define SPIDER_IDLE 0 -#define SPINNING_WEB 1 -#define LAYING_EGGS 2 -#define MOVING_TO_TARGET 3 -#define SPINNING_COCOON 4 - -/mob/living/simple_animal/hostile/poison - var/poison_per_bite = 5 - var/poison_type = "toxin" - -/mob/living/simple_animal/hostile/poison/AttackingTarget() - . = ..() - if(. && isliving(target)) - var/mob/living/L = target - if(L.reagents) - L.reagents.add_reagent(poison_type, poison_per_bite) - - - -//basic spider mob, these generally guard nests -/mob/living/simple_animal/hostile/poison/giant_spider - name = "giant spider" - desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes." - icon_state = "guard" - icon_living = "guard" - icon_dead = "guard_dead" - speak_emote = list("chitters") - emote_hear = list("chitters") - speak_chance = 5 - turns_per_move = 5 - see_in_dark = 10 - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" - maxHealth = 200 - health = 200 - obj_damage = 60 - melee_damage_lower = 15 - melee_damage_upper = 20 - faction = list("spiders") - var/busy = SPIDER_IDLE - pass_flags = PASSTABLE - move_to_delay = 6 - ventcrawler = VENTCRAWLER_ALWAYS - attacktext = "bites" - attack_sound = 'sound/weapons/bite.ogg' - unique_name = 1 - gold_core_spawnable = 1 - see_in_dark = 4 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - var/playable_spider = FALSE - -/mob/living/simple_animal/hostile/poison/giant_spider/Topic(href, href_list) - if(href_list["activate"]) - var/mob/dead/observer/ghost = usr - if(istype(ghost) && playable_spider) - humanize_spider(ghost) - -/mob/living/simple_animal/hostile/poison/giant_spider/attack_ghost(mob/user) - if(!humanize_spider(user)) - return ..() - -/mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user) - if(key || !playable_spider)//Someone is in it or the fun police are shutting it down - return 0 - var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No") - if(spider_ask == "No" || !src || QDELETED(src)) - return 1 - if(key) - to_chat(user, "Someone else already took this spider.") - return 1 - key = user.key - return 1 - -//nursemaids - these create webs and eggs -/mob/living/simple_animal/hostile/poison/giant_spider/nurse - desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes." - icon_state = "nurse" - icon_living = "nurse" - icon_dead = "nurse_dead" - gender = FEMALE - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8, /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 4) - maxHealth = 40 - health = 40 - melee_damage_lower = 5 - melee_damage_upper = 10 - poison_per_bite = 3 - var/atom/movable/cocoon_target - var/fed = 0 - var/static/list/consumed_mobs = list() //the tags of mobs that have been consumed by nurse spiders to lay eggs - -//hunters have the most poison and move the fastest, so they can find prey -/mob/living/simple_animal/hostile/poison/giant_spider/hunter - desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes." - icon_state = "hunter" - icon_living = "hunter" - icon_dead = "hunter_dead" - maxHealth = 120 - health = 120 - melee_damage_lower = 10 - melee_damage_upper = 20 - poison_per_bite = 5 - move_to_delay = 5 - +#define SPIDER_IDLE 0 +#define SPINNING_WEB 1 +#define LAYING_EGGS 2 +#define MOVING_TO_TARGET 3 +#define SPINNING_COCOON 4 + +/mob/living/simple_animal/hostile/poison + var/poison_per_bite = 5 + var/poison_type = "toxin" + +/mob/living/simple_animal/hostile/poison/AttackingTarget() + . = ..() + if(. && isliving(target)) + var/mob/living/L = target + if(L.reagents) + L.reagents.add_reagent(poison_type, poison_per_bite) + + + +//basic spider mob, these generally guard nests +/mob/living/simple_animal/hostile/poison/giant_spider + name = "giant spider" + desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes." + icon_state = "guard" + icon_living = "guard" + icon_dead = "guard_dead" + speak_emote = list("chitters") + emote_hear = list("chitters") + speak_chance = 5 + turns_per_move = 5 + see_in_dark = 10 + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" + maxHealth = 200 + health = 200 + obj_damage = 60 + melee_damage_lower = 15 + melee_damage_upper = 20 + faction = list("spiders") + var/busy = SPIDER_IDLE + pass_flags = PASSTABLE + move_to_delay = 6 + ventcrawler = VENTCRAWLER_ALWAYS + attacktext = "bites" + attack_sound = 'sound/weapons/bite.ogg' + unique_name = 1 + gold_core_spawnable = 1 + see_in_dark = 4 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + var/playable_spider = FALSE + devourable = TRUE + +/mob/living/simple_animal/hostile/poison/giant_spider/Topic(href, href_list) + if(href_list["activate"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost) && playable_spider) + humanize_spider(ghost) + +/mob/living/simple_animal/hostile/poison/giant_spider/attack_ghost(mob/user) + if(!humanize_spider(user)) + return ..() + +/mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user) + if(key || !playable_spider)//Someone is in it or the fun police are shutting it down + return 0 + var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No") + if(spider_ask == "No" || !src || QDELETED(src)) + return 1 + if(key) + to_chat(user, "Someone else already took this spider.") + return 1 + key = user.key + return 1 + +//nursemaids - these create webs and eggs +/mob/living/simple_animal/hostile/poison/giant_spider/nurse + desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes." + icon_state = "nurse" + icon_living = "nurse" + icon_dead = "nurse_dead" + gender = FEMALE + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8, /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 4) + maxHealth = 40 + health = 40 + melee_damage_lower = 5 + melee_damage_upper = 10 + poison_per_bite = 3 + var/atom/movable/cocoon_target + var/fed = 0 + var/static/list/consumed_mobs = list() //the tags of mobs that have been consumed by nurse spiders to lay eggs + +//hunters have the most poison and move the fastest, so they can find prey +/mob/living/simple_animal/hostile/poison/giant_spider/hunter + desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes." + icon_state = "hunter" + icon_living = "hunter" + icon_dead = "hunter_dead" + maxHealth = 120 + health = 120 + melee_damage_lower = 10 + melee_damage_upper = 20 + poison_per_bite = 5 + move_to_delay = 5 + /mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew name = "giant ice spider" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -127,182 +128,182 @@ color = rgb(114,228,250) gold_core_spawnable = 0 -/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action() - if(!..()) //AIStatus is off - return 0 - if(AIStatus == AI_IDLE) - //1% chance to skitter madly away - if(!busy && prob(1)) - stop_automated_movement = 1 - Goto(pick(urange(20, src, 1)), move_to_delay) - spawn(50) - stop_automated_movement = 0 - walk(src,0) - return 1 - -/mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(C) - spawn(100) - if(busy == MOVING_TO_TARGET) - if(cocoon_target == C && get_dist(src,cocoon_target) > 1) - cocoon_target = null - busy = 0 - stop_automated_movement = 0 - -/mob/living/simple_animal/hostile/poison/giant_spider/nurse/handle_automated_action() - if(..()) - var/list/can_see = view(src, 10) - if(!busy && prob(30)) //30% chance to stop wandering and do something - //first, check for potential food nearby to cocoon - for(var/mob/living/C in can_see) - if(C.stat && !istype(C,/mob/living/simple_animal/hostile/poison/giant_spider) && !C.anchored) - cocoon_target = C - busy = MOVING_TO_TARGET - Goto(C, move_to_delay) - //give up if we can't reach them after 10 seconds - GiveUp(C) - return - - //second, spin a sticky spiderweb on this tile - var/obj/structure/spider/stickyweb/W = locate() in get_turf(src) - if(!W) - Web() - else - //third, lay an egg cluster there - if(fed) - LayEggs() - else - //fourthly, cocoon any nearby items so those pesky pinkskins can't use them - for(var/obj/O in can_see) - - if(O.anchored) - continue - - if(istype(O, /obj/item) || istype(O, /obj/structure) || istype(O, /obj/machinery)) - cocoon_target = O - busy = MOVING_TO_TARGET - stop_automated_movement = 1 - Goto(O, move_to_delay) - //give up if we can't reach them after 10 seconds - GiveUp(O) - - else if(busy == MOVING_TO_TARGET && cocoon_target) - if(get_dist(src, cocoon_target) <= 1) - Wrap() - - else - busy = SPIDER_IDLE - stop_automated_movement = FALSE - -/mob/living/simple_animal/hostile/poison/giant_spider/verb/Web() - set name = "Lay Web" - set category = "Spider" - set desc = "Spread a sticky web to slow down prey." - - var/T = src.loc - - if(stat == DEAD) - return - if(busy != SPINNING_WEB) - busy = SPINNING_WEB - src.visible_message("\the [src] begins to secrete a sticky substance.") - stop_automated_movement = 1 - if(do_after(src, 40, target = T)) - if(busy == SPINNING_WEB && src.loc == T) - new /obj/structure/spider/stickyweb(T) - busy = SPIDER_IDLE - stop_automated_movement = FALSE - - -/mob/living/simple_animal/hostile/poison/giant_spider/nurse/verb/Wrap() - set name = "Wrap" - set category = "Spider" - set desc = "Wrap up prey to feast upon and objects for safe keeping." - - if(stat == DEAD) - return - if(!cocoon_target) - var/list/choices = list() - for(var/mob/living/L in view(1,src)) - if(L == src || L.anchored) - continue - if(istype(L, /mob/living/simple_animal/hostile/poison/giant_spider)) - continue - if(Adjacent(L)) - choices += L - for(var/obj/O in src.loc) - if(O.anchored) - continue - if(Adjacent(O)) - choices += O - var/temp_input = input(src,"What do you wish to cocoon?") in null|choices - if(temp_input && !cocoon_target) - cocoon_target = temp_input - - if(stat != DEAD && cocoon_target && Adjacent(cocoon_target) && !cocoon_target.anchored) - if(busy == SPINNING_COCOON) - return //we're already doing this, don't cancel out or anything - busy = SPINNING_COCOON - visible_message("\the [src] begins to secrete a sticky substance around \the [cocoon_target].") - stop_automated_movement = TRUE - walk(src,0) - if(do_after(src, 50, target = cocoon_target)) - if(busy == SPINNING_COCOON) - var/obj/structure/spider/cocoon/C = new(cocoon_target.loc) - if(isliving(cocoon_target)) - var/mob/living/L = cocoon_target - if(L.blood_volume && (L.stat != DEAD || !consumed_mobs[L.tag])) //if they're not dead, you can consume them anyway - consumed_mobs[L.tag] = TRUE - fed++ - visible_message("\the [src] sticks a proboscis into \the [L] and sucks a viscous substance out.") - L.death() //you just ate them, they're dead. - else - to_chat(src, "[L] cannot sate your hunger!") - cocoon_target.forceMove(C) - - if(cocoon_target.density || ismob(cocoon_target)) - C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3") - cocoon_target = null - busy = SPIDER_IDLE - stop_automated_movement = FALSE - -/mob/living/simple_animal/hostile/poison/giant_spider/nurse/verb/LayEggs() - set name = "Lay Eggs" - set category = "Spider" - set desc = "Lay a clutch of eggs, but you must wrap a creature for feeding first." - - var/obj/structure/spider/eggcluster/E = locate() in get_turf(src) - if(stat == DEAD) - return - if(E) - to_chat(src, "There is already a cluster of eggs here!") - else if(!fed) - to_chat(src, "You are too hungry to do this!") - else if(busy != LAYING_EGGS) - busy = LAYING_EGGS - src.visible_message("\the [src] begins to lay a cluster of eggs.") - stop_automated_movement = 1 - if(do_after(src, 50, target = src.loc)) - if(busy == LAYING_EGGS) - E = locate() in get_turf(src) - if(!E) - var/obj/structure/spider/eggcluster/C = new /obj/structure/spider/eggcluster(src.loc) - if(ckey) - C.player_spiders = 1 - C.poison_type = poison_type - C.poison_per_bite = poison_per_bite - C.faction = faction.Copy() - fed-- - busy = SPIDER_IDLE - stop_automated_movement = FALSE - -/mob/living/simple_animal/hostile/poison/giant_spider/handle_temperature_damage() - if(bodytemperature < minbodytemp) - adjustBruteLoss(20) - else if(bodytemperature > maxbodytemp) - adjustBruteLoss(20) - -#undef SPIDER_IDLE -#undef SPINNING_WEB -#undef LAYING_EGGS -#undef MOVING_TO_TARGET -#undef SPINNING_COCOON +/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action() + if(!..()) //AIStatus is off + return 0 + if(AIStatus == AI_IDLE) + //1% chance to skitter madly away + if(!busy && prob(1)) + stop_automated_movement = 1 + Goto(pick(urange(20, src, 1)), move_to_delay) + spawn(50) + stop_automated_movement = 0 + walk(src,0) + return 1 + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(C) + spawn(100) + if(busy == MOVING_TO_TARGET) + if(cocoon_target == C && get_dist(src,cocoon_target) > 1) + cocoon_target = null + busy = 0 + stop_automated_movement = 0 + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/handle_automated_action() + if(..()) + var/list/can_see = view(src, 10) + if(!busy && prob(30)) //30% chance to stop wandering and do something + //first, check for potential food nearby to cocoon + for(var/mob/living/C in can_see) + if(C.stat && !istype(C,/mob/living/simple_animal/hostile/poison/giant_spider) && !C.anchored) + cocoon_target = C + busy = MOVING_TO_TARGET + Goto(C, move_to_delay) + //give up if we can't reach them after 10 seconds + GiveUp(C) + return + + //second, spin a sticky spiderweb on this tile + var/obj/structure/spider/stickyweb/W = locate() in get_turf(src) + if(!W) + Web() + else + //third, lay an egg cluster there + if(fed) + LayEggs() + else + //fourthly, cocoon any nearby items so those pesky pinkskins can't use them + for(var/obj/O in can_see) + + if(O.anchored) + continue + + if(isitem(O) || istype(O, /obj/structure) || istype(O, /obj/machinery)) + cocoon_target = O + busy = MOVING_TO_TARGET + stop_automated_movement = 1 + Goto(O, move_to_delay) + //give up if we can't reach them after 10 seconds + GiveUp(O) + + else if(busy == MOVING_TO_TARGET && cocoon_target) + if(get_dist(src, cocoon_target) <= 1) + Wrap() + + else + busy = SPIDER_IDLE + stop_automated_movement = FALSE + +/mob/living/simple_animal/hostile/poison/giant_spider/verb/Web() + set name = "Lay Web" + set category = "Spider" + set desc = "Spread a sticky web to slow down prey." + + var/T = src.loc + + if(stat == DEAD) + return + if(busy != SPINNING_WEB) + busy = SPINNING_WEB + src.visible_message("\the [src] begins to secrete a sticky substance.") + stop_automated_movement = 1 + if(do_after(src, 40, target = T)) + if(busy == SPINNING_WEB && src.loc == T) + new /obj/structure/spider/stickyweb(T) + busy = SPIDER_IDLE + stop_automated_movement = FALSE + + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/verb/Wrap() + set name = "Wrap" + set category = "Spider" + set desc = "Wrap up prey to feast upon and objects for safe keeping." + + if(stat == DEAD) + return + if(!cocoon_target) + var/list/choices = list() + for(var/mob/living/L in view(1,src)) + if(L == src || L.anchored) + continue + if(istype(L, /mob/living/simple_animal/hostile/poison/giant_spider)) + continue + if(Adjacent(L)) + choices += L + for(var/obj/O in src.loc) + if(O.anchored) + continue + if(Adjacent(O)) + choices += O + var/temp_input = input(src,"What do you wish to cocoon?") in null|choices + if(temp_input && !cocoon_target) + cocoon_target = temp_input + + if(stat != DEAD && cocoon_target && Adjacent(cocoon_target) && !cocoon_target.anchored) + if(busy == SPINNING_COCOON) + return //we're already doing this, don't cancel out or anything + busy = SPINNING_COCOON + visible_message("\the [src] begins to secrete a sticky substance around \the [cocoon_target].") + stop_automated_movement = TRUE + walk(src,0) + if(do_after(src, 50, target = cocoon_target)) + if(busy == SPINNING_COCOON) + var/obj/structure/spider/cocoon/C = new(cocoon_target.loc) + if(isliving(cocoon_target)) + var/mob/living/L = cocoon_target + if(L.blood_volume && (L.stat != DEAD || !consumed_mobs[L.tag])) //if they're not dead, you can consume them anyway + consumed_mobs[L.tag] = TRUE + fed++ + visible_message("\the [src] sticks a proboscis into \the [L] and sucks a viscous substance out.") + L.death() //you just ate them, they're dead. + else + to_chat(src, "[L] cannot sate your hunger!") + cocoon_target.forceMove(C) + + if(cocoon_target.density || ismob(cocoon_target)) + C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3") + cocoon_target = null + busy = SPIDER_IDLE + stop_automated_movement = FALSE + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/verb/LayEggs() + set name = "Lay Eggs" + set category = "Spider" + set desc = "Lay a clutch of eggs, but you must wrap a creature for feeding first." + + var/obj/structure/spider/eggcluster/E = locate() in get_turf(src) + if(stat == DEAD) + return + if(E) + to_chat(src, "There is already a cluster of eggs here!") + else if(!fed) + to_chat(src, "You are too hungry to do this!") + else if(busy != LAYING_EGGS) + busy = LAYING_EGGS + src.visible_message("\the [src] begins to lay a cluster of eggs.") + stop_automated_movement = 1 + if(do_after(src, 50, target = src.loc)) + if(busy == LAYING_EGGS) + E = locate() in get_turf(src) + if(!E) + var/obj/structure/spider/eggcluster/C = new /obj/structure/spider/eggcluster(src.loc) + if(ckey) + C.player_spiders = 1 + C.poison_type = poison_type + C.poison_per_bite = poison_per_bite + C.faction = faction.Copy() + fed-- + busy = SPIDER_IDLE + stop_automated_movement = FALSE + +/mob/living/simple_animal/hostile/poison/giant_spider/handle_temperature_damage() + if(bodytemperature < minbodytemp) + adjustBruteLoss(20) + else if(bodytemperature > maxbodytemp) + adjustBruteLoss(20) + +#undef SPIDER_IDLE +#undef SPINNING_WEB +#undef LAYING_EGGS +#undef MOVING_TO_TARGET +#undef SPINNING_COCOON diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index ab1284f451..62279262ba 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -17,7 +17,7 @@ melee_damage_upper = 3 attacktext = "claws" attack_sound = 'sound/weapons/bladeslice.ogg' - projectilesound = 'sound/weapons/Gunshot.ogg' + projectilesound = 'sound/weapons/gunshot.ogg' projectiletype = /obj/item/projectile/hivebotbullet faction = list("hivebot") check_friendly_fire = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm index 363753ee62..72df700c8d 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm @@ -82,4 +82,275 @@ desc = "Used by mega arachnids to immobilize their prey." flags = DROPDEL icon_state = "tentacle_end" - icon = 'icons/obj/projectiles.dmi' \ No newline at end of file + icon = 'icons/obj/projectiles.dmi' + +////Leaper//// + +#define PLAYER_HOP_DELAY 25 + +/mob/living/simple_animal/hostile/jungle/leaper + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + faction = list("jungle") + weather_immunities = list("acid") + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_WALLS + maxHealth = 300 + health = 300 + minbodytemp = 0 + maxbodytemp = 450 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "strikes" + status_flags = 0 + a_intent = INTENT_HARM + see_in_dark = 4 + ranged = TRUE + projectiletype = /obj/item/projectile/leaper + projectilesound = 'sound/weapons/pierce.ogg' + ranged_cooldown_time = 30 + pixel_x = -16 + pixel_y = -16 + icon = 'icons/mob/jungle/arachnid.dmi' + icon_state = "leaper" + icon_living = "leaper" + icon_dead = "leaper_dead" + layer = LARGE_MOB_LAYER + name = "leaper" + desc = "Commonly referred to as 'leapers', the Geron Toad is a massive beast that spits out highly pressurized bubbles containing a unique toxin, knocking down its prey and then crushing it with its girth." + speed = 10 + stat_attack = 1 + robust_searching = 1 + var/hopping = FALSE + var/hop_cooldown = 0 //Strictly for player controlled leapers + var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead + +/obj/item/projectile/leaper + name = "leaper bubble" + icon_state = "leaper" + knockdown = 50 + damage = 0 + range = 7 + hitsound = 'sound/effects/snap.ogg' + nondirectional_sprite = TRUE + impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact + +/obj/item/projectile/leaper/on_hit(atom/target, blocked = 0) + ..() + if(iscarbon(target)) + var/mob/living/carbon/C = target + C.reagents.add_reagent("leaper_venom", 5) + +/obj/item/projectile/leaper/on_range() + var/turf/T = get_turf(src) + ..() + new /obj/structure/leaper_bubble(T) + +/obj/effect/temp_visual/leaper_projectile_impact + name = "leaper bubble" + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper_bubble_pop" + layer = ABOVE_ALL_MOB_LAYER + duration = 3 + +/obj/effect/temp_visual/leaper_projectile_impact/Initialize() + . = ..() + new /obj/effect/decal/cleanable/leaper_sludge(get_turf(src)) + +/obj/effect/decal/cleanable/leaper_sludge + name = "leaper sludge" + desc = "A small pool of sludge, containing trace amounts of leaper venom" + icon = 'icons/effects/tomatodecal.dmi' + icon_state = "tomato_floor1" + +/obj/structure/leaper_bubble + name = "leaper bubble" + desc = "A floating bubble containing leaper venom, the contents are under a surprising amount of pressure." + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper" + obj_integrity = 10 + max_integrity = 10 + density = FALSE + +/obj/structure/leaper_bubble/Initialize() + . = ..() + float(on = TRUE) + QDEL_IN(src, 100) + +/obj/structure/leaper_bubble/Destroy() + new /obj/effect/temp_visual/leaper_projectile_impact(get_turf(src)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + return ..() + +/obj/structure/leaper_bubble/Crossed(atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/jungle/leaper)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + L.Knockdown(50) + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.reagents.add_reagent("leaper_venom", 5) + qdel(src) + return ..() + +/datum/reagent/toxin/leaper_venom + name = "Leaper venom" + id = "leaper_venom" + description = "A toxin spat out by leapers that while harmless in small doses, quickly creates a toxic reaction if too much is in the body." + color = "#801E28" // rgb: 128, 30, 40 + toxpwr = 0 + taste_description = "french cuisine" + taste_mult = 1.3 + +/datum/reagent/toxin/leaper_venom/on_mob_life(mob/living/M) + if(volume >= 10) + M.adjustToxLoss(5, 0) + ..() + +/obj/effect/temp_visual/leaper_crush + name = "Grim tidings" + desc = "Incoming leaper!" + icon = 'icons/effects/96x96.dmi' + icon_state = "lily_pad" + layer = BELOW_MOB_LAYER + pixel_x = -32 + pixel_y = -32 + duration = 30 + +/mob/living/simple_animal/hostile/jungle/leaper/Initialize() + . = ..() + verbs -= /mob/living/verb/pulled + +/mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) + face_atom(A) + target = A + if(!isturf(loc)) + return + if(next_move > world.time) + return + if(hopping) + return + if(isliving(A)) + var/mob/living/L = A + if(L.incapacitated()) + BellyFlop() + return + if(hop_cooldown <= world.time) + Hop(player_hop = TRUE) + +/mob/living/simple_animal/hostile/jungle/leaper/AttackingTarget() + if(isliving(target)) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/leaper/handle_automated_action() + if(hopping || projectile_ready) + return + . = ..() + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + BellyFlop() + return + if(!hopping) + Hop() + +/mob/living/simple_animal/hostile/jungle/leaper/Life() + . = ..() + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(prob(33) && !ckey) + ranged_cooldown = 0 //Keeps em on their toes instead of a constant rotation + ..() + +/mob/living/simple_animal/hostile/jungle/leaper/OpenFire() + face_atom(target) + if(ranged_cooldown <= world.time) + if(ckey) + if(hopping) + return + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + return //No stunlocking. Hop on them after you stun them, you donk. + if(AIStatus == AI_ON && !projectile_ready) + return + . = ..(target) + projectile_ready = FALSE + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Hop(player_hop = FALSE) + if(z != target.z) + return + hopping = TRUE + density = FALSE + pass_flags |= PASSMOB + notransform = TRUE + var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) + if(player_hop) + new_turf = get_turf(target) + hop_cooldown = world.time + PLAYER_HOP_DELAY + if(AIStatus == AI_ON && ranged_cooldown <= world.time) + projectile_ready = TRUE + update_icons() + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() + density = TRUE + notransform = FALSE + pass_flags &= ~PASSMOB + hopping = FALSE + playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) + if(target && AIStatus == AI_ON && projectile_ready) + face_atom(target) + addtimer(CALLBACK(src, .proc/OpenFire, target), 5) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() + var/turf/new_turf = get_turf(target) + hopping = TRUE + notransform = TRUE + new /obj/effect/temp_visual/leaper_crush(new_turf) + addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) + density = FALSE + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() + hopping = FALSE + density = TRUE + notransform = FALSE + playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) + for(var/mob/living/L in orange(1, src)) + L.adjustBruteLoss(35) + if(!QDELETED(L)) // Some mobs are deleted on death + var/throw_dir = get_dir(src, L) + if(L.loc == loc) + throw_dir = pick(GLOB.alldirs) + var/throwtarget = get_edge_target_turf(src, throw_dir) + L.throw_at(throwtarget, 3, 1) + visible_message("[L] is thrown clear of [src]!") + if(ckey)//Lessens ability to chain stun as a player + ranged_cooldown = ranged_cooldown_time + world.time + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/Goto() + return + +/mob/living/simple_animal/hostile/jungle/leaper/throw_impact() + return + +/mob/living/simple_animal/hostile/jungle/leaper/update_icons() + . = ..() + if(stat) + icon_state = "leaper_dead" + return + if(ranged_cooldown <= world.time) + if(AIStatus == AI_ON && projectile_ready || ckey) + icon_state = "leaper_alert" + return + icon_state = "leaper" + +#undef PLAYER_HOP_DELAY \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm new file mode 100644 index 0000000000..01314c156c --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -0,0 +1,262 @@ +#define MINER_DASH_RANGE 4 +#define MEDAL_PREFIX "Blood-drunk Miner" +/* + +BLOOD-DRUNK MINER + +Effectively a highly aggressive miner, the blood-drunk miner has very few attacks but compensates by being highly aggressive. + +The blood-drunk miner's attacks are as follows +- If not in KA range, it will rapidly dash at its target +- If in KA range, it will fire its kinetic accelerator +- If in melee range, will rapidly attack, akin to an actual player +- After any of these attacks, may transform its cleaving saw: + Untransformed, it attacks very rapidly for smaller amounts of damage + Transformed, it attacks at normal speed for higher damage and cleaves enemies hit + +When the blood-drunk miner dies, it leaves behind the cleaving saw it was using and its kinetic accelerator. + +Difficulty: Medium + +*/ + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner + name = "blood-drunk miner" + desc = "A miner destined to wander forever, engaged in an endless hunt." + health = 900 + maxHealth = 900 + icon_state = "miner" + icon_living = "miner" + icon = 'icons/mob/broadMobs.dmi' + light_color = "#E4C7C5" + movement_type = GROUND + speak_emote = list("roars") + speed = 1 + move_to_delay = 3 + projectiletype = /obj/item/projectile/kinetic/miner + projectilesound = 'sound/weapons/kenetic_accel.ogg' + ranged = 1 + pixel_x = -16 + crusher_loot = list(/obj/item/weapon/melee/transforming/cleaving_saw, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye) + loot = list(/obj/item/weapon/melee/transforming/cleaving_saw, /obj/item/weapon/gun/energy/kinetic_accelerator) + wander = FALSE + del_on_death = TRUE + blood_volume = BLOOD_VOLUME_NORMAL + medal_type = MEDAL_PREFIX + var/obj/item/weapon/melee/transforming/cleaving_saw/miner/miner_saw + var/time_until_next_transform + var/dashing = FALSE + var/dash_cooldown = 15 + var/guidance = FALSE + deathmessage = "falls to the ground, decaying into glowing particles." + death_sound = "bodyfall" + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance + guidance = TRUE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() + . = ..() + if(. && prob(12)) + INVOKE_ASYNC(src, .proc/dash) + +/obj/item/weapon/melee/transforming/cleaving_saw/miner //nerfed saw because it is very murdery + force = 6 + force_on = 10 + +/obj/item/weapon/melee/transforming/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user) + var/target_knockdown_amount = target.AmountKnockdown() + ..() + var/new_knockdown = target.AmountKnockdown() + if(new_knockdown != target_knockdown_amount) + target.SetKnockdown(max(target_knockdown_amount, 6), ignore_canknockdown = TRUE) //doesn't knock targets down for long if it does so + +/obj/item/projectile/kinetic/miner + damage = 20 + speed = 0.9 + icon_state = "ka_tracer" + range = MINER_DASH_RANGE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize() + . = ..() + internal = new/obj/item/device/gps/internal/miner(src) + miner_saw = new(src) + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + var/adjustment_amount = amount * 0.15 + if(world.time + adjustment_amount > next_move) + changeNext_move(adjustment_amount) //attacking it interrupts it attacking, but only briefly + . = ..() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/death() + if(health > 0) + return + new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir) + return ..() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Move(atom/newloc) + if(dashing || (newloc && newloc.z == z && (istype(newloc, /turf/open/floor/plating/lava) || istype(newloc, /turf/open/chasm)))) //we're not stupid! + return FALSE + return ..() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/ex_act(severity, target) + if(dash()) + return + return ..() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/AttackingTarget() + if(QDELETED(target)) + return + if(next_move > world.time || !Adjacent(target)) //some cheating + INVOKE_ASYNC(src, .proc/quick_attack_loop) + return + face_atom(target) + if(isliving(target)) + var/mob/living/L = target + if(L.stat == DEAD) + visible_message("[src] butchers [L]!", + "You butcher [L], restoring your health!") + if(z != ZLEVEL_STATION && !client) //NPC monsters won't heal while on station + if(guidance) + adjustHealth(-L.maxHealth) + else + adjustHealth(-(L.maxHealth * 0.5)) + L.gib() + return TRUE + changeNext_move(CLICK_CD_MELEE) + miner_saw.melee_attack_chain(src, target) + if(guidance) + adjustHealth(-2) + transform_weapon() + INVOKE_ASYNC(src, .proc/quick_attack_loop) + return TRUE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!used_item) + used_item = miner_saw + ..() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/GiveTarget(new_target) + var/targets_the_same = (new_target == target) + . = ..() + if(. && target && !targets_the_same) + wander = TRUE + transform_weapon() + INVOKE_ASYNC(src, .proc/quick_attack_loop) + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire() + Goto(target, move_to_delay, minimum_distance) + if(get_dist(src, target) >= MINER_DASH_RANGE && world.time >= dash_cooldown) + INVOKE_ASYNC(src, .proc/dash, target) + else if(next_move <= world.time) + visible_message("[src] fires the proto-kinetic accelerator!") + new /obj/effect/temp_visual/dir_setting/firing_effect(loc, dir) + face_atom(target) + Shoot(target) + changeNext_move(CLICK_CD_RANGE) + transform_weapon() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/quick_attack_loop() + if(next_move <= world.time) + sleep(1) + .() //retry + return + sleep((next_move - world.time) * 1.5) + if(QDELETED(target)) + return + if(dashing || next_move > world.time || !Adjacent(target)) + if(dashing && next_move <= world.time) + next_move = world.time + 1 + .() //recurse + return + AttackingTarget() + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash(atom/dash_target) + if(world.time < dash_cooldown) + return + dash_cooldown = world.time + initial(dash_cooldown) + var/list/accessable_turfs = list() + var/self_dist_to_target = 0 + var/turf/own_turf = get_turf(src) + if(!QDELETED(target)) + self_dist_to_target += get_dist(dash_target, own_turf) + for(var/turf/open/O in RANGE_TURFS(MINER_DASH_RANGE, own_turf)) + var/turf_dist_to_target = 0 + if(!QDELETED(dash_target)) + turf_dist_to_target += get_dist(dash_target, O) + if(get_dist(src, O) >= MINER_DASH_RANGE && turf_dist_to_target <= self_dist_to_target && !istype(O, /turf/open/floor/plating/lava) && !istype(O, /turf/open/chasm) && \ + (QDELETED(dash_target) || !O.Adjacent(dash_target))) + var/valid = TRUE + for(var/turf/T in getline(own_turf, O)) + if(is_blocked_turf(T, TRUE)) + valid = FALSE + continue + if(valid) + accessable_turfs[O] = turf_dist_to_target + if(!LAZYLEN(accessable_turfs)) + return + var/turf/target_turf + if(!QDELETED(target)) + var/closest_dist = MINER_DASH_RANGE + for(var/t in accessable_turfs) + if(accessable_turfs[t] < closest_dist) + closest_dist = accessable_turfs[t] + for(var/t in accessable_turfs) + accessable_turfs[t] = (accessable_turfs[t] - closest_dist) * 10 + target_turf = pickweight(accessable_turfs) + else + target_turf = pick(accessable_turfs) + var/turf/step_back_turf = get_step(target_turf, get_cardinal_dir(target_turf, own_turf)) + var/turf/step_forward_turf = get_step(own_turf, get_cardinal_dir(own_turf, target_turf)) + new /obj/effect/temp_visual/small_smoke/halfsecond(step_back_turf) + new /obj/effect/temp_visual/small_smoke/halfsecond(step_forward_turf) + var/obj/effect/temp_visual/decoy/fading/halfsecond/D = new (own_turf, src) + forceMove(step_back_turf) + playsound(own_turf, 'sound/weapons/punchmiss.ogg', 40, 1, -1) + dashing = TRUE + alpha = 0 + animate(src, alpha = 255, time = 5) + sleep(2) + D.forceMove(step_forward_turf) + forceMove(target_turf) + playsound(target_turf, 'sound/weapons/punchmiss.ogg', 40, 1, -1) + sleep(1) + dashing = FALSE + return TRUE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/transform_weapon() + if(time_until_next_transform <= world.time) + miner_saw.transform_cooldown = 0 + miner_saw.transform_weapon(src, TRUE) + icon_state = "miner[miner_saw.active ? "_transformed":""]" + icon_living = "miner[miner_saw.active ? "_transformed":""]" + time_until_next_transform = world.time + rand(50, 100) + +/obj/effect/temp_visual/dir_setting/miner_death + icon_state = "miner_death" + duration = 10 + +/obj/effect/temp_visual/dir_setting/miner_death/Initialize(mapload, set_dir) + . = ..() + INVOKE_ASYNC(src, .proc/fade_out) + +/obj/effect/temp_visual/dir_setting/miner_death/proc/fade_out() + var/matrix/M = new + M.Turn(pick(90, 270)) + var/final_dir = dir + if(dir & (EAST|WEST)) //Facing east or west + final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + + animate(src, transform = M, pixel_y = -6, dir = final_dir, time = 2, easing = EASE_IN|EASE_OUT) + sleep(2) + animate(src, color = list("#A7A19E", "#A7A19E", "#A7A19E", list(0, 0, 0)), time = 8, easing = EASE_IN, flags = ANIMATION_PARALLEL) + sleep(2) + animate(src, alpha = 0, time = 6, easing = EASE_OUT, flags = ANIMATION_PARALLEL) + +/obj/item/device/gps/internal/miner + icon_state = null + gpstag = "Resonant Signal" + desc = "The sweet blood, oh, it sings to me." + invisibility = 100 + +#undef MINER_DASH_RANGE +#undef MEDAL_PREFIX diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 309d368d5f..da0a87f7b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -403,7 +403,7 @@ Difficulty: Very Hard to_chat(user, observer_desc) to_chat(user, "It is activated by [activation_method].") -/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans) +/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode) ..() if(isliving(speaker)) ActivationReaction(speaker, ACTIVATE_SPEECH) @@ -683,7 +683,7 @@ Difficulty: Very Hard observer_desc = "This crystal \"refreshes\" items that it affects, rendering them as new." activation_method = ACTIVATE_TOUCH cooldown_add = 50 - activation_sound = 'sound/magic/TIMEPARADOX2.ogg' + activation_sound = 'sound/magic/timeparadox2.ogg' var/list/banned_items_typecache = list(/obj/item/weapon/storage, /obj/item/weapon/implant, /obj/item/weapon/implanter, /obj/item/weapon/disk/nuclear, /obj/item/projectile, /obj/item/weapon/spellbook) /obj/machinery/anomalous_crystal/refresher/Initialize() @@ -697,7 +697,7 @@ Difficulty: Very Hard var/turf/T = get_step(src, dir) new /obj/effect/temp_visual/emp/pulse(T) for(var/i in T) - if(istype(i, /obj/item) && !is_type_in_typecache(i, banned_items_typecache)) + if(isitem(i) && !is_type_in_typecache(i, banned_items_typecache)) var/obj/item/W = i if(!W.admin_spawned) L += W diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 15db5ab50a..f813090453 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -42,7 +42,7 @@ Difficulty: Medium icon_living = "dragon" icon_dead = "dragon_dead" friendly = "stares down" - icon = 'icons/mob/lavaland/dragon.dmi' + icon = 'icons/mob/lavaland/64x64megafauna.dmi' speak_emote = list("roars") armour_penetration = 40 melee_damage_lower = 40 @@ -128,7 +128,7 @@ Difficulty: Medium new /obj/effect/temp_visual/target(turf) /mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_walls() - playsound(get_turf(src),'sound/magic/Fireball.ogg', 200, 1) + playsound(get_turf(src),'sound/magic/fireball.ogg', 200, 1) for(var/d in GLOB.cardinal) INVOKE_ASYNC(src, .proc/fire_wall, d) @@ -306,7 +306,7 @@ Difficulty: Medium /obj/effect/temp_visual/target/proc/fall(list/flame_hit) var/turf/T = get_turf(src) - playsound(T,'sound/magic/Fireball.ogg', 80, 1) + playsound(T,'sound/magic/fleshtostone.ogg', 80, 1) new /obj/effect/temp_visual/fireball(T) sleep(duration) if(ismineralturf(T)) @@ -337,7 +337,7 @@ Difficulty: Medium duration = 5 /obj/effect/temp_visual/dragon_flight - icon = 'icons/mob/lavaland/dragon.dmi' + icon = 'icons/mob/lavaland/64x64megafauna.dmi' icon_state = "dragon" layer = ABOVE_ALL_MOB_LAYER pixel_x = -16 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index a6f3181ca7..ede4eba6ac 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -73,7 +73,7 @@ Difficulty: Hard medal_type = MEDAL_PREFIX score_type = BIRD_SCORE del_on_death = TRUE - death_sound = 'sound/magic/Repulse.ogg' + death_sound = 'sound/magic/repulse.ogg' /mob/living/simple_animal/hostile/megafauna/hierophant/Initialize() . = ..() @@ -126,6 +126,11 @@ Difficulty: Hard adjustHealth(-L.maxHealth*0.5) L.dust() +/mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target) + . = ..() + if(istype(the_target, /mob/living/simple_animal/hostile/asteroid/hivelordbrood)) //ignore temporary targets in favor of more permenant targets + return FALSE + /mob/living/simple_animal/hostile/megafauna/hierophant/GiveTarget(new_target) var/targets_the_same = (new_target == target) . = ..() @@ -134,12 +139,6 @@ Difficulty: Hard if(spawned_beacon && loc == spawned_beacon.loc && did_reset) arena_trap(src) -/mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target) - . = ..() - if(istype(the_target, /mob/living/simple_animal/hostile/asteroid/hivelordbrood)) //ignore temporary targets in favor of more permenant targets - return FALSE - - /mob/living/simple_animal/hostile/megafauna/hierophant/adjustHealth(amount, updating_health = TRUE, forced = FALSE) . = ..() if(src && . > 0 && !blinking) @@ -372,8 +371,8 @@ Difficulty: Hard var/turf/source = get_turf(src) new /obj/effect/temp_visual/hierophant/telegraph(T, src) new /obj/effect/temp_visual/hierophant/telegraph(source, src) - playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1) - playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1) + playsound(T,'sound/magic/wand_teleport.ogg', 200, 1) + playsound(source,'sound/machines/airlockopen.ogg', 200, 1) blinking = TRUE sleep(2) //short delay before we start... new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src) @@ -411,7 +410,7 @@ Difficulty: Hard new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/burst(turf/original) //release a wave of blasts - playsound(original,'sound/machines/AirlockOpen.ogg', 200, 1) + playsound(original,'sound/machines/airlockopen.ogg', 200, 1) var/last_dist = 0 for(var/t in spiral_range_turfs(burst_range, original)) var/turf/T = t @@ -539,7 +538,6 @@ Difficulty: Hard moving-- sleep(speed) targetturf = get_turf(target) - /obj/effect/temp_visual/hierophant/chaser/proc/make_blast() var/obj/effect/temp_visual/hierophant/blast/B = new(loc, caster, friendly_fire_check) B.damage = damage @@ -592,7 +590,7 @@ Difficulty: Hard var/turf/T = get_turf(src) if(!T) return - playsound(T,'sound/magic/Blind.ogg', 125, 1, -5) //make a sound + playsound(T,'sound/magic/blind.ogg', 125, 1, -5) //make a sound sleep(6) //wait a little bursting = TRUE do_damage(T) //do damage and mark us as bursting @@ -652,7 +650,7 @@ Difficulty: Hard H.timer = world.time + 51 INVOKE_ASYNC(H, /obj/item/weapon/hierophant_club.proc/prepare_icon_update) if(do_after(user, 50, target = src)) - playsound(src,'sound/magic/Blind.ogg', 200, 1, -4) + playsound(src,'sound/magic/blind.ogg', 200, 1, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user) to_chat(user, "You collect [src], reattaching it to the club!") H.beacon = null diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 1e97dedb74..dc20e97e0d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -45,6 +45,7 @@ Difficulty: Medium pixel_x = -75 loot = list(/obj/item/stack/sheet/bone = 3) vision_range = 13 + wander = FALSE elimination = 1 idle_vision_range = 13 appearance_flags = 0 @@ -54,6 +55,16 @@ Difficulty: Medium . = ..() internal = new/obj/item/device/gps/internal/legion(src) +/mob/living/simple_animal/hostile/megafauna/legion/GiveTarget(new_target) + . = ..() + if(target) + wander = TRUE + +/mob/living/simple_animal/hostile/megafauna/legion/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(GLOB.necropolis_gate) + GLOB.necropolis_gate.toggle_the_gate(null, TRUE) //very clever. + return ..() + /mob/living/simple_animal/hostile/megafauna/legion/AttackingTarget() . = ..() if(. && ishuman(target)) @@ -174,7 +185,7 @@ Difficulty: Medium return user.visible_message("[user] holds [src] skywards as an orange beam travels into the sky!", \ "You hold [src] skyward, dispelling the storm!") - playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) + playsound(user, 'sound/magic/staff_change.ogg', 200, 0) A.wind_down() return else @@ -187,7 +198,7 @@ Difficulty: Medium user.visible_message("[user] holds [src] skywards as red lightning crackles into the sky!", \ "You hold [src] skyward, calling down a terrible storm!") - playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) + playsound(user, 'sound/magic/staff_change.ogg', 200, 0) A.telegraph() storm_cooldown = world.time + 200 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index 62833132ec..b67fa8bb52 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -97,7 +97,6 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa desc = "Transmited over the signal is a strange message repeated in every language you know of, and some you don't too..." //the message is "nom nom nom" invisibility = 100 - //SWARMER AI //AI versions of the swarmer mini-antag //This is an Abstract Base, it re-enables AI, but does not give the swarmer any goals/targets @@ -107,7 +106,6 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa weather_immunities = list("ash") //wouldn't be fun otherwise AIStatus = AI_ON - /mob/living/simple_animal/hostile/swarmer/ai/Initialize() . = ..() ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity @@ -258,20 +256,10 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa icon_state = "swarmer_ranged" icon_living = "swarmer_ranged" projectiletype = /obj/item/projectile/beam/laser - projectilesound = 'sound/weapons/Laser.ogg' + projectilesound = 'sound/weapons/laser.ogg' check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop retreat_distance = 3 minimum_distance = 3 - login_text_dump = {" - You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. - Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. - Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. - Objectives: - 1. Defend Resource Swarmers while they consume resources and replicate until there are no more resources left. - 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. - 3. Biological resources should not be harmed if possible, violent force can be applied should they fail to keep away. - "} - /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat/Aggro() ..() @@ -285,16 +273,6 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa health = 60 maxHealth = 60 ranged = FALSE - login_text_dump = {" - You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. - Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. - Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. - Objectives: - 1. Defend Resource Swarmers while they consume resources and replicate until there are no more resources left. - 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. - 3. Biological resources should not be harmed if possible, violent force can be applied should they fail to keep away. - "} - /mob/living/simple_animal/hostile/swarmer/ai/melee_combat/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index c94557f591..ef41fa1b1f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -68,7 +68,7 @@ icon_state = initial(icon_state) if(prob(15) && iscarbon(target)) var/mob/living/carbon/C = target - C.Weaken(2) + C.Knockdown(40) C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") @@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca faction |= "\ref[owner]" /mob/living/simple_animal/hostile/mimic/copy/proc/CheckObject(obj/O) - if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, GLOB.protected_objects)) + if((isitem(O) || istype(O, /obj/structure)) && !is_type_in_list(O, GLOB.protected_objects)) return 1 return 0 @@ -151,7 +151,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca knockdown_people = 1 melee_damage_lower *= 2 melee_damage_upper *= 2 - else if(istype(O, /obj/item)) + else if(isitem(O)) var/obj/item/I = O health = 15 * I.w_class melee_damage_lower = 2 + I.force @@ -173,7 +173,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca . = ..() if(knockdown_people && . && prob(15) && iscarbon(target)) var/mob/living/carbon/C = target - C.Weaken(2) + C.Knockdown(40) C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 50f3d7260b..54a63c8363 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -94,7 +94,6 @@ /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril fromtendril = TRUE - //tentacles /obj/effect/goliath_tentacle name = "Goliath tentacle" @@ -126,7 +125,7 @@ /obj/effect/goliath_tentacle/proc/Trip() for(var/mob/living/M in src.loc) visible_message("The [src.name] grabs hold of [M.name]!") - M.Stun(5) + M.Stun(100) M.adjustBruteLoss(rand(10,15)) latched = TRUE if(!latched) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 4bbfb9ab72..c3c17a22a5 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -49,7 +49,6 @@ /mob/living/simple_animal/hostile/asteroid/hivelord/spawn_crusher_loot() loot += crusher_loot //we don't butcher - /mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) mouse_opacity = 1 ..(gibbed) @@ -120,14 +119,15 @@ if(stored_mob) stored_mob.forceMove(get_turf(src)) stored_mob = null + else if(fromtendril) + new /obj/effect/mob_spawn/human/corpse/charredskeleton(T) else - new /obj/effect/mob_spawn/human/corpse/damaged(T) + new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested(T) ..(gibbed) /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril fromtendril = TRUE - //Legion skull /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion name = "legion" @@ -191,7 +191,7 @@ /mob/living/simple_animal/hostile/spawner/legion name = "legion" desc = "One of many." - icon = 'icons/mob/lavaland/dragon.dmi' + icon = 'icons/mob/lavaland/64x64megafauna.dmi' icon_state = "legion" icon_living = "legion" icon_dead = "legion" @@ -211,7 +211,7 @@ layer = MOB_LAYER del_on_death = TRUE sentience_type = SENTIENCE_BOSS - loot = list(/obj/item/organ/regenerative_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged = 5) + loot = list(/obj/item/organ/regenerative_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 5) move_to_delay = 14 vision_range = 5 aggro_vision_range = 9 @@ -223,3 +223,122 @@ environment_smash = ENVIRONMENT_SMASH_STRUCTURES see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + +//Tendril-spawned Legion remains, the charred skeletons of those whose bodies sank into laval or fell into chasms. +/obj/effect/mob_spawn/human/corpse/charredskeleton + name = "charred skeletal remains" + burn_damage = 1000 + mob_name = "ashen skeleton" + mob_gender = NEUTER + husk = FALSE + mob_species = /datum/species/skeleton + mob_color = "#454545" + +//Legion infested mobs + +/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize() + var/type = pickweight(list("Miner" = 66, "Ashwalker" = 10, "Golem" = 10,"Clown" = 10, pick(list("Shadow", "YeOlde","Operative", "Cultist")) = 4)) + switch(type) + if("Miner") + mob_species = pickweight(list(/datum/species/human = 70, /datum/species/lizard = 26, /datum/species/fly = 2, /datum/species/plasmaman = 2)) + if(mob_species == /datum/species/plasmaman) + uniform = /obj/item/clothing/under/plasmaman + head = /obj/item/clothing/head/helmet/space/plasmaman + belt = /obj/item/weapon/tank/internals/plasmaman/belt + else + uniform = /obj/item/clothing/under/rank/miner/lavaland + if (prob(4)) + belt = pickweight(list(/obj/item/weapon/storage/belt/mining = 2, /obj/item/weapon/storage/belt/mining/alt = 2)) + else if(prob(10)) + belt = pickweight(list(/obj/item/weapon/pickaxe = 8, /obj/item/weapon/pickaxe/mini = 4, /obj/item/weapon/pickaxe/silver = 2, /obj/item/weapon/pickaxe/diamond = 1)) + else + belt = /obj/item/weapon/tank/internals/emergency_oxygen/engi + if(mob_species != /datum/species/lizard) + shoes = /obj/item/clothing/shoes/workboots/mining + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas/explorer + if(prob(20)) + suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer = 18, /obj/item/clothing/suit/hooded/cloak/goliath = 2)) + if(prob(30)) + r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7,/obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 )) + if(prob(10)) + l_pocket = pickweight(list(/obj/item/stack/spacecash/c1000 = 7,/obj/item/weapon/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 )) + if("Ashwalker") + mob_species = /datum/species/lizard/ashwalker + uniform = /obj/item/clothing/under/gladiator/ash_walker + if(prob(95)) + head = /obj/item/clothing/head/helmet/gladiator + else + head = /obj/item/clothing/head/helmet/skull + suit = /obj/item/clothing/suit/armor/bone + gloves = /obj/item/clothing/gloves/bracer + if(prob(5)) + back = pickweight(list(/obj/item/weapon/twohanded/bonespear = 3,/obj/item/weapon/twohanded/fireaxe/boneaxe = 2)) + if(prob(10)) + belt = /obj/item/weapon/storage/belt/mining/primitive + if(prob(30)) + r_pocket = /obj/item/weapon/kitchen/knife/combat/bone + if(prob(30)) + l_pocket = /obj/item/weapon/kitchen/knife/combat/bone + if("Clown") + name = pick(GLOB.clown_names) + outfit = /datum/outfit/job/clown + belt = null + backpack_contents = list() + if(prob(70)) + backpack_contents += pick(list(/obj/item/weapon/stamp/clown = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1,/obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1,/obj/item/weapon/pneumatic_cannon/pie = 1)) + if(prob(30)) + backpack_contents += list(/obj/item/stack/sheet/mineral/bananium = pickweight(list( 1 = 3, 2 = 2, 3 = 1))) + if(prob(10)) + l_pocket = pickweight(list(/obj/item/weapon/bikehorn/golden = 3, /obj/item/weapon/bikehorn/airhorn= 1 )) + if(prob(10)) + r_pocket = /obj/item/weapon/implanter/sad_trombone + if("Golem") + mob_species = pick(list(/datum/species/golem/adamantine, /datum/species/golem/plasma, /datum/species/golem/diamond, /datum/species/golem/gold, /datum/species/golem/silver, /datum/species/golem/plasteel, /datum/species/golem/titanium, /datum/species/golem/plastitanium)) + if(prob(30)) + glasses = pickweight(list(/obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/hud/health = 2,/obj/item/clothing/glasses/hud/diagnostic =2, /obj/item/clothing/glasses/science = 2, /obj/item/clothing/glasses/welding = 2, /obj/item/clothing/glasses/night = 1)) + if(prob(10)) + belt = pick(list(/obj/item/weapon/storage/belt/mining/vendor,/obj/item/weapon/storage/belt/utility/full)) + if(prob(50)) + neck = /obj/item/weapon/bedsheet/rd/royal_cape + if(prob(10)) + l_pocket = pick(list(/obj/item/weapon/crowbar/power, /obj/item/weapon/wrench/power, /obj/item/weapon/weldingtool/experimental)) + if("YeOlde") + mob_gender = FEMALE + uniform = /obj/item/clothing/under/maid + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/helmet/knight + suit = /obj/item/clothing/suit/armor/riot/knight + back = /obj/item/weapon/shield/riot/buckler + belt = /obj/item/weapon/nullrod/claymore + r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen + mask = /obj/item/clothing/mask/breath + if("Operative") + id_job = "Operative" + id_access_list = list(GLOB.access_syndicate) + outfit = /datum/outfit/syndicatecommandocorpse + if("Shadow") + mob_species = /datum/species/shadow + r_pocket = /obj/item/weapon/reagent_containers/pill/shadowtoxin + neck = /obj/item/clothing/accessory/medal/plasma/nobel_science + uniform = /obj/item/clothing/under/color/black + shoes = /obj/item/clothing/shoes/sneakers/black + suit = /obj/item/clothing/suit/toggle/labcoat + glasses = /obj/item/clothing/glasses/sunglasses/blindfold + back = /obj/item/weapon/tank/internals/oxygen + mask = /obj/item/clothing/mask/breath + if("Cultist") + uniform = /obj/item/clothing/under/roman + suit = /obj/item/clothing/suit/cultrobes + head = /obj/item/clothing/head/culthood + suit_store = /obj/item/weapon/tome + r_pocket = /obj/item/weapon/restraints/legcuffs/bola/cult + l_pocket = /obj/item/weapon/melee/cultblade/dagger + glasses = /obj/item/clothing/glasses/night/cultblind + backpack_contents = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater = 1, /obj/item/device/cult_shift = 1, /obj/item/device/flashlight/flare/culttorch = 1, /obj/item/stack/sheet/runed_metal = 15) + . = ..() + + + + diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 57e04b1331..5788a6fdc6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -11,9 +11,9 @@ response_help = "pokes" response_disarm = "shoves" response_harm = "strikes" - var/crusher_loot status_flags = 0 a_intent = INTENT_HARM + var/crusher_loot var/throw_message = "bounces off of" var/icon_aggro = null // for swapping to when we get aggressive var/fromtendril = FALSE @@ -25,7 +25,6 @@ . = ..() apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) - /mob/living/simple_animal/hostile/asteroid/Aggro() ..() if(vision_range != aggro_vision_range) @@ -65,7 +64,6 @@ /mob/living/simple_animal/hostile/asteroid/proc/spawn_crusher_loot() butcher_results[crusher_loot] = 1 - /mob/living/simple_animal/hostile/asteroid/handle_temperature_damage() if(bodytemperature < minbodytemp) adjustBruteLoss(2) diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 125f96384b..74bfff8456 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -1,172 +1,172 @@ -/mob/living/simple_animal/hostile/mushroom - name = "walking mushroom" - desc = "It's a massive mushroom... with legs?" - icon_state = "mushroom_color" - icon_living = "mushroom_color" - icon_dead = "mushroom_dead" - speak_chance = 0 - turns_per_move = 1 - maxHealth = 10 - health = 10 - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "whacks" - harm_intent_damage = 5 - obj_damage = 0 - melee_damage_lower = 1 - melee_damage_upper = 1 - attack_same = 2 - attacktext = "chomps" - attack_sound = 'sound/weapons/bite.ogg' - faction = list("mushroom") +/mob/living/simple_animal/hostile/mushroom + name = "walking mushroom" + desc = "It's a massive mushroom... with legs?" + icon_state = "mushroom_color" + icon_living = "mushroom_color" + icon_dead = "mushroom_dead" + speak_chance = 0 + turns_per_move = 1 + maxHealth = 10 + health = 10 + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice = 1) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "whacks" + harm_intent_damage = 5 + obj_damage = 0 + melee_damage_lower = 1 + melee_damage_upper = 1 + attack_same = 2 + attacktext = "chomps" + attack_sound = 'sound/weapons/bite.ogg' + faction = list("mushroom") environment_smash = ENVIRONMENT_SMASH_NONE - stat_attack = 2 - mouse_opacity = 1 - speed = 1 - ventcrawler = VENTCRAWLER_ALWAYS - robust_searching = 1 - unique_name = 1 - speak_emote = list("squeaks") - deathmessage = "fainted." + stat_attack = 2 + mouse_opacity = 1 + speed = 1 + ventcrawler = VENTCRAWLER_ALWAYS + robust_searching = 1 + unique_name = 1 + speak_emote = list("squeaks") + deathmessage = "fainted." var/cap_color = "#ffffff" - var/powerlevel = 0 //Tracks our general strength level gained from eating other shrooms - var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it wont award levels to shrooms that eat it - var/recovery_cooldown = 0 //So you can't repeatedly revive it during a fight - var/faint_ticker = 0 //If we hit three, another mushroom's gonna eat us + var/powerlevel = 0 //Tracks our general strength level gained from eating other shrooms + var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it wont award levels to shrooms that eat it + var/recovery_cooldown = 0 //So you can't repeatedly revive it during a fight + var/faint_ticker = 0 //If we hit three, another mushroom's gonna eat us var/static/mutable_appearance/cap_living //Where we store our cap icons so we dont generate them constantly to update our icon var/static/mutable_appearance/cap_dead - -/mob/living/simple_animal/hostile/mushroom/examine(mob/user) - ..() - if(health >= maxHealth) - to_chat(user, "It looks healthy.") - else - to_chat(user, "It looks like it's been roughed up.") - -/mob/living/simple_animal/hostile/mushroom/Life() - ..() - if(!stat)//Mushrooms slowly regenerate if conscious, for people who want to save them from being eaten - adjustBruteLoss(-2) - -/mob/living/simple_animal/hostile/mushroom/Initialize()//Makes every shroom a little unique - melee_damage_lower += rand(3, 5) - melee_damage_upper += rand(10,20) - maxHealth += rand(40,60) - move_to_delay = rand(3,11) + +/mob/living/simple_animal/hostile/mushroom/examine(mob/user) + ..() + if(health >= maxHealth) + to_chat(user, "It looks healthy.") + else + to_chat(user, "It looks like it's been roughed up.") + +/mob/living/simple_animal/hostile/mushroom/Life() + ..() + if(!stat)//Mushrooms slowly regenerate if conscious, for people who want to save them from being eaten + adjustBruteLoss(-2) + +/mob/living/simple_animal/hostile/mushroom/Initialize()//Makes every shroom a little unique + melee_damage_lower += rand(3, 5) + melee_damage_upper += rand(10,20) + maxHealth += rand(40,60) + move_to_delay = rand(3,11) cap_living = cap_living || mutable_appearance(icon, "mushroom_cap") cap_dead = cap_dead || mutable_appearance(icon, "mushroom_cap_dead") cap_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) - UpdateMushroomCap() - health = maxHealth - ..() - -/mob/living/simple_animal/hostile/mushroom/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //Possibility to flee from a fight just to make it more visually interesting - if(!retreat_distance && prob(33)) - retreat_distance = 5 - addtimer(CALLBACK(src, .proc/stop_retreat), 30) - . = ..() - -/mob/living/simple_animal/hostile/mushroom/proc/stop_retreat() - retreat_distance = null - -/mob/living/simple_animal/hostile/mushroom/attack_animal(mob/living/L) - if(istype(L, /mob/living/simple_animal/hostile/mushroom) && stat == DEAD) - var/mob/living/simple_animal/hostile/mushroom/M = L - if(faint_ticker < 2) - M.visible_message("[M] chews a bit on [src].") - faint_ticker++ - return TRUE - M.visible_message("[M] devours [src]!") - var/level_gain = (powerlevel - M.powerlevel) - if(level_gain >= -1 && !bruised && !M.ckey)//Player shrooms can't level up to become robust gods. - if(level_gain < 1)//So we still gain a level if two mushrooms were the same level - level_gain = 1 - M.LevelUp(level_gain) - M.adjustBruteLoss(-M.maxHealth) - qdel(src) - return TRUE - return ..() - -/mob/living/simple_animal/hostile/mushroom/revive(full_heal = 0, admin_revive = 0) - if(..()) - icon_state = "mushroom_color" - UpdateMushroomCap() - . = 1 - -/mob/living/simple_animal/hostile/mushroom/death(gibbed) - ..(gibbed) - UpdateMushroomCap() - -/mob/living/simple_animal/hostile/mushroom/proc/UpdateMushroomCap() - cut_overlays() + UpdateMushroomCap() + health = maxHealth + ..() + +/mob/living/simple_animal/hostile/mushroom/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //Possibility to flee from a fight just to make it more visually interesting + if(!retreat_distance && prob(33)) + retreat_distance = 5 + addtimer(CALLBACK(src, .proc/stop_retreat), 30) + . = ..() + +/mob/living/simple_animal/hostile/mushroom/proc/stop_retreat() + retreat_distance = null + +/mob/living/simple_animal/hostile/mushroom/attack_animal(mob/living/L) + if(istype(L, /mob/living/simple_animal/hostile/mushroom) && stat == DEAD) + var/mob/living/simple_animal/hostile/mushroom/M = L + if(faint_ticker < 2) + M.visible_message("[M] chews a bit on [src].") + faint_ticker++ + return TRUE + M.visible_message("[M] devours [src]!") + var/level_gain = (powerlevel - M.powerlevel) + if(level_gain >= -1 && !bruised && !M.ckey)//Player shrooms can't level up to become robust gods. + if(level_gain < 1)//So we still gain a level if two mushrooms were the same level + level_gain = 1 + M.LevelUp(level_gain) + M.adjustBruteLoss(-M.maxHealth) + qdel(src) + return TRUE + return ..() + +/mob/living/simple_animal/hostile/mushroom/revive(full_heal = 0, admin_revive = 0) + if(..()) + icon_state = "mushroom_color" + UpdateMushroomCap() + . = 1 + +/mob/living/simple_animal/hostile/mushroom/death(gibbed) + ..(gibbed) + UpdateMushroomCap() + +/mob/living/simple_animal/hostile/mushroom/proc/UpdateMushroomCap() + cut_overlays() cap_living.color = cap_color cap_dead.color = cap_color - if(health == 0) - add_overlay(cap_dead) - else - add_overlay(cap_living) - -/mob/living/simple_animal/hostile/mushroom/proc/Recover() - visible_message("[src] slowly begins to recover.") - faint_ticker = 0 - revive(full_heal = 1) - UpdateMushroomCap() - recovery_cooldown = 1 - addtimer(CALLBACK(src, .proc/recovery_recharge), 300) - -/mob/living/simple_animal/hostile/mushroom/proc/recovery_recharge() - recovery_cooldown = 0 - -/mob/living/simple_animal/hostile/mushroom/proc/LevelUp(level_gain) - if(powerlevel <= 9) - powerlevel += level_gain - if(prob(25)) - melee_damage_lower += (level_gain * rand(1,5)) - else - melee_damage_upper += (level_gain * rand(1,5)) - maxHealth += (level_gain * rand(1,5)) - adjustBruteLoss(-maxHealth) //They'll always heal, even if they don't gain a level, in case you want to keep this shroom around instead of harvesting it - -/mob/living/simple_animal/hostile/mushroom/proc/Bruise() - if(!bruised && !stat) - src.visible_message("The [src.name] was bruised!") - bruised = 1 - -/mob/living/simple_animal/hostile/mushroom/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom)) - if(stat == DEAD && !recovery_cooldown) - Recover() - qdel(I) - else - to_chat(user, "[src] won't eat it!") - return - if(I.force) - Bruise() - ..() - -/mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M) - ..() - if(M.a_intent == INTENT_HARM) - Bruise() - -/mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM) - ..() - if(istype(AM, /obj/item)) - var/obj/item/T = AM - if(T.throwforce) - Bruise() - -/mob/living/simple_animal/hostile/mushroom/bullet_act() - ..() - Bruise() - -/mob/living/simple_animal/hostile/mushroom/harvest() - var/counter - for(counter=0, counter<=powerlevel, counter++) - var/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) - S.reagents.add_reagent("mushroomhallucinogen", powerlevel) - S.reagents.add_reagent("omnizine", powerlevel) - S.reagents.add_reagent("synaptizine", powerlevel) - qdel(src) + if(health == 0) + add_overlay(cap_dead) + else + add_overlay(cap_living) + +/mob/living/simple_animal/hostile/mushroom/proc/Recover() + visible_message("[src] slowly begins to recover.") + faint_ticker = 0 + revive(full_heal = 1) + UpdateMushroomCap() + recovery_cooldown = 1 + addtimer(CALLBACK(src, .proc/recovery_recharge), 300) + +/mob/living/simple_animal/hostile/mushroom/proc/recovery_recharge() + recovery_cooldown = 0 + +/mob/living/simple_animal/hostile/mushroom/proc/LevelUp(level_gain) + if(powerlevel <= 9) + powerlevel += level_gain + if(prob(25)) + melee_damage_lower += (level_gain * rand(1,5)) + else + melee_damage_upper += (level_gain * rand(1,5)) + maxHealth += (level_gain * rand(1,5)) + adjustBruteLoss(-maxHealth) //They'll always heal, even if they don't gain a level, in case you want to keep this shroom around instead of harvesting it + +/mob/living/simple_animal/hostile/mushroom/proc/Bruise() + if(!bruised && !stat) + src.visible_message("The [src.name] was bruised!") + bruised = 1 + +/mob/living/simple_animal/hostile/mushroom/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom)) + if(stat == DEAD && !recovery_cooldown) + Recover() + qdel(I) + else + to_chat(user, "[src] won't eat it!") + return + if(I.force) + Bruise() + ..() + +/mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M) + ..() + if(M.a_intent == INTENT_HARM) + Bruise() + +/mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM) + ..() + if(istype(AM, /obj/item)) + var/obj/item/T = AM + if(T.throwforce) + Bruise() + +/mob/living/simple_animal/hostile/mushroom/bullet_act() + ..() + Bruise() + +/mob/living/simple_animal/hostile/mushroom/harvest() + var/counter + for(counter=0, counter<=powerlevel, counter++) + var/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + S.reagents.add_reagent("mushroomhallucinogen", powerlevel) + S.reagents.add_reagent("omnizine", powerlevel) + S.reagents.add_reagent("synaptizine", powerlevel) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index b205c14635..302396fc4c 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -44,7 +44,7 @@ retreat_distance = 3 minimum_distance = 5 casingtype = /obj/item/ammo_casing/c45 - projectilesound = 'sound/weapons/Gunshot.ogg' + projectilesound = 'sound/weapons/gunshot.ogg' loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) @@ -54,6 +54,6 @@ icon_living = "nanotrasenrangedsmg" rapid = 1 casingtype = /obj/item/ammo_casing/c46x30mm - projectilesound = 'sound/weapons/Gunshot_smg.ogg' + projectilesound = 'sound/weapons/gunshot_smg.ogg' loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 57d016ae68..2dfa50806b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -1,37 +1,37 @@ -/mob/living/simple_animal/hostile/retaliate/bat - name = "Space Bat" - desc = "A rare breed of bat which roosts in spaceships, probably not vampiric." - icon_state = "bat" - icon_living = "bat" - icon_dead = "bat_dead" - icon_gib = "bat_dead" - turns_per_move = 1 - response_help = "brushes aside" - response_disarm = "flails at" - response_harm = "hits" - speak_chance = 0 - maxHealth = 15 - health = 15 - see_in_dark = 10 - harm_intent_damage = 6 - melee_damage_lower = 6 - melee_damage_upper = 5 - attacktext = "bites" - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 1) - pass_flags = PASSTABLE - faction = list("hostile") - attack_sound = 'sound/weapons/bite.ogg' - obj_damage = 0 +/mob/living/simple_animal/hostile/retaliate/bat + name = "Space Bat" + desc = "A rare breed of bat which roosts in spaceships, probably not vampiric." + icon_state = "bat" + icon_living = "bat" + icon_dead = "bat_dead" + icon_gib = "bat_dead" + turns_per_move = 1 + response_help = "brushes aside" + response_disarm = "flails at" + response_harm = "hits" + speak_chance = 0 + maxHealth = 15 + health = 15 + see_in_dark = 10 + harm_intent_damage = 6 + melee_damage_lower = 6 + melee_damage_upper = 5 + attacktext = "bites" + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 1) + pass_flags = PASSTABLE + faction = list("hostile") + attack_sound = 'sound/weapons/bite.ogg' + obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - ventcrawler = VENTCRAWLER_ALWAYS - mob_size = MOB_SIZE_TINY - movement_type = FLYING - speak_emote = list("squeaks") - var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus - var/min_oxy = 0 - var/max_tox = 0 - - - //Space bats need no air to fly in. - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + ventcrawler = VENTCRAWLER_ALWAYS + mob_size = MOB_SIZE_TINY + movement_type = FLYING + speak_emote = list("squeaks") + var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus + var/min_oxy = 0 + var/max_tox = 0 + + + //Space bats need no air to fly in. + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index fb365aeb87..d53b741301 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -1,43 +1,43 @@ -/mob/living/simple_animal/hostile/retaliate/clown - name = "Clown" - desc = "A denizen of clown planet" - icon = 'icons/mob/simple_human.dmi' - icon_state = "clown" - icon_living = "clown" - icon_dead = "clown_dead" - icon_gib = "clown_gib" - turns_per_move = 5 - response_help = "pokes" - response_disarm = "gently pushes aside" - response_harm = "robusts" - speak = list("HONK", "Honk!", "Welcome to clown planet!") - emote_see = list("honks", "squeaks") - speak_chance = 1 - a_intent = INTENT_HARM - maxHealth = 75 - health = 75 - speed = 0 - harm_intent_damage = 8 - melee_damage_lower = 10 - melee_damage_upper = 10 - attacktext = "attacks" - attack_sound = 'sound/items/bikehorn.ogg' - obj_damage = 0 +/mob/living/simple_animal/hostile/retaliate/clown + name = "Clown" + desc = "A denizen of clown planet" + icon = 'icons/mob/simple_human.dmi' + icon_state = "clown" + icon_living = "clown" + icon_dead = "clown_dead" + icon_gib = "clown_gib" + turns_per_move = 5 + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "robusts" + speak = list("HONK", "Honk!", "Welcome to clown planet!") + emote_see = list("honks", "squeaks") + speak_chance = 1 + a_intent = INTENT_HARM + maxHealth = 75 + health = 75 + speed = 0 + harm_intent_damage = 8 + melee_damage_lower = 10 + melee_damage_upper = 10 + attacktext = "attacks" + attack_sound = 'sound/items/bikehorn.ogg' + obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - del_on_death = 1 - loot = list(/obj/effect/mob_spawn/human/clown/corpse) - - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 270 - maxbodytemp = 370 - unsuitable_atmos_damage = 10 - -/mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage() - if(bodytemperature < minbodytemp) - adjustBruteLoss(10) - else if(bodytemperature > maxbodytemp) - adjustBruteLoss(15) - -/mob/living/simple_animal/hostile/retaliate/clown/attack_hand(mob/living/carbon/human/M) - ..() - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + del_on_death = 1 + loot = list(/obj/effect/mob_spawn/human/clown/corpse) + + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 270 + maxbodytemp = 370 + unsuitable_atmos_damage = 10 + +/mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage() + if(bodytemperature < minbodytemp) + adjustBruteLoss(10) + else if(bodytemperature > maxbodytemp) + adjustBruteLoss(15) + +/mob/living/simple_animal/hostile/retaliate/clown/attack_hand(mob/living/carbon/human/M) + ..() + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index 0dc4609e91..54e1169a11 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -19,7 +19,7 @@ density = 0 ventcrawler = VENTCRAWLER_ALWAYS faction = list("hostile") - attack_sound = 'sound/effects/Reee.ogg' + attack_sound = 'sound/effects/reee.ogg' butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/nugget = 1) pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -39,4 +39,4 @@ if(!stat && isliving(AM)) var/mob/living/L = AM if(L.mob_size > MOB_SIZE_TINY) - playsound(src, 'sound/effects/Huuu.ogg', 50, 1) + playsound(src, 'sound/effects/huuu.ogg', 50, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index b9731f7418..d5a9bcadd7 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -40,10 +40,9 @@ /mob/living/simple_animal/hostile/retaliate/ghost/Initialize() . = ..() - set_light(1, 2) - if(!random) - give_hair() - else + give_hair() + set_light(1, 2) // same glowing as visible player ghosts + if(random) switch(rand(0,1)) if(0) name = "ghost of [pick(GLOB.first_names_male)] [pick(GLOB.last_names)]" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index 7dd53541dd..731215296b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -68,6 +68,6 @@ retreat_distance = 3 minimum_distance = 5 casingtype = /obj/item/ammo_casing/c46x30mm - projectilesound = 'sound/weapons/Gunshot_smg.ogg' + projectilesound = 'sound/weapons/gunshot_smg.ogg' loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 4a30db8b4b..81f12a8c24 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -37,7 +37,7 @@ ranged = 1 retreat_distance = 5 minimum_distance = 5 - projectilesound = 'sound/weapons/Gunshot.ogg' + projectilesound = 'sound/weapons/gunshot.ogg' casingtype = /obj/item/ammo_casing/n762 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index b7b8b5aa85..ef109758e8 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -1,166 +1,162 @@ -/* - CONTENTS - LINE 10 - BASE MOB - LINE 43 - SWORD AND SHIELD - LINE 95 - GUNS - LINE 136 - MISC -*/ - - -///////////////Base mob//////////// - -/mob/living/simple_animal/hostile/syndicate - name = "Syndicate Operative" - desc = "Death to Nanotrasen." - icon = 'icons/mob/simple_human.dmi' - icon_state = "syndicate" - icon_living = "syndicate" - icon_dead = "syndicate_dead" - icon_gib = "syndicate_gib" - speak_chance = 0 - turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - speed = 0 - stat_attack = 1 - robust_searching = 1 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 10 - attacktext = "punches" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 - faction = list("syndicate") - check_friendly_fire = 1 - status_flags = CANPUSH - del_on_death = 1 - -///////////////Sword and shield//////////// - -/mob/living/simple_animal/hostile/syndicate/melee - melee_damage_lower = 25 - melee_damage_upper = 30 - icon_state = "syndicatemelee" - icon_living = "syndicatemelee" - loot = list(/obj/effect/gibspawner/human) - attacktext = "slashes" - attack_sound = 'sound/weapons/bladeslice.ogg' - armour_penetration = 28 - status_flags = 0 - maxHealth = 170 - health = 170 - -/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) - if(!Proj) - return - if(prob(50)) - return ..() - else - visible_message("[src] blocks [Proj] with its shield!") - return 0 - - -/mob/living/simple_animal/hostile/syndicate/melee/space - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - icon_state = "syndicatemeleespace" - icon_living = "syndicatemeleespace" - name = "Syndicate Commando" - loot = list(/obj/effect/gibspawner/human) - speed = 1 - -/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = 0) - return 1 - -/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper - icon_state = "syndicatemeleestormtrooper" - icon_living = "syndicatemeleestormtrooper" - name = "Syndicate Stormtrooper" - maxHealth = 340 - health = 340 - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper, - /obj/item/weapon/melee/energy/sword/saber/red, - /obj/item/weapon/shield/energy) - -///////////////Guns//////////// - -/mob/living/simple_animal/hostile/syndicate/ranged - ranged = 1 - rapid = 1 - retreat_distance = 5 - minimum_distance = 5 - icon_state = "syndicateranged" - icon_living = "syndicateranged" - casingtype = /obj/item/ammo_casing/c45nostamina - projectilesound = 'sound/weapons/Gunshot_smg.ogg' - loot = list(/obj/effect/gibspawner/human) - -/mob/living/simple_animal/hostile/syndicate/ranged/space - icon_state = "syndicaterangedspace" - icon_living = "syndicaterangedspace" - name = "Syndicate Commando" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - speed = 1 - loot = list(/obj/effect/gibspawner/human) - -/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(movement_dir = 0) - return 1 - -/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper - icon_state = "syndicaterangedstormtrooper" - icon_living = "syndicaterangedstormtrooper" - name = "Syndicate Stormtrooper" - maxHealth = 200 - health = 200 - projectilesound = 'sound/weapons/Gunshot.ogg' - casingtype = /obj/item/ammo_casing/shotgun/buckshot - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper, - /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, - /obj/item/weapon/shield/energy) - -///////////////Misc//////////// - -/mob/living/simple_animal/hostile/syndicate/civilian - minimum_distance = 10 - retreat_distance = 10 - obj_damage = 0 +/* + CONTENTS + LINE 10 - BASE MOB + LINE 43 - SWORD AND SHIELD + LINE 95 - GUNS + LINE 136 - MISC +*/ + + +///////////////Base mob//////////// + +/mob/living/simple_animal/hostile/syndicate + name = "Syndicate Operative" + desc = "Death to Nanotrasen." + icon = 'icons/mob/simple_human.dmi' + icon_state = "syndicate" + icon_living = "syndicate" + icon_dead = "syndicate_dead" + icon_gib = "syndicate_gib" + speak_chance = 0 + turns_per_move = 5 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "hits" + speed = 0 + stat_attack = 1 + robust_searching = 1 + maxHealth = 100 + health = 100 + harm_intent_damage = 5 + melee_damage_lower = 10 + melee_damage_upper = 10 + attacktext = "punches" + attack_sound = 'sound/weapons/punch1.ogg' + a_intent = INTENT_HARM + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 15 + faction = list("syndicate") + check_friendly_fire = 1 + status_flags = CANPUSH + del_on_death = 1 + +///////////////Sword and shield//////////// + +/mob/living/simple_animal/hostile/syndicate/melee + melee_damage_lower = 25 + melee_damage_upper = 30 + icon_state = "syndicatemelee" + icon_living = "syndicatemelee" + loot = list(/obj/effect/gibspawner/human) + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' + armour_penetration = 28 + status_flags = 0 + maxHealth = 170 + health = 170 + +/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) + if(!Proj) + return + if(prob(50)) + return ..() + else + visible_message("[src] blocks [Proj] with its shield!") + return 0 + + +/mob/living/simple_animal/hostile/syndicate/melee/space + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + icon_state = "syndicatemeleespace" + icon_living = "syndicatemeleespace" + name = "Syndicate Commando" + loot = list(/obj/effect/gibspawner/human) + speed = 1 + +/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = 0) + return 1 + +/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper + icon_state = "syndicatemeleestormtrooper" + icon_living = "syndicatemeleestormtrooper" + name = "Syndicate Stormtrooper" + maxHealth = 340 + health = 340 + loot = list(/obj/effect/gibspawner/human) + +///////////////Guns//////////// + +/mob/living/simple_animal/hostile/syndicate/ranged + ranged = 1 + rapid = 1 + retreat_distance = 5 + minimum_distance = 5 + icon_state = "syndicateranged" + icon_living = "syndicateranged" + casingtype = /obj/item/ammo_casing/c45nostamina + projectilesound = 'sound/weapons/gunshot_smg.ogg' + loot = list(/obj/effect/gibspawner/human) + +/mob/living/simple_animal/hostile/syndicate/ranged/space + icon_state = "syndicaterangedspace" + icon_living = "syndicaterangedspace" + name = "Syndicate Commando" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + speed = 1 + loot = list(/obj/effect/gibspawner/human) + +/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(movement_dir = 0) + return 1 + +/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper + icon_state = "syndicaterangedstormtrooper" + icon_living = "syndicaterangedstormtrooper" + name = "Syndicate Stormtrooper" + maxHealth = 200 + health = 200 + projectilesound = 'sound/weapons/gunshot.ogg' + casingtype = /obj/item/ammo_casing/shotgun/buckshot + loot = list(/obj/effect/gibspawner/human) + +///////////////Misc//////////// + +/mob/living/simple_animal/hostile/syndicate/civilian + minimum_distance = 10 + retreat_distance = 10 + obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - -/mob/living/simple_animal/hostile/syndicate/civilian/Aggro() - ..() - summon_backup(15) - say("GUARDS!!") - - -/mob/living/simple_animal/hostile/viscerator - name = "viscerator" - desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations." - icon_state = "viscerator_attack" - icon_living = "viscerator_attack" - pass_flags = PASSTABLE - health = 25 - maxHealth = 25 - melee_damage_lower = 15 - melee_damage_upper = 15 - obj_damage = 0 + +/mob/living/simple_animal/hostile/syndicate/civilian/Aggro() + ..() + summon_backup(15) + say("GUARDS!!") + + +/mob/living/simple_animal/hostile/viscerator + name = "viscerator" + desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations." + icon_state = "viscerator_attack" + icon_living = "viscerator_attack" + pass_flags = PASSTABLE + health = 25 + maxHealth = 25 + melee_damage_lower = 15 + melee_damage_upper = 15 + obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - attacktext = "cuts" - attack_sound = 'sound/weapons/bladeslice.ogg' - faction = list("syndicate") - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - mob_size = MOB_SIZE_TINY - movement_type = FLYING - limb_destroyer = 1 - speak_emote = list("states") - bubble_icon = "syndibot" - gold_core_spawnable = 1 - del_on_death = 1 - deathmessage = "is smashed into pieces!" + attacktext = "cuts" + attack_sound = 'sound/weapons/bladeslice.ogg' + faction = list("syndicate") + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + mob_size = MOB_SIZE_TINY + movement_type = FLYING + limb_destroyer = 1 + speak_emote = list("states") + bubble_icon = "syndibot" + gold_core_spawnable = 1 + del_on_death = 1 + deathmessage = "is smashed into pieces!" diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 337dbfd17e..47fa2a8010 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -56,7 +56,7 @@ if(iscarbon(target)) var/mob/living/carbon/C = target if(prob(15)) - C.Weaken(3) + C.Knockdown(60) C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index ccfc3bd975..cff532b62b 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -94,7 +94,7 @@ if(prob(grasp_pull_chance)) setDir(get_dir(src,L) )//staaaare step(L,get_dir(L,src)) //reel them in - L.Weaken(3) //you can't get away now~ + L.Knockdown(60) //you can't get away now~ if(grasping.len < max_grasps) grasping: diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index d4aa40ed13..80fc8f366f 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -111,7 +111,7 @@ var/list/banned_mobs() /obj/item/asteroid/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag && istype(target, /mob/living/simple_animal)) + if(proximity_flag && isanimal(target)) var/mob/living/simple_animal/A = target if(A.buffed || (A.type in banned_mobs) || A.stat) to_chat(user, "Something's interfering with the [src]'s effects. It's no use.") diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index a0c1fe9fbe..a540a3c194 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -1,980 +1,980 @@ -/* Parrots! - * Contains - * Defines - * Inventory (headset stuff) - * Attack responces - * AI - * Procs / Verbs (usable by players) - * Sub-types - * Hear & say (the things we do for gimmicks) - */ - -/* - * Defines - */ - -//Only a maximum of one action and one intent should be active at any given time. -//Actions -#define PARROT_PERCH 1 //Sitting/sleeping, not moving -#define PARROT_SWOOP 2 //Moving towards or away from a target -#define PARROT_WANDER 4 //Moving without a specific target in mind - -//Intents -#define PARROT_STEAL 8 //Flying towards a target to steal it/from it -#define PARROT_ATTACK 16 //Flying towards a target to attack it -#define PARROT_RETURN 32 //Flying towards its perch -#define PARROT_FLEE 64 //Flying away from its attacker - - -/mob/living/simple_animal/parrot - name = "parrot" - desc = "The parrot squaks, \"It's a Parrot! BAWWK!\"" //' - icon = 'icons/mob/animal.dmi' - icon_state = "parrot_fly" - icon_living = "parrot_fly" - icon_dead = "parrot_dead" - density = 0 - health = 80 - maxHealth = 80 - pass_flags = PASSTABLE | PASSMOB - - speak = list("Hi!","Hello!","Cracker?","BAWWWWK george mellons griffing me!") - speak_emote = list("squawks","says","yells") - emote_hear = list("squawks.","bawks!") - emote_see = list("flutters its wings.") - - speak_chance = 1 //1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s - turns_per_move = 5 - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/cracker/ = 1) - melee_damage_upper = 10 - melee_damage_lower = 5 - - response_help = "pets" - response_disarm = "gently moves aside" - response_harm = "swats" - stop_automated_movement = 1 - a_intent = INTENT_HARM //parrots now start "aggressive" since only player parrots will nuzzle. - attacktext = "chomps" - friendly = "grooms" - mob_size = MOB_SIZE_SMALL - movement_type = FLYING - gold_core_spawnable = 2 - devourable = TRUE - - var/parrot_damage_upper = 10 - var/parrot_state = PARROT_WANDER //Hunt for a perch when created - var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick. - var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down - var/parrot_dam_zone = list("chest", "head", "l_arm", "l_leg", "r_arm", "r_leg") //For humans, select a bodypart to attack - - var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower. - //var/parrot_been_shot = 0 this wasn't working right, and parrots don't survive bullets.((Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed.)) - - var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving - var/parrot_stuck = 0 //If parrot_lastmove hasnt changed, this will increment until it reaches parrot_stuck_threshold - var/parrot_stuck_threshold = 10 //if this == parrot_stuck, it'll force the parrot back to wandering - - var/list/speech_buffer = list() - var/speech_shuffle_rate = 20 - var/list/available_channels = list() - - //Headset for Poly to yell at engineers :) - var/obj/item/device/radio/headset/ears = null - - //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from, - //mobs it wants to attack or mobs that have attacked it - var/atom/movable/parrot_interest = null - - //Parrots will generally sit on their perch unless something catches their eye. - //These vars store their preffered perch and if they dont have one, what they can use as a perch - var/obj/parrot_perch = null - var/obj/desired_perches = list(/obj/structure/frame/computer, /obj/structure/displaycase, \ - /obj/structure/filingcabinet, /obj/machinery/teleport, \ - /obj/machinery/computer, /obj/machinery/clonepod, \ - /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \ - /obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \ - /obj/machinery/recharge_station, /obj/machinery/smartfridge, \ - /obj/machinery/suit_storage_unit) - - //Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding. - var/obj/item/held_item = null - - -/mob/living/simple_animal/parrot/Initialize() - ..() - if(!ears) - var/headset = pick(/obj/item/device/radio/headset/headset_sec, \ - /obj/item/device/radio/headset/headset_eng, \ - /obj/item/device/radio/headset/headset_med, \ - /obj/item/device/radio/headset/headset_sci, \ - /obj/item/device/radio/headset/headset_cargo) - ears = new headset(src) - - parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var - - verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \ - /mob/living/simple_animal/parrot/proc/steal_from_mob, \ - /mob/living/simple_animal/parrot/verb/drop_held_item_player, \ - /mob/living/simple_animal/parrot/proc/perch_player, \ - /mob/living/simple_animal/parrot/proc/toggle_mode, - /mob/living/simple_animal/parrot/proc/perch_mob_player) - - -/mob/living/simple_animal/parrot/examine(mob/user) - ..() - if(stat) - to_chat(user, pick("This parrot is no more", "This is a late parrot", "This is an ex-parrot")) - -/mob/living/simple_animal/parrot/death(gibbed) - if(held_item) - held_item.loc = src.loc - held_item = null - walk(src,0) - - if(buckled) - buckled.unbuckle_mob(src,force=1) - buckled = null - pixel_x = initial(pixel_x) - pixel_y = initial(pixel_y) - - ..(gibbed) - -/mob/living/simple_animal/parrot/Stat() - ..() - if(statpanel("Status")) - stat("Held Item", held_item) - stat("Mode",a_intent) - -/mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) - if(speaker != src && prob(50)) //Dont imitate ourselves - if(!radio_freq || prob(10)) - if(speech_buffer.len >= 500) - speech_buffer -= pick(speech_buffer) - speech_buffer |= html_decode(raw_message) - if(speaker == src && !client) //If a parrot squawks in the woods and no one is around to hear it, does it make a sound? This code says yes! - return message - ..() - -/mob/living/simple_animal/parrot/radio(message, message_mode, list/spans, language) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be. - . = ..() - if(. != 0) - return . - - switch(message_mode) - if(MODE_HEADSET) - if (ears) - ears.talk_into(src, message, , spans, language) - return ITALICS | REDUCE_RANGE - - if(MODE_DEPARTMENT) - if (ears) - ears.talk_into(src, message, message_mode, spans, language) - return ITALICS | REDUCE_RANGE - - if(message_mode in GLOB.radiochannels) - if(ears) - ears.talk_into(src, message, message_mode, spans, language) - return ITALICS | REDUCE_RANGE - - return 0 - -/* - * Inventory - */ -/mob/living/simple_animal/parrot/show_inv(mob/user) - user.set_machine(src) - var/dat = "
    Inventory of [name]

    " - if(ears) - dat += "
    Headset: [ears] (Remove)" - else - dat += "
    Headset: Nothing" - - user << browse(dat, "window=mob[real_name];size=325x500") - onclose(user, "mob[real_name]") - - -/mob/living/simple_animal/parrot/Topic(href, href_list) - - //Can the usr physically do this? - if(usr.incapacitated() || !usr.Adjacent(loc)) - return - - //Is the usr's mob type able to do this? (lolaliens) - if(ishuman(usr) || ismonkey(usr) || iscyborg(usr) || isalienadult(usr)) - - //Removing from inventory - if(href_list["remove_inv"]) - var/remove_from = href_list["remove_inv"] - switch(remove_from) - if("ears") - if(ears) - if(!stat) - if(available_channels.len) - src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") - else - src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") - ears.loc = src.loc - ears = null - for(var/possible_phrase in speak) - if(copytext(possible_phrase,1,3) in GLOB.department_radio_keys) - possible_phrase = copytext(possible_phrase,3) - else - to_chat(usr, "There is nothing to remove from its [remove_from]!") - return - - //Adding things to inventory - else if(href_list["add_inv"]) - var/add_to = href_list["add_inv"] - if(!usr.get_active_held_item()) - to_chat(usr, "You have nothing in your hand to put on its [add_to]!") - return - switch(add_to) - if("ears") - if(ears) - to_chat(usr, "It's already wearing something!") - return - else - var/obj/item/item_to_add = usr.get_active_held_item() - if(!item_to_add) - return - - if( !istype(item_to_add, /obj/item/device/radio/headset) ) - to_chat(usr, "This object won't fit!") - return - - var/obj/item/device/radio/headset/headset_to_add = item_to_add - - usr.drop_item() - headset_to_add.loc = src - src.ears = headset_to_add - to_chat(usr, "You fit the headset onto [src].") - - clearlist(available_channels) - for(var/ch in headset_to_add.channels) - switch(ch) - if("Engineering") - available_channels.Add(":e") - if("Command") - available_channels.Add(":c") - if("Security") - available_channels.Add(":s") - if("Science") - available_channels.Add(":n") - if("Medical") - available_channels.Add(":m") - if("Supply") - available_channels.Add(":u") - if("Service") - available_channels.Add(":v") - - if(headset_to_add.translate_binary) - available_channels.Add(":b") - else - ..() - - -/* - * Attack responces - */ -//Humans, monkeys, aliens -/mob/living/simple_animal/parrot/attack_hand(mob/living/carbon/M) - ..() - if(client) - return - if(!stat && M.a_intent == INTENT_HARM) - - icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks - - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = M - parrot_state = PARROT_SWOOP //The parrot just got hit, it WILL move, now to pick a direction.. - - if(health > 30) //Let's get in there and squawk it up! - parrot_state |= PARROT_ATTACK - else - parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell! - drop_held_item(0) - if(!stat && M.a_intent == INTENT_HELP) - handle_automated_speech(1) //assured speak/emote - return - -/mob/living/simple_animal/parrot/attack_paw(mob/living/carbon/monkey/M) - attack_hand(M) - -/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/alien/M) - attack_hand(M) - -//Simple animals -/mob/living/simple_animal/parrot/attack_animal(mob/living/simple_animal/M) - . = ..() //goodbye immortal parrots - - if(client) - return - - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - if(M.melee_damage_upper > 0 && !stat) - parrot_interest = M - parrot_state = PARROT_SWOOP | PARROT_ATTACK //Attack other animals regardless - icon_state = "parrot_fly" - -//Mobs with objects -/mob/living/simple_animal/parrot/attackby(obj/item/O, mob/living/user, params) - if(!stat && !client && !istype(O, /obj/item/stack/medical) && !istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) - if(O.force) - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = user - parrot_state = PARROT_SWOOP - if(health > 30) //Let's get in there and squawk it up! - parrot_state |= PARROT_ATTACK - else - parrot_state |= PARROT_FLEE - icon_state = "parrot_fly" - drop_held_item(0) - else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker. - qdel(O) - user.drop_item() - if(health < maxHealth) - adjustBruteLoss(-10) - speak_chance *= 1.27 // 20 crackers to go from 1% to 100% - speech_shuffle_rate += 10 - to_chat(user, "[src] eagerly devours the cracker.") - ..() - return - -//Bullets -/mob/living/simple_animal/parrot/bullet_act(obj/item/projectile/Proj) - ..() - if(!stat && !client) - if(parrot_state == PARROT_PERCH) - parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched - - parrot_interest = null - parrot_state = PARROT_WANDER | PARROT_FLEE //Been shot and survived! RUN LIKE HELL! - //parrot_been_shot += 5 - icon_state = "parrot_fly" - drop_held_item(0) - return - - -/* - * AI - Not really intelligent, but I'm calling it AI anyway. - */ -/mob/living/simple_animal/parrot/Life() - ..() - - //Sprite update for when a parrot gets pulled - if(pulledby && stat == CONSCIOUS) - icon_state = "parrot_fly" - if(!client) - parrot_state = PARROT_WANDER - return - - -//-----SPEECH - /* Parrot speech mimickry! - Phrases that the parrot Hear()s get added to speach_buffer. - Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list. */ -/mob/living/simple_animal/parrot/handle_automated_speech() - ..() - if(speech_buffer.len && prob(speech_shuffle_rate)) //shuffle out a phrase and add in a new one - if(speak.len) - speak.Remove(pick(speak)) - - speak.Add(pick(speech_buffer)) - - -/mob/living/simple_animal/parrot/handle_automated_movement() - if(!isturf(src.loc) || !canmove || buckled) - return //If it can't move, dont let it move. (The buckled check probably isn't necessary thanks to canmove) - - -//-----SLEEPING - if(parrot_state == PARROT_PERCH) - if(parrot_perch && parrot_perch.loc != src.loc) //Make sure someone hasnt moved our perch on us - if(parrot_perch in view(src)) - parrot_state = PARROT_SWOOP | PARROT_RETURN - icon_state = "parrot_fly" - return - else - parrot_state = PARROT_WANDER - icon_state = "parrot_fly" - return - - if(--parrot_sleep_dur) //Zzz - return - - else - //This way we only call the stuff below once every [sleep_max] ticks. - parrot_sleep_dur = parrot_sleep_max - - //Cycle through message modes for the headset - if(speak.len) - var/list/newspeak = list() - - if(available_channels.len && src.ears) - for(var/possible_phrase in speak) - - //50/50 chance to not use the radio at all - var/useradio = 0 - if(prob(50)) - useradio = 1 - +/* Parrots! + * Contains + * Defines + * Inventory (headset stuff) + * Attack responces + * AI + * Procs / Verbs (usable by players) + * Sub-types + * Hear & say (the things we do for gimmicks) + */ + +/* + * Defines + */ + +//Only a maximum of one action and one intent should be active at any given time. +//Actions +#define PARROT_PERCH 1 //Sitting/sleeping, not moving +#define PARROT_SWOOP 2 //Moving towards or away from a target +#define PARROT_WANDER 4 //Moving without a specific target in mind + +//Intents +#define PARROT_STEAL 8 //Flying towards a target to steal it/from it +#define PARROT_ATTACK 16 //Flying towards a target to attack it +#define PARROT_RETURN 32 //Flying towards its perch +#define PARROT_FLEE 64 //Flying away from its attacker + + +/mob/living/simple_animal/parrot + name = "parrot" + desc = "The parrot squaks, \"It's a Parrot! BAWWK!\"" //' + icon = 'icons/mob/animal.dmi' + icon_state = "parrot_fly" + icon_living = "parrot_fly" + icon_dead = "parrot_dead" + density = 0 + health = 80 + maxHealth = 80 + pass_flags = PASSTABLE | PASSMOB + + speak = list("Hi!","Hello!","Cracker?","BAWWWWK george mellons griffing me!") + speak_emote = list("squawks","says","yells") + emote_hear = list("squawks.","bawks!") + emote_see = list("flutters its wings.") + + speak_chance = 1 //1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s + turns_per_move = 5 + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/cracker/ = 1) + melee_damage_upper = 10 + melee_damage_lower = 5 + + response_help = "pets" + response_disarm = "gently moves aside" + response_harm = "swats" + stop_automated_movement = 1 + a_intent = INTENT_HARM //parrots now start "aggressive" since only player parrots will nuzzle. + attacktext = "chomps" + friendly = "grooms" + mob_size = MOB_SIZE_SMALL + movement_type = FLYING + gold_core_spawnable = 2 + devourable = TRUE + + var/parrot_damage_upper = 10 + var/parrot_state = PARROT_WANDER //Hunt for a perch when created + var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick. + var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down + var/parrot_dam_zone = list("chest", "head", "l_arm", "l_leg", "r_arm", "r_leg") //For humans, select a bodypart to attack + + var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower. + //var/parrot_been_shot = 0 this wasn't working right, and parrots don't survive bullets.((Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed.)) + + var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving + var/parrot_stuck = 0 //If parrot_lastmove hasnt changed, this will increment until it reaches parrot_stuck_threshold + var/parrot_stuck_threshold = 10 //if this == parrot_stuck, it'll force the parrot back to wandering + + var/list/speech_buffer = list() + var/speech_shuffle_rate = 20 + var/list/available_channels = list() + + //Headset for Poly to yell at engineers :) + var/obj/item/device/radio/headset/ears = null + + //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from, + //mobs it wants to attack or mobs that have attacked it + var/atom/movable/parrot_interest = null + + //Parrots will generally sit on their perch unless something catches their eye. + //These vars store their preffered perch and if they dont have one, what they can use as a perch + var/obj/parrot_perch = null + var/obj/desired_perches = list(/obj/structure/frame/computer, /obj/structure/displaycase, \ + /obj/structure/filingcabinet, /obj/machinery/teleport, \ + /obj/machinery/computer, /obj/machinery/clonepod, \ + /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \ + /obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \ + /obj/machinery/recharge_station, /obj/machinery/smartfridge, \ + /obj/machinery/suit_storage_unit) + + //Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding. + var/obj/item/held_item = null + + +/mob/living/simple_animal/parrot/Initialize() + ..() + if(!ears) + var/headset = pick(/obj/item/device/radio/headset/headset_sec, \ + /obj/item/device/radio/headset/headset_eng, \ + /obj/item/device/radio/headset/headset_med, \ + /obj/item/device/radio/headset/headset_sci, \ + /obj/item/device/radio/headset/headset_cargo) + ears = new headset(src) + + parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var + + verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \ + /mob/living/simple_animal/parrot/proc/steal_from_mob, \ + /mob/living/simple_animal/parrot/verb/drop_held_item_player, \ + /mob/living/simple_animal/parrot/proc/perch_player, \ + /mob/living/simple_animal/parrot/proc/toggle_mode, + /mob/living/simple_animal/parrot/proc/perch_mob_player) + + +/mob/living/simple_animal/parrot/examine(mob/user) + ..() + if(stat) + to_chat(user, pick("This parrot is no more", "This is a late parrot", "This is an ex-parrot")) + +/mob/living/simple_animal/parrot/death(gibbed) + if(held_item) + held_item.loc = src.loc + held_item = null + walk(src,0) + + if(buckled) + buckled.unbuckle_mob(src,force=1) + buckled = null + pixel_x = initial(pixel_x) + pixel_y = initial(pixel_y) + + ..(gibbed) + +/mob/living/simple_animal/parrot/Stat() + ..() + if(statpanel("Status")) + stat("Held Item", held_item) + stat("Mode",a_intent) + +/mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode) + if(speaker != src && prob(50)) //Dont imitate ourselves + if(!radio_freq || prob(10)) + if(speech_buffer.len >= 500) + speech_buffer -= pick(speech_buffer) + speech_buffer |= html_decode(raw_message) + if(speaker == src && !client) //If a parrot squawks in the woods and no one is around to hear it, does it make a sound? This code says yes! + return message + ..() + +/mob/living/simple_animal/parrot/radio(message, message_mode, list/spans, language) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be. + . = ..() + if(. != 0) + return . + + switch(message_mode) + if(MODE_HEADSET) + if (ears) + ears.talk_into(src, message, , spans, language) + return ITALICS | REDUCE_RANGE + + if(MODE_DEPARTMENT) + if (ears) + ears.talk_into(src, message, message_mode, spans, language) + return ITALICS | REDUCE_RANGE + + if(message_mode in GLOB.radiochannels) + if(ears) + ears.talk_into(src, message, message_mode, spans, language) + return ITALICS | REDUCE_RANGE + + return 0 + +/* + * Inventory + */ +/mob/living/simple_animal/parrot/show_inv(mob/user) + user.set_machine(src) + var/dat = "

    Inventory of [name]

    " + if(ears) + dat += "
    Headset: [ears] (Remove)" + else + dat += "
    Headset: Nothing" + + user << browse(dat, "window=mob[real_name];size=325x500") + onclose(user, "mob[real_name]") + + +/mob/living/simple_animal/parrot/Topic(href, href_list) + + //Can the usr physically do this? + if(usr.incapacitated() || !usr.Adjacent(loc)) + return + + //Is the usr's mob type able to do this? (lolaliens) + if(ishuman(usr) || ismonkey(usr) || iscyborg(usr) || isalienadult(usr)) + + //Removing from inventory + if(href_list["remove_inv"]) + var/remove_from = href_list["remove_inv"] + switch(remove_from) + if("ears") + if(ears) + if(!stat) + if(available_channels.len) + src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") + else + src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!") + ears.loc = src.loc + ears = null + for(var/possible_phrase in speak) + if(copytext(possible_phrase,1,3) in GLOB.department_radio_keys) + possible_phrase = copytext(possible_phrase,3) + else + to_chat(usr, "There is nothing to remove from its [remove_from]!") + return + + //Adding things to inventory + else if(href_list["add_inv"]) + var/add_to = href_list["add_inv"] + if(!usr.get_active_held_item()) + to_chat(usr, "You have nothing in your hand to put on its [add_to]!") + return + switch(add_to) + if("ears") + if(ears) + to_chat(usr, "It's already wearing something!") + return + else + var/obj/item/item_to_add = usr.get_active_held_item() + if(!item_to_add) + return + + if( !istype(item_to_add, /obj/item/device/radio/headset) ) + to_chat(usr, "This object won't fit!") + return + + var/obj/item/device/radio/headset/headset_to_add = item_to_add + + usr.drop_item() + headset_to_add.loc = src + src.ears = headset_to_add + to_chat(usr, "You fit the headset onto [src].") + + clearlist(available_channels) + for(var/ch in headset_to_add.channels) + switch(ch) + if("Engineering") + available_channels.Add(":e") + if("Command") + available_channels.Add(":c") + if("Security") + available_channels.Add(":s") + if("Science") + available_channels.Add(":n") + if("Medical") + available_channels.Add(":m") + if("Supply") + available_channels.Add(":u") + if("Service") + available_channels.Add(":v") + + if(headset_to_add.translate_binary) + available_channels.Add(":b") + else + ..() + + +/* + * Attack responces + */ +//Humans, monkeys, aliens +/mob/living/simple_animal/parrot/attack_hand(mob/living/carbon/M) + ..() + if(client) + return + if(!stat && M.a_intent == INTENT_HARM) + + icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks + + if(parrot_state == PARROT_PERCH) + parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched + + parrot_interest = M + parrot_state = PARROT_SWOOP //The parrot just got hit, it WILL move, now to pick a direction.. + + if(health > 30) //Let's get in there and squawk it up! + parrot_state |= PARROT_ATTACK + else + parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell! + drop_held_item(0) + if(!stat && M.a_intent == INTENT_HELP) + handle_automated_speech(1) //assured speak/emote + return + +/mob/living/simple_animal/parrot/attack_paw(mob/living/carbon/monkey/M) + attack_hand(M) + +/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/alien/M) + attack_hand(M) + +//Simple animals +/mob/living/simple_animal/parrot/attack_animal(mob/living/simple_animal/M) + . = ..() //goodbye immortal parrots + + if(client) + return + + if(parrot_state == PARROT_PERCH) + parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched + + if(M.melee_damage_upper > 0 && !stat) + parrot_interest = M + parrot_state = PARROT_SWOOP | PARROT_ATTACK //Attack other animals regardless + icon_state = "parrot_fly" + +//Mobs with objects +/mob/living/simple_animal/parrot/attackby(obj/item/O, mob/living/user, params) + if(!stat && !client && !istype(O, /obj/item/stack/medical) && !istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) + if(O.force) + if(parrot_state == PARROT_PERCH) + parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched + + parrot_interest = user + parrot_state = PARROT_SWOOP + if(health > 30) //Let's get in there and squawk it up! + parrot_state |= PARROT_ATTACK + else + parrot_state |= PARROT_FLEE + icon_state = "parrot_fly" + drop_held_item(0) + else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/cracker)) //Poly wants a cracker. + qdel(O) + user.drop_item() + if(health < maxHealth) + adjustBruteLoss(-10) + speak_chance *= 1.27 // 20 crackers to go from 1% to 100% + speech_shuffle_rate += 10 + to_chat(user, "[src] eagerly devours the cracker.") + ..() + return + +//Bullets +/mob/living/simple_animal/parrot/bullet_act(obj/item/projectile/Proj) + ..() + if(!stat && !client) + if(parrot_state == PARROT_PERCH) + parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched + + parrot_interest = null + parrot_state = PARROT_WANDER | PARROT_FLEE //Been shot and survived! RUN LIKE HELL! + //parrot_been_shot += 5 + icon_state = "parrot_fly" + drop_held_item(0) + return + + +/* + * AI - Not really intelligent, but I'm calling it AI anyway. + */ +/mob/living/simple_animal/parrot/Life() + ..() + + //Sprite update for when a parrot gets pulled + if(pulledby && stat == CONSCIOUS) + icon_state = "parrot_fly" + if(!client) + parrot_state = PARROT_WANDER + return + + +//-----SPEECH + /* Parrot speech mimickry! + Phrases that the parrot Hear()s get added to speach_buffer. + Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list. */ +/mob/living/simple_animal/parrot/handle_automated_speech() + ..() + if(speech_buffer.len && prob(speech_shuffle_rate)) //shuffle out a phrase and add in a new one + if(speak.len) + speak.Remove(pick(speak)) + + speak.Add(pick(speech_buffer)) + + +/mob/living/simple_animal/parrot/handle_automated_movement() + if(!isturf(src.loc) || !canmove || buckled) + return //If it can't move, dont let it move. (The buckled check probably isn't necessary thanks to canmove) + + +//-----SLEEPING + if(parrot_state == PARROT_PERCH) + if(parrot_perch && parrot_perch.loc != src.loc) //Make sure someone hasnt moved our perch on us + if(parrot_perch in view(src)) + parrot_state = PARROT_SWOOP | PARROT_RETURN + icon_state = "parrot_fly" + return + else + parrot_state = PARROT_WANDER + icon_state = "parrot_fly" + return + + if(--parrot_sleep_dur) //Zzz + return + + else + //This way we only call the stuff below once every [sleep_max] ticks. + parrot_sleep_dur = parrot_sleep_max + + //Cycle through message modes for the headset + if(speak.len) + var/list/newspeak = list() + + if(available_channels.len && src.ears) + for(var/possible_phrase in speak) + + //50/50 chance to not use the radio at all + var/useradio = 0 + if(prob(50)) + useradio = 1 + if((copytext(possible_phrase,1,2) in GLOB.department_radio_prefixes) && (copytext(possible_phrase,2,3) in GLOB.department_radio_keys)) - possible_phrase = "[useradio?pick(available_channels):""][copytext(possible_phrase,3)]" //crop out the channel prefix - else - possible_phrase = "[useradio?pick(available_channels):""][possible_phrase]" - - newspeak.Add(possible_phrase) - - else //If we have no headset or channels to use, dont try to use any! - for(var/possible_phrase in speak) + possible_phrase = "[useradio?pick(available_channels):""][copytext(possible_phrase,3)]" //crop out the channel prefix + else + possible_phrase = "[useradio?pick(available_channels):""][possible_phrase]" + + newspeak.Add(possible_phrase) + + else //If we have no headset or channels to use, dont try to use any! + for(var/possible_phrase in speak) if((copytext(possible_phrase,1,2) in GLOB.department_radio_prefixes) && (copytext(possible_phrase,2,3) in GLOB.department_radio_keys)) possible_phrase = copytext(possible_phrase,3) //crop out the channel prefix - newspeak.Add(possible_phrase) - speak = newspeak - - //Search for item to steal - parrot_interest = search_for_item() - if(parrot_interest) - emote("me", 1, "looks in [parrot_interest]'s direction and takes flight.") - parrot_state = PARROT_SWOOP | PARROT_STEAL - icon_state = "parrot_fly" - return - -//-----WANDERING - This is basically a 'I dont know what to do yet' state - else if(parrot_state == PARROT_WANDER) - //Stop movement, we'll set it later - walk(src, 0) - parrot_interest = null - - //Wander around aimlessly. This will help keep the loops from searches down - //and possibly move the mob into a new are in view of something they can use - if(prob(90)) - step(src, pick(GLOB.cardinal)) - return - - if(!held_item && !parrot_perch) //If we've got nothing to do.. look for something to do. - var/atom/movable/AM = search_for_perch_and_item() //This handles checking through lists so we know it's either a perch or stealable item - if(AM) - if(istype(AM, /obj/item) || isliving(AM)) //If stealable item - parrot_interest = AM - emote("me", 1, "turns and flies towards [parrot_interest].") - parrot_state = PARROT_SWOOP | PARROT_STEAL - return - else //Else it's a perch - parrot_perch = AM - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - return - - if(parrot_interest && parrot_interest in view(src)) - parrot_state = PARROT_SWOOP | PARROT_STEAL - return - - if(parrot_perch && parrot_perch in view(src)) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - else //Have an item but no perch? Find one! - parrot_perch = search_for_perch() - if(parrot_perch) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return -//-----STEALING - else if(parrot_state == (PARROT_SWOOP | PARROT_STEAL)) - walk(src,0) - if(!parrot_interest || held_item) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - if(!(parrot_interest in view(src))) - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - if(Adjacent(parrot_interest)) - - if(isliving(parrot_interest)) - steal_from_mob() - - else //This should ensure that we only grab the item we want, and make sure it's not already collected on our perch - if(!parrot_perch || parrot_interest.loc != parrot_perch.loc) - held_item = parrot_interest - parrot_interest.loc = src - visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.") - - parrot_interest = null - parrot_state = PARROT_SWOOP | PARROT_RETURN - return - - walk_to(src, parrot_interest, 1, parrot_speed) - if(isStuck()) return - - return - -//-----RETURNING TO PERCH - else if(parrot_state == (PARROT_SWOOP | PARROT_RETURN)) - walk(src, 0) - if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else. - parrot_perch = null - parrot_state = PARROT_WANDER - return - - if(Adjacent(parrot_perch)) - src.loc = parrot_perch.loc - drop_held_item() - parrot_state = PARROT_PERCH - icon_state = "parrot_sit" - return - - walk_to(src, parrot_perch, 1, parrot_speed) - if(isStuck()) return - - return - -//-----FLEEING - else if(parrot_state == (PARROT_SWOOP | PARROT_FLEE)) - walk(src,0) - if(!parrot_interest || !isliving(parrot_interest)) //Sanity - parrot_state = PARROT_WANDER - - walk_away(src, parrot_interest, 1, parrot_speed) - /*if(parrot_been_shot > 0) - parrot_been_shot-- didn't work anyways, and besides, any bullet poly survives isn't worth the speed boost.*/ - if(isStuck()) return - - return - -//-----ATTACKING - else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK)) - - //If we're attacking a nothing, an object, a turf or a ghost for some stupid reason, switch to wander - if(!parrot_interest || !isliving(parrot_interest)) - parrot_interest = null - parrot_state = PARROT_WANDER - return - - var/mob/living/L = parrot_interest - if(melee_damage_upper == 0) - melee_damage_upper = parrot_damage_upper - a_intent = INTENT_HARM - - //If the mob is close enough to interact with - if(Adjacent(parrot_interest)) - - //If the mob we've been chasing/attacking dies or falls into crit, check for loot! - if(L.stat) - parrot_interest = null - if(!held_item) - held_item = steal_from_ground() - if(!held_item) - held_item = steal_from_mob() //Apparently it's possible for dead mobs to hang onto items in certain circumstances. - if(parrot_perch in view(src)) //If we have a home nearby, go to it, otherwise find a new home - parrot_state = PARROT_SWOOP | PARROT_RETURN - else - parrot_state = PARROT_WANDER - return - - attacktext = pick("claws at", "chomps") - L.attack_animal(src)//Time for the hurt to begin! - //Otherwise, fly towards the mob! - else - walk_to(src, parrot_interest, 1, parrot_speed) - if(isStuck()) return - - return -//-----STATE MISHAP - else //This should not happen. If it does lets reset everything and try again - walk(src,0) - parrot_interest = null - parrot_perch = null - drop_held_item() - parrot_state = PARROT_WANDER - return - -/* - * Procs - */ - -/mob/living/simple_animal/parrot/movement_delay() - if(client && stat == CONSCIOUS && parrot_state != "parrot_fly") - icon_state = "parrot_fly" - //Because the most appropriate place to set icon_state is movement_delay(), clearly - return ..() - -/mob/living/simple_animal/parrot/proc/isStuck() - //Check to see if the parrot is stuck due to things like windows or doors or windowdoors - if(parrot_lastmove) - if(parrot_lastmove == src.loc) - if(parrot_stuck_threshold >= ++parrot_stuck) //If it has been stuck for a while, go back to wander. - parrot_state = PARROT_WANDER - parrot_stuck = 0 - parrot_lastmove = null - return 1 - else - parrot_lastmove = null - else - parrot_lastmove = src.loc - return 0 - -/mob/living/simple_animal/parrot/proc/search_for_item() - var/item - for(var/atom/movable/AM in view(src)) - //Skip items we already stole or are wearing or are too big - if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) - continue - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(I.w_class < WEIGHT_CLASS_SMALL) - item = I - else if(iscarbon(AM)) - var/mob/living/carbon/C = AM - for(var/obj/item/I in C.held_items) - if(I.w_class <= WEIGHT_CLASS_SMALL) - item = I - break - if(item) - if(!AStar(src, get_turf(item), /turf/proc/Distance_cardinal)) - item = null - continue - return item - - return null - -/mob/living/simple_animal/parrot/proc/search_for_perch() - for(var/obj/O in view(src)) - for(var/path in desired_perches) - if(istype(O, path)) - return O - return null - -//This proc was made to save on doing two 'in view' loops seperatly -/mob/living/simple_animal/parrot/proc/search_for_perch_and_item() - for(var/atom/movable/AM in view(src)) - for(var/perch_path in desired_perches) - if(istype(AM, perch_path)) - return AM - - //Skip items we already stole or are wearing or are too big - if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) - continue - - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(I.w_class <= WEIGHT_CLASS_SMALL) - return I - - if(iscarbon(AM)) - var/mob/living/carbon/C = AM - for(var/obj/item/I in C.held_items) - if(I.w_class <= WEIGHT_CLASS_SMALL) - return C - return null - - -/* - * Verbs - These are actually procs, but can be used as verbs by player-controlled parrots. - */ -/mob/living/simple_animal/parrot/proc/steal_from_ground() - set name = "Steal from ground" - set category = "Parrot" - set desc = "Grabs a nearby item." - - if(stat) - return -1 - - if(held_item) - to_chat(src, "You are already holding [held_item]!") - return 1 - - for(var/obj/item/I in view(1,src)) - //Make sure we're not already holding it and it's small enough - if(I.loc != src && I.w_class <= WEIGHT_CLASS_SMALL) - - //If we have a perch and the item is sitting on it, continue - if(!client && parrot_perch && I.loc == parrot_perch.loc) - continue - - held_item = I - I.loc = src - visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.") - return held_item - - to_chat(src, "There is nothing of interest to take!") - return 0 - -/mob/living/simple_animal/parrot/proc/steal_from_mob() - set name = "Steal from mob" - set category = "Parrot" - set desc = "Steals an item right out of a person's hand!" - - if(stat) - return -1 - - if(held_item) - to_chat(src, "You are already holding [held_item]!") - return 1 - - var/obj/item/stolen_item = null - - for(var/mob/living/carbon/C in view(1,src)) - for(var/obj/item/I in C.held_items) - if(I.w_class <= WEIGHT_CLASS_SMALL) - stolen_item = I - break - - if(stolen_item) - C.transferItemToLoc(stolen_item, src, TRUE) - held_item = stolen_item - visible_message("[src] grabs [held_item] out of [C]'s hand!", "You snag [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.") - return held_item - - to_chat(src, "There is nothing of interest to take!") - return 0 - -/mob/living/simple_animal/parrot/verb/drop_held_item_player() - set name = "Drop held item" - set category = "Parrot" - set desc = "Drop the item you're holding." - - if(stat) - return - - src.drop_held_item() - - return - -/mob/living/simple_animal/parrot/proc/drop_held_item(drop_gently = 1) - set name = "Drop held item" - set category = "Parrot" - set desc = "Drop the item you're holding." - - if(stat) - return -1 - - if(!held_item) - if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you. - to_chat(src, "You have nothing to drop!") - return 0 - - -//parrots will eat crackers instead of dropping them - if(istype(held_item,/obj/item/weapon/reagent_containers/food/snacks/cracker) && (drop_gently)) - qdel(held_item) - held_item = null - if(health < maxHealth) - adjustBruteLoss(-10) - emote("me", 1, "[src] eagerly downs the cracker.") - return 1 - - - if(!drop_gently) - if(istype(held_item, /obj/item/weapon/grenade)) - var/obj/item/weapon/grenade/G = held_item - G.loc = src.loc - G.prime() - to_chat(src, "You let go of [held_item]!") - held_item = null - return 1 - - to_chat(src, "You drop [held_item].") - - held_item.loc = src.loc - held_item = null - return 1 - -/mob/living/simple_animal/parrot/proc/perch_player() - set name = "Sit" - set category = "Parrot" - set desc = "Sit on a nice comfy perch." - - if(stat || !client) - return - - if(icon_state == "parrot_fly") - for(var/atom/movable/AM in view(src,1)) - for(var/perch_path in desired_perches) - if(istype(AM, perch_path)) - src.loc = AM.loc - icon_state = "parrot_sit" - return - to_chat(src, "There is no perch nearby to sit on!") - return - - -/mob/living/simple_animal/parrot/proc/perch_mob_player() - set name = "Sit on Human's Shoulder" - set category = "Parrot" - set desc = "Sit on a nice comfy human being!" - - if(stat || !client) - return - - if(icon_state == "parrot_fly") - for(var/mob/living/carbon/human/H in view(src,1)) - if(H.has_buckled_mobs() && H.buckled_mobs.len >= H.max_buckled_mobs) //Already has a parrot, or is being eaten by a slime - continue - perch_on_human(H) - return - to_chat(src, "There is nobody nearby that you can sit on!") - else - icon_state = "parrot_fly" - parrot_state = PARROT_WANDER - if(buckled) - to_chat(src, "You are no longer sitting on [buckled]'s shoulder.") - buckled.unbuckle_mob(src,force=1) - buckled = null - pixel_x = initial(pixel_x) - pixel_y = initial(pixel_y) - - - -/mob/living/simple_animal/parrot/proc/perch_on_human(mob/living/carbon/human/H) - if(!H) - return - loc = get_turf(H) - H.buckle_mob(src, force=1) - pixel_y = 9 - pixel_x = pick(-8,8) //pick left or right shoulder - icon_state = "parrot_sit" - parrot_state = PARROT_PERCH - to_chat(src, "You sit on [H]'s shoulder.") - - -/mob/living/simple_animal/parrot/proc/toggle_mode() - set name = "Toggle mode" - set category = "Parrot" - set desc = "Time to bear those claws!" - - if(stat || !client) - return - - if(melee_damage_upper) - melee_damage_upper = 0 - a_intent = INTENT_HELP - else - melee_damage_upper = parrot_damage_upper - a_intent = INTENT_HARM - to_chat(src, "You will now [a_intent] others...") - return - -/* - * Sub-types - */ -/mob/living/simple_animal/parrot/Poly - name = "Poly" - desc = "Poly the Parrot. An expert on quantum cracker theory." - speak = list("Poly wanna cracker!", ":e Check the crystal, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS ABOUT TO DELAMINATE CALL THE SHUTTLE") - gold_core_spawnable = 0 - speak_chance = 3 - var/memory_saved = 0 - var/rounds_survived = 0 - var/longest_survival = 0 - var/longest_deathstreak = 0 - -/mob/living/simple_animal/parrot/Poly/Initialize() - ears = new /obj/item/device/radio/headset/headset_eng(src) - available_channels = list(":e") - Read_Memory() - if(rounds_survived == longest_survival) - speak += pick("...[longest_survival].", "The things I've seen!", "I have lived many lives!", "What are you before me?") - desc += " Old as sin, and just as loud. Claimed to be [rounds_survived]." - speak_chance = 20 //His hubris has made him more annoying/easier to justify killing - add_atom_colour("#EEEE22", FIXED_COLOUR_PRIORITY) - else if(rounds_survived == longest_deathstreak) - speak += pick("What are you waiting for!", "Violence breeds violence!", "Blood! Blood!", "Strike me down if you dare!") - desc += " The squawks of [-rounds_survived] dead parrots ring out in your ears..." - add_atom_colour("#BB7777", FIXED_COLOUR_PRIORITY) - else if(rounds_survived > 0) - speak += pick("...again?", "No, It was over!", "Let me out!", "It never ends!") - desc += " Over [rounds_survived] shifts without a \"terrible\" \"accident\"!" - else - speak += pick("...alive?", "This isn't parrot heaven!", "I live, I die, I live again!", "The void fades!") - - ..() - -/mob/living/simple_animal/parrot/Poly/Life() - if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) - rounds_survived = max(++rounds_survived,1) - if(rounds_survived > longest_survival) - longest_survival = rounds_survived - Write_Memory() - ..() - -/mob/living/simple_animal/parrot/Poly/death(gibbed) - if(!memory_saved) - var/go_ghost = 0 - if(rounds_survived == longest_survival || rounds_survived == longest_deathstreak || prob(0.666)) - go_ghost = 1 - rounds_survived = min(--rounds_survived,0) - if(rounds_survived < longest_deathstreak) - longest_deathstreak = rounds_survived - Write_Memory() - if(go_ghost) - var/mob/living/simple_animal/parrot/Poly/ghost/G = new(loc) - if(mind) - mind.transfer_to(G) - else - G.key = key - ..(gibbed) - -/mob/living/simple_animal/parrot/Poly/proc/Read_Memory() - var/savefile/S = new /savefile("data/npc_saves/Poly.sav") - S["phrases"] >> speech_buffer - S["roundssurvived"] >> rounds_survived - S["longestsurvival"] >> longest_survival - S["longestdeathstreak"] >> longest_deathstreak - - if(!islist(speech_buffer)) - speech_buffer = list() - -/mob/living/simple_animal/parrot/Poly/proc/Write_Memory() - var/savefile/S = new /savefile("data/npc_saves/Poly.sav") - if(islist(speech_buffer)) - S["phrases"] << speech_buffer - S["roundssurvived"] << rounds_survived - S["longestsurvival"] << longest_survival - S["longestdeathstreak"] << longest_deathstreak - memory_saved = 1 - -/mob/living/simple_animal/parrot/Poly/ghost - name = "The Ghost of Poly" - desc = "Doomed to squawk the earth." - color = "#FFFFFF77" - speak_chance = 20 - status_flags = GODMODE + newspeak.Add(possible_phrase) + speak = newspeak + + //Search for item to steal + parrot_interest = search_for_item() + if(parrot_interest) + emote("me", 1, "looks in [parrot_interest]'s direction and takes flight.") + parrot_state = PARROT_SWOOP | PARROT_STEAL + icon_state = "parrot_fly" + return + +//-----WANDERING - This is basically a 'I dont know what to do yet' state + else if(parrot_state == PARROT_WANDER) + //Stop movement, we'll set it later + walk(src, 0) + parrot_interest = null + + //Wander around aimlessly. This will help keep the loops from searches down + //and possibly move the mob into a new are in view of something they can use + if(prob(90)) + step(src, pick(GLOB.cardinal)) + return + + if(!held_item && !parrot_perch) //If we've got nothing to do.. look for something to do. + var/atom/movable/AM = search_for_perch_and_item() //This handles checking through lists so we know it's either a perch or stealable item + if(AM) + if(istype(AM, /obj/item) || isliving(AM)) //If stealable item + parrot_interest = AM + emote("me", 1, "turns and flies towards [parrot_interest].") + parrot_state = PARROT_SWOOP | PARROT_STEAL + return + else //Else it's a perch + parrot_perch = AM + parrot_state = PARROT_SWOOP | PARROT_RETURN + return + return + + if(parrot_interest && parrot_interest in view(src)) + parrot_state = PARROT_SWOOP | PARROT_STEAL + return + + if(parrot_perch && parrot_perch in view(src)) + parrot_state = PARROT_SWOOP | PARROT_RETURN + return + + else //Have an item but no perch? Find one! + parrot_perch = search_for_perch() + if(parrot_perch) + parrot_state = PARROT_SWOOP | PARROT_RETURN + return +//-----STEALING + else if(parrot_state == (PARROT_SWOOP | PARROT_STEAL)) + walk(src,0) + if(!parrot_interest || held_item) + parrot_state = PARROT_SWOOP | PARROT_RETURN + return + + if(!(parrot_interest in view(src))) + parrot_state = PARROT_SWOOP | PARROT_RETURN + return + + if(Adjacent(parrot_interest)) + + if(isliving(parrot_interest)) + steal_from_mob() + + else //This should ensure that we only grab the item we want, and make sure it's not already collected on our perch + if(!parrot_perch || parrot_interest.loc != parrot_perch.loc) + held_item = parrot_interest + parrot_interest.loc = src + visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.") + + parrot_interest = null + parrot_state = PARROT_SWOOP | PARROT_RETURN + return + + walk_to(src, parrot_interest, 1, parrot_speed) + if(isStuck()) return + + return + +//-----RETURNING TO PERCH + else if(parrot_state == (PARROT_SWOOP | PARROT_RETURN)) + walk(src, 0) + if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else. + parrot_perch = null + parrot_state = PARROT_WANDER + return + + if(Adjacent(parrot_perch)) + src.loc = parrot_perch.loc + drop_held_item() + parrot_state = PARROT_PERCH + icon_state = "parrot_sit" + return + + walk_to(src, parrot_perch, 1, parrot_speed) + if(isStuck()) return + + return + +//-----FLEEING + else if(parrot_state == (PARROT_SWOOP | PARROT_FLEE)) + walk(src,0) + if(!parrot_interest || !isliving(parrot_interest)) //Sanity + parrot_state = PARROT_WANDER + + walk_away(src, parrot_interest, 1, parrot_speed) + /*if(parrot_been_shot > 0) + parrot_been_shot-- didn't work anyways, and besides, any bullet poly survives isn't worth the speed boost.*/ + if(isStuck()) return + + return + +//-----ATTACKING + else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK)) + + //If we're attacking a nothing, an object, a turf or a ghost for some stupid reason, switch to wander + if(!parrot_interest || !isliving(parrot_interest)) + parrot_interest = null + parrot_state = PARROT_WANDER + return + + var/mob/living/L = parrot_interest + if(melee_damage_upper == 0) + melee_damage_upper = parrot_damage_upper + a_intent = INTENT_HARM + + //If the mob is close enough to interact with + if(Adjacent(parrot_interest)) + + //If the mob we've been chasing/attacking dies or falls into crit, check for loot! + if(L.stat) + parrot_interest = null + if(!held_item) + held_item = steal_from_ground() + if(!held_item) + held_item = steal_from_mob() //Apparently it's possible for dead mobs to hang onto items in certain circumstances. + if(parrot_perch in view(src)) //If we have a home nearby, go to it, otherwise find a new home + parrot_state = PARROT_SWOOP | PARROT_RETURN + else + parrot_state = PARROT_WANDER + return + + attacktext = pick("claws at", "chomps") + L.attack_animal(src)//Time for the hurt to begin! + //Otherwise, fly towards the mob! + else + walk_to(src, parrot_interest, 1, parrot_speed) + if(isStuck()) return + + return +//-----STATE MISHAP + else //This should not happen. If it does lets reset everything and try again + walk(src,0) + parrot_interest = null + parrot_perch = null + drop_held_item() + parrot_state = PARROT_WANDER + return + +/* + * Procs + */ + +/mob/living/simple_animal/parrot/movement_delay() + if(client && stat == CONSCIOUS && parrot_state != "parrot_fly") + icon_state = "parrot_fly" + //Because the most appropriate place to set icon_state is movement_delay(), clearly + return ..() + +/mob/living/simple_animal/parrot/proc/isStuck() + //Check to see if the parrot is stuck due to things like windows or doors or windowdoors + if(parrot_lastmove) + if(parrot_lastmove == src.loc) + if(parrot_stuck_threshold >= ++parrot_stuck) //If it has been stuck for a while, go back to wander. + parrot_state = PARROT_WANDER + parrot_stuck = 0 + parrot_lastmove = null + return 1 + else + parrot_lastmove = null + else + parrot_lastmove = src.loc + return 0 + +/mob/living/simple_animal/parrot/proc/search_for_item() + var/item + for(var/atom/movable/AM in view(src)) + //Skip items we already stole or are wearing or are too big + if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) + continue + if(istype(AM, /obj/item)) + var/obj/item/I = AM + if(I.w_class < WEIGHT_CLASS_SMALL) + item = I + else if(iscarbon(AM)) + var/mob/living/carbon/C = AM + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + item = I + break + if(item) + if(!AStar(src, get_turf(item), /turf/proc/Distance_cardinal)) + item = null + continue + return item + + return null + +/mob/living/simple_animal/parrot/proc/search_for_perch() + for(var/obj/O in view(src)) + for(var/path in desired_perches) + if(istype(O, path)) + return O + return null + +//This proc was made to save on doing two 'in view' loops seperatly +/mob/living/simple_animal/parrot/proc/search_for_perch_and_item() + for(var/atom/movable/AM in view(src)) + for(var/perch_path in desired_perches) + if(istype(AM, perch_path)) + return AM + + //Skip items we already stole or are wearing or are too big + if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src) + continue + + if(istype(AM, /obj/item)) + var/obj/item/I = AM + if(I.w_class <= WEIGHT_CLASS_SMALL) + return I + + if(iscarbon(AM)) + var/mob/living/carbon/C = AM + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + return C + return null + + +/* + * Verbs - These are actually procs, but can be used as verbs by player-controlled parrots. + */ +/mob/living/simple_animal/parrot/proc/steal_from_ground() + set name = "Steal from ground" + set category = "Parrot" + set desc = "Grabs a nearby item." + + if(stat) + return -1 + + if(held_item) + to_chat(src, "You are already holding [held_item]!") + return 1 + + for(var/obj/item/I in view(1,src)) + //Make sure we're not already holding it and it's small enough + if(I.loc != src && I.w_class <= WEIGHT_CLASS_SMALL) + + //If we have a perch and the item is sitting on it, continue + if(!client && parrot_perch && I.loc == parrot_perch.loc) + continue + + held_item = I + I.loc = src + visible_message("[src] grabs [held_item]!", "You grab [held_item]!", "You hear the sounds of wings flapping furiously.") + return held_item + + to_chat(src, "There is nothing of interest to take!") + return 0 + +/mob/living/simple_animal/parrot/proc/steal_from_mob() + set name = "Steal from mob" + set category = "Parrot" + set desc = "Steals an item right out of a person's hand!" + + if(stat) + return -1 + + if(held_item) + to_chat(src, "You are already holding [held_item]!") + return 1 + + var/obj/item/stolen_item = null + + for(var/mob/living/carbon/C in view(1,src)) + for(var/obj/item/I in C.held_items) + if(I.w_class <= WEIGHT_CLASS_SMALL) + stolen_item = I + break + + if(stolen_item) + C.transferItemToLoc(stolen_item, src, TRUE) + held_item = stolen_item + visible_message("[src] grabs [held_item] out of [C]'s hand!", "You snag [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.") + return held_item + + to_chat(src, "There is nothing of interest to take!") + return 0 + +/mob/living/simple_animal/parrot/verb/drop_held_item_player() + set name = "Drop held item" + set category = "Parrot" + set desc = "Drop the item you're holding." + + if(stat) + return + + src.drop_held_item() + + return + +/mob/living/simple_animal/parrot/proc/drop_held_item(drop_gently = 1) + set name = "Drop held item" + set category = "Parrot" + set desc = "Drop the item you're holding." + + if(stat) + return -1 + + if(!held_item) + if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you. + to_chat(src, "You have nothing to drop!") + return 0 + + +//parrots will eat crackers instead of dropping them + if(istype(held_item,/obj/item/weapon/reagent_containers/food/snacks/cracker) && (drop_gently)) + qdel(held_item) + held_item = null + if(health < maxHealth) + adjustBruteLoss(-10) + emote("me", 1, "[src] eagerly downs the cracker.") + return 1 + + + if(!drop_gently) + if(istype(held_item, /obj/item/weapon/grenade)) + var/obj/item/weapon/grenade/G = held_item + G.loc = src.loc + G.prime() + to_chat(src, "You let go of [held_item]!") + held_item = null + return 1 + + to_chat(src, "You drop [held_item].") + + held_item.loc = src.loc + held_item = null + return 1 + +/mob/living/simple_animal/parrot/proc/perch_player() + set name = "Sit" + set category = "Parrot" + set desc = "Sit on a nice comfy perch." + + if(stat || !client) + return + + if(icon_state == "parrot_fly") + for(var/atom/movable/AM in view(src,1)) + for(var/perch_path in desired_perches) + if(istype(AM, perch_path)) + src.loc = AM.loc + icon_state = "parrot_sit" + return + to_chat(src, "There is no perch nearby to sit on!") + return + + +/mob/living/simple_animal/parrot/proc/perch_mob_player() + set name = "Sit on Human's Shoulder" + set category = "Parrot" + set desc = "Sit on a nice comfy human being!" + + if(stat || !client) + return + + if(icon_state == "parrot_fly") + for(var/mob/living/carbon/human/H in view(src,1)) + if(H.has_buckled_mobs() && H.buckled_mobs.len >= H.max_buckled_mobs) //Already has a parrot, or is being eaten by a slime + continue + perch_on_human(H) + return + to_chat(src, "There is nobody nearby that you can sit on!") + else + icon_state = "parrot_fly" + parrot_state = PARROT_WANDER + if(buckled) + to_chat(src, "You are no longer sitting on [buckled]'s shoulder.") + buckled.unbuckle_mob(src,force=1) + buckled = null + pixel_x = initial(pixel_x) + pixel_y = initial(pixel_y) + + + +/mob/living/simple_animal/parrot/proc/perch_on_human(mob/living/carbon/human/H) + if(!H) + return + loc = get_turf(H) + H.buckle_mob(src, force=1) + pixel_y = 9 + pixel_x = pick(-8,8) //pick left or right shoulder + icon_state = "parrot_sit" + parrot_state = PARROT_PERCH + to_chat(src, "You sit on [H]'s shoulder.") + + +/mob/living/simple_animal/parrot/proc/toggle_mode() + set name = "Toggle mode" + set category = "Parrot" + set desc = "Time to bear those claws!" + + if(stat || !client) + return + + if(melee_damage_upper) + melee_damage_upper = 0 + a_intent = INTENT_HELP + else + melee_damage_upper = parrot_damage_upper + a_intent = INTENT_HARM + to_chat(src, "You will now [a_intent] others...") + return + +/* + * Sub-types + */ +/mob/living/simple_animal/parrot/Poly + name = "Poly" + desc = "Poly the Parrot. An expert on quantum cracker theory." + speak = list("Poly wanna cracker!", ":e Check the crystal, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS ABOUT TO DELAMINATE CALL THE SHUTTLE") + gold_core_spawnable = 0 + speak_chance = 3 + var/memory_saved = 0 + var/rounds_survived = 0 + var/longest_survival = 0 + var/longest_deathstreak = 0 + +/mob/living/simple_animal/parrot/Poly/Initialize() + ears = new /obj/item/device/radio/headset/headset_eng(src) + available_channels = list(":e") + Read_Memory() + if(rounds_survived == longest_survival) + speak += pick("...[longest_survival].", "The things I've seen!", "I have lived many lives!", "What are you before me?") + desc += " Old as sin, and just as loud. Claimed to be [rounds_survived]." + speak_chance = 20 //His hubris has made him more annoying/easier to justify killing + add_atom_colour("#EEEE22", FIXED_COLOUR_PRIORITY) + else if(rounds_survived == longest_deathstreak) + speak += pick("What are you waiting for!", "Violence breeds violence!", "Blood! Blood!", "Strike me down if you dare!") + desc += " The squawks of [-rounds_survived] dead parrots ring out in your ears..." + add_atom_colour("#BB7777", FIXED_COLOUR_PRIORITY) + else if(rounds_survived > 0) + speak += pick("...again?", "No, It was over!", "Let me out!", "It never ends!") + desc += " Over [rounds_survived] shifts without a \"terrible\" \"accident\"!" + else + speak += pick("...alive?", "This isn't parrot heaven!", "I live, I die, I live again!", "The void fades!") + + ..() + +/mob/living/simple_animal/parrot/Poly/Life() + if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) + rounds_survived = max(++rounds_survived,1) + if(rounds_survived > longest_survival) + longest_survival = rounds_survived + Write_Memory() + ..() + +/mob/living/simple_animal/parrot/Poly/death(gibbed) + if(!memory_saved) + var/go_ghost = 0 + if(rounds_survived == longest_survival || rounds_survived == longest_deathstreak || prob(0.666)) + go_ghost = 1 + rounds_survived = min(--rounds_survived,0) + if(rounds_survived < longest_deathstreak) + longest_deathstreak = rounds_survived + Write_Memory() + if(go_ghost) + var/mob/living/simple_animal/parrot/Poly/ghost/G = new(loc) + if(mind) + mind.transfer_to(G) + else + G.key = key + ..(gibbed) + +/mob/living/simple_animal/parrot/Poly/proc/Read_Memory() + var/savefile/S = new /savefile("data/npc_saves/Poly.sav") + S["phrases"] >> speech_buffer + S["roundssurvived"] >> rounds_survived + S["longestsurvival"] >> longest_survival + S["longestdeathstreak"] >> longest_deathstreak + + if(!islist(speech_buffer)) + speech_buffer = list() + +/mob/living/simple_animal/parrot/Poly/proc/Write_Memory() + var/savefile/S = new /savefile("data/npc_saves/Poly.sav") + if(islist(speech_buffer)) + S["phrases"] << speech_buffer + S["roundssurvived"] << rounds_survived + S["longestsurvival"] << longest_survival + S["longestdeathstreak"] << longest_deathstreak + memory_saved = 1 + +/mob/living/simple_animal/parrot/Poly/ghost + name = "The Ghost of Poly" + desc = "Doomed to squawk the earth." + color = "#FFFFFF77" + speak_chance = 20 + status_flags = GODMODE incorporeal_move = INCORPOREAL_MOVE_BASIC - butcher_results = list(/obj/item/weapon/ectoplasm = 1) - -/mob/living/simple_animal/parrot/Poly/ghost/Initialize() - memory_saved = 1 //At this point nothing is saved - ..() - -/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_speech() - if(ismob(loc)) - return - ..() - -/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_movement() - if(isliving(parrot_interest)) - if(!ishuman(parrot_interest)) - parrot_interest = null - else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK) && Adjacent(parrot_interest)) - walk_to(src, parrot_interest, 0, parrot_speed) - Possess(parrot_interest) - ..() - -/mob/living/simple_animal/parrot/Poly/ghost/proc/Possess(mob/living/carbon/human/H) - if(!ishuman(H)) - return - var/datum/disease/parrot_possession/P = new - P.parrot = src - loc = H - H.ContractDisease(P) - parrot_interest = null - H.visible_message("[src] dive bombs into [H]'s chest and vanishes!", "[src] dive bombs into your chest, vanishing! This can't be good!") + butcher_results = list(/obj/item/weapon/ectoplasm = 1) + +/mob/living/simple_animal/parrot/Poly/ghost/Initialize() + memory_saved = 1 //At this point nothing is saved + ..() + +/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_speech() + if(ismob(loc)) + return + ..() + +/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_movement() + if(isliving(parrot_interest)) + if(!ishuman(parrot_interest)) + parrot_interest = null + else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK) && Adjacent(parrot_interest)) + walk_to(src, parrot_interest, 0, parrot_speed) + Possess(parrot_interest) + ..() + +/mob/living/simple_animal/parrot/Poly/ghost/proc/Possess(mob/living/carbon/human/H) + if(!ishuman(H)) + return + var/datum/disease/parrot_possession/P = new + P.parrot = src + loc = H + H.ContractDisease(P) + parrot_interest = null + H.visible_message("[src] dive bombs into [H]'s chest and vanishes!", "[src] dive bombs into your chest, vanishing! This can't be good!") diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 31aa1ea589..61b92679e8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -387,7 +387,7 @@ ..() /mob/living/simple_animal/update_canmove() - if(paralysis || stunned || weakened || stat || resting) + if(IsUnconscious() || IsStun() || IsKnockdown() || stat || resting) drop_all_held_items() canmove = 0 else if(buckled) diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index ec0d15bcd7..45320ecc3e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -1,3 +1,4 @@ /mob/living/simple_animal // List of targets excluded (for now) from being eaten by this mob. var/list/prey_exclusions = list() + devourable = FALSE //insurance because who knows. diff --git a/code/modules/mob/living/simple_animal/slime/say.dm b/code/modules/mob/living/simple_animal/slime/say.dm index ae7c14068f..60a25f90b7 100644 --- a/code/modules/mob/living/simple_animal/slime/say.dm +++ b/code/modules/mob/living/simple_animal/slime/say.dm @@ -1,4 +1,4 @@ -/mob/living/simple_animal/slime/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans) +/mob/living/simple_animal/slime/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode) if(speaker != src && !radio_freq && !stat) if (speaker in Friends) speech_buffer = list() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index e016be2033..a4cca99fec 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -36,9 +36,9 @@ verb_exclaim = "loudly blorbles" verb_yell = "loudly blorbles" - // canstun and canweaken don't affect slimes because they ignore stun and weakened variables + // canstun and canknockdown don't affect slimes because they ignore stun and knockdown variables // for the sake of cleanliness, though, here they are. - status_flags = CANPARALYSE|CANPUSH + status_flags = CANUNCONSCIOUS|CANPUSH var/cores = 1 // the number of /obj/item/slime_extract's the slime has left inside var/mutation_chance = 30 // Chance of mutating, should be between 25 and 35 diff --git a/code/modules/mob/living/simple_animal/spawner.dm b/code/modules/mob/living/simple_animal/spawner.dm index def9423807..94cc061103 100644 --- a/code/modules/mob/living/simple_animal/spawner.dm +++ b/code/modules/mob/living/simple_animal/spawner.dm @@ -30,10 +30,9 @@ spawned_mobs = null return ..() -/mob/living/simple_animal/hostile/spawner/Life() - ..() - if(!stat) - spawn_mob() +/mob/living/simple_animal/hostile/spawner/handle_automated_action() + . = ..() + spawn_mob() /mob/living/simple_animal/hostile/spawner/proc/spawn_mob() if(spawned_mobs.len >= max_mobs) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 9fe8443506..a7af1daef8 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -1,12 +1,108 @@ //Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, +//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, // eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. -//////////////////////////////STUN //////////////////////////////////// +////////////////////////////// STUN //////////////////////////////////// + +/mob/living/IsStun() //If we're stunned + return has_status_effect(STATUS_EFFECT_STUN) + +/mob/living/proc/AmountStun() //How many deciseconds remain in our stun + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + return S.duration - world.time + return 0 + +/mob/living/proc/Stun(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration + if((status_flags & CANSTUN) || ignore_canstun) + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.duration = max(world.time + amount, S.duration) + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S + +/mob/living/proc/SetStun(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration + if((status_flags & CANSTUN) || ignore_canstun) + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(amount <= 0) + if(S) + qdel(S) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(S) + S.duration = world.time + amount + else + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S + +/mob/living/proc/AdjustStun(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration + if((status_flags & CANSTUN) || ignore_canstun) + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.duration += amount + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S + +///////////////////////////////// KNOCKDOWN ///////////////////////////////////// + +/mob/living/IsKnockdown() //If we're knocked down + return has_status_effect(STATUS_EFFECT_KNOCKDOWN) + +/mob/living/proc/AmountKnockdown() //How many deciseconds remain in our knockdown + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(K) + return K.duration - world.time + return 0 + +/mob/living/proc/Knockdown(amount, updating = TRUE, ignore_canknockdown = FALSE) //Can't go below remaining duration + if((status_flags & CANKNOCKDOWN) || ignore_canknockdown) + if(absorb_stun(amount, ignore_canknockdown)) + return + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(K) + K.duration = max(world.time + amount, K.duration) + else if(amount > 0) + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K + +/mob/living/proc/SetKnockdown(amount, updating = TRUE, ignore_canknockdown = FALSE) //Sets remaining duration + if((status_flags & CANKNOCKDOWN) || ignore_canknockdown) + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(amount <= 0) + if(K) + qdel(K) + else + if(absorb_stun(amount, ignore_canknockdown)) + return + if(K) + K.duration = world.time + amount + else + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K + +/mob/living/proc/AdjustKnockdown(amount, updating = TRUE, ignore_canknockdown = FALSE) //Adds to remaining duration + if((status_flags & CANKNOCKDOWN) || ignore_canknockdown) + if(absorb_stun(amount, ignore_canknockdown)) + return + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(K) + K.duration += amount + else if(amount > 0) + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K + +///////////////////////////////////// STUN ABSORPTION ///////////////////////////////////// /mob/living/proc/add_stun_absorption(key, duration, priority, message, self_message, examine_message) -//adds a stun absorption with a key, a duration in deciseconds, its priority, and the messages it makes when you're stunned/examined, if any +//adds a stun absorption with a key, a duration in deciseconds, its priority, and the messages it makes when you're stun/examined, if any if(!islist(stun_absorption)) stun_absorption = list() if(stun_absorption[key]) @@ -17,44 +113,22 @@ stun_absorption[key] = list("end_time" = world.time + duration, "priority" = priority, "stuns_absorbed" = 0, \ "visible_message" = message, "self_message" = self_message, "examine_message" = examine_message) -/mob/living/Stun(amount, updating = 1, ignore_canstun = 0) - if(!stat && islist(stun_absorption) && (status_flags & CANSTUN || ignore_canstun)) - var/priority_absorb_key - var/highest_priority - for(var/i in stun_absorption) - if(stun_absorption[i]["end_time"] > world.time && (!priority_absorb_key || stun_absorption[i]["priority"] > highest_priority)) - priority_absorb_key = stun_absorption[i] - highest_priority = stun_absorption[i]["priority"] - if(priority_absorb_key) - if(priority_absorb_key["visible_message"] || priority_absorb_key["self_message"]) - if(priority_absorb_key["visible_message"] && priority_absorb_key["self_message"]) - visible_message("[src][priority_absorb_key["visible_message"]]", "[priority_absorb_key["self_message"]]") - else if(priority_absorb_key["visible_message"]) - visible_message("[src][priority_absorb_key["visible_message"]]") - else if(priority_absorb_key["self_message"]) - to_chat(src, "[priority_absorb_key["self_message"]]") - priority_absorb_key["stuns_absorbed"] += amount - return 0 - return ..() - -///////////////////////////////// WEAKEN ///////////////////////////////////// - -/mob/living/Weaken(amount, updating = 1, ignore_canweaken = 0) - if(!stat && islist(stun_absorption) && (status_flags & CANWEAKEN || ignore_canweaken)) - var/priority_absorb_key - var/highest_priority - for(var/i in stun_absorption) - if(stun_absorption[i]["end_time"] > world.time && (!priority_absorb_key || stun_absorption[i]["priority"] > highest_priority)) - priority_absorb_key = stun_absorption[i] - highest_priority = priority_absorb_key["priority"] - if(priority_absorb_key) - if(priority_absorb_key["visible_message"] || priority_absorb_key["self_message"]) - if(priority_absorb_key["visible_message"] && priority_absorb_key["self_message"]) - visible_message("[src][priority_absorb_key["visible_message"]]", "[priority_absorb_key["self_message"]]") - else if(priority_absorb_key["visible_message"]) - visible_message("[src][priority_absorb_key["visible_message"]]") - else if(priority_absorb_key["self_message"]) - to_chat(src, "[priority_absorb_key["self_message"]]") - priority_absorb_key["stuns_absorbed"] += amount - return 0 - return ..() +/mob/living/proc/absorb_stun(amount, ignoring_flag_presence) + if(!amount || amount <= 0 || stat || ignoring_flag_presence || !islist(stun_absorption)) + return FALSE + var/priority_absorb_key + var/highest_priority + for(var/i in stun_absorption) + if(stun_absorption[i]["end_time"] > world.time && (!priority_absorb_key || stun_absorption[i]["priority"] > highest_priority)) + priority_absorb_key = stun_absorption[i] + highest_priority = priority_absorb_key["priority"] + if(priority_absorb_key) + if(priority_absorb_key["visible_message"] || priority_absorb_key["self_message"]) + if(priority_absorb_key["visible_message"] && priority_absorb_key["self_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]", "[priority_absorb_key["self_message"]]") + else if(priority_absorb_key["visible_message"]) + visible_message("[src][priority_absorb_key["visible_message"]]") + else if(priority_absorb_key["self_message"]) + to_chat(src, "[priority_absorb_key["self_message"]]") + priority_absorb_key["stuns_absorbed"] += amount + return TRUE diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index a1430f6cd4..471e103c26 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -1,5 +1,7 @@ -GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/components/unary/vent_pump, /obj/machinery/atmospherics/components/unary/vent_scrubber)) +GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( + /obj/machinery/atmospherics/components/unary/vent_pump, + /obj/machinery/atmospherics/components/unary/vent_scrubber))) //VENTCRAWLING @@ -32,7 +34,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/component if(!vent_found) for(var/obj/machinery/atmospherics/machine in range(1,src)) - if(is_type_in_list(machine, GLOB.ventcrawl_machinery)) + if(is_type_in_typecache(machine, GLOB.ventcrawl_machinery)) vent_found = machine if(!vent_found.can_crawl_through()) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index e35b79de44..8e732940a1 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -1,44 +1,44 @@ -/mob/Login() - GLOB.player_list |= src - lastKnownIP = client.address - computer_id = client.computer_id - log_access("Mob Login: [key_name(src)] was assigned to a [type]") - world.update_status() - client.screen = list() //remove hud items just in case - client.images = list() - - if(!hud_used) - create_mob_hud() - if(hud_used) - hud_used.show_hud(hud_used.hud_version) - - next_move = 1 - - ..() +/mob/Login() + GLOB.player_list |= src + lastKnownIP = client.address + computer_id = client.computer_id + log_access("Mob Login: [key_name(src)] was assigned to a [type]") + world.update_status() + client.screen = list() //remove hud items just in case + client.images = list() + + if(!hud_used) + create_mob_hud() + if(hud_used) + hud_used.show_hud(hud_used.hud_version) + + next_move = 1 + + ..() + + reset_perspective(loc) - reset_perspective(loc) - if(loc) loc.on_log(TRUE) - - //readd this mob's HUDs (antag, med, etc) - reload_huds() - - reload_fullscreen() // Reload any fullscreen overlays this mob has. - - if(ckey in GLOB.deadmins) - verbs += /client/proc/readmin - - add_click_catcher() - - sync_mind() - - client.sethotkeys() //set mob specific hotkeys - - update_client_colour() - if(client) - client.click_intercept = null - + + //readd this mob's HUDs (antag, med, etc) + reload_huds() + + reload_fullscreen() // Reload any fullscreen overlays this mob has. + + if(ckey in GLOB.deadmins) + verbs += /client/proc/readmin + + add_click_catcher() + + sync_mind() + + client.sethotkeys() //set mob specific hotkeys + + update_client_colour() + if(client) + client.click_intercept = null + client.view = world.view // Resets the client.view in case it was changed. if(!GLOB.individual_log_list[ckey]) diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index 770ec01d42..aadb7e6d58 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -1,11 +1,11 @@ -/mob/Logout() - SStgui.on_logout(src) - unset_machine() - GLOB.player_list -= src - - ..() - +/mob/Logout() + SStgui.on_logout(src) + unset_machine() + GLOB.player_list -= src + + ..() + if(loc) loc.on_log(FALSE) - + return TRUE \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 62fd280869..387f69bf4e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -118,7 +118,7 @@ if(self_message) msg = self_message else - if(M.see_invisibleYou have been allowed to bypass the respawn configuration due to being an admin.") + return if ((stat != 2 || !( SSticker ))) to_chat(usr, "You must be dead to use this!") return @@ -457,6 +445,9 @@ to_chat(usr, "Please roleplay correctly!") + if(!client) + log_game("[usr.key] AM failed due to disconnect.") + return client.screen.Cut() client.screen += client.void if(!client) @@ -499,7 +490,7 @@ var/t1 = text("window=[href_list["mach_close"]]") unset_machine() src << browse(null, t1) - + if(href_list["flavor_more"]) usr << browse(text("[][]", name, replacetext(flavor_text, "\n", "
    ")), text("window=[];size=500x200", name)) onclose(usr, "[name]") @@ -674,52 +665,6 @@ return 0 return 1 - -//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. -//Robots, animals and brains have their own version so don't worry about them -/mob/proc/update_canmove() - var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) - var/chokehold = pulledby && pulledby.grab_state >= GRAB_NECK - var/buckle_lying = !(buckled && !buckled.buckle_lying) - var/has_legs = get_num_legs() - var/has_arms = get_num_arms() - var/ignore_legs = get_leg_ignore() - if(ko || resting || stunned || chokehold) - drop_all_held_items() - unset_machine() - if(pulling) - stop_pulling() - else if(has_legs || ignore_legs) - lying = 0 - - if(buckled) - lying = 90*buckle_lying - else if(!lying) - if(resting) - fall() - else if(ko || (!has_legs && !ignore_legs) || chokehold) - fall(forced = 1) - canmove = !(ko || resting || stunned || chokehold || buckled || (!has_legs && !ignore_legs && !has_arms)) - density = !lying - if(lying) - if(layer == initial(layer)) //to avoid special cases like hiding larvas. - layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs - else - if(layer == LYING_MOB_LAYER) - layer = initial(layer) - update_transform() - update_action_buttons_icon(status_only=TRUE) - if(isliving(src)) - var/mob/living/L = src - if(L.has_status_effect(/datum/status_effect/freon)) - canmove = 0 - if(!lying && lying_prev) - if(client) - client.move_delay = world.time + movement_delay() - lying_prev = lying - return canmove - - /mob/proc/fall(forced) drop_all_held_items() @@ -767,8 +712,8 @@ /mob/proc/activate_hand(selhand) return -/mob/proc/assess_threat() //For sec bot threat assessment - return +/mob/proc/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //For sec bot threat assessment + return 0 /mob/proc/get_ghost(even_if_they_cant_reenter = 0) if(mind) @@ -968,12 +913,12 @@ GLOB.dead_mob_list += src . = ..() switch(var_name) - if("weakened") - SetWeakened(var_value) - if("stunned") - SetStunned(var_value) - if("paralysis") - SetParalysis(var_value) + if("knockdown") + SetKnockdown(var_value) + if("stun") + SetStun(var_value) + if("unconscious") + SetUnconscious(var_value) if("sleeping") SetSleeping(var_value) if("eye_blind") diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 82dca7986b..f3872c2a64 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -8,7 +8,6 @@ var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/datum/mind/mind var/list/datum/action/actions = list() - var/static/next_mob_id = 0 var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak @@ -48,12 +47,10 @@ var/real_name = null var/druggy = 0 //Carbon var/confused = 0 //Carbon - var/sleeping = 0 //Carbon var/resting = 0 //Carbon var/lying = 0 var/lying_prev = 0 var/canmove = 1 - var/eye_damage = 0//Living, potentially Carbon var/lastpuke = 0 var/name_archive //For admin things like possession @@ -69,9 +66,6 @@ var/satiety = 0//Carbon var/overeatduration = 0 // How long this guy is overeating //Carbon - var/paralysis = 0 - var/stunned = 0 - var/weakened = 0 var/losebreath = 0//Carbon var/a_intent = INTENT_HELP//Living var/list/possible_a_intents = null//Living @@ -124,7 +118,7 @@ mouse_drag_pointer = MOUSE_ACTIVE_POINTER - var/status_flags = CANSTUN|CANWEAKEN|CANPARALYSE|CANPUSH //bitflags defining which status effects can be inflicted (replaces canweaken, canstun, etc) + var/status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH //bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc) var/digitalcamo = 0 // Can they be tracked by the AI? var/digitalinvis = 0 //Are they ivisible to the AI? diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5c73fc3e9b..a704c2e43f 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -1,487 +1,487 @@ - -// see _DEFINES/is_helpers.dm for mob type checks - -/mob/proc/isloyal() //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them - return 0 - -/mob/living/carbon/isloyal() - for(var/obj/item/weapon/implant/mindshield/L in implants) - return 1 - - -/proc/check_zone(zone) - if(!zone) - return "chest" - switch(zone) - if("eyes") - zone = "head" - if("mouth") - zone = "head" - if("l_hand") - zone = "l_arm" - if("r_hand") - zone = "r_arm" - if("l_foot") - zone = "l_leg" - if("r_foot") - zone = "r_leg" - if("groin") - zone = "chest" - return zone - - -/proc/ran_zone(zone, probability = 80) - - zone = check_zone(zone) - - if(prob(probability)) - return zone - - var/t = rand(1, 18) // randomly pick a different zone, or maybe the same one - switch(t) - if(1) - return "head" - if(2) - return "chest" - if(3 to 6) - return "l_arm" - if(7 to 10) - return "r_arm" - if(11 to 14) - return "l_leg" - if(15 to 18) - return "r_leg" - - return zone - -/proc/above_neck(zone) - var/list/zones = list("head", "mouth", "eyes") - if(zones.Find(zone)) - return 1 - else - return 0 - -/proc/stars(n, pr) - n = html_encode(n) - if (pr == null) - pr = 25 - if (pr <= 0) - return null - else - if (pr >= 100) - return n - var/te = n - var/t = "" - n = length(n) - var/p = null - p = 1 - while(p <= n) - if ((copytext(te, p, p + 1) == " " || prob(pr))) - t = text("[][]", t, copytext(te, p, p + 1)) - else - t = text("[]*", t) - p++ - return sanitize(t) - -/proc/slur(n) - var/phrase = html_decode(n) - var/leng = lentext(phrase) - var/counter=lentext(phrase) - var/newphrase="" - var/newletter="" - while(counter>=1) - newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2) - if(rand(1,3)==3) - if(lowertext(newletter)=="o") - newletter="u" - if(lowertext(newletter)=="s") - newletter="ch" - if(lowertext(newletter)=="a") - newletter="ah" - if(lowertext(newletter)=="u") - newletter="oo" - if(lowertext(newletter)=="c") - newletter="k" - if(rand(1,20)==20) - if(newletter==" ") - newletter="...huuuhhh..." - if(newletter==".") - newletter=" *BURP*." - switch(rand(1,20)) - if(1) - newletter+="'" - if(10) - newletter+="[newletter]" - if(20) - newletter+="[newletter][newletter]" - newphrase+="[newletter]";counter-=1 - return newphrase - - -/proc/cultslur(n) // Inflicted on victims of a stun talisman - var/phrase = html_decode(n) - var/leng = lentext(phrase) - var/counter=lentext(phrase) - var/newphrase="" - var/newletter="" - while(counter>=1) - newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2) - if(rand(1,2)==2) - if(lowertext(newletter)=="o") - newletter="u" - if(lowertext(newletter)=="t") - newletter="ch" - if(lowertext(newletter)=="a") - newletter="ah" - if(lowertext(newletter)=="u") - newletter="oo" - if(lowertext(newletter)=="c") - newletter=" NAR " - if(lowertext(newletter)=="s") - newletter=" SIE " - if(rand(1,4)==4) - if(newletter==" ") - newletter=" no hope... " - if(newletter=="H") - newletter=" IT COMES... " - - switch(rand(1,15)) - if(1) - newletter="'" - if(2) - newletter+="agn" - if(3) - newletter="fth" - if(4) - newletter="nglu" - if(5) - newletter="glor" - newphrase+="[newletter]";counter-=1 - return newphrase - - -/proc/stutter(n) - var/te = html_decode(n) - var/t = ""//placed before the message. Not really sure what it's for. - n = length(n)//length of the entire word - var/p = null - p = 1//1 is the start of any word - while(p <= n)//while P, which starts at 1 is less or equal to N which is the length. - var/n_letter = copytext(te, p, p + 1)//copies text from a certain distance. In this case, only one letter at a time. - if (prob(80) && (ckey(n_letter) in list("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"))) - if (prob(10)) - n_letter = text("[n_letter]-[n_letter]-[n_letter]-[n_letter]")//replaces the current letter with this instead. - else - if (prob(20)) - n_letter = text("[n_letter]-[n_letter]-[n_letter]") - else - if (prob(5)) - n_letter = null - else - n_letter = text("[n_letter]-[n_letter]") - t = text("[t][n_letter]")//since the above is ran through for each letter, the text just adds up back to the original word. - p++//for each letter p is increased to find where the next letter will be. - return copytext(sanitize(t),1,MAX_MESSAGE_LEN) - -/proc/derpspeech(message, stuttering) - message = replacetext(message, " am ", " ") - message = replacetext(message, " is ", " ") - message = replacetext(message, " are ", " ") - message = replacetext(message, "you", "u") - message = replacetext(message, "help", "halp") - message = replacetext(message, "grief", "grife") - message = replacetext(message, "space", "spess") - message = replacetext(message, "carp", "crap") - message = replacetext(message, "reason", "raisin") - if(prob(50)) - message = uppertext(message) - message += "[stutter(pick("!", "!!", "!!!"))]" - if(!stuttering && prob(15)) - message = stutter(message) - return message - - -/proc/Gibberish(t, p)//t is the inputted message, and any value higher than 70 for p will cause letters to be replaced instead of added - /* Turn text into complete gibberish! */ - var/returntext = "" - for(var/i = 1, i <= length(t), i++) - - var/letter = copytext(t, i, i+1) - if(prob(50)) - if(p >= 70) - letter = "" - - for(var/j = 1, j <= rand(0, 2), j++) - letter += pick("#","@","*","&","%","$","/", "<", ">", ";","*","*","*","*","*","*","*") - - returntext += letter - - return returntext - - -/proc/ninjaspeak(n) //NINJACODE -/* -The difference with stutter is that this proc can stutter more than 1 letter -The issue here is that anything that does not have a space is treated as one word (in many instances). For instance, "LOOKING," is a word, including the comma. -It's fairly easy to fix if dealing with single letters but not so much with compounds of letters./N -*/ - var/te = html_decode(n) - var/t = "" - n = length(n) - var/p = 1 - while(p <= n) - var/n_letter - var/n_mod = rand(1,4) - if(p+n_mod>n+1) - n_letter = copytext(te, p, n+1) - else - n_letter = copytext(te, p, p+n_mod) - if (prob(50)) - if (prob(30)) - n_letter = text("[n_letter]-[n_letter]-[n_letter]") - else - n_letter = text("[n_letter]-[n_letter]") - else - n_letter = text("[n_letter]") - t = text("[t][n_letter]") - p=p+n_mod - return copytext(sanitize(t),1,MAX_MESSAGE_LEN) - - -/proc/shake_camera(mob/M, duration, strength=1) - if(!M || !M.client || duration <= 0) - return - var/client/C = M.client - var/oldx = C.pixel_x - var/oldy = C.pixel_y - var/max = strength*world.icon_size - var/min = -(strength*world.icon_size) - - for(var/i in 0 to duration-1) - if (i == 0) - animate(C, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) - else - animate(pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) - animate(pixel_x=oldx, pixel_y=oldy, time=1) - - - -/proc/findname(msg) - if(!istext(msg)) - msg = "[msg]" - for(var/mob/M in GLOB.mob_list) - if(M.real_name == msg) - return M - return 0 - -/mob/proc/first_name() - var/static/regex/firstname = new("^\[^\\s-\]+") //First word before whitespace or "-" - firstname.Find(real_name) - return firstname.match - -/mob/proc/abiotic(full_body = 0) - for(var/obj/item/I in held_items) - if(!(I.flags & NODROP)) - return 1 - return 0 - -//change a mob's act-intent. Input the intent as a string such as "help" or use "right"/"left -/mob/verb/a_intent_change(input as text) - set name = "a-intent" - set hidden = 1 - - if(!possible_a_intents || !possible_a_intents.len) - return - - if(input in possible_a_intents) - a_intent = input - else - var/current_intent = possible_a_intents.Find(a_intent) - - if(!current_intent) - // Failsafe. Just in case some badmin was playing with VV. - current_intent = 1 - - if(input == INTENT_HOTKEY_RIGHT) - current_intent += 1 - if(input == INTENT_HOTKEY_LEFT) - current_intent -= 1 - - // Handle looping - if(current_intent < 1) - current_intent = possible_a_intents.len - if(current_intent > possible_a_intents.len) - current_intent = 1 - - a_intent = possible_a_intents[current_intent] - - if(hud_used && hud_used.action_intent) - hud_used.action_intent.icon_state = "[a_intent]" - - -/proc/is_blind(A) - if(ismob(A)) - var/mob/B = A - return B.eye_blind - return 0 - -/proc/is_special_character(mob/M) // returns 1 for special characters and 2 for heroes of gamemode //moved out of admins.dm because things other than admin procs were calling this. + +// see _DEFINES/is_helpers.dm for mob type checks + +/mob/proc/isloyal() //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them + return 0 + +/mob/living/carbon/isloyal() + for(var/obj/item/weapon/implant/mindshield/L in implants) + return 1 + + +/proc/check_zone(zone) + if(!zone) + return "chest" + switch(zone) + if("eyes") + zone = "head" + if("mouth") + zone = "head" + if("l_hand") + zone = "l_arm" + if("r_hand") + zone = "r_arm" + if("l_foot") + zone = "l_leg" + if("r_foot") + zone = "r_leg" + if("groin") + zone = "chest" + return zone + + +/proc/ran_zone(zone, probability = 80) + + zone = check_zone(zone) + + if(prob(probability)) + return zone + + var/t = rand(1, 18) // randomly pick a different zone, or maybe the same one + switch(t) + if(1) + return "head" + if(2) + return "chest" + if(3 to 6) + return "l_arm" + if(7 to 10) + return "r_arm" + if(11 to 14) + return "l_leg" + if(15 to 18) + return "r_leg" + + return zone + +/proc/above_neck(zone) + var/list/zones = list("head", "mouth", "eyes") + if(zones.Find(zone)) + return 1 + else + return 0 + +/proc/stars(n, pr) + n = html_encode(n) + if (pr == null) + pr = 25 + if (pr <= 0) + return null + else + if (pr >= 100) + return n + var/te = n + var/t = "" + n = length(n) + var/p = null + p = 1 + while(p <= n) + if ((copytext(te, p, p + 1) == " " || prob(pr))) + t = text("[][]", t, copytext(te, p, p + 1)) + else + t = text("[]*", t) + p++ + return sanitize(t) + +/proc/slur(n) + var/phrase = html_decode(n) + var/leng = lentext(phrase) + var/counter=lentext(phrase) + var/newphrase="" + var/newletter="" + while(counter>=1) + newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2) + if(rand(1,3)==3) + if(lowertext(newletter)=="o") + newletter="u" + if(lowertext(newletter)=="s") + newletter="ch" + if(lowertext(newletter)=="a") + newletter="ah" + if(lowertext(newletter)=="u") + newletter="oo" + if(lowertext(newletter)=="c") + newletter="k" + if(rand(1,20)==20) + if(newletter==" ") + newletter="...huuuhhh..." + if(newletter==".") + newletter=" *BURP*." + switch(rand(1,20)) + if(1) + newletter+="'" + if(10) + newletter+="[newletter]" + if(20) + newletter+="[newletter][newletter]" + newphrase+="[newletter]";counter-=1 + return newphrase + + +/proc/cultslur(n) // Inflicted on victims of a stun talisman + var/phrase = html_decode(n) + var/leng = lentext(phrase) + var/counter=lentext(phrase) + var/newphrase="" + var/newletter="" + while(counter>=1) + newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2) + if(rand(1,2)==2) + if(lowertext(newletter)=="o") + newletter="u" + if(lowertext(newletter)=="t") + newletter="ch" + if(lowertext(newletter)=="a") + newletter="ah" + if(lowertext(newletter)=="u") + newletter="oo" + if(lowertext(newletter)=="c") + newletter=" NAR " + if(lowertext(newletter)=="s") + newletter=" SIE " + if(rand(1,4)==4) + if(newletter==" ") + newletter=" no hope... " + if(newletter=="H") + newletter=" IT COMES... " + + switch(rand(1,15)) + if(1) + newletter="'" + if(2) + newletter+="agn" + if(3) + newletter="fth" + if(4) + newletter="nglu" + if(5) + newletter="glor" + newphrase+="[newletter]";counter-=1 + return newphrase + + +/proc/stutter(n) + var/te = html_decode(n) + var/t = ""//placed before the message. Not really sure what it's for. + n = length(n)//length of the entire word + var/p = null + p = 1//1 is the start of any word + while(p <= n)//while P, which starts at 1 is less or equal to N which is the length. + var/n_letter = copytext(te, p, p + 1)//copies text from a certain distance. In this case, only one letter at a time. + if (prob(80) && (ckey(n_letter) in list("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"))) + if (prob(10)) + n_letter = text("[n_letter]-[n_letter]-[n_letter]-[n_letter]")//replaces the current letter with this instead. + else + if (prob(20)) + n_letter = text("[n_letter]-[n_letter]-[n_letter]") + else + if (prob(5)) + n_letter = null + else + n_letter = text("[n_letter]-[n_letter]") + t = text("[t][n_letter]")//since the above is ran through for each letter, the text just adds up back to the original word. + p++//for each letter p is increased to find where the next letter will be. + return copytext(sanitize(t),1,MAX_MESSAGE_LEN) + +/proc/derpspeech(message, stuttering) + message = replacetext(message, " am ", " ") + message = replacetext(message, " is ", " ") + message = replacetext(message, " are ", " ") + message = replacetext(message, "you", "u") + message = replacetext(message, "help", "halp") + message = replacetext(message, "grief", "grife") + message = replacetext(message, "space", "spess") + message = replacetext(message, "carp", "crap") + message = replacetext(message, "reason", "raisin") + if(prob(50)) + message = uppertext(message) + message += "[stutter(pick("!", "!!", "!!!"))]" + if(!stuttering && prob(15)) + message = stutter(message) + return message + + +/proc/Gibberish(t, p)//t is the inputted message, and any value higher than 70 for p will cause letters to be replaced instead of added + /* Turn text into complete gibberish! */ + var/returntext = "" + for(var/i = 1, i <= length(t), i++) + + var/letter = copytext(t, i, i+1) + if(prob(50)) + if(p >= 70) + letter = "" + + for(var/j = 1, j <= rand(0, 2), j++) + letter += pick("#","@","*","&","%","$","/", "<", ">", ";","*","*","*","*","*","*","*") + + returntext += letter + + return returntext + + +/proc/ninjaspeak(n) //NINJACODE +/* +The difference with stutter is that this proc can stutter more than 1 letter +The issue here is that anything that does not have a space is treated as one word (in many instances). For instance, "LOOKING," is a word, including the comma. +It's fairly easy to fix if dealing with single letters but not so much with compounds of letters./N +*/ + var/te = html_decode(n) + var/t = "" + n = length(n) + var/p = 1 + while(p <= n) + var/n_letter + var/n_mod = rand(1,4) + if(p+n_mod>n+1) + n_letter = copytext(te, p, n+1) + else + n_letter = copytext(te, p, p+n_mod) + if (prob(50)) + if (prob(30)) + n_letter = text("[n_letter]-[n_letter]-[n_letter]") + else + n_letter = text("[n_letter]-[n_letter]") + else + n_letter = text("[n_letter]") + t = text("[t][n_letter]") + p=p+n_mod + return copytext(sanitize(t),1,MAX_MESSAGE_LEN) + + +/proc/shake_camera(mob/M, duration, strength=1) + if(!M || !M.client || duration <= 0) + return + var/client/C = M.client + var/oldx = C.pixel_x + var/oldy = C.pixel_y + var/max = strength*world.icon_size + var/min = -(strength*world.icon_size) + + for(var/i in 0 to duration-1) + if (i == 0) + animate(C, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) + else + animate(pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) + animate(pixel_x=oldx, pixel_y=oldy, time=1) + + + +/proc/findname(msg) + if(!istext(msg)) + msg = "[msg]" + for(var/mob/M in GLOB.mob_list) + if(M.real_name == msg) + return M + return 0 + +/mob/proc/first_name() + var/static/regex/firstname = new("^\[^\\s-\]+") //First word before whitespace or "-" + firstname.Find(real_name) + return firstname.match + +/mob/proc/abiotic(full_body = 0) + for(var/obj/item/I in held_items) + if(!(I.flags & NODROP)) + return 1 + return 0 + +//change a mob's act-intent. Input the intent as a string such as "help" or use "right"/"left +/mob/verb/a_intent_change(input as text) + set name = "a-intent" + set hidden = 1 + + if(!possible_a_intents || !possible_a_intents.len) + return + + if(input in possible_a_intents) + a_intent = input + else + var/current_intent = possible_a_intents.Find(a_intent) + + if(!current_intent) + // Failsafe. Just in case some badmin was playing with VV. + current_intent = 1 + + if(input == INTENT_HOTKEY_RIGHT) + current_intent += 1 + if(input == INTENT_HOTKEY_LEFT) + current_intent -= 1 + + // Handle looping + if(current_intent < 1) + current_intent = possible_a_intents.len + if(current_intent > possible_a_intents.len) + current_intent = 1 + + a_intent = possible_a_intents[current_intent] + + if(hud_used && hud_used.action_intent) + hud_used.action_intent.icon_state = "[a_intent]" + + +/proc/is_blind(A) + if(ismob(A)) + var/mob/B = A + return B.eye_blind + return 0 + +/proc/is_special_character(mob/M) // returns 1 for special characters and 2 for heroes of gamemode //moved out of admins.dm because things other than admin procs were calling this. if(!SSticker.HasRoundStarted()) - return 0 - if(!istype(M)) - return 0 - if(issilicon(M)) - if(iscyborg(M)) //For cyborgs, returns 1 if the cyborg has a law 0 and special_role. Returns 0 if the borg is merely slaved to an AI traitor. - var/mob/living/silicon/robot/R = M - if(R.mind && R.mind.special_role) - if(R.laws && R.laws.zeroth && R.syndicate) - if(R.connected_ai) - if(is_special_character(R.connected_ai) && R.connected_ai.laws && (R.connected_ai.laws.zeroth_borg == R.laws.zeroth || R.connected_ai.laws.zeroth == R.laws.zeroth)) - return 0 //AI is the real traitor here, so the borg itself is not a traitor - return 1 //Slaved but also a traitor - return 1 //Unslaved, traitor - else if(isAI(M)) - var/mob/living/silicon/ai/A = M - if(A.laws && A.laws.zeroth && A.mind && A.mind.special_role) - return 1 - return 0 - if(M.mind && M.mind.special_role)//If they have a mind and special role, they are some type of traitor or antagonist. - switch(SSticker.mode.config_tag) - if("revolution") - if((M.mind in SSticker.mode.head_revolutionaries) || (M.mind in SSticker.mode.revolutionaries)) - return 2 - if("cult") - if(M.mind in SSticker.mode.cult) - return 2 - if("nuclear") - if(M.mind in SSticker.mode.syndicates) - return 2 - if("changeling") - if(M.mind in SSticker.mode.changelings) - return 2 - if("wizard") - if(M.mind in SSticker.mode.wizards) - return 2 - if("apprentice") - if(M.mind in SSticker.mode.apprentices) - return 2 - if("monkey") - if(M.viruses && (locate(/datum/disease/transformation/jungle_fever) in M.viruses)) - return 2 - if("abductor") - if(M.mind in SSticker.mode.abductors) - return 2 - return 1 - return 0 - -/mob/proc/reagent_check(datum/reagent/R) // utilized in the species code - return 1 - + return 0 + if(!istype(M)) + return 0 + if(issilicon(M)) + if(iscyborg(M)) //For cyborgs, returns 1 if the cyborg has a law 0 and special_role. Returns 0 if the borg is merely slaved to an AI traitor. + var/mob/living/silicon/robot/R = M + if(R.mind && R.mind.special_role) + if(R.laws && R.laws.zeroth && R.syndicate) + if(R.connected_ai) + if(is_special_character(R.connected_ai) && R.connected_ai.laws && (R.connected_ai.laws.zeroth_borg == R.laws.zeroth || R.connected_ai.laws.zeroth == R.laws.zeroth)) + return 0 //AI is the real traitor here, so the borg itself is not a traitor + return 1 //Slaved but also a traitor + return 1 //Unslaved, traitor + else if(isAI(M)) + var/mob/living/silicon/ai/A = M + if(A.laws && A.laws.zeroth && A.mind && A.mind.special_role) + return 1 + return 0 + if(M.mind && M.mind.special_role)//If they have a mind and special role, they are some type of traitor or antagonist. + switch(SSticker.mode.config_tag) + if("revolution") + if((M.mind in SSticker.mode.head_revolutionaries) || (M.mind in SSticker.mode.revolutionaries)) + return 2 + if("cult") + if(M.mind in SSticker.mode.cult) + return 2 + if("nuclear") + if(M.mind in SSticker.mode.syndicates) + return 2 + if("changeling") + if(M.mind in SSticker.mode.changelings) + return 2 + if("wizard") + if(M.mind in SSticker.mode.wizards) + return 2 + if("apprentice") + if(M.mind in SSticker.mode.apprentices) + return 2 + if("monkey") + if(M.viruses && (locate(/datum/disease/transformation/jungle_fever) in M.viruses)) + return 2 + if("abductor") + if(M.mind in SSticker.mode.abductors) + return 2 + return 1 + return 0 + +/mob/proc/reagent_check(datum/reagent/R) // utilized in the species code + return 1 + /proc/notify_ghosts(var/message, var/ghost_sound = null, var/enter_link = null, var/atom/source = null, var/mutable_appearance/alert_overlay = null, var/action = NOTIFY_JUMP, flashwindow = TRUE) //Easy notification of ghosts. - if(SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load - return - for(var/mob/dead/observer/O in GLOB.player_list) - if(O.client) - to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""]") - if(ghost_sound) - O << sound(ghost_sound) - if(flashwindow) - window_flash(O.client) - if(source) - var/obj/screen/alert/notify_action/A = O.throw_alert("\ref[source]_notify_action", /obj/screen/alert/notify_action) - if(A) - if(O.client.prefs && O.client.prefs.UI_style) - A.icon = ui_style2icon(O.client.prefs.UI_style) - A.desc = message - A.action = action - A.target = source - if(!alert_overlay) + if(SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load + return + for(var/mob/dead/observer/O in GLOB.player_list) + if(O.client) + to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""]") + if(ghost_sound) + O << sound(ghost_sound) + if(flashwindow) + window_flash(O.client) + if(source) + var/obj/screen/alert/notify_action/A = O.throw_alert("\ref[source]_notify_action", /obj/screen/alert/notify_action) + if(A) + if(O.client.prefs && O.client.prefs.UI_style) + A.icon = ui_style2icon(O.client.prefs.UI_style) + A.desc = message + A.action = action + A.target = source + if(!alert_overlay) alert_overlay = new(source) alert_overlay.layer = FLOAT_LAYER alert_overlay.plane = FLOAT_PLANE A.add_overlay(alert_overlay) - -/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) - var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - if(affecting && affecting.status == BODYPART_ROBOTIC) - var/dam //changes repair text based on how much brute/burn was supplied - if(brute_heal > burn_heal) - dam = 1 - else - dam = 0 - if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) - if(affecting.heal_damage(brute_heal, burn_heal, 1, 0)) - H.update_damage_overlays() + +/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) + var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) + if(affecting && affecting.status == BODYPART_ROBOTIC) + var/dam //changes repair text based on how much brute/burn was supplied + if(brute_heal > burn_heal) + dam = 1 + else + dam = 0 + if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) + if(affecting.heal_damage(brute_heal, burn_heal, 1, 0)) + H.update_damage_overlays() user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \ "You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].") - return 1 //successful heal - else - to_chat(user, "[affecting] is already in good condition!") - - -/proc/IsAdminGhost(var/mob/user) - if(!user) //Are they a mob? Auto interface updates call this with a null src - return - if(!user.client) // Do they have a client? - return - if(!isobserver(user)) // Are they a ghost? - return - if(!check_rights_for(user.client, R_ADMIN)) // Are they allowed? - return - if(!user.client.AI_Interact) // Do they have it enabled? - return - return TRUE - -/proc/offer_control(mob/M) - to_chat(M, "Control of your mob has been offered to dead players.") - if(usr) - log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.") - message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts") - var/poll_message = "Do you want to play as [M.real_name]?" - if(M.mind && M.mind.assigned_role) - poll_message = "[poll_message] Job:[M.mind.assigned_role]." - if(M.mind && M.mind.special_role) - poll_message = "[poll_message] Status:[M.mind.special_role]." - var/list/mob/dead/observer/candidates = pollCandidatesForMob(poll_message, "pAI", null, FALSE, 100, M) - var/mob/dead/observer/theghost = null - - if(candidates.len) - theghost = pick(candidates) - to_chat(M, "Your mob has been taken over by a ghost!") - message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(M)])") - M.ghostize(0) - M.key = theghost.key - return TRUE - else - to_chat(M, "There were no ghosts willing to take control.") - message_admins("No ghosts were willing to take control of [key_name_admin(M)])") - return FALSE - -/mob/proc/is_flying(mob/M = src) - if(M.movement_type & FLYING) - return 1 - else - return 0 - -/mob/proc/click_random_mob() - var/list/nearby_mobs = list() - for(var/mob/living/L in range(1, src)) - if(L!=src) - nearby_mobs |= L - if(nearby_mobs.len) - var/mob/living/T = pick(nearby_mobs) - ClickOn(T) - -/mob/proc/log_message(message, message_type) + return 1 //successful heal + else + to_chat(user, "[affecting] is already in good condition!") + + +/proc/IsAdminGhost(var/mob/user) + if(!user) //Are they a mob? Auto interface updates call this with a null src + return + if(!user.client) // Do they have a client? + return + if(!isobserver(user)) // Are they a ghost? + return + if(!check_rights_for(user.client, R_ADMIN)) // Are they allowed? + return + if(!user.client.AI_Interact) // Do they have it enabled? + return + return TRUE + +/proc/offer_control(mob/M) + to_chat(M, "Control of your mob has been offered to dead players.") + if(usr) + log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.") + message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts") + var/poll_message = "Do you want to play as [M.real_name]?" + if(M.mind && M.mind.assigned_role) + poll_message = "[poll_message] Job:[M.mind.assigned_role]." + if(M.mind && M.mind.special_role) + poll_message = "[poll_message] Status:[M.mind.special_role]." + var/list/mob/dead/observer/candidates = pollCandidatesForMob(poll_message, "pAI", null, FALSE, 100, M) + var/mob/dead/observer/theghost = null + + if(candidates.len) + theghost = pick(candidates) + to_chat(M, "Your mob has been taken over by a ghost!") + message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(M)])") + M.ghostize(0) + M.key = theghost.key + return TRUE + else + to_chat(M, "There were no ghosts willing to take control.") + message_admins("No ghosts were willing to take control of [key_name_admin(M)])") + return FALSE + +/mob/proc/is_flying(mob/M = src) + if(M.movement_type & FLYING) + return 1 + else + return 0 + +/mob/proc/click_random_mob() + var/list/nearby_mobs = list() + for(var/mob/living/L in range(1, src)) + if(L!=src) + nearby_mobs |= L + if(nearby_mobs.len) + var/mob/living/T = pick(nearby_mobs) + ClickOn(T) + +/mob/proc/log_message(message, message_type) if(!LAZYLEN(message) || !message_type) - return - - if(!islist(logging[message_type])) - logging[message_type] = list() - - var/list/timestamped_message = list("[LAZYLEN(logging[message_type]) + 1]\[[time_stamp()]\] [key_name(src)]" = message) - - logging[message_type] += timestamped_message + return + + if(!islist(logging[message_type])) + logging[message_type] = list() + + var/list/timestamped_message = list("[LAZYLEN(logging[message_type]) + 1]\[[time_stamp()]\] [key_name(src)]" = message) + + logging[message_type] += timestamped_message /mob/proc/can_hear() . = TRUE diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 00be22e99c..765b7fb837 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -1,452 +1,452 @@ -/mob/CanPass(atom/movable/mover, turf/target, height=0) - if(height==0) - return 1 - if(istype(mover, /obj/item/projectile) || mover.throwing) - return (!density || lying) - if(mover.checkpass(PASSMOB)) - return 1 - if(buckled == mover) - return 1 - if(ismob(mover)) - if (mover in buckled_mobs) - return 1 - return (!mover.density || !density || lying) - - -//The byond version of these verbs wait for the next tick before acting. -// instant verbs however can run mid tick or even during the time between ticks. -/client/verb/moveup() - set name = ".moveup" - set instant = 1 - Move(get_step(mob, NORTH), NORTH) - -/client/verb/movedown() - set name = ".movedown" - set instant = 1 - Move(get_step(mob, SOUTH), SOUTH) - -/client/verb/moveright() - set name = ".moveright" - set instant = 1 - Move(get_step(mob, EAST), EAST) - -/client/verb/moveleft() - set name = ".moveleft" - set instant = 1 - Move(get_step(mob, WEST), WEST) - -/client/Northeast() - swap_hand() - return - - -/client/Southeast() - attack_self() - return - - -/client/Southwest() - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - C.toggle_throw_mode() - else - to_chat(usr, "This mob type cannot throw items.") - return - - -/client/Northwest() - if(!usr.get_active_held_item()) - to_chat(usr, "You have nothing to drop in your hand!") - return - usr.drop_item() - -//This gets called when you press the delete button. -/client/verb/delete_key_pressed() - set hidden = 1 - - if(!usr.pulling) - to_chat(usr, "You are not pulling anything.") - return - usr.stop_pulling() - -/client/verb/swap_hand() - set category = "IC" - set name = "Swap hands" - - if(mob) - mob.swap_hand() - -/client/verb/attack_self() - set hidden = 1 - if(mob) - mob.mode() - return - - -/client/verb/drop_item() - set hidden = 1 - if(!iscyborg(mob)) - mob.drop_item_v() - return - - -/client/Center() - if(isobj(mob.loc)) - var/obj/O = mob.loc - if(mob.canmove) - return O.relaymove(mob, 0) - return - - -/client/proc/Move_object(direct) - if(mob && mob.control_object) - if(mob.control_object.density) - step(mob.control_object,direct) - if(!mob.control_object) - return - mob.control_object.setDir(direct) - else - mob.control_object.loc = get_step(mob.control_object,direct) - return - +/mob/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) + return 1 + if(istype(mover, /obj/item/projectile) || mover.throwing) + return (!density || lying) + if(mover.checkpass(PASSMOB)) + return 1 + if(buckled == mover) + return 1 + if(ismob(mover)) + if (mover in buckled_mobs) + return 1 + return (!mover.density || !density || lying) + + +//The byond version of these verbs wait for the next tick before acting. +// instant verbs however can run mid tick or even during the time between ticks. +/client/verb/moveup() + set name = ".moveup" + set instant = 1 + Move(get_step(mob, NORTH), NORTH) + +/client/verb/movedown() + set name = ".movedown" + set instant = 1 + Move(get_step(mob, SOUTH), SOUTH) + +/client/verb/moveright() + set name = ".moveright" + set instant = 1 + Move(get_step(mob, EAST), EAST) + +/client/verb/moveleft() + set name = ".moveleft" + set instant = 1 + Move(get_step(mob, WEST), WEST) + +/client/Northeast() + swap_hand() + return + + +/client/Southeast() + attack_self() + return + + +/client/Southwest() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + C.toggle_throw_mode() + else + to_chat(usr, "This mob type cannot throw items.") + return + + +/client/Northwest() + if(!usr.get_active_held_item()) + to_chat(usr, "You have nothing to drop in your hand!") + return + usr.drop_item() + +//This gets called when you press the delete button. +/client/verb/delete_key_pressed() + set hidden = 1 + + if(!usr.pulling) + to_chat(usr, "You are not pulling anything.") + return + usr.stop_pulling() + +/client/verb/swap_hand() + set category = "IC" + set name = "Swap hands" + + if(mob) + mob.swap_hand() + +/client/verb/attack_self() + set hidden = 1 + if(mob) + mob.mode() + return + + +/client/verb/drop_item() + set hidden = 1 + if(!iscyborg(mob)) + mob.drop_item_v() + return + + +/client/Center() + if(isobj(mob.loc)) + var/obj/O = mob.loc + if(mob.canmove) + return O.relaymove(mob, 0) + return + + +/client/proc/Move_object(direct) + if(mob && mob.control_object) + if(mob.control_object.density) + step(mob.control_object,direct) + if(!mob.control_object) + return + mob.control_object.setDir(direct) + else + mob.control_object.loc = get_step(mob.control_object,direct) + return + #define MOVEMENT_DELAY_BUFFER 0.75 #define MOVEMENT_DELAY_BUFFER_DELTA 1.25 -/client/Move(n, direct) - if(world.time < move_delay) - return 0 +/client/Move(n, direct) + if(world.time < move_delay) + return 0 var/old_move_delay = move_delay - move_delay = world.time+world.tick_lag //this is here because Move() can now be called mutiple times per tick - if(!mob || !mob.loc) - return 0 - if(mob.notransform) - return 0 //This is sota the goto stop mobs from moving var - if(mob.control_object) - return Move_object(direct) - if(!isliving(mob)) - return mob.Move(n,direct) - if(mob.stat == DEAD) - mob.ghostize() - return 0 - if(moving) - return 0 - if(mob.force_moving) - return 0 - if(isliving(mob)) - var/mob/living/L = mob - if(L.incorporeal_move) //Move though walls - Process_Incorpmove(direct) - return 0 - - if(mob.remote_control) //we're controlling something, our movement is relayed to it - return mob.remote_control.relaymove(mob, direct) - - if(isAI(mob)) - return AIMove(n,direct,mob) - - if(Process_Grab()) //are we restrained by someone's grip? - return - - if(mob.buckled) //if we're buckled to something, tell it we moved. - return mob.buckled.relaymove(mob, direct) - - if(!mob.canmove) - return 0 - - if(isobj(mob.loc) || ismob(mob.loc)) //Inside an object, tell it we moved - var/atom/O = mob.loc - return O.relaymove(mob, direct) - - if(!mob.Process_Spacemove(direct)) - return 0 - - //We are now going to move - moving = 1 + move_delay = world.time+world.tick_lag //this is here because Move() can now be called mutiple times per tick + if(!mob || !mob.loc) + return 0 + if(mob.notransform) + return 0 //This is sota the goto stop mobs from moving var + if(mob.control_object) + return Move_object(direct) + if(!isliving(mob)) + return mob.Move(n,direct) + if(mob.stat == DEAD) + mob.ghostize() + return 0 + if(moving) + return 0 + if(mob.force_moving) + return 0 + if(isliving(mob)) + var/mob/living/L = mob + if(L.incorporeal_move) //Move though walls + Process_Incorpmove(direct) + return 0 + + if(mob.remote_control) //we're controlling something, our movement is relayed to it + return mob.remote_control.relaymove(mob, direct) + + if(isAI(mob)) + return AIMove(n,direct,mob) + + if(Process_Grab()) //are we restrained by someone's grip? + return + + if(mob.buckled) //if we're buckled to something, tell it we moved. + return mob.buckled.relaymove(mob, direct) + + if(!mob.canmove) + return 0 + + if(isobj(mob.loc) || ismob(mob.loc)) //Inside an object, tell it we moved + var/atom/O = mob.loc + return O.relaymove(mob, direct) + + if(!mob.Process_Spacemove(direct)) + return 0 + + //We are now going to move + moving = 1 var/delay = mob.movement_delay() if (old_move_delay + (delay*MOVEMENT_DELAY_BUFFER_DELTA) + MOVEMENT_DELAY_BUFFER > world.time) move_delay = old_move_delay + delay else move_delay = delay + world.time - - if(mob.confused) - if(mob.confused > 40) - step(mob, pick(GLOB.cardinal)) - else if(prob(mob.confused * 1.5)) - step(mob, angle2dir(dir2angle(direct) + pick(90, -90))) - else if(prob(mob.confused * 3)) - step(mob, angle2dir(dir2angle(direct) + pick(45, -45))) - else - step(mob, direct) - else - . = ..() - - moving = 0 - if(mob && .) - if(mob.throwing) - mob.throwing.finalize(FALSE) - - return . - -/mob/Moved(oldLoc, dir) - . = ..() - for(var/obj/O in contents) - O.on_mob_move(dir, src, oldLoc) - -/mob/setDir(newDir) - . = ..() - for(var/obj/O in contents) - O.on_mob_turn(newDir, src) - - -///Process_Grab() -///Called by client/Move() -///Checks to see if you are being grabbed and if so attemps to break it -/client/proc/Process_Grab() - if(mob.pulledby) - if(mob.incapacitated(ignore_restraints = 1)) - move_delay = world.time + 10 - return 1 - else if(mob.restrained(ignore_grab = 1)) - move_delay = world.time + 10 - to_chat(src, "You're restrained! You can't move!") - return 1 - else - return mob.resist_grab(1) - - -///Process_Incorpmove -///Called by client/Move() -///Allows mobs to run though walls -/client/proc/Process_Incorpmove(direct) - var/turf/mobloc = get_turf(mob) - if(!isliving(mob)) - return - var/mob/living/L = mob - switch(L.incorporeal_move) - if(INCORPOREAL_MOVE_BASIC) - L.loc = get_step(L, direct) - L.setDir(direct) - if(INCORPOREAL_MOVE_SHADOW) - if(prob(50)) - var/locx - var/locy - switch(direct) - if(NORTH) - locx = mobloc.x - locy = (mobloc.y+2) - if(locy>world.maxy) - return - if(SOUTH) - locx = mobloc.x - locy = (mobloc.y-2) - if(locy<1) - return - if(EAST) - locy = mobloc.y - locx = (mobloc.x+2) - if(locx>world.maxx) - return - if(WEST) - locy = mobloc.y - locx = (mobloc.x-2) - if(locx<1) - return - else - return - L.loc = locate(locx,locy,mobloc.z) - var/limit = 2//For only two trailing shadows. - for(var/turf/T in getline(mobloc, L.loc)) - new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) - limit-- - if(limit<=0) - break - else - new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir) - L.loc = get_step(L, direct) - L.setDir(direct) - if(INCORPOREAL_MOVE_JAUNT) //Incorporeal move, but blocked by holy-watered tiles and salt piles. - var/turf/open/floor/stepTurf = get_step(L, direct) - for(var/obj/effect/decal/cleanable/salt/S in stepTurf) - to_chat(L, "[S] bars your passage!") - if(isrevenant(L)) - var/mob/living/simple_animal/revenant/R = L - R.reveal(20) - R.stun(20) - return - if(stepTurf.flags & NOJAUNT) - to_chat(L, "Holy energies block your path.") - else - L.loc = get_step(L, direct) - L.setDir(direct) - return 1 - - -///Process_Spacemove -///Called by /client/Move() -///For moving in space -///Return 1 for movement 0 for none -/mob/Process_Spacemove(movement_dir = 0) - if(..()) - return 1 - var/atom/movable/backup = get_spacemove_backup() - if(backup) - if(istype(backup) && movement_dir && !backup.anchored) - if(backup.newtonian_move(turn(movement_dir, 180))) //You're pushing off something movable, so it moves - to_chat(src, "You push off of [backup] to propel yourself.") - return 1 - return 0 - -/mob/get_spacemove_backup() - for(var/A in orange(1, get_turf(src))) - if(isarea(A)) - continue - else if(isturf(A)) - var/turf/turf = A - if(isspaceturf(turf)) - continue - if(!turf.density && !mob_negates_gravity()) - continue - return A - else - var/atom/movable/AM = A - if(AM == buckled) - continue - if(ismob(AM)) - var/mob/M = AM - if(M.buckled) - continue - if(!AM.CanPass(src) || AM.density) - if(AM.anchored) - return AM - if(pulling == AM) - continue - . = AM - -/mob/proc/mob_has_gravity() - return has_gravity() - -/mob/proc/mob_negates_gravity() - return 0 - -//moves the mob/object we're pulling -/mob/proc/Move_Pulled(atom/A) - if(!pulling) - return - if(pulling.anchored || !pulling.Adjacent(src)) - stop_pulling() - return - if(isliving(pulling)) - var/mob/living/L = pulling - if(L.buckled && L.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it - stop_pulling() - return - if(A == loc && pulling.density) - return - if(!Process_Spacemove(get_dir(pulling.loc, A))) - return - step(pulling, get_dir(pulling.loc, A)) - - -/mob/proc/slip(s_amount, w_amount, obj/O, lube) - return - -/mob/proc/update_gravity() - return - -//bodypart selection - Cyberboss -//8 toggles through head - eyes - mouth -//4: r-arm 5: chest 6: l-arm -//1: r-leg 2: groin 3: l-leg - -/client/proc/check_has_body_select() - return mob && mob.hud_used && mob.hud_used.zone_select && istype(mob.hud_used.zone_select, /obj/screen/zone_sel) - -/client/verb/body_toggle_head() - set name = "body-toggle-head" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/next_in_line - switch(mob.zone_selected) - if("head") - next_in_line = "eyes" - if("eyes") - next_in_line = "mouth" - else - next_in_line = "head" - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone(next_in_line, mob) - -/client/verb/body_r_arm() - set name = "body-r-arm" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("r_arm", mob) - -/client/verb/body_chest() - set name = "body-chest" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("chest", mob) - -/client/verb/body_l_arm() - set name = "body-l-arm" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("l_arm", mob) - -/client/verb/body_r_leg() - set name = "body-r-leg" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("r_leg", mob) - -/client/verb/body_groin() - set name = "body-groin" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("groin", mob) - -/client/verb/body_l_leg() - set name = "body-l-leg" - set hidden = 1 - - if(!check_has_body_select()) - return - - var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("l_leg", mob) - -/client/verb/toggle_walk_run() - set name = "toggle-walk-run" - set hidden = TRUE - set instant = TRUE - if(mob) - mob.toggle_move_intent() - -/mob/proc/toggle_move_intent() - if(hud_used && hud_used.static_inventory) - for(var/obj/screen/mov_intent/selector in hud_used.static_inventory) - selector.toggle(src) + + if(mob.confused) + if(mob.confused > 40) + step(mob, pick(GLOB.cardinal)) + else if(prob(mob.confused * 1.5)) + step(mob, angle2dir(dir2angle(direct) + pick(90, -90))) + else if(prob(mob.confused * 3)) + step(mob, angle2dir(dir2angle(direct) + pick(45, -45))) + else + step(mob, direct) + else + . = ..() + + moving = 0 + if(mob && .) + if(mob.throwing) + mob.throwing.finalize(FALSE) + + return . + +/mob/Moved(oldLoc, dir) + . = ..() + for(var/obj/O in contents) + O.on_mob_move(dir, src, oldLoc) + +/mob/setDir(newDir) + . = ..() + for(var/obj/O in contents) + O.on_mob_turn(newDir, src) + + +///Process_Grab() +///Called by client/Move() +///Checks to see if you are being grabbed and if so attemps to break it +/client/proc/Process_Grab() + if(mob.pulledby) + if(mob.incapacitated(ignore_restraints = 1)) + move_delay = world.time + 10 + return 1 + else if(mob.restrained(ignore_grab = 1)) + move_delay = world.time + 10 + to_chat(src, "You're restrained! You can't move!") + return 1 + else + return mob.resist_grab(1) + + +///Process_Incorpmove +///Called by client/Move() +///Allows mobs to run though walls +/client/proc/Process_Incorpmove(direct) + var/turf/mobloc = get_turf(mob) + if(!isliving(mob)) + return + var/mob/living/L = mob + switch(L.incorporeal_move) + if(INCORPOREAL_MOVE_BASIC) + L.loc = get_step(L, direct) + L.setDir(direct) + if(INCORPOREAL_MOVE_SHADOW) + if(prob(50)) + var/locx + var/locy + switch(direct) + if(NORTH) + locx = mobloc.x + locy = (mobloc.y+2) + if(locy>world.maxy) + return + if(SOUTH) + locx = mobloc.x + locy = (mobloc.y-2) + if(locy<1) + return + if(EAST) + locy = mobloc.y + locx = (mobloc.x+2) + if(locx>world.maxx) + return + if(WEST) + locy = mobloc.y + locx = (mobloc.x-2) + if(locx<1) + return + else + return + L.loc = locate(locx,locy,mobloc.z) + var/limit = 2//For only two trailing shadows. + for(var/turf/T in getline(mobloc, L.loc)) + new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) + limit-- + if(limit<=0) + break + else + new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir) + L.loc = get_step(L, direct) + L.setDir(direct) + if(INCORPOREAL_MOVE_JAUNT) //Incorporeal move, but blocked by holy-watered tiles and salt piles. + var/turf/open/floor/stepTurf = get_step(L, direct) + for(var/obj/effect/decal/cleanable/salt/S in stepTurf) + to_chat(L, "[S] bars your passage!") + if(isrevenant(L)) + var/mob/living/simple_animal/revenant/R = L + R.reveal(20) + R.stun(20) + return + if(stepTurf.flags & NOJAUNT) + to_chat(L, "Holy energies block your path.") + else + L.loc = get_step(L, direct) + L.setDir(direct) + return 1 + + +///Process_Spacemove +///Called by /client/Move() +///For moving in space +///Return 1 for movement 0 for none +/mob/Process_Spacemove(movement_dir = 0) + if(..()) + return 1 + var/atom/movable/backup = get_spacemove_backup() + if(backup) + if(istype(backup) && movement_dir && !backup.anchored) + if(backup.newtonian_move(turn(movement_dir, 180))) //You're pushing off something movable, so it moves + to_chat(src, "You push off of [backup] to propel yourself.") + return 1 + return 0 + +/mob/get_spacemove_backup() + for(var/A in orange(1, get_turf(src))) + if(isarea(A)) + continue + else if(isturf(A)) + var/turf/turf = A + if(isspaceturf(turf)) + continue + if(!turf.density && !mob_negates_gravity()) + continue + return A + else + var/atom/movable/AM = A + if(AM == buckled) + continue + if(ismob(AM)) + var/mob/M = AM + if(M.buckled) + continue + if(!AM.CanPass(src) || AM.density) + if(AM.anchored) + return AM + if(pulling == AM) + continue + . = AM + +/mob/proc/mob_has_gravity() + return has_gravity() + +/mob/proc/mob_negates_gravity() + return 0 + +//moves the mob/object we're pulling +/mob/proc/Move_Pulled(atom/A) + if(!pulling) + return + if(pulling.anchored || !pulling.Adjacent(src)) + stop_pulling() + return + if(isliving(pulling)) + var/mob/living/L = pulling + if(L.buckled && L.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it + stop_pulling() + return + if(A == loc && pulling.density) + return + if(!Process_Spacemove(get_dir(pulling.loc, A))) + return + step(pulling, get_dir(pulling.loc, A)) + + +/mob/proc/slip(s_amount, w_amount, obj/O, lube) + return + +/mob/proc/update_gravity() + return + +//bodypart selection - Cyberboss +//8 toggles through head - eyes - mouth +//4: r-arm 5: chest 6: l-arm +//1: r-leg 2: groin 3: l-leg + +/client/proc/check_has_body_select() + return mob && mob.hud_used && mob.hud_used.zone_select && istype(mob.hud_used.zone_select, /obj/screen/zone_sel) + +/client/verb/body_toggle_head() + set name = "body-toggle-head" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/next_in_line + switch(mob.zone_selected) + if("head") + next_in_line = "eyes" + if("eyes") + next_in_line = "mouth" + else + next_in_line = "head" + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone(next_in_line, mob) + +/client/verb/body_r_arm() + set name = "body-r-arm" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("r_arm", mob) + +/client/verb/body_chest() + set name = "body-chest" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("chest", mob) + +/client/verb/body_l_arm() + set name = "body-l-arm" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("l_arm", mob) + +/client/verb/body_r_leg() + set name = "body-r-leg" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("r_leg", mob) + +/client/verb/body_groin() + set name = "body-groin" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("groin", mob) + +/client/verb/body_l_leg() + set name = "body-l-leg" + set hidden = 1 + + if(!check_has_body_select()) + return + + var/obj/screen/zone_sel/selector = mob.hud_used.zone_select + selector.set_selected_zone("l_leg", mob) + +/client/verb/toggle_walk_run() + set name = "toggle-walk-run" + set hidden = TRUE + set instant = TRUE + if(mob) + mob.toggle_move_intent() + +/mob/proc/toggle_move_intent() + if(hud_used && hud_used.static_inventory) + for(var/obj/screen/mov_intent/selector in hud_used.static_inventory) + selector.toggle(src) diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index f12e7d6d4e..f25a01b9fe 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -1,136 +1,121 @@ //Here are the procs used to modify status effects of a mob. -//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage, +//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, ear damage, // eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability. -/////////////////////////////////// STUNNED //////////////////////////////////// +/////////////////////////////////// STUN //////////////////////////////////// -/mob/proc/Stun(amount, updating = 1, ignore_canstun = 0) - if(status_flags & CANSTUN || ignore_canstun) - stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun - if(updating) - update_canmove() - return TRUE +/mob/proc/IsStun() //non-living mobs shouldn't be stunned + return FALSE -/mob/proc/SetStunned(amount, updating = 1, ignore_canstun = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" - if(status_flags & CANSTUN || ignore_canstun) - stunned = max(amount,0) - if(updating) - update_canmove() - return TRUE +/////////////////////////////////// KNOCKDOWN //////////////////////////////////// -/mob/proc/AdjustStunned(amount, updating = 1, ignore_canstun = 0) - if(status_flags & CANSTUN || ignore_canstun) - stunned = max(stunned + amount,0) - if(updating) - update_canmove() - return TRUE +/mob/proc/IsKnockdown() //non-living mobs shouldn't be knocked down + return FALSE -/////////////////////////////////// WEAKENED //////////////////////////////////// +/////////////////////////////////// UNCONSCIOUS //////////////////////////////////// -/mob/proc/Weaken(amount, updating = 1, ignore_canweaken = 0) - if((status_flags & CANWEAKEN) || ignore_canweaken) - weakened = max(max(weakened,amount),0) - if(updating) - update_canmove() //updates lying, canmove and icons - return TRUE +/mob/proc/IsUnconscious() //non-living mobs shouldn't be unconscious + return FALSE -/mob/proc/SetWeakened(amount, updating = 1, ignore_canweaken = 0) - if(status_flags & CANWEAKEN) - weakened = max(amount,0) - if(updating) - update_canmove() //updates lying, canmove and icons - return TRUE +/mob/living/IsUnconscious() //If we're unconscious + return has_status_effect(STATUS_EFFECT_UNCONSCIOUS) -/mob/proc/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0) - if((status_flags & CANWEAKEN) || ignore_canweaken) - weakened = max(weakened + amount,0) - if(updating) - update_canmove() //updates lying, canmove and icons - return TRUE +/mob/living/proc/AmountUnconscious() //How many deciseconds remain in our unconsciousness + var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious() + if(U) + return U.duration - world.time + return 0 -/////////////////////////////////// PARALYSIS //////////////////////////////////// +/mob/living/proc/Unconscious(amount, updating = TRUE, ignore_canunconscious = FALSE) //Can't go below remaining duration + if((status_flags & CANUNCONSCIOUS) || ignore_canunconscious) + var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious() + if(U) + U.duration = max(world.time + amount, U.duration) + else if(amount > 0) + U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount, updating) + return U -/mob/proc/Paralyse(amount, updating = 1, ignore_canparalyse = 0) - if(status_flags & CANPARALYSE || ignore_canparalyse) - var/old_paralysis = paralysis - paralysis = max(max(paralysis,amount),0) - if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) - if(updating) - update_stat() - return TRUE +/mob/living/proc/SetUnconscious(amount, updating = TRUE, ignore_canunconscious = FALSE) //Sets remaining duration + if((status_flags & CANUNCONSCIOUS) || ignore_canunconscious) + var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious() + if(amount <= 0) + if(U) + qdel(U) + else if(U) + U.duration = world.time + amount + else + U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount, updating) + return U -/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0) - if(status_flags & CANPARALYSE || ignore_canparalyse) - var/old_paralysis = paralysis - paralysis = max(amount,0) - if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) - if(updating) - update_stat() - return TRUE - -/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0) - if(status_flags & CANPARALYSE || ignore_canparalyse) - var/old_paralysis = paralysis - paralysis = max(paralysis + amount,0) - if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) - if(updating) - update_stat() - return TRUE +/mob/living/proc/AdjustUnconscious(amount, updating = TRUE, ignore_canunconscious = FALSE) //Adds to remaining duration + if((status_flags & CANUNCONSCIOUS) || ignore_canunconscious) + var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious() + if(U) + U.duration += amount + else if(amount > 0) + U = apply_status_effect(STATUS_EFFECT_UNCONSCIOUS, amount, updating) + return U /////////////////////////////////// SLEEPING //////////////////////////////////// -/mob/proc/Sleeping(amount, updating = 1, no_alert = FALSE) - var/old_sleeping = sleeping - sleeping = max(max(sleeping,amount),0) - if(!old_sleeping && sleeping) - if(!no_alert) - throw_alert("asleep", /obj/screen/alert/asleep) - if(updating) - update_stat() - else if(old_sleeping && !sleeping) - clear_alert("asleep") - if(updating) - update_stat() +/mob/living/proc/IsSleeping() //If we're asleep + return has_status_effect(STATUS_EFFECT_SLEEPING) -/mob/proc/SetSleeping(amount, updating = 1, no_alert = FALSE) - var/old_sleeping = sleeping - sleeping = max(amount,0) - if(!old_sleeping && sleeping) - if(!no_alert) - throw_alert("asleep", /obj/screen/alert/asleep) - if(updating) - update_stat() - else if(old_sleeping && !sleeping) - clear_alert("asleep") - if(updating) - update_stat() +/mob/living/proc/AmountSleeping() //How many deciseconds remain in our sleep + var/datum/status_effect/incapacitating/sleeping/S = IsSleeping() + if(S) + return S.duration - world.time + return 0 -/mob/proc/AdjustSleeping(amount, updating = 1, no_alert = FALSE) - var/old_sleeping = sleeping - sleeping = max(sleeping + amount,0) - if(!old_sleeping && sleeping) - if(!no_alert) - throw_alert("asleep", /obj/screen/alert/asleep) - if(updating) - update_stat() - else if(old_sleeping && !sleeping) - clear_alert("asleep") - if(updating) - update_stat() +/mob/living/proc/Sleeping(amount, updating = TRUE) //Can't go below remaining duration + var/datum/status_effect/incapacitating/sleeping/S = IsSleeping() + if(S) + S.duration = max(world.time + amount, S.duration) + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount, updating) + return S + +/mob/living/proc/SetSleeping(amount, updating = TRUE) //Sets remaining duration + var/datum/status_effect/incapacitating/sleeping/S = IsSleeping() + if(amount <= 0) + if(S) + qdel(S) + else if(S) + S.duration = world.time + amount + else + S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount, updating) + return S + +/mob/living/proc/AdjustSleeping(amount, updating = TRUE) //Adds to remaining duration + var/datum/status_effect/incapacitating/sleeping/S = IsSleeping() + if(S) + S.duration += amount + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount, updating) + return S /////////////////////////////////// RESTING //////////////////////////////////// /mob/proc/Resting(amount) resting = max(max(resting,amount),0) + +/mob/living/Resting(amount) + ..() update_canmove() /mob/proc/SetResting(amount) resting = max(amount,0) + +/mob/living/SetResting(amount) + ..() update_canmove() /mob/proc/AdjustResting(amount) resting = max(resting + amount,0) + +/mob/living/AdjustResting(amount) + ..() update_canmove() /////////////////////////////////// JITTERINESS //////////////////////////////////// diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 6dbcf4eb6a..cf598b7a2e 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,94 +1,94 @@ -/mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) - if (notransform) - return - //Handle items on mob - - //first implants & organs - var/list/stored_implants = list() - var/list/int_organs = list() - - if (tr_flags & TR_KEEPIMPLANTS) - for(var/X in implants) - var/obj/item/weapon/implant/IMP = X - stored_implants += IMP - IMP.removed(src, 1, 1) - - var/list/missing_bodyparts_zones = get_missing_limbs() - - var/obj/item/cavity_object - - var/obj/item/bodypart/chest/CH = get_bodypart("chest") - if(CH.cavity_item) - cavity_object = CH.cavity_item - CH.cavity_item = null - - if(tr_flags & TR_KEEPITEMS) - var/Itemlist = get_equipped_items() - Itemlist += held_items - for(var/obj/item/W in Itemlist) - dropItemToGround(W) - - //Make mob invisible and spawn animation - notransform = 1 - canmove = 0 - stunned = 1 - icon = null - cut_overlays() - invisibility = INVISIBILITY_MAXIMUM - +/mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) + if (notransform) + return + //Handle items on mob + + //first implants & organs + var/list/stored_implants = list() + var/list/int_organs = list() + + if (tr_flags & TR_KEEPIMPLANTS) + for(var/X in implants) + var/obj/item/weapon/implant/IMP = X + stored_implants += IMP + IMP.removed(src, 1, 1) + + var/list/missing_bodyparts_zones = get_missing_limbs() + + var/obj/item/cavity_object + + var/obj/item/bodypart/chest/CH = get_bodypart("chest") + if(CH.cavity_item) + cavity_object = CH.cavity_item + CH.cavity_item = null + + if(tr_flags & TR_KEEPITEMS) + var/Itemlist = get_equipped_items() + Itemlist += held_items + for(var/obj/item/W in Itemlist) + dropItemToGround(W) + + //Make mob invisible and spawn animation + notransform = 1 + canmove = 0 + Stun(22, ignore_canstun = TRUE) + icon = null + cut_overlays() + invisibility = INVISIBILITY_MAXIMUM + new /obj/effect/temp_visual/monkeyify(loc) - sleep(22) - var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc ) - - // hash the original name? - if(tr_flags & TR_HASHNAME) - O.name = "monkey ([copytext(md5(real_name), 2, 6)])" - O.real_name = "monkey ([copytext(md5(real_name), 2, 6)])" - - //handle DNA and other attributes - dna.transfer_identity(O) - O.updateappearance(icon_update=0) - - if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=1)//we don't want to keep the race block inactive - - if(suiciding) - O.suiciding = suiciding - if(hellbound) - O.hellbound = hellbound - O.loc = loc - O.a_intent = INTENT_HARM - - //keep viruses? - if (tr_flags & TR_KEEPVIRUS) - O.viruses = viruses - viruses = list() - for(var/datum/disease/D in O.viruses) - D.affected_mob = O - D.holder = O - - //keep damage? - if (tr_flags & TR_KEEPDAMAGE) - O.setToxLoss(getToxLoss(), 0) - O.adjustBruteLoss(getBruteLoss(), 0) - O.setOxyLoss(getOxyLoss(), 0) - O.setCloneLoss(getCloneLoss(), 0) - O.adjustFireLoss(getFireLoss(), 0) - O.setBrainLoss(getBrainLoss(), 0) - O.updatehealth() - O.radiation = radiation - - //re-add implants to new mob - if (tr_flags & TR_KEEPIMPLANTS) - for(var/Y in implants) - var/obj/item/weapon/implant/IMP = Y - IMP.implant(O, null, 1) - + sleep(22) + var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc ) + + // hash the original name? + if(tr_flags & TR_HASHNAME) + O.name = "monkey ([copytext(md5(real_name), 2, 6)])" + O.real_name = "monkey ([copytext(md5(real_name), 2, 6)])" + + //handle DNA and other attributes + dna.transfer_identity(O) + O.updateappearance(icon_update=0) + + if(tr_flags & TR_KEEPSE) + O.dna.struc_enzymes = dna.struc_enzymes + var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] + O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=1)//we don't want to keep the race block inactive + + if(suiciding) + O.suiciding = suiciding + if(hellbound) + O.hellbound = hellbound + O.loc = loc + O.a_intent = INTENT_HARM + + //keep viruses? + if (tr_flags & TR_KEEPVIRUS) + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + D.holder = O + + //keep damage? + if (tr_flags & TR_KEEPDAMAGE) + O.setToxLoss(getToxLoss(), 0) + O.adjustBruteLoss(getBruteLoss(), 0) + O.setOxyLoss(getOxyLoss(), 0) + O.setCloneLoss(getCloneLoss(), 0) + O.adjustFireLoss(getFireLoss(), 0) + O.setBrainLoss(getBrainLoss(), 0) + O.updatehealth() + O.radiation = radiation + + //re-add implants to new mob + if (tr_flags & TR_KEEPIMPLANTS) + for(var/Y in implants) + var/obj/item/weapon/implant/IMP = Y + IMP.implant(O, null, 1) + //re-add organs to new mob. this order prevents moving the mind to a brain at any point - if(tr_flags & TR_KEEPORGANS) - for(var/X in O.internal_organs) + if(tr_flags & TR_KEEPORGANS) + for(var/X in O.internal_organs) var/obj/item/organ/I = X I.Remove(O, 1) @@ -101,148 +101,148 @@ var/obj/item/organ/I = X int_organs += I I.Remove(src, 1) - - for(var/X in int_organs) - var/obj/item/organ/I = X - I.Insert(O, 1) - - var/obj/item/bodypart/chest/torso = O.get_bodypart("chest") - if(cavity_object) - torso.cavity_item = cavity_object //cavity item is given to the new chest - cavity_object.loc = O - - for(var/missing_zone in missing_bodyparts_zones) - var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) - BP.drop_limb(1) - if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob - for(var/X in O.internal_organs) - var/obj/item/organ/G = X - if(BP.body_zone == check_zone(G.zone)) - if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) - continue //so headless changelings don't lose their brain when transforming - qdel(G) //we lose the organs in the missing limbs - qdel(BP) - + + for(var/X in int_organs) + var/obj/item/organ/I = X + I.Insert(O, 1) + + var/obj/item/bodypart/chest/torso = O.get_bodypart("chest") + if(cavity_object) + torso.cavity_item = cavity_object //cavity item is given to the new chest + cavity_object.loc = O + + for(var/missing_zone in missing_bodyparts_zones) + var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) + BP.drop_limb(1) + if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob + for(var/X in O.internal_organs) + var/obj/item/organ/G = X + if(BP.body_zone == check_zone(G.zone)) + if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) + continue //so headless changelings don't lose their brain when transforming + qdel(G) //we lose the organs in the missing limbs + qdel(BP) + //transfer mind if we didn't yet - if(mind) - mind.transfer_to(O) - if(O.mind.changeling) - O.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) - - - if (tr_flags & TR_DEFAULTMSG) - to_chat(O, "You are now a monkey.") - - for(var/A in loc.vars) - if(loc.vars[A] == src) - loc.vars[A] = O - - . = O - - qdel(src) - -////////////////////////// Humanize ////////////////////////////// -//Could probably be merged with monkeyize but other transformations got their own procs, too - -/mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) - if (notransform) - return - //Handle items on mob - - //first implants & organs - var/list/stored_implants = list() - var/list/int_organs = list() - - if (tr_flags & TR_KEEPIMPLANTS) - for(var/X in implants) - var/obj/item/weapon/implant/IMP = X - stored_implants += IMP - IMP.removed(src, 1, 1) - - var/list/missing_bodyparts_zones = get_missing_limbs() - - var/obj/item/cavity_object - - var/obj/item/bodypart/chest/CH = get_bodypart("chest") - if(CH.cavity_item) - cavity_object = CH.cavity_item - CH.cavity_item = null - - //now the rest - if (tr_flags & TR_KEEPITEMS) - var/Itemlist = get_equipped_items() - Itemlist += held_items - for(var/obj/item/W in Itemlist) - dropItemToGround(W, TRUE) - if (client) - client.screen -= W - - - - //Make mob invisible and spawn animation - notransform = 1 - canmove = 0 - stunned = 1 - icon = null - cut_overlays() - invisibility = INVISIBILITY_MAXIMUM + if(mind) + mind.transfer_to(O) + if(O.mind.changeling) + O.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) + + + if (tr_flags & TR_DEFAULTMSG) + to_chat(O, "You are now a monkey.") + + for(var/A in loc.vars) + if(loc.vars[A] == src) + loc.vars[A] = O + + . = O + + qdel(src) + +////////////////////////// Humanize ////////////////////////////// +//Could probably be merged with monkeyize but other transformations got their own procs, too + +/mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) + if (notransform) + return + //Handle items on mob + + //first implants & organs + var/list/stored_implants = list() + var/list/int_organs = list() + + if (tr_flags & TR_KEEPIMPLANTS) + for(var/X in implants) + var/obj/item/weapon/implant/IMP = X + stored_implants += IMP + IMP.removed(src, 1, 1) + + var/list/missing_bodyparts_zones = get_missing_limbs() + + var/obj/item/cavity_object + + var/obj/item/bodypart/chest/CH = get_bodypart("chest") + if(CH.cavity_item) + cavity_object = CH.cavity_item + CH.cavity_item = null + + //now the rest + if (tr_flags & TR_KEEPITEMS) + var/Itemlist = get_equipped_items() + Itemlist += held_items + for(var/obj/item/W in Itemlist) + dropItemToGround(W, TRUE) + if (client) + client.screen -= W + + + + //Make mob invisible and spawn animation + notransform = 1 + canmove = 0 + Stun(22, ignore_canstun = TRUE) + icon = null + cut_overlays() + invisibility = INVISIBILITY_MAXIMUM new /obj/effect/temp_visual/monkeyify/humanify(loc) - sleep(22) - var/mob/living/carbon/human/O = new( loc ) - for(var/obj/item/C in O.loc) - O.equip_to_appropriate_slot(C) - - dna.transfer_identity(O) - O.updateappearance(mutcolor_update=1) - - if(cmptext("monkey",copytext(O.dna.real_name,1,7))) - O.real_name = random_unique_name(O.gender) - O.dna.generate_unique_enzymes(O) - else - O.real_name = O.dna.real_name - O.name = O.real_name - - if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=0)//we don't want to keep the race block active - O.domutcheck() - - if(suiciding) - O.suiciding = suiciding - if(hellbound) - O.hellbound = hellbound - - O.loc = loc - - //keep viruses? - if (tr_flags & TR_KEEPVIRUS) - O.viruses = viruses - viruses = list() - for(var/datum/disease/D in O.viruses) - D.affected_mob = O - D.holder = O - O.med_hud_set_status() - - //keep damage? - if (tr_flags & TR_KEEPDAMAGE) - O.setToxLoss(getToxLoss(), 0) - O.adjustBruteLoss(getBruteLoss(), 0) - O.setOxyLoss(getOxyLoss(), 0) - O.setCloneLoss(getCloneLoss(), 0) - O.adjustFireLoss(getFireLoss(), 0) - O.setBrainLoss(getBrainLoss(), 0) - O.updatehealth() - O.radiation = radiation - - //re-add implants to new mob - if (tr_flags & TR_KEEPIMPLANTS) - for(var/Y in implants) - var/obj/item/weapon/implant/IMP = Y - IMP.implant(O, null, 1) - - if(tr_flags & TR_KEEPORGANS) - for(var/X in O.internal_organs) + sleep(22) + var/mob/living/carbon/human/O = new( loc ) + for(var/obj/item/C in O.loc) + O.equip_to_appropriate_slot(C) + + dna.transfer_identity(O) + O.updateappearance(mutcolor_update=1) + + if(cmptext("monkey",copytext(O.dna.real_name,1,7))) + O.real_name = random_unique_name(O.gender) + O.dna.generate_unique_enzymes(O) + else + O.real_name = O.dna.real_name + O.name = O.real_name + + if(tr_flags & TR_KEEPSE) + O.dna.struc_enzymes = dna.struc_enzymes + var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] + O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=0)//we don't want to keep the race block active + O.domutcheck() + + if(suiciding) + O.suiciding = suiciding + if(hellbound) + O.hellbound = hellbound + + O.loc = loc + + //keep viruses? + if (tr_flags & TR_KEEPVIRUS) + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + D.holder = O + O.med_hud_set_status() + + //keep damage? + if (tr_flags & TR_KEEPDAMAGE) + O.setToxLoss(getToxLoss(), 0) + O.adjustBruteLoss(getBruteLoss(), 0) + O.setOxyLoss(getOxyLoss(), 0) + O.setCloneLoss(getCloneLoss(), 0) + O.adjustFireLoss(getFireLoss(), 0) + O.setBrainLoss(getBrainLoss(), 0) + O.updatehealth() + O.radiation = radiation + + //re-add implants to new mob + if (tr_flags & TR_KEEPIMPLANTS) + for(var/Y in implants) + var/obj/item/weapon/implant/IMP = Y + IMP.implant(O, null, 1) + + if(tr_flags & TR_KEEPORGANS) + for(var/X in O.internal_organs) var/obj/item/organ/I = X I.Remove(O, 1) @@ -256,331 +256,331 @@ var/obj/item/organ/I = X int_organs += I I.Remove(src, 1) - - for(var/X in int_organs) - var/obj/item/organ/I = X - I.Insert(O, 1) - - - var/obj/item/bodypart/chest/torso = get_bodypart("chest") - if(cavity_object) - torso.cavity_item = cavity_object //cavity item is given to the new chest - cavity_object.loc = O - - for(var/missing_zone in missing_bodyparts_zones) - var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) - BP.drop_limb(1) - if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob - for(var/X in O.internal_organs) - var/obj/item/organ/G = X - if(BP.body_zone == check_zone(G.zone)) - if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) - continue //so headless changelings don't lose their brain when transforming - qdel(G) //we lose the organs in the missing limbs - qdel(BP) - - if(mind) - mind.transfer_to(O) - if(O.mind.changeling) - for(var/obj/effect/proc_holder/changeling/humanform/HF in O.mind.changeling.purchasedpowers) + + for(var/X in int_organs) + var/obj/item/organ/I = X + I.Insert(O, 1) + + + var/obj/item/bodypart/chest/torso = get_bodypart("chest") + if(cavity_object) + torso.cavity_item = cavity_object //cavity item is given to the new chest + cavity_object.loc = O + + for(var/missing_zone in missing_bodyparts_zones) + var/obj/item/bodypart/BP = O.get_bodypart(missing_zone) + BP.drop_limb(1) + if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob + for(var/X in O.internal_organs) + var/obj/item/organ/G = X + if(BP.body_zone == check_zone(G.zone)) + if(mind && mind.changeling && istype(G, /obj/item/organ/brain)) + continue //so headless changelings don't lose their brain when transforming + qdel(G) //we lose the organs in the missing limbs + qdel(BP) + + if(mind) + mind.transfer_to(O) + if(O.mind.changeling) + for(var/obj/effect/proc_holder/changeling/humanform/HF in O.mind.changeling.purchasedpowers) O.mind.changeling.purchasedpowers -= HF - - O.a_intent = INTENT_HELP - if (tr_flags & TR_DEFAULTMSG) - to_chat(O, "You are now a human.") - - . = O - - for(var/A in loc.vars) - if(loc.vars[A] == src) - loc.vars[A] = O - - qdel(src) - -/mob/living/carbon/human/AIize() - if (notransform) - return - for(var/t in bodyparts) - qdel(t) - - return ..() - -/mob/living/carbon/AIize() - if (notransform) - return - for(var/obj/item/W in src) - dropItemToGround(W) - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - return ..() - -/mob/proc/AIize(transfer_after = TRUE) - if(client) - stop_sound_channel(CHANNEL_LOBBYMUSIC) - - var/turf/loc_landmark - for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) - if(sloc.name != "AI") - continue - if(locate(/mob/living/silicon/ai) in sloc.loc) - continue - loc_landmark = sloc.loc - if(!loc_landmark) - for(var/obj/effect/landmark/tripai in GLOB.landmarks_list) - if(tripai.name == "tripai") - if(locate(/mob/living/silicon/ai) in tripai.loc) - continue - loc_landmark = tripai.loc - if(!loc_landmark) - to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") - for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) - if (sloc.name == "AI") - loc_landmark = sloc.loc - - if(!transfer_after) - mind.active = FALSE - - . = new /mob/living/silicon/ai(loc_landmark, null, src) - - qdel(src) - -/mob/living/carbon/human/proc/Robotize(delete_items = 0, transfer_after = TRUE) - if (notransform) - return - for(var/obj/item/W in src) - if(delete_items) - qdel(W) - else - dropItemToGround(W) - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - for(var/t in bodyparts) - qdel(t) - - var/mob/living/silicon/robot/R = new /mob/living/silicon/robot(loc) - - // cyborgs produced by Robotize get an automatic power cell - R.cell = new(R) - R.cell.maxcharge = 7500 - R.cell.charge = 7500 - - - R.gender = gender - R.invisibility = 0 - - if(mind) //TODO - if(!transfer_after) - mind.active = FALSE - mind.transfer_to(R) - if(mind.special_role) - R.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") - else if(transfer_after) - R.key = key - - if (config.rename_cyborg) - R.rename_self("cyborg") - - if(R.mmi) - R.mmi.name = "Man-Machine Interface: [real_name]" - if(R.mmi.brain) - R.mmi.brain.name = "[real_name]'s brain" - if(R.mmi.brainmob) - R.mmi.brainmob.real_name = real_name //the name of the brain inside the cyborg is the robotized human's name. - R.mmi.brainmob.name = real_name - - R.loc = loc - R.job = "Cyborg" - R.notify_ai(NEW_BORG) - - . = R - qdel(src) - -//human -> alien -/mob/living/carbon/human/proc/Alienize() - if (notransform) - return - for(var/obj/item/W in src) - dropItemToGround(W) - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - for(var/t in bodyparts) - qdel(t) - - var/alien_caste = pick("Hunter","Sentinel","Drone") - var/mob/living/carbon/alien/humanoid/new_xeno - switch(alien_caste) - if("Hunter") - new_xeno = new /mob/living/carbon/alien/humanoid/hunter(loc) - if("Sentinel") - new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(loc) - if("Drone") - new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc) - - new_xeno.a_intent = INTENT_HARM - new_xeno.key = key - - to_chat(new_xeno, "You are now an alien.") - . = new_xeno - qdel(src) - -/mob/living/carbon/human/proc/slimeize(reproduce as num) - if (notransform) - return - for(var/obj/item/W in src) - dropItemToGround(W) - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - for(var/t in bodyparts) - qdel(t) - - var/mob/living/simple_animal/slime/new_slime - if(reproduce) - var/number = pick(14;2,3,4) //reproduce (has a small chance of producing 3 or 4 offspring) - var/list/babies = list() - for(var/i=1,i<=number,i++) - var/mob/living/simple_animal/slime/M = new/mob/living/simple_animal/slime(loc) - M.nutrition = round(nutrition/number) - step_away(M,src) - babies += M - new_slime = pick(babies) - else - new_slime = new /mob/living/simple_animal/slime(loc) - new_slime.a_intent = INTENT_HARM - new_slime.key = key - - to_chat(new_slime, "You are now a slime. Skreee!") - . = new_slime - qdel(src) - -/mob/proc/become_overmind(mode_made, starting_points = 60) - var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made, starting_points) - if(mind) - mind.transfer_to(B) - else - B.key = key - . = B - qdel(src) - - -/mob/living/carbon/human/proc/corgize() - if (notransform) - return - for(var/obj/item/W in src) - dropItemToGround(W) - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - for(var/t in bodyparts) //this really should not be necessary - qdel(t) - - var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc) - new_corgi.a_intent = INTENT_HARM - new_corgi.key = key - - to_chat(new_corgi, "You are now a Corgi. Yap Yap!") - . = new_corgi - qdel(src) - -/mob/living/carbon/human/Animalize() - - var/list/mobtypes = typesof(/mob/living/simple_animal) - var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes - - if(!safe_animal(mobpath)) - to_chat(usr, "Sorry but this mob type is currently unavailable.") - return - - if(notransform) - return - for(var/obj/item/W in src) - dropItemToGround(W) - - regenerate_icons() - notransform = 1 - canmove = 0 - icon = null - invisibility = INVISIBILITY_MAXIMUM - - for(var/t in bodyparts) - qdel(t) - - var/mob/new_mob = new mobpath(src.loc) - - new_mob.key = key - new_mob.a_intent = INTENT_HARM - - - to_chat(new_mob, "You suddenly feel more... animalistic.") - . = new_mob - qdel(src) - -/mob/proc/Animalize() - - var/list/mobtypes = typesof(/mob/living/simple_animal) - var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes - - if(!safe_animal(mobpath)) - to_chat(usr, "Sorry but this mob type is currently unavailable.") - return - - var/mob/new_mob = new mobpath(src.loc) - - new_mob.key = key - new_mob.a_intent = INTENT_HARM - to_chat(new_mob, "You feel more... animalistic") - - . = new_mob - qdel(src) - -/* Certain mob types have problems and should not be allowed to be controlled by players. - * - * This proc is here to force coders to manually place their mob in this list, hopefully tested. - * This also gives a place to explain -why- players shouldnt be turn into certain mobs and hopefully someone can fix them. - */ -/mob/proc/safe_animal(MP) - -//Bad mobs! - Remember to add a comment explaining what's wrong with the mob - if(!MP) - return 0 //Sanity, this should never happen. - - if(ispath(MP, /mob/living/simple_animal/hostile/construct)) - return 0 //Verbs do not appear for players. - -//Good mobs! - if(ispath(MP, /mob/living/simple_animal/pet/cat)) - return 1 - if(ispath(MP, /mob/living/simple_animal/pet/dog/corgi)) - return 1 - if(ispath(MP, /mob/living/simple_animal/crab)) - return 1 - if(ispath(MP, /mob/living/simple_animal/hostile/carp)) - return 1 - if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) - return 1 - if(ispath(MP, /mob/living/simple_animal/shade)) - return 1 - if(ispath(MP, /mob/living/simple_animal/hostile/killertomato)) - return 1 - if(ispath(MP, /mob/living/simple_animal/mouse)) - return 1 //It is impossible to pull up the player panel for mice (Fixed! - Nodrak) - if(ispath(MP, /mob/living/simple_animal/hostile/bear)) - return 1 //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak) - if(ispath(MP, /mob/living/simple_animal/parrot)) - return 1 //Parrots are no longer unfinished! -Nodrak - - //Not in here? Must be untested! - return 0 + + O.a_intent = INTENT_HELP + if (tr_flags & TR_DEFAULTMSG) + to_chat(O, "You are now a human.") + + . = O + + for(var/A in loc.vars) + if(loc.vars[A] == src) + loc.vars[A] = O + + qdel(src) + +/mob/living/carbon/human/AIize() + if (notransform) + return + for(var/t in bodyparts) + qdel(t) + + return ..() + +/mob/living/carbon/AIize() + if (notransform) + return + for(var/obj/item/W in src) + dropItemToGround(W) + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + return ..() + +/mob/proc/AIize(transfer_after = TRUE) + if(client) + stop_sound_channel(CHANNEL_LOBBYMUSIC) + + var/turf/loc_landmark + for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) + if(sloc.name != "AI") + continue + if(locate(/mob/living/silicon/ai) in sloc.loc) + continue + loc_landmark = sloc.loc + if(!loc_landmark) + for(var/obj/effect/landmark/tripai in GLOB.landmarks_list) + if(tripai.name == "tripai") + if(locate(/mob/living/silicon/ai) in tripai.loc) + continue + loc_landmark = tripai.loc + if(!loc_landmark) + to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") + for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) + if (sloc.name == "AI") + loc_landmark = sloc.loc + + if(!transfer_after) + mind.active = FALSE + + . = new /mob/living/silicon/ai(loc_landmark, null, src) + + qdel(src) + +/mob/living/carbon/human/proc/Robotize(delete_items = 0, transfer_after = TRUE) + if (notransform) + return + for(var/obj/item/W in src) + if(delete_items) + qdel(W) + else + dropItemToGround(W) + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + for(var/t in bodyparts) + qdel(t) + + var/mob/living/silicon/robot/R = new /mob/living/silicon/robot(loc) + + // cyborgs produced by Robotize get an automatic power cell + R.cell = new(R) + R.cell.maxcharge = 7500 + R.cell.charge = 7500 + + + R.gender = gender + R.invisibility = 0 + + if(mind) //TODO + if(!transfer_after) + mind.active = FALSE + mind.transfer_to(R) + if(mind.special_role) + R.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") + else if(transfer_after) + R.key = key + + if (config.rename_cyborg) + R.rename_self("cyborg") + + if(R.mmi) + R.mmi.name = "Man-Machine Interface: [real_name]" + if(R.mmi.brain) + R.mmi.brain.name = "[real_name]'s brain" + if(R.mmi.brainmob) + R.mmi.brainmob.real_name = real_name //the name of the brain inside the cyborg is the robotized human's name. + R.mmi.brainmob.name = real_name + + R.loc = loc + R.job = "Cyborg" + R.notify_ai(NEW_BORG) + + . = R + qdel(src) + +//human -> alien +/mob/living/carbon/human/proc/Alienize() + if (notransform) + return + for(var/obj/item/W in src) + dropItemToGround(W) + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + for(var/t in bodyparts) + qdel(t) + + var/alien_caste = pick("Hunter","Sentinel","Drone") + var/mob/living/carbon/alien/humanoid/new_xeno + switch(alien_caste) + if("Hunter") + new_xeno = new /mob/living/carbon/alien/humanoid/hunter(loc) + if("Sentinel") + new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(loc) + if("Drone") + new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc) + + new_xeno.a_intent = INTENT_HARM + new_xeno.key = key + + to_chat(new_xeno, "You are now an alien.") + . = new_xeno + qdel(src) + +/mob/living/carbon/human/proc/slimeize(reproduce as num) + if (notransform) + return + for(var/obj/item/W in src) + dropItemToGround(W) + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + for(var/t in bodyparts) + qdel(t) + + var/mob/living/simple_animal/slime/new_slime + if(reproduce) + var/number = pick(14;2,3,4) //reproduce (has a small chance of producing 3 or 4 offspring) + var/list/babies = list() + for(var/i=1,i<=number,i++) + var/mob/living/simple_animal/slime/M = new/mob/living/simple_animal/slime(loc) + M.nutrition = round(nutrition/number) + step_away(M,src) + babies += M + new_slime = pick(babies) + else + new_slime = new /mob/living/simple_animal/slime(loc) + new_slime.a_intent = INTENT_HARM + new_slime.key = key + + to_chat(new_slime, "You are now a slime. Skreee!") + . = new_slime + qdel(src) + +/mob/proc/become_overmind(mode_made, starting_points = 60) + var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made, starting_points) + if(mind) + mind.transfer_to(B) + else + B.key = key + . = B + qdel(src) + + +/mob/living/carbon/human/proc/corgize() + if (notransform) + return + for(var/obj/item/W in src) + dropItemToGround(W) + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + for(var/t in bodyparts) //this really should not be necessary + qdel(t) + + var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc) + new_corgi.a_intent = INTENT_HARM + new_corgi.key = key + + to_chat(new_corgi, "You are now a Corgi. Yap Yap!") + . = new_corgi + qdel(src) + +/mob/living/carbon/human/Animalize() + + var/list/mobtypes = typesof(/mob/living/simple_animal) + var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes + + if(!safe_animal(mobpath)) + to_chat(usr, "Sorry but this mob type is currently unavailable.") + return + + if(notransform) + return + for(var/obj/item/W in src) + dropItemToGround(W) + + regenerate_icons() + notransform = 1 + canmove = 0 + icon = null + invisibility = INVISIBILITY_MAXIMUM + + for(var/t in bodyparts) + qdel(t) + + var/mob/new_mob = new mobpath(src.loc) + + new_mob.key = key + new_mob.a_intent = INTENT_HARM + + + to_chat(new_mob, "You suddenly feel more... animalistic.") + . = new_mob + qdel(src) + +/mob/proc/Animalize() + + var/list/mobtypes = typesof(/mob/living/simple_animal) + var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes + + if(!safe_animal(mobpath)) + to_chat(usr, "Sorry but this mob type is currently unavailable.") + return + + var/mob/new_mob = new mobpath(src.loc) + + new_mob.key = key + new_mob.a_intent = INTENT_HARM + to_chat(new_mob, "You feel more... animalistic") + + . = new_mob + qdel(src) + +/* Certain mob types have problems and should not be allowed to be controlled by players. + * + * This proc is here to force coders to manually place their mob in this list, hopefully tested. + * This also gives a place to explain -why- players shouldnt be turn into certain mobs and hopefully someone can fix them. + */ +/mob/proc/safe_animal(MP) + +//Bad mobs! - Remember to add a comment explaining what's wrong with the mob + if(!MP) + return 0 //Sanity, this should never happen. + + if(ispath(MP, /mob/living/simple_animal/hostile/construct)) + return 0 //Verbs do not appear for players. + +//Good mobs! + if(ispath(MP, /mob/living/simple_animal/pet/cat)) + return 1 + if(ispath(MP, /mob/living/simple_animal/pet/dog/corgi)) + return 1 + if(ispath(MP, /mob/living/simple_animal/crab)) + return 1 + if(ispath(MP, /mob/living/simple_animal/hostile/carp)) + return 1 + if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) + return 1 + if(ispath(MP, /mob/living/simple_animal/shade)) + return 1 + if(ispath(MP, /mob/living/simple_animal/hostile/killertomato)) + return 1 + if(ispath(MP, /mob/living/simple_animal/mouse)) + return 1 //It is impossible to pull up the player panel for mice (Fixed! - Nodrak) + if(ispath(MP, /mob/living/simple_animal/hostile/bear)) + return 1 //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak) + if(ispath(MP, /mob/living/simple_animal/parrot)) + return 1 //Parrots are no longer unfinished! -Nodrak + + //Not in here? Must be untested! + return 0 diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 871d72acee..7b66ef0b2e 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -49,7 +49,6 @@ var/comp_light_color //The color of that light - /obj/item/device/modular_computer/Initialize() . = ..() START_PROCESSING(SSobj, src) diff --git a/code/modules/modular_computers/computers/item/computer_power.dm b/code/modules/modular_computers/computers/item/computer_power.dm index c62b0793ad..963aaf3309 100644 --- a/code/modules/modular_computers/computers/item/computer_power.dm +++ b/code/modules/modular_computers/computers/item/computer_power.dm @@ -31,7 +31,6 @@ if(battery_module && battery_module.battery) return battery_module.battery - // Used in following function to reduce copypaste /obj/item/device/modular_computer/proc/power_failure() if(enabled) // Shut down the computer diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index dfe2acd252..5eab5f5c43 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -41,11 +41,10 @@ /datum/computer_file/program/card_mod/New() ..() - change_position_cooldown = config.id_console_jobslot_delay addtimer(CALLBACK(src, .proc/SetConfigCooldown), 0) /datum/computer_file/program/card_mod/proc/SetConfigCooldown() - + change_position_cooldown = config.id_console_jobslot_delay /datum/computer_file/program/card_mod/event_idremoved(background, slot) if(!slot || slot == 2)// slot being false means both are removed diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index 35080ef80e..b5ea32f1b2 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -70,7 +70,7 @@ refresh() return var/datum/gas_mixture/air = T.return_air() - if(!istype(air)) + if(!air) active = null return @@ -81,19 +81,18 @@ data["SM_ambientpressure"] = air.return_pressure() //data["SM_EPR"] = round((air.total_moles / air.group_multiplier) / 23.1, 0.01) var/list/gasdata = list() - var/list/gaseslist = list("o2","co2","n2","plasma","n2o") if(air.total_moles()) - for(var/gasid in gaseslist) + for(var/gasid in air.gases) gasdata.Add(list(list( - "name"= gasid, + "name"= air.gases[gasid][GAS_META][META_GAS_NAME], "amount" = round(100*air.gases[gasid][MOLES]/air.total_moles(),0.01)))) else - for(var/gasid in gaseslist) + for(var/gasid in air.gases) gasdata.Add(list(list( - "name"= gasid, + "name"= air.gases[gasid][GAS_META][META_GAS_NAME], "amount" = 0))) data["gases"] = gasdata diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm.rej b/code/modules/modular_computers/file_system/programs/sm_monitor.dm.rej deleted file mode 100644 index 2d1f148e8d..0000000000 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm.rej +++ /dev/null @@ -1,36 +0,0 @@ -diff a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm (rejected hunks) -@@ -70,32 +70,27 @@ - refresh() - return - var/datum/gas_mixture/air = T.return_air() -- if(!istype(air)) -+ if(!air) - active = null - return - -- data["active"] = 1 -+ data["active"] = TRUE - data["SM_integrity"] = active.get_integrity() - data["SM_power"] = active.power - data["SM_ambienttemp"] = air.temperature - data["SM_ambientpressure"] = air.return_pressure() - //data["SM_EPR"] = round((air.total_moles / air.group_multiplier) / 23.1, 0.01) - var/list/gasdata = list() -- var/list/relevantgas = list("o2","co2","n2","plasma","n2o","freon") - - - if(air.total_moles()) - for(var/gasid in air.gases) -- if(!gasid in relevantgas) -- continue - gasdata.Add(list(list( - "name"= air.gases[gasid][GAS_META][META_GAS_NAME], - "amount" = round(100*air.gases[gasid][MOLES]/air.total_moles(),0.01)))) - - else - for(var/gasid in air.gases) -- if(!gasid in relevantgas) -- continue - gasdata.Add(list(list( - "name"= air.gases[gasid][GAS_META][META_GAS_NAME], - "amount" = 0))) diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index e1c378f9f3..71f8166339 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -4,9 +4,9 @@ if(!ninjacost(0,N_ADRENALINE))//Have to make sure stat is not counted for this ability. var/mob/living/carbon/human/H = affecting - H.SetParalysis(0) - H.SetStunned(0) - H.SetWeakened(0) + H.SetUnconscious(0) + H.SetStun(0) + H.SetKnockdown(0) spawn(30)//Slight delay so the enemy does not immedietly know the ability was used. Due to lag, this often came before waking up. H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!")) diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm index 48e3cf69a9..ea96c1cdf6 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm @@ -5,6 +5,6 @@ if(!ninjacost(250,N_STEALTH_CANCEL)) var/mob/living/carbon/human/H = affecting - playsound(H.loc, 'sound/effects/EMPulse.ogg', 60, 2) + playsound(H.loc, 'sound/effects/empulse.ogg', 60, 2) empulse(H, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. s_coold = 2 diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm index 73c7082eec..7a192c427c 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm @@ -19,7 +19,7 @@ inview = 0 if(!ninjacost(cost)) - if(istype(energyKatana.loc, /mob/living/carbon)) + if(iscarbon(energyKatana.loc)) var/mob/living/carbon/C = energyKatana.loc C.transferItemToLoc(energyKatana, get_turf(energyKatana), TRUE) diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 8e2c66fcbb..102b6bc804 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -56,6 +56,7 @@ Contents: var/s_bombs = 10//Number of starting ninja smoke bombs. var/a_boost = 3//Number of adrenaline boosters. + /obj/item/clothing/suit/space/space_ninja/get_cell() return cell diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 5d314f6ae8..dadb1ddd60 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -1,220 +1,220 @@ -/* Filing cabinets! - * Contains: - * Filing Cabinets - * Security Record Cabinets - * Medical Record Cabinets - * Employment Contract Cabinets - */ - - -/* - * Filing Cabinets - */ -/obj/structure/filingcabinet - name = "filing cabinet" - desc = "A large cabinet with drawers." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "filingcabinet" - density = 1 - anchored = 1 - -/obj/structure/filingcabinet/chestdrawer - name = "chest drawer" - icon_state = "chestdrawer" - -/obj/structure/filingcabinet/chestdrawer/wheeled - name = "rolling chest drawer" - desc = "A small cabinet with drawers. This one has wheels!" - anchored = 0 - -/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete - icon_state = "tallcabinet" - - -/obj/structure/filingcabinet/Initialize(mapload) +/* Filing cabinets! + * Contains: + * Filing Cabinets + * Security Record Cabinets + * Medical Record Cabinets + * Employment Contract Cabinets + */ + + +/* + * Filing Cabinets + */ +/obj/structure/filingcabinet + name = "filing cabinet" + desc = "A large cabinet with drawers." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "filingcabinet" + density = 1 + anchored = 1 + +/obj/structure/filingcabinet/chestdrawer + name = "chest drawer" + icon_state = "chestdrawer" + +/obj/structure/filingcabinet/chestdrawer/wheeled + name = "rolling chest drawer" + desc = "A small cabinet with drawers. This one has wheels!" + anchored = 0 + +/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete + icon_state = "tallcabinet" + + +/obj/structure/filingcabinet/Initialize(mapload) . = ..() - if(mapload) - for(var/obj/item/I in loc) - if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo)) - I.loc = src - -/obj/structure/filingcabinet/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - new /obj/item/stack/sheet/metal(loc, 2) - for(var/obj/item/I in src) - I.forceMove(loc) - qdel(src) - -/obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/documents)) - if(!user.drop_item()) - return - to_chat(user, "You put [P] in [src].") - P.loc = src - icon_state = "[initial(icon_state)]-open" - sleep(5) - icon_state = initial(icon_state) - updateUsrDialog() - else if(istype(P, /obj/item/weapon/wrench)) - to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") - playsound(loc, P.usesound, 50, 1) - if(do_after(user, 20, target = src)) - to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].") - anchored = !anchored - else if(user.a_intent != INTENT_HARM) - to_chat(user, "You can't put [P] in [src]!") - else - return ..() - - -/obj/structure/filingcabinet/attack_hand(mob/user) - if(contents.len <= 0) - to_chat(user, "[src] is empty.") - return - - user.set_machine(src) - var/dat = "

    Name

    Status

    Location

    Control

    [Bot.hacked ? "(!)" : ""] [Bot.name] ([Bot.model])[bot_mode][bot_area.name]InterfaceCall
    " - var/i - for(i=contents.len, i>=1, i--) - var/obj/item/P = contents[i] - dat += "" - dat += "
    [P.name]
    " - user << browse("[name][dat]", "window=filingcabinet;size=350x300") - -/obj/structure/filingcabinet/attack_tk(mob/user) - if(anchored) - attack_self_tk(user) - else - ..() - -/obj/structure/filingcabinet/attack_self_tk(mob/user) - if(contents.len) - if(prob(40 + contents.len * 5)) - var/obj/item/I = pick(contents) - I.loc = loc - if(prob(25)) - step_rand(I) - to_chat(user, "You pull \a [I] out of [src] at random.") - return - to_chat(user, "You find nothing in [src].") - -/obj/structure/filingcabinet/Topic(href, href_list) - if(href_list["retrieve"]) - usr << browse("", "window=filingcabinet") // Close the menu - - //var/retrieveindex = text2num(href_list["retrieve"]) - var/obj/item/P = locate(href_list["retrieve"])//contents[retrieveindex] - if(istype(P) && P.loc == src && in_range(src, usr)) - usr.put_in_hands(P) - updateUsrDialog() - icon_state = "[initial(icon_state)]-open" - sleep(5) - icon_state = initial(icon_state) - - -/* - * Security Record Cabinets - */ -/obj/structure/filingcabinet/security - var/virgin = 1 - -/obj/structure/filingcabinet/security/proc/populate() - if(virgin) - for(var/datum/data/record/G in GLOB.data_core.general) - var/datum/data/record/S = find_record("name", G.fields["name"], GLOB.data_core.security) - if(!S) - continue - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) - P.info = "
    Security Record

    " - P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]
    \nSex: [G.fields["sex"]]
    \nAge: [G.fields["age"]]
    \nFingerprint: [G.fields["fingerprint"]]
    \nPhysical Status: [G.fields["p_stat"]]
    \nMental Status: [G.fields["m_stat"]]
    " - P.info += "
    \n
    Security Data

    \nCriminal Status: [S.fields["criminal"]]
    \n
    \nMinor Crimes: [S.fields["mi_crim"]]
    \nDetails: [S.fields["mi_crim_d"]]
    \n
    \nMajor Crimes: [S.fields["ma_crim"]]
    \nDetails: [S.fields["ma_crim_d"]]
    \n
    \nImportant Notes:
    \n\t[S.fields["notes"]]
    \n
    \n
    Comments/Log

    " - var/counter = 1 - while(S.fields["com_[counter]"]) - P.info += "[S.fields["com_[counter]"]]
    " - counter++ - P.info += "
    " - P.name = "paper - '[G.fields["name"]]'" - virgin = 0 //tabbing here is correct- it's possible for people to try and use it - //before the records have been generated, so we do this inside the loop. - -/obj/structure/filingcabinet/security/attack_hand() - populate() - ..() -/obj/structure/filingcabinet/security/attack_tk() - populate() - ..() - -/* - * Medical Record Cabinets - */ -/obj/structure/filingcabinet/medical - var/virgin = 1 - -/obj/structure/filingcabinet/medical/proc/populate() - if(virgin) - for(var/datum/data/record/G in GLOB.data_core.general) - var/datum/data/record/M = find_record("name", G.fields["name"], GLOB.data_core.medical) - if(!M) - continue - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) - P.info = "
    Medical Record

    " - P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]
    \nSex: [G.fields["sex"]]
    \nAge: [G.fields["age"]]
    \nFingerprint: [G.fields["fingerprint"]]
    \nPhysical Status: [G.fields["p_stat"]]
    \nMental Status: [G.fields["m_stat"]]
    " - P.info += "
    \n
    Medical Data

    \nBlood Type: [M.fields["blood_type"]]
    \nDNA: [M.fields["b_dna"]]
    \n
    \nMinor Disabilities: [M.fields["mi_dis"]]
    \nDetails: [M.fields["mi_dis_d"]]
    \n
    \nMajor Disabilities: [M.fields["ma_dis"]]
    \nDetails: [M.fields["ma_dis_d"]]
    \n
    \nAllergies: [M.fields["alg"]]
    \nDetails: [M.fields["alg_d"]]
    \n
    \nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)
    \nDetails: [M.fields["cdi_d"]]
    \n
    \nImportant Notes:
    \n\t[M.fields["notes"]]
    \n
    \n
    Comments/Log

    " - var/counter = 1 - while(M.fields["com_[counter]"]) - P.info += "[M.fields["com_[counter]"]]
    " - counter++ - P.info += "
    " - P.name = "paper - '[G.fields["name"]]'" - virgin = 0 //tabbing here is correct- it's possible for people to try and use it - //before the records have been generated, so we do this inside the loop. -/obj/structure/filingcabinet/medical/attack_hand() - populate() - ..() -/obj/structure/filingcabinet/medical/attack_tk() - populate() - ..() - -/* - * Employment contract Cabinets - */ - -GLOBAL_LIST_EMPTY(employmentCabinets) - -/obj/structure/filingcabinet/employment - var/cooldown = 0 - icon_state = "employmentcabinet" - var/virgin = 1 - -/obj/structure/filingcabinet/employment/New() - GLOB.employmentCabinets += src - return ..() - -/obj/structure/filingcabinet/employment/Destroy() - GLOB.employmentCabinets -= src - return ..() - -/obj/structure/filingcabinet/employment/proc/fillCurrent() - //This proc fills the cabinet with the current crew. - for(var/record in GLOB.data_core.locked) - var/datum/data/record/G = record - if(!G) - continue - if(G.fields["reference"]) - addFile(G.fields["reference"]) - - -/obj/structure/filingcabinet/employment/proc/addFile(mob/living/carbon/human/employee) - new /obj/item/weapon/paper/contract/employment(src, employee) - -/obj/structure/filingcabinet/employment/attack_hand(mob/user) - if(!cooldown) - if(virgin) - fillCurrent() - virgin = 0 - cooldown = 1 - ..() - sleep(100) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win. - cooldown = 0 - else - to_chat(user, "The [src] is jammed, give it a few seconds.") + if(mapload) + for(var/obj/item/I in loc) + if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo)) + I.loc = src + +/obj/structure/filingcabinet/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 2) + for(var/obj/item/I in src) + I.forceMove(loc) + qdel(src) + +/obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params) + if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/documents)) + if(!user.drop_item()) + return + to_chat(user, "You put [P] in [src].") + P.loc = src + icon_state = "[initial(icon_state)]-open" + sleep(5) + icon_state = initial(icon_state) + updateUsrDialog() + else if(istype(P, /obj/item/weapon/wrench)) + to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") + playsound(loc, P.usesound, 50, 1) + if(do_after(user, 20, target = src)) + to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].") + anchored = !anchored + else if(user.a_intent != INTENT_HARM) + to_chat(user, "You can't put [P] in [src]!") + else + return ..() + + +/obj/structure/filingcabinet/attack_hand(mob/user) + if(contents.len <= 0) + to_chat(user, "[src] is empty.") + return + + user.set_machine(src) + var/dat = "
    " + var/i + for(i=contents.len, i>=1, i--) + var/obj/item/P = contents[i] + dat += "" + dat += "
    [P.name]
    " + user << browse("[name][dat]", "window=filingcabinet;size=350x300") + +/obj/structure/filingcabinet/attack_tk(mob/user) + if(anchored) + attack_self_tk(user) + else + ..() + +/obj/structure/filingcabinet/attack_self_tk(mob/user) + if(contents.len) + if(prob(40 + contents.len * 5)) + var/obj/item/I = pick(contents) + I.loc = loc + if(prob(25)) + step_rand(I) + to_chat(user, "You pull \a [I] out of [src] at random.") + return + to_chat(user, "You find nothing in [src].") + +/obj/structure/filingcabinet/Topic(href, href_list) + if(href_list["retrieve"]) + usr << browse("", "window=filingcabinet") // Close the menu + + //var/retrieveindex = text2num(href_list["retrieve"]) + var/obj/item/P = locate(href_list["retrieve"])//contents[retrieveindex] + if(istype(P) && P.loc == src && in_range(src, usr)) + usr.put_in_hands(P) + updateUsrDialog() + icon_state = "[initial(icon_state)]-open" + sleep(5) + icon_state = initial(icon_state) + + +/* + * Security Record Cabinets + */ +/obj/structure/filingcabinet/security + var/virgin = 1 + +/obj/structure/filingcabinet/security/proc/populate() + if(virgin) + for(var/datum/data/record/G in GLOB.data_core.general) + var/datum/data/record/S = find_record("name", G.fields["name"], GLOB.data_core.security) + if(!S) + continue + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) + P.info = "
    Security Record

    " + P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]
    \nSex: [G.fields["sex"]]
    \nAge: [G.fields["age"]]
    \nFingerprint: [G.fields["fingerprint"]]
    \nPhysical Status: [G.fields["p_stat"]]
    \nMental Status: [G.fields["m_stat"]]
    " + P.info += "
    \n
    Security Data

    \nCriminal Status: [S.fields["criminal"]]
    \n
    \nMinor Crimes: [S.fields["mi_crim"]]
    \nDetails: [S.fields["mi_crim_d"]]
    \n
    \nMajor Crimes: [S.fields["ma_crim"]]
    \nDetails: [S.fields["ma_crim_d"]]
    \n
    \nImportant Notes:
    \n\t[S.fields["notes"]]
    \n
    \n
    Comments/Log

    " + var/counter = 1 + while(S.fields["com_[counter]"]) + P.info += "[S.fields["com_[counter]"]]
    " + counter++ + P.info += "" + P.name = "paper - '[G.fields["name"]]'" + virgin = 0 //tabbing here is correct- it's possible for people to try and use it + //before the records have been generated, so we do this inside the loop. + +/obj/structure/filingcabinet/security/attack_hand() + populate() + ..() +/obj/structure/filingcabinet/security/attack_tk() + populate() + ..() + +/* + * Medical Record Cabinets + */ +/obj/structure/filingcabinet/medical + var/virgin = 1 + +/obj/structure/filingcabinet/medical/proc/populate() + if(virgin) + for(var/datum/data/record/G in GLOB.data_core.general) + var/datum/data/record/M = find_record("name", G.fields["name"], GLOB.data_core.medical) + if(!M) + continue + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) + P.info = "
    Medical Record

    " + P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]
    \nSex: [G.fields["sex"]]
    \nAge: [G.fields["age"]]
    \nFingerprint: [G.fields["fingerprint"]]
    \nPhysical Status: [G.fields["p_stat"]]
    \nMental Status: [G.fields["m_stat"]]
    " + P.info += "
    \n
    Medical Data

    \nBlood Type: [M.fields["blood_type"]]
    \nDNA: [M.fields["b_dna"]]
    \n
    \nMinor Disabilities: [M.fields["mi_dis"]]
    \nDetails: [M.fields["mi_dis_d"]]
    \n
    \nMajor Disabilities: [M.fields["ma_dis"]]
    \nDetails: [M.fields["ma_dis_d"]]
    \n
    \nAllergies: [M.fields["alg"]]
    \nDetails: [M.fields["alg_d"]]
    \n
    \nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)
    \nDetails: [M.fields["cdi_d"]]
    \n
    \nImportant Notes:
    \n\t[M.fields["notes"]]
    \n
    \n
    Comments/Log

    " + var/counter = 1 + while(M.fields["com_[counter]"]) + P.info += "[M.fields["com_[counter]"]]
    " + counter++ + P.info += "" + P.name = "paper - '[G.fields["name"]]'" + virgin = 0 //tabbing here is correct- it's possible for people to try and use it + //before the records have been generated, so we do this inside the loop. +/obj/structure/filingcabinet/medical/attack_hand() + populate() + ..() +/obj/structure/filingcabinet/medical/attack_tk() + populate() + ..() + +/* + * Employment contract Cabinets + */ + +GLOBAL_LIST_EMPTY(employmentCabinets) + +/obj/structure/filingcabinet/employment + var/cooldown = 0 + icon_state = "employmentcabinet" + var/virgin = 1 + +/obj/structure/filingcabinet/employment/New() + GLOB.employmentCabinets += src + return ..() + +/obj/structure/filingcabinet/employment/Destroy() + GLOB.employmentCabinets -= src + return ..() + +/obj/structure/filingcabinet/employment/proc/fillCurrent() + //This proc fills the cabinet with the current crew. + for(var/record in GLOB.data_core.locked) + var/datum/data/record/G = record + if(!G) + continue + if(G.fields["reference"]) + addFile(G.fields["reference"]) + + +/obj/structure/filingcabinet/employment/proc/addFile(mob/living/carbon/human/employee) + new /obj/item/weapon/paper/contract/employment(src, employee) + +/obj/structure/filingcabinet/employment/attack_hand(mob/user) + if(!cooldown) + if(virgin) + fillCurrent() + virgin = 0 + cooldown = 1 + ..() + sleep(100) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win. + cooldown = 0 + else + to_chat(user, "The [src] is jammed, give it a few seconds.") diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index f98cb5d0e9..0f721bc826 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -1,110 +1,110 @@ -/obj/item/weapon/folder - name = "folder" - desc = "A folder." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "folder" - w_class = WEIGHT_CLASS_SMALL - pressure_resistance = 2 - resistance_flags = FLAMMABLE - -/obj/item/weapon/folder/blue - desc = "A blue folder." - icon_state = "folder_blue" - -/obj/item/weapon/folder/red - desc = "A red folder." - icon_state = "folder_red" - -/obj/item/weapon/folder/yellow - desc = "A yellow folder." - icon_state = "folder_yellow" - -/obj/item/weapon/folder/white - desc = "A white folder." - icon_state = "folder_white" - - -/obj/item/weapon/folder/update_icon() - cut_overlays() - if(contents.len) - add_overlay("folder_paper") - - -/obj/item/weapon/folder/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/documents)) - if(!user.transferItemToLoc(W, src)) - return - to_chat(user, "You put [W] into [src].") - update_icon() - else if(istype(W, /obj/item/weapon/pen)) - var/n_name = copytext(sanitize(input(user, "What would you like to label the folder?", "Folder Labelling", null) as text), 1, MAX_NAME_LEN) - if((in_range(src,user) && user.stat == CONSCIOUS)) - name = "folder[(n_name ? " - '[n_name]'" : null)]" - - -/obj/item/weapon/folder/attack_self(mob/user) - var/dat = "[name]" - - for(var/obj/item/I in src) - dat += "Remove - [I.name]
    " - user << browse(dat, "window=folder") - onclose(user, "folder") - add_fingerprint(usr) - - -/obj/item/weapon/folder/Topic(href, href_list) - ..() - if(usr.stat || usr.restrained()) - return - - if(usr.contents.Find(src)) - - if(href_list["remove"]) - var/obj/item/I = locate(href_list["remove"]) - if(istype(I) && I.loc == src) - I.loc = usr.loc - usr.put_in_hands(I) - - if(href_list["read"]) - var/obj/item/I = locate(href_list["read"]) - if(istype(I) && I.loc == src) - usr.examinate(I) - - //Update everything - attack_self(usr) - update_icon() - -/obj/item/weapon/folder/documents - name = "folder- 'TOP SECRET'" - desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\"" - +/obj/item/weapon/folder + name = "folder" + desc = "A folder." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "folder" + w_class = WEIGHT_CLASS_SMALL + pressure_resistance = 2 + resistance_flags = FLAMMABLE + +/obj/item/weapon/folder/blue + desc = "A blue folder." + icon_state = "folder_blue" + +/obj/item/weapon/folder/red + desc = "A red folder." + icon_state = "folder_red" + +/obj/item/weapon/folder/yellow + desc = "A yellow folder." + icon_state = "folder_yellow" + +/obj/item/weapon/folder/white + desc = "A white folder." + icon_state = "folder_white" + + +/obj/item/weapon/folder/update_icon() + cut_overlays() + if(contents.len) + add_overlay("folder_paper") + + +/obj/item/weapon/folder/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/documents)) + if(!user.transferItemToLoc(W, src)) + return + to_chat(user, "You put [W] into [src].") + update_icon() + else if(istype(W, /obj/item/weapon/pen)) + var/n_name = copytext(sanitize(input(user, "What would you like to label the folder?", "Folder Labelling", null) as text), 1, MAX_NAME_LEN) + if((in_range(src,user) && user.stat == CONSCIOUS)) + name = "folder[(n_name ? " - '[n_name]'" : null)]" + + +/obj/item/weapon/folder/attack_self(mob/user) + var/dat = "[name]" + + for(var/obj/item/I in src) + dat += "Remove - [I.name]
    " + user << browse(dat, "window=folder") + onclose(user, "folder") + add_fingerprint(usr) + + +/obj/item/weapon/folder/Topic(href, href_list) + ..() + if(usr.stat || usr.restrained()) + return + + if(usr.contents.Find(src)) + + if(href_list["remove"]) + var/obj/item/I = locate(href_list["remove"]) + if(istype(I) && I.loc == src) + I.loc = usr.loc + usr.put_in_hands(I) + + if(href_list["read"]) + var/obj/item/I = locate(href_list["read"]) + if(istype(I) && I.loc == src) + usr.examinate(I) + + //Update everything + attack_self(usr) + update_icon() + +/obj/item/weapon/folder/documents + name = "folder- 'TOP SECRET'" + desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\"" + /obj/item/weapon/folder/documents/Initialize() . = ..() - new /obj/item/documents/nanotrasen(src) - update_icon() - -/obj/item/weapon/folder/syndicate - icon_state = "folder_syndie" - name = "folder- 'TOP SECRET'" - desc = "A folder stamped \"Top Secret - Property of The Syndicate.\"" - -/obj/item/weapon/folder/syndicate/red - icon_state = "folder_sred" - + new /obj/item/documents/nanotrasen(src) + update_icon() + +/obj/item/weapon/folder/syndicate + icon_state = "folder_syndie" + name = "folder- 'TOP SECRET'" + desc = "A folder stamped \"Top Secret - Property of The Syndicate.\"" + +/obj/item/weapon/folder/syndicate/red + icon_state = "folder_sred" + /obj/item/weapon/folder/syndicate/red/Initialize() . = ..() - new /obj/item/documents/syndicate/red(src) - update_icon() - -/obj/item/weapon/folder/syndicate/blue - icon_state = "folder_sblue" - + new /obj/item/documents/syndicate/red(src) + update_icon() + +/obj/item/weapon/folder/syndicate/blue + icon_state = "folder_sblue" + /obj/item/weapon/folder/syndicate/blue/Initialize() . = ..() - new /obj/item/documents/syndicate/blue(src) - update_icon() - + new /obj/item/documents/syndicate/blue(src) + update_icon() + /obj/item/weapon/folder/syndicate/mining/Initialize() . = ..() - new /obj/item/documents/syndicate/mining(src) + new /obj/item/documents/syndicate/mining(src) update_icon() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index c5234bd3a9..eee394edb8 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -383,6 +383,15 @@ . = ..() color = pick("FF0000", "#33cc33", "#ffb366", "#551A8B", "#ff80d5", "#4d94ff") +/* + * Natural paper + */ + +/obj/item/weapon/paper/natural/Initialize() + . = ..() + color = "#FFF5ED" + + /* * Premade paper */ @@ -393,7 +402,7 @@ /obj/item/weapon/paper/Toxin name = "paper- 'Chemical Information'" - info = "Known Onboard Toxins:
    \n\tGrade A Semi-Liquid Plasma:
    \n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
    \n\t\tA gas mask fails to filter plasma after 50 units.
    \n\t\tWill attempt to diffuse like a gas.
    \n\t\tFiltered by scrubbers.
    \n\t\tThere is a bottled version which is very different
    \n\t\t\tfrom the version found in canisters!
    \n
    \n\t\tWARNING: Highly Flammable. Keep away from heat sources
    \n\t\texcept in a enclosed fire area!
    \n\t\tWARNING: It is a crime to use this without authorization.
    \nKnown Onboard Anti-Toxin:
    \n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
    \n\t\tBest if injected directly into bloodstream.
    \n\t\tA full injection is in every regular Med-Kit.
    \n\t\tSpecial toxin Kits hold around 7.
    \n
    \nKnown Onboard Chemicals (other):
    \n\tRejuvenation T#001:
    \n\t\tEven 1 unit injected directly into the bloodstream
    \n\t\t\twill cure paralysis and sleep toxins.
    \n\t\tIf administered to a dying patient it will prevent
    \n\t\t\tfurther damage for about units*3 seconds.
    \n\t\t\tit will not cure them or allow them to be cured.
    \n\t\tIt can be administeredd to a non-dying patient
    \n\t\t\tbut the chemicals disappear just as fast.
    \n\tMorphine T#054:
    \n\t\t5 units wilkl induce precisely 1 minute of sleep.
    \n\t\t\tThe effect are cumulative.
    \n\t\tWARNING: It is a crime to use this without authorization" + info = "Known Onboard Toxins:
    \n\tGrade A Semi-Liquid Plasma:
    \n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
    \n\t\tA gas mask fails to filter plasma after 50 units.
    \n\t\tWill attempt to diffuse like a gas.
    \n\t\tFiltered by scrubbers.
    \n\t\tThere is a bottled version which is very different
    \n\t\t\tfrom the version found in canisters!
    \n
    \n\t\tWARNING: Highly Flammable. Keep away from heat sources
    \n\t\texcept in a enclosed fire area!
    \n\t\tWARNING: It is a crime to use this without authorization.
    \nKnown Onboard Anti-Toxin:
    \n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
    \n\t\tBest if injected directly into bloodstream.
    \n\t\tA full injection is in every regular Med-Kit.
    \n\t\tSpecial toxin Kits hold around 7.
    \n
    \nKnown Onboard Chemicals (other):
    \n\tRejuvenation T#001:
    \n\t\tEven 1 unit injected directly into the bloodstream
    \n\t\t\twill cure unconscious and sleep toxins.
    \n\t\tIf administered to a dying patient it will prevent
    \n\t\t\tfurther damage for about units*3 seconds.
    \n\t\t\tit will not cure them or allow them to be cured.
    \n\t\tIt can be administeredd to a non-dying patient
    \n\t\t\tbut the chemicals disappear just as fast.
    \n\tMorphine T#054:
    \n\t\t5 units wilkl induce precisely 1 minute of sleep.
    \n\t\t\tThe effect are cumulative.
    \n\t\tWARNING: It is a crime to use this without authorization" /obj/item/weapon/paper/courtroom name = "paper- 'A Crash Course in Legal SOP on SS13'" diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 191b60e52d..a9dc698fd8 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -1,144 +1,174 @@ -/obj/item/weapon/paper_bin - name = "paper bin" - desc = "Contains all the paper you'll never need." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "paper_bin1" - item_state = "sheet-metal" - throwforce = 0 - w_class = WEIGHT_CLASS_NORMAL - throw_speed = 3 - throw_range = 7 - pressure_resistance = 8 - var/papertype = /obj/item/weapon/paper - var/total_paper = 30 - var/list/papers = list() - var/obj/item/weapon/pen/bin_pen - -/obj/item/weapon/paper_bin/Initialize(mapload) +/obj/item/weapon/paper_bin + name = "paper bin" + desc = "Contains all the paper you'll never need." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "paper_bin1" + item_state = "sheet-metal" + throwforce = 0 + w_class = WEIGHT_CLASS_NORMAL + throw_speed = 3 + throw_range = 7 + pressure_resistance = 8 + var/papertype = /obj/item/weapon/paper + var/total_paper = 30 + var/list/papers = list() + var/obj/item/weapon/pen/bin_pen + +/obj/item/weapon/paper_bin/Initialize(mapload) . = ..() - if(!mapload) - return - var/obj/item/weapon/pen/P = locate(/obj/item/weapon/pen) in src.loc - if(P && !bin_pen) - P.loc = src - bin_pen = P - update_icon() - var/static/warned = FALSE - if(P.type == /obj/item/weapon/pen && !warned) - warning("one or more paperbins ate a pen duing initialize()") - warned = TRUE - -/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) - if(!total_paper) - return - ..() - -/obj/item/weapon/paper_bin/Destroy() - if(papers) - for(var/i in papers) - qdel(i) - papers = null - . = ..() - -/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) - if(total_paper) - total_paper = 0 - update_icon() - ..() - -/obj/item/weapon/paper_bin/MouseDrop(atom/over_object) - var/mob/living/M = usr - if(!istype(M) || M.incapacitated() || !Adjacent(M)) - return - - if(over_object == M) - M.put_in_hands(src) - - else if(istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - add_fingerprint(M) - - -/obj/item/weapon/paper_bin/attack_paw(mob/user) - return attack_hand(user) - - -/obj/item/weapon/paper_bin/attack_hand(mob/user) - if(user.lying) - return - user.changeNext_move(CLICK_CD_MELEE) - if(bin_pen) - var/obj/item/weapon/pen/P = bin_pen - P.loc = user.loc - user.put_in_hands(P) - to_chat(user, "You take [P] out of \the [src].") - bin_pen = null - update_icon() - else if(total_paper >= 1) - total_paper-- - update_icon() - // If there's any custom paper on the stack, use that instead of creating a new paper. - var/obj/item/weapon/paper/P - if(papers.len > 0) - P = papers[papers.len] - papers.Remove(P) - else - P = new papertype(src) - if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) - if(prob(30)) - P.info = "HONK HONK HONK HONK HONK HONK HONK
    HOOOOOOOOOOOOOOOOOOOOOONK
    APRIL FOOLS
    " - P.rigged = 1 - P.updateinfolinks() - - P.loc = user.loc - user.put_in_hands(P) - to_chat(user, "You take [P] out of \the [src].") - else - to_chat(user, "[src] is empty!") - - add_fingerprint(user) - - -/obj/item/weapon/paper_bin/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/paper)) - var/obj/item/weapon/paper/P = I - if(!user.transferItemToLoc(P, src)) - return - to_chat(user, "You put [P] in [src].") - papers.Add(P) - total_paper++ - update_icon() + if(!mapload) + return + var/obj/item/weapon/pen/P = locate(/obj/item/weapon/pen) in src.loc + if(P && !bin_pen) + P.loc = src + bin_pen = P + update_icon() + var/static/warned = FALSE + if(P.type == /obj/item/weapon/pen && !warned) + warning("one or more paperbins ate a pen duing initialize()") + warned = TRUE + +/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) + if(!total_paper) + return + ..() + +/obj/item/weapon/paper_bin/Destroy() + if(papers) + for(var/i in papers) + qdel(i) + papers = null + . = ..() + +/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume) + if(total_paper) + total_paper = 0 + update_icon() + ..() + +/obj/item/weapon/paper_bin/MouseDrop(atom/over_object) + var/mob/living/M = usr + if(!istype(M) || M.incapacitated() || !Adjacent(M)) + return + + if(over_object == M) + M.put_in_hands(src) + + else if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + + add_fingerprint(M) + + +/obj/item/weapon/paper_bin/attack_paw(mob/user) + return attack_hand(user) + + +/obj/item/weapon/paper_bin/attack_hand(mob/user) + if(user.lying) + return + user.changeNext_move(CLICK_CD_MELEE) + if(bin_pen) + var/obj/item/weapon/pen/P = bin_pen + P.loc = user.loc + user.put_in_hands(P) + to_chat(user, "You take [P] out of \the [src].") + bin_pen = null + update_icon() + else if(total_paper >= 1) + total_paper-- + update_icon() + // If there's any custom paper on the stack, use that instead of creating a new paper. + var/obj/item/weapon/paper/P + if(papers.len > 0) + P = papers[papers.len] + papers.Remove(P) + else + P = new papertype(src) + if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) + if(prob(30)) + P.info = "HONK HONK HONK HONK HONK HONK HONK
    HOOOOOOOOOOOOOOOOOOOOOONK
    APRIL FOOLS
    " + P.rigged = 1 + P.updateinfolinks() + + P.loc = user.loc + user.put_in_hands(P) + to_chat(user, "You take [P] out of \the [src].") + else + to_chat(user, "[src] is empty!") + + add_fingerprint(user) + + +/obj/item/weapon/paper_bin/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = I + if(!user.transferItemToLoc(P, src)) + return + to_chat(user, "You put [P] in [src].") + papers.Add(P) + total_paper++ + update_icon() else if(istype(I, /obj/item/weapon/pen) && !bin_pen) - var/obj/item/weapon/pen/P = I - if(!user.transferItemToLoc(P, src)) - return - to_chat(user, "You put [P] in [src].") - bin_pen = P - update_icon() - else - return ..() - -/obj/item/weapon/paper_bin/examine(mob/user) - ..() - if(total_paper) - to_chat(user, "It contains " + (total_paper > 1 ? "[total_paper] papers" : " one paper")+".") - else - to_chat(user, "It doesn't contain anything.") - - -/obj/item/weapon/paper_bin/update_icon() - if(total_paper < 1) + var/obj/item/weapon/pen/P = I + if(!user.transferItemToLoc(P, src)) + return + to_chat(user, "You put [P] in [src].") + bin_pen = P + update_icon() + else + return ..() + +/obj/item/weapon/paper_bin/examine(mob/user) + ..() + if(total_paper) + to_chat(user, "It contains " + (total_paper > 1 ? "[total_paper] papers" : " one paper")+".") + else + to_chat(user, "It doesn't contain anything.") + + +/obj/item/weapon/paper_bin/update_icon() + if(total_paper < 1) icon_state = "paper_bin0" - else - icon_state = "[initial(icon_state)]" - cut_overlays() - if(bin_pen) + else + icon_state = "[initial(icon_state)]" + cut_overlays() + if(bin_pen) add_overlay(mutable_appearance(bin_pen.icon, bin_pen.icon_state)) - -/obj/item/weapon/paper_bin/construction - name = "construction paper bin" - desc = "Contains all the paper you'll never need, IN COLOR!" - icon_state = "paper_binc" - papertype = /obj/item/weapon/paper/construction \ No newline at end of file + +/obj/item/weapon/paper_bin/construction + name = "construction paper bin" + desc = "Contains all the paper you'll never need, IN COLOR!" + icon_state = "paper_binc" + papertype = /obj/item/weapon/paper/construction + +/obj/item/weapon/paper_bin/bundlenatural + name = "natural paper bundle" + desc = "A bundle of paper created using traditional methods." + icon_state = "paper_bundle" + papertype = /obj/item/weapon/paper/natural + resistance_flags = FLAMMABLE +/obj/item/weapon/paper_bin/bundlenatural/attack_hand(mob/user) + ..() + if(total_paper < 1) + qdel(src) +/obj/item/weapon/paper_bin/bundlenatural/fire_act(exposed_temperature, exposed_volume) + qdel(src) +/obj/item/weapon/paper_bin/bundlenatural/attackby(obj/item/weapon/W, mob/user) + if(W.is_sharp()) + to_chat(user, "You snip \the [src], spilling paper everywhere.") + var/turf/T = get_turf(src.loc) + while(total_paper > 0) + total_paper-- + var/obj/item/weapon/paper/P + if(papers.len > 0) + P = papers[papers.len] + papers -= P + else + P = new papertype() + P.forceMove(T) + CHECK_TICK + qdel(src) + else + ..() \ No newline at end of file diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index a31301427e..473f1620fe 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -32,8 +32,8 @@ internalPaper = null return ..() -/obj/item/weapon/paperplane/suicide_act(mob/user) - user.Stun(10) +/obj/item/weapon/paperplane/suicide_act(mob/living/user) + user.Stun(200) user.visible_message("[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!") user.adjust_blurriness(6) user.adjust_eye_damage(rand(6,8)) @@ -96,7 +96,7 @@ visible_message("\The [src] hits [H] in the eye!") H.adjust_blurriness(6) H.adjust_eye_damage(rand(6,8)) - H.Weaken(2) + H.Knockdown(40) H.emote("scream") /obj/item/weapon/paper/AltClick(mob/living/carbon/user, obj/item/I) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 2bdc8a5310..5f5a8b32d5 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -1,70 +1,70 @@ -/* Pens! - * Contains: - * Pens - * Sleepy Pens - * Parapens - * Edaggers - */ - - -/* - * Pens - */ -/obj/item/weapon/pen - desc = "It's a normal black ink pen." - name = "pen" - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "pen" - item_state = "pen" - slot_flags = SLOT_BELT | SLOT_EARS - throwforce = 0 - w_class = WEIGHT_CLASS_TINY - throw_speed = 3 - throw_range = 7 - materials = list(MAT_METAL=10) - pressure_resistance = 2 - var/colour = "black" //what colour the ink is! - var/traitor_unlock_degrees = 0 - var/degrees = 0 +/* Pens! + * Contains: + * Pens + * Sleepy Pens + * Parapens + * Edaggers + */ + + +/* + * Pens + */ +/obj/item/weapon/pen + desc = "It's a normal black ink pen." + name = "pen" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "pen" + item_state = "pen" + slot_flags = SLOT_BELT | SLOT_EARS + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=10) + pressure_resistance = 2 + var/colour = "black" //what colour the ink is! + var/traitor_unlock_degrees = 0 + var/degrees = 0 var/font = PEN_FONT - -/obj/item/weapon/pen/suicide_act(mob/user) - user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") - return(BRUTELOSS) - -/obj/item/weapon/pen/blue - desc = "It's a normal blue ink pen." - icon_state = "pen_blue" - colour = "blue" - -/obj/item/weapon/pen/red - desc = "It's a normal red ink pen." - icon_state = "pen_red" - colour = "red" - -/obj/item/weapon/pen/invisible - desc = "It's an invisble pen marker." - icon_state = "pen" - colour = "white" - -/obj/item/weapon/pen/fourcolor - desc = "It's a fancy four-color ink pen, set to black." - name = "four-color pen" - colour = "black" - -/obj/item/weapon/pen/fourcolor/attack_self(mob/living/carbon/user) - switch(colour) - if("black") - colour = "red" - if("red") - colour = "green" - if("green") - colour = "blue" - else - colour = "black" - to_chat(user, "\The [src] will now write in [colour].") - desc = "It's a fancy four-color ink pen, set to [colour]." - + +/obj/item/weapon/pen/suicide_act(mob/user) + user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") + return(BRUTELOSS) + +/obj/item/weapon/pen/blue + desc = "It's a normal blue ink pen." + icon_state = "pen_blue" + colour = "blue" + +/obj/item/weapon/pen/red + desc = "It's a normal red ink pen." + icon_state = "pen_red" + colour = "red" + +/obj/item/weapon/pen/invisible + desc = "It's an invisble pen marker." + icon_state = "pen" + colour = "white" + +/obj/item/weapon/pen/fourcolor + desc = "It's a fancy four-color ink pen, set to black." + name = "four-color pen" + colour = "black" + +/obj/item/weapon/pen/fourcolor/attack_self(mob/living/carbon/user) + switch(colour) + if("black") + colour = "red" + if("red") + colour = "green" + if("green") + colour = "blue" + else + colour = "black" + to_chat(user, "\The [src] will now write in [colour].") + desc = "It's a fancy four-color ink pen, set to [colour]." + /obj/item/weapon/pen/fountain name = "fountain pen" desc = "It's a common fountain pen, with a faux wood body." @@ -82,155 +82,147 @@ materials = list(MAT_GOLD = 750) sharpness = IS_SHARP resistance_flags = FIRE_PROOF - var/unique_reskin = TRUE - var/list/skins = list("Oak" = "pen-fountain-o", "Gold" = "pen-fountain-g", "Rosewood" = "pen-fountain-r", "Black and Silver" = "pen-fountain-b","Command Blue" = "pen-fountain-cb") + unique_reskin = list("Oak" = "pen-fountain-o", + "Gold" = "pen-fountain-g", + "Rosewood" = "pen-fountain-r", + "Black and Silver" = "pen-fountain-b", + "Command Blue" = "pen-fountain-cb" + ) -/obj/item/weapon/pen/fountain/captain/AltClick() - var/mob/living/carbon/user = usr - if(!istype(user)) - return - if(unique_reskin) - var/choice = input(user,"Choose the finish for your pen.","Reskin Pen") as null|anything in skins - if(!QDELETED(src) && choice && !user.incapacitated() && in_range(user,src)) - icon_state = skins[choice] - unique_reskin = FALSE - to_chat(user, "Your pen now has a [choice] finish.") - desc = "It's an expensive [choice] fountain pen. The nib is quite sharp." - -/obj/item/weapon/pen/fountain/captain/examine(mob/user) +/obj/item/weapon/pen/fountain/captain/reskin_obj(mob/M) ..() - if(unique_reskin) - to_chat(user, "This item can be reskinned. Alt-click to select a skin.") - -/obj/item/weapon/pen/attack_self(mob/living/carbon/user) - var/deg = input(user, "What angle would you like to rotate the pen head to? (1-360)", "Rotate Pen Head") as null|num - if(deg && (deg > 0 && deg <= 360)) - degrees = deg - to_chat(user, "You rotate the top of the pen to [degrees] degrees.") - if(hidden_uplink && degrees == traitor_unlock_degrees) - to_chat(user, "Your pen makes a clicking noise, before quickly rotating back to 0 degrees!") - degrees = 0 - hidden_uplink.interact(user) - - -/obj/item/weapon/pen/attackby(obj/item/I, mob/user, params) - if(hidden_uplink) - return hidden_uplink.attackby(I, user, params) - else - return ..() - - -/obj/item/weapon/pen/attack(mob/living/M, mob/user,stealth) - if(!istype(M)) - return - - if(!force) - if(M.can_inject(user, 1)) - to_chat(user, "You stab [M] with the pen.") - if(!stealth) - to_chat(M, "You feel a tiny prick!") - . = 1 - - add_logs(user, M, "stabbed", src) - - else - . = ..() - -/obj/item/weapon/pen/afterattack(obj/O, mob/living/user, proximity) - //Changing Name/Description of items. Only works if they have the 'unique_rename' var set - if(isobj(O) && proximity) - if(O.unique_rename) - var/penchoice = input(user, "What would you like to edit?", "Rename or change description?") as null|anything in list("Rename","Change description") - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) - - if(penchoice == "Rename") - var/input = stripped_input(user,"What do you want to name \the [O.name]?", ,"", MAX_NAME_LEN) - var/oldname = O.name - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) - if(oldname == input) - to_chat(user, "You changed \the [O.name] to... well... \the [O.name].") - return - else - O.name = input - to_chat(user, "\The [oldname] has been successfully been renamed to \the [input].") - return - else - to_chat(user, "You are too far away!") - - if(penchoice == "Change description") - var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 100) - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) - O.desc = input - to_chat(user, "You have successfully changed \the [O.name]'s description.") - return - else - to_chat(user, "You are too far away!") - else - to_chat(user, "You are too far away!") - return - else - return - -/* - * Sleepypens - */ -/obj/item/weapon/pen/sleepy - origin_tech = "engineering=4;syndicate=2" - container_type = OPENCONTAINER - - -/obj/item/weapon/pen/sleepy/attack(mob/living/M, mob/user) - if(!istype(M)) - return - - if(..()) - if(reagents.total_volume) - if(M.reagents) - reagents.trans_to(M, reagents.total_volume) - - -/obj/item/weapon/pen/sleepy/New() - create_reagents(45) + if(current_skin) + desc = "It's an expensive [current_skin] fountain pen. The nib is quite sharp." + +/obj/item/weapon/pen/attack_self(mob/living/carbon/user) + var/deg = input(user, "What angle would you like to rotate the pen head to? (1-360)", "Rotate Pen Head") as null|num + if(deg && (deg > 0 && deg <= 360)) + degrees = deg + to_chat(user, "You rotate the top of the pen to [degrees] degrees.") + if(hidden_uplink && degrees == traitor_unlock_degrees) + to_chat(user, "Your pen makes a clicking noise, before quickly rotating back to 0 degrees!") + degrees = 0 + hidden_uplink.interact(user) + + +/obj/item/weapon/pen/attackby(obj/item/I, mob/user, params) + if(hidden_uplink) + return hidden_uplink.attackby(I, user, params) + else + return ..() + + +/obj/item/weapon/pen/attack(mob/living/M, mob/user,stealth) + if(!istype(M)) + return + + if(!force) + if(M.can_inject(user, 1)) + to_chat(user, "You stab [M] with the pen.") + if(!stealth) + to_chat(M, "You feel a tiny prick!") + . = 1 + + add_logs(user, M, "stabbed", src) + + else + . = ..() + +/obj/item/weapon/pen/afterattack(obj/O, mob/living/user, proximity) + //Changing Name/Description of items. Only works if they have the 'unique_rename' var set + if(isobj(O) && proximity) + if(O.unique_rename) + var/penchoice = input(user, "What would you like to edit?", "Rename or change description?") as null|anything in list("Rename","Change description") + if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + + if(penchoice == "Rename") + var/input = stripped_input(user,"What do you want to name \the [O.name]?", ,"", MAX_NAME_LEN) + var/oldname = O.name + if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + if(oldname == input) + to_chat(user, "You changed \the [O.name] to... well... \the [O.name].") + return + else + O.name = input + to_chat(user, "\The [oldname] has been successfully been renamed to \the [input].") + return + else + to_chat(user, "You are too far away!") + + if(penchoice == "Change description") + var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 100) + if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + O.desc = input + to_chat(user, "You have successfully changed \the [O.name]'s description.") + return + else + to_chat(user, "You are too far away!") + else + to_chat(user, "You are too far away!") + return + else + return + +/* + * Sleepypens + */ +/obj/item/weapon/pen/sleepy + origin_tech = "engineering=4;syndicate=2" + container_type = OPENCONTAINER + + +/obj/item/weapon/pen/sleepy/attack(mob/living/M, mob/user) + if(!istype(M)) + return + + if(..()) + if(reagents.total_volume) + if(M.reagents) + reagents.trans_to(M, reagents.total_volume) + + +/obj/item/weapon/pen/sleepy/New() + create_reagents(45) reagents.add_reagent("chloralhydrate2", 20) - reagents.add_reagent("mutetoxin", 15) - reagents.add_reagent("tirizene", 10) - ..() - -/* - * (Alan) Edaggers - */ -/obj/item/weapon/pen/edagger - origin_tech = "combat=3;syndicate=1" - attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off - var/on = 0 - -/obj/item/weapon/pen/edagger/attack_self(mob/living/user) - if(on) - on = 0 - force = initial(force) - w_class = initial(w_class) - name = initial(name) - hitsound = initial(hitsound) - embed_chance = initial(embed_chance) - throwforce = initial(throwforce) - playsound(user, 'sound/weapons/saberoff.ogg', 5, 1) - to_chat(user, "[src] can now be concealed.") - else - on = 1 - force = 18 - w_class = WEIGHT_CLASS_NORMAL - name = "energy dagger" - hitsound = 'sound/weapons/blade1.ogg' - embed_chance = 100 //rule of cool - throwforce = 35 - playsound(user, 'sound/weapons/saberon.ogg', 5, 1) - to_chat(user, "[src] is now active.") - update_icon() - -/obj/item/weapon/pen/edagger/update_icon() - if(on) - icon_state = "edagger" - item_state = "edagger" - else - icon_state = initial(icon_state) //looks like a normal pen when off. - item_state = initial(item_state) + reagents.add_reagent("mutetoxin", 15) + reagents.add_reagent("tirizene", 10) + ..() + +/* + * (Alan) Edaggers + */ +/obj/item/weapon/pen/edagger + origin_tech = "combat=3;syndicate=1" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off + var/on = 0 + +/obj/item/weapon/pen/edagger/attack_self(mob/living/user) + if(on) + on = 0 + force = initial(force) + w_class = initial(w_class) + name = initial(name) + hitsound = initial(hitsound) + embed_chance = initial(embed_chance) + throwforce = initial(throwforce) + playsound(user, 'sound/weapons/saberoff.ogg', 5, 1) + to_chat(user, "[src] can now be concealed.") + else + on = 1 + force = 18 + w_class = WEIGHT_CLASS_NORMAL + name = "energy dagger" + hitsound = 'sound/weapons/blade1.ogg' + embed_chance = 100 //rule of cool + throwforce = 35 + playsound(user, 'sound/weapons/saberon.ogg', 5, 1) + to_chat(user, "[src] is now active.") + update_icon() + +/obj/item/weapon/pen/edagger/update_icon() + if(on) + icon_state = "edagger" + item_state = "edagger" + else + icon_state = initial(icon_state) //looks like a normal pen when off. + item_state = initial(item_state) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index fedf2cf9e6..f49dbc967c 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -1,396 +1,396 @@ -/* Photocopiers! - * Contains: - * Photocopier - * Toner Cartridge - */ - -/* - * Photocopier - */ -/obj/machinery/photocopier - name = "photocopier" - desc = "Used to copy important documents and anatomy studies." - icon = 'icons/obj/library.dmi' - icon_state = "photocopier" - anchored = 1 - density = 1 +/* Photocopiers! + * Contains: + * Photocopier + * Toner Cartridge + */ + +/* + * Photocopier + */ +/obj/machinery/photocopier + name = "photocopier" + desc = "Used to copy important documents and anatomy studies." + icon = 'icons/obj/library.dmi' + icon_state = "photocopier" + anchored = 1 + density = 1 use_power = IDLE_POWER_USE - idle_power_usage = 30 - active_power_usage = 200 - power_channel = EQUIP - obj_integrity = 300 - max_integrity = 300 - integrity_failure = 100 - var/obj/item/weapon/paper/copy = null //what's in the copier! - var/obj/item/weapon/photo/photocopy = null - var/obj/item/documents/doccopy = null - var/copies = 1 //how many copies to print! - var/toner = 40 //how much toner is left! woooooo~ - var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! - var/greytoggle = "Greyscale" - var/mob/living/ass //i can't believe i didn't write a stupid-ass comment about this var when i first coded asscopy. - var/busy = 0 - -/obj/machinery/photocopier/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/photocopier/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/photocopier/attack_hand(mob/user) - user.set_machine(src) - - var/dat = "Photocopier

    " - if(copy || photocopy || doccopy || (ass && (ass.loc == src.loc))) - dat += "Remove Paper
    " - if(toner) - dat += "Copy
    " - dat += "Printing: [copies] copies." - dat += "- " - dat += "+

    " - if(photocopy) - dat += "Printing in [greytoggle]

    " - else if(toner) - dat += "Please insert paper to copy.

    " - if(isAI(user)) - dat += "Print photo from database

    " - dat += "Current toner level: [toner]" - if(!toner) - dat +="
    Please insert a new toner cartridge!" - user << browse(dat, "window=copier") - onclose(user, "copier") - -/obj/machinery/photocopier/Topic(href, href_list) - if(..()) - return - if(href_list["copy"]) - if(copy) - for(var/i = 0, i < copies, i++) - if(toner > 0 && !busy && copy) - var/copy_as_paper = 1 - if(istype(copy, /obj/item/weapon/paper/contract/employment)) - var/obj/item/weapon/paper/contract/employment/E = copy - var/obj/item/weapon/paper/contract/employment/C = new /obj/item/weapon/paper/contract/employment (loc, E.target.current) - if(C) - copy_as_paper = 0 - if(copy_as_paper) - var/obj/item/weapon/paper/c = new /obj/item/weapon/paper (loc) - if(length(copy.info) > 0) //Only print and add content if the copied doc has words on it - if(toner > 10) //lots of toner, make it dark - c.info = "" - else //no toner? shitty copies for you! - c.info = "" - var/copied = copy.info - copied = replacetext(copied, "" - c.name = copy.name - c.fields = copy.fields - c.update_icon() - c.updateinfolinks() - c.stamps = copy.stamps - if(copy.stamped) - c.stamped = copy.stamped.Copy() - c.copy_overlays(copy, TRUE) - toner-- - busy = 1 - sleep(15) - busy = 0 - else - break - updateUsrDialog() - else if(photocopy) - for(var/i = 0, i < copies, i++) - if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink - var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) - var/icon/I = icon(photocopy.icon, photocopy.icon_state) - var/icon/img = icon(photocopy.img) - if(greytoggle == "Greyscale") - if(toner > 10) //plenty of toner, go straight greyscale - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - else //not much toner left, lighten the photo - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - toner -= 5 //photos use a lot of ink! - else if(greytoggle == "Color") - if(toner >= 10) - toner -= 10 //Color photos use even more ink! - else - continue - p.icon = I - p.img = img - p.name = photocopy.name - p.desc = photocopy.desc - p.scribble = photocopy.scribble - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - p.blueprints = photocopy.blueprints //a copy of a picture is still good enough for the syndicate - busy = 1 - sleep(15) - busy = 0 - else - break - else if(doccopy) - for(var/i = 0, i < copies, i++) - if(toner > 5 && !busy && doccopy) - new /obj/item/documents/photocopy(loc, doccopy) - toner-= 6 // the sprite shows 6 papers, yes I checked - busy = 1 - sleep(15) - busy = 0 - else - break - updateUsrDialog() - else if(ass) //ASS COPY. By Miauw - for(var/i = 0, i < copies, i++) - var/icon/temp_img - if(ishuman(ass) && (ass.get_item_by_slot(slot_w_uniform) || ass.get_item_by_slot(slot_wear_suit))) - to_chat(usr, "You feel kind of silly, copying [ass == usr ? "your" : ass][ass == usr ? "" : "\'s"] ass with [ass == usr ? "your" : "their"] clothes on." ) - break - else if(toner >= 5 && !busy && check_ass()) //You have to be sitting on the copier and either be a xeno or a human without clothes on. - if(isalienadult(ass) || istype(ass,/mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. - temp_img = icon('icons/ass/assalien.png') - else if(ishuman(ass)) //Suit checks are in check_ass - if(ass.gender == MALE) - temp_img = icon('icons/ass/assmale.png') - else if(ass.gender == FEMALE) - temp_img = icon('icons/ass/assfemale.png') - else //In case anyone ever makes the generic ass. For now I'll be using male asses. - temp_img = icon('icons/ass/assmale.png') - else if(isdrone(ass)) //Drones are hot - temp_img = icon('icons/ass/assdrone.png') - else - break - var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) - p.desc = "You see [ass]'s ass on the photo." - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - p.img = temp_img - var/icon/small_img = icon(temp_img) //Icon() is needed or else temp_img will be rescaled too >.> - var/icon/ic = icon('icons/obj/items.dmi',"photo") - small_img.Scale(8, 8) + idle_power_usage = 30 + active_power_usage = 200 + power_channel = EQUIP + obj_integrity = 300 + max_integrity = 300 + integrity_failure = 100 + var/obj/item/weapon/paper/copy = null //what's in the copier! + var/obj/item/weapon/photo/photocopy = null + var/obj/item/documents/doccopy = null + var/copies = 1 //how many copies to print! + var/toner = 40 //how much toner is left! woooooo~ + var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! + var/greytoggle = "Greyscale" + var/mob/living/ass //i can't believe i didn't write a stupid-ass comment about this var when i first coded asscopy. + var/busy = 0 + +/obj/machinery/photocopier/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/photocopier/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/photocopier/attack_hand(mob/user) + user.set_machine(src) + + var/dat = "Photocopier

    " + if(copy || photocopy || doccopy || (ass && (ass.loc == src.loc))) + dat += "Remove Paper
    " + if(toner) + dat += "Copy
    " + dat += "Printing: [copies] copies." + dat += "- " + dat += "+

    " + if(photocopy) + dat += "Printing in [greytoggle]

    " + else if(toner) + dat += "Please insert paper to copy.

    " + if(isAI(user)) + dat += "Print photo from database

    " + dat += "Current toner level: [toner]" + if(!toner) + dat +="
    Please insert a new toner cartridge!" + user << browse(dat, "window=copier") + onclose(user, "copier") + +/obj/machinery/photocopier/Topic(href, href_list) + if(..()) + return + if(href_list["copy"]) + if(copy) + for(var/i = 0, i < copies, i++) + if(toner > 0 && !busy && copy) + var/copy_as_paper = 1 + if(istype(copy, /obj/item/weapon/paper/contract/employment)) + var/obj/item/weapon/paper/contract/employment/E = copy + var/obj/item/weapon/paper/contract/employment/C = new /obj/item/weapon/paper/contract/employment (loc, E.target.current) + if(C) + copy_as_paper = 0 + if(copy_as_paper) + var/obj/item/weapon/paper/c = new /obj/item/weapon/paper (loc) + if(length(copy.info) > 0) //Only print and add content if the copied doc has words on it + if(toner > 10) //lots of toner, make it dark + c.info = "" + else //no toner? shitty copies for you! + c.info = "" + var/copied = copy.info + copied = replacetext(copied, "" + c.name = copy.name + c.fields = copy.fields + c.update_icon() + c.updateinfolinks() + c.stamps = copy.stamps + if(copy.stamped) + c.stamped = copy.stamped.Copy() + c.copy_overlays(copy, TRUE) + toner-- + busy = 1 + sleep(15) + busy = 0 + else + break + updateUsrDialog() + else if(photocopy) + for(var/i = 0, i < copies, i++) + if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink + var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) + var/icon/I = icon(photocopy.icon, photocopy.icon_state) + var/icon/img = icon(photocopy.img) + if(greytoggle == "Greyscale") + if(toner > 10) //plenty of toner, go straight greyscale + I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. + img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + else //not much toner left, lighten the photo + I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + toner -= 5 //photos use a lot of ink! + else if(greytoggle == "Color") + if(toner >= 10) + toner -= 10 //Color photos use even more ink! + else + continue + p.icon = I + p.img = img + p.name = photocopy.name + p.desc = photocopy.desc + p.scribble = photocopy.scribble + p.pixel_x = rand(-10, 10) + p.pixel_y = rand(-10, 10) + p.blueprints = photocopy.blueprints //a copy of a picture is still good enough for the syndicate + busy = 1 + sleep(15) + busy = 0 + else + break + else if(doccopy) + for(var/i = 0, i < copies, i++) + if(toner > 5 && !busy && doccopy) + new /obj/item/documents/photocopy(loc, doccopy) + toner-= 6 // the sprite shows 6 papers, yes I checked + busy = 1 + sleep(15) + busy = 0 + else + break + updateUsrDialog() + else if(ass) //ASS COPY. By Miauw + for(var/i = 0, i < copies, i++) + var/icon/temp_img + if(ishuman(ass) && (ass.get_item_by_slot(slot_w_uniform) || ass.get_item_by_slot(slot_wear_suit))) + to_chat(usr, "You feel kind of silly, copying [ass == usr ? "your" : ass][ass == usr ? "" : "\'s"] ass with [ass == usr ? "your" : "their"] clothes on." ) + break + else if(toner >= 5 && !busy && check_ass()) //You have to be sitting on the copier and either be a xeno or a human without clothes on. + if(isalienadult(ass) || istype(ass,/mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. + temp_img = icon('icons/ass/assalien.png') + else if(ishuman(ass)) //Suit checks are in check_ass + if(ass.gender == MALE) + temp_img = icon('icons/ass/assmale.png') + else if(ass.gender == FEMALE) + temp_img = icon('icons/ass/assfemale.png') + else //In case anyone ever makes the generic ass. For now I'll be using male asses. + temp_img = icon('icons/ass/assmale.png') + else if(isdrone(ass)) //Drones are hot + temp_img = icon('icons/ass/assdrone.png') + else + break + var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) + p.desc = "You see [ass]'s ass on the photo." + p.pixel_x = rand(-10, 10) + p.pixel_y = rand(-10, 10) + p.img = temp_img + var/icon/small_img = icon(temp_img) //Icon() is needed or else temp_img will be rescaled too >.> + var/icon/ic = icon('icons/obj/items.dmi',"photo") + small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) - p.icon = ic - toner -= 5 - busy = 1 - sleep(15) - busy = 0 - else - break - updateUsrDialog() - else if(href_list["remove"]) - if(copy) - remove_photocopy(copy, usr) - copy = null - else if(photocopy) - remove_photocopy(photocopy, usr) - photocopy = null - else if(doccopy) - remove_photocopy(doccopy, usr) - doccopy = null - else if(check_ass()) - to_chat(ass, "You feel a slight pressure on your ass.") - updateUsrDialog() - else if(href_list["min"]) - if(copies > 1) - copies-- - updateUsrDialog() - else if(href_list["add"]) - if(copies < maxcopies) - copies++ - updateUsrDialog() - else if(href_list["aipic"]) - if(!isAI(usr)) - return - if(toner >= 5 && !busy) - var/list/nametemp = list() - var/find - var/datum/picture/selection - var/mob/living/silicon/ai/tempAI = usr - if(tempAI.aicamera.aipictures.len == 0) - to_chat(usr, "No images saved") - return - for(var/datum/picture/t in tempAI.aicamera.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) - for(var/datum/picture/q in tempAI.aicamera.aipictures) - if(q.fields["name"] == find) - selection = q - break - var/icon/I = selection.fields["icon"] - var/icon/img = selection.fields["img"] - p.icon = I - p.img = img - p.desc = selection.fields["desc"] - p.blueprints = selection.fields["blueprints"] - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - toner -= 5 //AI prints color pictures only, thus they can do it more efficiently - busy = 1 - sleep(15) - busy = 0 - updateUsrDialog() - else if(href_list["colortoggle"]) - if(greytoggle == "Greyscale") - greytoggle = "Color" - else - greytoggle = "Greyscale" - updateUsrDialog() - -/obj/machinery/photocopier/proc/do_insertion(obj/item/O, mob/user) - O.loc = src - to_chat(user, "You insert [O] into [src].") - flick("photocopier1", src) - updateUsrDialog() - -/obj/machinery/photocopier/proc/remove_photocopy(obj/item/O, mob/user) - if(!issilicon(user)) //surprised this check didn't exist before, putting stuff in AI's hand is bad - O.loc = user.loc - user.put_in_hands(O) - else - O.loc = src.loc - to_chat(user, "You take [O] out of [src].") - -/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/paper)) - if(copier_empty()) - if(istype(O,/obj/item/weapon/paper/contract/infernal)) - to_chat(user, "[src] smokes, smelling of brimstone!") - resistance_flags |= FLAMMABLE - fire_act() - else - if(!user.drop_item()) - return - copy = O - do_insertion(O, user) - else - to_chat(user, "There is already something in [src]!") - - else if(istype(O, /obj/item/weapon/photo)) - if(copier_empty()) - if(!user.drop_item()) - return - photocopy = O - do_insertion(O, user) - else - to_chat(user, "There is already something in [src]!") - - else if(istype(O, /obj/item/documents)) - if(copier_empty()) - if(!user.drop_item()) - return - doccopy = O - do_insertion(O, user) - else - to_chat(user, "There is already something in [src]!") - - else if(istype(O, /obj/item/device/toner)) - if(toner <= 0) - if(!user.drop_item()) - return - qdel(O) - toner = 40 - to_chat(user, "You insert [O] into [src].") - updateUsrDialog() - else - to_chat(user, "This cartridge is not yet ready for replacement! Use up the rest of the toner.") - - else if(istype(O, /obj/item/weapon/wrench)) - if(isinspace()) - to_chat(user, "There's nothing to fasten [src] to!") - return - playsound(loc, O.usesound, 50, 1) - to_chat(user, "You start [anchored ? "unwrenching" : "wrenching"] [src]...") - if(do_after(user, 20*O.toolspeed, target = src)) - if(QDELETED(src)) - return - to_chat(user, "You [anchored ? "unwrench" : "wrench"] [src].") - anchored = !anchored + p.icon = ic + toner -= 5 + busy = 1 + sleep(15) + busy = 0 + else + break + updateUsrDialog() + else if(href_list["remove"]) + if(copy) + remove_photocopy(copy, usr) + copy = null + else if(photocopy) + remove_photocopy(photocopy, usr) + photocopy = null + else if(doccopy) + remove_photocopy(doccopy, usr) + doccopy = null + else if(check_ass()) + to_chat(ass, "You feel a slight pressure on your ass.") + updateUsrDialog() + else if(href_list["min"]) + if(copies > 1) + copies-- + updateUsrDialog() + else if(href_list["add"]) + if(copies < maxcopies) + copies++ + updateUsrDialog() + else if(href_list["aipic"]) + if(!isAI(usr)) + return + if(toner >= 5 && !busy) + var/list/nametemp = list() + var/find + var/datum/picture/selection + var/mob/living/silicon/ai/tempAI = usr + if(tempAI.aicamera.aipictures.len == 0) + to_chat(usr, "No images saved") + return + for(var/datum/picture/t in tempAI.aicamera.aipictures) + nametemp += t.fields["name"] + find = input("Select image (numbered in order taken)") in nametemp + var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc) + for(var/datum/picture/q in tempAI.aicamera.aipictures) + if(q.fields["name"] == find) + selection = q + break + var/icon/I = selection.fields["icon"] + var/icon/img = selection.fields["img"] + p.icon = I + p.img = img + p.desc = selection.fields["desc"] + p.blueprints = selection.fields["blueprints"] + p.pixel_x = rand(-10, 10) + p.pixel_y = rand(-10, 10) + toner -= 5 //AI prints color pictures only, thus they can do it more efficiently + busy = 1 + sleep(15) + busy = 0 + updateUsrDialog() + else if(href_list["colortoggle"]) + if(greytoggle == "Greyscale") + greytoggle = "Color" + else + greytoggle = "Greyscale" + updateUsrDialog() + +/obj/machinery/photocopier/proc/do_insertion(obj/item/O, mob/user) + O.loc = src + to_chat(user, "You insert [O] into [src].") + flick("photocopier1", src) + updateUsrDialog() + +/obj/machinery/photocopier/proc/remove_photocopy(obj/item/O, mob/user) + if(!issilicon(user)) //surprised this check didn't exist before, putting stuff in AI's hand is bad + O.loc = user.loc + user.put_in_hands(O) + else + O.loc = src.loc + to_chat(user, "You take [O] out of [src].") + +/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/paper)) + if(copier_empty()) + if(istype(O,/obj/item/weapon/paper/contract/infernal)) + to_chat(user, "[src] smokes, smelling of brimstone!") + resistance_flags |= FLAMMABLE + fire_act() + else + if(!user.drop_item()) + return + copy = O + do_insertion(O, user) + else + to_chat(user, "There is already something in [src]!") + + else if(istype(O, /obj/item/weapon/photo)) + if(copier_empty()) + if(!user.drop_item()) + return + photocopy = O + do_insertion(O, user) + else + to_chat(user, "There is already something in [src]!") + + else if(istype(O, /obj/item/documents)) + if(copier_empty()) + if(!user.drop_item()) + return + doccopy = O + do_insertion(O, user) + else + to_chat(user, "There is already something in [src]!") + + else if(istype(O, /obj/item/device/toner)) + if(toner <= 0) + if(!user.drop_item()) + return + qdel(O) + toner = 40 + to_chat(user, "You insert [O] into [src].") + updateUsrDialog() + else + to_chat(user, "This cartridge is not yet ready for replacement! Use up the rest of the toner.") + + else if(istype(O, /obj/item/weapon/wrench)) + if(isinspace()) + to_chat(user, "There's nothing to fasten [src] to!") + return + playsound(loc, O.usesound, 50, 1) + to_chat(user, "You start [anchored ? "unwrenching" : "wrenching"] [src]...") + if(do_after(user, 20*O.toolspeed, target = src)) + if(QDELETED(src)) + return + to_chat(user, "You [anchored ? "unwrench" : "wrench"] [src].") + anchored = !anchored else if(istype(O, /obj/item/areaeditor/blueprints)) to_chat(user, "The Blueprint is too large to put into the copier. You need to find something else to record the document") - else - return ..() - -/obj/machinery/photocopier/obj_break(damage_flag) - if(!(flags & NODECONSTRUCT)) - if(toner > 0) - new /obj/effect/decal/cleanable/oil(get_turf(src)) - toner = 0 - -/obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user) - check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off. - if (!istype(target) || target.anchored || target.buckled || !Adjacent(user) || !Adjacent(target) || !user.canUseTopic(src, 1) || target == ass || copier_blocked()) - return - src.add_fingerprint(user) - if(target == user) - user.visible_message("[user] starts climbing onto the photocopier!", "You start climbing onto the photocopier...") - else - user.visible_message("[user] starts putting [target] onto the photocopier!", "You start putting [target] onto the photocopier...") - - if(do_after(user, 20, target = src)) - if(!target || QDELETED(target) || QDELETED(src) || !Adjacent(target)) //check if the photocopier/target still exists. - return - - if(target == user) - user.visible_message("[user] climbs onto the photocopier!", "You climb onto the photocopier.") - else - user.visible_message("[user] puts [target] onto the photocopier!", "You put [target] onto the photocopier.") - - target.loc = get_turf(src) - ass = target - - if(photocopy) - photocopy.loc = src.loc - visible_message("[photocopy] is shoved out of the way by [ass]!") - photocopy = null - - else if(copy) - copy.loc = src.loc - visible_message("[copy] is shoved out of the way by [ass]!") - copy = null - updateUsrDialog() - -/obj/machinery/photocopier/proc/check_ass() //I'm not sure wether I made this proc because it's good form or because of the name. - if(!ass) - return 0 - if(ass.loc != src.loc) - ass = null - updateUsrDialog() - return 0 - else if(ishuman(ass)) - if(!ass.get_item_by_slot(slot_w_uniform) && !ass.get_item_by_slot(slot_wear_suit)) - return 1 - else - return 0 - else - return 1 - -/obj/machinery/photocopier/proc/copier_blocked() - if(QDELETED(src)) - return - if(loc.density) - return 1 - for(var/atom/movable/AM in loc) - if(AM == src) - continue - if(AM.density) - return 1 - return 0 - -/obj/machinery/photocopier/proc/copier_empty() - if(copy || photocopy || check_ass()) - return 0 - else - return 1 - -/* - * Toner cartridge - */ -/obj/item/device/toner - name = "toner cartridge" - icon_state = "tonercartridge" - var/charges = 5 - var/max_charges = 5 + else + return ..() + +/obj/machinery/photocopier/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + if(toner > 0) + new /obj/effect/decal/cleanable/oil(get_turf(src)) + toner = 0 + +/obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user) + check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off. + if (!istype(target) || target.anchored || target.buckled || !Adjacent(user) || !Adjacent(target) || !user.canUseTopic(src, 1) || target == ass || copier_blocked()) + return + src.add_fingerprint(user) + if(target == user) + user.visible_message("[user] starts climbing onto the photocopier!", "You start climbing onto the photocopier...") + else + user.visible_message("[user] starts putting [target] onto the photocopier!", "You start putting [target] onto the photocopier...") + + if(do_after(user, 20, target = src)) + if(!target || QDELETED(target) || QDELETED(src) || !Adjacent(target)) //check if the photocopier/target still exists. + return + + if(target == user) + user.visible_message("[user] climbs onto the photocopier!", "You climb onto the photocopier.") + else + user.visible_message("[user] puts [target] onto the photocopier!", "You put [target] onto the photocopier.") + + target.loc = get_turf(src) + ass = target + + if(photocopy) + photocopy.loc = src.loc + visible_message("[photocopy] is shoved out of the way by [ass]!") + photocopy = null + + else if(copy) + copy.loc = src.loc + visible_message("[copy] is shoved out of the way by [ass]!") + copy = null + updateUsrDialog() + +/obj/machinery/photocopier/proc/check_ass() //I'm not sure wether I made this proc because it's good form or because of the name. + if(!ass) + return 0 + if(ass.loc != src.loc) + ass = null + updateUsrDialog() + return 0 + else if(ishuman(ass)) + if(!ass.get_item_by_slot(slot_w_uniform) && !ass.get_item_by_slot(slot_wear_suit)) + return 1 + else + return 0 + else + return 1 + +/obj/machinery/photocopier/proc/copier_blocked() + if(QDELETED(src)) + return + if(loc.density) + return 1 + for(var/atom/movable/AM in loc) + if(AM == src) + continue + if(AM.density) + return 1 + return 0 + +/obj/machinery/photocopier/proc/copier_empty() + if(copy || photocopy || check_ass()) + return 0 + else + return 1 + +/* + * Toner cartridge + */ +/obj/item/device/toner + name = "toner cartridge" + icon_state = "tonercartridge" + var/charges = 5 + var/max_charges = 5 diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index c5e18ccd5a..c9c41c4184 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -1,557 +1,557 @@ -/* Photography! - * Contains: - * Camera - * Camera Film - * Photos - * Photo Albums - * Picture Frames - * AI Photography - */ - -/* - * Film - */ -/obj/item/device/camera_film - name = "film cartridge" - icon = 'icons/obj/items.dmi' - desc = "A camera film cartridge. Insert it into a camera to reload it." - icon_state = "film" - item_state = "electropack" - w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE - -/* - * Photo - */ -/obj/item/weapon/photo - name = "photo" - icon = 'icons/obj/items.dmi' - icon_state = "photo" - item_state = "paper" - w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE - obj_integrity = 50 - max_integrity = 50 - var/icon/img //Big photo image - var/scribble //Scribble on the back. - var/blueprints = 0 //Does it include the blueprints? - var/sillynewscastervar //Photo objects with this set to 1 will not be ejected by a newscaster. Only gets set to 1 if a silicon puts one of their images into a newscaster - - -/obj/item/weapon/photo/attack_self(mob/user) - user.examinate(src) - - -/obj/item/weapon/photo/attackby(obj/item/weapon/P, mob/user, params) - if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) - var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text) - txt = copytext(txt, 1, 128) - if(loc == user && user.stat == 0) - scribble = txt - ..() - - -/obj/item/weapon/photo/examine(mob/user) - ..() - - if(in_range(src, user)) - show(user) - else - to_chat(user, "You need to get closer to get a good look at this photo!") - - -/obj/item/weapon/photo/proc/show(mob/user) - user << browse_rsc(img, "tmp_photo.png") - user << browse("[name]" \ - + "" \ - + "" \ - + "[scribble ? "
    Written on the back:
    [scribble]" : ""]"\ - + "", "window=book;size=192x[scribble ? 400 : 192]") - onclose(user, "[name]") - - -/obj/item/weapon/photo/verb/rename() - set name = "Rename photo" - set category = "Object" - set src in usr - - var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) - //loc.loc check is for making possible renaming photos in clipboards - if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0 && usr.canmove && !usr.restrained()) - name = "photo[(n_name ? text("- '[n_name]'") : null)]" - add_fingerprint(usr) - -/obj/item/weapon/photo/proc/photocreate(inicon, inimg, indesc, inblueprints) - icon = inicon - img = inimg - desc = indesc - blueprints = inblueprints - -/* - * Photo album - */ -/obj/item/weapon/storage/photo_album - name = "photo album" - icon = 'icons/obj/items.dmi' - icon_state = "album" - item_state = "briefcase" - can_hold = list(/obj/item/weapon/photo) - resistance_flags = FLAMMABLE - -/* - * Camera - */ -/obj/item/device/camera - name = "camera" - icon = 'icons/obj/items.dmi' - desc = "A polaroid camera." - icon_state = "camera" - item_state = "electropack" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - slot_flags = SLOT_BELT - materials = list(MAT_METAL=2000) - var/pictures_max = 10 - var/pictures_left = 10 - var/on = 1 - var/blueprints = 0 //are blueprints visible in the current photo being created? - var/list/aipictures = list() //Allows for storage of pictures taken by AI, in a similar manner the datacore stores info. Keeping this here allows us to share some procs w/ regualar camera - var/see_ghosts = 0 //for the spoop of it - - -/obj/item/device/camera/CheckParts(list/parts_list) - ..() - var/obj/item/device/camera/C = locate(/obj/item/device/camera) in contents - if(C) - pictures_max = C.pictures_max - pictures_left = C.pictures_left - visible_message("[C] has been imbued with godlike power!") - qdel(C) - - -/obj/item/device/camera/spooky - name = "camera obscura" - desc = "A polaroid camera, some say it can see ghosts!" - see_ghosts = 1 - -/obj/item/device/camera/detective - name = "Detective's camera" - desc = "A polaroid camera with extra capacity for crime investigations." - pictures_max = 30 - pictures_left = 30 - - -/obj/item/device/camera/siliconcam //camera AI can take pictures with - name = "silicon photo camera" - var/in_camera_mode = 0 - -/obj/item/device/camera/siliconcam/ai_camera //camera AI can take pictures with - name = "AI photo camera" - -/obj/item/device/camera/siliconcam/robot_camera //camera cyborgs can take pictures with.. needs it's own because of verb CATEGORY >.> - name = "Cyborg photo camera" - -/obj/item/device/camera/siliconcam/robot_camera/verb/borgprinting() - set category ="Robot Commands" - set name = "Print Image" - set src in usr - - if(usr.stat == DEAD) - return //won't work if dead - borgprint() - -/obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user) - return - - -/obj/item/device/camera/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/camera_film)) - if(pictures_left) - to_chat(user, "[src] still has some film in it!") - return - if(!user.temporarilyRemoveItemFromInventory(I)) - return - to_chat(user, "You insert [I] into [src].") - qdel(I) - pictures_left = pictures_max - return - ..() - - -/obj/item/device/camera/examine(mob/user) - ..() - to_chat(user, "It has [pictures_left] photos left.") - - -/obj/item/device/camera/proc/camera_get_icon(list/turfs, turf/center) - var/atoms[] = list() - for(var/turf/T in turfs) - atoms.Add(T) - for(var/atom/movable/A in T) - if(A.invisibility) - if(see_ghosts && isobserver(A)) - var/mob/dead/observer/O = A - if(O.orbiting) //so you dont see ghosts following people like antags, etc. - continue - else - continue - atoms.Add(A) - - var/list/sorted = list() - var/j - for(var/i = 1 to atoms.len) - var/atom/c = atoms[i] - for(j = sorted.len, j > 0, --j) - var/atom/c2 = sorted[j] - if(c2.layer <= c.layer) - break - sorted.Insert(j+1, c) - - var/icon/res = icon('icons/effects/96x96.dmi', "") - - for(var/atom/A in sorted) - var/icon/img = getFlatIcon(A) - if(isliving(A)) - var/mob/living/L = A - if(L.lying) - img.Turn(L.lying) - - var/offX = 32 * (A.x - center.x) + A.pixel_x + 33 - var/offY = 32 * (A.y - center.y) + A.pixel_y + 33 - if(istype(A, /atom/movable)) - offX += A:step_x - offY += A:step_y - - res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY) - - if(istype(A, /obj/item/areaeditor/blueprints)) - blueprints = 1 - - for(var/turf/T in turfs) - res.Blend(getFlatIcon(T.loc), blendMode2iconMode(T.blend_mode), 32 * (T.x - center.x) + 33, 32 * (T.y - center.y) + 33) - - return res - - -/obj/item/device/camera/proc/camera_get_mobs(turf/the_turf) - var/mob_detail - for(var/mob/M in the_turf) - if(M.invisibility) - if(see_ghosts && isobserver(M)) - var/mob/dead/observer/O = M - if(O.orbiting) - continue - if(!mob_detail) - mob_detail = "You can see a g-g-g-g-ghooooost! " - else - mob_detail += "You can also see a g-g-g-g-ghooooost!" - else - continue - - var/list/holding = list() - - if(isliving(M)) - var/mob/living/L = M - - for(var/obj/item/I in L.held_items) - if(!holding) - holding += "[L.p_they(TRUE)] [L.p_are()] holding \a [I]" - else - holding += " and \a [I]" - holding = holding.Join() - - if(!mob_detail) - mob_detail = "You can see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]. " - else - mob_detail += "You can also see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]." - - - return mob_detail - - -/obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image - var/mobs = "" - var/isAi = isAI(user) - var/list/seen - if(!isAi) //crappy check, but without it AI photos would be subject to line of sight from the AI Eye object. Made the best of it by moving the sec camera check inside - if(user.client) //To make shooting through security cameras possible - seen = get_hear(world.view, user.client.eye) //To make shooting through security cameras possible - else - seen = get_hear(world.view, user) - else - seen = get_hear(world.view, target) - - var/list/turfs = list() - for(var/turf/T in range(1, target)) - if(T in seen) - if(isAi && !GLOB.cameranet.checkTurfVis(T)) - continue - else - turfs += T - mobs += camera_get_mobs(T) - - var/icon/temp = icon('icons/effects/96x96.dmi',"") - temp.Blend("#000", ICON_OVERLAY) - temp.Blend(camera_get_icon(turfs, target), ICON_OVERLAY) - - if(!issilicon(user)) - printpicture(user, temp, mobs, flag) - else - aipicture(user, temp, mobs, isAi, blueprints) - - - - -/obj/item/device/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos - var/obj/item/weapon/photo/P = new/obj/item/weapon/photo(get_turf(src)) - if(in_range(src, user)) //needed because of TK - user.put_in_hands(P) - var/icon/small_img = icon(temp) - var/icon/ic = icon('icons/obj/items.dmi',"photo") - small_img.Scale(8, 8) +/* Photography! + * Contains: + * Camera + * Camera Film + * Photos + * Photo Albums + * Picture Frames + * AI Photography + */ + +/* + * Film + */ +/obj/item/device/camera_film + name = "film cartridge" + icon = 'icons/obj/items.dmi' + desc = "A camera film cartridge. Insert it into a camera to reload it." + icon_state = "film" + item_state = "electropack" + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + +/* + * Photo + */ +/obj/item/weapon/photo + name = "photo" + icon = 'icons/obj/items.dmi' + icon_state = "photo" + item_state = "paper" + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 + var/icon/img //Big photo image + var/scribble //Scribble on the back. + var/blueprints = 0 //Does it include the blueprints? + var/sillynewscastervar //Photo objects with this set to 1 will not be ejected by a newscaster. Only gets set to 1 if a silicon puts one of their images into a newscaster + + +/obj/item/weapon/photo/attack_self(mob/user) + user.examinate(src) + + +/obj/item/weapon/photo/attackby(obj/item/weapon/P, mob/user, params) + if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) + var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text) + txt = copytext(txt, 1, 128) + if(loc == user && user.stat == 0) + scribble = txt + ..() + + +/obj/item/weapon/photo/examine(mob/user) + ..() + + if(in_range(src, user)) + show(user) + else + to_chat(user, "You need to get closer to get a good look at this photo!") + + +/obj/item/weapon/photo/proc/show(mob/user) + user << browse_rsc(img, "tmp_photo.png") + user << browse("[name]" \ + + "" \ + + "" \ + + "[scribble ? "
    Written on the back:
    [scribble]" : ""]"\ + + "", "window=book;size=192x[scribble ? 400 : 192]") + onclose(user, "[name]") + + +/obj/item/weapon/photo/verb/rename() + set name = "Rename photo" + set category = "Object" + set src in usr + + var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) + //loc.loc check is for making possible renaming photos in clipboards + if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0 && usr.canmove && !usr.restrained()) + name = "photo[(n_name ? text("- '[n_name]'") : null)]" + add_fingerprint(usr) + +/obj/item/weapon/photo/proc/photocreate(inicon, inimg, indesc, inblueprints) + icon = inicon + img = inimg + desc = indesc + blueprints = inblueprints + +/* + * Photo album + */ +/obj/item/weapon/storage/photo_album + name = "photo album" + icon = 'icons/obj/items.dmi' + icon_state = "album" + item_state = "briefcase" + can_hold = list(/obj/item/weapon/photo) + resistance_flags = FLAMMABLE + +/* + * Camera + */ +/obj/item/device/camera + name = "camera" + icon = 'icons/obj/items.dmi' + desc = "A polaroid camera." + icon_state = "camera" + item_state = "electropack" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + slot_flags = SLOT_BELT + materials = list(MAT_METAL=2000) + var/pictures_max = 10 + var/pictures_left = 10 + var/on = 1 + var/blueprints = 0 //are blueprints visible in the current photo being created? + var/list/aipictures = list() //Allows for storage of pictures taken by AI, in a similar manner the datacore stores info. Keeping this here allows us to share some procs w/ regualar camera + var/see_ghosts = 0 //for the spoop of it + + +/obj/item/device/camera/CheckParts(list/parts_list) + ..() + var/obj/item/device/camera/C = locate(/obj/item/device/camera) in contents + if(C) + pictures_max = C.pictures_max + pictures_left = C.pictures_left + visible_message("[C] has been imbued with godlike power!") + qdel(C) + + +/obj/item/device/camera/spooky + name = "camera obscura" + desc = "A polaroid camera, some say it can see ghosts!" + see_ghosts = 1 + +/obj/item/device/camera/detective + name = "Detective's camera" + desc = "A polaroid camera with extra capacity for crime investigations." + pictures_max = 30 + pictures_left = 30 + + +/obj/item/device/camera/siliconcam //camera AI can take pictures with + name = "silicon photo camera" + var/in_camera_mode = 0 + +/obj/item/device/camera/siliconcam/ai_camera //camera AI can take pictures with + name = "AI photo camera" + +/obj/item/device/camera/siliconcam/robot_camera //camera cyborgs can take pictures with.. needs it's own because of verb CATEGORY >.> + name = "Cyborg photo camera" + +/obj/item/device/camera/siliconcam/robot_camera/verb/borgprinting() + set category ="Robot Commands" + set name = "Print Image" + set src in usr + + if(usr.stat == DEAD) + return //won't work if dead + borgprint() + +/obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user) + return + + +/obj/item/device/camera/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/camera_film)) + if(pictures_left) + to_chat(user, "[src] still has some film in it!") + return + if(!user.temporarilyRemoveItemFromInventory(I)) + return + to_chat(user, "You insert [I] into [src].") + qdel(I) + pictures_left = pictures_max + return + ..() + + +/obj/item/device/camera/examine(mob/user) + ..() + to_chat(user, "It has [pictures_left] photos left.") + + +/obj/item/device/camera/proc/camera_get_icon(list/turfs, turf/center) + var/atoms[] = list() + for(var/turf/T in turfs) + atoms.Add(T) + for(var/atom/movable/A in T) + if(A.invisibility) + if(see_ghosts && isobserver(A)) + var/mob/dead/observer/O = A + if(O.orbiting) //so you dont see ghosts following people like antags, etc. + continue + else + continue + atoms.Add(A) + + var/list/sorted = list() + var/j + for(var/i = 1 to atoms.len) + var/atom/c = atoms[i] + for(j = sorted.len, j > 0, --j) + var/atom/c2 = sorted[j] + if(c2.layer <= c.layer) + break + sorted.Insert(j+1, c) + + var/icon/res = icon('icons/effects/96x96.dmi', "") + + for(var/atom/A in sorted) + var/icon/img = getFlatIcon(A) + if(isliving(A)) + var/mob/living/L = A + if(L.lying) + img.Turn(L.lying) + + var/offX = 32 * (A.x - center.x) + A.pixel_x + 33 + var/offY = 32 * (A.y - center.y) + A.pixel_y + 33 + if(ismovableatom(A)) + offX += A:step_x + offY += A:step_y + + res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY) + + if(istype(A, /obj/item/areaeditor/blueprints)) + blueprints = 1 + + for(var/turf/T in turfs) + res.Blend(getFlatIcon(T.loc), blendMode2iconMode(T.blend_mode), 32 * (T.x - center.x) + 33, 32 * (T.y - center.y) + 33) + + return res + + +/obj/item/device/camera/proc/camera_get_mobs(turf/the_turf) + var/mob_detail + for(var/mob/M in the_turf) + if(M.invisibility) + if(see_ghosts && isobserver(M)) + var/mob/dead/observer/O = M + if(O.orbiting) + continue + if(!mob_detail) + mob_detail = "You can see a g-g-g-g-ghooooost! " + else + mob_detail += "You can also see a g-g-g-g-ghooooost!" + else + continue + + var/list/holding = list() + + if(isliving(M)) + var/mob/living/L = M + + for(var/obj/item/I in L.held_items) + if(!holding) + holding += "[L.p_they(TRUE)] [L.p_are()] holding \a [I]" + else + holding += " and \a [I]" + holding = holding.Join() + + if(!mob_detail) + mob_detail = "You can see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]. " + else + mob_detail += "You can also see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]." + + + return mob_detail + + +/obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image + var/mobs = "" + var/isAi = isAI(user) + var/list/seen + if(!isAi) //crappy check, but without it AI photos would be subject to line of sight from the AI Eye object. Made the best of it by moving the sec camera check inside + if(user.client) //To make shooting through security cameras possible + seen = get_hear(world.view, user.client.eye) //To make shooting through security cameras possible + else + seen = get_hear(world.view, user) + else + seen = get_hear(world.view, target) + + var/list/turfs = list() + for(var/turf/T in range(1, target)) + if(T in seen) + if(isAi && !GLOB.cameranet.checkTurfVis(T)) + continue + else + turfs += T + mobs += camera_get_mobs(T) + + var/icon/temp = icon('icons/effects/96x96.dmi',"") + temp.Blend("#000", ICON_OVERLAY) + temp.Blend(camera_get_icon(turfs, target), ICON_OVERLAY) + + if(!issilicon(user)) + printpicture(user, temp, mobs, flag) + else + aipicture(user, temp, mobs, isAi, blueprints) + + + + +/obj/item/device/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos + var/obj/item/weapon/photo/P = new/obj/item/weapon/photo(get_turf(src)) + if(in_range(src, user)) //needed because of TK + user.put_in_hands(P) + var/icon/small_img = icon(temp) + var/icon/ic = icon('icons/obj/items.dmi',"photo") + small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) - P.icon = ic - P.img = temp - P.desc = mobs - P.pixel_x = rand(-10, 10) - P.pixel_y = rand(-10, 10) - - if(blueprints) - P.blueprints = 1 - blueprints = 0 - - -/obj/item/device/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI - - var/icon/small_img = icon(temp) - var/icon/ic = icon('icons/obj/items.dmi',"photo") - small_img.Scale(8, 8) + P.icon = ic + P.img = temp + P.desc = mobs + P.pixel_x = rand(-10, 10) + P.pixel_y = rand(-10, 10) + + if(blueprints) + P.blueprints = 1 + blueprints = 0 + + +/obj/item/device/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI + + var/icon/small_img = icon(temp) + var/icon/ic = icon('icons/obj/items.dmi',"photo") + small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) - var/icon = ic - var/img = temp - var/desc = mobs - var/pixel_x = rand(-10, 10) - var/pixel_y = rand(-10, 10) - - var/injectblueprints = 1 - if(blueprints) - injectblueprints = 1 - blueprints = 0 - - if(isAi) - injectaialbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) - else - injectmasteralbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) - - - -/datum/picture - var/name = "image" - var/list/fields = list() - - -/obj/item/device/camera/proc/injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore - var/numberer = 1 - for(var/datum/picture in src.aipictures) - numberer++ - var/datum/picture/P = new() - P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" - P.fields["icon"] = icon - P.fields["img"] = img - P.fields["desc"] = desc - P.fields["pixel_x"] = pixel_x - P.fields["pixel_y"] = pixel_y - P.fields["blueprints"] = blueprintsinject - - aipictures += P - to_chat(usr, "Image recorded") //feedback to the AI player that the picture was taken - -/obj/item/device/camera/proc/injectmasteralbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore - var/numberer = 1 - var/mob/living/silicon/robot/C = src.loc - if(C.connected_ai) - for(var/datum/picture in C.connected_ai.aicamera.aipictures) - numberer++ - var/datum/picture/P = new() - P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" - P.fields["icon"] = icon - P.fields["img"] = img - P.fields["desc"] = desc - P.fields["pixel_x"] = pixel_x - P.fields["pixel_y"] = pixel_y - P.fields["blueprints"] = blueprintsinject - - C.connected_ai.aicamera.aipictures += P - to_chat(usr, "Image recorded and saved to remote database") //feedback to the Cyborg player that the picture was taken - else - injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) - -/obj/item/device/camera/siliconcam/proc/selectpicture(obj/item/device/camera/siliconcam/targetloc) - var/list/nametemp = list() - var/find - if(targetloc.aipictures.len == 0) - to_chat(usr, "No images saved") - return - for(var/datum/picture/t in targetloc.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - for(var/datum/picture/q in targetloc.aipictures) - if(q.fields["name"] == find) - return q - -/obj/item/device/camera/siliconcam/proc/viewpichelper(obj/item/device/camera/siliconcam/targetloc) - var/obj/item/weapon/photo/P = new/obj/item/weapon/photo() - var/datum/picture/selection = selectpicture(targetloc) - if(selection) - P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) - P.pixel_x = selection.fields["pixel_x"] - P.pixel_y = selection.fields["pixel_y"] - - P.show(usr) - to_chat(usr, P.desc) - qdel(P) //so 10 thousand picture items are not left in memory should an AI take them and then view them all - -/obj/item/device/camera/siliconcam/proc/viewpictures(user) - if(iscyborg(user)) // Cyborg - var/mob/living/silicon/robot/C = src.loc - var/obj/item/device/camera/siliconcam/Cinfo - if(C.connected_ai) - Cinfo = C.connected_ai.aicamera - viewpichelper(Cinfo) - else - Cinfo = C.aicamera - viewpichelper(Cinfo) - else // AI - var/Ainfo = src - viewpichelper(Ainfo) - -/obj/item/device/camera/afterattack(atom/target, mob/user, flag) - if(!on || !pictures_left || !isturf(target.loc)) - return - - captureimage(target, user, flag) - - playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, 1, -3) - - pictures_left-- - to_chat(user, "[pictures_left] photos left.") - icon_state = "camera_off" - on = 0 - spawn(64) - icon_state = "camera" - on = 1 - -/obj/item/device/camera/siliconcam/proc/toggle_camera_mode() - if(in_camera_mode) - camera_mode_off() - else - camera_mode_on() - -/obj/item/device/camera/siliconcam/proc/camera_mode_off() - src.in_camera_mode = 0 - to_chat(usr, "Camera Mode deactivated") - -/obj/item/device/camera/siliconcam/proc/camera_mode_on() - src.in_camera_mode = 1 - to_chat(usr, "Camera Mode activated") - -/obj/item/device/camera/siliconcam/robot_camera/proc/borgprint() - var/list/nametemp = list() - var/find - var/datum/picture/selection - var/mob/living/silicon/robot/C = src.loc - var/obj/item/device/camera/siliconcam/targetcam = null - if(C.toner < 20) - to_chat(usr, "Insufficent toner to print image.") - return - if(C.connected_ai) - targetcam = C.connected_ai.aicamera - else - targetcam = C.aicamera - if(targetcam.aipictures.len == 0) - to_chat(usr, "No images saved") - return - for(var/datum/picture/t in targetcam.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - for(var/datum/picture/q in targetcam.aipictures) - if(q.fields["name"] == find) - selection = q - break - var/obj/item/weapon/photo/p = new /obj/item/weapon/photo(C.loc) - p.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"], selection.fields["blueprints"]) - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - C.toner -= 20 //Cyborgs are very ineffeicient at printing an image - visible_message("[C.name] spits out a photograph from a narrow slot on its chassis.") - to_chat(usr, "You print a photograph.") - -// Picture frames - + var/icon = ic + var/img = temp + var/desc = mobs + var/pixel_x = rand(-10, 10) + var/pixel_y = rand(-10, 10) + + var/injectblueprints = 1 + if(blueprints) + injectblueprints = 1 + blueprints = 0 + + if(isAi) + injectaialbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) + else + injectmasteralbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) + + + +/datum/picture + var/name = "image" + var/list/fields = list() + + +/obj/item/device/camera/proc/injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore + var/numberer = 1 + for(var/datum/picture in src.aipictures) + numberer++ + var/datum/picture/P = new() + P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" + P.fields["icon"] = icon + P.fields["img"] = img + P.fields["desc"] = desc + P.fields["pixel_x"] = pixel_x + P.fields["pixel_y"] = pixel_y + P.fields["blueprints"] = blueprintsinject + + aipictures += P + to_chat(usr, "Image recorded") //feedback to the AI player that the picture was taken + +/obj/item/device/camera/proc/injectmasteralbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore + var/numberer = 1 + var/mob/living/silicon/robot/C = src.loc + if(C.connected_ai) + for(var/datum/picture in C.connected_ai.aicamera.aipictures) + numberer++ + var/datum/picture/P = new() + P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" + P.fields["icon"] = icon + P.fields["img"] = img + P.fields["desc"] = desc + P.fields["pixel_x"] = pixel_x + P.fields["pixel_y"] = pixel_y + P.fields["blueprints"] = blueprintsinject + + C.connected_ai.aicamera.aipictures += P + to_chat(usr, "Image recorded and saved to remote database") //feedback to the Cyborg player that the picture was taken + else + injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) + +/obj/item/device/camera/siliconcam/proc/selectpicture(obj/item/device/camera/siliconcam/targetloc) + var/list/nametemp = list() + var/find + if(targetloc.aipictures.len == 0) + to_chat(usr, "No images saved") + return + for(var/datum/picture/t in targetloc.aipictures) + nametemp += t.fields["name"] + find = input("Select image (numbered in order taken)") in nametemp + for(var/datum/picture/q in targetloc.aipictures) + if(q.fields["name"] == find) + return q + +/obj/item/device/camera/siliconcam/proc/viewpichelper(obj/item/device/camera/siliconcam/targetloc) + var/obj/item/weapon/photo/P = new/obj/item/weapon/photo() + var/datum/picture/selection = selectpicture(targetloc) + if(selection) + P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) + P.pixel_x = selection.fields["pixel_x"] + P.pixel_y = selection.fields["pixel_y"] + + P.show(usr) + to_chat(usr, P.desc) + qdel(P) //so 10 thousand picture items are not left in memory should an AI take them and then view them all + +/obj/item/device/camera/siliconcam/proc/viewpictures(user) + if(iscyborg(user)) // Cyborg + var/mob/living/silicon/robot/C = src.loc + var/obj/item/device/camera/siliconcam/Cinfo + if(C.connected_ai) + Cinfo = C.connected_ai.aicamera + viewpichelper(Cinfo) + else + Cinfo = C.aicamera + viewpichelper(Cinfo) + else // AI + var/Ainfo = src + viewpichelper(Ainfo) + +/obj/item/device/camera/afterattack(atom/target, mob/user, flag) + if(!on || !pictures_left || !isturf(target.loc)) + return + + captureimage(target, user, flag) + + playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, 1, -3) + + pictures_left-- + to_chat(user, "[pictures_left] photos left.") + icon_state = "camera_off" + on = 0 + spawn(64) + icon_state = "camera" + on = 1 + +/obj/item/device/camera/siliconcam/proc/toggle_camera_mode() + if(in_camera_mode) + camera_mode_off() + else + camera_mode_on() + +/obj/item/device/camera/siliconcam/proc/camera_mode_off() + src.in_camera_mode = 0 + to_chat(usr, "Camera Mode deactivated") + +/obj/item/device/camera/siliconcam/proc/camera_mode_on() + src.in_camera_mode = 1 + to_chat(usr, "Camera Mode activated") + +/obj/item/device/camera/siliconcam/robot_camera/proc/borgprint() + var/list/nametemp = list() + var/find + var/datum/picture/selection + var/mob/living/silicon/robot/C = src.loc + var/obj/item/device/camera/siliconcam/targetcam = null + if(C.toner < 20) + to_chat(usr, "Insufficent toner to print image.") + return + if(C.connected_ai) + targetcam = C.connected_ai.aicamera + else + targetcam = C.aicamera + if(targetcam.aipictures.len == 0) + to_chat(usr, "No images saved") + return + for(var/datum/picture/t in targetcam.aipictures) + nametemp += t.fields["name"] + find = input("Select image (numbered in order taken)") in nametemp + for(var/datum/picture/q in targetcam.aipictures) + if(q.fields["name"] == find) + selection = q + break + var/obj/item/weapon/photo/p = new /obj/item/weapon/photo(C.loc) + p.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"], selection.fields["blueprints"]) + p.pixel_x = rand(-10, 10) + p.pixel_y = rand(-10, 10) + C.toner -= 20 //Cyborgs are very ineffeicient at printing an image + visible_message("[C.name] spits out a photograph from a narrow slot on its chassis.") + to_chat(usr, "You print a photograph.") + +// Picture frames + /obj/item/wallframe/picture - name = "picture frame" - desc = "The perfect showcase for your favorite deathtrap memories." - icon = 'icons/obj/decals.dmi' + name = "picture frame" + desc = "The perfect showcase for your favorite deathtrap memories." + icon = 'icons/obj/decals.dmi' materials = list() flags = 0 - icon_state = "frame-empty" + icon_state = "frame-empty" result_path = /obj/structure/sign/picture_frame - var/obj/item/weapon/photo/displayed - + var/obj/item/weapon/photo/displayed + /obj/item/wallframe/picture/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/weapon/photo)) - if(!displayed) + if(istype(I, /obj/item/weapon/photo)) + if(!displayed) if(!user.transferItemToLoc(I, src)) - return + return displayed = I - update_icon() - else - to_chat(user, "\The [src] already contains a photo.") - ..() - + update_icon() + else + to_chat(user, "\The [src] already contains a photo.") + ..() + /obj/item/wallframe/picture/attack_hand(mob/user) - if(user.get_inactive_held_item() != src) - ..() - return - if(contents.len) - var/obj/item/I = pick(contents) - user.put_in_hands(I) - to_chat(user, "You carefully remove the photo from \the [src].") - displayed = null - update_icon() - + if(user.get_inactive_held_item() != src) + ..() + return + if(contents.len) + var/obj/item/I = pick(contents) + user.put_in_hands(I) + to_chat(user, "You carefully remove the photo from \the [src].") + displayed = null + update_icon() + /obj/item/wallframe/picture/attack_self(mob/user) - user.examinate(src) - + user.examinate(src) + /obj/item/wallframe/picture/examine(mob/user) - if(user.is_holding(src) && displayed) - displayed.show(user) - else - ..() - + if(user.is_holding(src) && displayed) + displayed.show(user) + else + ..() + /obj/item/wallframe/picture/update_icon() - cut_overlays() - if(displayed) - add_overlay(getFlatIcon(displayed)) - + cut_overlays() + if(displayed) + add_overlay(getFlatIcon(displayed)) + /obj/item/wallframe/picture/after_attach(obj/O) ..() var/obj/structure/sign/picture_frame/PF = O - PF.copy_overlays(src) - if(displayed) - PF.framed = displayed - if(contents.len) - var/obj/item/I = pick(contents) - I.forceMove(PF) + PF.copy_overlays(src) + if(displayed) + PF.framed = displayed + if(contents.len) + var/obj/item/I = pick(contents) + I.forceMove(PF) + + +/obj/structure/sign/picture_frame + name = "picture frame" + desc = "Every time you look it makes you laugh." + icon = 'icons/obj/decals.dmi' + icon_state = "frame-empty" + var/obj/item/weapon/photo/framed - -/obj/structure/sign/picture_frame - name = "picture frame" - desc = "Every time you look it makes you laugh." - icon = 'icons/obj/decals.dmi' - icon_state = "frame-empty" - var/obj/item/weapon/photo/framed - /obj/structure/sign/picture_frame/New(loc, dir, building) ..() if(dir) @@ -560,42 +560,42 @@ pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30) pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 -/obj/structure/sign/picture_frame/examine(mob/user) - if(in_range(src, user) && framed) - framed.show(user) - else - ..() - +/obj/structure/sign/picture_frame/examine(mob/user) + if(in_range(src, user) && framed) + framed.show(user) + else + ..() + /obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver) || istype(I, /obj/item/weapon/wrench)) to_chat(user, "You start unsecuring [name]...") playsound(loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) - playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You unsecure [name].") deconstruct() return - + else if(istype(I, /obj/item/weapon/photo)) - if(!framed) + if(!framed) var/obj/item/weapon/photo/P = I - if(!user.transferItemToLoc(P, src)) - return - framed = P - update_icon() - else - to_chat(user, "\The [src] already contains a photo.") - - ..() - -/obj/structure/sign/picture_frame/attack_hand(mob/user) - if(framed) + if(!user.transferItemToLoc(P, src)) + return + framed = P + update_icon() + else + to_chat(user, "\The [src] already contains a photo.") + + ..() + +/obj/structure/sign/picture_frame/attack_hand(mob/user) + if(framed) framed.show(user) - -/obj/structure/sign/picture_frame/update_icon() - cut_overlays() - if(framed) - add_overlay(getFlatIcon(framed)) + +/obj/structure/sign/picture_frame/update_icon() + cut_overlays() + if(framed) + add_overlay(getFlatIcon(framed)) /obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) diff --git a/code/modules/power/antimatter/containment_jar.dm b/code/modules/power/antimatter/containment_jar.dm index 73fd2af580..decc6ab549 100644 --- a/code/modules/power/antimatter/containment_jar.dm +++ b/code/modules/power/antimatter/containment_jar.dm @@ -1,40 +1,40 @@ -/obj/item/weapon/am_containment - name = "antimatter containment jar" - desc = "Holds antimatter." - icon = 'icons/obj/machines/antimatter.dmi' - icon_state = "jar" - density = 0 - anchored = 0 - force = 8 - throwforce = 10 - throw_speed = 1 - throw_range = 2 - - var/fuel = 10000 - var/fuel_max = 10000//Lets try this for now - var/stability = 100//TODO: add all the stability things to this so its not very safe if you keep hitting in on things - - -/obj/item/weapon/am_containment/ex_act(severity, target) - switch(severity) - if(1) +/obj/item/weapon/am_containment + name = "antimatter containment jar" + desc = "Holds antimatter." + icon = 'icons/obj/machines/antimatter.dmi' + icon_state = "jar" + density = 0 + anchored = 0 + force = 8 + throwforce = 10 + throw_speed = 1 + throw_range = 2 + + var/fuel = 10000 + var/fuel_max = 10000//Lets try this for now + var/stability = 100//TODO: add all the stability things to this so its not very safe if you keep hitting in on things + + +/obj/item/weapon/am_containment/ex_act(severity, target) + switch(severity) + if(1) explosion(get_turf(src), 1, 2, 3, 5)//Should likely be larger but this works fine for now I guess - if(src) - qdel(src) - if(2) - if(prob((fuel/10)-stability)) + if(src) + qdel(src) + if(2) + if(prob((fuel/10)-stability)) explosion(get_turf(src), 1, 2, 3, 5) - if(src) - qdel(src) - return - stability -= 40 - if(3) - stability -= 20 - //check_stability() - return - -/obj/item/weapon/am_containment/proc/usefuel(wanted) - if(fuel < wanted) - wanted = fuel - fuel -= wanted + if(src) + qdel(src) + return + stability -= 40 + if(3) + stability -= 20 + //check_stability() + return + +/obj/item/weapon/am_containment/proc/usefuel(wanted) + if(fuel < wanted) + wanted = fuel + fuel -= wanted return wanted \ No newline at end of file diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index 92b3abfd2d..d4e1869688 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -1,362 +1,362 @@ -/obj/machinery/power/am_control_unit - name = "antimatter control unit" - desc = "This device injects antimatter into connected shielding units, the more antimatter injected the more power produced. Wrench the device to set it up." - icon = 'icons/obj/machines/antimatter.dmi' - icon_state = "control" - anchored = 0 - density = 1 +/obj/machinery/power/am_control_unit + name = "antimatter control unit" + desc = "This device injects antimatter into connected shielding units, the more antimatter injected the more power produced. Wrench the device to set it up." + icon = 'icons/obj/machines/antimatter.dmi' + icon_state = "control" + anchored = 0 + density = 1 use_power = IDLE_POWER_USE - idle_power_usage = 100 - active_power_usage = 1000 - - var/list/obj/machinery/am_shielding/linked_shielding - var/list/obj/machinery/am_shielding/linked_cores - var/obj/item/weapon/am_containment/fueljar - var/update_shield_icons = 0 - var/stability = 100 - var/exploding = 0 - - var/active = 0//On or not - var/fuel_injection = 2//How much fuel to inject - var/shield_icon_delay = 0//delays resetting for a short time - var/reported_core_efficiency = 0 - - var/power_cycle = 0 - var/power_cycle_delay = 4//How many ticks till produce_power is called - var/stored_core_stability = 0 - var/stored_core_stability_delay = 0 - - var/stored_power = 0//Power to deploy per tick - - -/obj/machinery/power/am_control_unit/New() - ..() - linked_shielding = list() - linked_cores = list() - - -/obj/machinery/power/am_control_unit/Destroy()//Perhaps damage and run stability checks rather than just del on the others - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - AMS.control_unit = null - qdel(AMS) - qdel(fueljar) - fueljar = null - return ..() - - -/obj/machinery/power/am_control_unit/process() - if(exploding) + idle_power_usage = 100 + active_power_usage = 1000 + + var/list/obj/machinery/am_shielding/linked_shielding + var/list/obj/machinery/am_shielding/linked_cores + var/obj/item/weapon/am_containment/fueljar + var/update_shield_icons = 0 + var/stability = 100 + var/exploding = 0 + + var/active = 0//On or not + var/fuel_injection = 2//How much fuel to inject + var/shield_icon_delay = 0//delays resetting for a short time + var/reported_core_efficiency = 0 + + var/power_cycle = 0 + var/power_cycle_delay = 4//How many ticks till produce_power is called + var/stored_core_stability = 0 + var/stored_core_stability_delay = 0 + + var/stored_power = 0//Power to deploy per tick + + +/obj/machinery/power/am_control_unit/New() + ..() + linked_shielding = list() + linked_cores = list() + + +/obj/machinery/power/am_control_unit/Destroy()//Perhaps damage and run stability checks rather than just del on the others + for(var/obj/machinery/am_shielding/AMS in linked_shielding) + AMS.control_unit = null + qdel(AMS) + qdel(fueljar) + fueljar = null + return ..() + + +/obj/machinery/power/am_control_unit/process() + if(exploding) explosion(get_turf(src),8,12,18,12) - if(src) - qdel(src) - - if(update_shield_icons && !shield_icon_delay) - check_shield_icons() - update_shield_icons = 0 - - if(stat & (NOPOWER|BROKEN) || !active)//can update the icons even without power - return - - if(!fueljar)//No fuel but we are on, shutdown - toggle_power() - playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) - return - - add_avail(stored_power) - - power_cycle++ - if(power_cycle >= power_cycle_delay) - produce_power() - power_cycle = 0 - - return - - -/obj/machinery/power/am_control_unit/proc/produce_power() - playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) - var/core_power = reported_core_efficiency//Effectively how much fuel we can safely deal with - if(core_power <= 0) - return 0//Something is wrong - var/core_damage = 0 - var/fuel = fueljar.usefuel(fuel_injection) - - stored_power = (fuel/core_power)*fuel*200000 - //Now check if the cores could deal with it safely, this is done after so you can overload for more power if needed, still a bad idea - if(fuel > (2*core_power))//More fuel has been put in than the current cores can deal with - if(prob(50)) - core_damage = 1//Small chance of damage - if((fuel-core_power) > 5) - core_damage = 5//Now its really starting to overload the cores - if((fuel-core_power) > 10) - core_damage = 20//Welp now you did it, they wont stand much of this - if(core_damage == 0) - return - for(var/obj/machinery/am_shielding/AMS in linked_cores) - AMS.stability -= core_damage - AMS.check_stability(1) - playsound(src.loc, 'sound/effects/bang.ogg', 50, 1) - return - - -/obj/machinery/power/am_control_unit/emp_act(severity) - switch(severity) - if(1) - if(active) - toggle_power() - stability -= rand(15,30) - if(2) - if(active) - toggle_power() - stability -= rand(10,20) - ..() - return 0 - - -/obj/machinery/power/am_control_unit/blob_act() - stability -= 20 - if(prob(100-stability))//Might infect the rest of the machine - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - AMS.blob_act() - qdel(src) - return - check_stability() - return - - -/obj/machinery/power/am_control_unit/ex_act(severity, target) - stability -= (80 - (severity * 20)) - check_stability() - return - - -/obj/machinery/power/am_control_unit/bullet_act(obj/item/projectile/Proj) - . = ..() - if(Proj.flag != "bullet") - stability -= Proj.force - check_stability() - - -/obj/machinery/power/am_control_unit/power_change() - ..() - if(stat & NOPOWER) - if(active) - toggle_power(1) - else + if(src) + qdel(src) + + if(update_shield_icons && !shield_icon_delay) + check_shield_icons() + update_shield_icons = 0 + + if(stat & (NOPOWER|BROKEN) || !active)//can update the icons even without power + return + + if(!fueljar)//No fuel but we are on, shutdown + toggle_power() + playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) + return + + add_avail(stored_power) + + power_cycle++ + if(power_cycle >= power_cycle_delay) + produce_power() + power_cycle = 0 + + return + + +/obj/machinery/power/am_control_unit/proc/produce_power() + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) + var/core_power = reported_core_efficiency//Effectively how much fuel we can safely deal with + if(core_power <= 0) + return 0//Something is wrong + var/core_damage = 0 + var/fuel = fueljar.usefuel(fuel_injection) + + stored_power = (fuel/core_power)*fuel*200000 + //Now check if the cores could deal with it safely, this is done after so you can overload for more power if needed, still a bad idea + if(fuel > (2*core_power))//More fuel has been put in than the current cores can deal with + if(prob(50)) + core_damage = 1//Small chance of damage + if((fuel-core_power) > 5) + core_damage = 5//Now its really starting to overload the cores + if((fuel-core_power) > 10) + core_damage = 20//Welp now you did it, they wont stand much of this + if(core_damage == 0) + return + for(var/obj/machinery/am_shielding/AMS in linked_cores) + AMS.stability -= core_damage + AMS.check_stability(1) + playsound(src.loc, 'sound/effects/bang.ogg', 50, 1) + return + + +/obj/machinery/power/am_control_unit/emp_act(severity) + switch(severity) + if(1) + if(active) + toggle_power() + stability -= rand(15,30) + if(2) + if(active) + toggle_power() + stability -= rand(10,20) + ..() + return 0 + + +/obj/machinery/power/am_control_unit/blob_act() + stability -= 20 + if(prob(100-stability))//Might infect the rest of the machine + for(var/obj/machinery/am_shielding/AMS in linked_shielding) + AMS.blob_act() + qdel(src) + return + check_stability() + return + + +/obj/machinery/power/am_control_unit/ex_act(severity, target) + stability -= (80 - (severity * 20)) + check_stability() + return + + +/obj/machinery/power/am_control_unit/bullet_act(obj/item/projectile/Proj) + . = ..() + if(Proj.flag != "bullet") + stability -= Proj.force + check_stability() + + +/obj/machinery/power/am_control_unit/power_change() + ..() + if(stat & NOPOWER) + if(active) + toggle_power(1) + else use_power = NO_POWER_USE - - else if(!stat && anchored) + + else if(!stat && anchored) use_power = IDLE_POWER_USE - - return - - -/obj/machinery/power/am_control_unit/update_icon() - if(active) - icon_state = "control_on" - else icon_state = "control" - //No other icons for it atm - - -/obj/machinery/power/am_control_unit/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - if(!anchored) - playsound(src.loc, W.usesound, 75, 1) - user.visible_message("[user.name] secures the [src.name] to the floor.", \ - "You secure the anchor bolts to the floor.", \ - "You hear a ratchet.") - src.anchored = 1 - connect_to_network() - else if(!linked_shielding.len > 0) - playsound(src.loc, W.usesound, 75, 1) - user.visible_message("[user.name] unsecures the [src.name].", \ - "You remove the anchor bolts.", \ - "You hear a ratchet.") - src.anchored = 0 - disconnect_from_network() - else - to_chat(user, "Once bolted and linked to a shielding unit it the [src.name] is unable to be moved!") - - else if(istype(W, /obj/item/weapon/am_containment)) - if(fueljar) - to_chat(user, "There is already a [fueljar] inside!") - return - - if(!user.transferItemToLoc(W, src)) - return - fueljar = W - user.visible_message("[user.name] loads an [W.name] into the [src.name].", \ - "You load an [W.name].", \ - "You hear a thunk.") - else - return ..() - - -/obj/machinery/power/am_control_unit/take_damage(damage, damage_type = BRUTE, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - if(damage >= 20) - stability -= damage/2 - check_stability() - -/obj/machinery/power/am_control_unit/attack_hand(mob/user) - if(anchored) - interact(user) - -/obj/machinery/power/am_control_unit/proc/add_shielding(obj/machinery/am_shielding/AMS, AMS_linking = 0) - if(!istype(AMS)) - return 0 - if(!anchored) - return 0 - if(!AMS_linking && !AMS.link_control(src)) - return 0 - linked_shielding.Add(AMS) - update_shield_icons = 1 - return 1 - - -/obj/machinery/power/am_control_unit/proc/remove_shielding(obj/machinery/am_shielding/AMS) - if(!istype(AMS)) - return 0 - linked_shielding.Remove(AMS) - update_shield_icons = 2 - if(active) - toggle_power() - return 1 - - -/obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced - if(stability <= 0) - qdel(src) - return - - -/obj/machinery/power/am_control_unit/proc/toggle_power(powerfail = 0) - active = !active - if(active) + + return + + +/obj/machinery/power/am_control_unit/update_icon() + if(active) + icon_state = "control_on" + else icon_state = "control" + //No other icons for it atm + + +/obj/machinery/power/am_control_unit/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(!anchored) + playsound(src.loc, W.usesound, 75, 1) + user.visible_message("[user.name] secures the [src.name] to the floor.", \ + "You secure the anchor bolts to the floor.", \ + "You hear a ratchet.") + src.anchored = 1 + connect_to_network() + else if(!linked_shielding.len > 0) + playsound(src.loc, W.usesound, 75, 1) + user.visible_message("[user.name] unsecures the [src.name].", \ + "You remove the anchor bolts.", \ + "You hear a ratchet.") + src.anchored = 0 + disconnect_from_network() + else + to_chat(user, "Once bolted and linked to a shielding unit it the [src.name] is unable to be moved!") + + else if(istype(W, /obj/item/weapon/am_containment)) + if(fueljar) + to_chat(user, "There is already a [fueljar] inside!") + return + + if(!user.transferItemToLoc(W, src)) + return + fueljar = W + user.visible_message("[user.name] loads an [W.name] into the [src.name].", \ + "You load an [W.name].", \ + "You hear a thunk.") + else + return ..() + + +/obj/machinery/power/am_control_unit/take_damage(damage, damage_type = BRUTE, sound_effect = 1) + switch(damage_type) + if(BRUTE) + if(sound_effect) + if(damage) + playsound(loc, 'sound/weapons/smash.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + if(sound_effect) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + else + return + if(damage >= 20) + stability -= damage/2 + check_stability() + +/obj/machinery/power/am_control_unit/attack_hand(mob/user) + if(anchored) + interact(user) + +/obj/machinery/power/am_control_unit/proc/add_shielding(obj/machinery/am_shielding/AMS, AMS_linking = 0) + if(!istype(AMS)) + return 0 + if(!anchored) + return 0 + if(!AMS_linking && !AMS.link_control(src)) + return 0 + linked_shielding.Add(AMS) + update_shield_icons = 1 + return 1 + + +/obj/machinery/power/am_control_unit/proc/remove_shielding(obj/machinery/am_shielding/AMS) + if(!istype(AMS)) + return 0 + linked_shielding.Remove(AMS) + update_shield_icons = 2 + if(active) + toggle_power() + return 1 + + +/obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced + if(stability <= 0) + qdel(src) + return + + +/obj/machinery/power/am_control_unit/proc/toggle_power(powerfail = 0) + active = !active + if(active) use_power = ACTIVE_POWER_USE - visible_message("The [src.name] starts up.") - else - use_power = !powerfail - visible_message("The [src.name] shuts down.") - update_icon() - return - - -/obj/machinery/power/am_control_unit/proc/check_shield_icons()//Forces icon_update for all shields - if(shield_icon_delay) - return - shield_icon_delay = 1 - if(update_shield_icons == 2)//2 means to clear everything and rebuild - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - if(AMS.processing) - AMS.shutdown_core() - AMS.control_unit = null - spawn(10) - AMS.controllerscan() - linked_shielding = list() - - else - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - AMS.update_icon() - spawn(20) - shield_icon_delay = 0 - return - - -/obj/machinery/power/am_control_unit/proc/check_core_stability() - if(stored_core_stability_delay || linked_cores.len <= 0) - return - stored_core_stability_delay = 1 - stored_core_stability = 0 - for(var/obj/machinery/am_shielding/AMS in linked_cores) - stored_core_stability += AMS.stability - stored_core_stability/=linked_cores.len - spawn(40) - stored_core_stability_delay = 0 - return - - -/obj/machinery/power/am_control_unit/interact(mob/user) - if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!isAI(user)) - user.unset_machine() - user << browse(null, "window=AMcontrol") - return - user.set_machine(src) - - var/dat = "" - dat += "AntiMatter Control Panel
    " - dat += "Close
    " - dat += "Refresh
    " - dat += "Force Shielding Update

    " - dat += "Status: [(active?"Injecting":"Standby")]
    " - dat += "Toggle Status
    " - - dat += "Stability: [stability]%
    " - dat += "Reactor parts: [linked_shielding.len]
    "//TODO: perhaps add some sort of stability check - dat += "Cores: [linked_cores.len]

    " - dat += "-Current Efficiency: [reported_core_efficiency]
    " - dat += "-Average Stability: [stored_core_stability] (update)
    " - dat += "Last Produced: [stored_power]
    " - - dat += "Fuel: " - if(!fueljar) - dat += "
    No fuel receptacle detected." - else - dat += "Eject
    " - dat += "- [fueljar.fuel]/[fueljar.fuel_max] Units
    " - - dat += "- Injecting: [fuel_injection] units
    " - dat += "- --|++

    " - - - user << browse(dat, "window=AMcontrol;size=420x500") - onclose(user, "AMcontrol") - return - - -/obj/machinery/power/am_control_unit/Topic(href, href_list) - if(..()) - return - - if(href_list["close"]) - usr << browse(null, "window=AMcontrol") - usr.unset_machine() - return - - if(href_list["togglestatus"]) - toggle_power() - - if(href_list["refreshicons"]) - update_shield_icons = 1 - - if(href_list["ejectjar"]) - if(fueljar) - fueljar.loc = src.loc - fueljar = null - //fueljar.control_unit = null currently it does not care where it is - //update_icon() when we have the icon for it - - if(href_list["strengthup"]) - fuel_injection++ - - if(href_list["strengthdown"]) - fuel_injection-- - if(fuel_injection < 0) - fuel_injection = 0 - - if(href_list["refreshstability"]) - check_core_stability() - - updateDialog() - return + visible_message("The [src.name] starts up.") + else + use_power = !powerfail + visible_message("The [src.name] shuts down.") + update_icon() + return + + +/obj/machinery/power/am_control_unit/proc/check_shield_icons()//Forces icon_update for all shields + if(shield_icon_delay) + return + shield_icon_delay = 1 + if(update_shield_icons == 2)//2 means to clear everything and rebuild + for(var/obj/machinery/am_shielding/AMS in linked_shielding) + if(AMS.processing) + AMS.shutdown_core() + AMS.control_unit = null + spawn(10) + AMS.controllerscan() + linked_shielding = list() + + else + for(var/obj/machinery/am_shielding/AMS in linked_shielding) + AMS.update_icon() + spawn(20) + shield_icon_delay = 0 + return + + +/obj/machinery/power/am_control_unit/proc/check_core_stability() + if(stored_core_stability_delay || linked_cores.len <= 0) + return + stored_core_stability_delay = 1 + stored_core_stability = 0 + for(var/obj/machinery/am_shielding/AMS in linked_cores) + stored_core_stability += AMS.stability + stored_core_stability/=linked_cores.len + spawn(40) + stored_core_stability_delay = 0 + return + + +/obj/machinery/power/am_control_unit/interact(mob/user) + if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) + if(!isAI(user)) + user.unset_machine() + user << browse(null, "window=AMcontrol") + return + user.set_machine(src) + + var/dat = "" + dat += "AntiMatter Control Panel
    " + dat += "Close
    " + dat += "Refresh
    " + dat += "Force Shielding Update

    " + dat += "Status: [(active?"Injecting":"Standby")]
    " + dat += "Toggle Status
    " + + dat += "Stability: [stability]%
    " + dat += "Reactor parts: [linked_shielding.len]
    "//TODO: perhaps add some sort of stability check + dat += "Cores: [linked_cores.len]

    " + dat += "-Current Efficiency: [reported_core_efficiency]
    " + dat += "-Average Stability: [stored_core_stability] (update)
    " + dat += "Last Produced: [stored_power]
    " + + dat += "Fuel: " + if(!fueljar) + dat += "
    No fuel receptacle detected." + else + dat += "Eject
    " + dat += "- [fueljar.fuel]/[fueljar.fuel_max] Units
    " + + dat += "- Injecting: [fuel_injection] units
    " + dat += "- --|++

    " + + + user << browse(dat, "window=AMcontrol;size=420x500") + onclose(user, "AMcontrol") + return + + +/obj/machinery/power/am_control_unit/Topic(href, href_list) + if(..()) + return + + if(href_list["close"]) + usr << browse(null, "window=AMcontrol") + usr.unset_machine() + return + + if(href_list["togglestatus"]) + toggle_power() + + if(href_list["refreshicons"]) + update_shield_icons = 1 + + if(href_list["ejectjar"]) + if(fueljar) + fueljar.loc = src.loc + fueljar = null + //fueljar.control_unit = null currently it does not care where it is + //update_icon() when we have the icon for it + + if(href_list["strengthup"]) + fuel_injection++ + + if(href_list["strengthdown"]) + fuel_injection-- + if(fuel_injection < 0) + fuel_injection = 0 + + if(href_list["refreshstability"]) + check_core_stability() + + updateDialog() + return diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index fc36535e5e..a250843360 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -1,247 +1,247 @@ -//like orange but only checks north/south/east/west for one step -/proc/cardinalrange(var/center) - var/list/things = list() - for(var/direction in GLOB.cardinal) - var/turf/T = get_step(center, direction) - if(!T) continue - things += T.contents - return things - -/obj/machinery/am_shielding - name = "antimatter reactor section" - desc = "This device was built using a plasma life-form that seems to increase plasma's natural ability to react with neutrinos while reducing the combustibility." - - icon = 'icons/obj/machines/antimatter.dmi' - icon_state = "shield" - anchored = 1 - density = 1 - dir = NORTH +//like orange but only checks north/south/east/west for one step +/proc/cardinalrange(var/center) + var/list/things = list() + for(var/direction in GLOB.cardinal) + var/turf/T = get_step(center, direction) + if(!T) continue + things += T.contents + return things + +/obj/machinery/am_shielding + name = "antimatter reactor section" + desc = "This device was built using a plasma life-form that seems to increase plasma's natural ability to react with neutrinos while reducing the combustibility." + + icon = 'icons/obj/machines/antimatter.dmi' + icon_state = "shield" + anchored = 1 + density = 1 + dir = NORTH use_power = NO_POWER_USE//Living things generally dont use power - idle_power_usage = 0 - active_power_usage = 0 - - var/obj/machinery/power/am_control_unit/control_unit = null - var/processing = 0//To track if we are in the update list or not, we need to be when we are damaged and if we ever - var/stability = 100//If this gets low bad things tend to happen - var/efficiency = 1//How many cores this core counts for when doing power processing, plasma in the air and stability could affect this - var/coredirs = 0 - var/dirs = 0 - - + idle_power_usage = 0 + active_power_usage = 0 + + var/obj/machinery/power/am_control_unit/control_unit = null + var/processing = 0//To track if we are in the update list or not, we need to be when we are damaged and if we ever + var/stability = 100//If this gets low bad things tend to happen + var/efficiency = 1//How many cores this core counts for when doing power processing, plasma in the air and stability could affect this + var/coredirs = 0 + var/dirs = 0 + + /obj/machinery/am_shielding/Initialize() . = ..() addtimer(CALLBACK(src, .proc/controllerscan), 10) - - -/obj/machinery/am_shielding/proc/controllerscan(priorscan = 0) - //Make sure we are the only one here - if(!istype(src.loc, /turf)) - qdel(src) - return - for(var/obj/machinery/am_shielding/AMS in loc.contents) - if(AMS == src) - continue - qdel(src) - return - - //Search for shielding first - for(var/obj/machinery/am_shielding/AMS in cardinalrange(src)) - if(AMS && AMS.control_unit && link_control(AMS.control_unit)) - break - - if(!control_unit)//No other guys nearby look for a control unit - for(var/direction in GLOB.cardinal) - for(var/obj/machinery/power/am_control_unit/AMC in cardinalrange(src)) - if(AMC.add_shielding(src)) - break - - if(!control_unit) - if(!priorscan) + + +/obj/machinery/am_shielding/proc/controllerscan(priorscan = 0) + //Make sure we are the only one here + if(!istype(src.loc, /turf)) + qdel(src) + return + for(var/obj/machinery/am_shielding/AMS in loc.contents) + if(AMS == src) + continue + qdel(src) + return + + //Search for shielding first + for(var/obj/machinery/am_shielding/AMS in cardinalrange(src)) + if(AMS && AMS.control_unit && link_control(AMS.control_unit)) + break + + if(!control_unit)//No other guys nearby look for a control unit + for(var/direction in GLOB.cardinal) + for(var/obj/machinery/power/am_control_unit/AMC in cardinalrange(src)) + if(AMC.add_shielding(src)) + break + + if(!control_unit) + if(!priorscan) addtimer(CALLBACK(src, .proc/controllerscan, 1), 20) - return - qdel(src) - - -/obj/machinery/am_shielding/Destroy() - if(control_unit) - control_unit.remove_shielding(src) - if(processing) - shutdown_core() - visible_message("The [src.name] melts!") - //Might want to have it leave a mess on the floor but no sprites for now - return ..() - - -/obj/machinery/am_shielding/CanPass(atom/movable/mover, turf/target, height=0) - if(height==0) - return 1 - return 0 - - -/obj/machinery/am_shielding/process() - if(!processing) - . = PROCESS_KILL - //TODO: core functions and stability - //TODO: think about checking the airmix for plasma and increasing power output - return - - -/obj/machinery/am_shielding/emp_act()//Immune due to not really much in the way of electronics. - return 0 - -/obj/machinery/am_shielding/ex_act(severity, target) - stability -= (80 - (severity * 20)) - check_stability() - return - - -/obj/machinery/am_shielding/bullet_act(obj/item/projectile/Proj) - . = ..() - if(Proj.flag != "bullet") - stability -= Proj.force/2 - check_stability() - - -/obj/machinery/am_shielding/update_icon() - dirs = 0 - coredirs = 0 - cut_overlays() - for(var/direction in GLOB.alldirs) - var/turf/T = get_step(loc, direction) - for(var/obj/machinery/machine in T) - if(istype(machine, /obj/machinery/am_shielding)) - var/obj/machinery/am_shielding/shield = machine - if(shield.control_unit == control_unit) - if(shield.processing) - coredirs |= direction - if(direction in GLOB.cardinal) - dirs |= direction - - else - if(istype(machine, /obj/machinery/power/am_control_unit) && (direction in GLOB.cardinal)) - var/obj/machinery/power/am_control_unit/control = machine - if(control == control_unit) - dirs |= direction - - - var/prefix = "" - var/icondirs=dirs - - if(coredirs) - prefix="core" - - icon_state = "[prefix]shield_[icondirs]" - - if(core_check()) - add_overlay("core[control_unit && control_unit.active]") - if(!processing) - setup_core() - else if(processing) - shutdown_core() - - -/obj/machinery/am_shielding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) - switch(damage_type) - if(BRUTE) - if(sound_effect) - if(damage_amount) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(loc, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - if(sound_effect) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - else - return - if(damage_amount >= 10) - stability -= damage_amount/2 - check_stability() - - -//Call this to link a detected shilding unit to the controller -/obj/machinery/am_shielding/proc/link_control(obj/machinery/power/am_control_unit/AMC) - if(!istype(AMC)) - return 0 - if(control_unit && control_unit != AMC) - return 0//Already have one - control_unit = AMC - control_unit.add_shielding(src,1) - return 1 - - -//Scans cards for shields or the control unit and if all there it -/obj/machinery/am_shielding/proc/core_check() - for(var/direction in GLOB.alldirs) - var/found_am_device=0 - for(var/obj/machinery/machine in get_step(loc, direction)) - //var/machine = locate(/obj/machinery, get_step(loc, direction)) - if(!machine) - continue//Need all for a core - if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit)) - found_am_device = 1 - break - if(!found_am_device) - return 0 - return 1 - - -/obj/machinery/am_shielding/proc/setup_core() - processing = 1 - GLOB.machines |= src - START_PROCESSING(SSmachines, src) - if(!control_unit) - return - control_unit.linked_cores.Add(src) - control_unit.reported_core_efficiency += efficiency - return - - -/obj/machinery/am_shielding/proc/shutdown_core() - processing = 0 - if(!control_unit) - return - control_unit.linked_cores.Remove(src) - control_unit.reported_core_efficiency -= efficiency - return - - -/obj/machinery/am_shielding/proc/check_stability(injecting_fuel = 0) - if(stability > 0) - return - if(injecting_fuel && control_unit) - control_unit.exploding = 1 - if(src) - qdel(src) - return - - -/obj/machinery/am_shielding/proc/recalc_efficiency(new_efficiency)//tbh still not 100% sure how I want to deal with efficiency so this is likely temp - if(!control_unit || !processing) - return - if(stability < 50) - new_efficiency /= 2 - control_unit.reported_core_efficiency += (new_efficiency - efficiency) - efficiency = new_efficiency - return - - - -/obj/item/device/am_shielding_container - name = "packaged antimatter reactor section" - desc = "A small storage unit containing an antimatter reactor section. To use place near an antimatter control unit or deployed antimatter reactor section and use a multitool to activate this package." - icon = 'icons/obj/machines/antimatter.dmi' - icon_state = "box" - item_state = "electronic" - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - throwforce = 5 - throw_speed = 1 - throw_range = 2 - materials = list(MAT_METAL=100) - -/obj/item/device/am_shielding_container/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool) && istype(src.loc,/turf)) - new/obj/machinery/am_shielding(src.loc) - qdel(src) - else - return ..() + return + qdel(src) + + +/obj/machinery/am_shielding/Destroy() + if(control_unit) + control_unit.remove_shielding(src) + if(processing) + shutdown_core() + visible_message("The [src.name] melts!") + //Might want to have it leave a mess on the floor but no sprites for now + return ..() + + +/obj/machinery/am_shielding/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) + return 1 + return 0 + + +/obj/machinery/am_shielding/process() + if(!processing) + . = PROCESS_KILL + //TODO: core functions and stability + //TODO: think about checking the airmix for plasma and increasing power output + return + + +/obj/machinery/am_shielding/emp_act()//Immune due to not really much in the way of electronics. + return 0 + +/obj/machinery/am_shielding/ex_act(severity, target) + stability -= (80 - (severity * 20)) + check_stability() + return + + +/obj/machinery/am_shielding/bullet_act(obj/item/projectile/Proj) + . = ..() + if(Proj.flag != "bullet") + stability -= Proj.force/2 + check_stability() + + +/obj/machinery/am_shielding/update_icon() + dirs = 0 + coredirs = 0 + cut_overlays() + for(var/direction in GLOB.alldirs) + var/turf/T = get_step(loc, direction) + for(var/obj/machinery/machine in T) + if(istype(machine, /obj/machinery/am_shielding)) + var/obj/machinery/am_shielding/shield = machine + if(shield.control_unit == control_unit) + if(shield.processing) + coredirs |= direction + if(direction in GLOB.cardinal) + dirs |= direction + + else + if(istype(machine, /obj/machinery/power/am_control_unit) && (direction in GLOB.cardinal)) + var/obj/machinery/power/am_control_unit/control = machine + if(control == control_unit) + dirs |= direction + + + var/prefix = "" + var/icondirs=dirs + + if(coredirs) + prefix="core" + + icon_state = "[prefix]shield_[icondirs]" + + if(core_check()) + add_overlay("core[control_unit && control_unit.active]") + if(!processing) + setup_core() + else if(processing) + shutdown_core() + + +/obj/machinery/am_shielding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + switch(damage_type) + if(BRUTE) + if(sound_effect) + if(damage_amount) + playsound(loc, 'sound/weapons/smash.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + if(sound_effect) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + else + return + if(damage_amount >= 10) + stability -= damage_amount/2 + check_stability() + + +//Call this to link a detected shilding unit to the controller +/obj/machinery/am_shielding/proc/link_control(obj/machinery/power/am_control_unit/AMC) + if(!istype(AMC)) + return 0 + if(control_unit && control_unit != AMC) + return 0//Already have one + control_unit = AMC + control_unit.add_shielding(src,1) + return 1 + + +//Scans cards for shields or the control unit and if all there it +/obj/machinery/am_shielding/proc/core_check() + for(var/direction in GLOB.alldirs) + var/found_am_device=0 + for(var/obj/machinery/machine in get_step(loc, direction)) + //var/machine = locate(/obj/machinery, get_step(loc, direction)) + if(!machine) + continue//Need all for a core + if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit)) + found_am_device = 1 + break + if(!found_am_device) + return 0 + return 1 + + +/obj/machinery/am_shielding/proc/setup_core() + processing = 1 + GLOB.machines |= src + START_PROCESSING(SSmachines, src) + if(!control_unit) + return + control_unit.linked_cores.Add(src) + control_unit.reported_core_efficiency += efficiency + return + + +/obj/machinery/am_shielding/proc/shutdown_core() + processing = 0 + if(!control_unit) + return + control_unit.linked_cores.Remove(src) + control_unit.reported_core_efficiency -= efficiency + return + + +/obj/machinery/am_shielding/proc/check_stability(injecting_fuel = 0) + if(stability > 0) + return + if(injecting_fuel && control_unit) + control_unit.exploding = 1 + if(src) + qdel(src) + return + + +/obj/machinery/am_shielding/proc/recalc_efficiency(new_efficiency)//tbh still not 100% sure how I want to deal with efficiency so this is likely temp + if(!control_unit || !processing) + return + if(stability < 50) + new_efficiency /= 2 + control_unit.reported_core_efficiency += (new_efficiency - efficiency) + efficiency = new_efficiency + return + + + +/obj/item/device/am_shielding_container + name = "packaged antimatter reactor section" + desc = "A small storage unit containing an antimatter reactor section. To use place near an antimatter control unit or deployed antimatter reactor section and use a multitool to activate this package." + icon = 'icons/obj/machines/antimatter.dmi' + icon_state = "box" + item_state = "electronic" + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + throwforce = 5 + throw_speed = 1 + throw_range = 2 + materials = list(MAT_METAL=100) + +/obj/item/device/am_shielding_container/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool) && istype(src.loc,/turf)) + new/obj/machinery/am_shielding(src.loc) + qdel(src) + else + return ..() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 4a26b65b27..d7ec6555ee 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -96,7 +96,6 @@ /obj/machinery/power/apc/get_cell() return cell - /obj/machinery/power/apc/connect_to_network() //Override because the APC does not directly connect to the network; it goes through a terminal. //The terminal is what the power computer looks for anyway. @@ -494,7 +493,7 @@ return user.visible_message("[user.name] adds cables to the APC frame.", \ "You start adding cables to the APC frame...") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 20, target = src)) if (C.get_amount() < 10 || !C) return @@ -522,7 +521,7 @@ user.visible_message("[user.name] inserts the power control board into [src].", \ "You start to insert the power control board into the frame...") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 10, target = src)) if(has_electronics==0) has_electronics = 1 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 5b00261fcf..f63cee2bce 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -1,431 +1,431 @@ -/////////////////////////////// -//CABLE STRUCTURE -/////////////////////////////// - - -//////////////////////////////// -// Definitions -//////////////////////////////// - -/* Cable directions (d1 and d2) - - - 9 1 5 - \ | / - 8 - 0 - 4 - / | \ - 10 2 6 - -If d1 = 0 and d2 = 0, there's no cable -If d1 = 0 and d2 = dir, it's a O-X cable, getting from the center of the tile to dir (knot cable) -If d1 = dir1 and d2 = dir2, it's a full X-X cable, getting from dir1 to dir2 -By design, d1 is the smallest direction and d2 is the highest -*/ - -/obj/structure/cable - level = 1 //is underfloor - anchored =1 - on_blueprints = TRUE - var/datum/powernet/powernet - name = "power cable" - desc = "A flexible, superconducting insulated cable for heavy-duty power transfer." - icon = 'icons/obj/power_cond/power_cond_red.dmi' - icon_state = "0-1" - var/d1 = 0 // cable direction 1 (see above) - var/d2 = 1 // cable direction 2 (see above) +/////////////////////////////// +//CABLE STRUCTURE +/////////////////////////////// + + +//////////////////////////////// +// Definitions +//////////////////////////////// + +/* Cable directions (d1 and d2) + + + 9 1 5 + \ | / + 8 - 0 - 4 + / | \ + 10 2 6 + +If d1 = 0 and d2 = 0, there's no cable +If d1 = 0 and d2 = dir, it's a O-X cable, getting from the center of the tile to dir (knot cable) +If d1 = dir1 and d2 = dir2, it's a full X-X cable, getting from dir1 to dir2 +By design, d1 is the smallest direction and d2 is the highest +*/ + +/obj/structure/cable + level = 1 //is underfloor + anchored =1 + on_blueprints = TRUE + var/datum/powernet/powernet + name = "power cable" + desc = "A flexible, superconducting insulated cable for heavy-duty power transfer." + icon = 'icons/obj/power_cond/power_cond_red.dmi' + icon_state = "0-1" + var/d1 = 0 // cable direction 1 (see above) + var/d2 = 1 // cable direction 2 (see above) layer = WIRE_LAYER //Above hidden pipes, GAS_PIPE_HIDDEN_LAYER - var/cable_color = "red" - var/obj/item/stack/cable_coil/stored - -/obj/structure/cable/yellow - cable_color = "yellow" - icon = 'icons/obj/power_cond/power_cond_yellow.dmi' - -/obj/structure/cable/green - cable_color = "green" - icon = 'icons/obj/power_cond/power_cond_green.dmi' - -/obj/structure/cable/blue - cable_color = "blue" - icon = 'icons/obj/power_cond/power_cond_blue.dmi' - -/obj/structure/cable/pink - cable_color = "pink" - icon = 'icons/obj/power_cond/power_cond_pink.dmi' - -/obj/structure/cable/orange - cable_color = "orange" - icon = 'icons/obj/power_cond/power_cond_orange.dmi' - -/obj/structure/cable/cyan - cable_color = "cyan" - icon = 'icons/obj/power_cond/power_cond_cyan.dmi' - -/obj/structure/cable/white - cable_color = "white" - icon = 'icons/obj/power_cond/power_cond_white.dmi' - -// the power cable object + var/cable_color = "red" + var/obj/item/stack/cable_coil/stored + +/obj/structure/cable/yellow + cable_color = "yellow" + icon = 'icons/obj/power_cond/power_cond_yellow.dmi' + +/obj/structure/cable/green + cable_color = "green" + icon = 'icons/obj/power_cond/power_cond_green.dmi' + +/obj/structure/cable/blue + cable_color = "blue" + icon = 'icons/obj/power_cond/power_cond_blue.dmi' + +/obj/structure/cable/pink + cable_color = "pink" + icon = 'icons/obj/power_cond/power_cond_pink.dmi' + +/obj/structure/cable/orange + cable_color = "orange" + icon = 'icons/obj/power_cond/power_cond_orange.dmi' + +/obj/structure/cable/cyan + cable_color = "cyan" + icon = 'icons/obj/power_cond/power_cond_cyan.dmi' + +/obj/structure/cable/white + cable_color = "white" + icon = 'icons/obj/power_cond/power_cond_white.dmi' + +// the power cable object /obj/structure/cable/Initialize() . = ..() - - // ensure d1 & d2 reflect the icon_state for entering and exiting cable - var/dash = findtext(icon_state, "-") - - d1 = text2num( copytext( icon_state, 1, dash ) ) - - d2 = text2num( copytext( icon_state, dash+1 ) ) - - var/turf/T = src.loc // hide if turf is not intact - - if(level==1) hide(T.intact) - GLOB.cable_list += src //add it to the global cable list - - if(d1) - stored = new/obj/item/stack/cable_coil(null,2,cable_color) - else - stored = new/obj/item/stack/cable_coil(null,1,cable_color) - -/obj/structure/cable/Destroy() // called when a cable is deleted - if(powernet) - cut_cable_from_powernet() // update the powernets - GLOB.cable_list -= src //remove it from global cable list - return ..() // then go ahead and delete the cable - -/obj/structure/cable/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - var/turf/T = loc - stored.forceMove(T) - qdel(src) - -/////////////////////////////////// -// General procedures -/////////////////////////////////// - -//If underfloor, hide the cable -/obj/structure/cable/hide(i) - - if(level == 1 && isturf(loc)) - invisibility = i ? INVISIBILITY_MAXIMUM : 0 + + // ensure d1 & d2 reflect the icon_state for entering and exiting cable + var/dash = findtext(icon_state, "-") + + d1 = text2num( copytext( icon_state, 1, dash ) ) + + d2 = text2num( copytext( icon_state, dash+1 ) ) + + var/turf/T = src.loc // hide if turf is not intact + + if(level==1) hide(T.intact) + GLOB.cable_list += src //add it to the global cable list + + if(d1) + stored = new/obj/item/stack/cable_coil(null,2,cable_color) + else + stored = new/obj/item/stack/cable_coil(null,1,cable_color) + +/obj/structure/cable/Destroy() // called when a cable is deleted + if(powernet) + cut_cable_from_powernet() // update the powernets + GLOB.cable_list -= src //remove it from global cable list + return ..() // then go ahead and delete the cable + +/obj/structure/cable/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/turf/T = loc + stored.forceMove(T) + qdel(src) + +/////////////////////////////////// +// General procedures +/////////////////////////////////// + +//If underfloor, hide the cable +/obj/structure/cable/hide(i) + + if(level == 1 && isturf(loc)) + invisibility = i ? INVISIBILITY_MAXIMUM : 0 update_icon() - + /obj/structure/cable/update_icon() - if(invisibility) - icon_state = "[d1]-[d2]-f" - else - icon_state = "[d1]-[d2]" - - -// Items usable on a cable : -// - Wirecutters : cut it duh ! -// - Cable coil : merge cables -// - Multitool : get the power currently passing through the cable -// -/obj/structure/cable/attackby(obj/item/W, mob/user, params) - var/turf/T = src.loc - if(T.intact) - return - if(istype(W, /obj/item/weapon/wirecutters)) - if (shock(user, 50)) - return - user.visible_message("[user] cuts the cable.", "You cut the cable.") - stored.add_fingerprint(user) + if(invisibility) + icon_state = "[d1]-[d2]-f" + else + icon_state = "[d1]-[d2]" + + +// Items usable on a cable : +// - Wirecutters : cut it duh ! +// - Cable coil : merge cables +// - Multitool : get the power currently passing through the cable +// +/obj/structure/cable/attackby(obj/item/W, mob/user, params) + var/turf/T = src.loc + if(T.intact) + return + if(istype(W, /obj/item/weapon/wirecutters)) + if (shock(user, 50)) + return + user.visible_message("[user] cuts the cable.", "You cut the cable.") + stored.add_fingerprint(user) investigate_log("was cut by [key_name(usr, usr.client)] in [get_area(T)]", INVESTIGATE_WIRES) - deconstruct() - return - - else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/coil = W - if (coil.get_amount() < 1) - to_chat(user, "Not enough cable!") - return - coil.cable_join(src, user) - - else if(istype(W, /obj/item/device/multitool)) - if(powernet && (powernet.avail > 0)) // is it powered? - to_chat(user, "[powernet.avail]W in power network.") - else - to_chat(user, "The cable is not powered.") - shock(user, 5, 0.2) - - src.add_fingerprint(user) - -// shock the user with probability prb -/obj/structure/cable/proc/shock(mob/user, prb, siemens_coeff = 1) - if(!prob(prb)) - return 0 - if (electrocute_mob(user, powernet, src, siemens_coeff)) + deconstruct() + return + + else if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/coil = W + if (coil.get_amount() < 1) + to_chat(user, "Not enough cable!") + return + coil.cable_join(src, user) + + else if(istype(W, /obj/item/device/multitool)) + if(powernet && (powernet.avail > 0)) // is it powered? + to_chat(user, "[powernet.avail]W in power network.") + else + to_chat(user, "The cable is not powered.") + shock(user, 5, 0.2) + + src.add_fingerprint(user) + +// shock the user with probability prb +/obj/structure/cable/proc/shock(mob/user, prb, siemens_coeff = 1) + if(!prob(prb)) + return 0 + if (electrocute_mob(user, powernet, src, siemens_coeff)) do_sparks(5, TRUE, src) - return 1 - else - return 0 - -/obj/structure/cable/singularity_pull(S, current_size) - if(current_size >= STAGE_FIVE) - deconstruct() - -/obj/structure/cable/proc/cableColor(colorC = "red") - cable_color = colorC - switch(colorC) - if("red") - icon = 'icons/obj/power_cond/power_cond_red.dmi' - if("yellow") - icon = 'icons/obj/power_cond/power_cond_yellow.dmi' - if("green") - icon = 'icons/obj/power_cond/power_cond_green.dmi' - if("blue") - icon = 'icons/obj/power_cond/power_cond_blue.dmi' - if("pink") - icon = 'icons/obj/power_cond/power_cond_pink.dmi' - if("orange") - icon = 'icons/obj/power_cond/power_cond_orange.dmi' - if("cyan") - icon = 'icons/obj/power_cond/power_cond_cyan.dmi' - if("white") - icon = 'icons/obj/power_cond/power_cond_white.dmi' - -/obj/structure/cable/proc/update_stored(length = 1, colorC = "red") - stored.amount = length - stored.item_color = colorC - stored.update_icon() - -//////////////////////////////////////////// -// Power related -/////////////////////////////////////////// - -/obj/structure/cable/proc/add_avail(amount) - if(powernet) - powernet.newavail += amount - -/obj/structure/cable/proc/add_load(amount) - if(powernet) - powernet.load += amount - -/obj/structure/cable/proc/surplus() - if(powernet) - return powernet.avail-powernet.load - else - return 0 - -/obj/structure/cable/proc/avail() - if(powernet) - return powernet.avail - else - return 0 - -///////////////////////////////////////////////// -// Cable laying helpers -//////////////////////////////////////////////// - -//handles merging diagonally matching cables -//for info : direction^3 is flipping horizontally, direction^12 is flipping vertically -/obj/structure/cable/proc/mergeDiagonalsNetworks(direction) - - //search for and merge diagonally matching cables from the first direction component (north/south) - var/turf/T = get_step(src, direction&3)//go north/south - - for(var/obj/structure/cable/C in T) - - if(!C) - continue - - if(src == C) - continue - - if(C.d1 == (direction^3) || C.d2 == (direction^3)) //we've got a diagonally matching cable - if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = new() - newPN.add_cable(C) - - if(powernet) //if we already have a powernet, then merge the two powernets - merge_powernets(powernet,C.powernet) - else - C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet - - //the same from the second direction component (east/west) - T = get_step(src, direction&12)//go east/west - - for(var/obj/structure/cable/C in T) - - if(!C) - continue - - if(src == C) - continue - if(C.d1 == (direction^12) || C.d2 == (direction^12)) //we've got a diagonally matching cable - if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = new() - newPN.add_cable(C) - - if(powernet) //if we already have a powernet, then merge the two powernets - merge_powernets(powernet,C.powernet) - else - C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet - -// merge with the powernets of power objects in the given direction -/obj/structure/cable/proc/mergeConnectedNetworks(direction) - - var/fdir = (!direction)? 0 : turn(direction, 180) //flip the direction, to match with the source position on its turf - - if(!(d1 == direction || d2 == direction)) //if the cable is not pointed in this direction, do nothing - return - - var/turf/TB = get_step(src, direction) - - for(var/obj/structure/cable/C in TB) - - if(!C) - continue - - if(src == C) - continue - - if(C.d1 == fdir || C.d2 == fdir) //we've got a matching cable in the neighbor turf - if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = new() - newPN.add_cable(C) - - if(powernet) //if we already have a powernet, then merge the two powernets - merge_powernets(powernet,C.powernet) - else - C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet - -// merge with the powernets of power objects in the source turf -/obj/structure/cable/proc/mergeConnectedNetworksOnTurf() - var/list/to_connect = list() - - if(!powernet) //if we somehow have no powernet, make one (should not happen for cables) - var/datum/powernet/newPN = new() - newPN.add_cable(src) - - //first let's add turf cables to our powernet - //then we'll connect machines on turf with a node cable is present - for(var/AM in loc) - if(istype(AM,/obj/structure/cable)) - var/obj/structure/cable/C = AM - if(C.d1 == d1 || C.d2 == d1 || C.d1 == d2 || C.d2 == d2) //only connected if they have a common direction - if(C.powernet == powernet) - continue - if(C.powernet) - merge_powernets(powernet, C.powernet) - else - powernet.add_cable(C) //the cable was powernetless, let's just add it to our powernet - - else if(istype(AM,/obj/machinery/power/apc)) - var/obj/machinery/power/apc/N = AM - if(!N.terminal) - continue // APC are connected through their terminal - - if(N.terminal.powernet == powernet) - continue - - to_connect += N.terminal //we'll connect the machines after all cables are merged - - else if(istype(AM,/obj/machinery/power)) //other power machines - var/obj/machinery/power/M = AM - - if(M.powernet == powernet) - continue - - to_connect += M //we'll connect the machines after all cables are merged - - //now that cables are done, let's connect found machines - for(var/obj/machinery/power/PM in to_connect) - if(!PM.connect_to_network()) - PM.disconnect_from_network() //if we somehow can't connect the machine to the new powernet, remove it from the old nonetheless - -////////////////////////////////////////////// -// Powernets handling helpers -////////////////////////////////////////////// - -//if powernetless_only = 1, will only get connections without powernet -/obj/structure/cable/proc/get_connections(powernetless_only = 0) - . = list() // this will be a list of all connected power objects - var/turf/T - - //get matching cables from the first direction - if(d1) //if not a node cable - T = get_step(src, d1) - if(T) - . += power_list(T, src, turn(d1, 180), powernetless_only) //get adjacents matching cables - - if(d1&(d1-1)) //diagonal direction, must check the 4 possibles adjacents tiles - T = get_step(src,d1&3) // go north/south - if(T) - . += power_list(T, src, d1 ^ 3, powernetless_only) //get diagonally matching cables - T = get_step(src,d1&12) // go east/west - if(T) - . += power_list(T, src, d1 ^ 12, powernetless_only) //get diagonally matching cables - - . += power_list(loc, src, d1, powernetless_only) //get on turf matching cables - - //do the same on the second direction (which can't be 0) - T = get_step(src, d2) - if(T) - . += power_list(T, src, turn(d2, 180), powernetless_only) //get adjacents matching cables - - if(d2&(d2-1)) //diagonal direction, must check the 4 possibles adjacents tiles - T = get_step(src,d2&3) // go north/south - if(T) - . += power_list(T, src, d2 ^ 3, powernetless_only) //get diagonally matching cables - T = get_step(src,d2&12) // go east/west - if(T) - . += power_list(T, src, d2 ^ 12, powernetless_only) //get diagonally matching cables - . += power_list(loc, src, d2, powernetless_only) //get on turf matching cables - - return . - -//should be called after placing a cable which extends another cable, creating a "smooth" cable that no longer terminates in the centre of a turf. -//needed as this can, unlike other placements, disconnect cables -/obj/structure/cable/proc/denode() - var/turf/T1 = loc - if(!T1) return - - var/list/powerlist = power_list(T1,src,0,0) //find the other cables that ended in the centre of the turf, with or without a powernet - if(powerlist.len>0) - var/datum/powernet/PN = new() - propagate_network(powerlist[1],PN) //propagates the new powernet beginning at the source cable - - if(PN.is_empty()) //can happen with machines made nodeless when smoothing cables - qdel(PN) - -// cut the cable's powernet at this cable and updates the powergrid -/obj/structure/cable/proc/cut_cable_from_powernet() - var/turf/T1 = loc - var/list/P_list - if(!T1) - return - if(d1) - T1 = get_step(T1, d1) - P_list = power_list(T1, src, turn(d1,180),0,cable_only = 1) // what adjacently joins on to cut cable... - - P_list += power_list(loc, src, d1, 0, cable_only = 1)//... and on turf - - - if(P_list.len == 0)//if nothing in both list, then the cable was a lone cable, just delete it and its powernet - powernet.remove_cable(src) - - for(var/obj/machinery/power/P in T1)//check if it was powering a machine - if(!P.connect_to_network()) //can't find a node cable on a the turf to connect to - P.disconnect_from_network() //remove from current network (and delete powernet) - return - - var/obj/O = P_list[1] - // remove the cut cable from its turf and powernet, so that it doesn't get count in propagate_network worklist - loc = null - powernet.remove_cable(src) //remove the cut cable from its powernet - - spawn(0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables - if(O && !QDELETED(O)) - var/datum/powernet/newPN = new()// creates a new powernet... - propagate_network(O, newPN)//... and propagates it to the other side of the cable - - // Disconnect machines connected to nodes - if(d1 == 0) // if we cut a node (O-X) cable - for(var/obj/machinery/power/P in T1) - if(!P.connect_to_network()) //can't find a node cable on a the turf to connect to - P.disconnect_from_network() //remove from current network - + return 1 + else + return 0 + +/obj/structure/cable/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct() + +/obj/structure/cable/proc/cableColor(colorC = "red") + cable_color = colorC + switch(colorC) + if("red") + icon = 'icons/obj/power_cond/power_cond_red.dmi' + if("yellow") + icon = 'icons/obj/power_cond/power_cond_yellow.dmi' + if("green") + icon = 'icons/obj/power_cond/power_cond_green.dmi' + if("blue") + icon = 'icons/obj/power_cond/power_cond_blue.dmi' + if("pink") + icon = 'icons/obj/power_cond/power_cond_pink.dmi' + if("orange") + icon = 'icons/obj/power_cond/power_cond_orange.dmi' + if("cyan") + icon = 'icons/obj/power_cond/power_cond_cyan.dmi' + if("white") + icon = 'icons/obj/power_cond/power_cond_white.dmi' + +/obj/structure/cable/proc/update_stored(length = 1, colorC = "red") + stored.amount = length + stored.item_color = colorC + stored.update_icon() + +//////////////////////////////////////////// +// Power related +/////////////////////////////////////////// + +/obj/structure/cable/proc/add_avail(amount) + if(powernet) + powernet.newavail += amount + +/obj/structure/cable/proc/add_load(amount) + if(powernet) + powernet.load += amount + +/obj/structure/cable/proc/surplus() + if(powernet) + return powernet.avail-powernet.load + else + return 0 + +/obj/structure/cable/proc/avail() + if(powernet) + return powernet.avail + else + return 0 + +///////////////////////////////////////////////// +// Cable laying helpers +//////////////////////////////////////////////// + +//handles merging diagonally matching cables +//for info : direction^3 is flipping horizontally, direction^12 is flipping vertically +/obj/structure/cable/proc/mergeDiagonalsNetworks(direction) + + //search for and merge diagonally matching cables from the first direction component (north/south) + var/turf/T = get_step(src, direction&3)//go north/south + + for(var/obj/structure/cable/C in T) + + if(!C) + continue + + if(src == C) + continue + + if(C.d1 == (direction^3) || C.d2 == (direction^3)) //we've got a diagonally matching cable + if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) + var/datum/powernet/newPN = new() + newPN.add_cable(C) + + if(powernet) //if we already have a powernet, then merge the two powernets + merge_powernets(powernet,C.powernet) + else + C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet + + //the same from the second direction component (east/west) + T = get_step(src, direction&12)//go east/west + + for(var/obj/structure/cable/C in T) + + if(!C) + continue + + if(src == C) + continue + if(C.d1 == (direction^12) || C.d2 == (direction^12)) //we've got a diagonally matching cable + if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) + var/datum/powernet/newPN = new() + newPN.add_cable(C) + + if(powernet) //if we already have a powernet, then merge the two powernets + merge_powernets(powernet,C.powernet) + else + C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet + +// merge with the powernets of power objects in the given direction +/obj/structure/cable/proc/mergeConnectedNetworks(direction) + + var/fdir = (!direction)? 0 : turn(direction, 180) //flip the direction, to match with the source position on its turf + + if(!(d1 == direction || d2 == direction)) //if the cable is not pointed in this direction, do nothing + return + + var/turf/TB = get_step(src, direction) + + for(var/obj/structure/cable/C in TB) + + if(!C) + continue + + if(src == C) + continue + + if(C.d1 == fdir || C.d2 == fdir) //we've got a matching cable in the neighbor turf + if(!C.powernet) //if the matching cable somehow got no powernet, make him one (should not happen for cables) + var/datum/powernet/newPN = new() + newPN.add_cable(C) + + if(powernet) //if we already have a powernet, then merge the two powernets + merge_powernets(powernet,C.powernet) + else + C.powernet.add_cable(src) //else, we simply connect to the matching cable powernet + +// merge with the powernets of power objects in the source turf +/obj/structure/cable/proc/mergeConnectedNetworksOnTurf() + var/list/to_connect = list() + + if(!powernet) //if we somehow have no powernet, make one (should not happen for cables) + var/datum/powernet/newPN = new() + newPN.add_cable(src) + + //first let's add turf cables to our powernet + //then we'll connect machines on turf with a node cable is present + for(var/AM in loc) + if(istype(AM,/obj/structure/cable)) + var/obj/structure/cable/C = AM + if(C.d1 == d1 || C.d2 == d1 || C.d1 == d2 || C.d2 == d2) //only connected if they have a common direction + if(C.powernet == powernet) + continue + if(C.powernet) + merge_powernets(powernet, C.powernet) + else + powernet.add_cable(C) //the cable was powernetless, let's just add it to our powernet + + else if(istype(AM,/obj/machinery/power/apc)) + var/obj/machinery/power/apc/N = AM + if(!N.terminal) + continue // APC are connected through their terminal + + if(N.terminal.powernet == powernet) + continue + + to_connect += N.terminal //we'll connect the machines after all cables are merged + + else if(istype(AM,/obj/machinery/power)) //other power machines + var/obj/machinery/power/M = AM + + if(M.powernet == powernet) + continue + + to_connect += M //we'll connect the machines after all cables are merged + + //now that cables are done, let's connect found machines + for(var/obj/machinery/power/PM in to_connect) + if(!PM.connect_to_network()) + PM.disconnect_from_network() //if we somehow can't connect the machine to the new powernet, remove it from the old nonetheless + +////////////////////////////////////////////// +// Powernets handling helpers +////////////////////////////////////////////// + +//if powernetless_only = 1, will only get connections without powernet +/obj/structure/cable/proc/get_connections(powernetless_only = 0) + . = list() // this will be a list of all connected power objects + var/turf/T + + //get matching cables from the first direction + if(d1) //if not a node cable + T = get_step(src, d1) + if(T) + . += power_list(T, src, turn(d1, 180), powernetless_only) //get adjacents matching cables + + if(d1&(d1-1)) //diagonal direction, must check the 4 possibles adjacents tiles + T = get_step(src,d1&3) // go north/south + if(T) + . += power_list(T, src, d1 ^ 3, powernetless_only) //get diagonally matching cables + T = get_step(src,d1&12) // go east/west + if(T) + . += power_list(T, src, d1 ^ 12, powernetless_only) //get diagonally matching cables + + . += power_list(loc, src, d1, powernetless_only) //get on turf matching cables + + //do the same on the second direction (which can't be 0) + T = get_step(src, d2) + if(T) + . += power_list(T, src, turn(d2, 180), powernetless_only) //get adjacents matching cables + + if(d2&(d2-1)) //diagonal direction, must check the 4 possibles adjacents tiles + T = get_step(src,d2&3) // go north/south + if(T) + . += power_list(T, src, d2 ^ 3, powernetless_only) //get diagonally matching cables + T = get_step(src,d2&12) // go east/west + if(T) + . += power_list(T, src, d2 ^ 12, powernetless_only) //get diagonally matching cables + . += power_list(loc, src, d2, powernetless_only) //get on turf matching cables + + return . + +//should be called after placing a cable which extends another cable, creating a "smooth" cable that no longer terminates in the centre of a turf. +//needed as this can, unlike other placements, disconnect cables +/obj/structure/cable/proc/denode() + var/turf/T1 = loc + if(!T1) return + + var/list/powerlist = power_list(T1,src,0,0) //find the other cables that ended in the centre of the turf, with or without a powernet + if(powerlist.len>0) + var/datum/powernet/PN = new() + propagate_network(powerlist[1],PN) //propagates the new powernet beginning at the source cable + + if(PN.is_empty()) //can happen with machines made nodeless when smoothing cables + qdel(PN) + +// cut the cable's powernet at this cable and updates the powergrid +/obj/structure/cable/proc/cut_cable_from_powernet() + var/turf/T1 = loc + var/list/P_list + if(!T1) + return + if(d1) + T1 = get_step(T1, d1) + P_list = power_list(T1, src, turn(d1,180),0,cable_only = 1) // what adjacently joins on to cut cable... + + P_list += power_list(loc, src, d1, 0, cable_only = 1)//... and on turf + + + if(P_list.len == 0)//if nothing in both list, then the cable was a lone cable, just delete it and its powernet + powernet.remove_cable(src) + + for(var/obj/machinery/power/P in T1)//check if it was powering a machine + if(!P.connect_to_network()) //can't find a node cable on a the turf to connect to + P.disconnect_from_network() //remove from current network (and delete powernet) + return + + var/obj/O = P_list[1] + // remove the cut cable from its turf and powernet, so that it doesn't get count in propagate_network worklist + loc = null + powernet.remove_cable(src) //remove the cut cable from its powernet + + spawn(0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables + if(O && !QDELETED(O)) + var/datum/powernet/newPN = new()// creates a new powernet... + propagate_network(O, newPN)//... and propagates it to the other side of the cable + + // Disconnect machines connected to nodes + if(d1 == 0) // if we cut a node (O-X) cable + for(var/obj/machinery/power/P in T1) + if(!P.connect_to_network()) //can't find a node cable on a the turf to connect to + P.disconnect_from_network() //remove from current network + // Ugly procs that ensure proper separation and reconnection of wires on shuttle movement/rotation /obj/structure/cable/beforeShuttleMove(turf/T1, rotation) var/on_edge = FALSE @@ -479,351 +479,351 @@ By design, d1 is the smallest direction and d2 is the highest update_icon() -/////////////////////////////////////////////// -// The cable coil object, used for laying cable -/////////////////////////////////////////////// - -//////////////////////////////// -// Definitions -//////////////////////////////// - -GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restraints", /obj/item/weapon/restraints/handcuffs/cable, 15))) - -/obj/item/stack/cable_coil - name = "cable coil" - gender = NEUTER //That's a cable coil sounds better than that's some cable coils - icon = 'icons/obj/power.dmi' - icon_state = "coil_red" - item_state = "coil_red" - max_amount = MAXCOIL - amount = MAXCOIL - merge_type = /obj/item/stack/cable_coil // This is here to let its children merge between themselves - item_color = "red" - desc = "A coil of insulated power cable." - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=10, MAT_GLASS=5) - flags = CONDUCT - slot_flags = SLOT_BELT - attack_verb = list("whipped", "lashed", "disciplined", "flogged") - singular_name = "cable piece" +/////////////////////////////////////////////// +// The cable coil object, used for laying cable +/////////////////////////////////////////////// + +//////////////////////////////// +// Definitions +//////////////////////////////// + +GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restraints", /obj/item/weapon/restraints/handcuffs/cable, 15))) + +/obj/item/stack/cable_coil + name = "cable coil" + gender = NEUTER //That's a cable coil sounds better than that's some cable coils + icon = 'icons/obj/power.dmi' + icon_state = "coil_red" + item_state = "coil_red" + max_amount = MAXCOIL + amount = MAXCOIL + merge_type = /obj/item/stack/cable_coil // This is here to let its children merge between themselves + item_color = "red" + desc = "A coil of insulated power cable." + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=10, MAT_GLASS=5) + flags = CONDUCT + slot_flags = SLOT_BELT + attack_verb = list("whipped", "lashed", "disciplined", "flogged") + singular_name = "cable piece" full_w_class = WEIGHT_CLASS_SMALL - -/obj/item/stack/cable_coil/cyborg - is_cyborg = 1 - materials = list() - cost = 1 - -/obj/item/stack/cable_coil/cyborg/attack_self(mob/user) - var/cable_color = input(user,"Pick a cable color.","Cable Color") in list("red","yellow","green","blue","pink","orange","cyan","white") - item_color = cable_color - update_icon() - -/obj/item/stack/cable_coil/suicide_act(mob/user) - if(locate(/obj/structure/chair/stool) in get_turf(user)) - user.visible_message("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - else - user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return(OXYLOSS) - + +/obj/item/stack/cable_coil/cyborg + is_cyborg = 1 + materials = list() + cost = 1 + +/obj/item/stack/cable_coil/cyborg/attack_self(mob/user) + var/cable_color = input(user,"Pick a cable color.","Cable Color") in list("red","yellow","green","blue","pink","orange","cyan","white") + item_color = cable_color + update_icon() + +/obj/item/stack/cable_coil/suicide_act(mob/user) + if(locate(/obj/structure/chair/stool) in get_turf(user)) + user.visible_message("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + else + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return(OXYLOSS) + /obj/item/stack/cable_coil/Initialize(mapload, new_amount = null, param_color = null) . = ..() - if(new_amount) // MAXCOIL by default - amount = new_amount - if(param_color) - item_color = param_color - pixel_x = rand(-2,2) - pixel_y = rand(-2,2) - update_icon() - recipes = GLOB.cable_coil_recipes - -/////////////////////////////////// -// General procedures -/////////////////////////////////// - -//you can use wires to heal robotics -/obj/item/stack/cable_coil/attack(mob/living/carbon/human/H, mob/user) - if(!istype(H)) - return ..() - - var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - if(affecting && affecting.status == BODYPART_ROBOTIC) - if(user == H) - user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") - if(!do_mob(user, H, 50)) - return - if(item_heal_robotic(H, user, 0, 15)) - use(1) - return - else - return ..() - - -/obj/item/stack/cable_coil/update_icon() - if(!item_color) - item_color = pick("red", "yellow", "blue", "green") - item_state = "coil_[item_color]" - if(amount == 1) - icon_state = "coil_[item_color]1" - name = "cable piece" - else if(amount == 2) - icon_state = "coil_[item_color]2" - name = "cable piece" - else - icon_state = "coil_[item_color]" - name = "cable coil" - -/obj/item/stack/cable_coil/attack_hand(mob/user) - var/obj/item/stack/cable_coil/new_cable = ..() - if(istype(new_cable)) - new_cable.item_color = item_color - new_cable.update_icon() - -//add cables to the stack -/obj/item/stack/cable_coil/proc/give(extra) - if(amount + extra > max_amount) - amount = max_amount - else - amount += extra - update_icon() - - - -/////////////////////////////////////////////// -// Cable laying procedures -////////////////////////////////////////////// - -/obj/item/stack/cable_coil/proc/get_new_cable(location) - var/path = "/obj/structure/cable" + (item_color == "red" ? "" : "/" + item_color) - return new path (location) - -// called when cable_coil is clicked on a turf -/obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user) - if(!isturf(user.loc)) - return - - if(!T.can_have_cabling()) - to_chat(user, "You can only lay cables on catwalks and plating!") - return - - if(get_amount() < 1) // Out of cable - to_chat(user, "There is no cable left!") - return - - if(get_dist(T,user) > 1) // Too far - to_chat(user, "You can't lay cable at a place that far away!") - return - - else - var/dirn - - if(user.loc == T) - dirn = user.dir // if laying on the tile we're on, lay in the direction we're facing - else - dirn = get_dir(T, user) - - for(var/obj/structure/cable/LC in T) - if(LC.d2 == dirn && LC.d1 == 0) - to_chat(user, "There's already a cable at that position!") - return - - var/obj/structure/cable/C = get_new_cable(T) - - //set up the new cable - C.d1 = 0 //it's a O-X node cable - C.d2 = dirn - C.add_fingerprint(user) + if(new_amount) // MAXCOIL by default + amount = new_amount + if(param_color) + item_color = param_color + pixel_x = rand(-2,2) + pixel_y = rand(-2,2) + update_icon() + recipes = GLOB.cable_coil_recipes + +/////////////////////////////////// +// General procedures +/////////////////////////////////// + +//you can use wires to heal robotics +/obj/item/stack/cable_coil/attack(mob/living/carbon/human/H, mob/user) + if(!istype(H)) + return ..() + + var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) + if(affecting && affecting.status == BODYPART_ROBOTIC) + if(user == H) + user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") + if(!do_mob(user, H, 50)) + return + if(item_heal_robotic(H, user, 0, 15)) + use(1) + return + else + return ..() + + +/obj/item/stack/cable_coil/update_icon() + if(!item_color) + item_color = pick("red", "yellow", "blue", "green") + item_state = "coil_[item_color]" + if(amount == 1) + icon_state = "coil_[item_color]1" + name = "cable piece" + else if(amount == 2) + icon_state = "coil_[item_color]2" + name = "cable piece" + else + icon_state = "coil_[item_color]" + name = "cable coil" + +/obj/item/stack/cable_coil/attack_hand(mob/user) + var/obj/item/stack/cable_coil/new_cable = ..() + if(istype(new_cable)) + new_cable.item_color = item_color + new_cable.update_icon() + +//add cables to the stack +/obj/item/stack/cable_coil/proc/give(extra) + if(amount + extra > max_amount) + amount = max_amount + else + amount += extra + update_icon() + + + +/////////////////////////////////////////////// +// Cable laying procedures +////////////////////////////////////////////// + +/obj/item/stack/cable_coil/proc/get_new_cable(location) + var/path = "/obj/structure/cable" + (item_color == "red" ? "" : "/" + item_color) + return new path (location) + +// called when cable_coil is clicked on a turf +/obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user) + if(!isturf(user.loc)) + return + + if(!T.can_have_cabling()) + to_chat(user, "You can only lay cables on catwalks and plating!") + return + + if(get_amount() < 1) // Out of cable + to_chat(user, "There is no cable left!") + return + + if(get_dist(T,user) > 1) // Too far + to_chat(user, "You can't lay cable at a place that far away!") + return + + else + var/dirn + + if(user.loc == T) + dirn = user.dir // if laying on the tile we're on, lay in the direction we're facing + else + dirn = get_dir(T, user) + + for(var/obj/structure/cable/LC in T) + if(LC.d2 == dirn && LC.d1 == 0) + to_chat(user, "There's already a cable at that position!") + return + + var/obj/structure/cable/C = get_new_cable(T) + + //set up the new cable + C.d1 = 0 //it's a O-X node cable + C.d2 = dirn + C.add_fingerprint(user) C.update_icon() - - //create a new powernet with the cable, if needed it will be merged later - var/datum/powernet/PN = new() - PN.add_cable(C) - - C.mergeConnectedNetworks(C.d2) //merge the powernet with adjacents powernets - C.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets - - if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions - C.mergeDiagonalsNetworks(C.d2) - - - use(1) - - if (C.shock(user, 50)) - if (prob(50)) //fail - C.deconstruct() - -// called when cable_coil is click on an installed obj/cable -// or click on a turf that already contains a "node" cable -/obj/item/stack/cable_coil/proc/cable_join(obj/structure/cable/C, mob/user) - var/turf/U = user.loc - if(!isturf(U)) - return - - var/turf/T = C.loc - - if(!isturf(T) || T.intact) // sanity checks, also stop use interacting with T-scanner revealed cable - return - - if(get_dist(C, user) > 1) // make sure it's close enough - to_chat(user, "You can't lay cable at a place that far away!") - return - - - if(U == T) //if clicked on the turf we're standing on, try to put a cable in the direction we're facing - place_turf(T,user) - return - - var/dirn = get_dir(C, user) - - // one end of the clicked cable is pointing towards us - if(C.d1 == dirn || C.d2 == dirn) - if(!U.can_have_cabling()) //checking if it's a plating or catwalk - to_chat(user, "You can only lay cables on catwalks and plating!") - return - if(U.intact) //can't place a cable if it's a plating with a tile on it - to_chat(user, "You can't lay cable there unless the floor tiles are removed!") - return - else - // cable is pointing at us, we're standing on an open tile - // so create a stub pointing at the clicked cable on our tile - - var/fdirn = turn(dirn, 180) // the opposite direction - - for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already - if(LC.d1 == fdirn || LC.d2 == fdirn) - to_chat(user, "There's already a cable at that position!") - return - - var/obj/structure/cable/NC = get_new_cable (U) - - NC.d1 = 0 - NC.d2 = fdirn - NC.add_fingerprint() + + //create a new powernet with the cable, if needed it will be merged later + var/datum/powernet/PN = new() + PN.add_cable(C) + + C.mergeConnectedNetworks(C.d2) //merge the powernet with adjacents powernets + C.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets + + if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions + C.mergeDiagonalsNetworks(C.d2) + + + use(1) + + if (C.shock(user, 50)) + if (prob(50)) //fail + C.deconstruct() + +// called when cable_coil is click on an installed obj/cable +// or click on a turf that already contains a "node" cable +/obj/item/stack/cable_coil/proc/cable_join(obj/structure/cable/C, mob/user) + var/turf/U = user.loc + if(!isturf(U)) + return + + var/turf/T = C.loc + + if(!isturf(T) || T.intact) // sanity checks, also stop use interacting with T-scanner revealed cable + return + + if(get_dist(C, user) > 1) // make sure it's close enough + to_chat(user, "You can't lay cable at a place that far away!") + return + + + if(U == T) //if clicked on the turf we're standing on, try to put a cable in the direction we're facing + place_turf(T,user) + return + + var/dirn = get_dir(C, user) + + // one end of the clicked cable is pointing towards us + if(C.d1 == dirn || C.d2 == dirn) + if(!U.can_have_cabling()) //checking if it's a plating or catwalk + to_chat(user, "You can only lay cables on catwalks and plating!") + return + if(U.intact) //can't place a cable if it's a plating with a tile on it + to_chat(user, "You can't lay cable there unless the floor tiles are removed!") + return + else + // cable is pointing at us, we're standing on an open tile + // so create a stub pointing at the clicked cable on our tile + + var/fdirn = turn(dirn, 180) // the opposite direction + + for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already + if(LC.d1 == fdirn || LC.d2 == fdirn) + to_chat(user, "There's already a cable at that position!") + return + + var/obj/structure/cable/NC = get_new_cable (U) + + NC.d1 = 0 + NC.d2 = fdirn + NC.add_fingerprint() NC.update_icon() - - //create a new powernet with the cable, if needed it will be merged later - var/datum/powernet/newPN = new() - newPN.add_cable(NC) - - NC.mergeConnectedNetworks(NC.d2) //merge the powernet with adjacents powernets - NC.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets - - if(NC.d2 & (NC.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions - NC.mergeDiagonalsNetworks(NC.d2) - - use(1) - - if (NC.shock(user, 50)) - if (prob(50)) //fail - NC.deconstruct() - - return - - // exisiting cable doesn't point at our position, so see if it's a stub - else if(C.d1 == 0) - // if so, make it a full cable pointing from it's old direction to our dirn - var/nd1 = C.d2 // these will be the new directions - var/nd2 = dirn - - - if(nd1 > nd2) // swap directions to match icons/states - nd1 = dirn - nd2 = C.d2 - - - for(var/obj/structure/cable/LC in T) // check to make sure there's no matching cable - if(LC == C) // skip the cable we're interacting with - continue - if((LC.d1 == nd1 && LC.d2 == nd2) || (LC.d1 == nd2 && LC.d2 == nd1) ) // make sure no cable matches either direction - to_chat(user, "There's already a cable at that position!") - return - - - C.cableColor(item_color) - - C.d1 = nd1 - C.d2 = nd2 - - //updates the stored cable coil - C.update_stored(2, item_color) - - C.add_fingerprint() + + //create a new powernet with the cable, if needed it will be merged later + var/datum/powernet/newPN = new() + newPN.add_cable(NC) + + NC.mergeConnectedNetworks(NC.d2) //merge the powernet with adjacents powernets + NC.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets + + if(NC.d2 & (NC.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions + NC.mergeDiagonalsNetworks(NC.d2) + + use(1) + + if (NC.shock(user, 50)) + if (prob(50)) //fail + NC.deconstruct() + + return + + // exisiting cable doesn't point at our position, so see if it's a stub + else if(C.d1 == 0) + // if so, make it a full cable pointing from it's old direction to our dirn + var/nd1 = C.d2 // these will be the new directions + var/nd2 = dirn + + + if(nd1 > nd2) // swap directions to match icons/states + nd1 = dirn + nd2 = C.d2 + + + for(var/obj/structure/cable/LC in T) // check to make sure there's no matching cable + if(LC == C) // skip the cable we're interacting with + continue + if((LC.d1 == nd1 && LC.d2 == nd2) || (LC.d1 == nd2 && LC.d2 == nd1) ) // make sure no cable matches either direction + to_chat(user, "There's already a cable at that position!") + return + + + C.cableColor(item_color) + + C.d1 = nd1 + C.d2 = nd2 + + //updates the stored cable coil + C.update_stored(2, item_color) + + C.add_fingerprint() C.update_icon() - - - C.mergeConnectedNetworks(C.d1) //merge the powernets... - C.mergeConnectedNetworks(C.d2) //...in the two new cable directions - C.mergeConnectedNetworksOnTurf() - - if(C.d1 & (C.d1 - 1))// if the cable is layed diagonally, check the others 2 possible directions - C.mergeDiagonalsNetworks(C.d1) - - if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions - C.mergeDiagonalsNetworks(C.d2) - - use(1) - - if (C.shock(user, 50)) - if (prob(50)) //fail - C.deconstruct() - return - - C.denode()// this call may have disconnected some cables that terminated on the centre of the turf, if so split the powernets. - return - -////////////////////////////// -// Misc. -///////////////////////////// - -/obj/item/stack/cable_coil/cut - item_state = "coil_red2" - + + + C.mergeConnectedNetworks(C.d1) //merge the powernets... + C.mergeConnectedNetworks(C.d2) //...in the two new cable directions + C.mergeConnectedNetworksOnTurf() + + if(C.d1 & (C.d1 - 1))// if the cable is layed diagonally, check the others 2 possible directions + C.mergeDiagonalsNetworks(C.d1) + + if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions + C.mergeDiagonalsNetworks(C.d2) + + use(1) + + if (C.shock(user, 50)) + if (prob(50)) //fail + C.deconstruct() + return + + C.denode()// this call may have disconnected some cables that terminated on the centre of the turf, if so split the powernets. + return + +////////////////////////////// +// Misc. +///////////////////////////// + +/obj/item/stack/cable_coil/cut + item_state = "coil_red2" + /obj/item/stack/cable_coil/cut/Initialize(mapload) . =..() amount = rand(1,2) - pixel_x = rand(-2,2) - pixel_y = rand(-2,2) - update_icon() - -/obj/item/stack/cable_coil/red - item_color = "red" - icon_state = "coil_red" - -/obj/item/stack/cable_coil/yellow - item_color = "yellow" - icon_state = "coil_yellow" - -/obj/item/stack/cable_coil/blue - item_color = "blue" - icon_state = "coil_blue" - item_state = "coil_blue" - -/obj/item/stack/cable_coil/green - item_color = "green" - icon_state = "coil_green" - -/obj/item/stack/cable_coil/pink - item_color = "pink" - icon_state = "coil_pink" - -/obj/item/stack/cable_coil/orange - item_color = "orange" - icon_state = "coil_orange" - -/obj/item/stack/cable_coil/cyan - item_color = "cyan" - icon_state = "coil_cyan" - -/obj/item/stack/cable_coil/white - item_color = "white" - icon_state = "coil_white" - + pixel_x = rand(-2,2) + pixel_y = rand(-2,2) + update_icon() + +/obj/item/stack/cable_coil/red + item_color = "red" + icon_state = "coil_red" + +/obj/item/stack/cable_coil/yellow + item_color = "yellow" + icon_state = "coil_yellow" + +/obj/item/stack/cable_coil/blue + item_color = "blue" + icon_state = "coil_blue" + item_state = "coil_blue" + +/obj/item/stack/cable_coil/green + item_color = "green" + icon_state = "coil_green" + +/obj/item/stack/cable_coil/pink + item_color = "pink" + icon_state = "coil_pink" + +/obj/item/stack/cable_coil/orange + item_color = "orange" + icon_state = "coil_orange" + +/obj/item/stack/cable_coil/cyan + item_color = "cyan" + icon_state = "coil_cyan" + +/obj/item/stack/cable_coil/white + item_color = "white" + icon_state = "coil_white" + /obj/item/stack/cable_coil/random/Initialize(mapload) . = ..() - item_color = pick("red","orange","yellow","green","cyan","blue","pink","white") - icon_state = "coil_[item_color]" + item_color = pick("red","orange","yellow","green","cyan","blue","pink","white") + icon_state = "coil_[item_color]" /obj/item/stack/cable_coil/random/five diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 1c3d44b7ea..1d3dfefefa 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -321,3 +321,16 @@ /obj/item/weapon/stock_parts/cell/emproof/corrupt() return + +/obj/item/weapon/stock_parts/cell/beam_rifle + name = "beam rifle capacitor" + desc = "A high powered capacitor that can provide huge amounts of energy in an instant" + maxcharge = 50000 + chargerate = 5000 //Extremely energy intensive + rating = 4 + +/obj/item/weapon/stock_parts/cell/beam_rifle/corrupt() + return + +/obj/item/weapon/stock_parts/cell/beam_rifle/emp_act(severity) + charge = Clamp((charge-(10000/severity)),0,maxcharge) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 864b3a2b97..e32441622b 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -1,213 +1,213 @@ -// dummy generator object for testing - -/*/obj/machinery/power/generator/verb/set_amount(var/g as num) - set src in view(1) - - gen_amount = g - -*/ - -/obj/machinery/power/generator - name = "thermoelectric generator" - desc = "It's a high efficiency thermoelectric generator." - icon_state = "teg" - anchored = 1 - density = 1 +// dummy generator object for testing + +/*/obj/machinery/power/generator/verb/set_amount(var/g as num) + set src in view(1) + + gen_amount = g + +*/ + +/obj/machinery/power/generator + name = "thermoelectric generator" + desc = "It's a high efficiency thermoelectric generator." + icon_state = "teg" + anchored = 1 + density = 1 use_power = NO_POWER_USE - - var/obj/machinery/atmospherics/components/binary/circulator/cold_circ - var/obj/machinery/atmospherics/components/binary/circulator/hot_circ - - //note: these currently only support EAST and WEST - var/cold_dir = WEST - var/hot_dir = EAST - - var/lastgen = 0 - var/lastgenlev = -1 - var/lastcirc = "00" - - -/obj/machinery/power/generator/Initialize(mapload) - . = ..() - var/obj/machinery/atmospherics/components/binary/circulator/circpath = /obj/machinery/atmospherics/components/binary/circulator - cold_circ = locate(circpath) in get_step(src, cold_dir) - hot_circ = locate(circpath) in get_step(src, hot_dir) - connect_to_network() - SSair.atmos_machinery += src - - if(cold_circ) - switch(cold_dir) - if(EAST) - cold_circ.side = circpath.CIRC_RIGHT - if(WEST) - cold_circ.side = circpath.CIRC_LEFT - cold_circ.update_icon() - - if(hot_circ) - switch(hot_dir) - if(EAST) - hot_circ.side = circpath.CIRC_RIGHT - if(WEST) - hot_circ.side = circpath.CIRC_LEFT - hot_circ.update_icon() - - if(!cold_circ || !hot_circ) - stat |= BROKEN - - update_icon() - -/obj/machinery/power/generator/Destroy() - SSair.atmos_machinery -= src - return ..() - -/obj/machinery/power/generator/update_icon() - - if(stat & (NOPOWER|BROKEN)) - cut_overlays() - else - cut_overlays() - - var/L = min(round(lastgenlev/100000),11) - if(L != 0) - add_overlay(image('icons/obj/power.dmi', "teg-op[L]")) - - add_overlay("teg-oc[lastcirc]") - - -#define GENRATE 800 // generator output coefficient from Q - -/obj/machinery/power/generator/process_atmos() - - if(!cold_circ || !hot_circ) - return - - if(powernet) - //to_chat(world, "cold_circ and hot_circ pass") - - var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() - var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air() - - //to_chat(world, "hot_air = [hot_air]; cold_air = [cold_air];") - - if(cold_air && hot_air) - - //to_chat(world, "hot_air = [hot_air] temperature = [hot_air.temperature]; cold_air = [cold_air] temperature = [hot_air.temperature];") - - //to_chat(world, "coldair and hotair pass") - var/cold_air_heat_capacity = cold_air.heat_capacity() - var/hot_air_heat_capacity = hot_air.heat_capacity() - - var/delta_temperature = hot_air.temperature - cold_air.temperature - - //to_chat(world, "delta_temperature = [delta_temperature]; cold_air_heat_capacity = [cold_air_heat_capacity]; hot_air_heat_capacity = [hot_air_heat_capacity]") - - if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) - var/efficiency = 0.65 - - var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) - - var/heat = energy_transfer*(1-efficiency) - lastgen += energy_transfer*efficiency - - //to_chat(world, "lastgen = [lastgen]; heat = [heat]; delta_temperature = [delta_temperature]; hot_air_heat_capacity = [hot_air_heat_capacity]; cold_air_heat_capacity = [cold_air_heat_capacity];") - - hot_air.temperature = hot_air.temperature - energy_transfer/hot_air_heat_capacity - cold_air.temperature = cold_air.temperature + heat/cold_air_heat_capacity - - //to_chat(world, "POWER: [lastgen] W generated at [efficiency*100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]") - - //add_avail(lastgen) This is done in process now - // update icon overlays only if displayed level has changed - - if(hot_air) - var/datum/gas_mixture/hot_circ_air1 = hot_circ.AIR1 - hot_circ_air1.merge(hot_air) - - if(cold_air) - var/datum/gas_mixture/cold_circ_air1 = cold_circ.AIR1 - cold_circ_air1.merge(cold_air) - - update_icon() - - var/circ = "[cold_circ && cold_circ.last_pressure_delta > 0 ? "1" : "0"][hot_circ && hot_circ.last_pressure_delta > 0 ? "1" : "0"]" - if(circ != lastcirc) - lastcirc = circ - update_icon() - - src.updateDialog() - -/obj/machinery/power/generator/process() - //Setting this number higher just makes the change in power output slower, it doesnt actualy reduce power output cause **math** - var/power_output = round(lastgen / 10) - add_avail(power_output) - lastgenlev = power_output - lastgen -= power_output - ..() - -/obj/machinery/power/generator/attack_hand(mob/user) - if(..()) - user << browse(null, "window=teg") - return - interact(user) - -/obj/machinery/power/generator/proc/get_menu(include_link = 1) - var/t = "" - if(!powernet) - t += "Unable to connect to the power network!" - else if(cold_circ && hot_circ) - var/datum/gas_mixture/cold_circ_air1 = cold_circ.AIR1 - var/datum/gas_mixture/cold_circ_air2 = cold_circ.AIR2 - var/datum/gas_mixture/hot_circ_air1 = hot_circ.AIR1 - var/datum/gas_mixture/hot_circ_air2 = hot_circ.AIR2 - - t += "
    " - - var/displaygen = lastgenlev - if(displaygen < 1000000) //less than a MW - displaygen /= 1000 - t += "Output: [round(displaygen,0.01)] kW" - else - displaygen /= 1000000 - t += "Output: [round(displaygen,0.01)] MW" - - t += "
    " - - t += "Cold loop
    " - t += "Temperature Inlet: [round(cold_circ_air2.temperature, 0.1)] K / Outlet: [round(cold_circ_air1.temperature, 0.1)] K
    " - t += "Pressure Inlet: [round(cold_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(cold_circ_air1.return_pressure(), 0.1)] kPa
    " - - t += "Hot loop
    " - t += "Temperature Inlet: [round(hot_circ_air2.temperature, 0.1)] K / Outlet: [round(hot_circ_air1.temperature, 0.1)] K
    " - t += "Pressure Inlet: [round(hot_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(hot_circ_air1.return_pressure(), 0.1)] kPa
    " - - t += "
    " - else - t += "Unable to locate all parts!" - if(include_link) - t += "
    Close" - - return t - -/obj/machinery/power/generator/interact(mob/user) - - user.set_machine(src) - var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300) - popup.set_content(get_menu()) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return 1 - - -/obj/machinery/power/generator/Topic(href, href_list) - if(..()) - return - if( href_list["close"] ) - usr << browse(null, "window=teg") - usr.unset_machine() - return 0 - return 1 - - -/obj/machinery/power/generator/power_change() - ..() - update_icon() + + var/obj/machinery/atmospherics/components/binary/circulator/cold_circ + var/obj/machinery/atmospherics/components/binary/circulator/hot_circ + + //note: these currently only support EAST and WEST + var/cold_dir = WEST + var/hot_dir = EAST + + var/lastgen = 0 + var/lastgenlev = -1 + var/lastcirc = "00" + + +/obj/machinery/power/generator/Initialize(mapload) + . = ..() + var/obj/machinery/atmospherics/components/binary/circulator/circpath = /obj/machinery/atmospherics/components/binary/circulator + cold_circ = locate(circpath) in get_step(src, cold_dir) + hot_circ = locate(circpath) in get_step(src, hot_dir) + connect_to_network() + SSair.atmos_machinery += src + + if(cold_circ) + switch(cold_dir) + if(EAST) + cold_circ.side = circpath.CIRC_RIGHT + if(WEST) + cold_circ.side = circpath.CIRC_LEFT + cold_circ.update_icon() + + if(hot_circ) + switch(hot_dir) + if(EAST) + hot_circ.side = circpath.CIRC_RIGHT + if(WEST) + hot_circ.side = circpath.CIRC_LEFT + hot_circ.update_icon() + + if(!cold_circ || !hot_circ) + stat |= BROKEN + + update_icon() + +/obj/machinery/power/generator/Destroy() + SSair.atmos_machinery -= src + return ..() + +/obj/machinery/power/generator/update_icon() + + if(stat & (NOPOWER|BROKEN)) + cut_overlays() + else + cut_overlays() + + var/L = min(round(lastgenlev/100000),11) + if(L != 0) + add_overlay(image('icons/obj/power.dmi', "teg-op[L]")) + + add_overlay("teg-oc[lastcirc]") + + +#define GENRATE 800 // generator output coefficient from Q + +/obj/machinery/power/generator/process_atmos() + + if(!cold_circ || !hot_circ) + return + + if(powernet) + //to_chat(world, "cold_circ and hot_circ pass") + + var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() + var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air() + + //to_chat(world, "hot_air = [hot_air]; cold_air = [cold_air];") + + if(cold_air && hot_air) + + //to_chat(world, "hot_air = [hot_air] temperature = [hot_air.temperature]; cold_air = [cold_air] temperature = [hot_air.temperature];") + + //to_chat(world, "coldair and hotair pass") + var/cold_air_heat_capacity = cold_air.heat_capacity() + var/hot_air_heat_capacity = hot_air.heat_capacity() + + var/delta_temperature = hot_air.temperature - cold_air.temperature + + //to_chat(world, "delta_temperature = [delta_temperature]; cold_air_heat_capacity = [cold_air_heat_capacity]; hot_air_heat_capacity = [hot_air_heat_capacity]") + + if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) + var/efficiency = 0.65 + + var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) + + var/heat = energy_transfer*(1-efficiency) + lastgen += energy_transfer*efficiency + + //to_chat(world, "lastgen = [lastgen]; heat = [heat]; delta_temperature = [delta_temperature]; hot_air_heat_capacity = [hot_air_heat_capacity]; cold_air_heat_capacity = [cold_air_heat_capacity];") + + hot_air.temperature = hot_air.temperature - energy_transfer/hot_air_heat_capacity + cold_air.temperature = cold_air.temperature + heat/cold_air_heat_capacity + + //to_chat(world, "POWER: [lastgen] W generated at [efficiency*100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]") + + //add_avail(lastgen) This is done in process now + // update icon overlays only if displayed level has changed + + if(hot_air) + var/datum/gas_mixture/hot_circ_air1 = hot_circ.AIR1 + hot_circ_air1.merge(hot_air) + + if(cold_air) + var/datum/gas_mixture/cold_circ_air1 = cold_circ.AIR1 + cold_circ_air1.merge(cold_air) + + update_icon() + + var/circ = "[cold_circ && cold_circ.last_pressure_delta > 0 ? "1" : "0"][hot_circ && hot_circ.last_pressure_delta > 0 ? "1" : "0"]" + if(circ != lastcirc) + lastcirc = circ + update_icon() + + src.updateDialog() + +/obj/machinery/power/generator/process() + //Setting this number higher just makes the change in power output slower, it doesnt actualy reduce power output cause **math** + var/power_output = round(lastgen / 10) + add_avail(power_output) + lastgenlev = power_output + lastgen -= power_output + ..() + +/obj/machinery/power/generator/attack_hand(mob/user) + if(..()) + user << browse(null, "window=teg") + return + interact(user) + +/obj/machinery/power/generator/proc/get_menu(include_link = 1) + var/t = "" + if(!powernet) + t += "Unable to connect to the power network!" + else if(cold_circ && hot_circ) + var/datum/gas_mixture/cold_circ_air1 = cold_circ.AIR1 + var/datum/gas_mixture/cold_circ_air2 = cold_circ.AIR2 + var/datum/gas_mixture/hot_circ_air1 = hot_circ.AIR1 + var/datum/gas_mixture/hot_circ_air2 = hot_circ.AIR2 + + t += "
    " + + var/displaygen = lastgenlev + if(displaygen < 1000000) //less than a MW + displaygen /= 1000 + t += "Output: [round(displaygen,0.01)] kW" + else + displaygen /= 1000000 + t += "Output: [round(displaygen,0.01)] MW" + + t += "
    " + + t += "Cold loop
    " + t += "Temperature Inlet: [round(cold_circ_air2.temperature, 0.1)] K / Outlet: [round(cold_circ_air1.temperature, 0.1)] K
    " + t += "Pressure Inlet: [round(cold_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(cold_circ_air1.return_pressure(), 0.1)] kPa
    " + + t += "Hot loop
    " + t += "Temperature Inlet: [round(hot_circ_air2.temperature, 0.1)] K / Outlet: [round(hot_circ_air1.temperature, 0.1)] K
    " + t += "Pressure Inlet: [round(hot_circ_air2.return_pressure(), 0.1)] kPa / Outlet: [round(hot_circ_air1.return_pressure(), 0.1)] kPa
    " + + t += "
    " + else + t += "Unable to locate all parts!" + if(include_link) + t += "
    Close" + + return t + +/obj/machinery/power/generator/interact(mob/user) + + user.set_machine(src) + var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300) + popup.set_content(get_menu()) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return 1 + + +/obj/machinery/power/generator/Topic(href, href_list) + if(..()) + return + if( href_list["close"] ) + usr << browse(null, "window=teg") + usr.unset_machine() + return 0 + return 1 + + +/obj/machinery/power/generator/power_change() + ..() + update_icon() diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 0242259873..fa9d2424cd 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -1,309 +1,309 @@ - -// -// Gravity Generator -// - -GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding new gravity generators to the list, and keying it with the z level. - -#define POWER_IDLE 0 -#define POWER_UP 1 -#define POWER_DOWN 2 - -#define GRAV_NEEDS_SCREWDRIVER 0 -#define GRAV_NEEDS_WELDING 1 -#define GRAV_NEEDS_PLASTEEL 2 -#define GRAV_NEEDS_WRENCH 3 - -// -// Abstract Generator -// - -/obj/machinery/gravity_generator - name = "gravitational generator" + +// +// Gravity Generator +// + +GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding new gravity generators to the list, and keying it with the z level. + +#define POWER_IDLE 0 +#define POWER_UP 1 +#define POWER_DOWN 2 + +#define GRAV_NEEDS_SCREWDRIVER 0 +#define GRAV_NEEDS_WELDING 1 +#define GRAV_NEEDS_PLASTEEL 2 +#define GRAV_NEEDS_WRENCH 3 + +// +// Abstract Generator +// + +/obj/machinery/gravity_generator + name = "gravitational generator" desc = "A device which produces a graviton field when set up." - icon = 'icons/obj/machines/gravity_generator.dmi' - anchored = 1 - density = 1 + icon = 'icons/obj/machines/gravity_generator.dmi' + anchored = 1 + density = 1 use_power = NO_POWER_USE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/sprite_number = 0 - -/obj/machinery/gravity_generator/throw_at() - return FALSE - -/obj/machinery/gravity_generator/ex_act(severity, target) - if(severity == 1) // Very sturdy. - set_broken() - -/obj/machinery/gravity_generator/blob_act(obj/structure/blob/B) - if(prob(20)) - set_broken() - -/obj/machinery/gravity_generator/tesla_act(power, explosive) - ..() - if(explosive) - qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over - -/obj/machinery/gravity_generator/update_icon() - ..() - icon_state = "[get_status()]_[sprite_number]" - -//prevents shuttles attempting to rotate this since it messes up sprites -/obj/machinery/gravity_generator/shuttleRotate() - return - -/obj/machinery/gravity_generator/proc/get_status() - return "off" - -// You aren't allowed to move. -/obj/machinery/gravity_generator/Move() - ..() - qdel(src) - -/obj/machinery/gravity_generator/proc/set_broken() - stat |= BROKEN - -/obj/machinery/gravity_generator/proc/set_fix() - stat &= ~BROKEN - -/obj/machinery/gravity_generator/part/Destroy() - if(main_part) - qdel(main_part) - set_broken() - return ..() - -// -// Part generator which is mostly there for looks -// - -/obj/machinery/gravity_generator/part - var/obj/machinery/gravity_generator/main/main_part = null - -/obj/machinery/gravity_generator/part/attackby(obj/item/I, mob/user, params) - return main_part.attackby(I, user) - -/obj/machinery/gravity_generator/part/get_status() - return main_part.get_status() - -/obj/machinery/gravity_generator/part/attack_hand(mob/user) - return main_part.attack_hand(user) - -/obj/machinery/gravity_generator/part/set_broken() - ..() - if(main_part && !(main_part.stat & BROKEN)) - main_part.set_broken() - -// -// Generator which spawns with the station. -// - -/obj/machinery/gravity_generator/main/station/Initialize() - . = ..() - setup_parts() - middle.add_overlay("activated") - update_list() - -// -// Generator an admin can spawn -// -/obj/machinery/gravity_generator/main/station/admin + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/sprite_number = 0 + +/obj/machinery/gravity_generator/throw_at() + return FALSE + +/obj/machinery/gravity_generator/ex_act(severity, target) + if(severity == 1) // Very sturdy. + set_broken() + +/obj/machinery/gravity_generator/blob_act(obj/structure/blob/B) + if(prob(20)) + set_broken() + +/obj/machinery/gravity_generator/tesla_act(power, explosive) + ..() + if(explosive) + qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over + +/obj/machinery/gravity_generator/update_icon() + ..() + icon_state = "[get_status()]_[sprite_number]" + +//prevents shuttles attempting to rotate this since it messes up sprites +/obj/machinery/gravity_generator/shuttleRotate() + return + +/obj/machinery/gravity_generator/proc/get_status() + return "off" + +// You aren't allowed to move. +/obj/machinery/gravity_generator/Move() + ..() + qdel(src) + +/obj/machinery/gravity_generator/proc/set_broken() + stat |= BROKEN + +/obj/machinery/gravity_generator/proc/set_fix() + stat &= ~BROKEN + +/obj/machinery/gravity_generator/part/Destroy() + if(main_part) + qdel(main_part) + set_broken() + return ..() + +// +// Part generator which is mostly there for looks +// + +/obj/machinery/gravity_generator/part + var/obj/machinery/gravity_generator/main/main_part = null + +/obj/machinery/gravity_generator/part/attackby(obj/item/I, mob/user, params) + return main_part.attackby(I, user) + +/obj/machinery/gravity_generator/part/get_status() + return main_part.get_status() + +/obj/machinery/gravity_generator/part/attack_hand(mob/user) + return main_part.attack_hand(user) + +/obj/machinery/gravity_generator/part/set_broken() + ..() + if(main_part && !(main_part.stat & BROKEN)) + main_part.set_broken() + +// +// Generator which spawns with the station. +// + +/obj/machinery/gravity_generator/main/station/Initialize() + . = ..() + setup_parts() + middle.add_overlay("activated") + update_list() + +// +// Generator an admin can spawn +// +/obj/machinery/gravity_generator/main/station/admin use_power = NO_POWER_USE - -// -// Main Generator with the main code -// - -/obj/machinery/gravity_generator/main - icon_state = "on_8" - idle_power_usage = 0 - active_power_usage = 3000 - power_channel = ENVIRON - sprite_number = 8 + +// +// Main Generator with the main code +// + +/obj/machinery/gravity_generator/main + icon_state = "on_8" + idle_power_usage = 0 + active_power_usage = 3000 + power_channel = ENVIRON + sprite_number = 8 use_power = IDLE_POWER_USE - interact_offline = 1 - var/on = 1 - var/breaker = 1 - var/list/parts = list() - var/obj/middle = null - var/charging_state = POWER_IDLE - var/charge_count = 100 - var/current_overlay = null - var/broken_state = 0 - -/obj/machinery/gravity_generator/main/Destroy() // If we somehow get deleted, remove all of our other parts. + interact_offline = 1 + var/on = 1 + var/breaker = 1 + var/list/parts = list() + var/obj/middle = null + var/charging_state = POWER_IDLE + var/charge_count = 100 + var/current_overlay = null + var/broken_state = 0 + +/obj/machinery/gravity_generator/main/Destroy() // If we somehow get deleted, remove all of our other parts. investigate_log("was destroyed!", INVESTIGATE_GRAVITY) - on = 0 - update_list() - for(var/obj/machinery/gravity_generator/part/O in parts) - O.main_part = null - if(!QDESTROYING(O)) - qdel(O) - return ..() - -/obj/machinery/gravity_generator/main/proc/setup_parts() - var/turf/our_turf = get_turf(src) - // 9x9 block obtained from the bottom middle of the block - var/list/spawn_turfs = block(locate(our_turf.x - 1, our_turf.y + 2, our_turf.z), locate(our_turf.x + 1, our_turf.y, our_turf.z)) - var/count = 10 - for(var/turf/T in spawn_turfs) - count-- - if(T == our_turf) // Skip our turf. - continue - var/obj/machinery/gravity_generator/part/part = new(T) - if(count == 5) // Middle - middle = part - if(count <= 3) // Their sprite is the top part of the generator - part.density = 0 - part.layer = WALL_OBJ_LAYER - part.sprite_number = count - part.main_part = src - parts += part - part.update_icon() - -/obj/machinery/gravity_generator/main/proc/connected_parts() - return parts.len == 8 - -/obj/machinery/gravity_generator/main/set_broken() - ..() - for(var/obj/machinery/gravity_generator/M in parts) - if(!(M.stat & BROKEN)) - M.set_broken() - middle.cut_overlays() - charge_count = 0 - breaker = 0 - set_power() - set_state(0) + on = 0 + update_list() + for(var/obj/machinery/gravity_generator/part/O in parts) + O.main_part = null + if(!QDESTROYING(O)) + qdel(O) + return ..() + +/obj/machinery/gravity_generator/main/proc/setup_parts() + var/turf/our_turf = get_turf(src) + // 9x9 block obtained from the bottom middle of the block + var/list/spawn_turfs = block(locate(our_turf.x - 1, our_turf.y + 2, our_turf.z), locate(our_turf.x + 1, our_turf.y, our_turf.z)) + var/count = 10 + for(var/turf/T in spawn_turfs) + count-- + if(T == our_turf) // Skip our turf. + continue + var/obj/machinery/gravity_generator/part/part = new(T) + if(count == 5) // Middle + middle = part + if(count <= 3) // Their sprite is the top part of the generator + part.density = 0 + part.layer = WALL_OBJ_LAYER + part.sprite_number = count + part.main_part = src + parts += part + part.update_icon() + +/obj/machinery/gravity_generator/main/proc/connected_parts() + return parts.len == 8 + +/obj/machinery/gravity_generator/main/set_broken() + ..() + for(var/obj/machinery/gravity_generator/M in parts) + if(!(M.stat & BROKEN)) + M.set_broken() + middle.cut_overlays() + charge_count = 0 + breaker = 0 + set_power() + set_state(0) investigate_log("has broken down.", INVESTIGATE_GRAVITY) - -/obj/machinery/gravity_generator/main/set_fix() - ..() - for(var/obj/machinery/gravity_generator/M in parts) - if(M.stat & BROKEN) - M.set_fix() - broken_state = 0 - update_icon() - set_power() - -// Interaction - -// Fixing the gravity generator. -/obj/machinery/gravity_generator/main/attackby(obj/item/I, mob/user, params) - switch(broken_state) - if(GRAV_NEEDS_SCREWDRIVER) - if(istype(I, /obj/item/weapon/screwdriver)) - to_chat(user, "You secure the screws of the framework.") - playsound(src.loc, I.usesound, 50, 1) - broken_state++ - update_icon() - return - if(GRAV_NEEDS_WELDING) - if(istype(I, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = I - if(WT.remove_fuel(1, user)) - to_chat(user, "You mend the damaged framework.") - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - broken_state++ - update_icon() - else if(WT.isOn()) - to_chat(user, "You don't have enough fuel to mend the damaged framework!") - return - if(GRAV_NEEDS_PLASTEEL) - if(istype(I, /obj/item/stack/sheet/plasteel)) - var/obj/item/stack/sheet/plasteel/PS = I - if(PS.get_amount() >= 10) - PS.use(10) - to_chat(user, "You add the plating to the framework.") - playsound(src.loc, 'sound/machines/click.ogg', 75, 1) - broken_state++ - update_icon() - else - to_chat(user, "You need 10 sheets of plasteel!") - return - if(GRAV_NEEDS_WRENCH) - if(istype(I, /obj/item/weapon/wrench)) - to_chat(user, "You secure the plating to the framework.") - playsound(src.loc, I.usesound, 75, 1) - set_fix() - return - return ..() - - -/obj/machinery/gravity_generator/main/attack_hand(mob/user) - if(!..()) - return interact(user) - -/obj/machinery/gravity_generator/main/interact(mob/user) - if(stat & BROKEN) - return - var/dat = "Gravity Generator Breaker: " - if(breaker) - dat += "ON OFF" - else - dat += "ON OFF " - - dat += "
    Generator Status:
    " - if(charging_state != POWER_IDLE) - dat += "WARNING Radiation Detected.
    [charging_state == POWER_UP ? "Charging..." : "Discharging..."]" - else if(on) - dat += "Powered." - else - dat += "Unpowered." - - dat += "
    Gravity Charge: [charge_count]%
    " - - var/datum/browser/popup = new(user, "gravgen", name) - popup.set_content(dat) - popup.open() - - -/obj/machinery/gravity_generator/main/Topic(href, href_list) - - if(..()) - return - - if(href_list["gentoggle"]) - breaker = !breaker + +/obj/machinery/gravity_generator/main/set_fix() + ..() + for(var/obj/machinery/gravity_generator/M in parts) + if(M.stat & BROKEN) + M.set_fix() + broken_state = 0 + update_icon() + set_power() + +// Interaction + +// Fixing the gravity generator. +/obj/machinery/gravity_generator/main/attackby(obj/item/I, mob/user, params) + switch(broken_state) + if(GRAV_NEEDS_SCREWDRIVER) + if(istype(I, /obj/item/weapon/screwdriver)) + to_chat(user, "You secure the screws of the framework.") + playsound(src.loc, I.usesound, 50, 1) + broken_state++ + update_icon() + return + if(GRAV_NEEDS_WELDING) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(WT.remove_fuel(1, user)) + to_chat(user, "You mend the damaged framework.") + playsound(src.loc, 'sound/items/welder2.ogg', 50, 1) + broken_state++ + update_icon() + else if(WT.isOn()) + to_chat(user, "You don't have enough fuel to mend the damaged framework!") + return + if(GRAV_NEEDS_PLASTEEL) + if(istype(I, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/PS = I + if(PS.get_amount() >= 10) + PS.use(10) + to_chat(user, "You add the plating to the framework.") + playsound(src.loc, 'sound/machines/click.ogg', 75, 1) + broken_state++ + update_icon() + else + to_chat(user, "You need 10 sheets of plasteel!") + return + if(GRAV_NEEDS_WRENCH) + if(istype(I, /obj/item/weapon/wrench)) + to_chat(user, "You secure the plating to the framework.") + playsound(src.loc, I.usesound, 75, 1) + set_fix() + return + return ..() + + +/obj/machinery/gravity_generator/main/attack_hand(mob/user) + if(!..()) + return interact(user) + +/obj/machinery/gravity_generator/main/interact(mob/user) + if(stat & BROKEN) + return + var/dat = "Gravity Generator Breaker: " + if(breaker) + dat += "ON OFF" + else + dat += "ON OFF " + + dat += "
    Generator Status:
    " + if(charging_state != POWER_IDLE) + dat += "WARNING Radiation Detected.
    [charging_state == POWER_UP ? "Charging..." : "Discharging..."]" + else if(on) + dat += "Powered." + else + dat += "Unpowered." + + dat += "
    Gravity Charge: [charge_count]%
    " + + var/datum/browser/popup = new(user, "gravgen", name) + popup.set_content(dat) + popup.open() + + +/obj/machinery/gravity_generator/main/Topic(href, href_list) + + if(..()) + return + + if(href_list["gentoggle"]) + breaker = !breaker investigate_log("was toggled [breaker ? "ON" : "OFF"] by [usr.key].", INVESTIGATE_GRAVITY) - set_power() - src.updateUsrDialog() - -// Power and Icon States - -/obj/machinery/gravity_generator/main/power_change() - ..() + set_power() + src.updateUsrDialog() + +// Power and Icon States + +/obj/machinery/gravity_generator/main/power_change() + ..() investigate_log("has [stat & NOPOWER ? "lost" : "regained"] power.", INVESTIGATE_GRAVITY) - set_power() - -/obj/machinery/gravity_generator/main/get_status() - if(stat & BROKEN) - return "fix[min(broken_state, 3)]" - return on || charging_state != POWER_IDLE ? "on" : "off" - -/obj/machinery/gravity_generator/main/update_icon() - ..() - for(var/obj/O in parts) - O.update_icon() - -// Set the charging state based on power/breaker. -/obj/machinery/gravity_generator/main/proc/set_power() - var/new_state = 0 - if(stat & (NOPOWER|BROKEN) || !breaker) - new_state = 0 - else if(breaker) - new_state = 1 - - charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation. + set_power() + +/obj/machinery/gravity_generator/main/get_status() + if(stat & BROKEN) + return "fix[min(broken_state, 3)]" + return on || charging_state != POWER_IDLE ? "on" : "off" + +/obj/machinery/gravity_generator/main/update_icon() + ..() + for(var/obj/O in parts) + O.update_icon() + +// Set the charging state based on power/breaker. +/obj/machinery/gravity_generator/main/proc/set_power() + var/new_state = 0 + if(stat & (NOPOWER|BROKEN) || !breaker) + new_state = 0 + else if(breaker) + new_state = 1 + + charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation. investigate_log("is now [charging_state == POWER_UP ? "charging" : "discharging"].", INVESTIGATE_GRAVITY) - update_icon() - -// Set the state of the gravity. -/obj/machinery/gravity_generator/main/proc/set_state(new_state) - charging_state = POWER_IDLE - on = new_state + update_icon() + +// Set the state of the gravity. +/obj/machinery/gravity_generator/main/proc/set_state(new_state) + charging_state = POWER_IDLE + on = new_state use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE - // Sound the alert if gravity was just enabled or disabled. - var/alert = 0 - var/area/A = get_area(src) + // Sound the alert if gravity was just enabled or disabled. + var/alert = 0 + var/area/A = get_area(src) if(SSticker.IsRoundInProgress()) if(on) // If we turned on and the game is live. if(gravity_in_level() == 0) @@ -315,102 +315,102 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne alert = 1 investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY) message_admins("The gravity generator was brought offline with no backup generator. [A][ADMIN_COORDJMP(src)]") - - update_icon() - update_list() - src.updateUsrDialog() - if(alert) - shake_everyone() - -// Charge/Discharge and turn on/off gravity when you reach 0/100 percent. -// Also emit radiation and handle the overlays. -/obj/machinery/gravity_generator/main/process() - if(stat & BROKEN) - return - if(charging_state != POWER_IDLE) - if(charging_state == POWER_UP && charge_count >= 100) - set_state(1) - else if(charging_state == POWER_DOWN && charge_count <= 0) - set_state(0) - else - if(charging_state == POWER_UP) - charge_count += 2 - else if(charging_state == POWER_DOWN) - charge_count -= 2 - - if(charge_count % 4 == 0 && prob(75)) // Let them know it is charging/discharging. - playsound(src.loc, 'sound/effects/EMPulse.ogg', 100, 1) - - updateDialog() - if(prob(25)) // To help stop "Your clothes feel warm." spam. - pulse_radiation() - - var/overlay_state = null - switch(charge_count) - if(0 to 20) - overlay_state = null - if(21 to 40) - overlay_state = "startup" - if(41 to 60) - overlay_state = "idle" - if(61 to 80) - overlay_state = "activating" - if(81 to 100) - overlay_state = "activated" - - if(overlay_state != current_overlay) - if(middle) - middle.cut_overlays() - if(overlay_state) - middle.add_overlay(overlay_state) - current_overlay = overlay_state - - -/obj/machinery/gravity_generator/main/proc/pulse_radiation() - radiation_pulse(get_turf(src), 3, 7, 20) - -// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged. -/obj/machinery/gravity_generator/main/proc/shake_everyone() - var/turf/T = get_turf(src) - for(var/mob/M in GLOB.mob_list) - if(M.z != z) - continue - M.update_gravity(M.mob_has_gravity()) - if(M.client) - shake_camera(M, 15, 1) - M.playsound_local(T, 'sound/effects/alert.ogg', 100, 1, 0.5) - -/obj/machinery/gravity_generator/main/proc/gravity_in_level() - var/turf/T = get_turf(src) - if(!T) - return 0 - if(GLOB.gravity_generators["[T.z]"]) - return length(GLOB.gravity_generators["[T.z]"]) - return 0 - -/obj/machinery/gravity_generator/main/proc/update_list() - var/turf/T = get_turf(src.loc) - if(T) - if(!GLOB.gravity_generators["[T.z]"]) - GLOB.gravity_generators["[T.z]"] = list() - if(on) - GLOB.gravity_generators["[T.z]"] |= src - else - GLOB.gravity_generators["[T.z]"] -= src - -// Misc - -/obj/item/weapon/paper/gravity_gen - name = "paper- 'Generate your own gravity!'" - info = {"

    Gravity Generator Instructions For Dummies

    -

    Surprisingly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of - energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator - will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR PROTECTIVE CLOTHING.

    -
    -

    It blew up!

    -

    Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then - please proceed to panic; otherwise follow these steps.

      -
    1. Secure the screws of the framework with a screwdriver.
    2. -
    3. Mend the damaged framework with a welding tool.
    4. -
    5. Add additional plasteel plating.
    6. -
    7. Secure the additional plating with a wrench.
    "} + + update_icon() + update_list() + src.updateUsrDialog() + if(alert) + shake_everyone() + +// Charge/Discharge and turn on/off gravity when you reach 0/100 percent. +// Also emit radiation and handle the overlays. +/obj/machinery/gravity_generator/main/process() + if(stat & BROKEN) + return + if(charging_state != POWER_IDLE) + if(charging_state == POWER_UP && charge_count >= 100) + set_state(1) + else if(charging_state == POWER_DOWN && charge_count <= 0) + set_state(0) + else + if(charging_state == POWER_UP) + charge_count += 2 + else if(charging_state == POWER_DOWN) + charge_count -= 2 + + if(charge_count % 4 == 0 && prob(75)) // Let them know it is charging/discharging. + playsound(src.loc, 'sound/effects/empulse.ogg', 100, 1) + + updateDialog() + if(prob(25)) // To help stop "Your clothes feel warm." spam. + pulse_radiation() + + var/overlay_state = null + switch(charge_count) + if(0 to 20) + overlay_state = null + if(21 to 40) + overlay_state = "startup" + if(41 to 60) + overlay_state = "idle" + if(61 to 80) + overlay_state = "activating" + if(81 to 100) + overlay_state = "activated" + + if(overlay_state != current_overlay) + if(middle) + middle.cut_overlays() + if(overlay_state) + middle.add_overlay(overlay_state) + current_overlay = overlay_state + + +/obj/machinery/gravity_generator/main/proc/pulse_radiation() + radiation_pulse(get_turf(src), 3, 7, 20) + +// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged. +/obj/machinery/gravity_generator/main/proc/shake_everyone() + var/turf/T = get_turf(src) + for(var/mob/M in GLOB.mob_list) + if(M.z != z) + continue + M.update_gravity(M.mob_has_gravity()) + if(M.client) + shake_camera(M, 15, 1) + M.playsound_local(T, 'sound/effects/alert.ogg', 100, 1, 0.5) + +/obj/machinery/gravity_generator/main/proc/gravity_in_level() + var/turf/T = get_turf(src) + if(!T) + return 0 + if(GLOB.gravity_generators["[T.z]"]) + return length(GLOB.gravity_generators["[T.z]"]) + return 0 + +/obj/machinery/gravity_generator/main/proc/update_list() + var/turf/T = get_turf(src.loc) + if(T) + if(!GLOB.gravity_generators["[T.z]"]) + GLOB.gravity_generators["[T.z]"] = list() + if(on) + GLOB.gravity_generators["[T.z]"] |= src + else + GLOB.gravity_generators["[T.z]"] -= src + +// Misc + +/obj/item/weapon/paper/gravity_gen + name = "paper- 'Generate your own gravity!'" + info = {"

    Gravity Generator Instructions For Dummies

    +

    Surprisingly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of + energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator + will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR PROTECTIVE CLOTHING.

    +
    +

    It blew up!

    +

    Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then + please proceed to panic; otherwise follow these steps.

      +
    1. Secure the screws of the framework with a screwdriver.
    2. +
    3. Mend the damaged framework with a welding tool.
    4. +
    5. Add additional plasteel plating.
    6. +
    7. Secure the additional plating with a wrench.
    "} diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index d2b3efb6da..bcf28fb01c 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -78,7 +78,7 @@ new /obj/item/stack/sheet/metal( get_turf(src.loc), sheets_refunded ) user.visible_message("[user.name] deconstructs [src].", \ "You deconstruct [src].", "You hear a ratchet.") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 75, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 75, 1) qdel(src) return @@ -407,9 +407,9 @@ if(LIGHT_BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, 1) else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) // returns whether this light has power @@ -519,7 +519,7 @@ if(!skip_sound_and_sparks) if(status == LIGHT_OK || status == LIGHT_BURNED) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) if(on) do_sparks(3, TRUE, src) status = LIGHT_BROKEN @@ -647,7 +647,7 @@ src.visible_message("[name] shatters.","You hear a small glass object shatter.") status = LIGHT_BROKEN force = 5 - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) update() diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index 41b2760811..6c24f0281b 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -1,89 +1,89 @@ -/obj/machinery/computer/monitor - name = "power monitoring console" - desc = "It monitors power levels across the station." - icon_screen = "power" - icon_keyboard = "power_key" - light_color = LIGHT_COLOR_YELLOW +/obj/machinery/computer/monitor + name = "power monitoring console" + desc = "It monitors power levels across the station." + icon_screen = "power" + icon_keyboard = "power_key" + light_color = LIGHT_COLOR_YELLOW use_power = ACTIVE_POWER_USE - idle_power_usage = 20 - active_power_usage = 100 - circuit = /obj/item/weapon/circuitboard/computer/powermonitor - - var/obj/structure/cable/attached - - var/list/history = list() - var/record_size = 60 - var/record_interval = 50 - var/next_record = 0 - -/obj/machinery/computer/monitor/New() - ..() - search() - history["supply"] = list() - history["demand"] = list() - -/obj/machinery/computer/monitor/process() - if(!attached) + idle_power_usage = 20 + active_power_usage = 100 + circuit = /obj/item/weapon/circuitboard/computer/powermonitor + + var/obj/structure/cable/attached + + var/list/history = list() + var/record_size = 60 + var/record_interval = 50 + var/next_record = 0 + +/obj/machinery/computer/monitor/New() + ..() + search() + history["supply"] = list() + history["demand"] = list() + +/obj/machinery/computer/monitor/process() + if(!attached) use_power = IDLE_POWER_USE - search() - else + search() + else use_power = ACTIVE_POWER_USE - record() - -/obj/machinery/computer/monitor/proc/search() - var/turf/T = get_turf(src) - attached = locate() in T - -/obj/machinery/computer/monitor/proc/record() - if(world.time >= next_record) - next_record = world.time + record_interval - - var/list/supply = history["supply"] - if(attached.powernet) - supply += attached.powernet.viewavail - if(supply.len > record_size) - supply.Cut(1, 2) - - var/list/demand = history["demand"] - if(attached.powernet) - demand += attached.powernet.viewload - if(demand.len > record_size) - demand.Cut(1, 2) - -/obj/machinery/computer/monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "power_monitor", name, 1200, 1000, master_ui, state) - ui.open() - -/obj/machinery/computer/monitor/ui_data() - var/list/data = list() - data["stored"] = record_size - data["interval"] = record_interval / 10 - data["attached"] = attached ? TRUE : FALSE - data["history"] = history - data["areas"] = list() - - if(attached) - data["supply"] = attached.powernet.viewavail - data["demand"] = attached.powernet.viewload - for(var/obj/machinery/power/terminal/term in attached.powernet.nodes) - var/obj/machinery/power/apc/A = term.master - if(istype(A)) - var/cell_charge - if(!A.cell) - cell_charge = 0 - else - cell_charge = A.cell.percent() - data["areas"] += list(list( - "name" = A.area.name, - "charge" = cell_charge, - "load" = A.lastused_total, - "charging" = A.charging, - "eqp" = A.equipment, - "lgt" = A.lighting, - "env" = A.environ - )) - - return data + record() + +/obj/machinery/computer/monitor/proc/search() + var/turf/T = get_turf(src) + attached = locate() in T + +/obj/machinery/computer/monitor/proc/record() + if(world.time >= next_record) + next_record = world.time + record_interval + + var/list/supply = history["supply"] + if(attached.powernet) + supply += attached.powernet.viewavail + if(supply.len > record_size) + supply.Cut(1, 2) + + var/list/demand = history["demand"] + if(attached.powernet) + demand += attached.powernet.viewload + if(demand.len > record_size) + demand.Cut(1, 2) + +/obj/machinery/computer/monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "power_monitor", name, 1200, 1000, master_ui, state) + ui.open() + +/obj/machinery/computer/monitor/ui_data() + var/list/data = list() + data["stored"] = record_size + data["interval"] = record_interval / 10 + data["attached"] = attached ? TRUE : FALSE + data["history"] = history + data["areas"] = list() + + if(attached) + data["supply"] = attached.powernet.viewavail + data["demand"] = attached.powernet.viewload + for(var/obj/machinery/power/terminal/term in attached.powernet.nodes) + var/obj/machinery/power/apc/A = term.master + if(istype(A)) + var/cell_charge + if(!A.cell) + cell_charge = 0 + else + cell_charge = A.cell.percent() + data["areas"] += list(list( + "name" = A.area.name, + "charge" = cell_charge, + "load" = A.lastused_total, + "charging" = A.charging, + "eqp" = A.equipment, + "lgt" = A.lighting, + "env" = A.environ + )) + + return data diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 411a1e589d..12e2e60771 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -1,308 +1,308 @@ - -//Baseline portable generator. Has all the default handling. Not intended to be used on it's own (since it generates unlimited power). -/obj/machinery/power/port_gen - name = "portable generator" - desc = "A portable generator for emergency backup power." - icon = 'icons/obj/power.dmi' - icon_state = "portgen0" - density = 1 - anchored = 0 + +//Baseline portable generator. Has all the default handling. Not intended to be used on it's own (since it generates unlimited power). +/obj/machinery/power/port_gen + name = "portable generator" + desc = "A portable generator for emergency backup power." + icon = 'icons/obj/power.dmi' + icon_state = "portgen0" + density = 1 + anchored = 0 use_power = NO_POWER_USE - - var/active = 0 - var/power_gen = 5000 - var/recent_fault = 0 - var/power_output = 1 - var/consumption = 0 - -/obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check. - return 1 - -/obj/machinery/power/port_gen/proc/UseFuel() //Placeholder for fuel use. - return - -/obj/machinery/power/port_gen/proc/DropFuel() - return - -/obj/machinery/power/port_gen/proc/handleInactive() - return - -/obj/machinery/power/port_gen/process() - if(active && HasFuel() && !crit_fail && anchored && powernet) - add_avail(power_gen * power_output) - UseFuel() - src.updateDialog() - - else - active = 0 - icon_state = initial(icon_state) - handleInactive() - -/obj/machinery/power/port_gen/attack_hand(mob/user) - if(..()) - return - if(!anchored) - return - -/obj/machinery/power/port_gen/examine(mob/user) - ..() - to_chat(user, "It is[!active?"n't":""] running.") - -/obj/machinery/power/port_gen/pacman - name = "\improper P.A.C.M.A.N.-type portable generator" - var/sheets = 0 - var/max_sheets = 100 - var/sheet_name = "" - var/sheet_path = /obj/item/stack/sheet/mineral/plasma - var/board_path = /obj/item/weapon/circuitboard/machine/pacman - var/sheet_left = 0 // How much is left of the sheet - var/time_per_sheet = 260 - var/current_heat = 0 - -/obj/machinery/power/port_gen/pacman/Initialize() + + var/active = 0 + var/power_gen = 5000 + var/recent_fault = 0 + var/power_output = 1 + var/consumption = 0 + +/obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check. + return 1 + +/obj/machinery/power/port_gen/proc/UseFuel() //Placeholder for fuel use. + return + +/obj/machinery/power/port_gen/proc/DropFuel() + return + +/obj/machinery/power/port_gen/proc/handleInactive() + return + +/obj/machinery/power/port_gen/process() + if(active && HasFuel() && !crit_fail && anchored && powernet) + add_avail(power_gen * power_output) + UseFuel() + src.updateDialog() + + else + active = 0 + icon_state = initial(icon_state) + handleInactive() + +/obj/machinery/power/port_gen/attack_hand(mob/user) + if(..()) + return + if(!anchored) + return + +/obj/machinery/power/port_gen/examine(mob/user) + ..() + to_chat(user, "It is[!active?"n't":""] running.") + +/obj/machinery/power/port_gen/pacman + name = "\improper P.A.C.M.A.N.-type portable generator" + var/sheets = 0 + var/max_sheets = 100 + var/sheet_name = "" + var/sheet_path = /obj/item/stack/sheet/mineral/plasma + var/board_path = /obj/item/weapon/circuitboard/machine/pacman + var/sheet_left = 0 // How much is left of the sheet + var/time_per_sheet = 260 + var/current_heat = 0 + +/obj/machinery/power/port_gen/pacman/Initialize() . = ..() - if(anchored) - connect_to_network() - -/obj/machinery/power/port_gen/pacman/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new board_path(null) - B.apply_default_parts(src) - - var/obj/sheet = new sheet_path(null) - sheet_name = sheet.name - -/obj/item/weapon/circuitboard/machine/pacman - name = "PACMAN-type Generator (Machine Board)" - build_path = /obj/machinery/power/port_gen/pacman - origin_tech = "programming=2;powerstorage=3;plasmatech=3;engineering=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/capacitor = 1) - -/obj/item/weapon/circuitboard/machine/pacman/super - name = "SUPERPACMAN-type Generator (Machine Board)" - build_path = /obj/machinery/power/port_gen/pacman/super - origin_tech = "programming=3;powerstorage=4;engineering=4" - -/obj/item/weapon/circuitboard/machine/pacman/mrs - name = "MRSPACMAN-type Generator (Machine Board)" - build_path = "/obj/machinery/power/port_gen/pacman/mrs" - origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4" - -/obj/machinery/power/port_gen/pacman/Destroy() - DropFuel() - return ..() - -/obj/machinery/power/port_gen/pacman/RefreshParts() - var/temp_rating = 0 - var/consumption_coeff = 0 - for(var/obj/item/weapon/stock_parts/SP in component_parts) - if(istype(SP, /obj/item/weapon/stock_parts/matter_bin)) - max_sheets = SP.rating * SP.rating * 50 - else if(istype(SP, /obj/item/weapon/stock_parts/capacitor)) - temp_rating += SP.rating - else - consumption_coeff += SP.rating - power_gen = round(initial(power_gen) * temp_rating * 2) - consumption = consumption_coeff - -/obj/machinery/power/port_gen/pacman/examine(mob/user) - ..() - to_chat(user, "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle.") - if(crit_fail) to_chat(user, "The generator seems to have broken down.") - -/obj/machinery/power/port_gen/pacman/HasFuel() - if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left) - return 1 - return 0 - -/obj/machinery/power/port_gen/pacman/DropFuel() - if(sheets) - var/fail_safe = 0 - while(sheets > 0 && fail_safe < 100) - fail_safe += 1 - var/obj/item/stack/sheet/S = new sheet_path(loc) - var/amount = min(sheets, S.max_amount) - S.amount = amount - sheets -= amount - -/obj/machinery/power/port_gen/pacman/UseFuel() - var/needed_sheets = 1 / (time_per_sheet * consumption / power_output) - var/temp = min(needed_sheets, sheet_left) - needed_sheets -= temp - sheet_left -= temp - sheets -= round(needed_sheets) - needed_sheets -= round(needed_sheets) - if (sheet_left <= 0 && sheets > 0) - sheet_left = 1 - needed_sheets - sheets-- - - var/lower_limit = 56 + power_output * 10 - var/upper_limit = 76 + power_output * 10 - var/bias = 0 - if (power_output > 4) - upper_limit = 400 - bias = power_output - consumption * (4 - consumption) - if (current_heat < lower_limit) - current_heat += 4 - consumption - else - current_heat += rand(-7 + bias, 7 + bias) - if (current_heat < lower_limit) - current_heat = lower_limit - if (current_heat > upper_limit) - current_heat = upper_limit - - if (current_heat > 300) - overheat() - qdel(src) - return - -/obj/machinery/power/port_gen/pacman/handleInactive() - - if (current_heat > 0) - current_heat = max(current_heat - 2, 0) - src.updateDialog() - -/obj/machinery/power/port_gen/pacman/proc/overheat() + if(anchored) + connect_to_network() + +/obj/machinery/power/port_gen/pacman/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new board_path(null) + B.apply_default_parts(src) + + var/obj/sheet = new sheet_path(null) + sheet_name = sheet.name + +/obj/item/weapon/circuitboard/machine/pacman + name = "PACMAN-type Generator (Machine Board)" + build_path = /obj/machinery/power/port_gen/pacman + origin_tech = "programming=2;powerstorage=3;plasmatech=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/capacitor = 1) + +/obj/item/weapon/circuitboard/machine/pacman/super + name = "SUPERPACMAN-type Generator (Machine Board)" + build_path = /obj/machinery/power/port_gen/pacman/super + origin_tech = "programming=3;powerstorage=4;engineering=4" + +/obj/item/weapon/circuitboard/machine/pacman/mrs + name = "MRSPACMAN-type Generator (Machine Board)" + build_path = "/obj/machinery/power/port_gen/pacman/mrs" + origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4" + +/obj/machinery/power/port_gen/pacman/Destroy() + DropFuel() + return ..() + +/obj/machinery/power/port_gen/pacman/RefreshParts() + var/temp_rating = 0 + var/consumption_coeff = 0 + for(var/obj/item/weapon/stock_parts/SP in component_parts) + if(istype(SP, /obj/item/weapon/stock_parts/matter_bin)) + max_sheets = SP.rating * SP.rating * 50 + else if(istype(SP, /obj/item/weapon/stock_parts/capacitor)) + temp_rating += SP.rating + else + consumption_coeff += SP.rating + power_gen = round(initial(power_gen) * temp_rating * 2) + consumption = consumption_coeff + +/obj/machinery/power/port_gen/pacman/examine(mob/user) + ..() + to_chat(user, "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle.") + if(crit_fail) to_chat(user, "The generator seems to have broken down.") + +/obj/machinery/power/port_gen/pacman/HasFuel() + if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left) + return 1 + return 0 + +/obj/machinery/power/port_gen/pacman/DropFuel() + if(sheets) + var/fail_safe = 0 + while(sheets > 0 && fail_safe < 100) + fail_safe += 1 + var/obj/item/stack/sheet/S = new sheet_path(loc) + var/amount = min(sheets, S.max_amount) + S.amount = amount + sheets -= amount + +/obj/machinery/power/port_gen/pacman/UseFuel() + var/needed_sheets = 1 / (time_per_sheet * consumption / power_output) + var/temp = min(needed_sheets, sheet_left) + needed_sheets -= temp + sheet_left -= temp + sheets -= round(needed_sheets) + needed_sheets -= round(needed_sheets) + if (sheet_left <= 0 && sheets > 0) + sheet_left = 1 - needed_sheets + sheets-- + + var/lower_limit = 56 + power_output * 10 + var/upper_limit = 76 + power_output * 10 + var/bias = 0 + if (power_output > 4) + upper_limit = 400 + bias = power_output - consumption * (4 - consumption) + if (current_heat < lower_limit) + current_heat += 4 - consumption + else + current_heat += rand(-7 + bias, 7 + bias) + if (current_heat < lower_limit) + current_heat = lower_limit + if (current_heat > upper_limit) + current_heat = upper_limit + + if (current_heat > 300) + overheat() + qdel(src) + return + +/obj/machinery/power/port_gen/pacman/handleInactive() + + if (current_heat > 0) + current_heat = max(current_heat - 2, 0) + src.updateDialog() + +/obj/machinery/power/port_gen/pacman/proc/overheat() explosion(src.loc, 2, 5, 2, -1) - -/obj/machinery/power/port_gen/pacman/attackby(obj/item/O, mob/user, params) - if(istype(O, sheet_path)) - var/obj/item/stack/addstack = O - var/amount = min((max_sheets - sheets), addstack.amount) - if(amount < 1) - to_chat(user, "The [src.name] is full!") - return - to_chat(user, "You add [amount] sheets to the [src.name].") - sheets += amount - addstack.use(amount) - updateUsrDialog() - return - else if(!active) - - if(exchange_parts(user, O)) - return - - if(istype(O, /obj/item/weapon/wrench)) - - if(!anchored && !isinspace()) - connect_to_network() - to_chat(user, "You secure the generator to the floor.") - anchored = 1 - else if(anchored) - disconnect_from_network() - to_chat(user, "You unsecure the generator from the floor.") - anchored = 0 - - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - return - else if(istype(O, /obj/item/weapon/screwdriver)) - panel_open = !panel_open - playsound(src.loc, O.usesound, 50, 1) - if(panel_open) - to_chat(user, "You open the access panel.") - else - to_chat(user, "You close the access panel.") - return - else if(default_deconstruction_crowbar(O)) - return - return ..() - -/obj/machinery/power/port_gen/pacman/emag_act(mob/user) - if(!emagged) - emagged = 1 - emp_act(1) - -/obj/machinery/power/port_gen/pacman/attack_hand(mob/user) - ..() - if (!anchored) - return - - interact(user) - -/obj/machinery/power/port_gen/pacman/attack_ai(mob/user) - interact(user) - -/obj/machinery/power/port_gen/pacman/attack_paw(mob/user) - interact(user) - -/obj/machinery/power/port_gen/pacman/interact(mob/user) - if (get_dist(src, user) > 1 ) - if(!isAI(user)) - user.unset_machine() - user << browse(null, "window=port_gen") - return - - user.set_machine(src) - - var/dat = text("[name]
    ") - if (active) - dat += text("Generator: On
    ") - else - dat += text("Generator: Off
    ") - dat += text("[capitalize(sheet_name)]: [sheets] - Eject
    ") - var/stack_percent = round(sheet_left * 100, 1) - dat += text("Current stack: [stack_percent]%
    ") - dat += text("Power output: - [power_gen * power_output] +
    ") - dat += text("Power current: [(powernet == null ? "Unconnected" : "[avail()]")]
    ") - dat += text("Heat: [current_heat]
    ") - dat += "
    Close" - user << browse(dat, "window=port_gen") - onclose(user, "port_gen") - -/obj/machinery/power/port_gen/pacman/Topic(href, href_list) - if(..()) - return - - src.add_fingerprint(usr) - if(href_list["action"]) - if(href_list["action"] == "enable") - if(!active && HasFuel() && !crit_fail) - active = 1 - icon_state = "portgen1" - src.updateUsrDialog() - if(href_list["action"] == "disable") - if (active) - active = 0 - icon_state = "portgen0" - src.updateUsrDialog() - if(href_list["action"] == "eject") - if(!active) - DropFuel() - src.updateUsrDialog() - if(href_list["action"] == "lower_power") - if (power_output > 1) - power_output-- - src.updateUsrDialog() - if (href_list["action"] == "higher_power") - if (power_output < 4 || emagged) - power_output++ - src.updateUsrDialog() - if (href_list["action"] == "close") - usr << browse(null, "window=port_gen") - usr.unset_machine() - -/obj/machinery/power/port_gen/pacman/super - name = "\improper S.U.P.E.R.P.A.C.M.A.N.-type portable generator" - icon_state = "portgen1" - sheet_path = /obj/item/stack/sheet/mineral/uranium - power_gen = 15000 - time_per_sheet = 85 - board_path = /obj/item/weapon/circuitboard/machine/pacman/super - -/obj/machinery/power/port_gen/pacman/super/overheat() + +/obj/machinery/power/port_gen/pacman/attackby(obj/item/O, mob/user, params) + if(istype(O, sheet_path)) + var/obj/item/stack/addstack = O + var/amount = min((max_sheets - sheets), addstack.amount) + if(amount < 1) + to_chat(user, "The [src.name] is full!") + return + to_chat(user, "You add [amount] sheets to the [src.name].") + sheets += amount + addstack.use(amount) + updateUsrDialog() + return + else if(!active) + + if(exchange_parts(user, O)) + return + + if(istype(O, /obj/item/weapon/wrench)) + + if(!anchored && !isinspace()) + connect_to_network() + to_chat(user, "You secure the generator to the floor.") + anchored = 1 + else if(anchored) + disconnect_from_network() + to_chat(user, "You unsecure the generator from the floor.") + anchored = 0 + + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + return + else if(istype(O, /obj/item/weapon/screwdriver)) + panel_open = !panel_open + playsound(src.loc, O.usesound, 50, 1) + if(panel_open) + to_chat(user, "You open the access panel.") + else + to_chat(user, "You close the access panel.") + return + else if(default_deconstruction_crowbar(O)) + return + return ..() + +/obj/machinery/power/port_gen/pacman/emag_act(mob/user) + if(!emagged) + emagged = 1 + emp_act(1) + +/obj/machinery/power/port_gen/pacman/attack_hand(mob/user) + ..() + if (!anchored) + return + + interact(user) + +/obj/machinery/power/port_gen/pacman/attack_ai(mob/user) + interact(user) + +/obj/machinery/power/port_gen/pacman/attack_paw(mob/user) + interact(user) + +/obj/machinery/power/port_gen/pacman/interact(mob/user) + if (get_dist(src, user) > 1 ) + if(!isAI(user)) + user.unset_machine() + user << browse(null, "window=port_gen") + return + + user.set_machine(src) + + var/dat = text("[name]
    ") + if (active) + dat += text("Generator: On
    ") + else + dat += text("Generator: Off
    ") + dat += text("[capitalize(sheet_name)]: [sheets] - Eject
    ") + var/stack_percent = round(sheet_left * 100, 1) + dat += text("Current stack: [stack_percent]%
    ") + dat += text("Power output: - [power_gen * power_output] +
    ") + dat += text("Power current: [(powernet == null ? "Unconnected" : "[avail()]")]
    ") + dat += text("Heat: [current_heat]
    ") + dat += "
    Close" + user << browse(dat, "window=port_gen") + onclose(user, "port_gen") + +/obj/machinery/power/port_gen/pacman/Topic(href, href_list) + if(..()) + return + + src.add_fingerprint(usr) + if(href_list["action"]) + if(href_list["action"] == "enable") + if(!active && HasFuel() && !crit_fail) + active = 1 + icon_state = "portgen1" + src.updateUsrDialog() + if(href_list["action"] == "disable") + if (active) + active = 0 + icon_state = "portgen0" + src.updateUsrDialog() + if(href_list["action"] == "eject") + if(!active) + DropFuel() + src.updateUsrDialog() + if(href_list["action"] == "lower_power") + if (power_output > 1) + power_output-- + src.updateUsrDialog() + if (href_list["action"] == "higher_power") + if (power_output < 4 || emagged) + power_output++ + src.updateUsrDialog() + if (href_list["action"] == "close") + usr << browse(null, "window=port_gen") + usr.unset_machine() + +/obj/machinery/power/port_gen/pacman/super + name = "\improper S.U.P.E.R.P.A.C.M.A.N.-type portable generator" + icon_state = "portgen1" + sheet_path = /obj/item/stack/sheet/mineral/uranium + power_gen = 15000 + time_per_sheet = 85 + board_path = /obj/item/weapon/circuitboard/machine/pacman/super + +/obj/machinery/power/port_gen/pacman/super/overheat() explosion(src.loc, 3, 3, 3, -1) - -/obj/machinery/power/port_gen/pacman/mrs - name = "\improper M.R.S.P.A.C.M.A.N.-type portable generator" - icon_state = "portgen2" - sheet_path = /obj/item/stack/sheet/mineral/diamond - power_gen = 40000 - time_per_sheet = 80 - board_path = /obj/item/weapon/circuitboard/machine/pacman/mrs - -/obj/machinery/power/port_gen/pacman/mrs/overheat() + +/obj/machinery/power/port_gen/pacman/mrs + name = "\improper M.R.S.P.A.C.M.A.N.-type portable generator" + icon_state = "portgen2" + sheet_path = /obj/item/stack/sheet/mineral/diamond + power_gen = 40000 + time_per_sheet = 80 + board_path = /obj/item/weapon/circuitboard/machine/pacman/mrs + +/obj/machinery/power/port_gen/pacman/mrs/overheat() explosion(src.loc, 4, 4, 4, -1) diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 72e5fb2747..9beae9bb6b 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -116,7 +116,7 @@ going_kaboom = TRUE visible_message("\The [src] lets out an shower of sparks as it starts to lose stability!",\ "You hear a loud electrical crack!") - playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_gen * 0.05) addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 74191fcfdb..cc5f5a2d70 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -1,168 +1,168 @@ - -GLOBAL_LIST_EMPTY(rad_collectors) - -/obj/machinery/power/rad_collector - name = "Radiation Collector Array" - desc = "A device which uses Hawking Radiation and plasma to produce power." - icon = 'icons/obj/singularity.dmi' - icon_state = "ca" - anchored = 0 - density = 1 - req_access = list(GLOB.access_engine_equip) + +GLOBAL_LIST_EMPTY(rad_collectors) + +/obj/machinery/power/rad_collector + name = "Radiation Collector Array" + desc = "A device which uses Hawking Radiation and plasma to produce power." + icon = 'icons/obj/singularity.dmi' + icon_state = "ca" + anchored = 0 + density = 1 + req_access = list(GLOB.access_engine_equip) // use_power = NO_POWER_USE - obj_integrity = 350 - max_integrity = 350 - integrity_failure = 80 - var/obj/item/weapon/tank/internals/plasma/loaded_tank = null - var/last_power = 0 - var/active = 0 - var/locked = 0 - var/drainratio = 1 - -/obj/machinery/power/rad_collector/New() - ..() - GLOB.rad_collectors += src - -/obj/machinery/power/rad_collector/Destroy() - GLOB.rad_collectors -= src - return ..() - -/obj/machinery/power/rad_collector/process() - if(loaded_tank) - if(!loaded_tank.air_contents.gases["plasma"]) - investigate_log("out of fuel.", INVESTIGATE_SINGULO) - eject() - else - loaded_tank.air_contents.gases["plasma"][MOLES] -= 0.001*drainratio - loaded_tank.air_contents.garbage_collect() - return - - -/obj/machinery/power/rad_collector/attack_hand(mob/user) - if(..()) - return - if(anchored) - if(!src.locked) - toggle_power() - user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \ - "You turn the [src.name] [active? "on":"off"].") - var/fuel - if(loaded_tank) - fuel = loaded_tank.air_contents.gases["plasma"] - fuel = fuel ? fuel[MOLES] : 0 - investigate_log("turned [active?"on":"off"] by [user.key]. [loaded_tank?"Fuel: [round(fuel/0.29)]%":"It is empty"].", INVESTIGATE_SINGULO) - return - else - to_chat(user, "The controls are locked!") - return -..() - -/obj/machinery/power/rad_collector/can_be_unfasten_wrench(mob/user, silent) - if(loaded_tank) - if(!silent) - to_chat(user, "Remove the plasma tank first!") - return FAILED_UNFASTEN - return ..() - -/obj/machinery/power/rad_collector/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) - . = ..() - if(. == SUCCESSFUL_UNFASTEN) - if(anchored) - connect_to_network() - else - disconnect_from_network() - -/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/multitool)) - to_chat(user, "The [W.name] detects that [last_power]W were recently produced.") - return TRUE - else if(istype(W, /obj/item/device/analyzer) && loaded_tank) - atmosanalyzer_scan(loaded_tank.air_contents, user) - else if(istype(W, /obj/item/weapon/tank/internals/plasma)) - if(!anchored) - to_chat(user, "The [src] needs to be secured to the floor first!") - return TRUE - if(loaded_tank) - to_chat(user, "There's already a plasma tank loaded!") - return TRUE - if(!user.drop_item()) - return TRUE - loaded_tank = W - W.forceMove(src) - update_icons() - else if(istype(W, /obj/item/weapon/crowbar)) - if(loaded_tank) - if(locked) - to_chat(user, "The controls are locked!") - return TRUE - eject() - return TRUE - else - to_chat(user, "There isn't a tank loaded!") - return TRUE - else if(istype(W, /obj/item/weapon/wrench)) - default_unfasten_wrench(user, W, 0) - return TRUE - else if(W.GetID()) - if(allowed(user)) - if(active) - locked = !locked - to_chat(user, "You [locked ? "lock" : "unlock"] the controls.") - else - to_chat(user, "The controls can only be locked when \the [src] is active!") - else - to_chat(user, "Access denied.") - return TRUE - else - return ..() - - -/obj/machinery/power/rad_collector/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) - eject() - stat |= BROKEN - -/obj/machinery/power/rad_collector/proc/eject() - locked = 0 - var/obj/item/weapon/tank/internals/plasma/Z = src.loaded_tank - if (!Z) - return - Z.loc = get_turf(src) - Z.layer = initial(Z.layer) - Z.plane = initial(Z.plane) - src.loaded_tank = null - if(active) - toggle_power() - else - update_icons() - -/obj/machinery/power/rad_collector/proc/receive_pulse(pulse_strength) - if(loaded_tank && active) - var/power_produced = loaded_tank.air_contents.gases["plasma"] ? loaded_tank.air_contents.gases["plasma"][MOLES] : 0 - power_produced *= pulse_strength*10 - add_avail(power_produced) - last_power = power_produced - return - return - - -/obj/machinery/power/rad_collector/proc/update_icons() - cut_overlays() - if(loaded_tank) - add_overlay("ptank") - if(stat & (NOPOWER|BROKEN)) - return - if(active) - add_overlay("on") - - -/obj/machinery/power/rad_collector/proc/toggle_power() - active = !active - if(active) - icon_state = "ca_on" - flick("ca_active", src) - else - icon_state = "ca" - flick("ca_deactive", src) - update_icons() - return + obj_integrity = 350 + max_integrity = 350 + integrity_failure = 80 + var/obj/item/weapon/tank/internals/plasma/loaded_tank = null + var/last_power = 0 + var/active = 0 + var/locked = 0 + var/drainratio = 1 + +/obj/machinery/power/rad_collector/New() + ..() + GLOB.rad_collectors += src + +/obj/machinery/power/rad_collector/Destroy() + GLOB.rad_collectors -= src + return ..() + +/obj/machinery/power/rad_collector/process() + if(loaded_tank) + if(!loaded_tank.air_contents.gases["plasma"]) + investigate_log("out of fuel.", INVESTIGATE_SINGULO) + eject() + else + loaded_tank.air_contents.gases["plasma"][MOLES] -= 0.001*drainratio + loaded_tank.air_contents.garbage_collect() + return + + +/obj/machinery/power/rad_collector/attack_hand(mob/user) + if(..()) + return + if(anchored) + if(!src.locked) + toggle_power() + user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \ + "You turn the [src.name] [active? "on":"off"].") + var/fuel + if(loaded_tank) + fuel = loaded_tank.air_contents.gases["plasma"] + fuel = fuel ? fuel[MOLES] : 0 + investigate_log("turned [active?"on":"off"] by [user.key]. [loaded_tank?"Fuel: [round(fuel/0.29)]%":"It is empty"].", INVESTIGATE_SINGULO) + return + else + to_chat(user, "The controls are locked!") + return +..() + +/obj/machinery/power/rad_collector/can_be_unfasten_wrench(mob/user, silent) + if(loaded_tank) + if(!silent) + to_chat(user, "Remove the plasma tank first!") + return FAILED_UNFASTEN + return ..() + +/obj/machinery/power/rad_collector/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + if(anchored) + connect_to_network() + else + disconnect_from_network() + +/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + to_chat(user, "The [W.name] detects that [last_power]W were recently produced.") + return TRUE + else if(istype(W, /obj/item/device/analyzer) && loaded_tank) + atmosanalyzer_scan(loaded_tank.air_contents, user) + else if(istype(W, /obj/item/weapon/tank/internals/plasma)) + if(!anchored) + to_chat(user, "The [src] needs to be secured to the floor first!") + return TRUE + if(loaded_tank) + to_chat(user, "There's already a plasma tank loaded!") + return TRUE + if(!user.drop_item()) + return TRUE + loaded_tank = W + W.forceMove(src) + update_icons() + else if(istype(W, /obj/item/weapon/crowbar)) + if(loaded_tank) + if(locked) + to_chat(user, "The controls are locked!") + return TRUE + eject() + return TRUE + else + to_chat(user, "There isn't a tank loaded!") + return TRUE + else if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 0) + return TRUE + else if(W.GetID()) + if(allowed(user)) + if(active) + locked = !locked + to_chat(user, "You [locked ? "lock" : "unlock"] the controls.") + else + to_chat(user, "The controls can only be locked when \the [src] is active!") + else + to_chat(user, "Access denied.") + return TRUE + else + return ..() + + +/obj/machinery/power/rad_collector/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + eject() + stat |= BROKEN + +/obj/machinery/power/rad_collector/proc/eject() + locked = 0 + var/obj/item/weapon/tank/internals/plasma/Z = src.loaded_tank + if (!Z) + return + Z.loc = get_turf(src) + Z.layer = initial(Z.layer) + Z.plane = initial(Z.plane) + src.loaded_tank = null + if(active) + toggle_power() + else + update_icons() + +/obj/machinery/power/rad_collector/proc/receive_pulse(pulse_strength) + if(loaded_tank && active) + var/power_produced = loaded_tank.air_contents.gases["plasma"] ? loaded_tank.air_contents.gases["plasma"][MOLES] : 0 + power_produced *= pulse_strength*10 + add_avail(power_produced) + last_power = power_produced + return + return + + +/obj/machinery/power/rad_collector/proc/update_icons() + cut_overlays() + if(loaded_tank) + add_overlay("ptank") + if(stat & (NOPOWER|BROKEN)) + return + if(active) + add_overlay("on") + + +/obj/machinery/power/rad_collector/proc/toggle_power() + active = !active + if(active) + icon_state = "ca_on" + flick("ca_active", src) + else + icon_state = "ca" + flick("ca_deactive", src) + update_icons() + return diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 93f118979b..b6a5f9dedc 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -1,129 +1,128 @@ - - -/obj/machinery/field/containment - name = "containment field" - desc = "An energy field." - icon = 'icons/obj/singularity.dmi' - icon_state = "Contain_F" - anchored = 1 - density = 0 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + +/obj/machinery/field/containment + name = "containment field" + desc = "An energy field." + icon = 'icons/obj/singularity.dmi' + icon_state = "Contain_F" + anchored = 1 + density = 0 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF use_power = NO_POWER_USE - luminosity = 4 - layer = ABOVE_OBJ_LAYER - var/obj/machinery/field/generator/FG1 = null - var/obj/machinery/field/generator/FG2 = null - -/obj/machinery/field/containment/Destroy() - FG1.fields -= src - FG2.fields -= src - return ..() - -/obj/machinery/field/containment/attack_hand(mob/user) - if(get_dist(src, user) > 1) - return 0 - else - shock(user) - return 1 - -/obj/machinery/field/containment/attackby(obj/item/W, mob/user, params) - shock(user) - return 1 - -/obj/machinery/field/containment/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BURN) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) - if(BRUTE) - playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) - -/obj/machinery/field/containment/blob_act(obj/structure/blob/B) - return 0 - -/obj/machinery/field/containment/ex_act(severity, target) - return 0 - -/obj/machinery/field/containment/attack_animal(mob/living/simple_animal/M) - if(!FG1 || !FG2) - qdel(src) - return - if(ismegafauna(M)) - M.visible_message("[M] glows fiercely as the containment field flickers out!") - FG1.calc_power(INFINITY) //rip that 'containment' field - M.adjustHealth(-M.obj_damage) - else - ..() - -/obj/machinery/field/containment/Crossed(mob/mover) - if(isliving(mover)) - shock(mover) - -/obj/machinery/field/containment/Crossed(obj/mover) - if(istype(mover, /obj/machinery) || istype(mover, /obj/structure) || istype(mover, /obj/mecha)) - bump_field(mover) - -/obj/machinery/field/containment/proc/set_master(master1,master2) - if(!master1 || !master2) - return 0 - FG1 = master1 - FG2 = master2 - return 1 - -/obj/machinery/field/containment/shock(mob/living/user) - if(!FG1 || !FG2) - qdel(src) - return 0 - ..() - -/obj/machinery/field/containment/Move() - qdel(src) - - - -// Abstract Field Class -// Used for overriding certain procs - -/obj/machinery/field - var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. - -/obj/machinery/field/CanPass(atom/movable/mover, turf/target, height=0) - if(hasShocked) - return 0 - if(isliving(mover)) // Don't let mobs through - shock(mover) - return 0 - if(istype(mover, /obj/machinery) || istype(mover, /obj/structure) || istype(mover, /obj/mecha)) - bump_field(mover) - return 0 - return ..() - -/obj/machinery/field/proc/shock(mob/living/user) - var/shock_damage = min(rand(30,40),rand(30,40)) - - if(iscarbon(user)) - user.Stun(15) - user.Weaken(10) - user.electrocute_act(shock_damage, src, 1) - - else if(issilicon(user)) - if(prob(20)) - user.Stun(2) - user.take_overall_damage(0, shock_damage) - user.visible_message("[user.name] was shocked by the [src.name]!", \ - "Energy pulse detected, system damaged!", \ - "You hear an electrical crack.") - - user.updatehealth() - bump_field(user) - -/obj/machinery/field/proc/clear_shock() - hasShocked = 0 - -/obj/machinery/field/proc/bump_field(atom/movable/AM as mob|obj) - if(hasShocked) - return 0 - hasShocked = 1 - do_sparks(5, TRUE, AM.loc) - var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src))) - AM.throw_at(target, 200, 4) - addtimer(CALLBACK(src, .proc/clear_shock), 5) + luminosity = 4 + layer = ABOVE_OBJ_LAYER + var/obj/machinery/field/generator/FG1 = null + var/obj/machinery/field/generator/FG2 = null + +/obj/machinery/field/containment/Destroy() + FG1.fields -= src + FG2.fields -= src + return ..() + +/obj/machinery/field/containment/attack_hand(mob/user) + if(get_dist(src, user) > 1) + return 0 + else + shock(user) + return 1 + +/obj/machinery/field/containment/attackby(obj/item/W, mob/user, params) + shock(user) + return 1 + +/obj/machinery/field/containment/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BURN) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) + if(BRUTE) + playsound(loc, 'sound/effects/empulse.ogg', 75, 1) + +/obj/machinery/field/containment/blob_act(obj/structure/blob/B) + return 0 + +/obj/machinery/field/containment/ex_act(severity, target) + return 0 + +/obj/machinery/field/containment/attack_animal(mob/living/simple_animal/M) + if(!FG1 || !FG2) + qdel(src) + return + if(ismegafauna(M)) + M.visible_message("[M] glows fiercely as the containment field flickers out!") + FG1.calc_power(INFINITY) //rip that 'containment' field + M.adjustHealth(-M.obj_damage) + else + ..() + +/obj/machinery/field/containment/Crossed(mob/mover) + if(isliving(mover)) + shock(mover) + +/obj/machinery/field/containment/Crossed(obj/mover) + if(istype(mover, /obj/machinery) || istype(mover, /obj/structure) || istype(mover, /obj/mecha)) + bump_field(mover) + +/obj/machinery/field/containment/proc/set_master(master1,master2) + if(!master1 || !master2) + return 0 + FG1 = master1 + FG2 = master2 + return 1 + +/obj/machinery/field/containment/shock(mob/living/user) + if(!FG1 || !FG2) + qdel(src) + return 0 + ..() + +/obj/machinery/field/containment/Move() + qdel(src) + + + +// Abstract Field Class +// Used for overriding certain procs + +/obj/machinery/field + var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. + +/obj/machinery/field/CanPass(atom/movable/mover, turf/target, height=0) + if(hasShocked) + return 0 + if(isliving(mover)) // Don't let mobs through + shock(mover) + return 0 + if(istype(mover, /obj/machinery) || istype(mover, /obj/structure) || istype(mover, /obj/mecha)) + bump_field(mover) + return 0 + return ..() + +/obj/machinery/field/proc/shock(mob/living/user) + var/shock_damage = min(rand(30,40),rand(30,40)) + + if(iscarbon(user)) + user.Knockdown(300) + user.electrocute_act(shock_damage, src, 1) + + else if(issilicon(user)) + if(prob(20)) + user.Stun(40) + user.take_overall_damage(0, shock_damage) + user.visible_message("[user.name] was shocked by the [src.name]!", \ + "Energy pulse detected, system damaged!", \ + "You hear an electrical crack.") + + user.updatehealth() + bump_field(user) + +/obj/machinery/field/proc/clear_shock() + hasShocked = 0 + +/obj/machinery/field/proc/bump_field(atom/movable/AM as mob|obj) + if(hasShocked) + return 0 + hasShocked = 1 + do_sparks(5, TRUE, AM.loc) + var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src))) + AM.throw_at(target, 200, 4) + addtimer(CALLBACK(src, .proc/clear_shock), 5) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index f10ed9cb75..7b1241eaf2 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -98,9 +98,10 @@ /obj/machinery/power/emitter/Destroy() if(SSticker && SSticker.IsRoundInProgress()) - message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) - log_game("Emitter deleted at ([x],[y],[z])") - investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]", INVESTIGATE_SINGULO) + var/turf/T = get_turf(src) + message_admins("Emitter deleted at [ADMIN_COORDJMP(T)]",0,1) + log_game("Emitter deleted at [COORD(T)]") + investigate_log("deleted at [get_area(src)] [COORD(T)]", INVESTIGATE_SINGULO) QDEL_NULL(sparks) return ..() @@ -392,7 +393,7 @@ auto.Grant(M, src) /datum/action/innate/protoemitter - check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUN | AB_CHECK_CONSCIOUS var/obj/machinery/power/emitter/prototype/PE var/mob/living/carbon/U diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 71aff2e7be..a5a617b598 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -1,344 +1,344 @@ - - - -/* -field_generator power level display - The icon used for the field_generator need to have 'num_power_levels' number of icon states - named 'Field_Gen +p[num]' where 'num' ranges from 1 to 'num_power_levels' - - The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. - The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that - no power level overlay is currently in the overlays list. - -Aygar -*/ - -#define field_generator_max_power 250 - -#define FG_OFFLINE 0 -#define FG_CHARGING 1 -#define FG_ONLINE 2 - -/obj/machinery/field/generator - name = "field generator" - desc = "A large thermal battery that projects a high amount of energy when powered." - icon = 'icons/obj/machines/field_generator.dmi' - icon_state = "Field_Gen" - anchored = 0 - density = 1 + + + +/* +field_generator power level display + The icon used for the field_generator need to have 'num_power_levels' number of icon states + named 'Field_Gen +p[num]' where 'num' ranges from 1 to 'num_power_levels' + + The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. + The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that + no power level overlay is currently in the overlays list. + -Aygar +*/ + +#define field_generator_max_power 250 + +#define FG_OFFLINE 0 +#define FG_CHARGING 1 +#define FG_ONLINE 2 + +/obj/machinery/field/generator + name = "field generator" + desc = "A large thermal battery that projects a high amount of energy when powered." + icon = 'icons/obj/machines/field_generator.dmi' + icon_state = "Field_Gen" + anchored = 0 + density = 1 use_power = NO_POWER_USE - obj_integrity = 500 - max_integrity = 500 - //100% immune to lasers and energy projectiles since it absorbs their energy. - armor = list(melee = 25, bullet = 10, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) - var/const/num_power_levels = 6 // Total number of power level icon has - var/power_level = 0 - var/active = FG_OFFLINE - var/power = 20 // Current amount of power - var/state = FG_UNSECURED - var/warming_up = 0 - var/list/obj/machinery/field/containment/fields - var/list/obj/machinery/field/generator/connected_gens - var/clean_up = 0 - -/obj/machinery/field/generator/update_icon() - cut_overlays() - if(warming_up) - add_overlay("+a[warming_up]") - if(fields.len) - add_overlay("+on") - if(power_level) - add_overlay("+p[power_level]") - - -/obj/machinery/field/generator/New() - ..() - fields = list() - connected_gens = list() - - -/obj/machinery/field/generator/process() - if(active == FG_ONLINE) - calc_power() - -/obj/machinery/field/generator/attack_hand(mob/user) - if(state == FG_WELDED) - if(get_dist(src, user) <= 1)//Need to actually touch the thing to turn it on - if(active >= FG_CHARGING) - to_chat(user, "You are unable to turn off the [name] once it is online!") - return 1 - else - user.visible_message("[user.name] turns on the [name].", \ - "You turn on the [name].", \ - "You hear heavy droning.") - turn_on() + obj_integrity = 500 + max_integrity = 500 + //100% immune to lasers and energy projectiles since it absorbs their energy. + armor = list(melee = 25, bullet = 10, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) + var/const/num_power_levels = 6 // Total number of power level icon has + var/power_level = 0 + var/active = FG_OFFLINE + var/power = 20 // Current amount of power + var/state = FG_UNSECURED + var/warming_up = 0 + var/list/obj/machinery/field/containment/fields + var/list/obj/machinery/field/generator/connected_gens + var/clean_up = 0 + +/obj/machinery/field/generator/update_icon() + cut_overlays() + if(warming_up) + add_overlay("+a[warming_up]") + if(fields.len) + add_overlay("+on") + if(power_level) + add_overlay("+p[power_level]") + + +/obj/machinery/field/generator/New() + ..() + fields = list() + connected_gens = list() + + +/obj/machinery/field/generator/process() + if(active == FG_ONLINE) + calc_power() + +/obj/machinery/field/generator/attack_hand(mob/user) + if(state == FG_WELDED) + if(get_dist(src, user) <= 1)//Need to actually touch the thing to turn it on + if(active >= FG_CHARGING) + to_chat(user, "You are unable to turn off the [name] once it is online!") + return 1 + else + user.visible_message("[user.name] turns on the [name].", \ + "You turn on the [name].", \ + "You hear heavy droning.") + turn_on() investigate_log("activated by [user.key].", INVESTIGATE_SINGULO) - - add_fingerprint(user) - else - to_chat(user, "The [src] needs to be firmly secured to the floor first!") - -/obj/machinery/field/generator/can_be_unfasten_wrench(mob/user, silent) - if(state == FG_WELDED) - if(!silent) - to_chat(user, "[src] is welded to the floor!") - return FAILED_UNFASTEN - return ..() - -/obj/machinery/field/generator/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) - . = ..() - if(. == SUCCESSFUL_UNFASTEN) - if(anchored) - state = FG_SECURED - else - state = FG_UNSECURED - -/obj/machinery/field/generator/attackby(obj/item/W, mob/user, params) - if(active) - to_chat(user, "[src] needs to be off!") - return - else if(istype(W, /obj/item/weapon/wrench)) - default_unfasten_wrench(user, W, 0) - - else if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - switch(state) - if(FG_UNSECURED) - to_chat(user, "The [name] needs to be wrenched to the floor!") - - if(FG_SECURED) - if (WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to weld the [name] to the floor.", \ - "You start to weld \the [src] to the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && state == FG_SECURED && WT.isOn()) - state = FG_WELDED - to_chat(user, "You weld the field generator to the floor.") - - if(FG_WELDED) - if (WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ - "You start to cut \the [src] free from the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && state == FG_WELDED && WT.isOn()) - state = FG_SECURED - to_chat(user, "You cut \the [src] free from the floor.") - - else - return ..() - -/obj/machinery/field/generator/attack_animal(mob/living/simple_animal/M) - if(M.environment_smash >= 3 && active == FG_OFFLINE && state != FG_UNSECURED) - state = FG_UNSECURED - anchored = FALSE - M.visible_message("[M] rips [src] free from its moorings!") - else - ..() - if(!anchored) - step(src, get_dir(M, src)) - -/obj/machinery/field/generator/emp_act() - return 0 - - -/obj/machinery/field/generator/blob_act(obj/structure/blob/B) - if(active) - return 0 - else - ..() - -/obj/machinery/field/generator/bullet_act(obj/item/projectile/Proj) - if(Proj.flag != "bullet") - power = min(power + Proj.damage, field_generator_max_power) - check_power_level() - ..() - - -/obj/machinery/field/generator/Destroy() - cleanup() - return ..() - - -/obj/machinery/field/generator/proc/check_power_level() - var/new_level = round(num_power_levels * power / field_generator_max_power) - if(new_level != power_level) - power_level = new_level - update_icon() - -/obj/machinery/field/generator/proc/turn_off() - active = FG_OFFLINE - spawn(1) - cleanup() - while (warming_up>0 && !active) - sleep(50) - warming_up-- - update_icon() - -/obj/machinery/field/generator/proc/turn_on() - active = FG_CHARGING - spawn(1) - while (warming_up<3 && active) - sleep(50) - warming_up++ - update_icon() - if(warming_up >= 3) - start_fields() - - -/obj/machinery/field/generator/proc/calc_power(set_power_draw) - var/power_draw = 2 + fields.len - if(set_power_draw) - power_draw = set_power_draw - - if(draw_power(round(power_draw/2,1))) - check_power_level() - return 1 - else - visible_message("The [name] shuts down!", "You hear something shutting down.") - turn_off() + + add_fingerprint(user) + else + to_chat(user, "The [src] needs to be firmly secured to the floor first!") + +/obj/machinery/field/generator/can_be_unfasten_wrench(mob/user, silent) + if(state == FG_WELDED) + if(!silent) + to_chat(user, "[src] is welded to the floor!") + return FAILED_UNFASTEN + return ..() + +/obj/machinery/field/generator/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + if(anchored) + state = FG_SECURED + else + state = FG_UNSECURED + +/obj/machinery/field/generator/attackby(obj/item/W, mob/user, params) + if(active) + to_chat(user, "[src] needs to be off!") + return + else if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 0) + + else if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + switch(state) + if(FG_UNSECURED) + to_chat(user, "The [name] needs to be wrenched to the floor!") + + if(FG_SECURED) + if (WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to weld the [name] to the floor.", \ + "You start to weld \the [src] to the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && state == FG_SECURED && WT.isOn()) + state = FG_WELDED + to_chat(user, "You weld the field generator to the floor.") + + if(FG_WELDED) + if (WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ + "You start to cut \the [src] free from the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && state == FG_WELDED && WT.isOn()) + state = FG_SECURED + to_chat(user, "You cut \the [src] free from the floor.") + + else + return ..() + +/obj/machinery/field/generator/attack_animal(mob/living/simple_animal/M) + if(M.environment_smash >= 3 && active == FG_OFFLINE && state != FG_UNSECURED) + state = FG_UNSECURED + anchored = FALSE + M.visible_message("[M] rips [src] free from its moorings!") + else + ..() + if(!anchored) + step(src, get_dir(M, src)) + +/obj/machinery/field/generator/emp_act() + return 0 + + +/obj/machinery/field/generator/blob_act(obj/structure/blob/B) + if(active) + return 0 + else + ..() + +/obj/machinery/field/generator/bullet_act(obj/item/projectile/Proj) + if(Proj.flag != "bullet") + power = min(power + Proj.damage, field_generator_max_power) + check_power_level() + ..() + + +/obj/machinery/field/generator/Destroy() + cleanup() + return ..() + + +/obj/machinery/field/generator/proc/check_power_level() + var/new_level = round(num_power_levels * power / field_generator_max_power) + if(new_level != power_level) + power_level = new_level + update_icon() + +/obj/machinery/field/generator/proc/turn_off() + active = FG_OFFLINE + spawn(1) + cleanup() + while (warming_up>0 && !active) + sleep(50) + warming_up-- + update_icon() + +/obj/machinery/field/generator/proc/turn_on() + active = FG_CHARGING + spawn(1) + while (warming_up<3 && active) + sleep(50) + warming_up++ + update_icon() + if(warming_up >= 3) + start_fields() + + +/obj/machinery/field/generator/proc/calc_power(set_power_draw) + var/power_draw = 2 + fields.len + if(set_power_draw) + power_draw = set_power_draw + + if(draw_power(round(power_draw/2,1))) + check_power_level() + return 1 + else + visible_message("The [name] shuts down!", "You hear something shutting down.") + turn_off() investigate_log("ran out of power and deactivated", INVESTIGATE_SINGULO) - power = 0 - check_power_level() - return 0 - -//This could likely be better, it tends to start loopin if you have a complex generator loop setup. Still works well enough to run the engine fields will likely recode the field gens and fields sometime -Mport -/obj/machinery/field/generator/proc/draw_power(draw = 0, failsafe = 0, obj/machinery/field/generator/G = null, obj/machinery/field/generator/last = null) - if((G && (G == src)) || (failsafe >= 8))//Loopin, set fail - return 0 - else - failsafe++ - - if(power >= draw)//We have enough power - power -= draw - return 1 - - else//Need more power - draw -= power - power = 0 - for(var/CG in connected_gens) - var/obj/machinery/field/generator/FG = CG - if(FG == last)//We just asked you - continue - if(G)//Another gen is askin for power and we dont have it - if(FG.draw_power(draw,failsafe,G,src))//Can you take the load - return 1 - else - return 0 - else//We are askin another for power - if(FG.draw_power(draw,failsafe,src,src)) - return 1 - else - return 0 - - -/obj/machinery/field/generator/proc/start_fields() - if(state != FG_WELDED || !anchored) - turn_off() - return - spawn(1) - setup_field(1) - spawn(2) - setup_field(2) - spawn(3) - setup_field(4) - spawn(4) - setup_field(8) - spawn(5) - active = FG_ONLINE - - -/obj/machinery/field/generator/proc/setup_field(NSEW) - var/turf/T = loc - if(!istype(T)) - return 0 - - var/obj/machinery/field/generator/G = null - var/steps = 0 - if(!NSEW)//Make sure its ran right - return 0 - for(var/dist in 0 to 7) // checks out to 8 tiles away for another generator - T = get_step(T, NSEW) - if(T.density)//We cant shoot a field though this - return 0 - - G = locate(/obj/machinery/field/generator) in T - if(G) - steps -= 1 - if(!G.active) - return 0 - break - - for(var/TC in T.contents) - var/atom/A = TC - if(ismob(A)) - continue - if(A.density) - return 0 - - steps++ - - if(!G) - return 0 - - T = loc - for(var/dist in 0 to steps) // creates each field tile - var/field_dir = get_dir(T,get_step(G.loc, NSEW)) - T = get_step(T, NSEW) - if(!locate(/obj/machinery/field/containment) in T) - var/obj/machinery/field/containment/CF = new/obj/machinery/field/containment() - CF.set_master(src,G) - CF.loc = T - CF.setDir(field_dir) - fields += CF - G.fields += CF - for(var/mob/living/L in T) - CF.Crossed(L) - - connected_gens |= G - G.connected_gens |= src - update_icon() - - -/obj/machinery/field/generator/proc/cleanup() - clean_up = 1 - for (var/F in fields) - qdel(F) - - for(var/CG in connected_gens) - var/obj/machinery/field/generator/FG = CG - FG.connected_gens -= src - if(!FG.clean_up)//Makes the other gens clean up as well - FG.cleanup() - connected_gens -= FG - clean_up = 0 - update_icon() - - //This is here to help fight the "hurr durr, release singulo cos nobody will notice before the - //singulo eats the evidence". It's not fool-proof but better than nothing. - //I want to avoid using global variables. - spawn(1) - var/temp = 1 //stops spam - for(var/obj/singularity/O in GLOB.singularities) - if(O.last_warning && temp) - if((world.time - O.last_warning) > 50) //to stop message-spam - temp = 0 - message_admins("A singulo exists and a containment field has failed.",1) + power = 0 + check_power_level() + return 0 + +//This could likely be better, it tends to start loopin if you have a complex generator loop setup. Still works well enough to run the engine fields will likely recode the field gens and fields sometime -Mport +/obj/machinery/field/generator/proc/draw_power(draw = 0, failsafe = 0, obj/machinery/field/generator/G = null, obj/machinery/field/generator/last = null) + if((G && (G == src)) || (failsafe >= 8))//Loopin, set fail + return 0 + else + failsafe++ + + if(power >= draw)//We have enough power + power -= draw + return 1 + + else//Need more power + draw -= power + power = 0 + for(var/CG in connected_gens) + var/obj/machinery/field/generator/FG = CG + if(FG == last)//We just asked you + continue + if(G)//Another gen is askin for power and we dont have it + if(FG.draw_power(draw,failsafe,G,src))//Can you take the load + return 1 + else + return 0 + else//We are askin another for power + if(FG.draw_power(draw,failsafe,src,src)) + return 1 + else + return 0 + + +/obj/machinery/field/generator/proc/start_fields() + if(state != FG_WELDED || !anchored) + turn_off() + return + spawn(1) + setup_field(1) + spawn(2) + setup_field(2) + spawn(3) + setup_field(4) + spawn(4) + setup_field(8) + spawn(5) + active = FG_ONLINE + + +/obj/machinery/field/generator/proc/setup_field(NSEW) + var/turf/T = loc + if(!istype(T)) + return 0 + + var/obj/machinery/field/generator/G = null + var/steps = 0 + if(!NSEW)//Make sure its ran right + return 0 + for(var/dist in 0 to 7) // checks out to 8 tiles away for another generator + T = get_step(T, NSEW) + if(T.density)//We cant shoot a field though this + return 0 + + G = locate(/obj/machinery/field/generator) in T + if(G) + steps -= 1 + if(!G.active) + return 0 + break + + for(var/TC in T.contents) + var/atom/A = TC + if(ismob(A)) + continue + if(A.density) + return 0 + + steps++ + + if(!G) + return 0 + + T = loc + for(var/dist in 0 to steps) // creates each field tile + var/field_dir = get_dir(T,get_step(G.loc, NSEW)) + T = get_step(T, NSEW) + if(!locate(/obj/machinery/field/containment) in T) + var/obj/machinery/field/containment/CF = new/obj/machinery/field/containment() + CF.set_master(src,G) + CF.loc = T + CF.setDir(field_dir) + fields += CF + G.fields += CF + for(var/mob/living/L in T) + CF.Crossed(L) + + connected_gens |= G + G.connected_gens |= src + update_icon() + + +/obj/machinery/field/generator/proc/cleanup() + clean_up = 1 + for (var/F in fields) + qdel(F) + + for(var/CG in connected_gens) + var/obj/machinery/field/generator/FG = CG + FG.connected_gens -= src + if(!FG.clean_up)//Makes the other gens clean up as well + FG.cleanup() + connected_gens -= FG + clean_up = 0 + update_icon() + + //This is here to help fight the "hurr durr, release singulo cos nobody will notice before the + //singulo eats the evidence". It's not fool-proof but better than nothing. + //I want to avoid using global variables. + spawn(1) + var/temp = 1 //stops spam + for(var/obj/singularity/O in GLOB.singularities) + if(O.last_warning && temp) + if((world.time - O.last_warning) > 50) //to stop message-spam + temp = 0 + message_admins("A singulo exists and a containment field has failed.",1) investigate_log("has failed whilst a singulo exists.", INVESTIGATE_SINGULO) - O.last_warning = world.time - -/obj/machinery/field/generator/shock(mob/living/user) - if(fields.len) - ..() - -/obj/machinery/field/generator/bump_field(atom/movable/AM as mob|obj) - if(fields.len) - ..() - -#undef FG_UNSECURED -#undef FG_SECURED -#undef FG_WELDED - -#undef FG_OFFLINE -#undef FG_CHARGING -#undef FG_ONLINE + O.last_warning = world.time + +/obj/machinery/field/generator/shock(mob/living/user) + if(fields.len) + ..() + +/obj/machinery/field/generator/bump_field(atom/movable/AM as mob|obj) + if(fields.len) + ..() + +#undef FG_UNSECURED +#undef FG_SECURED +#undef FG_WELDED + +#undef FG_OFFLINE +#undef FG_CHARGING +#undef FG_ONLINE diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 7eaca47f54..49dd6403e0 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -1,40 +1,40 @@ -/////SINGULARITY SPAWNER -/obj/machinery/the_singularitygen - name = "Gravitational Singularity Generator" - desc = "An odd device which produces a Gravitational Singularity when set up." - icon = 'icons/obj/singularity.dmi' - icon_state = "TheSingGen" - anchored = 0 - density = 1 +/////SINGULARITY SPAWNER +/obj/machinery/the_singularitygen + name = "Gravitational Singularity Generator" + desc = "An odd device which produces a Gravitational Singularity when set up." + icon = 'icons/obj/singularity.dmi' + icon_state = "TheSingGen" + anchored = 0 + density = 1 use_power = NO_POWER_USE - resistance_flags = FIRE_PROOF - - // You can buckle someone to the singularity generator, then start the engine. Fun! - can_buckle = TRUE - buckle_lying = FALSE - buckle_requires_restraints = TRUE - - var/energy = 0 - var/creation_type = /obj/singularity - -/obj/machinery/the_singularitygen/attack_hand(mob/user) - if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) - return - ..() - -/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - default_unfasten_wrench(user, W, 0) - else - return ..() - -/obj/machinery/the_singularitygen/process() - if(energy > 0) - if(energy >= 200) - var/turf/T = get_turf(src) + resistance_flags = FIRE_PROOF + + // You can buckle someone to the singularity generator, then start the engine. Fun! + can_buckle = TRUE + buckle_lying = FALSE + buckle_requires_restraints = TRUE + + var/energy = 0 + var/creation_type = /obj/singularity + +/obj/machinery/the_singularitygen/attack_hand(mob/user) + if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) + return + ..() + +/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 0) + else + return ..() + +/obj/machinery/the_singularitygen/process() + if(energy > 0) + if(energy >= 200) + var/turf/T = get_turf(src) SSblackbox.add_details("engine_started","[src.type]") - var/obj/singularity/S = new creation_type(T, 50) - transfer_fingerprints_to(S) - qdel(src) - else - energy -= 1 + var/obj/singularity/S = new creation_type(T, 50) + transfer_fingerprints_to(S) + qdel(src) + else + energy -= 1 diff --git a/code/modules/power/singularity/investigate.dm b/code/modules/power/singularity/investigate.dm index aa77954afe..38ce154d01 100644 --- a/code/modules/power/singularity/investigate.dm +++ b/code/modules/power/singularity/investigate.dm @@ -1,4 +1,4 @@ -/area/engine/engineering/poweralert(state, source) - if (state != poweralm) +/area/engine/engineering/poweralert(state, source) + if (state != poweralm) investigate_log("has a power alarm!", INVESTIGATE_SINGULO) ..() \ No newline at end of file diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index fd119bf878..4fed74d0b1 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -30,7 +30,7 @@ /obj/singularity/narsie/large/Initialize() . = ..() send_to_playing_players("NAR-SIE HAS RISEN") - send_to_playing_players(pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg')) + sound_to_playing_players("im_here") var/area/A = get_area(src) if(A) @@ -52,6 +52,7 @@ /obj/singularity/narsie/large/cult/Initialize() . = ..() GLOB.cult_narsie = src + deltimer(GLOB.blood_target_reset_timer) GLOB.blood_target = src resize(0.6) for(var/datum/mind/cult_mind in SSticker.mode.cult) @@ -59,7 +60,7 @@ var/mob/living/L = cult_mind.current L.narsie_act() for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD && player.loc.z == ZLEVEL_STATION && !iscultist(player) && isliving(player)) + if(player.stat != DEAD && player.loc.z == ZLEVEL_STATION && !iscultist(player)) souls_needed[player] = TRUE soul_goal = round(1 + LAZYLEN(souls_needed) * 0.6) INVOKE_ASYNC(src, .proc/begin_the_end) @@ -76,7 +77,7 @@ sleep(1150) if(resolved == FALSE) resolved = TRUE - world << sound('sound/machines/Alarm.ogg') + world << sound('sound/machines/alarm.ogg') addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper), 120) addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 220) @@ -125,7 +126,7 @@ if(M.stat == CONSCIOUS) if(!iscultist(M)) to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") - M.apply_effect(3, STUN) + M.apply_effect(60, STUN) /obj/singularity/narsie/consume(atom/A) @@ -196,7 +197,7 @@ // if(defer_powernet_rebuild != 2) // defer_powernet_rebuild = 1 for(var/atom/X in urange(consume_range,src,1)) - if(isturf(X) || istype(X, /atom/movable)) + if(isturf(X) || ismovableatom(X)) consume(X) // if(defer_powernet_rebuild != 2) // defer_powernet_rebuild = 0 @@ -212,3 +213,5 @@ move_self = 1 icon = initial(icon) + + diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 890136d763..b43bf3da0d 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -1,207 +1,207 @@ -/*Composed of 7 parts : - - 3 Particle Emitters - 1 Power Box - 1 Fuel Chamber - 1 End Cap - 1 Control computer - - Setup map - - |EC| - CC|FC| - |PB| - PE|PE|PE - -*/ -#define PA_CONSTRUCTION_UNSECURED 0 -#define PA_CONSTRUCTION_UNWIRED 1 -#define PA_CONSTRUCTION_PANEL_OPEN 2 -#define PA_CONSTRUCTION_COMPLETE 3 - -/obj/structure/particle_accelerator - name = "Particle Accelerator" - desc = "Part of a Particle Accelerator." - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "none" - anchored = 0 - density = 1 - obj_integrity = 500 - max_integrity = 500 - armor = list(melee = 30, bullet = 20, laser = 20, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 80) - - var/obj/machinery/particle_accelerator/control_box/master = null - var/construction_state = PA_CONSTRUCTION_UNSECURED - var/reference = null - var/powered = 0 - var/strength = null - -/obj/structure/particle_accelerator/examine(mob/user) - ..() - - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - to_chat(user, "Looks like it's not attached to the flooring") - if(PA_CONSTRUCTION_UNWIRED) - to_chat(user, "It is missing some cables") - if(PA_CONSTRUCTION_PANEL_OPEN) - to_chat(user, "The panel is open") - - to_chat(user, "Alt-click to rotate it clockwise.") - -/obj/structure/particle_accelerator/Destroy() - construction_state = PA_CONSTRUCTION_UNSECURED - if(master) - master.connected_parts -= src - master.assembled = 0 - master = null - return ..() - -/obj/structure/particle_accelerator/verb/rotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.stat || !usr.canmove || usr.restrained()) - return - if (anchored) - to_chat(usr, "It is fastened to the floor!") - return 0 - setDir(turn(dir, -90)) - return 1 - -/obj/structure/particle_accelerator/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - -/obj/structure/particle_accelerator/verb/rotateccw() - set name = "Rotate Counter Clockwise" - set category = "Object" - set src in oview(1) - - if(usr.stat || !usr.canmove || usr.restrained()) - return - if (anchored) - to_chat(usr, "It is fastened to the floor!") - return 0 - setDir(turn(dir, 90)) - return 1 - -/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user, params) - var/did_something = FALSE - - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, W.usesound, 75, 1) - anchored = 1 - user.visible_message("[user.name] secures the [name] to the floor.", \ - "You secure the external bolts.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - if(PA_CONSTRUCTION_UNWIRED) - if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, W.usesound, 75, 1) - anchored = 0 - user.visible_message("[user.name] detaches the [name] from the floor.", \ - "You remove the external bolts.") - construction_state = PA_CONSTRUCTION_UNSECURED - did_something = TRUE - else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(1)) - user.visible_message("[user.name] adds wires to the [name].", \ - "You add some wires.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - if(PA_CONSTRUCTION_PANEL_OPEN) - if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? - user.visible_message("[user.name] removes some wires from the [name].", \ - "You remove some wires.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - else if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] closes the [name]'s access panel.", \ - "You close the access panel.") - construction_state = PA_CONSTRUCTION_COMPLETE - did_something = TRUE - if(PA_CONSTRUCTION_COMPLETE) - if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] opens the [name]'s access panel.", \ - "You open the access panel.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - - if(did_something) - user.changeNext_move(CLICK_CD_MELEE) - update_state() - update_icon() - return - - return ..() - - -/obj/structure/particle_accelerator/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - new /obj/item/stack/sheet/metal (loc, 5) - qdel(src) - -/obj/structure/particle_accelerator/Move() - ..() - if(master && master.active) - master.toggle_power() +/*Composed of 7 parts : + + 3 Particle Emitters + 1 Power Box + 1 Fuel Chamber + 1 End Cap + 1 Control computer + + Setup map + + |EC| + CC|FC| + |PB| + PE|PE|PE + +*/ +#define PA_CONSTRUCTION_UNSECURED 0 +#define PA_CONSTRUCTION_UNWIRED 1 +#define PA_CONSTRUCTION_PANEL_OPEN 2 +#define PA_CONSTRUCTION_COMPLETE 3 + +/obj/structure/particle_accelerator + name = "Particle Accelerator" + desc = "Part of a Particle Accelerator." + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "none" + anchored = 0 + density = 1 + obj_integrity = 500 + max_integrity = 500 + armor = list(melee = 30, bullet = 20, laser = 20, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 80) + + var/obj/machinery/particle_accelerator/control_box/master = null + var/construction_state = PA_CONSTRUCTION_UNSECURED + var/reference = null + var/powered = 0 + var/strength = null + +/obj/structure/particle_accelerator/examine(mob/user) + ..() + + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + to_chat(user, "Looks like it's not attached to the flooring") + if(PA_CONSTRUCTION_UNWIRED) + to_chat(user, "It is missing some cables") + if(PA_CONSTRUCTION_PANEL_OPEN) + to_chat(user, "The panel is open") + + to_chat(user, "Alt-click to rotate it clockwise.") + +/obj/structure/particle_accelerator/Destroy() + construction_state = PA_CONSTRUCTION_UNSECURED + if(master) + master.connected_parts -= src + master.assembled = 0 + master = null + return ..() + +/obj/structure/particle_accelerator/verb/rotate() + set name = "Rotate Clockwise" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (anchored) + to_chat(usr, "It is fastened to the floor!") + return 0 + setDir(turn(dir, -90)) + return 1 + +/obj/structure/particle_accelerator/AltClick(mob/user) + ..() + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/structure/particle_accelerator/verb/rotateccw() + set name = "Rotate Counter Clockwise" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (anchored) + to_chat(usr, "It is fastened to the floor!") + return 0 + setDir(turn(dir, 90)) + return 1 + +/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user, params) + var/did_something = FALSE + + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + if(istype(W, /obj/item/weapon/wrench) && !isinspace()) + playsound(loc, W.usesound, 75, 1) + anchored = 1 + user.visible_message("[user.name] secures the [name] to the floor.", \ + "You secure the external bolts.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + if(PA_CONSTRUCTION_UNWIRED) + if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, W.usesound, 75, 1) + anchored = 0 + user.visible_message("[user.name] detaches the [name] from the floor.", \ + "You remove the external bolts.") + construction_state = PA_CONSTRUCTION_UNSECURED + did_something = TRUE + else if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if(CC.use(1)) + user.visible_message("[user.name] adds wires to the [name].", \ + "You add some wires.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + if(PA_CONSTRUCTION_PANEL_OPEN) + if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? + user.visible_message("[user.name] removes some wires from the [name].", \ + "You remove some wires.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + else if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] closes the [name]'s access panel.", \ + "You close the access panel.") + construction_state = PA_CONSTRUCTION_COMPLETE + did_something = TRUE + if(PA_CONSTRUCTION_COMPLETE) + if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] opens the [name]'s access panel.", \ + "You open the access panel.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + + if(did_something) + user.changeNext_move(CLICK_CD_MELEE) + update_state() + update_icon() + return + + return ..() + + +/obj/structure/particle_accelerator/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + +/obj/structure/particle_accelerator/Move() + ..() + if(master && master.active) + master.toggle_power() investigate_log("was moved whilst active; it powered down.", INVESTIGATE_SINGULO) - - -/obj/structure/particle_accelerator/update_icon() - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED,PA_CONSTRUCTION_UNWIRED) - icon_state="[reference]" - if(PA_CONSTRUCTION_PANEL_OPEN) - icon_state="[reference]w" - if(PA_CONSTRUCTION_COMPLETE) - if(powered) - icon_state="[reference]p[strength]" - else - icon_state="[reference]c" - -/obj/structure/particle_accelerator/proc/update_state() - if(master) - master.update_state() - -/obj/structure/particle_accelerator/proc/connect_master(obj/O) - if(O.dir == dir) - master = O - return 1 - return 0 - -/////////// -// PARTS // -/////////// - - -/obj/structure/particle_accelerator/end_cap - name = "Alpha Particle Generation Array" - desc = "This is where Alpha particles are generated from \[REDACTED\]" - icon_state = "end_cap" - reference = "end_cap" - -/obj/structure/particle_accelerator/power_box - name = "Particle Focusing EM Lens" - desc = "This uses electromagnetic waves to focus the Alpha-Particles." - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "power_box" - reference = "power_box" - -/obj/structure/particle_accelerator/fuel_chamber - name = "EM Acceleration Chamber" - desc = "This is where the Alpha particles are accelerated to radical speeds." - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "fuel_chamber" - reference = "fuel_chamber" + + +/obj/structure/particle_accelerator/update_icon() + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED,PA_CONSTRUCTION_UNWIRED) + icon_state="[reference]" + if(PA_CONSTRUCTION_PANEL_OPEN) + icon_state="[reference]w" + if(PA_CONSTRUCTION_COMPLETE) + if(powered) + icon_state="[reference]p[strength]" + else + icon_state="[reference]c" + +/obj/structure/particle_accelerator/proc/update_state() + if(master) + master.update_state() + +/obj/structure/particle_accelerator/proc/connect_master(obj/O) + if(O.dir == dir) + master = O + return 1 + return 0 + +/////////// +// PARTS // +/////////// + + +/obj/structure/particle_accelerator/end_cap + name = "Alpha Particle Generation Array" + desc = "This is where Alpha particles are generated from \[REDACTED\]" + icon_state = "end_cap" + reference = "end_cap" + +/obj/structure/particle_accelerator/power_box + name = "Particle Focusing EM Lens" + desc = "This uses electromagnetic waves to focus the Alpha-Particles." + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "power_box" + reference = "power_box" + +/obj/structure/particle_accelerator/fuel_chamber + name = "EM Acceleration Chamber" + desc = "This is where the Alpha particles are accelerated to radical speeds." + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "fuel_chamber" + reference = "fuel_chamber" diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 4a94378559..1c836145ad 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -1,328 +1,328 @@ -/obj/machinery/particle_accelerator/control_box - name = "Particle Accelerator Control Console" - desc = "This controls the density of the particles." - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "control_box" - anchored = 0 - density = 1 +/obj/machinery/particle_accelerator/control_box + name = "Particle Accelerator Control Console" + desc = "This controls the density of the particles." + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "control_box" + anchored = 0 + density = 1 use_power = NO_POWER_USE - idle_power_usage = 500 - active_power_usage = 10000 - dir = NORTH - var/strength_upper_limit = 2 - var/interface_control = 1 - var/list/obj/structure/particle_accelerator/connected_parts - var/assembled = 0 - var/construction_state = PA_CONSTRUCTION_UNSECURED - var/active = 0 - var/strength = 0 - var/powered = 0 - mouse_opacity = 2 - -/obj/machinery/particle_accelerator/control_box/New() - wires = new /datum/wires/particle_accelerator/control_box(src) - connected_parts = list() - ..() - -/obj/machinery/particle_accelerator/control_box/Destroy() - if(active) - toggle_power() - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.master = null - connected_parts.Cut() - qdel(wires) - wires = null - return ..() - -/obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) - if(construction_state == PA_CONSTRUCTION_COMPLETE) - interact(user) - else if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) - wires.interact(user) - -/obj/machinery/particle_accelerator/control_box/proc/update_state() - if(construction_state < PA_CONSTRUCTION_COMPLETE) + idle_power_usage = 500 + active_power_usage = 10000 + dir = NORTH + var/strength_upper_limit = 2 + var/interface_control = 1 + var/list/obj/structure/particle_accelerator/connected_parts + var/assembled = 0 + var/construction_state = PA_CONSTRUCTION_UNSECURED + var/active = 0 + var/strength = 0 + var/powered = 0 + mouse_opacity = 2 + +/obj/machinery/particle_accelerator/control_box/New() + wires = new /datum/wires/particle_accelerator/control_box(src) + connected_parts = list() + ..() + +/obj/machinery/particle_accelerator/control_box/Destroy() + if(active) + toggle_power() + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.master = null + connected_parts.Cut() + qdel(wires) + wires = null + return ..() + +/obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) + if(construction_state == PA_CONSTRUCTION_COMPLETE) + interact(user) + else if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) + wires.interact(user) + +/obj/machinery/particle_accelerator/control_box/proc/update_state() + if(construction_state < PA_CONSTRUCTION_COMPLETE) use_power = NO_POWER_USE - assembled = 0 - active = 0 - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = null - part.powered = 0 - part.update_icon() - connected_parts.Cut() - return - if(!part_scan()) + assembled = 0 + active = 0 + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = null + part.powered = 0 + part.update_icon() + connected_parts.Cut() + return + if(!part_scan()) use_power = IDLE_POWER_USE - active = 0 - connected_parts.Cut() - -/obj/machinery/particle_accelerator/control_box/update_icon() - if(active) - icon_state = "control_boxp1" - else - if(use_power) - if(assembled) - icon_state = "control_boxp" - else - icon_state = "ucontrol_boxp" - else - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED, PA_CONSTRUCTION_UNWIRED) - icon_state = "control_box" - if(PA_CONSTRUCTION_PANEL_OPEN) - icon_state = "control_boxw" - else - icon_state = "control_boxc" - -/obj/machinery/particle_accelerator/control_box/Topic(href, href_list) - if(..()) - return - - if(!interface_control) - to_chat(usr, "ERROR: Request timed out. Check wire contacts.") - return - - if(href_list["close"]) - usr << browse(null, "window=pacontrol") - usr.unset_machine() - return - if(href_list["togglep"]) - if(!wires.is_cut(WIRE_POWER)) - toggle_power() - - else if(href_list["scan"]) - part_scan() - - else if(href_list["strengthup"]) - if(!wires.is_cut(WIRE_STRENGTH)) - add_strength() - - else if(href_list["strengthdown"]) - if(!wires.is_cut(WIRE_STRENGTH)) - remove_strength() - - updateDialog() - update_icon() - -/obj/machinery/particle_accelerator/control_box/proc/strength_change() - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = strength - part.update_icon() - -/obj/machinery/particle_accelerator/control_box/proc/add_strength(s) - if(assembled && (strength < strength_upper_limit)) - strength++ - strength_change() - - message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") + active = 0 + connected_parts.Cut() + +/obj/machinery/particle_accelerator/control_box/update_icon() + if(active) + icon_state = "control_boxp1" + else + if(use_power) + if(assembled) + icon_state = "control_boxp" + else + icon_state = "ucontrol_boxp" + else + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED, PA_CONSTRUCTION_UNWIRED) + icon_state = "control_box" + if(PA_CONSTRUCTION_PANEL_OPEN) + icon_state = "control_boxw" + else + icon_state = "control_boxc" + +/obj/machinery/particle_accelerator/control_box/Topic(href, href_list) + if(..()) + return + + if(!interface_control) + to_chat(usr, "ERROR: Request timed out. Check wire contacts.") + return + + if(href_list["close"]) + usr << browse(null, "window=pacontrol") + usr.unset_machine() + return + if(href_list["togglep"]) + if(!wires.is_cut(WIRE_POWER)) + toggle_power() + + else if(href_list["scan"]) + part_scan() + + else if(href_list["strengthup"]) + if(!wires.is_cut(WIRE_STRENGTH)) + add_strength() + + else if(href_list["strengthdown"]) + if(!wires.is_cut(WIRE_STRENGTH)) + remove_strength() + + updateDialog() + update_icon() + +/obj/machinery/particle_accelerator/control_box/proc/strength_change() + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = strength + part.update_icon() + +/obj/machinery/particle_accelerator/control_box/proc/add_strength(s) + if(assembled && (strength < strength_upper_limit)) + strength++ + strength_change() + + message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") investigate_log("increased to [strength] by [key_name(usr)]", INVESTIGATE_SINGULO) - - -/obj/machinery/particle_accelerator/control_box/proc/remove_strength(s) - if(assembled && (strength > 0)) - strength-- - strength_change() - - message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") + + +/obj/machinery/particle_accelerator/control_box/proc/remove_strength(s) + if(assembled && (strength > 0)) + strength-- + strength_change() + + message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") investigate_log("decreased to [strength] by [key_name(usr)]", INVESTIGATE_SINGULO) - - -/obj/machinery/particle_accelerator/control_box/power_change() - ..() - if(stat & NOPOWER) - active = 0 + + +/obj/machinery/particle_accelerator/control_box/power_change() + ..() + if(stat & NOPOWER) + active = 0 use_power = NO_POWER_USE - else if(!stat && construction_state == PA_CONSTRUCTION_COMPLETE) + else if(!stat && construction_state == PA_CONSTRUCTION_COMPLETE) use_power = IDLE_POWER_USE - -/obj/machinery/particle_accelerator/control_box/process() - if(active) - //a part is missing! - if(connected_parts.len < 6) + +/obj/machinery/particle_accelerator/control_box/process() + if(active) + //a part is missing! + if(connected_parts.len < 6) investigate_log("lost a connected part; It powered down.", INVESTIGATE_SINGULO) - toggle_power() - update_icon() - return - //emit some particles - for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts) - PE.emit_particle(strength) - -/obj/machinery/particle_accelerator/control_box/proc/part_scan() - var/ldir = turn(dir,-90) - var/rdir = turn(dir,90) - var/odir = turn(dir,180) - var/turf/T = loc - - assembled = 0 - critical_machine = FALSE - - var/obj/structure/particle_accelerator/fuel_chamber/F = locate() in orange(1,src) - if(!F) - return 0 - - setDir(F.dir) - connected_parts.Cut() - - T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/fuel_chamber)) - return 0 - T = get_step(T,odir) - if(!check_part(T,/obj/structure/particle_accelerator/end_cap)) - return 0 - T = get_step(T,dir) - T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/power_box)) - return 0 - T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/center)) - return 0 - T = get_step(T,ldir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/left)) - return 0 - T = get_step(T,rdir) - T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/right)) - return 0 - - assembled = 1 - critical_machine = TRUE //Only counts if the PA is actually assembled. - return 1 - -/obj/machinery/particle_accelerator/control_box/proc/check_part(turf/T, type) - var/obj/structure/particle_accelerator/PA = locate(/obj/structure/particle_accelerator) in T - if(istype(PA, type) && (PA.construction_state == PA_CONSTRUCTION_COMPLETE)) - if(PA.connect_master(src)) - connected_parts.Add(PA) - return 1 - return 0 - - -/obj/machinery/particle_accelerator/control_box/proc/toggle_power() - active = !active + toggle_power() + update_icon() + return + //emit some particles + for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts) + PE.emit_particle(strength) + +/obj/machinery/particle_accelerator/control_box/proc/part_scan() + var/ldir = turn(dir,-90) + var/rdir = turn(dir,90) + var/odir = turn(dir,180) + var/turf/T = loc + + assembled = 0 + critical_machine = FALSE + + var/obj/structure/particle_accelerator/fuel_chamber/F = locate() in orange(1,src) + if(!F) + return 0 + + setDir(F.dir) + connected_parts.Cut() + + T = get_step(T,rdir) + if(!check_part(T,/obj/structure/particle_accelerator/fuel_chamber)) + return 0 + T = get_step(T,odir) + if(!check_part(T,/obj/structure/particle_accelerator/end_cap)) + return 0 + T = get_step(T,dir) + T = get_step(T,dir) + if(!check_part(T,/obj/structure/particle_accelerator/power_box)) + return 0 + T = get_step(T,dir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/center)) + return 0 + T = get_step(T,ldir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/left)) + return 0 + T = get_step(T,rdir) + T = get_step(T,rdir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/right)) + return 0 + + assembled = 1 + critical_machine = TRUE //Only counts if the PA is actually assembled. + return 1 + +/obj/machinery/particle_accelerator/control_box/proc/check_part(turf/T, type) + var/obj/structure/particle_accelerator/PA = locate(/obj/structure/particle_accelerator) in T + if(istype(PA, type) && (PA.construction_state == PA_CONSTRUCTION_COMPLETE)) + if(PA.connect_master(src)) + connected_parts.Add(PA) + return 1 + return 0 + + +/obj/machinery/particle_accelerator/control_box/proc/toggle_power() + active = !active investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]", INVESTIGATE_SINGULO) - message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"](?) (FLW) in ([x],[y],[z] - JMP)",0,1) - log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in ([x],[y],[z])") - if(active) + message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in ([x],[y],[z])") + if(active) use_power = ACTIVE_POWER_USE - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = strength - part.powered = 1 - part.update_icon() - else + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = strength + part.powered = 1 + part.update_icon() + else use_power = IDLE_POWER_USE - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = null - part.powered = 0 - part.update_icon() - return 1 - - -/obj/machinery/particle_accelerator/control_box/interact(mob/user) - if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!issilicon(user)) - user.unset_machine() - user << browse(null, "window=pacontrol") - return - user.set_machine(src) - - var/dat = "" - dat += "Close

    " - dat += "

    Status

    " - if(!assembled) - dat += "Unable to detect all parts!
    " - dat += "Run Scan

    " - else - dat += "All parts in place.

    " - dat += "Power:" - if(active) - dat += "On
    " - else - dat += "Off
    " - dat += "Toggle Power

    " - dat += "Particle Strength: [strength] " - dat += "--|++

    " - - var/datum/browser/popup = new(user, "pacontrol", name, 420, 300) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() - -/obj/machinery/particle_accelerator/control_box/examine(mob/user) - ..() - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - to_chat(user, "Looks like it's not attached to the flooring") - if(PA_CONSTRUCTION_UNWIRED) - to_chat(user, "It is missing some cables") - if(PA_CONSTRUCTION_PANEL_OPEN) - to_chat(user, "The panel is open") - - -/obj/machinery/particle_accelerator/control_box/attackby(obj/item/W, mob/user, params) - var/did_something = FALSE - - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, W.usesound, 75, 1) - anchored = 1 - user.visible_message("[user.name] secures the [name] to the floor.", \ - "You secure the external bolts.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - if(PA_CONSTRUCTION_UNWIRED) - if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, W.usesound, 75, 1) - anchored = 0 - user.visible_message("[user.name] detaches the [name] from the floor.", \ - "You remove the external bolts.") - construction_state = PA_CONSTRUCTION_UNSECURED - did_something = TRUE - else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(1)) - user.visible_message("[user.name] adds wires to the [name].", \ - "You add some wires.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - if(PA_CONSTRUCTION_PANEL_OPEN) - if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? - user.visible_message("[user.name] removes some wires from the [name].", \ - "You remove some wires.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - else if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] closes the [name]'s access panel.", \ - "You close the access panel.") - construction_state = PA_CONSTRUCTION_COMPLETE - did_something = TRUE - if(PA_CONSTRUCTION_COMPLETE) - if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] opens the [name]'s access panel.", \ - "You open the access panel.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - - if(did_something) - user.changeNext_move(CLICK_CD_MELEE) - update_state() - update_icon() - return - - ..() - -/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) - if(prob(50)) - qdel(src) - -#undef PA_CONSTRUCTION_UNSECURED -#undef PA_CONSTRUCTION_UNWIRED -#undef PA_CONSTRUCTION_PANEL_OPEN -#undef PA_CONSTRUCTION_COMPLETE + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = null + part.powered = 0 + part.update_icon() + return 1 + + +/obj/machinery/particle_accelerator/control_box/interact(mob/user) + if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) + if(!issilicon(user)) + user.unset_machine() + user << browse(null, "window=pacontrol") + return + user.set_machine(src) + + var/dat = "" + dat += "Close

    " + dat += "

    Status

    " + if(!assembled) + dat += "Unable to detect all parts!
    " + dat += "Run Scan

    " + else + dat += "All parts in place.

    " + dat += "Power:" + if(active) + dat += "On
    " + else + dat += "Off
    " + dat += "Toggle Power

    " + dat += "Particle Strength: [strength] " + dat += "--|++

    " + + var/datum/browser/popup = new(user, "pacontrol", name, 420, 300) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.open() + +/obj/machinery/particle_accelerator/control_box/examine(mob/user) + ..() + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + to_chat(user, "Looks like it's not attached to the flooring") + if(PA_CONSTRUCTION_UNWIRED) + to_chat(user, "It is missing some cables") + if(PA_CONSTRUCTION_PANEL_OPEN) + to_chat(user, "The panel is open") + + +/obj/machinery/particle_accelerator/control_box/attackby(obj/item/W, mob/user, params) + var/did_something = FALSE + + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + if(istype(W, /obj/item/weapon/wrench) && !isinspace()) + playsound(loc, W.usesound, 75, 1) + anchored = 1 + user.visible_message("[user.name] secures the [name] to the floor.", \ + "You secure the external bolts.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + if(PA_CONSTRUCTION_UNWIRED) + if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, W.usesound, 75, 1) + anchored = 0 + user.visible_message("[user.name] detaches the [name] from the floor.", \ + "You remove the external bolts.") + construction_state = PA_CONSTRUCTION_UNSECURED + did_something = TRUE + else if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if(CC.use(1)) + user.visible_message("[user.name] adds wires to the [name].", \ + "You add some wires.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + if(PA_CONSTRUCTION_PANEL_OPEN) + if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? + user.visible_message("[user.name] removes some wires from the [name].", \ + "You remove some wires.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + else if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] closes the [name]'s access panel.", \ + "You close the access panel.") + construction_state = PA_CONSTRUCTION_COMPLETE + did_something = TRUE + if(PA_CONSTRUCTION_COMPLETE) + if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] opens the [name]'s access panel.", \ + "You open the access panel.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + + if(did_something) + user.changeNext_move(CLICK_CD_MELEE) + update_state() + update_icon() + return + + ..() + +/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) + if(prob(50)) + qdel(src) + +#undef PA_CONSTRUCTION_UNSECURED +#undef PA_CONSTRUCTION_UNWIRED +#undef PA_CONSTRUCTION_PANEL_OPEN +#undef PA_CONSTRUCTION_COMPLETE diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 56fc6c4985..bcd7d66a45 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -407,7 +407,7 @@ /obj/singularity/proc/mezzer() for(var/mob/living/carbon/M in oviewers(8, src)) - if(istype(M, /mob/living/brain)) //Ignore brains + if(isbrain(M)) //Ignore brains continue if(M.stat == CONSCIOUS) @@ -419,7 +419,7 @@ to_chat(H, "You look directly into the [src.name], good thing you had your protective eyewear on!") return - M.apply_effect(3, STUN) + M.apply_effect(60, STUN) M.visible_message("[M] stares blankly at the [src.name]!", \ "You look directly into the [src.name] and feel weak.") return diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 9e946a0b80..cd1cebf1d8 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -142,7 +142,7 @@ return to_chat(user, "You start building the power terminal...") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 20, target = src) && C.get_amount() >= 10) if(C.get_amount() < 10 || !C) @@ -192,10 +192,11 @@ /obj/machinery/power/smes/Destroy() if(SSticker && SSticker.IsRoundInProgress()) - var/area/area = get_area(src) - message_admins("SMES deleted at ([area.name])") - log_game("SMES deleted at ([area.name])") - investigate_log("deleted at ([area.name])", INVESTIGATE_SINGULO) + var/area/A = get_area(src) + var/turf/T = get_turf(src) + message_admins("SMES deleted at [A][ADMIN_JMP(T)]") + log_game("SMES deleted at [A][COORD(T)]") + investigate_log("deleted at [A][COORD(T)]", INVESTIGATE_SINGULO) if(terminal) disconnect_terminal() return ..() diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 5b2026cfaa..a53296897f 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -61,7 +61,7 @@ playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off the solar panel.", "You begin to take the glass off the solar panel...") if(do_after(user, 50*W.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the solar panel.", "You take the glass off the solar panel.") deconstruct(TRUE) else @@ -73,14 +73,14 @@ if(stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, 1) else - playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) if(BURN) - playsound(loc, 'sound/items/Welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/power/solar/obj_break(damage_flag) if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) stat |= BROKEN unset_control() update_icon() @@ -446,13 +446,13 @@ if(stat & BROKEN) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) if(BURN) - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/machinery/power/solar_control/obj_break(damage_flag) if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) stat |= BROKEN update_icon() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 18bb841c6d..fdf118d9a8 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -210,7 +210,7 @@ var/turf/T = get_turf(src) for(var/mob/M in GLOB.mob_list) if(M.z == z) - M << 'sound/magic/Charge.ogg' + M << 'sound/magic/charge.ogg' to_chat(M, "You feel reality distort for a moment...") if(combined_gas > MOLE_PENALTY_THRESHOLD) investigate_log("has collapsed into a singularity.", INVESTIGATE_SUPERMATTER) @@ -267,7 +267,7 @@ //capping damage damage = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage) if(damage > damage_archived && prob(10)) - playsound(get_turf(src), 'sound/effects/EMPulse.ogg', 50, 1) + playsound(get_turf(src), 'sound/effects/empulse.ogg', 50, 1) removed.assert_gases("o2", "plasma", "co2", "n2o", "n2", "freon") //calculating gas related values @@ -505,7 +505,14 @@ /obj/machinery/power/supermatter_shard/attackby(obj/item/W, mob/living/user, params) if(!istype(W) || (W.flags & ABSTRACT) || !istype(user)) return - if(user.drop_item(W)) + if(istype(W, /obj/item/weapon/scalpel/supermatter)) + playsound(src, W.usesound, 100, 1) + to_chat(user, "You carefully begin to scrape \the [src] with \the [W]...") + if(do_after(user, 60 * W.toolspeed, TRUE, src)) + to_chat(user, "You extract a sliver from \the [src]. \The [src] begins to react violently!") + new /obj/item/nuke_core/supermatter_sliver(user.loc) + matter_power += 200 + else if(user.dropItemToGround(W)) user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\ "You touch \the [src] with \the [W], and everything suddenly goes silent.\n\The [W] flashes into dust as you flinch away from \the [src].",\ "Everything suddenly goes silent.") @@ -574,11 +581,11 @@ /obj/machinery/power/supermatter_shard/proc/supermatter_pull(turf/center, pull_range = 10) playsound(src.loc, 'sound/weapons/marauder.ogg', 100, 1, extrarange = 7) for(var/atom/P in orange(pull_range,center)) - if(istype(P, /atom/movable)) + if(ismovableatom(P)) var/atom/movable/pulled_object = P if(ishuman(P)) var/mob/living/carbon/human/H = P - H.apply_effect(2, WEAKEN, 0) + H.apply_effect(40, KNOCKDOWN, 0) if(pulled_object && !pulled_object.anchored && !ishuman(P)) step_towards(pulled_object,center) step_towards(pulled_object,center) diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index 5cae8b3c91..349510dbaf 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -58,7 +58,7 @@ user.visible_message("[user.name] dismantles the power terminal from [master].", \ "You begin to cut the cables...") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 50*W.toolspeed, target = src)) if(!master || master.can_terminal_dismantle()) if(prob(50) && electrocute_mob(user, powernet, src, 1, TRUE)) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 4da9b49482..3d24a9e503 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -80,7 +80,7 @@ var/power_produced = powernet ? power / power_loss : power add_avail(power_produced*input_power_multiplier) flick("coilhit", src) - playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_produced) addtimer(CALLBACK(src, .proc/reset_shocked), 10) else @@ -94,7 +94,7 @@ coeff = max(coeff, 10) var/power = (powernet.avail/2) add_load(power) - playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 10, power/(coeff/2)) /obj/machinery/power/grounding_rod diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 4565ce72b0..1764c91ef9 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -1,98 +1,98 @@ -//Solar tracker - -//Machine that tracks the sun and reports it's direction to the solar controllers -//As long as this is working, solar panels on same powernet will track automatically - -/obj/machinery/power/tracker - name = "solar tracker" - desc = "A solar directional tracker." - icon = 'icons/obj/power.dmi' - icon_state = "tracker" - anchored = 1 - density = 1 +//Solar tracker + +//Machine that tracks the sun and reports it's direction to the solar controllers +//As long as this is working, solar panels on same powernet will track automatically + +/obj/machinery/power/tracker + name = "solar tracker" + desc = "A solar directional tracker." + icon = 'icons/obj/power.dmi' + icon_state = "tracker" + anchored = 1 + density = 1 use_power = NO_POWER_USE - obj_integrity = 250 - max_integrity = 250 - integrity_failure = 50 - - var/id = 0 - var/sun_angle = 0 // sun angle as set by sun datum - var/obj/machinery/power/solar_control/control = null - -/obj/machinery/power/tracker/New(var/turf/loc, var/obj/item/solar_assembly/S) - ..(loc) - Make(S) - connect_to_network() - -/obj/machinery/power/tracker/Destroy() - unset_control() //remove from control computer - return ..() - -//set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST -/obj/machinery/power/tracker/proc/set_control(obj/machinery/power/solar_control/SC) - if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) - return 0 - control = SC - SC.connected_tracker = src - return 1 - -//set the control of the tracker to null and removes it from the previous control computer if needed -/obj/machinery/power/tracker/proc/unset_control() - if(control) - control.connected_tracker = null - control = null - -/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/sheet/glass - S.tracker = 1 - S.anchored = 1 - S.loc = src - update_icon() - -//updates the tracker icon and the facing angle for the control computer -/obj/machinery/power/tracker/proc/set_angle(angle) - sun_angle = angle - - //set icon dir to show sun illumination - setDir(turn(NORTH, -angle - 22.5) )// 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST - - if(powernet && (powernet == control.powernet)) //update if we're still in the same powernet - control.currentdir = angle - -/obj/machinery/power/tracker/attackby(obj/item/weapon/W, mob/user, params) - - if(istype(W, /obj/item/weapon/crowbar)) - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - user.visible_message("[user] begins to take the glass off the solar tracker.", "You begin to take the glass off the solar tracker...") - if(do_after(user, 50*W.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user.visible_message("[user] takes the glass off the tracker.", "You take the glass off the tracker.") - deconstruct(TRUE) - else - return ..() - -/obj/machinery/power/tracker/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) - playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) - stat |= BROKEN - unset_control() - -/obj/machinery/power/solar/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(disassembled) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.forceMove(loc) - S.give_glass(stat & BROKEN) - else - playsound(src, "shatter", 70, 1) - new /obj/item/weapon/shard(src.loc) - new /obj/item/weapon/shard(src.loc) - qdel(src) - -// Tracker Electronic - -/obj/item/weapon/electronics/tracker + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 50 + + var/id = 0 + var/sun_angle = 0 // sun angle as set by sun datum + var/obj/machinery/power/solar_control/control = null + +/obj/machinery/power/tracker/New(var/turf/loc, var/obj/item/solar_assembly/S) + ..(loc) + Make(S) + connect_to_network() + +/obj/machinery/power/tracker/Destroy() + unset_control() //remove from control computer + return ..() + +//set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST +/obj/machinery/power/tracker/proc/set_control(obj/machinery/power/solar_control/SC) + if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) + return 0 + control = SC + SC.connected_tracker = src + return 1 + +//set the control of the tracker to null and removes it from the previous control computer if needed +/obj/machinery/power/tracker/proc/unset_control() + if(control) + control.connected_tracker = null + control = null + +/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) + if(!S) + S = new /obj/item/solar_assembly(src) + S.glass_type = /obj/item/stack/sheet/glass + S.tracker = 1 + S.anchored = 1 + S.loc = src + update_icon() + +//updates the tracker icon and the facing angle for the control computer +/obj/machinery/power/tracker/proc/set_angle(angle) + sun_angle = angle + + //set icon dir to show sun illumination + setDir(turn(NORTH, -angle - 22.5) )// 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST + + if(powernet && (powernet == control.powernet)) //update if we're still in the same powernet + control.currentdir = angle + +/obj/machinery/power/tracker/attackby(obj/item/weapon/W, mob/user, params) + + if(istype(W, /obj/item/weapon/crowbar)) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + user.visible_message("[user] begins to take the glass off the solar tracker.", "You begin to take the glass off the solar tracker...") + if(do_after(user, 50*W.toolspeed, target = src)) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + user.visible_message("[user] takes the glass off the tracker.", "You take the glass off the tracker.") + deconstruct(TRUE) + else + return ..() + +/obj/machinery/power/tracker/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) + stat |= BROKEN + unset_control() + +/obj/machinery/power/solar/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + var/obj/item/solar_assembly/S = locate() in src + if(S) + S.forceMove(loc) + S.give_glass(stat & BROKEN) + else + playsound(src, "shatter", 70, 1) + new /obj/item/weapon/shard(src.loc) + new /obj/item/weapon/shard(src.loc) + qdel(src) + +// Tracker Electronic + +/obj/item/weapon/electronics/tracker name = "tracker electronics" \ No newline at end of file diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 18eb546b6c..e7e85bc8c4 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -1,60 +1,60 @@ -/obj/item/ammo_casing - name = "bullet casing" - desc = "A bullet casing." - icon = 'icons/obj/ammo.dmi' - icon_state = "s-casing" - flags = CONDUCT - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_TINY - var/fire_sound = null //What sound should play when this ammo is fired - var/caliber = null //Which kind of guns it can be loaded into - var/projectile_type = null //The bullet type to create when New() is called - var/obj/item/projectile/BB = null //The loaded bullet - var/pellets = 1 //Pellets for spreadshot - var/variance = 0 //Variance for inaccuracy fundamental to the casing - var/randomspread = 0 //Randomspread for automatics - var/delay = 0 //Delay for energy weapons - var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown. +/obj/item/ammo_casing + name = "bullet casing" + desc = "A bullet casing." + icon = 'icons/obj/ammo.dmi' + icon_state = "s-casing" + flags = CONDUCT + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + var/fire_sound = null //What sound should play when this ammo is fired + var/caliber = null //Which kind of guns it can be loaded into + var/projectile_type = null //The bullet type to create when New() is called + var/obj/item/projectile/BB = null //The loaded bullet + var/pellets = 1 //Pellets for spreadshot + var/variance = 0 //Variance for inaccuracy fundamental to the casing + var/randomspread = 0 //Randomspread for automatics + var/delay = 0 //Delay for energy weapons + var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown. var/firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect //the visual effect appearing when the ammo is fired. - - -/obj/item/ammo_casing/New() - ..() - if(projectile_type) - BB = new projectile_type(src) - pixel_x = rand(-10, 10) - pixel_y = rand(-10, 10) - setDir(pick(GLOB.alldirs)) - update_icon() - -/obj/item/ammo_casing/update_icon() - ..() - icon_state = "[initial(icon_state)][BB ? "-live" : ""]" - desc = "[initial(desc)][BB ? "" : " This one is spent"]" - -//proc to magically refill a casing with a new projectile -/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). - if(!BB) - BB = new projectile_type(src) - -/obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/ammo_box)) - var/obj/item/ammo_box/box = I - if(isturf(loc)) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in loc) - if (box.stored_ammo.len >= box.max_ammo) - break - if (bullet.BB) - if (box.give_round(bullet, 0)) - boolets++ - else - continue - if (boolets > 0) - box.update_icon() - to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.") - else - to_chat(user, "You fail to collect anything!") - else - return ..() + + +/obj/item/ammo_casing/New() + ..() + if(projectile_type) + BB = new projectile_type(src) + pixel_x = rand(-10, 10) + pixel_y = rand(-10, 10) + setDir(pick(GLOB.alldirs)) + update_icon() + +/obj/item/ammo_casing/update_icon() + ..() + icon_state = "[initial(icon_state)][BB ? "-live" : ""]" + desc = "[initial(desc)][BB ? "" : " This one is spent"]" + +//proc to magically refill a casing with a new projectile +/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). + if(!BB) + BB = new projectile_type(src) + +/obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/ammo_box)) + var/obj/item/ammo_box/box = I + if(isturf(loc)) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in loc) + if (box.stored_ammo.len >= box.max_ammo) + break + if (bullet.BB) + if (box.give_round(bullet, 0)) + boolets++ + else + continue + if (boolets > 0) + box.update_icon() + to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.") + else + to_chat(user, "You fail to collect anything!") + else + return ..() diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index d91859f198..84865c8a27 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -120,7 +120,7 @@ icon_state = "sleeper" /obj/item/ammo_casing/haemorrhage - desc = "A .50 bullet casing, specialised in causing massive bloodloss" + desc = "A .50 bullet casing, specialised in causing massive bloodloss." caliber = ".50" projectile_type = /obj/item/projectile/bullet/sniper/haemorrhage icon_state = ".50" @@ -149,7 +149,7 @@ projectile_type = /obj/item/projectile/bullet/saw /obj/item/ammo_casing/mm195x129/bleeding - desc = "A 1.95x129mm bullet casing with specialized inner-casing, that when it makes contact with a target, release tiny shrapnel to induce internal bleeding." + desc = "A 1.95x129mm bullet casing with specialized inner-casing, that when it makes contact with a target, releases tiny shrapnel to induce internal bleeding." icon_state = "762-casing" projectile_type = /obj/item/projectile/bullet/saw/bleeding @@ -277,7 +277,7 @@ /obj/item/ammo_casing/shotgun/ion name = "ion shell" desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \ - The unique properties of the crystal splot the pulse into a spread of individually weaker bolts." + The unique properties of the crystal split the pulse into a spread of individually weaker bolts." icon_state = "ionshell" projectile_type = /obj/item/projectile/ion/weak pellets = 4 diff --git a/code/modules/projectiles/ammunition/caseless.dm b/code/modules/projectiles/ammunition/caseless.dm index 0480476a74..76861232b9 100644 --- a/code/modules/projectiles/ammunition/caseless.dm +++ b/code/modules/projectiles/ammunition/caseless.dm @@ -44,7 +44,7 @@ caliber = "laser" icon_state = "s-casing-live" projectile_type = /obj/item/projectile/beam - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy /obj/item/ammo_casing/caseless/laser/gatling @@ -55,7 +55,7 @@ /obj/item/ammo_casing/caseless/foam_dart name = "foam dart" - desc = "Its nerf or nothing! Ages 8 and up." + desc = "It's nerf or nothing! Ages 8 and up." projectile_type = /obj/item/projectile/bullet/reusable/foam_dart caliber = "foam_force" icon = 'icons/obj/guns/toy.dmi' @@ -66,12 +66,12 @@ ..() if (modified) icon_state = "foamdart_empty" - desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." + desc = "It's nerf or nothing! ... Although, this one doesn't look too safe." if(BB) BB.icon_state = "foamdart_empty" else icon_state = initial(icon_state) - desc = "Its nerf or nothing! Ages 8 and up." + desc = "It's nerf or nothing! Ages 8 and up." if(BB) BB.icon_state = initial(BB.icon_state) @@ -82,7 +82,7 @@ modified = 1 FD.modified = 1 FD.damage_type = BRUTE - to_chat(user, "You pop the safety cap off of [src].") + to_chat(user, "You pop the safety cap off [src].") update_icon() else if (istype(A, /obj/item/weapon/pen)) if(modified) diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index e97a0c9345..2d875c3b0e 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -5,7 +5,7 @@ projectile_type = /obj/item/projectile/energy var/e_cost = 100 //The amount of energy a cell needs to expend to create this shot. var/select_name = "energy" - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy /obj/item/ammo_casing/energy/chameleon @@ -99,7 +99,7 @@ /obj/item/ammo_casing/energy/ion projectile_type = /obj/item/projectile/ion select_name = "ion" - fire_sound = 'sound/weapons/IonRifle.ogg' + fire_sound = 'sound/weapons/ionrifle.ogg' /obj/item/ammo_casing/energy/declone projectile_type = /obj/item/projectile/energy/declone @@ -109,7 +109,7 @@ /obj/item/ammo_casing/energy/mindflayer projectile_type = /obj/item/projectile/beam/mindflayer select_name = "MINDFUCK" - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' /obj/item/ammo_casing/energy/flora fire_sound = 'sound/effects/stealthoff.ogg' @@ -169,7 +169,7 @@ projectile_type = /obj/item/projectile/energy/bolt select_name = "bolt" e_cost = 500 - fire_sound = 'sound/weapons/Genhit.ogg' + fire_sound = 'sound/weapons/genhit.ogg' /obj/item/ammo_casing/energy/bolt/halloween projectile_type = /obj/item/projectile/energy/bolt/halloween diff --git a/code/modules/projectiles/boxes_magazines/external_mag.dm b/code/modules/projectiles/boxes_magazines/external_mag.dm index 6c798efe3e..3bfb90224d 100644 --- a/code/modules/projectiles/boxes_magazines/external_mag.dm +++ b/code/modules/projectiles/boxes_magazines/external_mag.dm @@ -28,6 +28,7 @@ else icon_state = "75-0" + /obj/item/ammo_box/magazine/m10mm/fire name = "pistol magazine (10mm incendiary)" icon_state = "9x19pI" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 5957d975d5..5a21c92f79 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -37,9 +37,6 @@ var/weapon_weight = WEAPON_LIGHT var/spread = 0 //Spread induced by the gun itself. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. - var/unique_reskin = 0 //allows one-time reskinning - var/current_skin = null //the skin choice if we had a reskin - var/list/options = list() lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/guns_righthand.dmi' @@ -65,9 +62,9 @@ var/zoomable = FALSE //whether the gun generates a Zoom action on creation var/zoomed = FALSE //Zoom toggle var/zoom_amt = 3 //Distance in TURFs to move the user's screen forward (the "zoom" effect) + var/zoom_out_amt = 0 var/datum/action/toggle_scope_zoom/azoom - /obj/item/weapon/gun/Initialize() . = ..() if(pin) @@ -93,8 +90,6 @@ to_chat(user, "It has [pin] installed.") else to_chat(user, "It doesn't have a firing pin installed, and won't fire.") - if(unique_reskin && !current_skin) - to_chat(user, "Alt-click it to reskin it.") //called after the gun has successfully fired its chambered ammo. /obj/item/weapon/gun/proc/process_chamber() @@ -400,26 +395,6 @@ if(alight) alight.Remove(user) - -/obj/item/weapon/gun/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(unique_reskin && !current_skin && loc == user) - reskin_gun(user) - - -/obj/item/weapon/gun/proc/reskin_gun(mob/M) - var/choice = input(M,"Warning, you can only reskin your weapon once!","Reskin Gun") in options - - if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src)) - if(options[choice] == null) - return - current_skin = options[choice] - to_chat(M, "Your gun is now skinned as [choice]. Say hello to your new friend.") - update_icon() - /obj/item/weapon/gun/proc/handle_suicide(mob/living/carbon/human/user, mob/living/carbon/human/target, params) if(!ishuman(user) || !ishuman(target)) return @@ -465,7 +440,7 @@ /datum/action/toggle_scope_zoom name = "Toggle Scope" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING button_icon_state = "sniper_zoom" var/obj/item/weapon/gun/gun = null @@ -507,12 +482,14 @@ if(WEST) _x = -zoom_amt + user.client.view = zoom_out_amt user.client.pixel_x = world.icon_size*_x user.client.pixel_y = world.icon_size*_y else + user.client.view = world.view user.client.pixel_x = 0 user.client.pixel_y = 0 - + return zoomed //Proc, so that gun accessories/scopes/etc. can easily add zooming. /obj/item/weapon/gun/proc/build_zooming() diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index e5b84aae23..346044bb4f 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -78,7 +78,7 @@ suppressed = A S.oldsound = fire_sound S.initial_w_class = w_class - fire_sound = 'sound/weapons/Gunshot_silenced.ogg' + fire_sound = 'sound/weapons/gunshot_silenced.ogg' w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed update_icon() return diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 90d30e6b88..4a6f7c88d8 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -91,7 +91,7 @@ item_state = "c20r" origin_tech = "combat=5;materials=2;syndicate=6" mag_type = /obj/item/ammo_box/magazine/smgm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' fire_delay = 2 burst_size = 2 pin = /obj/item/device/firing_pin/implant/pindicate @@ -142,7 +142,7 @@ item_state = "m90" origin_tech = "combat=5;materials=2;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = 0 var/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 @@ -216,7 +216,7 @@ slot_flags = 0 origin_tech = "combat=5;materials=1;syndicate=3" mag_type = /obj/item/ammo_box/magazine/tommygunm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = 0 burst_size = 4 fire_delay = 1 @@ -229,13 +229,11 @@ slot_flags = 0 origin_tech = "combat=6;engineering=4" mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = 0 burst_size = 3 fire_delay = 1 - - // Bulldog shotgun // /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog @@ -247,7 +245,7 @@ weapon_weight = WEAPON_MEDIUM origin_tech = "combat=6;materials=4;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m12g - fire_sound = 'sound/weapons/Gunshot.ogg' + fire_sound = 'sound/weapons/gunshot.ogg' can_suppress = 0 burst_size = 1 fire_delay = 0 @@ -286,7 +284,7 @@ origin_tech = "combat=6;engineering=3;syndicate=6" mag_type = /obj/item/ammo_box/magazine/mm195x129 weapon_weight = WEAPON_HEAVY - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' var/cover_open = 0 can_suppress = 0 burst_size = 3 @@ -409,6 +407,7 @@ else icon_state = "surplus-e" + // Laser rifle (rechargeable magazine) // /obj/item/weapon/gun/ballistic/automatic/laser @@ -421,7 +420,7 @@ can_suppress = 0 burst_size = 0 actions_types = list() - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' casing_ejector = 0 /obj/item/weapon/gun/ballistic/automatic/laser/update_icon() diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm index a246871e61..1eac0eb321 100644 --- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -105,7 +105,7 @@ automatic = 0 fire_delay = 1 weapon_weight = WEAPON_HEAVY - fire_sound = 'sound/weapons/Laser.ogg' + fire_sound = 'sound/weapons/laser.ogg' mag_type = /obj/item/ammo_box/magazine/internal/minigun casing_ejector = 0 var/obj/item/weapon/minigunpack/ammo_pack diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index d24e28b9e8..a9f0e4914e 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -92,17 +92,13 @@ desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." icon_state = "detective" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/ballistic/revolver/detective/Initialize() - . = ..() - options["Default"] = "detective" - options["Leopard Spots"] = "detective_leopard" - options["Black Panther"] = "detective_panther" - options["Gold Trim"] = "detective_gold" - options["The Peacemaker"] = "detective_peacemaker" - options["Cancel"] = null + unique_rename = TRUE + unique_reskin = list("Default" = "detective", + "Leopard Spots" = "detective_leopard", + "Black Panther" = "detective_panther", + "Gold Trim" = "detective_gold", + "The Peacemaker" = "detective_peacemaker" + ) /obj/item/weapon/gun/ballistic/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") if(magazine.caliber != initial(magazine.caliber)) @@ -269,18 +265,14 @@ slot_flags = SLOT_BACK mag_type = /obj/item/ammo_box/magazine/internal/shot/dual sawn_desc = "Omar's coming!" - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/ballistic/revolver/doublebarrel/Initialize() - . = ..() - options["Default"] = "dshotgun" - options["Dark Red Finish"] = "dshotgun-d" - options["Ash"] = "dshotgun-f" - options["Faded Grey"] = "dshotgun-g" - options["Maple"] = "dshotgun-l" - options["Rosewood"] = "dshotgun-p" - options["Cancel"] = null + unique_rename = TRUE + unique_reskin = list("Default" = "dshotgun", + "Dark Red Finish" = "dshotgun-d", + "Ash" = "dshotgun-f", + "Faded Grey" = "dshotgun-g", + "Maple" = "dshotgun-1", + "Rosewood" = "dshotgun-p" + ) /obj/item/weapon/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) ..() @@ -319,9 +311,9 @@ slot_flags = null mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised sawn_desc = "I'm just here for the gasoline." - unique_rename = 0 - unique_reskin = 0 - var/slung = 0 + unique_rename = FALSE + unique_reskin = null + var/slung = FALSE /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) ..() @@ -330,7 +322,7 @@ if(C.use(10)) slot_flags = SLOT_BACK to_chat(user, "You tie the lengths of cable to the shotgun, making a sling.") - slung = 1 + slung = TRUE update_icon() else to_chat(user, "You need at least ten lengths of cable if you want to make a sling!") @@ -356,6 +348,7 @@ sawn_state = SAWN_OFF slot_flags = SLOT_BELT + /obj/item/weapon/gun/ballistic/revolver/reverse //Fires directly at its user... unless the user is a clown, of course. clumsy_check = 0 @@ -366,4 +359,4 @@ user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!") user.emote("scream") user.drop_item() - user.Weaken(4) + user.Knockdown(80) diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 9b8044dac8..e1d93f5e84 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -5,7 +5,7 @@ icon_state = "saber" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/toy/smg - fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_sound = 'sound/weapons/gunshot_smg.ogg' force = 0 throwforce = 0 burst_size = 3 @@ -23,7 +23,7 @@ icon_state = "pistol" w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/toy/pistol - fire_sound = 'sound/weapons/Gunshot.ogg' + fire_sound = 'sound/weapons/gunshot.ogg' burst_size = 1 fire_delay = 0 actions_types = list() diff --git a/code/modules/projectiles/guns/beam_rifle.dm b/code/modules/projectiles/guns/beam_rifle.dm new file mode 100644 index 0000000000..b7a6eda883 --- /dev/null +++ b/code/modules/projectiles/guns/beam_rifle.dm @@ -0,0 +1,535 @@ + +/obj/item/weapon/gun/energy/beam_rifle + name = "particle acceleration rifle" + desc = "An energy-based anti material marksman rifle that uses highly charged particle beams moving at extreme velocities to decimate whatever is unfortunate enough to be targetted by one. \ + Hold down left click while scoped to aim, when weapon is fully aimed (Tracer goes from red to green as it charges), release to fire. Moving while aiming or \ + changing where you're pointing at while aiming will delay the aiming process depending on how much you changed." + icon = 'icons/obj/guns/energy.dmi' + icon_state = "esniper" + item_state = "esniper" + fire_sound = 'sound/weapons/beam_sniper.ogg' + slot_flags = SLOT_BACK + force = 15 + materials = list() + origin_tech = "" + recoil = 5 + ammo_x_offset = 3 + ammo_y_offset = 3 + modifystate = FALSE + zoomable = TRUE + zoom_amt = 17 + zoom_out_amt = 20 + weapon_weight = WEAPON_HEAVY + w_class = WEIGHT_CLASS_BULKY + ammo_type = list(/obj/item/ammo_casing/energy/beam_rifle/hitscan) + var/hipfire_inaccuracy = 2 + var/hipfire_recoil = 10 + var/scoped_inaccuracy = 0 + var/scoped_recoil = 3 + var/scoped = FALSE + var/noscope = FALSE //Can you fire this without a scope? + cell_type = /obj/item/weapon/stock_parts/cell/beam_rifle + canMouseDown = TRUE + pin = null + var/aiming = FALSE + var/aiming_time = 7 + var/aiming_time_fire_threshold = 2 + var/aiming_time_left = 7 + var/aiming_time_increase_user_movement = 3 + var/scoped_slow = 1 + var/aiming_time_increase_angle_multiplier = 0.6 + + var/lastangle = 0 + var/mob/current_user = null + var/list/obj/effect/temp_visual/current_tracers = list() + + var/structure_piercing = 2 //This doesn't always work! + var/structure_bleed_coeff = 0.7 + var/wall_pierce_amount = 0 + var/wall_devastate = 0 + var/aoe_structure_range = 1 + var/aoe_structure_damage = 50 + var/aoe_fire_range = 2 + var/aoe_fire_chance = 40 + var/aoe_mob_range = 1 + var/aoe_mob_damage = 30 + var/impact_structure_damage = 60 + var/projectile_damage = 30 + var/projectile_stun = 0 + var/projectile_setting_pierce = TRUE + var/delay = 65 + var/lastfire = 0 + + var/static/image/charged_overlay = image(icon = 'icons/obj/guns/energy.dmi', icon_state = "esniper_charged") + var/static/image/drained_overlay = image(icon = 'icons/obj/guns/energy.dmi', icon_state = "esniper_empty") + +/obj/item/weapon/gun/energy/beam_rifle/debug + delay = 0 + cell_type = /obj/item/weapon/stock_parts/cell/infinite + aiming_time = 0 + recoil = 0 + scoped_recoil = 0 + hipfire_recoil = 0 + hipfire_inaccuracy = 0 + scoped_inaccuracy = 0 + noscope = 1 + +/obj/item/weapon/gun/energy/beam_rifle/update_icon() + cut_overlays() + var/obj/item/ammo_casing/energy/primary_ammo = ammo_type[1] + if(cell.charge > primary_ammo.e_cost) + add_overlay(charged_overlay) + else + add_overlay(drained_overlay) + +/obj/item/weapon/gun/energy/beam_rifle/attack_self(mob/user) + projectile_setting_pierce = !projectile_setting_pierce + to_chat(user, "You set \the [src] to [projectile_setting_pierce? "pierce":"impact"] mode.") + +/obj/item/weapon/gun/energy/beam_rifle/proc/update_slowdown() + if(scoped) + slowdown = scoped_slow + else + slowdown = initial(slowdown) + +/obj/item/weapon/gun/energy/beam_rifle/Initialize() + . = ..() + START_PROCESSING(SSfastprocess, src) + +/obj/item/weapon/gun/energy/beam_rifle/Destroy() + STOP_PROCESSING(SSfastprocess, src) + ..() + +/obj/item/weapon/gun/energy/beam_rifle/zoom(user, forced_zoom) + . = ..() + scope(user, .) + +/obj/item/weapon/gun/energy/beam_rifle/proc/scope(mob/user, forced) + var/scoping + switch(forced) + if(TRUE) + scoping = TRUE + if(FALSE) + scoping = FALSE + else + scoping = !scoped + if(scoping) + spread = scoped_inaccuracy + recoil = scoped_recoil + scoped = TRUE + user << "You bring your [src] up and use its scope..." + else + spread = hipfire_inaccuracy + recoil = hipfire_recoil + scoped = FALSE + user << "You lower your [src]." + update_slowdown() + +/obj/item/weapon/gun/energy/beam_rifle/can_trigger_gun(var/mob/living/user) + if(!scoped && !noscope) + user << "This beam rifle can only be used while scoped!" + return FALSE + . = ..(user) + +/obj/item/weapon/gun/energy/beam_rifle/emp_act(severity) + chambered = null + recharge_newshot() + +/obj/item/weapon/gun/energy/beam_rifle/proc/aiming_beam() + var/atom/A = current_user.client.mouseObject + if(!istype(A) || !A.loc) + return + var/turf/T = get_turf(current_user.client.mouseObject) + if(!istype(T)) + return + var/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/P = new + P.gun = src + P.wall_pierce_amount = wall_pierce_amount + P.structure_pierce_amount = structure_piercing + P.do_pierce = projectile_setting_pierce + P.preparePixelProjectile(current_user.client.mouseObject, T, current_user, current_user.client.mouseParams, 0) + if(aiming_time) + var/percent = ((100/aiming_time)*aiming_time_left) + P.color = rgb(255 * percent,255 * ((100 - percent) / 100),0) + else + P.color = rgb(0, 255, 0) + clear_tracers() + P.fire() + +/obj/item/weapon/gun/energy/beam_rifle/proc/clear_tracers() + for(var/I in current_tracers) + current_tracers -= I + var/obj/effect/temp_visual/projectile_beam/PB = I + qdel(PB) + +/obj/item/weapon/gun/energy/beam_rifle/proc/terminate_aiming() + stop_aiming() + clear_tracers() + +/obj/item/weapon/gun/energy/beam_rifle/process() + if(!aiming) + return + if(!istype(current_user) || !isturf(current_user.loc) || !(src in current_user.held_items) || current_user.incapacitated()) //Doesn't work if you're not holding it! + terminate_aiming() + return + if(aiming_time_left > 0) + aiming_time_left-- + aiming_beam() + process_aim() + +/obj/item/weapon/gun/energy/beam_rifle/proc/process_aim() + if(current_user.client.mouseParams) + var/list/mouse_control = params2list(current_user.client.mouseParams) + if(isturf(current_user.client.mouseLocation)) + current_user.face_atom(current_user.client.mouseLocation) + if(mouse_control["screen-loc"]) + var/list/screen_loc_params = splittext(mouse_control["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) + var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32) + var/screenview = (current_user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths + var/ox = round(screenview/2) - current_user.client.pixel_x //"origin" x + var/oy = round(screenview/2) - current_user.client.pixel_y //"origin" y + var/angle = NORM_ROT(Atan2(y - oy, x - ox)) + var/difference = abs(lastangle - angle) + delay_penalty(difference * aiming_time_increase_angle_multiplier) + lastangle = angle + +/obj/item/weapon/gun/energy/beam_rifle/on_mob_move() + delay_penalty(aiming_time_increase_user_movement) + +/obj/item/weapon/gun/energy/beam_rifle/proc/start_aiming() + aiming_time_left = aiming_time + aiming = TRUE + +/obj/item/weapon/gun/energy/beam_rifle/proc/stop_aiming() + aiming_time_left = aiming_time + aiming = FALSE + +/obj/item/weapon/gun/energy/beam_rifle/onMouseDrag(src_object, over_object, src_location, over_location, params, mob) + current_user = mob + +/obj/item/weapon/gun/energy/beam_rifle/onMouseDown(object, location, params, mob) + start_aiming() + current_user = mob + +/obj/item/weapon/gun/energy/beam_rifle/onMouseUp(object, location, params, mob/M) + process_aim() + if(aiming_time_left <= aiming_time_fire_threshold) + sync_ammo() + afterattack(M.client.mouseObject, M, FALSE, M.client.mouseParams, passthrough = TRUE) + stop_aiming() + clear_tracers() + +/obj/item/weapon/gun/energy/beam_rifle/afterattack(atom/target, mob/living/user, flag, params, passthrough = FALSE) + if(!passthrough && (aiming_time > aiming_time_fire_threshold)) + return + if(lastfire > world.time + delay) + return + lastfire = world.time + . = ..() + +/obj/item/weapon/gun/energy/beam_rifle/proc/sync_ammo() + for(var/obj/item/ammo_casing/energy/beam_rifle/AC in contents) + AC.sync_stats() + +/obj/item/weapon/gun/energy/beam_rifle/proc/delay_penalty(amount) + aiming_time_left = Clamp(aiming_time_left + amount, 0, aiming_time) + +/obj/item/ammo_casing/energy/beam_rifle + name = "particle acceleration lens" + desc = "Don't look into barrel!" + var/wall_pierce_amount = 0 + var/wall_devastate = 0 + var/aoe_structure_range = 1 + var/aoe_structure_damage = 30 + var/aoe_fire_range = 2 + var/aoe_fire_chance = 66 + var/aoe_mob_range = 1 + var/aoe_mob_damage = 20 + var/impact_structure_damage = 50 + var/projectile_damage = 40 + var/projectile_stun = 0 + var/structure_piercing = 2 + var/structure_bleed_coeff = 0.7 + var/do_pierce = TRUE + var/obj/item/weapon/gun/energy/beam_rifle/host + +/obj/item/ammo_casing/energy/beam_rifle/proc/sync_stats() + var/obj/item/weapon/gun/energy/beam_rifle/BR = loc + if(!istype(BR)) + stack_trace("Beam rifle syncing error") + host = BR + do_pierce = BR.projectile_setting_pierce + wall_pierce_amount = BR.wall_pierce_amount + wall_devastate = BR.wall_devastate + aoe_structure_range = BR.aoe_structure_range + aoe_structure_damage = BR.aoe_structure_damage + aoe_fire_range = BR.aoe_fire_range + aoe_fire_chance = BR.aoe_fire_chance + aoe_mob_range = BR.aoe_mob_range + aoe_mob_damage = BR.aoe_mob_damage + impact_structure_damage = BR.impact_structure_damage + projectile_damage = BR.projectile_damage + projectile_stun = BR.projectile_stun + delay = BR.delay + structure_piercing = BR.structure_piercing + structure_bleed_coeff = BR.structure_bleed_coeff + +/obj/item/ammo_casing/energy/beam_rifle/ready_proj(atom/target, mob/living/user, quiet, zone_override) + . = ..(target, user, quiet, zone_override) + var/obj/item/projectile/beam/beam_rifle/hitscan/HS_BB = BB + if(!istype(HS_BB)) + return + HS_BB.impact_direct_damage = projectile_damage + HS_BB.stun = projectile_stun + HS_BB.impact_structure_damage = impact_structure_damage + HS_BB.aoe_mob_damage = aoe_mob_damage + HS_BB.aoe_mob_range = Clamp(aoe_mob_range, 0, 15) //Badmin safety lock + HS_BB.aoe_fire_chance = aoe_fire_chance + HS_BB.aoe_fire_range = aoe_fire_range + HS_BB.aoe_structure_damage = aoe_structure_damage + HS_BB.aoe_structure_range = Clamp(aoe_structure_range, 0, 15) //Badmin safety lock + HS_BB.wall_devastate = wall_devastate + HS_BB.wall_pierce_amount = wall_pierce_amount + HS_BB.structure_pierce_amount = structure_piercing + HS_BB.structure_bleed_coeff = structure_bleed_coeff + HS_BB.do_pierce = do_pierce + HS_BB.gun = host + +/obj/item/ammo_casing/energy/beam_rifle/hitscan + projectile_type = /obj/item/projectile/beam/beam_rifle/hitscan + select_name = "beam" + e_cost = 5000 + fire_sound = 'sound/weapons/beam_sniper.ogg' + +/obj/item/projectile/beam/beam_rifle + name = "particle beam" + icon = "" + hitsound = 'sound/effects/explosion3.ogg' + damage = 0 //Handled manually. + damage_type = BURN + flag = "energy" + range = 150 + jitter = 10 + var/obj/item/weapon/gun/energy/beam_rifle/gun + var/structure_pierce_amount = 0 //All set to 0 so the gun can manually set them during firing. + var/structure_bleed_coeff = 0 + var/structure_pierce = 0 + var/do_pierce = TRUE + var/wall_pierce_amount = 0 + var/wall_pierce = 0 + var/wall_devastate = 0 + var/aoe_structure_range = 0 + var/aoe_structure_damage = 0 + var/aoe_fire_range = 0 + var/aoe_fire_chance = 0 + var/aoe_mob_range = 0 + var/aoe_mob_damage = 0 + var/impact_structure_damage = 0 + var/impact_direct_damage = 0 + var/turf/cached + +/obj/item/projectile/beam/beam_rifle/proc/AOE(turf/epicenter) + set waitfor = FALSE + if(!epicenter) + return + new /obj/effect/temp_visual/explosion/fast(epicenter) + for(var/mob/living/L in range(aoe_mob_range, epicenter)) //handle aoe mob damage + L.adjustFireLoss(aoe_mob_damage) + to_chat(L, "\The [src] sears you!") + for(var/turf/T in range(aoe_fire_range, epicenter)) //handle aoe fire + if(prob(aoe_fire_chance)) + new /obj/effect/hotspot(T) + for(var/obj/O in range(aoe_structure_range, epicenter)) + if(!isitem(O)) + if(O.level == 1) //Please don't break underfloor items! + continue + O.take_damage(aoe_structure_damage * get_damage_coeff(O), BURN, "laser", FALSE) + +/obj/item/projectile/beam/beam_rifle/proc/check_pierce(atom/target) + if(!do_pierce) + return FALSE + if(isclosedturf(target)) + if(wall_pierce++ < wall_pierce_amount) + loc = target + if(prob(wall_devastate)) + target.ex_act(2) + return TRUE + if(ismovableatom(target)) + var/atom/movable/AM = target + if(AM.density && !AM.CanPass(src, get_turf(target)) && !ismob(AM)) + if(structure_pierce++ < structure_pierce_amount) + if(isobj(AM)) + var/obj/O = AM + O.take_damage((impact_structure_damage + aoe_structure_damage) * structure_bleed_coeff * get_damage_coeff(AM), BURN, "energy", FALSE) + loc = get_turf(AM) + return TRUE + return FALSE + +/obj/item/projectile/beam/beam_rifle/proc/get_damage_coeff(atom/target) + if(istype(target, /obj/machinery/door)) + return 0.4 + if(istype(target, /obj/structure/window)) + return 0.5 + return 1 + +/obj/item/projectile/beam/beam_rifle/proc/handle_impact(atom/target) + if(isobj(target)) + var/obj/O = target + O.take_damage(impact_structure_damage * get_damage_coeff(target), BURN, "laser", FALSE) + if(isliving(target)) + var/mob/living/L = target + L.adjustFireLoss(impact_direct_damage) + L.emote("scream") + +/obj/item/projectile/beam/beam_rifle/proc/handle_hit(atom/target) + set waitfor = FALSE + if(!cached && !QDELETED(target)) + cached = get_turf(target) + if(nodamage) + return FALSE + playsound(cached, 'sound/effects/explosion3.ogg', 100, 1) + AOE(cached) + if(!QDELETED(target)) + handle_impact(target) + +/obj/item/projectile/beam/beam_rifle/Bump(atom/target, yes) + if(check_pierce(target)) + permutated += target + return FALSE + if(!QDELETED(target)) + cached = get_turf(target) + . = ..() + +/obj/item/projectile/beam/beam_rifle/on_hit(atom/target, blocked = 0) + if(!QDELETED(target)) + cached = get_turf(target) + handle_hit(target) + . = ..() + +/obj/item/projectile/beam/beam_rifle/hitscan + icon_state = "" + var/tracer_type = /obj/effect/temp_visual/projectile_beam/tracer + +/obj/item/projectile/beam/beam_rifle/hitscan/fire(setAngle, atom/direct_target) //oranges didn't let me make this a var the first time around so copypasta time + set waitfor = 0 + if(!log_override && firer && original) + add_logs(firer, original, "fired at", src, " [get_area(src)]") + if(setAngle) + Angle = setAngle + var/next_run = world.time + var/old_pixel_x = pixel_x + var/old_pixel_y = pixel_y + var/safety = 0 //The code works fine, but... just in case... + while(loc) + if(++safety > (range * 3)) //If it's looping for way, way too long... + return //Kill! + if((!( current ) || loc == current)) + current = locate(Clamp(x+xo,1,world.maxx),Clamp(y+yo,1,world.maxy),z) + if(!Angle) + Angle=round(Get_Angle(src,current)) + if(spread) + Angle += (rand() - 0.5) * spread + var/matrix/M = new + M.Turn(Angle) + transform = M + var/Pixel_x=sin(Angle)+16*sin(Angle)*2 + var/Pixel_y=cos(Angle)+16*cos(Angle)*2 + var/pixel_x_offset = old_pixel_x + Pixel_x + var/pixel_y_offset = old_pixel_y + Pixel_y + var/new_x = x + var/new_y = y + while(pixel_x_offset > 16) + pixel_x_offset -= 32 + old_pixel_x -= 32 + new_x++// x++ + while(pixel_x_offset < -16) + pixel_x_offset += 32 + old_pixel_x += 32 + new_x-- + while(pixel_y_offset > 16) + pixel_y_offset -= 32 + old_pixel_y -= 32 + new_y++ + while(pixel_y_offset < -16) + pixel_y_offset += 32 + old_pixel_y += 32 + new_y-- + pixel_x = old_pixel_x + pixel_y = old_pixel_y + step_towards(src, locate(new_x, new_y, z)) + next_run += max(world.tick_lag, speed) + var/delay = next_run - world.time + if(delay <= world.tick_lag*2) + pixel_x = pixel_x_offset + pixel_y = pixel_y_offset + else + animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)), flags = ANIMATION_END_NOW) + old_pixel_x = pixel_x_offset + old_pixel_y = pixel_y_offset + if(original && (original.layer>=2.75) || ismob(original)) + if(loc == get_turf(original)) + if(!(original in permutated)) + Bump(original, 1) + Range() + +/obj/item/projectile/beam/beam_rifle/hitscan/Range() + spawn_tracer_effect() + if(!QDELETED(src) && loc) + cached = get_turf(src) + +/obj/item/projectile/beam/beam_rifle/hitscan/proc/spawn_tracer_effect() + QDEL_IN((new tracer_type(loc, time = 5, angle_override = Angle, p_x = pixel_x, p_y = pixel_y, color_override = color)), 5) + +/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam + tracer_type = /obj/effect/temp_visual/projectile_beam/tracer/aiming + name = "aiming beam" + hitsound = null + hitsound_wall = null + nodamage = TRUE + damage = 0 + +/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/prehit(atom/target) + qdel(src) + return FALSE + +/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/on_hit() + qdel(src) + return FALSE + +/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/spawn_tracer_effect() + var/obj/effect/temp_visual/projectile_beam/T = new tracer_type(loc, time = 5, angle_override = Angle, p_x = pixel_x, p_y = pixel_y, color_override = color) + if(istype(gun) && istype(T)) + gun.current_tracers[T] = TRUE + +/obj/effect/temp_visual/projectile_beam + icon = 'icons/obj/projectiles.dmi' + layer = ABOVE_MOB_LAYER + anchored = 1 + duration = 5 + randomdir = FALSE + light_power = 1 + light_range = 2 + light_color = "#00ffff" + +/obj/effect/temp_visual/projectile_beam/New(time = 5, angle_override, p_x, p_y, color_override) + duration = time + var/mutable_appearance/look = new(src) + look.pixel_x = p_x + look.pixel_y = p_y + if(color_override) + look.color = color_override + var/matrix/M = new + M.Turn(angle_override) + look.transform = M + appearance = look + ..() + +/obj/effect/temp_visual/projectile_beam/tracer + icon_state = "tracer_beam" + +/obj/effect/temp_visual/projectile_beam/tracer/aiming + icon_state = "gbeam" + duration = 1 diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 6031f144a8..32c323f329 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -1,208 +1,208 @@ -/obj/item/weapon/gun/energy - icon_state = "energy" - name = "energy gun" - desc = "A basic energy-based gun." - icon = 'icons/obj/guns/energy.dmi' - - var/obj/item/weapon/stock_parts/cell/cell //What type of power cell this uses - var/cell_type = /obj/item/weapon/stock_parts/cell - var/modifystate = 0 - var/list/ammo_type = list(/obj/item/ammo_casing/energy) - var/select = 1 //The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next. - var/can_charge = 1 //Can it be charged in a recharger? - var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_icon()? - var/charge_sections = 4 - ammo_x_offset = 2 - var/shaded_charge = 0 //if this gun uses a stateful charge bar for more detail - var/selfcharge = 0 - var/charge_tick = 0 - var/charge_delay = 4 - var/use_cyborg_cell = 0 //whether the gun's cell drains the cyborg user's cell to recharge - -/obj/item/weapon/gun/energy/emp_act(severity) - cell.use(round(cell.charge / severity)) - chambered = null //we empty the chamber - recharge_newshot() //and try to charge a new shot - update_icon() - -/obj/item/weapon/gun/energy/get_cell() - return cell - - -/obj/item/weapon/gun/energy/Initialize() - . = ..() - if(cell_type) - cell = new cell_type(src) - else - cell = new(src) - cell.give(cell.maxcharge) - update_ammo_types() - recharge_newshot(1) - if(selfcharge) - START_PROCESSING(SSobj, src) - update_icon() - -/obj/item/weapon/gun/energy/proc/update_ammo_types() - var/obj/item/ammo_casing/energy/shot - for (var/i = 1, i <= ammo_type.len, i++) - var/shottype = ammo_type[i] - shot = new shottype(src) - ammo_type[i] = shot - shot = ammo_type[select] - fire_sound = shot.fire_sound - fire_delay = shot.delay - -/obj/item/weapon/gun/energy/Destroy() - QDEL_NULL(cell) - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/weapon/gun/energy/process() - if(selfcharge) - charge_tick++ - if(charge_tick < charge_delay) - return - charge_tick = 0 - if(!cell) - return - cell.give(100) - if(!chambered) //if empty chamber we try to charge a new shot - recharge_newshot(1) - update_icon() - -/obj/item/weapon/gun/energy/attack_self(mob/living/user as mob) - if(ammo_type.len > 1) - select_fire(user) - update_icon() - -/obj/item/weapon/gun/energy/can_shoot() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - return cell.charge >= shot.e_cost - -/obj/item/weapon/gun/energy/recharge_newshot(no_cyborg_drain) - if (!ammo_type || !cell) - return - if(use_cyborg_cell && !no_cyborg_drain) - if(iscyborg(loc)) - var/mob/living/silicon/robot/R = loc - if(R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot - if(R.cell.use(shot.e_cost)) //Take power from the borg... - cell.give(shot.e_cost) //... to recharge the shot - if(!chambered) - var/obj/item/ammo_casing/energy/AC = ammo_type[select] - if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell... - chambered = AC //...prepare a new shot based on the current ammo type selected - if(!chambered.BB) - chambered.newshot() - -/obj/item/weapon/gun/energy/process_chamber() - if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... - var/obj/item/ammo_casing/energy/shot = chambered - cell.use(shot.e_cost)//... drain the cell cell - chambered = null //either way, released the prepared shot - recharge_newshot() //try to charge a new shot - -/obj/item/weapon/gun/energy/proc/select_fire(mob/living/user) - select++ - if (select > ammo_type.len) - select = 1 - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - fire_sound = shot.fire_sound - fire_delay = shot.delay - if (shot.select_name) - to_chat(user, "[src] is now set to [shot.select_name].") - chambered = null - recharge_newshot(1) - update_icon() - return - -/obj/item/weapon/gun/energy/update_icon() - ..() - if(!automatic_charge_overlays) - return - var/ratio = Ceiling((cell.charge / cell.maxcharge) * charge_sections) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - var/iconState = "[icon_state]_charge" - var/itemState = null - if(!initial(item_state)) - itemState = icon_state - if (modifystate) - add_overlay("[icon_state]_[shot.select_name]") - iconState += "_[shot.select_name]" - if(itemState) - itemState += "[shot.select_name]" - if(cell.charge < shot.e_cost) - add_overlay("[icon_state]_empty") - else - if(!shaded_charge) - var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState) - for(var/i = ratio, i >= 1, i--) - charge_overlay.pixel_x = ammo_x_offset * (i - 1) - add_overlay(charge_overlay) - else - add_overlay("[icon_state]_charge[ratio]") - if(itemState) - itemState += "[ratio]" - item_state = itemState - -/obj/item/weapon/gun/energy/ui_action_click() - toggle_gunlight() - -/obj/item/weapon/gun/energy/suicide_act(mob/user) +/obj/item/weapon/gun/energy + icon_state = "energy" + name = "energy gun" + desc = "A basic energy-based gun." + icon = 'icons/obj/guns/energy.dmi' + + var/obj/item/weapon/stock_parts/cell/cell //What type of power cell this uses + var/cell_type = /obj/item/weapon/stock_parts/cell + var/modifystate = 0 + var/list/ammo_type = list(/obj/item/ammo_casing/energy) + var/select = 1 //The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next. + var/can_charge = 1 //Can it be charged in a recharger? + var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_icon()? + var/charge_sections = 4 + ammo_x_offset = 2 + var/shaded_charge = 0 //if this gun uses a stateful charge bar for more detail + var/selfcharge = 0 + var/charge_tick = 0 + var/charge_delay = 4 + var/use_cyborg_cell = 0 //whether the gun's cell drains the cyborg user's cell to recharge + +/obj/item/weapon/gun/energy/emp_act(severity) + cell.use(round(cell.charge / severity)) + chambered = null //we empty the chamber + recharge_newshot() //and try to charge a new shot + update_icon() + +/obj/item/weapon/gun/energy/get_cell() + return cell + +/obj/item/weapon/gun/energy/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + cell.give(cell.maxcharge) + update_ammo_types() + recharge_newshot(1) + if(selfcharge) + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/weapon/gun/energy/proc/update_ammo_types() + var/obj/item/ammo_casing/energy/shot + for (var/i = 1, i <= ammo_type.len, i++) + var/shottype = ammo_type[i] + shot = new shottype(src) + ammo_type[i] = shot + shot = ammo_type[select] + fire_sound = shot.fire_sound + fire_delay = shot.delay + +/obj/item/weapon/gun/energy/Destroy() + QDEL_NULL(cell) + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/weapon/gun/energy/process() + if(selfcharge) + charge_tick++ + if(charge_tick < charge_delay) + return + charge_tick = 0 + if(!cell) + return + cell.give(100) + if(!chambered) //if empty chamber we try to charge a new shot + recharge_newshot(1) + update_icon() + +/obj/item/weapon/gun/energy/attack_self(mob/living/user as mob) + if(ammo_type.len > 1) + select_fire(user) + update_icon() + +/obj/item/weapon/gun/energy/can_shoot() + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + return cell.charge >= shot.e_cost + +/obj/item/weapon/gun/energy/recharge_newshot(no_cyborg_drain) + if (!ammo_type || !cell) + return + if(use_cyborg_cell && !no_cyborg_drain) + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + if(R.cell) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + if(R.cell.use(shot.e_cost)) //Take power from the borg... + cell.give(shot.e_cost) //... to recharge the shot + if(!chambered) + var/obj/item/ammo_casing/energy/AC = ammo_type[select] + if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell... + chambered = AC //...prepare a new shot based on the current ammo type selected + if(!chambered.BB) + chambered.newshot() + +/obj/item/weapon/gun/energy/process_chamber() + if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... + var/obj/item/ammo_casing/energy/shot = chambered + cell.use(shot.e_cost)//... drain the cell cell + chambered = null //either way, released the prepared shot + recharge_newshot() //try to charge a new shot + +/obj/item/weapon/gun/energy/proc/select_fire(mob/living/user) + select++ + if (select > ammo_type.len) + select = 1 + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + fire_sound = shot.fire_sound + fire_delay = shot.delay + if (shot.select_name) + to_chat(user, "[src] is now set to [shot.select_name].") + chambered = null + recharge_newshot(1) + update_icon() + return + +/obj/item/weapon/gun/energy/update_icon() + ..() + if(!automatic_charge_overlays) + return + var/ratio = Ceiling((cell.charge / cell.maxcharge) * charge_sections) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/iconState = "[icon_state]_charge" + var/itemState = null + if(!initial(item_state)) + itemState = icon_state + if (modifystate) + add_overlay("[icon_state]_[shot.select_name]") + iconState += "_[shot.select_name]" + if(itemState) + itemState += "[shot.select_name]" + if(cell.charge < shot.e_cost) + add_overlay("[icon_state]_empty") + else + if(!shaded_charge) + var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState) + for(var/i = ratio, i >= 1, i--) + charge_overlay.pixel_x = ammo_x_offset * (i - 1) + charge_overlay.pixel_y = ammo_y_offset * (i - 1) + add_overlay(charge_overlay) + else + add_overlay("[icon_state]_charge[ratio]") + if(itemState) + itemState += "[ratio]" + item_state = itemState + +/obj/item/weapon/gun/energy/ui_action_click() + toggle_gunlight() + +/obj/item/weapon/gun/energy/suicide_act(mob/user) if (src.can_shoot() && can_trigger_gun(user)) - user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") - sleep(25) - if(user.is_holding(src)) - user.visible_message("[user] melts [user.p_their()] face off with [src]!") - playsound(loc, fire_sound, 50, 1, -1) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - cell.use(shot.e_cost) - update_icon() - return(FIRELOSS) - else - user.visible_message("[user] panics and starts choking to death!") - return(OXYLOSS) - else - user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) - return (OXYLOSS) - - -/obj/item/weapon/gun/energy/vv_edit_var(var_name, var_value) - switch(var_name) - if("selfcharge") - if(var_value) - START_PROCESSING(SSobj, src) - else - STOP_PROCESSING(SSobj, src) - . = ..() - - -/obj/item/weapon/gun/energy/ignition_effect(atom/A, mob/living/user) - if(!can_shoot() || !ammo_type[select]) - shoot_with_empty_chamber() - . = "" - else - var/obj/item/ammo_casing/energy/E = ammo_type[select] - var/obj/item/projectile/energy/BB = E.BB - if(!BB) - . = "" - else if(BB.nodamage || !BB.damage || BB.damage_type == STAMINA) - user.visible_message("[user] tries to light their [A.name] with [src], but it doesn't do anything. Dumbass.") - playsound(user, E.fire_sound, 50, 1) - playsound(user, BB.hitsound, 50, 1) - cell.use(E.e_cost) - . = "" - else if(BB.damage_type != BURN) - user.visible_message("[user] tries to light their [A.name] with [src], but only succeeds in utterly destroying it. Dumbass.") - playsound(user, E.fire_sound, 50, 1) - playsound(user, BB.hitsound, 50, 1) - cell.use(E.e_cost) - qdel(A) - . = "" - else - playsound(user, E.fire_sound, 50, 1) - playsound(user, BB.hitsound, 50, 1) - cell.use(E.e_cost) - . = "[user] casually lights their [A.name] with [src]. Damn." + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") + sleep(25) + if(user.is_holding(src)) + user.visible_message("[user] melts [user.p_their()] face off with [src]!") + playsound(loc, fire_sound, 50, 1, -1) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + cell.use(shot.e_cost) + update_icon() + return(FIRELOSS) + else + user.visible_message("[user] panics and starts choking to death!") + return(OXYLOSS) + else + user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) + return (OXYLOSS) + + +/obj/item/weapon/gun/energy/vv_edit_var(var_name, var_value) + switch(var_name) + if("selfcharge") + if(var_value) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + . = ..() + + +/obj/item/weapon/gun/energy/ignition_effect(atom/A, mob/living/user) + if(!can_shoot() || !ammo_type[select]) + shoot_with_empty_chamber() + . = "" + else + var/obj/item/ammo_casing/energy/E = ammo_type[select] + var/obj/item/projectile/energy/BB = E.BB + if(!BB) + . = "" + else if(BB.nodamage || !BB.damage || BB.damage_type == STAMINA) + user.visible_message("[user] tries to light their [A.name] with [src], but it doesn't do anything. Dumbass.") + playsound(user, E.fire_sound, 50, 1) + playsound(user, BB.hitsound, 50, 1) + cell.use(E.e_cost) + . = "" + else if(BB.damage_type != BURN) + user.visible_message("[user] tries to light their [A.name] with [src], but only succeeds in utterly destroying it. Dumbass.") + playsound(user, E.fire_sound, 50, 1) + playsound(user, BB.hitsound, 50, 1) + cell.use(E.e_cost) + qdel(A) + . = "" + else + playsound(user, E.fire_sound, 50, 1) + playsound(user, BB.hitsound, 50, 1) + cell.use(E.e_cost) + . = "[user] casually lights their [A.name] with [src]. Damn." diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 063599c59d..2fce18d61c 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -38,7 +38,6 @@ ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/electrode/spec, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) - /obj/item/weapon/gun/energy/e_gun/old name = "prototype energy gun" desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command." @@ -46,7 +45,6 @@ ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/electrode/old) - /obj/item/weapon/gun/energy/e_gun/mini/practice_phaser name = "practice phaser" desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1769ac92b7..22b51064af 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -145,7 +145,7 @@ projectile_type = /obj/item/projectile/kinetic select_name = "kinetic" e_cost = 500 - fire_sound = 'sound/weapons/Kenetic_accel.ogg' // fine spelling there chap + fire_sound = 'sound/weapons/kenetic_accel.ogg' // fine spelling there chap /obj/item/ammo_casing/energy/kinetic/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() @@ -172,18 +172,13 @@ return ..() /obj/item/projectile/kinetic/prehit(atom/target) - var/turf/target_turf = get_turf(target) - if(!isturf(target_turf)) - return . = ..() if(.) if(kinetic_gun) var/list/mods = kinetic_gun.get_modkits() for(var/obj/item/borg/upgrade/modkit/M in mods) M.projectile_prehit(src, target, kinetic_gun) - var/datum/gas_mixture/environment = target_turf.return_air() - var/pressure = environment.return_pressure() - if(pressure > 50) + if(!lavaland_equipment_pressure_check(get_turf(target))) name = "weakened [name]" damage = damage * pressure_decrease pressure_decrease_active = TRUE @@ -261,7 +256,7 @@ if(!user.transferItemToLoc(src, KA)) return to_chat(user, "You install the modkit.") - playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) + playsound(loc, 'sound/items/screwdriver.ogg', 100, 1) KA.modkits += src else to_chat(user, "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits.") @@ -280,7 +275,6 @@ //use this one for effects you want to trigger before mods that do damage /obj/item/borg/upgrade/modkit/proc/projectile_strike_predamage(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA) //and this one for things that don't need to trigger before other damage-dealing mods - /obj/item/borg/upgrade/modkit/proc/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA) //Range @@ -449,8 +443,7 @@ if(SM.reward_target == src) //we want to allow multiple people with bounty modkits to use them, but we need to replace our own marks so we don't multi-reward SM.reward_target = null qdel(SM) - var/datum/status_effect/syphon_mark/SM = L.apply_status_effect(STATUS_EFFECT_SYPHONMARK) - SM.reward_target = src + L.apply_status_effect(STATUS_EFFECT_SYPHONMARK, src) /obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA) if(isliving(target)) @@ -471,11 +464,10 @@ else bounties_reaped[L.type] = min(bounties_reaped[L.type] + (modifier * bonus_mod), maximum_bounty) - //Indoors /obj/item/borg/upgrade/modkit/indoors name = "decrease pressure penalty" - desc = "A syndicate modification kit that increases the damage a kinetic accelerator does in a high pressure environment." + desc = "A syndicate modification kit that increases the damage a kinetic accelerator does in high pressure environments." modifier = 2 denied_type = /obj/item/borg/upgrade/modkit/indoors maximum_of_type = 2 diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index d20c671a59..a38ba3773e 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,29 +1,29 @@ -/obj/item/weapon/gun/energy/laser - name = "laser gun" - desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." - icon_state = "laser" - item_state = "laser" - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=2000) - origin_tech = "combat=4;magnets=2" - ammo_type = list(/obj/item/ammo_casing/energy/lasergun) - ammo_x_offset = 1 - shaded_charge = 1 - -/obj/item/weapon/gun/energy/laser/practice - name = "practice laser gun" - desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." - origin_tech = "combat=2;magnets=2" - ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) - clumsy_check = 0 - needs_permit = 0 - -/obj/item/weapon/gun/energy/laser/retro - name ="retro laser gun" - icon_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." - ammo_x_offset = 3 - +/obj/item/weapon/gun/energy/laser + name = "laser gun" + desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." + icon_state = "laser" + item_state = "laser" + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=2000) + origin_tech = "combat=4;magnets=2" + ammo_type = list(/obj/item/ammo_casing/energy/lasergun) + ammo_x_offset = 1 + shaded_charge = 1 + +/obj/item/weapon/gun/energy/laser/practice + name = "practice laser gun" + desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." + origin_tech = "combat=2;magnets=2" + ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) + clumsy_check = 0 + needs_permit = 0 + +/obj/item/weapon/gun/energy/laser/retro + name ="retro laser gun" + icon_state = "retro" + desc = "An older model of the basic lasergun, no longer used by Nanotrasen's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." + ammo_x_offset = 3 + /obj/item/weapon/gun/energy/laser/retro/old name ="laser gun" icon_state = "retro" @@ -31,113 +31,113 @@ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old) ammo_x_offset = 3 -/obj/item/weapon/gun/energy/laser/captain - name = "antique laser gun" - icon_state = "caplaser" - item_state = "caplaser" - desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding." - force = 10 - origin_tech = null - ammo_x_offset = 3 - selfcharge = 1 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/item/weapon/gun/energy/laser/captain/scattershot - name = "scatter shot laser rifle" - icon_state = "lasercannon" - item_state = "laser" - desc = "An industrial-grade heavy-duty laser rifle with a modified laser lense to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theorically infinite use." - origin_tech = "combat=5;materials=4;powerstorage=4" - ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) - -/obj/item/weapon/gun/energy/laser/cyborg - can_charge = 0 - desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" - origin_tech = null - use_cyborg_cell = 1 - -/obj/item/weapon/gun/energy/laser/cyborg/emp_act() - return - -/obj/item/weapon/gun/energy/laser/scatter - name = "scatter laser gun" - desc = "A laser gun equipped with a refraction kit that spreads bolts." - ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) - -/obj/item/weapon/gun/energy/laser/scatter/shotty - name = "energy shotgun" - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "cshotgun" - item_state = "shotgun" - desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots." - shaded_charge = 0 - pin = /obj/item/device/firing_pin/implant/mindshield - ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/disabler, /obj/item/ammo_casing/energy/electrode) - -///Laser Cannon - -/obj/item/weapon/gun/energy/lasercannon - name = "accelerator laser cannon" - desc = "An advanced laser cannon that does more damage the farther away the target is." - icon_state = "lasercannon" - item_state = "laser" - w_class = WEIGHT_CLASS_BULKY - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - origin_tech = "combat=4;magnets=4;powerstorage=3" - ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator) - pin = null - ammo_x_offset = 3 - -/obj/item/ammo_casing/energy/laser/accelerator - projectile_type = /obj/item/projectile/beam/laser/accelerator - select_name = "accelerator" - fire_sound = 'sound/weapons/lasercannonfire.ogg' - -/obj/item/projectile/beam/laser/accelerator - name = "accelerator laser" - icon_state = "scatterlaser" - range = 255 - damage = 6 - -/obj/item/projectile/beam/laser/accelerator/Range() - ..() - damage += 7 - transform *= 1 + ((damage/7) * 0.2)//20% larger per tile - -/obj/item/weapon/gun/energy/xray - name = "xray laser gun" - desc = "A high-power laser gun capable of expelling concentrated xray blasts that pass through multiple soft targets and heavier materials" - icon_state = "xray" - item_state = null - origin_tech = "combat=6;materials=4;magnets=4;syndicate=1" - ammo_type = list(/obj/item/ammo_casing/energy/xray) - pin = null - ammo_x_offset = 3 - -////////Laser Tag//////////////////// - -/obj/item/weapon/gun/energy/laser/bluetag - name = "laser tag gun" - icon_state = "bluetag" - desc = "A retro laser gun modified to fire harmless blue beams of light. Sound effects included!" - ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag) - origin_tech = "combat=2;magnets=2" - clumsy_check = 0 - needs_permit = 0 - pin = /obj/item/device/firing_pin/tag/blue - ammo_x_offset = 2 - selfcharge = 1 - -/obj/item/weapon/gun/energy/laser/redtag - name = "laser tag gun" - icon_state = "redtag" - desc = "A retro laser gun modified to fire harmless beams red of light. Sound effects included!" - ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag) - origin_tech = "combat=2;magnets=2" - clumsy_check = 0 - needs_permit = 0 - pin = /obj/item/device/firing_pin/tag/red - ammo_x_offset = 2 - selfcharge = 1 +/obj/item/weapon/gun/energy/laser/captain + name = "antique laser gun" + icon_state = "caplaser" + item_state = "caplaser" + desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding." + force = 10 + origin_tech = null + ammo_x_offset = 3 + selfcharge = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/weapon/gun/energy/laser/captain/scattershot + name = "scatter shot laser rifle" + icon_state = "lasercannon" + item_state = "laser" + desc = "An industrial-grade heavy-duty laser rifle with a modified laser lense to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theorically infinite use." + origin_tech = "combat=5;materials=4;powerstorage=4" + ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) + +/obj/item/weapon/gun/energy/laser/cyborg + can_charge = 0 + desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" + origin_tech = null + use_cyborg_cell = 1 + +/obj/item/weapon/gun/energy/laser/cyborg/emp_act() + return + +/obj/item/weapon/gun/energy/laser/scatter + name = "scatter laser gun" + desc = "A laser gun equipped with a refraction kit that spreads bolts." + ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser) + +/obj/item/weapon/gun/energy/laser/scatter/shotty + name = "energy shotgun" + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "cshotgun" + item_state = "shotgun" + desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots." + shaded_charge = 0 + pin = /obj/item/device/firing_pin/implant/mindshield + ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/disabler, /obj/item/ammo_casing/energy/electrode) + +///Laser Cannon + +/obj/item/weapon/gun/energy/lasercannon + name = "accelerator laser cannon" + desc = "An advanced laser cannon that does more damage the farther away the target is." + icon_state = "lasercannon" + item_state = "laser" + w_class = WEIGHT_CLASS_BULKY + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + origin_tech = "combat=4;magnets=4;powerstorage=3" + ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator) + pin = null + ammo_x_offset = 3 + +/obj/item/ammo_casing/energy/laser/accelerator + projectile_type = /obj/item/projectile/beam/laser/accelerator + select_name = "accelerator" + fire_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/item/projectile/beam/laser/accelerator + name = "accelerator laser" + icon_state = "scatterlaser" + range = 255 + damage = 6 + +/obj/item/projectile/beam/laser/accelerator/Range() + ..() + damage += 7 + transform *= 1 + ((damage/7) * 0.2)//20% larger per tile + +/obj/item/weapon/gun/energy/xray + name = "xray laser gun" + desc = "A high-power laser gun capable of expelling concentrated xray blasts that pass through multiple soft targets and heavier materials" + icon_state = "xray" + item_state = null + origin_tech = "combat=6;materials=4;magnets=4;syndicate=1" + ammo_type = list(/obj/item/ammo_casing/energy/xray) + pin = null + ammo_x_offset = 3 + +////////Laser Tag//////////////////// + +/obj/item/weapon/gun/energy/laser/bluetag + name = "laser tag gun" + icon_state = "bluetag" + desc = "A retro laser gun modified to fire harmless blue beams of light. Sound effects included!" + ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag) + origin_tech = "combat=2;magnets=2" + clumsy_check = 0 + needs_permit = 0 + pin = /obj/item/device/firing_pin/tag/blue + ammo_x_offset = 2 + selfcharge = 1 + +/obj/item/weapon/gun/energy/laser/redtag + name = "laser tag gun" + icon_state = "redtag" + desc = "A retro laser gun modified to fire harmless beams red of light. Sound effects included!" + ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag) + origin_tech = "combat=2;magnets=2" + clumsy_check = 0 + needs_permit = 0 + pin = /obj/item/device/firing_pin/tag/red + ammo_x_offset = 2 + selfcharge = 1 diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 43431a65c3..d53bd0da85 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -1,79 +1,78 @@ -/obj/item/weapon/gun/energy/pulse - name = "pulse rifle" - desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." - icon_state = "pulse" - item_state = null - w_class = WEIGHT_CLASS_BULKY - force = 10 - modifystate = TRUE - flags = CONDUCT - slot_flags = SLOT_BACK - ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - cell_type = "/obj/item/weapon/stock_parts/cell/pulse" - -/obj/item/weapon/gun/energy/pulse/emp_act(severity) - return - -/obj/item/weapon/gun/energy/pulse/prize - pin = /obj/item/device/firing_pin - +/obj/item/weapon/gun/energy/pulse + name = "pulse rifle" + desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." + icon_state = "pulse" + item_state = null + w_class = WEIGHT_CLASS_BULKY + force = 10 + modifystate = TRUE + flags = CONDUCT + slot_flags = SLOT_BACK + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + cell_type = "/obj/item/weapon/stock_parts/cell/pulse" + +/obj/item/weapon/gun/energy/pulse/emp_act(severity) + return + +/obj/item/weapon/gun/energy/pulse/prize + pin = /obj/item/device/firing_pin + /obj/item/weapon/gun/energy/pulse/prize/Initialize() - . = ..() + . = ..() GLOB.poi_list += src - var/msg = "A pulse rifle prize has been created at [ADMIN_COORDJMP(src)]" - - message_admins(msg) - log_game(msg) - - notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT) - -/obj/item/weapon/gun/energy/pulse/prize/Destroy() - GLOB.poi_list -= src - . = ..() - -/obj/item/weapon/gun/energy/pulse/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield - -/obj/item/weapon/gun/energy/pulse/carbine - name = "pulse carbine" - desc = "A compact variant of the pulse rifle with less firepower but easier storage." - w_class = WEIGHT_CLASS_NORMAL - slot_flags = SLOT_BELT - icon_state = "pulse_carbine" - item_state = null - cell_type = "/obj/item/weapon/stock_parts/cell/pulse/carbine" - can_flashlight = 1 - flight_x_offset = 18 - flight_y_offset = 12 - -/obj/item/weapon/gun/energy/pulse/carbine/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield - -/obj/item/weapon/gun/energy/pulse/pistol - name = "pulse pistol" - desc = "A pulse rifle in an easily concealed handgun package with low capacity." - w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT - icon_state = "pulse_pistol" - item_state = "gun" - cell_type = "/obj/item/weapon/stock_parts/cell/pulse/pistol" - can_charge = 0 - -/obj/item/weapon/gun/energy/pulse/pistol/loyalpin - pin = /obj/item/device/firing_pin/implant/mindshield - -/obj/item/weapon/gun/energy/pulse/destroyer - name = "pulse destroyer" - desc = "A heavy-duty energy rifle built for pure destruction." - cell_type = "/obj/item/weapon/stock_parts/cell/infinite" - ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse) - -/obj/item/weapon/gun/energy/pulse/destroyer/attack_self(mob/living/user) - to_chat(user, "[src.name] has three settings, and they are all DESTROY.") - -/obj/item/weapon/gun/energy/pulse/pistol/m1911 - name = "\improper M1911-P" - desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." - icon_state = "m1911" - item_state = "gun" - cell_type = "/obj/item/weapon/stock_parts/cell/infinite" + var/msg = "A pulse rifle prize has been created at [ADMIN_COORDJMP(src)]" + + message_admins(msg) + log_game(msg) + + notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT) + +/obj/item/weapon/gun/energy/pulse/prize/Destroy() + GLOB.poi_list -= src + . = ..() + +/obj/item/weapon/gun/energy/pulse/loyalpin + pin = /obj/item/device/firing_pin/implant/mindshield + +/obj/item/weapon/gun/energy/pulse/carbine + name = "pulse carbine" + desc = "A compact variant of the pulse rifle with less firepower but easier storage." + w_class = WEIGHT_CLASS_NORMAL + slot_flags = SLOT_BELT + icon_state = "pulse_carbine" + item_state = null + cell_type = "/obj/item/weapon/stock_parts/cell/pulse/carbine" + can_flashlight = 1 + flight_x_offset = 18 + flight_y_offset = 12 + +/obj/item/weapon/gun/energy/pulse/carbine/loyalpin + pin = /obj/item/device/firing_pin/implant/mindshield + +/obj/item/weapon/gun/energy/pulse/pistol + name = "pulse pistol" + desc = "A pulse rifle in an easily concealed handgun package with low capacity." + w_class = WEIGHT_CLASS_SMALL + slot_flags = SLOT_BELT + icon_state = "pulse_pistol" + item_state = "gun" + cell_type = "/obj/item/weapon/stock_parts/cell/pulse/pistol" + +/obj/item/weapon/gun/energy/pulse/pistol/loyalpin + pin = /obj/item/device/firing_pin/implant/mindshield + +/obj/item/weapon/gun/energy/pulse/destroyer + name = "pulse destroyer" + desc = "A heavy-duty energy rifle built for pure destruction." + cell_type = "/obj/item/weapon/stock_parts/cell/infinite" + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse) + +/obj/item/weapon/gun/energy/pulse/destroyer/attack_self(mob/living/user) + to_chat(user, "[src.name] has three settings, and they are all DESTROY.") + +/obj/item/weapon/gun/energy/pulse/pistol/m1911 + name = "\improper M1911-P" + desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." + icon_state = "m1911" + item_state = "gun" + cell_type = "/obj/item/weapon/stock_parts/cell/infinite" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index f6841d6bf9..0f8cfa0e28 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -121,7 +121,7 @@ /obj/item/weapon/gun/energy/plasmacutter name = "plasma cutter" - desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff." + desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." icon_state = "plasmacutter" item_state = "plasmacutter" origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" @@ -172,8 +172,8 @@ item_state = null icon_state = "wormhole_projector" origin_tech = "combat=4;bluespace=6;plasmatech=4;engineering=4" - var/obj/effect/portal/blue - var/obj/effect/portal/orange + var/obj/effect/portal/p_blue + var/obj/effect/portal/p_orange /obj/item/weapon/gun/energy/wormhole_projector/update_icon() icon_state = "[initial(icon_state)][select]" @@ -184,36 +184,50 @@ ..() select_fire() -/obj/item/weapon/gun/energy/wormhole_projector/proc/portal_destroyed(obj/effect/portal/P) - if(P.icon_state == "portal") - blue = null - if(orange) - orange.target = null - else - orange = null - if(blue) - blue.target = null +/obj/item/weapon/gun/energy/wormhole_projector/proc/on_portal_destroy(obj/effect/portal/P) + if(P == p_blue) + p_blue = null + else if(P == p_orange) + p_orange = null -/obj/item/weapon/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W) - var/obj/effect/portal/P = new /obj/effect/portal(get_turf(W), null, src) - P.precision = 0 - if(W.name == "bluespace beam") - qdel(blue) - blue = P - else - qdel(orange) +/obj/item/weapon/gun/energy/wormhole_projector/proc/has_blue_portal() + if(istype(p_blue) && !QDELETED(p_blue)) + return TRUE + return FALSE + +/obj/item/weapon/gun/energy/wormhole_projector/proc/has_orange_portal() + if(istype(p_orange) && !QDELETED(p_orange)) + return TRUE + return FALSE + +/obj/item/weapon/gun/energy/wormhole_projector/proc/crosslink() + if(!has_blue_portal() && !has_orange_portal()) + return + if(!has_blue_portal() && has_orange_portal()) + p_orange.link_portal(null) + return + if(!has_orange_portal() && has_blue_portal()) + p_blue.link_portal(null) + return + p_orange.link_portal(p_blue) + p_blue.link_portal(p_orange) + +/obj/item/weapon/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) + var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null) + if(istype(W, /obj/item/projectile/beam/wormhole/orange)) + qdel(p_orange) + p_orange = P P.icon_state = "portal1" - orange = P - if(orange && blue) - blue.target = get_turf(orange) - orange.target = get_turf(blue) - + else + qdel(p_blue) + p_blue = P + crosslink() /* 3d printer 'pseudo guns' for borgs */ /obj/item/weapon/gun/energy/printer name = "cyborg lmg" - desc = "A machinegun that fires 3d-printed flachettes slowly regenerated using a cyborg's internal power source." + desc = "A machinegun that fires 3d-printed flechettes slowly regenerated using a cyborg's internal power source." icon_state = "l6closed0" icon = 'icons/obj/guns/projectile.dmi' cell_type = "/obj/item/weapon/stock_parts/cell/secborg" @@ -268,7 +282,7 @@ /obj/item/weapon/gun/energy/gravity_gun name = "one-point bluespace-gravitational manipulator" - desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity" + desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity." ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) origin_tech = "combat=4;magnets=4;materials=6;powerstorage=4;bluespace=4" item_state = null diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 00ce2bb3b8..e8e311a781 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -1,50 +1,50 @@ -/obj/item/weapon/gun/energy/taser - name = "taser gun" - desc = "A low-capacity, energy-based stun gun used by security teams to subdue targets at range." - icon_state = "taser" - item_state = null //so the human update icon uses the icon_state instead. - ammo_type = list(/obj/item/ammo_casing/energy/electrode) - origin_tech = "combat=3" - ammo_x_offset = 3 - -/obj/item/weapon/gun/energy/tesla_revolver - name = "tesla gun" - desc = "An experimental gun based on an experimental engine, it's about as likely to kill its operator as it is the target." - icon_state = "tesla" - item_state = "tesla" - ammo_type = list(/obj/item/ammo_casing/energy/tesla_revolver) - origin_tech = "combat=4;materials=4;powerstorage=4" - can_flashlight = 0 - pin = null - shaded_charge = 1 - -/obj/item/weapon/gun/energy/e_gun/advtaser - name = "hybrid taser" - desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." - icon_state = "advtaser" - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) - origin_tech = "combat=4" - ammo_x_offset = 2 - -/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg - name = "cyborg taser" - desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." - can_flashlight = 0 - can_charge = 0 - use_cyborg_cell = 1 - -/obj/item/weapon/gun/energy/disabler - name = "disabler" - desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse." - icon_state = "disabler" +/obj/item/weapon/gun/energy/taser + name = "taser gun" + desc = "A low-capacity, energy-based stun gun used by security teams to subdue targets at range." + icon_state = "taser" + item_state = null //so the human update icon uses the icon_state instead. + ammo_type = list(/obj/item/ammo_casing/energy/electrode) + origin_tech = "combat=3" + ammo_x_offset = 3 + +/obj/item/weapon/gun/energy/tesla_revolver + name = "tesla gun" + desc = "An experimental gun based on an experimental engine, it's about as likely to kill its operator as it is the target." + icon_state = "tesla" + item_state = "tesla" + ammo_type = list(/obj/item/ammo_casing/energy/tesla_revolver) + origin_tech = "combat=4;materials=4;powerstorage=4" + can_flashlight = 0 + pin = null + shaded_charge = 1 + +/obj/item/weapon/gun/energy/e_gun/advtaser + name = "hybrid taser" + desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." + icon_state = "advtaser" + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) + origin_tech = "combat=4" + ammo_x_offset = 2 + +/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg + name = "cyborg taser" + desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." + can_flashlight = 0 + can_charge = 0 + use_cyborg_cell = 1 + +/obj/item/weapon/gun/energy/disabler + name = "disabler" + desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse." + icon_state = "disabler" item_state = null - origin_tech = "combat=3" - ammo_type = list(/obj/item/ammo_casing/energy/disabler) - ammo_x_offset = 3 - -/obj/item/weapon/gun/energy/disabler/cyborg - name = "cyborg disabler" - desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." - can_charge = 0 - use_cyborg_cell = 1 - + origin_tech = "combat=3" + ammo_type = list(/obj/item/ammo_casing/energy/disabler) + ammo_x_offset = 3 + +/obj/item/weapon/gun/energy/disabler/cyborg + name = "cyborg disabler" + desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." + can_charge = 0 + use_cyborg_cell = 1 + diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 9c30eefd2f..7387efee2b 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -1,86 +1,86 @@ -/obj/item/weapon/gun/magic - name = "staff of nothing" - desc = "This staff is boring to watch because even though it came first you've seen everything it can do in other staves for years." - icon = 'icons/obj/guns/magic.dmi' - icon_state = "staffofnothing" - item_state = "staff" - fire_sound = 'sound/weapons/emitter.ogg' - flags = CONDUCT - w_class = WEIGHT_CLASS_HUGE - var/max_charges = 6 - var/charges = 0 - var/recharge_rate = 4 - var/charge_tick = 0 - var/can_charge = 1 - var/ammo_type - var/no_den_usage - origin_tech = null - clumsy_check = 0 - trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead - pin = /obj/item/device/firing_pin/magic - - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - -/obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) - if(no_den_usage) - var/area/A = get_area(user) - if(istype(A, /area/wizard_station)) - to_chat(user, "You know better than to violate the security of The Den, best wait until you leave to use [src].") - return - else - no_den_usage = 0 - ..() - -/obj/item/weapon/gun/magic/can_shoot() - return charges - -/obj/item/weapon/gun/magic/recharge_newshot() - if (charges && chambered && !chambered.BB) - chambered.newshot() - -/obj/item/weapon/gun/magic/process_chamber() - if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... - charges--//... drain a charge - recharge_newshot() - +/obj/item/weapon/gun/magic + name = "staff of nothing" + desc = "This staff is boring to watch because even though it came first you've seen everything it can do in other staves for years." + icon = 'icons/obj/guns/magic.dmi' + icon_state = "staffofnothing" + item_state = "staff" + fire_sound = 'sound/weapons/emitter.ogg' + flags = CONDUCT + w_class = WEIGHT_CLASS_HUGE + var/max_charges = 6 + var/charges = 0 + var/recharge_rate = 4 + var/charge_tick = 0 + var/can_charge = 1 + var/ammo_type + var/no_den_usage + origin_tech = null + clumsy_check = 0 + trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead + pin = /obj/item/device/firing_pin/magic + + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + +/obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) + if(no_den_usage) + var/area/A = get_area(user) + if(istype(A, /area/wizard_station)) + to_chat(user, "You know better than to violate the security of The Den, best wait until you leave to use [src].") + return + else + no_den_usage = 0 + ..() + +/obj/item/weapon/gun/magic/can_shoot() + return charges + +/obj/item/weapon/gun/magic/recharge_newshot() + if (charges && chambered && !chambered.BB) + chambered.newshot() + +/obj/item/weapon/gun/magic/process_chamber() + if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... + charges--//... drain a charge + recharge_newshot() + /obj/item/weapon/gun/magic/Initialize() . = ..() - charges = max_charges - chambered = new ammo_type(src) - if(can_charge) - START_PROCESSING(SSobj, src) - - -/obj/item/weapon/gun/magic/Destroy() - if(can_charge) - STOP_PROCESSING(SSobj, src) - return ..() - - -/obj/item/weapon/gun/magic/process() - charge_tick++ - if(charge_tick < recharge_rate || charges >= max_charges) - return 0 - charge_tick = 0 - charges++ - if(charges == 1) - recharge_newshot() - return 1 - -/obj/item/weapon/gun/magic/update_icon() - return - -/obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj) - to_chat(user, "The [name] whizzles quietly.") - -/obj/item/weapon/gun/magic/suicide_act(mob/user) - user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, fire_sound, 50, 1, -1) - return (FIRELOSS) - -/obj/item/weapon/gun/magic/vv_edit_var(var_name, var_value) - . = ..() - switch (var_name) - if ("charges") + charges = max_charges + chambered = new ammo_type(src) + if(can_charge) + START_PROCESSING(SSobj, src) + + +/obj/item/weapon/gun/magic/Destroy() + if(can_charge) + STOP_PROCESSING(SSobj, src) + return ..() + + +/obj/item/weapon/gun/magic/process() + charge_tick++ + if(charge_tick < recharge_rate || charges >= max_charges) + return 0 + charge_tick = 0 + charges++ + if(charges == 1) + recharge_newshot() + return 1 + +/obj/item/weapon/gun/magic/update_icon() + return + +/obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj) + to_chat(user, "The [name] whizzles quietly.") + +/obj/item/weapon/gun/magic/suicide_act(mob/user) + user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, fire_sound, 50, 1, -1) + return (FIRELOSS) + +/obj/item/weapon/gun/magic/vv_edit_var(var_name, var_value) + . = ..() + switch (var_name) + if ("charges") recharge_newshot() \ No newline at end of file diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index 2dc668b6a7..45a1eccd65 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -4,7 +4,7 @@ /obj/item/weapon/gun/magic/staff/change name = "staff of change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself" - fire_sound = 'sound/magic/Staff_Change.ogg' + fire_sound = 'sound/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/change icon_state = "staffofchange" item_state = "staffofchange" @@ -12,7 +12,7 @@ /obj/item/weapon/gun/magic/staff/animate name = "staff of animation" desc = "An artefact that spits bolts of life-force which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines." - fire_sound = 'sound/magic/Staff_animation.ogg' + fire_sound = 'sound/magic/staff_animation.ogg' ammo_type = /obj/item/ammo_casing/magic/animate icon_state = "staffofanimation" item_state = "staffofanimation" @@ -20,7 +20,7 @@ /obj/item/weapon/gun/magic/staff/healing name = "staff of healing" desc = "An artefact that spits bolts of restoring magic which can remove ailments of all kinds and even raise the dead." - fire_sound = 'sound/magic/Staff_Healing.ogg' + fire_sound = 'sound/magic/staff_healing.ogg' ammo_type = /obj/item/ammo_casing/magic/heal icon_state = "staffofhealing" item_state = "staffofhealing" @@ -31,7 +31,7 @@ /obj/item/weapon/gun/magic/staff/chaos name = "staff of chaos" desc = "An artefact that spits bolts of chaotic magic that can potentially do anything." - fire_sound = 'sound/magic/Staff_Chaos.ogg' + fire_sound = 'sound/magic/staff_chaos.ogg' ammo_type = /obj/item/ammo_casing/magic/chaos icon_state = "staffofchaos" item_state = "staffofchaos" @@ -49,7 +49,7 @@ /obj/item/weapon/gun/magic/staff/door name = "staff of door creation" desc = "An artefact that spits bolts of transformative magic that can create doors in walls." - fire_sound = 'sound/magic/Staff_Door.ogg' + fire_sound = 'sound/magic/staff_door.ogg' ammo_type = /obj/item/ammo_casing/magic/door icon_state = "staffofdoor" item_state = "staffofdoor" @@ -70,7 +70,7 @@ /obj/item/weapon/gun/magic/staff/spellblade name = "spellblade" desc = "A deadly combination of laziness and boodlust, this blade allows the user to dismember their enemies without all the hard work of actually swinging the sword." - fire_sound = 'sound/magic/Fireball.ogg' + fire_sound = 'sound/magic/fireball.ogg' ammo_type = /obj/item/ammo_casing/magic/spellblade icon_state = "spellblade" item_state = "spellblade" @@ -81,7 +81,7 @@ sharpness = IS_SHARP max_charges = 4 -/obj/item/weapon/gun/magic/staff/spellblade/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) +/obj/item/weapon/gun/magic/staff/spellblade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(attack_type == PROJECTILE_ATTACK) final_block_chance = 0 return ..() diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index dfc6351c3c..047ac752e5 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -1,170 +1,170 @@ -/obj/item/weapon/gun/magic/wand - name = "wand of nothing" - desc = "It's not just a stick, it's a MAGIC stick!" - ammo_type = /obj/item/ammo_casing/magic - icon_state = "nothingwand" - item_state = "wand" - w_class = WEIGHT_CLASS_SMALL - can_charge = 0 - max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths) - var/variable_charges = 1 - +/obj/item/weapon/gun/magic/wand + name = "wand of nothing" + desc = "It's not just a stick, it's a MAGIC stick!" + ammo_type = /obj/item/ammo_casing/magic + icon_state = "nothingwand" + item_state = "wand" + w_class = WEIGHT_CLASS_SMALL + can_charge = 0 + max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths) + var/variable_charges = 1 + /obj/item/weapon/gun/magic/wand/Initialize() - if(prob(75) && variable_charges) //25% chance of listed max charges, 50% chance of 1/2 max charges, 25% chance of 1/3 max charges - if(prob(33)) - max_charges = Ceiling(max_charges / 3) - else - max_charges = Ceiling(max_charges / 2) + if(prob(75) && variable_charges) //25% chance of listed max charges, 50% chance of 1/2 max charges, 25% chance of 1/3 max charges + if(prob(33)) + max_charges = Ceiling(max_charges / 3) + else + max_charges = Ceiling(max_charges / 2) return ..() - -/obj/item/weapon/gun/magic/wand/examine(mob/user) - ..() - to_chat(user, "Has [charges] charge\s remaining.") - -/obj/item/weapon/gun/magic/wand/update_icon() - icon_state = "[initial(icon_state)][charges ? "" : "-drained"]" - -/obj/item/weapon/gun/magic/wand/attack(atom/target, mob/living/user) - if(target == user) - return - ..() - -/obj/item/weapon/gun/magic/wand/afterattack(atom/target, mob/living/user) - if(!charges) - shoot_with_empty_chamber(user) - return - if(target == user) - if(no_den_usage) - var/area/A = get_area(user) - if(istype(A, /area/wizard_station)) - to_chat(user, "You know better than to violate the security of The Den, best wait until you leave to use [src].") - return - else - no_den_usage = 0 - zap_self(user) - else - ..() - update_icon() - - -/obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user) - user.visible_message("[user] zaps [user.p_them()]self with [src].") - playsound(user, fire_sound, 50, 1) - user.log_message("zapped [user.p_them()]self with a [src]", INDIVIDUAL_ATTACK_LOG) - - -///////////////////////////////////// -//WAND OF DEATH -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/death - name = "wand of death" - desc = "This deadly wand overwhelms the victim's body with pure energy, slaying them without fail." - fire_sound = 'sound/magic/WandoDeath.ogg' - ammo_type = /obj/item/ammo_casing/magic/death - icon_state = "deathwand" - max_charges = 3 //3, 2, 2, 1 - -/obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user) - ..() - to_chat(user, "You irradiate yourself with pure energy! \ - [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\ - ") - user.adjustOxyLoss(500) - charges-- - - -///////////////////////////////////// -//WAND OF HEALING -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/resurrection - name = "wand of healing" - desc = "This wand uses healing magics to heal and revive. They are rarely utilized within the Wizard Federation for some reason." - ammo_type = /obj/item/ammo_casing/magic/heal - fire_sound = 'sound/magic/Staff_Healing.ogg' - icon_state = "revivewand" - max_charges = 10 //10, 5, 5, 4 - -/obj/item/weapon/gun/magic/wand/resurrection/zap_self(mob/living/user) - user.revive(full_heal = 1) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.regenerate_limbs() - C.regenerate_organs() - to_chat(user, "You feel great!") - charges-- - ..() - -///////////////////////////////////// -//WAND OF POLYMORPH -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/polymorph - name = "wand of polymorph" - desc = "This wand is attuned to chaos and will radically alter the victim's form." - ammo_type = /obj/item/ammo_casing/magic/change - icon_state = "polywand" - fire_sound = 'sound/magic/Staff_Change.ogg' - max_charges = 10 //10, 5, 5, 4 - -/obj/item/weapon/gun/magic/wand/polymorph/zap_self(mob/living/user) - ..() //because the user mob ceases to exists by the time wabbajack fully resolves - wabbajack(user) - charges-- - -///////////////////////////////////// -//WAND OF TELEPORTATION -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/teleport - name = "wand of teleportation" - desc = "This wand will wrench targets through space and time to move them somewhere else." - ammo_type = /obj/item/ammo_casing/magic/teleport - fire_sound = 'sound/magic/Wand_Teleport.ogg' - icon_state = "telewand" - max_charges = 10 //10, 5, 5, 4 - no_den_usage = 1 - -/obj/item/weapon/gun/magic/wand/teleport/zap_self(mob/living/user) - if(do_teleport(user, user, 10)) - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(3, user.loc) - smoke.start() - charges-- - ..() - -///////////////////////////////////// -//WAND OF DOOR CREATION -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/door - name = "wand of door creation" - desc = "This particular wand can create doors in any wall for the unscrupulous wizard who shuns teleportation magics." - ammo_type = /obj/item/ammo_casing/magic/door - icon_state = "doorwand" - fire_sound = 'sound/magic/Staff_Door.ogg' - max_charges = 20 //20, 10, 10, 7 - no_den_usage = 1 - -/obj/item/weapon/gun/magic/wand/door/zap_self(mob/living/user) - to_chat(user, "You feel vaguely more open with your feelings.") - charges-- - ..() - -///////////////////////////////////// -//WAND OF FIREBALL -///////////////////////////////////// - -/obj/item/weapon/gun/magic/wand/fireball - name = "wand of fireball" - desc = "This wand shoots scorching balls of fire that explode into destructive flames." - fire_sound = 'sound/magic/Fireball.ogg' - ammo_type = /obj/item/ammo_casing/magic/fireball - icon_state = "firewand" - max_charges = 8 //8, 4, 4, 3 - -/obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user) - ..() + +/obj/item/weapon/gun/magic/wand/examine(mob/user) + ..() + to_chat(user, "Has [charges] charge\s remaining.") + +/obj/item/weapon/gun/magic/wand/update_icon() + icon_state = "[initial(icon_state)][charges ? "" : "-drained"]" + +/obj/item/weapon/gun/magic/wand/attack(atom/target, mob/living/user) + if(target == user) + return + ..() + +/obj/item/weapon/gun/magic/wand/afterattack(atom/target, mob/living/user) + if(!charges) + shoot_with_empty_chamber(user) + return + if(target == user) + if(no_den_usage) + var/area/A = get_area(user) + if(istype(A, /area/wizard_station)) + to_chat(user, "You know better than to violate the security of The Den, best wait until you leave to use [src].") + return + else + no_den_usage = 0 + zap_self(user) + else + ..() + update_icon() + + +/obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user) + user.visible_message("[user] zaps [user.p_them()]self with [src].") + playsound(user, fire_sound, 50, 1) + user.log_message("zapped [user.p_them()]self with a [src]", INDIVIDUAL_ATTACK_LOG) + + +///////////////////////////////////// +//WAND OF DEATH +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/death + name = "wand of death" + desc = "This deadly wand overwhelms the victim's body with pure energy, slaying them without fail." + fire_sound = 'sound/magic/wandodeath.ogg' + ammo_type = /obj/item/ammo_casing/magic/death + icon_state = "deathwand" + max_charges = 3 //3, 2, 2, 1 + +/obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user) + ..() + to_chat(user, "You irradiate yourself with pure energy! \ + [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\ + ") + user.adjustOxyLoss(500) + charges-- + + +///////////////////////////////////// +//WAND OF HEALING +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/resurrection + name = "wand of healing" + desc = "This wand uses healing magics to heal and revive. They are rarely utilized within the Wizard Federation for some reason." + ammo_type = /obj/item/ammo_casing/magic/heal + fire_sound = 'sound/magic/staff_healing.ogg' + icon_state = "revivewand" + max_charges = 10 //10, 5, 5, 4 + +/obj/item/weapon/gun/magic/wand/resurrection/zap_self(mob/living/user) + user.revive(full_heal = 1) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.regenerate_limbs() + C.regenerate_organs() + to_chat(user, "You feel great!") + charges-- + ..() + +///////////////////////////////////// +//WAND OF POLYMORPH +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/polymorph + name = "wand of polymorph" + desc = "This wand is attuned to chaos and will radically alter the victim's form." + ammo_type = /obj/item/ammo_casing/magic/change + icon_state = "polywand" + fire_sound = 'sound/magic/staff_change.ogg' + max_charges = 10 //10, 5, 5, 4 + +/obj/item/weapon/gun/magic/wand/polymorph/zap_self(mob/living/user) + ..() //because the user mob ceases to exists by the time wabbajack fully resolves + wabbajack(user) + charges-- + +///////////////////////////////////// +//WAND OF TELEPORTATION +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/teleport + name = "wand of teleportation" + desc = "This wand will wrench targets through space and time to move them somewhere else." + ammo_type = /obj/item/ammo_casing/magic/teleport + fire_sound = 'sound/magic/wand_teleport.ogg' + icon_state = "telewand" + max_charges = 10 //10, 5, 5, 4 + no_den_usage = 1 + +/obj/item/weapon/gun/magic/wand/teleport/zap_self(mob/living/user) + if(do_teleport(user, user, 10)) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(3, user.loc) + smoke.start() + charges-- + ..() + +///////////////////////////////////// +//WAND OF DOOR CREATION +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/door + name = "wand of door creation" + desc = "This particular wand can create doors in any wall for the unscrupulous wizard who shuns teleportation magics." + ammo_type = /obj/item/ammo_casing/magic/door + icon_state = "doorwand" + fire_sound = 'sound/magic/staff_door.ogg' + max_charges = 20 //20, 10, 10, 7 + no_den_usage = 1 + +/obj/item/weapon/gun/magic/wand/door/zap_self(mob/living/user) + to_chat(user, "You feel vaguely more open with your feelings.") + charges-- + ..() + +///////////////////////////////////// +//WAND OF FIREBALL +///////////////////////////////////// + +/obj/item/weapon/gun/magic/wand/fireball + name = "wand of fireball" + desc = "This wand shoots scorching balls of fire that explode into destructive flames." + fire_sound = 'sound/magic/fireball.ogg' + ammo_type = /obj/item/ammo_casing/magic/fireball + icon_state = "firewand" + max_charges = 8 //8, 4, 4, 3 + +/obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user) + ..() explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) charges-- \ No newline at end of file diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm new file mode 100644 index 0000000000..24b6d1765d --- /dev/null +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -0,0 +1,127 @@ +/obj/item/weapon/gun/blastcannon + name = "pipe gun" + desc = "A pipe welded onto a gun stock, with a mechanical trigger. The pipe has an opening near the top, and there seems to be a spring loaded wheel in the hole." + icon_state = "empty_blastcannon" + var/icon_state_loaded = "loaded_blastcannon" + item_state = "blastcannon_empty" + w_class = WEIGHT_CLASS_NORMAL + force = 10 + fire_sound = 'sound/weapons/blastcannon.ogg' + needs_permit = FALSE + clumsy_check = FALSE + randomspread = FALSE + + var/obj/item/device/transfer_valve/bomb + var/datum/gas_mixture/air1 + var/datum/gas_mixture/air2 + +/obj/item/weapon/gun/blastcannon/New() + if(!pin) + pin = new + . = ..() + +/obj/item/weapon/gun/blastcannon/Destroy() + if(bomb) + qdel(bomb) + bomb = null + air1 = null + air2 = null + . = ..() + +/obj/item/weapon/gun/blastcannon/attack_self(mob/user) + if(bomb) + bomb.forceMove(user.loc) + user.put_in_hands(bomb) + user.visible_message("[user] detaches the [bomb] from the [src]") + bomb = null + update_icon() + . = ..(user) + +/obj/item/weapon/gun/blastcannon/update_icon() + if(bomb) + icon_state = icon_state_loaded + name = "blast cannon" + desc = "A makeshift device used to concentrate a bomb's blast energy to a narrow wave." + else + icon_state = initial(icon_state) + name = initial(name) + desc = initial(desc) + . = ..() + +/obj/item/weapon/gun/blastcannon/attackby(obj/O, mob/user) + if(istype(O, /obj/item/device/transfer_valve)) + var/obj/item/device/transfer_valve/T = O + if(!T.tank_one || !T.tank_two) + to_chat(user, "What good would an incomplete bomb do?") + return FALSE + if(!user.drop_item(O)) + to_chat(user, "The [O] seems to be stuck to your hand!") + return FALSE + user.visible_message("[user] attaches the [O] to the [src]!") + bomb = O + O.loc = src + update_icon() + return TRUE + . = ..() + +/obj/item/weapon/gun/blastcannon/proc/calculate_bomb() + if(!istype(bomb)||!istype(bomb.tank_one)||!istype(bomb.tank_two)) + return 0 + air1 = bomb.tank_one.air_contents + air2 = bomb.tank_two.air_contents + var/datum/gas_mixture/temp + temp.volume = air1.volume + air2.volume + temp.merge(air1) + temp.merge(air2) + for(var/i in 1 to 6) + temp.react() + var/pressure = temp.return_pressure() + qdel(temp) + if(pressure < TANK_FRAGMENT_PRESSURE) + return 0 + return (pressure/TANK_FRAGMENT_SCALE) + +/obj/item/weapon/gun/blastcannon/afterattack(atom/target, mob/user, flag, params) + if((!bomb) || (target == user) || (target.loc == user) || (!target) || (target.loc == user.loc) || (target.loc in range(user, 2)) || (target in range(user, 2))) + return ..() + var/power = calculate_bomb() + qdel(bomb) + update_icon() + var/heavy = power * 0.2 + var/medium = power * 0.5 + var/light = power + user.visible_message("[user] opens \the [bomb] on \his [src.name] and fires a blast wave at \the [target]!","You open \the [bomb] on your [src.name] and fire a blast wave at \the [target]!") + playsound(user, "explosion", 100, 1) + var/turf/starting = get_turf(user) + var/area/A = get_area(user) + var/log_str = "Blast wave fired at [ADMIN_COORDJMP(starting)] ([A.name]) by [user.name]([user.ckey]) with power [heavy]/[medium]/[light]." + message_admins(log_str) + log_game(log_str) + +/obj/item/projectile/blastwave + name = "blast wave" + icon_state = "blastwave" + damage = 0 + nodamage = FALSE + forcedodge = TRUE + var/heavyr = 0 + var/mediumr = 0 + var/lightr = 0 + range = 150 + +/obj/item/projectile/blastwave/Range() + ..() + if(heavyr) + loc.ex_act(1) + else if(mediumr) + loc.ex_act(2) + else if(lightr) + loc.ex_act(3) + else + qdel(src) + heavyr-- + mediumr-- + lightr-- + +/obj/item/projectile/blastwave/ex_act() + return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 3846335fc6..b7435001e4 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -25,12 +25,14 @@ var/p_y = 16 // the pixel location of the tile that the player clicked. Default is the center var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel var/Angle = 0 + var/nondirectional_sprite = FALSE //Set TRUE to prevent projectiles from having their sprites rotated based on firing angle var/spread = 0 //amount (in degrees) of projectile spread var/legacy = 0 //legacy projectile system animate_movement = 0 //Use SLIDE_STEPS in conjunction with legacy var/ricochets = 0 var/ricochets_max = 2 var/ricochet_chance = 30 + var/ignore_source_check = FALSE var/damage = 10 var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here @@ -40,8 +42,8 @@ var/range = 50 //This will de-increment every step. When 0, it will delete the projectile. //Effects var/stun = 0 - var/weaken = 0 - var/paralyze = 0 + var/knockdown = 0 + var/unconscious = 0 var/irradiate = 0 var/stutter = 0 var/slur = 0 @@ -126,7 +128,7 @@ reagent_note += num2text(R.volume) + ") " add_logs(firer, L, "shot", src, reagent_note) - return L.apply_effects(stun, weaken, paralyze, irradiate, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter) + return L.apply_effects(stun, knockdown, unconscious, irradiate, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter) /obj/item/projectile/proc/vol_by_damage() if(src.damage) @@ -140,8 +142,9 @@ if(check_ricochet() && check_ricochet_flag(A) && ricochets < ricochets_max) ricochets++ if(A.handle_ricochet(src)) + ignore_source_check = TRUE return FALSE - if(firer && !ricochets) + if(firer && !ignore_source_check) if(A == firer || (A == firer.loc && istype(A, /obj/mecha))) //cannot shoot yourself or your mech loc = A.loc return FALSE @@ -220,7 +223,8 @@ if(spread) Angle += (rand() - 0.5) * spread var/matrix/M = new - M.Turn(Angle) + if(!nondirectional_sprite) + M.Turn(Angle) transform = M var/Pixel_x=round((sin(Angle)+16*sin(Angle)*2), 1) //round() is a floor operation when only one argument is supplied, we don't want that here diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 427f590ba5..61e109b454 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -1,157 +1,157 @@ -/obj/item/projectile/beam - name = "laser" - icon_state = "laser" - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 20 - light_range = 2 - damage_type = BURN - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' - flag = "laser" - eyeblur = 2 +/obj/item/projectile/beam + name = "laser" + icon_state = "laser" + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 20 + light_range = 2 + damage_type = BURN + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + flag = "laser" + eyeblur = 2 impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser - light_color = LIGHT_COLOR_RED + light_color = LIGHT_COLOR_RED ricochets_max = 50 //Honk! ricochet_chance = 80 -/obj/item/projectile/beam/laser - -/obj/item/projectile/beam/laser/heavylaser - name = "heavy laser" - icon_state = "heavylaser" - damage = 40 - -/obj/item/projectile/beam/laser/on_hit(atom/target, blocked = 0) - . = ..() - if(iscarbon(target)) - var/mob/living/carbon/M = target - M.IgniteMob() - else if(isturf(target)) +/obj/item/projectile/beam/laser + +/obj/item/projectile/beam/laser/heavylaser + name = "heavy laser" + icon_state = "heavylaser" + damage = 40 + +/obj/item/projectile/beam/laser/on_hit(atom/target, blocked = 0) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.IgniteMob() + else if(isturf(target)) impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser/wall - -/obj/item/projectile/beam/weak - damage = 15 - armour_penetration = 50 - -/obj/item/projectile/beam/practice - name = "practice laser" - damage = 0 - nodamage = 1 - -/obj/item/projectile/beam/scatter - name = "laser pellet" - icon_state = "scatterlaser" - damage = 5 - -/obj/item/projectile/beam/xray - name = "xray beam" - icon_state = "xray" - damage = 15 - irradiate = 30 - range = 15 - forcedodge = 1 + +/obj/item/projectile/beam/weak + damage = 15 + armour_penetration = 50 + +/obj/item/projectile/beam/practice + name = "practice laser" + damage = 0 + nodamage = 1 + +/obj/item/projectile/beam/scatter + name = "laser pellet" + icon_state = "scatterlaser" + damage = 5 + +/obj/item/projectile/beam/xray + name = "xray beam" + icon_state = "xray" + damage = 15 + irradiate = 30 + range = 15 + forcedodge = 1 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser - light_color = LIGHT_COLOR_GREEN - -/obj/item/projectile/beam/disabler - name = "disabler beam" - icon_state = "omnilaser" - damage = 36 - damage_type = STAMINA - flag = "energy" - hitsound = 'sound/weapons/tap.ogg' - eyeblur = 0 + light_color = LIGHT_COLOR_GREEN + +/obj/item/projectile/beam/disabler + name = "disabler beam" + icon_state = "omnilaser" + damage = 36 + damage_type = STAMINA + flag = "energy" + hitsound = 'sound/weapons/tap.ogg' + eyeblur = 0 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser - light_color = LIGHT_COLOR_BLUE - -/obj/item/projectile/beam/pulse - name = "pulse" - icon_state = "u_laser" - damage = 50 + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/beam/pulse + name = "pulse" + icon_state = "u_laser" + damage = 50 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser - light_color = LIGHT_COLOR_BLUE - -/obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = 0) - . = ..() - if(isturf(target) || istype(target,/obj/structure/)) - target.ex_act(2) - -/obj/item/projectile/beam/pulse/shot - damage = 40 - -/obj/item/projectile/beam/pulse/heavy - name = "heavy pulse laser" - icon_state = "pulse1_bl" - var/life = 20 - -/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = 0) - life -= 10 - if(life > 0) - . = -1 - ..() - -/obj/item/projectile/beam/emitter - name = "emitter beam" - icon_state = "emitter" - damage = 30 - legacy = 1 - animate_movement = SLIDE_STEPS + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = 0) + . = ..() + if(isturf(target) || istype(target,/obj/structure/)) + target.ex_act(2) + +/obj/item/projectile/beam/pulse/shot + damage = 40 + +/obj/item/projectile/beam/pulse/heavy + name = "heavy pulse laser" + icon_state = "pulse1_bl" + var/life = 20 + +/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = 0) + life -= 10 + if(life > 0) + . = -1 + ..() + +/obj/item/projectile/beam/emitter + name = "emitter beam" + icon_state = "emitter" + damage = 30 + legacy = 1 + animate_movement = SLIDE_STEPS impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser - light_color = LIGHT_COLOR_GREEN - -/obj/item/projectile/beam/emitter/singularity_pull() - return //don't want the emitters to miss - -/obj/item/projectile/beam/lasertag - name = "laser tag beam" - icon_state = "omnilaser" - hitsound = null - damage = 0 - damage_type = STAMINA - flag = "laser" - var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag) + light_color = LIGHT_COLOR_GREEN + +/obj/item/projectile/beam/emitter/singularity_pull() + return //don't want the emitters to miss + +/obj/item/projectile/beam/lasertag + name = "laser tag beam" + icon_state = "omnilaser" + hitsound = null + damage = 0 + damage_type = STAMINA + flag = "laser" + var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag) impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser - light_color = LIGHT_COLOR_BLUE - -/obj/item/projectile/beam/lasertag/on_hit(atom/target, blocked = 0) - . = ..() - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit)) - if(M.wear_suit.type in suit_types) - M.adjustStaminaLoss(34) - -/obj/item/projectile/beam/lasertag/redtag - icon_state = "laser" - suit_types = list(/obj/item/clothing/suit/bluetag) + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/beam/lasertag/on_hit(atom/target, blocked = 0) + . = ..() + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit)) + if(M.wear_suit.type in suit_types) + M.adjustStaminaLoss(34) + +/obj/item/projectile/beam/lasertag/redtag + icon_state = "laser" + suit_types = list(/obj/item/clothing/suit/bluetag) impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/beam/lasertag/bluetag - icon_state = "bluelaser" - suit_types = list(/obj/item/clothing/suit/redtag) - -/obj/item/projectile/beam/instakill - name = "instagib laser" - icon_state = "purple_laser" - damage = 200 - damage_type = BURN + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/beam/lasertag/bluetag + icon_state = "bluelaser" + suit_types = list(/obj/item/clothing/suit/redtag) + +/obj/item/projectile/beam/instakill + name = "instagib laser" + icon_state = "purple_laser" + damage = 200 + damage_type = BURN impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser - light_color = LIGHT_COLOR_PURPLE - -/obj/item/projectile/beam/instakill/blue - icon_state = "blue_laser" + light_color = LIGHT_COLOR_PURPLE + +/obj/item/projectile/beam/instakill/blue + icon_state = "blue_laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser - light_color = LIGHT_COLOR_BLUE - -/obj/item/projectile/beam/instakill/red - icon_state = "red_laser" + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/beam/instakill/red + icon_state = "red_laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/beam/instakill/on_hit(atom/target) - . = ..() - if(iscarbon(target)) - var/mob/living/carbon/M = target - M.visible_message("[M] explodes into a shower of gibs!") - M.gib() + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/beam/instakill/on_hit(atom/target) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.visible_message("[M] explodes into a shower of gibs!") + M.gib() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index ae2377b8e3..9b116c1731 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -1,295 +1,290 @@ -/obj/item/projectile/bullet - name = "bullet" - icon_state = "bullet" - damage = 60 - damage_type = BRUTE - nodamage = 0 - flag = "bullet" - hitsound_wall = "ricochet" +/obj/item/projectile/bullet + name = "bullet" + icon_state = "bullet" + damage = 60 + damage_type = BRUTE + nodamage = 0 + flag = "bullet" + hitsound_wall = "ricochet" impact_effect_type = /obj/effect/temp_visual/impact_effect - -/obj/item/projectile/bullet/weakbullet //beanbag, heavy stamina damage - damage = 5 - stamina = 80 - -/obj/item/projectile/bullet/weakbullet2 //detective revolver instastuns, but multiple shots are better for keeping punks down - damage = 15 - weaken = 3 - stamina = 50 - -/obj/item/projectile/bullet/weakbullet3 - damage = 20 - -/obj/item/projectile/bullet/toxinbullet - damage = 15 - damage_type = TOX - -/obj/item/projectile/bullet/incendiary/firebullet - damage = 10 - -/obj/item/projectile/bullet/armourpiercing + +/obj/item/projectile/bullet/weakbullet //beanbag, heavy stamina damage + damage = 5 + stamina = 80 + +/obj/item/projectile/bullet/weakbullet2 //detective revolver instastuns, but multiple shots are better for keeping punks down + damage = 15 + knockdown = 30 + stamina = 50 + +/obj/item/projectile/bullet/weakbullet3 + damage = 20 + +/obj/item/projectile/bullet/toxinbullet + damage = 15 + damage_type = TOX + +/obj/item/projectile/bullet/incendiary/firebullet + damage = 10 + +/obj/item/projectile/bullet/armourpiercing damage = 15 armour_penetration = 40 - -/obj/item/projectile/bullet/pellet - name = "pellet" - damage = 12.5 - -/obj/item/projectile/bullet/pellet/Range() - ..() - damage += -0.75 - if(damage < 0) - qdel(src) - -/obj/item/projectile/bullet/pellet/weak - damage = 6 - -/obj/item/projectile/bullet/pellet/weak/New() - range = rand(1, 8) - ..() - -/obj/item/projectile/bullet/pellet/weak/on_range() - do_sparks(1, TRUE, src) - ..() - -/obj/item/projectile/bullet/pellet/overload - damage = 3 - -/obj/item/projectile/bullet/pellet/overload/New() - range = rand(1, 10) - ..() - -/obj/item/projectile/bullet/pellet/overload/on_hit(atom/target, blocked = 0) - ..() - explosion(target, 0, 0, 2) - -/obj/item/projectile/bullet/pellet/overload/on_range() - explosion(src, 0, 0, 2) - do_sparks(3, TRUE, src) - ..() - -/obj/item/projectile/bullet/midbullet - damage = 20 - stamina = 65 //two round bursts from the c20r knocks people down - - -/obj/item/projectile/bullet/midbullet2 - damage = 25 - -/obj/item/projectile/bullet/midbullet3 - damage = 30 - -/obj/item/projectile/bullet/midbullet3/hp - damage = 40 - armour_penetration = -50 - -/obj/item/projectile/bullet/midbullet3/ap - damage = 27 - armour_penetration = 40 - -/obj/item/projectile/bullet/midbullet3/fire/on_hit(atom/target, blocked = 0) - if(..(target, blocked)) - var/mob/living/M = target - M.adjust_fire_stacks(1) - M.IgniteMob() - -/obj/item/projectile/bullet/heavybullet - damage = 35 - -/obj/item/projectile/bullet/rpellet - damage = 3 - stamina = 25 - -/obj/item/projectile/bullet/stunshot //taser slugs for shotguns, nothing special - name = "stunshot" - damage = 5 - stun = 5 - weaken = 5 - stutter = 5 - jitter = 20 - range = 7 - icon_state = "spark" - color = "#FFFF00" - -/obj/item/projectile/bullet/incendiary/on_hit(atom/target, blocked = 0) - . = ..() - if(iscarbon(target)) - var/mob/living/carbon/M = target - M.adjust_fire_stacks(4) - M.IgniteMob() - - -/obj/item/projectile/bullet/incendiary/shell - name = "incendiary slug" - damage = 20 - -/obj/item/projectile/bullet/incendiary/shell/Move() - ..() - var/turf/location = get_turf(src) - if(location) - new /obj/effect/hotspot(location) - location.hotspot_expose(700, 50, 1) - -/obj/item/projectile/bullet/incendiary/shell/dragonsbreath - name = "dragonsbreath round" - damage = 5 - - -/obj/item/projectile/bullet/meteorshot - name = "meteor" - icon = 'icons/obj/meteor.dmi' - icon_state = "dust" - damage = 30 - weaken = 8 - stun = 8 - hitsound = 'sound/effects/meteorimpact.ogg' - -/obj/item/projectile/bullet/meteorshot/weak - damage = 10 - weaken = 4 - stun = 4 - -/obj/item/projectile/bullet/honker - damage = 0 - weaken = 3 - stun = 3 - forcedodge = 1 - nodamage = 1 - hitsound = 'sound/items/bikehorn.ogg' - icon = 'icons/obj/hydroponics/harvest.dmi' - icon_state = "banana" - range = 200 - -/obj/item/projectile/bullet/honker/New() - ..() - SpinAnimation() - -/obj/item/projectile/bullet/meteorshot/on_hit(atom/target, blocked = 0) - . = ..() - if(istype(target, /atom/movable)) - var/atom/movable/M = target - var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) - M.throw_at(throw_target, 3, 2) - -/obj/item/projectile/bullet/meteorshot/New() - ..() - SpinAnimation() - - -/obj/item/projectile/bullet/mime - damage = 20 - -/obj/item/projectile/bullet/mime/on_hit(atom/target, blocked = 0) - . = ..() - if(iscarbon(target)) - var/mob/living/carbon/M = target - M.silent = max(M.silent, 10) - - -/obj/item/projectile/bullet/dart - name = "dart" - icon_state = "cbbolt" - damage = 6 - var/piercing = FALSE - -/obj/item/projectile/bullet/dart/New() - ..() - create_reagents(50) - reagents.set_reacting(FALSE) - -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0) - if(iscarbon(target)) - var/mob/living/carbon/M = target - if(blocked != 100) // not completely blocked - if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. - ..() - reagents.reaction(M, INJECT) - reagents.trans_to(M, reagents.total_volume) - return TRUE - else - blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") - - ..(target, blocked) - reagents.set_reacting(TRUE) - reagents.handle_reactions() - return 1 - -/obj/item/projectile/bullet/dart/metalfoam/New() - ..() - reagents.add_reagent("aluminium", 15) - reagents.add_reagent("foaming_agent", 5) - reagents.add_reagent("facid", 5) - -//This one is for future syringe guns update -/obj/item/projectile/bullet/dart/syringe - name = "syringe" - icon_state = "syringeproj" - -/obj/item/projectile/bullet/neurotoxin - name = "neurotoxin spit" - icon_state = "neurotoxin" - damage = 5 - damage_type = TOX - weaken = 5 - -/obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = 0) - if(isalien(target)) - weaken = 0 - nodamage = 1 - . = ..() // Execute the rest of the code. - -/obj/item/projectile/bullet/dnainjector - name = "\improper DNA injector" - icon_state = "syringeproj" - var/obj/item/weapon/dnainjector/injector -/obj/item/projectile/bullet/dnainjector/on_hit(atom/target, blocked = 0) - if(iscarbon(target)) - var/mob/living/carbon/M = target - if(blocked != 100) - if(M.can_inject(null, FALSE, def_zone, FALSE)) - if(injector.inject(M, firer)) - QDEL_NULL(injector) - return TRUE - else - blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") - return ..() - -/obj/item/projectile/bullet/dnainjector/Destroy() - QDEL_NULL(injector) - return ..() - -//// SNIPER BULLETS - -/obj/item/projectile/bullet/sniper - speed = 0 //360 alwaysscope. - damage = 70 - stun = 5 - weaken = 5 - dismemberment = 50 - armour_penetration = 50 - var/breakthings = TRUE - -/obj/item/projectile/bullet/sniper/on_hit(atom/target, blocked = 0) - if((blocked != 100) && (!ismob(target) && breakthings)) - target.ex_act(rand(1,2)) - return ..() - +/obj/item/projectile/bullet/pellet + name = "pellet" + damage = 12.5 + +/obj/item/projectile/bullet/pellet/Range() + ..() + damage += -0.75 + if(damage < 0) + qdel(src) + +/obj/item/projectile/bullet/pellet/weak + damage = 6 + +/obj/item/projectile/bullet/pellet/weak/New() + range = rand(1, 8) + ..() + +/obj/item/projectile/bullet/pellet/weak/on_range() + do_sparks(1, TRUE, src) + ..() + +/obj/item/projectile/bullet/pellet/overload + damage = 3 + +/obj/item/projectile/bullet/pellet/overload/New() + range = rand(1, 10) + ..() + +/obj/item/projectile/bullet/pellet/overload/on_hit(atom/target, blocked = 0) + ..() + explosion(target, 0, 0, 2) + +/obj/item/projectile/bullet/pellet/overload/on_range() + explosion(src, 0, 0, 2) + do_sparks(3, TRUE, src) + ..() + +/obj/item/projectile/bullet/midbullet + damage = 20 + stamina = 65 //two round bursts from the c20r knocks people down + + +/obj/item/projectile/bullet/midbullet2 + damage = 25 + +/obj/item/projectile/bullet/midbullet3 + damage = 30 + +/obj/item/projectile/bullet/midbullet3/hp + damage = 40 + armour_penetration = -50 + +/obj/item/projectile/bullet/midbullet3/ap + damage = 27 + armour_penetration = 40 + +/obj/item/projectile/bullet/midbullet3/fire/on_hit(atom/target, blocked = 0) + if(..(target, blocked)) + var/mob/living/M = target + M.adjust_fire_stacks(1) + M.IgniteMob() + +/obj/item/projectile/bullet/heavybullet + damage = 35 + +/obj/item/projectile/bullet/rpellet + damage = 3 + stamina = 25 + +/obj/item/projectile/bullet/stunshot //taser slugs for shotguns, nothing special + name = "stunshot" + damage = 5 + knockdown = 100 + stutter = 5 + jitter = 20 + range = 7 + icon_state = "spark" + color = "#FFFF00" + +/obj/item/projectile/bullet/incendiary/on_hit(atom/target, blocked = 0) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(4) + M.IgniteMob() + + +/obj/item/projectile/bullet/incendiary/shell + name = "incendiary slug" + damage = 20 + +/obj/item/projectile/bullet/incendiary/shell/Move() + ..() + var/turf/location = get_turf(src) + if(location) + new /obj/effect/hotspot(location) + location.hotspot_expose(700, 50, 1) + +/obj/item/projectile/bullet/incendiary/shell/dragonsbreath + name = "dragonsbreath round" + damage = 5 + + +/obj/item/projectile/bullet/meteorshot + name = "meteor" + icon = 'icons/obj/meteor.dmi' + icon_state = "dust" + damage = 30 + knockdown = 160 + hitsound = 'sound/effects/meteorimpact.ogg' + +/obj/item/projectile/bullet/meteorshot/weak + damage = 10 + knockdown = 80 + +/obj/item/projectile/bullet/honker + damage = 0 + knockdown = 60 + forcedodge = 1 + nodamage = 1 + hitsound = 'sound/items/bikehorn.ogg' + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "banana" + range = 200 + +/obj/item/projectile/bullet/honker/New() + ..() + SpinAnimation() + +/obj/item/projectile/bullet/meteorshot/on_hit(atom/target, blocked = 0) + . = ..() + if(ismovableatom(target)) + var/atom/movable/M = target + var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) + M.throw_at(throw_target, 3, 2) + +/obj/item/projectile/bullet/meteorshot/New() + ..() + SpinAnimation() + + +/obj/item/projectile/bullet/mime + damage = 20 + +/obj/item/projectile/bullet/mime/on_hit(atom/target, blocked = 0) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.silent = max(M.silent, 10) + + +/obj/item/projectile/bullet/dart + name = "dart" + icon_state = "cbbolt" + damage = 6 + var/piercing = FALSE + +/obj/item/projectile/bullet/dart/New() + ..() + create_reagents(50) + reagents.set_reacting(FALSE) + +/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0) + if(iscarbon(target)) + var/mob/living/carbon/M = target + if(blocked != 100) // not completely blocked + if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. + ..() + reagents.reaction(M, INJECT) + reagents.trans_to(M, reagents.total_volume) + return TRUE + else + blocked = 100 + target.visible_message("\The [src] was deflected!", \ + "You were protected against \the [src]!") + + ..(target, blocked) + reagents.set_reacting(TRUE) + reagents.handle_reactions() + return 1 + +/obj/item/projectile/bullet/dart/metalfoam/New() + ..() + reagents.add_reagent("aluminium", 15) + reagents.add_reagent("foaming_agent", 5) + reagents.add_reagent("facid", 5) + +//This one is for future syringe guns update +/obj/item/projectile/bullet/dart/syringe + name = "syringe" + icon_state = "syringeproj" + +/obj/item/projectile/bullet/neurotoxin + name = "neurotoxin spit" + icon_state = "neurotoxin" + damage = 5 + damage_type = TOX + knockdown = 100 + +/obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = 0) + if(isalien(target)) + knockdown = 0 + nodamage = 1 + . = ..() // Execute the rest of the code. + +/obj/item/projectile/bullet/dnainjector + name = "\improper DNA injector" + icon_state = "syringeproj" + var/obj/item/weapon/dnainjector/injector + damage = 5 + hitsound_wall = "shatter" + +/obj/item/projectile/bullet/dnainjector/on_hit(atom/target, blocked = 0) + if(iscarbon(target)) + var/mob/living/carbon/M = target + if(blocked != 100) + if(M.can_inject(null, FALSE, def_zone, FALSE)) + if(injector.inject(M, firer)) + QDEL_NULL(injector) + return TRUE + else + blocked = 100 + target.visible_message("\The [src] was deflected!", \ + "You were protected against \the [src]!") + return ..() + +/obj/item/projectile/bullet/dnainjector/Destroy() + QDEL_NULL(injector) + return ..() + +//// SNIPER BULLETS + +/obj/item/projectile/bullet/sniper + speed = 0 //360 alwaysscope. + damage = 70 + knockdown = 100 + dismemberment = 50 + armour_penetration = 50 + var/breakthings = TRUE + +/obj/item/projectile/bullet/sniper/on_hit(atom/target, blocked = 0) + if((blocked != 100) && (!ismob(target) && breakthings)) + target.ex_act(rand(1,2)) + return ..() + /obj/item/projectile/bullet/sniper/gang damage = 55 - stun = 1 - weaken = 1 + knockdown = 20 dismemberment = 15 armour_penetration = 25 - + /obj/item/projectile/bullet/sniper/gang/sleeper nodamage = 1 - stun = 0 - weaken = 0 + knockdown = 0 dismemberment = 0 breakthings = FALSE @@ -298,92 +293,89 @@ var/mob/living/L = target L.blur_eyes(8) if(L.staminaloss >= 40) - L.Sleeping(20) + L.Sleeping(400) else L.adjustStaminaLoss(55) return 1 -/obj/item/projectile/bullet/sniper/soporific - armour_penetration = 0 - nodamage = 1 - stun = 0 - dismemberment = 0 - weaken = 0 - breakthings = FALSE - -/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0) - if((blocked != 100) && isliving(target)) - var/mob/living/L = target - L.Sleeping(20) - return ..() - - -/obj/item/projectile/bullet/sniper/haemorrhage - armour_penetration = 15 - damage = 15 - stun = 0 - dismemberment = 0 - weaken = 0 - breakthings = FALSE - -/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0) - if((blocked != 100) && iscarbon(target)) - var/mob/living/carbon/C = target - C.bleed(100) - return ..() - - -/obj/item/projectile/bullet/sniper/penetrator - icon_state = "gauss" - name = "penetrator round" - damage = 60 - forcedodge = 1 - dismemberment = 0 //It goes through you cleanly. - stun = 0 - weaken = 0 - breakthings = FALSE - - - -//// SAW BULLETS - - -/obj/item/projectile/bullet/saw - damage = 45 - armour_penetration = 5 - -/obj/item/projectile/bullet/saw/bleeding - damage = 20 - armour_penetration = 0 - -/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0) - . = ..() - if((blocked != 100) && iscarbon(target)) - var/mob/living/carbon/C = target - C.bleed(35) - -/obj/item/projectile/bullet/saw/hollow - damage = 60 - armour_penetration = -10 - -/obj/item/projectile/bullet/saw/ap - damage = 40 - armour_penetration = 75 - -/obj/item/projectile/bullet/saw/incen - damage = 7 - armour_penetration = 0 - -/obj/item/projectile/bullet/saw/incen/Move() - ..() - var/turf/location = get_turf(src) - if(location) - new /obj/effect/hotspot(location) - location.hotspot_expose(700, 50, 1) - -/obj/item/projectile/bullet/saw/incen/on_hit(atom/target, blocked = 0) - . = ..() - if(iscarbon(target)) - var/mob/living/carbon/M = target - M.adjust_fire_stacks(3) - M.IgniteMob() +/obj/item/projectile/bullet/sniper/soporific + armour_penetration = 0 + nodamage = 1 + dismemberment = 0 + knockdown = 0 + breakthings = FALSE + +/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0) + if((blocked != 100) && isliving(target)) + var/mob/living/L = target + L.Sleeping(400) + return ..() + + +/obj/item/projectile/bullet/sniper/haemorrhage + armour_penetration = 15 + damage = 15 + dismemberment = 0 + knockdown = 0 + breakthings = FALSE + +/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0) + if((blocked != 100) && iscarbon(target)) + var/mob/living/carbon/C = target + C.bleed(100) + return ..() + + +/obj/item/projectile/bullet/sniper/penetrator + icon_state = "gauss" + name = "penetrator round" + damage = 60 + forcedodge = 1 + dismemberment = 0 //It goes through you cleanly. + knockdown = 0 + breakthings = FALSE + + + +//// SAW BULLETS + + +/obj/item/projectile/bullet/saw + damage = 45 + armour_penetration = 5 + +/obj/item/projectile/bullet/saw/bleeding + damage = 20 + armour_penetration = 0 + +/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0) + . = ..() + if((blocked != 100) && iscarbon(target)) + var/mob/living/carbon/C = target + C.bleed(35) + +/obj/item/projectile/bullet/saw/hollow + damage = 60 + armour_penetration = -10 + +/obj/item/projectile/bullet/saw/ap + damage = 40 + armour_penetration = 75 + +/obj/item/projectile/bullet/saw/incen + damage = 7 + armour_penetration = 0 + +/obj/item/projectile/bullet/saw/incen/Move() + ..() + var/turf/location = get_turf(src) + if(location) + new /obj/effect/hotspot(location) + location.hotspot_expose(700, 50, 1) + +/obj/item/projectile/bullet/saw/incen/on_hit(atom/target, blocked = 0) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(3) + M.IgniteMob() diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index f82fcca3e3..a792a37c37 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -1,194 +1,193 @@ -/obj/item/projectile/energy - name = "energy" - icon_state = "spark" - damage = 0 - damage_type = BURN - flag = "energy" - +/obj/item/projectile/energy + name = "energy" + icon_state = "spark" + damage = 0 + damage_type = BURN + flag = "energy" + /obj/item/projectile/energy/chameleon nodamage = TRUE - -/obj/item/projectile/energy/electrode - name = "electrode" - icon_state = "spark" - color = "#FFFF00" - nodamage = 1 - stun = 5 - weaken = 5 - stutter = 5 - jitter = 20 - hitsound = 'sound/weapons/taserhit.ogg' - range = 7 - -/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = 0) - . = ..() - if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks! - do_sparks(1, TRUE, src) - else if(iscarbon(target)) - var/mob/living/carbon/C = target - if(C.dna && C.dna.check_mutation(HULK)) - C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - else if(C.status_flags & CANWEAKEN) - addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) - -/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet - do_sparks(1, TRUE, src) - ..() - -/obj/item/projectile/energy/net - name = "energy netting" - icon_state = "e_netting" - damage = 10 - damage_type = STAMINA - hitsound = 'sound/weapons/taserhit.ogg' - range = 10 - -/obj/item/projectile/energy/net/Initialize() + +/obj/item/projectile/energy/electrode + name = "electrode" + icon_state = "spark" + color = "#FFFF00" + nodamage = 1 + knockdown = 100 + stutter = 5 + jitter = 20 + hitsound = 'sound/weapons/taserhit.ogg' + range = 7 + +/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = 0) . = ..() - SpinAnimation() - -/obj/item/projectile/energy/net/on_hit(atom/target, blocked = 0) - if(isliving(target)) - var/turf/Tloc = get_turf(target) - if(!locate(/obj/effect/nettingportal) in Tloc) - new /obj/effect/nettingportal(Tloc) - ..() - -/obj/item/projectile/energy/net/on_range() - do_sparks(1, TRUE, src) - ..() - -/obj/effect/nettingportal - name = "DRAGnet teleportation field" - desc = "A field of bluespace energy, locking on to teleport a target." - icon = 'icons/effects/effects.dmi' - icon_state = "dragnetfield" + if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks! + do_sparks(1, TRUE, src) + else if(iscarbon(target)) + var/mob/living/carbon/C = target + if(C.dna && C.dna.check_mutation(HULK)) + C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) + else if(C.status_flags & CANKNOCKDOWN) + addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) + +/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet + do_sparks(1, TRUE, src) + ..() + +/obj/item/projectile/energy/net + name = "energy netting" + icon_state = "e_netting" + damage = 10 + damage_type = STAMINA + hitsound = 'sound/weapons/taserhit.ogg' + range = 10 + +/obj/item/projectile/energy/net/Initialize() + . = ..() + SpinAnimation() + +/obj/item/projectile/energy/net/on_hit(atom/target, blocked = 0) + if(isliving(target)) + var/turf/Tloc = get_turf(target) + if(!locate(/obj/effect/nettingportal) in Tloc) + new /obj/effect/nettingportal(Tloc) + ..() + +/obj/item/projectile/energy/net/on_range() + do_sparks(1, TRUE, src) + ..() + +/obj/effect/nettingportal + name = "DRAGnet teleportation field" + desc = "A field of bluespace energy, locking on to teleport a target." + icon = 'icons/effects/effects.dmi' + icon_state = "dragnetfield" light_range = 3 - anchored = 1 - -/obj/effect/nettingportal/Initialize() + anchored = 1 + +/obj/effect/nettingportal/Initialize() . = ..() - var/obj/item/device/radio/beacon/teletarget = null - for(var/obj/machinery/computer/teleporter/com in GLOB.machines) - if(com.target) - if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) - teletarget = com.target - - addtimer(CALLBACK(src, .proc/pop, teletarget), 30) - -/obj/effect/nettingportal/proc/pop(teletarget) - if(teletarget) - for(var/mob/living/L in get_turf(src)) - do_teleport(L, teletarget, 2)//teleport what's in the tile to the beacon - else - for(var/mob/living/L in get_turf(src)) - do_teleport(L, L, 15) //Otherwise it just warps you off somewhere. - - qdel(src) - - -/obj/item/projectile/energy/trap - name = "energy snare" - icon_state = "e_snare" - nodamage = 1 - weaken = 1 - hitsound = 'sound/weapons/taserhit.ogg' - range = 4 - -/obj/item/projectile/energy/trap/on_hit(atom/target, blocked = 0) - if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - drop a trap - new/obj/item/weapon/restraints/legcuffs/beartrap/energy(get_turf(loc)) - else if(iscarbon(target)) - var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy(get_turf(target)) - B.Crossed(target) - ..() - -/obj/item/projectile/energy/trap/on_range() - new /obj/item/weapon/restraints/legcuffs/beartrap/energy(loc) - ..() - -/obj/item/projectile/energy/trap/cyborg - name = "Energy Bola" - icon_state = "e_snare" - nodamage = 1 - weaken = 0 - hitsound = 'sound/weapons/taserhit.ogg' - range = 10 - -/obj/item/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = 0) - if(!ismob(target) || blocked >= 100) - do_sparks(1, TRUE, src) - qdel(src) - if(iscarbon(target)) - var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(target)) - B.Crossed(target) - QDEL_IN(src, 10) - ..() - -/obj/item/projectile/energy/trap/cyborg/on_range() - do_sparks(1, TRUE, src) - qdel(src) - -/obj/item/projectile/energy/declone - name = "radiation beam" - icon_state = "declone" - damage = 20 - damage_type = CLONE - irradiate = 10 + var/obj/item/device/radio/beacon/teletarget = null + for(var/obj/machinery/computer/teleporter/com in GLOB.machines) + if(com.target) + if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) + teletarget = com.target + + addtimer(CALLBACK(src, .proc/pop, teletarget), 30) + +/obj/effect/nettingportal/proc/pop(teletarget) + if(teletarget) + for(var/mob/living/L in get_turf(src)) + do_teleport(L, teletarget, 2)//teleport what's in the tile to the beacon + else + for(var/mob/living/L in get_turf(src)) + do_teleport(L, L, 15) //Otherwise it just warps you off somewhere. + + qdel(src) + + +/obj/item/projectile/energy/trap + name = "energy snare" + icon_state = "e_snare" + nodamage = 1 + knockdown = 20 + hitsound = 'sound/weapons/taserhit.ogg' + range = 4 + +/obj/item/projectile/energy/trap/on_hit(atom/target, blocked = 0) + if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - drop a trap + new/obj/item/weapon/restraints/legcuffs/beartrap/energy(get_turf(loc)) + else if(iscarbon(target)) + var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy(get_turf(target)) + B.Crossed(target) + ..() + +/obj/item/projectile/energy/trap/on_range() + new /obj/item/weapon/restraints/legcuffs/beartrap/energy(loc) + ..() + +/obj/item/projectile/energy/trap/cyborg + name = "Energy Bola" + icon_state = "e_snare" + nodamage = 1 + knockdown = 0 + hitsound = 'sound/weapons/taserhit.ogg' + range = 10 + +/obj/item/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = 0) + if(!ismob(target) || blocked >= 100) + do_sparks(1, TRUE, src) + qdel(src) + if(iscarbon(target)) + var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(target)) + B.Crossed(target) + QDEL_IN(src, 10) + ..() + +/obj/item/projectile/energy/trap/cyborg/on_range() + do_sparks(1, TRUE, src) + qdel(src) + +/obj/item/projectile/energy/declone + name = "radiation beam" + icon_state = "declone" + damage = 20 + damage_type = CLONE + irradiate = 10 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser - -/obj/item/projectile/energy/dart //ninja throwing dart - name = "dart" - icon_state = "toxin" - damage = 5 - damage_type = TOX - weaken = 5 - range = 7 - -/obj/item/projectile/energy/bolt //ebow bolts - name = "bolt" - icon_state = "cbbolt" - damage = 8 - damage_type = TOX - nodamage = 0 - weaken = 5 - stutter = 5 - -/obj/item/projectile/energy/bolt/halloween - name = "candy corn" - icon_state = "candy_corn" - -/obj/item/projectile/energy/bolt/large - damage = 20 - + +/obj/item/projectile/energy/dart //ninja throwing dart + name = "dart" + icon_state = "toxin" + damage = 5 + damage_type = TOX + knockdown = 100 + range = 7 + +/obj/item/projectile/energy/bolt //ebow bolts + name = "bolt" + icon_state = "cbbolt" + damage = 8 + damage_type = TOX + nodamage = 0 + knockdown = 100 + stutter = 5 + +/obj/item/projectile/energy/bolt/halloween + name = "candy corn" + icon_state = "candy_corn" + +/obj/item/projectile/energy/bolt/large + damage = 20 + /obj/item/projectile/energy/tesla - name = "tesla bolt" - icon_state = "tesla_projectile" + name = "tesla bolt" + icon_state = "tesla_projectile" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser - var/chain - + var/chain + /obj/item/projectile/energy/tesla/fire(setAngle) - if(firer) - chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) - ..() - + if(firer) + chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) + ..() + /obj/item/projectile/energy/tesla/Destroy() - qdel(chain) - return ..() - + qdel(chain) + return ..() + /obj/item/projectile/energy/tesla/revolver name = "energy orb" - + /obj/item/projectile/energy/tesla/revolver/on_hit(atom/target) . = ..() if(isliving(target)) tesla_zap(target, 3, 10000) qdel(src) - + /obj/item/projectile/energy/tesla/cannon name = "tesla orb" - + /obj/item/projectile/energy/tesla/cannon/on_hit(atom/target) - . = ..() + . = ..() tesla_zap(target, 3, 10000, explosive = FALSE, stun_mobs = FALSE) - qdel(src) + qdel(src) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 05bdd7da3f..769dbaad1f 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -277,6 +277,8 @@ to_chat(new_mob, "Your form morphs into that of a [randomize].") + to_chat(new_mob, config.policies["polymorph"]) + qdel(M) return new_mob @@ -292,7 +294,7 @@ ..() /atom/proc/animate_atom_living(var/mob/living/owner = null) - if((istype(src, /obj/item) || istype(src, /obj/structure)) && !is_type_in_list(src, GLOB.protected_objects)) + if((isitem(src) || istype(src, /obj/structure)) && !is_type_in_list(src, GLOB.protected_objects)) if(istype(src, /obj/structure/statue/petrified)) var/obj/structure/statue/petrified/P = src if(P.petrified_mob) @@ -412,3 +414,9 @@ exp_light = -1 exp_flash = 4 exp_fire= 5 + +/obj/item/projectile/magic/aoe/fireball/infernal/on_hit(target) + . = ..() + var/turf/T = get_turf(target) + for(var/i=0, i<50, i+=10) + addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) diff --git a/code/modules/projectiles/projectile/plasma.dm b/code/modules/projectiles/projectile/plasma.dm index b5d8958f64..2177b0fd51 100644 --- a/code/modules/projectiles/projectile/plasma.dm +++ b/code/modules/projectiles/projectile/plasma.dm @@ -2,7 +2,7 @@ obj/item/projectile/energy/plasmabolt icon = 'icons/obj/VGProjectile.dmi' name = "plasma bolt" icon_state = "plasma" - weaken = 0 + knockdown = 0 flag = "energy" damage_type = BURN hitsound = 'sound/weapons/sear.ogg' @@ -14,17 +14,17 @@ obj/item/projectile/energy/plasmabolt damage = 35 icon_state = "plasma2" irradiate = 20 - weaken = 3 + knockdown = 60 /obj/item/projectile/energy/plasmabolt/rifle damage = 50 icon_state = "plasma3" irradiate = 35 - weaken = 5 + knockdown = 120 /obj/item/projectile/energy/plasmabolt/MP40k damage = 35 eyeblur = 4 irradiate = 25 - weaken = 4 + knockdown = 100 icon_state = "plasma3" \ No newline at end of file diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 867d1b8c8f..e6ee7af2c6 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -59,7 +59,7 @@ if(istype(target, /obj/mecha)) var/obj/mecha/M = target M.take_damage(anti_armour_damage) - if(istype(target, /mob/living/silicon)) + if(issilicon(target)) var/mob/living/silicon/S = target S.take_overall_damage(anti_armour_damage*0.75, anti_armour_damage*0.25) return 1 @@ -183,12 +183,12 @@ return ..() if(!gun) qdel(src) - gun.create_portal(src) + gun.create_portal(src, get_turf(src)) /obj/item/projectile/bullet/frag12 name ="explosive slug" damage = 25 - weaken = 5 + knockdown = 50 /obj/item/projectile/bullet/frag12/on_hit(atom/target, blocked = 0) ..() @@ -199,23 +199,20 @@ name = "plasma blast" icon_state = "plasmacutter" damage_type = BRUTE - damage = 5 - range = 3.5 //works as 4, but doubles to 7 + damage = 20 + range = 4 dismemberment = 20 impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser - var/mine_range = 3 //mines this many additional tiles + var/pressure_decrease_active = FALSE + var/pressure_decrease = 0.25 + var/mine_range = 3 //mines this many additional tiles of rock /obj/item/projectile/plasma/Initialize() . = ..() - var/turf/proj_turf = get_turf(src) - if(!isturf(proj_turf)) - return - var/datum/gas_mixture/environment = proj_turf.return_air() - if(environment) - var/pressure = environment.return_pressure() - if(pressure < 60) - name = "full strength [name]" - damage *= 4 + if(!lavaland_equipment_pressure_check(get_turf(src))) + name = "weakened [name]" + damage = damage * pressure_decrease + pressure_decrease_active = TRUE /obj/item/projectile/plasma/on_hit(atom/target) . = ..() @@ -229,19 +226,19 @@ return -1 /obj/item/projectile/plasma/adv - damage = 7 + damage = 28 range = 5 mine_range = 5 /obj/item/projectile/plasma/adv/mech - damage = 10 + damage = 40 range = 9 mine_range = 3 /obj/item/projectile/plasma/turret //Between normal and advanced for damage, made a beam so not the turret does not destroy glass name = "plasma beam" - damage = 6 + damage = 24 range = 7 pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index fb67439c7c..8d2bd6002f 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -452,21 +452,21 @@ return 1 /datum/reagents/proc/check_ignoreslow(mob/M) - if(istype(M, /mob)) + if(ismob(M)) if(M.reagents.has_reagent("morphine")) return 1 else M.status_flags &= ~IGNORESLOWDOWN /datum/reagents/proc/check_gofast(mob/M) - if(istype(M, /mob)) + if(ismob(M)) if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")||M.reagents.has_reagent("stimulants")||M.reagents.has_reagent("ephedrine")) return 1 else M.status_flags &= ~GOTTAGOFAST /datum/reagents/proc/check_goreallyfast(mob/M) - if(istype(M, /mob)) + if(ismob(M)) if(M.reagents.has_reagent("methamphetamine")) return 1 else diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 9019bceec4..244b7e2c59 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -68,6 +68,7 @@ recharged -= 1 /obj/machinery/chem_dispenser/proc/recharge() + if(stat & (BROKEN|NOPOWER)) return var/usedpower = cell.give( 1 / powerefficiency) //Should always be a gain of one on the UI. if(usedpower) use_power(2500) @@ -212,7 +213,6 @@ visible_message(" The [src] malfunctions, spraying chemicals everywhere!") ..() - /obj/machinery/chem_dispenser/constructable name = "portable chem dispenser" icon = 'icons/obj/chemical.dmi' diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 3cc5eb3d33..863a0994a2 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -13,8 +13,8 @@ var/operating = FALSE var/obj/item/weapon/reagent_containers/beaker = null var/limit = 10 - var/list/blend_items = list ( + var/static/list/blend_items = list( //Sheets /obj/item/stack/sheet/mineral/plasma = list("plasma" = 20), /obj/item/stack/sheet/metal = list("iron" = 20), @@ -31,7 +31,6 @@ /obj/item/weapon/grown/nettle/basic = list("sacid" = 0), /obj/item/weapon/grown/nettle/death = list("facid" = 0, "sacid" = 0), /obj/item/weapon/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), - //Blender Stuff /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0), @@ -42,25 +41,19 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0), /obj/item/weapon/reagent_containers/food/snacks/egg = list("eggyolk" = -5), - //Grinder stuff, but only if dry /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0), - - //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! /obj/item/slime_extract = list(), /obj/item/weapon/reagent_containers/pill = list(), /obj/item/weapon/reagent_containers/food = list(), /obj/item/weapon/reagent_containers/honeycomb = list(), - /obj/item/toy/crayon = list() - - ) - - var/list/juice_items = list ( + /obj/item/toy/crayon = list()) + var/static/list/juice_items = list( //Juicer Stuff /obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0), @@ -78,16 +71,14 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0), - ) + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0)) - var/list/dried_items = list( + var/static/list/dried_items = list( //Grinder stuff, but only if dry, /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0) - ) + /obj/item/weapon/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0)) var/list/holdingitems = list() @@ -97,9 +88,7 @@ beaker.desc += " May contain blended dust. Don't breathe this in!" /obj/machinery/reagentgrinder/Destroy() - if(beaker) - qdel(beaker) - beaker = null + QDEL_NULL(beaker) return ..() /obj/machinery/reagentgrinder/contents_explosion(severity, target) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 31ec27fb79..85729df022 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -114,9 +114,10 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) M.Jitter(5) - return ..() + ..() + . = 1 /datum/reagent/consumable/ethanol/whiskey name = "Whiskey" @@ -145,7 +146,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M) M.drowsyness = max(0,M.drowsyness-7) - M.AdjustSleeping(-2) + M.AdjustSleeping(-40) if (M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) @@ -529,7 +530,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." /datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M) - M.Stun(2, 0) + M.Stun(40, 0) return ..() /datum/reagent/consumable/ethanol/irish_cream @@ -1111,10 +1112,10 @@ All effects don't start immediately, but rather get worse over time; the rate is M.slurring += 3 switch(current_cycle) if(51 to 200) - M.Sleeping(5, 0) + M.Sleeping(100, FALSE) . = 1 if(201 to INFINITY) - M.AdjustSleeping(2, 0) + M.AdjustSleeping(40, FALSE) M.adjustToxLoss(2, 0) . = 1 ..() @@ -1159,7 +1160,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A drink that is guaranteed to knock you silly." /datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M) - M.Weaken(3, 1, 0) + M.Knockdown(60, 1, 0) M.dizziness +=6 switch(current_cycle) if(15 to 45) diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 85f11b8b57..a3db8f7bc2 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -274,7 +274,7 @@ /datum/reagent/consumable/coffee/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT)) if(holder.has_reagent("frostoil")) @@ -297,7 +297,7 @@ M.dizziness = max(0,M.dizziness-2) M.drowsyness = max(0,M.drowsyness-1) M.jitteriness = max(0,M.jitteriness-3) - M.AdjustSleeping(-1, 0) + M.AdjustSleeping(-20, FALSE) if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1, 0) if (M.bodytemperature < 310) //310 is the normal bodytemp. 310.055 @@ -336,7 +336,7 @@ /datum/reagent/consumable/icecoffee/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) @@ -357,7 +357,7 @@ /datum/reagent/consumable/icetea/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-2) M.drowsyness = max(0,M.drowsyness-1) - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1, 0) if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055 @@ -396,7 +396,7 @@ M.set_drugginess(30) M.dizziness +=5 M.drowsyness = 0 - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) M.status_flags |= GOTTAGOFAST if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) @@ -415,7 +415,7 @@ /datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/M) M.drowsyness = max(0,M.drowsyness-7) - M.AdjustSleeping(-1, 0) + M.AdjustSleeping(-20, FALSE) if (M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) @@ -529,7 +529,7 @@ /datum/reagent/consumable/tonic/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.AdjustSleeping(-2, 0) + M.AdjustSleeping(-40, FALSE) if (M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) ..() @@ -563,7 +563,7 @@ /datum/reagent/consumable/soy_latte/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.SetSleeping(0, 0) + M.SetSleeping(0, FALSE) if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) @@ -585,7 +585,7 @@ /datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) - M.SetSleeping(0, 0) + M.SetSleeping(0, FALSE) if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 19bfd20fee..79c7187d8d 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -42,9 +42,9 @@ if(prob(1)) var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") to_chat(M, "[smoke_message]") - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) + M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-0.5*REM, 0) ..() . = 1 @@ -67,12 +67,12 @@ addiction_threshold = 10 /datum/reagent/drug/crank/on_mob_life(mob/living/M) - var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.") if(prob(5)) + var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.") to_chat(M, "[high_message]") - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) + M.AdjustUnconscious(-20, 0) ..() . = 1 @@ -169,9 +169,9 @@ var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") if(prob(5)) to_chat(M, "[high_message]") - M.AdjustParalysis(-2, 0) - M.AdjustStunned(-2, 0) - M.AdjustWeakened(-2, 0) + M.AdjustStun(-40, 0) + M.AdjustKnockdown(-40, 0) + M.AdjustUnconscious(-40, 0) M.adjustStaminaLoss(-2, 0) M.status_flags |= GOTTAGOREALLYFAST M.Jitter(2) @@ -182,7 +182,7 @@ . = 1 /datum/reagent/drug/methamphetamine/overdose_process(mob/living/M) - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i in 1 to 4) step(M, pick(GLOB.cardinal)) if(prob(20)) @@ -211,7 +211,7 @@ ..() /datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M) - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 4, i++) step(M, pick(GLOB.cardinal)) M.Jitter(15) @@ -221,7 +221,7 @@ ..() /datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M) - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinal)) M.Jitter(20) @@ -247,14 +247,14 @@ var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.") if(prob(5)) to_chat(M, "[high_message]") - M.AdjustParalysis(-3, 0) - M.AdjustStunned(-3, 0) - M.AdjustWeakened(-3, 0) + M.AdjustStun(-60, 0) + M.AdjustKnockdown(-60, 0) + M.AdjustUnconscious(-60, 0) M.adjustStaminaLoss(-5, 0) M.adjustBrainLoss(0.5) M.adjustToxLoss(0.1, 0) M.hallucination += 10 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) step(M, pick(GLOB.cardinal)) step(M, pick(GLOB.cardinal)) ..() @@ -262,7 +262,7 @@ /datum/reagent/drug/bath_salts/overdose_process(mob/living/M) M.hallucination += 10 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i in 1 to 8) step(M, pick(GLOB.cardinal)) if(prob(20)) @@ -275,7 +275,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage1(mob/living/M) M.hallucination += 10 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinal)) M.Jitter(5) @@ -286,7 +286,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M) M.hallucination += 20 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinal)) M.Jitter(10) @@ -298,7 +298,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M) M.hallucination += 30 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 12, i++) step(M, pick(GLOB.cardinal)) M.Jitter(15) @@ -310,7 +310,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M) M.hallucination += 40 - if(M.canmove && !istype(M.loc, /atom/movable)) + if(M.canmove && !ismovableatom(M.loc)) for(var/i = 0, i < 16, i++) step(M, pick(GLOB.cardinal)) M.Jitter(50) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index f0db6e5dba..1fae98e2f3 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -97,11 +97,11 @@ /datum/reagent/consumable/sugar/overdose_start(mob/living/M) to_chat(M, "You go into hyperglycaemic shock! Lay off the twinkies!") - M.AdjustSleeping(30, 0) + M.AdjustSleeping(600, FALSE) . = 1 /datum/reagent/consumable/sugar/overdose_process(mob/living/M) - M.AdjustSleeping(3, 0) + M.AdjustSleeping(40, FALSE) ..() . = 1 @@ -255,7 +255,7 @@ victim.blind_eyes(2) victim.confused = max(M.confused, 3) victim.damageoverlaytemp = 60 - victim.Weaken(3) + victim.Knockdown(60) victim.drop_item() return else if ( eyes_covered ) // Eye cover is better than mouth cover @@ -269,7 +269,7 @@ victim.blind_eyes(3) victim.confused = max(M.confused, 6) victim.damageoverlaytemp = 75 - victim.Weaken(5) + victim.Knockdown(100) victim.drop_item() victim.update_damage_hud() @@ -582,7 +582,7 @@ /datum/reagent/consumable/entpoly/on_mob_life(mob/living/M) if(current_cycle >= 10) - M.Paralyse(2, 0) + M.Unconscious(40, 0) . = 1 if(prob(20)) M.losebreath += 4 diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 6d38e85ca8..a59af94aee 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -47,9 +47,9 @@ M.disabilities = 0 M.set_blurriness(0) M.set_blindness(0) - M.SetWeakened(0, 0) - M.SetStunned(0, 0) - M.SetParalysis(0, 0) + M.SetKnockdown(0, 0) + M.SetStun(0, 0) + M.SetUnconscious(0, 0) M.silent = 0 M.dizziness = 0 M.drowsyness = 0 @@ -82,9 +82,9 @@ /datum/reagent/medicine/synaptizine/on_mob_life(mob/living/M) M.drowsyness = max(M.drowsyness-5, 0) - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) + M.AdjustUnconscious(-20, 0) if(holder.has_reagent("mindbreaker")) holder.remove_reagent("mindbreaker", 5) M.hallucination = max(0, M.hallucination - 10) @@ -546,9 +546,9 @@ /datum/reagent/medicine/ephedrine/on_mob_life(mob/living/M) M.status_flags |= GOTTAGOFAST - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) + M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-1*REM, 0) ..() . = 1 @@ -621,7 +621,7 @@ if(12 to 24) M.drowsyness += 1 if(24 to INFINITY) - M.Sleeping(2, 0) + M.Sleeping(40, 0) . = 1 ..() @@ -686,6 +686,9 @@ taste_description = "dull toxin" /datum/reagent/medicine/oculine/on_mob_life(mob/living/M) + var/obj/item/organ/eyes/eyes = M.getorganslot("eyes_sight") + if (!eyes) + return if(M.disabilities & BLIND) if(prob(20)) to_chat(M, "Your vision slowly returns...") @@ -697,11 +700,10 @@ to_chat(M, "The blackness in your peripheral vision fades.") M.cure_nearsighted() M.blur_eyes(10) - else if(M.eye_blind || M.eye_blurry) M.set_blindness(0) M.set_blurriness(0) - else if(M.eye_damage > 0) + else if(eyes.eye_damage > 0) M.adjust_eye_damage(-1) ..() @@ -757,9 +759,9 @@ M.adjustStaminaLoss(-0.5*REM, 0) . = 1 if(prob(20)) - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) + M.AdjustUnconscious(-20, 0) ..() /datum/reagent/medicine/epinephrine/overdose_process(mob/living/M) @@ -864,9 +866,9 @@ M.adjustToxLoss(-1*REM, 0) M.adjustBruteLoss(-1*REM, 0) M.adjustFireLoss(-1*REM, 0) - M.AdjustParalysis(-3, 0) - M.AdjustStunned(-3, 0) - M.AdjustWeakened(-3, 0) + M.AdjustStun(-60, 0) + M.AdjustKnockdown(-60, 0) + M.AdjustUnconscious(-60, 0) M.adjustStaminaLoss(-5*REM, 0) ..() . = 1 @@ -888,8 +890,7 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM /datum/reagent/medicine/insulin/on_mob_life(mob/living/M) - if(M.sleeping) - M.AdjustSleeping(-1, 0) + if(M.AdjustSleeping(-20, FALSE)) . = 1 M.reagents.remove_reagent("sugar", 3) ..() @@ -1102,9 +1103,9 @@ overdose_threshold = 30 /datum/reagent/medicine/changelingAdrenaline/on_mob_life(mob/living/M as mob) - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-1, 0) - M.AdjustWeakened(-1, 0) + M.AdjustUnconscious(-20, 0) + M.AdjustStun(-20, 0) + M.AdjustKnockdown(-20, 0) M.adjustStaminaLoss(-1, 0) . = 1 ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index f3cc8b8620..cbb3802458 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -247,9 +247,9 @@ /datum/reagent/fuel/unholywater/on_mob_life(mob/living/M) if(iscultist(M)) M.drowsyness = max(M.drowsyness-5, 0) - M.AdjustParalysis(-1, 0) - M.AdjustStunned(-2, 0) - M.AdjustWeakened(-2, 0) + M.AdjustUnconscious(-20, 0) + M.AdjustStun(-40, 0) + M.AdjustKnockdown(-40, 0) M.adjustToxLoss(-2, 0) M.adjustOxyLoss(-2, 0) M.adjustBruteLoss(-2, 0) @@ -363,8 +363,8 @@ if(method == INGEST) if(show_message) to_chat(M, "That tasted horrible.") - M.AdjustStunned(2) - M.AdjustWeakened(2) + M.AdjustStun(40) + M.AdjustKnockdown(40) ..() @@ -410,7 +410,7 @@ return to_chat(H, "You crumple in agony as your flesh wildly morphs into new forms!") H.visible_message("[H] falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN. - H.Weaken(3, 0) + H.Knockdown(60, 0) addtimer(CALLBACK(src, .proc/mutate, H), 30) return diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 4ac608e680..f7640fd8e3 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -165,7 +165,7 @@ /datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M) M.status_flags |= FAKEDEATH M.adjustOxyLoss(0.5*REM, 0) - M.Weaken(5, 0) + M.Knockdown(100, 0) M.silent = max(M.silent, 5) M.tod = worldtime2text() ..() @@ -275,10 +275,10 @@ M.confused += 2 M.drowsyness += 2 if(10 to 50) - M.Sleeping(2, 0) + M.Sleeping(40, 0) . = 1 if(51 to INFINITY) - M.Sleeping(2, 0) + M.Sleeping(40, 0) M.adjustToxLoss((current_cycle - 50)*REM, 0) . = 1 ..() @@ -294,7 +294,7 @@ M.confused += 1 M.drowsyness += 1 if(20 to INFINITY) - M.Sleeping(2, 0) + M.Sleeping(40, 0) ..() /datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots @@ -311,9 +311,9 @@ /datum/reagent/toxin/beer2/on_mob_life(mob/living/M) switch(current_cycle) if(1 to 50) - M.Sleeping(2, 0) + M.Sleeping(40, 0) if(51 to INFINITY) - M.Sleeping(2, 0) + M.Sleeping(40, 0) M.adjustToxLoss((current_cycle - 50)*REM, 0) return ..() @@ -456,7 +456,7 @@ M.adjustToxLoss(1*REM, 0) . = 1 if(current_cycle >= 18) - M.Sleeping(2, 0) + M.Sleeping(40, 0) . = 1 ..() @@ -474,7 +474,7 @@ M.losebreath += 1 if(prob(8)) to_chat(M, "You feel horrendously weak!") - M.Stun(2, 0) + M.Stun(40, 0) M.adjustToxLoss(2*REM, 0) return ..() @@ -534,8 +534,7 @@ var/picked_option = rand(1,3) switch(picked_option) if(1) - M.Stun(3, 0) - M.Weaken(3, 0) + M.Knockdown(60, 0) . = 1 if(2) M.losebreath += 10 @@ -566,7 +565,7 @@ /datum/reagent/toxin/pancuronium/on_mob_life(mob/living/M) if(current_cycle >= 10) - M.Paralyse(2, 0) + M.Stun(40, 0) . = 1 if(prob(20)) M.losebreath += 4 @@ -583,7 +582,7 @@ /datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/M) if(current_cycle >= 10) - M.Sleeping(2, 0) + M.Sleeping(40, 0) M.adjustStaminaLoss(10*REM, 0) ..() . = 1 @@ -599,7 +598,7 @@ /datum/reagent/toxin/sulfonal/on_mob_life(mob/living/M) if(current_cycle >= 22) - M.Sleeping(2, 0) + M.Sleeping(40, 0) return ..() /datum/reagent/toxin/amanitin @@ -686,7 +685,7 @@ /datum/reagent/toxin/curare/on_mob_life(mob/living/M) if(current_cycle >= 11) - M.Weaken(3, 0) + M.Knockdown(60, 0) M.adjustOxyLoss(1*REM, 0) . = 1 ..() @@ -814,7 +813,7 @@ C.acid_act(acidpwr, reac_volume) /datum/reagent/toxin/acid/reaction_obj(obj/O, reac_volume) - if(istype(O.loc, /mob)) //handled in human acid_act() + if(ismob(O.loc)) //handled in human acid_act() return reac_volume = round(reac_volume,0.1) O.acid_act(acidpwr, reac_volume) @@ -887,7 +886,7 @@ holder.remove_reagent(id, actual_metaboliztion_rate * M.metabolism_efficiency) M.adjustToxLoss(actual_toxpwr*REM, 0) if(prob(10)) - M.Weaken(1, 0) + M.Knockdown(20, 0) . = 1 ..() diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 6cfdd80cf5..dc361467a7 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -74,7 +74,7 @@ for(var/mob/living/carbon/C in get_hearers_in_view(round(created_volume/48,1),get_turf(holder.my_atom))) if(iscultist(C)) to_chat(C, "The divine explosion sears you!") - C.Weaken(2) + C.Knockdown(40) C.adjust_fire_stacks(5) C.IgniteMob() ..() @@ -221,9 +221,9 @@ for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) if(C.flash_act()) if(get_dist(C, location) < 4) - C.Weaken(5) + C.Knockdown(60) else - C.Stun(5) + C.Stun(100) holder.remove_reagent("flash_powder", created_volume*3) /datum/chemical_reaction/flash_powder_flash @@ -238,9 +238,9 @@ for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) if(C.flash_act()) if(get_dist(C, location) < 4) - C.Weaken(5) + C.Knockdown(60) else - C.Stun(5) + C.Stun(100) /datum/chemical_reaction/smoke_powder name = "smoke_powder" @@ -296,7 +296,7 @@ var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) - C.soundbang_act(1, 5, rand(0, 5)) + C.soundbang_act(1, 100, rand(0, 5)) /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" @@ -308,7 +308,7 @@ var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - C.soundbang_act(1, 5, rand(0, 5)) + C.soundbang_act(1, 100, rand(0, 5)) /datum/chemical_reaction/phlogiston name = "phlogiston" diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 11b38d1e65..ac3152ddfd 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -1,129 +1,129 @@ -/obj/item/weapon/reagent_containers - name = "Container" - desc = "..." - icon = 'icons/obj/chemical.dmi' - icon_state = null - w_class = WEIGHT_CLASS_TINY - var/amount_per_transfer_from_this = 5 - var/list/possible_transfer_amounts = list(5,10,15,20,25,30) - var/volume = 30 - var/list/list_reagents = null - var/spawned_disease = null - var/disease_amount = 20 - var/spillable = 0 - +/obj/item/weapon/reagent_containers + name = "Container" + desc = "..." + icon = 'icons/obj/chemical.dmi' + icon_state = null + w_class = WEIGHT_CLASS_TINY + var/amount_per_transfer_from_this = 5 + var/list/possible_transfer_amounts = list(5,10,15,20,25,30) + var/volume = 30 + var/list/list_reagents = null + var/spawned_disease = null + var/disease_amount = 20 + var/spillable = 0 + /obj/item/weapon/reagent_containers/Initialize(mapload, vol) . = ..() if(isnum(vol) && vol > 0) - volume = vol - create_reagents(volume) - if(spawned_disease) - var/datum/disease/F = new spawned_disease(0) - var/list/data = list("viruses"= list(F)) - reagents.add_reagent("blood", disease_amount, data) - - add_initial_reagents() - -/obj/item/weapon/reagent_containers/proc/add_initial_reagents() - if(list_reagents) - reagents.add_reagent_list(list_reagents) - -/obj/item/weapon/reagent_containers/attack_self(mob/user) - if(possible_transfer_amounts.len) - var/i=0 - for(var/A in possible_transfer_amounts) - i++ - if(A == amount_per_transfer_from_this) - if(i[src]'s transfer amount is now [amount_per_transfer_from_this] units.") - return - -/obj/item/weapon/reagent_containers/attack(mob/M, mob/user, def_zone) - if(user.a_intent == INTENT_HARM) - return ..() - -/obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag) - return - -/obj/item/weapon/reagent_containers/proc/reagentlist(obj/item/weapon/reagent_containers/snack) //Attack logs for regents in pills - var/data - if(snack.reagents.reagent_list && snack.reagents.reagent_list.len) //find a reagent list if there is and check if it has entries - for (var/datum/reagent/R in snack.reagents.reagent_list) //no reagents will be left behind - data += "[R.id]([R.volume] units); " //Using IDs because SOME chemicals(I'm looking at you, chlorhydrate-beer) have the same names as other chemicals. - return data - else return "No reagents" - -/obj/item/weapon/reagent_containers/proc/canconsume(mob/eater, mob/user) - if(!iscarbon(eater)) - return 0 - var/mob/living/carbon/C = eater - var/covered = "" - if(C.is_mouth_covered(head_only = 1)) - covered = "headgear" - else if(C.is_mouth_covered(mask_only = 1)) - covered = "mask" - if(covered) - var/who = (isnull(user) || eater == user) ? "your" : "[eater.p_their()]" - to_chat(user, "You have to remove [who] [covered] first!") - return 0 - return 1 - -/obj/item/weapon/reagent_containers/ex_act() - if(reagents) - for(var/datum/reagent/R in reagents.reagent_list) - R.on_ex_act() - if(!QDELETED(src)) - ..() - -/obj/item/weapon/reagent_containers/fire_act(exposed_temperature, exposed_volume) - reagents.chem_temp += 30 - reagents.handle_reactions() - ..() - -/obj/item/weapon/reagent_containers/throw_impact(atom/target) - . = ..() - SplashReagents(target, TRUE) - -/obj/item/weapon/reagent_containers/proc/SplashReagents(atom/target, thrown = FALSE) - if(!reagents || !reagents.total_volume || !spillable) - return - - if(ismob(target) && target.reagents) - if(thrown) - reagents.total_volume *= rand(5,10) * 0.1 //Not all of it makes contact with the target - var/mob/M = target - var/R - target.visible_message("[M] has been splashed with something!", \ - "[M] has been splashed with something!") - for(var/datum/reagent/A in reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - - if(thrownby) - add_logs(thrownby, M, "splashed", R) - reagents.reaction(target, TOUCH) - - else if((target.CanPass(src, get_turf(src))) && thrown && thrownby && thrownby.mind && thrownby.mind.assigned_role == "Bartender") - visible_message("[src] lands onto the [target.name] without spilling a single drop.") - return - - else - if(isturf(target) && reagents.reagent_list.len && thrownby) - add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") - log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [COORD(target)].") - message_admins("[key_name_admin(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") - visible_message("[src] spills its contents all over [target].") - reagents.reaction(target, TOUCH) - if(QDELETED(src)) - return - - reagents.clear_reagents() - -/obj/item/weapon/reagent_containers/microwave_act(obj/machinery/microwave/M) - if(is_open_container()) - reagents.chem_temp = max(reagents.chem_temp, 1000) - reagents.handle_reactions() - ..() + volume = vol + create_reagents(volume) + if(spawned_disease) + var/datum/disease/F = new spawned_disease(0) + var/list/data = list("viruses"= list(F)) + reagents.add_reagent("blood", disease_amount, data) + + add_initial_reagents() + +/obj/item/weapon/reagent_containers/proc/add_initial_reagents() + if(list_reagents) + reagents.add_reagent_list(list_reagents) + +/obj/item/weapon/reagent_containers/attack_self(mob/user) + if(possible_transfer_amounts.len) + var/i=0 + for(var/A in possible_transfer_amounts) + i++ + if(A == amount_per_transfer_from_this) + if(i[src]'s transfer amount is now [amount_per_transfer_from_this] units.") + return + +/obj/item/weapon/reagent_containers/attack(mob/M, mob/user, def_zone) + if(user.a_intent == INTENT_HARM) + return ..() + +/obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag) + return + +/obj/item/weapon/reagent_containers/proc/reagentlist(obj/item/weapon/reagent_containers/snack) //Attack logs for regents in pills + var/data + if(snack.reagents.reagent_list && snack.reagents.reagent_list.len) //find a reagent list if there is and check if it has entries + for (var/datum/reagent/R in snack.reagents.reagent_list) //no reagents will be left behind + data += "[R.id]([R.volume] units); " //Using IDs because SOME chemicals(I'm looking at you, chlorhydrate-beer) have the same names as other chemicals. + return data + else return "No reagents" + +/obj/item/weapon/reagent_containers/proc/canconsume(mob/eater, mob/user) + if(!iscarbon(eater)) + return 0 + var/mob/living/carbon/C = eater + var/covered = "" + if(C.is_mouth_covered(head_only = 1)) + covered = "headgear" + else if(C.is_mouth_covered(mask_only = 1)) + covered = "mask" + if(covered) + var/who = (isnull(user) || eater == user) ? "your" : "[eater.p_their()]" + to_chat(user, "You have to remove [who] [covered] first!") + return 0 + return 1 + +/obj/item/weapon/reagent_containers/ex_act() + if(reagents) + for(var/datum/reagent/R in reagents.reagent_list) + R.on_ex_act() + if(!QDELETED(src)) + ..() + +/obj/item/weapon/reagent_containers/fire_act(exposed_temperature, exposed_volume) + reagents.chem_temp += 30 + reagents.handle_reactions() + ..() + +/obj/item/weapon/reagent_containers/throw_impact(atom/target) + . = ..() + SplashReagents(target, TRUE) + +/obj/item/weapon/reagent_containers/proc/SplashReagents(atom/target, thrown = FALSE) + if(!reagents || !reagents.total_volume || !spillable) + return + + if(ismob(target) && target.reagents) + if(thrown) + reagents.total_volume *= rand(5,10) * 0.1 //Not all of it makes contact with the target + var/mob/M = target + var/R + target.visible_message("[M] has been splashed with something!", \ + "[M] has been splashed with something!") + for(var/datum/reagent/A in reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + + if(thrownby) + add_logs(thrownby, M, "splashed", R) + reagents.reaction(target, TOUCH) + + else if((target.CanPass(src, get_turf(src))) && thrown && thrownby && thrownby.mind && thrownby.mind.assigned_role == "Bartender") + visible_message("[src] lands onto the [target.name] without spilling a single drop.") + return + + else + if(isturf(target) && reagents.reagent_list.len && thrownby) + add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") + log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [COORD(target)].") + message_admins("[key_name_admin(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") + visible_message("[src] spills its contents all over [target].") + reagents.reaction(target, TOUCH) + if(QDELETED(src)) + return + + reagents.clear_reagents() + +/obj/item/weapon/reagent_containers/microwave_act(obj/machinery/microwave/M) + if(is_open_container()) + reagents.chem_temp = max(reagents.chem_temp, 1000) + reagents.handle_reactions() + ..() diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index ee0cc3c8b4..8cbbfc8fb9 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -1,235 +1,235 @@ -/* -Contains: -Borg Hypospray -Borg Shaker -Nothing to do with hydroponics in here. Sorry to dissapoint you. -*/ - -/* -Borg Hypospray -*/ -/obj/item/weapon/reagent_containers/borghypo - name = "cyborg hypospray" - desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment." - icon = 'icons/obj/syringe.dmi' - item_state = "hypo" - icon_state = "borghypo" - amount_per_transfer_from_this = 5 - volume = 30 - possible_transfer_amounts = list() - var/mode = 1 - var/charge_cost = 50 - var/charge_tick = 0 - var/recharge_time = 5 //Time it takes for shots to recharge (in seconds) - var/bypass_protection = 0 //If the hypospray can go through armor or thick material - - var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution") - var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. - var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. - //Used as list for input() in shakers. - - +/* +Contains: +Borg Hypospray +Borg Shaker +Nothing to do with hydroponics in here. Sorry to dissapoint you. +*/ + +/* +Borg Hypospray +*/ +/obj/item/weapon/reagent_containers/borghypo + name = "cyborg hypospray" + desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment." + icon = 'icons/obj/syringe.dmi' + item_state = "hypo" + icon_state = "borghypo" + amount_per_transfer_from_this = 5 + volume = 30 + possible_transfer_amounts = list() + var/mode = 1 + var/charge_cost = 50 + var/charge_tick = 0 + var/recharge_time = 5 //Time it takes for shots to recharge (in seconds) + var/bypass_protection = 0 //If the hypospray can go through armor or thick material + + var/list/datum/reagents/reagent_list = list() + var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution") + var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. + var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. + //Used as list for input() in shakers. + + /obj/item/weapon/reagent_containers/borghypo/Initialize() . = ..() - - for(var/R in reagent_ids) - add_reagent(R) - - START_PROCESSING(SSobj, src) - - -/obj/item/weapon/reagent_containers/borghypo/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - - -/obj/item/weapon/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg - charge_tick++ - if(charge_tick >= recharge_time) - regenerate_reagents() - charge_tick = 0 - - //update_icon() - return 1 - -// Purely for testing purposes I swear~ //don't lie to me -/* -/obj/item/weapon/reagent_containers/borghypo/verb/add_cyanide() - set src in world - add_reagent("cyanide") -*/ - - -// Use this to add more chemicals for the borghypo to produce. -/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(reagent) - reagent_ids |= reagent - var/datum/reagents/RG = new(30) - RG.my_atom = src - reagent_list += RG - - var/datum/reagents/R = reagent_list[reagent_list.len] - R.add_reagent(reagent, 30) - - modes[reagent] = modes.len + 1 - -/obj/item/weapon/reagent_containers/borghypo/proc/regenerate_reagents() - if(iscyborg(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - for(var/i in 1 to reagent_ids.len) - var/datum/reagents/RG = reagent_list[i] - if(RG.total_volume < RG.maximum_volume) //Don't recharge reagents and drain power if the storage is full. - R.cell.use(charge_cost) //Take power from borg... - RG.add_reagent(reagent_ids[i], 5) //And fill hypo with reagent. - -/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/carbon/M, mob/user) - var/datum/reagents/R = reagent_list[mode] - if(!R.total_volume) - to_chat(user, "The injector is empty.") - return - if(!istype(M)) - return - if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection)) - to_chat(M, "You feel a tiny prick!") - to_chat(user, "You inject [M] with the injector.") - var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1) - R.reaction(M, INJECT, fraction) - if(M.reagents) - var/trans = R.trans_to(M, amount_per_transfer_from_this) - to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.") - - var/list/injected = list() - for(var/datum/reagent/RG in R.reagent_list) - injected += RG.name - add_logs(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])") - -/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user) - var/chosen_reagent = modes[input(user, "What reagent do you want to dispense?") as null|anything in reagent_ids] - if(!chosen_reagent) - return - mode = chosen_reagent - playsound(loc, 'sound/effects/pop.ogg', 50, 0) - var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]] - to_chat(user, "[src] is now dispensing '[R.name]'.") - return - -/obj/item/weapon/reagent_containers/borghypo/examine(mob/user) - usr = user - ..() - DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this - -/obj/item/weapon/reagent_containers/borghypo/proc/DescribeContents() - var/empty = 1 - - for(var/datum/reagents/RS in reagent_list) - var/datum/reagent/R = locate() in RS.reagent_list - if(R) - to_chat(usr, "It currently has [R.volume] unit\s of [R.name] stored.") - empty = 0 - - if(empty) - to_chat(usr, "It is currently empty! Allow some time for the internal syntheszier to produce more.") - -/obj/item/weapon/reagent_containers/borghypo/hacked - icon_state = "borghypo_s" - reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin") - accepts_reagent_upgrades = FALSE - -/obj/item/weapon/reagent_containers/borghypo/syndicate - name = "syndicate cyborg hypospray" - desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense." - icon_state = "borghypo_s" - charge_cost = 20 - recharge_time = 2 - reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine") - bypass_protection = 1 - accepts_reagent_upgrades = FALSE - -/* -Borg Shaker -*/ -/obj/item/weapon/reagent_containers/borghypo/borgshaker - name = "cyborg shaker" - desc = "An advanced drink synthesizer and mixer." - icon = 'icons/obj/drinks.dmi' - icon_state = "shaker" - possible_transfer_amounts = list(5,10,20) - charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. - recharge_time = 3 - accepts_reagent_upgrades = FALSE - - reagent_ids = list("beer", "orangejuice", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale") - -/obj/item/weapon/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user) - return //Can't inject stuff with a shaker, can we? //not with that attitude - -/obj/item/weapon/reagent_containers/borghypo/borgshaker/regenerate_reagents() - if(iscyborg(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious. - var/valueofi = modes[i] - var/datum/reagents/RG = reagent_list[valueofi] - if(RG.total_volume < RG.maximum_volume) - R.cell.use(charge_cost) - RG.add_reagent(reagent_ids[valueofi], 5) - -/obj/item/weapon/reagent_containers/borghypo/borgshaker/afterattack(obj/target, mob/user, proximity) - if(!proximity) return - - else if(target.is_open_container() && target.reagents) - var/datum/reagents/R = reagent_list[mode] - if(!R.total_volume) - to_chat(user, "[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.") - return - - if(target.reagents.total_volume >= target.reagents.maximum_volume) - to_chat(user, "[target] is full.") - return - - var/trans = R.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You transfer [trans] unit\s of the solution to [target].") - -/obj/item/weapon/reagent_containers/borghypo/borgshaker/DescribeContents() - var/empty = 1 - - var/datum/reagents/RS = reagent_list[mode] - var/datum/reagent/R = locate() in RS.reagent_list - if(R) - to_chat(usr, "It currently has [R.volume] unit\s of [R.name] stored.") - empty = 0 - - if(empty) - to_chat(usr, "It is currently empty! Please allow some time for the synthesizer to produce more.") - -/obj/item/weapon/reagent_containers/borghypo/borgshaker/hacked - ..() - name = "cyborg shaker" - desc = "Will mix drinks that knock them dead." - icon = 'icons/obj/drinks.dmi' - icon_state = "threemileislandglass" - possible_transfer_amounts = list(5,10,20) - charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. - recharge_time = 3 - accepts_reagent_upgrades = FALSE - - reagent_ids = list("beer2") - -/obj/item/weapon/reagent_containers/borghypo/peace - name = "Peace Hypospray" - - reagent_ids = list("dizzysolution","tiresolution") - accepts_reagent_upgrades = FALSE - -/obj/item/weapon/reagent_containers/borghypo/peace/hacked - desc = "Everything's peaceful in death!" - icon_state = "borghypo_s" - reagent_ids = list("dizzysolution","tiresolution","tirizene","sulfonal","sodium_thiopental","cyanide","neurotoxin2") - accepts_reagent_upgrades = FALSE - -/obj/item/weapon/reagent_containers/borghypo/epi - name = "epinephrine injector" - desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients.." - reagent_ids = list("epinephrine") - accepts_reagent_upgrades = FALSE + + for(var/R in reagent_ids) + add_reagent(R) + + START_PROCESSING(SSobj, src) + + +/obj/item/weapon/reagent_containers/borghypo/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + + +/obj/item/weapon/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg + charge_tick++ + if(charge_tick >= recharge_time) + regenerate_reagents() + charge_tick = 0 + + //update_icon() + return 1 + +// Purely for testing purposes I swear~ //don't lie to me +/* +/obj/item/weapon/reagent_containers/borghypo/verb/add_cyanide() + set src in world + add_reagent("cyanide") +*/ + + +// Use this to add more chemicals for the borghypo to produce. +/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(reagent) + reagent_ids |= reagent + var/datum/reagents/RG = new(30) + RG.my_atom = src + reagent_list += RG + + var/datum/reagents/R = reagent_list[reagent_list.len] + R.add_reagent(reagent, 30) + + modes[reagent] = modes.len + 1 + +/obj/item/weapon/reagent_containers/borghypo/proc/regenerate_reagents() + if(iscyborg(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + for(var/i in 1 to reagent_ids.len) + var/datum/reagents/RG = reagent_list[i] + if(RG.total_volume < RG.maximum_volume) //Don't recharge reagents and drain power if the storage is full. + R.cell.use(charge_cost) //Take power from borg... + RG.add_reagent(reagent_ids[i], 5) //And fill hypo with reagent. + +/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/carbon/M, mob/user) + var/datum/reagents/R = reagent_list[mode] + if(!R.total_volume) + to_chat(user, "The injector is empty.") + return + if(!istype(M)) + return + if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection)) + to_chat(M, "You feel a tiny prick!") + to_chat(user, "You inject [M] with the injector.") + var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1) + R.reaction(M, INJECT, fraction) + if(M.reagents) + var/trans = R.trans_to(M, amount_per_transfer_from_this) + to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.") + + var/list/injected = list() + for(var/datum/reagent/RG in R.reagent_list) + injected += RG.name + add_logs(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])") + +/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user) + var/chosen_reagent = modes[input(user, "What reagent do you want to dispense?") as null|anything in reagent_ids] + if(!chosen_reagent) + return + mode = chosen_reagent + playsound(loc, 'sound/effects/pop.ogg', 50, 0) + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]] + to_chat(user, "[src] is now dispensing '[R.name]'.") + return + +/obj/item/weapon/reagent_containers/borghypo/examine(mob/user) + usr = user + ..() + DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this + +/obj/item/weapon/reagent_containers/borghypo/proc/DescribeContents() + var/empty = 1 + + for(var/datum/reagents/RS in reagent_list) + var/datum/reagent/R = locate() in RS.reagent_list + if(R) + to_chat(usr, "It currently has [R.volume] unit\s of [R.name] stored.") + empty = 0 + + if(empty) + to_chat(usr, "It is currently empty! Allow some time for the internal syntheszier to produce more.") + +/obj/item/weapon/reagent_containers/borghypo/hacked + icon_state = "borghypo_s" + reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin") + accepts_reagent_upgrades = FALSE + +/obj/item/weapon/reagent_containers/borghypo/syndicate + name = "syndicate cyborg hypospray" + desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense." + icon_state = "borghypo_s" + charge_cost = 20 + recharge_time = 2 + reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine") + bypass_protection = 1 + accepts_reagent_upgrades = FALSE + +/* +Borg Shaker +*/ +/obj/item/weapon/reagent_containers/borghypo/borgshaker + name = "cyborg shaker" + desc = "An advanced drink synthesizer and mixer." + icon = 'icons/obj/drinks.dmi' + icon_state = "shaker" + possible_transfer_amounts = list(5,10,20) + charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. + recharge_time = 3 + accepts_reagent_upgrades = FALSE + + reagent_ids = list("beer", "orangejuice", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale") + +/obj/item/weapon/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user) + return //Can't inject stuff with a shaker, can we? //not with that attitude + +/obj/item/weapon/reagent_containers/borghypo/borgshaker/regenerate_reagents() + if(iscyborg(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious. + var/valueofi = modes[i] + var/datum/reagents/RG = reagent_list[valueofi] + if(RG.total_volume < RG.maximum_volume) + R.cell.use(charge_cost) + RG.add_reagent(reagent_ids[valueofi], 5) + +/obj/item/weapon/reagent_containers/borghypo/borgshaker/afterattack(obj/target, mob/user, proximity) + if(!proximity) return + + else if(target.is_open_container() && target.reagents) + var/datum/reagents/R = reagent_list[mode] + if(!R.total_volume) + to_chat(user, "[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.") + return + + if(target.reagents.total_volume >= target.reagents.maximum_volume) + to_chat(user, "[target] is full.") + return + + var/trans = R.trans_to(target, amount_per_transfer_from_this) + to_chat(user, "You transfer [trans] unit\s of the solution to [target].") + +/obj/item/weapon/reagent_containers/borghypo/borgshaker/DescribeContents() + var/empty = 1 + + var/datum/reagents/RS = reagent_list[mode] + var/datum/reagent/R = locate() in RS.reagent_list + if(R) + to_chat(usr, "It currently has [R.volume] unit\s of [R.name] stored.") + empty = 0 + + if(empty) + to_chat(usr, "It is currently empty! Please allow some time for the synthesizer to produce more.") + +/obj/item/weapon/reagent_containers/borghypo/borgshaker/hacked + ..() + name = "cyborg shaker" + desc = "Will mix drinks that knock them dead." + icon = 'icons/obj/drinks.dmi' + icon_state = "threemileislandglass" + possible_transfer_amounts = list(5,10,20) + charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. + recharge_time = 3 + accepts_reagent_upgrades = FALSE + + reagent_ids = list("beer2") + +/obj/item/weapon/reagent_containers/borghypo/peace + name = "Peace Hypospray" + + reagent_ids = list("dizzysolution","tiresolution") + accepts_reagent_upgrades = FALSE + +/obj/item/weapon/reagent_containers/borghypo/peace/hacked + desc = "Everything's peaceful in death!" + icon_state = "borghypo_s" + reagent_ids = list("dizzysolution","tiresolution","tirizene","sulfonal","sodium_thiopental","cyanide","neurotoxin2") + accepts_reagent_upgrades = FALSE + +/obj/item/weapon/reagent_containers/borghypo/epi + name = "epinephrine injector" + desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients.." + reagent_ids = list("epinephrine") + accepts_reagent_upgrades = FALSE diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 5729945fd3..5845e9409e 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -1,96 +1,96 @@ -/obj/item/weapon/reagent_containers/dropper - name = "dropper" - desc = "A dropper. Holds up to 5 units." - icon = 'icons/obj/chemical.dmi' - icon_state = "dropper0" - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list(1, 2, 3, 4, 5) - volume = 5 - container_type = TRANSPARENT - -/obj/item/weapon/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity) - if(!proximity) return - if(!target.reagents) return - - if(reagents.total_volume > 0) - if(target.reagents.total_volume >= target.reagents.maximum_volume) - to_chat(user, "[target] is full.") - return - +/obj/item/weapon/reagent_containers/dropper + name = "dropper" + desc = "A dropper. Holds up to 5 units." + icon = 'icons/obj/chemical.dmi' + icon_state = "dropper0" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list(1, 2, 3, 4, 5) + volume = 5 + container_type = TRANSPARENT + +/obj/item/weapon/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity) + if(!proximity) return + if(!target.reagents) return + + if(reagents.total_volume > 0) + if(target.reagents.total_volume >= target.reagents.maximum_volume) + to_chat(user, "[target] is full.") + return + if(!target.is_injectable()) - to_chat(user, "You cannot directly fill [target]!") - return - - var/trans = 0 - var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) - - if(ismob(target)) - if(ishuman(target)) - var/mob/living/carbon/human/victim = target - - var/obj/item/safe_thing = null - if(victim.wear_mask) - if(victim.wear_mask.flags_cover & MASKCOVERSEYES) - safe_thing = victim.wear_mask - if(victim.head) - if(victim.head.flags_cover & MASKCOVERSEYES) - safe_thing = victim.head - if(victim.glasses) - if(!safe_thing) - safe_thing = victim.glasses - - if(safe_thing) - if(!safe_thing.reagents) - safe_thing.create_reagents(100) - - reagents.reaction(safe_thing, TOUCH, fraction) - trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this) - - target.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", \ - "[user] tries to squirt something into [target]'s eyes, but fails!") - - to_chat(user, "You transfer [trans] unit\s of the solution.") - update_icon() - return - else if(isalien(target)) //hiss-hiss has no eyes! - to_chat(target, "[target] does not seem to have any eyes!") - return - - target.visible_message("[user] squirts something into [target]'s eyes!", \ - "[user] squirts something into [target]'s eyes!") - - reagents.reaction(target, TOUCH, fraction) - var/mob/M = target - var/R - if(reagents) - for(var/datum/reagent/A in src.reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - add_logs(user, M, "squirted", R) - - trans = src.reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You transfer [trans] unit\s of the solution.") - update_icon() - - else - + to_chat(user, "You cannot directly fill [target]!") + return + + var/trans = 0 + var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) + + if(ismob(target)) + if(ishuman(target)) + var/mob/living/carbon/human/victim = target + + var/obj/item/safe_thing = null + if(victim.wear_mask) + if(victim.wear_mask.flags_cover & MASKCOVERSEYES) + safe_thing = victim.wear_mask + if(victim.head) + if(victim.head.flags_cover & MASKCOVERSEYES) + safe_thing = victim.head + if(victim.glasses) + if(!safe_thing) + safe_thing = victim.glasses + + if(safe_thing) + if(!safe_thing.reagents) + safe_thing.create_reagents(100) + + reagents.reaction(safe_thing, TOUCH, fraction) + trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this) + + target.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", \ + "[user] tries to squirt something into [target]'s eyes, but fails!") + + to_chat(user, "You transfer [trans] unit\s of the solution.") + update_icon() + return + else if(isalien(target)) //hiss-hiss has no eyes! + to_chat(target, "[target] does not seem to have any eyes!") + return + + target.visible_message("[user] squirts something into [target]'s eyes!", \ + "[user] squirts something into [target]'s eyes!") + + reagents.reaction(target, TOUCH, fraction) + var/mob/M = target + var/R + if(reagents) + for(var/datum/reagent/A in src.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + add_logs(user, M, "squirted", R) + + trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + to_chat(user, "You transfer [trans] unit\s of the solution.") + update_icon() + + else + if(!target.is_drawable(FALSE)) //No drawing from mobs here - to_chat(user, "You cannot directly remove reagents from [target].") - return - - if(!target.reagents.total_volume) - to_chat(user, "[target] is empty!") - return - - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) - - to_chat(user, "You fill [src] with [trans] unit\s of the solution.") - - update_icon() - -/obj/item/weapon/reagent_containers/dropper/update_icon() - cut_overlays() - if(reagents.total_volume) + to_chat(user, "You cannot directly remove reagents from [target].") + return + + if(!target.reagents.total_volume) + to_chat(user, "[target] is empty!") + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + + to_chat(user, "You fill [src] with [trans] unit\s of the solution.") + + update_icon() + +/obj/item/weapon/reagent_containers/dropper/update_icon() + cut_overlays() + if(reagents.total_volume) var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "dropper") - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) + filling.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a63abefda3..a8845055c1 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -1,290 +1,290 @@ -/obj/item/weapon/reagent_containers/glass - name = "glass" - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) - volume = 50 - container_type = OPENCONTAINER - spillable = 1 - resistance_flags = ACID_PROOF - - -/obj/item/weapon/reagent_containers/glass/attack(mob/M, mob/user, obj/target) - if(!canconsume(M, user)) - return - - if(!spillable) - return - - if(!reagents || !reagents.total_volume) - to_chat(user, "[src] is empty!") - return - - if(istype(M)) - if(user.a_intent == INTENT_HARM) - var/R - M.visible_message("[user] splashes the contents of [src] onto [M]!", \ - "[user] splashes the contents of [src] onto [M]!") - if(reagents) - for(var/datum/reagent/A in reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - if(isturf(target) && reagents.reagent_list.len && thrownby) - add_logs(thrownby, target, "splashed [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") - log_game("[key_name(thrownby)] splashed [english_list(reagents.reagent_list)] at [COORD(target)].") - message_admins("[key_name_admin(thrownby)] splashed [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") - reagents.reaction(M, TOUCH) - add_logs(user, M, "splashed", R) - reagents.clear_reagents() - else - if(M != user) - M.visible_message("[user] attempts to feed something to [M].", \ - "[user] attempts to feed something to you.") - if(!do_mob(user, M)) - return - if(!reagents || !reagents.total_volume) - return // The drink might be empty after the delay, such as by spam-feeding - M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.") - add_logs(user, M, "fed", reagentlist(src)) - else - to_chat(user, "You swallow a gulp of [src].") - var/fraction = min(5/reagents.total_volume, 1) - reagents.reaction(M, INGEST, fraction) - spawn(5) - reagents.trans_to(M, 5) - playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) - -/obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity) - if((!proximity) || !check_allowed_items(target,target_self=1)) return - - else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. - - if(target.reagents && !target.reagents.total_volume) - to_chat(user, "[target] is empty and can't be refilled!") - return - - if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "[src] is full.") - return - - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) - to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].") - - else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it. - if(!reagents.total_volume) - to_chat(user, "[src] is empty!") - return - - if(target.reagents.total_volume >= target.reagents.maximum_volume) - to_chat(user, "[target] is full.") - return - - - var/trans = reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You transfer [trans] unit\s of the solution to [target].") - - else if(reagents.total_volume) - if(user.a_intent == INTENT_HARM) - user.visible_message("[user] splashes the contents of [src] onto [target]!", \ - "You splash the contents of [src] onto [target].") - reagents.reaction(target, TOUCH) - reagents.clear_reagents() - -/obj/item/weapon/reagent_containers/glass/attackby(obj/item/I, mob/user, params) - var/hotness = I.is_hot() - if(hotness) - var/added_heat = (hotness / 100) //ishot returns a temperature - if(reagents) - if(reagents.chem_temp < hotness) //can't be heated to be hotter than the source - reagents.chem_temp += added_heat - to_chat(user, "You heat [src] with [I].") - reagents.handle_reactions() - else - to_chat(user, "[src] is already hotter than [I]!") - - if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs - var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I - if(reagents) - if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "[src] is full.") - else - to_chat(user, "You break [E] in [src].") - reagents.add_reagent("eggyolk", 5) - qdel(E) - return - ..() - - -/obj/item/weapon/reagent_containers/glass/beaker - name = "beaker" - desc = "A beaker. It can hold up to 50 units." - icon = 'icons/obj/chemical.dmi' - icon_state = "beaker" - item_state = "beaker" - materials = list(MAT_GLASS=500) - +/obj/item/weapon/reagent_containers/glass + name = "glass" + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) + volume = 50 + container_type = OPENCONTAINER + spillable = 1 + resistance_flags = ACID_PROOF + + +/obj/item/weapon/reagent_containers/glass/attack(mob/M, mob/user, obj/target) + if(!canconsume(M, user)) + return + + if(!spillable) + return + + if(!reagents || !reagents.total_volume) + to_chat(user, "[src] is empty!") + return + + if(istype(M)) + if(user.a_intent == INTENT_HARM) + var/R + M.visible_message("[user] splashes the contents of [src] onto [M]!", \ + "[user] splashes the contents of [src] onto [M]!") + if(reagents) + for(var/datum/reagent/A in reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + if(isturf(target) && reagents.reagent_list.len && thrownby) + add_logs(thrownby, target, "splashed [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") + log_game("[key_name(thrownby)] splashed [english_list(reagents.reagent_list)] at [COORD(target)].") + message_admins("[key_name_admin(thrownby)] splashed [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") + reagents.reaction(M, TOUCH) + add_logs(user, M, "splashed", R) + reagents.clear_reagents() + else + if(M != user) + M.visible_message("[user] attempts to feed something to [M].", \ + "[user] attempts to feed something to you.") + if(!do_mob(user, M)) + return + if(!reagents || !reagents.total_volume) + return // The drink might be empty after the delay, such as by spam-feeding + M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.") + add_logs(user, M, "fed", reagentlist(src)) + else + to_chat(user, "You swallow a gulp of [src].") + var/fraction = min(5/reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction) + spawn(5) + reagents.trans_to(M, 5) + playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) + +/obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity) + if((!proximity) || !check_allowed_items(target,target_self=1)) return + + else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + + if(target.reagents && !target.reagents.total_volume) + to_chat(user, "[target] is empty and can't be refilled!") + return + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "[src] is full.") + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].") + + else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it. + if(!reagents.total_volume) + to_chat(user, "[src] is empty!") + return + + if(target.reagents.total_volume >= target.reagents.maximum_volume) + to_chat(user, "[target] is full.") + return + + + var/trans = reagents.trans_to(target, amount_per_transfer_from_this) + to_chat(user, "You transfer [trans] unit\s of the solution to [target].") + + else if(reagents.total_volume) + if(user.a_intent == INTENT_HARM) + user.visible_message("[user] splashes the contents of [src] onto [target]!", \ + "You splash the contents of [src] onto [target].") + reagents.reaction(target, TOUCH) + reagents.clear_reagents() + +/obj/item/weapon/reagent_containers/glass/attackby(obj/item/I, mob/user, params) + var/hotness = I.is_hot() + if(hotness) + var/added_heat = (hotness / 100) //ishot returns a temperature + if(reagents) + if(reagents.chem_temp < hotness) //can't be heated to be hotter than the source + reagents.chem_temp += added_heat + to_chat(user, "You heat [src] with [I].") + reagents.handle_reactions() + else + to_chat(user, "[src] is already hotter than [I]!") + + if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs + var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I + if(reagents) + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "[src] is full.") + else + to_chat(user, "You break [E] in [src].") + reagents.add_reagent("eggyolk", 5) + qdel(E) + return + ..() + + +/obj/item/weapon/reagent_containers/glass/beaker + name = "beaker" + desc = "A beaker. It can hold up to 50 units." + icon = 'icons/obj/chemical.dmi' + icon_state = "beaker" + item_state = "beaker" + materials = list(MAT_GLASS=500) + /obj/item/weapon/reagent_containers/glass/beaker/Initialize() . = ..() - update_icon() - -/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change() - update_icon() - -/obj/item/weapon/reagent_containers/glass/beaker/update_icon() - cut_overlays() - - if(reagents.total_volume) + update_icon() + +/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change() + update_icon() + +/obj/item/weapon/reagent_containers/glass/beaker/update_icon() + cut_overlays() + + if(reagents.total_volume) var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]10") - - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) - filling.icon_state = "[icon_state]-10" - if(10 to 24) - filling.icon_state = "[icon_state]10" - if(25 to 49) - filling.icon_state = "[icon_state]25" - if(50 to 74) - filling.icon_state = "[icon_state]50" - if(75 to 79) - filling.icon_state = "[icon_state]75" - if(80 to 90) - filling.icon_state = "[icon_state]80" - if(91 to INFINITY) - filling.icon_state = "[icon_state]100" - - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) - + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 9) + filling.icon_state = "[icon_state]-10" + if(10 to 24) + filling.icon_state = "[icon_state]10" + if(25 to 49) + filling.icon_state = "[icon_state]25" + if(50 to 74) + filling.icon_state = "[icon_state]50" + if(75 to 79) + filling.icon_state = "[icon_state]75" + if(80 to 90) + filling.icon_state = "[icon_state]80" + if(91 to INFINITY) + filling.icon_state = "[icon_state]100" + + filling.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) + /obj/item/weapon/reagent_containers/glass/beaker/jar name = "honey jar" desc = "A jar for honey. It can hold up to 50 units of sweet delight." icon = 'icons/obj/chemical.dmi' icon_state = "vapour" -/obj/item/weapon/reagent_containers/glass/beaker/large - name = "large beaker" - desc = "A large beaker. Can hold up to 100 units." - icon_state = "beakerlarge" - materials = list(MAT_GLASS=2500) - volume = 100 - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100) - flags = OPENCONTAINER - -/obj/item/weapon/reagent_containers/glass/beaker/noreact - name = "cryostasis beaker" - desc = "A cryostasis beaker that allows for chemical storage without \ - reactions. Can hold up to 50 units." - icon_state = "beakernoreact" - materials = list(MAT_METAL=3000) - volume = 50 - amount_per_transfer_from_this = 10 - origin_tech = "materials=2;engineering=3;plasmatech=3" - flags = OPENCONTAINER - +/obj/item/weapon/reagent_containers/glass/beaker/large + name = "large beaker" + desc = "A large beaker. Can hold up to 100 units." + icon_state = "beakerlarge" + materials = list(MAT_GLASS=2500) + volume = 100 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5,10,15,20,25,30,50,100) + flags = OPENCONTAINER + +/obj/item/weapon/reagent_containers/glass/beaker/noreact + name = "cryostasis beaker" + desc = "A cryostasis beaker that allows for chemical storage without \ + reactions. Can hold up to 50 units." + icon_state = "beakernoreact" + materials = list(MAT_METAL=3000) + volume = 50 + amount_per_transfer_from_this = 10 + origin_tech = "materials=2;engineering=3;plasmatech=3" + flags = OPENCONTAINER + /obj/item/weapon/reagent_containers/glass/beaker/noreact/Initialize() . = ..() - reagents.set_reacting(FALSE) - -/obj/item/weapon/reagent_containers/glass/beaker/bluespace - name = "bluespace beaker" - desc = "A bluespace beaker, powered by experimental bluespace technology \ - and Element Cuban combined with the Compound Pete. Can hold up to \ - 300 units." - icon_state = "beakerbluespace" - materials = list(MAT_GLASS=3000) - volume = 300 - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) - flags = OPENCONTAINER - origin_tech = "bluespace=5;materials=4;plasmatech=4" - -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone - list_reagents = list("cryoxadone" = 30) - -/obj/item/weapon/reagent_containers/glass/beaker/sulphuric - list_reagents = list("sacid" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/slime - list_reagents = list("slimejelly" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/large/styptic - name = "styptic reserve tank" - list_reagents = list("styptic_powder" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/large/silver_sulfadiazine - name = "silver sulfadiazine reserve tank" - list_reagents = list("silver_sulfadiazine" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/large/charcoal - name = "antitoxin reserve tank" - list_reagents = list("charcoal" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/large/epinephrine - name = "epinephrine reserve tank" - list_reagents = list("epinephrine" = 50) - -/obj/item/weapon/reagent_containers/glass/beaker/synthflesh - list_reagents = list("synthflesh" = 50) - -/obj/item/weapon/reagent_containers/glass/bucket - name = "bucket" - desc = "It's a bucket." - icon = 'icons/obj/janitor.dmi' - icon_state = "bucket" - item_state = "bucket" - materials = list(MAT_METAL=200) - w_class = WEIGHT_CLASS_NORMAL - amount_per_transfer_from_this = 20 - possible_transfer_amounts = list(10,15,20,25,30,50,70) - volume = 70 - flags = OPENCONTAINER - flags_inv = HIDEHAIR - slot_flags = SLOT_HEAD - resistance_flags = 0 - armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 75, acid = 50) //Weak melee protection, because you can wear it on your head - slot_equipment_priority = list( \ - slot_back, slot_wear_id,\ - slot_w_uniform, slot_wear_suit,\ - slot_wear_mask, slot_head, slot_neck,\ - slot_shoes, slot_gloves,\ - slot_ears, slot_glasses,\ - slot_belt, slot_s_store,\ - slot_l_store, slot_r_store,\ - slot_generic_dextrous_storage - ) - -/obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params) - if(istype(O, /obj/item/weapon/mop)) - if(reagents.total_volume < 1) - to_chat(user, "[src] is out of water!") - else - reagents.trans_to(O, 5) - to_chat(user, "You wet [O] in [src].") - playsound(loc, 'sound/effects/slosh.ogg', 25, 1) - else if(isprox(O)) - to_chat(user, "You add [O] to [src].") - qdel(O) - qdel(src) - user.put_in_hands(new /obj/item/weapon/bucket_sensor) - else - ..() - -/obj/item/weapon/reagent_containers/glass/bucket/equipped(mob/user, slot) - ..() - if(slot == slot_head && reagents.total_volume) - to_chat(user, "[src]'s contents spill all over you!") - reagents.reaction(user, TOUCH) - reagents.clear_reagents() - -/obj/item/weapon/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M) - if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head - var/index = slot_equipment_priority.Find(slot_head) - slot_equipment_priority.Remove(slot_head) - . = ..() - slot_equipment_priority.Insert(index, slot_head) - return - return ..() + reagents.set_reacting(FALSE) + +/obj/item/weapon/reagent_containers/glass/beaker/bluespace + name = "bluespace beaker" + desc = "A bluespace beaker, powered by experimental bluespace technology \ + and Element Cuban combined with the Compound Pete. Can hold up to \ + 300 units." + icon_state = "beakerbluespace" + materials = list(MAT_GLASS=3000) + volume = 300 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) + flags = OPENCONTAINER + origin_tech = "bluespace=5;materials=4;plasmatech=4" + +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone + list_reagents = list("cryoxadone" = 30) + +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric + list_reagents = list("sacid" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/slime + list_reagents = list("slimejelly" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/large/styptic + name = "styptic reserve tank" + list_reagents = list("styptic_powder" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/large/silver_sulfadiazine + name = "silver sulfadiazine reserve tank" + list_reagents = list("silver_sulfadiazine" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/large/charcoal + name = "antitoxin reserve tank" + list_reagents = list("charcoal" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/large/epinephrine + name = "epinephrine reserve tank" + list_reagents = list("epinephrine" = 50) + +/obj/item/weapon/reagent_containers/glass/beaker/synthflesh + list_reagents = list("synthflesh" = 50) + +/obj/item/weapon/reagent_containers/glass/bucket + name = "bucket" + desc = "It's a bucket." + icon = 'icons/obj/janitor.dmi' + icon_state = "bucket" + item_state = "bucket" + materials = list(MAT_METAL=200) + w_class = WEIGHT_CLASS_NORMAL + amount_per_transfer_from_this = 20 + possible_transfer_amounts = list(10,15,20,25,30,50,70) + volume = 70 + flags = OPENCONTAINER + flags_inv = HIDEHAIR + slot_flags = SLOT_HEAD + resistance_flags = 0 + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 75, acid = 50) //Weak melee protection, because you can wear it on your head + slot_equipment_priority = list( \ + slot_back, slot_wear_id,\ + slot_w_uniform, slot_wear_suit,\ + slot_wear_mask, slot_head, slot_neck,\ + slot_shoes, slot_gloves,\ + slot_ears, slot_glasses,\ + slot_belt, slot_s_store,\ + slot_l_store, slot_r_store,\ + slot_generic_dextrous_storage + ) + +/obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params) + if(istype(O, /obj/item/weapon/mop)) + if(reagents.total_volume < 1) + to_chat(user, "[src] is out of water!") + else + reagents.trans_to(O, 5) + to_chat(user, "You wet [O] in [src].") + playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + else if(isprox(O)) + to_chat(user, "You add [O] to [src].") + qdel(O) + qdel(src) + user.put_in_hands(new /obj/item/weapon/bucket_sensor) + else + ..() + +/obj/item/weapon/reagent_containers/glass/bucket/equipped(mob/user, slot) + ..() + if(slot == slot_head && reagents.total_volume) + to_chat(user, "[src]'s contents spill all over you!") + reagents.reaction(user, TOUCH) + reagents.clear_reagents() + +/obj/item/weapon/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M) + if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head + var/index = slot_equipment_priority.Find(slot_head) + slot_equipment_priority.Remove(slot_head) + . = ..() + slot_equipment_priority.Insert(index, slot_head) + return + return ..() /obj/item/weapon/reagent_containers/glass/beaker/waterbottle name = "bottle of water" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 37a91e6a88..efd312c8d6 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -148,4 +148,4 @@ desc = "I wouldn't eat this if I were you." icon_state = "pill9" color = "#454545" - list_reagents = list("shadowmutationtoxin" = 1) + list_reagents = list("shadowmutationtoxin" = 1) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 5dfa28d711..25b236b0a5 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -1,254 +1,254 @@ -#define SYRINGE_DRAW 0 -#define SYRINGE_INJECT 1 - -/obj/item/weapon/reagent_containers/syringe - name = "syringe" - desc = "A syringe that can hold up to 15 units." - icon = 'icons/obj/syringe.dmi' - item_state = "syringe_0" - icon_state = "0" - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list() - volume = 15 - var/mode = SYRINGE_DRAW - var/busy = 0 // needed for delayed drawing of blood - var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun - materials = list(MAT_METAL=10, MAT_GLASS=20) - container_type = TRANSPARENT - +#define SYRINGE_DRAW 0 +#define SYRINGE_INJECT 1 + +/obj/item/weapon/reagent_containers/syringe + name = "syringe" + desc = "A syringe that can hold up to 15 units." + icon = 'icons/obj/syringe.dmi' + item_state = "syringe_0" + icon_state = "0" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + volume = 15 + var/mode = SYRINGE_DRAW + var/busy = 0 // needed for delayed drawing of blood + var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun + materials = list(MAT_METAL=10, MAT_GLASS=20) + container_type = TRANSPARENT + /obj/item/weapon/reagent_containers/syringe/Initialize() . = ..() - if(list_reagents) //syringe starts in inject mode if its already got something inside - mode = SYRINGE_INJECT - update_icon() - -/obj/item/weapon/reagent_containers/syringe/on_reagent_change() - update_icon() - -/obj/item/weapon/reagent_containers/syringe/pickup(mob/user) - ..() - update_icon() - -/obj/item/weapon/reagent_containers/syringe/dropped(mob/user) - ..() - update_icon() - -/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user) - mode = !mode - update_icon() - -/obj/item/weapon/reagent_containers/syringe/attack_hand() - ..() - update_icon() - -/obj/item/weapon/reagent_containers/syringe/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I, mob/user, params) - return - -/obj/item/weapon/reagent_containers/syringe/afterattack(atom/target, mob/user , proximity) - if(busy) - return - if(!proximity) - return - if(!target.reagents) - return - - var/mob/living/L - if(isliving(target)) - L = target - if(!L.can_inject(user, 1)) - return - - // chance of monkey retaliation - if(istype(target, /mob/living/carbon/monkey) && prob(MONKEY_SYRINGE_RETALIATION_PROB)) - var/mob/living/carbon/monkey/M - M = target - M.retaliate(user) - - switch(mode) - if(SYRINGE_DRAW) - - if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "The syringe is full.") - return - - if(L) //living mob - var/drawn_amount = reagents.maximum_volume - reagents.total_volume - if(target != user) - target.visible_message("[user] is trying to take a blood sample from [target]!", \ - "[user] is trying to take a blood sample from [target]!") - busy = 1 - if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1))) - busy = 0 - return - if(reagents.total_volume >= reagents.maximum_volume) - return - busy = 0 - if(L.transfer_blood_to(src, drawn_amount)) - user.visible_message("[user] takes a blood sample from [L].") - else - to_chat(user, "You are unable to draw any blood from [L]!") - - else //if not mob - if(!target.reagents.total_volume) - to_chat(user, "[target] is empty!") - return - + if(list_reagents) //syringe starts in inject mode if its already got something inside + mode = SYRINGE_INJECT + update_icon() + +/obj/item/weapon/reagent_containers/syringe/on_reagent_change() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/pickup(mob/user) + ..() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/dropped(mob/user) + ..() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user) + mode = !mode + update_icon() + +/obj/item/weapon/reagent_containers/syringe/attack_hand() + ..() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I, mob/user, params) + return + +/obj/item/weapon/reagent_containers/syringe/afterattack(atom/target, mob/user , proximity) + if(busy) + return + if(!proximity) + return + if(!target.reagents) + return + + var/mob/living/L + if(isliving(target)) + L = target + if(!L.can_inject(user, 1)) + return + + // chance of monkey retaliation + if(ismonkey(target) && prob(MONKEY_SYRINGE_RETALIATION_PROB)) + var/mob/living/carbon/monkey/M + M = target + M.retaliate(user) + + switch(mode) + if(SYRINGE_DRAW) + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "The syringe is full.") + return + + if(L) //living mob + var/drawn_amount = reagents.maximum_volume - reagents.total_volume + if(target != user) + target.visible_message("[user] is trying to take a blood sample from [target]!", \ + "[user] is trying to take a blood sample from [target]!") + busy = 1 + if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1))) + busy = 0 + return + if(reagents.total_volume >= reagents.maximum_volume) + return + busy = 0 + if(L.transfer_blood_to(src, drawn_amount)) + user.visible_message("[user] takes a blood sample from [L].") + else + to_chat(user, "You are unable to draw any blood from [L]!") + + else //if not mob + if(!target.reagents.total_volume) + to_chat(user, "[target] is empty!") + return + if(!target.is_drawable()) - to_chat(user, "You cannot directly remove reagents from [target]!") - return - - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? - - to_chat(user, "You fill [src] with [trans] units of the solution.") - if (reagents.total_volume >= reagents.maximum_volume) - mode=!mode - update_icon() - - if(SYRINGE_INJECT) - if(!reagents.total_volume) - to_chat(user, "[src] is empty.") - return - + to_chat(user, "You cannot directly remove reagents from [target]!") + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + + to_chat(user, "You fill [src] with [trans] units of the solution.") + if (reagents.total_volume >= reagents.maximum_volume) + mode=!mode + update_icon() + + if(SYRINGE_INJECT) + if(!reagents.total_volume) + to_chat(user, "[src] is empty.") + return + if(!target.is_injectable()) - to_chat(user, "You cannot directly fill [target]!") - return - if(target.reagents.total_volume >= target.reagents.maximum_volume) - to_chat(user, "[target] is full.") - return - - if(L) //living mob - if(L != user) - L.visible_message("[user] is trying to inject [L]!", \ - "[user] is trying to inject [L]!") - if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1))) - return - if(!reagents.total_volume) - return - if(L.reagents.total_volume >= L.reagents.maximum_volume) - return - L.visible_message("[user] injects [L] with the syringe!", \ - "[user] injects [L] with the syringe!") - - var/list/rinject = list() - for(var/datum/reagent/R in reagents.reagent_list) - rinject += R.name - var/contained = english_list(rinject) - - if(L != user) - add_logs(user, L, "injected", src, addition="which had [contained]") - else - log_attack("[user.name] ([user.ckey]) injected [L.name] ([L.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])") - L.log_message("Injected themselves ([contained]) with [src.name].", INDIVIDUAL_ATTACK_LOG) - - var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) - reagents.reaction(L, INJECT, fraction) - reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") - if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) - mode = SYRINGE_DRAW - update_icon() - - -/obj/item/weapon/reagent_containers/syringe/update_icon() - var/rounded_vol = Clamp(round((reagents.total_volume / volume * 15),5), 0, 15) - cut_overlays() - if(ismob(loc)) - var/injoverlay - switch(mode) - if (SYRINGE_DRAW) - injoverlay = "draw" - if (SYRINGE_INJECT) - injoverlay = "inject" - add_overlay(injoverlay) - icon_state = "[rounded_vol]" - item_state = "syringe_[rounded_vol]" - - if(reagents.total_volume) + to_chat(user, "You cannot directly fill [target]!") + return + if(target.reagents.total_volume >= target.reagents.maximum_volume) + to_chat(user, "[target] is full.") + return + + if(L) //living mob + if(L != user) + L.visible_message("[user] is trying to inject [L]!", \ + "[user] is trying to inject [L]!") + if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1))) + return + if(!reagents.total_volume) + return + if(L.reagents.total_volume >= L.reagents.maximum_volume) + return + L.visible_message("[user] injects [L] with the syringe!", \ + "[user] injects [L] with the syringe!") + + var/list/rinject = list() + for(var/datum/reagent/R in reagents.reagent_list) + rinject += R.name + var/contained = english_list(rinject) + + if(L != user) + add_logs(user, L, "injected", src, addition="which had [contained]") + else + log_attack("[user.name] ([user.ckey]) injected [L.name] ([L.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])") + L.log_message("Injected themselves ([contained]) with [src.name].", INDIVIDUAL_ATTACK_LOG) + + var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) + reagents.reaction(L, INJECT, fraction) + reagents.trans_to(target, amount_per_transfer_from_this) + to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") + if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) + mode = SYRINGE_DRAW + update_icon() + + +/obj/item/weapon/reagent_containers/syringe/update_icon() + var/rounded_vol = Clamp(round((reagents.total_volume / volume * 15),5), 0, 15) + cut_overlays() + if(ismob(loc)) + var/injoverlay + switch(mode) + if (SYRINGE_DRAW) + injoverlay = "draw" + if (SYRINGE_INJECT) + injoverlay = "inject" + add_overlay(injoverlay) + icon_state = "[rounded_vol]" + item_state = "syringe_[rounded_vol]" + + if(reagents.total_volume) var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]") filling_overlay.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling_overlay) - -/obj/item/weapon/reagent_containers/syringe/epinephrine - name = "syringe (epinephrine)" - desc = "Contains epinephrine - used to stabilize patients." - list_reagents = list("epinephrine" = 15) - -/obj/item/weapon/reagent_containers/syringe/charcoal - name = "syringe (charcoal)" - desc = "Contains charcoal." - list_reagents = list("charcoal" = 15) - -/obj/item/weapon/reagent_containers/syringe/antiviral - name = "syringe (spaceacillin)" - desc = "Contains antiviral agents." - list_reagents = list("spaceacillin" = 15) - -/obj/item/weapon/reagent_containers/syringe/bioterror - name = "bioterror syringe" - desc = "Contains several paralyzing reagents." - list_reagents = list("neurotoxin" = 5, "mutetoxin" = 5, "sodium_thiopental" = 5) - -/obj/item/weapon/reagent_containers/syringe/stimulants - name = "Stimpack" - desc = "Contains stimulants." - amount_per_transfer_from_this = 50 - volume = 50 - list_reagents = list("stimulants" = 50) - -/obj/item/weapon/reagent_containers/syringe/calomel - name = "syringe (calomel)" - desc = "Contains calomel." - list_reagents = list("calomel" = 15) - -/obj/item/weapon/reagent_containers/syringe/lethal - name = "lethal injection syringe" - desc = "A syringe used for lethal injections. It can hold up to 50 units." - amount_per_transfer_from_this = 50 - volume = 50 - -/obj/item/weapon/reagent_containers/syringe/lethal/choral - list_reagents = list("chloralhydrate" = 50) - -/obj/item/weapon/reagent_containers/syringe/lethal/execution - list_reagents = list("plasma" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10) - -/obj/item/weapon/reagent_containers/syringe/mulligan - name = "Mulligan" - desc = "A syringe used to completely change the users identity." - amount_per_transfer_from_this = 1 - volume = 1 - list_reagents = list("mulligan" = 1) - -/obj/item/weapon/reagent_containers/syringe/gluttony - name = "Gluttony's Blessing" - desc = "A syringe recovered from a dread place. It probably isn't wise to use." - amount_per_transfer_from_this = 1 - volume = 1 - list_reagents = list("gluttonytoxin" = 1) - -/obj/item/weapon/reagent_containers/syringe/bluespace - name = "bluespace syringe" - desc = "An advanced syringe that can hold 60 units of chemicals" - amount_per_transfer_from_this = 20 - volume = 60 - origin_tech = "bluespace=4;materials=4;biotech=4" - -/obj/item/weapon/reagent_containers/syringe/noreact - name = "cryo syringe" - desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units." - volume = 20 - origin_tech = "materials=3;engineering=3" - + +/obj/item/weapon/reagent_containers/syringe/epinephrine + name = "syringe (epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." + list_reagents = list("epinephrine" = 15) + +/obj/item/weapon/reagent_containers/syringe/charcoal + name = "syringe (charcoal)" + desc = "Contains charcoal." + list_reagents = list("charcoal" = 15) + +/obj/item/weapon/reagent_containers/syringe/antiviral + name = "syringe (spaceacillin)" + desc = "Contains antiviral agents." + list_reagents = list("spaceacillin" = 15) + +/obj/item/weapon/reagent_containers/syringe/bioterror + name = "bioterror syringe" + desc = "Contains several paralyzing reagents." + list_reagents = list("neurotoxin" = 5, "mutetoxin" = 5, "sodium_thiopental" = 5) + +/obj/item/weapon/reagent_containers/syringe/stimulants + name = "Stimpack" + desc = "Contains stimulants." + amount_per_transfer_from_this = 50 + volume = 50 + list_reagents = list("stimulants" = 50) + +/obj/item/weapon/reagent_containers/syringe/calomel + name = "syringe (calomel)" + desc = "Contains calomel." + list_reagents = list("calomel" = 15) + +/obj/item/weapon/reagent_containers/syringe/lethal + name = "lethal injection syringe" + desc = "A syringe used for lethal injections. It can hold up to 50 units." + amount_per_transfer_from_this = 50 + volume = 50 + +/obj/item/weapon/reagent_containers/syringe/lethal/choral + list_reagents = list("chloralhydrate" = 50) + +/obj/item/weapon/reagent_containers/syringe/lethal/execution + list_reagents = list("plasma" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10) + +/obj/item/weapon/reagent_containers/syringe/mulligan + name = "Mulligan" + desc = "A syringe used to completely change the users identity." + amount_per_transfer_from_this = 1 + volume = 1 + list_reagents = list("mulligan" = 1) + +/obj/item/weapon/reagent_containers/syringe/gluttony + name = "Gluttony's Blessing" + desc = "A syringe recovered from a dread place. It probably isn't wise to use." + amount_per_transfer_from_this = 1 + volume = 1 + list_reagents = list("gluttonytoxin" = 1) + +/obj/item/weapon/reagent_containers/syringe/bluespace + name = "bluespace syringe" + desc = "An advanced syringe that can hold 60 units of chemicals" + amount_per_transfer_from_this = 20 + volume = 60 + origin_tech = "bluespace=4;materials=4;biotech=4" + +/obj/item/weapon/reagent_containers/syringe/noreact + name = "cryo syringe" + desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units." + volume = 20 + origin_tech = "materials=3;engineering=3" + /obj/item/weapon/reagent_containers/syringe/noreact/Initialize() - . = ..() - reagents.set_reacting(FALSE) - -/obj/item/weapon/reagent_containers/syringe/piercing - name = "piercing syringe" - desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." - volume = 10 - proj_piercing = 1 - origin_tech = "combat=3;materials=4;engineering=5" + . = ..() + reagents.set_reacting(FALSE) + +/obj/item/weapon/reagent_containers/syringe/piercing + name = "piercing syringe" + desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." + volume = 10 + proj_piercing = 1 + origin_tech = "combat=3;materials=4;engineering=5" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 9276ff64a9..33fb752e7c 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -1,179 +1,179 @@ -/obj/structure/reagent_dispensers - name = "Dispenser" - desc = "..." - icon = 'icons/obj/objects.dmi' - icon_state = "water" - density = 1 - anchored = 0 +/obj/structure/reagent_dispensers + name = "Dispenser" + desc = "..." + icon = 'icons/obj/objects.dmi' + icon_state = "water" + density = 1 + anchored = 0 container_type = DRAWABLE - pressure_resistance = 2*ONE_ATMOSPHERE - obj_integrity = 300 - max_integrity = 300 - var/tank_volume = 1000 //In units, how much the dispenser can hold - var/reagent_id = "water" //The ID of the reagent that the dispenser uses - -/obj/structure/reagent_dispensers/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - . = ..() - if(. && obj_integrity > 0) - if(tank_volume && (damage_flag == "bullet" || damage_flag == "laser")) - boom() - -/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/reagent_containers)) - return 0 //so we can refill them via their afterattack. - else - return ..() - -/obj/structure/reagent_dispensers/Initialize() - create_reagents(tank_volume) - reagents.add_reagent(reagent_id, tank_volume) + pressure_resistance = 2*ONE_ATMOSPHERE + obj_integrity = 300 + max_integrity = 300 + var/tank_volume = 1000 //In units, how much the dispenser can hold + var/reagent_id = "water" //The ID of the reagent that the dispenser uses + +/obj/structure/reagent_dispensers/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() - -/obj/structure/reagent_dispensers/examine(mob/user) - ..() - if(reagents.total_volume) - to_chat(user, "It has [reagents.total_volume] units left.") - else - to_chat(user, "It's empty.") - - -/obj/structure/reagent_dispensers/proc/boom() - visible_message("\The [src] ruptures!") - chem_splash(loc, 5, list(reagents)) - qdel(src) - -/obj/structure/reagent_dispensers/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - if(!disassembled) - boom() - else - qdel(src) - -/obj/structure/reagent_dispensers/watertank - name = "water tank" - desc = "A water tank." - icon_state = "water" - -/obj/structure/reagent_dispensers/watertank/high - name = "high-capacity water tank" + if(. && obj_integrity > 0) + if(tank_volume && (damage_flag == "bullet" || damage_flag == "laser")) + boom() + +/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/reagent_containers)) + return 0 //so we can refill them via their afterattack. + else + return ..() + +/obj/structure/reagent_dispensers/Initialize() + create_reagents(tank_volume) + reagents.add_reagent(reagent_id, tank_volume) + . = ..() + +/obj/structure/reagent_dispensers/examine(mob/user) + ..() + if(reagents.total_volume) + to_chat(user, "It has [reagents.total_volume] units left.") + else + to_chat(user, "It's empty.") + + +/obj/structure/reagent_dispensers/proc/boom() + visible_message("\The [src] ruptures!") + chem_splash(loc, 5, list(reagents)) + qdel(src) + +/obj/structure/reagent_dispensers/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!disassembled) + boom() + else + qdel(src) + +/obj/structure/reagent_dispensers/watertank + name = "water tank" + desc = "A water tank." + icon_state = "water" + +/obj/structure/reagent_dispensers/watertank/high + name = "high-capacity water tank" desc = "A highly pressurized water tank made to hold gargantuan amounts of water." - icon_state = "water_high" //I was gonna clean my room... - tank_volume = 100000 - -/obj/structure/reagent_dispensers/fueltank - name = "fuel tank" - desc = "A tank full of industrial welding fuel. Do not consume." - icon_state = "fuel" - reagent_id = "welding_fuel" - -/obj/structure/reagent_dispensers/fueltank/boom() + icon_state = "water_high" //I was gonna clean my room... + tank_volume = 100000 + +/obj/structure/reagent_dispensers/fueltank + name = "fuel tank" + desc = "A tank full of industrial welding fuel. Do not consume." + icon_state = "fuel" + reagent_id = "welding_fuel" + +/obj/structure/reagent_dispensers/fueltank/boom() explosion(get_turf(src), 0, 1, 5, flame_range = 5) - qdel(src) - -/obj/structure/reagent_dispensers/fueltank/blob_act(obj/structure/blob/B) - boom() - -/obj/structure/reagent_dispensers/fueltank/ex_act() - boom() - -/obj/structure/reagent_dispensers/fueltank/fire_act(exposed_temperature, exposed_volume) - boom() - -/obj/structure/reagent_dispensers/fueltank/tesla_act() - ..() //extend the zap - boom() - -/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) - ..() - if(!QDELETED(src)) //wasn't deleted by the projectile's effects. - if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) - var/boom_message = "[key_name_admin(P.firer)] triggered a fueltank explosion via projectile." - GLOB.bombers += boom_message - message_admins(boom_message) - var/log_message = "triggered a fueltank explosion via projectile." - P.firer.log_message(log_message, INDIVIDUAL_ATTACK_LOG) - log_attack("[key_name(P.firer)] [log_message]") - boom() - -/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/weapon/weldingtool)) - if(!reagents.has_reagent("welding_fuel")) - to_chat(user, "[src] is out of fuel!") - return - var/obj/item/weapon/weldingtool/W = I - if(!W.welding) - if(W.reagents.has_reagent("welding_fuel", W.max_fuel)) - to_chat(user, "Your [W.name] is already full!") - return - reagents.trans_to(W, W.max_fuel) - user.visible_message("[user] refills [user.p_their()] [W.name].", "You refill [W].") - playsound(src, 'sound/effects/refill.ogg', 50, 1) + qdel(src) + +/obj/structure/reagent_dispensers/fueltank/blob_act(obj/structure/blob/B) + boom() + +/obj/structure/reagent_dispensers/fueltank/ex_act() + boom() + +/obj/structure/reagent_dispensers/fueltank/fire_act(exposed_temperature, exposed_volume) + boom() + +/obj/structure/reagent_dispensers/fueltank/tesla_act() + ..() //extend the zap + boom() + +/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) + ..() + if(!QDELETED(src)) //wasn't deleted by the projectile's effects. + if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) + var/boom_message = "[key_name_admin(P.firer)] triggered a fueltank explosion via projectile." + GLOB.bombers += boom_message + message_admins(boom_message) + var/log_message = "triggered a fueltank explosion via projectile." + P.firer.log_message(log_message, INDIVIDUAL_ATTACK_LOG) + log_attack("[key_name(P.firer)] [log_message]") + boom() + +/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + if(!reagents.has_reagent("welding_fuel")) + to_chat(user, "[src] is out of fuel!") + return + var/obj/item/weapon/weldingtool/W = I + if(!W.welding) + if(W.reagents.has_reagent("welding_fuel", W.max_fuel)) + to_chat(user, "Your [W.name] is already full!") + return + reagents.trans_to(W, W.max_fuel) + user.visible_message("[user] refills [user.p_their()] [W.name].", "You refill [W].") + playsound(src, 'sound/effects/refill.ogg', 50, 1) W.update_icon() - else - user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [W.name]!", "That was stupid of you.") - var/message_admins = "[key_name_admin(user)] triggered a fueltank explosion via welding tool." - GLOB.bombers += message_admins - message_admins(message_admins) - var/message_log = "triggered a fueltank explosion via welding tool." - user.log_message(message_log, INDIVIDUAL_ATTACK_LOG) - log_attack("[key_name(user)] [message_log]") - boom() - return - return ..() - - -/obj/structure/reagent_dispensers/peppertank - name = "pepper spray refiller" - desc = "Contains condensed capsaicin for use in law \"enforcement.\"" - icon_state = "pepper" - anchored = 1 - density = 0 - reagent_id = "condensedcapsaicin" - + else + user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [W.name]!", "That was stupid of you.") + var/message_admins = "[key_name_admin(user)] triggered a fueltank explosion via welding tool." + GLOB.bombers += message_admins + message_admins(message_admins) + var/message_log = "triggered a fueltank explosion via welding tool." + user.log_message(message_log, INDIVIDUAL_ATTACK_LOG) + log_attack("[key_name(user)] [message_log]") + boom() + return + return ..() + + +/obj/structure/reagent_dispensers/peppertank + name = "pepper spray refiller" + desc = "Contains condensed capsaicin for use in law \"enforcement.\"" + icon_state = "pepper" + anchored = 1 + density = 0 + reagent_id = "condensedcapsaicin" + /obj/structure/reagent_dispensers/peppertank/Initialize() . = ..() - if(prob(1)) - desc = "IT'S PEPPER TIME, BITCH!" - - -/obj/structure/reagent_dispensers/water_cooler - name = "liquid cooler" - desc = "A machine that dispenses liquid to drink." - icon = 'icons/obj/vending.dmi' - icon_state = "water_cooler" - anchored = 1 - tank_volume = 500 - var/paper_cups = 25 //Paper cups left from the cooler - -/obj/structure/reagent_dispensers/water_cooler/examine(mob/user) - ..() - to_chat(user, "There are [paper_cups ? paper_cups : "no"] paper cups left.") - -/obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user) - if(!paper_cups) - to_chat(user, "There aren't any cups left!") - return - user.visible_message("[user] takes a cup from [src].", "You take a paper cup from [src].") - var/obj/item/weapon/reagent_containers/food/drinks/sillycup/S = new(get_turf(src)) - user.put_in_hands(S) - paper_cups-- - - -/obj/structure/reagent_dispensers/beerkeg - name = "beer keg" - desc = "Beer is liquid bread, it's good for you..." - icon_state = "beer" - reagent_id = "beer" - -/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) + if(prob(1)) + desc = "IT'S PEPPER TIME, BITCH!" + + +/obj/structure/reagent_dispensers/water_cooler + name = "liquid cooler" + desc = "A machine that dispenses liquid to drink." + icon = 'icons/obj/vending.dmi' + icon_state = "water_cooler" + anchored = 1 + tank_volume = 500 + var/paper_cups = 25 //Paper cups left from the cooler + +/obj/structure/reagent_dispensers/water_cooler/examine(mob/user) + ..() + to_chat(user, "There are [paper_cups ? paper_cups : "no"] paper cups left.") + +/obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user) + if(!paper_cups) + to_chat(user, "There aren't any cups left!") + return + user.visible_message("[user] takes a cup from [src].", "You take a paper cup from [src].") + var/obj/item/weapon/reagent_containers/food/drinks/sillycup/S = new(get_turf(src)) + user.put_in_hands(S) + paper_cups-- + + +/obj/structure/reagent_dispensers/beerkeg + name = "beer keg" + desc = "Beer is liquid bread, it's good for you..." + icon_state = "beer" + reagent_id = "beer" + +/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) explosion(src.loc,0,3,5,7,10) - if(!QDELETED(src)) - qdel(src) - - -/obj/structure/reagent_dispensers/virusfood - name = "virus food dispenser" - desc = "A dispenser of low-potency virus mutagenic." - icon_state = "virus_food" - anchored = 1 + if(!QDELETED(src)) + qdel(src) + + +/obj/structure/reagent_dispensers/virusfood + name = "virus food dispenser" + desc = "A dispenser of low-potency virus mutagenic." + icon_state = "virus_food" + anchored = 1 reagent_id = "virusfood" \ No newline at end of file diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 235cb1d880..96e227f199 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -231,7 +231,7 @@ if(anchored) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder2.ogg', 100, 1) + playsound(loc, 'sound/items/welder2.ogg', 100, 1) to_chat(user, "You start welding the [nicetype] in place...") if(do_after(user, 8*I.toolspeed, target = src)) if(!loc || !W.isOn()) diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm index 6ea1d958b3..4d5d760dc3 100644 --- a/code/modules/recycling/disposal-structures.dm +++ b/code/modules/recycling/disposal-structures.dm @@ -301,7 +301,7 @@ var/obj/item/weapon/weldingtool/W = I if(can_be_deconstructed(user)) if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 100, 1) to_chat(user, "You start slicing the disposal pipe...") // check if anything changed over 2 seconds if(do_after(user,30, target = src)) @@ -707,7 +707,7 @@ else if(istype(I,/obj/item/weapon/weldingtool) && mode==1) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 100, 1) to_chat(user, "You start slicing the floorweld off \the [src]...") if(do_after(user,20*I.toolspeed, target = src)) if(!src || !W.isOn()) return diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 626a3f2549..d96c14895e 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -86,7 +86,7 @@ else if(istype(I,/obj/item/weapon/weldingtool) && panel_open) var/obj/item/weapon/weldingtool/W = I if(W.remove_fuel(0,user)) - playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder2.ogg', 100, 1) to_chat(user, "You start slicing the floorweld off \the [src]...") if(do_after(user,20*I.toolspeed, target = src) && panel_open) if(!W.isOn()) @@ -334,7 +334,7 @@ . = TRUE /obj/machinery/disposal/bin/CanPass(atom/movable/mover, turf/target, height=0) - if (istype(mover,/obj/item) && mover.throwing) + if (isitem(mover) && mover.throwing) var/obj/item/I = mover if(istype(I, /obj/item/projectile)) return @@ -473,7 +473,7 @@ if(isobj(AM)) var/obj/O = AM O.loc = src - else if(istype(AM, /mob)) + else if(ismob(AM)) var/mob/M = AM if(prob(2)) // to prevent mobs being stuck in infinite loops to_chat(M, "You hit the edge of the chute.") diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 96f87ba499..75307d6cc7 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -1,174 +1,174 @@ -/obj/structure/bigDelivery - name = "large parcel" - desc = "A large delivery parcel." - icon = 'icons/obj/storage.dmi' - icon_state = "deliverycloset" - density = 1 - mouse_drag_pointer = MOUSE_ACTIVE_POINTER +/obj/structure/bigDelivery + name = "large parcel" + desc = "A large delivery parcel." + icon = 'icons/obj/storage.dmi' + icon_state = "deliverycloset" + density = 1 + mouse_drag_pointer = MOUSE_ACTIVE_POINTER var/giftwrapped = FALSE - var/sortTag = 0 - -/obj/structure/bigDelivery/attack_hand(mob/user) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) - qdel(src) - -/obj/structure/bigDelivery/Destroy() - var/turf/T = get_turf(src) - for(var/atom/movable/AM in contents) - AM.forceMove(T) - return ..() - -/obj/structure/bigDelivery/contents_explosion(severity, target) - for(var/atom/movable/AM in contents) - AM.ex_act() - -/obj/structure/bigDelivery/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/destTagger)) - var/obj/item/device/destTagger/O = W - - if(sortTag != O.currTag) - var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) - to_chat(user, "*[tag]*") - sortTag = O.currTag - playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) - - else if(istype(W, /obj/item/weapon/pen)) - var/str = copytext(sanitize(input(user,"Label text?","Set label","")),1,MAX_NAME_LEN) - if(!str || !length(str)) - to_chat(user, "Invalid text!") - return - user.visible_message("[user] labels [src] as [str].") - name = "[name] ([str])" - - else if(istype(W, /obj/item/stack/wrapping_paper) && !giftwrapped) - var/obj/item/stack/wrapping_paper/WP = W - if(WP.use(3)) - user.visible_message("[user] wraps the package in festive paper!") + var/sortTag = 0 + +/obj/structure/bigDelivery/attack_hand(mob/user) + playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) + qdel(src) + +/obj/structure/bigDelivery/Destroy() + var/turf/T = get_turf(src) + for(var/atom/movable/AM in contents) + AM.forceMove(T) + return ..() + +/obj/structure/bigDelivery/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act() + +/obj/structure/bigDelivery/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/device/destTagger)) + var/obj/item/device/destTagger/O = W + + if(sortTag != O.currTag) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) + to_chat(user, "*[tag]*") + sortTag = O.currTag + playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) + + else if(istype(W, /obj/item/weapon/pen)) + var/str = copytext(sanitize(input(user,"Label text?","Set label","")),1,MAX_NAME_LEN) + if(!str || !length(str)) + to_chat(user, "Invalid text!") + return + user.visible_message("[user] labels [src] as [str].") + name = "[name] ([str])" + + else if(istype(W, /obj/item/stack/wrapping_paper) && !giftwrapped) + var/obj/item/stack/wrapping_paper/WP = W + if(WP.use(3)) + user.visible_message("[user] wraps the package in festive paper!") giftwrapped = TRUE - icon_state = "gift[icon_state]" - else - to_chat(user, "You need more paper!") - else - return ..() - -/obj/structure/bigDelivery/relay_container_resist(mob/living/user, obj/O) - if(istype(loc, /atom/movable)) - var/atom/movable/AM = loc //can't unwrap the wrapped container if it's inside something. - AM.relay_container_resist(user, O) - return - to_chat(user, "You lean on the back of [O] and start pushing to rip the wrapping around it.") - if(do_after(user, 50, target = O)) - if(!user || user.stat != CONSCIOUS || user.loc != O || O.loc != src ) - return - to_chat(user, "You successfully removed [O]'s wrapping !") - O.loc = loc - playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) - qdel(src) - else - if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to remove [O]'s wrapping!") - - -/obj/item/smallDelivery - name = "parcel" - desc = "A brown paper delivery parcel." - icon = 'icons/obj/storage.dmi' - icon_state = "deliverypackage3" - var/giftwrapped = 0 - var/sortTag = 0 - -/obj/item/smallDelivery/contents_explosion(severity, target) - for(var/atom/movable/AM in contents) - AM.ex_act() - -/obj/item/smallDelivery/attack_self(mob/user) - user.temporarilyRemoveItemFromInventory(src, TRUE) - for(var/X in contents) - var/atom/movable/AM = X - user.put_in_hands(AM) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) - qdel(src) - -/obj/item/smallDelivery/attack_self_tk(mob/user) - if(ismob(loc)) - var/mob/M = loc - M.temporarilyRemoveItemFromInventory(src, TRUE) - for(var/X in contents) - var/atom/movable/AM = X - M.put_in_hands(AM) - else - for(var/X in contents) - var/atom/movable/AM = X - AM.forceMove(src.loc) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) - qdel(src) - -/obj/item/smallDelivery/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/device/destTagger)) - var/obj/item/device/destTagger/O = W - - if(sortTag != O.currTag) - var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) - to_chat(user, "*[tag]*") - sortTag = O.currTag - playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) - - else if(istype(W, /obj/item/weapon/pen)) - var/str = copytext(sanitize(input(user,"Label text?","Set label","")),1,MAX_NAME_LEN) - if(!str || !length(str)) - to_chat(user, "Invalid text!") - return - user.visible_message("[user] labels [src] as [str].") - name = "[name] ([str])" - - else if(istype(W, /obj/item/stack/wrapping_paper) && !giftwrapped) - var/obj/item/stack/wrapping_paper/WP = W - if(WP.use(1)) - icon_state = "gift[icon_state]" - giftwrapped = 1 - user.visible_message("[user] wraps the package in festive paper!") - else - to_chat(user, "You need more paper!") - - -/obj/item/device/destTagger - name = "destination tagger" - desc = "Used to set the destination of properly wrapped packages." - icon_state = "cargotagger" - var/currTag = 0 - //The whole system for the sorttype var is determined based on the order of this list, - //disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude - - //If you don't want to fuck up disposals, add to this list, and don't change the order. - //If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete - - w_class = WEIGHT_CLASS_TINY - item_state = "electronic" - flags = CONDUCT - slot_flags = SLOT_BELT - -/obj/item/device/destTagger/proc/openwindow(mob/user) - var/dat = "

    TagMaster 2.2

    " - - dat += "" - for (var/i = 1, i <= GLOB.TAGGERLOCATIONS.len, i++) - dat += "" - - if(i%4==0) - dat += "" - - dat += "
    [GLOB.TAGGERLOCATIONS[i]]

    Current Selection: [currTag ? GLOB.TAGGERLOCATIONS[currTag] : "None"]
    " - - user << browse(dat, "window=destTagScreen;size=450x350") - onclose(user, "destTagScreen") - -/obj/item/device/destTagger/attack_self(mob/user) - openwindow(user) - return - -/obj/item/device/destTagger/Topic(href, href_list) - add_fingerprint(usr) - if(href_list["nextTag"]) - var/n = text2num(href_list["nextTag"]) - currTag = n - openwindow(usr) + icon_state = "gift[icon_state]" + else + to_chat(user, "You need more paper!") + else + return ..() + +/obj/structure/bigDelivery/relay_container_resist(mob/living/user, obj/O) + if(ismovableatom(loc)) + var/atom/movable/AM = loc //can't unwrap the wrapped container if it's inside something. + AM.relay_container_resist(user, O) + return + to_chat(user, "You lean on the back of [O] and start pushing to rip the wrapping around it.") + if(do_after(user, 50, target = O)) + if(!user || user.stat != CONSCIOUS || user.loc != O || O.loc != src ) + return + to_chat(user, "You successfully removed [O]'s wrapping !") + O.loc = loc + playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) + qdel(src) + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + to_chat(user, "You fail to remove [O]'s wrapping!") + + +/obj/item/smallDelivery + name = "parcel" + desc = "A brown paper delivery parcel." + icon = 'icons/obj/storage.dmi' + icon_state = "deliverypackage3" + var/giftwrapped = 0 + var/sortTag = 0 + +/obj/item/smallDelivery/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act() + +/obj/item/smallDelivery/attack_self(mob/user) + user.temporarilyRemoveItemFromInventory(src, TRUE) + for(var/X in contents) + var/atom/movable/AM = X + user.put_in_hands(AM) + playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) + qdel(src) + +/obj/item/smallDelivery/attack_self_tk(mob/user) + if(ismob(loc)) + var/mob/M = loc + M.temporarilyRemoveItemFromInventory(src, TRUE) + for(var/X in contents) + var/atom/movable/AM = X + M.put_in_hands(AM) + else + for(var/X in contents) + var/atom/movable/AM = X + AM.forceMove(src.loc) + playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) + qdel(src) + +/obj/item/smallDelivery/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/device/destTagger)) + var/obj/item/device/destTagger/O = W + + if(sortTag != O.currTag) + var/tag = uppertext(GLOB.TAGGERLOCATIONS[O.currTag]) + to_chat(user, "*[tag]*") + sortTag = O.currTag + playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) + + else if(istype(W, /obj/item/weapon/pen)) + var/str = copytext(sanitize(input(user,"Label text?","Set label","")),1,MAX_NAME_LEN) + if(!str || !length(str)) + to_chat(user, "Invalid text!") + return + user.visible_message("[user] labels [src] as [str].") + name = "[name] ([str])" + + else if(istype(W, /obj/item/stack/wrapping_paper) && !giftwrapped) + var/obj/item/stack/wrapping_paper/WP = W + if(WP.use(1)) + icon_state = "gift[icon_state]" + giftwrapped = 1 + user.visible_message("[user] wraps the package in festive paper!") + else + to_chat(user, "You need more paper!") + + +/obj/item/device/destTagger + name = "destination tagger" + desc = "Used to set the destination of properly wrapped packages." + icon_state = "cargotagger" + var/currTag = 0 + //The whole system for the sorttype var is determined based on the order of this list, + //disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude + + //If you don't want to fuck up disposals, add to this list, and don't change the order. + //If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete + + w_class = WEIGHT_CLASS_TINY + item_state = "electronic" + flags = CONDUCT + slot_flags = SLOT_BELT + +/obj/item/device/destTagger/proc/openwindow(mob/user) + var/dat = "

    TagMaster 2.2

    " + + dat += "" + for (var/i = 1, i <= GLOB.TAGGERLOCATIONS.len, i++) + dat += "" + + if(i%4==0) + dat += "" + + dat += "
    [GLOB.TAGGERLOCATIONS[i]]

    Current Selection: [currTag ? GLOB.TAGGERLOCATIONS[currTag] : "None"]
    " + + user << browse(dat, "window=destTagScreen;size=450x350") + onclose(user, "destTagScreen") + +/obj/item/device/destTagger/attack_self(mob/user) + openwindow(user) + return + +/obj/item/device/destTagger/Topic(href, href_list) + add_fingerprint(usr) + if(href_list["nextTag"]) + var/n = text2num(href_list["nextTag"]) + currTag = n + openwindow(usr) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 6a71e07110..ae5449d90f 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -1,138 +1,138 @@ -/*///////////////Circuit Imprinter (By Darem)//////////////////////// - Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern are stored in -a /datum/desgin on the linked R&D console. You can then print them out in a fasion similar to a regular lathe. However, instead of -using metal and glass, it uses glass and reagents (usually sulfuric acis). - -*/ -/obj/machinery/r_n_d/circuit_imprinter +/*///////////////Circuit Imprinter (By Darem)//////////////////////// + Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern are stored in +a /datum/desgin on the linked R&D console. You can then print them out in a fasion similar to a regular lathe. However, instead of +using metal and glass, it uses glass and reagents (usually sulfuric acis). + +*/ +/obj/machinery/r_n_d/circuit_imprinter name = "circuit imprinter" - desc = "Manufactures circuit boards for the construction of machines." - icon_state = "circuit_imprinter" - container_type = OPENCONTAINER - - var/datum/material_container/materials - var/efficiency_coeff - - var/list/categories = list( - "AI Modules", - "Computer Boards", - "Teleportation Machinery", - "Medical Machinery", - "Engineering Machinery", - "Exosuit Modules", - "Hydroponics Machinery", - "Subspace Telecomms", - "Research Machinery", - "Misc. Machinery", - "Computer Parts" - ) - + desc = "Manufactures circuit boards for the construction of machines." + icon_state = "circuit_imprinter" + container_type = OPENCONTAINER + + var/datum/material_container/materials + var/efficiency_coeff + + var/list/categories = list( + "AI Modules", + "Computer Boards", + "Teleportation Machinery", + "Medical Machinery", + "Engineering Machinery", + "Exosuit Modules", + "Hydroponics Machinery", + "Subspace Telecomms", + "Research Machinery", + "Misc. Machinery", + "Computer Parts" + ) + /obj/machinery/r_n_d/circuit_imprinter/Initialize() . = ..() - materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL, MAT_BLUESPACE)) - create_reagents(0) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null) - B.apply_default_parts(src) - -/obj/machinery/r_n_d/circuit_imprinter/Destroy() - qdel(materials) - return ..() - -/obj/item/weapon/circuitboard/machine/circuit_imprinter - name = "Circuit Imprinter (Machine Board)" - build_path = /obj/machinery/r_n_d/circuit_imprinter - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/reagent_containers/glass/beaker = 2) - -/obj/machinery/r_n_d/circuit_imprinter/RefreshParts() - reagents.maximum_volume = 0 - for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) - reagents.maximum_volume += G.volume - G.reagents.trans_to(src, G.reagents.total_volume) - - materials.max_amount = 0 - for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) - materials.max_amount += M.rating * 75000 - - var/T = 0 - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - T += M.rating - efficiency_coeff = 2 ** (T - 1) //Only 1 manipulator here, you're making runtimes Razharas - -/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/structure/blob/B) - if (prob(50)) - qdel(src) - -/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material - var/list/all_materials = being_built.reagents_list + being_built.materials - - var/A = materials.amount(M) - if(!A) - A = reagents.get_reagent_amount(M) - - return round(A / max(1, (all_materials[M]/efficiency_coeff))) - -//we eject the materials upon deconstruction. -/obj/machinery/r_n_d/circuit_imprinter/on_deconstruction() - for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) - reagents.trans_to(G, G.reagents.maximum_volume) - materials.retrieve_all() - ..() - - -/obj/machinery/r_n_d/circuit_imprinter/disconnect_console() - linked_console.linked_imprinter = null - ..() - -/obj/machinery/r_n_d/circuit_imprinter/Insert_Item(obj/item/O, mob/user) - - if(istype(O,/obj/item/stack/sheet)) - . = 1 - if(!is_insertion_ready(user)) - return - var/sheet_material = materials.get_item_material_amount(O) - if(!sheet_material) - return - - if(!materials.has_space(sheet_material)) - to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") - return 1 - - var/obj/item/stack/sheet/stack = O - var/amount = round(input("How many sheets do you want to add?") as num)//No decimals - if(!in_range(src, stack) || !user.Adjacent(src)) - return - var/amount_inserted = materials.insert_stack(O,amount) - if(!amount_inserted) - return 1 - else - use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10))) - to_chat(user, "You add [amount_inserted] sheets to the [src.name].") - updateUsrDialog() - - else if(istype(O, /obj/item/weapon/ore/bluespace_crystal)) //Bluespace crystals can be either a stack or an item - . = 1 - if(!is_insertion_ready(user)) - return - var/bs_material = materials.get_item_material_amount(O) - if(!bs_material) - return - - if(!materials.has_space(bs_material)) - to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") - return 1 - - materials.insert_item(O) - use_power(MINERAL_MATERIAL_AMOUNT/10) - to_chat(user, "You add [O] to the [src.name].") - qdel(O) - updateUsrDialog() - - else if(user.a_intent != INTENT_HARM) - to_chat(user, "You cannot insert this item into the [name]!") - return 1 - else + materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL, MAT_BLUESPACE)) + create_reagents(0) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null) + B.apply_default_parts(src) + +/obj/machinery/r_n_d/circuit_imprinter/Destroy() + qdel(materials) + return ..() + +/obj/item/weapon/circuitboard/machine/circuit_imprinter + name = "Circuit Imprinter (Machine Board)" + build_path = /obj/machinery/r_n_d/circuit_imprinter + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/reagent_containers/glass/beaker = 2) + +/obj/machinery/r_n_d/circuit_imprinter/RefreshParts() + reagents.maximum_volume = 0 + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.maximum_volume += G.volume + G.reagents.trans_to(src, G.reagents.total_volume) + + materials.max_amount = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + materials.max_amount += M.rating * 75000 + + var/T = 0 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + T += M.rating + efficiency_coeff = 2 ** (T - 1) //Only 1 manipulator here, you're making runtimes Razharas + +/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/structure/blob/B) + if (prob(50)) + qdel(src) + +/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material + var/list/all_materials = being_built.reagents_list + being_built.materials + + var/A = materials.amount(M) + if(!A) + A = reagents.get_reagent_amount(M) + + return round(A / max(1, (all_materials[M]/efficiency_coeff))) + +//we eject the materials upon deconstruction. +/obj/machinery/r_n_d/circuit_imprinter/on_deconstruction() + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.trans_to(G, G.reagents.maximum_volume) + materials.retrieve_all() + ..() + + +/obj/machinery/r_n_d/circuit_imprinter/disconnect_console() + linked_console.linked_imprinter = null + ..() + +/obj/machinery/r_n_d/circuit_imprinter/Insert_Item(obj/item/O, mob/user) + + if(istype(O,/obj/item/stack/sheet)) + . = 1 + if(!is_insertion_ready(user)) + return + var/sheet_material = materials.get_item_material_amount(O) + if(!sheet_material) + return + + if(!materials.has_space(sheet_material)) + to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") + return 1 + + var/obj/item/stack/sheet/stack = O + var/amount = round(input("How many sheets do you want to add?") as num)//No decimals + if(!in_range(src, stack) || !user.Adjacent(src)) + return + var/amount_inserted = materials.insert_stack(O,amount) + if(!amount_inserted) + return 1 + else + use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10))) + to_chat(user, "You add [amount_inserted] sheets to the [src.name].") + updateUsrDialog() + + else if(istype(O, /obj/item/weapon/ore/bluespace_crystal)) //Bluespace crystals can be either a stack or an item + . = 1 + if(!is_insertion_ready(user)) + return + var/bs_material = materials.get_item_material_amount(O) + if(!bs_material) + return + + if(!materials.has_space(bs_material)) + to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") + return 1 + + materials.insert_item(O) + use_power(MINERAL_MATERIAL_AMOUNT/10) + to_chat(user, "You add [O] to the [src.name].") + qdel(O) + updateUsrDialog() + + else if(user.a_intent != INTENT_HARM) + to_chat(user, "You cannot insert this item into the [name]!") + return 1 + else return 0 \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index cb00bf6ea1..a94b3a80b3 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1,645 +1,645 @@ -/*************************************************************** -** Design Datums ** -** All the data for building stuff. ** -***************************************************************/ -/* -For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent, -you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum), -they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents. -The currently supporting non-reagent materials. All material amounts are set as the define MINERAL_MATERIAL_AMOUNT, which defaults to 2000 -- MAT_METAL (/obj/item/stack/metal). -- MAT_GLASS (/obj/item/stack/glass). -- MAT_PLASMA (/obj/item/stack/plasma). -- MAT_SILVER (/obj/item/stack/silver). -- MAT_GOLD (/obj/item/stack/gold). -- MAT_URANIUM (/obj/item/stack/uranium). -- MAT_DIAMOND (/obj/item/stack/diamond). -- MAT_BANANIUM (/obj/item/stack/bananium). -(Insert new ones here) - -Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. - -Design Guidlines -- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed. -- A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for -other types of metals and chemistry for reagents). -- Add the AUTOLATHE tag to -*/ - -/datum/design //Datum for object designs, used in construction - var/name = "Name" //Name of the created object. - var/desc = "Desc" //Description of the created object. - var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols - var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. - var/build_type = null //Flag as to what kind machine the design is built in. See defines. - var/list/materials = list() //List of materials. Format: "id" = amount. - var/construction_time //Amount of time required for building the object - var/build_path = null //The file path of the object that gets created - var/list/make_reagents = list() //Reagents produced. Format: "id" = amount. Currently only supported by the biogenerator. - var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything - var/list/reagents_list = list() //List of reagents. Format: "id" = amount. - var/maxstack = 1 - var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe - - -//////////////////////////////////////// -//Disks for transporting design datums// -//////////////////////////////////////// - -/obj/item/weapon/disk/design_disk +/*************************************************************** +** Design Datums ** +** All the data for building stuff. ** +***************************************************************/ +/* +For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent, +you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum), +they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents. +The currently supporting non-reagent materials. All material amounts are set as the define MINERAL_MATERIAL_AMOUNT, which defaults to 2000 +- MAT_METAL (/obj/item/stack/metal). +- MAT_GLASS (/obj/item/stack/glass). +- MAT_PLASMA (/obj/item/stack/plasma). +- MAT_SILVER (/obj/item/stack/silver). +- MAT_GOLD (/obj/item/stack/gold). +- MAT_URANIUM (/obj/item/stack/uranium). +- MAT_DIAMOND (/obj/item/stack/diamond). +- MAT_BANANIUM (/obj/item/stack/bananium). +(Insert new ones here) + +Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. + +Design Guidlines +- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed. +- A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for +other types of metals and chemistry for reagents). +- Add the AUTOLATHE tag to +*/ + +/datum/design //Datum for object designs, used in construction + var/name = "Name" //Name of the created object. + var/desc = "Desc" //Description of the created object. + var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols + var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. + var/build_type = null //Flag as to what kind machine the design is built in. See defines. + var/list/materials = list() //List of materials. Format: "id" = amount. + var/construction_time //Amount of time required for building the object + var/build_path = null //The file path of the object that gets created + var/list/make_reagents = list() //Reagents produced. Format: "id" = amount. Currently only supported by the biogenerator. + var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything + var/list/reagents_list = list() //List of reagents. Format: "id" = amount. + var/maxstack = 1 + var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe + + +//////////////////////////////////////// +//Disks for transporting design datums// +//////////////////////////////////////// + +/obj/item/weapon/disk/design_disk name = "Component Design Disk" - desc = "A disk for storing device design data for construction in lathes." - icon_state = "datadisk1" - materials = list(MAT_METAL=300, MAT_GLASS=100) - var/list/blueprints = list() - var/max_blueprints = 1 - + desc = "A disk for storing device design data for construction in lathes." + icon_state = "datadisk1" + materials = list(MAT_METAL=300, MAT_GLASS=100) + var/list/blueprints = list() + var/max_blueprints = 1 + /obj/item/weapon/disk/design_disk/Initialize() . = ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) - for(var/i in 1 to max_blueprints) - blueprints += null - -/obj/item/weapon/disk/design_disk/adv - name = "Advanced Component Design Disk" - desc = "A disk for storing device design data for construction in lathes. This one has extra storage space." - materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50) - max_blueprints = 5 - -/////////////////////////////////// -/////Non-Board Computer Stuff////// -/////////////////////////////////// - -/datum/design/intellicard - name = "Intellicard AI Transportation System" - desc = "Allows for the construction of an intellicard." - id = "intellicard" - req_tech = list("programming" = 3, "materials" = 3) - build_type = PROTOLATHE - materials = list(MAT_GLASS = 1000, MAT_GOLD = 200) - build_path = /obj/item/device/aicard - category = list("Electronics") - -/datum/design/paicard - name = "Personal Artificial Intelligence Card" - desc = "Allows for the construction of a pAI Card." - id = "paicard" - req_tech = list("programming" = 2) - build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500) - build_path = /obj/item/device/paicard - category = list("Electronics") - - -//////////////////////////////////////// -//////////Disk Construction Disks/////// -//////////////////////////////////////// -/datum/design/design_disk - name = "Design Storage Disk" - desc = "Produce additional disks for storing device designs." - id = "design_disk" - req_tech = list("programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) - build_path = /obj/item/weapon/disk/design_disk - category = list("Electronics") - -/datum/design/design_disk_adv - name = "Advanced Design Storage Disk" - desc = "Produce additional disks for storing device designs." - id = "design_disk_adv" - req_tech = list("programming" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) - build_path = /obj/item/weapon/disk/design_disk/adv - category = list("Electronics") - -/datum/design/tech_disk - name = "Technology Data Storage Disk" - desc = "Produce additional disks for storing technology data." - id = "tech_disk" - req_tech = list("programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) - build_path = /obj/item/weapon/disk/tech_disk - category = list("Electronics") - -/datum/design/tech_disk_adv - name = "Advanced Technology Data Storage Disk" - desc = "Produce disks with extra storage capacity for storing technology data." - id = "tech_disk_adv" - req_tech = list("programming" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) - build_path = /obj/item/weapon/disk/tech_disk/adv - category = list("Electronics") - -/datum/design/tech_disk_super_adv - name = "Quantum Technology Data Storage Disk" - desc = "Produce disks with extremely large storage capacity for storing technology data." - id = "tech_disk_super_adv" - req_tech = list("programming" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=100, MAT_GOLD=100, MAT_BLUESPACE = 100) - build_path = /obj/item/weapon/disk/tech_disk/super_adv - category = list("Electronics") - -///////////////////////////////////////// -/////////////////Mining////////////////// -///////////////////////////////////////// - -/datum/design/drill - name = "Mining Drill" - desc = "Yours is the drill that will pierce through the rock walls." - id = "drill" - req_tech = list("materials" = 2, "powerstorage" = 2, "engineering" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners. - build_path = /obj/item/weapon/pickaxe/drill - category = list("Mining Designs") - -/datum/design/drill_diamond - name = "Diamond-Tipped Mining Drill" - desc = "Yours is the drill that will pierce the heavens!" - id = "drill_diamond" - req_tech = list("materials" = 6, "powerstorage" = 5, "engineering" = 5) - build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed. - build_path = /obj/item/weapon/pickaxe/drill/diamonddrill - category = list("Mining Designs") - -/datum/design/plasmacutter - name = "Plasma Cutter" - desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." - id = "plasmacutter" - req_tech = list("materials" = 3, "plasmatech" = 3, "magnets" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400) - build_path = /obj/item/weapon/gun/energy/plasmacutter - category = list("Mining Designs") - -/datum/design/plasmacutter_adv - name = "Advanced Plasma Cutter" - desc = "It's an advanced plasma cutter, oh my god." - id = "plasmacutter_adv" - req_tech = list("materials" = 4, "plasmatech" = 4, "engineering" = 2, "combat" = 3, "magnets" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500) - build_path = /obj/item/weapon/gun/energy/plasmacutter/adv - category = list("Mining Designs") - -/datum/design/jackhammer - name = "Sonic Jackhammer" - desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well." - id = "jackhammer" - req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 6, "magnets" = 5) - build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000) - build_path = /obj/item/weapon/pickaxe/drill/jackhammer - category = list("Mining Designs") - -/datum/design/superresonator - name = "Upgraded Resonator" - desc = "An upgraded version of the resonator that allows more fields to be active at once." - id = "superresonator" - req_tech = list("materials" = 4, "powerstorage" = 3, "engineering" = 3, "magnets" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000) - build_path = /obj/item/weapon/resonator/upgraded - category = list("Mining Designs") - -/datum/design/trigger_guard_mod - name = "Kinetic Accelerator Trigger Guard Mod" - desc = "A device which allows kinetic accelerators to be wielded by any organism." - id = "triggermod" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/borg/upgrade/modkit/trigger_guard - category = list("Mining Designs") - -/datum/design/damage_mod - name = "Kinetic Accelerator Damage Mod" - desc = "A device which allows kinetic accelerators to deal more damage." - id = "damagemod" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/borg/upgrade/modkit/damage - category = list("Mining Designs", "Cyborg Upgrade Modules") - -/datum/design/cooldown_mod - name = "Kinetic Accelerator Cooldown Mod" - desc = "A device which decreases the cooldown of a Kinetic Accelerator." - id = "cooldownmod" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/borg/upgrade/modkit/cooldown - category = list("Mining Designs", "Cyborg Upgrade Modules") - -/datum/design/range_mod - name = "Kinetic Accelerator Range Mod" - desc = "A device which allows kinetic accelerators to fire at a further range." - id = "rangemod" - req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/borg/upgrade/modkit/range - category = list("Mining Designs", "Cyborg Upgrade Modules") - -/datum/design/hyperaccelerator - name = "Kinetic Accelerator Mining AoE Mod" - desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." - id = "hypermod" - req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) - build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) - build_path = /obj/item/borg/upgrade/modkit/aoe/turfs - category = list("Mining Designs", "Cyborg Upgrade Modules") - - -///////////////////////////////////////// -//////////////Blue Space///////////////// -///////////////////////////////////////// - -/datum/design/beacon - name = "Tracking Beacon" - desc = "A blue space tracking beacon." - id = "beacon" - req_tech = list("bluespace" = 1) - build_type = PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 100) - build_path = /obj/item/device/radio/beacon - category = list("Bluespace Designs") - -/datum/design/bag_holding - name = "Bag of Holding" - desc = "A backpack that opens into a localized pocket of bluespace." - id = "bag_holding" - req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) - build_type = PROTOLATHE - materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000) - build_path = /obj/item/weapon/storage/backpack/holding - category = list("Bluespace Designs") - -/datum/design/bluespace_crystal - name = "Artificial Bluespace Crystal" - desc = "A small blue crystal with mystical properties." - id = "bluespace_crystal" - req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4) - build_type = PROTOLATHE - materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) - build_path = /obj/item/weapon/ore/bluespace_crystal/artificial - category = list("Bluespace Designs") - -/datum/design/telesci_gps - name = "GPS Device" - desc = "Little thingie that can track its position at all times." - id = "telesci_gps" - req_tech = list("materials" = 2, "bluespace" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 1000) - build_path = /obj/item/device/gps - category = list("Bluespace Designs") - -/datum/design/miningsatchel_holding - name = "Mining Satchel of Holding" - desc = "A mining satchel that can hold an infinite amount of ores." - id = "minerbag_holding" - req_tech = list("bluespace" = 4, "materials" = 3, "engineering" = 4) - build_type = PROTOLATHE - materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience - build_path = /obj/item/weapon/storage/bag/ore/holding - category = list("Bluespace Designs") - - -///////////////////////////////////////// -/////////////////HUDs//////////////////// -///////////////////////////////////////// - -/datum/design/health_hud - name = "Health Scanner HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." - id = "health_hud" - req_tech = list("biotech" = 2, "magnets" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/hud/health - category = list("Equipment") - -/datum/design/health_hud_night - name = "Night Vision Health Scanner HUD" - desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." - id = "health_hud_night" - req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350) - build_path = /obj/item/clothing/glasses/hud/health/night - category = list("Equipment") - -/datum/design/security_hud - name = "Security HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." - id = "security_hud" - req_tech = list("magnets" = 3, "combat" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/hud/security - category = list("Equipment") - -/datum/design/security_hud_night - name = "Night Vision Security HUD" - desc = "A heads-up display which provides id data and vision in complete darkness." - id = "security_hud_night" - req_tech = list("combat" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350) - build_path = /obj/item/clothing/glasses/hud/security/night - category = list("Equipment") - -/datum/design/diagnostic_hud - name = "Diagnostic HUD" - desc = "A HUD used to analyze and determine faults within robotic machinery." - id = "dianostic_hud" - req_tech = list("magnets" = 3, "engineering" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/hud/diagnostic - category = list("Equipment") - -/datum/design/diagnostic_hud_night - name = "Night Vision Diagnostic HUD" - desc = "Upgraded version of the diagnostic HUD designed to function during a power failure." - id = "dianostic_hud_night" - req_tech = list("magnets" = 5, "plasmatech" = 4, "engineering" = 6, "powerstorage" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300) - build_path = /obj/item/clothing/glasses/hud/diagnostic/night - category = list("Equipment") - -///////////////////////////////////////// -//////////////////Test/////////////////// -///////////////////////////////////////// - - /* test - name = "Test Design" - desc = "A design to test the new protolathe." - id = "protolathe_test" - build_type = PROTOLATHE - req_tech = list("materials" = 1) - materials = list(MAT_GOLD = 3000, "iron" = 15, "copper" = 10, MAT_SILVER = 2500) - build_path = /obj/item/weapon/banhammer" - category = list("Weapons") */ - -///////////////////////////////////////// -//////////////////Misc/////////////////// -///////////////////////////////////////// - -/datum/design/welding_mask - name = "Welding Gas Mask" - desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." - id = "weldingmask" - req_tech = list("materials" = 2, "engineering" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) - build_path = /obj/item/clothing/mask/gas/welding - category = list("Equipment") - -/datum/design/portaseeder - name = "Portable Seed Extractor" - desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." - build_type = PROTOLATHE - req_tech = list("biotech" = 3, "engineering" = 2) - materials = list(MAT_METAL = 1000, MAT_GLASS = 400) - build_path = /obj/item/weapon/storage/bag/plants/portaseeder - category = list("Equipment") - -/datum/design/air_horn - name = "Air Horn" - desc = "Damn son, where'd you find this?" - id = "air_horn" - req_tech = list("materials" = 4, "engineering" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) - build_path = /obj/item/weapon/bikehorn/airhorn - category = list("Equipment") - -/datum/design/mesons - name = "Optical Meson Scanners" - desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." - id = "mesons" - req_tech = list("magnets" = 2, "engineering" = 2, "plasmatech" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/meson - category = list("Equipment") - -/datum/design/engine_goggles - name = "Engineering Scanner Goggles" - desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes." - id = "engine_goggles" - req_tech = list("materials" = 4, "magnets" = 3, "engineering" = 4, "plasmatech" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100) - build_path = /obj/item/clothing/glasses/meson/engine - category = list("Equipment") - -/datum/design/tray_goggles - name = "Optical T-Ray Scanners" - desc = "Used by engineering staff to see underfloor objects such as cables and pipes." - id = "tray_goggles" - req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/meson/engine/tray - category = list("Equipment") - -/datum/design/nvgmesons - name = "Night Vision Optical Meson Scanners" - desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display." - id = "nvgmesons" - req_tech = list("magnets" = 5, "plasmatech" = 5, "engineering" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) - build_path = /obj/item/clothing/glasses/meson/night - category = list("Equipment") - -/datum/design/night_vision_goggles - name = "Night Vision Goggles" - desc = "Goggles that let you see through darkness unhindered." - id = "night_visision_goggles" - req_tech = list("materials" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 5) - build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) - build_path = /obj/item/clothing/glasses/night - category = list("Equipment") - -/datum/design/magboots - name = "Magnetic Boots" - desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." - id = "magboots" - req_tech = list("materials" = 4, "magnets" = 4, "engineering" = 5) - build_type = PROTOLATHE - materials = list(MAT_METAL = 4500, MAT_SILVER = 1500, MAT_GOLD = 2500) - build_path = /obj/item/clothing/shoes/magboots - category = list("Equipment") - -/datum/design/sci_goggles - name = "Science Goggles" - desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." - id = "scigoggles" - req_tech = list("magnets" = 2) - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/science - category = list("Equipment") - -/datum/design/handdrill - name = "Hand Drill" - desc = "A small electric hand drill with an interchangable screwdriver and bolt bit" - id = "handdrill" - req_tech = list("materials" = 4, "engineering" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500) - build_path = /obj/item/weapon/screwdriver/power - category = list("Equipment") - -/datum/design/jawsoflife - name = "Jaws of Life" - desc = "A small, compact Jaws of Life with an interchangable pry jaws and cutting jaws" - id = "jawsoflife" - req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) // added one more requirment since the Jaws of Life are a bit OP - build_path = /obj/item/weapon/crowbar/power - build_type = PROTOLATHE - materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500) - category = list("Equipment") - -/datum/design/alienwrench - name = "Alien Wrench" - desc = "An advanced wrench obtained through Abductor technology." - id = "alien_wrench" - req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) - build_path = /obj/item/weapon/wrench/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/alienwirecutters - name = "Alien Wirecutters" - desc = "Advanced wirecutters obtained through Abductor technology." - id = "alien_wirecutters" - req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) - build_path = /obj/item/weapon/wirecutters/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/alienscrewdriver - name = "Alien Screwdriver" - desc = "An advanced screwdriver obtained through Abductor technology." - id = "alien_screwdriver" - req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) - build_path = /obj/item/weapon/screwdriver/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/aliencrowbar - name = "Alien Crowbar" - desc = "An advanced crowbar obtained through Abductor technology." - id = "alien_crowbar" - req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) - build_path = /obj/item/weapon/crowbar/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/alienwelder - name = "Alien Welding Tool" - desc = "An advanced welding tool obtained through Abductor technology." - id = "alien_welder" - req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4) - build_path = /obj/item/weapon/weldingtool/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/alienmultitool - name = "Alien Multitool" - desc = "An advanced multitool obtained through Abductor technology." - id = "alien_multitool" - req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4) - build_path = /obj/item/device/multitool/abductor - build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) - category = list("Equipment") - -/datum/design/diskplantgene - name = "Plant Data Disk" - desc = "A disk for storing plant genetic data." - id = "diskplantgene" - req_tech = list("programming" = 4, "biotech" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL=200, MAT_GLASS=100) - build_path = /obj/item/weapon/disk/plantgene - category = list("Electronics") + for(var/i in 1 to max_blueprints) + blueprints += null -///////////////////////////////////////// -////////////Janitor Designs////////////// -///////////////////////////////////////// - -/datum/design/advmop - name = "Advanced Mop" - desc = "An upgraded mop with a large internal capacity for holding water or other cleaning chemicals." - id = "advmop" - req_tech = list("materials" = 4, "engineering" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 200) - build_path = /obj/item/weapon/mop/advanced - category = list("Equipment") - -/datum/design/blutrash - name = "Trashbag of Holding" - desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage." - id = "blutrash" - req_tech = list("materials" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 3) - build_type = PROTOLATHE - materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500) - build_path = /obj/item/weapon/storage/bag/trash/bluespace - category = list("Equipment") - -/datum/design/buffer - name = "Floor Buffer Upgrade" - desc = "A floor buffer that can be attached to vehicular janicarts." - id = "buffer" - req_tech = list("materials" = 4, "engineering" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 200) - build_path = /obj/item/janiupgrade - category = list("Equipment") - -/datum/design/holosign - name = "Holographic Sign Projector" - desc = "A holograpic projector used to project various warning signs." - id = "holosign" - req_tech = list("programming" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/weapon/holosign_creator - category = list("Equipment") - -///////////////////////////////////////// -////////////Tools////////////// -///////////////////////////////////////// - -/datum/design/exwelder - name = "Experimental Welding Tool" - desc = "An experimental welder capable of self-fuel generation." - id = "exwelder" - req_tech = list("materials" = 4, "engineering" = 5, "bluespace" = 3, "plasmatech" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200) - build_path = /obj/item/weapon/weldingtool/experimental - category = list("Equipment") +/obj/item/weapon/disk/design_disk/adv + name = "Advanced Component Design Disk" + desc = "A disk for storing device design data for construction in lathes. This one has extra storage space." + materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50) + max_blueprints = 5 + +/////////////////////////////////// +/////Non-Board Computer Stuff////// +/////////////////////////////////// + +/datum/design/intellicard + name = "Intellicard AI Transportation System" + desc = "Allows for the construction of an intellicard." + id = "intellicard" + req_tech = list("programming" = 3, "materials" = 3) + build_type = PROTOLATHE + materials = list(MAT_GLASS = 1000, MAT_GOLD = 200) + build_path = /obj/item/device/aicard + category = list("Electronics") + +/datum/design/paicard + name = "Personal Artificial Intelligence Card" + desc = "Allows for the construction of a pAI Card." + id = "paicard" + req_tech = list("programming" = 2) + build_type = PROTOLATHE + materials = list(MAT_GLASS = 500, MAT_METAL = 500) + build_path = /obj/item/device/paicard + category = list("Electronics") + + +//////////////////////////////////////// +//////////Disk Construction Disks/////// +//////////////////////////////////////// +/datum/design/design_disk + name = "Design Storage Disk" + desc = "Produce additional disks for storing device designs." + id = "design_disk" + req_tech = list("programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100) + build_path = /obj/item/weapon/disk/design_disk + category = list("Electronics") + +/datum/design/design_disk_adv + name = "Advanced Design Storage Disk" + desc = "Produce additional disks for storing device designs." + id = "design_disk_adv" + req_tech = list("programming" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + build_path = /obj/item/weapon/disk/design_disk/adv + category = list("Electronics") + +/datum/design/tech_disk + name = "Technology Data Storage Disk" + desc = "Produce additional disks for storing technology data." + id = "tech_disk" + req_tech = list("programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100) + build_path = /obj/item/weapon/disk/tech_disk + category = list("Electronics") + +/datum/design/tech_disk_adv + name = "Advanced Technology Data Storage Disk" + desc = "Produce disks with extra storage capacity for storing technology data." + id = "tech_disk_adv" + req_tech = list("programming" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + build_path = /obj/item/weapon/disk/tech_disk/adv + category = list("Electronics") + +/datum/design/tech_disk_super_adv + name = "Quantum Technology Data Storage Disk" + desc = "Produce disks with extremely large storage capacity for storing technology data." + id = "tech_disk_super_adv" + req_tech = list("programming" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=100, MAT_GOLD=100, MAT_BLUESPACE = 100) + build_path = /obj/item/weapon/disk/tech_disk/super_adv + category = list("Electronics") + +///////////////////////////////////////// +/////////////////Mining////////////////// +///////////////////////////////////////// + +/datum/design/drill + name = "Mining Drill" + desc = "Yours is the drill that will pierce through the rock walls." + id = "drill" + req_tech = list("materials" = 2, "powerstorage" = 2, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners. + build_path = /obj/item/weapon/pickaxe/drill + category = list("Mining Designs") + +/datum/design/drill_diamond + name = "Diamond-Tipped Mining Drill" + desc = "Yours is the drill that will pierce the heavens!" + id = "drill_diamond" + req_tech = list("materials" = 6, "powerstorage" = 5, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed. + build_path = /obj/item/weapon/pickaxe/drill/diamonddrill + category = list("Mining Designs") + +/datum/design/plasmacutter + name = "Plasma Cutter" + desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." + id = "plasmacutter" + req_tech = list("materials" = 3, "plasmatech" = 3, "magnets" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400) + build_path = /obj/item/weapon/gun/energy/plasmacutter + category = list("Mining Designs") + +/datum/design/plasmacutter_adv + name = "Advanced Plasma Cutter" + desc = "It's an advanced plasma cutter, oh my god." + id = "plasmacutter_adv" + req_tech = list("materials" = 4, "plasmatech" = 4, "engineering" = 2, "combat" = 3, "magnets" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500) + build_path = /obj/item/weapon/gun/energy/plasmacutter/adv + category = list("Mining Designs") + +/datum/design/jackhammer + name = "Sonic Jackhammer" + desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well." + id = "jackhammer" + req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 6, "magnets" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000) + build_path = /obj/item/weapon/pickaxe/drill/jackhammer + category = list("Mining Designs") + +/datum/design/superresonator + name = "Upgraded Resonator" + desc = "An upgraded version of the resonator that allows more fields to be active at once." + id = "superresonator" + req_tech = list("materials" = 4, "powerstorage" = 3, "engineering" = 3, "magnets" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000) + build_path = /obj/item/weapon/resonator/upgraded + category = list("Mining Designs") + +/datum/design/trigger_guard_mod + name = "Kinetic Accelerator Trigger Guard Mod" + desc = "A device which allows kinetic accelerators to be wielded by any organism." + id = "triggermod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/trigger_guard + category = list("Mining Designs") + +/datum/design/damage_mod + name = "Kinetic Accelerator Damage Mod" + desc = "A device which allows kinetic accelerators to deal more damage." + id = "damagemod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/damage + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/cooldown_mod + name = "Kinetic Accelerator Cooldown Mod" + desc = "A device which decreases the cooldown of a Kinetic Accelerator." + id = "cooldownmod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/cooldown + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/range_mod + name = "Kinetic Accelerator Range Mod" + desc = "A device which allows kinetic accelerators to fire at a further range." + id = "rangemod" + req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + build_path = /obj/item/borg/upgrade/modkit/range + category = list("Mining Designs", "Cyborg Upgrade Modules") + +/datum/design/hyperaccelerator + name = "Kinetic Accelerator Mining AoE Mod" + desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." + id = "hypermod" + req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) + build_type = PROTOLATHE | MECHFAB + materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) + build_path = /obj/item/borg/upgrade/modkit/aoe/turfs + category = list("Mining Designs", "Cyborg Upgrade Modules") + + +///////////////////////////////////////// +//////////////Blue Space///////////////// +///////////////////////////////////////// + +/datum/design/beacon + name = "Tracking Beacon" + desc = "A blue space tracking beacon." + id = "beacon" + req_tech = list("bluespace" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 150, MAT_GLASS = 100) + build_path = /obj/item/device/radio/beacon + category = list("Bluespace Designs") + +/datum/design/bag_holding + name = "Bag of Holding" + desc = "A backpack that opens into a localized pocket of bluespace." + id = "bag_holding" + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) + build_type = PROTOLATHE + materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000) + build_path = /obj/item/weapon/storage/backpack/holding + category = list("Bluespace Designs") + +/datum/design/bluespace_crystal + name = "Artificial Bluespace Crystal" + desc = "A small blue crystal with mystical properties." + id = "bluespace_crystal" + req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4) + build_type = PROTOLATHE + materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) + build_path = /obj/item/weapon/ore/bluespace_crystal/artificial + category = list("Bluespace Designs") + +/datum/design/telesci_gps + name = "GPS Device" + desc = "Little thingie that can track its position at all times." + id = "telesci_gps" + req_tech = list("materials" = 2, "bluespace" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 1000) + build_path = /obj/item/device/gps + category = list("Bluespace Designs") + +/datum/design/miningsatchel_holding + name = "Mining Satchel of Holding" + desc = "A mining satchel that can hold an infinite amount of ores." + id = "minerbag_holding" + req_tech = list("bluespace" = 4, "materials" = 3, "engineering" = 4) + build_type = PROTOLATHE + materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience + build_path = /obj/item/weapon/storage/bag/ore/holding + category = list("Bluespace Designs") + + +///////////////////////////////////////// +/////////////////HUDs//////////////////// +///////////////////////////////////////// + +/datum/design/health_hud + name = "Health Scanner HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." + id = "health_hud" + req_tech = list("biotech" = 2, "magnets" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/hud/health + category = list("Equipment") + +/datum/design/health_hud_night + name = "Night Vision Health Scanner HUD" + desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." + id = "health_hud_night" + req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350) + build_path = /obj/item/clothing/glasses/hud/health/night + category = list("Equipment") + +/datum/design/security_hud + name = "Security HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." + id = "security_hud" + req_tech = list("magnets" = 3, "combat" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/hud/security + category = list("Equipment") + +/datum/design/security_hud_night + name = "Night Vision Security HUD" + desc = "A heads-up display which provides id data and vision in complete darkness." + id = "security_hud_night" + req_tech = list("combat" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350) + build_path = /obj/item/clothing/glasses/hud/security/night + category = list("Equipment") + +/datum/design/diagnostic_hud + name = "Diagnostic HUD" + desc = "A HUD used to analyze and determine faults within robotic machinery." + id = "dianostic_hud" + req_tech = list("magnets" = 3, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/hud/diagnostic + category = list("Equipment") + +/datum/design/diagnostic_hud_night + name = "Night Vision Diagnostic HUD" + desc = "Upgraded version of the diagnostic HUD designed to function during a power failure." + id = "dianostic_hud_night" + req_tech = list("magnets" = 5, "plasmatech" = 4, "engineering" = 6, "powerstorage" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300) + build_path = /obj/item/clothing/glasses/hud/diagnostic/night + category = list("Equipment") + +///////////////////////////////////////// +//////////////////Test/////////////////// +///////////////////////////////////////// + + /* test + name = "Test Design" + desc = "A design to test the new protolathe." + id = "protolathe_test" + build_type = PROTOLATHE + req_tech = list("materials" = 1) + materials = list(MAT_GOLD = 3000, "iron" = 15, "copper" = 10, MAT_SILVER = 2500) + build_path = /obj/item/weapon/banhammer" + category = list("Weapons") */ + +///////////////////////////////////////// +//////////////////Misc/////////////////// +///////////////////////////////////////// + +/datum/design/welding_mask + name = "Welding Gas Mask" + desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." + id = "weldingmask" + req_tech = list("materials" = 2, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) + build_path = /obj/item/clothing/mask/gas/welding + category = list("Equipment") + +/datum/design/portaseeder + name = "Portable Seed Extractor" + desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." + build_type = PROTOLATHE + req_tech = list("biotech" = 3, "engineering" = 2) + materials = list(MAT_METAL = 1000, MAT_GLASS = 400) + build_path = /obj/item/weapon/storage/bag/plants/portaseeder + category = list("Equipment") + +/datum/design/air_horn + name = "Air Horn" + desc = "Damn son, where'd you find this?" + id = "air_horn" + req_tech = list("materials" = 4, "engineering" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) + build_path = /obj/item/weapon/bikehorn/airhorn + category = list("Equipment") + +/datum/design/mesons + name = "Optical Meson Scanners" + desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." + id = "mesons" + req_tech = list("magnets" = 2, "engineering" = 2, "plasmatech" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/meson + category = list("Equipment") + +/datum/design/engine_goggles + name = "Engineering Scanner Goggles" + desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes." + id = "engine_goggles" + req_tech = list("materials" = 4, "magnets" = 3, "engineering" = 4, "plasmatech" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100) + build_path = /obj/item/clothing/glasses/meson/engine + category = list("Equipment") + +/datum/design/tray_goggles + name = "Optical T-Ray Scanners" + desc = "Used by engineering staff to see underfloor objects such as cables and pipes." + id = "tray_goggles" + req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/meson/engine/tray + category = list("Equipment") + +/datum/design/nvgmesons + name = "Night Vision Optical Meson Scanners" + desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display." + id = "nvgmesons" + req_tech = list("magnets" = 5, "plasmatech" = 5, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + build_path = /obj/item/clothing/glasses/meson/night + category = list("Equipment") + +/datum/design/night_vision_goggles + name = "Night Vision Goggles" + desc = "Goggles that let you see through darkness unhindered." + id = "night_visision_goggles" + req_tech = list("materials" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + build_path = /obj/item/clothing/glasses/night + category = list("Equipment") + +/datum/design/magboots + name = "Magnetic Boots" + desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." + id = "magboots" + req_tech = list("materials" = 4, "magnets" = 4, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 4500, MAT_SILVER = 1500, MAT_GOLD = 2500) + build_path = /obj/item/clothing/shoes/magboots + category = list("Equipment") + +/datum/design/sci_goggles + name = "Science Goggles" + desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." + id = "scigoggles" + req_tech = list("magnets" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/science + category = list("Equipment") + +/datum/design/handdrill + name = "Hand Drill" + desc = "A small electric hand drill with an interchangable screwdriver and bolt bit" + id = "handdrill" + req_tech = list("materials" = 4, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500) + build_path = /obj/item/weapon/screwdriver/power + category = list("Equipment") + +/datum/design/jawsoflife + name = "Jaws of Life" + desc = "A small, compact Jaws of Life with an interchangable pry jaws and cutting jaws" + id = "jawsoflife" + req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) // added one more requirment since the Jaws of Life are a bit OP + build_path = /obj/item/weapon/crowbar/power + build_type = PROTOLATHE + materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500) + category = list("Equipment") + +/datum/design/alienwrench + name = "Alien Wrench" + desc = "An advanced wrench obtained through Abductor technology." + id = "alien_wrench" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wrench/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwirecutters + name = "Alien Wirecutters" + desc = "Advanced wirecutters obtained through Abductor technology." + id = "alien_wirecutters" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wirecutters/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienscrewdriver + name = "Alien Screwdriver" + desc = "An advanced screwdriver obtained through Abductor technology." + id = "alien_screwdriver" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/screwdriver/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/aliencrowbar + name = "Alien Crowbar" + desc = "An advanced crowbar obtained through Abductor technology." + id = "alien_crowbar" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/crowbar/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwelder + name = "Alien Welding Tool" + desc = "An advanced welding tool obtained through Abductor technology." + id = "alien_welder" + req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4) + build_path = /obj/item/weapon/weldingtool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienmultitool + name = "Alien Multitool" + desc = "An advanced multitool obtained through Abductor technology." + id = "alien_multitool" + req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4) + build_path = /obj/item/device/multitool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/diskplantgene + name = "Plant Data Disk" + desc = "A disk for storing plant genetic data." + id = "diskplantgene" + req_tech = list("programming" = 4, "biotech" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL=200, MAT_GLASS=100) + build_path = /obj/item/weapon/disk/plantgene + category = list("Electronics") + +///////////////////////////////////////// +////////////Janitor Designs////////////// +///////////////////////////////////////// + +/datum/design/advmop + name = "Advanced Mop" + desc = "An upgraded mop with a large internal capacity for holding water or other cleaning chemicals." + id = "advmop" + req_tech = list("materials" = 4, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2500, MAT_GLASS = 200) + build_path = /obj/item/weapon/mop/advanced + category = list("Equipment") + +/datum/design/blutrash + name = "Trashbag of Holding" + desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage." + id = "blutrash" + req_tech = list("materials" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 3) + build_type = PROTOLATHE + materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500) + build_path = /obj/item/weapon/storage/bag/trash/bluespace + category = list("Equipment") + +/datum/design/buffer + name = "Floor Buffer Upgrade" + desc = "A floor buffer that can be attached to vehicular janicarts." + id = "buffer" + req_tech = list("materials" = 4, "engineering" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 200) + build_path = /obj/item/janiupgrade + category = list("Equipment") + +/datum/design/holosign + name = "Holographic Sign Projector" + desc = "A holograpic projector used to project various warning signs." + id = "holosign" + req_tech = list("programming" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/weapon/holosign_creator + category = list("Equipment") + +///////////////////////////////////////// +////////////Tools////////////// +///////////////////////////////////////// + +/datum/design/exwelder + name = "Experimental Welding Tool" + desc = "An experimental welder capable of self-fuel generation." + id = "exwelder" + req_tech = list("materials" = 4, "engineering" = 5, "bluespace" = 3, "plasmatech" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200) + build_path = /obj/item/weapon/weldingtool/experimental + category = list("Equipment") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 3a35b81e97..7ce12b5d82 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -106,14 +106,6 @@ build_path = /obj/item/weapon/circuitboard/computer/launchpad_console category = list ("Teleportation Machinery") -/*/datum/design/board/telepad - name = "Machine Design (Telepad Board)" - desc = "The circuit board for a telescience telepad." - id = "telepad" - req_tech = list("programming" = 4, "bluespace" = 5, "plasmatech" = 4, "engineering" = 4) - build_path = /obj/item/weapon/circuitboard/machine/telesci_pad - category = list ("Teleportation Machinery") -*/ /datum/design/board/teleconsole name = "Computer Design (Teleporter Console)" desc = "Allows for the construction of circuit boards used to build a teleporter control console." @@ -122,14 +114,6 @@ build_path = /obj/item/weapon/circuitboard/computer/teleporter category = list("Teleportation Machinery") -/* /datum/design/board/telesci_console - name = "Computer Design (Telepad Control Console Board)" - desc = "Allows for the construction of circuit boards used to build a telescience console." - id = "telesci_console" - req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4) - build_path = /obj/item/weapon/circuitboard/computer/telesci_console - category = list("Teleportation Machinery") -*/ /datum/design/board/sleeper name = "Machine Design (Sleeper Board)" desc = "The circuit board for a sleeper." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index edccdbf0f9..51485380ce 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -768,7 +768,7 @@ construction_time = 100 build_path = /obj/item/device/assembly/flash/handheld category = list("Misc") -/* + /datum/design/flightsuit //Multi step build process/redo WIP name = "Flight Suit" desc = "A specialized hardsuit that is able to attach a flightpack and accessories.." @@ -801,4 +801,3 @@ construction_time = 100 category = list("Misc") req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 3, "materials" = 3, "engineering" = 2, "powerstorage" = 2) -*/ \ No newline at end of file diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 3e06781304..0f267aa311 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -201,7 +201,6 @@ build_path = /obj/item/organ/eyes/robotic/glow category = list("Misc", "Medical Designs") - /datum/design/cyberimp_breather name = "Breathing Tube Implant" desc = "This simple implant adds an internals connector to your back, allowing you to use internals without a mask and protecting you from being choked." diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 393e64bd0d..aa52acc2fb 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -78,7 +78,6 @@ build_path = /obj/item/weapon/inducer/sci category = list("Power Designs") - /datum/design/board/pacman name = "Machine Design (PACMAN-type Generator Board)" desc = "The circuit board that for a PACMAN-type portable generator." diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm index 5c9c0f6831..126d0da775 100644 --- a/code/modules/research/designs/smelting_designs.dm +++ b/code/modules/research/designs/smelting_designs.dm @@ -17,6 +17,14 @@ build_path = /obj/item/stack/sheet/mineral/plastitanium category = list("initial") +/datum/design/plaglass_alloy + name = "Plasma + Glass alloy" + id = "plasmaglass" + build_type = SMELTER + materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/glass/plasma + category = list("initial") + /datum/design/alienalloy name = "Alien Alloy" desc = "A sheet of reverse-engineered alien alloy." @@ -25,4 +33,4 @@ build_type = PROTOLATHE | SMELTER materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000) build_path = /obj/item/stack/sheet/mineral/abductor - category = list("Stock Parts") \ No newline at end of file + category = list("Stock Parts") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 15704651f6..3d94ccef58 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -52,14 +52,14 @@ build_path = /obj/item/weapon/shield/riot/tele category = list("Weapons") -/datum/design/lasercannon - name = "Accelerator Laser Cannon" - desc = "A heavy duty laser cannon. It does more damage the farther away the target is." - id = "lasercannon" - req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 3) +/datum/design/beamrifle + name = "Beam Marksman Rifle" + desc = "A powerful long ranged anti-material rifle that fires charged particle beams to obliterate targets." + id = "beamrifle" + req_tech = list("combat" = 7, "magnets" = 5, "powerstorage" = 5, "materials" = 7, "programming" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 3000, MAT_DIAMOND = 3000) - build_path = /obj/item/weapon/gun/energy/lasercannon + materials = list(MAT_METAL = 10000, MAT_GLASS = 5000, MAT_DIAMOND = 5000, MAT_URANIUM = 8000, MAT_SILVER = 4500, MAT_GOLD = 5000) + build_path = /obj/item/weapon/gun/energy/beam_rifle category = list("Weapons") /datum/design/decloner @@ -258,4 +258,4 @@ build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500) build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large - category = list("Weapons") \ No newline at end of file + category = list("Weapons") diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 12cfe93a3f..872ccd359d 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -1,69 +1,69 @@ - - -/* -Destructive Analyzer - -It is used to destroy hand-held objects and advance technological research. Controls are in the linked R&D console. - -Note: Must be placed within 3 tiles of the R&D Console -*/ -/obj/machinery/r_n_d/destructive_analyzer + + +/* +Destructive Analyzer + +It is used to destroy hand-held objects and advance technological research. Controls are in the linked R&D console. + +Note: Must be placed within 3 tiles of the R&D Console +*/ +/obj/machinery/r_n_d/destructive_analyzer name = "destructive analyzer" - desc = "Learn science by destroying things!" - icon_state = "d_analyzer" - var/decon_mod = 0 - + desc = "Learn science by destroying things!" + icon_state = "d_analyzer" + var/decon_mod = 0 + /obj/machinery/r_n_d/destructive_analyzer/Initialize() . = ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/destructive_analyzer(null) - B.apply_default_parts(src) - -/obj/item/weapon/circuitboard/machine/destructive_analyzer - name = "Destructive Analyzer (Machine Board)" - build_path = /obj/machinery/r_n_d/destructive_analyzer - origin_tech = "magnets=2;engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/scanning_module = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1) - -/obj/machinery/r_n_d/destructive_analyzer/RefreshParts() - var/T = 0 - for(var/obj/item/weapon/stock_parts/S in component_parts) - T += S.rating - decon_mod = T - - -/obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(list/source_list) - var/list/temp_list = params2list(source_list) - for(var/O in temp_list) - temp_list[O] = text2num(temp_list[O]) - return temp_list - -/obj/machinery/r_n_d/destructive_analyzer/disconnect_console() - linked_console.linked_destroy = null - ..() - -/obj/machinery/r_n_d/destructive_analyzer/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != INTENT_HARM) - . = 1 - if(!is_insertion_ready(user)) - return - if(!O.origin_tech) - to_chat(user, "This doesn't seem to have a tech origin!") - return - var/list/temp_tech = ConvertReqString2List(O.origin_tech) - if (temp_tech.len == 0) - to_chat(user, "You cannot deconstruct this item!") - return - if(!user.drop_item()) - to_chat(user, "\The [O] is stuck to your hand, you cannot put it in the [src.name]!") - return - busy = 1 - loaded_item = O - O.forceMove(src) - to_chat(user, "You add the [O.name] to the [src.name]!") - flick("d_analyzer_la", src) - spawn(10) - icon_state = "d_analyzer_l" - busy = 0 + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/destructive_analyzer(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/destructive_analyzer + name = "Destructive Analyzer (Machine Board)" + build_path = /obj/machinery/r_n_d/destructive_analyzer + origin_tech = "magnets=2;engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1) + +/obj/machinery/r_n_d/destructive_analyzer/RefreshParts() + var/T = 0 + for(var/obj/item/weapon/stock_parts/S in component_parts) + T += S.rating + decon_mod = T + + +/obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(list/source_list) + var/list/temp_list = params2list(source_list) + for(var/O in temp_list) + temp_list[O] = text2num(temp_list[O]) + return temp_list + +/obj/machinery/r_n_d/destructive_analyzer/disconnect_console() + linked_console.linked_destroy = null + ..() + +/obj/machinery/r_n_d/destructive_analyzer/Insert_Item(obj/item/O, mob/user) + if(user.a_intent != INTENT_HARM) + . = 1 + if(!is_insertion_ready(user)) + return + if(!O.origin_tech) + to_chat(user, "This doesn't seem to have a tech origin!") + return + var/list/temp_tech = ConvertReqString2List(O.origin_tech) + if (temp_tech.len == 0) + to_chat(user, "You cannot deconstruct this item!") + return + if(!user.drop_item()) + to_chat(user, "\The [O] is stuck to your hand, you cannot put it in the [src.name]!") + return + busy = 1 + loaded_item = O + O.forceMove(src) + to_chat(user, "You add the [O.name] to the [src.name]!") + flick("d_analyzer_la", src) + spawn(10) + icon_state = "d_analyzer_l" + busy = 0 diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index f31dbfa327..cea5e75511 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -1,709 +1,709 @@ -//this is designed to replace the destructive analyzer - -#define SCANTYPE_POKE 1 -#define SCANTYPE_IRRADIATE 2 -#define SCANTYPE_GAS 3 -#define SCANTYPE_HEAT 4 -#define SCANTYPE_COLD 5 -#define SCANTYPE_OBLITERATE 6 -#define SCANTYPE_DISCOVER 7 - -#define EFFECT_PROB_VERYLOW 20 -#define EFFECT_PROB_LOW 35 -#define EFFECT_PROB_MEDIUM 50 -#define EFFECT_PROB_HIGH 75 -#define EFFECT_PROB_VERYHIGH 95 - -#define FAIL 8 -/obj/machinery/r_n_d/experimentor +//this is designed to replace the destructive analyzer + +#define SCANTYPE_POKE 1 +#define SCANTYPE_IRRADIATE 2 +#define SCANTYPE_GAS 3 +#define SCANTYPE_HEAT 4 +#define SCANTYPE_COLD 5 +#define SCANTYPE_OBLITERATE 6 +#define SCANTYPE_DISCOVER 7 + +#define EFFECT_PROB_VERYLOW 20 +#define EFFECT_PROB_LOW 35 +#define EFFECT_PROB_MEDIUM 50 +#define EFFECT_PROB_HIGH 75 +#define EFFECT_PROB_VERYHIGH 95 + +#define FAIL 8 +/obj/machinery/r_n_d/experimentor name = "\improper E.X.P.E.R.I-MENTOR" desc = "A \"replacement\" for the deconstructive analyzer with a slight tendency to catastrophically fail." - icon = 'icons/obj/machines/heavy_lathe.dmi' - icon_state = "h_lathe" - density = 1 - anchored = 1 + icon = 'icons/obj/machines/heavy_lathe.dmi' + icon_state = "h_lathe" + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - var/recentlyExperimented = 0 - var/mob/trackedIan - var/mob/trackedRuntime - var/badThingCoeff = 0 - var/resetTime = 15 - var/cloneMode = FALSE - var/cloneCount = 0 - var/list/item_reactions = list() - var/list/valid_items = list() //valid items for special reactions like transforming - var/list/critical_items = list() //items that can cause critical reactions - -/obj/machinery/r_n_d/experimentor/proc/ConvertReqString2List(list/source_list) - var/list/temp_list = params2list(source_list) - for(var/O in temp_list) - temp_list[O] = text2num(temp_list[O]) - return temp_list - -/* //uncomment to enable forced reactions. -/obj/machinery/r_n_d/experimentor/verb/forceReaction() - set name = "Force Experimentor Reaction" - set category = "Debug" - set src in oview(1) - var/reaction = input(usr,"What reaction?") in list(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) - var/oldReaction = item_reactions["[loaded_item.type]"] - item_reactions["[loaded_item.type]"] = reaction - experiment(item_reactions["[loaded_item.type]"],loaded_item) - spawn(10) - if(loaded_item) - item_reactions["[loaded_item.type]"] = oldReaction -*/ - -/obj/machinery/r_n_d/experimentor/proc/SetTypeReactions() - var/probWeight = 0 - for(var/I in typesof(/obj/item)) - if(istype(I,/obj/item/weapon/relic)) - item_reactions["[I]"] = SCANTYPE_DISCOVER - else - item_reactions["[I]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) - if(ispath(I,/obj/item/weapon/stock_parts) || ispath(I,/obj/item/weapon/grenade/chem_grenade) || ispath(I,/obj/item/weapon/kitchen)) - var/obj/item/tempCheck = I - if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way - valid_items += 15 - valid_items += I - probWeight++ - - if(ispath(I,/obj/item/weapon/reagent_containers/food)) - var/obj/item/tempCheck = I - if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way - valid_items += rand(1,max(2,35-probWeight)) - valid_items += I - - if(ispath(I,/obj/item/weapon/construction/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) - var/obj/item/tempCheck = I - if(initial(tempCheck.icon_state) != null) - critical_items += I - - + var/recentlyExperimented = 0 + var/mob/trackedIan + var/mob/trackedRuntime + var/badThingCoeff = 0 + var/resetTime = 15 + var/cloneMode = FALSE + var/cloneCount = 0 + var/list/item_reactions = list() + var/list/valid_items = list() //valid items for special reactions like transforming + var/list/critical_items = list() //items that can cause critical reactions + +/obj/machinery/r_n_d/experimentor/proc/ConvertReqString2List(list/source_list) + var/list/temp_list = params2list(source_list) + for(var/O in temp_list) + temp_list[O] = text2num(temp_list[O]) + return temp_list + +/* //uncomment to enable forced reactions. +/obj/machinery/r_n_d/experimentor/verb/forceReaction() + set name = "Force Experimentor Reaction" + set category = "Debug" + set src in oview(1) + var/reaction = input(usr,"What reaction?") in list(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) + var/oldReaction = item_reactions["[loaded_item.type]"] + item_reactions["[loaded_item.type]"] = reaction + experiment(item_reactions["[loaded_item.type]"],loaded_item) + spawn(10) + if(loaded_item) + item_reactions["[loaded_item.type]"] = oldReaction +*/ + +/obj/machinery/r_n_d/experimentor/proc/SetTypeReactions() + var/probWeight = 0 + for(var/I in typesof(/obj/item)) + if(istype(I,/obj/item/weapon/relic)) + item_reactions["[I]"] = SCANTYPE_DISCOVER + else + item_reactions["[I]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) + if(ispath(I,/obj/item/weapon/stock_parts) || ispath(I,/obj/item/weapon/grenade/chem_grenade) || ispath(I,/obj/item/weapon/kitchen)) + var/obj/item/tempCheck = I + if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way + valid_items += 15 + valid_items += I + probWeight++ + + if(ispath(I,/obj/item/weapon/reagent_containers/food)) + var/obj/item/tempCheck = I + if(initial(tempCheck.icon_state) != null) //check it's an actual usable item, in a hacky way + valid_items += rand(1,max(2,35-probWeight)) + valid_items += I + + if(ispath(I,/obj/item/weapon/construction/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) + var/obj/item/tempCheck = I + if(initial(tempCheck.icon_state) != null) + critical_items += I + + /obj/machinery/r_n_d/experimentor/Initialize() . = ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/experimentor(null) - B.apply_default_parts(src) - - trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_list - trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_list - SetTypeReactions() - -/obj/item/weapon/circuitboard/machine/experimentor - name = "E.X.P.E.R.I-MENTOR (Machine Board)" - build_path = /obj/machinery/r_n_d/experimentor - origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2" - req_components = list( - /obj/item/weapon/stock_parts/scanning_module = 1, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/stock_parts/micro_laser = 2) - -/obj/machinery/r_n_d/experimentor/RefreshParts() - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - if(resetTime > 0 && (resetTime - M.rating) >= 1) - resetTime -= M.rating - for(var/obj/item/weapon/stock_parts/scanning_module/M in component_parts) - badThingCoeff += M.rating*2 - for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) - badThingCoeff += M.rating - -/obj/machinery/r_n_d/experimentor/proc/checkCircumstances(obj/item/O) - //snowflake check to only take "made" bombs - if(istype(O,/obj/item/device/transfer_valve)) - var/obj/item/device/transfer_valve/T = O - if(!T.tank_one || !T.tank_two || !T.attached_device) - return FALSE - return TRUE - -/obj/machinery/r_n_d/experimentor/Insert_Item(obj/item/O, mob/user) - if(user.a_intent != INTENT_HARM) - . = 1 - if(!is_insertion_ready(user)) - return - if(!checkCircumstances(O)) - to_chat(user, "The [O] is not yet valid for the [src] and must be completed!") - return - if(!O.origin_tech) - to_chat(user, "This doesn't seem to have a tech origin!") - return - var/list/temp_tech = ConvertReqString2List(O.origin_tech) - if (temp_tech.len == 0) - to_chat(user, "You cannot experiment on this item!") - return - if(!user.drop_item()) - return - loaded_item = O - O.loc = src - to_chat(user, "You add the [O.name] to the machine.") - flick("h_lathe_load", src) - - - -/obj/machinery/r_n_d/experimentor/default_deconstruction_crowbar(obj/item/O) - ejectItem() - ..(O) - -/obj/machinery/r_n_d/experimentor/attack_hand(mob/user) - user.set_machine(src) - var/dat = "
    " - if(!linked_console) - dat += "Scan for R&D Console
    " - if(loaded_item) - dat += "Loaded Item: [loaded_item]
    " - dat += "Technology:
    " - var/list/D = ConvertReqString2List(loaded_item.origin_tech) - for(var/T in D) - dat += "[T]
    " - dat += "

    Available tests:" - dat += "
    Poke" - dat += "
    Irradiate" - dat += "
    Gas" - dat += "
    Burn" - dat += "
    Freeze" - dat += "
    Destroy
    " - if(istype(loaded_item,/obj/item/weapon/relic)) - dat += "
    Discover
    " - dat += "
    Eject" - else - dat += "Nothing loaded." - dat += "
    Refresh
    " - dat += "
    Close
    " - var/datum/browser/popup = new(user, "experimentor","Experimentor", 700, 400, src) - popup.set_content(dat) - popup.open() - onclose(user, "experimentor") - - -/obj/machinery/r_n_d/experimentor/proc/matchReaction(matching,reaction) - var/obj/item/D = matching - if(D) - if(item_reactions.Find("[D.type]")) - var/tor = item_reactions["[D.type]"] - if(tor == text2num(reaction)) - return tor - else - return FAIL - else - return FAIL - else - return FAIL - -/obj/machinery/r_n_d/experimentor/proc/ejectItem(delete=FALSE) - if(loaded_item) - if(cloneMode && cloneCount > 0) - visible_message("A duplicate [loaded_item] pops out!") - var/type_to_make = loaded_item.type - new type_to_make(get_turf(pick(oview(1,src)))) - --cloneCount - if(cloneCount == 0) - cloneMode = FALSE - return - var/turf/dropturf = get_turf(pick(view(1,src))) - if(!dropturf) //Failsafe to prevent the object being lost in the void forever. - dropturf = get_turf(src) - loaded_item.loc = dropturf - if(delete) - qdel(loaded_item) - loaded_item = null - -/obj/machinery/r_n_d/experimentor/proc/throwSmoke(turf/where) - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(0, where) - smoke.start() - -/obj/machinery/r_n_d/experimentor/proc/pickWeighted(list/from) - var/result = FALSE - var/counter = 1 - while(!result) - var/probtocheck = from[counter] - if(prob(probtocheck)) - result = TRUE - return from[counter+1] - if(counter + 2 < from.len) - counter = counter + 2 - else - counter = 1 - -/obj/machinery/r_n_d/experimentor/proc/experiment(exp,obj/item/exp_on) - recentlyExperimented = 1 - icon_state = "h_lathe_wloop" - var/chosenchem - var/criticalReaction = (exp_on.type in critical_items) ? TRUE : FALSE - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_POKE) - visible_message("[src] prods at [exp_on] with mechanical arms.") - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[exp_on] is gripped in just the right way, enhancing its focus.") - badThingCoeff++ - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src] malfunctions and destroys [exp_on], lashing its arms out at nearby people!") - for(var/mob/living/m in oview(1, src)) - m.apply_damage(15, BRUTE, pick("head","chest","groin")) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/experimentor(null) + B.apply_default_parts(src) + + trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_list + trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_list + SetTypeReactions() + +/obj/item/weapon/circuitboard/machine/experimentor + name = "E.X.P.E.R.I-MENTOR (Machine Board)" + build_path = /obj/machinery/r_n_d/experimentor + origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 2) + +/obj/machinery/r_n_d/experimentor/RefreshParts() + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + if(resetTime > 0 && (resetTime - M.rating) >= 1) + resetTime -= M.rating + for(var/obj/item/weapon/stock_parts/scanning_module/M in component_parts) + badThingCoeff += M.rating*2 + for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) + badThingCoeff += M.rating + +/obj/machinery/r_n_d/experimentor/proc/checkCircumstances(obj/item/O) + //snowflake check to only take "made" bombs + if(istype(O,/obj/item/device/transfer_valve)) + var/obj/item/device/transfer_valve/T = O + if(!T.tank_one || !T.tank_two || !T.attached_device) + return FALSE + return TRUE + +/obj/machinery/r_n_d/experimentor/Insert_Item(obj/item/O, mob/user) + if(user.a_intent != INTENT_HARM) + . = 1 + if(!is_insertion_ready(user)) + return + if(!checkCircumstances(O)) + to_chat(user, "The [O] is not yet valid for the [src] and must be completed!") + return + if(!O.origin_tech) + to_chat(user, "This doesn't seem to have a tech origin!") + return + var/list/temp_tech = ConvertReqString2List(O.origin_tech) + if (temp_tech.len == 0) + to_chat(user, "You cannot experiment on this item!") + return + if(!user.drop_item()) + return + loaded_item = O + O.loc = src + to_chat(user, "You add the [O.name] to the machine.") + flick("h_lathe_load", src) + + + +/obj/machinery/r_n_d/experimentor/default_deconstruction_crowbar(obj/item/O) + ejectItem() + ..(O) + +/obj/machinery/r_n_d/experimentor/attack_hand(mob/user) + user.set_machine(src) + var/dat = "
    " + if(!linked_console) + dat += "Scan for R&D Console
    " + if(loaded_item) + dat += "Loaded Item: [loaded_item]
    " + dat += "Technology:
    " + var/list/D = ConvertReqString2List(loaded_item.origin_tech) + for(var/T in D) + dat += "[T]
    " + dat += "

    Available tests:" + dat += "
    Poke" + dat += "
    Irradiate" + dat += "
    Gas" + dat += "
    Burn" + dat += "
    Freeze" + dat += "
    Destroy
    " + if(istype(loaded_item,/obj/item/weapon/relic)) + dat += "
    Discover
    " + dat += "
    Eject" + else + dat += "Nothing loaded." + dat += "
    Refresh
    " + dat += "
    Close
    " + var/datum/browser/popup = new(user, "experimentor","Experimentor", 700, 400, src) + popup.set_content(dat) + popup.open() + onclose(user, "experimentor") + + +/obj/machinery/r_n_d/experimentor/proc/matchReaction(matching,reaction) + var/obj/item/D = matching + if(D) + if(item_reactions.Find("[D.type]")) + var/tor = item_reactions["[D.type]"] + if(tor == text2num(reaction)) + return tor + else + return FAIL + else + return FAIL + else + return FAIL + +/obj/machinery/r_n_d/experimentor/proc/ejectItem(delete=FALSE) + if(loaded_item) + if(cloneMode && cloneCount > 0) + visible_message("A duplicate [loaded_item] pops out!") + var/type_to_make = loaded_item.type + new type_to_make(get_turf(pick(oview(1,src)))) + --cloneCount + if(cloneCount == 0) + cloneMode = FALSE + return + var/turf/dropturf = get_turf(pick(view(1,src))) + if(!dropturf) //Failsafe to prevent the object being lost in the void forever. + dropturf = get_turf(src) + loaded_item.loc = dropturf + if(delete) + qdel(loaded_item) + loaded_item = null + +/obj/machinery/r_n_d/experimentor/proc/throwSmoke(turf/where) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, where) + smoke.start() + +/obj/machinery/r_n_d/experimentor/proc/pickWeighted(list/from) + var/result = FALSE + var/counter = 1 + while(!result) + var/probtocheck = from[counter] + if(prob(probtocheck)) + result = TRUE + return from[counter+1] + if(counter + 2 < from.len) + counter = counter + 2 + else + counter = 1 + +/obj/machinery/r_n_d/experimentor/proc/experiment(exp,obj/item/exp_on) + recentlyExperimented = 1 + icon_state = "h_lathe_wloop" + var/chosenchem + var/criticalReaction = (exp_on.type in critical_items) ? TRUE : FALSE + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_POKE) + visible_message("[src] prods at [exp_on] with mechanical arms.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] is gripped in just the right way, enhancing its focus.") + badThingCoeff++ + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src] malfunctions and destroys [exp_on], lashing its arms out at nearby people!") + for(var/mob/living/m in oview(1, src)) + m.apply_damage(15, BRUTE, pick("head","chest","groin")) investigate_log("Experimentor dealt minor brute to [m].", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src] malfunctions!") - exp = SCANTYPE_OBLITERATE - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] malfunctions, throwing the [exp_on]!") - var/mob/living/target = locate(/mob/living) in oview(7,src) - if(target) - var/obj/item/throwing = loaded_item + ejectItem(TRUE) + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src] malfunctions!") + exp = SCANTYPE_OBLITERATE + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + visible_message("[src] malfunctions, throwing the [exp_on]!") + var/mob/living/target = locate(/mob/living) in oview(7,src) + if(target) + var/obj/item/throwing = loaded_item investigate_log("Experimentor has thrown [loaded_item] at [target]", INVESTIGATE_EXPERIMENTOR) - ejectItem() - if(throwing) - throwing.throw_at(target, 10, 1) - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_IRRADIATE) - visible_message("[src] reflects radioactive rays at [exp_on]!") - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[exp_on] has activated an unknown subroutine!") - cloneMode = TRUE - cloneCount = badThingCoeff + ejectItem() + if(throwing) + throwing.throw_at(target, 10, 1) + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_IRRADIATE) + visible_message("[src] reflects radioactive rays at [exp_on]!") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] has activated an unknown subroutine!") + cloneMode = TRUE + cloneCount = badThingCoeff investigate_log("Experimentor has made a clone of [exp_on]", INVESTIGATE_EXPERIMENTOR) - ejectItem() - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src] malfunctions, melting [exp_on] and leaking radiation!") - radiation_pulse(get_turf(src), 1, 1, 25, 1) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src] malfunctions, spewing toxic waste!") - for(var/turf/T in oview(1, src)) - if(!T.density) - if(prob(EFFECT_PROB_VERYHIGH)) - var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T) - reagentdecal.reagents.add_reagent("radium", 7) - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - var/savedName = "[exp_on]" - ejectItem(TRUE) - var/newPath = pickWeighted(valid_items) - loaded_item = new newPath(src) - visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!") + ejectItem() + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src] malfunctions, melting [exp_on] and leaking radiation!") + radiation_pulse(get_turf(src), 1, 1, 25, 1) + ejectItem(TRUE) + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src] malfunctions, spewing toxic waste!") + for(var/turf/T in oview(1, src)) + if(!T.density) + if(prob(EFFECT_PROB_VERYHIGH)) + var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T) + reagentdecal.reagents.add_reagent("radium", 7) + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + var/savedName = "[exp_on]" + ejectItem(TRUE) + var/newPath = pickWeighted(valid_items) + loaded_item = new newPath(src) + visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!") investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR) - if(istype(loaded_item,/obj/item/weapon/grenade/chem_grenade)) - var/obj/item/weapon/grenade/chem_grenade/CG = loaded_item - CG.prime() - ejectItem() - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_GAS) - visible_message("[src] fills its chamber with gas, [exp_on] included.") - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[exp_on] achieves the perfect mix!") - new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src)))) - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src] destroys [exp_on], leaking dangerous gas!") - chosenchem = pick("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash") - var/datum/reagents/R = new/datum/reagents(50) - R.my_atom = src - R.add_reagent(chosenchem , 50) + if(istype(loaded_item,/obj/item/weapon/grenade/chem_grenade)) + var/obj/item/weapon/grenade/chem_grenade/CG = loaded_item + CG.prime() + ejectItem() + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_GAS) + visible_message("[src] fills its chamber with gas, [exp_on] included.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] achieves the perfect mix!") + new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src)))) + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src] destroys [exp_on], leaking dangerous gas!") + chosenchem = pick("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash") + var/datum/reagents/R = new/datum/reagents(50) + R.my_atom = src + R.add_reagent(chosenchem , 50) investigate_log("Experimentor has released [chosenchem] smoke.", INVESTIGATE_EXPERIMENTOR) - var/datum/effect_system/smoke_spread/chem/smoke = new - smoke.set_up(R, 0, src, silent = 1) - playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) - smoke.start() - qdel(R) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src]'s chemical chamber has sprung a leak!") - chosenchem = pick("mutationtoxin","nanomachines","sacid") - var/datum/reagents/R = new/datum/reagents(50) - R.my_atom = src - R.add_reagent(chosenchem , 50) - var/datum/effect_system/smoke_spread/chem/smoke = new - smoke.set_up(R, 0, src, silent = 1) - playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) - smoke.start() - qdel(R) - ejectItem(TRUE) - warn_admins(usr, "[chosenchem] smoke") + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 0, src, silent = 1) + playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.start() + qdel(R) + ejectItem(TRUE) + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src]'s chemical chamber has sprung a leak!") + chosenchem = pick("mutationtoxin","nanomachines","sacid") + var/datum/reagents/R = new/datum/reagents(50) + R.my_atom = src + R.add_reagent(chosenchem , 50) + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 0, src, silent = 1) + playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.start() + qdel(R) + ejectItem(TRUE) + warn_admins(usr, "[chosenchem] smoke") investigate_log("Experimentor has released [chosenchem] smoke!", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src] malfunctions, spewing harmless gas.") - throwSmoke(src.loc) - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] melts [exp_on], ionizing the air around it!") - empulse(src.loc, 4, 6) + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src] malfunctions, spewing harmless gas.") + throwSmoke(src.loc) + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + visible_message("[src] melts [exp_on], ionizing the air around it!") + empulse(src.loc, 4, 6) investigate_log("Experimentor has generated an Electromagnetic Pulse.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_HEAT) - visible_message("[src] raises [exp_on]'s temperature.") - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[src]'s emergency coolant system gives off a small ding!") - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) - var/obj/item/weapon/reagent_containers/food/drinks/coffee/C = new /obj/item/weapon/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) - chosenchem = pick("plasma","capsaicin","ethanol") - C.reagents.remove_any(25) - C.reagents.add_reagent(chosenchem , 50) - C.name = "Cup of Suspicious Liquid" - C.desc = "It has a large hazard symbol printed on the side in fading ink." + ejectItem(TRUE) + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_HEAT) + visible_message("[src] raises [exp_on]'s temperature.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s emergency coolant system gives off a small ding!") + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + var/obj/item/weapon/reagent_containers/food/drinks/coffee/C = new /obj/item/weapon/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) + chosenchem = pick("plasma","capsaicin","ethanol") + C.reagents.remove_any(25) + C.reagents.add_reagent(chosenchem , 50) + C.name = "Cup of Suspicious Liquid" + C.desc = "It has a large hazard symbol printed on the side in fading ink." investigate_log("Experimentor has made a cup of [chosenchem] coffee.", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - var/turf/start = get_turf(src) - var/mob/M = locate(/mob/living) in view(src, 3) - var/turf/MT = get_turf(M) - if(MT) - visible_message("[src] dangerously overheats, launching a flaming fuel orb!") + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + var/turf/start = get_turf(src) + var/mob/M = locate(/mob/living) in view(src, 3) + var/turf/MT = get_turf(M) + if(MT) + visible_message("[src] dangerously overheats, launching a flaming fuel orb!") investigate_log("Experimentor has launched a fireball at [M]!", INVESTIGATE_EXPERIMENTOR) - var/obj/item/projectile/magic/aoe/fireball/FB = new /obj/item/projectile/magic/aoe/fireball(start) - FB.original = MT - FB.current = start - FB.yo = MT.y - start.y - FB.xo = MT.x - start.x - FB.fire() - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src] malfunctions, melting [exp_on] and releasing a burst of flame!") - explosion(src.loc, -1, 0, 0, 0, 0, flame_range = 2) + var/obj/item/projectile/magic/aoe/fireball/FB = new /obj/item/projectile/magic/aoe/fireball(start) + FB.original = MT + FB.current = start + FB.yo = MT.y - start.y + FB.xo = MT.x - start.x + FB.fire() + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src] malfunctions, melting [exp_on] and releasing a burst of flame!") + explosion(src.loc, -1, 0, 0, 0, 0, flame_range = 2) investigate_log("Experimentor started a fire.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] malfunctions, melting [exp_on] and leaking hot air!") - var/datum/gas_mixture/env = src.loc.return_air() - var/transfer_moles = 0.25 * env.total_moles() - var/datum/gas_mixture/removed = env.remove(transfer_moles) - if(removed) - var/heat_capacity = removed.heat_capacity() - if(heat_capacity == 0 || heat_capacity == null) - heat_capacity = 1 - removed.temperature = min((removed.temperature*heat_capacity + 100000)/heat_capacity, 1000) - env.merge(removed) - air_update_turf() + ejectItem(TRUE) + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + visible_message("[src] malfunctions, melting [exp_on] and leaking hot air!") + var/datum/gas_mixture/env = src.loc.return_air() + var/transfer_moles = 0.25 * env.total_moles() + var/datum/gas_mixture/removed = env.remove(transfer_moles) + if(removed) + var/heat_capacity = removed.heat_capacity() + if(heat_capacity == 0 || heat_capacity == null) + heat_capacity = 1 + removed.temperature = min((removed.temperature*heat_capacity + 100000)/heat_capacity, 1000) + env.merge(removed) + air_update_turf() investigate_log("Experimentor has released hot air.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] malfunctions, activating its emergency coolant systems!") - throwSmoke(src.loc) - for(var/mob/living/m in oview(1, src)) - m.apply_damage(5, BURN, pick("head","chest","groin")) + ejectItem(TRUE) + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + visible_message("[src] malfunctions, activating its emergency coolant systems!") + throwSmoke(src.loc) + for(var/mob/living/m in oview(1, src)) + m.apply_damage(5, BURN, pick("head","chest","groin")) investigate_log("Experimentor has dealt minor burn damage to [m]", INVESTIGATE_EXPERIMENTOR) - ejectItem() - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_COLD) - visible_message("[src] lowers [exp_on]'s temperature.") - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[src]'s emergency coolant system gives off a small ding!") - var/obj/item/weapon/reagent_containers/food/drinks/coffee/C = new /obj/item/weapon/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //Ding! Your death coffee is ready! - chosenchem = pick("uranium","frostoil","ephedrine") - C.reagents.remove_any(25) - C.reagents.add_reagent(chosenchem , 50) - C.name = "Cup of Suspicious Liquid" - C.desc = "It has a large hazard symbol printed on the side in fading ink." + ejectItem() + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_COLD) + visible_message("[src] lowers [exp_on]'s temperature.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s emergency coolant system gives off a small ding!") + var/obj/item/weapon/reagent_containers/food/drinks/coffee/C = new /obj/item/weapon/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //Ding! Your death coffee is ready! + chosenchem = pick("uranium","frostoil","ephedrine") + C.reagents.remove_any(25) + C.reagents.add_reagent(chosenchem , 50) + C.name = "Cup of Suspicious Liquid" + C.desc = "It has a large hazard symbol printed on the side in fading ink." investigate_log("Experimentor has made a cup of [chosenchem] coffee.", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!") - var/datum/reagents/R = new/datum/reagents(50) - R.my_atom = src - R.add_reagent("frostoil" , 50) + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!") + var/datum/reagents/R = new/datum/reagents(50) + R.my_atom = src + R.add_reagent("frostoil" , 50) investigate_log("Experimentor has released frostoil gas.", INVESTIGATE_EXPERIMENTOR) - var/datum/effect_system/smoke_spread/chem/smoke = new - smoke.set_up(R, 0, src, silent = 1) - playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) - smoke.start() - qdel(R) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src] malfunctions, shattering [exp_on] and leaking cold air!") - var/datum/gas_mixture/env = src.loc.return_air() - var/transfer_moles = 0.25 * env.total_moles() - var/datum/gas_mixture/removed = env.remove(transfer_moles) - if(removed) - var/heat_capacity = removed.heat_capacity() - if(heat_capacity == 0 || heat_capacity == null) - heat_capacity = 1 - removed.temperature = (removed.temperature*heat_capacity - 75000)/heat_capacity - env.merge(removed) - air_update_turf() + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 0, src, silent = 1) + playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.start() + qdel(R) + ejectItem(TRUE) + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src] malfunctions, shattering [exp_on] and leaking cold air!") + var/datum/gas_mixture/env = src.loc.return_air() + var/transfer_moles = 0.25 * env.total_moles() + var/datum/gas_mixture/removed = env.remove(transfer_moles) + if(removed) + var/heat_capacity = removed.heat_capacity() + if(heat_capacity == 0 || heat_capacity == null) + heat_capacity = 1 + removed.temperature = (removed.temperature*heat_capacity - 75000)/heat_capacity + env.merge(removed) + air_update_turf() investigate_log("Experimentor has released cold air.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] malfunctions, releasing a flurry of chilly air as [exp_on] pops out!") - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(0, src.loc) - smoke.start() - ejectItem() - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == SCANTYPE_OBLITERATE) - visible_message("[exp_on] activates the crushing mechanism, [exp_on] is destroyed!") - if(linked_console.linked_lathe) - for(var/material in exp_on.materials) - linked_console.linked_lathe.materials.insert_amount( min((linked_console.linked_lathe.materials.max_amount - linked_console.linked_lathe.materials.total_amount), (exp_on.materials[material])), material) - if(prob(EFFECT_PROB_LOW) && criticalReaction) - visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!") - new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src)))) - else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) - visible_message("[src]'s crusher goes way too many levels too high, crushing right through space-time!") - playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3) + ejectItem(TRUE) + else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) + visible_message("[src] malfunctions, releasing a flurry of chilly air as [exp_on] pops out!") + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, src.loc) + smoke.start() + ejectItem() + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == SCANTYPE_OBLITERATE) + visible_message("[exp_on] activates the crushing mechanism, [exp_on] is destroyed!") + if(linked_console.linked_lathe) + for(var/material in exp_on.materials) + linked_console.linked_lathe.materials.insert_amount( min((linked_console.linked_lathe.materials.max_amount - linked_console.linked_lathe.materials.total_amount), (exp_on.materials[material])), material) + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!") + new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src)))) + else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + visible_message("[src]'s crusher goes way too many levels too high, crushing right through space-time!") + playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3) investigate_log("Experimentor has triggered the 'throw things' reaction.", INVESTIGATE_EXPERIMENTOR) - for(var/atom/movable/AM in oview(7,src)) - if(!AM.anchored) - AM.throw_at(src,10,1) - else if(prob(EFFECT_PROB_LOW-badThingCoeff)) - visible_message("[src]'s crusher goes one level too high, crushing right into space-time!") - playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3) + for(var/atom/movable/AM in oview(7,src)) + if(!AM.anchored) + AM.throw_at(src,10,1) + else if(prob(EFFECT_PROB_LOW-badThingCoeff)) + visible_message("[src]'s crusher goes one level too high, crushing right into space-time!") + playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3) investigate_log("Experimentor has triggered the 'minor throw things' reaction.", INVESTIGATE_EXPERIMENTOR) - var/list/throwAt = list() - for(var/atom/movable/AM in oview(7,src)) - if(!AM.anchored) - throwAt.Add(AM) - for(var/counter = 1, counter < throwAt.len, ++counter) - var/atom/movable/cast = throwAt[counter] - cast.throw_at(pick(throwAt),10,1) - ejectItem(TRUE) - //////////////////////////////////////////////////////////////////////////////////////////////// - if(exp == FAIL) - var/a = pick("rumbles","shakes","vibrates","shudders") - var/b = pick("crushes","spins","viscerates","smashes","insults") - visible_message("[exp_on] [a], and [b], the experiment was a failure.") - - if(exp == SCANTYPE_DISCOVER) - visible_message("[src] scans the [exp_on], revealing its true nature!") - playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 3, -1) - var/obj/item/weapon/relic/R = loaded_item - R.reveal() + var/list/throwAt = list() + for(var/atom/movable/AM in oview(7,src)) + if(!AM.anchored) + throwAt.Add(AM) + for(var/counter = 1, counter < throwAt.len, ++counter) + var/atom/movable/cast = throwAt[counter] + cast.throw_at(pick(throwAt),10,1) + ejectItem(TRUE) + //////////////////////////////////////////////////////////////////////////////////////////////// + if(exp == FAIL) + var/a = pick("rumbles","shakes","vibrates","shudders") + var/b = pick("crushes","spins","viscerates","smashes","insults") + visible_message("[exp_on] [a], and [b], the experiment was a failure.") + + if(exp == SCANTYPE_DISCOVER) + visible_message("[src] scans the [exp_on], revealing its true nature!") + playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 3, -1) + var/obj/item/weapon/relic/R = loaded_item + R.reveal() investigate_log("Experimentor has revealed a relic with [R.realProc] effect.", INVESTIGATE_EXPERIMENTOR) - ejectItem() - - //Global reactions - if(prob(EFFECT_PROB_VERYLOW-badThingCoeff) && loaded_item) - var/globalMalf = rand(1,100) - if(globalMalf < 15) - visible_message("[src]'s onboard detection system has malfunctioned!") - item_reactions["[exp_on.type]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) - ejectItem() - if(globalMalf > 16 && globalMalf < 35) - visible_message("[src] melts [exp_on], ian-izing the air around it!") - throwSmoke(src.loc) - if(trackedIan) - throwSmoke(trackedIan.loc) - trackedIan.loc = src.loc + ejectItem() + + //Global reactions + if(prob(EFFECT_PROB_VERYLOW-badThingCoeff) && loaded_item) + var/globalMalf = rand(1,100) + if(globalMalf < 15) + visible_message("[src]'s onboard detection system has malfunctioned!") + item_reactions["[exp_on.type]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) + ejectItem() + if(globalMalf > 16 && globalMalf < 35) + visible_message("[src] melts [exp_on], ian-izing the air around it!") + throwSmoke(src.loc) + if(trackedIan) + throwSmoke(trackedIan.loc) + trackedIan.loc = src.loc investigate_log("Experimentor has stolen Ian!", INVESTIGATE_EXPERIMENTOR) //...if anyone ever fixes it... - else - new /mob/living/simple_animal/pet/dog/corgi(src.loc) + else + new /mob/living/simple_animal/pet/dog/corgi(src.loc) investigate_log("Experimentor has spawned a new corgi.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - if(globalMalf > 36 && globalMalf < 50) - visible_message("Experimentor draws the life essence of those nearby!") - for(var/mob/living/m in view(4,src)) - to_chat(m, "You feel your flesh being torn from you, mists of blood drifting to [src]!") - m.apply_damage(50, BRUTE, "chest") + ejectItem(TRUE) + if(globalMalf > 36 && globalMalf < 50) + visible_message("Experimentor draws the life essence of those nearby!") + for(var/mob/living/m in view(4,src)) + to_chat(m, "You feel your flesh being torn from you, mists of blood drifting to [src]!") + m.apply_damage(50, BRUTE, "chest") investigate_log("Experimentor has taken 50 brute a blood sacrifice from [m]", INVESTIGATE_EXPERIMENTOR) - if(globalMalf > 51 && globalMalf < 75) - visible_message("[src] encounters a run-time error!") - throwSmoke(src.loc) - if(trackedRuntime) - throwSmoke(trackedRuntime.loc) - trackedRuntime.loc = src.loc + if(globalMalf > 51 && globalMalf < 75) + visible_message("[src] encounters a run-time error!") + throwSmoke(src.loc) + if(trackedRuntime) + throwSmoke(trackedRuntime.loc) + trackedRuntime.loc = src.loc investigate_log("Experimentor has stolen Runtime!", INVESTIGATE_EXPERIMENTOR) - else - new /mob/living/simple_animal/pet/cat(src.loc) + else + new /mob/living/simple_animal/pet/cat(src.loc) investigate_log("Experimentor failed to steal runtime, and instead spawned a new cat.", INVESTIGATE_EXPERIMENTOR) - ejectItem(TRUE) - if(globalMalf > 76) - visible_message("[src] begins to smoke and hiss, shaking violently!") - use_power(500000) + ejectItem(TRUE) + if(globalMalf > 76) + visible_message("[src] begins to smoke and hiss, shaking violently!") + use_power(500000) investigate_log("Experimentor has drained power from its APC", INVESTIGATE_EXPERIMENTOR) - - spawn(resetTime) - icon_state = "h_lathe" - recentlyExperimented = 0 - -/obj/machinery/r_n_d/experimentor/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - - var/scantype = href_list["function"] - var/obj/item/process = locate(href_list["item"]) in src - - if(href_list["close"]) - usr << browse(null, "window=experimentor") - return - else if(scantype == "search") - var/obj/machinery/computer/rdconsole/D = locate(/obj/machinery/computer/rdconsole) in oview(3,src) - if(D) - linked_console = D - else if(scantype == "eject") - ejectItem() - else if(scantype == "refresh") - src.updateUsrDialog() - else - if(recentlyExperimented) - to_chat(usr, "[src] has been used too recently!") - return - else if(!loaded_item) - updateUsrDialog() //Set the interface to unloaded mode - to_chat(usr, "[src] is not currently loaded!") - return - else if(!process || process != loaded_item) //Interface exploit protection (such as hrefs or swapping items with interface set to old item) - updateUsrDialog() //Refresh interface to update interface hrefs - to_chat(usr, "Interface failure detected in [src]. Please try again.") - return - var/dotype - if(text2num(scantype) == SCANTYPE_DISCOVER) - dotype = SCANTYPE_DISCOVER - else - dotype = matchReaction(process,scantype) - experiment(dotype,process) - use_power(750) - if(dotype != FAIL) - if(process && process.origin_tech) - var/list/temp_tech = ConvertReqString2List(process.origin_tech) - for(var/T in temp_tech) - linked_console.files.UpdateTech(T, temp_tech[T]) - src.updateUsrDialog() - return - -//~~~~~~~~Admin logging proc, aka the Powergamer Alarm~~~~~~~~ -/obj/machinery/r_n_d/experimentor/proc/warn_admins(mob/user, ReactionName) - var/turf/T = get_turf(src) - message_admins("Experimentor reaction: [ReactionName] generated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)]",0,1) - log_game("Experimentor reaction: [ReactionName] generated by [key_name(user)] in ([T.x],[T.y],[T.z])") - -#undef SCANTYPE_POKE -#undef SCANTYPE_IRRADIATE -#undef SCANTYPE_GAS -#undef SCANTYPE_HEAT -#undef SCANTYPE_COLD -#undef SCANTYPE_OBLITERATE -#undef SCANTYPE_DISCOVER - -#undef EFFECT_PROB_VERYLOW -#undef EFFECT_PROB_LOW -#undef EFFECT_PROB_MEDIUM -#undef EFFECT_PROB_HIGH -#undef EFFECT_PROB_VERYHIGH - -#undef FAIL - - -//////////////////////////////////SPECIAL ITEMS//////////////////////////////////////// - -/obj/item/weapon/relic - name = "strange object" - desc = "What mysteries could this hold?" - icon = 'icons/obj/assemblies.dmi' - origin_tech = "combat=1;plasmatech=1;powerstorage=1;materials=1" - var/realName = "defined object" - var/revealed = FALSE - var/realProc - var/cooldownMax = 60 - var/cooldown - + + spawn(resetTime) + icon_state = "h_lathe" + recentlyExperimented = 0 + +/obj/machinery/r_n_d/experimentor/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + + var/scantype = href_list["function"] + var/obj/item/process = locate(href_list["item"]) in src + + if(href_list["close"]) + usr << browse(null, "window=experimentor") + return + else if(scantype == "search") + var/obj/machinery/computer/rdconsole/D = locate(/obj/machinery/computer/rdconsole) in oview(3,src) + if(D) + linked_console = D + else if(scantype == "eject") + ejectItem() + else if(scantype == "refresh") + src.updateUsrDialog() + else + if(recentlyExperimented) + to_chat(usr, "[src] has been used too recently!") + return + else if(!loaded_item) + updateUsrDialog() //Set the interface to unloaded mode + to_chat(usr, "[src] is not currently loaded!") + return + else if(!process || process != loaded_item) //Interface exploit protection (such as hrefs or swapping items with interface set to old item) + updateUsrDialog() //Refresh interface to update interface hrefs + to_chat(usr, "Interface failure detected in [src]. Please try again.") + return + var/dotype + if(text2num(scantype) == SCANTYPE_DISCOVER) + dotype = SCANTYPE_DISCOVER + else + dotype = matchReaction(process,scantype) + experiment(dotype,process) + use_power(750) + if(dotype != FAIL) + if(process && process.origin_tech) + var/list/temp_tech = ConvertReqString2List(process.origin_tech) + for(var/T in temp_tech) + linked_console.files.UpdateTech(T, temp_tech[T]) + src.updateUsrDialog() + return + +//~~~~~~~~Admin logging proc, aka the Powergamer Alarm~~~~~~~~ +/obj/machinery/r_n_d/experimentor/proc/warn_admins(mob/user, ReactionName) + var/turf/T = get_turf(src) + message_admins("Experimentor reaction: [ReactionName] generated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)]",0,1) + log_game("Experimentor reaction: [ReactionName] generated by [key_name(user)] in ([T.x],[T.y],[T.z])") + +#undef SCANTYPE_POKE +#undef SCANTYPE_IRRADIATE +#undef SCANTYPE_GAS +#undef SCANTYPE_HEAT +#undef SCANTYPE_COLD +#undef SCANTYPE_OBLITERATE +#undef SCANTYPE_DISCOVER + +#undef EFFECT_PROB_VERYLOW +#undef EFFECT_PROB_LOW +#undef EFFECT_PROB_MEDIUM +#undef EFFECT_PROB_HIGH +#undef EFFECT_PROB_VERYHIGH + +#undef FAIL + + +//////////////////////////////////SPECIAL ITEMS//////////////////////////////////////// + +/obj/item/weapon/relic + name = "strange object" + desc = "What mysteries could this hold?" + icon = 'icons/obj/assemblies.dmi' + origin_tech = "combat=1;plasmatech=1;powerstorage=1;materials=1" + var/realName = "defined object" + var/revealed = FALSE + var/realProc + var/cooldownMax = 60 + var/cooldown + /obj/item/weapon/relic/Initialize() . = ..() - icon_state = pick("shock_kit","armor-igniter-analyzer","infra-igniter0","infra-igniter1","radio-multitool","prox-radio1","radio-radio","timer-multitool0","radio-igniter-tank") - realName = "[pick("broken","twisted","spun","improved","silly","regular","badly made")] [pick("device","object","toy","illegal tech","weapon")]" - - -/obj/item/weapon/relic/proc/reveal() - if(revealed) //Re-rolling your relics seems a bit overpowered, yes? - return - revealed = TRUE - name = realName - cooldownMax = rand(60,300) - realProc = pick("teleport","explode","rapidDupe","petSpray","flash","clean","corgicannon") - origin_tech = pick("engineering=[rand(2,5)]","magnets=[rand(2,5)]","plasmatech=[rand(2,5)]","programming=[rand(2,5)]","powerstorage=[rand(2,5)]") - -/obj/item/weapon/relic/attack_self(mob/user) - if(revealed) - if(cooldown) - to_chat(user, "[src] does not react!") - return - else if(src.loc == user) - cooldown = TRUE - call(src,realProc)(user) - spawn(cooldownMax) - cooldown = FALSE - else - to_chat(user, "You aren't quite sure what to do with this yet.") - -//////////////// RELIC PROCS ///////////////////////////// - -/obj/item/weapon/relic/proc/throwSmoke(turf/where) - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(0, get_turf(where)) - smoke.start() - -/obj/item/weapon/relic/proc/corgicannon(mob/user) - playsound(src.loc, "sparks", rand(25,50), 1) - var/mob/living/simple_animal/pet/dog/corgi/C = new/mob/living/simple_animal/pet/dog/corgi(get_turf(user)) - C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .throwSmoke, C)) - warn_admins(user, "Corgi Cannon", 0) - -/obj/item/weapon/relic/proc/clean(mob/user) - playsound(src.loc, "sparks", rand(25,50), 1) - var/obj/item/weapon/grenade/chem_grenade/cleaner/CL = new/obj/item/weapon/grenade/chem_grenade/cleaner(get_turf(user)) - CL.prime() - warn_admins(user, "Smoke", 0) - -/obj/item/weapon/relic/proc/flash(mob/user) - playsound(src.loc, "sparks", rand(25,50), 1) - var/obj/item/weapon/grenade/flashbang/CB = new/obj/item/weapon/grenade/flashbang(user.loc) - CB.prime() - warn_admins(user, "Flash") - -/obj/item/weapon/relic/proc/petSpray(mob/user) - var/message = "[src] begans to shake, and in the distance the sound of rampaging animals arises!" - visible_message(message) - to_chat(user, message) - var/animals = rand(1,25) - var/counter - var/list/valid_animals = list(/mob/living/simple_animal/parrot,/mob/living/simple_animal/butterfly,/mob/living/simple_animal/pet/cat,/mob/living/simple_animal/pet/dog/corgi,/mob/living/simple_animal/crab,/mob/living/simple_animal/pet/fox,/mob/living/simple_animal/hostile/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/pet/dog/pug,/mob/living/simple_animal/hostile/bear,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/carp) - for(counter = 1; counter < animals; counter++) - var/mobType = pick(valid_animals) - new mobType(get_turf(src)) - warn_admins(user, "Mass Mob Spawn") - if(prob(60)) - to_chat(user, "[src] falls apart!") - qdel(src) - -/obj/item/weapon/relic/proc/rapidDupe(mob/user) - audible_message("[src] emits a loud pop!") - var/list/dupes = list() - var/counter - var/max = rand(5,10) - for(counter = 1; counter < max; counter++) - var/obj/item/weapon/relic/R = new src.type(get_turf(src)) - R.name = name - R.desc = desc - R.realName = realName - R.realProc = realProc - R.revealed = TRUE - dupes |= R - R.throw_at(pick(oview(7,get_turf(src))),10,1) - counter = 0 - spawn(rand(10,100)) - for(counter = 1; counter <= dupes.len; counter++) - var/obj/item/weapon/relic/R = dupes[counter] - qdel(R) - warn_admins(user, "Rapid duplicator", 0) - -/obj/item/weapon/relic/proc/explode(mob/user) - to_chat(user, "[src] begins to heat up!") - spawn(rand(35,100)) - if(src.loc == user) - visible_message("The [src]'s top opens, releasing a powerful blast!") + icon_state = pick("shock_kit","armor-igniter-analyzer","infra-igniter0","infra-igniter1","radio-multitool","prox-radio1","radio-radio","timer-multitool0","radio-igniter-tank") + realName = "[pick("broken","twisted","spun","improved","silly","regular","badly made")] [pick("device","object","toy","illegal tech","weapon")]" + + +/obj/item/weapon/relic/proc/reveal() + if(revealed) //Re-rolling your relics seems a bit overpowered, yes? + return + revealed = TRUE + name = realName + cooldownMax = rand(60,300) + realProc = pick("teleport","explode","rapidDupe","petSpray","flash","clean","corgicannon") + origin_tech = pick("engineering=[rand(2,5)]","magnets=[rand(2,5)]","plasmatech=[rand(2,5)]","programming=[rand(2,5)]","powerstorage=[rand(2,5)]") + +/obj/item/weapon/relic/attack_self(mob/user) + if(revealed) + if(cooldown) + to_chat(user, "[src] does not react!") + return + else if(src.loc == user) + cooldown = TRUE + call(src,realProc)(user) + spawn(cooldownMax) + cooldown = FALSE + else + to_chat(user, "You aren't quite sure what to do with this yet.") + +//////////////// RELIC PROCS ///////////////////////////// + +/obj/item/weapon/relic/proc/throwSmoke(turf/where) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, get_turf(where)) + smoke.start() + +/obj/item/weapon/relic/proc/corgicannon(mob/user) + playsound(src.loc, "sparks", rand(25,50), 1) + var/mob/living/simple_animal/pet/dog/corgi/C = new/mob/living/simple_animal/pet/dog/corgi(get_turf(user)) + C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .throwSmoke, C)) + warn_admins(user, "Corgi Cannon", 0) + +/obj/item/weapon/relic/proc/clean(mob/user) + playsound(src.loc, "sparks", rand(25,50), 1) + var/obj/item/weapon/grenade/chem_grenade/cleaner/CL = new/obj/item/weapon/grenade/chem_grenade/cleaner(get_turf(user)) + CL.prime() + warn_admins(user, "Smoke", 0) + +/obj/item/weapon/relic/proc/flash(mob/user) + playsound(src.loc, "sparks", rand(25,50), 1) + var/obj/item/weapon/grenade/flashbang/CB = new/obj/item/weapon/grenade/flashbang(user.loc) + CB.prime() + warn_admins(user, "Flash") + +/obj/item/weapon/relic/proc/petSpray(mob/user) + var/message = "[src] begans to shake, and in the distance the sound of rampaging animals arises!" + visible_message(message) + to_chat(user, message) + var/animals = rand(1,25) + var/counter + var/list/valid_animals = list(/mob/living/simple_animal/parrot,/mob/living/simple_animal/butterfly,/mob/living/simple_animal/pet/cat,/mob/living/simple_animal/pet/dog/corgi,/mob/living/simple_animal/crab,/mob/living/simple_animal/pet/fox,/mob/living/simple_animal/hostile/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/pet/dog/pug,/mob/living/simple_animal/hostile/bear,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/carp) + for(counter = 1; counter < animals; counter++) + var/mobType = pick(valid_animals) + new mobType(get_turf(src)) + warn_admins(user, "Mass Mob Spawn") + if(prob(60)) + to_chat(user, "[src] falls apart!") + qdel(src) + +/obj/item/weapon/relic/proc/rapidDupe(mob/user) + audible_message("[src] emits a loud pop!") + var/list/dupes = list() + var/counter + var/max = rand(5,10) + for(counter = 1; counter < max; counter++) + var/obj/item/weapon/relic/R = new src.type(get_turf(src)) + R.name = name + R.desc = desc + R.realName = realName + R.realProc = realProc + R.revealed = TRUE + dupes |= R + R.throw_at(pick(oview(7,get_turf(src))),10,1) + counter = 0 + spawn(rand(10,100)) + for(counter = 1; counter <= dupes.len; counter++) + var/obj/item/weapon/relic/R = dupes[counter] + qdel(R) + warn_admins(user, "Rapid duplicator", 0) + +/obj/item/weapon/relic/proc/explode(mob/user) + to_chat(user, "[src] begins to heat up!") + spawn(rand(35,100)) + if(src.loc == user) + visible_message("The [src]'s top opens, releasing a powerful blast!") explosion(user.loc, -1, rand(1,5), rand(1,5), rand(1,5), rand(1,5), flame_range = 2) - warn_admins(user, "Explosion") - qdel(src) //Comment this line to produce a light grenade (the bomb that keeps on exploding when used)!! - -/obj/item/weapon/relic/proc/teleport(mob/user) - to_chat(user, "The [src] begins to vibrate!") - spawn(rand(10,30)) - var/turf/userturf = get_turf(user) - if(src.loc == user && userturf.z != ZLEVEL_CENTCOM) //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you! - visible_message("The [src] twists and bends, relocating itself!") - throwSmoke(userturf) - do_teleport(user, userturf, 8, asoundin = 'sound/effects/phasein.ogg') - throwSmoke(get_turf(user)) - warn_admins(user, "Teleport", 0) - -//Admin Warning proc for relics -/obj/item/weapon/relic/proc/warn_admins(mob/user, RelicType, priority = 1) - var/turf/T = get_turf(src) - var/log_msg = "[RelicType] relic used by [key_name(user)] in ([T.x],[T.y],[T.z])" - if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK! - message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game(log_msg) - investigate_log(log_msg, "experimentor") + warn_admins(user, "Explosion") + qdel(src) //Comment this line to produce a light grenade (the bomb that keeps on exploding when used)!! + +/obj/item/weapon/relic/proc/teleport(mob/user) + to_chat(user, "The [src] begins to vibrate!") + spawn(rand(10,30)) + var/turf/userturf = get_turf(user) + if(src.loc == user && userturf.z != ZLEVEL_CENTCOM) //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you! + visible_message("The [src] twists and bends, relocating itself!") + throwSmoke(userturf) + do_teleport(user, userturf, 8, asoundin = 'sound/effects/phasein.ogg') + throwSmoke(get_turf(user)) + warn_admins(user, "Teleport", 0) + +//Admin Warning proc for relics +/obj/item/weapon/relic/proc/warn_admins(mob/user, RelicType, priority = 1) + var/turf/T = get_turf(src) + var/log_msg = "[RelicType] relic used by [key_name(user)] in ([T.x],[T.y],[T.z])" + if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK! + message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) + log_game(log_msg) + investigate_log(log_msg, "experimentor") diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index e5ab385352..cc4a77347b 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -1,141 +1,141 @@ -GLOBAL_LIST_INIT(message_servers, list()) - -/datum/data_pda_msg - var/recipient = "Unspecified" //name of the person - var/sender = "Unspecified" //name of the sender - var/message = "Blank" //transferred message +GLOBAL_LIST_INIT(message_servers, list()) + +/datum/data_pda_msg + var/recipient = "Unspecified" //name of the person + var/sender = "Unspecified" //name of the sender + var/message = "Blank" //transferred message var/icon/photo //Attached photo - -/datum/data_pda_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_photo=null) - - if(param_rec) - recipient = param_rec - if(param_sender) - sender = param_sender - if(param_message) - message = param_message - if(param_photo) - photo = param_photo - -/datum/data_pda_msg/proc/get_photo_ref() - if(photo) - return "(Photo)" - return "" - -/datum/data_pda_msg/Topic(href,href_list) - ..() - if(href_list["photo"]) - var/mob/M = usr - M << browse_rsc(photo, "pda_photo.png") - M << browse("PDA Photo" \ - + "" \ - + "" \ - + "", "window=book;size=192x192") - onclose(M, "PDA Photo") - -/datum/data_rc_msg - var/rec_dpt = "Unspecified" //name of the person - var/send_dpt = "Unspecified" //name of the sender - var/message = "Blank" //transferred message - var/stamp = "Unstamped" - var/id_auth = "Unauthenticated" - var/priority = "Normal" - -/datum/data_rc_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_stamp = "",var/param_id_auth = "",var/param_priority) - if(param_rec) - rec_dpt = param_rec - if(param_sender) - send_dpt = param_sender - if(param_message) - message = param_message - if(param_stamp) - stamp = param_stamp - if(param_id_auth) - id_auth = param_id_auth - if(param_priority) - switch(param_priority) - if(1) - priority = "Normal" - if(2) - priority = "High" - if(3) - priority = "Extreme" - else - priority = "Undetermined" - -/obj/machinery/message_server - icon = 'icons/obj/machines/research.dmi' - icon_state = "server" - name = "Messaging Server" - density = 1 - anchored = 1 + +/datum/data_pda_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_photo=null) + + if(param_rec) + recipient = param_rec + if(param_sender) + sender = param_sender + if(param_message) + message = param_message + if(param_photo) + photo = param_photo + +/datum/data_pda_msg/proc/get_photo_ref() + if(photo) + return "(Photo)" + return "" + +/datum/data_pda_msg/Topic(href,href_list) + ..() + if(href_list["photo"]) + var/mob/M = usr + M << browse_rsc(photo, "pda_photo.png") + M << browse("PDA Photo" \ + + "" \ + + "" \ + + "", "window=book;size=192x192") + onclose(M, "PDA Photo") + +/datum/data_rc_msg + var/rec_dpt = "Unspecified" //name of the person + var/send_dpt = "Unspecified" //name of the sender + var/message = "Blank" //transferred message + var/stamp = "Unstamped" + var/id_auth = "Unauthenticated" + var/priority = "Normal" + +/datum/data_rc_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_stamp = "",var/param_id_auth = "",var/param_priority) + if(param_rec) + rec_dpt = param_rec + if(param_sender) + send_dpt = param_sender + if(param_message) + message = param_message + if(param_stamp) + stamp = param_stamp + if(param_id_auth) + id_auth = param_id_auth + if(param_priority) + switch(param_priority) + if(1) + priority = "Normal" + if(2) + priority = "High" + if(3) + priority = "Extreme" + else + priority = "Undetermined" + +/obj/machinery/message_server + icon = 'icons/obj/machines/research.dmi' + icon_state = "server" + name = "Messaging Server" + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - - var/list/datum/data_pda_msg/pda_msgs = list() - var/list/datum/data_rc_msg/rc_msgs = list() - var/active = 1 - var/decryptkey = "password" - + idle_power_usage = 10 + active_power_usage = 100 + + var/list/datum/data_pda_msg/pda_msgs = list() + var/list/datum/data_rc_msg/rc_msgs = list() + var/active = 1 + var/decryptkey = "password" + /obj/machinery/message_server/Initialize() - GLOB.message_servers += src - decryptkey = GenerateKey() - send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") + GLOB.message_servers += src + decryptkey = GenerateKey() + send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") . = ..() - -/obj/machinery/message_server/Destroy() - GLOB.message_servers -= src - return ..() - -/obj/machinery/message_server/proc/GenerateKey() - //Feel free to move to Helpers. - var/newKey - newKey += pick("the", "if", "of", "as", "in", "a", "you", "from", "to", "an", "too", "little", "snow", "dead", "drunk", "rosebud", "duck", "al", "le") - newKey += pick("diamond", "beer", "mushroom", "assistant", "clown", "captain", "twinkie", "security", "nuke", "small", "big", "escape", "yellow", "gloves", "monkey", "engine", "nuclear", "ai") - newKey += pick("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") - return newKey - -/obj/machinery/message_server/process() - //if(decryptkey == "password") - // decryptkey = generateKey() - if(active && (stat & (BROKEN|NOPOWER))) - active = 0 - return - update_icon() - return - -/obj/machinery/message_server/proc/send_pda_message(recipient = "",sender = "",message = "",photo=null) - . = new/datum/data_pda_msg(recipient,sender,message,photo) - pda_msgs += . - -/obj/machinery/message_server/proc/send_rc_message(recipient = "",sender = "",message = "",stamp = "", id_auth = "", priority = 1) - rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth) - -/obj/machinery/message_server/attack_hand(mob/user) - to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]") - active = !active - update_icon() - - return - -/obj/machinery/message_server/update_icon() - if((stat & (BROKEN|NOPOWER))) - icon_state = "server-nopower" - else if (!active) - icon_state = "server-off" - else - icon_state = "server-on" - - return - -/obj/machinery/blackbox_recorder - icon = 'icons/obj/stationobjs.dmi' - icon_state = "blackbox" - name = "Blackbox Recorder" - density = 1 - anchored = 1 + +/obj/machinery/message_server/Destroy() + GLOB.message_servers -= src + return ..() + +/obj/machinery/message_server/proc/GenerateKey() + //Feel free to move to Helpers. + var/newKey + newKey += pick("the", "if", "of", "as", "in", "a", "you", "from", "to", "an", "too", "little", "snow", "dead", "drunk", "rosebud", "duck", "al", "le") + newKey += pick("diamond", "beer", "mushroom", "assistant", "clown", "captain", "twinkie", "security", "nuke", "small", "big", "escape", "yellow", "gloves", "monkey", "engine", "nuclear", "ai") + newKey += pick("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") + return newKey + +/obj/machinery/message_server/process() + //if(decryptkey == "password") + // decryptkey = generateKey() + if(active && (stat & (BROKEN|NOPOWER))) + active = 0 + return + update_icon() + return + +/obj/machinery/message_server/proc/send_pda_message(recipient = "",sender = "",message = "",photo=null) + . = new/datum/data_pda_msg(recipient,sender,message,photo) + pda_msgs += . + +/obj/machinery/message_server/proc/send_rc_message(recipient = "",sender = "",message = "",stamp = "", id_auth = "", priority = 1) + rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth) + +/obj/machinery/message_server/attack_hand(mob/user) + to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]") + active = !active + update_icon() + + return + +/obj/machinery/message_server/update_icon() + if((stat & (BROKEN|NOPOWER))) + icon_state = "server-nopower" + else if (!active) + icon_state = "server-off" + else + icon_state = "server-on" + + return + +/obj/machinery/blackbox_recorder + icon = 'icons/obj/stationobjs.dmi' + icon_state = "blackbox" + name = "Blackbox Recorder" + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) + idle_power_usage = 10 + active_power_usage = 100 + armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index ed12ff6412..84432e8e44 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -1,149 +1,149 @@ -/* -Protolathe - -Similar to an autolathe, you load glass and metal sheets (but not other objects) into it to be used as raw materials for the stuff -it creates. All the menus and other manipulation commands are in the R&D console. - -Note: Must be placed west/left of and R&D console to function. - -*/ -/obj/machinery/r_n_d/protolathe +/* +Protolathe + +Similar to an autolathe, you load glass and metal sheets (but not other objects) into it to be used as raw materials for the stuff +it creates. All the menus and other manipulation commands are in the R&D console. + +Note: Must be placed west/left of and R&D console to function. + +*/ +/obj/machinery/r_n_d/protolathe name = "protolathe" - desc = "Converts raw materials into useful objects." - icon_state = "protolathe" - container_type = OPENCONTAINER - - var/datum/material_container/materials - var/efficiency_coeff - - var/list/categories = list( - "Power Designs", - "Medical Designs", - "Bluespace Designs", - "Stock Parts", - "Equipment", - "Mining Designs", - "Electronics", - "Weapons", - "Ammo", - "Firing Pins", - "Computer Parts" - ) - - + desc = "Converts raw materials into useful objects." + icon_state = "protolathe" + container_type = OPENCONTAINER + + var/datum/material_container/materials + var/efficiency_coeff + + var/list/categories = list( + "Power Designs", + "Medical Designs", + "Bluespace Designs", + "Stock Parts", + "Equipment", + "Mining Designs", + "Electronics", + "Weapons", + "Ammo", + "Firing Pins", + "Computer Parts" + ) + + /obj/machinery/r_n_d/protolathe/Initialize() . = ..() - create_reagents(0) - materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null) - B.apply_default_parts(src) - -/obj/item/weapon/circuitboard/machine/protolathe - name = "Protolathe (Machine Board)" - build_path = /obj/machinery/r_n_d/protolathe - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/reagent_containers/glass/beaker = 2) - -/obj/machinery/r_n_d/protolathe/Destroy() - qdel(materials) - return ..() - -/obj/machinery/r_n_d/protolathe/RefreshParts() - reagents.maximum_volume = 0 - for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) - reagents.maximum_volume += G.volume - G.reagents.trans_to(src, G.reagents.total_volume) - - materials.max_amount = 0 - for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) - materials.max_amount += M.rating * 75000 - - var/T = 1.2 - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - T -= M.rating/10 - efficiency_coeff = min(max(0, T), 1) - -/obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material - var/list/all_materials = being_built.reagents_list + being_built.materials - - var/A = materials.amount(M) - if(!A) - A = reagents.get_reagent_amount(M) - - return round(A / max(1, (all_materials[M]*efficiency_coeff))) - -//we eject the materials upon deconstruction. -/obj/machinery/r_n_d/protolathe/on_deconstruction() - for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) - reagents.trans_to(G, G.reagents.maximum_volume) - materials.retrieve_all() - ..() - - -/obj/machinery/r_n_d/protolathe/disconnect_console() - linked_console.linked_lathe = null - ..() - -/obj/machinery/r_n_d/protolathe/Insert_Item(obj/item/O, mob/user) - - if(istype(O, /obj/item/stack/sheet)) - . = 1 - if(!is_insertion_ready(user)) - return - var/sheet_material = materials.get_item_material_amount(O) - if(!sheet_material) - return - - if(!materials.has_space(sheet_material)) - to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") - return 1 - - var/obj/item/stack/sheet/stack = O - var/amount = round(input("How many sheets do you want to add?") as num)//No decimals - if(!in_range(src, stack) || !user.Adjacent(src)) - return - var/amount_inserted = materials.insert_stack(O,amount) - if(!amount_inserted) - return 1 - else - var/stack_name = stack.name - busy = TRUE - use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10))) - to_chat(user, "You add [amount_inserted] sheets to the [src.name].") - add_overlay("protolathe_[stack_name]") - sleep(10) - cut_overlay("protolathe_[stack_name]") - busy = FALSE - updateUsrDialog() - - else if(istype(O, /obj/item/weapon/ore/bluespace_crystal)) //Bluespace crystals can be either a stack or an item - . = 1 - if(!is_insertion_ready(user)) - return - var/bs_material = materials.get_item_material_amount(O) - if(!bs_material) - return - - if(!materials.has_space(bs_material)) - to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") - return 1 - - materials.insert_item(O) - busy = TRUE - use_power(MINERAL_MATERIAL_AMOUNT/10) - to_chat(user, "You add [O] to the [src.name].") - qdel(O) - add_overlay("protolathe_bluespace") - sleep(10) - cut_overlay("protolathe_bluespace") - busy = FALSE - updateUsrDialog() - - else if(user.a_intent != INTENT_HARM) - to_chat(user, "You cannot insert this item into the [name]!") - return 1 - else - return 0 + create_reagents(0) + materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/protolathe + name = "Protolathe (Machine Board)" + build_path = /obj/machinery/r_n_d/protolathe + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/reagent_containers/glass/beaker = 2) + +/obj/machinery/r_n_d/protolathe/Destroy() + qdel(materials) + return ..() + +/obj/machinery/r_n_d/protolathe/RefreshParts() + reagents.maximum_volume = 0 + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.maximum_volume += G.volume + G.reagents.trans_to(src, G.reagents.total_volume) + + materials.max_amount = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + materials.max_amount += M.rating * 75000 + + var/T = 1.2 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + T -= M.rating/10 + efficiency_coeff = min(max(0, T), 1) + +/obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material + var/list/all_materials = being_built.reagents_list + being_built.materials + + var/A = materials.amount(M) + if(!A) + A = reagents.get_reagent_amount(M) + + return round(A / max(1, (all_materials[M]*efficiency_coeff))) + +//we eject the materials upon deconstruction. +/obj/machinery/r_n_d/protolathe/on_deconstruction() + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.trans_to(G, G.reagents.maximum_volume) + materials.retrieve_all() + ..() + + +/obj/machinery/r_n_d/protolathe/disconnect_console() + linked_console.linked_lathe = null + ..() + +/obj/machinery/r_n_d/protolathe/Insert_Item(obj/item/O, mob/user) + + if(istype(O, /obj/item/stack/sheet)) + . = 1 + if(!is_insertion_ready(user)) + return + var/sheet_material = materials.get_item_material_amount(O) + if(!sheet_material) + return + + if(!materials.has_space(sheet_material)) + to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") + return 1 + + var/obj/item/stack/sheet/stack = O + var/amount = round(input("How many sheets do you want to add?") as num)//No decimals + if(!in_range(src, stack) || !user.Adjacent(src)) + return + var/amount_inserted = materials.insert_stack(O,amount) + if(!amount_inserted) + return 1 + else + var/stack_name = stack.name + busy = TRUE + use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10))) + to_chat(user, "You add [amount_inserted] sheets to the [src.name].") + add_overlay("protolathe_[stack_name]") + sleep(10) + cut_overlay("protolathe_[stack_name]") + busy = FALSE + updateUsrDialog() + + else if(istype(O, /obj/item/weapon/ore/bluespace_crystal)) //Bluespace crystals can be either a stack or an item + . = 1 + if(!is_insertion_ready(user)) + return + var/bs_material = materials.get_item_material_amount(O) + if(!bs_material) + return + + if(!materials.has_space(bs_material)) + to_chat(user, "The [src.name]'s material bin is full! Please remove material before adding more.") + return 1 + + materials.insert_item(O) + busy = TRUE + use_power(MINERAL_MATERIAL_AMOUNT/10) + to_chat(user, "You add [O] to the [src.name].") + qdel(O) + add_overlay("protolathe_bluespace") + sleep(10) + cut_overlay("protolathe_bluespace") + busy = FALSE + updateUsrDialog() + + else if(user.a_intent != INTENT_HARM) + to_chat(user, "You cannot insert this item into the [name]!") + return 1 + else + return 0 diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index fb4a4b9af3..8f79e13556 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -1,1084 +1,1084 @@ -/* -Research and Development (R&D) Console - -This is the main work horse of the R&D system. It contains the menus/controls for the Destructive Analyzer, Protolathe, and Circuit -imprinter. It also contains the /datum/research holder with all the known/possible technology paths and device designs. - -Basic use: When it first is created, it will attempt to link up to related devices within 3 squares. It'll only link up if they -aren't already linked to another console. Any consoles it cannot link up with (either because all of a certain type are already -linked or there aren't any in range), you'll just not have access to that menu. In the settings menu, there are menu options that -allow a player to attempt to re-sync with nearby consoles. You can also force it to disconnect from a specific console. - -The imprinting and construction menus do NOT require toxins access to access but all the other menus do. However, if you leave it -on a menu, nothing is to stop the person from using the options on that menu (although they won't be able to change to a different -one). You can also lock the console on the settings menu if you're feeling paranoid and you don't want anyone messing with it who -doesn't have toxins access. - -When a R&D console is destroyed or even partially disassembled, you lose all research data on it. However, there are two ways around -this dire fate: -- The easiest way is to go to the settings menu and select "Sync Database with Network." That causes it to upload (but not download) -it's data to every other device in the game. Each console has a "disconnect from network" option that'll will cause data base sync -operations to skip that console. This is useful if you want to make a "public" R&D console or, for example, give the engineers -a circuit imprinter with certain designs on it and don't want it accidentally updating. The downside of this method is that you have -to have physical access to the other console to send data back. Note: An R&D console is on Centcom so if a random griffan happens to -cause a ton of data to be lost, an admin can go send it back. -- The second method is with Technology Disks and Design Disks. Each of these disks can hold technology or design datums in -their entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it -won't update every console in existence) but it's more of a hassle to do. Also, the disks can be stolen. - - -*/ - -/obj/machinery/computer/rdconsole - name = "R&D Console" - icon_screen = "rdcomp" - icon_keyboard = "rd_key" - circuit = /obj/item/weapon/circuitboard/computer/rdconsole - var/datum/research/files //Stores all the collected research data. - var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk. - var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk. - - var/obj/machinery/r_n_d/destructive_analyzer/linked_destroy = null //Linked Destructive Analyzer - var/obj/machinery/r_n_d/protolathe/linked_lathe = null //Linked Protolathe - var/obj/machinery/r_n_d/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter - - var/screen = 1.0 //Which screen is currently showing. - var/id = 0 //ID of the computer (for server restrictions). - var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console - var/first_use = 1 //If first_use = 1, it will try to auto-connect with nearby devices - - req_access = list(GLOB.access_tox) //Data and setting manipulation requires scientist access. - - var/selected_category - var/list/datum/design/matching_designs = list() //for the search function - var/disk_slot_selected = 0 - - -/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID. - if(GLOB.tech_list[ID]) - var/datum/tech/tech = GLOB.tech_list[ID] - return tech.name - return "ERROR: Report This" - -/proc/CallMaterialName(ID) - if (copytext(ID, 1, 2) == "$" && GLOB.materials_list[ID]) - var/datum/material/material = GLOB.materials_list[ID] - return material.name - - else if(GLOB.chemical_reagents_list[ID]) - var/datum/reagent/reagent = GLOB.chemical_reagents_list[ID] - return reagent.name - return "ERROR: Report This" - -/obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any). - for(var/obj/machinery/r_n_d/D in oview(3,src)) - if(D.linked_console != null || D.disabled || D.panel_open) - continue - if(istype(D, /obj/machinery/r_n_d/destructive_analyzer)) - if(linked_destroy == null) - linked_destroy = D - D.linked_console = src - else if(istype(D, /obj/machinery/r_n_d/protolathe)) - if(linked_lathe == null) - linked_lathe = D - D.linked_console = src - else if(istype(D, /obj/machinery/r_n_d/circuit_imprinter)) - if(linked_imprinter == null) - linked_imprinter = D - D.linked_console = src - first_use = 0 - -//Have it automatically push research to the centcom server so wild griffins can't fuck up R&D's work --NEO -/obj/machinery/computer/rdconsole/proc/griefProtection() - for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines) - for(var/v in files.known_tech) - var/datum/tech/T = files.known_tech[v] - C.files.AddTech2Known(T) - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - C.files.AddDesign2Known(D) - C.files.RefreshResearch() - - +/* +Research and Development (R&D) Console + +This is the main work horse of the R&D system. It contains the menus/controls for the Destructive Analyzer, Protolathe, and Circuit +imprinter. It also contains the /datum/research holder with all the known/possible technology paths and device designs. + +Basic use: When it first is created, it will attempt to link up to related devices within 3 squares. It'll only link up if they +aren't already linked to another console. Any consoles it cannot link up with (either because all of a certain type are already +linked or there aren't any in range), you'll just not have access to that menu. In the settings menu, there are menu options that +allow a player to attempt to re-sync with nearby consoles. You can also force it to disconnect from a specific console. + +The imprinting and construction menus do NOT require toxins access to access but all the other menus do. However, if you leave it +on a menu, nothing is to stop the person from using the options on that menu (although they won't be able to change to a different +one). You can also lock the console on the settings menu if you're feeling paranoid and you don't want anyone messing with it who +doesn't have toxins access. + +When a R&D console is destroyed or even partially disassembled, you lose all research data on it. However, there are two ways around +this dire fate: +- The easiest way is to go to the settings menu and select "Sync Database with Network." That causes it to upload (but not download) +it's data to every other device in the game. Each console has a "disconnect from network" option that'll will cause data base sync +operations to skip that console. This is useful if you want to make a "public" R&D console or, for example, give the engineers +a circuit imprinter with certain designs on it and don't want it accidentally updating. The downside of this method is that you have +to have physical access to the other console to send data back. Note: An R&D console is on Centcom so if a random griffan happens to +cause a ton of data to be lost, an admin can go send it back. +- The second method is with Technology Disks and Design Disks. Each of these disks can hold technology or design datums in +their entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it +won't update every console in existence) but it's more of a hassle to do. Also, the disks can be stolen. + + +*/ + +/obj/machinery/computer/rdconsole + name = "R&D Console" + icon_screen = "rdcomp" + icon_keyboard = "rd_key" + circuit = /obj/item/weapon/circuitboard/computer/rdconsole + var/datum/research/files //Stores all the collected research data. + var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk. + var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk. + + var/obj/machinery/r_n_d/destructive_analyzer/linked_destroy = null //Linked Destructive Analyzer + var/obj/machinery/r_n_d/protolathe/linked_lathe = null //Linked Protolathe + var/obj/machinery/r_n_d/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter + + var/screen = 1.0 //Which screen is currently showing. + var/id = 0 //ID of the computer (for server restrictions). + var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console + var/first_use = 1 //If first_use = 1, it will try to auto-connect with nearby devices + + req_access = list(GLOB.access_tox) //Data and setting manipulation requires scientist access. + + var/selected_category + var/list/datum/design/matching_designs = list() //for the search function + var/disk_slot_selected = 0 + + +/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID. + if(GLOB.tech_list[ID]) + var/datum/tech/tech = GLOB.tech_list[ID] + return tech.name + return "ERROR: Report This" + +/proc/CallMaterialName(ID) + if (copytext(ID, 1, 2) == "$" && GLOB.materials_list[ID]) + var/datum/material/material = GLOB.materials_list[ID] + return material.name + + else if(GLOB.chemical_reagents_list[ID]) + var/datum/reagent/reagent = GLOB.chemical_reagents_list[ID] + return reagent.name + return "ERROR: Report This" + +/obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any). + for(var/obj/machinery/r_n_d/D in oview(3,src)) + if(D.linked_console != null || D.disabled || D.panel_open) + continue + if(istype(D, /obj/machinery/r_n_d/destructive_analyzer)) + if(linked_destroy == null) + linked_destroy = D + D.linked_console = src + else if(istype(D, /obj/machinery/r_n_d/protolathe)) + if(linked_lathe == null) + linked_lathe = D + D.linked_console = src + else if(istype(D, /obj/machinery/r_n_d/circuit_imprinter)) + if(linked_imprinter == null) + linked_imprinter = D + D.linked_console = src + first_use = 0 + +//Have it automatically push research to the centcom server so wild griffins can't fuck up R&D's work --NEO +/obj/machinery/computer/rdconsole/proc/griefProtection() + for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines) + for(var/v in files.known_tech) + var/datum/tech/T = files.known_tech[v] + C.files.AddTech2Known(T) + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + C.files.AddDesign2Known(D) + C.files.RefreshResearch() + + /obj/machinery/computer/rdconsole/Initialize() . = ..() - files = new /datum/research(src) //Setup the research data holder. - matching_designs = list() - if(!id) - fix_noid_research_servers() - -/* Instead of calling this every tick, it is only being called when needed -/obj/machinery/computer/rdconsole/process() - griefProtection() -*/ - -/obj/machinery/computer/rdconsole/attackby(obj/item/weapon/D, mob/user, params) - - //Loading a disk into it. - if(istype(D, /obj/item/weapon/disk)) - if(t_disk || d_disk) - to_chat(user, "A disk is already loaded into the machine.") - return - - if(istype(D, /obj/item/weapon/disk/tech_disk)) - t_disk = D - else if (istype(D, /obj/item/weapon/disk/design_disk)) - d_disk = D - else - to_chat(user, "Machine cannot accept disks in that format.") - return - if(!user.drop_item()) - return - D.loc = src - to_chat(user, "You add the disk to the machine!") - else if(!(linked_destroy && linked_destroy.busy) && !(linked_lathe && linked_lathe.busy) && !(linked_imprinter && linked_imprinter.busy)) - . = ..() - updateUsrDialog() - - -/obj/machinery/computer/rdconsole/on_deconstruction() - if(linked_destroy) - linked_destroy.linked_console = null - linked_destroy = null - if(linked_lathe) - linked_lathe.linked_console = null - linked_lathe = null - if(linked_imprinter) - linked_imprinter.linked_console = null - linked_imprinter = null - ..() - - -/obj/machinery/computer/rdconsole/emag_act(mob/user) - if(!emagged) - playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) - emagged = 1 - to_chat(user, "You disable the security protocols") - -/obj/machinery/computer/rdconsole/Topic(href, href_list) - if(..()) - return - - add_fingerprint(usr) - - usr.set_machine(src) - if(href_list["disk_slot"]) - disk_slot_selected = text2num(href_list["disk_slot"]) - - if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code. - var/temp_screen = text2num(href_list["menu"]) - screen = temp_screen - - if(href_list["category"]) - selected_category = href_list["category"] - - else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. - var/n = text2num(href_list["updt_tech"]) - screen = 0.0 - var/wait = 50 - if(!n) - wait = 0 - for(var/D in t_disk.tech_stored) - if(D) - wait += 50 - spawn(wait) - screen = 1.2 - if(t_disk) - if(!n) - for(var/tech in t_disk.tech_stored) - files.AddTech2Known(tech) - else - files.AddTech2Known(t_disk.tech_stored[n]) - updateUsrDialog() - griefProtection() //Update centcom too - - else if(href_list["clear_tech"]) //Erase data on the technology disk. - if(t_disk) - var/n = text2num(href_list["clear_tech"]) - if(!n) - for(var/i in 1 to t_disk.max_tech_stored) - t_disk.tech_stored[i] = null - else - t_disk.tech_stored[n] = null - - else if(href_list["eject_tech"]) //Eject the technology disk. - if(t_disk) - t_disk.loc = src.loc - t_disk = null - screen = 1.0 - - else if(href_list["copy_tech"]) //Copy some technology data from the research holder to the disk. - var/slot = text2num(href_list["copy_tech"]) - var/datum/tech/T = files.known_tech[href_list["copy_tech_ID"]] - if(T) - t_disk.tech_stored[slot] = T.copy() - screen = 1.2 - - else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk. - var/n = text2num(href_list["updt_design"]) - screen = 0.0 - var/wait = 50 - if(!n) - wait = 0 - for(var/D in d_disk.blueprints) - if(D) - wait += 50 - spawn(wait) - screen = 1.4 - if(d_disk) - if(!n) - for(var/D in d_disk.blueprints) - if(D) - files.AddDesign2Known(D) - else - files.AddDesign2Known(d_disk.blueprints[n]) - updateUsrDialog() - griefProtection() //Update centcom too - - else if(href_list["clear_design"]) //Erases data on the design disk. - if(d_disk) - var/n = text2num(href_list["clear_design"]) - if(!n) - for(var/i in 1 to d_disk.max_blueprints) - d_disk.blueprints[i] = null - else - d_disk.blueprints[n] = null - - else if(href_list["eject_design"]) //Eject the design disk. - if(d_disk) - d_disk.loc = src.loc - d_disk = null - screen = 1.0 - - else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk. - var/slot = text2num(href_list["copy_design"]) - var/datum/design/D = files.known_designs[href_list["copy_design_ID"]] - if(D) - var/autolathe_friendly = 1 - if(D.reagents_list.len) - autolathe_friendly = 0 - D.category -= "Imported" - else - for(var/x in D.materials) - if( !(x in list(MAT_METAL, MAT_GLASS))) - autolathe_friendly = 0 - D.category -= "Imported" - - if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab - D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type - D.category |= "Imported" - d_disk.blueprints[slot] = D - screen = 1.4 - - else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer. - if(linked_destroy) - if(linked_destroy.busy) - to_chat(usr, "The destructive analyzer is busy at the moment.") - - else if(linked_destroy.loaded_item) - linked_destroy.loaded_item.forceMove(linked_destroy.loc) - linked_destroy.loaded_item = null - linked_destroy.icon_state = "d_analyzer" - screen = 1.0 - - else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder. - if(!linked_destroy || linked_destroy.busy || !linked_destroy.loaded_item) - updateUsrDialog() - return - - var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) - var/cancontinue = FALSE - for(var/T in temp_tech) - if(files.IsTechHigher(T, temp_tech[T])) - cancontinue = TRUE - break - if(!cancontinue) - var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel") - if(choice == "Cancel" || !linked_destroy || !linked_destroy.loaded_item) return - linked_destroy.busy = 1 - screen = 0.1 - updateUsrDialog() - flick("d_analyzer_process", linked_destroy) - spawn(24) - if(linked_destroy) - linked_destroy.busy = 0 - if(!linked_destroy.loaded_item) - screen = 1.0 - return - - for(var/T in temp_tech) - var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels - if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels + files = new /datum/research(src) //Setup the research data holder. + matching_designs = list() + if(!id) + fix_noid_research_servers() + +/* Instead of calling this every tick, it is only being called when needed +/obj/machinery/computer/rdconsole/process() + griefProtection() +*/ + +/obj/machinery/computer/rdconsole/attackby(obj/item/weapon/D, mob/user, params) + + //Loading a disk into it. + if(istype(D, /obj/item/weapon/disk)) + if(t_disk || d_disk) + to_chat(user, "A disk is already loaded into the machine.") + return + + if(istype(D, /obj/item/weapon/disk/tech_disk)) + t_disk = D + else if (istype(D, /obj/item/weapon/disk/design_disk)) + d_disk = D + else + to_chat(user, "Machine cannot accept disks in that format.") + return + if(!user.drop_item()) + return + D.loc = src + to_chat(user, "You add the disk to the machine!") + else if(!(linked_destroy && linked_destroy.busy) && !(linked_lathe && linked_lathe.busy) && !(linked_imprinter && linked_imprinter.busy)) + . = ..() + updateUsrDialog() + + +/obj/machinery/computer/rdconsole/on_deconstruction() + if(linked_destroy) + linked_destroy.linked_console = null + linked_destroy = null + if(linked_lathe) + linked_lathe.linked_console = null + linked_lathe = null + if(linked_imprinter) + linked_imprinter.linked_console = null + linked_imprinter = null + ..() + + +/obj/machinery/computer/rdconsole/emag_act(mob/user) + if(!emagged) + playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) + emagged = 1 + to_chat(user, "You disable the security protocols") + +/obj/machinery/computer/rdconsole/Topic(href, href_list) + if(..()) + return + + add_fingerprint(usr) + + usr.set_machine(src) + if(href_list["disk_slot"]) + disk_slot_selected = text2num(href_list["disk_slot"]) + + if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code. + var/temp_screen = text2num(href_list["menu"]) + screen = temp_screen + + if(href_list["category"]) + selected_category = href_list["category"] + + else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. + var/n = text2num(href_list["updt_tech"]) + screen = 0.0 + var/wait = 50 + if(!n) + wait = 0 + for(var/D in t_disk.tech_stored) + if(D) + wait += 50 + spawn(wait) + screen = 1.2 + if(t_disk) + if(!n) + for(var/tech in t_disk.tech_stored) + files.AddTech2Known(tech) + else + files.AddTech2Known(t_disk.tech_stored[n]) + updateUsrDialog() + griefProtection() //Update centcom too + + else if(href_list["clear_tech"]) //Erase data on the technology disk. + if(t_disk) + var/n = text2num(href_list["clear_tech"]) + if(!n) + for(var/i in 1 to t_disk.max_tech_stored) + t_disk.tech_stored[i] = null + else + t_disk.tech_stored[n] = null + + else if(href_list["eject_tech"]) //Eject the technology disk. + if(t_disk) + t_disk.loc = src.loc + t_disk = null + screen = 1.0 + + else if(href_list["copy_tech"]) //Copy some technology data from the research holder to the disk. + var/slot = text2num(href_list["copy_tech"]) + var/datum/tech/T = files.known_tech[href_list["copy_tech_ID"]] + if(T) + t_disk.tech_stored[slot] = T.copy() + screen = 1.2 + + else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk. + var/n = text2num(href_list["updt_design"]) + screen = 0.0 + var/wait = 50 + if(!n) + wait = 0 + for(var/D in d_disk.blueprints) + if(D) + wait += 50 + spawn(wait) + screen = 1.4 + if(d_disk) + if(!n) + for(var/D in d_disk.blueprints) + if(D) + files.AddDesign2Known(D) + else + files.AddDesign2Known(d_disk.blueprints[n]) + updateUsrDialog() + griefProtection() //Update centcom too + + else if(href_list["clear_design"]) //Erases data on the design disk. + if(d_disk) + var/n = text2num(href_list["clear_design"]) + if(!n) + for(var/i in 1 to d_disk.max_blueprints) + d_disk.blueprints[i] = null + else + d_disk.blueprints[n] = null + + else if(href_list["eject_design"]) //Eject the design disk. + if(d_disk) + d_disk.loc = src.loc + d_disk = null + screen = 1.0 + + else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk. + var/slot = text2num(href_list["copy_design"]) + var/datum/design/D = files.known_designs[href_list["copy_design_ID"]] + if(D) + var/autolathe_friendly = 1 + if(D.reagents_list.len) + autolathe_friendly = 0 + D.category -= "Imported" + else + for(var/x in D.materials) + if( !(x in list(MAT_METAL, MAT_GLASS))) + autolathe_friendly = 0 + D.category -= "Imported" + + if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab + D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type + D.category |= "Imported" + d_disk.blueprints[slot] = D + screen = 1.4 + + else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer. + if(linked_destroy) + if(linked_destroy.busy) + to_chat(usr, "The destructive analyzer is busy at the moment.") + + else if(linked_destroy.loaded_item) + linked_destroy.loaded_item.forceMove(linked_destroy.loc) + linked_destroy.loaded_item = null + linked_destroy.icon_state = "d_analyzer" + screen = 1.0 + + else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder. + if(!linked_destroy || linked_destroy.busy || !linked_destroy.loaded_item) + updateUsrDialog() + return + + var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) + var/cancontinue = FALSE + for(var/T in temp_tech) + if(files.IsTechHigher(T, temp_tech[T])) + cancontinue = TRUE + break + if(!cancontinue) + var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel") + if(choice == "Cancel" || !linked_destroy || !linked_destroy.loaded_item) return + linked_destroy.busy = 1 + screen = 0.1 + updateUsrDialog() + flick("d_analyzer_process", linked_destroy) + spawn(24) + if(linked_destroy) + linked_destroy.busy = 0 + if(!linked_destroy.loaded_item) + screen = 1.0 + return + + for(var/T in temp_tech) + var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels + if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels SSblackbox.add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get - files.UpdateTech(T, temp_tech[T]) - - if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. - for(var/material in linked_destroy.loaded_item.materials) - linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) + files.UpdateTech(T, temp_tech[T]) + + if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. + for(var/material in linked_destroy.loaded_item.materials) + linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) SSblackbox.add_details("item_deconstructed","[linked_destroy.loaded_item.type]") - linked_destroy.loaded_item = null - for(var/obj/I in linked_destroy.contents) - for(var/mob/M in I.contents) - M.death() - if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack - var/obj/item/stack/sheet/S = I - if(S.amount > 1) - S.amount-- - linked_destroy.loaded_item = S - else - qdel(S) - linked_destroy.icon_state = "d_analyzer" - else - if(!(I in linked_destroy.component_parts)) - qdel(I) - linked_destroy.icon_state = "d_analyzer" - screen = 1.0 - use_power(250) - updateUsrDialog() - - else if(href_list["lock"]) //Lock the console from use by anyone without tox access. - if(src.allowed(usr)) - screen = text2num(href_list["lock"]) - else - to_chat(usr, "Unauthorized Access.") - - else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected. - screen = 0.0 - if(!sync) - to_chat(usr, "You must connect to the network first!") - else - griefProtection() //Putting this here because I dont trust the sync process - spawn(30) - if(src) - for(var/obj/machinery/r_n_d/server/S in GLOB.machines) - var/server_processed = 0 - if(S.disabled) - continue - if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom)) - for(var/v in files.known_tech) - var/datum/tech/T = files.known_tech[v] - S.files.AddTech2Known(T) - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - S.files.AddDesign2Known(D) - S.files.RefreshResearch() - server_processed = 1 - if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked) - for(var/v in S.files.known_tech) - var/datum/tech/T = S.files.known_tech[v] - files.AddTech2Known(T) - for(var/v in S.files.known_designs) - var/datum/design/D = S.files.known_designs[v] - files.AddDesign2Known(D) - files.RefreshResearch() - server_processed = 1 - if(!istype(S, /obj/machinery/r_n_d/server/centcom) && server_processed) - S.produce_heat(100) - screen = 1.6 - updateUsrDialog() - - else if(href_list["togglesync"]) //Prevents the console from being synced by other consoles. Can still send data. - sync = !sync - - else if(href_list["build"]) //Causes the Protolathe to build something. - var/datum/design/being_built = files.known_designs[href_list["build"]] - var/amount = text2num(href_list["amount"]) - - if(being_built.make_reagents.len) - return 0 - - if(!linked_lathe || !being_built || !amount) - updateUsrDialog() - return - - if(linked_lathe.busy) - to_chat(usr, "Protolathe is busy at the moment.") - return - - var/coeff = linked_lathe.efficiency_coeff - var/power = 1000 - var/old_screen = screen - - amount = max(1, min(10, amount)) - for(var/M in being_built.materials) - power += round(being_built.materials[M] * amount / 5) - power = max(3000, power) - screen = 0.3 - var/key = usr.key //so we don't lose the info during the spawn delay - if (!(being_built.build_type & PROTOLATHE)) - message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!") - updateUsrDialog() - return - - var/g2g = 1 - var/enough_materials = 1 - linked_lathe.busy = 1 - flick("protolathe_n",linked_lathe) - use_power(power) - - var/list/efficient_mats = list() - for(var/MAT in being_built.materials) - efficient_mats[MAT] = being_built.materials[MAT]*coeff - - if(!linked_lathe.materials.has_materials(efficient_mats, amount)) - linked_lathe.say("Not enough materials to complete prototype.") - enough_materials = 0 - g2g = 0 - else - for(var/R in being_built.reagents_list) - if(!linked_lathe.reagents.has_reagent(R, being_built.reagents_list[R]*coeff)) - linked_lathe.say("Not enough reagents to complete prototype.") - enough_materials = 0 - g2g = 0 - - if(enough_materials) - linked_lathe.materials.use_amount(efficient_mats, amount) - for(var/R in being_built.reagents_list) - linked_lathe.reagents.remove_reagent(R, being_built.reagents_list[R]*coeff) - - var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. - - coeff *= being_built.lathe_time_factor - - spawn(32*coeff*amount**0.8) - if(linked_lathe) - if(g2g) //And if we only fail the material requirements, we still spend time and power - var/already_logged = 0 - for(var/i = 0, i 1) + S.amount-- + linked_destroy.loaded_item = S + else + qdel(S) + linked_destroy.icon_state = "d_analyzer" + else + if(!(I in linked_destroy.component_parts)) + qdel(I) + linked_destroy.icon_state = "d_analyzer" + screen = 1.0 + use_power(250) + updateUsrDialog() + + else if(href_list["lock"]) //Lock the console from use by anyone without tox access. + if(src.allowed(usr)) + screen = text2num(href_list["lock"]) + else + to_chat(usr, "Unauthorized Access.") + + else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected. + screen = 0.0 + if(!sync) + to_chat(usr, "You must connect to the network first!") + else + griefProtection() //Putting this here because I dont trust the sync process + spawn(30) + if(src) + for(var/obj/machinery/r_n_d/server/S in GLOB.machines) + var/server_processed = 0 + if(S.disabled) + continue + if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom)) + for(var/v in files.known_tech) + var/datum/tech/T = files.known_tech[v] + S.files.AddTech2Known(T) + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + S.files.AddDesign2Known(D) + S.files.RefreshResearch() + server_processed = 1 + if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked) + for(var/v in S.files.known_tech) + var/datum/tech/T = S.files.known_tech[v] + files.AddTech2Known(T) + for(var/v in S.files.known_designs) + var/datum/design/D = S.files.known_designs[v] + files.AddDesign2Known(D) + files.RefreshResearch() + server_processed = 1 + if(!istype(S, /obj/machinery/r_n_d/server/centcom) && server_processed) + S.produce_heat(100) + screen = 1.6 + updateUsrDialog() + + else if(href_list["togglesync"]) //Prevents the console from being synced by other consoles. Can still send data. + sync = !sync + + else if(href_list["build"]) //Causes the Protolathe to build something. + var/datum/design/being_built = files.known_designs[href_list["build"]] + var/amount = text2num(href_list["amount"]) + + if(being_built.make_reagents.len) + return 0 + + if(!linked_lathe || !being_built || !amount) + updateUsrDialog() + return + + if(linked_lathe.busy) + to_chat(usr, "Protolathe is busy at the moment.") + return + + var/coeff = linked_lathe.efficiency_coeff + var/power = 1000 + var/old_screen = screen + + amount = max(1, min(10, amount)) + for(var/M in being_built.materials) + power += round(being_built.materials[M] * amount / 5) + power = max(3000, power) + screen = 0.3 + var/key = usr.key //so we don't lose the info during the spawn delay + if (!(being_built.build_type & PROTOLATHE)) + message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!") + updateUsrDialog() + return + + var/g2g = 1 + var/enough_materials = 1 + linked_lathe.busy = 1 + flick("protolathe_n",linked_lathe) + use_power(power) + + var/list/efficient_mats = list() + for(var/MAT in being_built.materials) + efficient_mats[MAT] = being_built.materials[MAT]*coeff + + if(!linked_lathe.materials.has_materials(efficient_mats, amount)) + linked_lathe.say("Not enough materials to complete prototype.") + enough_materials = 0 + g2g = 0 + else + for(var/R in being_built.reagents_list) + if(!linked_lathe.reagents.has_reagent(R, being_built.reagents_list[R]*coeff)) + linked_lathe.say("Not enough reagents to complete prototype.") + enough_materials = 0 + g2g = 0 + + if(enough_materials) + linked_lathe.materials.use_amount(efficient_mats, amount) + for(var/R in being_built.reagents_list) + linked_lathe.reagents.remove_reagent(R, being_built.reagents_list[R]*coeff) + + var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. + + coeff *= being_built.lathe_time_factor + + spawn(32*coeff*amount**0.8) + if(linked_lathe) + if(g2g) //And if we only fail the material requirements, we still spend time and power + var/already_logged = 0 + for(var/i = 0, iCircuit Imprinter is busy at the moment.
    ") - updateUsrDialog() - return - - var/coeff = linked_imprinter.efficiency_coeff - - var/power = 1000 - var/old_screen = screen - for(var/M in being_built.materials) - power += round(being_built.materials[M] / 5) - power = max(4000, power) - screen = 0.4 - if (!(being_built.build_type & IMPRINTER)) - message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!") - updateUsrDialog() - return - - var/g2g = 1 - var/enough_materials = 1 - linked_imprinter.busy = 1 - flick("circuit_imprinter_ani", linked_imprinter) - use_power(power) - - var/list/efficient_mats = list() - for(var/MAT in being_built.materials) - efficient_mats[MAT] = being_built.materials[MAT]/coeff - - if(!linked_imprinter.materials.has_materials(efficient_mats)) - linked_imprinter.say("Not enough materials to complete prototype.") - enough_materials = 0 - g2g = 0 - else - for(var/R in being_built.reagents_list) - if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents_list[R]/coeff)) - linked_imprinter.say("Not enough reagents to complete prototype.") - enough_materials = 0 - g2g = 0 - - if(enough_materials) - linked_imprinter.materials.use_amount(efficient_mats) - for(var/R in being_built.reagents_list) - linked_imprinter.reagents.remove_reagent(R, being_built.reagents_list[R]/coeff) - - var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. - spawn(16) - if(linked_imprinter) - if(g2g) - var/obj/item/new_item = new P(src) - new_item.loc = linked_imprinter.loc - new_item.materials = efficient_mats.Copy() + already_logged = 1 + screen = old_screen + linked_lathe.busy = 0 + else + say("Protolathe connection failed. Production halted.") + screen = 1.0 + updateUsrDialog() + + else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something. + var/datum/design/being_built = files.known_designs[href_list["imprint"]] + + if(!linked_imprinter || !being_built) + updateUsrDialog() + return + + if(linked_imprinter.busy) + to_chat(usr, "Circuit Imprinter is busy at the moment.") + updateUsrDialog() + return + + var/coeff = linked_imprinter.efficiency_coeff + + var/power = 1000 + var/old_screen = screen + for(var/M in being_built.materials) + power += round(being_built.materials[M] / 5) + power = max(4000, power) + screen = 0.4 + if (!(being_built.build_type & IMPRINTER)) + message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!") + updateUsrDialog() + return + + var/g2g = 1 + var/enough_materials = 1 + linked_imprinter.busy = 1 + flick("circuit_imprinter_ani", linked_imprinter) + use_power(power) + + var/list/efficient_mats = list() + for(var/MAT in being_built.materials) + efficient_mats[MAT] = being_built.materials[MAT]/coeff + + if(!linked_imprinter.materials.has_materials(efficient_mats)) + linked_imprinter.say("Not enough materials to complete prototype.") + enough_materials = 0 + g2g = 0 + else + for(var/R in being_built.reagents_list) + if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents_list[R]/coeff)) + linked_imprinter.say("Not enough reagents to complete prototype.") + enough_materials = 0 + g2g = 0 + + if(enough_materials) + linked_imprinter.materials.use_amount(efficient_mats) + for(var/R in being_built.reagents_list) + linked_imprinter.reagents.remove_reagent(R, being_built.reagents_list[R]/coeff) + + var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. + spawn(16) + if(linked_imprinter) + if(g2g) + var/obj/item/new_item = new P(src) + new_item.loc = linked_imprinter.loc + new_item.materials = efficient_mats.Copy() SSblackbox.add_details("circuit_printed","[new_item.type]") - screen = old_screen - linked_imprinter.busy = 0 - else - say("Circuit Imprinter connection failed. Production halted.") - screen = 1.0 - updateUsrDialog() - - //Protolathe Materials - else if(href_list["disposeP"] && linked_lathe) //Causes the protolathe to dispose of a single reagent (all of it) - linked_lathe.reagents.del_reagent(href_list["disposeP"]) - - else if(href_list["disposeallP"] && linked_lathe) //Causes the protolathe to dispose of all it's reagents. - linked_lathe.reagents.clear_reagents() - - else if(href_list["ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material - linked_lathe.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["ejectsheet"]) - - //Circuit Imprinter Materials - else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it) - linked_imprinter.reagents.del_reagent(href_list["disposeI"]) - - else if(href_list["disposeallI"] && linked_imprinter) //Causes the circuit imprinter to dispose of all it's reagents. - linked_imprinter.reagents.clear_reagents() - - else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the imprinter to eject a sheet of material - linked_imprinter.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["imprinter_ejectsheet"]) - - - else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with. - screen = 0.0 - spawn(20) - SyncRDevices() - screen = 1.7 - updateUsrDialog() - - else if(href_list["disconnect"]) //The R&D console disconnects with a specific device. - switch(href_list["disconnect"]) - if("destroy") - linked_destroy.linked_console = null - linked_destroy = null - if("lathe") - linked_lathe.linked_console = null - linked_lathe = null - if("imprinter") - linked_imprinter.linked_console = null - linked_imprinter = null - - else if(href_list["reset"]) //Reset the R&D console's database. - griefProtection() - var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel") - if(choice == "Continue" && usr.canUseTopic(src)) - message_admins("[key_name_admin(usr)] reset \the [src.name]'s database") - log_game("[key_name_admin(usr)] reset \the [src.name]'s database") - screen = 0.0 - qdel(files) - files = new /datum/research(src) - spawn(20) - screen = 1.6 - updateUsrDialog() - - else if(href_list["search"]) //Search for designs with name matching pattern - var/compare - - matching_designs.Cut() - - if(href_list["type"] == "proto") - compare = PROTOLATHE - screen = 3.17 - else - compare = IMPRINTER - screen = 4.17 - - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(!(D.build_type & compare)) - continue - if(findtext(D.name,href_list["to_search"])) - matching_designs.Add(D) - - updateUsrDialog() - return - - -/obj/machinery/computer/rdconsole/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/rdconsole/interact(mob/user) - user.set_machine(src) - - if(first_use) - SyncRDevices() - - var/dat = "" - files.RefreshResearch() - switch(screen) //A quick check to make sure you get the right screen when a device is disconnected. - if(2 to 2.9) - if(screen == 2.3) - ; - else if(linked_destroy == null) - screen = 2.0 - else if(linked_destroy.loaded_item == null) - screen = 2.1 - else - screen = 2.2 - if(3 to 3.9) - if(linked_lathe == null) - screen = 3.0 - if(4 to 4.9) - if(linked_imprinter == null) - screen = 4.0 - - switch(screen) - - //////////////////////R&D CONSOLE SCREENS////////////////// - if(0.0) dat += "
    Updating Database....
    " - - if(0.1) dat += "
    Processing and Updating Database...
    " - - if(0.2) - dat += "
    SYSTEM LOCKED
    " - dat += "Unlock" - - if(0.3) - dat += "
    Constructing Prototype. Please Wait...
    " - - if(0.4) - dat += "
    Imprinting Circuit. Please Wait...
    " - - if(1.0) //Main Menu - dat += "
    " - dat += "

    Main Menu:


    " - dat += "Current Research Levels
    " - if(t_disk) - dat += "Disk Operations
    " - else if(d_disk) - dat += "Disk Operations
    " - else - dat += "Disk Operations
    " - if(linked_destroy) - dat += "Destructive Analyzer Menu
    " - else - dat += "Destructive Analyzer Menu
    " - if(linked_lathe) - dat += "Protolathe Construction Menu
    " - else - dat += "Protolathe Construction Menu
    " - if(linked_imprinter) - dat += "Circuit Construction Menu
    " - else - dat += "Circuit Construction Menu
    " - dat += "Settings" - dat += "
    " - - if(1.1) //Research viewer - dat += "Main Menu" - dat += "

    Current Research Levels:


    " - for(var/v in files.known_tech) - var/datum/tech/T = files.known_tech[v] - if(T.level <= 0) - continue - dat += "[T.name]
    " - dat += "* Level: [T.level]
    " - dat += "* Summary: [T.desc]
    " - dat += "
    " - - if(1.2) //Technology Disk Menu - dat += "Main Menu
    " - dat += "Disk Operations: Clear DiskUpload AllEject Disk" - for(var/i in 1 to t_disk.max_tech_stored) - dat += "
    " - if(t_disk.tech_stored[i]) - var/datum/tech/tech = t_disk.tech_stored[i] - dat += "Name: [tech.name]
    " - dat += "Level: [tech.level]
    " - dat += "Description: [tech.desc]
    " - dat += "Operations: Upload to DatabaseClear Slot" - else - dat += "Empty Slot
    Operations: Load Tech to Slot" - dat += "
    " - if(1.3) //Technology Disk submenu - dat += "Main Menu" - dat += "Return to Disk Operations
    " - dat += "

    Load Technology to Disk:


    " - for(var/v in files.known_tech) - var/datum/tech/T = files.known_tech[v] - if(T.level <= 0) - continue - dat += "[T.name]" - dat += "Copy to Disk
    " - dat += "
    " - - if(1.4) //Design Disk menu. - dat += "Main Menu
    " - dat += "Disk Operations: Clear DiskUpload AllEject Disk" - for(var/i in 1 to d_disk.max_blueprints) - dat += "
    " - if(d_disk.blueprints[i]) - var/datum/design/D = d_disk.blueprints[i] - dat += "Name: [D.name]
    " - if(D.build_type) - dat += "Lathe Types:
    " - if(D.build_type & IMPRINTER) dat += "Circuit Imprinter
    " - if(D.build_type & PROTOLATHE) dat += "Protolathe
    " - if(D.build_type & AUTOLATHE) dat += "Autolathe
    " - if(D.build_type & MECHFAB) dat += "Exosuit Fabricator
    " - if(D.build_type & BIOGENERATOR) dat += "Biogenerator
    " + screen = old_screen + linked_imprinter.busy = 0 + else + say("Circuit Imprinter connection failed. Production halted.") + screen = 1.0 + updateUsrDialog() + + //Protolathe Materials + else if(href_list["disposeP"] && linked_lathe) //Causes the protolathe to dispose of a single reagent (all of it) + linked_lathe.reagents.del_reagent(href_list["disposeP"]) + + else if(href_list["disposeallP"] && linked_lathe) //Causes the protolathe to dispose of all it's reagents. + linked_lathe.reagents.clear_reagents() + + else if(href_list["ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material + linked_lathe.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["ejectsheet"]) + + //Circuit Imprinter Materials + else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it) + linked_imprinter.reagents.del_reagent(href_list["disposeI"]) + + else if(href_list["disposeallI"] && linked_imprinter) //Causes the circuit imprinter to dispose of all it's reagents. + linked_imprinter.reagents.clear_reagents() + + else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the imprinter to eject a sheet of material + linked_imprinter.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["imprinter_ejectsheet"]) + + + else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with. + screen = 0.0 + spawn(20) + SyncRDevices() + screen = 1.7 + updateUsrDialog() + + else if(href_list["disconnect"]) //The R&D console disconnects with a specific device. + switch(href_list["disconnect"]) + if("destroy") + linked_destroy.linked_console = null + linked_destroy = null + if("lathe") + linked_lathe.linked_console = null + linked_lathe = null + if("imprinter") + linked_imprinter.linked_console = null + linked_imprinter = null + + else if(href_list["reset"]) //Reset the R&D console's database. + griefProtection() + var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel") + if(choice == "Continue" && usr.canUseTopic(src)) + message_admins("[key_name_admin(usr)] reset \the [src.name]'s database") + log_game("[key_name_admin(usr)] reset \the [src.name]'s database") + screen = 0.0 + qdel(files) + files = new /datum/research(src) + spawn(20) + screen = 1.6 + updateUsrDialog() + + else if(href_list["search"]) //Search for designs with name matching pattern + var/compare + + matching_designs.Cut() + + if(href_list["type"] == "proto") + compare = PROTOLATHE + screen = 3.17 + else + compare = IMPRINTER + screen = 4.17 + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(D.build_type & compare)) + continue + if(findtext(D.name,href_list["to_search"])) + matching_designs.Add(D) + + updateUsrDialog() + return + + +/obj/machinery/computer/rdconsole/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/rdconsole/interact(mob/user) + user.set_machine(src) + + if(first_use) + SyncRDevices() + + var/dat = "" + files.RefreshResearch() + switch(screen) //A quick check to make sure you get the right screen when a device is disconnected. + if(2 to 2.9) + if(screen == 2.3) + ; + else if(linked_destroy == null) + screen = 2.0 + else if(linked_destroy.loaded_item == null) + screen = 2.1 + else + screen = 2.2 + if(3 to 3.9) + if(linked_lathe == null) + screen = 3.0 + if(4 to 4.9) + if(linked_imprinter == null) + screen = 4.0 + + switch(screen) + + //////////////////////R&D CONSOLE SCREENS////////////////// + if(0.0) dat += "
    Updating Database....
    " + + if(0.1) dat += "
    Processing and Updating Database...
    " + + if(0.2) + dat += "
    SYSTEM LOCKED
    " + dat += "Unlock" + + if(0.3) + dat += "
    Constructing Prototype. Please Wait...
    " + + if(0.4) + dat += "
    Imprinting Circuit. Please Wait...
    " + + if(1.0) //Main Menu + dat += "
    " + dat += "

    Main Menu:


    " + dat += "Current Research Levels
    " + if(t_disk) + dat += "Disk Operations
    " + else if(d_disk) + dat += "Disk Operations
    " + else + dat += "Disk Operations
    " + if(linked_destroy) + dat += "Destructive Analyzer Menu
    " + else + dat += "Destructive Analyzer Menu
    " + if(linked_lathe) + dat += "Protolathe Construction Menu
    " + else + dat += "Protolathe Construction Menu
    " + if(linked_imprinter) + dat += "Circuit Construction Menu
    " + else + dat += "Circuit Construction Menu
    " + dat += "Settings" + dat += "
    " + + if(1.1) //Research viewer + dat += "Main Menu" + dat += "

    Current Research Levels:


    " + for(var/v in files.known_tech) + var/datum/tech/T = files.known_tech[v] + if(T.level <= 0) + continue + dat += "[T.name]
    " + dat += "* Level: [T.level]
    " + dat += "* Summary: [T.desc]
    " + dat += "
    " + + if(1.2) //Technology Disk Menu + dat += "Main Menu
    " + dat += "Disk Operations: Clear DiskUpload AllEject Disk" + for(var/i in 1 to t_disk.max_tech_stored) + dat += "
    " + if(t_disk.tech_stored[i]) + var/datum/tech/tech = t_disk.tech_stored[i] + dat += "Name: [tech.name]
    " + dat += "Level: [tech.level]
    " + dat += "Description: [tech.desc]
    " + dat += "Operations: Upload to DatabaseClear Slot" + else + dat += "Empty Slot
    Operations: Load Tech to Slot" + dat += "
    " + if(1.3) //Technology Disk submenu + dat += "Main Menu" + dat += "Return to Disk Operations
    " + dat += "

    Load Technology to Disk:


    " + for(var/v in files.known_tech) + var/datum/tech/T = files.known_tech[v] + if(T.level <= 0) + continue + dat += "[T.name]" + dat += "Copy to Disk
    " + dat += "
    " + + if(1.4) //Design Disk menu. + dat += "Main Menu
    " + dat += "Disk Operations: Clear DiskUpload AllEject Disk" + for(var/i in 1 to d_disk.max_blueprints) + dat += "
    " + if(d_disk.blueprints[i]) + var/datum/design/D = d_disk.blueprints[i] + dat += "Name: [D.name]
    " + if(D.build_type) + dat += "Lathe Types:
    " + if(D.build_type & IMPRINTER) dat += "Circuit Imprinter
    " + if(D.build_type & PROTOLATHE) dat += "Protolathe
    " + if(D.build_type & AUTOLATHE) dat += "Autolathe
    " + if(D.build_type & MECHFAB) dat += "Exosuit Fabricator
    " + if(D.build_type & BIOGENERATOR) dat += "Biogenerator
    " if(D.build_type & LIMBGROWER) dat += "Limbgrower
    " if(D.build_type & SMELTER) dat += "Smelter
    " - dat += "Required Materials:
    " - var/all_mats = D.materials + D.reagents_list - for(var/M in all_mats) - dat += "* [CallMaterialName(M)] x [all_mats[M]]
    " - dat += "Operations: Upload to Database Clear Slot" - else - dat += "Empty Slot
    Operations: Load Design to Slot" - dat += "
    " - if(1.5) //Design disk submenu - dat += "Main Menu" - dat += "Return to Disk Operations
    " - dat += "

    Load Design to Disk:


    " - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - dat += "[D.name] " - dat += "Copy to Disk
    " - dat += "
    " - - if(1.6) //R&D console settings - dat += "Main Menu
    " - dat += "

    R&D Console Setting:


    " - if(sync) - dat += "Sync Database with Network
    " - dat += "Connect to Research Network
    " - dat += "Disconnect from Research Network
    " - else - dat += "Sync Database with Network
    " - dat += "Connect to Research Network
    " - dat += "Disconnect from Research Network
    " - dat += "Device Linkage Menu
    " - dat += "Lock Console
    " - dat += "Reset R&D Database
    " - - if(1.7) //R&D device linkage - dat += "Main Menu" - dat += "Settings Menu
    " - dat += "

    R&D Console Device Linkage Menu:


    " - dat += "Re-sync with Nearby Devices

    " - dat += "

    Linked Devices:


    " - if(linked_destroy) - dat += "* Destructive Analyzer Disconnect
    " - else - dat += "* No Destructive Analyzer Linked
    " - if(linked_lathe) - dat += "* Protolathe Disconnect
    " - else - dat += "* No Protolathe Linked
    " - if(linked_imprinter) - dat += "* Circuit Imprinter Disconnect
    " - else - dat += "* No Circuit Imprinter Linked
    " - dat += "
    " - - ////////////////////DESTRUCTIVE ANALYZER SCREENS//////////////////////////// - if(2.0) - dat += "Main Menu" - dat += "
    NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE
    " - - if(2.1) - dat += "Main Menu" - dat += "
    No Item Loaded. Standing-by...
    " - - if(2.2) - dat += "Main Menu
    " - dat += "

    Deconstruction Menu


    " - dat += "Name: [linked_destroy.loaded_item.name]
    " - dat += "Origin Tech:
    " - var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) - for(var/T in temp_tech) - dat += "* [CallTechName(T)] [temp_tech[T]]" - var/datum/tech/F = files.known_tech[T] - if(F) - dat += " (Current: [F.level])" - - dat += "
    " - dat += "
    Options: " - dat += "Deconstruct Item" - dat += "Eject Item" - if(2.3) - dat += "Main Menu" - dat += "
    Item is neither reliable enough or broken enough to learn from.
    " - - /////////////////////PROTOLATHE SCREENS///////////////////////// - if(3.0) - dat += "Main Menu
    " - dat += "
    NO PROTOLATHE LINKED TO CONSOLE
    " - - if(3.1) - dat += "Main Menu " - dat += "Material Storage" - dat += "Chemical Storage
    " - dat += "

    Protolathe Menu:


    " - dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " - dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " - - dat += "
    \ - \ - \ - \ - \ - \ -

    " - - dat += list_categories(linked_lathe.categories, 3.15) - - //Grouping designs by categories, to improve readability - if(3.15) - dat += "Main Menu" - dat += "Protolathe Menu" - dat += "

    Browsing [selected_category]:


    " - dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " - dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " - - var/coeff = linked_lathe.efficiency_coeff - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) - continue - var/temp_material - var/c = 50 - var/t - - var/all_materials = D.materials + D.reagents_list - for(var/M in all_materials) - t = linked_lathe.check_mat(D, M) - temp_material += " | " - if (t < 1) - temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" - else - temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" - c = min(c,t) - - if (c >= 1) - dat += "[D.name]" - if(c >= 5) - dat += "x5" - if(c >= 10) - dat += "x10" - dat += "[temp_material]" - else - dat += "[D.name][temp_material]" - dat += "
    " - dat += "
    " - - if(3.17) //Display search result - dat += "Main Menu" - dat += "Protolathe Menu" - dat += "

    Search results:


    " - dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " - dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " - - var/coeff = linked_lathe.efficiency_coeff - for(var/datum/design/D in matching_designs) - var/temp_material - var/c = 50 - var/t - var/all_materials = D.materials + D.reagents_list - for(var/M in all_materials) - t = linked_lathe.check_mat(D, M) - temp_material += " | " - if (t < 1) - temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" - else - temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" - c = min(c,t) - - if (c >= 1) - dat += "[D.name]" - if(c >= 5) - dat += "x5" - if(c >= 10) - dat += "x10" - dat += "[temp_material]" - else - dat += "[D.name][temp_material]" - dat += "
    " - dat += "
    " - - if(3.2) //Protolathe Material Storage Sub-menu - dat += "Main Menu" - dat += "Protolathe Menu
    " - dat += "

    Material Storage:



    " - if(!linked_lathe) - dat += "ERROR: Protolathe connection failed." - else - for(var/mat_id in linked_lathe.materials.materials) - var/datum/material/M = linked_lathe.materials.materials[mat_id] - dat += "* [M.amount] of [M.name]: " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "Eject " - if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" - dat += "
    " - dat += "
    " - - if(3.3) - dat += "Main Menu" - dat += "Protolathe Menu" - dat += "Disposal All Chemicals in Storage
    " - dat += "

    Chemical Storage:



    " - for(var/datum/reagent/R in linked_lathe.reagents.reagent_list) - dat += "[R.name]: [R.volume]" - dat += "Purge
    " - - ///////////////////CIRCUIT IMPRINTER SCREENS//////////////////// - if(4.0) - dat += "Main Menu
    " - dat += "
    NO CIRCUIT IMPRINTER LINKED TO CONSOLE
    " - - if(4.1) - dat += "Main Menu" - dat += "Material Storage" - dat += "Chemical Storage
    " - dat += "

    Circuit Imprinter Menu:


    " - dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " - dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " - - dat += "
    \ - \ - \ - \ - \ - \ -

    " - - dat += list_categories(linked_imprinter.categories, 4.15) - - if(4.15) - dat += "Main Menu" - dat += "Circuit Imprinter Menu" - dat += "

    Browsing [selected_category]:


    " - dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " - dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " - - var/coeff = linked_imprinter.efficiency_coeff - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) - continue - var/temp_materials - var/check_materials = 1 - - var/all_materials = D.materials + D.reagents_list - - for(var/M in all_materials) - temp_materials += " | " - if (!linked_imprinter.check_mat(D, M)) - check_materials = 0 - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" - else - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" - if (check_materials) - dat += "[D.name][temp_materials]
    " - else - dat += "[D.name][temp_materials]
    " - dat += "
    " - - if(4.17) - dat += "Main Menu" - dat += "Circuit Imprinter Menu" - dat += "

    Search results:


    " - dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " - dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " - - var/coeff = linked_imprinter.efficiency_coeff - for(var/datum/design/D in matching_designs) - var/temp_materials - var/check_materials = 1 - var/all_materials = D.materials + D.reagents_list - for(var/M in all_materials) - temp_materials += " | " - if (!linked_imprinter.check_mat(D, M)) - check_materials = 0 - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" - else - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" - if (check_materials) - dat += "[D.name][temp_materials]
    " - else - dat += "[D.name][temp_materials]
    " - dat += "
    " - - if(4.2) //Circuit Imprinter Material Storage Sub-menu - dat += "Main Menu" - dat += "Circuit Imprinter Menu" - dat += "Disposal All Chemicals in Storage
    " - dat += "

    Chemical Storage:



    " - for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list) - dat += "[R.name]: [R.volume]" - dat += "Purge
    " - - if(4.3) - dat += "Main Menu" - dat += "Circuit Imprinter Menu
    " - dat += "

    Material Storage:



    " - if(!linked_imprinter) - dat += "ERROR: Protolathe connection failed." - else - for(var/mat_id in linked_imprinter.materials.materials) - var/datum/material/M = linked_imprinter.materials.materials[mat_id] - dat += "* [M.amount] of [M.name]: " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "Eject " - if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" - dat += "
    " - dat += "
    " - - var/datum/browser/popup = new(user, "rndconsole", name, 460, 550) - popup.set_content(dat) - popup.open() - return - -//helper proc, which return a table containing categories -/obj/machinery/computer/rdconsole/proc/list_categories(list/categories, menu_num as num) - if(!categories) - return - - var/line_length = 1 - var/dat = "" - - for(var/C in categories) - if(line_length > 2) - dat += "" - line_length = 1 - - dat += "" - line_length++ - - dat += "
    [C]
    " - return dat - -/obj/machinery/computer/rdconsole/robotics - name = "Robotics R&D Console" - desc = "A console used to interface with R&D tools." - id = 2 - req_access = null - req_access_txt = "29" - + dat += "Required Materials:
    " + var/all_mats = D.materials + D.reagents_list + for(var/M in all_mats) + dat += "* [CallMaterialName(M)] x [all_mats[M]]
    " + dat += "Operations: Upload to Database Clear Slot" + else + dat += "Empty Slot
    Operations: Load Design to Slot" + dat += "
    " + if(1.5) //Design disk submenu + dat += "Main Menu" + dat += "Return to Disk Operations
    " + dat += "

    Load Design to Disk:


    " + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + dat += "[D.name] " + dat += "Copy to Disk
    " + dat += "
    " + + if(1.6) //R&D console settings + dat += "Main Menu
    " + dat += "

    R&D Console Setting:


    " + if(sync) + dat += "Sync Database with Network
    " + dat += "Connect to Research Network
    " + dat += "Disconnect from Research Network
    " + else + dat += "Sync Database with Network
    " + dat += "Connect to Research Network
    " + dat += "Disconnect from Research Network
    " + dat += "Device Linkage Menu
    " + dat += "Lock Console
    " + dat += "Reset R&D Database
    " + + if(1.7) //R&D device linkage + dat += "Main Menu" + dat += "Settings Menu
    " + dat += "

    R&D Console Device Linkage Menu:


    " + dat += "Re-sync with Nearby Devices

    " + dat += "

    Linked Devices:


    " + if(linked_destroy) + dat += "* Destructive Analyzer Disconnect
    " + else + dat += "* No Destructive Analyzer Linked
    " + if(linked_lathe) + dat += "* Protolathe Disconnect
    " + else + dat += "* No Protolathe Linked
    " + if(linked_imprinter) + dat += "* Circuit Imprinter Disconnect
    " + else + dat += "* No Circuit Imprinter Linked
    " + dat += "
    " + + ////////////////////DESTRUCTIVE ANALYZER SCREENS//////////////////////////// + if(2.0) + dat += "Main Menu" + dat += "
    NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE
    " + + if(2.1) + dat += "Main Menu" + dat += "
    No Item Loaded. Standing-by...
    " + + if(2.2) + dat += "Main Menu
    " + dat += "

    Deconstruction Menu


    " + dat += "Name: [linked_destroy.loaded_item.name]
    " + dat += "Origin Tech:
    " + var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) + for(var/T in temp_tech) + dat += "* [CallTechName(T)] [temp_tech[T]]" + var/datum/tech/F = files.known_tech[T] + if(F) + dat += " (Current: [F.level])" + + dat += "
    " + dat += "
    Options: " + dat += "Deconstruct Item" + dat += "Eject Item" + if(2.3) + dat += "Main Menu" + dat += "
    Item is neither reliable enough or broken enough to learn from.
    " + + /////////////////////PROTOLATHE SCREENS///////////////////////// + if(3.0) + dat += "Main Menu
    " + dat += "
    NO PROTOLATHE LINKED TO CONSOLE
    " + + if(3.1) + dat += "Main Menu " + dat += "Material Storage" + dat += "Chemical Storage
    " + dat += "

    Protolathe Menu:


    " + dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " + dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " + + dat += "
    \ + \ + \ + \ + \ + \ +

    " + + dat += list_categories(linked_lathe.categories, 3.15) + + //Grouping designs by categories, to improve readability + if(3.15) + dat += "Main Menu" + dat += "Protolathe Menu" + dat += "

    Browsing [selected_category]:


    " + dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " + dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " + + var/coeff = linked_lathe.efficiency_coeff + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) + continue + var/temp_material + var/c = 50 + var/t + + var/all_materials = D.materials + D.reagents_list + for(var/M in all_materials) + t = linked_lathe.check_mat(D, M) + temp_material += " | " + if (t < 1) + temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" + else + temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" + c = min(c,t) + + if (c >= 1) + dat += "[D.name]" + if(c >= 5) + dat += "x5" + if(c >= 10) + dat += "x10" + dat += "[temp_material]" + else + dat += "[D.name][temp_material]" + dat += "
    " + dat += "
    " + + if(3.17) //Display search result + dat += "Main Menu" + dat += "Protolathe Menu" + dat += "

    Search results:


    " + dat += "Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
    " + dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " + + var/coeff = linked_lathe.efficiency_coeff + for(var/datum/design/D in matching_designs) + var/temp_material + var/c = 50 + var/t + var/all_materials = D.materials + D.reagents_list + for(var/M in all_materials) + t = linked_lathe.check_mat(D, M) + temp_material += " | " + if (t < 1) + temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" + else + temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" + c = min(c,t) + + if (c >= 1) + dat += "[D.name]" + if(c >= 5) + dat += "x5" + if(c >= 10) + dat += "x10" + dat += "[temp_material]" + else + dat += "[D.name][temp_material]" + dat += "
    " + dat += "
    " + + if(3.2) //Protolathe Material Storage Sub-menu + dat += "Main Menu" + dat += "Protolathe Menu
    " + dat += "

    Material Storage:



    " + if(!linked_lathe) + dat += "ERROR: Protolathe connection failed." + else + for(var/mat_id in linked_lathe.materials.materials) + var/datum/material/M = linked_lathe.materials.materials[mat_id] + dat += "* [M.amount] of [M.name]: " + if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "Eject " + if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " + if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" + dat += "
    " + dat += "
    " + + if(3.3) + dat += "Main Menu" + dat += "Protolathe Menu" + dat += "Disposal All Chemicals in Storage
    " + dat += "

    Chemical Storage:



    " + for(var/datum/reagent/R in linked_lathe.reagents.reagent_list) + dat += "[R.name]: [R.volume]" + dat += "Purge
    " + + ///////////////////CIRCUIT IMPRINTER SCREENS//////////////////// + if(4.0) + dat += "Main Menu
    " + dat += "
    NO CIRCUIT IMPRINTER LINKED TO CONSOLE
    " + + if(4.1) + dat += "Main Menu" + dat += "Material Storage" + dat += "Chemical Storage
    " + dat += "

    Circuit Imprinter Menu:


    " + dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " + dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " + + dat += "
    \ + \ + \ + \ + \ + \ +

    " + + dat += list_categories(linked_imprinter.categories, 4.15) + + if(4.15) + dat += "Main Menu" + dat += "Circuit Imprinter Menu" + dat += "

    Browsing [selected_category]:


    " + dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " + dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " + + var/coeff = linked_imprinter.efficiency_coeff + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) + continue + var/temp_materials + var/check_materials = 1 + + var/all_materials = D.materials + D.reagents_list + + for(var/M in all_materials) + temp_materials += " | " + if (!linked_imprinter.check_mat(D, M)) + check_materials = 0 + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + else + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + if (check_materials) + dat += "[D.name][temp_materials]
    " + else + dat += "[D.name][temp_materials]
    " + dat += "
    " + + if(4.17) + dat += "Main Menu" + dat += "Circuit Imprinter Menu" + dat += "

    Search results:


    " + dat += "Material Amount: [linked_imprinter.materials.total_amount]
    " + dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " + + var/coeff = linked_imprinter.efficiency_coeff + for(var/datum/design/D in matching_designs) + var/temp_materials + var/check_materials = 1 + var/all_materials = D.materials + D.reagents_list + for(var/M in all_materials) + temp_materials += " | " + if (!linked_imprinter.check_mat(D, M)) + check_materials = 0 + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + else + temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + if (check_materials) + dat += "[D.name][temp_materials]
    " + else + dat += "[D.name][temp_materials]
    " + dat += "
    " + + if(4.2) //Circuit Imprinter Material Storage Sub-menu + dat += "Main Menu" + dat += "Circuit Imprinter Menu" + dat += "Disposal All Chemicals in Storage
    " + dat += "

    Chemical Storage:



    " + for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list) + dat += "[R.name]: [R.volume]" + dat += "Purge
    " + + if(4.3) + dat += "Main Menu" + dat += "Circuit Imprinter Menu
    " + dat += "

    Material Storage:



    " + if(!linked_imprinter) + dat += "ERROR: Protolathe connection failed." + else + for(var/mat_id in linked_imprinter.materials.materials) + var/datum/material/M = linked_imprinter.materials.materials[mat_id] + dat += "* [M.amount] of [M.name]: " + if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "Eject " + if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " + if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" + dat += "
    " + dat += "
    " + + var/datum/browser/popup = new(user, "rndconsole", name, 460, 550) + popup.set_content(dat) + popup.open() + return + +//helper proc, which return a table containing categories +/obj/machinery/computer/rdconsole/proc/list_categories(list/categories, menu_num as num) + if(!categories) + return + + var/line_length = 1 + var/dat = "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
    [C]
    " + return dat + +/obj/machinery/computer/rdconsole/robotics + name = "Robotics R&D Console" + desc = "A console used to interface with R&D tools." + id = 2 + req_access = null + req_access_txt = "29" + /obj/machinery/computer/rdconsole/robotics/Initialize() . = ..() - if(circuit) + if(circuit) circuit.name = "R&D Console - Robotics (Computer Board)" - circuit.build_path = /obj/machinery/computer/rdconsole/robotics - -/obj/machinery/computer/rdconsole/core - name = "Core R&D Console" - desc = "A console used to interface with R&D tools." - id = 1 - -/obj/machinery/computer/rdconsole/experiment - name = "E.X.P.E.R.I-MENTOR R&D Console" - desc = "A console used to interface with R&D tools." - id = 3 + circuit.build_path = /obj/machinery/computer/rdconsole/robotics + +/obj/machinery/computer/rdconsole/core + name = "Core R&D Console" + desc = "A console used to interface with R&D tools." + id = 1 + +/obj/machinery/computer/rdconsole/experiment + name = "E.X.P.E.R.I-MENTOR R&D Console" + desc = "A console used to interface with R&D tools." + id = 3 diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 5ae2485608..f93637cfa0 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -1,109 +1,109 @@ - - -//All devices that link into the R&D console fall into thise type for easy identification and some shared procs. - - -/obj/machinery/r_n_d - name = "R&D Device" - icon = 'icons/obj/machines/research.dmi' - density = 1 - anchored = 1 + + +//All devices that link into the R&D console fall into thise type for easy identification and some shared procs. + + +/obj/machinery/r_n_d + name = "R&D Device" + icon = 'icons/obj/machines/research.dmi' + density = 1 + anchored = 1 use_power = IDLE_POWER_USE - var/busy = 0 - var/hacked = 0 - var/disabled = 0 - var/shocked = 0 - var/obj/machinery/computer/rdconsole/linked_console - var/obj/item/loaded_item = null //the item loaded inside the machine (currently only used by experimentor and destructive analyzer) - + var/busy = 0 + var/hacked = 0 + var/disabled = 0 + var/shocked = 0 + var/obj/machinery/computer/rdconsole/linked_console + var/obj/item/loaded_item = null //the item loaded inside the machine (currently only used by experimentor and destructive analyzer) + /obj/machinery/r_n_d/Initialize() . = ..() - wires = new /datum/wires/r_n_d(src) - -/obj/machinery/r_n_d/Destroy() - qdel(wires) - wires = null - return ..() - -/obj/machinery/r_n_d/proc/shock(mob/user, prb) - if(stat & (BROKEN|NOPOWER)) // unpowered, no shock - return 0 - if(!prob(prb)) - return 0 - do_sparks(5, TRUE, src) - if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) - return 1 - else - return 0 - -/obj/machinery/r_n_d/attack_hand(mob/user) - if(shocked) - if(shock(user,50)) - return - if(panel_open) - wires.interact(user) - - - -/obj/machinery/r_n_d/attackby(obj/item/O, mob/user, params) - if (shocked) - if(shock(user,50)) - return 1 - if (default_deconstruction_screwdriver(user, "[initial(icon_state)]_t", initial(icon_state), O)) - if(linked_console) - disconnect_console() - return - if(exchange_parts(user, O)) - return - if(default_deconstruction_crowbar(O)) - return - if(is_open_container() && O.is_open_container()) - return 0 //inserting reagents into the machine - if(Insert_Item(O, user)) - return 1 - else - return ..() - -//to disconnect the machine from the r&d console it's linked to -/obj/machinery/r_n_d/proc/disconnect_console() - linked_console = null - -//proc used to handle inserting items or reagents into r_n_d machines -/obj/machinery/r_n_d/proc/Insert_Item(obj/item/I, mob/user) - return - -//whether the machine can have an item inserted in its current state. -/obj/machinery/r_n_d/proc/is_insertion_ready(mob/user) - if(panel_open) - to_chat(user, "You can't load the [src.name] while it's opened!") - return - if (disabled) - return - if (!linked_console) // Try to auto-connect to new RnD consoles nearby. - for(var/obj/machinery/computer/rdconsole/console in oview(3, src)) - if(console.first_use) - console.SyncRDevices() - - if(!linked_console) - to_chat(user, "The [name] must be linked to an R&D console first!") - return - if (busy) - to_chat(user, "The [src.name] is busy right now.") - return - if(stat & BROKEN) - to_chat(user, "The [src.name] is broken.") - return - if(stat & NOPOWER) - to_chat(user, "The [src.name] has no power.") - return - if(loaded_item) - to_chat(user, "The [src] is already loaded.") - return - return 1 - - -//we eject the loaded item when deconstructing the machine -/obj/machinery/r_n_d/on_deconstruction() - if(loaded_item) - loaded_item.forceMove(loc) - ..() + wires = new /datum/wires/r_n_d(src) + +/obj/machinery/r_n_d/Destroy() + qdel(wires) + wires = null + return ..() + +/obj/machinery/r_n_d/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 + do_sparks(5, TRUE, src) + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) + return 1 + else + return 0 + +/obj/machinery/r_n_d/attack_hand(mob/user) + if(shocked) + if(shock(user,50)) + return + if(panel_open) + wires.interact(user) + + + +/obj/machinery/r_n_d/attackby(obj/item/O, mob/user, params) + if (shocked) + if(shock(user,50)) + return 1 + if (default_deconstruction_screwdriver(user, "[initial(icon_state)]_t", initial(icon_state), O)) + if(linked_console) + disconnect_console() + return + if(exchange_parts(user, O)) + return + if(default_deconstruction_crowbar(O)) + return + if(is_open_container() && O.is_open_container()) + return 0 //inserting reagents into the machine + if(Insert_Item(O, user)) + return 1 + else + return ..() + +//to disconnect the machine from the r&d console it's linked to +/obj/machinery/r_n_d/proc/disconnect_console() + linked_console = null + +//proc used to handle inserting items or reagents into r_n_d machines +/obj/machinery/r_n_d/proc/Insert_Item(obj/item/I, mob/user) + return + +//whether the machine can have an item inserted in its current state. +/obj/machinery/r_n_d/proc/is_insertion_ready(mob/user) + if(panel_open) + to_chat(user, "You can't load the [src.name] while it's opened!") + return + if (disabled) + return + if (!linked_console) // Try to auto-connect to new RnD consoles nearby. + for(var/obj/machinery/computer/rdconsole/console in oview(3, src)) + if(console.first_use) + console.SyncRDevices() + + if(!linked_console) + to_chat(user, "The [name] must be linked to an R&D console first!") + return + if (busy) + to_chat(user, "The [src.name] is busy right now.") + return + if(stat & BROKEN) + to_chat(user, "The [src.name] is broken.") + return + if(stat & NOPOWER) + to_chat(user, "The [src.name] has no power.") + return + if(loaded_item) + to_chat(user, "The [src] is already loaded.") + return + return 1 + + +//we eject the loaded item when deconstructing the machine +/obj/machinery/r_n_d/on_deconstruction() + if(loaded_item) + loaded_item.forceMove(loc) + ..() diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 0c32efbb64..d7230c737c 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -39,8 +39,8 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 800 works_from_distance = 1 - pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/PSHOOM.ogg' - alt_sound = 'sound/items/PSHOOM_2.ogg' + pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom.ogg' + alt_sound = 'sound/items/pshoom_2.ogg' /obj/item/weapon/storage/part_replacer/bluespace/content_can_dump(atom/dest_object, mob/user) if(Adjacent(user)) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 9093332bd8..57ad808033 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -333,7 +333,7 @@ if(!istype(C)) to_chat(user, "The potion can only be used on items or vehicles!") return - if(istype(C, /obj/item)) + if(isitem(C)) var/obj/item/I = C if(I.slowdown <= 0) to_chat(user, "The [C] can't be made any faster!") @@ -571,14 +571,14 @@ /obj/effect/timestop/proc/timestop() set waitfor = FALSE - playsound(get_turf(src), 'sound/magic/TIMEPARADOX2.ogg', 100, 1, -1) + playsound(get_turf(src), 'sound/magic/timeparadox2.ogg', 100, 1, -1) for(var/i in 1 to duration-1) for(var/atom/A in orange (freezerange, src.loc)) if(isliving(A)) var/mob/living/M = A if(M in immune) continue - M.Stun(10, 1, 1) + M.Stun(200, 1, 1) M.anchored = 1 if(ishostile(M)) var/mob/living/simple_animal/hostile/H = M @@ -608,7 +608,7 @@ /obj/effect/timestop/proc/unfreeze_mob(mob/living/M) - M.AdjustStunned(-10, 1, 1) + M.AdjustStun(-200, 1, 1) M.anchored = 0 if(ishostile(M)) var/mob/living/simple_animal/hostile/H = M diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 9a4968c618..805d46b9c7 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -133,7 +133,7 @@ death = FALSE icon = 'icons/obj/Cryogenic2.dmi' icon_state = "sleeper_s" - flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Continue your research as best you can, and try to keep a low profile. Do not abandon the base without good cause. The base is rigged with explosives should the worst happen, do not let the base fall into enemy hands!
    " + flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Continue your research as best you can, and try to keep a low profile. DON'T abandon the base without good cause. The base is rigged with explosives should the worst happen, do not let the base fall into enemy hands!
    " id_access_list = list(GLOB.access_syndicate) outfit = /datum/outfit/lavaland_syndicate @@ -153,7 +153,6 @@ /datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H) H.faction |= "syndicate" - /obj/effect/mob_spawn/human/lavaland_syndicate/comms name = "Syndicate Comms Agent" flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Monitor enemy activity as best you can, and try to keep a low profile. DON'T abandon the base without good cause. Use the communication equipment to provide support to any field agents, and sow disinformation to throw Nanotrasen off your trail. Do not let the base fall into enemy hands!" diff --git a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm index 0acfcc2a45..5e0f43c7a9 100644 --- a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm @@ -1,49 +1,39 @@ #define ASH_WALKER_SPAWN_THRESHOLD 2 //The ash walker den consumes corpses or unconscious mobs to create ash walker eggs. For more info on those, check ghost_role_spawners.dm -/mob/living/simple_animal/hostile/spawner/ash_walker - name = "ash walker nest" - desc = "A nest built around a necropolis tendril. The eggs seem to grow unnaturally fast..." - icon = 'icons/mob/nest.dmi' +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker + name = "necropolis tendril nest" + desc = "A vile tendril of corruption. It's surrounded by a nest of rapidly growing eggs..." icon_state = "ash_walker_nest" icon_living = "ash_walker_nest" + icon_dead = "ash_walker_nest" faction = list("ashwalker") health = 200 maxHealth = 200 - loot = list(/obj/effect/gibspawner, /obj/item/device/assembly/signaler/anomaly) - del_on_death = 1 - var/meat_counter - var/obj/effect/light_emitter/tendril/emitted_light - -/mob/living/simple_animal/hostile/spawner/ash_walker/Initialize() - . = ..() - emitted_light = new(loc) + loot = list(/obj/effect/collapse) + var/meat_counter = 6 -/mob/living/simple_animal/hostile/spawner/ash_walker/Destroy() - QDEL_NULL(emitted_light) - . = ..() +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/death() + new /obj/item/device/assembly/signaler/anomaly (get_step(loc, pick(GLOB.alldirs))) + return ..() -/mob/living/simple_animal/hostile/spawner/ash_walker/Life() - ..() - if(!stat) - consume() - spawn_mob() +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/handle_automated_action() + consume() + return ..() -/mob/living/simple_animal/hostile/spawner/ash_walker/proc/consume() - for(var/mob/living/H in view(src,1)) //Only for corpse right next to/on same tile +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/proc/consume() + for(var/mob/living/H in view(src, 1)) //Only for corpse right next to/on same tile if(H.stat) visible_message("Serrated tendrils eagerly pull [H] to [src], tearing the body apart as its blood seeps over the eggs.") - playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) + playsound(get_turf(src),'sound/magic/demon_consume.ogg', 100, 1) if(ismegafauna(H)) meat_counter += 20 else - meat_counter ++ - for(var/obj/item/W in H) - H.dropItemToGround(W) + meat_counter++ H.gib() adjustHealth(-maxHealth * 0.05)//restores 5% hp of tendril -/mob/living/simple_animal/hostile/spawner/ash_walker/spawn_mob() +/mob/living/simple_animal/hostile/spawner/lavaland/ash_walker/spawn_mob() if(meat_counter >= ASH_WALKER_SPAWN_THRESHOLD) - new /obj/effect/mob_spawn/human/ash_walker(get_step(src.loc, SOUTH)) + new /obj/effect/mob_spawn/human/ash_walker(get_step(loc, pick(GLOB.alldirs))) visible_message("One of the eggs swells to an unnatural size and tumbles free. It's ready to hatch!") meat_counter -= ASH_WALKER_SPAWN_THRESHOLD diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 3eb00a8db4..30331b3daa 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -1,61 +1,226 @@ //The necropolis gate is used to call forth Legion from the Necropolis. /obj/structure/necropolis_gate name = "necropolis gate" - desc = "A tremendous and impossibly large gateway, bored into dense bedrock." + desc = "A massive stone gateway." icon = 'icons/effects/96x96.dmi' - icon_state = "door" - anchored = 1 - density = 1 - opacity = 1 - bound_width = 96 - bound_height = 96 + icon_state = "gate_full" + flags = ON_BORDER + appearance_flags = 0 + layer = TABLE_LAYER + anchored = TRUE + density = TRUE pixel_x = -32 + pixel_y = -32 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - light_range = 1 - var/boss = FALSE - var/is_anyone_home = FALSE + light_range = 8 + light_color = LIGHT_COLOR_LAVA + var/open = FALSE + var/changing_openness = FALSE + var/locked = FALSE + var/static/mutable_appearance/top_overlay + var/static/mutable_appearance/door_overlay + var/static/mutable_appearance/dais_overlay + var/obj/structure/opacity_blocker/sight_blocker + var/sight_blocker_distance = 1 -/obj/structure/necropolis_gate/attack_hand(mob/user) - for(var/mob/living/simple_animal/hostile/megafauna/legion/L in GLOB.mob_list) - return - if(is_anyone_home) - return - var/safety = alert(user, "You think this might be a bad idea...", "Knock on the door?", "Proceed", "Abort") - if(safety == "Abort" || !in_range(src, user) || !src || is_anyone_home || user.incapacitated()) - return - user.visible_message("[user] knocks on [src]...", "You tentatively knock on [src]...") - playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, 1) - is_anyone_home = TRUE - sleep(50) - if(boss) - to_chat(user, "There's no response.") - is_anyone_home = FALSE - return 0 - boss = TRUE - visible_message("Locks along the door begin clicking open from within...") - var/volume = 60 - for(var/i in 1 to 3) - playsound(src, 'sound/items/Deconstruct.ogg', volume, 0) - volume += 20 - sleep(10) - sleep(10) - visible_message("Something horrible emerges from the Necropolis!") - message_admins("[key_name_admin(user)] has summoned Legion!") - log_game("[key_name(user)] summoned Legion.") - for(var/mob/M in GLOB.player_list) - if(M.z == z) - to_chat(M, "Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has come.") - M << 'sound/creatures/legion_spawn.ogg' - flash_color(M, flash_color = "#FF0000", flash_time = 50) - var/mutable_appearance/door_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor") - notify_ghosts("Legion has been summoned in the [get_area(src)]!", source = src, alert_overlay = door_overlay, action = NOTIFY_JUMP) - is_anyone_home = FALSE - new/mob/living/simple_animal/hostile/megafauna/legion(get_step(src.loc, SOUTH)) +/obj/structure/necropolis_gate/Initialize() + . = ..() + setDir(SOUTH) + var/turf/sight_blocker_turf = get_turf(src) + if(sight_blocker_distance) + for(var/i in 1 to sight_blocker_distance) + if(!sight_blocker_turf) + break + sight_blocker_turf = get_step(sight_blocker_turf, NORTH) + if(sight_blocker_turf) + sight_blocker = new (sight_blocker_turf) //we need to block sight in a different spot than most things do + sight_blocker.pixel_y = initial(sight_blocker.pixel_y) - (32 * sight_blocker_distance) + icon_state = "gate_bottom" + top_overlay = mutable_appearance('icons/effects/96x96.dmi', "gate_top") + top_overlay.layer = EDGED_TURF_LAYER + add_overlay(top_overlay) + door_overlay = mutable_appearance('icons/effects/96x96.dmi', "door") + door_overlay.layer = EDGED_TURF_LAYER + add_overlay(door_overlay) + dais_overlay = mutable_appearance('icons/effects/96x96.dmi', "gate_dais") + dais_overlay.layer = CLOSED_TURF_LAYER + add_overlay(dais_overlay) + +/obj/structure/necropolis_gate/Destroy(force) + if(force) + qdel(sight_blocker, TRUE) + . = ..() + else + return QDEL_HINT_LETMELIVE /obj/structure/necropolis_gate/singularity_pull() return 0 -/obj/structure/necropolis_gate/Destroy(force) +/obj/structure/necropolis_gate/CanPass(atom/movable/mover, turf/target, height=0) + if(get_dir(loc, target) == dir) + return !density + return 1 + +/obj/structure/necropolis_gate/CheckExit(atom/movable/O, target) + if(get_dir(O.loc, target) == dir) + return !density + return 1 + +/obj/structure/opacity_blocker + icon = 'icons/effects/96x96.dmi' + icon_state = "gate_blocker" + layer = EDGED_TURF_LAYER + pixel_x = -32 + pixel_y = -32 + mouse_opacity = 0 + opacity = TRUE + +/obj/structure/opacity_blocker/singularity_pull() + return 0 + +/obj/structure/opacity_blocker/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE + +/obj/structure/necropolis_gate/attack_hand(mob/user) + if(locked) + to_chat(user, "It's [open ? "stuck open":"locked"].") + return + toggle_the_gate(user) + +/obj/structure/necropolis_gate/proc/toggle_the_gate(mob/user, legion_damaged) + if(changing_openness) + return + changing_openness = TRUE + var/turf/T = get_turf(src) + if(open) + new /obj/effect/temp_visual/necropolis(T) + visible_message("The door slams closed!") + sleep(1) + playsound(T, 'sound/effects/stonedoor_openclose.ogg', 300, TRUE, frequency = 80000) + sleep(1) + density = TRUE + sleep(1) + var/turf/sight_blocker_turf = get_turf(src) + if(sight_blocker_distance) + for(var/i in 1 to sight_blocker_distance) + if(!sight_blocker_turf) + break + sight_blocker_turf = get_step(sight_blocker_turf, NORTH) + if(sight_blocker_turf) + sight_blocker.pixel_y = initial(sight_blocker.pixel_y) - (32 * sight_blocker_distance) + sight_blocker.forceMove(sight_blocker_turf) + sleep(2.5) + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, TRUE, frequency = 15000) + add_overlay(door_overlay) + open = FALSE + else + cut_overlay(door_overlay) + new /obj/effect/temp_visual/necropolis/open(T) + sleep(2) + visible_message("The door starts to grind open...") + playsound(T, 'sound/effects/stonedoor_openclose.ogg', 300, TRUE, frequency = 20000) + sleep(22) + sight_blocker.forceMove(src) + sleep(5) + density = FALSE + sleep(5) + open = TRUE + changing_openness = FALSE + return TRUE + +/obj/structure/necropolis_gate/locked + locked = TRUE + +GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) +/obj/structure/necropolis_gate/legion_gate + desc = "A tremendous, impossibly large gateway, set into a massive tower of stone." + sight_blocker_distance = 2 + +/obj/structure/necropolis_gate/legion_gate/Initialize() + . = ..() + GLOB.necropolis_gate = src + +/obj/structure/necropolis_gate/legion_gate/Destroy(force) + if(force) + if(GLOB.necropolis_gate == src) + GLOB.necropolis_gate = null + . = ..() + else + return QDEL_HINT_LETMELIVE + +/obj/structure/necropolis_gate/legion_gate/attack_hand(mob/user) + if(!open && !changing_openness) + var/safety = alert(user, "You think this might be a bad idea...", "Knock on the door?", "Proceed", "Abort") + if(safety == "Abort" || !in_range(src, user) || !src || open || changing_openness || user.incapacitated()) + return + user.visible_message("[user] knocks on [src]...", "You tentatively knock on [src]...") + playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, 1) + sleep(50) + ..() + +/obj/structure/necropolis_gate/legion_gate/toggle_the_gate(mob/user, legion_damaged) + if(open) + return + . = ..() + if(.) + locked = TRUE + var/turf/T = get_turf(src) + visible_message("Something horrible emerges from the Necropolis!") + if(legion_damaged) + message_admins("Legion took damage while the necropolis gate was closed, and has released itself!") + log_game("Legion took damage while the necropolis gate was closed and released itself.") + else + message_admins("[user ? "key_name_admin(user)":"Unknown"] has released Legion!") + log_game("[user ? "key_name(user)":"Unknown"] released Legion.") + for(var/mob/M in GLOB.player_list) + if(M.z == z) + to_chat(M, "Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has been released.") + M.playsound_local(T, 'sound/creatures/legion_spawn.ogg', 100, FALSE, 0, FALSE, pressure_affected = FALSE) + flash_color(M, flash_color = "#FF0000", flash_time = 50) + var/mutable_appearance/release_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor") + notify_ghosts("Legion has been released in the [get_area(src)]!", source = src, alert_overlay = release_overlay, action = NOTIFY_JUMP) + +/obj/effect/temp_visual/necropolis + icon = 'icons/effects/96x96.dmi' + icon_state = "door_closing" + appearance_flags = 0 + duration = 6 + layer = EDGED_TURF_LAYER + pixel_x = -32 + pixel_y = -32 + +/obj/effect/temp_visual/necropolis/open + icon_state = "door_opening" + duration = 38 + +/obj/structure/necropolis_arch + name = "necropolis arch" + desc = "A massive arch over the necropolis gate, set into a massive tower of stone." + icon = 'icons/effects/160x160.dmi' + icon_state = "arch_full" + appearance_flags = 0 + layer = TABLE_LAYER + anchored = TRUE + pixel_x = -64 + pixel_y = -40 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/open = FALSE + var/static/mutable_appearance/top_overlay + +/obj/structure/necropolis_arch/Initialize() + . = ..() + icon_state = "arch_bottom" + top_overlay = mutable_appearance('icons/effects/160x160.dmi', "arch_top") + top_overlay.layer = EDGED_TURF_LAYER + add_overlay(top_overlay) + +/obj/structure/necropolis_arch/singularity_pull() + return 0 + +/obj/structure/necropolis_arch/Destroy(force) if(force) . = ..() else @@ -66,7 +231,8 @@ name = "stone tile" icon = 'icons/turf/boss_floors.dmi' icon_state = "pristine_tile1" - layer = OVER_LATTICE_LAYER + layer = ABOVE_OPEN_TURF_LAYER + anchored = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/tile_key = "pristine_tile" var/tile_random_sprite_max = 24 @@ -75,6 +241,12 @@ . = ..() icon_state = "[tile_key][rand(1, tile_random_sprite_max)]" +/obj/structure/stone_tile/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE + /obj/structure/stone_tile/block name = "stone block" icon_state = "pristine_block1" diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 9b4840588b..c90e89b291 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -1,119 +1,130 @@ -GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) - -/obj/machinery/keycard_auth - name = "Keycard Authentication Device" - desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." - icon = 'icons/obj/monitors.dmi' - icon_state = "auth_off" - anchored = 1 +GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) + +/obj/machinery/keycard_auth + name = "Keycard Authentication Device" + desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." + icon = 'icons/obj/monitors.dmi' + icon_state = "auth_off" + anchored = 1 use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 - power_channel = ENVIRON - req_access = list(GLOB.access_keycard_auth) - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/datum/callback/ev - var/event = "" - var/obj/machinery/keycard_auth/event_source - var/mob/triggerer = null - var/waiting = 0 - + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + req_access = list(GLOB.access_keycard_auth) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/datum/callback/ev + var/event = "" + var/obj/machinery/keycard_auth/event_source + var/mob/triggerer = null + var/waiting = 0 + /obj/machinery/keycard_auth/Initialize() - . = ..() - ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent)) - -/obj/machinery/keycard_auth/Destroy() - GLOB.keycard_events.clearEvent("triggerEvent", ev) - qdel(ev) - . = ..() - -/obj/machinery/keycard_auth/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "keycard_auth", name, 375, 125, master_ui, state) - ui.open() - -/obj/machinery/keycard_auth/ui_data() - var/list/data = list() - data["waiting"] = waiting - data["auth_required"] = event_source ? event_source.event : 0 - data["red_alert"] = (seclevel2num(get_security_level()) >= SEC_LEVEL_RED) ? 1 : 0 - data["emergency_maint"] = GLOB.emergency_access - return data - -/obj/machinery/keycard_auth/ui_status(mob/user) - if(isanimal(user)) - var/mob/living/simple_animal/A = user - if(!A.dextrous) - to_chat(user, "You are too primitive to use this device!") - return UI_CLOSE - return ..() - -/obj/machinery/keycard_auth/ui_act(action, params) - if(..() || waiting || !allowed(usr)) - return - switch(action) - if("red_alert") - if(!event_source) - sendEvent("Red Alert") - . = TRUE - if("emergency_maint") - if(!event_source) - sendEvent("Emergency Maintenance Access") - . = TRUE - if("auth_swipe") - if(event_source) - event_source.trigger_event(usr) - event_source = null - . = TRUE - -/obj/machinery/keycard_auth/proc/sendEvent(event_type) - triggerer = usr - event = event_type - waiting = 1 - GLOB.keycard_events.fireEvent("triggerEvent", src) - addtimer(CALLBACK(src, .proc/eventSent), 20) - -/obj/machinery/keycard_auth/proc/eventSent() - triggerer = null - event = "" - waiting = 0 - -/obj/machinery/keycard_auth/proc/triggerEvent(source) - icon_state = "auth_on" - event_source = source - addtimer(CALLBACK(src, .proc/eventTriggered), 20) - -/obj/machinery/keycard_auth/proc/eventTriggered() - icon_state = "auth_off" - event_source = null - -/obj/machinery/keycard_auth/proc/trigger_event(confirmer) - log_game("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]") - message_admins("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]") - switch(event) - if("Red Alert") - set_security_level(SEC_LEVEL_RED) - SSblackbox.inc("alert_keycard_auth_red",1) - if("Emergency Maintenance Access") - make_maint_all_access() - SSblackbox.inc("alert_keycard_auth_maint",1) - - -GLOBAL_VAR_INIT(emergency_access, FALSE) -/proc/make_maint_all_access() - for(var/area/maintenance/A in world) - for(var/obj/machinery/door/airlock/D in A) - D.emergency = 1 - D.update_icon(0) - minor_announce("Access restrictions on maintenance and external airlocks have been lifted.", "Attention! Station-wide emergency declared!",1) - GLOB.emergency_access = TRUE - -/proc/revoke_maint_all_access() - for(var/area/maintenance/A in world) - for(var/obj/machinery/door/airlock/D in A) - D.emergency = 0 - D.update_icon(0) - minor_announce("Access restrictions in maintenance areas have been restored.", "Attention! Station-wide emergency rescinded:") - GLOB.emergency_access = FALSE + . = ..() + ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent)) + +/obj/machinery/keycard_auth/Destroy() + GLOB.keycard_events.clearEvent("triggerEvent", ev) + qdel(ev) + . = ..() + +/obj/machinery/keycard_auth/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "keycard_auth", name, 375, 125, master_ui, state) + ui.open() + +/obj/machinery/keycard_auth/ui_data() + var/list/data = list() + data["waiting"] = waiting + data["auth_required"] = event_source ? event_source.event : 0 + data["red_alert"] = (seclevel2num(get_security_level()) >= SEC_LEVEL_RED) ? 1 : 0 + data["emergency_maint"] = GLOB.emergency_access + data["bsa_unlock"] = GLOB.bsa_unlock + return data + +/obj/machinery/keycard_auth/ui_status(mob/user) + if(isanimal(user)) + var/mob/living/simple_animal/A = user + if(!A.dextrous) + to_chat(user, "You are too primitive to use this device!") + return UI_CLOSE + return ..() + +/obj/machinery/keycard_auth/ui_act(action, params) + if(..() || waiting || !allowed(usr)) + return + switch(action) + if("red_alert") + if(!event_source) + sendEvent("Red Alert") + . = TRUE + if("emergency_maint") + if(!event_source) + sendEvent("Emergency Maintenance Access") + . = TRUE + if("auth_swipe") + if(event_source) + event_source.trigger_event(usr) + event_source = null + . = TRUE + if("bsa_unlock") + if(!event_source) + sendEvent("Bluespace Artillery Unlock") + . = TRUE + +/obj/machinery/keycard_auth/proc/sendEvent(event_type) + triggerer = usr + event = event_type + waiting = 1 + GLOB.keycard_events.fireEvent("triggerEvent", src) + addtimer(CALLBACK(src, .proc/eventSent), 20) + +/obj/machinery/keycard_auth/proc/eventSent() + triggerer = null + event = "" + waiting = 0 + +/obj/machinery/keycard_auth/proc/triggerEvent(source) + icon_state = "auth_on" + event_source = source + addtimer(CALLBACK(src, .proc/eventTriggered), 20) + +/obj/machinery/keycard_auth/proc/eventTriggered() + icon_state = "auth_off" + event_source = null + +/obj/machinery/keycard_auth/proc/trigger_event(confirmer) + log_game("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]") + message_admins("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]") + switch(event) + if("Red Alert") + set_security_level(SEC_LEVEL_RED) + SSblackbox.inc("alert_keycard_auth_red",) + if("Emergency Maintenance Access") + make_maint_all_access() + SSblackbox.inc("alert_keycard_auth_maint") + if("Bluespace Artillery Unlock") + toggle_bluespace_artillery() + SSblackbox.inc("alert_keycard_auth_bsa") + +GLOBAL_VAR_INIT(emergency_access, FALSE) +/proc/make_maint_all_access() + for(var/area/maintenance/A in world) + for(var/obj/machinery/door/airlock/D in A) + D.emergency = 1 + D.update_icon(0) + minor_announce("Access restrictions on maintenance and external airlocks have been lifted.", "Attention! Station-wide emergency declared!",1) + GLOB.emergency_access = TRUE + +/proc/revoke_maint_all_access() + for(var/area/maintenance/A in world) + for(var/obj/machinery/door/airlock/D in A) + D.emergency = 0 + D.update_icon(0) + minor_announce("Access restrictions in maintenance areas have been restored.", "Attention! Station-wide emergency rescinded:") + GLOB.emergency_access = FALSE + +/proc/toggle_bluespace_artillery() + GLOB.bsa_unlock = !GLOB.bsa_unlock + minor_announce("Bluespace Artillery firing protocols have been [GLOB.bsa_unlock? "unlocked" : "locked"]", "Weapons Systems Update:") diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index 4013664e03..a3e190814e 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -56,9 +56,9 @@ GLOBAL_VAR_INIT(security_level, 0) SSshuttle.emergency.modTimer(0.5) else minor_announce(config.alert_desc_red_downto, "Attention! Code red!") + GLOB.security_level = SEC_LEVEL_RED for(var/mob/M in GLOB.player_list) M << sound('sound/misc/voyalert.ogg') - GLOB.security_level = SEC_LEVEL_RED /* - At the time of commit, setting status displays didn't work properly var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm index 38a172372b..c3b49d6823 100644 --- a/code/modules/server_tools/server_tools.dm +++ b/code/modules/server_tools/server_tools.dm @@ -1,88 +1,88 @@ -GLOBAL_VAR_INIT(reboot_mode, REBOOT_MODE_NORMAL) //if the world should request the service to kill it at reboot -GLOBAL_PROTECT(reboot_mode) - -/world/proc/RunningService() - return params[SERVICE_WORLD_PARAM] - -/world/proc/ExportService(command) - return RunningService() && shell("python code/modules/server_tools/nudge.py \"[command]\"") == 0 - -/world/proc/IRCBroadcast(msg) - ExportService("[SERVICE_REQUEST_IRC_BROADCAST] [msg]") - -/world/proc/ServiceEndProcess() - log_world("Sending shutdown request!"); - sleep(1) //flush the buffers - ExportService(SERVICE_REQUEST_KILL_PROCESS) - -//called at the exact moment the world is supposed to reboot -/world/proc/ServiceReboot() - switch(GLOB.reboot_mode) - if(REBOOT_MODE_HARD) - to_chat(src, "Hard reboot triggered, you will automatically reconnect...") - ServiceEndProcess() - if(REBOOT_MODE_SHUTDOWN) - to_chat(src, "The server is shutting down...") - ServiceEndProcess() - else - ExportService(SERVICE_REQUEST_WORLD_REBOOT) //just let em know - -/world/proc/ServiceCommand(list/params) - var/sCK = RunningService() - var/their_sCK = params[SERVICE_CMD_PARAM_KEY] - - if(!their_sCK || their_sCK != sCK) - return "Invalid comms key!"; - - var/command = params[SERVICE_CMD_PARAM_COMMAND] - if(!command) - return "No command!" - - var/static/last_irc_status = 0 - switch(command) - if(SERVICE_CMD_HARD_REBOOT) - if(GLOB.reboot_mode != REBOOT_MODE_HARD) - GLOB.reboot_mode = REBOOT_MODE_HARD - log_world("Hard reboot requested by service") - message_admins("The world will hard reboot at the end of the game. Requested by service.") - SSblackbox.set_val("service_hard_restart", TRUE) - if(SERVICE_CMD_GRACEFUL_SHUTDOWN) - if(GLOB.reboot_mode != REBOOT_MODE_SHUTDOWN) - GLOB.reboot_mode = REBOOT_MODE_SHUTDOWN - log_world("Shutdown requested by service") - message_admins("The world will shutdown at the end of the game. Requested by service.") - SSblackbox.set_val("service_shutdown", TRUE) - if(SERVICE_CMD_WORLD_ANNOUNCE) - var/msg = params["message"] - if(!istext(msg) || !msg) - return "No message set!" - to_chat(src, "[html_encode(msg)]") - return "SUCCESS" - if(SERVICE_CMD_IRC_STATUS) - var/rtod = REALTIMEOFDAY - if(rtod - last_irc_status < IRC_STATUS_THROTTLE) - return - last_irc_status = rtod - var/list/adm = get_admin_counts() - var/list/allmins = adm["total"] - var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " - status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." - return status - if(SERVICE_CMD_IRC_CHECK) - var/rtod = REALTIMEOFDAY - if(rtod - last_irc_status < IRC_STATUS_THROTTLE) - return - last_irc_status = rtod +GLOBAL_VAR_INIT(reboot_mode, REBOOT_MODE_NORMAL) //if the world should request the service to kill it at reboot +GLOBAL_PROTECT(reboot_mode) + +/world/proc/RunningService() + return params[SERVICE_WORLD_PARAM] + +/world/proc/ExportService(command) + return RunningService() && shell("python code/modules/server_tools/nudge.py \"[command]\"") == 0 + +/world/proc/IRCBroadcast(msg) + ExportService("[SERVICE_REQUEST_IRC_BROADCAST] [msg]") + +/world/proc/ServiceEndProcess() + log_world("Sending shutdown request!"); + sleep(1) //flush the buffers + ExportService(SERVICE_REQUEST_KILL_PROCESS) + +//called at the exact moment the world is supposed to reboot +/world/proc/ServiceReboot() + switch(GLOB.reboot_mode) + if(REBOOT_MODE_HARD) + to_chat(src, "Hard reboot triggered, you will automatically reconnect...") + ServiceEndProcess() + if(REBOOT_MODE_SHUTDOWN) + to_chat(src, "The server is shutting down...") + ServiceEndProcess() + else + ExportService(SERVICE_REQUEST_WORLD_REBOOT) //just let em know + +/world/proc/ServiceCommand(list/params) + var/sCK = RunningService() + var/their_sCK = params[SERVICE_CMD_PARAM_KEY] + + if(!their_sCK || their_sCK != sCK) + return "Invalid comms key!"; + + var/command = params[SERVICE_CMD_PARAM_COMMAND] + if(!command) + return "No command!" + + var/static/last_irc_status = 0 + switch(command) + if(SERVICE_CMD_HARD_REBOOT) + if(GLOB.reboot_mode != REBOOT_MODE_HARD) + GLOB.reboot_mode = REBOOT_MODE_HARD + log_world("Hard reboot requested by service") + message_admins("The world will hard reboot at the end of the game. Requested by service.") + SSblackbox.set_val("service_hard_restart", TRUE) + if(SERVICE_CMD_GRACEFUL_SHUTDOWN) + if(GLOB.reboot_mode != REBOOT_MODE_SHUTDOWN) + GLOB.reboot_mode = REBOOT_MODE_SHUTDOWN + log_world("Shutdown requested by service") + message_admins("The world will shutdown at the end of the game. Requested by service.") + SSblackbox.set_val("service_shutdown", TRUE) + if(SERVICE_CMD_WORLD_ANNOUNCE) + var/msg = params["message"] + if(!istext(msg) || !msg) + return "No message set!" + to_chat(src, "[html_encode(msg)]") + return "SUCCESS" + if(SERVICE_CMD_IRC_STATUS) + var/rtod = REALTIMEOFDAY + if(rtod - last_irc_status < IRC_STATUS_THROTTLE) + return + last_irc_status = rtod + var/list/adm = get_admin_counts() + var/list/allmins = adm["total"] + var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " + status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." + return status + if(SERVICE_CMD_IRC_CHECK) + var/rtod = REALTIMEOFDAY + if(rtod - last_irc_status < IRC_STATUS_THROTTLE) + return + last_irc_status = rtod return "[GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config.server ? config.server : world.internet_address]" - if(SERVICE_CMD_ADMIN_MSG) - return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER]) - - if(SERVICE_CMD_NAME_CHECK) - log_admin("IRC Name Check: [params[SERVICE_CMD_PARAM_SENDER]] on [params[SERVICE_CMD_PARAM_TARGET]]") - message_admins("IRC name checking on [params[SERVICE_CMD_PARAM_TARGET]] from [params[SERVICE_CMD_PARAM_SENDER]]") - return keywords_lookup(params[SERVICE_CMD_PARAM_TARGET], 1) - if(SERVICE_CMD_ADMIN_WHO) - return ircadminwho() - else - return "Unknown command: [command]" - + if(SERVICE_CMD_ADMIN_MSG) + return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER]) + + if(SERVICE_CMD_NAME_CHECK) + log_admin("IRC Name Check: [params[SERVICE_CMD_PARAM_SENDER]] on [params[SERVICE_CMD_PARAM_TARGET]]") + message_admins("IRC name checking on [params[SERVICE_CMD_PARAM_TARGET]] from [params[SERVICE_CMD_PARAM_SENDER]]") + return keywords_lookup(params[SERVICE_CMD_PARAM_TARGET], 1) + if(SERVICE_CMD_ADMIN_WHO) + return ircadminwho() + else + return "Unknown command: [command]" + diff --git a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm index d6aed6d5b0..25dfa13597 100644 --- a/code/modules/shuttle/arrivals.dm +++ b/code/modules/shuttle/arrivals.dm @@ -1,151 +1,146 @@ -/obj/docking_port/mobile/arrivals - name = "arrivals shuttle" - id = "arrivals" - - dwidth = 3 - width = 7 - height = 15 - dir = WEST - port_angle = 180 - - callTime = INFINITY - ignitionTime = 50 - - roundstart_move = TRUE //force a call to dockRoundstart - - var/sound_played - var/damaged //too damaged to undock? - var/list/areas //areas in our shuttle - var/list/queued_announces //people coming in that we have to announce - var/obj/machinery/requests_console/console - var/force_depart = FALSE - var/perma_docked = FALSE //highlander with RESPAWN??? OH GOD!!! - -/obj/docking_port/mobile/arrivals/Initialize(mapload) - - - if(SSshuttle.arrivals) - WARNING("More than one arrivals docking_port placed on map!") - - return INITIALIZE_HINT_QDEL - - SSshuttle.arrivals = src - - . = ..() - - preferred_direction = dir - return INITIALIZE_HINT_LATELOAD //for latejoin list - - -/obj/docking_port/mobile/arrivals/LateInitialize() - areas = list() - - var/list/new_latejoin = list() - for(var/area/shuttle/arrival/A in GLOB.sortedAreas) - for(var/obj/structure/chair/C in A) - new_latejoin += C - if(!console) - console = locate(/obj/machinery/requests_console) in A - areas += A - +/obj/docking_port/mobile/arrivals + name = "arrivals shuttle" + id = "arrivals" + + dwidth = 3 + width = 7 + height = 15 + dir = WEST + port_angle = 180 + + callTime = INFINITY + ignitionTime = 50 + + roundstart_move = TRUE //force a call to dockRoundstart + + var/sound_played + var/damaged //too damaged to undock? + var/list/areas //areas in our shuttle + var/list/queued_announces //people coming in that we have to announce + var/obj/machinery/requests_console/console + var/force_depart = FALSE + var/perma_docked = FALSE //highlander with RESPAWN??? OH GOD!!! + +/obj/docking_port/mobile/arrivals/Initialize(mapload) + if(SSshuttle.arrivals) + WARNING("More than one arrivals docking_port placed on map!") + return INITIALIZE_HINT_QDEL + SSshuttle.arrivals = src + + . = ..() + + preferred_direction = dir + return INITIALIZE_HINT_LATELOAD //for latejoin list + +/obj/docking_port/mobile/arrivals/LateInitialize() + areas = list() + + var/list/new_latejoin = list() + for(var/area/shuttle/arrival/A in GLOB.sortedAreas) + for(var/obj/structure/chair/C in A) + new_latejoin += C + if(!console) + console = locate(/obj/machinery/requests_console) in A + areas += A + if(SSjob.latejoin_trackers.len) - WARNING("Map contains predefined latejoin spawn points and an arrivals shuttle. Using the arrivals shuttle.") - - if(!new_latejoin.len) - WARNING("Arrivals shuttle contains no chairs for spawn points. Reverting to latejoin landmarks.") + WARNING("Map contains predefined latejoin spawn points and an arrivals shuttle. Using the arrivals shuttle.") + + if(!new_latejoin.len) + WARNING("Arrivals shuttle contains no chairs for spawn points. Reverting to latejoin landmarks.") if(!SSjob.latejoin_trackers.len) - WARNING("No latejoin landmarks exist. Players will spawn unbuckled on the shuttle.") - return - + WARNING("No latejoin landmarks exist. Players will spawn unbuckled on the shuttle.") + return + SSjob.latejoin_trackers = new_latejoin - -/obj/docking_port/mobile/arrivals/dockRoundstart() - SSshuttle.generate_transit_dock(src) - Launch() - timer = world.time - check() - return TRUE - -/obj/docking_port/mobile/arrivals/check() - . = ..() - - if(perma_docked) - if(mode != SHUTTLE_CALL) - sound_played = FALSE - mode = SHUTTLE_IDLE - else - SendToStation() - return - - if(damaged) - if(!CheckTurfsPressure()) - damaged = FALSE - if(console) - console.say("Repairs complete, launching soon.") - return - -//If this proc is high on the profiler add a cooldown to the stuff after this line - - else if(CheckTurfsPressure()) - damaged = TRUE - if(console) - console.say("Alert, hull breach detected!") - var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - announcer.announce("ARRIVALS_BROKEN", channels = list()) - if(mode != SHUTTLE_CALL) - sound_played = FALSE - mode = SHUTTLE_IDLE - else - SendToStation() - return - + +/obj/docking_port/mobile/arrivals/dockRoundstart() + SSshuttle.generate_transit_dock(src) + Launch() + timer = world.time + check() + return TRUE + +/obj/docking_port/mobile/arrivals/check() + . = ..() + + if(perma_docked) + if(mode != SHUTTLE_CALL) + sound_played = FALSE + mode = SHUTTLE_IDLE + else + SendToStation() + return + + if(damaged) + if(!CheckTurfsPressure()) + damaged = FALSE + if(console) + console.say("Repairs complete, launching soon.") + return + +//If this proc is high on the profiler add a cooldown to the stuff after this line + + else if(CheckTurfsPressure()) + damaged = TRUE + if(console) + console.say("Alert, hull breach detected!") + var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) + announcer.announce("ARRIVALS_BROKEN", channels = list()) + if(mode != SHUTTLE_CALL) + sound_played = FALSE + mode = SHUTTLE_IDLE + else + SendToStation() + return + var/found_awake = PersonCheck() || NukeDiskCheck() - if(mode == SHUTTLE_CALL) - if(found_awake) - SendToStation() - else if(mode == SHUTTLE_IGNITING) - if(found_awake && !force_depart) - mode = SHUTTLE_IDLE - sound_played = FALSE - else if(!sound_played) - hyperspace_sound(HYPERSPACE_WARMUP, areas) - sound_played = TRUE - else if(!found_awake) - Launch(FALSE) - -/obj/docking_port/mobile/arrivals/proc/CheckTurfsPressure() + if(mode == SHUTTLE_CALL) + if(found_awake) + SendToStation() + else if(mode == SHUTTLE_IGNITING) + if(found_awake && !force_depart) + mode = SHUTTLE_IDLE + sound_played = FALSE + else if(!sound_played) + hyperspace_sound(HYPERSPACE_WARMUP, areas) + sound_played = TRUE + else if(!found_awake) + Launch(FALSE) + +/obj/docking_port/mobile/arrivals/proc/CheckTurfsPressure() for(var/I in SSjob.latejoin_trackers) - var/turf/open/T = get_turf(I) - var/pressure = T.air.return_pressure() - if(pressure < HAZARD_LOW_PRESSURE || pressure > HAZARD_HIGH_PRESSURE) //simple safety check - return TRUE - return FALSE - -/obj/docking_port/mobile/arrivals/proc/PersonCheck() - for(var/M in (GLOB.living_mob_list & GLOB.player_list)) - var/mob/living/L = M - if((get_area(M) in areas) && L.stat != DEAD) - return TRUE - return FALSE - + var/turf/open/T = get_turf(I) + var/pressure = T.air.return_pressure() + if(pressure < HAZARD_LOW_PRESSURE || pressure > HAZARD_HIGH_PRESSURE) //simple safety check + return TRUE + return FALSE + +/obj/docking_port/mobile/arrivals/proc/PersonCheck() + for(var/M in (GLOB.living_mob_list & GLOB.player_list)) + var/mob/living/L = M + if((get_area(M) in areas) && L.stat != DEAD) + return TRUE + return FALSE + /obj/docking_port/mobile/arrivals/proc/NukeDiskCheck() for (var/obj/item/weapon/disk/nuclear/N in GLOB.poi_list) if (get_area(N) in areas) return TRUE return FALSE -/obj/docking_port/mobile/arrivals/proc/SendToStation() - var/dockTime = config.arrivals_shuttle_dock_window - if(mode == SHUTTLE_CALL && timeLeft(1) > dockTime) - if(console) - console.say(damaged ? "Initiating emergency docking for repairs!" : "Now approaching: [station_name()].") - hyperspace_sound(HYPERSPACE_LAUNCH, areas) //for the new guy - setTimer(dockTime) - -/obj/docking_port/mobile/arrivals/dock(obj/docking_port/stationary/S1, force=FALSE) - var/docked = S1 == assigned_transit - sound_played = FALSE - if(docked) //about to launch +/obj/docking_port/mobile/arrivals/proc/SendToStation() + var/dockTime = config.arrivals_shuttle_dock_window + if(mode == SHUTTLE_CALL && timeLeft(1) > dockTime) + if(console) + console.say(damaged ? "Initiating emergency docking for repairs!" : "Now approaching: [station_name()].") + hyperspace_sound(HYPERSPACE_LAUNCH, areas) //for the new guy + setTimer(dockTime) + +/obj/docking_port/mobile/arrivals/dock(obj/docking_port/stationary/S1, force=FALSE) + var/docked = S1 == assigned_transit + sound_played = FALSE + if(docked) //about to launch if(!force_depart) var/cancel_reason if(PersonCheck()) @@ -157,53 +152,53 @@ if(console) console.say("Launch cancelled, [cancel_reason].") return - force_depart = FALSE - . = ..() - if(!. && !docked && !damaged) + force_depart = FALSE + . = ..() + if(!. && !docked && !damaged) if(console) console.say("Welcome to your new life, employees!") - for(var/L in queued_announces) - var/datum/callback/C = L - C.Invoke() - LAZYCLEARLIST(queued_announces) - -/obj/docking_port/mobile/arrivals/check_effects() - ..() - if(mode == SHUTTLE_CALL && !sound_played && timeLeft(1) <= HYPERSPACE_END_TIME) - sound_played = TRUE - hyperspace_sound(HYPERSPACE_END, areas) - -/obj/docking_port/mobile/arrivals/canDock(obj/docking_port/stationary/S) - . = ..() - if(. == SHUTTLE_ALREADY_DOCKED) - . = SHUTTLE_CAN_DOCK - -/obj/docking_port/mobile/arrivals/proc/Launch(pickingup) - if(pickingup) - force_depart = TRUE - if(mode == SHUTTLE_IDLE) - if(console) - console.say(pickingup ? "Departing immediately for new employee pickup." : "Shuttle departing.") - request(SSshuttle.getDock("arrivals_stationary")) //we will intentionally never return SHUTTLE_ALREADY_DOCKED - -/obj/docking_port/mobile/arrivals/proc/RequireUndocked(mob/user) - if(mode == SHUTTLE_CALL || damaged) - return - - Launch(TRUE) - + for(var/L in queued_announces) + var/datum/callback/C = L + C.Invoke() + LAZYCLEARLIST(queued_announces) + +/obj/docking_port/mobile/arrivals/check_effects() + ..() + if(mode == SHUTTLE_CALL && !sound_played && timeLeft(1) <= HYPERSPACE_END_TIME) + sound_played = TRUE + hyperspace_sound(HYPERSPACE_END, areas) + +/obj/docking_port/mobile/arrivals/canDock(obj/docking_port/stationary/S) + . = ..() + if(. == SHUTTLE_ALREADY_DOCKED) + . = SHUTTLE_CAN_DOCK + +/obj/docking_port/mobile/arrivals/proc/Launch(pickingup) + if(pickingup) + force_depart = TRUE + if(mode == SHUTTLE_IDLE) + if(console) + console.say(pickingup ? "Departing immediately for new employee pickup." : "Shuttle departing.") + request(SSshuttle.getDock("arrivals_stationary")) //we will intentionally never return SHUTTLE_ALREADY_DOCKED + +/obj/docking_port/mobile/arrivals/proc/RequireUndocked(mob/user) + if(mode == SHUTTLE_CALL || damaged) + return + + Launch(TRUE) + to_chat(user, "Calling your shuttle. One moment...") - while(mode != SHUTTLE_CALL && !damaged) - stoplag() - -/obj/docking_port/mobile/arrivals/proc/QueueAnnounce(mob, rank) - if(mode != SHUTTLE_CALL) - AnnounceArrival(mob, rank) - else - LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, .proc/AnnounceArrival, mob, rank)) - -/obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value) - switch(var_name) - if("perma_docked") + while(mode != SHUTTLE_CALL && !damaged) + stoplag() + +/obj/docking_port/mobile/arrivals/proc/QueueAnnounce(mob, rank) + if(mode != SHUTTLE_CALL) + AnnounceArrival(mob, rank) + else + LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, .proc/AnnounceArrival, mob, rank)) + +/obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value) + switch(var_name) + if("perma_docked") SSblackbox.add_details("admin_secrets_fun_used","ShA[var_value ? "s" : "g"]") - return ..() + return ..() diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index 37cd0238b3..399a4abd4d 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -13,7 +13,7 @@ /obj/docking_port/mobile/assault_pod/dock(obj/docking_port/stationary/S1) ..() if(!istype(S1, /obj/docking_port/stationary/transit)) - playsound(get_turf(src.loc), 'sound/effects/Explosion1.ogg',50,1) + playsound(get_turf(src.loc), 'sound/effects/explosion1.ogg',50,1) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 0475a28068..4f5b85ced7 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -1,79 +1,79 @@ -/obj/machinery/computer/shuttle - name = "Shuttle Console" - icon_screen = "shuttle" - icon_keyboard = "tech_key" - light_color = LIGHT_COLOR_CYAN - req_access = list( ) - circuit = /obj/item/weapon/circuitboard/computer/shuttle - var/shuttleId - var/possible_destinations = "" - var/admin_controlled - var/no_destination_swap = 0 - +/obj/machinery/computer/shuttle + name = "Shuttle Console" + icon_screen = "shuttle" + icon_keyboard = "tech_key" + light_color = LIGHT_COLOR_CYAN + req_access = list( ) + circuit = /obj/item/weapon/circuitboard/computer/shuttle + var/shuttleId + var/possible_destinations = "" + var/admin_controlled + var/no_destination_swap = 0 + /obj/machinery/computer/shuttle/Initialize(mapload, obj/item/weapon/circuitboard/computer/shuttle/C) . = ..() - if(istype(C)) - possible_destinations = C.possible_destinations - shuttleId = C.shuttleId - -/obj/machinery/computer/shuttle/attack_hand(mob/user) - if(..(user)) - return - src.add_fingerprint(usr) - - var/list/options = params2list(possible_destinations) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) - var/dat = "Status: [M ? M.getStatusText() : "*Missing*"]

    " - if(M) - var/destination_found - for(var/obj/docking_port/stationary/S in SSshuttle.stationary) - if(!options.Find(S.id)) - continue - if(!M.check_dock(S)) - continue - destination_found = 1 - dat += "Send to [S.name]
    " - if(!destination_found) - dat += "Shuttle Locked
    " - if(admin_controlled) - dat += "Authorized personnel only
    " - dat += "Request Authorization
    " - dat += "Close" - - var/datum/browser/popup = new(user, "computer", M ? M.name : "shuttle", 300, 200) - popup.set_content("
    [dat]
    ") - popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/shuttle/Topic(href, href_list) - if(..()) - return - usr.set_machine(src) - src.add_fingerprint(usr) - if(!allowed(usr)) - to_chat(usr, "Access denied.") - return - - if(href_list["move"]) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) - if(M.launch_status == ENDGAME_LAUNCHED) - to_chat(usr, "You've already escaped. Never going back to that place again!") - return - if(no_destination_swap) - if(M.mode != SHUTTLE_IDLE) - to_chat(usr, "Shuttle already in transit.") - return - switch(SSshuttle.moveShuttle(shuttleId, href_list["move"], 1)) - if(0) - say("Shuttle departing. Please stand away from the doors.") - if(1) - to_chat(usr, "Invalid shuttle requested.") - else - to_chat(usr, "Unable to comply.") - -/obj/machinery/computer/shuttle/emag_act(mob/user) - if(!emagged) - src.req_access = list() - emagged = 1 - to_chat(user, "You fried the consoles ID checking system.") - + if(istype(C)) + possible_destinations = C.possible_destinations + shuttleId = C.shuttleId + +/obj/machinery/computer/shuttle/attack_hand(mob/user) + if(..(user)) + return + src.add_fingerprint(usr) + + var/list/options = params2list(possible_destinations) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + var/dat = "Status: [M ? M.getStatusText() : "*Missing*"]

    " + if(M) + var/destination_found + for(var/obj/docking_port/stationary/S in SSshuttle.stationary) + if(!options.Find(S.id)) + continue + if(!M.check_dock(S)) + continue + destination_found = 1 + dat += "Send to [S.name]
    " + if(!destination_found) + dat += "Shuttle Locked
    " + if(admin_controlled) + dat += "Authorized personnel only
    " + dat += "Request Authorization
    " + dat += "Close" + + var/datum/browser/popup = new(user, "computer", M ? M.name : "shuttle", 300, 200) + popup.set_content("
    [dat]
    ") + popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/shuttle/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + + if(href_list["move"]) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(M.launch_status == ENDGAME_LAUNCHED) + to_chat(usr, "You've already escaped. Never going back to that place again!") + return + if(no_destination_swap) + if(M.mode != SHUTTLE_IDLE) + to_chat(usr, "Shuttle already in transit.") + return + switch(SSshuttle.moveShuttle(shuttleId, href_list["move"], 1)) + if(0) + say("Shuttle departing. Please stand away from the doors.") + if(1) + to_chat(usr, "Invalid shuttle requested.") + else + to_chat(usr, "Unable to comply.") + +/obj/machinery/computer/shuttle/emag_act(mob/user) + if(!emagged) + src.req_access = list() + emagged = 1 + to_chat(user, "You fried the consoles ID checking system.") + diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 44132f3811..1836b47969 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -230,14 +230,14 @@ else SSshuttle.emergencyLastCallLoc = null - priority_announce("The emergency shuttle has been called. [redAlert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergencyLastCallLoc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/AI/shuttlecalled.ogg', "Priority") + priority_announce("The emergency shuttle has been called. [redAlert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergencyLastCallLoc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/ai/shuttlecalled.ogg', "Priority") /obj/docking_port/mobile/emergency/cancel(area/signalOrigin) if(mode != SHUTTLE_CALL) return if(SSshuttle.emergencyNoRecall) return - + invertTimer() mode = SHUTTLE_RECALL @@ -245,7 +245,7 @@ SSshuttle.emergencyLastCallLoc = signalOrigin else SSshuttle.emergencyLastCallLoc = null - priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/AI/shuttlerecalled.ogg', "Priority") + priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/ai/shuttlerecalled.ogg', "Priority") /obj/docking_port/mobile/emergency/proc/is_hijacked() var/has_people = FALSE @@ -296,7 +296,7 @@ mode = SHUTTLE_DOCKED setTimer(SSshuttle.emergencyDockTime) send2irc("Server", "The Emergency Shuttle has docked with the station.") - priority_announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") + priority_announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/ai/shuttledock.ogg', "Priority") if(SSdbcore.Connect()) var/datum/DBQuery/query_round_shuttle_name = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET shuttle_name = '[name]' WHERE id = [GLOB.round_id]") query_round_shuttle_name.Execute() diff --git a/code/modules/shuttle/emergency.dm.rej b/code/modules/shuttle/emergency.dm.rej deleted file mode 100644 index 7628ddb700..0000000000 --- a/code/modules/shuttle/emergency.dm.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm (rejected hunks) -@@ -383,12 +381,7 @@ - //move each escape pod to its corresponding escape dock - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A -- if(M.launch_status == ENDGAME_LAUNCHED) -- if(istype(M, /obj/docking_port/mobile/pod)) -- M.dock(SSshuttle.getDock("[M.id]_away")) //Escape pods dock at centcomm -- else -- M.launch_status = ENDGAME_TRANSIT -- //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext -+ M.on_emergency_dock() - - // now move the actual emergency shuttle to centcomm - // unless the shuttle is "hijacked" diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index b5571164ff..f9ae5996a2 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -52,7 +52,7 @@ if(!.) return if(!buckled && knockdown) - Weaken(3) + Knockdown(60) /obj/effect/abstract/proximity_checker/onShuttleMove() //timer so it only happens once diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 72e7b5bb3f..855e74fc6b 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -104,7 +104,7 @@ // Existing sleepers for(var/i in found) var/mob/living/L = i - L.SetSleeping(10) + L.SetSleeping(200) // Missing sleepers for(var/i in sleepers - found) @@ -192,7 +192,7 @@ // No climbing on the bar please var/mob/living/M = AM var/throwtarget = get_edge_target_turf(src, boot_dir) - M.Weaken(2) + M.Knockdown(40) M.throw_at(throwtarget, 5, 1,src) to_chat(M, "No climbing on the bar please.") else diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index bc8648b873..feca936dfb 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -9,7 +9,6 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/singularity, /obj/machinery/teleport/station, /obj/machinery/teleport/hub, - /obj/machinery/telepad, /obj/machinery/quantumpad, /obj/machinery/clonepod, /obj/effect/mob_spawn, diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 83ef7f06eb..57a8ffd7ef 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -1,60 +1,60 @@ -#define SYNDICATE_CHALLENGE_TIMER 12000 //20 minutes - -/obj/machinery/computer/shuttle/syndicate - name = "syndicate shuttle terminal" - circuit = /obj/item/weapon/circuitboard/computer/syndicate_shuttle - icon_screen = "syndishuttle" - icon_keyboard = "syndie_key" - light_color = LIGHT_COLOR_RED - req_access = list(GLOB.access_syndicate) - shuttleId = "syndicate" - possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/machinery/computer/shuttle/syndicate/recall - name = "syndicate shuttle recall terminal" - possible_destinations = "syndicate_away" - - -/obj/machinery/computer/shuttle/syndicate/Topic(href, href_list) - if(href_list["move"]) - var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = circuit - if(board.challenge && world.time < SYNDICATE_CHALLENGE_TIMER) - to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.") - return 0 - board.moved = TRUE - ..() - -/obj/item/weapon/circuitboard/computer/syndicate_shuttle - name = "Syndicate Shuttle (Computer Board)" - build_path = /obj/machinery/computer/shuttle/syndicate - var/challenge = FALSE - var/moved = FALSE - +#define SYNDICATE_CHALLENGE_TIMER 12000 //20 minutes + +/obj/machinery/computer/shuttle/syndicate + name = "syndicate shuttle terminal" + circuit = /obj/item/weapon/circuitboard/computer/syndicate_shuttle + icon_screen = "syndishuttle" + icon_keyboard = "syndie_key" + light_color = LIGHT_COLOR_RED + req_access = list(GLOB.access_syndicate) + shuttleId = "syndicate" + possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/machinery/computer/shuttle/syndicate/recall + name = "syndicate shuttle recall terminal" + possible_destinations = "syndicate_away" + + +/obj/machinery/computer/shuttle/syndicate/Topic(href, href_list) + if(href_list["move"]) + var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = circuit + if(board.challenge && world.time < SYNDICATE_CHALLENGE_TIMER) + to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.") + return 0 + board.moved = TRUE + ..() + +/obj/item/weapon/circuitboard/computer/syndicate_shuttle + name = "Syndicate Shuttle (Computer Board)" + build_path = /obj/machinery/computer/shuttle/syndicate + var/challenge = FALSE + var/moved = FALSE + /obj/item/weapon/circuitboard/computer/syndicate_shuttle/Initialize() . = ..() - GLOB.syndicate_shuttle_boards += src - -/obj/item/weapon/circuitboard/computer/syndicate_shuttle/Destroy() - GLOB.syndicate_shuttle_boards -= src - return ..() - -/obj/machinery/computer/shuttle/syndicate/drop_pod - name = "syndicate assault pod control" - icon = 'icons/obj/terminals.dmi' - icon_state = "dorm_available" - light_color = LIGHT_COLOR_BLUE - req_access = list(GLOB.access_syndicate) - shuttleId = "steel_rain" - possible_destinations = null - clockwork = TRUE //it'd look weird - -/obj/machinery/computer/shuttle/syndicate/drop_pod/Topic(href, href_list) - if(href_list["move"]) - if(z != ZLEVEL_CENTCOM) - to_chat(usr, "Pods are one way!") - return 0 - ..() - - + GLOB.syndicate_shuttle_boards += src + +/obj/item/weapon/circuitboard/computer/syndicate_shuttle/Destroy() + GLOB.syndicate_shuttle_boards -= src + return ..() + +/obj/machinery/computer/shuttle/syndicate/drop_pod + name = "syndicate assault pod control" + icon = 'icons/obj/terminals.dmi' + icon_state = "dorm_available" + light_color = LIGHT_COLOR_BLUE + req_access = list(GLOB.access_syndicate) + shuttleId = "steel_rain" + possible_destinations = null + clockwork = TRUE //it'd look weird + +/obj/machinery/computer/shuttle/syndicate/drop_pod/Topic(href, href_list) + if(href_list["move"]) + if(z != ZLEVEL_CENTCOM) + to_chat(usr, "Pods are one way!") + return 0 + ..() + + #undef SYNDICATE_CHALLENGE_TIMER \ No newline at end of file diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index f022e0338f..9a1042201e 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -134,7 +134,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return 0 var/turf/T = get_turf(user) - if(T.z == ZLEVEL_CENTCOM && (!centcom_cancast || SSticker.mode.name == "ragin' mages")) //Certain spells are not allowed on the centcom zlevel + if(T.z == ZLEVEL_CENTCOM && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel to_chat(user, "You can't cast this spell here.") return 0 @@ -347,12 +347,12 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th target.adjustToxLoss(amount) if("oxyloss") target.adjustOxyLoss(amount) - if("stunned") - target.AdjustStunned(amount) - if("weakened") - target.AdjustWeakened(amount) - if("paralysis") - target.AdjustParalysis(amount) + if("stun") + target.AdjustStun(amount) + if("knockdown") + target.AdjustKnockdown(amount) + if("unconscious") + target.AdjustUnconscious(amount) else target.vars[type] += amount //I bear no responsibility for the runtimes that'll happen if you try to adjust non-numeric or even non-existant vars @@ -449,6 +449,9 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th perform(targets,user=user) +/obj/effect/proc_holder/spell/proc/updateButtonIcon() + action.UpdateButtonIcon() + /obj/effect/proc_holder/spell/proc/can_be_cast_by(mob/caster) if((human_req || clothes_req) && !ishuman(caster)) return 0 @@ -507,7 +510,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th invocation = "Victus sano!" invocation_type = "whisper" school = "restoration" - sound = 'sound/magic/Staff_Healing.ogg' + sound = 'sound/magic/staff_healing.ogg' /obj/effect/proc_holder/spell/self/basic_heal/cast(mob/living/carbon/human/user) //Note the lack of "list/targets" here. Instead, use a "user" var depending on mob requirements. //Also, notice the lack of a "for()" statement that looks through the targets. This is, again, because the spell can only have a single target. diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index b06f69c189..94597de40f 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -105,7 +105,7 @@ projectile_type = /obj/item/projectile/magic/aoe/fireball base_icon_state = "fireball" action_icon_state = "fireball0" - sound = 'sound/magic/Fireball.ogg' + sound = 'sound/magic/fireball.ogg' active_msg = "You prepare to cast your fireball spell!" deactive_msg = "You extinguish your fireball... for now." active = FALSE diff --git a/code/modules/spells/spell_types/area_teleport.dm b/code/modules/spells/spell_types/area_teleport.dm index 380b7e4728..7381cdf48f 100644 --- a/code/modules/spells/spell_types/area_teleport.dm +++ b/code/modules/spells/spell_types/area_teleport.dm @@ -1,88 +1,88 @@ -/obj/effect/proc_holder/spell/targeted/area_teleport - name = "Area teleport" - desc = "This spell teleports you to a type of area of your selection." - nonabstract_req = 1 - - var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list - var/invocation_area = 1 //if the invocation appends the selected area - var/sound1 = 'sound/weapons/ZapBang.ogg' - var/sound2 = 'sound/weapons/ZapBang.ogg' - -/obj/effect/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1,mob/living/user = usr) - var/thearea = before_cast(targets) - if(!thearea || !cast_check(1)) - revert_cast() - return - invocation(thearea,user) +/obj/effect/proc_holder/spell/targeted/area_teleport + name = "Area teleport" + desc = "This spell teleports you to a type of area of your selection." + nonabstract_req = 1 + + var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list + var/invocation_area = 1 //if the invocation appends the selected area + var/sound1 = 'sound/weapons/zapbang.ogg' + var/sound2 = 'sound/weapons/zapbang.ogg' + +/obj/effect/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1,mob/living/user = usr) + var/thearea = before_cast(targets) + if(!thearea || !cast_check(1)) + revert_cast() + return + invocation(thearea,user) if(charge_type == "recharge" && recharge) INVOKE_ASYNC(src, .proc/start_recharge) - cast(targets,thearea,user) - after_cast(targets) - -/obj/effect/proc_holder/spell/targeted/area_teleport/before_cast(list/targets) - var/A = null - - if(!randomise_selection) - A = input("Area to teleport to", "Teleport", A) as null|anything in GLOB.teleportlocs - else - A = pick(GLOB.teleportlocs) - if(!A) - return - var/area/thearea = GLOB.teleportlocs[A] - - return thearea - -/obj/effect/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea,mob/user = usr) - playsound(get_turf(user), sound1, 50,1) - for(var/mob/living/target in targets) - var/list/L = list() - for(var/turf/T in get_area_turfs(thearea.type)) - if(!T.density) - var/clear = 1 - for(var/obj/O in T) - if(O.density) - clear = 0 - break - if(clear) - L+=T - - if(!L.len) + cast(targets,thearea,user) + after_cast(targets) + +/obj/effect/proc_holder/spell/targeted/area_teleport/before_cast(list/targets) + var/A = null + + if(!randomise_selection) + A = input("Area to teleport to", "Teleport", A) as null|anything in GLOB.teleportlocs + else + A = pick(GLOB.teleportlocs) + if(!A) + return + var/area/thearea = GLOB.teleportlocs[A] + + return thearea + +/obj/effect/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea,mob/user = usr) + playsound(get_turf(user), sound1, 50,1) + for(var/mob/living/target in targets) + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + if(!T.density) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + L+=T + + if(!L.len) to_chat(usr, "The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.") - return - - if(target && target.buckled) - target.buckled.unbuckle_mob(target, force=1) - - var/list/tempL = L - var/attempt = null - var/success = 0 - while(tempL.len) - attempt = pick(tempL) - target.Move(attempt) - if(get_turf(target) == attempt) - success = 1 - break - else - tempL.Remove(attempt) - - if(!success) - target.loc = pick(L) - playsound(get_turf(user), sound2, 50,1) - - return - -/obj/effect/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null,mob/user = usr) - if(!invocation_area || !chosenarea) - ..() - else - switch(invocation_type) - if("shout") - user.say("[invocation] [uppertext(chosenarea.name)]") - if(user.gender==MALE) - playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1) - else - playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1) - if("whisper") - user.whisper("[invocation] [uppertext(chosenarea.name)]") - - return + return + + if(target && target.buckled) + target.buckled.unbuckle_mob(target, force=1) + + var/list/tempL = L + var/attempt = null + var/success = 0 + while(tempL.len) + attempt = pick(tempL) + target.Move(attempt) + if(get_turf(target) == attempt) + success = 1 + break + else + tempL.Remove(attempt) + + if(!success) + target.loc = pick(L) + playsound(get_turf(user), sound2, 50,1) + + return + +/obj/effect/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null,mob/user = usr) + if(!invocation_area || !chosenarea) + ..() + else + switch(invocation_type) + if("shout") + user.say("[invocation] [uppertext(chosenarea.name)]") + if(user.gender==MALE) + playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1) + else + playsound(user.loc, pick('sound/misc/null.ogg','sound/misc/null.ogg'), 100, 1) + if("whisper") + user.whisper("[invocation] [uppertext(chosenarea.name)]") + + return diff --git a/code/modules/spells/spell_types/barnyard.dm b/code/modules/spells/spell_types/barnyard.dm index b8dd330a66..d21b54b070 100644 --- a/code/modules/spells/spell_types/barnyard.dm +++ b/code/modules/spells/spell_types/barnyard.dm @@ -32,7 +32,7 @@ return var/list/masks = list(/obj/item/clothing/mask/spig, /obj/item/clothing/mask/cowmask, /obj/item/clothing/mask/horsehead) - var/list/mSounds = list('sound/magic/PigHead_curse.ogg', 'sound/magic/CowHead_Curse.ogg', 'sound/magic/HorseHead_curse.ogg') + var/list/mSounds = list('sound/magic/pighead_curse.ogg', 'sound/magic/cowhead_curse.ogg', 'sound/magic/horsehead_curse.ogg') var/randM = rand(1,3) diff --git a/code/modules/spells/spell_types/charge.dm b/code/modules/spells/spell_types/charge.dm index 7a038788e4..9cc3e3b5a8 100644 --- a/code/modules/spells/spell_types/charge.dm +++ b/code/modules/spells/spell_types/charge.dm @@ -95,5 +95,5 @@ else if(burnt_out) to_chat(L, "[charged_item] doesn't seem to be reacting to the spell...") else - playsound(get_turf(L), 'sound/magic/Charge.ogg', 50, 1) + playsound(get_turf(L), 'sound/magic/charge.ogg', 50, 1) to_chat(L, "[charged_item] suddenly feels very warm!") diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index f3f628e5d9..dfde331207 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -1,88 +1,88 @@ -/obj/effect/proc_holder/spell/aoe_turf/conjure - name = "Conjure" - desc = "This spell conjures objs of the specified types in range." - - var/list/summon_type = list() //determines what exactly will be summoned - //should be text, like list("/mob/living/simple_animal/bot/ed209") - - var/summon_lifespan = 0 // 0=permanent, any other time in deciseconds - var/summon_amt = 1 //amount of objects summoned - var/summon_ignore_density = 0 //if set to 1, adds dense tiles to possible spawn places - var/summon_ignore_prev_spawn_points = 0 //if set to 1, each new object is summoned on a new spawn point - - var/list/newVars = list() //vars of the summoned objects will be replaced with those where they meet - //should have format of list("emagged" = 1,"name" = "Wizard's Justicebot"), for example - - var/cast_sound = 'sound/items/welder.ogg' - -/obj/effect/proc_holder/spell/aoe_turf/conjure/cast(list/targets,mob/user = usr) - playsound(get_turf(user), cast_sound, 50,1) - for(var/turf/T in targets) - if(T.density && !summon_ignore_density) - targets -= T - - for(var/i=0,iYou are now phasing in.") if(do_mob(user,user,150)) - user.infernalphasein() + if(valid_location(user)) + user.infernalphasein() + else + to_chat(user, "You are no longer near a potential signer.") + else to_chat(user, "You can only re-appear near a potential signer.") revert_cast() @@ -132,6 +128,14 @@ return revert_cast() +/obj/effect/proc_holder/spell/targeted/infernal_jaunt/proc/valid_location(mob/living/user = usr) + if(istype(get_area(user), /area/shuttle/)) // Can always phase in in a shuttle. + return TRUE + else + for(var/mob/living/C in orange(2, get_turf(user))) //Can also phase in when nearby a potential buyer. + if (C.owns_soul()) + return TRUE + return FALSE /mob/living/proc/infernalphaseout() dust_animation() @@ -196,8 +200,7 @@ if(locate(/datum/objective/sintouched) in H.mind.objectives) continue H.influenceSin() - H.Weaken(2) - H.Stun(2) + H.Knockdown(400) /obj/effect/proc_holder/spell/targeted/summon_dancefloor diff --git a/code/modules/spells/spell_types/emplosion.dm b/code/modules/spells/spell_types/emplosion.dm index 7d908f365d..7df3e13f94 100644 --- a/code/modules/spells/spell_types/emplosion.dm +++ b/code/modules/spells/spell_types/emplosion.dm @@ -6,7 +6,7 @@ var/emp_light = 3 action_icon_state = "emp" - sound = 'sound/weapons/ZapBang.ogg' + sound = 'sound/weapons/zapbang.ogg' /obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets,mob/user = usr) playsound(get_turf(user), sound, 50,1) diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index 940967adeb..01b5eb8242 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -1,102 +1,102 @@ -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt - name = "Ethereal Jaunt" - desc = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." - - school = "transmutation" - charge_max = 300 - clothes_req = 1 - invocation = "none" - invocation_type = "none" - range = -1 - cooldown_min = 100 //50 deciseconds reduction per rank - include_user = 1 - nonabstract_req = 1 - var/jaunt_duration = 50 //in deciseconds - var/jaunt_in_time = 5 +/obj/effect/proc_holder/spell/targeted/ethereal_jaunt + name = "Ethereal Jaunt" + desc = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." + + school = "transmutation" + charge_max = 300 + clothes_req = 1 + invocation = "none" + invocation_type = "none" + range = -1 + cooldown_min = 100 //50 deciseconds reduction per rank + include_user = 1 + nonabstract_req = 1 + var/jaunt_duration = 50 //in deciseconds + var/jaunt_in_time = 5 var/jaunt_in_type = /obj/effect/temp_visual/wizard var/jaunt_out_type = /obj/effect/temp_visual/wizard/out - action_icon_state = "jaunt" - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded - playsound(get_turf(user), 'sound/magic/Ethereal_Enter.ogg', 50, 1, -1) - for(var/mob/living/target in targets) - INVOKE_ASYNC(src, .proc/do_jaunt, target) - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) - target.notransform = 1 - var/turf/mobloc = get_turf(target) - var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt(mobloc) - new jaunt_out_type(mobloc, target.dir) - target.ExtinguishMob() - if(target.buckled) - target.buckled.unbuckle_mob(target,force=1) - if(target.pulledby) - target.pulledby.stop_pulling() - target.stop_pulling() - if(target.has_buckled_mobs()) - target.unbuckle_all_mobs(force=1) - target.loc = holder - target.reset_perspective(holder) - target.notransform=0 //mob is safely inside holder now, no need for protection. - jaunt_steam(mobloc) - - sleep(jaunt_duration) - - if(target.loc != holder) //mob warped out of the warp - qdel(holder) - return - mobloc = get_turf(target.loc) - jaunt_steam(mobloc) - target.canmove = 0 - holder.reappearing = 1 - playsound(get_turf(target), 'sound/magic/Ethereal_Exit.ogg', 50, 1, -1) - sleep(25 - jaunt_in_time) - new jaunt_in_type(mobloc, target.dir) - sleep(jaunt_in_time) - qdel(holder) - if(!QDELETED(target)) - if(mobloc.density) - for(var/direction in GLOB.alldirs) - var/turf/T = get_step(mobloc, direction) - if(T) - if(target.Move(T)) - break - target.canmove = 1 - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc) - var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() - steam.set_up(10, 0, mobloc) - steam.start() - -/obj/effect/dummy/spell_jaunt - name = "water" - icon = 'icons/effects/effects.dmi' - icon_state = "nothing" - var/canmove = 1 - var/reappearing = 0 - density = 0 - anchored = 1 - invisibility = 60 - resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/effect/dummy/spell_jaunt/Destroy() - // Eject contents if deleted somehow - for(var/atom/movable/AM in src) - AM.forceMove(get_turf(src)) - return ..() - -/obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction) - if (!src.canmove || reappearing || !direction) return - var/turf/newLoc = get_step(src,direction) - setDir(direction) - if(!(newLoc.flags & NOJAUNT)) - loc = newLoc - else - to_chat(user, "Some strange aura is blocking the way!") - src.canmove = 0 - spawn(2) src.canmove = 1 - -/obj/effect/dummy/spell_jaunt/ex_act(blah) - return -/obj/effect/dummy/spell_jaunt/bullet_act(blah) - return + action_icon_state = "jaunt" + +/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded + playsound(get_turf(user), 'sound/magic/ethereal_enter.ogg', 50, 1, -1) + for(var/mob/living/target in targets) + INVOKE_ASYNC(src, .proc/do_jaunt, target) + +/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) + target.notransform = 1 + var/turf/mobloc = get_turf(target) + var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt(mobloc) + new jaunt_out_type(mobloc, target.dir) + target.ExtinguishMob() + if(target.buckled) + target.buckled.unbuckle_mob(target,force=1) + if(target.pulledby) + target.pulledby.stop_pulling() + target.stop_pulling() + if(target.has_buckled_mobs()) + target.unbuckle_all_mobs(force=1) + target.loc = holder + target.reset_perspective(holder) + target.notransform=0 //mob is safely inside holder now, no need for protection. + jaunt_steam(mobloc) + + sleep(jaunt_duration) + + if(target.loc != holder) //mob warped out of the warp + qdel(holder) + return + mobloc = get_turf(target.loc) + jaunt_steam(mobloc) + target.canmove = 0 + holder.reappearing = 1 + playsound(get_turf(target), 'sound/magic/ethereal_exit.ogg', 50, 1, -1) + sleep(25 - jaunt_in_time) + new jaunt_in_type(mobloc, target.dir) + sleep(jaunt_in_time) + qdel(holder) + if(!QDELETED(target)) + if(mobloc.density) + for(var/direction in GLOB.alldirs) + var/turf/T = get_step(mobloc, direction) + if(T) + if(target.Move(T)) + break + target.canmove = 1 + +/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc) + var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() + steam.set_up(10, 0, mobloc) + steam.start() + +/obj/effect/dummy/spell_jaunt + name = "water" + icon = 'icons/effects/effects.dmi' + icon_state = "nothing" + var/canmove = 1 + var/reappearing = 0 + density = 0 + anchored = 1 + invisibility = 60 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/dummy/spell_jaunt/Destroy() + // Eject contents if deleted somehow + for(var/atom/movable/AM in src) + AM.forceMove(get_turf(src)) + return ..() + +/obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction) + if (!src.canmove || reappearing || !direction) return + var/turf/newLoc = get_step(src,direction) + setDir(direction) + if(!(newLoc.flags & NOJAUNT)) + loc = newLoc + else + to_chat(user, "Some strange aura is blocking the way!") + src.canmove = 0 + spawn(2) src.canmove = 1 + +/obj/effect/dummy/spell_jaunt/ex_act(blah) + return +/obj/effect/dummy/spell_jaunt/bullet_act(blah) + return diff --git a/code/modules/spells/spell_types/explosion.dm b/code/modules/spells/spell_types/explosion.dm index 443546d12f..def7db816f 100644 --- a/code/modules/spells/spell_types/explosion.dm +++ b/code/modules/spells/spell_types/explosion.dm @@ -1,15 +1,15 @@ -/obj/effect/proc_holder/spell/targeted/explosion - name = "Explosion" - desc = "This spell explodes an area." - - var/ex_severe = 1 - var/ex_heavy = 2 - var/ex_light = 3 - var/ex_flash = 4 - -/obj/effect/proc_holder/spell/targeted/explosion/cast(list/targets,mob/user = usr) - - for(var/mob/living/target in targets) +/obj/effect/proc_holder/spell/targeted/explosion + name = "Explosion" + desc = "This spell explodes an area." + + var/ex_severe = 1 + var/ex_heavy = 2 + var/ex_light = 3 + var/ex_flash = 4 + +/obj/effect/proc_holder/spell/targeted/explosion/cast(list/targets,mob/user = usr) + + for(var/mob/living/target in targets) explosion(target.loc,ex_severe,ex_heavy,ex_light,ex_flash) - + return \ No newline at end of file diff --git a/code/modules/spells/spell_types/forcewall.dm b/code/modules/spells/spell_types/forcewall.dm index 8b2a40fe59..7581ba5f3b 100644 --- a/code/modules/spells/spell_types/forcewall.dm +++ b/code/modules/spells/spell_types/forcewall.dm @@ -6,7 +6,7 @@ clothes_req = 0 invocation = "TARCOL MINTI ZHERI" invocation_type = "shout" - sound = 'sound/magic/ForceWall.ogg' + sound = 'sound/magic/forcewall.ogg' action_icon_state = "shield" range = -1 include_user = 1 diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index 26c543537e..f1543d1691 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -42,7 +42,7 @@ name = "\improper disintegrating touch" desc = "This hand of mine glows with an awesome power!" catchphrase = "EI NATH!!" - on_use_sound = 'sound/magic/Disintegrate.ogg' + on_use_sound = 'sound/magic/disintegrate.ogg' icon_state = "disintegrate" item_state = "disintegrate" @@ -58,7 +58,7 @@ name = "\improper petrifying touch" desc = "That's the bottom line, because flesh to stone said so!" catchphrase = "STAUN EI!!" - on_use_sound = 'sound/magic/FleshToStone.ogg' + on_use_sound = 'sound/magic/fleshtostone.ogg' icon_state = "fleshtostone" item_state = "fleshtostone" @@ -69,6 +69,6 @@ to_chat(user, "You can't reach out!") return var/mob/living/M = target - M.Stun(2) + M.Stun(40) M.petrify() ..() diff --git a/code/modules/spells/spell_types/inflict_handler.dm b/code/modules/spells/spell_types/inflict_handler.dm index e4c195692f..e474594e66 100644 --- a/code/modules/spells/spell_types/inflict_handler.dm +++ b/code/modules/spells/spell_types/inflict_handler.dm @@ -1,10 +1,10 @@ /obj/effect/proc_holder/spell/targeted/inflict_handler name = "Inflict Handler" - desc = "This spell blinds and/or destroys/damages/heals and/or weakens/stuns the target." + desc = "This spell blinds and/or destroys/damages/heals and/or knockdowns/stuns the target." - var/amt_weakened = 0 - var/amt_paralysis = 0 - var/amt_stunned = 0 + var/amt_knockdown = 0 + var/amt_unconscious = 0 + var/amt_stun = 0 //set to negatives for healing var/amt_dam_fire = 0 @@ -37,9 +37,9 @@ target.adjustToxLoss(amt_dam_tox) target.adjustOxyLoss(amt_dam_oxy) //disabling - target.Weaken(amt_weakened) - target.Paralyse(amt_paralysis) - target.Stun(amt_stunned) + target.Knockdown(amt_knockdown) + target.Unconscious(amt_unconscious) + target.Stun(amt_stun) target.blind_eyes(amt_eye_blind) target.blur_eyes(amt_eye_blurry) diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index 89a83bfe62..b68491d15d 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -13,7 +13,7 @@ action_icon_state = "knock" /obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets,mob/user = usr) - user << sound('sound/magic/Knock.ogg') + user << sound('sound/magic/knock.ogg') for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) INVOKE_ASYNC(src, .proc/open_door, door) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 50f51a0b3b..0442b2c02a 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -134,7 +134,7 @@ lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton) to_chat(lich, "Your bones clatter and shutter as you are pulled back into this world!") var/turf/body_turf = get_turf(old_body) - lich.Weaken(10+10*resurrections) + lich.Knockdown(200 + 200*resurrections) resurrections++ if(old_body && old_body.loc) if(iscarbon(old_body)) diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm index 3a84f73ef9..5726849a98 100644 --- a/code/modules/spells/spell_types/lightning.dm +++ b/code/modules/spells/spell_types/lightning.dm @@ -67,10 +67,10 @@ var/mob/living/carbon/current = target if(bounces < 1) current.electrocute_act(bolt_energy,"Lightning Bolt",safety=1) - playsound(get_turf(current), 'sound/magic/LightningShock.ogg', 50, 1, -1) + playsound(get_turf(current), 'sound/magic/lightningshock.ogg', 50, 1, -1) else current.electrocute_act(bolt_energy,"Lightning Bolt",safety=1) - playsound(get_turf(current), 'sound/magic/LightningShock.ogg', 50, 1, -1) + playsound(get_turf(current), 'sound/magic/lightningshock.ogg', 50, 1, -1) var/list/possible_targets = new for(var/mob/living/M in view_or_range(range,target,"view")) if(user == M || target == M && los_check(current,M)) // || origin == M ? Not sure double shockings is good or not diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 306ec47196..aee34514b7 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -90,7 +90,7 @@ /obj/effect/proc_holder/spell/aimed/finger_guns name = "Finger Guns" - desc = "Shoot a mimed bullet from your fingers that does a stun and some damage." + desc = "Shoot a mimed bullet from your fingers that stuns and does some damage." school = "mime" panel = "Mime" charge_max = 300 diff --git a/code/modules/spells/spell_types/mind_transfer.dm b/code/modules/spells/spell_types/mind_transfer.dm index 052c1f1162..a30c77b637 100644 --- a/code/modules/spells/spell_types/mind_transfer.dm +++ b/code/modules/spells/spell_types/mind_transfer.dm @@ -10,8 +10,8 @@ range = 1 cooldown_min = 200 //100 deciseconds reduction per rank var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell - var/paralysis_amount_caster = 20 //how much the caster is paralysed for after the spell - var/paralysis_amount_victim = 20 //how much the victim is paralysed for after the spell + var/unconscious_amount_caster = 400 //how much the caster is stunned for after the spell + var/unconscious_amount_victim = 400 //how much the victim is stunned for after the spell action_icon_state = "mindswap" @@ -20,7 +20,7 @@ Urist: I don't feel like figuring out how you store object spells so I'm leaving Make sure spells that are removed from spell_list are actually removed and deleted when mind transfering. Also, you never added distance checking after target is selected. I've went ahead and did that. */ -/obj/effect/proc_holder/spell/targeted/mind_transfer/cast(list/targets, mob/user = usr, distanceoverride) +/obj/effect/proc_holder/spell/targeted/mind_transfer/cast(list/targets, mob/living/user = usr, distanceoverride) if(!targets.len) to_chat(user, "No mind found!") return @@ -59,7 +59,7 @@ Also, you never added distance checking after target is selected. I've went ahea return var/mob/living/victim = target//The target of the spell whos body will be transferred to. - var/mob/caster = user//The wizard/whomever doing the body transferring. + var/mob/living/caster = user//The wizard/whomever doing the body transferring. //MIND TRANSFER BEGIN var/mob/dead/observer/ghost = victim.ghostize(0) @@ -72,8 +72,8 @@ Also, you never added distance checking after target is selected. I've went ahea //MIND TRANSFER END - //Here we paralyze both mobs and knock them out for a time. - caster.Paralyse(paralysis_amount_caster) - victim.Paralyse(paralysis_amount_victim) - caster << sound('sound/magic/MandSwap.ogg') - victim << sound('sound/magic/MandSwap.ogg')// only the caster and victim hear the sounds, that way no one knows for sure if the swap happened + //Here we knock both mobs out for a time. + caster.Unconscious(unconscious_amount_caster) + victim.Unconscious(unconscious_amount_victim) + caster << sound('sound/magic/mandswap.ogg') + victim << sound('sound/magic/mandswap.ogg')// only the caster and victim hear the sounds, that way no one knows for sure if the swap happened diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index a007c6c919..393badb668 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -124,7 +124,7 @@ if("gravgun") G = new /obj/item/weapon/gun/energy/gravity_gun(get_turf(H)) G.unlock() - playsound(get_turf(H),'sound/magic/Summon_guns.ogg', 50, 1) + playsound(get_turf(H),'sound/magic/summon_guns.ogg', 50, 1) else switch (randomizemagic) @@ -199,7 +199,7 @@ if("bloodcontract") new /obj/item/blood_contract(get_turf(H)) to_chat(H, "You suddenly feel lucky.") - playsound(get_turf(H),'sound/magic/Summon_Magic.ogg', 50, 1) + playsound(get_turf(H),'sound/magic/summon_magic.ogg', 50, 1) /proc/summonevents() diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm index 8fc3f34fc4..dc77615307 100644 --- a/code/modules/spells/spell_types/rod_form.dm +++ b/code/modules/spells/spell_types/rod_form.dm @@ -4,7 +4,7 @@ clothes_req = 1 human_req = 0 charge_max = 250 - cooldown_min = 200 + cooldown_min = 100 range = -1 include_user = 1 invocation = "CLANG!" diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index c88f722754..63c840a9b0 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -14,10 +14,10 @@ var/shapeshift_type var/list/current_shapes = list() var/list/current_casters = list() - var/list/possible_shapes = list(/mob/living/simple_animal/mouse, - /mob/living/simple_animal/pet/dog/corgi, - /mob/living/simple_animal/hostile/carp/ranged/chaos, -// /mob/living/simple_animal/bot/ed209, + var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\ + /mob/living/simple_animal/pet/dog/corgi,\ + /mob/living/simple_animal/hostile/carp/ranged/chaos,\ + /mob/living/simple_animal/bot/ed209,\ /mob/living/simple_animal/hostile/construct/armored) /obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr) diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index b2a5aaf697..90c7730f5a 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -103,10 +103,10 @@ if(!L.put_in_hands(item_to_retrieve)) item_to_retrieve.loc = L.loc item_to_retrieve.loc.visible_message("The [item_to_retrieve.name] suddenly appears!") - playsound(get_turf(L), 'sound/magic/SummonItems_generic.ogg', 50, 1) + playsound(get_turf(L), 'sound/magic/summonitems_generic.ogg', 50, 1) else item_to_retrieve.loc.visible_message("The [item_to_retrieve.name] suddenly appears in [L]'s hand!") - playsound(get_turf(L), 'sound/magic/SummonItems_generic.ogg', 50, 1) + playsound(get_turf(L), 'sound/magic/summonitems_generic.ogg', 50, 1) if(message) diff --git a/code/modules/spells/spell_types/the_traps.dm b/code/modules/spells/spell_types/the_traps.dm index 169a38bb95..7402dbfbc8 100644 --- a/code/modules/spells/spell_types/the_traps.dm +++ b/code/modules/spells/spell_types/the_traps.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps name = "The Traps!" - desc = "Summon a number of traps to confuse and weaken your enemies, and possibly you." + desc = "Summon a number of traps to confuse and knockdown your enemies, and possibly you." charge_max = 250 cooldown_min = 50 diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index 1baf51826d..caedacb59e 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -58,4 +58,4 @@ cooldown_min = 200 //100 deciseconds reduction per rank action_icon_state = "statue" - sound = 'sound/magic/FleshToStone.ogg' \ No newline at end of file + sound = 'sound/magic/fleshtostone.ogg' \ No newline at end of file diff --git a/code/modules/spells/spell_types/trigger.dm b/code/modules/spells/spell_types/trigger.dm index d219a22fca..7dfda25730 100644 --- a/code/modules/spells/spell_types/trigger.dm +++ b/code/modules/spells/spell_types/trigger.dm @@ -1,30 +1,30 @@ -/obj/effect/proc_holder/spell/targeted/trigger - name = "Trigger" - desc = "This spell triggers another spell or a few." - - var/list/linked_spells = list() //those are just referenced by the trigger spell and are unaffected by it directly - var/list/starting_spells = list() //those are added on New() to contents from default spells and are deleted when the trigger spell is deleted to prevent memory leaks - +/obj/effect/proc_holder/spell/targeted/trigger + name = "Trigger" + desc = "This spell triggers another spell or a few." + + var/list/linked_spells = list() //those are just referenced by the trigger spell and are unaffected by it directly + var/list/starting_spells = list() //those are added on New() to contents from default spells and are deleted when the trigger spell is deleted to prevent memory leaks + /obj/effect/proc_holder/spell/targeted/trigger/Initialize() . = ..() - - for(var/spell in starting_spells) - var/spell_to_add = text2path(spell) - new spell_to_add(src) //should result in adding to contents, needs testing - -/obj/effect/proc_holder/spell/targeted/trigger/Destroy() - for(var/spell in contents) - qdel(spell) - linked_spells = null - starting_spells = null - return ..() - -/obj/effect/proc_holder/spell/targeted/trigger/cast(list/targets,mob/user = usr) - playMagSound() - for(var/mob/living/target in targets) - for(var/obj/effect/proc_holder/spell/spell in contents) - spell.perform(list(target),0) - for(var/obj/effect/proc_holder/spell/spell in linked_spells) - spell.perform(list(target),0) - + + for(var/spell in starting_spells) + var/spell_to_add = text2path(spell) + new spell_to_add(src) //should result in adding to contents, needs testing + +/obj/effect/proc_holder/spell/targeted/trigger/Destroy() + for(var/spell in contents) + qdel(spell) + linked_spells = null + starting_spells = null + return ..() + +/obj/effect/proc_holder/spell/targeted/trigger/cast(list/targets,mob/user = usr) + playMagSound() + for(var/mob/living/target in targets) + for(var/obj/effect/proc_holder/spell/spell in contents) + spell.perform(list(target),0) + for(var/obj/effect/proc_holder/spell/spell in linked_spells) + spell.perform(list(target),0) + return \ No newline at end of file diff --git a/code/modules/spells/spell_types/turf_teleport.dm b/code/modules/spells/spell_types/turf_teleport.dm index 7a27e26ec3..060bbb0374 100644 --- a/code/modules/spells/spell_types/turf_teleport.dm +++ b/code/modules/spells/spell_types/turf_teleport.dm @@ -8,8 +8,8 @@ var/include_space = 0 //whether it includes space tiles in possible teleport locations var/include_dense = 0 //whether it includes dense tiles in possible teleport locations - var/sound1 = 'sound/weapons/ZapBang.ogg' - var/sound2 = 'sound/weapons/ZapBang.ogg' + var/sound1 = 'sound/weapons/zapbang.ogg' + var/sound2 = 'sound/weapons/zapbang.ogg' /obj/effect/proc_holder/spell/targeted/turf_teleport/cast(list/targets,mob/user = usr) playsound(get_turf(user), sound1, 50,1) @@ -17,7 +17,7 @@ var/list/turfs = new/list() for(var/turf/T in range(target,outer_tele_radius)) if(T in range(target,inner_tele_radius)) continue - if(istype(T,/turf/open/space) && !include_space) continue + if(isspaceturf(T) && !include_space) continue if(T.density && !include_dense) continue if(T.x>world.maxx-outer_tele_radius || T.xYou're slammed into the floor by [user]!") else new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own if(isliving(AM)) var/mob/living/M = AM - M.Weaken(stun_amt) + M.Knockdown(stun_amt) to_chat(M, "You're thrown back by [user]!") AM.throw_at(throwtarget, ((Clamp((maxthrow - (Clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno //i fixed conflicts only to find out that this is in the WIZARD file instead of the xeno file?! name = "Tail Sweep" desc = "Throw back attackers with a sweep of your tail." - sound = 'sound/magic/Tail_swing.ogg' + sound = 'sound/magic/tail_swing.ogg' charge_max = 150 clothes_req = 0 range = 2 @@ -305,11 +305,11 @@ action_background_icon_state = "bg_alien" /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno/cast(list/targets,mob/user = usr) - if(istype(user, /mob/living/carbon)) + if(iscarbon(user)) var/mob/living/carbon/C = user playsound(C.loc, 'sound/voice/hiss5.ogg', 80, 1, 1) C.spin(6,1) - ..(targets, user, 3) + ..(targets, user, 60) /obj/effect/proc_holder/spell/targeted/sacred_flame name = "Sacred Flame" @@ -323,7 +323,7 @@ include_user = 1 selection_type = "view" action_icon_state = "sacredflame" - sound = 'sound/magic/Fireball.ogg' + sound = 'sound/magic/fireball.ogg' /obj/effect/proc_holder/spell/targeted/sacred_flame/cast(list/targets, mob/user = usr) for(var/mob/living/L in targets) diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index a1ff2aa743..7dc24d35f8 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -258,6 +258,7 @@ data["ready"] = cannon ? cannon.ready : FALSE data["connected"] = cannon data["notice"] = notice + data["unlocked"] = GLOB.bsa_unlock if(target) data["target"] = get_target_name() return data diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm index 3014659205..4a9bc42438 100644 --- a/code/modules/station_goals/station_goal.dm +++ b/code/modules/station_goals/station_goal.dm @@ -12,7 +12,7 @@ var/report_message = "Complete this goal." /datum/station_goal/proc/send_report() - priority_announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/AI/commandreport.ogg') + priority_announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/ai/commandreport.ogg') print_command_report(get_report(),"Nanotrasen Directive [pick(GLOB.phonetic_alphabet)] \Roman[rand(1,50)]", announce=FALSE) on_report() diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 312bd04c76..8a55b5eaff 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -6,7 +6,7 @@ var/obj/item/bodypart/affecting var/selected_zone = user.zone_selected - if(istype(M, /mob/living/carbon)) + if(iscarbon(M)) C = M affecting = C.get_bodypart(check_zone(selected_zone)) diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index 9d88e491b2..d014674144 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -77,11 +77,6 @@ else if(implement_type in implements_extract) current_type = "extract" var/list/organs = target.getorganszone(target_zone) - var/mob/living/simple_animal/borer/B = target.has_brain_worms() - if(target.has_brain_worms()) - user.visible_message("[user] begins to extract [B] from [target]'s [parse_zone(target_zone)].", - "You begin to extract [B] from [target]'s [parse_zone(target_zone)]...") - return TRUE if(!organs.len) to_chat(user, "There are no removeable organs in [target]'s [parse_zone(target_zone)]!") return -1 @@ -131,13 +126,6 @@ "You insert [tool] into [target]'s [parse_zone(target_zone)].") else if(current_type == "extract") - var/mob/living/simple_animal/borer/B = target.has_brain_worms() - if(B && B.victim == target) - user.visible_message("[user] successfully extracts [B] from [target]'s [parse_zone(target_zone)]!", - "You successfully extract [B] from [target]'s [parse_zone(target_zone)].") - add_logs(user, target, "surgically removed [B] from", addition="INTENT: [uppertext(user.a_intent)]") - B.leave_victim() - return FALSE if(I && I.owner == target) user.visible_message("[user] successfully extracts [I] from [target]'s [parse_zone(target_zone)]!", "You successfully extract [I] from [target]'s [parse_zone(target_zone)].") diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index ff2a3f0312..78e5333b32 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -1,4 +1,4 @@ -#define STUN_SET_AMOUNT 2 +#define STUN_SET_AMOUNT 40 /obj/item/organ/cyberimp name = "cybernetic implant" @@ -31,7 +31,7 @@ /obj/item/organ/cyberimp/brain/emp_act(severity) if(!owner) return - var/stun_amount = 5 + (severity-1 ? 0 : 5) + var/stun_amount = 200/severity owner.Stun(stun_amount) to_chat(owner, "Your body seizes up!") return stun_amount @@ -107,10 +107,10 @@ if(crit_fail) return - if(owner.stunned > STUN_SET_AMOUNT) - owner.stunned = STUN_SET_AMOUNT - if(owner.weakened > STUN_SET_AMOUNT) - owner.weakened = STUN_SET_AMOUNT + if(owner.AmountStun() > STUN_SET_AMOUNT) + owner.SetStun(STUN_SET_AMOUNT) + if(owner.AmountKnockdown() > STUN_SET_AMOUNT) + owner.SetKnockdown(STUN_SET_AMOUNT) /obj/item/organ/cyberimp/brain/anti_stun/emp_act(severity) if(crit_fail) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 0a29492c4a..75298342f4 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -49,6 +49,9 @@ /obj/item/organ/ears/proc/minimumDeafTicks(value) deaf = max(deaf, value) +/obj/item/organ/ears/invincible/adjustEarDamage(ddmg, ddeaf) + return + /mob/proc/restoreEars() diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 88cbaff3fe..554bcfdf60 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -8,6 +8,7 @@ var/sight_flags = 0 var/see_in_dark = 2 + var/eye_damage = 0 var/tint = 0 var/eye_color = "" //set to a hex code to override a mob's eye color var/old_eye_color = "fff" @@ -110,17 +111,24 @@ icon_state = "flashlight_eyes" flash_protect = 2 tint = INFINITY + var/obj/item/device/flashlight/eyelight/eye /obj/item/organ/eyes/robotic/flashlight/emp_act(severity) return /obj/item/organ/eyes/robotic/flashlight/Insert(var/mob/living/carbon/M, var/special = 0) ..() - M.set_light(M.light_range + 15, M.light_power + 1) + if(!eye) + eye = new /obj/item/device/flashlight/eyelight() + eye.on = TRUE + eye.forceMove(M) + eye.update_brightness(M) /obj/item/organ/eyes/robotic/flashlight/Remove(var/mob/living/carbon/M, var/special = 0) - M.set_light(M.light_range -15, M.light_power - 1) + eye.on = FALSE + eye.update_brightness(M) + eye.forceMove(src) ..() // Welding shield implant diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 223345cd81..726131d12e 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -48,7 +48,7 @@ var/obj/S = ..() S.icon_state = "heart-off" return S - + /obj/item/organ/heart/on_life() if(owner.client) var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) @@ -68,22 +68,6 @@ H.playsound_local(get_turf(H),fastbeat,40,0, channel = CHANNEL_HEARTBEAT) beat = BEAT_FAST -/obj/item/organ/heart/on_life() - if(owner.client) - var/mob/living/carbon/H = owner - if(H.health <= HEALTH_THRESHOLD_CRIT && beat != BEAT_SLOW) - beat = BEAT_SLOW - H.playsound_local(get_turf(H),'sound/health/slowbeat.ogg',40,0, channel = CHANNEL_HEARTBEAT) - to_chat(owner, "You feel your heart slow down...") - if(beat == BEAT_SLOW && H.health > HEALTH_THRESHOLD_CRIT) - H.stop_sound_channel(CHANNEL_HEARTBEAT) - beat = BEAT_NONE - - if(H.jitteriness) - if(!beat || beat == BEAT_SLOW) - H.playsound_local(get_turf(H),'sound/health/fastbeat.ogg',40,0, channel = CHANNEL_HEARTBEAT) - beat = BEAT_FAST - /obj/item/organ/heart/cursed name = "cursed heart" desc = "A heart that, when inserted, will force you to pump it manually." diff --git a/code/modules/surgery/organs/heart.dm.rej b/code/modules/surgery/organs/heart.dm.rej deleted file mode 100644 index 8ba9e69848..0000000000 --- a/code/modules/surgery/organs/heart.dm.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm (rejected hunks) -@@ -51,9 +51,9 @@ - - /obj/item/organ/heart/on_life() - if(owner.client) -- var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = 1) -+ var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) - -- var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = 1) -+ var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE) - var/mob/living/carbon/H = owner - if(H.health <= HEALTH_THRESHOLD_CRIT && beat != BEAT_SLOW) - beat = BEAT_SLOW diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index 9d56e834fa..f58b18d164 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -7,7 +7,6 @@ /mob/proc/getorganslot(slot) return - /mob/living/carbon/getorgan(typepath) return (locate(typepath) in internal_organs) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index ece2ad3f40..4a529409c9 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -113,7 +113,7 @@ if(!H.co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so. H.co2overloadtime = world.time else if(world.time - H.co2overloadtime > 120) - H.Paralyse(3) + H.Unconscious(60) H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! H.adjustOxyLoss(8) @@ -179,10 +179,10 @@ // N2O var/SA_pp = breath.get_breath_partial_pressure(breath_gases["n2o"][MOLES]) - if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit - H.Paralyse(3) // 3 gives them one second to wake up and run away a bit! + if(SA_pp > SA_para_min) // Enough to make us stunned for a bit + H.Unconscious(60) // 60 gives them one second to wake up and run away a bit! if(SA_pp > SA_sleep_min) // Enough to make us sleep as well - H.Sleeping(max(H.sleeping+2, 10)) + H.Sleeping(max(H.AmountSleeping() + 40, 200)) else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning if(prob(20)) H.emote(pick("giggle", "laugh")) @@ -251,6 +251,8 @@ /obj/item/organ/lungs/plasmaman name = "plasma filter" + desc = "A spongy rib-shaped mass for filtering plasma from the air." + icon_state = "lungs-plasma" safe_oxygen_min = 0 //We don't breath this safe_toxins_min = 16 //We breath THIS! diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 78adf8268c..e27337a813 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -150,4 +150,4 @@ else ears = new - ears.Insert(src) \ No newline at end of file + ears.Insert(src) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 91983a032e..b69c1f4c5c 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -16,8 +16,9 @@ /datum/language/draconic, /datum/language/codespeak, /datum/language/monkey, - /datum/language/beachbum, /datum/language/narsie, + /datum/language/beachbum, + /datum/language/ratvar )) /obj/item/organ/tongue/get_spans() @@ -140,9 +141,7 @@ /obj/item/organ/tongue/bone name = "bone \"tongue\"" - desc = "Apparently skeletons alter the sounds they produce \ - through oscillation of their teeth, hence their characteristic \ - rattling." + desc = "Apparently skeletons alter the sounds they produce through oscillation of their teeth, hence their characteristic rattling." icon_state = "tonguebone" say_mod = "rattles" attack_verb = list("bitten", "chattered", "chomped", "enamelled", "boned") @@ -152,7 +151,7 @@ var/phomeme_type = "sans" var/list/phomeme_types = list("sans", "papyrus") -/obj/item/organ/tongue/bone/New() +/obj/item/organ/tongue/bone/Initialize() . = ..() phomeme_type = pick(phomeme_types) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 37d4a72276..1a449fcfd8 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -199,7 +199,7 @@ //Cut out the name so it doesn't trigger commands found_string = L.first_name() - else if(L.mind && dd_hasprefix(message, L.mind.assigned_role)) + else if(L.mind && L.mind.assigned_role && dd_hasprefix(message, L.mind.assigned_role)) specific_listeners += L //focus on those with the specified job //Cut out the job so it doesn't trigger commands found_string = L.mind.assigned_role @@ -210,7 +210,7 @@ message = copytext(message, 0, 1)+copytext(message, 1 + length(found_string), length(message) + 1) var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt") - var/static/regex/weaken_words = regex("drop|fall|trip|weaken") + var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown") var/static/regex/sleep_words = regex("sleep|slumber|rest") var/static/regex/vomit_words = regex("vomit|throw up") var/static/regex/silence_words = regex("shut up|silence|ssh|quiet|hush") @@ -258,20 +258,20 @@ cooldown = COOLDOWN_STUN for(var/V in listeners) var/mob/living/L = V - L.Stun(3 * power_multiplier) + L.Stun(60 * power_multiplier) - //WEAKEN - else if(findtext(message, weaken_words)) + //KNOCKDOWN + else if(findtext(message, knockdown_words)) cooldown = COOLDOWN_STUN for(var/V in listeners) var/mob/living/L = V - L.Weaken(3 * power_multiplier) + L.Knockdown(60 * power_multiplier) //SLEEP else if((findtext(message, sleep_words))) cooldown = COOLDOWN_STUN for(var/mob/living/carbon/C in listeners) - C.Sleeping(2 * power_multiplier) + C.Sleeping(40 * power_multiplier) //VOMIT else if((findtext(message, vomit_words))) @@ -486,9 +486,9 @@ var/mob/living/L = V if(L.resting) L.lay_down() //aka get up - L.SetStunned(0) - L.SetWeakened(0) - L.SetParalysis(0) //i said get up i don't care if you're being tazed + L.SetStun(0) + L.SetKnockdown(0) + L.SetUnconscious(0) //i said get up i don't care if you're being tazed //SIT else if((findtext(message, sit_words))) @@ -555,7 +555,7 @@ addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25) if(user.mind && user.mind.assigned_role == "Clown") for(var/mob/living/carbon/C in listeners) - C.slip(0,7 * power_multiplier) + C.slip(140 * power_multiplier) cooldown = COOLDOWN_MEME //RIGHT ROUND diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index eb02b91735..03beacf27b 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -1,97 +1,97 @@ -/datum/surgery - var/name = "surgery" - var/status = 1 - var/list/steps = list() //Steps in a surgery - var/step_in_progress = 0 //Actively performing a Surgery - var/can_cancel = 1 //Can cancel this surgery after step 1 with cautery - var/list/species = list(/mob/living/carbon/human) //Acceptable Species - var/location = "chest" //Surgery location - var/requires_organic_bodypart = 1 //Prevents you from performing an operation on robotic limbs - var/list/possible_locs = list() //Multiple locations - var/ignore_clothes = 0 //This surgery ignores clothes - var/mob/living/carbon/target //Operation target mob - var/obj/item/bodypart/operated_bodypart //Operable body part - var/requires_bodypart = TRUE //Surgery available only when a bodypart is present, or only when it is missing. - var/success_multiplier = 0 //Step success propability multiplier - var/requires_real_bodypart = 0 //Some surgeries don't work on limbs that don't really exist - -/datum/surgery/New(surgery_target, surgery_location, surgery_bodypart) - ..() - if(surgery_target) - target = surgery_target - target.surgeries += src - if(surgery_location) - location = surgery_location - if(surgery_bodypart) - operated_bodypart = surgery_bodypart - -/datum/surgery/Destroy() - if(target) - target.surgeries -= src - target = null - operated_bodypart = null - return ..() - - -/datum/surgery/proc/can_start(mob/user, mob/living/carbon/target) - // if 0 surgery wont show up in list - // put special restrictions here - return 1 - - -/datum/surgery/proc/next_step(mob/user) - if(step_in_progress) - return 1 - - var/datum/surgery_step/S = get_surgery_step() - if(S) - if(S.try_op(user, target, user.zone_selected, user.get_active_held_item(), src)) - return 1 - return 0 - -/datum/surgery/proc/get_surgery_step() - var/step_type = steps[status] - return new step_type - -/datum/surgery/proc/complete() +/datum/surgery + var/name = "surgery" + var/status = 1 + var/list/steps = list() //Steps in a surgery + var/step_in_progress = 0 //Actively performing a Surgery + var/can_cancel = 1 //Can cancel this surgery after step 1 with cautery + var/list/species = list(/mob/living/carbon/human) //Acceptable Species + var/location = "chest" //Surgery location + var/requires_organic_bodypart = 1 //Prevents you from performing an operation on robotic limbs + var/list/possible_locs = list() //Multiple locations + var/ignore_clothes = 0 //This surgery ignores clothes + var/mob/living/carbon/target //Operation target mob + var/obj/item/bodypart/operated_bodypart //Operable body part + var/requires_bodypart = TRUE //Surgery available only when a bodypart is present, or only when it is missing. + var/success_multiplier = 0 //Step success propability multiplier + var/requires_real_bodypart = 0 //Some surgeries don't work on limbs that don't really exist + +/datum/surgery/New(surgery_target, surgery_location, surgery_bodypart) + ..() + if(surgery_target) + target = surgery_target + target.surgeries += src + if(surgery_location) + location = surgery_location + if(surgery_bodypart) + operated_bodypart = surgery_bodypart + +/datum/surgery/Destroy() + if(target) + target.surgeries -= src + target = null + operated_bodypart = null + return ..() + + +/datum/surgery/proc/can_start(mob/user, mob/living/carbon/target) + // if 0 surgery wont show up in list + // put special restrictions here + return 1 + + +/datum/surgery/proc/next_step(mob/user) + if(step_in_progress) + return 1 + + var/datum/surgery_step/S = get_surgery_step() + if(S) + if(S.try_op(user, target, user.zone_selected, user.get_active_held_item(), src)) + return 1 + return 0 + +/datum/surgery/proc/get_surgery_step() + var/step_type = steps[status] + return new step_type + +/datum/surgery/proc/complete() SSblackbox.add_details("surgeries_completed", "[type]") - qdel(src) - - -/datum/surgery/proc/get_propability_multiplier() - var/propability = 0.5 - var/turf/T = get_turf(target) - - if(locate(/obj/structure/table/optable, T)) - propability = 1 - else if(locate(/obj/structure/table, T)) - propability = 0.8 - else if(locate(/obj/structure/bed, T)) - propability = 0.7 - - return propability + success_multiplier - - - - -//INFO -//Check /mob/living/carbon/attackby for how surgery progresses, and also /mob/living/carbon/attack_hand. -//As of Feb 21 2013 they are in code/modules/mob/living/carbon/carbon.dm, lines 459 and 51 respectively. -//Other important variables are var/list/surgeries (/mob/living) and var/list/internal_organs (/mob/living/carbon) -// var/list/bodyparts (/mob/living/carbon/human) is the LIMBS of a Mob. -//Surgical procedures are initiated by attempt_initiate_surgery(), which is called by surgical drapes and bedsheets. - - -//TODO -//specific steps for some surgeries (fluff text) -//R&D researching new surgeries (especially for non-humans) -//more interesting failure options -//randomised complications -//more surgeries! -//add a probability modifier for the state of the surgeon- health, twitching, etc. blindness, god forbid. -//helper for converting a zone_sel.selecting to body part (for damage) - - -//RESOLVED ISSUES //"Todo" jobs that have been completed -//combine hands/feet into the arms - Hands/feet were removed - RR -//surgeries (not steps) that can be initiated on any body part (corresponding with damage locations) - Call this one done, see possible_locs var - c0 + qdel(src) + + +/datum/surgery/proc/get_propability_multiplier() + var/propability = 0.5 + var/turf/T = get_turf(target) + + if(locate(/obj/structure/table/optable, T)) + propability = 1 + else if(locate(/obj/structure/table, T)) + propability = 0.8 + else if(locate(/obj/structure/bed, T)) + propability = 0.7 + + return propability + success_multiplier + + + + +//INFO +//Check /mob/living/carbon/attackby for how surgery progresses, and also /mob/living/carbon/attack_hand. +//As of Feb 21 2013 they are in code/modules/mob/living/carbon/carbon.dm, lines 459 and 51 respectively. +//Other important variables are var/list/surgeries (/mob/living) and var/list/internal_organs (/mob/living/carbon) +// var/list/bodyparts (/mob/living/carbon/human) is the LIMBS of a Mob. +//Surgical procedures are initiated by attempt_initiate_surgery(), which is called by surgical drapes and bedsheets. + + +//TODO +//specific steps for some surgeries (fluff text) +//R&D researching new surgeries (especially for non-humans) +//more interesting failure options +//randomised complications +//more surgeries! +//add a probability modifier for the state of the surgeon- health, twitching, etc. blindness, god forbid. +//helper for converting a zone_sel.selecting to body part (for damage) + + +//RESOLVED ISSUES //"Todo" jobs that have been completed +//combine hands/feet into the arms - Hands/feet were removed - RR +//surgeries (not steps) that can be initiated on any body part (corresponding with damage locations) - Call this one done, see possible_locs var - c0 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index efd1ec64f2..887c26038a 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -1,102 +1,102 @@ -/obj/item/weapon/retractor - name = "retractor" - desc = "Retracts stuff." - icon = 'icons/obj/surgery.dmi' - icon_state = "retractor" - materials = list(MAT_METAL=6000, MAT_GLASS=3000) - flags = CONDUCT - w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1;biotech=1" - - -/obj/item/weapon/hemostat - name = "hemostat" - desc = "You think you have seen this before." - icon = 'icons/obj/surgery.dmi' - icon_state = "hemostat" - materials = list(MAT_METAL=5000, MAT_GLASS=2500) - flags = CONDUCT - w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1;biotech=1" - attack_verb = list("attacked", "pinched") - - -/obj/item/weapon/cautery - name = "cautery" - desc = "This stops bleeding." - icon = 'icons/obj/surgery.dmi' - icon_state = "cautery" - materials = list(MAT_METAL=2500, MAT_GLASS=750) - flags = CONDUCT - w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1;biotech=1" - attack_verb = list("burnt") - - -/obj/item/weapon/surgicaldrill - name = "surgical drill" - desc = "You can drill using this item. You dig?" - icon = 'icons/obj/surgery.dmi' - icon_state = "drill" - hitsound = 'sound/weapons/circsawhit.ogg' - materials = list(MAT_METAL=10000, MAT_GLASS=6000) - flags = CONDUCT - force = 15 - w_class = WEIGHT_CLASS_NORMAL - origin_tech = "materials=1;biotech=1" - attack_verb = list("drilled") - -/obj/item/weapon/scalpel - name = "scalpel" - desc = "Cut, cut, and once more cut." - icon = 'icons/obj/surgery.dmi' - icon_state = "scalpel" - flags = CONDUCT - force = 10 - w_class = WEIGHT_CLASS_TINY - throwforce = 5 - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=4000, MAT_GLASS=1000) - origin_tech = "materials=1;biotech=1" - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP_ACCURATE - -/obj/item/weapon/scalpel/suicide_act(mob/user) - user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - - -/obj/item/weapon/circular_saw - name = "circular saw" - desc = "For heavy duty cutting." - icon = 'icons/obj/surgery.dmi' - icon_state = "saw" - hitsound = 'sound/weapons/circsawhit.ogg' - throwhitsound = 'sound/weapons/pierce.ogg' - flags = CONDUCT - force = 15 - w_class = WEIGHT_CLASS_NORMAL - throwforce = 9 - throw_speed = 2 - throw_range = 5 - materials = list(MAT_METAL=10000, MAT_GLASS=6000) - origin_tech = "biotech=1;combat=1" - attack_verb = list("attacked", "slashed", "sawed", "cut") - sharpness = IS_SHARP - -/obj/item/weapon/surgical_drapes - name = "surgical drapes" - desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." - icon = 'icons/obj/surgery.dmi' - icon_state = "surgical_drapes" - w_class = WEIGHT_CLASS_TINY - origin_tech = "biotech=1" - attack_verb = list("slapped") - -/obj/item/weapon/surgical_drapes/attack(mob/living/M, mob/user) - if(!attempt_initiate_surgery(src, M, user)) +/obj/item/weapon/retractor + name = "retractor" + desc = "Retracts stuff." + icon = 'icons/obj/surgery.dmi' + icon_state = "retractor" + materials = list(MAT_METAL=6000, MAT_GLASS=3000) + flags = CONDUCT + w_class = WEIGHT_CLASS_TINY + origin_tech = "materials=1;biotech=1" + + +/obj/item/weapon/hemostat + name = "hemostat" + desc = "You think you have seen this before." + icon = 'icons/obj/surgery.dmi' + icon_state = "hemostat" + materials = list(MAT_METAL=5000, MAT_GLASS=2500) + flags = CONDUCT + w_class = WEIGHT_CLASS_TINY + origin_tech = "materials=1;biotech=1" + attack_verb = list("attacked", "pinched") + + +/obj/item/weapon/cautery + name = "cautery" + desc = "This stops bleeding." + icon = 'icons/obj/surgery.dmi' + icon_state = "cautery" + materials = list(MAT_METAL=2500, MAT_GLASS=750) + flags = CONDUCT + w_class = WEIGHT_CLASS_TINY + origin_tech = "materials=1;biotech=1" + attack_verb = list("burnt") + + +/obj/item/weapon/surgicaldrill + name = "surgical drill" + desc = "You can drill using this item. You dig?" + icon = 'icons/obj/surgery.dmi' + icon_state = "drill" + hitsound = 'sound/weapons/circsawhit.ogg' + materials = list(MAT_METAL=10000, MAT_GLASS=6000) + flags = CONDUCT + force = 15 + w_class = WEIGHT_CLASS_NORMAL + origin_tech = "materials=1;biotech=1" + attack_verb = list("drilled") + +/obj/item/weapon/scalpel + name = "scalpel" + desc = "Cut, cut, and once more cut." + icon = 'icons/obj/surgery.dmi' + icon_state = "scalpel" + flags = CONDUCT + force = 10 + w_class = WEIGHT_CLASS_TINY + throwforce = 5 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=4000, MAT_GLASS=1000) + origin_tech = "materials=1;biotech=1" + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP_ACCURATE + +/obj/item/weapon/scalpel/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + + +/obj/item/weapon/circular_saw + name = "circular saw" + desc = "For heavy duty cutting." + icon = 'icons/obj/surgery.dmi' + icon_state = "saw" + hitsound = 'sound/weapons/circsawhit.ogg' + throwhitsound = 'sound/weapons/pierce.ogg' + flags = CONDUCT + force = 15 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 9 + throw_speed = 2 + throw_range = 5 + materials = list(MAT_METAL=10000, MAT_GLASS=6000) + origin_tech = "biotech=1;combat=1" + attack_verb = list("attacked", "slashed", "sawed", "cut") + sharpness = IS_SHARP + +/obj/item/weapon/surgical_drapes + name = "surgical drapes" + desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." + icon = 'icons/obj/surgery.dmi' + icon_state = "surgical_drapes" + w_class = WEIGHT_CLASS_TINY + origin_tech = "biotech=1" + attack_verb = list("slapped") + +/obj/item/weapon/surgical_drapes/attack(mob/living/M, mob/user) + if(!attempt_initiate_surgery(src, M, user)) ..() /obj/item/weapon/organ_storage //allows medical cyborgs to manipulate organs without hands diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index d80872a427..19350669c6 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -1,160 +1,160 @@ -GLOBAL_LIST_EMPTY(uplinks) - -/** - * Uplinks - * - * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in it's contents). Then add 'uses.' - * Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink. - * You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it. -**/ -/obj/item/device/uplink - name = "syndicate uplink" - desc = "There is something wrong if you're examining this." - var/active = FALSE - var/lockable = TRUE - var/telecrystals = 20 - var/selected_cat = null - var/owner = null - var/datum/game_mode/gamemode = null - var/spent_telecrystals = 0 - var/purchase_log = "" - var/list/uplink_items +GLOBAL_LIST_EMPTY(uplinks) + +/** + * Uplinks + * + * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in it's contents). Then add 'uses.' + * Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink. + * You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it. +**/ +/obj/item/device/uplink + name = "syndicate uplink" + desc = "There is something wrong if you're examining this." + var/active = FALSE + var/lockable = TRUE + var/telecrystals = 20 + var/selected_cat = null + var/owner = null + var/datum/game_mode/gamemode = null + var/spent_telecrystals = 0 + var/purchase_log = "" + var/list/uplink_items var/hidden_crystals = 0 - + /obj/item/device/uplink/Initialize() . = ..() - GLOB.uplinks += src - uplink_items = get_uplink_items(gamemode) - -/obj/item/device/uplink/proc/set_gamemode(gamemode) - src.gamemode = gamemode - uplink_items = get_uplink_items(gamemode) - -/obj/item/device/uplink/Destroy() - GLOB.uplinks -= src - return ..() - -/obj/item/device/uplink/attackby(obj/item/I, mob/user, params) - for(var/item in subtypesof(/datum/uplink_item)) - var/datum/uplink_item/UI = item - var/path = null - if(initial(UI.refund_path)) - path = initial(UI.refund_path) - else - path = initial(UI.item) - var/cost = 0 - if(initial(UI.refund_amount)) - cost = initial(UI.refund_amount) - else - cost = initial(UI.cost) - var/refundable = initial(UI.refundable) - if(I.type == path && refundable && I.check_uplink_validity()) - telecrystals += cost - spent_telecrystals -= cost - to_chat(user, "[I] refunded.") - qdel(I) - return - ..() - -/obj/item/device/uplink/interact(mob/user) - active = TRUE + GLOB.uplinks += src + uplink_items = get_uplink_items(gamemode) + +/obj/item/device/uplink/proc/set_gamemode(gamemode) + src.gamemode = gamemode + uplink_items = get_uplink_items(gamemode) + +/obj/item/device/uplink/Destroy() + GLOB.uplinks -= src + return ..() + +/obj/item/device/uplink/attackby(obj/item/I, mob/user, params) + for(var/item in subtypesof(/datum/uplink_item)) + var/datum/uplink_item/UI = item + var/path = null + if(initial(UI.refund_path)) + path = initial(UI.refund_path) + else + path = initial(UI.item) + var/cost = 0 + if(initial(UI.refund_amount)) + cost = initial(UI.refund_amount) + else + cost = initial(UI.cost) + var/refundable = initial(UI.refundable) + if(I.type == path && refundable && I.check_uplink_validity()) + telecrystals += cost + spent_telecrystals -= cost + to_chat(user, "[I] refunded.") + qdel(I) + return + ..() + +/obj/item/device/uplink/interact(mob/user) + active = TRUE if(user) ui_interact(user) - -/obj/item/device/uplink/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "uplink", name, 450, 750, master_ui, state) - ui.set_autoupdate(FALSE) // This UI is only ever opened by one person, and never is updated outside of user input. - ui.set_style("syndicate") - ui.open() - -/obj/item/device/uplink/ui_data(mob/user) - if(!user.mind) - return - var/list/data = list() - data["telecrystals"] = telecrystals - data["lockable"] = lockable - - data["categories"] = list() - for(var/category in uplink_items) - var/list/cat = list( - "name" = category, - "items" = (category == selected_cat ? list() : null)) - if(category == selected_cat) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(I.limited_stock == 0) - continue - if(I.restricted_roles.len) - var/is_inaccessible = 1 - for(var/R in I.restricted_roles) - if(R == user.mind.assigned_role) - is_inaccessible = 0 - if(is_inaccessible) - continue - cat["items"] += list(list( - "name" = I.name, - "cost" = I.cost, - "desc" = I.desc, - )) - data["categories"] += list(cat) - return data - - -/obj/item/device/uplink/ui_act(action, params) - if(!active) - return - - switch(action) - if("buy") - var/item = params["item"] - - var/list/buyable_items = list() - for(var/category in uplink_items) - buyable_items += uplink_items[category] - - if(item in buyable_items) - var/datum/uplink_item/I = buyable_items[item] - I.buy(usr, src) - . = TRUE - if("lock") - active = FALSE + +/obj/item/device/uplink/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "uplink", name, 450, 750, master_ui, state) + ui.set_autoupdate(FALSE) // This UI is only ever opened by one person, and never is updated outside of user input. + ui.set_style("syndicate") + ui.open() + +/obj/item/device/uplink/ui_data(mob/user) + if(!user.mind) + return + var/list/data = list() + data["telecrystals"] = telecrystals + data["lockable"] = lockable + + data["categories"] = list() + for(var/category in uplink_items) + var/list/cat = list( + "name" = category, + "items" = (category == selected_cat ? list() : null)) + if(category == selected_cat) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(I.limited_stock == 0) + continue + if(I.restricted_roles.len) + var/is_inaccessible = 1 + for(var/R in I.restricted_roles) + if(R == user.mind.assigned_role) + is_inaccessible = 0 + if(is_inaccessible) + continue + cat["items"] += list(list( + "name" = I.name, + "cost" = I.cost, + "desc" = I.desc, + )) + data["categories"] += list(cat) + return data + + +/obj/item/device/uplink/ui_act(action, params) + if(!active) + return + + switch(action) + if("buy") + var/item = params["item"] + + var/list/buyable_items = list() + for(var/category in uplink_items) + buyable_items += uplink_items[category] + + if(item in buyable_items) + var/datum/uplink_item/I = buyable_items[item] + I.buy(usr, src) + . = TRUE + if("lock") + active = FALSE telecrystals += hidden_crystals hidden_crystals = 0 - SStgui.close_uis(src) - if("select") - selected_cat = params["category"] - return 1 - - -/obj/item/device/uplink/ui_host() - return loc - -// Refund certain items by hitting the uplink with it. -/obj/item/device/radio/uplink/attackby(obj/item/I, mob/user, params) - return hidden_uplink.attackby(I, user, params) - -// A collection of pre-set uplinks, for admin spawns. + SStgui.close_uis(src) + if("select") + selected_cat = params["category"] + return 1 + + +/obj/item/device/uplink/ui_host() + return loc + +// Refund certain items by hitting the uplink with it. +/obj/item/device/radio/uplink/attackby(obj/item/I, mob/user, params) + return hidden_uplink.attackby(I, user, params) + +// A collection of pre-set uplinks, for admin spawns. /obj/item/device/radio/uplink/Initialize() . = ..() - icon_state = "radio" - hidden_uplink = new(src) - hidden_uplink.active = TRUE - hidden_uplink.lockable = FALSE - + icon_state = "radio" + hidden_uplink = new(src) + hidden_uplink.active = TRUE + hidden_uplink.lockable = FALSE + /obj/item/device/radio/uplink/nuclear/Initialize() . = ..() - hidden_uplink.set_gamemode(/datum/game_mode/nuclear) - + hidden_uplink.set_gamemode(/datum/game_mode/nuclear) + /obj/item/device/multitool/uplink/Initialize() . = ..() - hidden_uplink = new(src) - hidden_uplink.active = TRUE - hidden_uplink.lockable = FALSE - + hidden_uplink = new(src) + hidden_uplink.active = TRUE + hidden_uplink.lockable = FALSE + /obj/item/weapon/pen/uplink/Initialize() . = ..() - hidden_uplink = new(src) - traitor_unlock_degrees = 360 + hidden_uplink = new(src) + traitor_unlock_degrees = 360 diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index eceb13191a..5c646f76f3 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -455,8 +455,8 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo duffelbag" - desc = "A duffelbag filled with enough 12g ammo to supply an entire team, at a discounted price." + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." item = /obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/shotgun cost = 12 @@ -469,8 +469,8 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang) /datum/uplink_item/ammo/smg/bag - name = ".45 Ammo duffelbag" - desc = "A duffelbag filled with enough .45 ammo to supply an entire team, at a discounted price." + name = ".45 Ammo Duffel Bag" + desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." item = /obj/item/weapon/storage/backpack/duffelbag/syndie/ammo/smg cost = 20 include_modes = list(/datum/game_mode/nuclear) @@ -748,7 +748,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. name = "F.R.A.M.E. PDA Cartridge" desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will recieve the unlock code upon activating the virus, and the new uplink may be charged with \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ telecrystals normally." item = /obj/item/weapon/cartridge/virus/frame cost = 4 @@ -846,7 +846,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/suits/space_suit name = "Syndicate Space Suit" desc = "This red and black syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit \ + fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ sightings, however." item = /obj/item/weapon/storage/box/syndie_kit/space cost = 4 @@ -865,15 +865,17 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/suits/hardsuit/elite name = "Elite Syndicate Hardsuit" - desc = "An advanced hardsuit with superior armor and mobility to the standard Syndicate hardsuit." + desc = "An upgraded, elite version of the syndicate hardsuit. It features fireproofing, and also \ + provides the user with superior armor and mobility compared to the standard syndicate hardsuit." item = /obj/item/clothing/suit/space/hardsuit/syndi/elite cost = 8 include_modes = list(/datum/game_mode/nuclear) exclude_modes = list() /datum/uplink_item/suits/hardsuit/shielded - name = "Shielded Hardsuit" - desc = "An advanced hardsuit with built in energy shielding. The shields will rapidly recharge when not under fire." + name = "Shielded Syndicate Hardsuit" + desc = "An upgraded version of the standard syndicate hardsuit. It features a built-in energy shielding system. \ + The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi cost = 30 include_modes = list(/datum/game_mode/nuclear) @@ -899,8 +901,8 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. cost = 1 /datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery duffelbag" - desc = "The Syndicate surgery duffelbag is a toolkit containing all surgery tools, surgical drapes, \ + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ a Syndicate brand MMI, a straitjacket, and a muzzle." item = /obj/item/weapon/storage/backpack/duffelbag/syndie/surgery cost = 3 @@ -1130,18 +1132,17 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/device_tools/codespeak_manual name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to comvey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. One use." + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. One use." item = /obj/item/weapon/codespeak_manual cost = 2 exclude_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/device_tools/codespeak_manual_deluxe name = "Deluxe Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to comvey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." cost = 8 include_modes = list(/datum/game_mode/nuclear) - // Implants /datum/uplink_item/implants category = "Implants" diff --git a/code/modules/uplink/uplink_item_cit.dm b/code/modules/uplink/uplink_item_cit.dm index 332254aa37..1ae0f1aef0 100644 --- a/code/modules/uplink/uplink_item_cit.dm +++ b/code/modules/uplink/uplink_item_cit.dm @@ -1,4 +1,4 @@ -/datum/uplink_item/stealthy_tools/syndi_borer +/*/datum/uplink_item/stealthy_tools/syndi_borer name = "Syndicate Brain Slug" desc = "A small cortical borer, modified to be completely loyal to the owner. \ Genetically infertile, these brain slugs can assist medically in a support role, or take direct action \ @@ -7,7 +7,7 @@ refundable = TRUE cost = 10 surplus = 20 //Let's not have this be too common - exclude_modes = list(/datum/game_mode/nuclear) + exclude_modes = list(/datum/game_mode/nuclear) */ /datum/uplink_item/stealthy_tools/holoparasite name="Holoparasite Injector" @@ -19,4 +19,12 @@ cost = 15 //I'm working off the borer. Price subject to change surplus = 20 //Nobody needs a ton of parasites exclude_modes = list(/datum/game_mode/nuclear) - refund_path = /obj/item/weapon/guardiancreator/tech/choose/traitor \ No newline at end of file + refund_path = /obj/item/weapon/guardiancreator/tech/choose/traitor + + +/obj/item/weapon/storage/box/syndie_kit/holoparasite + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/holoparasite/PopulateContents() + new /obj/item/weapon/guardiancreator/tech/choose/traitor(src) + new /obj/item/weapon/paper/guardian(src) \ No newline at end of file diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index 35aff0867f..c10b6f8ebc 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -10,7 +10,7 @@ riding_datum = new/datum/riding/atv /obj/vehicle/atv/Initialize() - .=..() + . = ..() atvcover = atvcover || mutable_appearance(icon, "atvcover", ABOVE_MOB_LAYER) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 2572306784..3c34344101 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -6,7 +6,7 @@ /obj/vehicle/scooter/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) to_chat(user, "You begin to remove the handlebars...") - playsound(get_turf(user), 'sound/items/Ratchet.ogg', 50, 1) + playsound(get_turf(user), 'sound/items/ratchet.ogg', 50, 1) if(do_after(user, 40*I.toolspeed, target = src)) var/obj/vehicle/scooter/skateboard/S = new /obj/vehicle/scooter/skateboard(get_turf(src)) new /obj/item/stack/rods(get_turf(src),2) @@ -55,7 +55,7 @@ var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinal)) unbuckle_mob(H) H.throw_at(throw_target, 4, 3) - H.Weaken(5) + H.Knockdown(100) H.adjustStaminaLoss(40) visible_message("[src] crashes into [A], sending [H] flying!") playsound(src, 'sound/effects/bang.ogg', 50, 1) @@ -84,7 +84,7 @@ if(istype(I, /obj/item/weapon/wrench)) to_chat(user, "You deconstruct [src].") new /obj/item/stack/rods(get_turf(src),10) - playsound(get_turf(user), 'sound/items/Ratchet.ogg', 50, 1) + playsound(get_turf(user), 'sound/items/ratchet.ogg', 50, 1) qdel(src) return diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index d67e769ea3..a70d6e88e8 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -15,8 +15,6 @@ overlay = overlay || mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER) add_overlay(overlay) - - /obj/vehicle/space/speedbike/Move(newloc,move_dir) if(has_buckled_mobs()) new /obj/effect/temp_visual/dir_setting/speedbike_trail(loc,move_dir) @@ -50,7 +48,7 @@ playsound(src, 'sound/effects/bang.ogg', 50, 1) if(ishuman(A)) var/mob/living/carbon/human/H = A - H.Weaken(5) + H.Knockdown(100) H.adjustStaminaLoss(30) H.apply_damage(rand(20,35), BRUTE) if(!crash_all) diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index c64feae6e9..e977ac4600 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -6,7 +6,7 @@ icon_state = "blacktumor" origin_tech = "biotech=5" var/datum/species/old_species = /datum/species/human - var/living_transformation_time = 3 + var/living_transformation_time = 30 var/converts_living = FALSE var/revive_time_min = 450 @@ -76,6 +76,6 @@ owner.grab_ghost() owner.visible_message("[owner] suddenly convulses, as [owner.p_they()][stand_up ? " stagger to [owner.p_their()] feet and" : ""] gain a ravenous hunger in [owner.p_their()] eyes!", "You HUNGER!") playsound(owner.loc, 'sound/hallucinations/far_noise.ogg', 50, 1) - owner.do_jitter_animation(living_transformation_time * 10) + owner.do_jitter_animation(living_transformation_time) owner.Stun(living_transformation_time) to_chat(owner, "You are now a zombie!") diff --git a/code/world.dm b/code/world.dm index 662aa5f21c..404f982adb 100644 --- a/code/world.dm +++ b/code/world.dm @@ -24,6 +24,7 @@ config = new + CheckSchemaVersion() SetRoundID() SetupLogs() @@ -33,7 +34,6 @@ load_motd() load_admins() -// load_mentors() LoadVerbs(/datum/verbs/menu) if(config.usewhitelist) load_whitelist() @@ -57,18 +57,32 @@ external_rsc_urls.Cut(i,i+1) #endif -/world/proc/SetRoundID() +/world/proc/CheckSchemaVersion() if(config.sql_enabled) if(SSdbcore.Connect()) log_world("Database connection established.") + var/datum/DBQuery/db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")]") + db_version.Execute() + if(db_version.NextRow()) + var/db_major = db_version.item[1] + var/db_minor = db_version.item[2] + if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) + message_admins("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + log_sql("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + else + message_admins("Could not get schema version from db") + else + log_world("Your server failed to establish a connection with the database.") + +/world/proc/SetRoundID() + if(config.sql_enabled) + if(SSdbcore.Connect()) var/datum/DBQuery/query_round_start = SSdbcore.NewQuery("INSERT INTO [format_table_name("round")] (start_datetime, server_ip, server_port) VALUES (Now(), INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]')") query_round_start.Execute() var/datum/DBQuery/query_round_last_id = SSdbcore.NewQuery("SELECT LAST_INSERT_ID()") query_round_last_id.Execute() if(query_round_last_id.NextRow()) GLOB.round_id = query_round_last_id.item[1] - else - log_world("Your server failed to establish a connection with the database.") /world/proc/SetupLogs() GLOB.log_directory = "data/logs/[time2text(world.realtime, "YYYY/MM/DD")]/round-" @@ -91,13 +105,12 @@ if(GLOB.round_id) log_game("Round ID: [GLOB.round_id]") - /world/Topic(T, addr, master, key) var/list/input = params2list(T) - + var/pinging = ("ping" in input) var/playing = ("players" in input) - + if(!pinging && !playing && config && config.log_world_topic) GLOB.world_game_log << "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]" @@ -251,7 +264,6 @@ s += "[station_name()]"; s += " (" s += "" //Change this to wherever you want the hub to link to. -// s += "[game_version]" s += "Default" //Replace this with something else. Or ever better, delete it and uncomment the game version. s += "" s += ")" diff --git a/icons/effects/119x268.dmi b/icons/effects/119x268.dmi new file mode 100644 index 0000000000..6685901db4 Binary files /dev/null and b/icons/effects/119x268.dmi differ diff --git a/icons/effects/160x160.dmi b/icons/effects/160x160.dmi index 8c733232f9..0a97573a9b 100644 Binary files a/icons/effects/160x160.dmi and b/icons/effects/160x160.dmi differ diff --git a/icons/effects/166x195.dmi b/icons/effects/166x195.dmi new file mode 100644 index 0000000000..ef49baf9f5 Binary files /dev/null and b/icons/effects/166x195.dmi differ diff --git a/icons/effects/237x321.dmi b/icons/effects/237x321.dmi new file mode 100644 index 0000000000..089c08d9a2 Binary files /dev/null and b/icons/effects/237x321.dmi differ diff --git a/icons/effects/274x385.dmi b/icons/effects/274x385.dmi new file mode 100644 index 0000000000..9a8ba55f91 Binary files /dev/null and b/icons/effects/274x385.dmi differ diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 1342047e6b..558d21425e 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/effects/bleed.dmi b/icons/effects/bleed.dmi new file mode 100644 index 0000000000..c41787de32 Binary files /dev/null and b/icons/effects/bleed.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 885ad62131..701f2ffb19 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/overload_machine_target.dmi b/icons/effects/overload_machine_target.dmi new file mode 100644 index 0000000000..8bc67cdab6 Binary files /dev/null and b/icons/effects/overload_machine_target.dmi differ diff --git a/icons/effects/override_machine_target.dmi b/icons/effects/override_machine_target.dmi new file mode 100644 index 0000000000..77dbb4ba32 Binary files /dev/null and b/icons/effects/override_machine_target.dmi differ diff --git a/icons/minimaps/CereStation_2.png b/icons/minimaps/CereStation_2.png index 93ba714d5b..3e1b0f2ff0 100644 Binary files a/icons/minimaps/CereStation_2.png and b/icons/minimaps/CereStation_2.png differ diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi index 6dd1ecca3b..f4cb3e983b 100644 Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi index 7c41c2d6fe..9e4a3526a3 100644 Binary files a/icons/mob/accessories.dmi and b/icons/mob/accessories.dmi differ diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 214bfd744e..6b13ec2e2e 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/icons/mob/actions_AI.dmi b/icons/mob/actions_AI.dmi new file mode 100644 index 0000000000..3a789984e6 Binary files /dev/null and b/icons/mob/actions_AI.dmi differ diff --git a/icons/mob/alienqueen.dmi b/icons/mob/alienqueen.dmi index 4b84210c5a..115bd17cb0 100644 Binary files a/icons/mob/alienqueen.dmi and b/icons/mob/alienqueen.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 285f936a9e..3ed8c153d8 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/broadMobs.dmi b/icons/mob/broadMobs.dmi index 1aad8a1e30..a02cc7b40e 100644 Binary files a/icons/mob/broadMobs.dmi and b/icons/mob/broadMobs.dmi differ diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 3a4abed93c..193182892d 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 45b635daa4..94af51d6a7 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/hair_extensions.dmi b/icons/mob/hair_extensions.dmi index cf74d73796..bd2adda94b 100644 Binary files a/icons/mob/hair_extensions.dmi and b/icons/mob/hair_extensions.dmi differ diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index b23b278360..86b4d9dc71 100644 Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 2fcc33b3ec..09f665a04e 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 1d8098c92b..c8ab9f0e0a 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index c1163bc3d5..80127e3f78 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index 434756a784..ba2f54dac3 100644 Binary files a/icons/mob/inhands/64x64_lefthand.dmi and b/icons/mob/inhands/64x64_lefthand.dmi differ diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index d148fbdec2..05023605fa 100644 Binary files a/icons/mob/inhands/64x64_righthand.dmi and b/icons/mob/inhands/64x64_righthand.dmi differ diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index 4661fdc260..60233a4dc9 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index b2e489b37d..fe15449aba 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index d08290d169..90d2efa998 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 067b42575e..aa0bd962d1 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/jungle/arachnid.dmi b/icons/mob/jungle/arachnid.dmi index a1db8e351f..fcb5fa3cfa 100644 Binary files a/icons/mob/jungle/arachnid.dmi and b/icons/mob/jungle/arachnid.dmi differ diff --git a/icons/mob/lavaland/64x64megafauna.dmi b/icons/mob/lavaland/64x64megafauna.dmi new file mode 100644 index 0000000000..7cc2b92a17 Binary files /dev/null and b/icons/mob/lavaland/64x64megafauna.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 770c51d55d..24438f397a 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 72aa86f600..8dabf5fce4 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/pai.dmi b/icons/mob/pai.dmi index 6e74c17587..94fb2ee6e7 100644 Binary files a/icons/mob/pai.dmi and b/icons/mob/pai.dmi differ diff --git a/icons/mob/penguins.dmi b/icons/mob/penguins.dmi new file mode 100644 index 0000000000..fae32b6bcc Binary files /dev/null and b/icons/mob/penguins.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index f7219c21c8..f7c8e1b8dc 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index cb6fbe7692..2390c687d6 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 24323f5cf3..6e26c6d431 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/atmospherics/components/unary_devices.dmi b/icons/obj/atmospherics/components/unary_devices.dmi index fada1c7251..33fa7f5895 100644 Binary files a/icons/obj/atmospherics/components/unary_devices.dmi and b/icons/obj/atmospherics/components/unary_devices.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index b1c11a67e8..1169888b34 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/cardboard_cutout.dmi b/icons/obj/cardboard_cutout.dmi index fb41575a8d..da5f58d7f7 100644 Binary files a/icons/obj/cardboard_cutout.dmi and b/icons/obj/cardboard_cutout.dmi differ diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index ca861de6b7..a16797fa17 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/icons/obj/clockwork_objects.dmi b/icons/obj/clockwork_objects.dmi index 02e0743593..dc6f1e6143 100644 Binary files a/icons/obj/clockwork_objects.dmi and b/icons/obj/clockwork_objects.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index c83fdf46c3..16b8a69b37 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 347e40161e..07aec2d23e 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/doors/mineral_doors.dmi b/icons/obj/doors/mineral_doors.dmi index 92158d8645..7682252a6d 100644 Binary files a/icons/obj/doors/mineral_doors.dmi and b/icons/obj/doors/mineral_doors.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index d8c4010aef..eade00cbeb 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index dd6146d7fb..2860c16008 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi index ac8adc5a06..7207733b14 100644 Binary files a/icons/obj/hydroponics/growing_fruits.dmi and b/icons/obj/hydroponics/growing_fruits.dmi differ diff --git a/icons/obj/hydroponics/growing_mushrooms.dmi b/icons/obj/hydroponics/growing_mushrooms.dmi index 7a0eedbdae..3a10c0dab8 100644 Binary files a/icons/obj/hydroponics/growing_mushrooms.dmi and b/icons/obj/hydroponics/growing_mushrooms.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 18bd0cc4e9..8ce90d87d4 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 254ac3a777..db20116e39 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 5380ad43cc..a8f7708c46 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi index 0deead024a..9b7ed4a35f 100644 Binary files a/icons/obj/lavaland/artefacts.dmi and b/icons/obj/lavaland/artefacts.dmi differ diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi index b9ebfbfb66..9a9382ce1e 100644 Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 471e9bfa30..75b1241840 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/machines/nuke.dmi b/icons/obj/machines/nuke.dmi index 54dc6123b1..ceace5c250 100644 Binary files a/icons/obj/machines/nuke.dmi and b/icons/obj/machines/nuke.dmi differ diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi index 28936ff126..cd74eed322 100644 Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ diff --git a/icons/obj/machines/telecomms.dmi b/icons/obj/machines/telecomms.dmi index 44c9b3aa1e..7f5f05e3af 100644 Binary files a/icons/obj/machines/telecomms.dmi and b/icons/obj/machines/telecomms.dmi differ diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index 5fab4aa9c3..0a2edd5dbe 100644 Binary files a/icons/obj/monitors.dmi and b/icons/obj/monitors.dmi differ diff --git a/icons/obj/nuke_tools.dmi b/icons/obj/nuke_tools.dmi index 11f90a3825..2c10b5424f 100644 Binary files a/icons/obj/nuke_tools.dmi and b/icons/obj/nuke_tools.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 413503f7b3..241bb46b98 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index bb38c78117..890ca25399 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index c60188cec5..58eed2bbf4 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 075f2dfc9d..4e6c7b0877 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/icons/obj/robotics.dmi b/icons/obj/robotics.dmi index 5939f215b7..8d0627aa95 100644 Binary files a/icons/obj/robotics.dmi and b/icons/obj/robotics.dmi differ diff --git a/icons/obj/smooth_structures/paperframes.dmi b/icons/obj/smooth_structures/paperframes.dmi new file mode 100644 index 0000000000..5ac2c27dd5 Binary files /dev/null and b/icons/obj/smooth_structures/paperframes.dmi differ diff --git a/icons/obj/smooth_structures/plasma_window.dmi b/icons/obj/smooth_structures/plasma_window.dmi new file mode 100644 index 0000000000..3d57d156f0 Binary files /dev/null and b/icons/obj/smooth_structures/plasma_window.dmi differ diff --git a/icons/obj/smooth_structures/rplasma_window.dmi b/icons/obj/smooth_structures/rplasma_window.dmi new file mode 100644 index 0000000000..c64f42c7f5 Binary files /dev/null and b/icons/obj/smooth_structures/rplasma_window.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 65460e6902..28dd158ff7 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 956490843d..3e156064b3 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index ea17810bb8..8caaa6c8b0 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 1c0ac03abe..8b439d2bad 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index 0cff456af6..cdbaa9e248 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ diff --git a/icons/obj/turrets.dmi b/icons/obj/turrets.dmi index b186c3f224..07b13db761 100644 Binary files a/icons/obj/turrets.dmi and b/icons/obj/turrets.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index b56a84c452..12052e7ab2 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/icons/turf/boss_floors.dmi b/icons/turf/boss_floors.dmi index 31c6707609..a350967f7c 100644 Binary files a/icons/turf/boss_floors.dmi and b/icons/turf/boss_floors.dmi differ diff --git a/icons/turf/boss_floors_hot.dmi b/icons/turf/boss_floors_hot.dmi index 0b9e4f8660..2f3cc48950 100644 Binary files a/icons/turf/boss_floors_hot.dmi and b/icons/turf/boss_floors_hot.dmi differ diff --git a/icons/turf/walls/boss_wall.dmi b/icons/turf/walls/boss_wall.dmi index 2953197251..a197aac8ce 100644 Binary files a/icons/turf/walls/boss_wall.dmi and b/icons/turf/walls/boss_wall.dmi differ diff --git a/icons/turf/walls/boss_wall_hot.dmi b/icons/turf/walls/boss_wall_hot.dmi index b4c423693a..c342d4d984 100644 Binary files a/icons/turf/walls/boss_wall_hot.dmi and b/icons/turf/walls/boss_wall_hot.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index 6fcb06060b..253738064b 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -1,215 +1,212 @@ -//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. -/client/verb/wiki() - set name = "wiki" - set desc = "Visit the wiki." - set hidden = 1 - if(config.wikiurl) - if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.wikiurl) - else - to_chat(src, "The wiki URL is not set in the server configuration.") - return - -/client/verb/forum() - set name = "forum" - set desc = "Visit the forum." - set hidden = 1 - if(config.forumurl) - if(alert("This will open the forum in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.forumurl) - else - to_chat(src, "The forum URL is not set in the server configuration.") - return - -/client/verb/rules() - set name = "rules" - set desc = "Show Server Rules." - set hidden = 1 - if(config.rulesurl) - if(alert("This will open the rules in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.rulesurl) - else - to_chat(src, "The rules URL is not set in the server configuration.") - return - -/client/verb/github() - set name = "github" - set desc = "Visit Github" - set hidden = 1 - if(config.githuburl) - if(alert("This will open the Github repository in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.githuburl) - else - to_chat(src, "The Github URL is not set in the server configuration.") - return - -/client/verb/reportissue() - set name = "report-issue" - set desc = "Report an issue" - set hidden = 1 - if(config.githuburl) - var/message = "This will open the Github issue reporter in your browser. Are you sure?" - if(GLOB.revdata.testmerge.len) - message += "
    The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
    " - message += GLOB.revdata.GetTestMergeInfo(FALSE) - if(tgalert(src, message, "Report Issue","Yes","No")=="No") - return - src << link("[config.githuburl]/issues/new") - else - to_chat(src, "The Github URL is not set in the server configuration.") - return - -/client/verb/hotkeys_help() - set name = "hotkeys-help" - set category = "OOC" - - var/adminhotkeys = {" -Admin: -\tF5 = Aghost (admin-ghost) -\tF6 = player-panel -\tF7 = admin-pm -\tF8 = Invisimin -"} - - mob.hotkey_help() - - if(holder) +//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. +/client/verb/wiki() + set name = "wiki" + set desc = "Visit the wiki." + set hidden = 1 + if(config.wikiurl) + if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.wikiurl) + else + to_chat(src, "The wiki URL is not set in the server configuration.") + return + +/client/verb/forum() + set name = "forum" + set desc = "Visit the forum." + set hidden = 1 + if(config.forumurl) + if(alert("This will open the forum in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.forumurl) + else + to_chat(src, "The forum URL is not set in the server configuration.") + return + +/client/verb/rules() + set name = "rules" + set desc = "Show Server Rules." + set hidden = 1 + if(config.rulesurl) + if(alert("This will open the rules in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.rulesurl) + else + to_chat(src, "The rules URL is not set in the server configuration.") + return + +/client/verb/github() + set name = "github" + set desc = "Visit Github" + set hidden = 1 + if(config.githuburl) + if(alert("This will open the Github repository in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.githuburl) + else + to_chat(src, "The Github URL is not set in the server configuration.") + return + +/client/verb/reportissue() + set name = "report-issue" + set desc = "Report an issue" + set hidden = 1 + if(config.githuburl) + var/message = "This will open the Github issue reporter in your browser. Are you sure?" + if(GLOB.revdata.testmerge.len) + message += "
    The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
    " + message += GLOB.revdata.GetTestMergeInfo(FALSE) + if(tgalert(src, message, "Report Issue","Yes","No")=="No") + return + src << link("[config.githuburl]/issues/new") + else + to_chat(src, "The Github URL is not set in the server configuration.") + return + +/client/verb/hotkeys_help() + set name = "hotkeys-help" + set category = "OOC" + + var/adminhotkeys = {" +Admin: +\tF5 = Aghost (admin-ghost) +\tF6 = player-panel +\tF7 = admin-pm +\tF8 = Invisimin +"} + + mob.hotkey_help() + + if(holder) to_chat(src, adminhotkeys) - -/client/verb/changelog() - set name = "Changelog" - set category = "OOC" + +/client/verb/changelog() + set name = "Changelog" + set category = "OOC" var/datum/asset/changelog = get_asset_datum(/datum/asset/simple/changelog) changelog.send(src) - src << browse('html/changelog.html', "window=changes;size=675x650") - if(prefs.lastchangelog != GLOB.changelog_hash) - prefs.lastchangelog = GLOB.changelog_hash - prefs.save_preferences() - winset(src, "infowindow.changelog", "font-style=;") - - -/mob/proc/hotkey_help() - //h = talk-wheel has a nonsense tag in it because \th is an escape sequence in BYOND. - var/hotkey_mode = {" -Hotkey-Mode: (hotkey-mode must be on) -\tTAB = toggle hotkey-mode -\ta = left -\ts = down -\td = right -\tw = up -\tq = drop -\te = equip -\tr = throw -\tm = me -\tt = say -\th = talk-wheel -\to = OOC -\tb = resist -\tx = swap-hand -\tz = activate held object (or y) -\tf = cycle-intents-left -\tg = cycle-intents-right -\t1 = help-intent -\t2 = disarm-intent -\t3 = grab-intent -\t4 = harm-intent -\tNumpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) -\tAlt(HOLD) = Alter movement intent -"} - - var/other = {" -Any-Mode: (hotkey doesn't need to be on) -\tCtrl+a = left -\tCtrl+s = down -\tCtrl+d = right -\tCtrl+w = up -\tCtrl+q = drop -\tCtrl+e = equip -\tCtrl+r = throw -\tCtrl+b = resist -\tCtrl+h = talk-wheel -\tCtrl+o = OOC -\tCtrl+x = swap-hand -\tCtrl+z = activate held object (or Ctrl+y) -\tCtrl+f = cycle-intents-left -\tCtrl+g = cycle-intents-right -\tCtrl+1 = help-intent -\tCtrl+2 = disarm-intent -\tCtrl+3 = grab-intent -\tCtrl+4 = harm-intent -\tCtrl+'+/-' OR -\tShift+Mousewheel = Ghost zoom in/out -\tDEL = pull -\tINS = cycle-intents-right -\tHOME = drop -\tPGUP = swap-hand -\tPGDN = activate held object -\tEND = throw -\tCtrl+Numpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) -"} - + src << browse('html/changelog.html', "window=changes;size=675x650") + if(prefs.lastchangelog != GLOB.changelog_hash) + prefs.lastchangelog = GLOB.changelog_hash + prefs.save_preferences() + winset(src, "infowindow.changelog", "font-style=;") + + +/mob/proc/hotkey_help() + var/hotkey_mode = {" +Hotkey-Mode: (hotkey-mode must be on) +\tTAB = toggle hotkey-mode +\ta = left +\ts = down +\td = right +\tw = up +\tq = drop +\te = equip +\tr = throw +\tm = me +\tt = say +\to = OOC +\tb = resist +\tx = swap-hand +\tz = activate held object (or y) +\tf = cycle-intents-left +\tg = cycle-intents-right +\t1 = help-intent +\t2 = disarm-intent +\t3 = grab-intent +\t4 = harm-intent +\tNumpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) +\tAlt(HOLD) = Alter movement intent +"} + + var/other = {" +Any-Mode: (hotkey doesn't need to be on) +\tCtrl+a = left +\tCtrl+s = down +\tCtrl+d = right +\tCtrl+w = up +\tCtrl+q = drop +\tCtrl+e = equip +\tCtrl+r = throw +\tCtrl+b = resist +\tCtrl+o = OOC +\tCtrl+x = swap-hand +\tCtrl+z = activate held object (or Ctrl+y) +\tCtrl+f = cycle-intents-left +\tCtrl+g = cycle-intents-right +\tCtrl+1 = help-intent +\tCtrl+2 = disarm-intent +\tCtrl+3 = grab-intent +\tCtrl+4 = harm-intent +\tCtrl+'+/-' OR +\tShift+Mousewheel = Ghost zoom in/out +\tDEL = pull +\tINS = cycle-intents-right +\tHOME = drop +\tPGUP = swap-hand +\tPGDN = activate held object +\tEND = throw +\tCtrl+Numpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) +"} + to_chat(src, hotkey_mode) to_chat(src, other) - -/mob/living/silicon/robot/hotkey_help() - //h = talk-wheel has a nonsense tag in it because \th is an escape sequence in BYOND. - var/hotkey_mode = {" -Hotkey-Mode: (hotkey-mode must be on) -\tTAB = toggle hotkey-mode -\ta = left -\ts = down -\td = right -\tw = up -\tq = unequip active module -\tm = me -\tt = say -\th = talk-wheel -\to = OOC -\tx = cycle active modules -\tb = resist -\tz = activate held object (or y) -\tf = cycle-intents-left -\tg = cycle-intents-right -\t1 = activate module 1 -\t2 = activate module 2 -\t3 = activate module 3 -\t4 = toggle intents -"} - - var/other = {" -Any-Mode: (hotkey doesn't need to be on) -\tCtrl+a = left -\tCtrl+s = down -\tCtrl+d = right -\tCtrl+w = up -\tCtrl+q = unequip active module -\tCtrl+x = cycle active modules -\tCtrl+b = resist -\tCtrl+h = talk-wheel -\tCtrl+o = OOC -\tCtrl+z = activate held object (or Ctrl+y) -\tCtrl+f = cycle-intents-left -\tCtrl+g = cycle-intents-right -\tCtrl+1 = activate module 1 -\tCtrl+2 = activate module 2 -\tCtrl+3 = activate module 3 -\tCtrl+4 = toggle intents -\tDEL = pull -\tINS = toggle intents -\tPGUP = cycle active modules -\tPGDN = activate held object -"} - + +/mob/living/silicon/robot/hotkey_help() + //h = talk-wheel has a nonsense tag in it because \th is an escape sequence in BYOND. + var/hotkey_mode = {" +Hotkey-Mode: (hotkey-mode must be on) +\tTAB = toggle hotkey-mode +\ta = left +\ts = down +\td = right +\tw = up +\tq = unequip active module +\tm = me +\tt = say +\th = talk-wheel +\to = OOC +\tx = cycle active modules +\tb = resist +\tz = activate held object (or y) +\tf = cycle-intents-left +\tg = cycle-intents-right +\t1 = activate module 1 +\t2 = activate module 2 +\t3 = activate module 3 +\t4 = toggle intents +"} + + var/other = {" +Any-Mode: (hotkey doesn't need to be on) +\tCtrl+a = left +\tCtrl+s = down +\tCtrl+d = right +\tCtrl+w = up +\tCtrl+q = unequip active module +\tCtrl+x = cycle active modules +\tCtrl+b = resist +\tCtrl+h = talk-wheel +\tCtrl+o = OOC +\tCtrl+z = activate held object (or Ctrl+y) +\tCtrl+f = cycle-intents-left +\tCtrl+g = cycle-intents-right +\tCtrl+1 = activate module 1 +\tCtrl+2 = activate module 2 +\tCtrl+3 = activate module 3 +\tCtrl+4 = toggle intents +\tDEL = pull +\tINS = toggle intents +\tPGUP = cycle active modules +\tPGDN = activate held object +"} + to_chat(src, hotkey_mode) to_chat(src, other) - -// Needed to circumvent a bug where .winset does not work when used on the window.on-size event in skins. -// Used by /datum/html_interface/nanotrasen (code/modules/html_interface/nanotrasen/nanotrasen.dm) -/client/verb/_swinset(var/x as text) - set name = ".swinset" - set hidden = 1 - winset(src, null, x) + +// Needed to circumvent a bug where .winset does not work when used on the window.on-size event in skins. +// Used by /datum/html_interface/nanotrasen (code/modules/html_interface/nanotrasen/nanotrasen.dm) +/client/verb/_swinset(var/x as text) + set name = ".swinset" + set hidden = 1 + winset(src, null, x) diff --git a/interface/menu.dm b/interface/menu.dm index c49067391e..eca97d669d 100644 --- a/interface/menu.dm +++ b/interface/menu.dm @@ -15,7 +15,7 @@ GLOBAL_LIST_EMPTY(menulist) /datum/verbs/menu/GetList() return GLOB.menulist - + /datum/verbs/menu/HandleVerb(list/entry, verbpath, client/C) var/datum/verbs/menu/verb_true_parent = GLOB.menulist[verblist[verbpath]] var/true_checkbox = verb_true_parent.checkbox diff --git a/interface/skin.dmf b/interface/skin.dmf index 647a12a924..d30261f6b3 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -103,10 +103,6 @@ macro "default" name = "CTRL+G" command = "a-intent right" is-disabled = false - elem - name = "CTRL+H" - command = "talk-wheel" - is-disabled = false elem name = "CTRL+O" command = "ooc" @@ -369,14 +365,6 @@ macro "hotkeys" name = "CTRL+G" command = "a-intent right" is-disabled = false - elem - name = "H" - command = "talk-wheel" - is-disabled = false - elem - name = "CTRL+H" - command = "talk-wheel" - is-disabled = false elem name = "M" command = "me" @@ -619,10 +607,6 @@ macro "robot-default" name = "CTRL+B" command = "resist" is-disabled = false - elem - name = "CTRL+H" - command = "talk-wheel" - is-disabled = false elem name = "CTRL+O" command = "ooc" @@ -841,14 +825,6 @@ macro "robot-hotkeys" name = "CTRL+B" command = "resist" is-disabled = false - elem - name = "H" - command = "talk-wheel" - is-disabled = false - elem - name = "CTRL+H" - command = "talk-wheel" - is-disabled = false elem name = "M" command = "me" diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index c4d8174960..10dd0dd74d 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -28,7 +28,6 @@ em {font-style: normal; font-weight: bold;} .ooc { font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;} .adminooc {color: #700038; font-weight: bold;} -.looc { font-weight: bold;} .adminobserver {color: #996600; font-weight: bold;} .admin {color: #386aff; font-weight: bold;} @@ -134,7 +133,6 @@ h1.alert, h2.alert {color: #000000;} .alien {color: #543354;} .noticealien {color: #00c000;} .alertalien {color: #00c000; font-weight: bold;} -.borer {color: #543354; font-style: italic;} .changeling {color: #800080; font-style: italic;} .interface {color: #330033;} @@ -144,6 +142,7 @@ h1.alert, h2.alert {color: #000000;} .robot {font-family: "Courier New", cursive, sans-serif;} .command_headset {font-weight: bold; font-size: 3;} +.small {font-size: 1;} .big {font-size: 3;} .reallybig {font-size: 4;} .greentext {color: #00FF00; font-size: 3;} @@ -160,8 +159,5 @@ BIG IMG.icon {width: 32px; height: 32px;} .drone {color: #848482;} .monkey {color: #975032;} .swarmer {color: #2C75FF;} - -.love {color: #FF69Bf;} -.lovebold {color: #FF69Bf; font-weight: bold;} .resonate {color: #298F85;} "} diff --git a/sound/ambience/antag/Malf.ogg b/sound/ambience/antag/Malf.ogg index cff3fc615f..feea5fbf19 100644 Binary files a/sound/ambience/antag/Malf.ogg and b/sound/ambience/antag/Malf.ogg differ diff --git a/sound/effects/can_open1.ogg b/sound/effects/can_open1.ogg new file mode 100644 index 0000000000..4b38ab7703 Binary files /dev/null and b/sound/effects/can_open1.ogg differ diff --git a/sound/effects/can_open2.ogg b/sound/effects/can_open2.ogg new file mode 100644 index 0000000000..0b054c23c6 Binary files /dev/null and b/sound/effects/can_open2.ogg differ diff --git a/sound/effects/can_open3.ogg b/sound/effects/can_open3.ogg new file mode 100644 index 0000000000..4523c6f1fe Binary files /dev/null and b/sound/effects/can_open3.ogg differ diff --git a/sound/effects/explosion3.ogg b/sound/effects/explosion3.ogg new file mode 100644 index 0000000000..81422415d4 Binary files /dev/null and b/sound/effects/explosion3.ogg differ diff --git a/sound/effects/heart_beat.ogg b/sound/effects/heart_beat.ogg new file mode 100644 index 0000000000..6d99aa371c Binary files /dev/null and b/sound/effects/heart_beat.ogg differ diff --git a/sound/effects/servostep.ogg b/sound/effects/servostep.ogg new file mode 100644 index 0000000000..9999b99ccb Binary files /dev/null and b/sound/effects/servostep.ogg differ diff --git a/sound/weapons/beam_sniper.ogg b/sound/weapons/beam_sniper.ogg new file mode 100644 index 0000000000..0bd7b89c8d Binary files /dev/null and b/sound/weapons/beam_sniper.ogg differ diff --git a/sound/weapons/blastcannon.ogg b/sound/weapons/blastcannon.ogg new file mode 100644 index 0000000000..9b88f3ecf9 Binary files /dev/null and b/sound/weapons/blastcannon.ogg differ diff --git a/tgstation.dme b/tgstation.dme index b4eaa6dfb0..b217beecf0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -69,6 +69,7 @@ #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\tick.dm" +#include "code\__DEFINES\time.dm" #include "code\__DEFINES\typeids.dm" #include "code\__DEFINES\voreconstants.dm" #include "code\__DEFINES\vv.dm" @@ -152,7 +153,6 @@ #include "code\_onclick\hud\human.dm" #include "code\_onclick\hud\monkey.dm" #include "code\_onclick\hud\movable_screen_objects.dm" -#include "code\_onclick\hud\other_mobs.dm" #include "code\_onclick\hud\parallax.dm" #include "code\_onclick\hud\plane_master.dm" #include "code\_onclick\hud\revenanthud.dm" @@ -265,12 +265,12 @@ #include "code\datums\shuttles.dm" #include "code\datums\soullink.dm" #include "code\datums\verbs.dm" -#include "code\datums\votablemap.dm" #include "code\datums\antagonists\antag_datum.dm" #include "code\datums\antagonists\datum_clockcult.dm" #include "code\datums\antagonists\datum_cult.dm" #include "code\datums\antagonists\datum_internal_affairs.dm" #include "code\datums\antagonists\datum_traitor.dm" +#include "code\datums\antagonists\devil.dm" #include "code\datums\antagonists\ninja.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" @@ -383,7 +383,6 @@ #include "code\game\area\areas\space_content.dm" #include "code\game\gamemodes\antag_hud.dm" #include "code\game\gamemodes\antag_spawner.dm" -#include "code\game\gamemodes\antag_spawner_cit.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\factions.dm" #include "code\game\gamemodes\game_mode.dm" @@ -462,7 +461,6 @@ #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_cyborg.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_drivers.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_judgement.dm" -#include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_revenant.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_scripts.dm" #include "code\game\gamemodes\clock_cult\clock_structures\ark_of_the_clockwork_justicar.dm" #include "code\game\gamemodes\clock_cult\clock_structures\clock_shells.dm" @@ -488,7 +486,6 @@ #include "code\game\gamemodes\cult\talisman.dm" #include "code\game\gamemodes\devil\devil.dm" #include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\devilinfo.dm" #include "code\game\gamemodes\devil\game_mode.dm" #include "code\game\gamemodes\devil\objectives.dm" #include "code\game\gamemodes\devil\devil agent\devil_agent.dm" @@ -516,12 +513,6 @@ #include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" #include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" #include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" -#include "code\game\gamemodes\miniantags\borer\borer.dm" -#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm" -#include "code\game\gamemodes\miniantags\borer\borer_event.dm" -#include "code\game\gamemodes\miniantags\borer\borer_html.dm" -#include "code\game\gamemodes\miniantags\borer\borer_topic.dm" -#include "code\game\gamemodes\miniantags\borer\syndi_borer.dm" #include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm" #include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" #include "code\game\gamemodes\miniantags\monkey\monkey.dm" @@ -544,7 +535,6 @@ #include "code\game\gamemodes\traitor\double_agents.dm" #include "code\game\gamemodes\traitor\traitor.dm" #include "code\game\gamemodes\wizard\artefact.dm" -#include "code\game\gamemodes\wizard\raginmages.dm" #include "code\game\gamemodes\wizard\soulstone.dm" #include "code\game\gamemodes\wizard\spellbook.dm" #include "code\game\gamemodes\wizard\wizard.dm" @@ -757,10 +747,10 @@ #include "code\game\objects\items\documents.dm" #include "code\game\objects\items\eightball.dm" #include "code\game\objects\items\latexballoon.dm" -#include "code\game\objects\items\nuke_tools.dm" #include "code\game\objects\items\religion.dm" #include "code\game\objects\items\shooting_range.dm" #include "code\game\objects\items\taster.dm" +#include "code\game\objects\items\theft_tools.dm" #include "code\game\objects\items\toys.dm" #include "code\game\objects\items\trash.dm" #include "code\game\objects\items\devices\aicard.dm" @@ -890,6 +880,7 @@ #include "code\game\objects\items\weapons\implants\implantuplink.dm" #include "code\game\objects\items\weapons\melee\energy.dm" #include "code\game\objects\items\weapons\melee\misc.dm" +#include "code\game\objects\items\weapons\melee\transforming.dm" #include "code\game\objects\items\weapons\storage\backpack.dm" #include "code\game\objects\items\weapons\storage\bags.dm" #include "code\game\objects\items\weapons\storage\belt.dm" @@ -996,7 +987,6 @@ #include "code\game\objects\structures\transit_tubes\transit_tube.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\basic.dm" #include "code\game\turfs\closed.dm" #include "code\game\turfs\open.dm" #include "code\game\turfs\turf.dm" @@ -1388,7 +1378,6 @@ #include "code\modules\holiday\holidays.dm" #include "code\modules\holodeck\area_copy.dm" #include "code\modules\holodeck\computer.dm" -#include "code\modules\holodeck\computer_funcs.dm" #include "code\modules\holodeck\holo_effect.dm" #include "code\modules\holodeck\items.dm" #include "code\modules\holodeck\mobs.dm" @@ -1453,6 +1442,7 @@ #include "code\modules\jobs\job_types\science.dm" #include "code\modules\jobs\job_types\security.dm" #include "code\modules\jobs\job_types\silicon.dm" +#include "code\modules\jobs\map_changes\map_changes.dm" #include "code\modules\language\beachbum.dm" #include "code\modules\language\codespeak.dm" #include "code\modules\language\common.dm" @@ -1669,7 +1659,6 @@ #include "code\modules\mob\living\silicon\say.dm" #include "code\modules\mob\living\silicon\silicon.dm" #include "code\modules\mob\living\silicon\silicon_defense.dm" -#include "code\modules\mob\living\silicon\status_procs.dm" #include "code\modules\mob\living\silicon\ai\ai.dm" #include "code\modules\mob\living\silicon\ai\ai_defense.dm" #include "code\modules\mob\living\silicon\ai\death.dm" @@ -1730,6 +1719,7 @@ #include "code\modules\mob\living\simple_animal\friendly\fox.dm" #include "code\modules\mob\living\simple_animal\friendly\lizard.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" #include "code\modules\mob\living\simple_animal\friendly\pet.dm" #include "code\modules\mob\living\simple_animal\friendly\sloth.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" @@ -1782,6 +1772,7 @@ #include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon.dm" @@ -1957,6 +1948,7 @@ #include "code\modules\projectiles\boxes_magazines\external_mag.dm" #include "code\modules\projectiles\boxes_magazines\internal_mag.dm" #include "code\modules\projectiles\guns\ballistic.dm" +#include "code\modules\projectiles\guns\beam_rifle.dm" #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\grenade_launcher.dm" #include "code\modules\projectiles\guns\magic.dm" @@ -1981,6 +1973,7 @@ #include "code\modules\projectiles\guns\energy\stun.dm" #include "code\modules\projectiles\guns\magic\staff.dm" #include "code\modules\projectiles\guns\magic\wand.dm" +#include "code\modules\projectiles\guns\misc\blastcannon.dm" #include "code\modules\projectiles\projectile\beams.dm" #include "code\modules\projectiles\projectile\bullets.dm" #include "code\modules\projectiles\projectile\energy.dm" @@ -2170,8 +2163,6 @@ #include "code\modules\surgery\organs\tails.dm" #include "code\modules\surgery\organs\tongue.dm" #include "code\modules\surgery\organs\vocal_cords.dm" -#include "code\modules\telesci\telepad.dm" -#include "code\modules\telesci\telesci_computer.dm" #include "code\modules\tgui\external.dm" #include "code\modules\tgui\states.dm" #include "code\modules\tgui\subsystem.dm" diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 9ab931cd85..89a66ecaf0 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,4 +1,4 @@ -require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?p[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-u,o-s),f=1;for(s>u&&u+l>s&&(f=-1,u+=l-1,s+=l-1);l-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var a=t(80),r=t(76),i=t(79);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,u=r(s>1?o[1]:void 0,n),p=s>2?o[2]:void 0,c=void 0===p?n:r(p,n);c>u;)e[u++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var a=t(78),r=t(79),i=t(76);e.exports=function(t){return function(e,n,o){var s,u=a(e),p=r(u.length),c=i(o,p);if(t&&n!=n){for(;p>c;)if(s=u[c++],s!=s)return!0}else for(;p>c;c++)if((t||c in u)&&u[c]===n)return t||c;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var a=t(17),r=t(34),i=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,u=3==t,p=4==t,c=6==t,l=5==t||c;return function(f,d,h){for(var m,v,g=i(f),b=r(g),y=a(d,h,3),x=o(b.length),_=0,w=e?s(f,x):n?s(f,0):void 0;x>_;_++)if((l||_ in b)&&(m=b[_],v=y(m,_,g),t))if(e)w[_]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(p)return!1;return c?-1:u||p?p:w}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var a=t(38),r=t(36),i=t(83)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var a=t(11),r=t(83)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var a=t(46),r=t(31),i=t(60),o=t(17),s=t(69),u=t(18),p=t(27),c=t(42),l=t(44),f=t(82)("id"),d=t(30),h=t(38),m=t(65),v=t(19),g=Object.isExtensible||h,b=v?"_s":"size",y=0,x=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";r(t,f,++y)}return"O"+t[f]},_=function(t,e){var n,a=x(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&p(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=_(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!_(this,t)}}),v&&a.setDesc(c.prototype,"size",{get:function(){return u(this[b])}}),c},def:function(t,e,n){var a,r,i=_(t,e);return i?i.v=n:(t._l=i={i:r=x(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:_,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var a=t(27),r=t(10);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var a=t(31),r=t(60),i=t(4),o=t(38),s=t(69),u=t(27),p=t(8),c=t(30),l=t(82)("weak"),f=Object.isExtensible||o,d=p(5),h=p(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&u(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i):v(this).has(t):!1}}),i},def:function(t,e,n){return f(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var a=t(29),r=t(22),i=t(61),o=t(60),s=t(27),u=t(69),p=t(38),c=t(24),l=t(43),f=t(66);e.exports=function(t,e,n,d,h,m){var v=a[t],g=v,b=h?"set":"add",y=g&&g.prototype,x={},_=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!p(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!c(function(){(new g).entries().next()}))){var w,k=new g,E=k[b](m?{}:-0,1)!=k,S=c(function(){k.has(1)}),C=l(function(t){new g(t)});C||(g=e(function(e,n){u(e,g,t);var a=new v;return void 0!=n&&s(n,h,a[b],a),a}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(S||w)&&(_("delete"),_("has"),h&&_("get")),(w||E)&&_(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),x[t]=g,r(r.G+r.W+r.F*(g!=v),x),m||d.setStrong(g,t,h),g}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],17:[function(t,e,n){var a=t(2);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var a=t(38),r=t(29).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var a=t(46);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{46:46}],22:[function(t,e,n){var a=t(29),r=t(16),i=t(31),o=t(61),s=t(17),u="prototype",p=function(t,e,n){var c,l,f,d,h=t&p.F,m=t&p.G,v=t&p.S,g=t&p.P,b=t&p.B,y=m?a:v?a[e]||(a[e]={}):(a[e]||{})[u],x=m?r:r[e]||(r[e]={}),_=x[u]||(x[u]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,f=(l?y:n)[c],d=b&&l?s(f,a):g&&"function"==typeof f?s(Function.call,f):f,y&&!l&&o(y,c,f),x[c]!=f&&i(x,c,d),g&&_[c]!=f&&(_[c]=f)};a.core=r,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,e.exports=p},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var a=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var a=t(31),r=t(61),i=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var u=s(t),p=""[t];i(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,u,p)),a(RegExp.prototype,u,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var a=t(4);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var a=t(17),r=t(40),i=t(35),o=t(4),s=t(79),u=t(84);e.exports=function(t,e,n,p){var c,l,f,d=u(t),h=a(n,p,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(i(d))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(f=d.call(t);!(l=f.next()).done;)r(f,h,l.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var a=t(78),r=t(46).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{46:46,78:78}],29:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],30:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],31:[function(t,e,n){var a=t(46),r=t(59);e.exports=t(19)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var a=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var a=t(45),r=t(83)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{45:45,83:83}],36:[function(t,e,n){var a=t(11);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{11:11}],37:[function(t,e,n){var a=t(38),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var a=t(38),r=t(11),i=t(83)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var a=t(4);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{4:4}],41:[function(t,e,n){"use strict";var a=t(46),r=t(59),i=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var a=t(48),r=t(22),i=t(61),o=t(31),s=t(30),u=t(45),p=t(41),c=t(66),l=t(46).getProto,f=t(83)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,x,_){p(n,e,b);var w,k,E=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",C=y==v,P=!1,A=t.prototype,O=A[f]||A[h]||y&&A[y],T=O||E(y);if(O){var M=l(T.call(new t));c(M,S,!0),!a&&s(A,h)&&o(M,f,g),C&&O.name!==v&&(P=!0,T=function(){return O.call(this)})}if(a&&!_||!d&&!P&&A[f]||o(A,f,T),u[e]=T,u[S]=g,y)if(w={values:C?T:E(v),keys:x?T:E(m),entries:C?E("entries"):T},_)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(d||P),e,w);return w}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var a=t(83)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var a=t(46),r=t(78);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,u=0;s>u;)if(i[n=o[u++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var a,r,i,o=t(29),s=t(75).set,u=o.MutationObserver||o.WebKitMutationObserver,p=o.process,c=o.Promise,l="process"==t(11)(p),f=function(){var t,e,n;for(l&&(t=p.domain)&&(p.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){p.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),i=function(){h.data=d=-d}}else i=c&&c.resolve?function(){c.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&p.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var a=t(46),r=t(80),i=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,u=1,p=a.getKeys,c=a.getSymbols,l=a.isEnum;s>u;)for(var f,d=i(o[u++]),h=c?p(d).concat(c(d)):p(d),m=h.length,v=0;m>v;)l.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var a=t(22),r=t(16),i=t(24);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var a=t(46),r=t(78),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),u=s.length,p=0,c=[];u>p;)i.call(o,n=s[p++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{46:46,78:78}],56:[function(t,e,n){var a=t(46),r=t(4),i=t(29).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var a=t(58),r=t(33),i=t(2);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var a,i=this,o=arguments,p=o.length,c=0,l=0;if(!u&&!p)return r(t,n,i);if(a=n.slice(),u)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;p>l;)a.push(o[l++]);return r(t,a,i)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var a=t(61);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var a=t(29),r=t(31),i=t(82)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var a=t(46).getDesc,r=t(38),i=t(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(17)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var a=t(29),r=t(46),i=t(19),o=t(83)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var a=t(46).setDesc,r=t(30),i=t(83)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var a=t(29),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,e,n){var a=t(4),r=t(2),i=t(83)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var a=t(77),r=t(18);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",u=a(n),p=s.length;return 0>u||u>=p?t?"":void 0:(i=s.charCodeAt(u),55296>i||i>56319||u+1===p||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var a=t(39),r=t(18);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{18:18,39:39}],72:[function(t,e,n){var a=t(79),r=t(73),i=t(18);e.exports=function(t,e,n,o){var s=i(t)+"",u=s.length,p=void 0===n?" ":n+"",c=a(e);if(u>=c)return s;""==p&&(p=" ");var l=c-u,f=r.call(p,Math.ceil(l/p.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var a=t(77),r=t(18);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var a=t(22),r=t(18),i=t(24),o=" \n\x0B\f\r  ᠎ â€â€‚         âŸã€€\u2028\u2029\ufeff",s="["+o+"]",u="​…",p=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(f),a(a.P+a.F*i(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(p,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{18:18,22:22,24:24}],75:[function(t,e,n){var a,r,i,o=t(17),s=t(33),u=t(32),p=t(20),c=t(29),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},d=function(t){delete v[t]},"process"==t(11)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=g in p("script")?function(t){u.appendChild(p("script"))[g]=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var a=t(77),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{77:77}],77:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],78:[function(t,e,n){var a=t(34),r=t(18);e.exports=function(t){return a(r(t))}},{18:18,34:34}],79:[function(t,e,n){var a=t(77),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var a=t(18);e.exports=function(t){return Object(a(t))}},{18:18}],81:[function(t,e,n){var a=t(38);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],83:[function(t,e,n){var a=t(67)("wks"),r=t(82),i=t(29).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var a=t(10),r=t(83)("iterator"),i=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var a,r=t(46),i=t(22),o=t(19),s=t(59),u=t(32),p=t(20),c=t(30),l=t(11),f=t(33),d=t(24),h=t(4),m=t(2),v=t(38),g=t(80),b=t(78),y=t(77),x=t(76),_=t(79),w=t(34),k=t(82)("__proto__"),E=t(8),S=t(7)(!1),C=Object.prototype,P=Array.prototype,A=P.slice,O=P.join,T=r.setDesc,M=r.getDesc,R=r.setDescs,j={};o||(a=!d(function(){return 7!=T(p("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return M(t,e)}catch(n){}return c(t,e)?s(!C.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=R=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:R});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),D=L.concat("length","prototype"),N=L.length,F=function(){var t,e=p("iframe"),n=N,a=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("